方法文章

触觉/图形康复:将机器人整合至虚拟环境库并应用于中风康复治疗

15.9K 次观看

DOI:

10.3791/3007

2011年8月8日

本文内容

摘要

近年来,人机交互系统出现了大量发展前景。本文概述了一种新型机器人设备与开源软件的集成,该集成可快速实现一系列交互功能。随后,我们介绍了一种神经康复应用的临床应用。

摘要

近期针对交互式设备在长期治疗训练中应用的研究,揭示了机器人技术结合图形化及其他形式生物反馈的新前景。以往的人机交互系统需要为每种机器人分别编写不同的软件指令,导致每次有新系统出现时都会产生不必要的开发开销。例如,当为某一特定机器人编写了触觉/图形虚拟现实环境以提供触觉反馈后,若要更换为另一种机器人,则必须重新编写程序。然而,开源社区近期提出了一种类封装(wrapper class)方法,能够使不同机器人产生几乎相同的响应。这一方法可使全球研究人员利用共享代码开展相似实验,从而在模块化地“替换”一种机器人为另一种时,不会影响开发时间。本文阐述了成功创建并实现一种机器人封装类,并将其集成到开源的 H3DAPI 中,该 API 整合了各类机器人最常用的软件指令。

方案

引言

在所有人机交互(HMI)领域中,对直观且高效交互环境的需求日益增长。众多行业对人机交互的依赖程度持续加深,例如:康复机器人、汽车工业、金属制造、包装机械、制药、食品、饮料和公用事业。这些行业中采用的技术包括:显示终端、个人计算机以及人机交互软件。这些技术可组合使用,以实现无限多样的功能。

机器人可用于促进与用户的直接互动,例如担任音乐教师。例如,早稻田大学的研究人员开发了一款能够演奏萨克斯管的机器人,用以教授人们演奏技巧,并理解师生之间的互动过程1。其他机器人研究者则研制了一种基于视觉的飞行机器人,以探索人工智能如何发展出与环境之间的智能交互能力2。本文的重点则集中在康复机器人领域。

在研究与工业领域,新产品和用户需求的变化速度持续加快。这些需求对可扩展性提出了更高的挑战。因此,代码设计已成为及时满足这些需求的关键环节。一个优秀的架构方案应具备易于互换的图形-机器人系统,并包含驱动支持。H3DAPI 架构正是为满足这些需求而设计,因此已开发出相应的封装类。此外,H3D 专为虚拟现实环境设计,适用于康复机器人等应用场景。

神经康复机器人旨在利用机器人辅助康复专业人员。这些机器人提供的辅助以力场的形式实现。诸如 Shadmehr 和 Mussa-Ivaldi 等运动指令研究者曾使用力场来促进运动适应,并发现:1)针对外加力场的适应可在多种类型的运动中发生,包括但不限于伸手运动;2)适应效应可泛化至经过外部力场相同区域的不同运动3。来自生物力学工程师在基于表现的渐进式机器人辅助治疗方面的研究表明,重复性、任务特异性、目标导向的机器人辅助治疗在减轻中风后患侧上肢运动功能障碍方面是有效的4,但其确切的治疗效应和参数仍处于研究之中。

感觉反馈会影响学习与适应过程。因此,下一个合乎逻辑的问题是:人为增强此类反馈的强度是否能够促进更快或更彻底的学习/适应?一些研究发现,施加更强的感觉反馈力或视觉提示以放大错误,可提供足够的神经刺激,从而促进更高水平的适应/学习5,6。这种现象被称为“误差增强”(error augmentation)。该现象可能源于以下机制:当运动控制行为的结果偏离理想状态时,我们的内部模型会根据误差的大小进行自我调整。因此,随着内部模型逐渐接近外部环境的真实状态,执行任务时的误差也随之减小。

研究持续支持通过长期练习功能相关的活动来恢复功能,尽管当前许多医疗政策限制了患者与治疗师相处的时间。一个引人关注的问题是,这些新技术的应用是否能够超越简单地增加现有治疗模式的剂量。人机交互研究在运动学习领域揭示了新的前景,在某些情况下可为治疗过程带来额外价值。结合计算机显示的专用机器人设备可以增强错误反馈,从而加速、加强或触发运动再学习。本文将介绍一种利用已开发系统进行临床干预的方法学,作为此类技术应用的一个实例。

