基于Kinect动态手势识别的机械臂实时位姿控制系统

2017-11-15 09:30赵泳嘉张红彦刘香福黄玲涛
农业机械学报 2017年10期
关键词:控制指令位姿卡尔曼滤波

倪 涛 赵泳嘉 张红彦 刘香福 黄玲涛

(吉林大学机械科学与工程学院, 长春 130022)

基于Kinect动态手势识别的机械臂实时位姿控制系统

倪 涛 赵泳嘉 张红彦 刘香福 黄玲涛

(吉林大学机械科学与工程学院, 长春 130022)

基于Kinect动态手势识别达到实时控制机械臂末端位姿的效果。位置控制信息的获取采用Kinect计算手部4个关节点在控制中的位置变动,数据噪声在控制中易引起机械臂误动作和运动振动等问题,为了避免噪声对实时控制的不利影响,采用卡尔曼滤波跟踪降噪。姿势控制信息通过采集手部点云经滤波处理后应用最小二乘拟合的方式获取掌心所在平面,运用迭代器降噪处理。系统通过对手部位置和姿势信息的整合、手势到机械臂空间坐标映射及运动学求解来实时控制机械臂末端位姿。实验结果证明,手势控制系统满足控制要求,简单、易于操作,机械臂实时响应速度快、运动准确。

手势控制; Kinect传感器; 卡尔曼滤波; 机械臂位姿控制; 人机交互

引言

随着机器人相关领域的快速发展,人机交互形式正朝多样化的方向发展,机器人技术受人工智能发展情况的制约,短时间内难以达到机器人自主决策的要求,因此机器人的控制及应用势必离不开人的参与。为了较好地实现人机交互,基于机器视觉的人体动作和手势识别是实现新一代人机交互系统不可缺少的一项关键技术。手势识别是一种新型的自然用户接口[1](Natural user interface,NUI),文献[1-4]采用隐马尔科夫模型(HMM)对人体姿势进行分类来控制类人机器人的姿势。文献[5-7]从深度图中计算手部的特定属性,能够识别一个静态手势指定的对象来引导机器人拾取用户所指对象。HERNANDEZ-BELMONTE等[8]提出一种多级的手势分类器,通过基于实时变形检测和提高训练的分类系统对特定手势进行有效识别。CICIRELLI等[9]通过对10种手势用神经网络进行分类训练,在室内环境中3个Kinect相机放置在不同的位置,使用手势控制自主移动机器人。MA等[10]提出一种新算法,采用指尖识别建立手势,通过无线传输控制六角机器人。卢晓敏[11]采用多传感器融合方式,即Kinect和惯性测量单元采集数据,实现机械臂到指定位姿的运动控制。文献[12-14]对手部信息通过轮廓提取的方式将手势分离出来并识别,进而控制六边形机器人。现有的研究主要是操作员根据预设的手势来控制机器人完成指定动作[15-19],不容易把握操作机器人的运动尺度,无法提供操作员灵活控制的条件,而多数其他人体穿戴传感器通用性不强且可维护性差。本文通过对手的空间位置动态变化信息及手掌心姿态信息的采集来获取控制指令,实时控制6-DOF机械臂完成指定的手部控制指令。

1 系统结构组成

系统结构组成如图1所示,由主端和从端机械臂组成。信息采集设备采用Kinect 2体感摄像头,通过采集的骨骼数据及手部点云数据完成手势信息的采集,通过计算机算法进行滤波、信息整合、空间映射及运动求解后,将数据传输到六自由度爱普生机械臂控制端实现控制。Kinect 2较上一代具有很大的性能提升,更宽的视角和更远的识别距离,能够识别4个手部关节点信息。Kinect在传输数据帧时,能够达到30 fps的数据密度。Kinect正面左侧为RGB色彩摄像头,色彩摄像头右侧为CMOS 红外传感器即深度摄像头,中间部分是红外发射器,在弱光条件下能够保证识别精度。

图1 系统结构组成Fig.1 Structure of system

