基于体感识别的辅助倒水机器人控制系统

2017-11-03 00:46沈莉丽
电子器件 2017年5期
关键词:关节点景深体感

沈莉丽

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

基于体感识别的辅助倒水机器人控制系统

沈莉丽*

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

为了更好的给老年人及残疾人提供服务,基于体感识别技术,设计了辅助倒水机器人控制系统。首先通过Kinect摄像头获取人体景深图像,然后利用体感识别控制算法对人体姿势进行识别,最后将识别结果转换为控制命令传输到辅助倒水机器人使其执行相应动作。实验表明,辅助倒水机器人具有良好的操控及执行性能,能较好地满足老年人及残疾人的需求,对服务型机器人领域的发展研究具有很好的参考价值。

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

随着我国人口老龄化以及各类残疾人士的出现,看护工作已成为社会的一个重要负担。据统计,在我国,需要看护人员的家庭约占总数的十分之一,这使得助老助残以及家庭护理问题日益成为一个重大的社会问题[1-2]。因此,大力发展服务型机器人,是社会发展的必然需求。服务型机器人可以代替看护人员给老年人及残疾人士提供日常服务,帮助他们提高行动自由度,具有重大的社会意义。

体感识别是通过对人体的身体姿态进行识别、跟踪,从而实现控制,是一种自然、符合用户行为习惯的交互方式[3]。早期的体感识别主要使用传感器设备采集肢体关节数据,并结合神经网络进行关节数据分析从而获得手势意义,其构成复杂,成本高昂,不适合自然交互方式的要求。微软Kinect传感器通过红外摄像头获取深度信息来进行人体姿态识别,不受环境影响,得到越来越多研究人员的关注。韩国建国大学的Rustam[4]等利用Kinect传感器的人体骨骼检测能力,实现了16关节类人机器人的人体动作模仿控制;日本千叶大学的Myagmarbayar[5]等采用隐马尔可夫模型,利用Kinect传感器,开发了一个可以从侧面检测人体动作并进行跟随的机器人系统。国内方面,上海交通大学钱鹤庆[6]利用Kinect构建人体模型,选取DTW算法进行动态姿势识别,完成虚拟地球仪的教育辅助系统;清华大学韩峥[7]等通过对Kinect采集的深度信息进行处理,利用RRT算法对机械臂末端进行路径规划,设计出实时桌面清理实验系统。

本文将机器人控制技术与体感识别相结合,设计了针对老年人和残疾人士的辅助倒水机器人,将倒水机器人的动作与使用者的身体姿态相结合,使老年人和残疾人士可以在原地让辅助倒水机器人做出移动、接水、倒水等操作,实现了更加自然的人机交互。

1 系统硬件设计

本文的体感控制系统如图1所示,主要分为上位机控制和下位机控制两个部分。上位机控制部分包括Kinect摄像头和计算机,实现人对下位机的非接触控制。Kinect体感摄像头采样景深及RGB摄像头数据,然后计算机端的体感识别系统通过深度图像局域梯度特征获取人体骨骼参数,根据骨骼节点参数,提取人体姿态特征,比对预先定义的人体姿态库,将人体肢体动作转换为控制命令,通过2.4G无线数据传输模块与辅助倒水机器人建立连接,完成数据交换,从而控制辅助倒水机器人完成相应的技术动作。

图1 系统结构图

1.1 Kinect体感摄像头

Kinect是美国微软公司为XBOX360游戏机开发的一款体感外设,Kinect实际上是一种3D体感摄像头,它能够让用户无需借助任何外设,只通过身体动作或者语音就能够直接完成操作[8]。Kinect有3个镜头,最中间的是RGB摄像头,用来采集彩色图像,分辨率为640×480;左右两边的镜头分别是红外射线发射器和红外CMOS摄像头,它们共同组成了景深传感器,输出景深图像分辨率为320×240。

Kinect传感器同时获取采集到的彩色图像数据和景深图像数据,支持实时的全身骨骼跟踪,获取人体骨架结构的20个关节点信息[9]。利用这些信息可以提取出人体姿态特征,用于人体肢体动作的识别,但是微软并没有公布标准动作识别库,为了实现动作捕捉、识别,必须由开发者借助于Visual Studio 2010进行相关开发,通过体感识别算法实现人体动作识别。

1.2 辅助倒水机器人

辅助倒水机器人为轮式小车结构,其硬件电路结构框图如图2所示,主要由主控制器模块、直流电机驱动模块、无线通讯模块、红外避障模块、全向舵机及电源模块等几部分构成。电源模块负责系统各模块的电源。全向舵机安装在小车支架上方,构成一个二自由度机械臂云台,以放置倒水装置。直流电机驱动模块采用L298N,通过主控制器输出PWM波信号驱动电机模块控制其转向和速度。红外避障模块主要实现小车避障功能。主控制器模块是系统的控制核心,通过nRF2401无线通讯模块与上位机通信,接收指令执行相应的技术动作。

