基于Kinect 的仿人机器人实时模仿系统

2019-07-25 08:03孔令轲
现代计算机 2019年17期
关键词:坐标系手臂角度

孔令轲

(华侨大学工业智能化技术与系统福建省高校工程研究中心,泉州362021)

0 引言

机器人是近年来发展起来的综合学科[1],集中了机械工程、电子工程、计算机工程、自动化控制工程以及人工智能等多种学科的最新科研成果,对工业生产发展、劳动生产率等多方面都产生了深远的影响。其中,仿人机器人是一个多关节且具有冗余自由度的复杂系统[2],它不同于一般机器人,在外形和功能等方面更像人类,它的最终目标是研制出具备人类特征(如行走、感官、思维、判断等能力),在相当程度上替代人类并服务于人类的高级智能机器人。因此研究如何让机器人在行为上更贴近人类在当前服务领域[3]、工业领域[4]、健康领域[5]的研究是非常具有应用价值的。

仿人机器人运动稳定性研究是机器人领域的一个热点。目前,稳定运动的规划主要是基于动力学模型[6],而运动规划形成的运动模式往往需要复杂的计算,机器人的运动形式单一。为了实现机器人的多样化运动[7]生成。以人体行走信息为教学数据,实现仿人机器人对人体运动过程的模拟学习,简化了运动规划[8],使机器人的运动更加多样化和拟人化。为了满足机器人在运动仿真过程中的稳定性,本文采用Kinect 深度传感器来捕捉人体的教学运动[9]。针对Kinect 坐标系与机器人坐标系精确统一的问题,以Nao 机器人为中心重构三维坐标解,将解的值转化为Nao 机器人的底层控制,实现实时动作仿真。

本文以机器人Nao 为研究对象,依托Kinect 的骨骼追踪识别功能搭建动作捕捉系统,实时将目标人物的动作简化为关节角度传递给机器人,完成实时模仿效果。该方法精确度高、实时度好、简便易行,规避了复杂的运动模型建立过程。

1 相关工作

1.1 Nao机器人

Nao 机器人重4.5kg,高0.57m,拥有25 个自由度(见图1),机构复杂程度高,动作较为灵活,智能程度高[10]。其躯干内安装了3 轴加速度传感器(ACC)和陀螺仪(GYRO),能够进行信息融合生成躯干姿态角度。同时Nao 每只足有4 个压力传感器(FSR)来确定每只脚压力中心位置,拥有惯性导航仪装置用以保持在移动模式下的平稳,通过超声波传感器探测并绕过障碍物[11],正是有了以上硬件支持,保证了Nao 动作格外平稳和流畅,完美支撑了我们研究的展开。

1.2 Kinect

Kinect 是一款微软发布的体感设备感知器,作为一种非合作方式的人体跟踪系统,可以提供骨骼图像、景深图像及骨架追踪。它含有3 个镜头,中间是RGB彩色摄像机,左右两边镜头分别是红外线发射器和红外线CMOS 摄像机所构成的3D 深度传感器。它们负责捕捉人肢体动作,然后将其和本身内部存有的人体模型相对照,符合的便会被创造成和他相关的骨骼模型,系统可识别人体各个关键部位,见图2。利用彩色摄像头采集到彩色图像和红外摄像头采集到的深度图像,我们可以提取出人体骨架和关节空间位置信息,见图3。

图1 Nao各自由度示意图

图2 人体各个关键节点总览

图3 Kinect提取人体骨骼框架

2 Nao运动学建模

Kinect 三维坐标是根据Kinect 摄像头建立的,原点位于摄像头位置,x 轴由原点从左指向右,y 轴垂直主光轴向上,按右手系法则确定出z 轴方向。但是该种建立的坐标系的方式会收到距离和背景的影响,捕捉的数值具有一定的噪声,为了解决这个问题,我们重新以人体为依据,重新建立了坐标系。设SHOULDER_CENTRE、SPINE、HOULDER_RIGHT 和SHOULDER_LEFT 四个节点分别为点A、点B、点C 和点D。

可以求解:

X 轴为:(CX-DX,CY-DY,CZ-DZ);

Z 轴为:(BX-AX,BY-AY,BZ-AZ);

图4 重建三维坐标系建立

再通过公式(1)求出向量作为Y 轴,即:

得到的人体坐标系见图4 所示。

以右手为例见图5 所示,接下来将详细介绍计算机器人关节角度计算:取SHOULDER(S)、ELBOW(E)、WRIST(W)三个点坐标(Xs,Ys,Zs)、(XE,YE,ZE)和(XW,YW,ZW)。

图5 人体右手关节点

其中,各个向量表示如下所示:

将SHOULDER_ELBOW 与向量(公式(2))求得θ1。

将θ作为传递给Nao 机器人右手臂的RShoulder-Pitch 关节的值;

REblowYaw 为自由旋转角度用上述方法无法直接计算,我们通过实验调试最终将WRIST 的Z 坐标值与ELBOW 的Z 坐标值做差再除以WRIST 与ELBOW 之间的距离求反三角函数再加上RShoulderPitch 的值将其作为Nao 机器人REblowYaw 的关节值(公式(5))。

Nao 机器人左臂关节与以上算法类似,在这里不再赘述。通过计算出手臂的八个关节角度值传入Nao机器人的驱动系统来实现运动控制,以及实时的动作模仿。

考虑到Nao 机器人每一个关节能活动的范围并不能像人一样大,过大的角度会造成Nao 机器人损坏,所以超过各个关节阈值的角度后,一律传入最大角度。Nao 机器人各节点活动阈值见表1。

表1 Nao 机器人各节点活动阈值

3 实验及分析

Nao 机器人是法国阿尔德巴兰公司研发的一款具有25 个自由度、可双足行走的人形机器人,目前世界范围内有超过5000 所高校和研究机构将其作为研究实验平台,本文创建Nao 机器人动作模仿系统,人体关节点采集以及示教数据读取使用Python 语言开发实现,将示教动作信息传入Naoqi 达到数据更新,再映射到Nao 机器人控制端从而完成动作模仿的效果。

实时通过Kienct 实现Nao 机器人动作模仿如下图所示,其中图6 为手臂伸展动作模仿,图7 为手臂弯曲复合动作模仿。

图6 手臂伸展动作

图7 手臂弯曲复合运动

4 结语

本文针对仿人机器人实现实时模仿目标人物运动进行研究与实验,提出了一种基于Kinect 的动作捕捉模仿方法,该方法规避了复杂的底层运动建模,简便易用的使仿人机器人能像真实人类一样运动,该方法精确度高、实时度好。但是同时也存在缺陷,即因为Kinect 无法感知目标人物平向运动变化(如左右转动头部),因此无法完成机器人模仿目标人物该类型的动作。同时,本实验未引入机器人平衡控制,所以即使Nao 能接受下半身目标人物关节信息,但当运动下半身,很大几率会出现摔倒的情况。以上问题将在后续的工作中进一步研究和解决。另外,本文方法将在未来时间进行如下拓展:将各个动作相关信息按照时间维度存储数据库中,之后进行调用,从而达到仿人运动的效果。

猜你喜欢
坐标系手臂角度
独立坐标系椭球变换与坐标换算
一个涉及角度和的几何不等式链的改进
坐标系背后的故事
三角函数的坐标系模型
角度不同
变大变大
人啊
求坐标系内三角形的面积
完美的手臂
大树为什么有那么多手臂