基于惯性传感器的动作捕捉系统设计

Xsens动作捕捉 2022-11-06 8448

本文内容转载《计算机测量与控制》2019年第9期,版权归《计算机测量与控制》编辑部所有。

夏为浩,张少帅

广西桂林国营长虹机械厂,北京航天测控技术有限公司

 

摘要:针对传统的如光学式、机械式等动作捕捉系统在成本、使用环境及精度等方面各有优劣的特点,设计了一套基于惯性传感器的动作捕捉系统,通过在人体各部位佩戴惯性传感器节点,实时采集各部位的运动惯性数据,通过WIFI通信发送至数据处理终端,对数据进行存储和显示;经实验验证所设计动作捕捉系统能够正确采集人体惯性运动数据,系统的使用不受时间和地点的限制,具有成本低廉、穿戴方便和操作简单等特点,可以深入应用于医学、体育和军事等多个领域。

 

关键词:惯性式动作捕捉系统;数据传输节点;无线通信

 

0引言

 

动作捕捉技术是通过数字测量技术实时获取人体的三维运动信息,然后对信息进行分析和使用。弗莱舍在1915年发明的动态遮罩技术被认为是动作捕捉技术的始祖。20世纪70年代,纽约计算机图形实验室设计了一种光学动作捕捉装置,能够实时地在屏幕上显示演员的动作,成为了现代动作捕捉技术的起始。现代动作捕捉系统基于捕捉原理的不同,包括声学式、电磁式、光学式、机械式、视频捕捉式和惯性式。声学式和电磁式的捕捉系统精度比较差,且受环境噪声和磁场的影响比较大;光学式的捕捉系统精度高,但安装复杂,成本高和对环境要求高;机械式的动作系统穿戴困难,且会影响人体的自由活动;视频捕捉式的捕捉系统虽然不需要在人体身上佩戴传感节点,但算法复杂,实现难度大。


基于惯性传感器的动作捕捉系统设计  第1张

 

基于惯性传感器的动作捕捉系统,其具有便携穿戴、操作简单和成本低廉的特点,能够不受时间和地点的限制,持续不断地采集人体各个部位的实时运动信息,在跌倒监测、体育训练、军事训练、体感游戏、虚拟现实和增强现实方面都得到了广泛应用。例如在跌倒监测方面,通过在手腕或其他部位佩戴惯性传感器,实时采集佩戴部位的加速度、角速度等信息,当人体突然跌倒时,佩戴部位的惯性数据会发生突然变化,从而判断出人体发生跌倒,及时向家属和医护人员进行求助。

 

典型的基于惯性传感器的动作捕捉系统主要由惯性传感器节点、数据传输节点和远程数据处理终端三部分组成。惯性传感器节点通过采集人体相应部位的运动惯性数据如:加速度和角速度等数据;数据传输节点将传感器节点采集的惯性信息进行整合和处理,通过有线或无线的方式发送到处理终端。远程数据处理终端对接收自传输节点的数据进行处理、存储和显示,以备下一步的应用。

 

目前,美国Inertiallabs公司已经推出了商业化的惯性式动作捕捉系统3Dsuit,荷兰的Xsens公司也推出了自己的Xsens MVN惯性动作捕捉系统,两者都可以实时采集人体各部位的姿态数据,快速地完成人体姿态地测量,已经广泛应用与国外的CG电影制作。当前国内惯性式动作捕捉系统的商业化的程度比较低,大多数仍停留在实验室阶段,浙江大学的李启雷等人研发的惯性式动作捕捉系统,可以采集人体运动的加速度和磁力数据;中国科学院大学的汪俊等人所设计的惯性动作捕捉系统,各惯性传感器节点通过无线WIFI模块进行连接,节点的体积较大;马杰和刘莉琛两人所在的团队设计了基于Zigbee通讯的惯性式动作捕捉系统,但Zigbee的通讯速率限制了捕捉系统的采样速度与精度。

 

本文基于当前对惯性式动作捕捉系统的研究,提出了一种基于惯性传感器的动作捕捉系统,各惯性传感器节点与数据传输节点间通过485总线进行连接,数据传输节点与数据处理终端间通过无线WIFI通讯进行数据交换,在减小传感器节点体积的同时,提高了动作捕捉系统数据传输速率,极大提高了人体的活动范围,具有成本低、可靠性高和穿戴方便等特点。

 

