王固兵,徐秀林,刘吉永,胡秀枋,丁瑞丰
上海理工大学医疗器械与食品学院,上海200093
随着生活节奏的加快,电脑以及智能手机的广泛应用,颈椎及脊柱的发病率逐年增加[1]。研究显示,30 岁以下的脊柱疾病发病率呈快速增长的趋势,脊柱疾病不再只是中老年人的常见病,而是越来越趋于年轻化[2-3]。儿童青少年中最常见的脊柱畸形在10~16岁年龄段的发病率高达2%~3%,女生占80%[4-5]。脊柱具有支持躯干、保护内脏、保护脊髓和进行运动的功能。因此,对脊柱的康复治疗非常迫切。
脊柱康复的传统方法是牵引和手术治疗等[6-8]。研究显示,爬行运动对于脊柱疾病的康复有着良好的效果[9-10]。此前,已有爬行训练器开始走向市场,但大多数的爬行训练器功能低下,只能实现单一的主动爬行运动,无法实现被动的运动并对运动进行定量的评估分析[11-12]。虽然也有些被动训练装置,但大多数是采用固定电机速度和距离的方式,不能针对不同病情的病人提供定制化的服务[13-16]。
针对现有设备的不足,本研究研制了一款脊柱康复训练仪。训练时,设备床体由电机升起,患者双手放在扶手上,双脚放在脚踏板上;根据患者的体型调节腹部的前后和上下位置;最后,把患者膝部放在膝关节垫子上合适的位置,进行主动或者被动训练。主动训练时,由患者拉动训练把手进行同步和交替运动;被动训练时,由手部驱动电机带动手和下肢进行同步和交替运动,矫正训练由安装在尾部的步进电机带动患者进行侧弯训练。
本研究研制的脊柱康复训练仪如图1所示,其整体结构设计方案是由脊柱康复训练仪的前部驱动电机通过连杆与锥齿轮的作用,最终将作用力输出到上肢的腕关节、肘关节以及肩关节。同时,膝垫通过传送带和前部电机相连,对膝关节施加作用力。因此,通过前部的驱动电机可以完成运动所需的肩关节、肘关节、胯关节和膝关节的屈伸运动。为符合人因工程学要求,该装置腹部高度可调节范围为15~25 cm,把手移动范围为80~160 cm,肩关节活动角度范围为45°~135°,肘关节屈伸角度范围为0°~90°。
图1 脊柱康复训练仪Fig.1 Spine rehabilitation training instrument
本研究针对该设备的运动要求,采用Denavit-Hartenberg(D-H)法对爬行训练仪进行运动学建模,得到其正逆运动学方程。使用MATLAB建模软件进行建模,并让其在预设康复运动轨迹下进行运动学仿真实验,对使用D-H 法求解的运动学结果进行验证。
脊柱康复训练仪可以通过前部驱动电机的带动实现平面内线性运动,从而实现上肢和下肢在平面内的运动训练需求。采用D-H法对爬行运动建模时,首先把肢体每一个部分设为一个杆件并为其指定一个本地的参考坐标系,然后为每个关节建立一个z轴和x轴[17-19]。得到脊柱康复训练仪的杆件坐标系后,根据一系列相邻坐标系之间的变换,从腹部保护装置的基座开始,直至变换到训练仪把手。这种变换关系可由4个齐次变换矩阵来描述,此关系式表示为:
把式(1)中的展开得:
肩关节内收外展、肩关节屈伸以及肘关节屈伸角度值分别为:
由式(3)和式(4)可知,当已知各关节运动角度时,可以对手部腕关节的位置进行求解。运用MATLAB 可以求得装置把手在基坐标轴上相对时间的轨迹如图3所示。
在已知手臂末端运动轨迹时,可求解出关节θ1、θ2、θ3的大小。相对于基坐标系x0y0z0,手臂执行末端坐标系x4y4z4是由x0y0绕z0旋转φ得到的,由此可以得到式(5)。
图2 上肢Denavit-Hartenberg矩阵坐标系Fig.2 Upper-limb Denavit-Hartenberg matrix coordinate system
表1 4种Denavit-Hartenberg变量在上肢部分的表示Tab.1 Representations of 4 Denavit-Hartenberg variables in the upper limbs
所以末端相对于基坐标的位姿矩阵为:
由T4=04T可得:
所以由式(7)解得:
图3 运动学模型末端轨迹Fig.3 Trajectories of kinematic model ends
式(8)中
联合式(10)和(11),可得:
由式(12)可计算出脊柱康复训练仪在任何期望位置时的关节角度值。
使用D-H矩阵算出正解与逆解后,利用MATLAB进行模拟与仿真。模型的建立是MATLAB模拟的关键,使用MATLAB中的Robotics Toolbox工具箱可实现脊柱爬行模型的建立。该模型是使用D-H法模拟连杆和关节的数据矩阵实现建立的。可以通过构建杆件间关系实现脊柱康复训练仪运动轨迹的规划,模拟人体真实爬行运动状态。在Robotics Toolbox中使用D-H方法求得参数L= Link([α,Α,θ,D]),其中的α,Α,θ,D与D-H矩阵的α,Α,θ,D一一对应。利用工具箱中的Link函数创建机械结构的各连杆[20];α代表了连杆之间的扭转角,以π为单位;A代表杆与杆之间的距离;θ代表连杆之间的夹角,以π为单位;D代表杆的长度。
其中各关节的数值是根据我国人体标准选定,代码如下:
L(1)=Link([0 50 0 0])
L(2)=Link([0 0 45 π/2])
L(3)=Link([0 19 85 0])
L(4)=Link([0 0 25.3 0])
L(5)=Link([0 0 0 0]) //六个杆的建模
L(1)代表训练仪床体到腹部保护托架部分,设置高度为50 cm;L(2)代表腹部到肩关节部分长度,设置为45 cm,与腹部保护托架呈π/2 的角度,即与地面水平;L(3)代表肩宽,设置为19.85 cm,为正常的一半;L(4)代表手臂的大臂,长为33.3 cm;L(5)代表手臂的小臂,长25.3 cm;L(6)是手部位置的一个坐标系,无实际长度。
运用SerialLink语句将之前所建立的杆连接成首尾相接的状态。具体如下:
aibot=SerialLink(L,’name’,’aibot’);//建立aibot
qa=[0 0 π/2 π/7 π/6 0];//设置初始位置的角度
qb=[0 0 π/2 π/8 0 0];//设置末端位置的角度
t=[0:0.1:2];//时间函数
[q1,qd1,qdd1]=jtraj(qa,qb,t);//关节轨迹规划
T=fkine(aibot,q);//运动学正解轨迹
qa=[0 0 π/2 π/7 π/6 0]表示一个六参数矩阵,和6个杆一一对应,并且给每个杆赋予一个规定的夹角。t=[0:0.1:2]代表一个时间向量,2 s内,以0.1 s为一个采样间隔。[q1,qd1,qdd1]=jtraj(qa,qb,t)是关节的空间规划表述形式,将轨迹的位移、速度以及加速度表达出来[21]。通过仿真可得预设三维脊柱康复运动轨迹的始末位置,如图4所示。根据脊柱康复训练仪手柄末端的px、py、pz的位置大小和式(12),得到各时刻θ1、θ2、θ3的大小,将求出的θ1、θ2、θ3与运动仿真中的测量得到的各关节角度进行比较,结果如图5所示。
图4 仿真运动轨迹始末位置Fig.4 Simulation motion track beginning and end positions
从图5可以看出,θ1的运动范围为55°~135°,θ2的运动范围为30°~90°,θ3的运动范围为22.5°~25.0°,θ1、θ2、θ3的运动范围满足表1中各关节对应的活动范围。由图5可以看出,通过逆运动学方程计算的θ1、θ2、θ3与仿真直接得到的各关节角度基本相同,且计算得到的角度值与测量得到的角度值最大误差不超过3°。
图5 计算得到的关节角度与测量得到的运动轨迹的比较Fig.5 Comparison of the calculated joint angles and the measured motion trajectories
本研究设计的爬行训练模型为脊柱疾病患者进行康复训练提供了运动算法的依据,所设计的脊柱康复训练仪可以有效地对脊柱进行训练,达到康复的效果。通过D-H 法建立了关节坐标系,求解出运动学模型,得到了训练需要的位置方程。在建立的MATLAB 模型中对关节输入位置信号,得到末端运动轨迹,对比所建立数学模型求出的轨迹和物理模型轨迹,验证了运动学正解的正确性,并对装置进行逆运动学计算,对求得的角度进行仿真验证。该研究结果可以为制定个性化脊柱康复训练方案提供科学的参考依据,建立的爬行模型也可以为脊柱疾病的康复训练提供理论支持。