动作捕捉机器人协同柔性姿态控制的方法_2

文档序号:9498514阅读:来源:国知局
的位 置结合人体质心的高度,实现对机器人动作的控制;
[0071] 如图14所示:
[0072] 将骨骼识别结果的Hipcenter点垂直投影到地面,作为新的坐标系原点,取左右 脚踝点Rightankle和Leftankle在新坐标系中坐标作为机器人的控制数据。
[0073] B、C两点在0坐标系中坐标如下,
[0074]LeftFoot= (Az-Bz,AX_BX) (3-17)
[0075]RightFoot= (AZ_CZ,AX_CX) (3-18)
[0076] 为了由于不同的人身高差异造成的绝对距离误差,此处将坐标数值除以人体胯 宽,其中胯宽计算公式如下:
[0077]
[0078] 因此下肢末端在新坐标系中的位置如下所示:
[0079]
[0080]
[0081]本发明的特点是:
[0082] 1、本发明采用先进体感设备和前沿机器人技术,设计了一种新的人机交互模式系 统。
[0083] 2、本发明实现控制人形机器人实时模仿人体动作,具有很高的可靠性,很强的灵 活性,在不同环境复杂条件下具有较好的鲁棒性。
[0084] 3、本发明采用相对阈值距离滤波方法,降低了环境因素和传感器自身抖动造成的 影响,有效地提高了数据的可靠性,系统运行的稳定性。
[0085] 4、本发明将骨骼追踪算法应用于人体姿态识别,针对ΝΑ0是拥有25个自由度的可 编程仿人机器人的特点,实现控制人形机器人实时模仿人体动作,具有很高的可靠性,在不 同环境复杂条件下具有较好的鲁棒性。本发明以Kinect骨骼框架追踪和机器人ΝΑ0硬件 平台为基础。Kinect端,首选进行程序初始化,该过程包括硬件连接驱动检查、实例化传感 器对象、获得深度权限、注册事件监听器。然后开始骨骼框架识别,该过程包括深度图像的 获取,通过骨骼识别算法库深度图像识别出人体关节点并提取空间坐标,经过滤波、空间向 量计算,为机器人ΝΑ0提供姿态控制数据。
【附图说明】
[0086] 图1是本发明所述方法的流程图;
[0087] 图2是如果PC端显示的人体骨骼框架与目标人体的动作不匹配,则重新初始化程 序的流程图;
[0088] 图3是人体骨骼框架识别流程图;
[0089] 图4是人体骨骼框架动态显示在屏幕的示意图;
[0090] 图5是本发明所述相对阈值距离比较滤波算法的流程图;
[0091] 图6是Kinect空间坐标系;
[0092] 图7为关节角度:LeftElbowRoll的计算示意图;
[0093] 图8为关节角度:LeftElbowYaw的计算示意图;
[0094] 图9为关节角度:LeftShoulder.Roll的计算示意图;
[0095]图10为关节角度:LeftShoulderPitch的计算示意图;
[0096] 图11为手部张合角度:LeftHand的示意图;
[0097] 图12为关节角度:HeadPitch的计算示意图;
[0098] 图13为关节角:HeadYaw的计算示意图;
[0099] 图14为将骨骼识别结果的Hipcenter点垂直投影到地面,作为新的坐标系原点, 取左右脚踝点Rightankle和Leftankle在新坐标系中坐标作为机器人的控制数据的计 算示意图。
【具体实施方式】
[0100] 下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
[0101] 如图1-5所示。
[0102] 实施例、
[0103] -种动作捕捉机器人协同柔性姿态控制的方法,包括步骤如下:
[0104] (1)利用体感设备Kinect实时捕获不同时刻目标人体对应目标关节位移数据;目 标人体站在体感设备Kinect视距范围内,为保证最佳识别效果,目标人体应处在体感设备 Kinect的镜头前1. 2-3. 5m,水平视角±57°以内;所述体感设备Kinect具备彩色和深度 感应镜头,水平视野:57度,垂直视野:43度,深度感应器范围1. 2m-3. 5m。运行PC端的服 务程序,见图2,首先对体感设备Kinect进行初始化,该过程包括硬件连接驱动检查、实例 化传感器对象、获得深度权限、注册事件等等;
[0105] (2)将体感设备Kinect捕获到的目标关节位移数据发送到PC端;目标人体站在 体感设备Kinect深度感应镜头前,可以改变头部、手臂、手指等姿态,由体感设备Kinect捕 获所有目标关节位移数据;
[0106] (3)PC端接收所有目标关节位移数据,并根据其实时绘制出人体骨骼框架;绘制 人体骨骼框架的流程如图3;
[0107] (4)PC端将人体骨骼框架动态显示在屏幕上,并提供报错反馈;如图4,给出了四 张具有代表性的服务程序运行状态图:标记为1的部分是目标人体站在视距范围内,程序 初始化结束后显示的由体感设备Kinect首次捕获的数据构建的人体骨骼框架,代表程序 启动正常,开始实时捕获目标人体的姿态变化;标记为2的部分是程序开始后某一时刻由 体感设备Kinect捕获的数据构建的人体骨骼框架,该部分反映了这一时刻目标人体的姿 态;标记为3的部分代表了由于程序运行报错、目标人体紧贴体感设备Kinect的镜头的原 因,造成人体骨骼框架失真的情况;标记为4的部分是由于目标人体远离视距范围,导致体 感设备Kinect无法捕获。标记为3、4的部分是程序给使用者的一个报错反馈,这时候需要 重新初始化程序,以保证机器人收到可靠姿态控制数据;
[0108] (5)PC端对接收到的所有目标关节位移数据进行处理:包括相对阈值距离比较滤 波计算、空间向量计算,得到人形机器人ΝΑ0的姿态控制数据,即关节角度数据;本发明由 于环境因素和传感器自身抖动等原因,导致得到的原始数据里存在干扰数据,因此有必要 对原始数据进行相对阈值距离比较滤波计算,使得机器人动作追踪更加准确、可靠;
[0109](6)调用人形机器人ΝΑ0的NAOqi操作系统中的JointControl函数,根据传送来 的关节角度数据,对人形机器人ΝΑ0的舵机进行控制,使人形机器人ΝΑ0实时跟踪目标人体 动作。
[0110] 根据本发明优选的,所述步骤(4)还包括,所述PC端动态显示人体骨骼框架:如 果PC端显示的人体骨骼框架与目标人体的动作一致,则将关节角度数据发送至人形机器 人ΝΑ0 ;如果PC端显示的人体骨骼框架与目标人体的动作不匹配,则重新初始化程序,以保 证人形机器人ΝΑ0收到可靠姿态控制数据。
[0111] 根据本发明优选的,所述步骤(5)中,所述相对阈值距离比较滤波计算包括:
[0112] 通过观察位移关节点的空间坐标变化,计算固定时间段(例如:0.ls-0. 5s)内同 一关节在开始时间和结束时间组成的波动向量,观察该波动向量的模以及在空间坐标系各 个方向的波动,通过设定波动阈值筛选关节波动值。可以看出关节点识别位置的抖动主要 是沿坐标轴方向的快速抖动,且出现抖动时波动向量的模会大幅增加。因此,应对波动较大 的关节点做相应处理,对小幅度波动的关节点保持上一状态不变,对于不同的关节处使用 不同的阈值比较,保证每次滤波后的结果都是最优解,以保证机器人姿态变换的连续性。
[0113] 根据本发明优选的,所述步骤(5)中,所述空间向量计算包括:
[0114] 根据本发明优选的,所述步骤(5)中,所述空间向量计算包括:
[0115] Kinect所使用的空间坐标系不同于常见的空间坐标系,其X轴与y轴的零点与传 统空间坐标系相同,但其z轴坐标零点为Kinect传感器,正方向为Kinect指向的正前方。 Kinect空间坐标系如图6所示:
[0116] 由Kinect空间坐标系中,得出Kinect坐标系中任意两个不重合的坐标点 PI(xl,yl,zl),P2 (x2,y2,z2),对其组成的向量P1P2 :
[0117]
[0118] 若存在另一点P3且该点不在P1P2所在的直线上,则存在以下关系式:
[0119]
[0120] 根据上述性质,将人体关节角度计算简化为对空间向量夹角的计算,下面将分别 说明上肢关节角度的计算方法:
[0121] 1)关节角度:LeftElbowRoll
[0122] 如图7所示:计算LeftElbowRoll角度只需构造该空间夹角两边所在的一组向 量,
[0123] 并根据上文中提到的关节角度计算公式得:
[0124]
[0125] 2)关节角度:LeftElbowYaw
[0126] 如图8所示:
[0127] LeftElbowYaw关节的角度为肘部绕上臂旋转时产生的角度,此角度通常情况下 为ABC和BCD两相交平面的夹角,即图中平面S1和S2的夹角;根据空间平面夹角计算公式 得出角度LeftElbowRoll的计算方法如下。
[0128] 首先需要明确计算两非共线向量所在平面的法向量的公式:
[0129]
[0130] 因此SI、S2平面的法向量表示为:
v' ~'' -1' -j-.'厂[0133] 丨,t.F,1hnwYaw苦书的隹庶即禁干A/Π、M?两法向量的夹角:
[0131]
[0132]
[0134]
[0135] 3)关节角度:LeftShoulder.Roll
[0136] 如图9所示:
[
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1