APP下载

Kinect在上肢康复机器人运动控制中的应用

2018-08-21刘志辉王生泽

关键词:关节点电位器体感

袁 涛, 刘志辉, 舒 畅, 王生泽

(东华大学 机械工程学院, 上海 201620)

当前,随着我国老龄化程度不断加剧,脑血管病已成为影响我国老年人身体健康的主要疾病,尤其是在脑卒中偏瘫后,患者的肢体运动受损,往往需要通过康复训练对脑部损伤部位进行刺激并防止患肢的肌肉发生萎缩,以达到康复目的。传统康复手段主要依赖于康复医师与患者一对一进行徒手训练,不仅效率低,而且缺少可以量化的客观评价方法,不利于对康复效果进行深入研究。为了解决这些问题,康复机器人及技术应运而生。国外发达国家在这一领域的研究已处于领先水平,如美国麻省理工学院的MIT-MANUS机器人、斯坦福大学的MIME机器人以及瑞士皇家理工学院的ARMin机器人等,从早期的末端牵引式机器人升级到外骨骼式的多自由度机器人。国内在这一领域的研究起步较晚,较早从事相关研究的清华大学开发出了2自由度的末端牵引式上肢康复机器人;哈尔滨工业大学较早地开展了外骨骼式康复机器人的研究,开发出了5自由度上肢康复机器人系统[1-2];东华大学开发了6自由度上肢康复机器人,该机器人使用了气动驱动与钢丝绳柔性传动[3]。

如今,康复机器人已经是服务型机器人中的重要分支,对其运动控制模式的研究已成为一个很重要的研究内容。目前已有的控制模式大多基于读取控制程序中的固有康复运动数据或直接通过康复机器人上的传感器读取患者正常肢运动数据来带动患肢进行随动模式治疗,前者因缺少可定制性而难以满足康复治疗的个性化需求,后者虽然在一定程度上满足了对康复运动的定制需求,但是对患者自身提出了较高要求,局限性很大。本文基于Kinect体感摄像头构建了一套康复运动信息数据采集方案,可离线或在线导引上肢康复机器人运动控制。

本文以实验室内的上肢康复机器人为对象,通过Kinect捕捉人体上肢关节数据,并采用Unity软件平台对数据进行处理与显示,设计了Unity与LabVIEW平台的通信接口,并分析了该方法与传统传感器技术之间的差别。

1 主动臂带动从动臂控制方法的改进

本文以目前实验室内的6自由度上肢康复机器人为基础[3],其康复训练机械臂采用气压驱动,实现了肩关节、肘关节、腕关节处6个自由度的控制。通过在健康肢侧机器人主动臂上安装旋转式电位器,经由CompactRIO平台的输入模块接收电位器数据,再通过上位机LabVIEW程序处理后由CompactRIO平台输出模块对患肢侧机器人从动臂的控制气缸传达指令。主动臂控制从动臂流程如图1所示。

图1 主动臂控制从动臂流程示意图Fig.1 Flowchart of master-slave control mode

在主动臂控制从动臂模式下可以实现患者以健康肢带动患肢运动达到康复训练,但是对患者健康肢有较高要求,并且由于两侧机械臂活动空间存在交集,导致单侧机械臂的活动范围受限。此外,由于患者肢体有机械臂外骨骼覆盖,在康复治疗过程中,康复医师难以直接对康复运动轨迹进行调整,不便于康复医师对患者治疗方案的灵活定制。

综上所述,本文尝试引入Kinect对主动臂的位移传感器进行替代。Kinect是由微软公司发布的一款体感摄像头,是近年来体感设备的大众化产品,包含有一个红外线发射器与摄像头、彩色摄像机及尺寸深度传感器,能以30帧/s的速率进行采样,检测范围为1~4 m,2.0版本的输入延迟可控制在100 ms以内。Kinect最早用于体感游戏的开发,之后由于官方的SDK开发工具包的发布,使得开发人员可以利用PC对其功能进行二次开发,极大地拓展了应用范围。同时由于Kinect定位于普通消费级产品,连同Windows适配器在内整套售价在200美元左右,可有效降低系统构建成本。因此,Kinect相当符合康复机器人的应用场景[4]。

本文通过体感摄像头可直接捕捉医师或医师指导的康复训练标准手臂动作,由Unity收集处理后与LabVIEW上位机程序进行通信。目前已经实现了对肩、肘两部分4个自由度的运动数据处理与运动控制,并将所采集的运动信息数据与传统旋转电位器方案测取的运动信息数据进行了对比分析,验证了该方案的可行性。

2 数据采集与通信功能的实现

2.1 利用Adobe Fuse生成虚拟人物模型并导入Unity

为了将采集到的人物姿态数据具象地由图像表示出来,本研究在Unity中导入一个人物模型用于显示手臂姿态,由于该虚拟形象更加注重光照与纹理处理而对其几何的精确度要求并不高,所以选择直接利用Adobe Fuse软件来生成模型,格式为FBX。使用Adobe Fuse能够在数分钟内创建一个3D角色模型,提供诸多自定义属性,并可输出多种格式,兼容3D MAX、MAYA、Unity等三维软件,同时还能为该模型生成骨骼关节点。本文仅取用左肢关节点,具体关节层级关系如图2所示,整个左肢为串联结构,由上臂、前臂、手及肩、肘、腕3个关节构成。Kinect在采集上肢数据时,以肩、肘、腕3个关节点为数据测点,可给出各关节点的空间位置坐标并驱动模型。

图2 左肢关节层级关系Fig.2 Left-limb joint relationship

为了能够驱动该模型运动,在将模型导入至Unity后需要在软件内对其创建Avatar,并将模型的骨骼关节点与Avatar中节点进行绑定,结果如图3所示。

