Bootstrap

使用 ROS 和 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 机械臂

参考文档:


一、安装 franka_ros

  1. 创建 catkin 工作空间并初始化
mkdir -p <ROS_workspace>/src
cd <ROS_workspace>
source /opt/ros/noetic/setup.sh
catkin_init_workspace src
  1. 下载 franka_ros 存储库
git clone --recursive https://github.com/frankaemika/franka_ros src/franka_ros
  1. 安装依赖项并构建包,注意将 /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

  1. 下载 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
  1. 下载 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
  1. 进入 /TouchDriver2022_04_04/bin/,运行 Touch_Setup,点击 Apply, OK,再尝试运行 Touch_Diagonstic

三、安装 3D Systems Geomagic Touch ROS Driver

  1. 安装依赖
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
  1. 对于 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 
  1. 进入 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

  1. 在 ROS 工作空间中下载
cd <ROS_workspace>/
git clone https://github.com/nbfigueroa/franka_interactive_controllers.git
  1. 使用 wstool 获取所有其他 git 存储库依赖项
wstool init
wstool merge franka_interactive_controllers/dependencies.rosinstall 
wstool up 
  1. 查询并安装所有库和包,<your-ros-distro> 表示 ROS 版本,比如 noetic
rosdep install --from-paths . --ignore-src --rosdistro <your-ros-distro> 
  1. 安装 python 依赖
sudo apt install python3-psutil python3-tk
  1. 编译
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

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;