基于人体动作识别的类人机器人动作模仿
2021-11-01朱奇光董惠茹张孟颖
朱奇光,董惠茹,张孟颖
(燕山大学 信息科学与工程学院,河北 秦皇岛 066004)
1 引 言
随着类人机器人研究的深入以及模仿学习的不断进步,类人机器人动作模仿相似性问题已经成为了机器人领域的研究热点[1]。一台机器人的模仿学习程度是机器人智能化程度的重要体现。模仿学习在机器人仿生学中也有着举足轻重的地位[2]。基于模仿学习的类人体感机器人动作模仿的顺利实现对于机器人自主获取经验、机器人运动行为的发展、提高工业生产效率以及一些特殊任务的完成有着重要的意义。传统的基于视觉的示教者动作识别方法受光照影响较为严重,可穿戴动作捕捉设备识别精度较高但价格高昂,以上问题使得3D Kinect相机从一众动作识别设备中脱颖而出,同时Kinect 2.0设备的推出也使得关节坐标的定位更加稳定[3~6]。Elbasiony R等[7]提出使用高斯过程潜变量模型提取相关特征并通过变分异方差高斯过程回归算法将这些相关特征用于训练回归模型,提高了动作模仿的流畅度,但忽略了类人机器人手部动作模仿的准确性问题。Chen J X等[8]通过角度关节控制方案对人形机器人的下半身进行控制,并通过增益因子弥补机器人运动与人体运动之间的差异,可以控制机器人完成一些复杂的下半身控制,但未对类人机器人的上半身动作模仿进行研究。于建均等[9]利用质心-角度雅克比矩阵进行角度补偿以实现机器人的平衡性控制,并且引入了权值可调的二次规划进行优化处理保证了动作模仿的相似性,但此方法只适用于低速运动的情况。Wen S H等[10]采用经典的D-H模型对NAO机器人的正向运动学问题进行了推导,但考虑到的情况还不够完备。Li S Y等[11]使用Kinect对示教者上肢运动进行动态跟踪,然后通过Savitzky-Golay滤波器,高斯滤波器及卡尔曼滤波器对其进行滤波,但是减弱了整体的实时性能。张阳阳等[12]设计出一种以莱卡织物表面旋涂石墨烯/聚苯胺复合导电材料,有机硅导电银胶作为电极的全柔性织物可拉伸传感器,并利用该传感器设计出一种主从手手势映射系统提升了手势映射的精准度,但是价格较为昂贵。Hang C C等[13]提出了一种改进的DTW算法解决了手势序列未与候选序列端点对齐的问题,并引入提前终止匹配策略来减少不必要的计算量,但是降低了整体的鲁棒性。上述文献中的类人机器人动作模仿方法与手势识别算法未能做到较好的相互融合,对于类人机器人动作模仿来说手部动作模仿的加入,可以使其更好的完成一些抓取任务,也可以使机器人应用于更多特定的场合,例如毒气救援、医疗任务、娱乐场所等[14~17]。
本文将NAO机器人作为实验平台对类人机器人上半身(包括手部)的动作模仿问题进行了研究,对于手臂模仿部分采用改进的D-H模型进行两只手臂的运动学模型创建,有效地解决了传统模型创建中当相邻连杆平行或接近平行时出现的奇异性问题。对于手部模仿部分提出的改进重心距离法提高了手势识别的识别率的同时有效改善了手势识别准确率,提升了模仿的相似度。
2 机器人手臂运动学建模
2.1 MD-H模型
NAO机器人拥有2只自由度为5的手臂,对于手臂部分的模仿是动作模仿问题的关键,本文采用D-H模型的改进模型MD-H模型对类人机器人NAO的双臂进行运动学求解,并通过齐次坐标变换矩阵来执行相邻帧之间的转换。经典D-H模型利用4个基本参数对相邻关节的位置关系进行描述,但当相邻连杆平行时,所创建的关节坐标系具有不确定性,求得的旋转矩阵为奇异矩阵,从而引起运动学参数的突变和不连续。MD-H模型则包含5个基本参数,在D-H模型4个参数基础上引入了一个绕Y轴的旋转角度βi,以保证运动学参数的连续性。MD-H模型的坐标系齐次变换矩阵如式(1)所示:
(1)
式中:ai为两关节之间的连杆长度;αi为连杆扭角;di为连杆位移;关节角θi为绕zi-1轴转动使xi-1轴与xi轴重合转过的角度;βi为绕yi轴正向转动使zi轴与zi+1轴重合所转过的角度;连杆编号为i=1,2,…,5。
2.2 NAO运动学模型
首先根据MD-H模型的坐标系创建规则,对类人机器人NAO的右手臂从肩部关节到腕部关节创建了相应的关节坐标系,如图1所示。表1则列出了相应的5条工作链的MD-H模型连杆参数,表中,“×”表示按照MD-H模型的建模规则βi不存在。
表1 MD-H模型连杆参数Tab.1 Comparison of trajectory error at four algorithms
图1 NAO机器人手臂连杆坐标系Fig.1 NAO robot arm link coordinate system
类人机器人NAO的末端执行器的位姿由肩关节、肘关节、腕关节间的齐次变换矩阵叠加而成,如式(2)所示。
(2)
式中:n(nx,ny,nz)、o(ox,oy,oz)、a(ax,ay,az)为手臂末端执行器相对于基础坐标系的位姿向量;p(px,py,pz)代表手臂末端执行器的位置向量。
将表1给出的MD-H模型连杆参数代入式(2),求得NAO机器人手臂末端执行器的位置方程,如式(3)~式(6)所示。
(3)
(4)
(5)
(6)
式中:L0=0.015 m;L1=0.105 m;L2=0.055 95 m;S1= sinθ1;C1=cosθ1;S3= sinθ3;C3=cosθ3;S4=sinθ4;C4=cosθ4;S5= sinθ5;C5=cosθ5;S(1+2)= sin (θ1+θ2);C(1+2)=cos (θ1+θ2)。
2.3 逆运动学求解
逆运动学问题是根据已给定的满足工作要求的末端执行器相对参考坐标系的位置和姿态,即给出n(nx,ny,nz)、o(ox,oy,oz)、a(ax,ay,az)以及p(px,py,pz)的情况下,求解各个关节的运动参数。求解逆运动学的方法具有多样性,本文采用逆推法进行了求解,解法如下:
联立
可分别求出θ3、θ4的值,结果如式(7)、(8)所示。
(7)
(8)
将式(7)和式(8)结果代入式(5)中关于az的等式az=S3C4S5-C3C5中,令u=S3C4、v=-C3,求得θ5的值:
(9)
(10)
将求得的θ3、θ4、θ5的值代入式(4)中关于ox、oy的等式中,即可求得θ1与θ2的值,结果不唯一,通过NAO机器人手臂关节的旋转角度范围进行筛选并取值,NAO机器人右臂各关节旋转角度范围如表2所示。
表2 NAO机器人右臂各关节旋转角度范围Tab.2 Rotation angle range of right arm joints of NAO
3 基于手部状态识别的手势判定
3.1 手部轮廓提取
对于人类来说,手部具有较高的自由度,是人体中最灵活的部位。但NAO机器人的2只手分别只有一个自由度对其张开和闭合进行控制,所以并没有完成类似人类手部动作的能力。虽然NAO机器人只能完成部分抓取与释放动作,但对于示教者手部动作模仿问题的研究,不仅可以增强类人机器人动作模仿的相似性,同时可以使机器人完成更多远程抓取性质的任务。
本文借助Kinect 2.0传感器提出了一种基于指尖识别的手部动作判定方法,这种方法在对抓取手势进行判定的同时还可对另外4种数字手势进行识别。利用深度图像进行手部信息的提取较传统的利用彩色图像进行手部姿态识别的方法具有一定优势。深度图像采用红外传感器进行获取不受光照的影响,只要将示教者的手部置于Kinect的有效识别范围就可以较好的识别出手部轮廓图。对于Kinect 2.0不同距离下的手势识别率对比结果如表3所示(以张开手势为例)。
表3 不同距离的识别率对比Tab.3 Recognition rate comparison for different distances
Kinect 2.0的骨骼追踪技术可同时获取人体骨架中25个关节点的空间位置信息,其中Hand_Left、Hand_Right分别代表左手和右手。要进行手部轮廓的获取,首先在代表手部点的周围划定一定区域来实现手部大致范围的确定。经多次实验验证,划定80×80像素大小的正方形区域可完全包括示教者的手部范围,如图2(a)所示。然后,采用阈值分割法进行手部轮廓进行大致确定。通过将获取到的链表中每一个手部点与预先设定的阈值进行比较,从而实现对于手部深度图像的分割。在手部轮廓形状的大致范围确定后,通过腐蚀、膨胀等一系列操作,对手部轮廓周围的噪声点进行削弱。最终,获取到示教者的右手手部轮廓图,如图2(b)所示。
图2 手部区域和首部轮廓图Fig.2 Hand area delineation and hand outline
3.2 基于改进重心距离法的指尖识别
首先,遍历手部轮廓图中所有的边缘点,计算边缘点到掌心点的距离,将其中的极大值点作为指尖选取的候选点。为消除手腕的干扰,对重心距离法做如下改进:对于抓取手势的判定来说,Kinect 2.0传感器的骨架追踪功能可以识别出示教者拇指关节,Thumb_Right(Thumb_Left)代表右手(左手)拇指关节。判断候选点中是否存在与拇指关节坐标点相对重合的候选点,如果存在则将该手势判定为张开手势,否则判定为闭合手势;对于数字手势的识别,首先计算掌心与指尖候选点之间的距离,只有当掌心点与候选点之间的距离大于求得的距离中最大距离的0.6倍时才将其判定为有效的指尖点。最后,通过判断有效指尖的个数完成对于数字手势的识别。抓取动作判定如图3所示,数字手势识别如图4所示,表4为本文算法的识别率与其他算法的识别率对比。
图3 张开闭合手势判定示意图Fig.3 Schematic diagram of opening and closing gesture
图4 数字手势识别示意图Fig.4 Schematic diagram of digital gesture recognition
表4 不同算法识别率对比表Tab.4 Table of comparison of recognition rates of different algorithms (%)
4 实验及结果
本文将类人机器人NAO作为实验平台,它是一个拥有很强自主性的仿人机器人,用户可根据自己的需求来设置其行为,同时它也是世界上应用最广泛的人形机器人之一。NAO机器人上肢动作模仿实验如图5所示,图5中显示了机器人对于示教者上肢的一些基础性动作的模仿。示教者控制机器人的左、右手进行张开闭合的实验如图6所示。抓取任务实验如图7所示,实验过程为NAO机器人受控跟随示教者的动作成功将垃圾从纸箱上拾起丢入垃圾桶中,该实验还可进行延伸,例如应用于一些生产线上的重复性任务。图5、图6、图7所示的实验过程灵活稳定,证明了提出算法的可行性和有效性。通过实验可以看出,对于手臂运动学建模采用的MD-H模型,可以在相邻关节平行时顺利进行坐标系的创建,避免了奇异性问题的发生。其次,从抓取实验可以看出手势判定算法也具有较高的准确性。
图5 上肢动作模仿实验Fig.5 Upper limb movement imitation experiments
图6 手势识别实验Fig.6 Gesture recognition experiment
图7 抓取实验Fig.7 Grabbing experiment
4 结 论
本文将改进的D-H模型应用于机器人NAO的手臂运动学建模,并完成了正运动学及逆运动学的推导,该方法不仅提高了类人机器人动作模仿的相似性,同时解决了类人机器人相邻连杆平行时出现的奇异性问题。其次,提出了改进的重心距离算法,提高了手势识别准确率,使得NAO机器人可以更好地模仿示教者的手部姿态。最后,进行了完成率和相似性实验,验证了所提出方法的有效性。