文章目錄
- 前言
- 一、安裝 franka_ros
- 二、安裝 OpenHaptics for Linux
- 三、安裝 3D Systems Geomagic Touch ROS Driver
- 四、安裝 franka_interactive_controllers
- 五、使用 Geomagic Haptic 驅動 Franka 機械臂
前言
本文為在雙系統上使用 ROS 和 Geomagic Haptic 驅動 Franka 機械臂的筆記,前提為已安裝 ROS Noetic, libfranka, 系統:Ubuntu 20.04
, 實時內核型號: Linux 5.6.19-rt12
,分為五個章節:
- 安裝 franka_ros
- 安裝 OpenHaptics for Linux
- 安裝 3D Systems Geomagic Touch ROS Driver
- 安裝 franka_interactive_controllers
- 使用 Geomagic Haptic 驅動 Franka 機械臂
參考文檔:
- 在 Linux 上安裝
- 歷經千辛萬苦的Ubuntu20.04與Geomagic Haptic相聯(下)
- Geomagic Touch(USB版本)在ROS下的配置和使用
- OpenHaptics for Linux Developer Edition v3.4
- 3D Systems Geomagic Touch ROS Driver
- franka_interactive_controllers
一、安裝 franka_ros
- 創建
catkin
工作空間并初始化
mkdir -p <ROS_workspace>/src
cd <ROS_workspace>
source /opt/ros/noetic/setup.sh
catkin_init_workspace src
- 下載
franka_ros
存儲庫
git clone --recursive https://github.com/frankaemika/franka_ros src/franka_ros
- 安裝依賴項并構建包,注意將
/path/to/libfranka/build
替換成自己的 libfranka build 構建路徑
rosdep install --from-paths src --ignore-src --rosdistro noetic -y --skip-keys libfranka
catkin_make -DCMAKE_BUILD_TYPE=Release -DFranka_DIR:PATH=</path/to/libfranka/build>
source devel/setup.sh
二、安裝 OpenHaptics for Linux
- 下載 OpenHaptics Installer ,解壓,進入解壓目錄,運行 .install, 安裝位置為
/opt/OpenHaptics/Developer/3.4-0/
tar zxvf openhaptics_3.4-0-developer-edition-amd64.tar.gz
cd openhaptics_3.4-0-developer-edition-amd64/
sudo ./install
- 下載 Haptic device driver,將 LibPhantomIOLib42.so 從
解壓位置/usr/lin
復制至/usr/lib
,安裝 QT,運行 ListUSBHapticDevices 查看設備連接至哪個串口,設置權限,添加用戶至 dialout 組,
sudo apt-get install qt5-default
./ListUSBHapticDevices
>>> ttyACM0
sudo chmod 777 /dev/ttyACM0
sudo adduser YourUserName dialout
- 進入
/TouchDriver2022_04_04/bin/
,運行Touch_Setup
,點擊Apply
,OK
,再嘗試運行Touch_Diagonstic
三、安裝 3D Systems Geomagic Touch ROS Driver
- 安裝依賴
sudo apt-get install --no-install-recommends freeglut3-dev g++ libdrm-dev libexpat1-dev libglw1-mesa libglw1-mesa-dev libmotif-dev libncurses5-dev libraw1394-dev libx11-dev libxdamage-dev libxext-dev libxt-dev libxxf86vm-dev tcsh unzip x11proto-dri2-dev x11proto-gl-dev
- 對于 64位系統,創建到OpenHaptics SDK庫的符號鏈接
sudo ln -s /usr/lib/x86_64-linux-gnu/libraw1394.so.11.0.1 /usr/lib/libraw1394.so.8
sudo ln -s /usr/lib64/libPHANToMIO.so.4.3 /usr/lib/libPHANToMIO.so.4
sudo ln -s /usr/lib64/libHD.so.3.0.0 /usr/lib/libHD.so.3.0
sudo ln -s /usr/lib64/libHL.so.3.0.0 /usr/lib/libHL.so.3.0
- 進入 ROS 工作空間
cd <ROS_workspace>/
wstool init src # 需安裝 wstool
catkin_init_workspacecd src/
wstool merge /<解壓位置>/Geomagic_Touch_ROS_Drivers-hydro-devel/phantom_omni.rosinstall # 關聯rosintall文件
wstool up
cd ..
catkin_make # 若出現 [WARN]The specified base path " /home/xxx/xxx " contains a CMakeLists.txt but "catkin_make" must be invoked in the root of workspace
# 刪除當前路徑下的 CMakeLists.txtsource ./devel/setup.bash
roslaunch omni_common omni_state.launch # 可能報錯 缺少 "libncurses.so.5"#安裝libncurses.so.5
sudo apt install apt-file
sudo apt-file update
sudo apt-file find libncurses5source ./devel/setup.bash
roslaunch omni_common omni_state.launch# 在另一個終端中查看輸出
rostopic echo /phantom/pose
四、安裝 franka_interactive_controllers
- 在 ROS 工作空間中下載
cd <ROS_workspace>/
git clone https://github.com/nbfigueroa/franka_interactive_controllers.git
- 使用 wstool 獲取所有其他 git 存儲庫依賴項
wstool init
wstool merge franka_interactive_controllers/dependencies.rosinstall
wstool up
- 查詢并安裝所有庫和包,
<your-ros-distro>
表示 ROS 版本,比如noetic
rosdep install --from-paths . --ignore-src --rosdistro <your-ros-distro>
- 安裝 python 依賴
sudo apt install python3-psutil python3-tk
- 編譯
catkin_make
source devel/setup.bash
catkin_make
rospack profile
五、使用 Geomagic Haptic 驅動 Franka 機械臂
在不同終端中依次運行
roslaunch franka_interactive_controllers franka_interactive_bringup.launch robot_ip:=<your-robot-ip> load_gripper:=<true/false>
roslaunch omni_common omni_state.launch
python3 <your-tele-code>.py