基于人手运动姿态学习的仿生机械手的非接触式控制方法与流程

文档序号:12736992阅读:498来源:国知局
基于人手运动姿态学习的仿生机械手的非接触式控制方法与流程

本发明属于智能控制领域,涉及一种以RGB-D图像为输入信号,通过学习人手运动姿态控制五指仿生机械手的非接触式控制方法。



背景技术:

随着机器人应用范围的不断扩大,机器人在工业控制、虚拟装配等领域发挥越来越大的作用,同时机器人作业的场景和任务也越来越复杂。机器人的机械手是其完成各种任务的主要装置和工具,简单的夹持装置及二指机械手已经无法满足这些应用需求,机械手逐渐向多手指、多关节和多自由度的机械灵巧手发展。目前的五指仿生机械灵巧手虽然在外形上与人手越来越接近,但是实际功能和操作的灵活性与人手仍然相差甚远。其控制方法通常按照特定抓取目标,由操作人员通过计算机或其他控制设备直接向五指仿生机械手发送动作指令,根据固定程序重复预先设计好的指定动作而已,并不具有灵活人手与机械手的人机协同能力,也无法学习人类真实人手的动作。如何让机器人的灵巧手以自然的方式学习人手的各种动作是目前仿生机器人中的一个重要研究问题。

为了学习真实人手的动作,机器人首先需要对人手运动的姿态进行估计,然后将人手的动作映射并转化为其自身的动作指令。目前人手的运动信息主要可以通过两种方式获取,即:接触式数据手套和非接触式传感器。第一种方式通过佩戴数据手套的方式采集操作人员的手势信息,这种方式下操作人员佩戴设备,配置成本高、在实际应用场景中有较大的局限性。例如,在抓取过程中操作人员需要全程佩戴手套,操作非常不方便。第二种方式通过体感设备和摄像机组采集人手的运动信息,再通过计算机视觉的方法对人手各个关节的参数进行求解。操作人员以自然的方式对机器人仿生手进行非接触的控制,系统设 置方便且用户体验感更好。

现有的非接触式控制方法可以分为基于手势识别和基于手部关节跟踪两种类型。基于手势识别的方法通过预先设定固定的手势种类,将操作人员的手势与数据库中数据进行匹配,从而操控机械手完成对应类别的动作。其机械手的动作仍然是按照固定程序设定,并没有学习模仿的能力。基于手部关节位姿的方法对操作人员的关节点进行跟踪,并将该参数作为控制机械手的输入参数,从而控制机械手模仿并学习人类的手部动作。已有的非接触式控制方法主要针对简单的二指或三指机械手,其使用的机械手自由度较低,因此针对这类机械手的非接触式控制只需要对手部的部分关节进行跟踪,从而只能学习人手的部分动作。但是,这些数据并不能适用于自由度较高的五指灵巧手,实现五指灵巧手的非接触式控制需要对人手的所有关节的位姿进行估计和跟踪。由于人手的高自由度(26个)和灵活性,基于人手运动姿态学习的五指仿生机械手的控制仍然存在一定的难度。



技术实现要素:

针对现有仿生机械手的非接触控制方式的局限性,本发明的目的在于提供一种五指仿生机械手的控制方法。通过对控制人员手部所有关节点的运动姿态进行跟踪,学习人手的运动姿态并将其映射为机械手的动作姿态,使控制人员以自然的方式对五指机械手进行控制。避免了配戴数据手套等穿戴设备的局限性,解决了现有基于传感器的控制方法只能获取手部部分关节的位姿,无法适用于高自由度的仿生灵巧手的不足。

本发明的技术方案:

基于人手运动姿态学习的仿生机械手的非接触式控制方法,步骤如下:

(1)基本概念

RGB-D图像:通过RGB-D相机采集,由RGB图像和深度图像(Depth Image)两部分组成。其中,RGB图像的每个像素值表示图像的颜色信息,而深度图像的每个像素值表示传感器距离物体的实际距离。通常RGB图像和深度图像是配准的,即:RGB图像和深度图像的每个像素之间存在一一对应的关系。

