买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于Kinect传感器的仿人机械手控制方法_华南理工大学_201710005939.0 

申请/专利权人:华南理工大学

申请日:2017-01-05

公开(公告)日:2020-05-22

公开(公告)号:CN106909216B

主分类号:G06F3/01(20060101)

分类号:G06F3/01(20060101);G06K9/00(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.05.22#授权;2017.07.25#实质审查的生效;2017.06.30#公开

摘要:本发明公开了一种基于Kinect传感器的仿人机械手控制方法,包括步骤:1通过Kinect传感器采集数据;2对采集的数据进行预处理,然后使用相关算法进行手势分割;3使用DBN神经网络进行手势识别;4将识别的手势转化成固定格式的指令;5利用TCP协议进行远程通信,将指令发送到服务器端;6服务器端接收并识别指令,通过运动学计算得到控制参数;7服务器端根据控制参数控制机械手的运动。本发明方法考虑了实际操作的成本及准确率、响应速度等方面的要求,克服了基于数据手套控制成本高及基于鼠标键盘等传统人机交互方式对专业知识有一定要求的问题,具有操作人性化、响应速度快、准确率高的优点,并且具有很好的鲁棒性。

主权项:1.一种基于Kinect传感器的仿人机械手控制方法,其特征在于,包括以下步骤:1通过Kinect传感器采集数据;2对采集的数据进行预处理,然后使用相关算法进行手势分割;所述手势分割包括基于深度图像的手势分割与基于RGB-D图像的手势分割,具体如下:基于深度图像的手势分割的处理如下:结合Kinect的深度图像及手部关节点位置信息进行手势图像分割,能够有效去除背景,采用中值滤波进行噪声处理,并且结合形态学开闭运算、腐蚀膨胀处理使得图像更加完整与清晰;通过分水岭算法进行分割,得到手势部分;最后将图像进行裁剪及伸缩变换得到固定尺寸的手势图像,最后转化成二值图像;基于RGB-D图像的手势分割的处理如下:将去除背景的深度图像与RGB图像对齐,从而能够掩盖RGB图像中的非手势区域,得到只有手势区域的RGB-D图像;将得到的RGB-D图像转化成灰度图像,然后进行去噪,通过分水岭算法进行分割,再进行裁剪及伸缩变换得到固定尺寸的手势图像,最后转化成二值图像;3使用DBN神经网络进行手势识别将步骤2中手势分割产生的固定尺寸图像矩阵转化成向量,输入到训练好的DBN神经网络模型,以计算得到的最大概率值对应的手势类别作为输出结果;基于深度图像的手势识别与基于RGB-D图像的手势识别是分开并行处理的,再通过决策系统来得到最终结果,决策系统的决策函数如下: 式中,BD=true表示基于深度图像分割后的手势识别成功,BD=flase表示识别失败;BRGB-D=true表示基于RGB-D图像分割后的手势识别成功,BRGB-D=flase表示识别失败;GD表示基于深度图像分割后识别得到的手势类别,GRGB-D表示基于RGB-D图像分割后识别得到的手势类别;4将识别的手势转化成固定格式的指令;5利用TCP协议进行远程通信,将指令发送到服务器端;6服务器端接收并识别指令,通过运动学计算得到控制参数;7服务器端根据控制参数控制机械手的运动。

全文数据:一种基于Kinect传感器的仿人机械手控制方法技术领域[0001]本发明涉及人机交互领域,尤其是指一种基于Kinect传感器的仿人机械手控制方法。背景技术[0002]随着机器人学的发展,机器人的应用领域在不断拓宽,机器人作业的任务和环境的复杂性不断增加,普通的机器人及与其配合的各种简单的末端夹持装置已远远不能满足各种灵巧及精细操作任务的要求。由于大多数的末端夹持器是针对特定任务而设计的,存在着缺少灵活性和夹持方式有限等局限性。研制出一种通用的末端夹持器,代替各种特定末端夹持器,完成各种环境下的灵巧操作任务,成为机器人研究领域一种需求。由于仿人机械手像人手一样具有多个手指和手掌,具有很强的功能和很高的通用性,因此,完全能够代替人手完成各种复杂而灵巧的操作,如在太空航天器的舱外、核电站、化工厂等危险、恶劣的工作环境中从事探测、取样、装配、修理作业、战场探雷和排雷这类危险的工作。[0003]在仿人机械手运动控制方面,普遍采用数据手套或鼠标、键盘、示教盒的输入来控制仿人机械手。但是,通过鼠标或键盘输入命令控制仿人机械手不太人性化,它需要操作者对控制系统有较多的了解。数据手套虽然能够很好地识别操作者的手势动作,但其配带很不方便,且价格昂贵。若是能够通过操作者的手势来直接控制仿人机械手将会带来很多便利,也可以大大降低操作难度。为此,本文提出了基于Kinect传感器的仿人机械手运动控制方法,操作者无需穿戴数据手套等辅助设备或标记工具,也不需要具有高深的专业知识,操作者只要面对Kinect传感器且在合适区域内就可轻松地控制仿人机械手。[0004]在手势图像分割中,传统的方法是基于肤色检测和Haar特征的级联分类器。基于肤色检测方法在光照度较好且周围没有与手肤色相似的物体时效果较好,但光照改变或有与手肤色接近的物体,则识别准确率会受到很大的干扰影响,尤其是操作者的手与脸往往很难分辨。利用RGB图像进行手势分割,不能利用空间距离信息并且容易受光照影响。而深度图像则克服了这些问题,基于深度图像的手势分割通常使用双阈值或骨骼追踪方法,本文将结合这两种方法用于手势分割。发明内容[0005]本发明的目的是在于克服现有人机交互方式的不足,提供一种基于Kinect传感器的仿人机械手控制方法,该方法是以一种自然的人机交互方式来控制机械手运动,同时保证较好的识别率及准确率,该方法考虑了实际操作的成本及准确率、响应速度等方面的要求,克服了基于数据手套控制成本高及基于鼠标键盘等传统人机交互方式对专业知识有一定要求的问题,具有操作人性化、响应速度快、准确率高的优点,并且具有很好的鲁棒性。[0006]为实现上述目的,本发明所提供的技术方案为:一种基于Kinect传感器的仿人机械手控制方法,包括以下步骤:[0007]1通过Kinect传感器采集数据;[0008]2对采集的数据进行预处理,然后使用相关算法进行手势分割;[0009]3使用DBN神经网络进行手势识别;[0010]4将识别的手势转化成固定格式的指令;[0011]5利用TCP协议进行远程通信,将指令发送到服务器端;[0012]6服务器端接收并识别指令,通过运动学计算得到控制参数;[0013]7服务器端根据控制参数控制机械手的运动。[0014]在步骤1中,所述Kinect传感器固定于支架上或者放置在桌面上,操作者面对Kinect传感器,并在操作过程中保持与Kinect传感器距离在0.8米到4米范围内,打开客户端连接Kinect传感器,实时采集深度图像、RGB图像及骨骼关节位置数据。[0015]在步骤2中,所述手势分割包括基于深度图像的手势分割与基于RGB-D图像的手势分割,具体如下:[0016]基于深度图像的手势分割的处理如下:[0017]结合Kinect的深度图像及手部关节点位置信息进行手势图像分割,能够有效去除背景,采用中值滤波进行噪声处理,并且结合形态学开闭运算、腐蚀膨胀处理使得图像更加完整与清晰;通过分水岭算法进行分割,得到手势部分;最后将图像进行裁剪及伸缩变换得到固定尺寸的手势图像,最后转化成二值图像;[0018]基于RGB-D图像的手势分割的处理如下:[0019]将去除背景的深度图像与RGB图像对齐,从而能够掩盖RGB图像中的非手势区域,得到只有手势区域的RGB-D图像;将得到的RGB-D图像转化成灰度图像,然后进行去噪,通过分水岭算法进行分割,再进行裁剪及伸缩变换得到固定尺寸的手势图像,最后转化成二值图像;[0020]在步骤3中,将步骤2中手势分割产生的固定尺寸图像矩阵转化成向量,输入到训练好的DBN神经网络模型,以计算得到的最大概率值对应的手势类别作为输出结果;基于深度图像的手势识别与基于RGB-D图像的手势识别是分开并行处理的,再通过决策系统来得到最终结果,决策系统的决策函数如下:[0021][0022]式中,B〇=true表示基于深度图像分割后的手势识别成功,B〇=flase表示识别失败;BRGB-D=true表示基于RGB-D图像分割后的手势识别成功,BRGB-D=flase表示识别失败;Gd表示基于深度图像分割后识别得到的手势类别,GRGB-D表示基于RGB-D图像分割后识别得到的手势类别。[0023]在步骤4中,所述指令包含机械手每个关节的运动方式、运动速度、运动方向及运动角度,能够表示平移、旋转、复位、视图变化这些操作。[0024]在步骤5中,所述远程通信基于面向连接的TCP协议来实现,服务器端与客户端是一对多的关系,客户端识别手势后转化成控制指令,每个客户端都有自己的指令缓冲池,指令发送线程按照设定的频率从缓冲池取指令并发送到服务器端,服务器端接收的指令加入到指令队列,指令读取线程会不断从指令队列中取出指令。[0025]在步骤6中,先解析指令得到相关数据,数据包含各个手指的各个关节的角度信息,通过正运动学模型能够求出仿人机械手手指末梢在基础坐标系中的位置和姿态,这些角度及位姿信息共同称为控制参数;以手掌中心为原点、四指伸直且指向的方向为y轴正方向、与四指垂直且指向大拇指的方向为x轴正方向、垂直手掌平面且手心向上的方向为z轴正方向建立基础坐标系;大拇指指尖在基础坐标系中的坐标为:[0026][0027]其它四个手指指尖在基础坐标系中的坐标为:[0028][0029]式中,将大拇指、食指、中指、无名指、小指分别编号为i=l,2,3,4,5,将手指的基关节、近基关节、中间关节、末梢关节分别编号为j=1,2,3,4;则xi,yi,zi分别表示手指i的空间坐标,次g分别表示手指i的基关节角度的余弦值、正弦值,q笔3.分别表示手、、指i的近基关节与中间关节角度之和的余弦值、正弦值,、‘分别表示手指i的近基关节、中间关节与末梢关节角度之和的余弦值、正弦值,表示手指i的关节j的长度,h表示手指i的基关节在y轴正方向上的位移,CU表示手指i的基关节在x轴正方向上的位移。[0030]在步骤7中,通过控制参数来决定仿人机械手每个舵机转动的角度,从而实现运动控制,支持在线控制和离线控制,并且支持单手控制和双手控制;所述在线控制是通过服务器端发送指令控制各个关节的运动角度及运动速度;所述离线控制是将编写好的程序下载到单片机中,然后使机械手执行编写好的动作。[0031]本发明与现有技术相比,具有如下优点与有益效果:[0032]1、操作控制简单:本发明方法无需操作者具备任何专业知识,也无需佩戴任何额外设备。[0033]2、准确率高:本发明方法充分利用了Kinect传感器采集的数据,同时使用基于深度图像及基于RGB-D图像的手势分割识别,进一步提升了准确率。[0034]3、可扩展性好:当控制不同类型的机械手时,只需要修改运动学模型里面的参数,具有很好的适应性及可扩展性。[0035]4、同时支持单手控制及双手控制:本发明不仅支持单手控制,也可以双手同时控制,无论哪种控制模式下处理速度都能满足实时性要求,并且鲁棒性高。[0036]5、远程通信传输效率高:本发明方法远程通信过程只需要传输简短的控制指令及少量其它相关数据,节省了很多流量。另外,将一部分计算处理工作的任务分摊到各个客户端,减轻了服务器端的压力。附图说明[0037]图1是系统处理流程图。[0038]图2是DBN神经网络结构图。[0039]图3是手势识别准确率随各层节点数变化图。[0040]图4是分类准确率随A取值变化图。[0041]图5是客户端与服务端通信简图。[0042]图6是单指结构简图及其坐标系。[0043]图7是机械手简图及坐标系,图中的所有坐标系Z轴都是垂直于手掌平面向上的。对于大拇指而言,cU可以看作垂直偏移量,1:可以看作水平偏移量;对于其他手指而言cU可以看作水平偏移量,li可以看作垂直偏移量偏移量取值可正可负,在图中ll〇,12=13=14=l50,di0,d2〈0,d3〈0,d40,d50。[0044]图8是仿人机器人手势动作效果图。具体实施方式[0045]下面结合具体实施例对本发明作进一步说明。[0046]本发明所提供的基于Kinect传感器的仿人机械手控制方法,包括以下步骤:[0047]1通过KinectforXB0X360是传感器采集数据,包含如下步骤:[0048]1.1将Kinect传感器固定支架上或者放置在桌面上,操作者面对Kinect传感器并且在操作过程中保持与Kinect距离在0.8米到4米范围内,为了得到较好的效果,优选的,距离保持在1米到2米范围内,图像分辨率为640X480。打开传感器,以30帧秒的速率采集数据。[0049]1.2Kinect采集的深度图像每个像素占2个字节,高13位表示从Kinect红外摄像头到最近物体对象的距离单位:毫米),低三位表示用户索引编号,因此步骤1.1得到深度图像矩阵后需要将每个像素进行移位操作从而得到实际距离。[0050]2对采集的数据进行预处理,然后使用相关算法进行手势分割,手势分割包括基于深度图像的手势分割与基于RGB-D图像的手势分割。[0051]2.1基于深度图像的手势分割:结合Kinect的深度图像及手部关节点位置信息进行手势图像分割,可以有效去除背景,以左手控制为例,手势分割处理步骤如下:[0052]2.1.1根据步骤1得到的深度图像及骨骼关节位置信息,如果左手关节点被捕捉至IJ,则获取其深度值DL。如果未捕获到左手关节点但是捕获到肩部关节点,则使用肩部关节点的深度值05减去阈值1:1^6811〇11得到左手深度值01,即01=05-1:11代811〇111,1:1^6811〇11需要根据实际情况及经验调整,优选取值390_。如果肩部关节点也未被捕获到,记此时的深度图像最小深度值为Dmin,使用最小深度值加上某个阈值threshold〗得到左手深度值DL,即DL=Dmin+threshold2,threshold2需要根据实际情况及经验调整,优选取值68mm。根据经验取两个阈值D1,D2,将深度值位于区间[DL-D1,DL+D2]内的像素点当作手势区域,在区间外的全部当做背景去除,得到只有手势部分的灰度图像;[0053]2.1.2在2.1.1中得到的图像一般会有噪声,因此需要进行去噪。本专利申请提出的方法采用中值滤波进行噪声处理,并且结合形态学开闭运算、腐蚀膨胀处理使得图像更加完整与清晰。当身体其它部位或周围物体与手掌在同一个深度范围时,得到的图像中不仅仅是手势还有身体其它部位或周围物体,通过分水岭算法进行分割,得到手势部分。如果分割结果中包含多个分割区域,则结合形态学、面积大小等方面特征判断手势区域。[0054]2.1.3将2.1.2得到的图像进行裁剪及伸缩变换得到MXN的手势图像,最后转化成二值图像,优选M=100,N=100。[0055]2.2基于RGB-D图像的手势分割处理步骤如下:[0056]2.2.1将基于深度图像分割步骤2.1.1得到的图像与RGB图像对齐,从而可以掩盖RGB图像中的非手势区域,得到只包含手势区域的RGB-D图像;[0057]2.2.2对于2.2.1得到的RGB-D图像按照基于深度图像分割步骤2.1.2及步骤2.1.3的方式进行处理,最终得到MXN的二值图像。[0058]本发明申请提出的方法中有两种控制模式:单手控制模式及双手控制模式,在双手控制模式的情况下需要从一帧图像中分别分割得到左右两个手的手势图像,右手处理步骤与左手相同。无论是基于深度图像的手势分割还是基于RGB-D的手势分割,最后得到的都是MXN的二值图像。[0059]3使用DBN神经网络进行手势识别[0060]步骤2中手势分割产生的图像尺寸为MXN,转化成1XMN的向量,输入到训练好的DBN神经网络模型,将计算得到的概率最大的手势种类作为结果输出。基于深度图像的手势识别与基于RGB-D图像的手势识别是分开并行处理的,再通过决策系统来得到最终结果,这样做是为了保证效率的同时提升准确率。决策系统的决策函数如下:[0061][0062]式中,B⑶=true表示基于深度图像分割后的手势识别成功,B⑶=flase表示识别失败;BRGB-D=true表示RGB-D图像分割后的手势识别成功,BRGB-D=flase表示识别失败;Gd表示基于深度图像分割后识别得到的手势种类,GRGB-D表示基于RGB-D图像分割后识别得到的手势种类。[0063]4将识别的手势转化成固定格式的指令[0064]将步骤3识别的手势转化成计算机容易传输、处理且可扩展性好的指令,指令中包含了机械手每个关节的舵机应该运动的角度,从而可以被运动学计算子系统所识别。指令长度不固定,根据需要来设定,每个数据位可取值范围都是从0-Z,即每个数据位有36种取值,完全能够表达各种运动状态。常规的指令长度为12位,涵盖了机械手每个手指的每个关节的运动方式、运动速度、运动方向及运动角度,能够表示平移、旋转、复位、视图变化等操作。[0065]5利用TCP协议进行远程通信,将指令发送到服务器端,具体如下:[0066]远程通信通过面向连接的TCP协议实现。服务器端与客户端是一对多的关系,客户端识别手势后通过手势与指令转化子系统转化成控制指令,每个客户端都有自己的指令缓冲池,指令发送线程按照一定的频率从缓冲池取指令并发送到服务器端,服务器端接收的指令放入指令池中,指令读取线程会不断从指令池取出并解析指令。[0067]6服务器端接收并识别指令,通过运动学计算得到控制参数,具体如下:[0068]控制参数包含各个手指各个关节的角度,通过正运动学模型可以求出仿人机械手手指末梢在基础坐标系中的位置和姿态,大姆指指尖在基础坐标系中的坐标为:[0069][0070]其它四个手指指尖在基础坐标系中的坐标为:[0071][0072]式中,将大拇指、食指、中指、无名指、小指分别编号为i=l,2,3,4,5,将手指的基关节、近基关节、中间关节、末梢关节分别编号为j=1,2,3,4。则xi,yi,zi分别表示手指i的空间坐标,裒、0分别表示手指i的基关节角度的余弦值、正弦值,Cj3、尾分别表示手指i的近基关节与中间关节角度之和的余弦值、正弦值,分别表示手指i的近基关节、中间关节与末梢关节角度之和的余弦值、正弦值,表示手指i的关节j的长度。以手掌中心为原点、四指伸直且指向的方向为y轴正方向、与四指垂直且指向大拇指的方向为x轴正方向、垂直手掌平面且手心向上的方向为z轴正方向建立基础坐标系,则li表示手指i的基关节在y轴正方向上的位移,cU表示手指i的基关节在x轴正方向上的位移。[0073]7服务器端根据控制参数控制机械手的运动,具体如下:[0074]通过控制参数来决定仿人机械手每个舵机转动的角度,从而实现运动控制,支持在线控制和离线控制,并且支持单手控制和双手控制。在线控制是通过服务器端发送指令控制各个关节的运动角度及运动速度;离线控制是将编写好的程序下载到单片机中,然后使机械手执行编写好的动作。[0075]下面结合两个具体案例对本发明上述方法进行进一步说明:[0076]案例1单手仿真实验[0077]本实验的硬件包括:微软KinectforXB0X360、运行客户端控制程序的PC机一台、运行仿真机械手控制程序的PC机一台。本实验所使用的的软件包括:基于•NetFramework4.0环境下使用C#开发的客户端程序,基于VC++、0PENGL、3DsMax开发的服务端控制程序,用来进行运动学计算及手势分割与识别的Matlab软件,存储处理记录的MySql数据库软件。本实验内容是操作者摆出某个手势,然后仿真机械手作出同样的手势,本实验将处理模式设置为左手控制模式,传感器获取的图像尺寸设定为640X480,处理后的手势图像的尺寸设定为100X100,threshol1取390mm,threshold〗取68mm,Dl及D2取50mm。系统处理流程如图1所示,处理步骤如下:[0078]1操作者面对MicrosoftKinect传感器,客户端通过实时地采集深度图像、RGB图像及骨骼关节数据,并将深度信息通过移位处理得到真实距离。[0079]2按照基于深度图像的分割步骤及基于RGB-D图像的分割步骤进行处理得到各自的手势图像。[0080]3通过DBN神经网络进行手势识别[0081]深度信念网络DBN通过训练神经元之间的权值让整个神经网络按照最大概率来生成训练数据。DBN网络由多个RBM层及一个映射层组成,训练时从底层到高层逐层训练RBMIBM网络由可视层输入层及隐含层特征提取层两层组成。本系统将100X100图像矩阵转化成1X10000向量作为其输入,输入向量只有0和1两种取值。RBM训练过程采用Hinton提出的ContrastiveDivergence学习方法,该方法快速高效。[0082]通过多个RBM叠加提取的特征具有比单层RBM更好的效果,但并非层数越多得到结果越好。通过实验对比发现,使用3个RBM层能够取得较好的效果,如图2所示。输入向量为10000维,最终通过3个RBM叠加得到n3维的特征向量。结构图中最终得到的特征向量维数较小,因此能够快速识别处理。各层的节点数会对最终结果产生较大影响,因此需要通过多次实验选取合理值,由图3可以直观地看出m、n2、n3取值变化对最终分类结果产生的影响,m=1000,n2=300,n3=500时能达到较好效果。中间层节点数对识别准确率的影响:在a中n2=300,n3=200,在m=1000达到最优;(b中m=1000,n3=200,在n2=300达到最优;(c中m=1000,n2=300,在m=500达到最优。[0083]通过多个RBM得到特征后需要选取一种合适的分类器,本系统中的手势种类是预先定义的且定义不同手势是互斥的,是一个多分类问题,适合使用使用SoftMax回归模型进行分类。在softmax回归中将x分为类j的概率为:[0084]1[0085]式中,k为手势种类数,x是指通过三层RBM提取得到的特征向量。为了解决softmax回归“冗余”参数集问题,使得代价函数有唯一解,故加入权重衰减项来修改代价函数,修改后的代价函数为[0086]2[0087]式中,m表示训练集中样本数,k为分类总数,n为特征向量x的维数,本系统中x的维数对应图2中n3J0为一个凸函数,采用L-BFGS方法获得其最优解。式2中A取值对实验结果有明显影响,由图4可以看出A=1.9X1T4附近时取得较好结果,图4中的准确率是在图2中网络模型参数取m=1000,n2=300,n3=500时计算得到的结果。[0088]4远程通信的设计[0089]本系统的远程通信通过TCPIP协议实现,服务器与客户端是一对多的关系,通信流程如图5所示。客户端识别手势后转化成控制指令,每个客户端都有自己的指令缓冲池,指令发送线程按照一定的频率从缓冲池取指令并发送到服务器端,服务器端将接收的指令加入到指令队列中,指令读取线程会不断从指令队列取出指令。[0090]为了客户端能够直观的看到服务器控制仿人机械手的实时状态,有三种可行方案如表1所示。方案2与方案3都是虚拟现实的方法,方案3虽然进一步减少了客户端与服务器的通信,但是使得客户端设计难度增加不少,这是得不偿失的。方案1对服务器性能要求较方案2、方案3高,并且对网络性能要求也高,综合考虑选择方案2最为最终设计方案。[0091]表1客户端实时得到仿人机械手运动状态的解决方案[0092][0093]运动学参数的设定[0094]仿人机械手的运动状态实际上都是由手的各个关节在空间坐标中的位置及姿态组成的,为了能够较好的对机械手进行运动控制,需要建立合适的模型。本系统设计的仿人机械手有5个手指和15个自由度,每个手指有4个指节、3个自由度每个手指的末梢关节与中间关节的运动具有耦合性),5个手指均采用相同结构。各个手指的参数如表2所示。[0095]表2机械手参数[0096][0097][0098]仿人机械手的单指结构简图及坐标系如图6所示,基关节、近基关节、中间关节、末梢关节均在同一个平面内,基关节垂直于手指平面运动侧摆运动),其余关节在手指平面内运动弯曲运动)。单指运动学的D-H参数如表3所示。机械手简图及坐标系如图7所示。[0099]表3单指运动学的D-H参数[0100][0101]Kinect采集图像帧的速率为30帧秒,单手控制模式下实时处理速度达到26帧秒,手势识别准确率达到92%以上,能够满足实时控制和应用要求。[0102]案例2——双手控制实验[0103]实验中使用的仿人机器人共22个舵机,手臂尺寸完全按照正常人的手臂比例设计,5个手指也都由各自舵机驱动,两只手各有5个自由度。实验中仿人机器人通过USB数据线连接服务器端,Kinect传感器通过USB连接客户端,客户端与服务器端通过网络连接。本实验是利用双手控制仿人机器人的运动,当操作者双手做出某个手势动作后,仿人机械手也要做出相应的动作。首先在客户端程序中启动Kinect传感器,操作者站在距离Kinect传感器1米到2米范围内进行操作,当Kinect捕捉到人的手势后会将采集的深度图像、骨骼关节位置信息、RGB图像初步处理后送往手势分割、手势识别子系统进行处理。将双手手势动作转化成指令传输到服务器端,服务器端识别指令后通过运动学计算子系统计算出仿人机器人各个舵机需要转动的角度,然后按照仿人机器人指令格式要求进行转化,将指令传输人到仿人机器人的控制器,控制器即可控制舵机的转动。[0104]USB传输数据时间可以忽略不计,因此仿人机器人双手运动速度主要取决于手势分割识别的处理速度。通过多次实验结果得到手势分割识别过程的平均速度大约为21帧秒,图8为仿人机器人做出的动作。[0105]以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

