首页> 中国专利> 一种基于Kinect的仿人机器人人体行为模仿方法

一种基于Kinect的仿人机器人人体行为模仿方法

摘要

本发明公开了一种基于Kinect的仿人机器人人体行为模仿方法,包括以下步骤:1)从Kinect采集到的RGB‑D图像中提取人体骨架信息,构建人体的运动模型;2)根据仿人机器人自身的肢体结构特点构建仿人机器人的运动模型;3)通过映射模型将采集到的人类动作转换成机器人运动模型中的动作;4)利用平衡控制技术调整机器人关节角度使得在模仿过程中机器人保持稳定;5)对机器人的状态进行自碰撞避免处理后,将最终的关节配置数据发送给机器人以完成模仿动作;本发明采用八条运动链的映射技术让仿人机器人模仿人类尽可能多的关节位置,动作模仿相似,可以在线实时执行。可以用于仿人机器人对人体动作的学习、远程控制等方面。

著录项

  • 公开/公告号CN106078752A

    专利类型发明专利

  • 公开/公告日2016-11-09

    原文格式PDF

  • 申请/专利权人 西安电子科技大学;

    申请/专利号CN201610480222.7

  • 申请日2016-06-27

  • 分类号B25J9/22(20060101);B25J9/16(20060101);B25J19/00(20060101);

  • 代理机构北京华仲龙腾专利代理事务所(普通合伙);

  • 代理人李静

  • 地址 710000 陕西省西安市雁塔区太白南路2号

  • 入库时间 2023-06-19 00:48:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-19

    授权

    授权

  • 2016-12-07

    实质审查的生效 IPC(主分类):B25J9/22 申请日:20160627

    实质审查的生效

  • 2016-11-09

    公开

    公开

说明书

技术领域

本发明涉及仿人机器人动作控制技术领域,具体是一种基于Kinect的仿人机器人人体行为模仿方法。

背景技术

仿人机器人是一种外形像人的机器人,它可以在人们所处的现实环境中工作并且能够使用人类的工具,世界上最早的仿人机器人首推1973年早稻田大学加藤一郎研究室的WABOT-1,经过四十多年的发展,仿人机器人现在已被广泛地应用在各个领域;目前,仿人机器人进入了一个新的研究阶段,仿人机器人和人工智能的结合将会让仿人机器人具有思维,进而可以更好地融入人类生活为人类服务和工作。

仿人机器人作为一个火热的研究领域已经在人类社会展现出独特的风采;日本本田公司研发的ASIMO机器人在展览会上表演跳跃、跑步和为客人倒水等动作,展现出仿人机器人超强的服务能力;日本夏普研发的手机机器人是一个微缩的仿人机器人,它除了一般智能手机的功能外还可以走路和跳舞,而且这款机器人手机已经投入市场并且深受人们欢迎;因此,仿人机器人的应用已经开始投入市场,并且将来一定会普及到人类的日常生活中。

在仿人机器人的研究中,将人工智能和仿人机器人结合是让机器人融入人类生活的关键,而目前人工智能尚不成熟而且很多人工智能产品都是有领域针对性的,这并不能让仿人机器人具有比较完整的意识;基于目前的情况,一方面可以让机器人做一些简单重复的机械动作,例如流水线上的装配工作可以交给机器人完成;另一方面人类可以远程操控在机器人去代替人类完成一些危险或者困难的任务。由于机器人智力低,它无法根据当前的情况作出正确的判断,只能听从于指令行动,如果使得仿人机器人具有模仿性,让机器人跟着人去做相似的动作,则能极大的扩宽仿人机器人的使用范围,提高其使用性能。