手部关节模型:根据解剖学中的人体手部骨骼结构和运动学约束条件可以定义手部关节模型,该模型用于建立三维手部模型。

手部关节模型包括5根掌骨(Metacarpal)、5根近端指骨(Proximal phalanx)、4根中间指骨(Middle phalanx)及5根远端指骨(Distal phalanx)。手腕关节点为世界坐标系原点,具有6个自由度,包括全局旋转(3个自由度)和全局平移(3个自由度)。手部模型包含四种关节点,即MCP关节点、PIP关节点、DIP关节点和IP关节点。其中,掌骨和近端指骨的连接点为MCP关节点,近端指骨与中间指骨的连接点为PIP关节点,中间指骨与远端指骨的连接点为DIP关节点。大拇指没有中间指骨,其远端指骨与近端指骨之间的连接点为IP关节点。每个MCP关节点具有左右伸展(adduction and abduction,aa)、前后摆动(flexion and extension,fe)2个自由度。PIP、DIP、IP这三种关节点仅有前后摆动1个自由度。

二维手部模型:将采集到的手部深度图像进行四叉树分解,根据深度值的相似度将手部深度图像划分成多个图像块,对于每个图像块采用二维混合高斯模型进行建模,即可得到二维手部模型,记为符号CI

三维手部模型:使用各向同性的混合高斯模型对手部进行三维建模,记为符号CH

投影模型:将当前位姿状态下的三维手部模型投影到图像上,可以获得对应的投影模型,使用符号Cp表示。

(2)本发明的技术原理

通过对RGB-D图像中人手的所有关节进行跟踪、获取其位姿参数,并将所有参数转换为机械手的动作指令,从而实现两者的同步。下面将对技术方案原理进行详细的介绍,首先介绍自适应三维手部建模、三维手部关节跟踪,然后介绍人手位姿和机械灵巧手动作姿态之间的映射算法。

1)自适应手部建模

手部骨骼长度的比例系数包括手部长度Lhand、手部宽度Whand、各手掌骨之间长度的比例及夹角、手指长度及手指各骨骼长度的比例;

(a)手部长度和手部宽度:定义采集到的深度图像中手部长度和手部宽度所占的像素个数m和n,进一步计算得到手部的平均深度davg;根据投影比例得到实际手部长度Lhand和手部宽度Whand

其中:f表示以像素为单位的焦距大小,获取粗略的手部的长宽后,在粗略值的0.9~1.1倍范围内寻找准确值。

(b)各手掌骨长度的比值及夹角:对手部相同名称的骨骼按照从小拇指到大拇指的顺序,分别编号为1~5,即MC1~MC5;以中指掌骨为参考位置,其他4根掌骨与中指掌骨的夹角分别表示为θ1~θ4

中指掌骨MC3与其他掌骨的长度的比值范围为:

五根掌骨之间的夹角范围为:

(c)按照从小拇指到大拇指的顺序分别定义各个手指长度为L1~L5,且长度分别为其对应手指骨骼长度之和,即:

根据上述定义,使用如下三种比例关系描述一个手部各个关节的位置关系:

中指长度L3与中间掌骨MC3的长度比值:

中指长度与其他手指的长度比值:

每个手指的近端指骨PP分别与指骨MP及远端指骨DP的比值范围如下:

2)三维手部跟踪

首先,从采集的RGB-D图像中将手部分割出来,然后进行掌心、手腕、指尖的检测;其次,对分割得到的手部进行二维建模,分为两个步骤:四叉树分解和图像混合高斯建模;然后,根据RGB-D图像建立自适应的三维手部模型;最后,通过将三维手部模型的投影模型与手部二维建模进行匹配,计算模型相似度匹配项Esim,结合肤色惩罚项Ecol_sim和帧间连续性惩罚项Efr_sim,通过求解目标函数得到手部的位姿,最终的归一化目标函数如下:

ε(Θ)=EsimfrEfr_simcolEcol_sim (8)

其中,ωfr为帧间连续性惩罚项Efr_sim的权值,ωcol为肤色惩罚项Ecol_sim的权值;

3)映射算法

