适应患者个体差异的上肢康复机器人直接示教技术

2022-11-06 08:45林高张道辉赵新刚
中国康复理论与实践 2022年10期
关键词:步长上肢力矩

林高,张道辉,赵新刚

1.中国科学院沈阳自动化研究所/机器人学国家重点实验室,辽宁沈阳市 110016;2.中国科学院机器人与智能制造创新研究院,辽宁沈阳市 110169;3.中国医科大学智能医学学院,辽宁沈阳市 110004

0 引言

约90%的脑卒中偏瘫患者会在发病3 周内发生上肢痉挛,其中约1/3在发病6个月后仍然存在上肢运动功能障碍,导致部分患者生活不能自理[1-3]。上肢康复训练可以提高患者肌力,防止肌肉萎缩,且锻炼还会刺激神经系统,促进脑细胞功能的恢复,从而改善上肢运动功能[4-6]。传统康复治疗主要以康复治疗师“一对一”“手把手”的形式进行[7-8],难免会加重治疗师的工作负担。加上目前大部分上肢康复设备训练方式单一,无法有效解决因患者个体差异带来的上肢训练轨迹与强度不合适的问题,患者无法得到科学有效的治疗[9-11]。

智能康复训练方法不仅要考虑对患者进行康复训练时的科学有效性,还要考虑到康复治疗师操作的简单省时性[12-13]。机器人直接示教是通过人手直接拖动机器人手臂,使机器人按照人的意愿完成特定动作的一种示教方式,具有直观性强、操作简单、准确性高等优点[14-15]。目前,直接示教已被广泛运用于工业机器人中,并开始向医疗康复领域发展[16]。

在工业生产领域,Lee等[17]通过2个六维力传感器采集力信息,并利用对环境建模的方式简化教学路径,实现生产中去毛刺的示教任务。Lee 等[18]设计的两种末端示教执行器,通过机械的方式将操作力与示教力分离,完成了淬火与玻璃组装的示教任务。此外,直接示教还被广泛运用于焊接和喷涂机器人中[19-23]。以上的工业机器人直接示教功能较为单一,只能带动质量恒定的轻型末端执行器和进行一次定速的示教再现。

在医疗康复领域,Emken 等[24]针对平面两自由度下肢康复机器人提出一种步态示教训练控制策略。示教阶段,康复治疗师拖动患者下肢进行步态训练;示教再现阶段,机器人根据示教步态对患者进行被动式训练,此方法无下肢重力补偿,示教时较为困难。杨浩等[25]利用六维力传感器并结合导纳控制算法得到机器人末端位置信息,进而实现了平面三自由度卧式下肢康复机器人的直接示教,测试了人的抬腿训练效果。赵小磊等[26]通过在患者大腿与小腿间安装加速度传感器来获取康复治疗师的示教轨迹,并利用轨迹对患者进行抬腿训练,但此方法示教稳定性较差。当前多为在冠状面上对膝关节进行示教与示教再现训练,由于肢体重力与操作者手部抖动的影响,示教稳定性较低且示教轨迹的平滑性较差,导致训练时平稳度不高。相比于下肢的单自由度训练,上肢作为拥有多自由度的人体复杂运动系统[27],示教轨迹复杂度大大增加,使得直接示教技术在上肢康复机器人上的应用存在困难。

本研究基于末端牵引式上肢康复机器人,提出一种针对不同脑卒中患者进行上肢康复的直接示教训练系统,包括示教与示教再现两部分。通过加入对人体上肢的重力补偿与约束示教时步长的转换,实现对不同患者上肢的变负载自适应控制,有效提升上肢示教稳定性,并解决上肢多自由度训练轨迹问题,使操作者能带动受试者的上肢在多平面与空间上进行复杂轨迹的稳定示教。本研究提出一种多样化的示教再现方法,用于对不同患病程度患者进行不同强度的康复训练。

1 上肢康复机器人直接示教系统构建

1.1 示教系统硬件搭建