采用Kinect追踪骨骼点数据,其内部原理是基于机器学习技术,将捕获的深度信息传入SDK,对信息进行处理,解算出代表骨骼信息的特征向量,将其与随机决策库中的数据进行匹配,进而得出骨骼点信息。通过对手部点云信息和关节点信息进行滤波和整合处理,手势控制指令指定控制系统的控制阶段,将手势信息映射到机械臂运动控制空间,完成手势控制信息的运动学解算,进而将其转换为控制信号,控制机械臂对手势控制指令做出响应。

2 手部位置和姿态获取

2.1 手部位置获取

Kinect获取手部关节点的实时信息,包括追踪状态和坐标信息,图2为Kinect坐标系设定。手部追踪的骨骼点分布情况如图1所示,采集手部4个关节点信息,分别为:右手腕、 右手掌、 右手指、右拇指(以右手为例)。Kinect骨骼数据信息中包含每个骨骼点的追踪状态,分为:未跟踪到、推测、跟踪到3种状态,是进行手势控制的重要数据。

图2 Kinect坐标Fig.2 Kinect coordinates

在手部骨骼信息采集过程中,由于人手部运动的模糊性、随机性、时变性,以及摄像头自身在采集数据过程中产生噪声的共同作用下,使数据中存在大量噪声,如果数据直接用于控制机械臂,将导致受控中的机械臂运动可能产生抖动和误动作。机械臂运动抖动会带来控制器工作不稳定及机械臂运动器件损耗,机械臂误动作在实际控制中会出现控制安全问题,因此对于手势骨骼点位置信息进行降噪很有必要。对于坐标点的滤波问题是离散随机过程属线性问题,卡尔曼滤波对于此类问题能够达到很好的滤波效果[20-21]。卡尔曼滤波算法的滤波效果受用户所设置的过程噪声方差Q和测量噪声方差RN影响。为达到预期的滤波效果,需要对Kinect采集到的数据进行分析,查看数据的稳定性来调整方差参数的选取。

卡尔曼滤波用于估计未知的状态向量x∈Rn,离散时间随机过程由随机线性差分方程给出

xk+1=Axk+wk

(1)

其中

wk∈N(0,Q)

式中A——转移矩阵

xk——k时刻系统状态

wk——过程噪声

测量矩阵y∈Rm,计算式为

yk=Hxk+vk

(2)

其中

vk∈n(0,R)

式中H——测量矩阵vk——测量噪声

预测阶段

(3)

Pk-1——后验协方差矩阵

更新阶段

(4)

(5)

(6)

式中Kk——卡尔曼增益矩阵

Kk用于更新阶段对卡尔曼的追踪状态进行更新。

根据实际控制中降噪要求,采用如下参数设定:

状态转移矩阵

通过以上参数选取,融合后的手掌中心位置坐标经卡尔曼滤波处理达到的效果如图3所示。

图3 坐标X、Y、Z分量卡尔曼效果图Fig.3 Coordinates of point X, Y and Z component Kalman rendering

图3表明Kalman滤波对Kinect采集到的手部位置数据能够达到很好的滤波效果,解决由于识别结果突变和数据波动所带来的控制系统不稳定问题。

2.2 手部姿态获取

Kinect点云信息采集距离理论为0.5~8.0 m。设置参数中可以设定每米点云识别个数,实质上在Kinect中识别点云以空间中小的立体像素(voxel)为基本单元,实验中设定识别密度为256体素即1 000/256=3.9 mm/体素,识别宽度设定在X、Y、Z方向上,识别单元数为384,即识别结构宽度为384/256=1.5 m。

研究中采用Kinect采集到的点云信息,由骨骼信息得到手部的中心位置,以中心位置为基准对点云信息中的点进行筛选和滤波。筛选原则为在Kinect坐标系下Z坐标的差值在手部宽度阈值范围内,立体像素单元距离中心点小于手部宽度阈值的二分之一,通过筛选能够得到手部点云信息的集合。

(7)

式中w——手掌尺寸阈值