对于手部关节模型中的MCP、PIP、DIP关节,分别对其前后摆动、左右伸展的角度进行约束。其中,MCP、PIP、DIP三种关节都具有前后摆动的能力,但是只有MCP关节能够进行左右伸展。

(a)记MCP、PIP和DIP三种关节前后摆动的角度参数分别为θmcp_fe、θpip和θdip,静态约束如下:

(b)记MCP关节的左右伸展角度为θmcp_aa,静态约束为:

在公式(10)中从上至下k={1,2,3,4,5},分别对应小拇指、无名指、中指、食指、大拇指,θmcp_aa值的正负以中指作为参考。

本发明中使用的是五指仿生机械手模型,其中,大拇指、食指和中指分别有两个自由度,中指和小指各有一个自由度,均具有手指并拢和张开;所有关节的动作由9个参数控制,即大拇指正屈(Thumb_Flexion)、大拇指两侧侧摆(Thumb_Opposition)、食指近关节和远关节正屈(Index_Finger_Distal)、食指基关节正屈(Index_Finger_Proximal)、中指基关节正屈(Middle_Finger_Proximal)、中指近关节和远关节正屈(Middle_Finger_Distal)、无名指基关节正屈(Ring_Finger)、小指基关节正屈(Pinky)、五指张开(Finger_Spead),这些参数的范围为:

记人手动作的参数为Θ={(θmcp_fe)k,(θmcp_aa)k,(θpip)k,(θdip)k}k={1,2,3,4,5},机械手的控制参数为Θ′,则定义如下的映射函数:

(3)技术方案,步骤如下:

S1.采集RGB-D图像,并对深度图像进行预处理和特征提取,包括手部分割、指尖与手腕检测以及掌心提取,具体步骤如下:

S1.1.用z表示16位深度图像中某点的深度值,zmin表示16位深度图像中像素值大于0的最小值,则根据zmin所在的像素坐标,即获取手部在图像中的位置;限定深度在[zmin,zmin+200]范围内的图像区域为手部区域;通过公式(13)获取二值化的手部区域:

S1.2.在二值化的手部图像上进行手部轮廓提取,进一步获取掌心、指尖及 手腕的位置;掌心的位置为手部轮廓的最大内切圆圆心,再采用二维凸包算法中的Graham扫描法检测指尖与手腕位置,以二维凸包算法获取指尖与手腕的位置作为手部先验信息,计算手部各个关节长度。

S2.根据手部深度图像建立二维手部模型

S2.1.基于深度相似性的四叉树分解算法:首先,判定二值化的手部图像长宽是否为2的次幂,若不满足该条件则进行插值;其次,对二值化的手部图像进行递归式的分解,即将二值化的手部图像平均分为四个子块,分别判断各子块的最大与最小深度的差值是否小于12mm,若满足则停止对该子块分解,若不满足则继续将该子块均分成四个子块,并判断各子块是否满足阈值条件(14)

dmax-dmin≤12mm (14)

其中,dmax和dmin分别表示当前被分解的二值化的手部图像中子块深度的最大值与最小值;

S2.2.建立二维手部模型

步骤S2.1分解得到的第i个图像子块,构建二维高斯函数Gi,对其进行拟合,即子块i的中心位置对应于二维高斯函数的中心点,且二维高斯函数的标准差令二维手部模型中的所有高斯函数具有相同的权值1,则用公式(15)表示二维手部模型:

其中,CI(p)表示二维手部模型,n表示图像模型中高斯函数的个数,p表示图像中像素点的二维坐标位置,Gi表示模型中的第i个二维高斯函数,μi表示第i个高斯函数中心点的位置,σi表示高斯函数的标准差,di表示高斯函数对应深度图像块的平均深度值。

S2.3.使用三维混合高斯模型对手部进行建模,其定义如下:

其中,CH(q)为手部的三维混合高斯模型,m表示模型中的高斯函数个数,q表示深度图像中像素点的三维坐标位置,Gj表示模型中的第j个高斯函数,ωj表示第j个高斯函数的权值,μH和σH分别表示高斯函数的均值向量和协方差矩阵。