模仿技术是一种基于动作捕获设备得到人类运动数据并利用模仿算法完成从人类动 作映射到仿人机器人动作的技术;模仿可以保证机器人稳定的前提下让它做出和人类相似的动作,这样可以让人类远程控制机器人去做一些危险的事,例如火灾救援或者抓取危险物品;机器人还可以根据人类的动作学习一些基础动作例如基于仿人机器人的哑语动作学习,之后机器人就可以和聋哑人进行手语交流;除此之外,利用动作学习机器人可以记录人类舞蹈并且将舞蹈动作以机器人的形态再现,这样就可以很好地记录我们国家的非物质文化遗产,例如一些快要消失的少数名族的舞蹈。

然而,已知的大多数模仿算法都是离线的或者只针对上肢的模仿,尽管存在少量的全身行为模仿算法,但模仿的部位甚少以致模仿效果不理想;针对以上问题,本发明旨在提出一种实时的全身行为模仿算法,要求模仿的部位尽可能多以提高模仿效果。

发明内容

本发明的目的在于提供一种以从Kinect采集到的RGB-D图像中提取到的人体骨架信息为基础去构建人体八条运动链的运动模型,并通过映射模型和平衡控制机制将动作映射到机器人运动模型中去实时地让机器人再现模仿动作的基于Kinect的仿人机器人人体行为模仿方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于Kinect的仿人机器人人体行为模仿方法,以从Kinect采集到的RGB-D图像中提取到的人体骨架信息为基础,构建人体八条运动链的运动模型,并通过映射模型和平衡控制机制将动作映射到机器人运动模型中去实时表示,包括以下步骤:

1)建立动作数据采集、动作数据处理和关节配置三个模块,动作数据采集模块负责构建人体动作的抽象模型,动作数据处理模块把人类动作映射给机器人并对机器人的动作优化处理,关节配置模块将处理后的关节数据发送到机器人来执行模仿动作;

2)动作数据采集过程:针对Kinect采集到的RGB-D图像逐帧提取人体运动模型,每一帧都用抽象模型去表示当前捕获的人类行为;

3)动作数据处理过程:对采集到的每帧数据分别进行映射模型处理、平衡控制处理以及自碰撞避免处理三个步骤,最终得到对应仿人机器人模仿姿态的关节角度配置;

4)映射模型处理过程:逐帧将人体运动模型下表示的八条运动链向量转换到机器人运动模型下去表示,利用映射后得到的向量计算机器人各个末端效应器的位置,然后结合逆运动学公式求解机器人所有运动链上的所有关节配置;

5)平衡控制过程:计算每帧机器人的重心位置并判断机器人重心的铅直投影是否在其支撑多边形之内以决定机器人的平衡状态,判断为不平衡时修改机器人下肢的关节配置使其重心铅直投影落在支撑多边形范围内;

6)自碰撞避免过程:利用立方体量化表示躯干所占空间,结合正运动学和逆运动学判断机器人的末端效应器是否和躯体发生自碰撞,判定发生自碰撞时则调节上肢角度使得末端效应器远离躯干,并再次判断自碰撞状态;

7)关节配置过程:判断机器人的下肢是否有动作,判断为上肢动作但下肢无动作时则对动作执行提速,缩短配置时间以提高机器人的执行速度;

作为本发明进一步的方案:实时动作模仿针对连续图像序列在线进行,图像序列中包含的人体行为的起始和终止时间点都是未知的。

作为本发明再进一步的方案:所述步骤1中,采集到的每帧图像在动作处理过程结束之后执行关节配置过程。

作为本发明再进一步的方案:所述步骤2中,从Kinect提取到的人类运动模型是用八条运动链表示的,八条运动链分别由上肢的两条前臂、后臂以及下肢的两条上腿和下腿构成,抽象模型中用向量去表示八条运动链,姿态表示方式为:

P=[VLElbowLShoulder,VLHandLElbow,VRElbowRShoulder,VRHandRElbow,VLKneeLHip,VLAnkleLKnee,VRKneeRHip,VRAnkleRKnee];

式中,向量表示从关节From到关节To的运动链。

作为本发明再进一步的方案:所述步骤3中,处理模块对每帧数据按顺序执行动作映射、平衡控制和自碰撞避免过程。