根据控制系统需求分析,系统的硬件组成见图1。

图1 系统硬件组成

上位机安装机器人操作系统(Robot Operating System,ROS)[28],用于接收和处理数据,以及显示人机交互界面。控制器通过网线与上位机进行连接,用于接收来自上位机的用户命令。机械臂采用仿人体手臂运动范围设计的ur5e 六自由度协作机械臂[29],有效载荷5 kg,工作半径850 mm,满足上肢康复训练要求。六维力传感器型号为ATI Delta IP60,精度为0.01%,力/力矩的测量范围分别为-660~660 N、-60~60 N·m,传感器参数满足直接示教要求。末端连接件由示教手柄、粘扣带和训练手套组成,其中示教手柄由3D 打印制作,能将示教者的力/力矩传递给传感器。粘扣带毛面固定在示教手柄表面,勾面缝合在训练手套掌面。患者戴上手套后即可通过粘扣带与示教手柄进行连接,使上肢偏瘫患者也能够“握住”手柄,具有穿戴简单、与人接触少等优点;当机械臂异常运动时,方便进行人机分离,确保训练过程的安全性。图2 为末端连接件的穿戴效果。

图2 末端连接件穿戴效果

1.2 示教系统软件实现

本研究基于ROS快速实现模块化且易扩展的上肢康复机器人控制系统。ROS 支持C++与Python 两种编程方式,并提供有Topic、Service、Parameter Service、Action 四种通讯方式[30-31],基于C++实现的本控制系统通讯架构见图3。

图3 末端牵引式上肢康复机器人系统通讯架构

在ROS中实现的功能包括示教与示教再现。通过Topic 订阅消息的方式获取传感器力/力矩值,经ur5e_wp 功能包中的坐标变换、重力补偿与移动/旋转步长计算,将力/力矩转换成末端位置偏移量,把位置偏移量加到当前的末端位姿上即得到下一时刻的末端位姿。然后经Moveit运动学求解与路径规划,输出一条规划好的轨迹,轨迹点通过关节空间下六个轴的位置、速度和加速度来描述,利用follow_joint_trajectory把轨迹数据封装成符合ROS通讯机制的Action类型信息发送给轨迹控制器。轨迹控制器通过轨迹插补的形式给每个位置伺服发送指令,完成轨迹的粗插补到细插补,然后再发送给每个位置伺服的过程。6 个位置伺服分别连接着ur5e 上的6 个关节电机,来控制电机同步完成插补运动。在此期间,关节状态控制器实时监听电机的状态,将关节运动信息反馈给Moveit,让Moveit 实时获取机器人的运动状态。同时通过Pose.msg 实时记录机械臂末端位姿,并利用轨迹复现节点来实现轨迹的再现。

2 数据预处理

2.1 力/力矩坐标变换

传感器Fx,Fy,Fz,Tx,Ty,Tz方向上的力/力矩值通过订阅geometry_msgs/Wrench.msg 得到。在力传感器坐标系下检测到的力/力矩需变换到基坐标系下来表示。Wrench.msg 中力/力矩向量在这两个坐标系间的变换通过WA=来完成[32],此处分两步进行力/力矩向量的变换。力向量的变换只与坐标系的旋转变换有关,而力矩向量的变换与坐标系的旋转变换和平移变换有关[33],力/力矩向量变换如下:

2.2 上肢与连接件重力补偿

对患者上肢与连接件进行重力补偿能使治疗师在拖动示教时保持平稳。如果机械臂末端与水平面平行,需要在z轴方向加上(末端朝上)或减去(末端朝下)上肢与末端连接件的合重力G。当机械臂末端偏离水平方向,即六自由度关节的关节4 或关节5 转动,还会在除竖直方向以外的其他方向产生分力。

当关节4转动时,有如下公式:

其中G为患者上肢与末端连接件的合重力,其大小通过读取变换后z轴方向上的力来表示。θ4为关节4的转角,Fz为垂直末端平面上的分力,Fs为平行末端平面上的分力。

