类人机器人实时模仿人体上肢动作的优化与约束方法
技术领域
本发明是一种类人机器人实时模仿人体上肢动作的优化与约束方法,属于自动化和人机交互领域。使用该方法可以优化有限视角的人体动作捕获设备捕获的数据,消除异常值,平滑运动轨迹,实现类人机器人实时的、逼真的模仿人体上肢的各种动作。
背景技术
为了让类人机器人的动作更加生动形象,就需要其可以模仿人类的动作,尤其是实时的、逼真地动作模仿更能让机器人在人机交互中得到参与者的喜爱和关注。因此,实时动作模仿是人机交互的重要组成部分。目前主流的方法是采用人体动作捕获设备捕捉动作,将捕获的人体关节3D位置数据通过逆运动学转换成关节角度数据,再传送给机器人驱动其完成动作的模仿。
对于多摄像头的大型人体动作捕获设备,由于采用标记点进行定位和多视角补偿,所捕获的人体动作精度高,直接采用逆运动学方法没有太大问题;但是多摄像头的大型人体动作捕获设备价格高昂,操作繁琐,难以推广到人机交互实际应用中。近年来,一些有限视角的人体动作捕获设备更受青睐,这类人体动作捕获设备价格低廉,无需佩戴标志物,使用便捷,是人体动作捕获领域的发展方向。但受采集原理的限制,运动时的遮挡和复杂环境的干扰使其精度相对较低。
经过对现有技术文献的检索发现,发明专利(授权公告号:CN102622591B)是一种3D人体姿态捕捉模仿系统,包括人体动作捕捉单元、人体关节点识别和人体姿态处理单元、人体姿态显示单元。该系统在获得人体骨架后,对人体骨架进行修饰、校正,使人体姿态更加生动形象。该专利并未对骨架如何修饰和校正有进一步的描述。发明专利申请(申请公布号:CN102553250A)是一种具有动作模仿功能的智能玩具机器人,包括预装有动作信息处理软件的计算机、仿人机器人机体和设置在仿人机器人机体上的视频采集及处理单元和机器人动作控制单元,但并未对动作信息处理软件有进一步的描述。实用新型专利(授权公告号:CN203031609U)是一种可模仿人书写的机器人,包括信息输入单元、控制单元、电源单元和机械臂执行单元。信息输入单元可以将真人书写的过程转化为数字特征,可是也没有给出转化的具体方法。总结现有技术文献的情况,均是整体模仿系统或应用平台的搭建,并未对人体动作数据的优化有深入的方法设计和描述,而合理有效的数据优化对于类人机器人动作模仿的逼真度提升至关重要。
本发明提出了一种类人机器人实时模仿人体上肢动作的优化与约束方法,这种方法针对这类有限视角人体动作捕获设备异常值产生机理,对数据进行分步优化,降低了数据误差,从而可以采用较低成本的有限视角人体动作捕获设备,实现类人机器人实时动作模仿,其动作逼真程度效果接近多摄像头的大型人体动作捕获设备。
这种类人机器人实时模仿人体上肢动作的优化与约束方法不仅可以应用于类人机器人,也可推广至其他领域,例如:远程操控,包括远程手术、舞蹈教学、武术教学;体感控制,包括各类电器和屏幕的非接触控制、游戏角色动作控制;虚拟形象动作生成,包括迎宾、展览、户外广告中的演示与互动。
发明内容
本发明所要解决的技术问题是提供一种类人机器人实时模仿人体上肢动作的优化与约束方法,通过对肩关节和肘关节角度进行分步优化,用于实现类人机器人实时地、逼真地模仿人体上肢动作。
本发明采用的主要技术方案包括如下步骤:
①从捕获设备采样并转换得到上肢的关节角度,左臂和右臂各包括两个肩关节角度θSPitch和θSRoll以及两个肘关节角度θEYaw和θERoll。
②当捕获设备视线与上臂的夹角小于指定角度时,选择包括当前时刻在内的最近n次采样的肩关节角度和根据稳健回归算法分别对θSPitch和θSRoll进行动作趋势估计,计算得到当前采样时刻两个肩关节角度的估计值和
③设肩关节角度误差阈值为若或则认定肩关节角度异常,需要将的值替换为并且的值替换为并修正肘关节位置:
其中为修正后的肘关节位置,LUA为上臂长度;
否则,保持和原始值,进入步骤⑤;
④根据和逆运动学重新计算肘关节各个角度。
⑤当上臂与下臂的夹角大于指定角度时,选择包括当前时刻在内的最近n次采样的肘关节角度和根据稳健回归算法分别对θEYaw和θERoll进行动作趋势估计,计算得到当前采样时刻两个肘关节角度的估计值和
⑥设肘关节角度误差阈值为若或则认定肘关节角度异常,需要将替换为并且替换为
否则,保持和原始值。
其中,步骤②或⑤中利用稳健回归算法,得到当前采样时刻上肢各个关节角度的估计值,具体如下:
①已知y=[θ1,θ2,…,θn]T,其中θ1,θ2,…,θn为最近n个采样时刻所捕获的某关节角度时序值;
设 其中,t1,t2,…,tn为最近n个采样时刻,tn为当前采样时刻;
令W=diag(1,1,…,1)为n×n的初始权重矩阵,则:
β′=(XTWX)-1XTWy
其中,β′=(β0′,β1′)T为初始回归系数。
②更新当前的权重矩阵W,更新公式如下:
其中i=1,2,…,n,wi为权重矩阵W对角线上(i,i)位置的权重值,为残差,c为指定调节参数,s为所有残差ei的中位数,h是最小二乘法得到的中心化杠杆值。
③利用更新后的权重矩阵W重新计算回归系数β′,形成算法迭代。
④当β′收敛或达到最大迭代次数后,得到最终的回归系数计算当前该角度运动趋势的估计值公式如下:
本发明的有益效果是:
1.可以有效消除有限视角的人体动作捕获设备在数据捕获过程中产生的异常值,提高精度;
2.能够使类人机器人完成实时的、逼真的人体动作模仿;
3.算法简单,易于实现。
附图说明
图1是本发明一种类人机器人实时模仿人体上肢动作的优化与约束方法的算法流程框图。
图2是本发明一种类人机器人实时模仿人体上肢动作的优化与约束方法的上肢各个关节角度示意图。
图3是本发明一种类人机器人实时模仿人体上肢动作的优化与约束方法的捕获设备视线与上臂的夹角示意图。
图4是本发明一种类人机器人实时模仿人体上肢动作的优化与约束方法的上臂与下臂的夹角示意图。
图中:1010-被模仿对象、1020-动作获取单元、1021-有限视角的人体动作捕获设备、1022-逆运动学转换、1030-动作优化单元、1031-肩关节角度优化、1032-肘关节角度优化、1033-角度轨迹平滑、1040-安全约束单元、1050-类人机器人、2011-左臂肩关节角度θLSPitch、2012-左臂肩关节角度θLSRoll、2013-左臂肘关节角度θLEYaw、2014-左臂肘关节角度θLERoll、2021-右臂肩关节角度θRSPitch、2022-右臂肩关节角度θRSRoll、2023-右臂肘关节角度θREYaw、2024-右臂肘关节角度θRERoll、3001-捕获设备视线与左臂上臂的夹角、3002-捕获设备视线与右臂上臂的夹角、4001-左臂上臂与下臂的夹角、4002-右臂上臂与下臂的夹角。
具体实施方式
下面结合附图和实施例对本发明进一步说明,但不应以此限制本发明的保护范围。
本发明实施例中类人机器人实时模仿人体上肢动作的方法的流程框图如图1所示,包括动作获取单元1020、动作优化单元1030、安全约束单元1040,可以实现使用类人机器人1050将被模仿对象1010的上肢动作实时地、逼真地模仿出来,总体流程如下:
1、所述的动作获取单元1020中用于捕获人体动作的设备1021为微软Kinect感应器;捕获人体动作的设备1021所捕获的人体关节3D位置数据通过逆运动学转换1022生成上肢的关节角度数据,包括左臂肩关节角度θLSPitch2011和θLSRoll2012、左臂肘关节角度θLEYaw2013和θLERoll2014、右臂肩关节角度θRSPitch2021和θRSRoll2022、右臂肘关节角度θREYaw2023和θRERoll2024,传至动作优化单元1030。
2、所述的动作优化单元1030第一步进行肩关节角度优化1031,其具体步骤为:
2.1当捕获设备视线与左臂上臂的夹角3001小于指定角度15°时,选择包括当前时刻在内的最近5次获得的左肩关节角度和根据稳健回归算法分别对θSPitch和θSRoll进行动作趋势估计,计算得到当前采样时刻两个肩关节角度的估计值和
2.2设肩关节角度误差阈值为可选范围为5°~10°。若或则认定左肩关节角度异常,需要将的值替换为并且的值替换为否则保持和原始值。
2.3右肩关节角度优化步骤同理于步骤2.1至2.2。
2.4将优化后的肩关节角度值和未优化的肘关节角度值传至肘关节角度优化1032。
3、所述的动作优化单元1030第二步进行肘关节角度优化1032,其具体步骤为:
3.1若在步骤2.2中且则跳过步骤3.2。
3.2修正左肘关节位置,公式如下:
其中为修正后的左肘关节位置,LUA为上臂长度;
根据和逆运动学重新计算得到左肘关节各个角度。
3.3当左臂上臂与下臂的夹角4001大于指定角度175°时,选择包括当前时刻在内的最近5次获得的左肘关节角度和根据稳健回归算法分别对θLEYaw和θLERoll进行动作趋势估计,计算得到当前采样时刻两个肩关节角度的估计值和
3.4设肘关节角度误差阈值为可选范围为5°~10°。若或则认定左肘关节角度异常,需要将的值替换为并且的值替换为否则保持和原始值。
3.5右肘关节角度优化步骤同理于步骤3.1至3.4。
3.6将优化后的上肢各个关节角度传至角度平滑1033。
4、所述的动作优化单元1030第三步角度平滑1033使用卡尔曼滤波对优化后的上肢各个关节角度进行实时平滑,将平滑后的结果传至安全约束单元1040。
5、所述的安全约束单元1040通过约束上肢各个关节角度,避免关节角度超出机器人关节电机运行范围、避免自冲突,约束后的结果传至类人机器人1050。
6、所述的类人机器人1050使用NAO-H25类人机器人,执行由安全约束单元1040传来的上肢各个关节角度数据,完成实时人体上肢动作的模仿。
所述的步骤2.1或3.3中利用稳健回归算法,得到当前采样时刻上肢各个关节角度的估计值,具体如下:
①已知y=[θ1,θ2,…,θ5]T,其中θ1,θ2,…,θ5为最近5个采样时刻所捕获的某关节角度时序值;
设 其中,t1,t2,…,t5为最近n个采样时刻,t5为当前采样时刻;
令W=diag(1,1,…,1)为5×5的初始权重矩阵,则:
β′=(XTWX)-1XTWy
其中,β′=(β0′,β1′)T为初始回归系数;
②更新当前的权重矩阵W,更新公式如下:
其中i=1,2,…,5,wi为权重矩阵W对角线上(i,i)位置的权重值,为残差,c为指定调节参数,s为所有残差ei的中位数,h是最小二乘法得到的中心化杠杆值;
③利用更新后的权重矩阵W重新计算回归系数β′,形成算法迭代;
④当β′收敛或达到最大迭代次数后,得到最终的回归系数计算当前该角度运动趋势的估计值公式如下:
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。