文章目录
前言
本文为在双系统上使用 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_workspace
cd 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.txt
source ./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 libncurses5
source ./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