一种人形机器人姿态控制的智能交通指挥系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种人形机器人姿态控制的智能交通指挥系统
作者:周子玥邢建平刘勇
来源:《科技传播》2015年第06期
摘要人机交互技术已经成为一项热门的综合技术,不断地被应用到很多领域。本文针对当前智能交通指挥系统的单一性,设计了一种人形机器人姿态控制的智能交通指挥系统,利用提出的骨骼追踪算法,使机器人NAO能够实时模仿人体姿态,以实现智能交通指挥。实验结果表明,本系统能够快速跟踪交警指挥动作,在不同环境复杂条件下具有较好的鲁棒性。
关键词人机交互;智能交通指挥;KINECT;NAO
中图分类号TP3 文献标识码 A 文章编号 1674-6708(2015)135-0155-02
0 引言
随着计算机技术的发展,人体交互技术越来越多的受到人们的重视,将基于体感识别的骨骼追踪技术与机器人相结合,成为智能交互领域发展的重要方向。
由于交警在指挥交通时往往执勤数个小时,会吸入大量的汽车尾气和灰尘,增加了患呼吸道疾病的几率。为了减少交警工作量,保证交警身体健康,保护交警人身安全,本文从智能交通手势指挥的角度,提出一种新模式的人形机器人姿态控制的智能交通指挥系统,该系统利用KINECT捕获人体姿态,并传输到机器人中央处理器,使机器人可以实时跟随人体动作,协同指挥交通。
1 系统框架
1.1 框架设计
基于体感技术,将骨骼追踪算法应用于人体姿态识别,并控制人形机器人实时模仿人体动作,实现一种新的自然人机交互模式。其具体流程为:人站在体感设备视距范围内,体感设备将捕获到人体在其坐标系中的实时位置数据,将这些原始数据发送到电脑,电脑端运行的服务程序将接收的原始数据进行计算并绘制实时人体骨骼框架以及原始数据数值显示在屏幕上。此外,电脑端的程序还负责根据原始位置数据构建人体模型,并通过滤波、空间向量运算、腿部姿态检测,计算出控制机器人所需的信息。
1.2 系统模块组成
我们选择KINECT体感设备和NAO人形机器人作为工作设备。
KINECT深度传感器可以获取视野内场景的深度信息[1],并从深度信息提取人体骨骼数据,然后发送至电脑终端。
本系统选取NAO机器人作为系统构架里的智能机器人[2-3]。NAO可编程仿人机器人具有丰富的传感器系统,拥有25个自由度的身体,可完成人体基本动作的模仿,这是实现本系统功能的前提条件。
2 程序设计
2.1 KINECT端程序设计
2.1.1 设备初始化
运行电脑端的服务程序,首先对Kinect进行初始化,该过程包括硬件连接驱动检查、实例化传感器对象、获得深度权限、注册事件等等。
2.1.2 骨骼识别
识别流程主要包括深度图像的获取,通过骨骼识别算法库深度图像识别出人体关节点并提取空间坐标,经过滤波、空间向量计算、腿部姿势识别,为机器人控制提供控制数据。骨骼识别流程为:人体识别事件触发后,获取深度图像,并从中获取关节点位置,然后对位置数据滤波,通过空间向量法计算上肢关节角度,由双脚距离和质心高度估算下肢姿态,完成骨骼的识别。
2.1.3 空间向量法计算关节角度
本文采用空间向量法来何获取人体关节点在KINECT坐标系中的空间坐标,从而计算人体关节角度,下面以Left Elbow Roll为例来说明上肢关节角度的计算方法。
如图1所示,计算Left Elbow Roll角度只需构造该空间夹角两边所在的一组向量,其关节角度计算公
式为:
在机器人的运动过程中下肢关节活动将直接影响到机器人整体的平稳性,为了简化控制难度,本文对于下肢控制采用相对位置法,通过计算下肢末端在相对坐标系中的位置结合人体质心的高度,实现对机器人动作的控制。
将骨骼识别结果的Hip center点垂直投影到地面,作为新的坐标系原点,取左右脚踝点Right ankle和Left ankle在新坐标系中坐标作为机器人的控制数据。
B、C两点在O坐标系中坐标如下:
为了由于不同的人身高差异造成的绝对距离误差,此处将坐标数值除以人体胯宽,其中胯宽计算公式
如下:
因此下肢末端在新坐标系中的位置如下所示:
2.2 机器人控制程序设计
在上文中,已分析将KINECT捕获的关节位置数据转化为关节角度的算法,所得关节角是骨骼模型在理论上可以达到的角度,此处还应结合人类实际的关节活动范围以及机器人实际的舵机转动范围来最终确定使能舵机的关节角度。
在编程实现过程中,其中最主要的参数是每个关节舵机的目标角度,以头部关节为例,下面将讨论把关节角度的计算结果匹配到机器人舵机的方法。
机器头部舵机有两个自由度,名称分别为HeadPich、HeadYaw,其转动方向和角度范围如图3所示。
对于骨骼识别角度Head Pitch和Head Yaw由上文中示意图可知存在向量之间夹角的理论值,又考虑人体肢体可做出的实际动作,根据骨骼模型估计一个经验值,head_yaw的理论值和经验值的范围都为0~180度,head_pitch的理论值为-90~90度,经验值为-85~85度。
由以上数据不难发现,骨骼识别结果经过计算后的关节角度多数情况与机器人舵机可到达角度范围并不匹配,此时需要进行一系列的线性变换,以达到精确控制的效果。
3 结果验证
为了对体感识别模型进行验证,使用Kinect采集提取800组体感动作,测试动作包括左手水平抬起、右手水平抬起、向下右手向前抬起、头部左转、头部右转、左手手臂弯曲、右手手臂弯曲8种手势,每种手势100组。
通过对NAO机器人动作结果和人工动作结果进行比较,输入的800组手势数据中,NAO 机器人动作结果和人工动作结果相同的有773组,平均识别率为96.62%,平均响应时间
33.85ms,由此可知,该体感识别模型具有很高的动作准确性、实时性、灵活性和稳定性。
4 结论