杨大勇
(淮北工业与艺术学校 教务处,安徽 淮北 235000)
基于Kinect控制的类人机器人的运动研究
杨大勇
(淮北工业与艺术学校 教务处,安徽 淮北 235000)
基于 Kinect 控制技术分析了类人机器人的运动状况:整个过程包括硬件机器人运动分层控制平台的搭建、基于分层控制理论下机器人运动建模、基于机器人运动研究的体感人机交互系统的设计。根据现已存在的仿真平台验证了该理论的可行性。
类人机器人;机器人运动建模;分级控制;人机交互系统
仿人机器人一般指具有双手、双腿、双足等人类特征可自由移动的机器人,它集多种高尖端技能和前沿学科于一体,一定程度上表征一个国家的创新实力与科技水平。日本本田公司于1997 年 10 月推出了仿人形机器人 P3,美国麻省理工学院研制出仿人形机器人科戈(COG)。虽然目前仿人机器人可用于军事、医疗、勘探等多个领域,但对仿人机器人的研究大多仍停留在实验室内,现在研发的仿人机器人对周设环境的感知与适应等多种能力仍待提高。可见,仿人机器人发展前景十分广阔。
本论文描述的机器人系统采用分级控制方式。下层运动控制采用实时性比较好的运动控制板控,以实时控制机器人的位置与速度,上层采用装有操作系统的主控制板。上层主要负责图像信息采集处理、路径规划以及信息集成等工作。机器人的硬件结构如图所示:
图1 硬件架构
(一)ZMP移动轨迹设计
根据ZMP稳定理论,当零力矩点落在机器人脚掌范围内,机器人可以较为稳定地行走。因此最简单的思路就是直接设计ZMP在每个步行单元都处在支撑点,即每个步行单元的原点位置,因此有
(1)
(2)
其中Zc是身体质心与运动约束平面的截距。
其中该次运动的起点与终点一般情况下是较为确定的。这就为运动方程的得出提供了约束条件。
在步行单元[0,T]内,设身体的初始值为(x0,y0),终止值为(x1,y1),则可解得身体的运动轨迹如下:
(3)
图2 质心在x轴位置随时间变化曲线
(4)
质心在x轴位置随时间变化曲线如图2所示,而下一步身体的起始位置即为上一步行单元的终止位置,即
(5)
(二)双脚的运动轨迹
上面讨论了身体的运动轨迹,然后还要获得脚的运动轨迹,才能通过逆运动学得到下肢关节的运动角度。对于一个步行单元[0,T],设在[0,t1],[T-t,1T]时间内为双脚支撑阶段。
对于支撑脚,在[0,T]内有:
(6)
由于在[0,t1],[T-t,1T]时间内为双脚支撑阶段,故这段时间内摆动腿也是静止的:
(7)
(8)
因此可以设计如下曲线:
(9)
计算该曲线在t=0,t=T时刻的位置,速度,加速度得:f(0)=ps,f(T)=pe,f′(0)=0,f′(T)=0,f″(0)=0,f″(T)=0符合要求。因此对于时间段[t1,T-t1],可以使用该曲线生成x,y两个方向的运动曲线如下:
(10)
取S(n)=0.02,S(n-1)=-0.02,T=40,用MATLAB画出双足步行x方向运动仿真曲线如图3所示:
图3 双足步行x方向运动仿真曲线
由图3可以看出,该曲线随时间的变化率和所期望的值是相同的。
对于摆动腿在z轴方向上的运动轨迹,需要指定抬脚高度h,并将时间分为抬脚阶段[t1,t1+(T-2t1)ρ]和落脚阶段[t1+(T-2t1)ρ,T-t1],其中0<ρ<1。根据式(6-11)设计运动曲线如下:
(11)
取h=0.06,T=40,ρ=0.5,用MATLAB画出抬脚运动仿真曲线如图4所示:
图4 抬脚运动仿真曲线
由图4可以看出,该曲线随时间的变化率和所期望的值是相同的。
这样便得到了一个步行单元内的双脚轨迹,再结合身体轨迹,就可以由逆运动学计算出下肢每个关节的运动角度。
(一)系统结构
本论文中研究的体感人机交互系统更主要包含三个部分,一开始的是基于Kinect的人体姿态采集部分,姿态采集部分将包含了人体骨骼点信息的数据发送到数据处理端;第二个部分,称为姿态识别。在数据处理端进行滤波,计算和姿态识别工作。第三部分,称为动作控制。经过数据转换处理,将姿态数据转换成机器人控制数据,然后将数据送到仿真平台和机器人身上,整个系统结构如图5所示:
图5 系统结构注:motion capture:动作捕捉;motion recognition:动作识别;filter:过滤;calcuation of the joints angle and position:同时计算角度和位置;format transfer:格式转换;simulation:仿真;Robot model:机器人模型;excution:执行;humanoid robot:类人机器人
(二)姿态识别
1.粒子滤波器
微软官方提供的Kinect SDK可以捕捉关节和他们的轨迹。官方的Kinect SDK提供和固定的并且黑箱式的姿态追踪模式。本文论述平台采用的追踪模型采用了这个固定的追踪模式。在这个模式下,Kinect会采集人类身体中的20个骨骼关节点。但是一个很重要的问题是,这些关节点由于图像处理的误差原因,他们并不是非常的稳定,所以这些数据的变化并不是一个连续的,也不是一个精确的结果。他们会在正确结果的附近以一个类似高斯分布的方式出现。所以,考虑使用粒子滤波器来解决这个问题。
2.关节角计算和姿态识别
(1)上半身模型: 上身骨骼模型的关节角是一个用来可以正确描述示教者的运动姿态的非常重要的参数。根据基本的线性代数的知识和人体上身模型如图6所示:
图6 上半身模型
注:wrist and hand:手腕和手; elbow:肘部
我们能够容易的计算出上半身的关节的角度,从而识别出上半身的姿态。
(2)下半身模型: 因为一边模仿人类动作的一边来平衡机器人的下肢运动平衡是一个非常困难的工作。我们采用了有限自动机(FSM)来实现一个类似于上半身模型的姿态识别算法。这个下半身算法如图7。在下半身,关节的历史姿态是另一个非常重要的参数。将这个参数和人体关节骨骼角度结合,能够提供给我们足够的信息来识别出不同的动作。
根据关节角度信息和关节历史姿态信息,通过状态机的相关准则我们可以正确的识别出人体姿态并计算出机器人控制数据。图8描述了有限状态机的流程和姿态识别过程。
图7 下半身模型
(注:hip:臀部;ankle:踝关节;knee:膝盖;shoulder line in last frame:肩线最后一帧;left:左;center(centre):中心;right:右(仅作部分标注))
图8 下半身姿态识别的有限状态机的结构
(注:criterion:准则,规律;squat:蹲坐)
目前机器人仿真软件有很多,较为专业的有 robotworks、robotcad,还有就是各机器人厂家开发的专用仿真软件,如 ABB 的 robotstudio,KUKA 的SimPro,MOTOMAN 的 motosim 等等。
考虑到本次模拟对仿真要求不高,拟采用 openGL 进行三维仿真模拟。 OpenGL 是一个开放的三维图形(二维亦可)软件包,可跨平台的编程接口规格的专业的图形程序接口,是一个功能强大,调用方便的底层图形库。而且其可较为方便地移植于不同的平台之间,提供了复杂三维物体、曲线、曲面等的绘制函数。显然,这些功能足够本平台使用,具有较高可实施性。
本文通过对类人机器人的运动建模,从而达到研究基于Kinect 控制的类人机器人运动情况的目
的。从对人体数据采集、机器人架构设计、运动学分析、步态规划和稳定性控制进行了较为深入的研究,主要研究结果包括:
(一)通过对类人机器人的仿人程度进行分析,针对机器人的功能需求,提出了分层模块化的软硬件设计思路。在软件结构上,由上至下将其分为上层机、下层机,并着重搭建了下层机的动作规划层和稳定控制层的软件平台和程序整体架构。配合软件结构分层,将硬件结构上划分为图像采集器,主控制板,运动控制板,以及其他机器人硬件。
(二)将图像采集的数据进行处理,并在此基础上进行了机器人的运动学建模。
(三)基于ZMP稳定性理论,对机器人的步行进行了离线的步态生成,着重分析了支撑脚切换瞬间的速度与加速度不连续的问题,并使用Matlab仿真验证了此算法的合理性。
(四)基于对类人机器人的运动研究,探讨了相应的体感人机交互系统设计。
本文针对进一步提高类人机器人的仿真程度,提出了分层模块化的软硬件设计思路,并用现有平台进行仿真模拟,验证了该理论的科学性以及可行性。相信该仿真技术一定会走出实验室,必定有巨大的发展前景。
[1] 梶田秀司.仿人机器人[M].管贻生,译.北京:清华大学出版社,2007:15-32.
[2] M·伍科布拉托维奇.步行机器人和动力学假肢[M].北京:科学出版社,1983:11.
[3] Erica Naone.Microsoft Kinect:How the Device Can Respond to Your Voice and Gestures[J].Pioneering with Science and Technology,2011(4):82-83.
[4] 狄海进.基于三维视觉的手势跟踪及人机交互中的应用[D].南京:南京大学,2011.
[5] 余涛.Kinect应用开发实战:用自然的方式与机器对话[M].北京:机械工业出版社,2012.
[6] 张利格,毕树生,高金磊.仿人机器人复杂动作设计中人体运动数据提取及分析方法[J].自动化学报,2010 (1):107-112.
[7] 毛勇,王家廞,贾培发,等.双足被动步行研究综述[J].机器人, 2007 (3): 274-280.
责任编辑:力 草
2017-05-26
杨大勇(1970—),男,安徽淮北人,助理讲师,研究方向:多媒体技术应用。
TP242.6
:A
:1671-8275(2017)05-0141-04