当关节5转动时,有如下公式:

联立式(4)得:

Fx,Fy,Fz为各方向需要补偿的重力,θ4、θ5通过订阅话题/joint_states得到。

3 个性化康复训练实现方法

3.1 约束力/力矩-步长转换

为了实现机械臂末端跟随力/力矩方向运动,需将力/力矩转换成机械臂末端位置偏移量,再将末端位置偏移量加到当前的末端位姿上,得到机械臂末端下一时刻的位姿。

工具坐标系下x轴方向移动步长dx计算:

式(9)中FCx为示教者在工具坐标系x轴方向下施加力的大小,σfx为移动扰动阈值。为了防止示教时手部抖动的影响,设置当FCx为-3~3 N 时不移动。考虑到力过大时,机器人会产生较大幅度的移动,所以设置力的上限为30 N,当力超过这个值时,机械臂移动速度不再随着力增加而增加。其中kd为移动步长系数,用于调节移动灵敏度。本系统设置kd=0.02。同理可得dy和dz移动步长计算表达式。

工具坐标系下x轴方向的旋转步长θx计算:

式(10)中TCx为示教者在工具坐标系下绕x轴方向施加力矩的大小,σtx为转动扰动阈值。当TCx为-2~2 N·m 时不转动,且力矩的上限设定为10 N·m,当超过这个值时,机器人会以一个最大值转动。kθ为转动系数,本系统设置z轴kθ=1,x、y轴kθ=0.2。同理可得θy和θz转动步长计算表达式。力/力矩-步长转换函数见图4。

图4 力/力矩-步长转换函数

根据步长公式计算出移动/旋转变化量的大小ΔP(Δx,Δy,Δz,Δθx,Δθy,Δθz)后,加到当前末端位姿Pt(x,y,z,roll,pitch,yaw)中,得到末端需要运动到的位姿Pt+1(x+Δx,y+Δy,z+Δz,roll+Δθx,pitch+Δθy,yaw+Δθz),并把位姿信息通过控制器发送给ur5e,从而实现机械臂末端跟随力/力矩方向运动。当设置某一方向位置偏移量为0 时,实现机械臂末端只在某一平面内进行拖动的效果。

3.2 变强度康复训练方法

轨迹的记录与示教同时进行。通过Topic 通讯的方式订阅Pose.msg 来实时读取末端位姿,位置用x、y、z来表示,姿态用四元数x、y、z、w来表示。将读取到的轨迹点按顺序保存到文档中。记录频率过低会使轨迹的顺滑度和还原度较差,而频率过高轨迹点过密会降低机械臂的运行速度,并使Moveit完成路径规划的时间变长。通过对不同频率实验得到的示教轨迹进行比较,最终选择10 Hz作为示教点的采样频率。

对于不同年龄、性别和患病程度的患者,所需的训练强度也不尽相同。在直接示教得到适合患者的训练轨迹后,需根据患者的具体情况,设置适合患者的训练强度。通过编写轨迹复现节点来实现个性化训练,流程图见图5。

图5 个性化训练流程图

利用Moveit 中的arm.setVelocityScalingFactor()函数对机械臂末端的训练速度进行调节,训练次数和休息时间的调节则分别通过编写while 循环与sleep()函数实现。从存储轨迹点的文档中往复读取一遍轨迹点并加入到waypoints[]路点列表中,从而实现Moveit对一次训练轨迹的存储。通过fraction 的值来判断轨迹规划是否成功,当fraction=1 时,生成机械臂的运动规划数据后执行运动。当while 循环所剩余训练次数为0时,结束循环,从而达到变强度康复训练的目的。

4 试验和结果

4.1 试验对象

2021 年8 月,在沈阳自动化研究所招募5 例健康受试者进行试验。其中受试者1~3 为男性,受试者4~5 为女性,平均年龄(24.5±2.2)岁。5 例受试者的信息见表1。

