杨明 刘洋 李少卫
摘 要:随着互联网技术以及人工智能的不断发展,机器人能够模仿人的动作正越来越受到科技界重视,怎样将人体各关节夹角计算出来并传给机器人成为一个难点。本文基于Kinect提出了一种骨骼关节夹角计算方法,实现了人体关节夹角的计算。通过实验验证,最终证明该方法可行,具有较好的实际应用价值。
关键词:Kinect 关节夹角 人工智能
中图分类号:TP391.4 文献标识码:A 文章编号:1672-3791(2018)06(c)-0102-02
随着社会和科技的进步,机器人的用途越来越广泛,它的发展也越来越受到人类重视。一种能够代替人类在危险环境中作业的机器人正变的越来越受重视。这种机器人能够远程操作,还能获取周围环境信息,使人能根据这些信息做出应对方法。在突发状况需要临场应变的情况下,机器人能够捕捉人的反应,应对处理各种事情。本文基于Kinect传感器,通过对人体姿态的实时识别,获取人体各个关节的三维数据,然后利用本文提出的方法将人体各个关节夹角计算出来并最终传给控制器,实现机器人模仿人的动作。
1 Kinect骨骼提取
Kinect是一款可以通过USB接口与PC相连接的摄像头,比一般摄像头更加智能。它的外设是由三个镜头组成:左侧是红外线发射器,中间是用来获取RGB彩色图像摄像头,最右边是红外线CMOS摄像机所构成的三维结构的光深度感应器。Kinect不能直接通过摄像头追踪大骨骼点,也不能直接實现骨骼追踪,因此需要通过深度图像获取得到骨骼数据,而骨骼点的提取则是通过特征值来进行快速分类。将人体从背景中分离出来后要开始识别人体的不同部位,比如头部、手臂、四肢等相关联的肢体,用不同的颜色标注出人体的不同部位然后寻找图像中较可能是人体的目标物体,通过机器学习对深度图像进行评估,来判别出目标身体的各个部位,整个流程如图1所示。最后根据Kinect追踪到的21个骨骼点来生成一幅完整的骨架系统。Kinect通过评估彩色摄像头和红外摄像头所得到的每一个像素点来判断是否为关节点,是哪一部分的关节点。通过这样的方法,Kinect通过所有可靠信息对人体各个部位实际所在的位置进行精确评估分析。
2 人体骨骼夹角计算
要实现机器人模仿人体动作就要计算出人体关节旋转角度。利用Kinect可以获得人体各关节的三维坐标,利用这些坐标计算人体各关节旋转角度。如图2是Kinect的空间坐标系。常用的计算角度法有解析几何,但其有一个问题:边界条件问题。使用其进行计算时,需考虑各种特殊情况:平行、重叠、垂直、相交等,直接导致了软件代码量爆炸性增长,由此带来编程和调试异常困难。这里采用空间向量法计算角度,从而有效避免以上问题。
2.1 手臂夹角计算
本文所用机器人如图3所示,机器人手臂是由三个舵机组成,分别控制手臂向前、张开、肘关节的张合。
先计算手臂肘关节的张合角度,以肘关节为基本点连接肘关节和手、肘关节和肩膀,组成两条向量。按照向量计算夹角公式(1)所示,计算肘关节夹角。其中n1代表肘关节和肩膀的连接向量,方向指向肩膀,n2代表肘关节和手的连接向量,方向指向手。Kinect扫描会得到相应骨骼点的三维坐标,利用三维坐标即可得到相应空间的向量。
手臂张开角度则按照投影法将n1和n2的向量投影到XOY面上,然后计算其和Y轴的计算夹角。这里需要有一个判断,当手的Y坐标小于肩膀的Y坐标时需要180°减去该夹角,这是由于舵机计算角度是从中间位置加上传过来的夹角差值得到的。
手臂前后角度的计算将两条法向量投影到YOZ平面内,计算其和Z轴的夹角,同样当角度大于90°时候需要180°减去该数值算出差值传给舵机。
2.2 腿部夹角计算
本文机器人腿部由5个舵机组成,共有5个自由度。将膝盖和脚踝当做基本点,连接膝盖和胯部,膝盖和脚踝,得到两个向量,方向分别指向胯部和脚踝,其中胯部与手臂的大臂类似,也是两个舵机分别控制腿部向前和张开运动,按照空间向量法将向量投影到相应坐标平面即可计算出相应的夹角。同样将脚踝和膝盖,脚踝和脚分别相连得到两条向量,方向分别指向膝盖和脚,这里计算脚踝的夹角,按照公式(1)计算夹角,但是此刻脚踝夹角初始位置是90°,得到相应的度数之后需要将初始90°减掉然后传给舵机。
3 实验验证及结论
3.1 实验验证
连接Kinect设备,在Kinect代码中加入角度计算方法,先屏蔽腿部代码,检验手臂各个角度,手臂依次张开特殊角度,如45°、90°、135°等,控制台打印相关角度。然后屏蔽手臂计算角度代码,打开腿部代码,腿部依次做出特殊角度,打印台打印相关角度,如图4所示。最终计算角度和实际角度偏差不超过5°,满足要求。
3.2 结论
本文基于Kinect提出了一种骨骼关节夹角计算方法,实现了人体手臂和腿部关节夹角的计算。最终通过Kinect实验验证,证明该方法可行,将其传给机器人相关部位舵机,可实现机器人对人体动作的模仿。
参考文献
[1] 陈家顺.基于人机交互的机器人动作模仿学习[D].华南理工大学,2015.
[2] 马琼雄.基于视觉的服务机器人人机交互技术研究[D].华南理工大学,2014.
[3] 陈雪锋.基于人体姿态识别的机器人控制技术研究[D].武汉科技大学,2014.
[4] 林云汉.智能机器人“人—机—环境”交互及系统研究[D].武汉科技大学,2017.
[5] 王梅,卢熙昌,屠大维,于远芳,周华.基于人体动作姿态识别的机器人仿人运动[J].机械工程学报,2016, 52(21):26-34.