对于得到的手掌点云信息,进行处理后得到手掌所在平面,研究中采用最小二乘拟合法得到手掌点云的最佳拟合平面。由协方差矩阵的SVD变换可知,最小奇异值对应的奇异向量即平面的方向。图4所示是在某次控制中数据采集端顺次采集到的手部点云及拟合平面。图中能够明显地分辨出手部轮廓,可见手部点云信息在手部阈值限定下筛选准确。

图4 点云依顺序拟合平面图Fig.4 Point cloud fitting results for plane in order

3 基于手势识别的机器人控制策略设计

图5 Kinect手部启闭状态识别Fig.5 Kinect hand opening and closing states recognition

为能够实时控制机械臂完成指定动作,要求手势控制信号能够实时解算,以达到机械臂对手势控制指令快速做出响应。控制中,依赖采集到的手部位姿变动来产生机械臂控制信号,控制启停条件需要人为指定,控制中将手部从关闭状态(Closed)(图5b)过渡到开启状态(Open)(图5a)视为控制启动,手部从开启状态(Open)过渡到非开启状态视为当前次控制终止,控制启动后以200 ms间隔对手部的启闭状态进行核对,若始终处于开启状态,则对机械臂运动进行持续控制。采用手部启合状态判定来指定控制状态,判定结果准确,同时操作人员易于实现操作。

图6 手部位置采集过程Fig.6 Hand position acquisition process

采集手部信息如图6所示,要求lOO′≥0.5 m来保证手部信息采集效果。位置信息是手部关节点向量lAA′、lBB′、lCC′、lDD′在X、Y、Z轴方向上的分量,在计算位移分量前要采用卡尔曼滤波进行处理。为减小误差,3个方向上的4个分量计算位移应用加权融合的方式。控制策略中采用权重融合是充分考虑到手部在识别中的不稳定性,由于识别中手部4个点的识别结果存在大量变动,例如右拇指在手部没有移动的时候,摄像头的随机决策树判定结果始终存在变动,因此采用权重融合是解决问题的有效手段。权重的选择依据各个关节点的跟踪状态来指定,分为6种情形,如表1所示,其中信任比重分配设定为Tracked为5、Inferred为3、NotTracked为1。对于手部4个点,分别求解起止点的位置坐标变化,依据权重信息进行融合,计算出手部位置变化置。

表1 跟踪状态及权重分配Tab.1 Tracking status and weight distribution

(8)

(9)

式中Ri——应分配的权重

xiK1、xiK2、yiK1、yiK2、ziK1、ziK2——单次识别过程起、终点经过卡尔曼滤波后的x、y、z分量

在实际试验中,对点云信息的处理是提升控制精度的有效途经,手部姿势控制信息通过实时求解点云最小二乘拟合平面,在姿势获取中采用手部阈值筛选出手部的有效点云,但是实际中发现点云依然存在大量的噪声点影响拟合平面的准确性,为提高求得平面精度就需要对点云中的点进行进一步甄选。本文设计一个迭代器来完成数据点除噪,原理如图7所示。将点云信息求解得拟合平面I的法向量δ,求平面T与拟合平面垂直法向量γ,将点和面向已知平面投影,图7中l为点云所在平面的投影直线,取距直线距离阈值范围内的点,将范围外的点视为离群点而舍弃,重复上述步骤至没有点落在阈值限定线外,通过以上迭代过程能够实现很好的降噪效果,有效滤除离群点对手势信息采集准确性的影响。

图7 迭代器原理示意图Fig.7 Diagram of iterator principle

拟合后平面的法向量分别为α和β,将其视为控制始末姿势状态,应用罗德里格旋转公式,求出旋转矩阵R。

R=I+sinθM+(1-cosθ)M2

(10)

式中M——叉积矩阵

通过Z-Y-X欧拉角来计算旋转变换,旋转角分别为α、β、γ,计算得

(11)

式中 atan2——双参变量反正切函数