1. 为机器人建立 HAPI 包装类

  1. 通过创建您自己的 .cpp 和头文件,为 HAPI 触觉库创建一个封装器。例如,我们将使用名称 HAPIWAM.cpp 和 HAPIWAM.h。
  2. 将 HAPIWAM.cpp 放置到源代码目录:HAPI/src
  3. 将 HAPIWAM.h 放置到头文件目录:HAPI/include/HAPI
  4. 在 HAPIWAM.h 文件的顶部,包含您机器人主头文件,以 Barrett WAM 为例,应包含:

extern "C" {
#include
}
#include

注意:由于所包含的库是用 C 语言编写的,而 H3DAPI 是用 C++ 编写的,因此需要使用 extern "C" 来解决编译器的名称修饰问题。

  1. 在 HAPIWAM.h 中,创建您的类并包含以下 4 个函数

bool initHapticsDevice(int);
bool releaseHapticsDevice();
void updateDeviceValues(DeviceValues &dv, HAPITime dt);
void sendOutput(HAPIHapticsDevice::DeviceOutput &d, HAPITime t);

  1. 确保您的类公开继承自 HAPIhapticsdevice 类。
  2. 为您的类创建头文件保护符。
  3. 在 HAPIWAM 类下创建静态 DeviceOutput 和静态 HapticsDeviceRegistration 属性。
  4. 为回调函数创建您的静态成员函数。
  5. 在 HAPIWAM.cpp 中定义您的构造函数和析构函数。
  6. 在 HAPIWAM.cpp 中注册您的设备。
  7. 在 HAPIWAM.cpp 中定义您继承的 4 个函数和回调函数。

2. HAPI 文库构建

  1. 现在我们已经创建了 HAPI 包装类,接下来需要将你的包装器构建到 HAPI 库中。WAM 依赖于一些 H3DAPI 在原始形式下并不依赖的库,因此需要将这些库添加到 HAPI 中。进入 HAPI/HAPI/build 目录,编辑 CMakeLists.txt 文件,在标有 'SET(OptionalLibs)' 的行之后添加所依赖的库。
  2. 打开命令行控制台,导航至:HAPI/HAPI/build,并按以下顺序输入以下 3 条命令:

cmake .
sudo make
sudo make install

3. H3D 包装类

  1. 要为 H3D 库创建 HAPIWAM 的包装类,首先在源代码目录 H3DAPI/src 中创建 WAMDevice.cpp
  2. 将 WAMDevice.h 放入头文件目录:H3DAPI/include/H3D
  3. WAMDevice.h 应包含所有 H3DAPI 设备的标准头文件,名称可替换为您希望的任意名称
  4. WAMDevice.cpp 应包含所有 H3DAPI 设备的标准源代码,名称可替换为您希望的任意名称
  5. 现在包装类已创建完成,需重新构建 H3DAPI 库。方法是按照步骤 2.1 的方式编辑目录 H3DAPI/build 中的 CMakeLists.txt 文件
  6. 在目录 H3DAPI/build 下重新构建 H3DAPI 库

cmake .
sudo make
sudo make install

4. 有限状态机

  1. 每个目标到达程序都需要创建一个有限状态机,以控制实验协议或训练范式。典型的状态机包括:试验开始、发射、目标接触和试验结束。以下列出了每个状态的功能及状态间转换的条件。
  2. 试验开始阶段需要分配一个目标。目标位置可在每次试验中随机设定,或从文件中读取。当用户向目标移动的速度超过预设速度阈值(通常为 0.06 米/秒)时,试验开始阶段结束,进入下一状态。
  3. 发射状态发生在试验开始之后。该状态在用户接触到目标或在目标区域内持续停留一段时间后结束。一旦目标被触碰,即触发目标接触状态。
  4. 目标接触状态发生在发射状态期间。该状态可在目标被触碰的瞬间结束,也可在受试者在目标区域内持续停留特定时间后结束。当该时间段结束后,即进入试验结束状态。
  5. 试验结束状态应向数据采集软件发送信号,按照软件开发者所采用的数据解析方式,在数据文件中标记每个试验的结束位置。除非已完成最终试验,否则试验结束状态结束后将重新启动试验开始状态。

