手术机器人的项目,需要使用ROS读取Touch手柄数据,在此记录。
网上教程很多,重复部分本文不再赘述,只给出笔者在配置过程中踩的坑,以及一些使用经验。
目录
驱动安装
网上的教程其实很详细,在此列出供大家参考,感谢这些作者的分享。
【3D Systems Touch在20.04 ubuntu(noetic)环境下的配置与使用】_ubuntu 3dtouch-CSDN博客
(Touch™)搭建 Ubuntu 开发环境_ubuntu touch-CSDN博客
(以上两篇已是足够,以下亦可参考)
https://www.cnblogs.com/yhtengineer/p/16719643.html
(以下为官网,Ub20不要在此下载对应驱动)
注意事项
这里大家注意两点:
1、安装qt时使用命令:
sudo apt-get install qt5-default
而非
sudo apt install qt-default
在本人的Ub20上会提示找不到软件包,如果你的可以,倒无妨。
2、重点 Ubuntu20用户 不要下载官网上的驱动包
官网上驱动包对应的是Ub22
Ub20用户如果下载此驱动文件,在执行 sudo ./Touch_Diagnostic 时,可能会报错:
./Touch_Diagnostic: symbol lookup error: ./Touch_Diagnostic: undefined symbol: _ZdlPvm, version Qt_5
根据另一个博主的分析
所以Ub20需要下载低版本的驱动文件,以下是第一篇参考博文中提供的文件链接,亲测可用。
https://download.csdn.net/download/weixin_52725622/88494878
https://download.csdn.net/download/weixin_52725622/88494882
使用该版本文件后,再次运行,即可成功。
导入ROS功能包
网上所给的功能包由于时间久远,基本7年以上历史,或多或少会有一些问题。
这里给出笔者修改过的,一个可以实现RVIZ仿真以及获取位姿等的功能包,免费下载。
https://download.csdn.net/download/qq_38236680/89757312?spm=1001.2014.3001.5501
网络教程及GitHub资源,如下。
Geomagic Touch in ROS – Francisco Suárez-Ruiz GitHub - bharatm11/Geomagic_Touch_ROS_Drivers: This repository consists of the ROS Drivers for 3D Systems Geomagic Touch haptic device. This repository has been forked from the original repository by @fsuarez6 for the Phantom Omni (https://github.com/fsuarez6/phantom_omni).
(这个是ROS包原作者的网站)
(Touch X适用,模型为Touch X)
GitHub - WPI-AIM/ros_geomagic: ROS Interface for Geomagic Touch and Phantom
GitHub - JimAdara/Touch_ROS_Driver: 该存储库由3D Systems Geomagic Touch触觉设备的ROS驱动程序组成.
【Touch主手在Ubuntu20.04 Noetic下的主从控制实现】-CSDN博客
(这个博主有好几篇相关文章,可以去看看)
(ROS2版本的配置教程,Github上还有一些)
注意事项
Geomagic Touch 手柄 在Ubuntu 20.04 下进行配置,导入网上的ROS包,编译,在运行launch文件后报错:
/home/zhongren/Surgical_Robot/devel/lib/omni_common/omni_state: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[omni_state-2] process has died [pid 3903, exit code 127, cmd /home/zhongren/Surgical_Robot/devel/lib/omni_common/omni_state __name:=omni_state __log:=/home/zhongren/.ros/log/61b36f06-7244-11ef-83fa-bf9b7f3af211/omni_state-2.log].
log file: /home/zhongren/.ros/log/61b36f06-7244-11ef-83fa-bf9b7f3af211/omni_state-2*.log
网上的教程里有创建到OpenHaptics SDK库的符号链接的步骤,但操作后并未解决这个问题。
这个报错是因为libncurses5库缺失,重新安装即可。
讯飞星火的回答:
一步之遥,这里需要去除包名称后面的-dev,安装即可解决这个问题。
sudo apt-get install libncurses5
安装后,再次launch,成功。
运动仿真、位姿获取功能实现
下载前述笔者上传的ROS功能包,放入工作空间的src文件夹下。按照教程做好准备工作(安装依赖等)后,如下:
编译成功
把笔头插回底座,以便程序一开始进行校准。
同时,如果是刚开机,记得给对应串口访问权限。
sudo chmod 777 /dev/ttyACM0
source一下后,运行launch文件,直接启动RVIZ界面,进行模型的同步运动。
source ./devel/setup.bash
roslaunch geomagic_control geomagic.launch
此时RVIZ打开,可以看到模型文件,可以勾选显示坐标系、坐标系名称。
移动手柄,模型跟随运动。
Touch模型操作视频
这里有一点问题,笔水平放置时,模型中的笔仍是倾斜,有一定的不对应,可能是笔者没有做好校准。
同时,可以在rostopic中查看笔头位姿等。
到此,基本的功能成功实现。
祝科研有进,前程似锦。