作为本发明再进一步的方案:所述步骤4中,通过拟合人类运动链的单位向量和对应机器人运动链的单位向量完成动作映射,用逆运动学计算运动链上的关节角度修正值的方 式为:

Δq=W-1JT(JW-1JT+λI)-1Δx;

式中,J为雅克比矩阵,阻尼系数λ是一个根据解影响关节位置误差的情况而变化的正数,I是单位矩阵,Δx是关节的理想位置和当前位置的差,Δq是运动链上所有对应关节的角度修正值,W为权重矩阵,由关节角度范围和当前关节i的角度θi得到,计算方式为:

wi=1+|H(θ)θi|;

H(θ)θi=(θi,max-θi,min)2(2θi-θi,max-θi,min)4(θi,max-θi)2(θi-θi,min)2.

作为本发明再进一步的方案:所述步骤5中,模仿过程中让机器人做准静态运动使得重心在地面的铅直投影等同于零力矩点,零力矩点在支撑多边形内则判定机器人稳定,重心的计算方法为:

PCoM=Σi=0NmipiΣi=0Nmi;

式中,pi表示机器人连杆i在其局部坐标系下的质心位置,mi是连杆i的质量。

作为本发明再进一步的方案:所述步骤6中,判断自碰撞发生的部位包括躯干和手部。

作为本发明再进一步的方案:所述步骤7中,当检测到下肢有动作配置时放慢机器人的动作执行速度以使得机器人达到做准静态运动的效果。

与现有技术相比,本发明的有益效果是:本发明提出了一种基于Kinect的仿人机器人人体行为模仿方法,无需进行模仿前机器人和人的行为校准,映射模型使用八条运动链表示的动作即可以让机器人展现的模仿动作与人类高度相似;本发明的方法令机器人重心和支撑脚的连线近似垂直于地面来控制机器人的平衡,从而保证了机器人可以实时、稳定地 模仿;本发明的方法在整个模仿过程中,动作数据采集模块、动作数据处理模块和关节配置模块都是并行的,通过读写缓冲区的方法来进行模块间的通信,执行效率高,可以实现在线实时执行;以从Kinect采集到的RGB-D图像中提取到的人体骨架信息为基础去构建人体八条运动链的运动模型,并通过映射模型和平衡控制机制将动作映射到机器人运动模型中去实时地让机器人再现模仿动作。

附图说明

图1为本发明的工作流程图。

图2为本发明中人体运动模型示意图。

图3为本发明中机器人运动模型示意图。

图4为本发明中本发明中支撑模式切换示意图。

图5为本发明中支撑多边形示意图。

图6为本发明中机器人的单脚支撑模式示意图。

图7为本发明中机器人的双脚支撑模式示意图。

图8为本发明中机器人的双脚支撑模式侧视图。

图9为本发明的系统架构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1~9,本发明实施例中,一种基于Kinect的仿人机器人人体行为模仿方法,算法流程如图1所示,构建人体的运动模型、构建机器人的运动模型、动作映射、平衡控制和自碰撞避免的实现过程,按照以下步骤实施:

a)构建人体的运动模型

人体的运动模型在Kinect采集到的人类躯干中心建立坐标系,由RGB-D图像提取出来的人类运动模型如图2所示,由八条运动链表示的运动模型可以表示任意的人类行为,姿态表示为:

P=[VLElbowLShoulder,VLHandLElbow,VRElbowRShoulder,VRHandRElbow,VLKneeLHip,VLAnkleLKnee,VRKneeRHip,VRAnkleRKnee];

式中,向量表示从关节From到关节To的运动链。

把Kinect坐标系下各个关节的深度数据转换到人类躯干坐标系中去表示的具体方法为:对于人类躯干坐标系下的任意一点已知的是Kinect坐标系下所有关节点的坐标包括躯干的坐标和姿态假设这一点在Kinect坐标系下为则有以下关系:

CiKinect=RTorsoKinectCiTorso+CTorsoKinect;

由此,根据以下计算方法解得