5. 应用:脑卒中患者的康复

  1. 机器人接口的设计旨在融入治疗师的专业知识,同时利用机器人实现原本无法完成的操作。该技术实现了误差增强(下文将详细描述)的应用,即放大患者感知到的运动误差,出于多个已知原因,这有助于促进重学过程(图1)。
  2. 一种名为虚拟现实机器人与光学操作机(Virtual Reality Robotic and Optical Operations Machine, VRROOM)的三维触觉/图形系统。该系统此前已有所报道6,结合了投射式立体成像、基于半透银镜叠加显示的头戴追踪渲染,以及记录手腕位置并生成力矢量的机器人系统(图2)。
  3. 一部影院级数字投影仪(Christie Mirage 3000 DLP)显示图像,覆盖一个五英尺宽、分辨率为1280×1024像素的显示屏,从而实现 110° 宽视角。红外发射器通过液晶显示器(LCD)快门眼镜(Stereographics, Inc)同步左右眼图像。Ascension Flock of Birds 磁性元件追踪头部运动,从而使视觉显示呈现相应的以头部为中心的视角。
  4. 在符合研究入组条件后,由一名盲法评估员在每种治疗方案开始时和结束时对每位参与者的功能能力进行评估,每种方案结束后1周进行随访评估,并在总体治疗结束后45天进行最终随访评估。每次评估均包括在VRROOM中进行的关节活动度(ROM)评估,以及若干临床评估指标,包括:方盒方块测试(Box and Blocks Assessment)、Wolf上肢运动功能测试(WMFT)、Fugl-Meyer上肢运动功能部分(AMFM)以及简易功能性前伸距离评估(ASFR)。
  5. 使用带有腕部夹板的外肌腱手套以辅助维持腕关节和手部的中立位对齐。机器人手柄的中心连接于前臂,置于桡腕关节后方,使其作用力施加于腕部,同时允许手部自由活动。
  6. 使用弹簧驱动的威尔明顿机器人外骨骼(WREX)重力平衡矫形器减轻患者手臂重量。要求患者的目标是追逐由治疗师手持跟踪装置操控移动的、呈现在其前方的光标(治疗师遥操作)。
  7. 患者每周进行三次训练,每次约40至60分钟,由患者、治疗师和机器人组成三人协作模式。受试者与治疗师并排而坐,受试者的手腕与机器人相连接。
  8. 每次训练开始时,受试者先由治疗师进行五分钟的被动关节活动度训练(PROM),随后约十分钟用于将患者安置于设备中。之后,受试者完成六个运动训练组块,每组持续五分钟,组间休息两分钟。
  9. 训练期间,参与者在立体显示器上观察两个光标。治疗师操控其中一个光标,参与者控制另一个。患者需跟随治疗师光标在工作空间内移动的精确路径。
  10. 通过机器人产生的力和视觉反馈同时提供误差增强。当参与者的手偏离治疗师的光标时,会建立一个瞬时误差向量 e,表示治疗师光标与参与者手部位置之间的差异。误差在视觉上被放大了1.5倍。e (m)作为误差增强的一部分。此外,施加100的误差增强力e (N/m)也被施加,出于安全考虑,程序设定其最大值为 4 N 时达到饱和。
  11. 每隔一个治疗模块包含特定的标准化动作,这些动作在每次治疗中均保持一致。其余模块则允许治疗师根据其专业判断及观察结果,针对患者特定的薄弱环节进行个性化训练。治疗方案要求所有参与者练习特定动作,包括向前和向侧方伸手、肩-肘联动动作,以及跨越身体中线的对角线方向伸手。
  12. 在练习过程中,每日中位误差被作为练习效果的一项指标进行测量。特别关注了每次训练中保持一致的标准动作模块,将其与之前的数据进行对比,以判断是否存在逐日递进的改善,并将结果反馈给患者、治疗师及照护人员(图3)。
  13. 主要结局指标在治疗结束后1周及治疗后45天每周进行测量,以评估疗效的维持情况。关键结局指标包括Fugl-Meyer运动功能评分和我们自行设计的上肢伸展测试,后者用于测量关节活动范围。

6. 代表性结果:

当正确执行该方案后,一旦将 节点加载到 H3DViewer 或 H3DLoad 中,WAM 设备应被识别并初始化。如果将 WAM 替换为另一台机器人,则代码本身无需更改。

机器人辅助康复;示意图;机械臂辅助患者治疗。
图1. 受试者坐在触觉/图形装置前。