表1 5例受试者上肢各部分长度比较

4.2 示教试验与轨迹差异性分析

受试者的右侧上肢通过连接件与机械臂末端进行连接,在上肢完全放松的情况下,示教者分别在水平面、矢状面、冠状面和三维空间训练模式下,对受试者上肢与机械臂末端一同进行拖动示教,动作分别为水平面上的扩胸运动(肘关节前屈后伸与肩关节水平内收外展)、矢状面上的出拳运动(肘关节前屈后伸与肩关节前屈后伸)、冠状面上的肩关节外展运动和空间中的任意运动。各模式下的示教动作以及5 例受试者上肢被拖动的轨迹见图6。

图6 示教动作与示教轨迹

进行示教时,扩胸、出拳、肩关节外展和空间运动的平均示教时间分别为5.6 s、4.1 s、4.4 s 和7.0 s。受试者的上肢在被拖动时产生的轨迹较为光滑,说明采集到的力/力矩能较好地转化为步长,同时通过设置某一方向的步长为0,能很好地限制机械臂末端只在水平面、矢状面和冠状面上运动。

对于水平面上的扩胸运动,轨迹发生转折前主要对应肘关节的前屈后伸,通过试验对比发现,受试者的前臂长度对轨迹转折前的弧长影响较大。前臂越长,对应的曲线弧长越长。轨迹发生转折后的运动主要对应肩关节水平外展与内收。全臂长度对轨迹的拖动范围和轨迹发生转折的位置影响较大。全臂越长,拖动范围越大,轨迹发生转折的位置越远,轨迹的拖动范围由大到小分别为轨迹受试者2>1>3>4>5,大小与受试者的全臂长度相对应。此外由于受试者身高、上臂长度等不同,每位受试者运动的初始位置和高度也存在差异,受试者1~5 运动的水平面相对于基坐标系xy平面的距离分别为0.172 m、0.178 m、0.173 m、0.162 m和0.154 m。

对于矢状面上的出拳运动,在身高、上臂长度、前臂长度等因素影响下,各受试者运动的初始位置高度以及所运动的矢状面也各不相同。受试者1~5 运动的初始位置高度相对于基坐标系xy平面的距离分别为0.065 m、0.060 m、0.072 m、0.089 m、0.090 m,最大差值为3 cm;而对应的矢状面相对于基坐标系yz平面的距离分别为0.138 m、0.092 m、0.114 m、0.052 m、0.045 m。同时轨迹的斜率和形状也存在差别。由于全臂长度的不同,受试者运动的位移也有所不同,位移由大到小为:受试者2>1>3>4>5,该结果与受试者的全臂长度的大小相对应。

对于冠状面上的肩关节外展运动,受身高、上臂长度的影响,各受试者运动的初始位置高度有所不同。受试者1~5 运动的初始位置高度距离基坐标xy平面的距离分别为0.012 m、0.001 m、0.022 m、0.038 m、0.062 m,最大差值为6.1 cm。由于前臂长度存在差别(受试者2>3>1>4>5),各受试者被拖动的轨迹并不在一个冠状面上。受试者1~5 被拖动的平面与基坐标系xz平面的距离分别为0.661 m、0.649 m、0.655 m、0.676 m、0.684 m,距离的大小与受试者前臂长度的大小相反,说明前臂越长,所运动的平面就越靠前。由轨迹可知,受试者上臂越长,对应的肩关节外展的圆弧半径越大。

对于三维运动,受试者1~3 示教的范围为80×50×50 cm,受试者4~5 示教的范围为60×50×30 cm。在此试验中,男性受试者在三维空间下示教的范围与女性受试者示教的范围整体相比较大。

由示教轨迹可知,在个体差异性影响下,不同受试者的训练轨迹和训练的位置也会有所差别。而通过此直接示教系统能简单快速地找到适合受试者自身的训练轨迹,再进行训练。

4.3 变强度康复训练试验与分析