图3 Avatar与骨骼关节点绑定关系Fig.3 Binding relationship between Avatar and bone joints

2.2 Kinect体感摄像头与Unity的连接

Kinect到目前为止已经发布了第二代,Kinect 2.0相比1.0版本将图像分辨率由640像素×480像素大幅度提升至1 920像素×1 080像素,对骨骼关节点数据的采集精度也更高,更重要的是官方发布了最新的Kinect for Windows SDK 软件开发工具包2.0版本,并且提供了官方的Unity插件Unity Pro packages,通过该插件可直接在Unity中调用Kinect API,快速地获取骨骼关节数据并绑定至人物模型上,相比以往的开发流程大幅度地降低了开发难度。

在导入Unity Pro packages后,即可在创建的脚本内调用KinectSDK相应接口,使用KinectManager.Instance.GetJointPosition()命令来获取对应关节点的数据,通过计算处理后,使用transform.rotation()命令来对Avatar进行驱动,与之绑定的人物虚拟模型也会做出相应的动作在屏幕上进行显示。再由从Kinect获取的各关节点原始数据计算得到所需的4个自由度对应的角度数据,即以肩部为原点、竖直方向为z轴、人物正前方为x轴建立坐标轴后上臂绕3个轴的旋转角以及上臂与前臂的夹角,用来传递给LabVIEW程序。

2.3 Unity与机器人控制系统的通信

运动数据由Kinect摄像头采集并经由Unity处理后,还需要发送给康复机器人的控制系统用于驱动机械臂的运动。目前,康复机器人的控制方法多种多样,例如可编程逻辑控制器(PLC)、ARM微处理器和运动控制卡等,考虑到采集方案的兼容性需求、系统链接的便利性以及数据交换性能要求,本文采用数据库为中介来传递运动数据。目前主流的控制方法均支持对数据库的访问,故保证了兼容性。由于Unity基于mono环境,考虑到兼容性以及轻量化,选择SQLite作为数据库平台,经测试后发现该平台满足本文方案所需的性能要求,在持续更新数据库数据时不会产生拥塞。

在Unity中使用SQLite以动态链接库的形式实现,将相应Mono.Data.Sqlite.dll文件导入Unity工程后,即可在脚本内构造数据库链接并打开数据库对其进行更新操作。本文中上肢康复机器人的控制系统是基于CompactRIO与LabVIEW平台的,以LabVIEW访问数据库为例,先将SQLite的访问读取操作封装在使用VC++编写的动态链接库中,通过LabVIEW对动态链接库进行调用来执行数据的读取,其彼此之间的通信模式如图4所示。

图4 通信模式图
Fig.4 Diagram of communication mode

3 试验与分析

数据采集过程与系统结构如图5和6所示,其中图5中左下图中人物模型由Adobe Fuse生成。康复机器人主动臂动作由人体手臂驱动,在机器人主动臂运动信号由电位传感器采集的同时,人体手臂运动信号由Kinect采集,然后汇总到两通道LabVIEW程序中进行处理。

图5 数据采集过程Fig.5 Data collection process

图6 试验系统结构示意图Fig.6 Diagram of experimental system structure

将采集到的旋转电位器和Kinect输出波形与手臂运动时肘部夹角变化的理想波形进行对比,如图7所示。信号采集部位为肘部,所做动作为前臂往复摆动。实线波形为采集自Kinect的数据信号,根据采集到的肩、肘、腕3个关节的坐标数据计算得到肘部夹角,以角度值进行输出;短划线波形为旋转电位值的电压波形数据;虚线波形为前臂往复运动时肘部夹角变化的理想波形。电压与旋转角度满足线性关系,在试验前已经对电压与旋转角度值进行了标定,手臂伸直状态对应0°位置。两路信号在上升段与下降段的误差平均值为10.6%。由于旋转电位器安装在机械臂上,在波谷对应的位置会受到执行机构换向的影响,而Kinect不依赖于机械臂,因此两者的信号在波谷处吻合度偏低,但Kinect的输出波形更符合理想波形。可见,使用Kinect替代原先电位传感器方案简捷可行。

图7 Kinect、旋转电位器输出波形与理想波形对比Fig.7 Waveform comparison between Kinect/ rotary potentiometer and ideal situation

4 结 语

本文应用Kinect体感摄像头和Unity平台构建了一种上肢运动数据采集系统,并且实现了该系统与上肢康复机器人上位机LabVIEW程序的数据传输。将该系统与原有传感器数据采集方案进行对比分析,证实本文方案简捷可行。本系统与传统的康复机器人控制模式相比具有以下优点:

(1) 该采集系统构建成本低廉,性能参数满足康复机器人需求,便于普及;

(2) 可以离线进行康复训练运动数据的采集,整个采集过程不必依赖于康复机器人的机械结构,也无需在康复机器人上设计动作采集系统,有助于降低康复机器人的成本;

(3) 能够更加有效地从医师或者健康肢体上采集康复动作进行录制保存,不再受限于一台机器人只能搭乘一人的硬件限制,可以做到训练过程中的医患实时交流修正,保存的动作方案文件可以在患肢康复状态相似的同一型号康复机器人之间进行分发,累积评价数据为康复治疗的科学研究提供大数据支持。

猜你喜欢

关节点电位器体感
体感交互技术在脑卒中康复中的应用
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
人体体感感知机械手设计与实现
Hepatitis C virus antigens enzyme immunoassay for one-step diagnosis of hepatitis C virus coinfection in human immunodeficiency virus infected individuals
非触控式的体感机械臂交互控制系统研究
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
Mixly开源项目设计10:用自制多量程欧姆表测量电位器的电阻
体感语境下的交互行为设计