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

文档序号:9498514阅读:853来源:国知局
动作捕捉机器人协同柔性姿态控制的方法
【技术领域】
[0001] 本发明涉及一种动作捕捉机器人协同柔性姿态控制的方法,属于人机交互领域和 人工智能领域。
【背景技术】
[0002] 人机交互(HCI,Human-ComputerInteraction)是一门关于设计、评价和实现供人 们使用的交互式计算机系统,以及研究由此而发生的相关现象的学科。人机交互技术主要 是研究人与计算机之间的信息交换,体现在人到计算机和计算机到人的信息交互两部分, 前者是指人们可以借助键盘、鼠标、操作杆、位置跟踪器、数据手套等设备,用手、脚、声音、 姿态和身体的动作、视线甚至脑电波等向计算机传递信息;后者是计算机通过打印机、绘图 仪、显示器、头盔式显示器、音箱等输出设备或显示设备给人提供信息。
[0003] Kinect是微软在2009年6月2日的E3大展上,正式公布的XB0X360体感周边外 设。Kinect彻底颠覆了游戏的单一操作,使人机互动的理念更加彻底的展现出来。它是一 种3D体感摄影机,同时它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互 动等功能。体感,即躯体感觉,是触觉、压觉、温觉、痛觉和本体感觉(关于肌肉和关节位置 和运动、躯体姿势和运动以及面部表情的感觉)的总称。采用LightCoding和光源标定技 术的Kinect利用红外线发射器发出雷射光,通过红外线CMOS摄像机记录空间中的每个散 斑,结合原始散斑图案,通过晶片计算出具有3D深度的图像,进而转换到骨架追踪系统,使 得Kinect可以应用到许多领域。
[0004] ΝΑ0是由AldebaranRobotics公司研制的一个身高58厘米的可编程仿人机器 人。其身体具有25个自由度,主要元件为电机和电动致动器。其运动模炔基于广义逆运动 学,可处理笛卡尔坐标系、关节控制、平衡、冗余性和任务优先性。ΝΑ0头部内嵌英特尔ATOM 1. 6GHz处理器,运行LINUX内核,拥有NAOqi操作系统,是一个开源的软件平台,可用C++或 Python语言进行编程。基于以上特点,机器人ΝΑ0可以最逼真地实现动作跟踪,是本发明的 重要组成部分。

【发明内容】

