基于Kinect的动作识别跟踪的机械臂平台
2019-08-13高金潇陈亦楠
高金潇 陈亦楠
摘 要:人工智能技术的兴起也推进了人机交互的快速发展。该系统利用Kinect视觉图像传感器识别人体骨骼数据,并完成对操作者动作的识别。通过以计算机软件为核心的上位机平台对实时数据的滤波处理、编写算法,实现从数据到控制信号的转换。系统通过串口通信的传输方式将信号传送至以Arduino为核心的下位机平台,进而完成对舵机的控制。为验证理论的可行性,团队搭建了4自由度的机械臂控制系统,并完成软件开发,可实时在计算机操作界面上显示当前骨骼角度及动作状态等其他功能。实验数据表明,基于Kinect的动作识别方法能够有效地完成预期动作的跟踪,并完成规定物体的抓取和移送,具有极高的可操作性。
关键词:Kinect Arduino 骨骼角度 动作跟踪 机械臂平台
中图分类号:TP241 文献标识码:A 文章编号:1672-3791(2019)05(c)-0001-05
Abstract: The rise of artificial intelligence technology has also promoted the rapid development of human-computer interaction. The system uses the Kinect visual image sensor to identify human bone data and complete the recognition of the operator's movements. Through the filtering process of real-time data by the host computer platform with computer software as the core, the algorithm is programmed to realize the conversion from data to control signals. The system transmits the signal to the lower computer platform with Arduino as the core through the transmission mode of the serial communication, thereby completing the control of the steering gear. In order to verify the feasibility of the theory, the team built a 4-DOF robotic arm control system and completed software development. It can display other functions such as the current bone angle and motion status in real time on the computer operation interface. The experimental data shows that the Kinect-based motion recognition method can effectively complete the tracking of the expected motion and complete the grasping and transfer of the specified objects, which has extremely high operability.
Key Words: Kinect; Arduino; Bone angle; Motion tracking; Robotic arm platform
隨着近些年来人工智能领域的大力发展,人机交互成为了人们关注的热点问题。动作识别在人们日常医疗、教育、娱乐等诸多领域有着广泛的应用。此外,动作分析作为工业工程的关键技术之一,实现该技术的相关方法却一直停留在手工阶段,这不仅工作量大,而且效率低。人体姿势及特定动作是一种人与周围信息或生物进行信息交互的方式。围绕动作识别的研究在国际上可以追溯到20世纪80年代,此后,人体动作识别的研究逐渐渗入到各个领域的研究开发,并得到迅速的发展。
无线设备大大促进了人机交互的发展,但目前其一定程度上依赖人工连续操作,十分不便。人体动作或肢体语言是另一种有效沟通的特殊语言,作为一个应用前景广、操作性强的对象,非常值得关注和开发。动作识别跟踪就是指对人体的某些特征运动动作进行定位,目标检测、提取、识别和跟踪,获得人体动作的状态,如位置、速度和运动轨迹等,从而完成处理与分析,并获取一定量的有价值的实用参数,实现对人体运动的自动处理和分析,以完成动作跟踪这一任务,并力争扩大到应用于其他方面。仿真一直是人们人体工程学和机器人人工智能研究的重点方向之一,目前生产生活中人们使用的大型仿真机械设备成本高昂,且尚未能大量投入使用。
1 控制系统总体结构
该控制系统总体硬件结构共有视觉图像处理传感器、数据处理器、信号发生器、机械臂平台(执行部件)四部分组成。其中传感器采用Kinect V2.0视觉图像处理传感器,数据处理器使用计算机平台控制完成,信号发生器则采用Arduino控制器及相关电子模块完成,机械臂平台完成实际预期动作。计算机平台实时接收从Kinect视觉图像传感器传回的实时骨骼状态和信息,以数据流的形式传送至计算机,用已编写的算法实时将数据处理后,实时用串行通信发送至下位机Arduino中,完成对舵机的控制,并将实时骨骼角度显示在软件操作界面中。该软件同时加入实时截图与录像功能,可完成任意操作时间内的骨骼角度的后台保存和处理(见图1)。
2 控制系统硬件结构
2.1 Kinect V2.0
首先是摄像头可以借助红外线来识别人体的运动,它能够发射红外线,从而对整个房间进行立体定位。根据光反射回來的时间判断物体的方位。其次是光编码技术——利用激光照射到不规整物体上会随机产生高度随机的衍射光斑这一特性,所以任意两处的光斑强度都不同。每隔一段距离在一个参考平面上记录斑点,累积起来就会形成一个三维形状。对图像进行逐点扫描像素,就能区分出人体轮廓了。最后将人体中的各部分用不用颜色标示出来,就很容易且准确地找出关节的节点了。
Kinect V2.0的主要组成及参数如表1所示。Kinect主要有RGB感应摄像头、深度视觉传感器,其可完成一定视野角度的探测识别;多点阵列麦克风,用于语音识别和输出声音。
2.2 舵机
在该系统中,舵机的稳定性直接影响了系统的稳定性。舵机应用范围广,控制简单,更稳定,不妨设为基本的输出执行机构,其简单的控制使得下位机控制器与其可以便捷地连接。
该系统采用型号为LDX218的舵机,控制信号进入舵机的内部调制芯片,通过信号处理得到一定的直流偏置电压。其将产生的直流偏置电压与电位器电压比较(周期20ms,宽度1.5ms),获得电压差作为输出控制信号的模拟量。电压的大小决定了电机的转速,正负代表电机的转向。当电压差为0,电机停止转动。PWM方波是舵机的控制信号,利用其占空比的瞬变性改变舵机的转动特性。一般舵机的控制要求如图2所示。
2.3 下位机
该系统拟采用Arduino mega2560为核心控制模块(见图3),其是一种体积小、处理速度快、操作便捷的开源电子原型平台,能通过连接多种传感器来感知当前所处状态,并得到反馈或发出控制信号。其开发主要基于Arduino IDE环境,这也提高了其开发效率。该系统主要用下位机处理计算机发送的串口数据,通过控制板处理后传送控制信号至舵机,从而控制机械臂。
3 控制系统软件设计
3.1 流程图
该上位机软件涉及的整体流程图如图4所示,开始后需要进行初始化对象操作,从而确定追踪目标,打开传感器,开始利用Kinect的图像采集功能收集深度数据和骨骼数据,在经过滤波处理后,在软件操作界面中显示当前图像及数据信息。
通过算法计算出位置所需舵机转动角度后,将转动控制信息以串行通信的方式发送至下位机平台,从而控制舵机即机械臂的运动,直至达到预期位置停止。
3.2 软件界面及功能
该操作系统可完成实时显示图像、截屏、录像、存储骨骼角度信息等功能,方便用户感知实时状态及有效操作(见图5)。
3.3 数据通信
控制器通过Arduino IDE环境编写控制程序并发送PWM信号给机械臂舵机,从而完成对机械臂的控制。该系统数据传送采用串口通信的方式,将计算机发出的控制信号传送至控制器Arduino中,实现上、下位机的连接。在协议使用两位16进制数作为通信协议的帧头,并选择中间4位作为关节转角数据,最后一位0xED作为帧尾,用以数据校验。
4 算法简述
4.1 骨骼数据获取
故角度就为当前2个骨骼的夹角特征值,基于此,可以推广至人体20个骨骼识别中,任意2个骨骼间的夹角均可以提取。用该识别方法具有一系列的好处,其不仅仅操作性强,还排除了一些如光照、背景和操作人位置等因素的干扰。综上,欲得到准确稳定的目标返回值,必须将大量的实时数据进行数据滤波处理,提高系统性能,降低容错率。
5 系统性能测试
5.1 可行性
为了验证上述理论的可操作性,团队搭建了一个硬件机械臂控制系统(见图6),机械臂以Arduino为主控制器,并完成对舵机的PWM方波控制,开始启动前,进行实际串接,在不同的背景环境和光照强度下,识别操作人员不同的相同动作,并完成相应要求。该系统测试拟采用的方法是抓取并搬运物体到到指定位置,验证系统稳定性和准确性。
5.2 识别率
将Kinect水平放置在距离地面高度为70cm的平台上,测试人员距离Kinect设备150cm远,按照要求完成动作,利用开发的操作软件的录像功能,完成录像。
经过多次验证(见表2、表3),其平均识别率达到95.24%,平均误差为5.15%,可近似认为其可以完成对目标动作的识别及跟踪。
5.3 实时率
在相同条件下,以手部为例对其延迟进行测量,如表4、图7所示。
6 结语
该系统欲搭建起精确的动作识别机械臂平台,对人体的有规律性动作或可替代性动作进行仿制系统研究。通过动作识别系统对人体的动作进行跟踪性模仿,今后替代人们进行生产生活中高危险、高难度、工作环境恶劣的工作;在交通方面,人体动作识别跟踪系统可以代替交通警察的日常出勤指挥交通工作,避免了交通警察在工作过程中发生的种种意外,使得交通警察可以在远处远程指挥交通,提高了工作效率,减轻了交通警察的负担。除此以外,在医疗卫生、工业生产等诸多生产生活领域均有一定的使用价值。
综上所述,人体动作识别跟踪系统有着巨大的研究价值。该系统通过Kinect视觉图像传感器来采集人体的骨骼数据,并将数据滤波处理,转化为舵机的控制指令,进而完成对其动作的识别并对应映射到所搭建的4自由度机械臂平台上,间接实现了人机交互的功能。
参考文献
[1] 李文阳,马行,穆春阳.基于Kinect V2的跌倒行为检测与分析[J].现代电子技术,2019(6):142-145.
[2] 高日,张雷,郭亮.基于Kinect的机器人交互系统设计与研究[J].现代电子技术,2019(6):175-178,182.
[3] 朱耀麟,王丹,万韬阮,等.Kinect体感器的人体姿势交互漫游方法[J].单片机与嵌入式系统应用,2019,19(2):1-3,8.
[4] 吕思男,马培立,陈哲,等.基于Kinect骨骼信息的机械臂体感示教研究[J].工业控制计算机,2018,31(12):11-12,16.
[5] 王顺帆.基于Kinect的手势识别及其在机械臂控制中的应用[D].湖北工业大学,2018.
[6] 陈慰南.基于Kinect动作交互系统设计[D].广东工业大学,2018.
[7] 陈佳文,苏齐光,王卓.基于Kinect的桌面型仿人双臂机器人设计[J].机械管理开发,2018,33(2):1-2,154.
[8] 丁大民.手术机器人机械臂运动控制系统的研究与实现[D].上海工程技术大学,2015.
[9] 裴岩明.基于Kinect的远程机械臂体感控制系统研究[D].大连理工大学,2013.
[10] F.Buisseret,F. Dierick,O.Hamzaoui,et al.Ergonomic Risk Assessment of Developing Musculoskeletal Disorders in Workers with the Microsoft Kinect: TRACK TMS[J]. IRBM,2018.
[11] Chenglong Li,Fan Zhong,Qian Zhang,et al.Accurate and fast 3D head pose estimation with noisy RGBD images[J].Multimedia Tools and Applications,2018,77(12):14605-14624.