S3.求解公式(8)中的目标函数,具体的步骤如下:

S3.1.初始化人手的参数向量,包括手部长度Lhand、手部宽度Whand、手掌骨(MC1~MC5)长度的比值、4根掌骨与中指掌骨MC3的夹角(θ1~θ4)、中指长度L3和其他手指长度的比值、中指长度L3和中间掌骨MC3长度的比值、每个手指的近端指骨PP分别与指骨MP及远端指骨DP的比值、手部位姿参数Θ;

S3.2.计算投影模型

假设三维手部模型中的一个三维高斯函数为GH(q;μHH),μH和σH分别为其齐次均值向量与标准差,且μH=[μxyz,1];假设三维手部模型的正交投影的二维高斯函数为GP(q′;μPP),μP和σP分别为其齐次均值向量与标准差;在已知深度相机的内参数矩阵K和焦距f的情况下,两者之间的投影关系为:

其中,I为3×3的单位矩阵,O代表3×1的零向量,μz代表高斯函数中心位置的深度值;根据公式(17),分别对三维手部模型中所有的高斯函数进行投影,得到其对应的二维投影模型为:

其中,CP表示二维投影模型,m表示高斯函数个数,Gj表示投影模型中的第j个高斯函数,q′表示三维手部模型中像素点的三维坐标q投影到二维图像时对应的二维坐标,ωj表示投影高斯函数的权值,分别表示投影高斯函数的均值 向量与标准差。dj表示投影高斯函数的平均深度值,即三维高斯函数前表面的深度值,通过将高斯函数中心位置的深度值减去其半径获得。

S3.3.计算二维手部模型和三维手部模型的投影模型之间相似性

二维手部模型CI与投影模型CP都是二维混合高斯模型,通过对两者中的所有高斯函数进行匹配,定义两者之间的相似性度量函数如下:

其中,CI与CP分别表示二维手部模型与投影模型,i和j表示相应模型中二维高斯函数的序号,Dij表示CI与CP中两个高斯函数的积分表达式:

其中,μi和σi分别为二维手部模型中第i个二维高斯函数的均值与标准差,μj和σj分别为手部投影模型中第j个高斯函数的均值与标准差。

S3.4.计算帧间连续性

利用前两帧的手部位姿参数与当前帧的位姿参数的平滑程度来衡量当前帧位姿参数的合理性,具体公式如下:

其中,Θ表示手部位姿参数向量,按照顺序包括全局位移3个维度、全局角度3个维度、关节角度14个维度,共20个维度。θj表示Θ的第j项,t表示当前帧的序号。

S3.5.计算肤色相似性

肤色模型建立惩罚项,在不增加跟踪系统复杂度的基础上提高算法鲁棒性,具体公式如下:

其中,CP代表投影模型,j表示CP中的高斯函数索引,Sj为肤色判断公式,如果该高斯函数所在区域的颜色为肤色则其值为0,否则为1。

S3.6.通过求解公式(8)得到手部的位姿参数Θ。

S4.将步骤3求解得到的参数作为输入传送至灵巧手控制系统,根据公式(12)计算五指仿生机械手各个关节的参数,并在控制系统下生成对应的动作指令,使五指仿生机械手完成和控制人员同样的动作。

优选方案:采用Kinect作为RGB-D图像的采集设备,将采集的图像通过USB接口传输至计算机。

优选方案:采用雄克SVH五指仿生手作为五指仿生机械手模型。

本发明的有益效果:本发明利用单幅人手的深度图像即可实现自适应的三维手部建模,并通过三维手部模型对RGB-D图像序列中人手的所有关节点进行跟踪,根据人手的关节点和五指仿生机械手的关节点之间的映射关系,实现五指仿生机械手的非接触式控制,该方法突破了固定程序式控制方法的局限性,易于控制人员对五指仿生机械手进行智能化的控制。

附图说明

