文章目录
前言
熟悉了解五指灵巧手的硬件结构和通讯协议,并通过在上位机软件、虚拟机系统(ubuntu)以及ubuntu系统上调试记录整个学习测试过程。(以因时五指灵巧手为例)
一、五指灵巧手的硬件结构和通讯协议
RH56 系列灵巧手是一款集成小体积大扭矩微型伺服电缸而设计生产的机械灵巧手,该灵巧手集成了 6 个微型伺服电缸,用户接口采用 RS232、RS485 和 CAN 通信接口,内置灵敏的压力传感器,通过设置不同的阈值方便用户进行不同硬度物体的抓取,简洁高效的接口控制指令可使用户快速实现对灵巧手的操控,优质的性能使该灵巧手应用于服务机器人、教学教具、假肢等领域。
灵巧手的硬件结构尺寸如下:
灵巧手的正反面结构以及参数分析如下:
6个主动关节:由6 个微型伺服电缸驱动,内置驱动和力传感器,拇指有2个自由度,直线和旋转两个方向运动
6个被动关节:内置连杆和弹簧,主动关节驱动
灵巧手的性能参数如下:
通讯协议:RS232、RS485 通讯参数都是 115200bps、8 数据位、1 停止位、无奇偶校验,详细通讯协议及数据格式见官方手册。
后续测试以RS485通讯为例。
二、通过上位机测试软件测试五指灵巧手性能
1.上位机软件与灵巧手硬件连接
硬件准备:五指灵巧手设备、usb转RS485串口工具,可调电源或者24V直流电源
软件准备:仿人五指灵巧手-上位机测试软件V3.1_cn
设备连接:打开上位机测试软件选择COM端口和波特率进行连接,连接成功后如下图显示UART连接成功,点击刷新参数可看到各关节角度、速度、力度等设置参数信息以及实际状态反馈信息。
注意:校准过程必须要保证灵巧手处于空载状态,即手指不能接触任何物体。
2.上位机软件测试灵巧手设备
基于仿人五指灵巧手-上位机测试软件可以灵活拖拽手指关节进行操作,也可设置角度和速度等参数进行关节操作,同时也可以通过参数中的动作序列功能完成不同的自定义动作设置和操作,具体参数设置如下图所示。
动作序列:是指一组连续手势动作,一套动作序列数据包含多个手势(最多 8 个)的设定角度、速度、力控值以及延时时间(ms),灵巧手可按照这数据按顺序和延时时间做出每一步的手势,行程一套连续的动作序列。
图1:通过Step1和Step2设置各关节的角度、速度、力度以及延时时间参数,保存下载参数到驱动器并测试(如下图右上角参数设定),最后执行结果如右下角显示的灵巧手“ok手势”。
图2:通过Step1、Step2、Step3和Step4设置各关节的角度、速度、力度以及延时时间参数,保存下载参数到驱动器并测试(如下图右上角参数设定),最后执行结果如右下角显示的灵巧手“握拳手势”。
二、通过虚拟机测试五指灵巧手的问题记录
准备工作:
(1)连接灵巧手,查看串口信息:
dmesg|grep tty*
正常结果应该会显示ttyUSB0、ttyUSB1或ttyUSB*等,但是虚拟机中查询结果显示:ttyS0(如下图中显示)
(2)更改串口的读写权限
#根据ttyUSB*或者ttyS*根据查询信息设置
sudo chmod a+rw /dev/ttyS*
(3)ROS安装包程序测试
##创建catkin工作目录
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
##将准备好的ROS包inspire_hand.zip 解压放到catkin_ws目录下的/src文件夹下
##对安装包进行重新编译
catkin_make
##使用launch命令来启动程序,或者在launch文件中指定串口名称,否则需要单独指定:
##(1)如果串口名称是默认的ttyS0,终端指令:
cd ~/catkin_ws
source devel/setup.bash
roslaunch inspire_hand hand_control.launch test_flag:=1
##(2)如果串口名称非默认的ttyS0,终端指令:
cd ~/catkin_ws
source devel/setup.bash
roslaunch inspire_hand hand_control.launch port:=/dev/ttyS* test_flag:=1 (* 是串口号)
##新开终端,查看service list,可根据rosservice list通讯实现灵巧手的功能配置和状态监测:
cd ~/catkin_ws
source devel/setup.bash
rosservice call /inspire_hand/set_pos pos1 pos2 pos3 pos4 pos5 pos6 #设置六个驱动器位置------参数pos范围0-2000
rosservice call /inspire_hand/set_angle angle1 angle2 angle3 angle4 angle5 angle6 #设置灵巧手角度------参数angle范围-1-1000
rosservice call /inspire_hand/set_force force1 force2 force3 force4 force5 force6 #设置力控阈值------参数force范围0-1000
rosservice call /inspire_hand/set_speed speed1 speed2 speed3 speed4 speed5 speed6 #设置速度------参数speed范围0-1000
rosservice call /inspire_hand/get_pos_act#读取驱动器实际的位置值
rosservice call /inspire_hand/get_angle_act#读取实际的角度值
rosservice call /inspire_hand/get_force_act#读取实际的受力
rosservice call /inspire_hand/get_pos_set#读取驱动器设置的位置值
rosservice call /inspire_hand/get_angle_set#读取设置的角度值
rosservice call /inspire_hand/get_force_set#读取设置的力控阈值
rosservice call /inspire_hand/get_error#读取故障信息
rosservice call /inspire_hand/get_status#读取状态信息
rosservice call /inspire_hand/get_temp#读取温度信息
rosservice call /inspire_hand/get_current#读取电流
rosservice call /inspire_hand/set_clear_error #清除错误
rosservice call /inspire_hand/set_default_speed speed1 speed2 speed3 speed4 speed5 speed6#设置上电速度------参数speedk范围0-1000
rosservice call /inspire_hand/set_default_force force1 force2 force3 force4 force5 force6# 设置上电力控阈值------参数forcek范围0-1000
rosservice call /inspire_hand/set_save_flash#保存参数到FLASH
rosservice call /inspire_hand/set_force_clb#校准力传感器
(4)测试结果:在虚拟机中启动launch文件后,rosservice list显示各个话题服务列表,但是出现hand:serial port no opend,应该与虚拟机的USB串口连接有关问题,串口显示的是ttyS0且读取和写入服务不响应,因此后面会在非虚拟机环境下重新测试。
二、通过ubuntu系统测试五指灵巧手性能
准备工作:
(1)连接灵巧手,查看串口信息:
dmesg|grep tty*
正常结果应该会显示ttyUSB0、ttyUSB1或ttyUSB*等,查询结果显示:ttyUSB0
(2)更改串口的读写权限
#根据ttyUSB*查询信息设置
sudo chmod a+rw /dev/ttyUSB*
(3)ROS安装包程序测试,目前在ros1版本测试均可兼容
##创建catkin工作目录
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
##将准备好的ROS包inspire_hand.zip 解压放到catkin_ws目录下的/src文件夹下
##对安装包进行重新编译
catkin_make
##使用launch命令来启动程序,或者在launch文件中指定串口名称,否则需要单独指定:
##(1)如果串口名称是默认的ttyUSB0,终端指令:
cd ~/catkin_ws
source devel/setup.bash
roslaunch inspire_hand hand_control.launch test_flag:=1
##(2)如果串口名称非默认的ttyUSB0,终端指令:
cd ~/catkin_ws
source devel/setup.bash
roslaunch inspire_hand hand_control.launch port:=/dev/ttyUSB* test_flag:=1 (* 是串口号)
##新开终端,查看service list,可根据rosservice list通讯实现灵巧手的功能配置和状态监测:
cd ~/catkin_ws
source devel/setup.bash
rosservice call /inspire_hand/set_pos pos1 pos2 pos3 pos4 pos5 pos6 #设置六个驱动器位置------参数pos范围0-2000
rosservice call /inspire_hand/set_angle angle1 angle2 angle3 angle4 angle5 angle6 #设置灵巧手角度------参数angle范围-1-1000
rosservice call /inspire_hand/set_force force1 force2 force3 force4 force5 force6 #设置力控阈值------参数force范围0-1000
rosservice call /inspire_hand/set_speed speed1 speed2 speed3 speed4 speed5 speed6 #设置速度------参数speed范围0-1000
rosservice call /inspire_hand/get_pos_act#读取驱动器实际的位置值
rosservice call /inspire_hand/get_angle_act#读取实际的角度值
rosservice call /inspire_hand/get_force_act#读取实际的受力
rosservice call /inspire_hand/get_pos_set#读取驱动器设置的位置值
rosservice call /inspire_hand/get_angle_set#读取设置的角度值
rosservice call /inspire_hand/get_force_set#读取设置的力控阈值
rosservice call /inspire_hand/get_error#读取故障信息
rosservice call /inspire_hand/get_status#读取状态信息
rosservice call /inspire_hand/get_temp#读取温度信息
rosservice call /inspire_hand/get_current#读取电流
rosservice call /inspire_hand/set_clear_error #清除错误
rosservice call /inspire_hand/set_default_speed speed1 speed2 speed3 speed4 speed5 speed6#设置上电速度------参数speedk范围0-1000
rosservice call /inspire_hand/set_default_force force1 force2 force3 force4 force5 force6# 设置上电力控阈值------参数forcek范围0-1000
rosservice call /inspire_hand/set_save_flash#保存参数到FLASH
rosservice call /inspire_hand/set_force_clb#校准力传感器
(4)测试结果:在非虚拟机的ubuntu系统中启动launch文件后,rosservice list显示各个话题服务列表,而且显示Hand:Serial port /dev/ttyUSB0 openned.调用灵巧手rosservice服务接口,可以设置灵巧手关节的角度和力度等参数以及接收状态反馈信息,测试情况正常。
注意:如果系统没有串口驱动,可能需要安装ch341的驱动文件:
#https://github.com/WCHSoftGroup/ch341ser_linux
1. Open "Terminal"
2. Switch to "driver" directory
3. Compile the driver using "make", you will see the module "ch341.ko" if successful
4. Type "sudo make load" or "sudo insmod ch341.ko" to load the driver dynamically
5. Type "sudo make unload" or "sudo rmmod ch341.ko" to unload the driver
6. Type "sudo make install" to make the driver work permanently
7. Type "sudo make uninstall" to remove the driver
总结
通过1天时间熟悉了解五指灵巧手的硬件结构和通讯协议,并通过在上位机软件、虚拟机系统(ubuntu)以及ubuntu系统上调试,文章主要记录自己的学习过程,演示demo见视频所示。(五指灵巧手动作演示url—https://live.csdn.net/v/embed/419356)
标签:set,inspire,hand,rosservice,call,测试,五指,灵巧 From: https://blog.csdn.net/weixin_40514381/article/details/141427406