在实际应用中,机械臂与手部不是在同一坐标系下且运动范围不同,因此人手与机械臂末端的空间映射关系是实现控制的关键问题。根据人手和机械臂的数学模型进行笛卡尔空间映射,将人手位姿转换为机械臂末端位姿,假设其映射关系函数为f,将人手和机械臂末端之间笛卡尔空间映射定义为线性关系[11]。人手运动空间为SH,机械臂的运动空间为SR,满足关系式

Sr,k=Sr,k-1+f(ΔSh,k)=Sr,k-1+KΔSh,k

(12)

其中

式中 ΔSh——人手位姿矩阵

Sr——机械臂位姿矩阵

K——坐标空间映射的比例矩阵

根据不同的控制环境需要人为选取机械臂的响应灵敏度,不同的比例矩阵决定不同的映射条件及响应灵敏度,比例因子过大会超出机械臂末端运动范围,过小则响应速度变慢,即控制效率低,空间映射的比例矩阵要根据所控制的机械臂自身属性及工作阶段共同决定。图6中坐标系T为机器人坐标系,不同人机交互场合可以改变坐标系相对布置,进而对空间映射比例矩阵进行变换和调整参数值以适应控制要求,其中控制比例因子多通过机械臂的运动范围和比例映射机制确定。坐标系变换方式为

控制中往往需要在运动初期迅速接近目标位置,选用快速接近的映射条件,接近运动终点时需要采用慢速靠近的机制来实现更为精准的控制,使用微调整的映射条件,如图8所示。因此实际控制要求在相应的控制阶段调整映射条件来达到控制要求,能够迅速接近目标位置,再通过手势控制指令精准完成控制,适当选择映射条件是实现高效控制的重要环节。

图8 手势决策控制阶段Fig.8 Gestures decision control stage

通过以上讨论,将手势数据实时转化为机械臂空间上的控制数据,通过运动学反解得出控制机械臂各关节的运动信号。对于一个确定的控制目标,达到控制终点可以通过手部多次运动控制指令来实现控制。控制处于不同阶段时,通过双手手势信息来使用不同的控制比例因子,在人机交互界面实时显示控制进行状态以及控制终端位置信息。

图10 控制效果图Fig.10 Rendering diagrams of control

4 实验

图9 不同控制路径对比图Fig.9 Different control path comparison charts

控制系统能够实现以手部控制指令自由规划机械臂控制末端位姿。控制中通过骨骼点的卡尔曼滤波、点云信息的降噪处理以及最小二乘拟合来提高控制信号的精度及稳定性,使得控制能够达到很高的鲁棒性。图9为手势控制路径、未经卡尔曼滤波机械臂末端运动路径和经卡尔曼滤波的机械臂末端运动路径对比图,通过路径对比图可以看出卡尔曼滤波对机械臂运动稳定性作用效果显著,同时可以看出控制阶段中采用不同控制比例因子所产生的效果,红线为采用快速接近控制因子对应的手-机械臂末端轨迹对比,蓝线为采用微调整控制因子对应的手-机械臂末端轨迹对比,可见在不同控制阶段,机械臂末端运动轨迹满足控制要求。机械臂能够在手部位置变化下,接受指令达到目标运动位姿。实验中,机械臂对手势控制指令响应迅速,动作准确。

图10为实验中控制机械臂实时运动效果图,图10c、10d和图10g、10h分别为机械臂的始末姿态,图10a、10e和图10b、10f为手势位置变化及控制终点手部点云拟合平面,位置和姿势在控制中能够按照手部指令完成相应的响应。通过实验结果可以发现,手势对机械臂的控制能够实现位置和姿势的双重控制。

对以上手势控制指令,机械臂相应地按顺序做出响应。实验发现,控制中由于滤波效果显著,机械臂运动平稳,运动准确且没有误动作及其他控制异常。手势控制简单易于操作,同时机械臂响应速度快。

5 结束语

基于Kinect动态手势信息对6DOF机械臂末端位姿进行实时控制,采用卡尔曼滤波进行数据降噪处理,对手掌点云进行滤波及最小二乘处理,同时将数据信息进行运动学解算作为机械臂的控制指令。实验中,机械臂能够按照动态手势信息实时做出运动响应,对于控制的不同阶段,通过规划不同的控制比例因子来提高控制效率。机械臂受控中运动平稳、动作准确、实时性强。手势控制指令简单易于操作,操作员手势操作机器人负担轻、临场感强。对于确定的机械臂末端控制要求能迅速完成,达到了位姿随动控制的效果。