图2 辅助倒水机器人硬件电路结构框图

2 系统软件设计

2.1 体感识别算法

体感识别算法主要由骨架关节点获取、关节点角度测量、姿态匹配和人体姿态识别等几个部分组成。算法流程如图3所示,首先利用Kinect获取的深度图像识别出人体骨架关节点,提取骨架关节点空间坐标,通过空间向量计算关节点之间的距离和角度,最后将计算的角度与姿态库中的角度阈值范围进行匹配,从而实现人体姿势的识别。

图3 体感识别控制算法流程图

2.1.1 获取人体骨架关节

Kinect景深图像的获取是通过红外线发射器和红外CMOS摄像头共同来完成的[7],红外线发射器发出红外光覆盖整个待测区域,而红外线CMOS摄像头接收反射光线得到的景深图像,景深图像中每个像素是kinect获取的深度信息,因此需要将以像素为单位的深度信息转换成以实际距离为单位的数据。由文献[10]首先利用获取的深度值求出目标物到Kinect摄像头的实际距离d。

d=Ktan(Hdr+L)-O

(1)

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

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

(2)

式中:F=0.002 1,Kinect的分辨率w×h为640×480。

2.1.2 关节点角度测量

Kinect的三维坐标系不同于常见的空间三维坐标系[12],其中x轴与y轴的零点与传统空间坐标系相同,但其z轴坐标零点为Kinect传感器,正方向为Kinect指向的正前方。由向量的可平移性及方向性,可以推出Kinect坐标系中任意两个不重合的坐标点A(x1,y1,z1),B(x2,y2,z2)经过变换,可转化到传统空间坐标系中,对其组成的向量AB,可以认为是从坐标轴零点引出。

AB=(x2-x1,y2-y1,z2-z1)

(3)

两关节点之间的距离,利用欧氏距离,

(4)

以人体左手臂为例,取左肩膀E、左肘S、左手腕W3个节点,对于肘关节角度的计算,可以直接使用空间向量ES和EW的夹角得出,计算过程如下:

ES=(Sx-Ex,Sy-Ey,Sz-Ez)

(5)

EW=(Sx-Wx,Sy-Wy,Sz-Wz)

(6)

(7)

以此可以得到肘关节角度的三角函数值,然后再进行反三角函数运算可以得到相应角度,其他关节点角度也类似计算。

2.1.3 人体姿态匹配

姿态库中的人体姿势由关节点之间的夹角来确定,设定βi(i=1,…,4)为关节点的角度,其中β1为左肩与左肘之间的角度,β2为左肘与左腕之间的角度,β3为右肩与右肘之间的角度,β4为右肘与右腕之间的角度,则姿态库中各姿势满足的角度条件如表1所示。

表1 姿势满足的角度条件 单位:(°)

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

(8)

式中:αi为关节点测量角度,βi为关节点期望角度。

为了保证对辅助倒水机器人动作控制的精准性,将阈值设定为10°,对人体姿势识别时,当所有的角度都满足表1中规定姿势的阈值范围,就可以正确识别出人体各个姿势。

2.2 上位机软件设计

软件系统是在Visual Studio 2010环境下开发的,全部程序使用C#编程实现。系统通过Kinect SDK平台,访问连接到计算机的Kinect传感器,获取彩色图像、深度信息,骨骼节点坐标,进行骨骼追踪。通过设计体感识别算法,识别人体姿态动作,生成相应控制指令通过无线通讯模块发送给辅助倒水机器人。系统设计软件界面如图4所示,软件上方从左到右依次显示景深图像、骨骼图像及彩色图像,左下方显示景深平均距离值,以英尺为单位,往右依次为命令窗口—显示识别的命令、调试窗口—显示一些调试过程中的信息、串口设置—选择串口端口号,以及打开串口操作、操作按键—自定义按键,在调试阶段可以不用体感识别部分也能够控制辅助倒水机器人。

2.3 辅助倒水机器人软件设计

辅助倒水机器人采用STC90C52RC单片机为主控制器芯片,通过接收无线通讯模块nRF2401发来的控制字并执行相应指令,能实现机器人前进、后退、左转、右转、停止及开启倒水装置电源、接水、倒水等功能,其控制流程如图5所示。

图4 系统软件界面

图5 辅助倒水机器人流程图

3 实验分析

体感识别系统控制的核心在于对人体姿态的识别,为了验证整个系统的正确性,分别进行了骨骼跟踪测试、动作识别测试及整体操控测试。本系统应用的关节点为左右肩关节、肘关节及腕关节共6个关节点,设定关节点角度阈值为10°,在WIN7+VS2010+Kinect SDK环境下运行上位机软件。具体实验过程如下。

