杭州市第一人民医院城北院区(杭州市老年病医院) 赵君豪 吕 亚 钟 怡
随着人体姿态捕捉技术不断更新迭代,如今市面流行的包括:算法效率高、测量精度良好的光学式系统和便携度高、硬件集成度高且技术先进的惯性动作捕捉系统;在此基础上,又可再分为三大主类:基于计算机视觉的动作捕捉系统、基于标记点的光学动作捕捉系统以及基于惯性参数数据的动作捕捉系统。其中,第一类的研究主要是对手部信息进行动作捕获,而后两类主要针对全身进行动作捕获。目前,基于计算机视觉的动作捕捉技术由于测量范围问题而无法大有所为;基于马克点光学式动作捕捉系统又由于需要特殊场地,并且价格昂贵;基于惯性传感器的动作捕捉系统主要是在软件的算法问题和硬件的局部线缆连接上存在劣势。本文旨在设计一个可穿戴的实时惯性传感器捕捉系统,并能通过无线传输将人体姿态角信息传输到上位机,直观的量化人体运动轨迹。
本研究目的在于设计一个可穿戴式的惯性传感器捕捉系统,可单独佩戴在穿戴者的各个身体部位,并能进行无线实时传输,为获取人体姿态信息提供一个切实的人机交互方案。该系统从功能需求上主要可分为两大模块:数据采集模块和数据通讯模块。其中,数据采集模块通过九轴惯性传感器进行实时采集,并将采集到的数据转化为对应的姿态角度。数据通讯模块集成了数据发送功能和数据接收功能,主要负责将需要发送的数据包高效地发送出去,并由接收端接收数据后通过串口传输数据到上位机,再进行解包读取,最终导出直观的姿态角数据。图1为惯性参数捕捉系统的整体流程图。
图1 惯性参数捕捉系统的整体流程图
惯性参数采集模块的设计需求反映在其采集数据的实时性、可穿戴性以及数据的准确性上。
具体设计需求可分为以下几点:
(1)体积小,容易穿戴;
(2)采样频率>20Hz;
(3)连续使用时间>1h。
惯性参数通信模块分为数据发送模块和数据接收模块。数据发送模块与采集数据模块相连,负责将计算好的姿态角打包发送;数据接收模块与上位机通过串口相连,负责将接收到的数据解包并发送到上位机程序。
(1)全局无线
传统的惯性动作捕捉系统都是在佩戴者肢体布局大量节点,并通过数据线与发送节点连接,而繁琐的局部线缆束缚了佩戴者的运动能力,本系统设计各节点实现独立数据发送功能。
(2)采集部位自定义
本设计中针对数据发送模块进行了自定义标识,可进行1~16个身体部位的运动数据采集,用户可根据需求自行确定采集部位与采集数量。
(3)保证一定的传输速率
由于本设计中需要对采集到的人体姿态角度做出及时的曲线显示与仿真显示,并且需要保证数据的时效性,因此需要保证传输速率≥40Hz。
(4)多种接口输出扩展功能
惯性参数通信模块可以根据应用平台的不同,通过统一规定数据通讯协议来使得多个平台都可以使用本设备。
惯性传感器从轴数上可分为十轴惯性传感器、九轴惯性传感器、六轴惯性传感器。六轴惯性传感器包括三轴加速度计与三轴陀螺仪。九轴惯性传感器在六轴传感器的基础上加入了三轴磁力计,可更精确定位传感器的偏向角度。而十轴惯性传感器加入了温度与气压的测量功能。本课题中需要对人体的运动姿态角度进行获取。十轴传感器的气压与高度功能对课题中的作用不大,采用只会增加统搭建的成本,而六轴传感器由于无法在偏航角上对姿态角进行修正也不作考虑。表1为多轴的传感器性能比较。
表1 多轴惯性传感器的性能比较
通过比对各类惯性传感器的成本、采样速率、传感器以及内嵌传感器等要素,本课题采用九轴MPU9250惯性传感器作为姿态角的数据采集传感器。MPU9250具有体积小、集成度高、自带400KHz的IIC通信以及高分辨率的数据输出等优点,也可满足人体姿态角的获取与解析。本课题的硬件电路设计中MPU9250通过SCL、SDA、VDDIO与GND接口与电路板焊接,SCL与SDA连接MCU端进行数据交互。
惯性参数采集模块的主芯片是一个32位的内核为Cortex-M3的STM32F103单片机芯片,STM32系列是ARM微控制器的中低端产品,该芯片有功耗低、成本低但又具备高性能的优势,芯片的工作频率高达72MHz,可满足获取MPU9250惯性传感器的交互需求。STM32内部集成了定时器功能、IIC通讯功能以及Uart功能,也满足数据所需的姿态解析与数据传输的功能。图2为整个惯性参数捕捉系统的功能构成。
图2 惯性参数捕捉系统的功能构成
针对硬件需求进行了惯性采集节点的设计,以保证设备的可穿戴性,并实现了采集模块体积小的需求。图3为惯性参数捕捉系统的实物图。
图3 惯性参数捕捉系统实物图(正反面)
串口模块是惯性传感器捕捉系统与上位机之间关键的交互接口,串口模块通过采用CH340芯片来实现串口向USB接口的转换,从而使得接收端的数据能够顺利流入上位机程序。
MCU模块是整个硬件系统的核心部分,它控制数据采集模块的执行,实现九轴数据向姿态角数据的转换、姿态角数据的打包以及数据通信模块的发送。
惯性采集模块的主要工作是采集佩戴位置的九轴数据并通过IIC协议传输到MCU模块进行姿态解析,该模块主要以MPU9250芯片组成。LED2用于显示数据发送模块的连接状态,若数据发送模块未连接上与PC端连接的接收模块,则LED2显示红色;若数据发送模块连接上与PC端连接的接收模块,则LED灯显示紫色。
充电模块是能通过Mini USB接口对连接的锂电池进行充电,该模块主要由TP4056组成。电源为整体硬件电路的运行提供所需能源,也是无线式惯性参数采集模块必不可少的部分。经测试,每次充满电之后单独的惯性参数采集模块都可以连续使用1h以上,满足硬件需求分析中的要求。
惯性参数采集系统设计完之后需要对计算好的姿态角实施精度测量实验,证明获取到的姿态角是否能精确测量到物体的实际姿态角信息,测试通过量角尺测量实际Roll(翻滚角)、Pitch(俯仰角)和Yaw(偏航角)的静态数据在0°、60°和90°与惯性采集系统的三个角数据的最大误差,测量一共进行了30次,表2为测试结果。
表2 惯性采集系统获取姿态角与实际值最大误差比较
由表2可知,本课题设计的惯性参数采集模块解析的姿态角与实际量角尺测量的角度误差基本保持在1.5°以内,Yaw角的误差虽然偏大,但也在可接收范围内。
经测试,该模块的其他相关参数如下:
质量:8g
体积:40mm×25mm×10mm
充电续航时间>3h(300mAh锂电池)
因此,本课题中设计的惯性参数采集模块满足上下肢运动姿态角解析的需求。
本系统中的惯性参数通信模块的功能主要由nRF24L01这款单片射频收发模块所组成的,它主要工作于2.4GHz~2.5Ghz的频段。nRF24L01的优势在于功耗低,并且在数据传输方面相较于蓝牙模块距离更远。
可通过MCU模块对nRF24L01配置寄存器的数据进行修改,将其设定为发射、接收、待机、掉电四种工作模式。通过配置nRF24L01的发射模式和接收模式可进行两个nRF24L01模块之间的通讯,此时需要满足三个条件:
(1)通过设置配置寄存器中的RF_CH,令发送端与接收端频道相同;
(2)设置TX_ADDR和RX_RDDR_P0,使得发送端目标地址与接收端地址相同;
(3)保持每次发送与接收端的字节数相同。
根据以上三个条件,可搭建一对多的收发数据模块。其中包括一个接收数据模块和多个发送数据模块,发送数据模块将MCU解析出的人体姿态角数据发送出去,通过2.4GHz频段传输至指定地址的接收数据模块,接收数据模块通过串口将数据发送至上位机。最后,对惯性参数通信模块的数据传输性能进行了测试:将数据发送模块与数据接收模块保持5m的距离,并设置好不同数量的发送端进行数据帧传输的测试,最终测试结果如表3所示。
表3 数据传输测试
由表3可知,在使用13个或13个以下节点用作惯性参数数据通信时,平均传输速率≥40Hz,满足通讯模块的传输速率需求。此外,使用nRF24L01无线模块既满足了全局无线的需求,也可以进行采集节点的自定义。最后,只需要通过硬件的USB线与接收模块连接的方式获取发送模块传来的数据,只需要自行定义好上位机的串口功能就可搭建数据通道,满足了多种接口输出扩展功能。
结语:本文设计并研发了一款多节点采集无线传输的惯性传感器系统,改变了传统的局部有线缆干扰的传感器佩戴方式,解决了运动时给关节带来的阻碍感。设备获取到的角度精度保持在2°以内,最大传输速率达600Hz,满载工作可连续使用3h以上。设备佩戴在受试者身上使用情况如图4所示。
图4 受试者佩戴示意图