首页 > 其他分享 >因时五指灵巧手的学习测试记录

因时五指灵巧手的学习测试记录

时间:2024-08-23 09:22:47浏览次数:8  
标签:set inspire hand rosservice call 测试 五指 灵巧

文章目录


前言

熟悉了解五指灵巧手的硬件结构和通讯协议,并通过在上位机软件、虚拟机系统(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

相关文章

  • qt5.14.2 MSVC opencv(不结合vs)路径添加问题 测试通过
     不换行写法1win32:CONFIG(release,debug|release):LIBS+=-LG:/opencv4.4.0/opencv4.4_vs_msvc19_qt6.5/x64/vc17/lib/-lopencv_aruco440-lopencv_bgsegm440-lopencv_bioinspired440-lopencv_calib3d440-lopencv_ccalib440-lopencv_core440-lopencv_cvv440-lopen......
  • 软件测试岗位的经典面试题
    昨天辅导星球一位同学的终面,他提到了前两轮技术面试中面试官问到的几道面试题,他回答的不是特别好,问我有没有更好的方法。我看了一下,都是很经典的测试岗位面试题。在我近十年的测试职业生涯中,我也面试过不少软件测试岗位的候选人,这几个问题我也经常问到。但很多同学在这几个高频......
  • 测试基础
    白盒测试怎么做:1.静态扫描2.动态扫描,构造测试数据去检查。语句覆盖--覆盖所有代码3.判定覆盖每个判定条件,每个判定都需真假值4.条件覆盖每个条件,都需要有一个真假值5.判定/条件覆盖6.组合覆盖,条件之间的组合场景7.路径覆盖---后面的黑盒流程分析法安全测试我们常用的方法......
  • WebAPI中写单元测试
    首次在WebAPI中写单元测试xUnit这次我使用的是xUnit测试框架,而不是VS自带的MSTest框架。在添加新建项目时选择xUnit测试项目就行了。目前只体验到了一个差别,即xUnit可以使用特性向测试方法传参,而不用在测试方法中一个赋值语句一个个去定义参数,这是比较方便的。单元测试有一个......
  • 压力测试Monkey命令参数和报告分析
    在移动应用的开发过程中,确保APP在高负载下依然能够稳定运行,是保证用户体验的重要一环。为了测试应用的稳定性和性能,压力测试变得至关重要。而其中,Monkey工具以其随机生成事件的方式,成为了开发者进行压力测试的利器。在使用Monkey进行压力测试时,我们应该如何设置合适的命令参数?测......
  • Selenium + Python 自动化测试22(PO+数据驱动)
            我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。上一篇我们讨论了PO模式和unittest框架结合起来使用。        本篇文章我们综合一下之前学习的内容,如先将PO模式、数据驱动思想和我们生成HTML报告融合起来,综合的灵活的使用......
  • 达梦读写分离集群的配置与测试
    操作系统版本CentOS7.6数据库版本DM8_20240712数据守护集群版本V4.0目录1.环境准备2.dm_svc.conf配置3.实现原理4.测试1.环境准备        配置读写分离集群,需要先搭建即时归档或实时归档模式的主备集群。我们使用上篇文档《在一台主机上搭建达梦主备集群......
  • 2024暑假集训测试31
    前言比赛链接。本来挺水的一场,挂分挂狠了,T1被unordered_map害死了;T2赛时一看这不OSU嘛,反正也会先把部分分打满回来再写吧……T3只想说出题人三天不骂上房揭瓦,你大样例锅了就锅了能不能说明白,就发一条消息“T3样例输出”总共\(6\)个字,鬼知道你说的是大样例,看一......
  • 如何对加密货币交易所进行渗透测试
    原创KK安全说近期,我个人突然对了货币交易所的渗透产生了兴趣,又看到最近Wazir-X多重签名钱包遭受网络攻击,2.3亿美元被盗,就在这里和大家讨论加密货币交换的安全性,我们将了解加密货币交换的组成部分以及如何对其进行渗透测试。1.用户界面(网络和移动应用程序):这是在网站或移动应......
  • 南京理工大学C++程序设计基础期末考试上机测试题组3答案详细解析
    角谷步数(100分)任意的正整数,比如5,我们从它开始,如下规则计算:如果是偶数,则除以2,如果是奇数,则乘以3再加1。如此循环,最终必会得到“1”!比如5的处理过程是:5168421一个正整数经过多少步才能变成1,称为角谷步数。对于5而言,步数也是5;对于1,步数为0。输入一个整数n(1<n<300)......