构建一款基于ESP32、ROS 2和Unity的康复机器人
中风可能导致患者上肢活动能力下降,因此重复性康复训练成为恢复过程中的重要环节。然而,传统康复训练在临床环境之外往往难以持续进行。
我们的项目旨在开发一款适用于家庭使用的二维上肢康复机器人原型,通过结合身体动作与互动游戏,使重复性训练更具吸引力。
我们并非将康复视为纯粹的机械任务,而是希望构建一个系统,让用户的身体动作直接控制一个互动虚拟环境,同时记录并分析其运动数据。
我们所构建的系统
我们开发了FarmReach,这是一款围绕现有MyPAM上肢康复机器人构建的互动康复系统。该系统将定制的腕部屈曲/伸展附件与现有的二维手臂机构相结合。腕部模块采用齿轮直流电机和增量编码器,以实现腕部的可控运动及位置反馈。机械部件专为本项目设计制造,包括3D打印的安装组件。
在嵌入式层面,ESP32负责处理编码器采集、电机控制以及与系统其他部分的通信。机器人传来的编码器反馈实时进行处理,同时使用PWM信号控制电机。
将机器人融入游戏
物理机器人连接至基于Unity的康复环境,用户通过自身动作来操控屏幕上的角色。
我们创建了一个低多边形的农场环境,名为FarmReach,围绕不同的运动任务设计了一系列康复小游戏,包括给作物浇水、摘苹果、锯木、敲锤以及记忆游戏。难度也可调节,从而改变训练任务的要求。
这使得康复训练过程具备简单的游戏循环:移动机器人 → 控制角色 → 完成任务 → 获取反馈 → 记录训练会话。
将所有内容连接起来
系统使用ROS 2来处理和分析物理机器人与Unity环境之间的运动数据。
整体架构如下:
MyPAM + 手腕模块 ↓ ESP32 ↓ USB串口 ↓ Unity ↔ ROS 2 ↓ 运动学分析 + 数据记录
ROS 2用于运动处理和运动学计算,而Unity则提供交互式康复环境。会话和运动数据也可被存储,以便后续分析。
运动测量
该系统不仅控制游戏,还能帮助我们分析用户的运动方式。
通过编码器数据计算出运动效率、速度、加速度和冲击等指标。这些参数可反映动作的执行情况,并支持在多次会话中追踪表现。系统使用SQLite存储相关会话数据。
效果如何?
我们测试了机器人、ESP32、Unity与ROS 2之间的通信与集成。
在通信测试中,系统平均更新频率为63.47 Hz,对应平均间隔15.76毫秒,在记录的测试过程中未出现任何消息丢失。
腕部机构和编码器也经过了校准和测试,而整个系统则通过健康参与者进行评估,以检验其可用性和交互性。参与者的测试旨在评估可用性,而非临床疗效。
我们得出的结论
该项目表明,一个物理康复机器人可以与嵌入式控制系统、ROS 2以及基于游戏的Unity环境集成到一个统一系统中。
但也存在一些局限性。特别是,由于通信问题,原本计划的PID辅助控制无法完全实现;此外,机械回差影响了腕部机构的精度。在得出关于临床疗效的结论之前,还需对中风患者进行进一步测试。
因此,该成果更应被视为一个工程原型,而非经过临床验证的康复设备。
本文编译自hackster.io