两名参与者在交互式模拟中使用虚拟现实设备的实验设置。
图 2. 受试者与物理治疗师共同坐在触觉/图形装置前。

运动任务训练装置及多日-reaching误差减少图;学习分析。
图3. 脑卒中患者康复训练的配置。A) 患者与治疗师共同工作,坐姿状态下使用大工作空间的触觉/图形显示设备进行运动训练。治疗师为患者提供提示,并可根据患者的具体需求调整训练方案。机器人施加使肢体偏离目标的力,视觉反馈系统则放大光标误差。B) 典型慢性脑卒中患者逐日功能改善情况。每个圆点代表一个持续2分钟的典型功能性运动区块所测得的中位误差。尽管该患者在为期两周的训练期间总体表现出进步和获益,但并非每天都持续改善。

讨论

这种包装类实现方法使得在使用 H3DAPI 时,无需更改源代码即可使用不同的机器人。具体而言,那些已在 H3D 中编写了触觉/图形环境并使用 Phantom 机器人测试其实验的研究人员,将能够使用 Barrett WAM 机器人开展相同或类似的实验,反之亦然。此类设备无关的交叉通信对国际康复机器人研究具有重要意义,有助于加快触觉/图形环境的开发,促进国际科研合作以及不同研究实验室之间的交流。

康复机器人领域尚未揭示运动学习中涉及的众多参数。在触觉/图形开发过程中,耗时的步骤之一是编译时间。由于康复参数众多,加之每个程序都需要编译时间,导致测试所有可能分组组合的开发周期迅速增加。H3D无需编译,能够快速开发大量虚拟现实场景,这对于希望深入探究各种训练方案效果的研究人员而言具有显著优势。

这种“硬编码”包装类集成方法的局限性在于,每次发布新的 H3DAPI 版本时,都必须重复此过程。将包装类集成到最新 H3DAPI 版本中的可能改进方法是:将包装类独立于 H3DAPI 单独创建,然后将其编译为 *.so 库文件。这样可使您的类与原始 H3DAPI 发行版本相互隔离。

披露

本教程中的包装类由 Ian Sharp 版权所有。

致谢

感谢 Brian Zenowich、Daniel Evestedt 和 Winsean Lin 提供的技术支持。

材料

本文使用的材料清单
姓名公司目录编号评论
    <李>名为巴黎(personal augmented reality immersion system,个人增强现实沉浸系统)的显示设备位于 www.evl.uic.edu<李>大型灰色机器人是 Barrett WAM: www.barrett.com<李>体型较小、较纤细的黑色机器人是Phantom: www.sensable.com<李>臂部支架为 RIC 开发的 T-WREX: http://www.ric.org/research/centers/mars2/Projects/development/d3.aspx<李>用于3D视觉的快门眼镜: www.vrlogic.com<李>头部追踪软件 www.mechdyne.com<李>H3DAPI 本身: www.h3dapi.org

参考文献

  1. Solis, J., Takeshi, N., Petersen, K., Takeuchi, M., Takanishi, A. Development of the anthropomorphic saxophonist robot WAS-1: Mechanical design of the simulated organs and implementation of air pressure. Advanced Robotics Journal. 24, 629-650 (2010).
  2. Evolving Won-Based Flying Robots. Zufferey, J. C., Floreano, D. Proceedings of the 2nd International Workshop on Biologically Motivated Computer Vision, 2002 November, Berlin, , Springer-Verlag. 592-600 (2002).
  3. Conditt, M. A., Gandolfo, F., Mussa-Ivaldi, F. A. The motor system does not learn the dynamics of the arm by rote memorization of past experience. Journal of Neurophysiology. 78, 554-554 (1997).
  4. Krebs, H. I., Palazzolo, J. J., Dipietro, L., Ferraro, M., Krol, J., Rannekleiv, K., Volpe, B. T., Hogan, N. Rehabilitation robotics: Performance-based progressive robot-assisted therapy. Autonomous Robots. 15, 7-20 (2003).
  5. Wei, K., Kording, K. Relevance of error: what drives motor adaptation. Journal of neurophysiology. 101, 655-65 (2009).
  6. Wei, Y., Bajaj, P., Scheidt, R., Patton, J. Visual error augmentation for enhancing motor learning and rehabilitative relearning. IEEE International Conference on Rehabilitation Robotics. , 505-510 (2005).

重印与许可

标签

H3DAPI WHAM Phantom