顾 俊,徐 胜,邢 强,,杨预立,王周义,徐海黎
(1.南通大学机械工程学院,江苏南通226019;2.南京航天航空大学江苏省仿生功能材料重点实验室,江苏南京210016)
运动是动物进行捕食、迁徙等行为的基础。人们从仿生的角度出发,研究动物的运动行为特征,并以动物为原型设计出具有较好运动性能的移动机器人[1]。而在人的步态识别、运动训练和康复治疗中[2],其运动行为特征具有较高的研究价值。
人的运动行为特征可分为步态姿态特征和步态触觉特征两方面[3‐4]。步态姿态特征主要是指通过视觉图像设备如 stage运动捕获系统[5]、Kinect相机[6]和穿戴式传感器[7]获得的人肢体的空间位置信息。步态触觉特征主要是指通过压力传感器如鞋垫式 F‐Scan[8]、R‐Scan[9]系统和 MEMS(micro‐electro‐mechanical system,微机电系统)压力传感器[10]获得的人脚底与接触面的三维接触力信息。将运动姿态与脚底接触力融合的三维分析设备能够分析在不同运动模式下脚底压力的变化,但其昂贵的成本和复杂的操作界面使得其在实际使用中受到限制[11‐14]。
为此,笔者搭建了一个“行为‐力”同步可视化展示系统。该系统能够实现人体运动姿态和脚底接触力的同步采集,并且采用三维图形化的方式来展示人体运动姿态与脚底接触力的关系,以期为人体运动行为特征的研究提供可靠的装置。
“行为‐力”同步可视化展示系统分为数据采集与处理模块和三维虚拟展示模块。数据采集与处理模块由多通道三维力采集模块、深度图像采集模块和数据同步处理模块组成。其中:多通道三维力采集模块由20个三维压力传感器组成,用于采集人体在行走过程中脚底与地面之间的三维接触力;深度图像采集模块选用微软公司生产的Kinect相机,用于采集人体在运动过程中的运动姿态;数据同步处理模块采用基于插值的同步处理方法,用于解决运动姿态与脚底接触力的同步采集问题。三维虚拟展示模块由三维绘图模块和同步展示模块组成。其中:三维绘图模块用于设计绘图模型,并根据人体运动姿态和脚底接触力信息实现人体骨架模型和三维接触力图形的绘制;同步展示模块用于创建三维虚拟空间,并基于同步展示方法,实现运动姿态与脚底接触力的图形化融合展示。
“行为‐力”同步可视化展示系统的组成如图1所示。
图1 “行为-力”同步可视化展示系统的组成Fig.1 Composition of "behavior‐force" synchronous visual display system
多通道三维力采集模块的程序框架是基于多线程的生产/消费模式搭建的。选用UDP(user data‐gram protocol,用户数据报协议)作为数据传输的方式,通过约定PC(personal computer,个人计算机)端和下位机间的应答机制来划分程序的各个功能。为保证压力传感器信号输出的一致性[15],须对空载情况下传感器的初值进行标定。将标定后的初值作为校准值,校准后期采集的数据。图2所示为三维力采集流程。
图2 三维力采集流程Fig.2 Flow of 3D force acquisition
Kinect相机能够采集人体25个关节点信息并进行追踪[16]。每个关节点信息由位置、节点类型和追踪属性组成。其中:位置是指关节点在Kinect相机中的三维空间坐标;节点类型是指关节点的种类;追踪属性是指关节点的追踪状态,分为已追踪、推测和未追踪三种。
人体关节点信息采用图像处理结合机器学习的方法来获取。其具体的处理流程[17‐18]为:首先,采用分割策略,将人体从图像中分割出来;其次,利用含有深度特征的分类器识别身体的各个部分;然后,利用决策树分类器去评估每一像素所对应身体各部分区域的可能性;最后,将分类器所建议的像素点作为关节点,并计算该关节点的空间坐标。由于关节点的高度坐标值是以Kinect相机的安装高度为基准的,须对其进行转换。以Kinect相机的安装高度作为转换值,将所采集的关节点的高度坐标值加上转换值来完成空间坐标的转换。
由于压力传感器和图像传感器的采样频率分别为120 Hz和30帧/s,须对传感器采集的数据进行同步处理。因此,本文提出了一种基于插值的数据同步处理方法来解决传感器采样的同步问题。
首先,在图像采集模块中设置布尔状态量作为关节点信息采集完成的标志,待采集完成后,对该布尔状态量进行取反操作,同时将关节点数据存入队列1;其次,在三维力采集模块中将采集到的三维力数据存入缓存区A,当检测到布尔状态量的状态发生变化时,将缓存区A中的数据存入队列2;然后,在数据同步处理模块中,设置一个数据缓存区B,将缓存区B的大小设置为n,用于缓存关节点的数据,作为插值算法的数据源;最后,由该缓存区中的末两位组成插值区间,三维力采样次数作为插值点数,采用三次样条插值的方法来输出推测的关节点坐标。数据同步处理流程如图3所示。
图3 数据同步处理流程Fig.3 Flow of data synchronous processing
在LabVIEW编程环境中,利用三维曲面函数来绘制三维图形。三维曲面函数的输入参数为X、Y、Z三个方向的二维矩阵,输出为三维显示区域。其中,以Kinect相机的红外摄像头为原点,以Kinect相机的视轴方向为X方向,以Kinect相机安装位置的竖直方向为Z方向,Y方向则根据右手笛卡尔坐标系来确定。选用Kinect相机采集的17个关节点信息作为人体骨架模型的数据源。人体骨架模型的17个关节点如图4所示。其中:Pn=(xn,yn,zn),n=1,2,…,17;α为膝关节的角度,即大腿与小腿的夹角;β为髋关节的角度,即大腿与竖直方向的夹角。
图4 人体骨架模型的17个关节点Fig.4 17 joint points of human skeleton model
根据三维曲面的作图模式,17个关节点的基本绘图模型可表示为:
根据图4,选取P12和P16点为左、右脚点,记为Pc,Pc=(xc,yc,zc),作为三维力图形绘制的基准点。将脚底与地面的接触力分解为Fx、Fy和Fz三个分力,以这3个分力作为数据源,绘制接触力的三维图形。接触力的基本绘图模型可表示为:
式中:Fxt、Fyt、Fzt分别为在t时刻采集的X、Y、Z方向的脚底接触力。
人的步态周期包括1个支撑相和1个摆动相。支撑相可描述为一侧脚的后脚跟着地到前脚掌离地的过程,在该过程中脚底法向接触力的变化最为明显。在支撑相初期和末期,脚底法向接触力表示为快速增大和减小。摆动相则描述为该侧脚的前脚掌离地到后脚跟着地的过程,在该过程中脚底接触力为零。根据脚底法向接触力在支撑相的变化特征,提出了运动姿态与脚底接触力同步展示的方法。
首先,用Kinect相机对站立在特定位置的人体进行位置标定,并创建三维虚拟环境;其次,选取人体重量的百分之五作为阈值,将压力传感器阵列采集到的脚底法向接触力存入数组中,通过遍历数组初步筛选出大于阈值的脚底法向接触力所对应的压力传感器的编号;然后,用Kinect相机获取人体左右脚点的位置,通过判断脚点位置是否落在压力传感器的检测范围内来进行二次筛选;最后,将满足条件的三维接触力求和,并且锁定脚点来绘制三维接触力图形。“行为‐力”同步展示流程如图5所示。
图5 “行为-力”同步展示流程Fig.5 Flow of "behavior‐force" synchronous display
本实验采用的电脑配置为:因特尔i5处理器,8G运行内存,GTX1050Ti显卡和刷新率为240 Hz的三星液晶显示屏。选择一名身高为1.70 m的成年男性作为测试人员。实验开始前,测试人员站立在指定位置进行标定,且取测试人员体重的百分之五作为阈值。在三维虚拟环境中出现人体骨架模型后,测试人员以固定的步行速率在测力区域内随意走动。“行为‐力”同步展示实验场景如图6所示。
图6 “行为-力”同步展示实验场景Fig.6 Experiment scene of "behavior‐force" synchronous dis‐play
数据同步处理方法的应用效果如图7所示,其中选取了人体处于摆动相阶段左脚点Z向的部分数据。图7表明插值数据的变化趋势与原始数据相符。
图7 数据同步处理方法的应用效果Fig.7 Application effect of data synchronous processing
“行为‐力”同步展示的实验结果如图8所示。结果表明同步展示方法有效,能够表达人体运动姿态与脚底接触力的关系。
图8 “行为-力”同步展示的实验结果Fig.8 Experimental result of "behavior‐force" synchronous display
在人行走过程中,关节角度和脚底接触力的变变化曲线如图9所示。以1个步态周期为例,结合人体运动姿态来分析脚底接触力的变化。在摆动相,由于左脚处于腾空状态,左脚底三维接触力为零;在支撑相初期,左脚的后脚跟先接触地面,下落时带来的冲击力使得脚底法向接触力瞬间增大,且左脚相对于地面有向后运动的趋势,使得地面给左脚向前的力,由于力的相互作用,左脚会给地面向后的轴向力;在支撑相中期,左脚全脚掌接触地面,脚底法向接触力逐渐稳定为人体的重量,轴向接触力减小到零;在支撑相末期,当左脚离地时,前脚掌会对地面施加压力后离地,从而使得法向接触力再次增加到峰值,且左脚相对于地面有向前运动的趋势,则地面会给左脚向后的力,左脚会给地面向前的轴向力。
图9 人体关节角度和脚底接触力的变化曲线Fig.9 Changing curve of human joint angle and plantar contact force
本文设计的“行为‐力”同步可视化展示系统能够采集人在任意行走状态下的运动姿态及脚底与地面之间的三维接触力,并且以图形化的方式直观展示人体运动姿态与脚底接触力的关系。
由于在测力区域采用了多个传感器,可能会出现传感器受力重合的情况,并且由于人的行走轨迹是任意的,可能会产生左右脚点被遮挡的情况。后期可以采用小型化的传感器和多目深度相机来解决。