基于Kinect视觉识别的智能居家机器人系统

2017-12-22 08:10沈莉丽
组合机床与自动化加工技术 2017年12期
关键词:关节点景深姿态

沈莉丽

(南京航空航天大学金城学院,南京 211156)

基于Kinect视觉识别的智能居家机器人系统

沈莉丽

(南京航空航天大学金城学院,南京 211156)

为了更好的给老年人提供服务,提出了基于Kinect视觉识别功能的智能居家机器人控制系统。首先通过Kinect摄像头获取人体景深图像,然后利用姿态识别算法对人体姿态进行识别,最后将识别结果转换为控制命令传输到智能居家机器人使其完成自主抓取、传递物品等一系列动作。实验表明,基于Kinect视觉识别的控制方式能准确控制智能居家机器人,实现了机器人控制方式上的创新,对服务型机器人领域的发展研究具有很好的参考价值。

Kinect;机器人;体感识别;景深图像

0 引言

随着现代社会工作、生活节奏的不断加快,人口老龄化问题日趋严重,空巢式家庭及失能老人数量快速增长,使得家庭护理问题成为一个重大的社会问题[1]。具有一定护理能力的服务机器人代替专人帮助老年人生活起居,可以大幅提高老年人行动自由度,具有重大的社会意义。

对于机器人的操控,常用的控制方式有红外线遥控方式、语音控制方式、基于WiFi无线网络控制方式和基于GSM/GPRS网络的远程控制方式等,这些控制方式满足机器人控制需求,但是这几种控制方式存在不便于携带、移动性较差和控制环境需要网络等问题[2]。针对以上问题,本文提出了利用Kinect视觉识别功能实现对智能居家机器人控制的解决方法。Kinect是美国微软公司开发的一款体感摄像头,是以获取目标物体三维坐标的机器视觉设备[3]。基于Kinect视觉识别是通过摄像头获取人体图像景深数据,利用姿态识别技术处理景深数据,实时对用户的运动姿态进行识别,并转换成相应的指令进行人机交互,实现控制功能。该系统成本较低、操作灵活方便,经实验表明,使用者的动作姿态能够准确控制智能居家机器人完成自主抓取、传递物品等一系列动作,实现了机器人控制方式上的创新,也体现了更加自然的人机交互。

1 系统硬件设计

系统整体结构如图1所示,系统由上位机和下位机两部分组成。上位机部分包括Kinect摄像头,计算机及无线通讯模块,实现人体动作姿态对下位机的远程控制。Kinect通过USB连接到计算机,完成人体骨骼参数的采集,姿态识别算法分析判断人体姿态动作,生成相应的控制指令,通过2.4G无线数据传送模块,控制机器人完成相应动作,使其更加智能化。

图1 系统结构图

下位机为智能居家机器人,主要由主控制器、无线通讯模块、霍尔测速传感器、三自由度机械臂、直流减速电机模块及超声波避障模块等构成。机器人主控制器采用Arduino Due作为主控芯片,Arduino Due作为Arduino第一块使用32位ARM核心单片机的主控板拥有54个数字输入输出引脚,以及12个模拟输入引脚,CPU使用Atmel SAM3X8E ARM Cortex-M3,拥有84MHz时钟,非常适合作为系统部分的主控芯片。机器人机械结构主要由三自由度机械臂和承载机械臂的可移动底盘组成。三自由度机械臂前端爪头由一个舵机控制其开合,负责抓取物体。爪头的设计用ProE软件3D建模后,由3D打印机打印而成,实现了更好的齿轮配合和抓取时更大的接触面积和摩擦力。图2为机械臂爪头实物图。三自由度机械臂由铝合金支架和舵机构成。三自由度的机械臂通过调节两个舵机转过的角度来确定多种动作,这些动作可以满足体感控制需要机械臂实现的功能,如抓取地上的物体并实现传递。机械支撑结构由两层亚克力板构成,中间用50mm铜柱连接,下层底盘下方用于连接电机,在其上方搭载驱动电路,控制电路以及电池。上层底盘用于承载机械臂和主控芯片。机械臂置于下位机最前端,方便机械臂运动不受到底盘干扰,同时将电池与驱动模块置于底盘下层,稳定重心。将主控制器置于顶层方便程序调试和下载。整体设计如图3所示。

图2 3D打印的机械臂爪头 图3 智能居家机器人实物图

2 软件设计

2.1 Kinect姿态识别算法

传统姿态识别大部分是对RGB彩色图像的处理,并在一定条件下取得较好的识别效果。其中包括很多不同的算法,如Mahmoud等人提出了基于马尔科夫(HMM)模型的手势识别系统[4];Ghotkar等人提出了一种基于手部分割的手势识别方法[5]。但是RGB彩色图像对光照变化比较敏感[6],难适应复杂背景,应用范围受到极大的限制。利用Kinect摄像头的姿态识别算法不受光照和背景噪声影响,通过获取景深图像,并在景深图像数据基础上提取人体骨骼参数,建立人体各关节3D坐标,计算关节点之间的角度,最后将计算的角度与姿态库中的角度阈值范围进行匹配,从而实现人体姿态识别。