1系统结构及原理

 

本文所设计的惯性式动作捕捉系统的总体结构如图1所示。惯性式动作捕捉系统包括MEMS惯性传感器节点、数据传输节点、数据接收节点和数据处理终端四部分组成。惯性传感器节点佩戴在人体的手部、脚部等各个部位,实时采集各部位的惯性运动数据。数据传输节点按照一定的采样频率通过485总线向各个传感器节点发送请求惯性数据的指令,传感器节点在接收到请求指令后,通过485总线将惯性运动数据发送到数据传输节点。数据传输节点在完成一次对485总线上所有传感器节点的数据采集后,对数据进行打包,然后通过WIFI发送到数据接收节点。数据接收节点在接收到数据传输节点发送来的数据后,通过USB将数据发送至数据处理终端。数据处理终端对接收到的惯性运动数据包进行校验、处理、存储和显示,完成一次完整的惯性运动数据的传输流程。

              

基于惯性传感器的动作捕捉系统设计  第2张

图1 惯性式动作捕捉系统总体结构图

 

系统硬件设计

 

2.1 惯性传感器节点的设计

 

图2所示是惯性传感器节点的硬件设计图,惯性传感器节点板载一个型号为MPU9150的九轴惯性传感器芯片,STM32F051主控芯片通过I2C接口即可读取惯性传感器所采集的三轴加速度数据、角速度数据与磁力计数据。节点扩展多路AD采集接口,扩展接口可以连接肌电传感器等生理信号传感器,从而实现对更多人体运动生理数据的采集。各个传感器、主控芯片与485通讯芯片通过一个3.3V的低压差线性稳压芯片进行供电,以减少电源的纹波噪声对传感器输出信号的影响。


基于惯性传感器的动作捕捉系统设计  第3张

图2 惯性传感器节点的硬件设计

 

2.2 数据传输节点的设计

 

数据传输节点的硬件设计图如图3所示,节点上各个芯片通过3.3V线性稳压芯片进行供电,STM32F405主控芯片通过485总线向各个传感器节点发送惯性数据请求指令,然后接收各个传感器节点发送来的惯性数据。对数据进行校验和打包后,通过SPI总线发送至CC3200芯片。

 

基于惯性传感器的动作捕捉系统设计  第4张

图3 数据传输节点的硬件设计

 

CC3200是TI公司推出的一款具有片上SOC的WIFI通信芯片,支持站点(STA,Station)和无线接入点(AP,Access Point)两种工作模式,在TCP通信协议下可以达到12Mbps的通信速率,在UDP连接下可以达到16Mbps的通信速率。同时CC3200内部具有一个Cortex-M4核心的专用ARM CPU,负责建立两个设备之间的WIFI连接和协议通讯,使得主控芯片可以免于无线通信的处理负担,提高数据的处理速度。CC3200在通过SPI接收到自STM32F405发送的惯性数据后,通过WIFI通讯发送至数据接收节点。

 

2.3 数据接收节点的设计

 

图4所示是数据接收节点的硬件设计图,数据接收节点的CC3200在接收到数据传输节点发送来的运动惯性数据帧后,向主控芯片发送外部中断,主控芯片在接收到外部中断后,通过SPI接口读取CC3200接收到的惯性数据帧,然后通过ULIP接口将数据经USB3300芯片发送至数据处理设备。USB3300是一款支持USB2.0 High Speed的PHY芯片,其最高可以达到480Mbps的通信速度,满足所设计的动作捕捉系统对数据传输速率的要求。

 

基于惯性传感器的动作捕捉系统设计  第5张

图4 数据接收节点的硬件设计

 

系统软件设计

 

3.1 惯性传感器节点的软件设计

 

惯性传感器节点的软件流程图如图5所示,传感器节点在上电后,stm32主控MCU按照设定的采样频率对定时器中断进行初始化,然后对I2C和USART通讯接口进行初始化,等待定时器中断的置位,通过I2C接口读取MPU9150传感器的三轴加速度、角速度和磁力计数据,将数据保持到缓存buffer中,等待下次定时中断的出现,对缓存buffer中的数据进行更新。在循环采集的过程中,当数据传输节点向传感器节点发送请求指令的数据帧后,传感器节点的串口接收中断置位,程序进入串口中断服务函数中,首先对接收的数据帧进行校验,保证接收数据帧是完整无误的,然后判断数据帧是否为针对本节点的请求数据指令帧,如果指令请求地址与本节点地址相同,程序将对缓存buffer中存储的数据进行打包和校验,然后使能串口将节点惯性数据帧发送至数据传输节点,最后退出串口接收中断服务函数。

 