图1是本发明方法的手部关节模型。图中的矩形为手腕的位置,黑色圆形为MCP关节点,灰色圆形为PIP关节点,白色圆形为DIP关节点,三角形为IP关节点。手腕和MCP关节点之间为掌骨,MCP关节点和PIP关节点之间为近端指骨,PIP关节点和DIP关节点之间为中间指骨,DIP关节点和指尖之间为远端指骨。序号1到5分别对应于小拇指、无名指、中指、食指和大拇指。

图2是本发明方法的二维手部模型。图2(a)是对二值化手部图像进行四叉树分解的结果;图2(b)在四叉树分解的基础上进行二维手部建模的结果。

图3是本发明方法的三维手部模型。图3是手部在自然张开状态下的三维手部模型,图中每个手指关节点对应1个三维高斯函数,指尖与关节点之间、关节点与关节点之间各对应1个三维高斯函数。大拇指使用3个三维高斯函数表示,手掌使用4个三维高斯函数均匀填充。

图4是本发明方法的手部掌心的检测图示。图中的圆形为检测得到的最大内切圆,其圆心即为手部的掌心。

图5是本发明方法的手部指尖与手腕的检测图示。图中的圆圈中心点分别根据凸包算法检测得到的手部轮廓凸包,其中包括指尖与手腕。

图6是本发明方法的流程图。

图7是本发明方法的三维手部关节跟踪算法流程图。

具体实施方式

下面将结合技术方案和附图中的流程图(图6和图7)详细叙述本发明的具体实施方式。

实施例:

采用Kinect2.0作为采集设备获取RGB-D图像,将采集的图像通过USB接口传送至计算机。所采用的机械手为雄克SVH五指仿生机械手。

步骤1,获取RGB-D图像,其中彩色图像为C,深度图像为D。

步骤2,初始化参数。帧序号frame=1、手部比例参数(手部长度Lhand、宽度手部姿态参数(θmcp_fepipmcp_aa)k,其中k={1,2,3,4,5}分别对应小拇指到大拇指五个手指。

步骤3,如果frame=1,则执行步骤4,否则执行步骤5。

步骤4,检测手部区域I并建立二维手部模型CI和三维模型CH,包括如下几个步骤:

步骤4.1,根据公式(13)获得二值化的手部区域图像I;

步骤4.2,采用Sobel算子从图像I中提取手部轮廓,计算最大内切圆圆心的位置获得掌心O,并采用凸包算法中的Graham扫描法检测指尖与手腕的位置(如图4);

步骤4.3,如果I的长宽为2的次幂,则执行步骤4.4,否则进行插值;

步骤4.4,将I按照长宽的一半均分为四个子块,然后分别判断各个子块的最大与最小深度的差值是否小于12mm,若满足该条件则停止对该子块的分解,否则,继续将该子块划分为四个部分(如图2(a));

步骤4.5,根据手部区域中的每个方形区域,构建一个高斯函数(如图2(b))。其中,图像块的平均深度值对应于高斯函数的平均值。根据公式(18)计算整个手部的二维模型。

步骤4.6,使用PSO算法迭代更新手部比例参数和手部姿态参数。

步骤5,根据前一帧的位姿参数设置帧间跟踪搜索范围,并使用改进ASPO算法求解参数,具体过程如下:

步骤5.1,设置粒子数目M和迭代次数N,使用类随机采样方法初始化粒子群中粒子的速度和位置参数,设置初始化历史最优解pi,并计算全局最优解gbest

步骤5.2,判断当前粒子群所处于的阶段并更新参数;

步骤5.3,根据参数更新粒子群中粒子的速度和位置;

步骤5.4,判断粒子的速度和位置是否在合理的范围内,若在该范围内,则更新粒子个体历史最优解与全局最优解,否则修正粒子的速度和位置的范围以后再更新粒子个体历史最优解pi与全局最优解gbest,迭代次数加1;

步骤5.5,如果迭代次数大于N或适应度大于阈值,则返回参数值Θ。否则执行步骤5.2。

步骤6,将前一帧的姿态参数更新为步骤5.5返回的参数Θ,frame=frame+1。

步骤7,计算五指仿生机械手臂的位姿参数Θ′,并输入机械手控制系统,使机械手完成指令的动作。

步骤8,重复以上过程直到终止系统。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1