2.1.1 景深图像的获取与转换

Kinect有三个镜头,中间镜头是RGB彩色摄像头,用来采集彩色图像,分辨率为640×480;左右两边镜头分别是红外发射器和红外CMOS摄像头,它们共同组成景深传感器,输出景深图像分辨率为320×240[7-8]。Kinect景深图像获取采用光编码技术,利用红外发射器发射红外线,红外线打到不均匀介质上形成散斑,再由红外CMOS摄像头读取散斑信息并传给系统芯片,系统芯片对其解码计算后生成景深图像。景深图像中每个像素是Kinect获取的深度信息,因此需要将以像素为单位的深度信息转换成以实际距离为单位的数据。由文献[9]首先利用获取的深度值求出目标物到Kinect摄像头的实际距离d。

d=Ktan(Hdr+L)-O

(1)

其中,dr为深度值,H=3.5×10-4rad,K=12.36cm,L=1.18rad,O=3.7cm。

根据实际距离的深度信息值,文献[10]给出了由深度坐标点(xd,yd)到实际坐标点(x,y,z)的转换公式:

(2)

其中,F=0.0021,Kinect的分辨率w×h为640×480。

利用上述公式可以将深度图像每一个像素点转化成3D坐标,Kinect的三维坐标系不同于常见的空间三维坐标系[11],其中x轴与y轴的零点与传统空间坐标系相同,但其z轴坐标零点为Kinect传感器,正方向为Kinect指向的正前方。

2.1.2 关节点角度计算

Kinect可以获取人体骨架结构的20个关节点信息[12],系统中应用双手9个关节点识别姿态动作。如图4所示,计算左肘关节的角度,可以利用左肩关节、左肘关节和左腕关节的3D坐标进行求解。假设左肩关节的3D坐标为(x1,y1,z1),左肘关节的3D坐标为(x2,y2,z2),左腕关节的3D坐标为(x3,y3,z3),左肩关节和左肘关节连线构成直线l1,左肘关节和左腕关节连线构成直线l2。那么直线l1在XOY平面的倾角k1为:

(3)

图4 关节点角度计算图示

直线l2在XOY平面的倾角k2为:

(4)

直线l1和l2之间的夹角:

(5)

以此可以得到左肘关节角度,其他关节点角度也类似计算。

2.1.3 人体姿态匹配

姿态库中的人体姿态由关节点之间的夹角来确定,姿态识别时根据不同的精度要求设定不同的阈值,如果所有关节点角度都在阈值范围内,则可以判定为有效姿势。假定阈值为δ,所有关节点角度满足式(6),则判定姿势识别成功,若其中有一个关节角度不满足,则姿势识别不成功,需要重新开始识别。

(6)

其中,αi为关节点测量角度,βi为关节点期望角度。为了保证对机器人动作控制的精准性,将阈值设定为10°,对人体姿态识别时,当所有的角度都满足规定姿势的阈值范围,就可以正确识别出人体各个姿态。

2.2 上位机软件设计

上位机软件部分接收Kinect传送来的深度图像,计算每帧图片的骨骼节点空间坐标,由姿态识别算法识别人体动作,产生控制指令并完成与下位机通信。软件是在Visual Studio 2010环境下开发的,采用C#语言进行编程。首先设置串口,调用KinectNuiInit()函数,初始化Kinect设备,设置摄像头仰角,打开颜色流、深度流和骨架流;然后调用KinectGetFrame()、KinectDeptFrameToimage()和KinectColorFrameToImage()函数来获取数据帧,转化为对应图像类型;再利用姿态识别算法进行数据处理,KinectJudgeTrack()函数分析景深数据提取骨骼节点空间坐标,IsAngle()函数判断姿态动作,mycomm.WriteLine()发送串口数据;最后调用KinectNuiInit()函数,关闭颜色流、深度流和骨架流,关闭Kinect设备。

2.3 智能居家机器人软件设计

智能家居机器人通过接收无线通讯模块nRF2401发来的控制字并执行相应指令,能实现对底盘、机械臂运动的同时控制。具体控制流程如图5所示。

在外部中断中,主控制器记录减速电机的转速,存入输入结构体。而在时钟中断中,电机控制系统利用输入结构体中的转速数据计算出下一时刻PWM波的占空比,在主函数的循环中更新PWM波,并且在时钟中断中主控制器也更新了机械臂伺服电机的状态。

图5 智能居家机器人程序流程图

3 功能实现