基于惯性传感器的动作捕捉系统设计  第6张

图5 惯性传感器节点的软件流程图

 

为保证惯性传感器节点与数据传输节点之间的数据传输的可靠性,防止由于数据丢包而产生数据异常,节点之间的数据交换采用ModBus通信协议,通过数据帧中的CRC16校验码保证数据的有效性,表1所示为惯性传感器节点发送的惯性数据帧定义。如果数据传输节点接收数据帧异常,数据传输节点将向相应节点重新发送请求数据指令。

 

表1 传感器节点惯性数据帧定义基于惯性传感器的动作捕捉系统设计  第7张


3.2 数据传输节点的软件设计

 

图6所示,数据传输节点在上电后,对stm32的各个外设进行初始化,首先按照系统允许的传感器节点地址范围,依次发送对应各节点地址的请求惯性数据指令帧,如果485总线上存在相应地址的传感器节点,该节点将回复惯性数据帧。当数据传输节点接收到传感器节点发送来的数据,且校验成功后,就将对应的节点地址存储到节点轮询地址表中,生成完整的节点轮询地址表。按照系统设定的采样频率使能定时器中断,当中断标志置位后,数据传输节点按照节点轮询地址表依次向各个传感器节点发送指令帧,请求惯性数据,在接收到惯性数据帧并校验成功后,保存至缓存buffer中。完成节点轮询地址表中所有传感器节点的轮询后,对接收到的数据进行校验和打包,生成数据传输节点的惯性数据帧,通过SPI接口发送至CC3200无线通信芯片,通过WIFI通讯发送至数据接收节点。

 

基于惯性传感器的动作捕捉系统设计  第8张

图6 数据传输节点的软件流程图

 

数据传输节点的程序设计中,主控处理器的串口接收和发送,SPI接口的发送和接收,均采用DMA传输,在数据发送和接收的过程中,不需要处理器参与操作,可以大大减少处理器的负担。

 

3.3 数据接收节点的软件设计

 

数据接收节点作为数据处理终端与数据传输节点之间的通讯桥梁,完成数据透传,其程序的运行流程如图7所示。在上电完成stm32外设和CC3200的初始化后,当数据处理终端通过USB接口向数据接收节点发送使能数据接收的指令后,主控MCU使能外部中断。当CC3200接收到数据传输节点发送来的惯性数据帧后,向主控MCU发送一个脉冲信号,主控MCU在接收到脉冲信号,外部中断标志位置位,主控MCU通过SPI接口读取CC3200接收到的惯性数据帧,然后通过USB接口将惯性数据帧发送至数据处理终端,完成一次数据处理终端与数据传输节点之间的数据交换。

 

基于惯性传感器的动作捕捉系统设计  第9张

图7 数据接收节点的软件流程图

 

3.4 WIFI通信的软件设计

 

图8所示是数据传输节点和数据接收节点上WIFI通信芯片CC3200各自的软件流程图。数据传输节点的WIFI通信芯片被配置为STA模式,其在无线局域网中是一般客户端,可以认为是我们日常使用的接入无线网的智能手机。数据接收节点的WIFI通信芯片被配置为AP模式,其可以认为是日常生活中所使用的无线路由器,当用户识别码(SSID,Service Set Identifier)被设置后,数据接收节点向周围设备广播自己的SSID。数据传输节点在扫描到数据接收节点广播的SSID后,向数据接收节点发送连接请求命令,数据接收节点在接受连接请求后,向数据传输节点分配IP地址,建立数据传输节点与数据接收节点之间的WIFI通信链路。

 

数据链路层和网络层建立连接后,动作捕捉系统使用具有重传功能的TCP通讯协议实现数据传输节点与数据接收节点之间的数据通讯,以保证节点之间数据通讯的正确性和完整性。如图所示,配置数据接收节点为TCP服务器,创建一个TCP套接字(Socket),绑定IP地址、端口等信息到套接字上,开启监听,等待TCP客户端的连接。当接收到来自TCP客户端的连接请求后,接受请求,建立TCP连接,创建新的套接字用于与TCP客户端进行连接,循环等待TCP客户端发送惯性数据帧,在接收到惯性数据帧后,向主控MCU发送脉冲信号。数据传输节点配置为TCP客户端,创建套接字以连接到TCP服务器上,当接收到主控MCU发送来的惯性数据帧后,通过TCP连接将数据帧发送至TCP服务器。

 