[0005] 针对现有技术的不足,本发明涉及一种动作捕捉机器人协同柔性姿态控制的方 法。本发明的目的在于为人机交互提出一种新模式。
[0006] 本发明的技术方案如下:
[0007] -种动作捕捉机器人协同柔性姿态控制的方法,包括步骤如下:
[0008] (1)利用体感设备Kinect实时捕获不同时刻目标人体对应目标关节位移数据;目 标人体站在体感设备Kinect视距范围内,为保证最佳识别效果,目标人体应处在体感设备 Kinect的镜头前1. 2-3. 5m,水平视角±57°以内;
[0009] (2)将体感设备Kinect捕获到的目标关节位移数据发送到PC端;
[0010] (3)PC端接收所有目标关节位移数据,并根据其实时绘制出人体骨骼框架;
[0011] (4)PC端将人体骨骼框架动态显示在屏幕上,并提供报错反馈;
[0012] (5)PC端对接收到的所有目标关节位移数据进行处理:包括相对阈值距离比较滤 波计算、空间向量计算,得到人形机器人ΝΑ0的姿态控制数据,即关节角度数据;本发明由 于环境因素和传感器自身抖动等原因,导致得到的原始数据里存在干扰数据,因此有必要 对原始数据进行相对阈值距离比较滤波计算,使得机器人动作追踪更加准确、可靠;
[0013] (6)调用人形机器人ΝΑ0的NAOqi操作系统中的JointControl函数,根据传送来 的关节角度数据,对人形机器人ΝΑ0的舵机进行控制,使人形机器人ΝΑ0实时跟踪目标人体 动作。
[0014] 根据本发明优选的,所述步骤(4)还包括,所述PC端动态显示人体骨骼框架:如 果PC端显示的人体骨骼框架与目标人体的动作一致,则将关节角度数据发送至人形机器 人ΝΑ0;如果PC端显示的人体骨骼框架与目标人体的动作不匹配,则重新初始化程序,以保 证人形机器人ΝΑ0收到可靠姿态控制数据。
[0015] 根据本发明优选的,所述步骤(5)中,所述相对阈值距离比较滤波计算包括:
[0016] 通过观察位移关节点的空间坐标变化,计算固定时间段(例如:0.ls-0. 5s)内同 一关节在开始时间和结束时间组成的波动向量,观察该波动向量的模以及在空间坐标系各 个方向的波动,通过设定波动阈值筛选关节波动值。可以看出关节点识别位置的抖动主要 是沿坐标轴方向的快速抖动,且出现抖动时波动向量的模会大幅增加。因此,应对波动较大 的关节点做相应处理,对小幅度波动的关节点保持上一状态不变,对于不同的关节处使用 不同的阈值比较,保证每次滤波后的结果都是最优解,以保证机器人姿态变换的连续性。
[0017] 根据本发明优选的,所述步骤(5)中,所述空间向量计算包括:
[0018]Kinect所使用的空间坐标系不同于常见的空间坐标系,其X轴与y轴的零点与传 统空间坐标系相同,但其z轴坐标零点为Kinect传感器,正方向为Kinect指向的正前方。 Kinect空间坐标系如图6所示:
[0019] 由Kinect空间坐标系中,得出Kinect坐标系中任意两个不重合的坐标点 PI(xl,yl,zl),P2 (x2,y2,z2),对其组成的向量P1P2:
[0020]
[0021] 若存在另一点P3且该点不在P1P2所在的直线上,则存在以下关系式:
[0022]
[0023] 根据上述性质,将人体关节角度计算简化为对空间向量夹角的计算,下面将分别 说明上肢关节角度的计算方法:
[0024] 1)关节角度:LeftElbowRoll
[0025] 如图7所示:计算LeftElbowRoll角度只需构造该空间夹角两边所在的一组向 量,
[0026]并根据上文中提到的关节角度计算公式得:
[0027]
[0028]2)关节角度:LeftElbowYaw
[0029] 如图8所示:
[0030]LeftElbowYaw关节的角度为肘部绕上臂旋转时产生的角度,此角度通常情况下 为ABC和BCD两相交平面的夹角,即图中平面S1和S2的夹角;根据空间平面夹角计算公式 得出角度LeftElbowRoll的计算方法如下。
[0031] 首先需要明确计算两非共线向量所在平面的法向量的公式:
[0032]
[0033] 因此SI、S2平面的法向量表示为:
[0034]
[0035]
[0036]LeftElbowYaw关节的角度即等于Ml、M2两法向量的夹角:
[0037]
[0038] 3)关节角度:LeftShoulder.Roll
[0039] 加图9所元?
[0040]
[0041] 4)关节角度:LeftShoulderPitch
[0042] 如图10所示:
[0043]LeftShoulderPitch关节的角度为上臂与双肩轴线组成的平面与双肩轴线与脊 柱点组成的平面之间的夹角,此角度通常情况下为ABC和BCD两相交平面的夹角,类比Left ElbowYaw关节角的计算方法,根据空间平面夹角计算公式可得出角度LeftShoulder Pitch的计算方法如下:
[0044] 平面ABC的法向量:
[0045]
[0046] 平面B⑶的法向量:
[0047]
[0048]关节角LeftShoulderPitch计算:
[0049]
[0050] 5)手部张合角度:LeftHand
[0051] 由于KINECT对于手部信息的读取无法精确到手指的状态,因此对于手部张合角 度计算,通过计算Lefthand和LeftWrist之间的距离来估算手部张合的角度,计算方法 如下:
[0052] 如图11所示:
[0053]
[0054] 至此,左臂所有关节的角度全部计算完毕,同理可以计算右臂关节角度;
[0055]6)关节角度:HeadPitch
[0056] 头部两个关节中,与低头和抬头有关的角度名称HeadPitch
[0057] 如图12所示:
[0058] 头部关节HeadPitch的角度选取肩中指向头部的向量与两肩与脊柱组成的平面 的法向量之间的夹角,具体计算公式如下:
[0059]
[0060]
[0061] 7〇 关节角:HeadYaw
[0062] 如图13所示:
[0063] 头部另外一个重要的关节角HeadYaw负责实现头部左右转动,由于KINECT骨骼 识别结果中无法给出面部朝向的数据信息,因此HeadYaw角度无法进行直接计算,然而通 过观察骨骼绘制动画可以看出,头部的空间位置明显位于肩中的前方(即正面面对KINECT 时,Head点和Shouldercenter点在z轴上存在一定距离),因此关于此关节角本文将转化 为平面夹角的计算:
[0064] 平面ABC的法向量
[0065]
[0066] 平面BCD法向量
[0067]
[0068] 关节角度
[0069]
[0070] 在机器人的运动过程中下肢关节活动将直接影响到机器人整体的平稳性,为了简 化控制难度,本文对于下肢控制采用相对位置法,通过计算下肢末端在相对坐标系中
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1