1 DING J, CHANG C W.An adaptive hidden Markov model-based gesture recognition approach using Kinect to simplify large-scale video data processing for humanoid robot imitation[J].Multimedia Tools and Applications, 2016,75(23):15537-15551.

2 QIAN K, NIU J, YANG H.Developing a gesture based remote human-robot interaction system using kinect[J].International Journal of Smart Home, 2013, 7(4):203-208.

3 FUJII T, LEE J H, OKAMOTO S.Gesture recognition system for human-robot interaction and its application to robotic service task[C]∥Proceedings of the International Multi-Conference of Engineers and Computer Scientists (IMECS), 2014, 1:1-6.

4 张毅, 张烁, 罗元, 等.基于 Kinect 深度图像信息的手势轨迹识别及应用[J].计算机应用研究, 2012, 29(9): 3547-3550.

ZHANG Yi, ZHANG Shuo, LUO Yuan, et al.Gesture track recognition based on Kinect depth image information and its applications[J].Aplication Research of Computers, 2012, 29(9): 3547-3550.(in Chinese)

5 CANAL G, ESCALERA S, ANGULO C.A real-time human-robot interaction system based on gestures for assistive scenarios[J].Computer Vision and Image Understanding, 2016, 149: 65-77.

6 KAURA H K, HONRAO V, PATIL S, et al.Gesture controlled robot using image processing[J].International Journal of Advanced Research in Artificial Intelligence, 2013, 2(5): 65-77.

7 GANAPATHYRAJU S.Hand gesture recognition using convexity hull defects to control an industrial robot[C]∥2013 3rd International Conference on Instrumentation Control and Automation (ICA), 2013: 63-67.

8 HERNANDEZ-BELMONTE U H, AYALA-RAMIREZ V.Real-time hand posture recognition for Human-Robot interaction tasks[J].Sensors, 2016, 16(1):36.

9 CICIRELLI G, ATTOLICO C, GUARAGNELLA C, et al.A kinect-based gesture recognition approach for a natural human robot interface[J].International Journal of Advanced Robotic Systems, 2015, 12(3):12-22.

10 MA Biao, XU Wensheng, WANG Songlin.A robot control system based on gesture recognition using Kinect[J].Indonesian Journal of Electrical Engineering and Computer Science, 2013, 11(5): 2605-2611.

11 卢晓敏.基于混合传感器的机器人人机交互技术研究[D].广州:华南理工大学, 2014.

LU Xiaomin.The research of human-robot interaction technology based on hybrid sensors[D].Guangzhou: South China University of Technology, 2014.(in Chinese)

12 王松林.基于 Kinect 的手势识别与机器人控制技术研究[D].北京:北京交通大学, 2014.

WANG Songlin.Research on Kinect-based gesture recognition and robot control technology[D].Beijing: Beijing Jiaotong University, 2014.(in Chinese)

13 谈家谱.基于指尖信息的手势识别与人机交互应用研究[D].北京:北京交通大学,2016.

TAN Jiapu.Research on fingertip-based gesture recognition and human-computer interaction applications[D].Beijing: Beijing Jiaotong University, 2016.(in Chinese)

14 郭小爽.人机交互中的动态手势识别及应用研究[D].西安:西安电子科技大学, 2014.

GUO Xiaoshuang.Research on dynamic gesture recognition and its application in human-computer interaction[D].Xi’an: Xidian University, 2014.(in Chinese)

15 QIAN K, NIU J, YANG H.Developing a gesture based remote human-robot interaction system using kinect[J].International Journal of Smart Home, 2013, 7(4): 203-208.

16 MARIN G, DOMINIO F, ZANUTTIGH P.Hand gesture recognition with leap motion and kinect devices[C]∥2014 IEEE International Conference on Image Processing (ICIP), 2014: 1565-1569.