基于惯性传感器的动作捕捉系统设计  第10张

图8 WIFI通信的软件流程图

 

3.5 数据处理终端的软件设计

 

数据处理终端的软件程序由数据处理模块、数据存储模块和数据显示模块三部分组成,数据处理终端通过USB接口接收数据接收节点发送来的惯性数据帧,对数据进行校验和处理,显示各个节点的惯性运动数据,同时将各节点的惯性数据储存到本地文件中,以备后续进一步的处理和使用。

 

实验结果与分析

 

基于上述设计,本文完成了惯性动作捕捉系统的硬件与软件调试工作,并进行了惯性数据采集试验。将惯性传感器节点附着在身体的脚踝、手腕和手臂等各个部位,数据传输节点以100Hz的采样频率采集实验者在慢走、快走和跑步等多种动作下各个传感器节点测量的惯性运动数据,通过WIFI发送到数据接收节点,数据处理终端通过USB读取数据接收节点接收到的数据,保存到本地存储中。经试验验证,所设计的动作捕捉系统能够长时间稳定地采集人体各个部位的惯性运动数据,图9所示为数据处理终端保存在本地的节点惯性运动数据文件。

 

基于惯性传感器的动作捕捉系统设计  第11张

图9 惯性运动数据保存文件

 

使用存储的惯性运动数据绘制了人体的手腕和脚踝在慢走和跑步两种动作下加速度的变化曲线,如图10所示。由图可以看出,在跑步动作下,人体脚踝部位的加速度信号的变化频率比慢走动作要快,且跑步动作加速度信号的峰值超出慢走动作10m/s2左右,这是由于跑步动作下人体的步频比慢走要快,且脚部对地面的冲击比慢走动作要大。相反,在跑步动作下手腕部位的加速度信号比慢走动作下要规律地多,且跑步动作下的加速度峰值为60m/s2左右,慢走动作下只有20m/s2左右,这是由于人在跑步动作时手部要进行大幅度且有规律的摆动,从而保持人体平衡。而慢走状态对人的手部运动没有要求,手部的运动会更加的自由和随意。由以上可知,所设计的惯性式动作捕捉系统采集的不同动作下人体各关节部位的运动惯性数据的变化特征符合人体运动的一般规律,验证了本文所设计惯性式动作捕捉系统的有效性。

 

基于惯性传感器的动作捕捉系统设计  第12张

图10 慢走和跑步下手腕和脚踝加速度信号

 

结束语

 

本文基于MPU9150九轴惯性传感器、CC3200无线通信芯片等设备,设计了一款基于惯性传感器的动作捕捉系统。通过在人体各部位佩戴复数惯性传感器节点,实时采集人体不同部位的运动加速度、角速度和磁力计数据,通过WIFI无线通信发送至数据处理终端,对数据进行存储和显示。所设计的系统成本低、可靠性高,穿戴方便,能够最大限度地减少捕捉系统对人体活动的限制,具有实际应用意义。后续将增加数据处理终端对采集的运动数据进行进一步地处理和分析的功能,将其应用于健康监测、康复训练、体育训练和军事等多个领域。


推荐培训:

《运动(惯性)传感器核心技术培训课程》将于11月15日~17日在无锡举行,本课程邀请MEMS领域优秀讲师和产业专家,重点讲解运动(惯性)传感器核心技术,包括:(1)运动传感器产业及应用综述;(2)MEMS惯性传感器技术及产业分析;(3)MEMS惯性传感器设计技术详解;(4)高精度MEMS加速度计技术详解;(5)工业级MEMS加速度计及应用:振动传感器;(6)MEMS高度计/气压传感器技术及产业分析;(7)MEMS惯性传感器系统特性分析;(8)运动传感器ASIC技术详解;(9)高精度单芯片多轴MEMS惯性传感器技术详解。如果您有兴趣,请联系:

麦姆斯咨询

联系人:赵婷婷

电话:18021192087

邮箱:ZHAOTingting@MEMSConsulting.com


基于惯性传感器的动作捕捉系统设计  第13张

The End