CiTorso=(RTorsoKinect)T(CiKinect-CTorsoKinect);

式中,因为所有的旋转矩阵都是斜对称矩阵,斜对称矩阵R有RT=R-1

b)构建机器人的运动模型

仿人机器人根据自身的结构特点可在躯干中心建立坐标系,运动模型由八条运动链表示,如图3所示,机器人的姿态也可表示为:

P=[VLElbowLShoulder,VLHandLElbow,VRElbowRShoulder,VRHandRElbow,VLKneeLHip,VLAnkleLKnee,VRKneeRHip,VRAnkleRKnee];

式中,向量表示从关节From到关节To的运动链;

c)动作映射

根据构建好的运动模型,通过拟合机器人和人类运动模型对应运动链的单位向量来完成从人类行为到机器人行为的转换,映射后机器人关节坐标的计算方式为:

CLElbow=uLINK(LShoulder)·p+VLElbowLShoulder||VLElbowLShoulder||·LLElbowLShoulder;

式中,uLINK(LShoulder)·p是一个常数,代表机器人躯干坐标系下其肩部的三维位置,肩部和躯干中心的距离是固定的,关节LShoulder是Left Shoulder的简称,表示左肩关节, 代表机器人的上臂长度,也是一个常数,LElbow是Left Elbow的简称,代表左肘关节;向量是人类运动链的向量表示形式,||.||为欧式距离算子;

得到映射后机器人关节的三维位置后,根据关节位置来计算对应运动链的关节角度,计算公式为:

Δq=W-1JT(JW-1JT+λI)-1Δx;

式中,J是雅克比矩阵,阻尼系数λ是一个根据解影响关节位置误差的情况而变化的正数,I是单位矩阵,Δx是关节的理想位置和当前位置的差,Δq是运动链上所有对应关节的角度修正值,W是权重矩阵,由关节角度范围和当前关节i的角度θi得到,计算公式为:

wi=1+|H(θ)θi|;

H(θ)θi=(θi,max-θi,min)2(2θi-θi,max-θi,min)4(θi,max-θi)2(θi-θi,min)2;

d)平衡控制

模仿过程中让机器人做准静态运动使得重心在地面的投影近似地表示零力矩点,只要零力矩点在支撑多边形内机器人就会稳定,重心的计算公式为:

PCoM=Σi=0NmipiΣi=0Nmi;

式中,pi表示机器人连杆i在其局部坐标系下的质心位置,mi是连杆i的质量;

支撑模式的切换示意图如图4所示,只有当重心切换到支撑脚并且自由脚和支撑脚的高度差达到一定程度才认为是从双脚支撑模式切换到单脚支撑模式;同理,只有当重心离开支撑脚并且自由脚和支撑脚的高度差小于一定值才认为是从单脚支撑模式切换到双脚支撑模式;具体的切换条件表示为:

Cond1:|Torso.y-LAnkle.y|OFFSETRAnkle.z-LAnkle.zMIN_HEIGHT;

Cond2:|Torso.y-RAnkle.y|OFFSETLAnkle.z-RAnkle.zMIN_HEIGHT;

Cond3:|Torso.y-LAnkle.y|OFFSETRAnkle.z-LAnkle.zMIN_HEIGHT;

Cond4:|Torso.y-RAnkle.y|OFFSETLAnkle.z-RAnkle.zMIN_HEIGHT;

式中,Torso是Kinect采集到人类躯干中心的三维坐标用来近似替代人类重心的位置,LAnkle和RAnkle全称为Left Ankle和Right Ankle分别表示Kinect采集到人类左右踝关节的三维坐标,OFFSET和MIN_HEIGHT均为模仿系统设定好的阈值,用来消除Kinect采集波动带来的影响;

图4中部分关节的含义如下表所示:

支撑多变形的数学模型如图5所示,在一只脚的中心建立平面坐标系,支撑多边形的六条边界l1、l2、l3、l4、l5和l6均表示为y=a·x+b的形式,这样在已知机器人重心三维坐标的情况下就可以判断其在地面的铅直投影是否在支撑多边形范围内来决定机器人当前的平衡状态;