(1)骨骼跟踪测试

通过操作者在Kinect摄像头视场范围内来回走动,观察骨骼窗口产生的骨骼跟踪图像,可以有效实现对于人体骨骼的跟踪,并且动作流畅,延时很小。

针对不同距离的识别情况,本次测试同样做了相应的测试和统计,统计结果表明,识别的有效距离为1.2 m~5.1 m,在此范围内均可有效识别,超过范围,会由于图像方面的原因,产生乱码。

同时本次测试也检测了不同体型的人对于识别产生的影响,结果表明,在视场范围内,正常人都可以有效的识别,与高、矮、胖、瘦、男、女均没有关系。

(2)动作识别测试

为了验证体感控制动作的准确性,实验选取了10名操作者,分别进行以下7个动作的测试,测试结果如表2所示。测试结果表明:各动作的识别率都超过90%,具有较高的识别成功率,符合控制要求。操作者姿态动作识别属于静态识别,在操作过程中,操作者作出相应控制动作后需持续1 s以上,若动作变化太快,会降低操作流畅性。

图6 辅助倒水机器人实物图

动作及含义测试次数/次正确识别次数/次识别率举起双手(前进)1009393%放下双手(停止)1009292%双臂T型(后退)1009393%左手臂斜上(左转弯)1009393%右手臂斜下(右转弯)1009292%举起右手(接水)1009393%举起左手(倒水)1009393%

(3)整体操控测试

辅助倒水机器人实物图如图6所示,测试上位机对下位机的控制效果,使整个系统联机工作,人体姿态动作经过Kinect及上位机软件转化为控制指令,并通过2.4G无线通讯模块传至下位机,实现体感信息对下位机的控制。首先对辅助倒水机器人所有动作指令进行测试,然后在5 m×5 m的空间中,操作者作出相应动作测试机器人移动、接水及倒水任务的执行情况,最终任务顺利完成,表明辅助倒水机器人具有良好的操控及任务执行能力。

4 结语

本文设计了一种基于体感识别的辅助倒水机器人控制系统。系统将Kinect体感识别控制、辅助倒水机器人,2.4G无线通讯模块结合起来,实现了采用体感识别方式操控辅助倒水机器人。经实验证明,辅助倒水机器人具有良好的操控及执行性能,能很好的完成移动及接水、倒水等一系列任务,能较好地满足老年人及残疾人的需要,对服务型机器人领域的发展研究具有很好的参考价值。

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

[2] 邓志东,程振波. 我国助老助残机器人产业与技术发展现状调研[J]. 机器人技术与应用,2009(2):20-24.

[3] 余涛. Kinect应用开发实战:用最自然的方式与机器对话[M]. 北京:机械工业出版社,2012.

[4] Igorevich R R,Ismoilovich E P. Behavioral Synchronization of Human and Humanoid Robot[C]//Ubiquitous Robots and Ambient Intelligence(URAI),2011:655-660.

[5] Nergui M,Imamoglu N,Yoshida Y,et al. Human Behavior Recognition by a Mobile Robot Following Human Subjects[M]. Evaluating AAL Systems Through Competitive Benchmarking,2013:159-172.

[6] 钱鹤庆. 应用Kinect与手势识别的增强现实教育辅助系统[D]. 上海:上海交通大学,2011.

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

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

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

[10] 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.

[11] 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.

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

AuxiliaryPouringRobotControlSystemBasedonSomatosensoryRecognition

SHENLili*

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

In order to provide better services to the elder and the disabled people,a auxiliary pouring robot control system based on somatosensory recognition was designed. First of all,the computer was used to obtain the depth image data of human body through kinect camera. Then,the somatosensory recognition control algorithm was used to recognize the human body posture. Finally,the recognition result was converted to control command that were transmited to the auxiliary pouring robot to execute corresponding movement. Experimental results indicated that the auxiliary pouring robot has good performance,that can well meet the needs of the elderly and the disabled. In reality,it has some potential benefits for the applications in the field of humanoid robot research.

Kinect;robot;somatosensory recognition;depth image

10.3969/j.issn.1005-9490.2017.05.050

2016-08-17修改日期2017-01-06

TP391

A

1005-9490(2017)05-1314-05

沈莉丽(1984-),女,汉族,硕士,江苏南通人,讲师,主要从事信号处理的教学与研究工作,shirely_ivy@163.com。

猜你喜欢
关节点景深体感
一种结合物理模型和景深估算的图像去雾算法
体感交互技术在脑卒中康复中的应用
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
人体体感感知机械手设计与实现
非触控式的体感机械臂交互控制系统研究
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
体感语境下的交互行为设计
简明FOTO词典:景深