为了方便更改试验参数,将本控制系统的程序接口集成到人机交互界面中(图7)。利用直接示教试验得到的受试者的上肢示教轨迹对受试者进行轨迹训练。训练速度划分为1 档至10 档,对应的速度分别为0.05 m/s、0.10 m/s、0.15 m/s、0.20 m/s、0.25 m/s、0.30 m/s、0.35 m/s、0.40 m/s、0.45 m/s、0.50 m/s。本试验设置男性受试者1~3 的训练速度为0.25 m/s,训练次数为10 次;女性受试者4~5 的训练速度为0.15 m/s,训练次数为20 次。默认一次训练结束后休息5 s,每完成4次训练休息10 s。

图7 人机交互界面

受试者1~5的训练轨迹(图8)一共分为四组,分别对应5 例受试者在水平面上的扩胸训练、矢状面上的出拳训练、冠状面上的肩关节外展训练以及空间训练。其中机械臂实影对应机械臂的真实运动,虚影对应机械臂在Moveit中的规划运动。

图8 4种训练模式下5名受试者的训练轨迹

受试者1~3与4~5分别在进行10次与20次的训练时,训练轨迹都与示教轨迹保持一致。在训练结束后,询问并汇总了各受试者在进行训练时的整体感受:训练动作与被拖动示教时的动作一致,在训练过程中上肢没有感到任何不适,且都得到了充分的伸展,同时表示训练强度也较为合适。最后,选择最接近平均值的受试者3 的训练轨迹供5 例受试者进行训练(见表1)。为了避免出现拉伤等情况,设置训练速度为0.05 m/s,训练次数为10次,训练效果见表2。

表2 使用受试者3的轨迹进行平面训练各受试者训练效果

通过试验发现,对于不合适的轨迹,受试者会出现训练动作不规范、训练不到位或过度拉伸等情况。而通过此直接示教系统,能简单快速地找到适合受试者的训练轨迹和设置合适的训练强度后进行训练,从而使受试者得到更有效、更安全和更精准的上肢康复训练。

5 讨论

针对不同患者上肢训练轨迹与训练强度存在差异的问题,本文设计了一种末端牵引式上肢康复机器人直接示教技术,并验证其可行性。对所提出的上肢康复机器人分别进行水平面、矢状面、冠状面和三维空间状态下的示教试验,得到的轨迹顺滑且轨迹走向符合施力方向,整个示教过程只需4~7 s 即可完成,配合直接示教试验得到的轨迹对受试者进行了上肢变强度康复训练。试验结果表明,在不同的示教空间下,不同的受试者在完成相同的训练动作时,所对应的训练轨迹存在一定的差异,如使用不合适自身的轨迹进行训练,则会出现训练动作不规范、训练不到位或过度拉伸等情况。对于不同的受试者,本文所提出的直接示教系统能稳定快速地规划出适合各受试者自身的各平面与空间训练轨迹并进行了不同强度的康复训练,训练轨迹合适且精准。

本文所提出的直接示教系统也存在不足之处,比如在进行力矩与旋转步长转换时,x轴与y轴方向上的旋转步长转换效果欠佳,本试验通过设置x轴与y轴的旋转步长系数kθ较小的方法来减少误差,但这会出现x、y轴旋转角度过小的问题,下一步将针对这一问题引入重力矩补偿的方法。

利益冲突声明:所有作者声明不存在利益冲突。

猜你喜欢
步长上肢力矩
前臂完全离断再植术后持续康复护理对上肢功能恢复的影响
自然梯度盲源分离加速收敛的衡量依据
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
一种改进的变步长LMS自适应滤波算法
双上肢训练在脑卒中康复护理中的应用分析
Asian Americans have better outcomes of non-metastatic gastric cancer compared to other United States racial groups: A secondary analysis from a randomized study
两臂血压为何会不同
一种非线性变步长LMS自适应滤波算法
转向系统力矩特性理论研究与仿真分析
发动机阻力矩计算和起动机介绍