机器人的单脚支撑模式如图6所示,向量[0,0,1]T首先绕roll轴旋转了α角度,然后绕pitch轴旋转了β角度得到向量Ankle-CoM,向量Ankle-CoM代表支撑脚踝关节Ankle和重心CoM(全称为CenterofMass)的连线;实际上,这里的pitch轴并不是世界坐标系中的而是Ankle局部坐标系下的,因为roll轴相对于地面是pitch轴的母连杆;通过空间向量法求解角度α和β,计算公式如下:

n=Vroll×VAnkle-CoM;

|α|=a>cos(n·Vpitch||n||·||Vpitch||);

Vstart=[0,sin(|α|),cos(α)]T;

|β|=a>cos(Vstart·VAnkle-CoM||Vstart||·||VAnkle-CoM||);

式中,分别为||.||为欧式距离算子;

用角度α和β不断修正踝关节角度,之所以要重复多次,是因为随着踝关节角度的调整重心的位置将会发生改变;本发明采用这种循环逼近的方式获取最终的踝关节配置,循环结束直到最大迭代次数或者重心的投影位置满足要求。这种方法虽然类似一般的数值逼近方法例如最小二乘法,但速度会更快一些,因为前几次调整便可以让重心的三维位置满足条件而不需要太多次迭代,是直接让Ankle-CoM与地面直接垂直,便于让重心落于支撑多边形内。

机器人的双脚支撑模如图7-8所示,机器人是经过踝关节调整后的双脚支撑模型,理想的调整姿态结果为Ankle-Hip落于pitch-yaw平面,Hip为机器人的髋关节;AB是关节Hip的旋转轴,它和向量Ankle-Hip互相垂直;γ是pitch-yaw平面和由向量AB和Hip-CoM构成的平面AB-CoM之间的夹角,用γ去更新机器人关节Hip的角度,如果向量Ankle-CoM和平面pitch-yaw平行,机器人就是稳定的,双腿支撑模式的计算方式为:

n=VAB×VHip-CoM;

|γ|=a>cos(Vroll·n||Vroll||·||n||);

式中,法向量是平面AB-CoM的,对应的调整角度γ通过计算两个平面AB-CoM和yaw-pitch法向量的夹角得到,||.||为欧式距离算子;

e)自碰撞避免

自碰撞分析在平衡控制之后,借助正运动学和逆运动学实现;首先把机器人可能发生自碰撞的位置抽象成简单的空间立体,可以是由单位立方组建而成或简单的圆柱体模型;机器人手部在躯干坐标系下的三维位置,可以通过判断这个点是否在抽象出来的可碰撞圆柱体范围之内来决定自碰撞情况的发生;如果发生自碰撞,可以让末端效应器的位置垂直柱体轴线远离一定距离来避免,然后再用正运动学求解新的关节配置,最后用正运动学更新机器人的位姿。

图9展示了模仿系统的实现架构,系统由三个模块构成,包括采集模块、数据处理模块和配置模块;采集模块通过Kinect获取的关键关节的坐标来构建人类的运动模型,采集模块还可以控制采集帧率和过滤坏帧;处理模块分成三个步骤:首先,根据关节坐标建立以躯干为原点的坐标系,八条链的人类运行学模型被构建出来;然后,拟合机器人每条运动链的单位向量和对应人类的运动链的单位向量来达到模仿效果;最后,平衡控制和自碰撞避免机制需要被集成进来;为了缩短处理时间,上肢和下肢关节的逆运动学(Inverse Kinematics简称IK)和正运动学(Forward Kinematics简称FK)计算并行处理,还有采集模块、处理模块和配置模块也同时运行来提高系统性能。

本发明的仿人机器人模仿人体行为关键在于动作映射和平衡控制方面,这两者可以保证机器人稳定高效地模仿人类行为。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号