17 POZZATO G, MICHIELETTO S, MENEGATTI E, et al.Human-robot interaction with depth-based gesture recognition[C]∥Proceedings of IAS-13 Workshops, 2014.

18 阮晓钢, 田重阳, 李望博.基于 Kinect 视觉功能的机器人控制方法[J].北京工业大学学报, 2016, 42(4): 487-491.

RUAN Xiaogang, TIAN Chongyang, LI Wangbo.Control method for robots based on the visual function of Kinect[J].Journal of Beijing University of Technology, 2016, 42(4): 487-491.(in Chinese)

19 权龙哲, 李成林, 冯正阳, 等.体感操控多臂棚室机器人作业决策规划算法研究[J/OL].农业机械学报, 2017,48(3):14-23.http:∥www.jcsam.org/jcsam/ch/reader/view_abstract.aspx?flag=1&file_no=20170302&journal_id=jcsam.DOI:10.6041/j.issn.1000-1298.2017.03.002.

QUAN Longzhe,LI Chenglin,FENG Zhengyang, et al.Algorithm of works’ decision for three arms robot in greenhouse based on control with motion sensing technology[J/OL].Transactions of the Chinese Society for Agricultural Machinery, 2017, 48(3):14-23.(in Chinese)

20 LOUMPONIAS K, VRETOS N, DARAS P, et al.Using Kalman filter and tobit kalman filter in order to improve the motion recorded by kinect sensor II[C]∥Proceedings of the 29th Panhellenic Statistics Conference, 2016.

21 PARK S, YU S, KIM J, et al.3D hand tracking using Kalman filter in depth space[J].EURASIP Journal on Advances in Signal Processing, 2012: 36.

Real-timeMechanicalArmPositionandPoseControlSystembyDynamicHandGestureRecognitionBasedonKinectDevice

NI Tao ZHAO Yongjia ZHANG Hongyan LIU Xiangfu HUANG Lingtao

(CollegeofMechanicalScienceandEngineering,JilinUniversity,Changchun130022,China)

The research achieved to control the mechanical arm position and pose by using real-time dynamic gesture recognition based on Kinect device.The information of the position controlling was obtained by calculating the position changes of the four hand joint points.The noise of the joints was liable to lead mechanical arm misoperation and the vibration of motion during the control of the mechanical arm.Aiming to avoid the negative impact of the noise in real-time controlling, Kalman filter was adopted to track position and reduce noise.According to the hand point cloud information, the information of the posture controlling was obtained by means of using least squares fitting to get the plane of hand mind.The end of the position and pose of the mechanical arm was controlled by integrating the position and posture information, space coordinate mapping and the resolving of kinematics in real-time.The result of the experiment indicated that the gesture control was easy to operate and mechanical arm responded at high speed.The effect of filter was so remarkable that the motion of the mechanical arm was controlled accurately and smoothly, and no mechanical arm misoperation and others controlling anomaly.Gesture control system could meet the requirement of actually controlling.System could be applied to a variety of human-computer interaction.

gesture control; Kinect sensor; Kilman filter; mechanical arm position and pose control; human-computer interaction

10.6041/j.issn.1000-1298.2017.10.053

TP241; TP311.52

A

1000-1298(2017)10-0417-07

2017-01-05

2017-02-19

国家自然科学基金项目(51305153、51575219)

倪涛(1978—),男,教授,博士生导师,主要从事机器人遥操作、虚拟现实和机器人技术研究,E-mail: nitao@jlu.edu.cn

张红彦(1973—),女,副教授,主要从事智能车辆研究,E-mail:zhanghy@jlu.edu.cn

猜你喜欢
控制指令位姿卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
城轨车辆控制指令试验装置研制
无人机动平台着陆惯性/视觉位姿歧义校正算法
船舶清理机器人定位基准位姿测量技术研究
宏指令控制的多轴系统研究及实现
优化ORB 特征的视觉SLAM
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
高速公路隧道通风、照明联动控制方案探讨