权利要求:1.一种基于Kinect传感器的仿人机械手控制方法,其特征在于,包括以下步骤:1通过Kinect传感器采集数据;2对采集的数据进行预处理,然后使用相关算法进行手势分割;3使用DBN神经网络进行手势识别;4将识别的手势转化成固定格式的指令;5利用TCP协议进行远程通信,将指令发送到服务器端;6服务器端接收并识别指令,通过运动学计算得到控制参数;7服务器端根据控制参数控制机械手的运动。2.根据权利要求1所述的一种基于Kinect传感器的仿人机械手控制方法,其特征在于:在步骤1中,所述Kinect传感器固定于支架上或者放置在桌面上,操作者面对Kinect传感器,并在操作过程中保持与Kinect传感器距离在0.8米到4米范围内,打开客户端连接Kinect传感器,实时采集深度图像、RGB图像及骨骼关节位置数据。3.根据权利要求1所述的一种基于Kinect传感器的仿人机械手控制方法,其特征在于:在步骤2中,所述手势分割包括基于深度图像的手势分割与基于RGB-D图像的手势分割,具体如下:基于深度图像的手势分割的处理如下:结合Kinect的深度图像及手部关节点位置信息进行手势图像分割,能够有效去除背景,采用中值滤波进行噪声处理,并且结合形态学开闭运算、腐蚀膨胀处理使得图像更加完整与清晰;通过分水岭算法进行分割,得到手势部分;最后将图像进行裁剪及伸缩变换得到固定尺寸的手势图像,最后转化成二值图像;基于RGB-D图像的手势分割的处理如下:将去除背景的深度图像与RGB图像对齐,从而能够掩盖RGB图像中的非手势区域,得到只有手势区域的RGB-D图像;将得到的RGB-D图像转化成灰度图像,然后进行去噪,通过分水岭算法进行分割,再进行裁剪及伸缩变换得到固定尺寸的手势图像,最后转化成二值图像;在步骤3中,将步骤2中手势分割产生的固定尺寸图像矩阵转化成向量,输入到训练好的DBN神经网络模型,以计算得到的最大概率值对应的手势类别作为输出结果;基于深度图像的手势识别与基于RGB-D图像的手势识别是分开并行处理的,再通过决策系统来得到最终结果,决策系统的决策函数如下:式中,B⑶=true表示基于深度图像分割后的手势识别成功,BD=flase表示识别失败;BRGB-D=true表示基于RGB-D图像分割后的手势识别成功,BRGB-D=flase表示识别失败;Gd表示基于深度图像分割后识别得到的手势类别,Grgb-d表示基于RGB-D图像分割后识别得到的手势类别。4.根据权利要求1所述的一种基于Kinect传感器的仿人机械手控制方法,其特征在于:在步骤4中,所述指令包含机械手每个关节的运动方式、运动速度、运动方向及运动角度,能够表示平移、旋转、复位、视图变化这些操作。5.根据权利要求1所述的一种基于Kinect传感器的仿人机械手控制方法,其特征在于:在步骤5中,所述远程通信基于面向连接的TCP协议来实现,服务器端与客户端是一对多的关系,客户端识别手势后转化成控制指令,每个客户端都有自己的指令缓冲池,指令发送线程按照设定的频率从缓冲池取指令并发送到服务器端,服务器端接收的指令加入到指令队列,指令读取线程会不断从指令队列中取出指令。6.根据权利要求1所述的一种基于Kinect传感器的仿人机械手控制方法,其特征在于:在步骤6中,先解析指令得到相关数据,数据包含各个手指的各个关节的角度信息,通过正运动学模型能够求出仿人机械手手指末梢在基础坐标系中的位置和姿态,这些角度及位姿信息共同称为控制参数;以手掌中心为原点、四指伸直且指向的方向为y轴正方向、与四指垂直且指向大拇指的方向为X轴正方向、垂直手掌平面且手心向上的方向为z轴正方向建立基础坐标系;大姆指指尖在基础坐标系中的坐标为:式中,将大拇指、食指、中指、无名指、小指分别编号为i=l,2,3,4,5,将手指的基关节、近基关节、中间关节、末梢关节分别编号为j=1,2,3,4;则xi,yi,Zi分别表示手指i的空间坐标,茗、G分别表示手指i的基关节角度的余弦值、正弦值,C3、分别表示手指i的近基关节与中间关节角度之和的余弦值、正弦值,Cy4、S14分别表示手指i的近基关节、中间关节与末梢关节角度之和的余弦值、正弦值,表示手指i的关节j的长度,匕表示手指i的基关节在y轴正方向上的位移,cU表示手指i的基关节在X轴正方向上的位移。7.根据权利要求1所述的一种基于Kinect传感器的仿人机械手控制方法,其特征在于:在步骤7中,通过控制参数来决定仿人机械手每个舵机转动的角度,从而实现运动控制,支持在线控制和离线控制,并且支持单手控制和双手控制;所述在线控制是通过服务器端发送指令控制各个关节的运动角度及运动速度;所述离线控制是将编写好的程序下载到单片机中,然后使机械手执行编写好的动作。

百度查询: 华南理工大学 一种基于Kinect传感器的仿人机械手控制方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。