上位机软件利用Kinect摄像头采集景深图像,通过姿态识别算法对景深图像进行处理,识别人体姿态动作,并将控制信号传送给智能居家机器人,机器人根据接收到的指令实时完成前进、后退、转向、机械臂爪头的开闭及机械臂的举起放下等动作。实验结果表明,系统具有较高的识别成功率,而且操作者的身高、体型对姿态识别没有影响,系统通用性较好。图6为机器人抓取物体,图7为机器人抓取物体后,抬起机械臂准备传递物品。操作者姿态动作识别属于静态识别,在操作过程中,操作者作出相应动作后需持续1s以上,若动作变化太快,会降低整体操作流畅性。同时,受Kinect精度限制,人与Kinect传感器的理想识别距离为1.2~5.0m,对操作者的活动有一定限制。

图6 机器人抓取物品 图7 机器人举起机械臂

4 结束语

本文设计了一种基于Kinect视觉识别的智能居家机器人控制系统。系统利用Kinect摄像头对操作者进行景深数据采集,设计姿态识别算法,从而生成对应的控制指令,远程控制机器人完成相应动作任务。实验证明,基于Kinect视觉识别的控制方式能准确控制智能居家机器人完成抓取、传递物品等一系列任务,能较好地满足老年人的日常需要,实现了机器人控制方式上的创新,对服务型机器人领域的发展研究也具有很好的参考价值。

[1] 徐方,张希伟,杜振军.我国家庭服务机器人产业发展现状调研报告[J]. 机器人技术与应用,2009(2):14-19.

[2] 王素青,黄文龙.基于 Android 的双轮机器人控制系统研究与设计[J].组合机床与自动化加工技术,2016(12):60-64.

[3] JW Kang, DJ Seo, DS Jung. A Study on the control Method of 3-Dimensional Space Application using KINECT System [J]. International Journal of Computer Science and Network Security, 2011,11(9): 55-59.

[4] Elmezain M, Al-Hamadi A. Gesture Recognition for Alphabets from Hand Motion Trajectory Using Hidden Markov Models[C]//Signal Processing and Information Technology, 2007 IEEE International Symposium on IEEE, 2008:1192-1197.

[5] Ghotkar A S, Kharate G K. Hand Segmentation Techniques to Hand Gesture Recognition for Natural Human Computer Interaction[J]. International Journal of Human-Computer Interaction, 2012, 3(1):15-25.

[6] 汤颖,张宏鑫,张美玉. 基于图形硬件的纹理图像编码与实时绘制算法[J]. 计算机学报,2007,30(2):272-280.

[7] 韩峥,刘华平,黄文炳,等. 基于Kinect的机械臂目标抓取[J]. 智能系统学报,2013,8(2):149-155.

[8] 吴国斌,李斌,阎骥洲.Kinect人机交互开发实践[M]. 北京:人民邮电出版社, 2013.

[9] Raheja L J,Chaudhary A,Singal K,et al.Tracking of fingertips and centers of palm using Kinect[C]//2011 Third International Conference on Computational Intelligence, Modelling and Simulation, 2011:248-252.

[10] Satyavolu S,Bruder G,Willemsen P,et al.Analysis of IR-based virtual reality tracking using multiple Kinects[C]∥IEEE Virtual Reality Conference,2012:149-150.

[11] 陈晓明,蒋乐天,应忍冬. 基于Kinect深度信息的实时三维重建和滤波算法研究[J]. 计算机应用研究,2013,30(4): 1216-1218.

[12] 黄季冬.动态手势识别技术研究与实现[D].武汉: 华中科技大学,2012.

IntelligentHomeRobotControlSystemBasedontheVisualIdentitybyKinect

SHEN Li-li

(Jincheng College,Nanjing University of Aeronautics and Astronautics, Nanjing 211156, China)

In order to better provide services to the elderly, an intelligent home robot control system based on Kinect was designed in this paper. First of all, the computer was used to obtain the depth image data of human body through Kinect camera. Then, the recognition control algorithm was used to recognize the human body posture. Finally, the recognition result was converted to control command that transmitted to the robot to complete a series of actions such as grabbing and delivering objects, that meet old. Experimental results indicated that the control method based on visual identity can accurately control the intelligent home robot, that realizes the innovation of robot control mode. In reality, it has some potential benefits for the applications in the field of humanoid robot research.

Kinect; robot; somatosensory recognition; depth image

TH165;TG659

A

1001-2265(2017)12-0078-03

10.13462/j.cnki.mmtamt.2017.12.019

2017-07-11;

2017-08-31

沈莉丽(1984—),女,江苏南通人,南京航空航天大学金城学院讲师,硕士,研究方向为信号处理与控制系统,(E-mail)shirely_ivy@163.com。

(编辑李秀敏)

猜你喜欢
关节点景深姿态
一种结合物理模型和景深估算的图像去雾算法
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
重载机车网络重联TCN 故障节点识别方法研究*
关节点连接历史图与卷积神经网络结合的双人交互动作识别
攀爬的姿态
全新一代宋的新姿态
搞好新形势下军营美术活动需把握的关节点
另一种姿态
简明FOTO词典:景深
景深在影视摄影中的创新应用