Geomagic Touch 力反馈手柄在Ubuntu 20.04 ROS1 noetic 环境下的配置

 

手术机器人的项目,需要使用ROS读取Touch手柄数据,在此记录。 

网上教程很多,重复部分本文不再赘述,只给出笔者在配置过程中踩的坑,以及一些使用经验。

目录

驱动安装

 注意事项

导入ROS功能包

注意事项

运动仿真、位姿获取功能实现


驱动安装

 网上的教程其实很详细,在此列出供大家参考,感谢这些作者的分享。

【3D Systems Touch在20.04 ubuntu(noetic)环境下的配置与使用】_ubuntu 3dtouch-CSDN博客

(Touch™)搭建 Ubuntu 开发环境_ubuntu touch-CSDN博客

(以上两篇已是足够,以下亦可参考)

https://www.cnblogs.com/yhtengineer/p/16719643.html

Touch主手在Linux环境下的配置-CSDN博客

(以下为官网,Ub20不要在此下载对应驱动)

3D Systems Support

 注意事项

这里大家注意两点:

1、安装qt时使用命令:

sudo apt-get install qt5-default

而非

 sudo apt install qt-default

在本人的Ub20上会提示找不到软件包,如果你的可以,倒无妨。

2、重点 Ubuntu20用户 不要下载官网上的驱动包

官网上驱动包对应的是Ub22

d109e36164574220aee1340b4fa9a73b.png

Ub20用户如果下载此驱动文件,在执行 sudo ./Touch_Diagnostic  时,可能会报错:

./Touch_Diagnostic: symbol lookup error: ./Touch_Diagnostic: undefined symbol: _ZdlPvm, version Qt_5
根据另一个博主的分析

a0f197e8b9444de9a66b1016ded5b856.png

所以Ub20需要下载低版本的驱动文件,以下是第一篇参考博文中提供的文件链接,亲测可用。

https://download.csdn.net/download/weixin_52725622/88494878

https://download.csdn.net/download/weixin_52725622/88494882

使用该版本文件后,再次运行,即可成功。

e0eb64d2764944e182e575b5c46f535a.png

导入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包原作者的网站) 

GitHub - MonashRobotics/ros_haptic_devices: ROS interface for 3D Systems Touch and Touch X haptic devices

 (Touch X适用,模型为Touch X)

3d47b40e660548b4af67d1769a45d48f.png

GitHub - WPI-AIM/ros_geomagic: ROS Interface for Geomagic Touch and Phantom

GitHub - JimAdara/Touch_ROS_Driver: 该存储库由3D Systems Geomagic Touch触觉设备的ROS驱动程序组成.

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).

【Touch主手在Ubuntu20.04 Noetic下的主从控制实现】-CSDN博客

(这个博主有好几篇相关文章,可以去看看)

GitHub - stevens-armlab/Geomagic_Touch_ROS2: ROS2 Port of the ROS Driver for the Geomagic Touch Haptic Interface

(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库缺失,重新安装即可。

讯飞星火的回答:

6619fb639bf84a5d97d13bfb9f499908.png

一步之遥,这里需要去除包名称后面的-dev,安装即可解决这个问题。

sudo apt-get install libncurses5

30d49e1e2e5a431db718589376c298ff.png安装后,再次launch,成功。

78248efd40c347c68c16ca7ef40ee3aa.png

运动仿真、位姿获取功能实现

下载前述笔者上传的ROS功能包,放入工作空间的src文件夹下。按照教程做好准备工作(安装依赖等)后,如下:

40f4477c13a542a59042468d902364f9.png

编译成功

718ce464ccc54d2fbe27fd5b80d6807b.png

把笔头插回底座,以便程序一开始进行校准。

同时,如果是刚开机,记得给对应串口访问权限。

sudo chmod 777 /dev/ttyACM0

source一下后,运行launch文件,直接启动RVIZ界面,进行模型的同步运动。

source ./devel/setup.bash 
roslaunch geomagic_control geomagic.launch

此时RVIZ打开,可以看到模型文件,可以勾选显示坐标系、坐标系名称。

cbbddc9b1f1042d3998f0c070217f48d.png

移动手柄,模型跟随运动。 

Touch模型操作视频

这里有一点问题,笔水平放置时,模型中的笔仍是倾斜,有一定的不对应,可能是笔者没有做好校准。

同时,可以在rostopic中查看笔头位姿等。

6bdba2a7e8ac4675bd9ed3cc0d17d51c.png

e01af6f372c54c7b86929a13c93c41b3.png

到此,基本的功能成功实现。

祝科研有进,前程似锦。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值