机器人控制方法、机器人控制系统及机器人与流程



1.本发明涉及人工智能及机器人领域,更具体地涉及一种机器人控制方法、机器人控制系统及机器人。


背景技术:



2.随着人工智能及机器人技术在民用和商用领域的广泛应用,基于人工智能及机器人技术的机器人在智能交通、智能家居等领域起到日益重要的作用,也面临着更高的要求。
3.当前对机器人,特别是双轮式机器人(其左右轮腿部均为单轮腿式构型)进行运动控制时,通常仅涉及对该机器人轮腿部在沿该机器人的前进方向上的运动过程(前向运动过程)的控制,例如控制其处于目标位置或目标速度,然而,并不涉及对该机器人轮腿部在与该前向运动相垂直的横向方向上的运动过程(横向运动过程)的控制,这种轮腿部仅在单向运动方向上的控制使得该轮腿部的横向运动自由度不足,无法对该机器人在横向方向上的运动进行灵活控制,当该机器人需要在横向方向上进行左右摆动运动(左右轮腿部交替沿横向方向抬离地面)时,也无法仅经由左右轮腿部中的单个腿部在摆动运动过程中对该机器人进行稳定支撑。
4.因此,需要一种在实现机器人运动控制,特别是机器人实时且灵活的运动控制的前提下,对机器人轮腿部在横向方向上的运动过程(横向运动)进行控制,且令该轮腿部的横向运动控制过程相对于该轮腿部的前向运动控制过程独立的方法,且该方法具有良好的精确度、稳定性,及较高的鲁棒性。


技术实现要素:



5.针对以上问题,本公开提供了一种机器人控制方法、机器人控制系统及机器人。利用本公开提供的机器人控制方法可以在实现机器人运动控制,特别是机器人实时且灵活的运动控制的前提下,增加对该机器人轮腿部的在横向方向上的运动过程(横向运动)的控制,且令该轮腿部的横向运动相对于该轮腿部的前向运动控制过程独立。且该方法具有良好的精确度、稳定性,及较高的鲁棒性。
6.根据本公开的一方面,提出了一种机器人控制方法,所述机器人包括轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节,所述方法包括:在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得所述机器人处于目标前向运动位置及目标前向运动速度;在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得在所述机器人运动过程中,经由所述左轮腿部和所述右轮腿部中的一个实现该机器人的稳定支撑,且控制所述左轮腿部和所述右轮腿部中的另一个升高至目标高度。
7.在一些实施例中,所述左轮腿部及所述右轮腿部均为单轮腿式构型。
8.在一些实施例中,所述方法包括:获取所述机器人的当前关节运动信息、当前前向
运动信息、当前横向运动状态、当前横向运动信息;获取所述机器人的目标前向运动信息及目标横向运动信息;基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度;基于所述当前前向运动信息及目标前向运动信息,确定轮腿部目标前向运动加速度;基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度;以及基于所确定的所述机器人各关节的目标关节加速度,对所述机器人进行运动控制。
9.在一些实施例中,所述当前关节运动信息包括所述机器人各关节的关节当前角度及关节当前角速度;所述当前横向运动信息包括机器人的左轮腿部的当前长度、左轮腿部沿左轮腿部长度方向的当前速度、右轮腿部的当前长度、右轮腿部沿右轮腿部长度方向的当前速度、机器人轮腿部的当前滚转角;所述目标横向运动信息包括机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角;所述当前横向运动状态包括:左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个;所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分;所述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。
10.在一些实施例中,基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度包括:基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态;基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束;基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。
11.在一些实施例中,基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度,包括:基于所述轮腿部目标横向运动加速度、所述轮腿部目标前向运动加速度生成所述机器人的目标运动加速度;基于所述当前横向运动信息、当前前向运动信息、当前关节运动信息,生成所述机器人的目标运动加速度估计量;利用关节控制约束函数,根据所述机器人的目标运动加速度、所述机器人的目标运动加速度估计量,确定所述机器人的目标关节加速度,其中所述关节控制约束函数用于表征机器人运动信息和关节运动信息之间的约束关系。
12.在一些实施例中,所述机器人的目标运动加速度估计量是所述机器人的关节加速度的函数;其中,利用所述关节控制约束函数,根据所述机器人的目标运动加速度、所述机器人的目标运动加速度估计量,确定所述机器人的目标关节加速度,包括:基于所述机器人的目标运动加速度、所述机器人的目标运动加速度估计量生成误差函数,所述误差函数的值与所述机器人的关节加速度相关;基于所述误差函数及关节控制约束函数,将满足所述关节控制约束函数且使得所述误差函数取得最小值的关节加速度确定为目标关节加速度。
13.在一些实施例中,所述目标横向运动控制函数包括:对应于所述左轮腿部支撑状态的左轮腿部支撑约束函数,对应于所述右轮腿部支撑状态的右轮腿部支撑约束函数,对应于所述左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态的支撑状态切换函数中的一个。
14.在一些实施例中,所述关节控制约束函数包括:关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数。
15.在一些实施例中,基于所述误差函数及关节控制约束函数,将满足所述关节控制约束函数且使得所述误差函数取得最小值的关节加速度确定为目标关节加速度包括:在所述关节等式约束子函数的零空间中求解所述关节等式约束子函数,得到所述关节等式约束子函数的通解量;基于所述通解量与所述误差函数、关节不等式约束子函数、关节阈值约束子函数,将满足所述关节不等式约束子函数、关节阈值约束子函数且使得所述误差函数取得最小值的通解量确定为目标通解量;基于所述目标通解量,生成所述目标关节加速度。
16.在一些实施例中,所述左轮腿部及右轮腿部中的每一个包括轮部及连接至该轮部的中心轴且用于实现对该轮部的运动控制的两个并联腿部,则所述关节等式约束子函数包括:
[0017][0018]
其中,为该机器人在目标时刻下的关节加速度,为该机器人的当前关节速度,f
c,t+1
为目标时刻下该机器人在局部坐标系下接触点的广义力,f
λ,t+1
为目标时刻下该两个并联腿部之间的作用力,τ
t+1
为目标时刻下该机器人的关节力矩,j
c,t
,j
λ,t
是在当前时刻下分别对应于机器人在局部坐标系下接触点的广义力fc与两个并联腿部之间的作用力f
λ
的雅克比矩阵,其根据该机器人的当前关节运动信息、当前横向运动信息及当前前向运动信息生成;c
t
,g
t
,m
t
为基于该机器人的当前关节运动信息生成的参数量;s为基于该机器人的关节构型确定的参数量,i为单位矩阵,其维数根据该机器人的运动自由度的个数确定,t为机器人运动的当前时刻,t+1为机器人运动的目标时刻;所述关节不等式约束子函数包括:
[0019][0020]
其中,j
f,l
为对应于该机器人的左轮接触点的摩擦约束矩阵,j
f,r
为对应于该机器人的右轮接触点的摩擦约束矩阵;所述关节阈值约束子函数包括:
[0021]
τ
t+1
∈[τ
min

max
]
[0022]
其中,τ
min
为该机器人的关节力矩的下限阈值,τ
max
为该机器人的关节力矩的上限阈值。
[0023]
根据本公开的另一方面,提出了一种机器人控制系统,所述机器人包括轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节,所述系统包括:当前运动信息获取模块,其被配置为获取所述机器人的当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息;目标运动信息获取模块,其被配置为获取所述机器人的目标前向运动信息及目标横向运动信息;横向运动加速度确定模块,其被配置为基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度;前向运动加速度确定模块,其被配置为基于所述
当前前向运动信息及目标前向运动信息,确定轮腿部目标前向运动加速度;目标关节加速度确定模块,其被配置为基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度;以及运动控制模块,其被配置为基于所确定的所述机器人各关节的目标关节加速度,对所述机器人进行运动控制。
[0024]
在一些实施例中,所述当前关节运动信息包括所述机器人各关节的关节当前角度及关节当前角速度;所述当前横向运动信息包括机器人的左轮腿部的当前长度、左轮腿部沿左轮腿部长度方向的当前速度、右轮腿部的当前长度、右轮腿部沿右轮腿部长度方向的当前速度、机器人轮腿部的当前滚转角;所述目标横向运动信息包括机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角;所述当前横向运动状态包括:左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个;所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分;所述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。
[0025]
在一些实施例中,所述横向运动加速度确定模块包括:目标横向运动状态确定模块,其被配置为基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态;目标横向运动控制函数确定模块,其被配置为基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束;目标横向运动加速度生成模块,其被配置为基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。
[0026]
根据本公开的另一方面,提出了一种机器人,所述机器人包括:轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节;控制器,所述控制器设置在所述机器人上,且能够执行如前所述的机器人控制方法。
[0027]
利用本发明提供的机器人控制方法、系统及机器人,可以良好实现机器人的运动控制,特别地,其能够对该机器人在横向方向上的运动过程进行控制,且能够实现对该轮腿部的横向运动过程与前向运动过程的独立控制。
附图说明
[0028]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在没有做出创造性劳动的前提下,还可以根据这些附图获得其他的附图。以下附图并未刻意按实际尺寸等比例缩放绘制,重点在于示出本发明的主旨。
[0029]
图1示出了根据本公开实施例的具有单轮腿式构型的左轮腿部及右轮腿部的示意图;
[0030]
图2示出了根据本公开实施例的机器人控制方法100的示例性流程图;
[0031]
图3示出了根据本公开实施例的轮腿部的结构示意图;
[0032]
图4示出了根据本公开实施例确定该轮腿部目标横向运动加速度的过程s103的示例性流程图;
[0033]
图5示出了根据本公开实施例确定该机器人目标横向运动状态s1031的示例性流程图;
[0034]
图6a示出了根据本公开实施例的横向摆动任务的系统能量数值仿真曲线;
[0035]
图6b示出了根据本公开实施例的不同任务条件下的机器人在横向运动平面上的质心运动轨迹图;
[0036]
图7示出了根据本公开实施例的设置有基座部的机器人的示意图;
[0037]
图8a示出了根据本公开实施例确定该机器人各关节的目标关节加速度的过程s105的示例性流程图;
[0038]
图8b示出了根据本公开的实施例确定该机器人的目标关节加速度的过程s1053的示例性流程图;
[0039]
图9示出了根据本公开实施例基于零空间分层优化的方式确定该目标关节加速度的过程s1053-2的示例性流程图;
[0040]
图10a示出了根据本公开实施例的双轮式机器人控制流程图;
[0041]
图10b示出了根据本公开实施例的双轮式机器人的示意图;
[0042]
图11示出了根据本公开实施例的机器人控制系统300的示例性框图;
[0043]
图12示出了根据本公开实施例的机器人200的示例性框图。
具体实施方式
[0044]
下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显而易见地,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。基于本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,也属于本发明保护的范围。
[0045]
如本技术和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0046]
虽然本技术对根据本技术的实施例的系统中的某些模块做出了各种引用,然而,任何数量的不同模块可以被使用并运行在用户终端和/或服务器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。
[0047]
本技术中使用了流程图用来说明根据本技术的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
[0048]
人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0049]
本技术涉及一种人工智能在机器人控制方面的应用,具体地,本技术提出了一种
基于人工智能的机器人控制方法,该控制方法增加了对机器人轮腿部横向运动方向上的运动过程的控制,且在综合考虑该机器人的动力学方程及接触约束方程的基础上,使得能够独立控制该机器人轮腿部的前向运动控制过程与机器人轮腿部的横向运动过程,并基于该机器人轮腿部在前向及横向方向上的运动加速度来综合确定该机器人各个关节的关节加速度,从而实现对该机器人的运动控制。
[0050]
当前对机器人,特别是双轮式机器人(其左右轮腿部均为单轮腿式构型)进行运动控制时,通常仅涉及对该机器人轮腿部在沿该机器人的前进方向上的运动过程(前向运动过程)的控制,例如控制其处于目标位置或目标速度,然而,并不涉及对该机器人轮腿部在与该前向运动相垂直的横向方向上的运动过程(横向运动过程)的控制,这种轮腿部仅在单向运动方向上的控制使得该轮腿部的横向运动自由度不足,无法对该机器人在横向方向上的运动进行灵活控制,当该机器人需要在横向方向上进行左右摆动运动(左右轮腿部交替沿横向方向抬离地面)时,也无法仅经由左右轮腿部中的单个腿部在摆动运动过程中对该机器人进行稳定支撑。
[0051]
因此,需要一种在实现机器人运动控制,特别是机器人实时且灵活的运动控制的前提下,对机器人轮腿部在横向方向上的运动过程(横向运动)进行控制,且令该轮腿部的横向运动控制过程相对于该轮腿部的前向运动控制过程独立的方法,且该方法具有良好的精确度、稳定性,及较高的鲁棒性。
[0052]
基于上述,本技术中提出了一种机器人控制方法。本技术所述的机器人为能够实现自主运动控制的机器人,所述机器人包括轮腿部,所述轮腿部是指该机器人用于实现运动的轮式部件。所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节。
[0053]
例如,该左轮腿部与该右轮腿部中的每一个例如包括轮部及连接至该轮部的中心轴且用于实现对该轮部的运动控制的腿部。该轮部例如可以为单轮、两轮、四轮或其他个数的轮部构型,且每一个轮部例如可以通过并联的两个的腿部或串联的多个腿部进行控制。应了解,本公开的实施例不受该左、右轮腿部的具体组成类型及其轮部数量的限制。
[0054]
例如,该左轮腿部与该右轮腿部例如可以包括相同的关节个数且具有相同的关节构型,或者,根据实际需要,该左轮腿部和该右轮腿部例如可以具有不同的关节个数且具有不同的关节构型。本公开的实施例不受该左轮腿部与该右轮腿部所具有的具体关节个数及关节构型的限制。
[0055]
应了解,根据实际需要,该机器人例如还可以包括连接至该轮腿部的基座部、设置在该基座部上的附加部件。其中,所述基座部是指该机器人的主体部分,例如可以为该机器人的躯干部,该基座部例如可以为连接至该机器人的轮腿部的平面板状部件,且所述基座部例如经由支架连接至轮腿部。然而,应了解,上述仅给出一种机器人的结构示例,本公开的实施例不受该机器人的具体组成部件及其连接方式的限制。
[0056]
且所述方法包括:在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得所述机器人处于目标前向运动位置及目标前向运动速度。例如,在该机器人的运动过程中,例如可以通过控制该左轮腿部及右轮腿部的关节角度及速度,使得该机器人在该前向运动方向上处于目标运动状态(具有目标前向运动位置及目标前向运动速度)。
[0057]
且所述方法还包括:在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得在所述机器人运动过程中,经由所述左轮腿部和所述右轮腿部中的一个实现该机器人的稳定支撑,且控制所述左轮腿部和所述右轮腿部中的另一个升高至目标高度。
[0058]
基于上述,本技术中,通过对机器人轮腿部在横向方向上的运动过程(横向运动)进行控制,使得在实现对机器人轮腿部前向运动的良好控制的基础上,同时兼顾了该机器人轮腿部在横向方向上的运动控制,增加了该机器人的横向运动自由度,实现对该机器人灵活且实时的控制。同时使得能够经由该横向运动控制,使得机器人,特别是双轮式机器人经由左轮腿部或右轮腿部中的一个仅能够实现该机器人的稳定支撑,且还能够根据实际需要控制该机器人左轮腿部和所述右轮腿部中的另一个抬离地面预设高度,从而实现障碍躲避或其他特定任务需求。
[0059]
在一些实施例中,所述左轮腿部及所述右轮腿部均为单轮腿式构型。所述单轮腿式构型是指该轮腿部仅包括单个轮部。图1示出了根据本公开实施例的具有单轮腿式构型的左轮腿部及右轮腿部的示意图。接下来将结合图1对该单轮腿式构型进行更具体地描述。
[0060]
参照图1,其中例如示出了具有并联腿部及单轮腿式构型的机器人200a。且所述机器人200a的轮腿部210a包括左轮腿部211a和右轮腿部212a,所述左轮腿部211a及右轮腿部212a中的每一个包括轮部及连接至该轮部的中心轴且用于实现对该轮部的运动控制的两个并联腿部。例如,该左轮腿部211a例如包括左轮部2110a,以及并联的第一左腿部2111a及第二左腿部2112a;且该右轮腿部212a例如包括右轮部2120a,以及并联的第一右腿部2121a及第二右腿部2122a。
[0061]
基于上述,本技术中,通过设置所述左轮腿部及所述右轮腿部均为单轮腿式构型,使得能够在双轮式机器人(其中仅包括两个轮部,对应于左右轮腿部均为单腿式构型)的运动过程中,增加对机器人轮腿部在横向方向上的运动过程(横向运动)的控制,一方面,增加了该机器人的横向运动自由度,使得该机器人能够经由不同的横向姿态位置实现多种任务功能,例如能够经由左轮腿部或右轮腿部中的一个实现该机器人的稳定支撑,同时根据实际需要控制该机器人左轮腿部和所述右轮腿部中的另一个抬离地面预设高度,从而实现障碍躲避或其他特定任务需求。另一方面,能够独立实现对机器人横向及前向运动的控制,增加了机器人控制的灵活度及可靠性,提高了该机器人的控制精度。
[0062]
图2示出了根据本公开实施例的机器人控制方法100的示例性流程图。接下来将结合图2对该机器人控制方法进行更具体地描述。
[0063]
参照图2,首先,在步骤s101中,获取所述机器人的当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息。
[0064]
所述当前关节运动信息是表征该机器人各个关节在当前时刻下的运动状态的信息。例如,该当前关节运动信息可以包括该机器人各关节的关节当前角度及关节当前角速度,或者,根据实际需要,还可以包括各关节的其他运动信息。本公开的实施例不受该当前关节运动信息的具体组成的限制。
[0065]
所述当前横向运动状态是表征该机器人在当前时刻下在横向运动方向上所处的横向运动状态。该当前横向运动状态例如可以包括左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个。或者,根
据实际需要,还可以包括各关节的其他运动信息。本公开的实施例不受该当前横向运动状态的具体组成的限制。
[0066]
所述当前横向运动信息是表征该机器人当前在横向方向上的运动状态及自平衡状态的信息。例如,该当前横向运动信息例如可以包括该机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角中的一个或多个,或者,根据实际需要,还可以包括其他运动参数信息。本公开的实施例不受该当前横向运动状态的具体组成的限制。
[0067]
所述当前前向运动信息是表征该机器人当前在前向方向上的运动状态及自平衡状态的信息。例如,当前前向运动信息例如可以包括轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分,或者也可以根据实际需要包括其他的运动参数信息。本公开的实施例不受该当前前向运动信息的具体组成的限制。
[0068]
其后,在步骤s102中,获取所述机器人的目标前向运动信息及目标横向运动信息。
[0069]
所述目标前向运动信息是表征该机器人在目标时刻下的期望前向运动状态及期望自平衡状态的信息。所述目标前向运动信息例如可以包括轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。或者根据实际情况也可以包括其他的运动参数信息。本公开的实施例不受该目标前向运动信息的具体组成的限制。
[0070]
根据实际情况,该目标时刻例如可以为该机器人当前时刻的下一时刻,或者也可以为该机器人当前时刻间隔预设时间间隔后的时刻。本公开的实施例不受该目标时刻的具体设定方式的限制。
[0071]
所述目标横向运动信息是表征该机器人在目标时刻下的期望横向运动状态及期望自平衡状态的信息。所述目标横向运动信息例如包括左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角。或者,根据实际情况,也可以包括其他的目标横向运动参数信息。本公开的实施例不受该目标横向运动信息的具体组成的限制。
[0072]
其后,在步骤s103中,基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度。
[0073]
所述目标横向运动加速度是指处于当前横向运动状态及当前横向运动信息的机器人,为了实现目标横向运动状态及目标横向运动信息所需的加速度量。该目标横向运动加速度的维数例如可以根据实际需要进行设置,本公开的实施例不受该目标横向运动加速度的具体组成的限制。
[0074]
例如,确定轮腿部目标横向运动加速度的过程可以包括:基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态;基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束;基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。然而,应了解,上述仅给出了一种确定该机器人目标横向运动加速度的示例性方法,本公开的实施例不受该目标横向运动加速度的具体确定过程的限制。
[0075]
其后,在步骤s104中,基于所述当前前向运动信息及目标前向运动信息,确定轮腿部目标前向运动加速度。
[0076]
所述轮腿部目标前向运动加速度是指处于当前前向运动状态(对应于当前前向运动信息)的机器人,为了实现目标前向运动状态(对应于目标前向运动信息)所需的加速度量。例如,当该机器人的轮腿部为双轮式结构且具有左轮腿部及右轮腿部时,则计算所得到的加速度量例如可以包括左轮腿部在前向运动方向上的加速度及右轮腿部在前向运动方向上的加速度。本公开的实施例不受该目标前向运动加速度的具体组成的限制。
[0077]
在一些实施例中,可以根据预设的控制算法,基于该机器人的当前前向运动信息及目标前向运动信息确定轮腿部目标前向运动加速度。例如基于pid控制器实现对该目标前向运动加速度的求取。或者还可以采用其他方式计算该轮腿部目标前向运动加速度。本公开的实施例不受生成该轮腿部目标前向运动加速度的具体过程及其方式的限制。
[0078]
应了解,根据实际需要,上述步骤s103、s104例如可以顺序执行、逆序执行或者并行执行,本公开的实施例不受该步骤s103,s104的具体执行顺序的限制。
[0079]
计算得到该轮腿部目标前向运动加速度及该轮腿部目标横向运动加速度后,在步骤s105中,基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度。
[0080]
例如,可以首先基于轮腿部目标横向运动加速度、轮腿部目标前向运动加速度确定该机器人的目标运动加速度;其后,基于该机器人的目标运动加速度,根据该机器人的动力学方程及接触约束方程,生成该机器人的各个关节所对应的目标关节加速度。然而,应了解,上述仅给出一种生成该目标关节加速度的方法,本公开的实施例不受该目标关节加速度的具体生成方式的限制。
[0081]
得到机器人各关节的目标关节加速度后,在步骤s106中,基于所确定的所述机器人各关节的目标关节加速度,对所述机器人进行运动控制。
[0082]
例如,可以进一步基于该目标关节加速度生成对应于该关节的力矩量,并对该力矩量进行摩擦补偿,基于补偿摩擦后的目标力矩量生成关节控制电流值,并将该关节控制电流值发送至相应的关节控制电机,从而经由电机输出相应力矩,实现对机器人各关节的控制,从而实现对该机器人的运动控制。
[0083]
然而,应了解,上述仅给出了一种基于目标关节加速度进行机器人运动控制的示例性方法。根据实际需要,还可以选取其他的方式实现运动控制。本公开的实施例不受基于该目标关节加速度实现运动控制的具体方式的限制。
[0084]
基于上述,本技术中,通过获取所述机器人的当前关节运动信息、当前横向运动信息、当前前向运动信息、目标横向运动信息及目标前向运动信息,基于当前横向运动信息及该目标横向运动信息确定轮腿部目标横向运动加速度,基于当前前向运动信息及目标前向运动信息确定轮腿部目标前向运动加速度,由此确定该机器人各关节的目标关节加速度,一方面,通过增加对该机器人轮腿部的在横向方向上的运动过程(横向运动)的控制,增加了该机器人的运动控制自由度,使得该机器人能够经由不同的横向姿态位置实现多种任务功能。另一方面,使得能够实现对机器人横向及前向运动的彼此独立控制,增加了机器人控制的灵活度及可靠性,提高了该机器人的控制精度。
[0085]
在一些实施例中,所述当前关节运动信息、当前横向运动信息、当前横向运动状态、目标横向运动信息、当前前向运动信息、目标前向运动信息例如能够更具体地描述。
[0086]
例如,所述当前关节运动信息包括该机器人各关节的关节当前角度及关节当前角
速度。
[0087]
所述当前横向运动信息包括机器人的左轮腿部的当前长度、左轮腿部沿左轮腿部长度方向的当前速度、右轮腿部的当前长度、右轮腿部沿右轮腿部长度方向的当前速度、机器人轮腿部的当前滚转角。其旨在表征该机器人在当前时刻下期望的左轮腿部的长度、左轮腿部沿左轮腿部长度方向的速度、右轮腿部的长度、右轮腿部沿右轮腿部长度方向的速度、机器人轮腿部的滚转角。
[0088]
所述目标横向运动信息包括机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角。其旨在表征该机器人在目标时刻下期望的左轮腿部的长度、左轮腿部沿左轮腿部长度方向的速度、右轮腿部的长度、右轮腿部沿右轮腿部长度方向的速度、机器人轮腿部的滚转角。
[0089]
接下来将结合该机器人的具体结构对该机器人轮腿部的滚转角、轮腿部长度、左/右轮腿部沿轮腿部长度方向的速度进行更具体地说明。图3示出了根据本公开实施例的轮腿部的结构示意图。其中该轮腿部例如包括左轮腿部w_l及右轮腿部w_r,且该左轮腿部与右轮腿部经由连接部w_c相连接。且其中,该轮腿部的连接部w_c例如具有中心点oc。
[0090]
此时该轮腿部的滚转角例如可以经由该左轮腿部及右轮腿部中用于实现支撑的一个轮腿部在横向运动平面中与竖直方向(也即z方向)的夹角来表示。其中,该横向运动平面是指在三维直角坐标系(该三维直角坐标系包括x、y、z方向,且其中x方向为该机器人的前进方向,z方向为竖直向上的方向,y方向为垂直于该x方向及z方向的横向方向)中由横向方向y及竖直方向z所构成的二维平面。
[0091]
且参照图3,其中例如示出了该机器人的左轮腿部的长度l
left
,右轮腿部的长度l
right
,左轮腿部沿左轮腿部长度方向的速度v
left
,右轮腿部沿右轮腿部长度方向的速度v
right

[0092]
在一些实施例中,例如还可以获取在当前时刻下该连接部中心点在横向运动平面中的坐标位置及在目标时刻下该连接部中心点在横向运动平面中的期望坐标位置。
[0093]
所述当前横向运动状态包括:左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个。
[0094]
所述左轮腿部支撑状态是指该机器人仅经由左轮腿部实现单腿稳定支撑的状态。所述右轮腿部支撑状态是指该机器人仅经由右轮腿部实现单腿稳定支撑的状态。所述左轮腿部切换至右轮腿部支撑状态是指该机器人在左轮腿部支撑的情况下,当右轮腿部落地时,该机器人从仅经由左轮腿部单腿支撑切换至仅经由右轮腿部单腿支撑的状态。所述右轮腿部切换至左轮腿部支撑状态是指该机器人在右轮腿部单腿支撑的情况下,当左轮腿部落地时,该机器人从仅经由右轮腿部部单腿支撑切换至仅经由左轮腿部部单腿支撑的状态。
[0095]
所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分。所述当前前向运动位置、当前前向运动速度旨在表征该机器人在当前时刻下沿前向方向的运动位置及运动速度。
[0096]
所述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。所述目标前向运动位置、目标前向运动速度旨在表征该机器人在
目标时刻下沿前向方向期望的运动位置及运动速度。
[0097]
基于上述,本技术中,通过进一步限定当前关节运动信息、当前横向运动信息、当前横向运动状态、目标横向运动信息、当前前向运动信息、目标前向运动信息的具体组成,使得经由该当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息能够更全面且更完整地反映出该机器人的轮腿部在当前时刻下的前向及横向运动状态,且使得经由该目标横向运动信息、目标前向运动信息能够更全面且完整地反映出该机器人在目标时刻下期望的前向及横向运动状态,从而有利于更好地实现对该机器人的实时运动控制。
[0098]
在一些实施例中,基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度的过程s103例如可以更具体地说明。图4示出了根据本公开实施例确定该轮腿部目标横向运动加速度的过程s103的示例性流程图。
[0099]
参照图4,首先,在步骤s1031中,基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态。
[0100]
所述目标横向运动状态是指该机器人在目标时刻所应具有的横向运动状态。该目标横向运动状态例如可以为左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个。
[0101]
接下来将对确定该机器人目标横向运动状态的过程进行更具体地说明。图5示出了根据本公开实施例确定该机器人目标横向运动状态s1031的示例性流程图。
[0102]
参照图5,首先,例如在步骤s1031-1中,获取该当前横向运动状态所对应的当前横向运动阈值时间及该机器人在当前横向运动状态下的持续时间。
[0103]
所述当前横向运动阈值时间是指该机器人处于当前横向运动状态的最大持续时间。超过该横向运动阈值时间可能导致该机器人处于非稳定状态或使得无法实现该机器人的任务要求。
[0104]
所述横向运动阈值时间例如可以为用户预先设定的,或者也可以是系统根据实际执行的横向任务(例如横向稳定摆动)所设定的。对于不同的横向运动状态,该横向运动阈值时间例如可以为不同的参数。本公开的实施例不受该横向运动阈值时间的具体设定方式及设定内容的限制。
[0105]
该机器人在当前横向运动状态下的持续时间是指该机器人在该当前横向运动状态中的持续时间。其例如可以根据对该机器人的运动过程进行持续跟踪得到,或者也可以根据其他方式获得,本公开的实施例不受该机器人在该当前横向运动状态中的持续时间的具体获取方式的限制。
[0106]
其后,例如在步骤s1031-2中,基于该机器人在当前横向运动状态下的持续时间、该当前横向运动阈值时间,确定该机器人的目标横向运动状态。
[0107]
例如,可以首先对该机器人在当前横向运动状态下的持续时间及该当前横向运动阈值时间进行比较,当该机器人在当前横向运动状态下的持续时间小于该当前横向运动阈值时间,则将该机器人的当前横向运动状态确定为该机器人的目标横向运动状态。且当该机器人在当前横向运动状态下的持续时间大于或等于该当前横向运动阈值时间,则对该机器人进行状态切换处理。
[0108]
状态切换处理例如可以更具体地描述。例如,若预先已设置该机器人的预设横向
运动状态切换流程,例如设置该机器人循环处于“左轮腿部支撑状态——左轮腿部切换至右轮腿部支撑状态——右轮腿部支撑状态——右轮腿部切换至左轮腿部支撑状态”,则例如可以在该预设横向运动状态切换流程中确定该当前横向运动状态后的下一预设横向运动状态,并将该机器人的目标横向运动状态设置为当前横向运动状态后的下一预设横向运动状态。
[0109]
或者,在一些实施例中,当对该机器人进行状态切换处理时,也可以进一步地基于该机器人当前横向运动信息,例如基于该机器人左轮腿部的当前长度、右轮腿部的当前长度来确定该机器人的目标横向运动状态。例如将该该机器人左轮腿部的当前长度、右轮腿部的当前长度与各个横向运动状态所对应的左轮腿部长度范围及右轮腿部长度范围进行比较,若该机器人左轮腿部的当前长度、右轮腿部的当前长度落入某一横向运动状态的相应长度范围内,则将该横向运动状态确定为目标横向运动状态。
[0110]
应了解,上述仅给出了一种确定该机器人目标横向运动状态的示例性方式。本公开的实施例不受该机器人目标横向运动状态的具体确定方式的限制。
[0111]
其后,在步骤s1032中,基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束。
[0112]
所述目标横向运动控制函数是指用于控制该机器人在目标横向运动状态下的运动过程的函数,其用于表征机器人在该目标横向状态下的运动学约束,其例如可以包括多个子函数,或者其也可以为预设的算法或方程组。本公开的实施例不受该目标横向运动控制函数的具体组成的限制。
[0113]
得到该目标横向运动控制函数后,在步骤s1033中,基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。
[0114]
例如可以将所述当前横向运动信息、所述目标横向运动信息代入至该目标横向运动控制函数中计算,以生成该机器人的目标横向运动加速度。或者也可以采用其他的方式实现对该机器人的目标横向运动加速度的确定。本公开的实施例不受确定所述机器人的目标横向运动加速度的具体方式的限制。
[0115]
基于上述,本技术中,在确定该机器人的目标横向运动加速度的过程中,通过基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态,基于该目标横向运动状态确定目标横向运动控制函数,最终经由该横向运动控制函数、当前横向运动信息、目标横向运动信息共同确定该机器人的横向运动加速度,使得在对该机器人的横向运动进行控制的过程中,在考虑期望的横向位置速度姿态的基础上,还考虑到了该机器人在目标时刻下应具有的横向运动状态及该运动状态下的物理约束及运动方式,基于不同的目标运动状态采用不同的控制方式或算法来求取加速度,有利于实现对该机器人的灵活及可靠控制,且该控制过程具有较高的精确度。
[0116]
在一些实施例中,所述目标运动控制函数包括:对应于所述左轮腿部支撑状态的左轮腿部支撑约束函数,对应于所述右轮腿部支撑状态的右轮腿部支撑约束函数,对应于所述左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态的支撑状态切换函数中的一个。
[0117]
接下来将以图3中所示出的机器人的轮腿部结构为例,对该目标运动控制函数进行更具体地描述。
[0118]
例如,对图3中机器人在横向运动平面(y-z平面)的迈步动作需要分析欠驱动、连续/碰撞混杂的动力学模型。具体地,其中可控的输入为该机器人沿左轮腿部的腿长方向的力f
left
,沿右轮腿部的腿长方向的力f
right
,同时满足接触约束,也即接触点沿前述三维直角坐标系中x,y方向上的加速度为零。当该机器人包括连接至该轮腿部的基座部时,该基座部在横向运动平面(y-z平面)的自由度为3个(y方向上的坐标,z方向上的坐标,绕x轴的欧拉角),因而横向动力学系统在单腿着地的连续动态是一个5自由度,但只有2个输入和2个约束的欠驱动系统。
[0119]
由此,该横向运动过程中的广义坐标w=[yb,xb,θ
roll
,l
left
,l
right
]
t
,其中,yb为图3标识的中心点oc在y-z平面内沿y方向所具有的坐标位置,zb为图3标识的中心点oc在y-z平面内沿z方向所具有的坐标位置。θ
roll
为该机器人的滚转角,l
left
为该左轮腿部的长度,l
right
为该右轮腿部的长度。
[0120]
通过拉格朗日方法,可以得到系统在连续状态下的动力学方程如下:
[0121][0122]
其中,m
h,t
,c
h,t
,g
h,t
为基于该机器人在横向平面内的横向运动信息所生成的参数量;f
left,t
为当前时刻该机器人左轮腿沿左轮腿长度方向所受到的驱动力,f
right,t
为当前时刻该机器人右轮腿沿右轮腿长度方向所受到的驱动力。为用于该机器人的横向运动的雅克比矩阵;f
h,l,y,t
,f
h,l,z,t
为当前时刻下该机器人左轮腿部在横向运动平面中沿y方向及z方向受到来自周围环境(例如地面)的作用力,f
h,r,y,t
,f
h,r,z,t
为当前时刻下该机器人右轮腿部在横向运动平面中沿y方向及z方向受到来自周围环境(例如地面)的作用力。
[0123]
其中当左轮腿部支撑或者右轮腿部支撑时,可以对动力学进行一定的简化(消去接触力),同时广义坐标中只剩下we=[θ
roll
,l
left
,l
right
]
t

[0124]
此时的动力学系统能够根据横向运动状态不同进行适应性地简化,由此可以得到对应于不同的横向运动状态的横向运动控制函数。接下来将具体地给出该横向运动控制函数。
[0125]
例如,当该机器人处于左轮腿部支撑状态时,此时例如对上述动力学方程1)进行简化后能够得到如下对应于所述左轮腿部支撑状态的左轮腿部支撑约束子函数:
[0126][0127]
其中,m
e,l,t
,c
e,l,t
,g
e,l,t
为根据该简化后的广义坐标we在当前时刻的数据所生成的该机器人左轮腿部在横向平面运动过程中的参数量。且其中,为基于该简化后的广义坐标在当前时刻的数据求取用于右轮腿部的雅克比矩阵,其余参数量的含义如前所述。
[0128]
当该机器人处于右轮腿部支撑状态时,此时例如对上述动力学方程1)进行简化后能够得到如下对应于所述右轮腿部支撑状态的右轮腿部支撑约束子函数:
[0129][0130]
其中,m
e,r,t
,c
e,r,t
,g
e,r,t
为根据该简化后的广义坐标we在当前时刻的数据所生成的该机器人右轮腿部在横向平面运动过程中的参数量。且其中,为基于该简化后的广义坐标在当前时刻的数据求取的用于该左轮腿部的雅克比矩阵,其余参数量的含义如前所述。
[0131]
在交换腿瞬间(对应于左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态),根据冲量定理,建立碰撞方程,计算非完全弹性碰撞假设下,碰撞后的状态例如满足如下表达式,该表达式4)即为对应于该左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态的支撑状态切换子函数:
[0132][0133]
其中,f
h,c,t
为该机器人在当前时刻的落地的轮腿部所受到的作用力,其余参数量的含义如前所述。
[0134]
基于上述,本技术中,一方面,通过建立解析的连续-碰撞混杂动力学方程以及基于该方程确定的各个横向运动状态的横向运动控制函数,有利于后续进一步地设置基于能量补充的步态控制方式来实现对该机器人横向运动任务的规划及处理。另一方面,基于该各个横向运动状态所对应的横向运动控制函数及该机器人的特定目标横向任务,例如可以设置对应于不同的横向运动状态具有不同控制模式的运动控制器,从而在该不同横向运动状态下基于各不同模式的运动控制器实现对该横向运动状态下机器人的横向运动加速度的确定,有利于提高该机器人的横向运动控制过程的精确度及可靠性。
[0135]
接下来将给出根据该横向运动控制函数,基于特定目标任务,设置该机器人对应于各个横向运动状态的控制器及求取该目标横向运动加速度的过程的更具体的描述。
[0136]
图6a示出了根据本公开实施例的横向摆动任务的系统能量数值仿真曲线。图6b示出了根据本公开实施例的不同任务条件下的机器人在横向运动平面上的质心运动轨迹图。
[0137]
当该机器人需要执行稳定横向摆动任务时,则该机器人将循环地处于“左轮腿部支撑状态——左轮腿部切换至右轮腿部支撑状态——右轮腿部支撑状态——右轮腿部切换至左轮腿部支撑状态”的状态切换流程中。此时例如可以根据前述横向运动控制函数2)-4),对该机器人的左轮腿部及右轮腿部分别设置左轮腿部控制器及右轮腿部控制器,且该左轮腿部控制器及该右轮腿部控制器例如均具有四种控制模式。接下来将对该左轮腿部控制器及该右轮腿部控制器的四种控制模式及相关的控制参数进行更具体地说明。其中该左轮腿部控制器及该右轮腿部控制器例如均为pid控制器(比例、微分、积分控制器)。
[0138]
当该机器人处于左轮腿部支撑状态时,该机器人的左轮腿部沿该左轮腿部的长度方向伸长,系统的重力势能和动能均有所增加。此时,左轮腿部处于伸长阶段,该期望腿长
从la切换到lb,此时该左轮腿部控制器的控制器参数例如将采取高阻抗控制器参数k
p,h
,k
d,h
。且此时右轮腿部处于缩短状态,期望腿长从lb切换到la,此时右轮腿部控制器的参数例如将采取低阻抗控制器参数k
p,l
,k
d,l

[0139]
其后,当该机器人的右轮腿部检测到落地时,该机器人将切换到左轮腿部切换至右轮腿部支撑状态:此时两腿同时和地面接触,此时固定该状态时间为δ
t
,此时右轮腿部低阻抗控制器吸收冲击,系统整体能量减少。左轮腿部处于稳定阶段,期望腿长保持lb,此时该左轮腿部控制器的控制器参数从高阻抗k
p,h
,k
d,h
过渡到低阻抗参数k
p,h
,k
d,h
。且此时右轮腿部处于缩短状态,期望腿长保持la,此时右轮腿部控制器的参数从低阻抗k
p,l
,k
d,l
过渡到高阻抗参数k
p,h
,k
d,h

[0140]
当左轮腿部切换至右轮腿部支撑状态结束时(例如到达阈值时间),该机器人将自动切换到右轮腿部支撑状态,此时,右轮腿部伸长,补充系统的能量。左轮腿部处于缩短阶段,期望腿长从lb切换到la,此时该左轮腿部控制器的控制器参数采取低阻抗控制器参数k
p,l
,k
d,l
。右轮腿部处于伸长状态,期望腿长从la切换到lb,此时该右轮腿部控制器的控制器参数采取高阻抗控制器参数k
p,h
,k
d,h

[0141]
其后,当左轮腿部检测到落地时,该机器人将切换到右轮腿部切换至左轮腿部支撑状态:此时该机器人的两腿同时和地面接触,此时固定该状态时间为δ
t
,此时右轮腿部低阻抗控制器吸收冲击,系统整体能量减少。此时,左轮腿部处于缩短状态,期望腿长保持la,此时该左轮腿部控制器的控制器参数从低阻抗k
p,l
,k
d,l
过渡到高阻抗参数k
p,h
,k
d,h
。右轮腿部处于稳定阶段,期望腿长保持lb,此时该右轮腿部控制器的控制器参数从高阻抗k
p,h
,k
d,h
过渡到低阻抗参数k
p,h
,k
d,h

[0142]
例如,以下给出了一种该机器人左轮腿部控制器及右轮腿部控制器的相关参数的示例性设置方式:la=l
0-δ1=0.40-0.10(m),lb=l0+δ2=0.40+0.05(m),k
p,h
=100,k
d,h
=20,k
p,l
=20,k
d,l
=10,δt=0.1s。
[0143]
由此,持续切换可以形成稳定的极限环步态,参照图6a中示出的系统能量的数值仿真曲线,可以清楚的表明通过本技术中的控制器能够实现稳定的横向迈步步态。图6b自上而下分别是δ2=0.06,0.04,0.02(m)的基座运动轨迹,可以看到迈步后系统补充的能量和腿长增量δ2正相关,且补充能量越大,基座运动的幅度也越大,并且生成的动作周期也越长。据此可以生成不同频率的迈步动作。
[0144]
基于上述,通过本技术中所设置的目标横向运动控制函数,能够基于该机器人的横向运动过程所具有的不同横向运动状态设置该横向运动控制器(例如左轮腿部控制器及右轮腿部控制器)的不同控制模式,从而有针对性地对于横向运动中的各个状态进行灵活精确地控制。且该控制过程例如可以有效地提高机器人横向运动的灵活性及可靠性,有利于实现例如稳定横向摆动或横向避障等各种任务功能。
[0145]
在一些实施例中,该机器人例如还包括连接至该轮腿部的基座部,则此时求取该轮腿部目标前向运动加速度的过程例如可以更具体地描述。图7示出了根据本公开实施例的设置有基座部的机器人的示意图。
[0146]
参照图7,例如,当所述轮腿部包括左轮腿部w_l和右轮腿部w_r时,该当前前向运动信息还包括:轮腿部质心与基座部质心的当前水平距离,轮腿部质心与基座部质心的当前相对速度、该机器人基座部质心的当前运动方向与轮腿部当前运动方向之间所具有的当
前相对偏航角及当前相对偏航角速度。且其中,该目标前向运动信息还包括:轮腿部质心与基座部质心的当前水平距离,轮腿部质心与基座部质心的当前相对速度、该机器人基座部质心的目标运动方向与轮腿部目标运动方向之间所具有的目标相对偏航角及目标相对偏航角速度。
[0147]
所述相对偏航角是指该左轮腿部与该右轮腿部拟合得到的虚拟单轮的前进方向dwheel与该机器人的实际前向运动方向dbase之间的夹角。具体地,参照图7,其中示出了该左轮腿部w_l的中心点与该右轮腿部w_r的中心点的连线的中垂线方向,该方向即为虚拟单轮的前进方向dwheel,且其中示出了该机器人的实际前向运动方向dbase,虚拟单轮的前进方向dwheel与机器人的实际前向运动方向dbase的θ
yaw,wheel
即为相对偏航角。
[0148]
由此,所述当前偏航角是指在当前时刻下的相对偏航角,所述目标相对偏航角是指在目标时刻下的相对偏航角的期望值。所述当前相对偏航角速度是对该当前相对偏航角求导得到的,其旨在反映该当前相对偏航角随时间的变化率,所述目标相对偏航角速度是指在目标时刻下的期望的相对偏航角随时间的变化率。
[0149]
且其中,该轮腿部目标前向运动加速度包括:该机器人左轮腿部的目标前向运动加速度及右轮腿部的目标前向运动加速度。
[0150]
接下来将更具体地说明求取图7机器人的轮腿部目标前向运动加速度的过程。
[0151]
首先,为了实现对该机器人的运动的控制,需要通过设置该机器人基座部base与该机器人的轮腿部wheel的相对加速度以使得该基座部base该机器人的轮腿部wheel的相对位移此时由该轮腿部与该基座部共同构成的非最小相位系统处在平衡点上。由此,可以设计如下的反馈控制率:
[0152][0153]
其中,为该机器人的基座部与该机器人的轮腿部的目标相对加速度,为该机器人的轮腿部质心与基座部质心的目标水平距离,为该机器人的轮腿部质心与基座部质心的当前水平距离,此处的“0”表征该机器人的轮腿部质心与基座部质心的目标相对速度为0,而表征该机器人的轮腿部质心与基座部质心的当前相对速度,且其中k
p,1
,k
d,1
为根据实际需要选取的参数量,应了解,此处由于该机器人采用双轮式构型,此处所说的“轮腿部”为左轮腿部及右轮腿部拟合得到的虚拟单轮,该“轮腿部质心”为左轮腿部及右轮腿部拟合得到的虚拟单轮的质心。
[0154]
基于上述公式5),能够计算得到为实现目标前向运动信息该轮腿部(虚拟单轮)相对于该基座部的相对加速度其后,进一步地,考虑到在该机器人中,轮腿部(虚拟单轮)加速度和该轮腿部(虚拟单轮)相对于该基座部的相对加速度应满足如下关系:
[0155][0156]
其中,为该轮腿部(虚拟单轮)的前向运动加速度,为该轮腿部(虚
拟单轮)相对于该基座部的相对加速度,为该基座部与该轮腿部(虚拟单轮)在沿x方向(即前向方向)上所具有的距离,为该基座部与该轮腿部(虚拟单轮)在沿z方向(即垂直方向)上所具有的距离,g为重力加速度。
[0157]
当时,可以设计外环控制器控制该轮腿部(虚拟单轮)的线加速度,进而控制该轮腿部(虚拟单轮)x方向(前向方向)的运动,其具体控制率如下:
[0158][0159]
其中,为当前时刻下该基座部与该轮腿部(虚拟单轮)沿前向方向所具有的距离,其例如可以根据反馈率计算;为当前时刻下该基座部与该轮腿部(虚拟单轮)沿垂直方向所具有的距离,g为重力加速度,x
wheel,t+1
为该轮腿部(虚拟单轮)的目标前向位置,x
wheel,t
为该轮腿部(虚拟单轮)的当前前向位置,该轮腿部(虚拟单轮)的目标前向速度,为该轮腿部(虚拟单轮)的当前前向速度,其中k
p,2
,k
d,2
为根据实际需要选取的参数量。
[0160]
因此最终得到一种平衡控制器的反馈率,反馈系数k
p,1
,k
p,2
,k
d,1
,k
d,2
可以根据内外环系统分别设计极点并计算。例如,可以将反馈系数选取为:k
p,1
=1200,k
d,1
=300,k
p,2
=1,k
d,2
=0.2。且能够得到如下表达式:
[0161][0162]
其中,为该轮腿部(虚拟单轮)在目标时刻下的前向运动加速度,为目标时刻下该基座部与该轮腿部(虚拟单轮)沿前向方向所具有的期望距离,其例如可以根据反馈率计算;为当前时刻下的该基座部与该轮腿部(虚拟单轮)沿前向方向所具有的距离,其余参数量的含义如前所述。
[0163]
其后,取消基座部操作矩阵中的x分量(前向分量),以左右两轮腿部的线加速度代替,其中左右两轮腿部等效的虚拟单轮的加速度对平衡有影响,而差速会影响轮腿部(虚拟单轮)的偏航角加速度,具体地,偏航角加速度满足如下动力学方程:
[0164][0165]
其中,为目标相对偏航角加速度,θ
yaw,wheel,t+1
为目标相对偏航角,0表征目标时刻的期望相对偏航角速度(即目标相对偏航角速度)为0,θ
yaw,wheel,t
为当前相对偏航角,为当前相对偏航角速度,且其中,k
p,3
,k
d,3
例如可以根据实际需要进行设置,例如可以设置k
p,3
=100,k
d,3
=100。
[0166]
此外,根据双轮式轮腿部的结构关系,还可以得到如下约束式:
[0167]
[0168][0169]
其中,为轮腿部(虚拟单轮)的前向运动加速度,为该左轮腿部的前向运动加速度,为该右轮腿部的前向运动加速度,为目标相对偏航角加速度,r
width
为该左轮腿部与该右轮腿部沿前述y方向(横向方向)所具有的相对距离。
[0170]
进一步地,通过线加速度和角加速度的关系,可以得到左轮腿部及右轮腿部的线加速度的表达式,其中各参数量的含义如前所述:
[0171][0172][0173]
其中,为该左轮腿部的目标前向运动加速度,为该右轮腿部的目标前向运动加速度,为该轮腿部(虚拟单轮)的目标前向运动加速度,为该轮腿部(虚拟单轮)的目标相对偏航角加速度,r
width,t
为当前时刻下该左轮腿部与该右轮腿部沿前述y方向(横向方向)所具有的相对距离。
[0174]
由此,能够计算得到该左轮腿部目标前向运动加速度及该右轮腿部目标前向运动加速度。通过这样的设置,在实现该机器人的平衡控制的基础上,还能够根据实际地形及运动情况,控制该左右轮腿在沿该机器人的前向运动的方向上具有相对距离(例如在该前向运动方向上,左轮腿部设置在该右轮腿部前方)。
[0175]
然而,应了解,上述仅给出一种计算目标前向运动加速度的具体示例。本公开的实施例不受该目标前向运动加速度的具体计算方式的限制。
[0176]
基于上述,本技术中,通过经由该扩充后的当前前向运动信息、目标前向运动信息良好实现对于轮腿部目标前向运动加速度的计算,且能够使得在实现运动控制的基础上,控制该左轮腿部与该右轮腿部在沿该机器人前向运动的方向上具有相对距离,有利于根据实际任务或功能需求,灵活控制该左右轮腿部,例如可以使得该左右轮腿部在沿该机器人的前进方向上位于不同的位置,从而有利于实现机器人的不同工作任务(例如上下楼梯)。
[0177]
在一些实施例中,所述确定该机器人各关节的目标关节加速度的过程s105例如可以更具体地说明。图8a示出了根据本公开实施例确定该机器人各关节的目标关节加速度的过程s105的示例性流程图。
[0178]
参照图8a,首先,在步骤s1051中,基于所述轮腿部目标横向运动加速度、所述轮腿部目标前向运动加速度生成所述机器人的目标运动加速度。
[0179]
该机器人的目标运动加速度是指综合考虑到该机器人的前向运动过程及该机器人的横向运动过程所得到的该机器人整体所具有的加速度量。
[0180]
例如,可以将该轮腿部目标横向运动加速度、轮腿部目标前向运动加速度基于预设的权重进行归一化处理,将归一化处理后得到的加速度向量或加速度矩阵作为目标运动加速度。本公开的实施例不受生成该机器人的目标运动加速度的具体方式及该机器人的目标运动加速度的具体组成及维数的限制。
[0181]
其后,在步骤s1052中,基于所述当前横向运动信息、当前前向运动信息、当前关节运动信息,生成所述机器人的目标运动加速度估计量。
[0182]
例如,可以根据该机器人的机器人关节运动过程与该机器人的动力学运动过程的对应关系,将该机器人的当前横向运动信息、当前前向运动信息、当前关节运动信息代入至预设方程式中,计算生成该机器人的目标运动加速度的估计量。或者也可以采用其他方式生成该机器人的目标运动加速度估计量。本公开的实施例不受生成该目标运动加速度估计量的具体过程的限制。
[0183]
应了解,上述步骤s1051、s1052例如可以按顺序执行,或者也可以逆序执行或并行执行。本公开的实施例不受步骤s1051、s1052的具体执行顺序的限制。
[0184]
得到该机器人的目标运动加速度及该机器人的目标运动加速度估计量之后,在步骤s1053中,利用关节控制约束函数,根据该机器人的目标运动加速度、该机器人的目标运动加速度估计量,确定该机器人的目标关节加速度。
[0185]
其中,所述关节控制约束函数用于表征机器人运动信息和关节运动信息之间的约束关系,具体地,其用于限定机器人运动过程中,该机器人的各关节所需要满足的约束条件及约束关系,以使得该机器人物理运动信息与机器人关节运动信息得以相互映射且使得该映射后得到的数据处于满足物理运动约束(例如接触约束、摩擦约束等)的合理范围内。
[0186]
在一些实施例中,该关节控制约束函数例如可以基于该机器人的动力学方程及接触约束形成,或者也可以采用预设算法基于运动学方程计算生成。例如,该关节控制约束函数可以进一步包括关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数中的一个或多个。且该关节控制约束函数中例如包括关节目标加速度参数量、关节目标力矩参数量等用于实现关节目标控制的参量。应了解,本公开的实施例不受该关节控制约束函数的具体组成、该关节控制约束函数的具体生成方式的限制。
[0187]
在一些实施例中,利用关节控制约束函数确定该机器人的目标关节加速度例如包括:首先,基于该机器人的目标运动加速度、该机器人的目标运动加速度估计量生成误差函数,所述误差函数的值与所述机器人的关节加速度相关;其后,基于该误差函数及关节控制约束函数,将满足该关节控制约束函数且使得该误差函数取得最小值的关节加速度确定为目标关节加速度。
[0188]
然而,应了解,上述仅给出一种利用关节控制约束函数确定目标关节加速度的示例性方式。本公开的实施例不受确定该目标关节加速度的具体方式的限制。
[0189]
基于上述,本技术中,在确定该机器人各关节的目标关节加速度的过程中,通过基于轮腿部目标横向运动加速度、轮腿部目标前向运动加速度生成该机器人的目标运动加速度,且基于该当前横向运动信息、当前前向运动信息、当前关节运动信息,生成该机器人的目标运动加速度估计量;其后,利用关节控制约束函数,根据机器人的目标运动加速度及其估计量,确定该机器人的目标关节加速度,使得在确定该机器人的目标关节加速度的过程中,综合考虑到了机器人运动信息和关节运动信息之间的约束关系,从而使得根据该机器人的目标运动加速度求取的目标关节加速度在实现该机器人的运动控制的基础上,也能够满足该机器人的运动约束,从而能够实现对该机器人良好且合理的运动控制,提高该运动控制的可靠性及鲁棒性。
[0190]
在一些实施例中,该机器人的目标运动加速度估计量是该机器人的关节加速度的
函数。例如,该机器人的目标运动加速度估计量可以通过该关节加速度的方程式表达,且该机器人的目标运动加速度估计量与该关节加速度的数值相关联。
[0191]
例如,可以经由机器人的整体运动过程与在该整体运动过程中机器人各关节运动过程之间的关系,通过该机器人的关节加速度生成该机器人目标运动加速度估计量的表达式。或者,也可以通过预设算法将该机器人的目标运动加速度估计量表达为该机器人的关节加速度的函数。
[0192]
在该机器人的目标运动加速度估计量是该机器人的关节加速度的函数的情况下,利用该关节控制约束函数,根据该机器人的目标运动加速度、该机器人的目标运动加速度估计量,确定该机器人的目标关节加速度的过程s1053例如可以更具体地描述。图8b示出了根据本公开的实施例确定该机器人的目标关节加速度的过程s1053的示例性流程图。
[0193]
参照图8b,首先,在步骤s1053-1中,基于该机器人的目标运动加速度、该机器人的目标运动加速度估计量生成误差函数,所述误差函数的值与所述机器人的关节加速度相关。
[0194]
所述误差函数旨在表征该机器人的目标运动加速度与该机器人的目标运动加速度估计量所具有的差值,该误差函数的数值表征该机器人的目标运动加速度与该机器人的目标运动加速度估计量的差值的大小。
[0195]
例如,可以直接将该机器人的目标运动加速度与该目标运动加速度的估计量的差值作为误差函数,且由于该机器人的目标运动加速度是该机器人的关节加速度的函数,由此所生成的误差函数也是该机器人的关节加速度的函数。
[0196]
应了解,上述仅给出了一种生成误差函数的示例性方式,根据实际需要,还可以将机器人的目标运动加速度与该目标运动加速度的估计量代入预设方程组或预设算法中进行计算,以生成该误差函数。本公开的实施例不受该误差函数的生成方式及该误差函数的具体表达式的限制。
[0197]
得到该误差函数后,在步骤s1053-2中,基于该误差函数及关节控制约束函数,将满足该关节控制约束函数且使得该误差函数取得最小值的关节加速度确定为目标关节加速度。
[0198]
例如,该关节控制约束函数中例如包括该机器人的关节加速度参数量,或者其还可以包括与该关节加速度参量相关联的关节力矩参数量等参量,且如前所述,该误差函数也是该关节加速度的函数,此时,例如可以通过调整该机器人的关节加速度参量及与该关节加速度参量相关联的其他参数量的数值,使得该误差函数具有最小值,且同时令该关节加速度参量的数值满足该关节控制约束函数的要求。由此可以得到既能够满足该机器人横向运动控制要求及该机器人前向运动控制要求,又能够符合该机器人运动学方程及其运动约束条件(例如摩擦约束、结构姿态极限位置约束等)的目标关节加速度,从而有效地避免了在仅将机器人运动加速度简单投影至关节加速度空间的情况下,所产生的关节加速度明显超过电机控制范围或所得到的机器人关节构型姿态明显不符合机器人运动状态从而导致无效或失效控制的问题。
[0199]
基于上述,本技术中,通过设置该机器人的目标运动加速度估计量是该机器人的关节加速度的函数,使得能够有效地将机器人的运动控制与机器人的关节运动控制相关联,此外,通过进一步生成误差函数,并将满足该关节控制约束函数且使得该误差函数取得
最小值的关节加速度确定为目标关节加速度,使得在解算目标关节加速度的过程中,综合考虑到了目标控制任务的实际需求和机器人运动过程的动力学过程及物理条件约束,从而使得所生成的目标关节加速度在良好实现目标控制任务(目标横向运动控制及目标前向运动控制)的基础上,还能够良好地满足该机器人的运动特性及运动过程中的受力约束条件,避免了由于所产生的关节加速度明显超过电机控制范围或关节构型姿态明显不符合机器人运动状态从而导致无效或失效控制的问题,有利于实现对该机器人高精度且灵活合理的运动控制。
[0200]
在一些实施例中,该关节控制约束函数例如包括:关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数。
[0201]
所述关节等式约束子函数是指用于限定该机器人运动信息和关节运动信息之间的等式约束关系的函数,该关节等式约束子函数例如可以根据该机器人的动力学运动方程及该机器人与地面或环境接触时的接触约束方程形成。然而,应了解,本公开的实施例不受该关节等式约束子函数的具体形成方式及其具体组成的限制。
[0202]
所述关节不等式约束子函数是指用于限定该机器人运动信息和关节运动信息之间的不等式约束关系的函数,该关节不等式约束子函数例如可以根据该关节在运动过程中的机器人与地面或周围环境在接触点上的接触力所需满足的动力学约束生成。然而,应了解,本公开的实施例不受该关节不等式约束子函数的具体形成方式及其具体组成的限制。
[0203]
所述关节阈值约束子函数是指用于限定该机器人运动过程中机器人各关节的极限位置或极限姿态的函数。例如,该关节阈值约束子函数可以包括对该关节力矩的极限值(最大值、最小值)的限制。然而,应了解,本公开的实施例不受该关节阈值约束子函数的具体形成方式及其具体组成的限制。
[0204]
本技术中,通过设置该关节控制约束函数包括关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数,使得在确定该机器人的目标关节加速度时,所设置的关节控制约束函数能够更全面地表征机器人运动信息和关节运动信息之间的约束关系,从而有利于提高所生成的目标关节加速度的精确度,且能够实现对该机器人灵活且可靠的控制过程。
[0205]
在一些实施例中,设置该机器人的关节控制约束函数的过程例如可以更具体地描述。
[0206]
例如以图1中示出的机器人结构为例,所述机器人200a的轮腿部210a包括左轮腿部211a和右轮腿部212a,所述左轮腿部211a及右轮腿部212a中的每一个包括单个轮部,且该机器人所述左轮腿部211a及右轮腿部212a中的每一个还设置有连接至该轮部的中心轴且用于实现对该轮部的运动控制的两个并联腿部。
[0207]
参照图1,该左轮腿部211a例如包括左轮部2110a,且还设置有用于控制该左轮腿部的并联的第一左腿部2111a及第二左腿部2112a;且该右轮腿部212a例如包括右轮部2120a,且还设置有用于控制该右轮腿部的并联的第一右腿部2121a及第二右腿部2122a。
[0208]
此时,在设置该机器人的关节控制约束函数的过程中,首先,通过建立该机器人的动力学模型,建立各个子任务控制(轮腿部横向运动控制、轮腿部前向运动控制)所需加速度和实际输入关节力矩之间的约束关系。
[0209]
此外,在轮和地面无滑动摩擦,仅有纯滚动摩擦的假设下,存在接触点在局部坐标
系下的x方向(前向方向)和z方向(竖直方向)加速度为0的约束,通过计算左右轮腿部在局部坐标系下的x方向和z方向速度v1相对广义关节运动速度的雅克比矩阵jc,根据加速度约束,可以得到:
[0210][0211]
其中,a1为该轮腿部的加速度,v1=[v
x,l
,v
z,l
,v
x,r
,v
z,r
],v
x,l
为左轮腿部沿x方向的速度,v
z,l
为左轮腿部沿z方向的速度,v
x,r
为右轮腿部沿x方向的速度,v
z,r
为右轮腿部沿z方向的速度,q为该机器人各关节的关节位置,为该机器人各关节的关节速度,为该机器人各关节的关节加速度,jc为左右轮腿部在局部坐标系下的x方向和z方向速度v1相对广义关节运动速度的雅克比矩阵。
[0212]
并且能够计算得到在广义关节加速度下的接触点加速度偏置:
[0213][0214]
其中,fa为加速度函数,contact为与接触过程相关的参数量,其余参数的含义如前所述。
[0215]
采用类似的方法,将广义开链坐标系下的并联腿部闭链约束方程记为:
[0216][0217]
其中,a2为该并联腿部所具有的加速度,v2为该并联腿部的速度,j
λ
[0218]
该并联腿部在广义开链坐标系下的速度v2相对广义关节运动速度的雅克比矩阵,为该机器人各关节的关节速度,为该机器人各关节的关节加速度。
[0219]
且加速度偏置也可以经由如下公式计算,其中close表征与该并联腿部的闭链约束相关联的参数量,其余参数的含义如前所述:
[0220][0221]
由此,得到在无外力干扰下的动力学方程和接触约束方程18)-21):
[0222][0223]
s=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
19)
[0224][0225][0226]
其中已知量为具体地,质量矩阵m可以基于关节位置q使用复合刚体算法crba快速计算得到,离心力和科里奥利力偏置项c可以基于关节位置q及关节速度使用牛顿欧拉迭代算法rnea快速计算,重力偏置项g也可以基于关节位置q使用牛顿欧拉迭代算法rnea快速计算,选择矩阵s用于区分主动关节和无驱动关节,记做s=diag(a1,a2,

,an),其中ai=1代表其为无驱动关节。
[0227]
且其中,变量为其中,为关节加速度,τ为关节对应的力矩项,fc为局部坐标系下接触点的广义力,具体地,fc=[f
c,x,l
,f
c,z,l
,f
c,x,r
,f
c,z,r
]∈r4,其中,f
c,x,l
为该
机器人的左轮腿部在x方向上所具有的广义力,f
c,z,l
为该机器人的左轮腿部在z方向上所具有的广义力,f
c,x,r
为该机器人的右轮腿部在x方向上所具有的广义力,f
c,z,r
为该机器人的右轮腿部在z方向上所具有的广义力。f
λ
为前腿部作用于后腿部的闭链力,f
λ
=[f
λ,x,l
,f
λ,z,l
,f
λ,x,r
,f
λ,z,r
]∈r4,其中,f
λ,x,l
为用于左轮腿部的两个并联腿部中前腿部在x方向上作用于后腿部的力,f
λ,z,l
为用于左轮腿部的两个并联腿部中前腿部在z方向上作用于后腿部的力,f
λ,x,e
为用于右轮腿部的两个并联腿部中前腿部在x方向上作用于后腿部的力,f
λ,z,r
为用于右轮腿部的两个并联腿部中前腿部在z方向上作用于后腿部的力。
[0228]
采用完整动力学方法能够得到以上等式约束,并且根据摩擦锥限制,可以得到局部系(摩擦曲面切线方向)下的接触力fc需要满足的约束:
[0229]fc,x,l
∈[-μf
c,z,l
,μf
c,z,l
],f
c,z,l
≥0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
22)
[0230]fc,x,r
∈[-μf
c,z,r
,μf
c,z,r
],f
c,z,r
≥0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
23)
[0231]
其中,f
c,x,l
为该机器人的左轮腿部在x方向上所具有的广义力,μ为当前周围环境下的摩擦因数,f
c,z,l
为该机器人的右轮腿部在z方向上所具有的广义力,f
c,x,r
为该机器人的右轮腿部在x方向上所具有的广义力,f
c,z,r
为该机器人的右轮腿部在z方向上所具有的广义力。
[0232]
且能够得到如下的摩擦锥约束矩阵:
[0233][0234]
其中j
f,l
为对应于该机器人的左轮接触点的摩擦约束矩阵,j
f,r
为对应于该机器人的右轮接触点的摩擦约束矩阵,μ为当前周围环境下的摩擦因数。
[0235]
由此得到该关节控制约束函数的关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数。
[0236]
其中,所述关节等式约束子函数包括:
[0237][0238]
其中,为该机器人在目标时刻下的关节加速度,为该机器人的当前关节速度,f
c,t+1
为目标时刻下该机器人在局部坐标系下接触点的广义力,f
λ,t+1
为目标时刻下该两个并联腿部之间的作用力,τ
t+1
为目标时刻下该机器人的关节力矩,j
c,t
,j
λ,t
是在当前时刻下分别对应于机器人在局部坐标系下接触点的广义力fc与两个并联腿部之间的作用力f
λ
的雅克比矩阵,其根据该机器人的当前关节运动信息、当前横向运动信息及当前前向运动信息生成;c
t
,g
t
,m
t
为基于该机器人的当前关节运动信息生成的参数量;s为基于该机器人的关节构型确定的参数量,i为单位矩阵,其维数根据该机器人的运动自由度的个数确定,t为机器人运动的当前时刻,t+1为机器人运动的目标时刻。
[0239]
所述关节不等式约束子函数包括:
[0240][0241]
其中,j
f,l
为对应于该机器人的左轮接触点的摩擦约束矩阵,j
f,r
为对应于该机器人的右轮接触点的摩擦约束矩阵。该摩擦锥约束矩阵具体可以表示为:
[0242][0243]
所述关节阈值约束子函数包括:
[0244]
τ
t+1
∈[τ
min

max
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
28)
[0245]
在上述等式及不等式约束中,变量f
c,t+1fλ,t+1

t+1
之间存在一定程度上的关联,当输入力矩已知,也即τ
t+1
已知,不等式约束不存在时,可以求得f
c,t+1fλ,t+1
的最小二乘解。
[0246][0247]
可见,虽然属于高维空间,但实际和维数大小为k(k远小于该高维空间的维数)的关节力矩子空间存在一一映射关系,也即由于等式和不等式约束的存在,实际属于高维空间中满足等式约束的低维有边界流形内。通过合理的选择该子空间的加速度或者力fc,可以得到对应力矩子空间的τ值。
[0248]
此外,通过雅克比矩阵,可以定义操作空间加速度和广义关节空间加速度之间的线性映射关系,到和低维流形自由度一致的操作空间加速度,即可利用到对应满足动力学约束的关节力矩输入。进而实现对操作空间进行低维流形内的控制(该机器人的新增控制需求并不破坏等式和不等式约束)。
[0249]
此外,操作空间的选取需要保证最终总任务的雅克比矩阵j
task
满足rank(j
task
)≥k(k为关节空间的维数),如果rank(j
task
)<k,则说明肯定存在不受控子空间,会使得动力学系统发散。而当rank(j
task
)>k时,说明可能存在破坏约束条件的任务需求。当rank(j
task
)=k,例如能够求取最终的判据。
[0250]
基于上述,在满足上述动力学方程及摩擦约束的情况下,可以确定该机器人的操作空间(其中进行机器人运动控制)与该机器人的关节运动空间(其中机器人各关节进行相应的关节运动)之间的对应关系,由此,在该机器人的操作空间中基于轮腿部目标运动加速度及轮腿部目标横向运动加速度所确定的机器人的目标运动加速度能够经由该对应关系转换至该机器人的关节运动空间中,同样地,该机器人的目标运动加速度也能够由该机器
人在关节运动空间中的关节加速度来表示。
[0251]
接下来将结合前述的关节等式约束子函数25)、关节不等式约束子函数26)、关节阈值约束子函数28),对前述求取该机器人的目标关节加速度的过程s105进行更具体地描述。
[0252]
首先,在得到该机器人的目标运动加速度后,例如基于如前所述的动力学方程和接触约束方程,确定该机器人的目标运动加速度估计量,该目标运动加速度估计量例如具有如下的表达式:
[0253][0254]
其中,为该机器人的目标运动加速度估计量,j
t,i
为对应于该机器人各关节的雅克比矩阵,为该机器人在目标时刻下的关节加速度,为该机器人的当前关节速度。
[0255]
基于该机器人的目标运动加速度的估计量及该机器人的目标运动加速度a
t+1
,能够进一步得到该机器人的误差函数,该误差函数fw例如具有如下的表达式:
[0256][0257]
则例如可以联立该误差函数及前述的关节控制约束函数,其中该关节控制约束函数例如包括公式25)-26),28),调整其中的变量参数f
c,t+1
,f
λ,t+1
,τ
t+1
,各参数量的含义如前所示出的。其中,参数f
c,t+1
,f
λ,t+1
,τ
t+1
与参数相关联。当调节该参数量f
c,t+1
,f
λ,t+1
,τ
t+1
使得能够满足该关节控制约束函数且使得该误差函数取得最小值时,将此时的关节加速度确定为目标关节加速度。
[0258]
通过同时解算该误差函数与关节控制约束函数,使得不仅仅依靠机器人运动信息与关节运动信息之间的关联关系经由雅克比矩阵直接将机器人在操作空间中解算得到的目标运动加速度简单置换至关节空间(由于关节空间通常被定义为无界空间,而操作空间由于受到实际运动学方程及机器人自身结构约束为有界空间,这样的简单置换将会导致映射得到的关节空间中的目标关节加速度虽然能够满足控制要求,但明显偏离或违背机器人正常运动的运动原理与机器人的物理约束条件),还依靠关节控制约束函数所提供的机器人运动信息和关节运动信息之间的约束关系来保证在将该机器人的目标运动加速度置换至关节空间获得的关节空间加速度仍旧能够满足机器人运动学模型及接触约束方程所限定的物理约束及阈值条件,从而有利于生成具有更高可靠性及精确度的目标关节加速度,且有效地避免了无效控制的情况。
[0259]
基于上述,本技术中,通过对该机器人设置如前所述的关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数,使得能够良好地实现限定该机器人运动信息和关节运动信息之间的等式约束关系,该机器人运动信息和关节运动信息之间的不等式约束关系,及该机器人运动过程中机器人各关节的极限位置或极限姿态,从而有利于提高所生成的目标关节加速度的精确度及可靠性,实现对该机器人全身各关节的协同控制及灵活控制。
[0260]
在实际求解目标关节加速度的过程中,由于关节等式约束子函数为高维函数且同
时求解等式、不等式约束的计算过程较为复杂,当前在联立求解该关节控制约束函数(关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数)与误差函数时,通常将忽略不等式约束,仅采用带权重的方程组来求解;或者在考虑不等式约束的情况下,采用带权重的二次优化方法或通过分层计算的方式来求解最优解。然而,当忽略该不等式约束子函数的情况下,求解得到的目标关节加速度可能存在超出机器人实际物理约束的情况,从而导致无法实现对该机器人的运动控制;在考虑不等式约束子函数的情况下,一方面,当前的解算过程计算量较大,计算难度较高,导致计算速度缓慢,将耗费较多时间;另一方面,当前所采用的计算方式在求解复杂高维解算问题时容易出现计算误差,从而导致计算所得到的结果的鲁棒性及稳定性较差,不利于实现高精度控制。
[0261]
为了更好地实现高精度及高稳定性控制,在一些实施例中,还提出了基于零空间分层优化的方式确定目标关节加速度。图9示出了根据本公开实施例基于零空间分层优化的方式确定该目标关节加速度的过程s1053-2的示例性流程图。
[0262]
接下来将参照图9,对前述基于该误差函数及关节控制约束函数,将满足该关节控制约束函数且使得该误差函数取得最小值的关节加速度确定为目标关节加速度的过程s1053-2进行更具体的描述。
[0263]
如图9所示出的,首先,在步骤s1053-2-1中,在关节等式约束子函数的零空间中求解该关节等式约束子函数,得到该关节等式约束子函数的通解量。
[0264]
所述等式约束子函数的零空间是指该等式约束子函数的系数矩阵的零空间,例如,若该等式约束子函数能够表示为ax=b的形式,则该等式约束子函数的零空间即为方程组ax=0所表示的空间。具体而言,在该零空间中,通过降低了该等式约束子函数的解算维数,使得能够显著地提高该等式约束子函数的解算速度,同时大幅度地降低所要求解的变量的维数。
[0265]
得到该关节等式约束子函数的通解量后,在步骤s1053-2-2中,基于该通解量与该误差函数、关节不等式约束子函数、关节阈值约束子函数,将满足该关节不等式约束子函数、关节阈值约束子函数且使得该误差函数取得最小值的通解量确定为目标通解量。
[0266]
其后,在步骤s1053-2-3中,基于该目标通解量,生成该目标关节加速度。
[0267]
例如可以经由该通解量与该关节加速度的关系式,根据该目标通解量生成与该目标通解量相对应的目标关节加速度。或者也可以通过预设算法对该目标通解量进行处理,得到该机器人的目标关节加速度。应了解,本公开的实施例不受基于该目标通解量生成该目标关节加速度的具体方式的限制。
[0268]
例如,当该机器人例如具有轮腿部(包括左轮腿部、右轮腿部),且该左轮腿部及右轮腿部中的每一个包括轮部及连接至该轮部的中心轴,以及用于实现对该轮部的运动控制的两个并联腿部。且若该机器人的关节等式约束子函数例如具有如前公式25)的形式,则例如可以将该关节等式约束子函数进一步列写为如下“ax=b”的形式:
[0269][0270]
应了解,在该公式中,下角标t表征当前时刻该参数量的数值,下角标t+1表征目标时刻该参数量的数值。
[0271]
其中,各参数量的具体组成如下:
[0272][0273][0274]
对上式28)求取通解,得到该通解量的表达式为:
[0275][0276]
其中,a
+eq,t
为a
eq,t
的伪逆,a
+eq,tbeq,t
表征该方程的特解部分,其随着b
eq,t
的取值变化而变化,n
a,eq
表征“ax=0”的零空间,且n
a,eq
λ表征在“ax=0”的零空间中求解该方程所得到的通解部分,其中λ
t+1
为目标时刻下的自由变量。
[0277]
基于上述通解量表达式,例如能够计算得到广义关节加速度、关节力矩和地面反作用力的通解表达式为:
[0278][0279]
τ
t+1
=a
+eq,τ,tbeq,t
+n
a,eq,τ,t
λ
t+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
35)
[0280]fc,t+1
=a
+eq,fc,tbeq,t
+n
a,eq,fc,t
λ
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
36)
[0281]
其中a
+eq,q,t
,n
a,eq,q,t
为式33)的通解表达式中与对应的参数量,a
+eq,τ,t
,n
a,eq,τ,t
为式33)的通解表达式中与τ
t+1
对应的参数量,a
+eq,fc,t
,n
a,eq,fc,t
为式33)中与f
c,t+1
对应的参数量。
[0282]
基于上述,通过将关节等式约束子函数投影至零空间进行求解并得到各个参数的通解表达式34)-36),完成了对该高维等式约束子函数的求解。此外,此时的关节阈值约束子函数、关节不等式约束子函数也可以表示成以λ
t+1
为变量的线性关系:
[0283]na,eq,τ,t
λ
t+1
+a
+eq,τ,tbeq,t
≥τ
min
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
37)
[0284]na,eq,τ,t
λ
t+1
+a
+eq,τ,tbeq,t
≤τ
max
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
38)
[0285][0286]
其中,公式37)-39)对应于关节阈值约束子函数,公式39)对应于关节不等式约束子函数,其余参数的含义如前所述。
[0287]
则此时例如可以将该误差函数基于该机器人物理空间中的不同子任务类型分解,得到多层子任务,例如将其分解为轮腿部横向控制子任务层、轮腿部前向控制子任务层等。且其中,例如可以在不同的子任务层中,将对应于该层任务的误差函数可以表示为以λ
t+1
为变量的函数:
[0288][0289]
其中,i表征该第i层子任务层,对应于第i个子任务空间。其余参数量的含义如前所述。
[0290]
其后,通过将求解得到的关节等式约束函数的通解量、上述得到的误差函数表达式40)、关节阈值约束子函数37)-38)、关节不等式约束子函数39)联立,生成满足该关节不等式约束子函数39)、关节阈值约束子函数37)-38)且使得该各层子任务空间中的误差函数(例如具有公式40)的表达式)取得该层任务实现误差最小的通解,并且当该层任务之前已经求解了更高优先级任务时,加入使得高优先级任务得到满足的约束方程,假设更高优先级的任务有m个分别为1~m,并且将其中第k个任务(k∈[1,m])优化a
t+1,k-的结果记做bk。则优先级低于该第k个任务的任务层还需要满足以下约束方程:
[0291][0292]
基于上述整体约束方程,按照优先级次序逐层求解各个子任务层(每求解一个子任务层,则相应地得到对应于该子任务层的额外约束方程),即能够计算得到使得该误差函数取得最小值且满足上述关节不等式约束、关节阈值约束及对应于各个子任务空间的额外约束方程的该自由变量λ的目标变量值,由此得到该通解量n
a,eq
λ
t+1
的目标通解量,其后,例如基于该通解量与该关节加速度的对应关系式30),根据该目标通解量确定该层任务目标关节加速度的数值。
[0293]
根据上述方法,例如,当该机器人的关节个数k为8时,执行单次目标关节加速度求解的过程的耗时在400us左右,而当关节个数k为3时,执行单次目标关节加速度求解的过程的耗时在300us左右,使得在保证该目标关节加速度求解的可靠性与稳定性的基础上,显著地提高了求解的速度,并降低了求解的计算量。
[0294]
与当前求解目标关节加速度的方法相比,本技术中,通过在关节等式约束子函数的零空间中进行求解,使得能够有效的降低问题求解复杂度及求解时间,例如可以将高维的多变量求解问题转化为单一变量的求解问题,且该单一变量例如可以具有与该机器人子任务的个数相关联的维度,从而显著地简化了该关节等式约束子函数的求解难度及计算量。同时,通过在求解过程中执行基于机器人工作任务进行分层求解,基于该机器人实际执行的子任务确定多个子任务层,其中为各个子任务层设定不同的优先级,并将误差函数分解为对应于每一个机器人子任务层的误差子函数,基于子任务层的优先级,对每一个子任务逐一求解该子任务层的误差函数,使得一方面在求解每一个子任务层所对应的误差子函数时简化了计算量,另一方面,能够根据实际任务需要,确保在高优先级的子任务上具有最佳的控制精度及准确度(误差函数最优解),并经由该高优先级子任务层中解算得到的取值范围进一步对低优先级的子任务层中的误差子函数求解过程进行约束,从而能够使得所求解得到的目标关节加速度对于重要性较高的子任务具有极高的精确控制度。相较于当前对误差函数进行整体求解的过程,能够显著地提高所得到的目标关节加速度在重要子任务控制上的控制性能及可靠性。
[0295]
接下来将结合双轮式机器人的具体控制场景,对该机器人控制方法进行更具体地
说明。图10a示出了根据本公开实施例的双轮式机器人控制流程图。图10b示出了根据本公开实施例的双轮式机器人的示意图。该双轮式机器人例如具有轮腿部210a,连接至该轮腿部210a的基座部220a,以及设置在该机器人的基座部的与该机器人的前向方向相对的后侧的尾部部件(附加部件)230a。且其中,该轮腿部210a例如具有如前述结合图1所示出的结构,具体地,该机器人200a的轮腿部210a例如可以包括左轮腿部211a和右轮腿部212a,且所述左轮腿部211a及右轮腿部212a中的每一个包括轮部及连接至该轮部的中心轴且用于实现对该轮部的运动控制的两个并联腿部。
[0296]
此时,在对该机器人进行控制例如包括:对该机器人的前向运动及横向进行控制,对于该机器人的基座部所具有的三维姿态(俯仰角、滚转角、偏航角)及基座高度(4个维度上的自由度)进行控制,对于该机器人的尾部部件质心的横向位置(该机器人的尾部部件质心相对于y方向所具有的坐标位置)及垂直位置(该机器人的尾部部件质心相对于z方向所具有的坐标位置)进行控制。
[0297]
参照图10a,则该机器人运动控制过程例如具体包括如下步骤:首先,采集该机器人的当前运动信息,该当前运动信息包括:当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息,其当前运动信息的具体组成如上文中所具体描述的。且在存在基座部和设置在该基座部上的尾部部件的情况下,该当前运动信息例如还可以包括该基座部的当前运动信息(例如基座的三维坐标及三维姿态)及该尾部部件的当前部件运动信息。其中该尾部部件的当前部件运动信息例如包括该尾部部件质心的当前纵向位置及该尾部部件质心的当前高度位置。
[0298]
其后,基于机器人的规划器所生成的规划信息或基于用户的输入控制信息获取该机器人的目标运动信息,该目标运动信息包括:目标前向运动信息、目标横向运动信息,其目标运动信息的具体组成如上文中所具体描述的。且在存在基座部的情况下例如还包括基座部目标运动信息及该尾部部件的目标部件运动信息。
[0299]
得到该机器人的当前运动信息及目标运动信息后,例如经由该机器人的运动控制器基于当前前向运动信息及目标前向运动信息生成该机器人的目标前向运动加速度,其中例如可以如前所述,基于该机器人的左右轮腿部拟合得到的虚拟单轮设置内环控制器,用于控制该机器人处于目标运动速度及目标运动位置,且同时使得该基座部与该轮腿部处于平衡状态(例如令基座部在水平面内位于该轮腿部的区域范围内),同时还可以设置外环控制器,用于控制该左轮腿部及右轮腿部的相对位置,从而实现障碍规避或其他特定功能;经由该机器人的横向运动控制器基于当前横向运动信息及目标横向运动信息生成该机器人的目标基座部运动加速度(具体过程如前所详细说明的);且在存在基座部及尾部部件的情况下,例如还能够类似地,经由该机器人的基座部姿态控制器生成该基座部目标加速度,经由该机器人的尾部部件姿态控制器生成该机器人的尾部部件的目标运动加速度。且其中,该横向、前向运动控制器、基座部姿态控制器、尾部部件姿态控制器例如均为pid控制器,且各控制器的控制率根据实际的控制需要及任务需求设置。
[0300]
其后,例如基于该目标前向运动加速度、目标横向运动加速度,确定该机器人的目标关节加速度,且在包括基座部及尾部部件的情况下,还可以综合利用该基座部运动加速度、尾部部件的目标运动加速度确定目标加速度。在得到该目标运动加速度后,例如将该目标运动加速度与该机器人的当前关节运动信息、该机器人的当前运动信息输入至该机器人
的关节运动控制器中,且在该关节控制运动器中根据该当前横向运动信息、当前前向运动信息、当前关节运动信息,尾部部件的当前部件运行信息,生成该机器人的目标运动加速度估计量。得到该机器人的目标运动加速度及该机器人的目标运动加速度估计量之后,将利用关节控制约束函数,根据该机器人的目标运动加速度、该机器人的目标运动加速度估计量,确定该机器人的目标关节加速度。其中,该关节控制约束函数例如可以表示为如前所述的方程组的形式,且其中该函数中各参数量是基于该机器人的轮腿部、基座部、尾部部件的当前运动信息所生成的。
[0301]
此外,生成该目标关节运动加速度的过程例如可以如前步骤s105中所详细说明的,通过生成误差函数,并基于该误差函数及关节控制约束函数,将满足该关节控制约束函数且使得该误差函数取得最小值的关节加速度确定为目标关节加速度。其中联立求解该误差函数及该关节控制约束函数的过程例如可以如前述步骤s1053-2中所详细说明的,经由零空间投影的计算方式实现。
[0302]
得到该机器人的目标关节运动加速度后,例如可以根据实际控制情况,对该目标关节加速度进行摩擦补偿,并基于补偿后的目标关节加速度生成用于该机器人的关节控制电机的机器人的关节控制电流/电压数据,其后例如将该关节控制电流/电压数据发送至该机器人的关节运动控制电机,经由该电机输入相应力矩实现对各个关节的控制,从而使得该机器人实现目标运动平衡状态(前向运动及横向运动)、具有目标基座姿态及高度,且实现目标尾部部件姿态。
[0303]
根据本公开的另一方面,提出了一种机器人控制系统300。机器人包括轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节。
[0304]
图11示出了根据本公开实施例的机器人控制系统300的示例性框图。参照图11,该系统包括:当前运动信息获取模块310、目标运动信息获取模块320、横向运动加速度确定模块330、前向运动加速度确定模块340、目标关节加速度确定模块350、运动控制模块360。
[0305]
所述当前运动信息获取模块310被配置为执行图2中步骤s101的过程,获取所述机器人的当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息。
[0306]
所述当前关节运动信息是表征该机器人各个关节在当前时刻下的运动状态的信息。本公开的实施例不受该当前关节运动信息的具体组成的限制。
[0307]
所述当前横向运动状态是表征该机器人在当前时刻下在横向运动方向上所处的横向运动状态。本公开的实施例不受该当前横向运动状态的具体组成的限制。
[0308]
所述当前横向运动信息是表征该机器人当前在横向方向上的运动状态及自平衡状态的信息。本公开的实施例不受该当前横向运动状态的具体组成的限制。
[0309]
所述当前前向运动信息是表征该机器人当前在前向方向上的运动状态及自平衡状态的信息。本公开的实施例不受该当前前向运动信息的具体组成的限制。
[0310]
所述目标运动信息获取模块320被配置为执行图2中步骤s102的过程,获取所述机器人的目标前向运动信息及目标横向运动信息。
[0311]
所述目标前向运动信息是表征该机器人在目标时刻下的期望前向运动状态及期望自平衡状态的信息。本公开的实施例不受该目标前向运动信息的具体组成的限制。
[0312]
根据实际情况,该目标时刻例如可以为该机器人当前时刻的下一时刻,或者也可
以为该机器人当前时刻间隔预设时间间隔后的时刻。本公开的实施例不受该目标时刻的具体设定方式的限制。
[0313]
所述目标横向运动信息是表征该机器人在目标时刻下的期望横向运动状态及期望自平衡状态的信息。本公开的实施例不受该目标横向运动信息的具体组成的限制。
[0314]
所述横向运动加速度确定模块330被配置为执行图2中步骤s103的过程,基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度。
[0315]
所述目标横向运动加速度是指处于当前横向运动状态(对应于当前横向运动信息)的机器人,为了实现目标横向运动状态(对应于目标横向运动信息)所需的加速度量。本公开的实施例不受该目标横向运动加速度的具体组成的限制。
[0316]
前向运动加速度确定模块340被配置为执行图2中步骤s104的过程,基于所述当前前向运动信息及目标前向运动信息,确定轮腿部目标前向运动加速度。
[0317]
所述轮腿部目标前向运动加速度是指处于当前前向运动状态(对应于当前前向运动信息)的机器人,为了实现目标前向运动状态(对应于目标前向运动信息)所需的加速度量。本公开的实施例不受该目标前向运动加速度的具体组成的限制。
[0318]
所述目标关节加速度确定模块350被配置为执行图2中步骤s105的过程,基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度。
[0319]
所述机器人运动控制模块360被配置为执行图2中步骤s106的过程,基于所确定的所述机器人各关节的目标关节加速度,对所述机器人进行运动控制。
[0320]
基于上述,本技术中,通过获取所述机器人的当前关节运动信息、当前横向运动信息、当前前向运动信息、目标横向运动信息及目标前向运动信息,基于当前横向运动信息及该目标横向运动信息确定轮腿部目标横向运动加速度,基于当前前向运动信息及目标前向运动信息确定轮腿部目标前向运动加速度,由此确定该机器人各关节的目标关节加速度,一方面,通过增加对该机器人轮腿部的在横向方向上的运动过程(横向运动)的控制,增加了该机器人的运动控制自由度,使得该机器人能够经由不同的横向姿态位置实现多种任务功能。另一方面,能够独立实现对机器人横向及前向运动的控制,增加了机器人控制的灵活度及可靠性,提高了该机器人的控制精度。
[0321]
在一些实施例中,所述当前关节运动信息包括所述机器人各关节的关节当前角度及关节当前角速度。
[0322]
所述当前横向运动信息包括机器人的左轮腿部的当前长度、左轮腿部沿左轮腿部长度方向的当前速度、右轮腿部的当前长度、右轮腿部沿右轮腿部长度方向的当前速度、机器人轮腿部的当前滚转角。
[0323]
所述目标横向运动信息包括机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角。
[0324]
所述当前横向运动状态包括:左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个。所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分。所
述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。
[0325]
所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分;所述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。
[0326]
相关参数的含义及物理意义如前所述,在这里不再赘述。
[0327]
基于上述,本技术中,通过进一步限定当前关节运动信息、当前横向运动信息、当前横向运动状态、目标横向运动信息、当前前向运动信息、目标前向运动信息的具体组成,使得经由该当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息能够更全面且更完整地反映出该机器人的轮腿部在当前时刻下的前向及横向运动状态,且使得经由该目标横向运动信息、目标前向运动信息能够更全面且完整地反映出该机器人在目标时刻下期望的前向及横向运动状态,从而有利于更好地实现对该机器人的实时运动控制。
[0328]
在一些实施例中,所述横向运动加速度确定模块330包括:目标横向运动状态确定模块331、目标横向运动控制函数确定模块332及目标横向运动加速度生成模块333。
[0329]
其中,所述目标横向运动状态确定模块331被配置为执行图4中步骤s1031的过程,基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态。
[0330]
所述目标横向运动状态是指该机器人在目标时刻所应具有的横向运动状态。该目标横向运动状态例如可以为左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个。
[0331]
所述目标横向运动控制函数确定模块332被配置为执行图4中步骤s1032的过程,基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束。
[0332]
所述目标横向运动控制函数是指用于控制该机器人在目标横向运动状态下的运动过程的函数,其用于表征机器人在该目标横向状态下的运动学约束,其例如可以包括多个子函数,本公开的实施例不受该目标横向运动控制函数的具体组成的限制。
[0333]
所述目标关节加速度生成模块333被配置为执行图4中步骤s1033的过程,基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。
[0334]
基于上述,本技术中,在确定该机器人的目标横向运动加速度的过程中,通过基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态,基于该目标横向运动状态确定目标横向运动控制函数,最终经由该横向运动控制函数、当前横向运动信息、目标横向运动信息共同确定该机器人的横向运动加速度,使得在对该机器人的横向运动进行控制的过程中,在考虑期望的横向位置速度姿态的基础上,还考虑到了该机器人在目标时刻下应具有的横向运动状态及该运动状态下的物理约束及运动方式,基于不同的目标运动状态采用不同的控制方式或算法来求取加速度,有利于实现对该机器人的灵活及可靠控制,且该控制过程具有较高的精确度。
[0335]
在一些实施例中,所述机器人控制系统能够执行如前所述的方法,具有如前所述的功能。
[0336]
根据本公开的另一方面,提出了一种机器人200。图12示出了根据本公开实施例的机器人200的示例性框图。该机器人200包括:轮腿部210、所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节。
[0337]
且该机器人还包括控制器220,该控制器设置在该机器人上,且能够执行如前所述的机器人控制方法,具有如前所述的功能。
[0338]
所述控制器例如包括处理装置。处理装置可以包括微处理器、数字信号处理器(“dsp”)、专用集成电路(“asic”)、现场可编程门阵列、状态机或用于处理从传感器线接收的电信号的其他处理器件。这种处理器件可以包括可编程电子设备,例如plc,可编程中断控制器(“pic”)、可编程逻辑器件(“pld”)、可编程只读存储器(“prom”)、电子可编程只读存储器等。
[0339]
且根据实际需要,该机器人例如还可以包括连接至该轮腿部的基座部、设置在该基座部上的附加部件(例如尾部部件)、总线、存储器、传感器组件、通信模块和输入输出装置等。本公开的实施例不受该机器人的具体组成部分的限制。
[0340]
总线可以是将该机器人的各部件互连并在各部件之中传递通信信息(例如,控制消息或数据)的电路。
[0341]
传感器组件可以用于对物理世界进行感知,例如包括摄像头、红外传感器超声波传感器等。此外,传感器组件还可以包括用于测量机器人当前运行及运动状态的装置,例如霍尔传感器、激光位置传感器、或应变力传感器等。
[0342]
通信模块例如可以通过有线或无效与网络连接,以便于与物理世界(例如,服务器)通信。通信模块可以是无线的并且可以包括无线接口,例如ieee 802.11、蓝牙、无线局域网(“wlan”)收发器、或用于接入蜂窝电话网络的无线电接口(例如,用于接入cdma、gsm、umts或其他移动通信网络的收发器/天线)。在另一示例中,通信模块可以是有线的并且可以包括诸如以太网、usb或ieee 1394之类的接口。
[0343]
输入输出装置可以将例如从用户或任何其他外部设备输入的命令或数据传送到机器人的一个或多个其他部件,或者可以将从机器人的一个或多个其他部件接收的命令或数据输出到用户或其他外部设备。
[0344]
多个机器人可以组成机器人系统以协同地完成一项任务,该多个机器人通信地连接到服务器,并且从服务器接收协同机器人指令。
[0345]
技术中的程序部分可以被认为是以可执行的代码和/或相关数据的形式而存在的“产品”或“制品”,通过计算机可读的介质所参与或实现的。有形的、永久的储存介质可以包括任何计算机、处理器、或类似设备或相关的模块所用到的内存或存储器。例如,各种半导体存储器、磁带驱动器、磁盘驱动器或者类似任何能够为软件提供存储功能的设备。
[0346]
所有软件或其中的一部分有时可能会通过网络进行通信,如互联网或其他通信网络。此类通信可以将软件从一个计算机设备或处理器加载到另一个。因此,另一种能够传递软件元素的介质也可以被用作局部设备之间的物理连接,例如光波、电波、电磁波等,通过电缆、光缆或者空气等实现传播。用来载波的物理介质如电缆、无线连接或光缆等类似设备,也可以被认为是承载软件的介质。在这里的用法除非限制了有形的“储存”介质,其他表
示计算机或机器“可读介质”的术语都表示在处理器执行任何指令的过程中参与的介质。
[0347]
本技术使用了特定词语来描述本技术的实施例。如“第一/第二实施例”、“一实施例”、和/或“一些实施例”意指与本技术至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本技术的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0348]
此外,本领域技术人员可以理解,本技术的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本技术的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本技术的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
[0349]
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
[0350]
上面是对本发明的说明,而不应被认为是对其的限制。尽管描述了本发明的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本发明的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本发明范围内。应当理解,上面是对本发明的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本发明由权利要求书及其等效物限定。

技术特征:


1.一种机器人控制方法,所述机器人包括轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节,所述方法包括:在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得所述机器人处于目标前向运动位置及目标前向运动速度;在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得在所述机器人运动过程中,经由所述左轮腿部和所述右轮腿部中的一个实现该机器人的稳定支撑,且控制所述左轮腿部和所述右轮腿部中的另一个升高至目标高度。2.如权利要求1所述的机器人控制方法,其中,所述左轮腿部及所述右轮腿部均为单轮腿式构型。3.如权利要求1或2所述的机器人控制方法,其中,所述方法包括:获取所述机器人的当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息;获取所述机器人的目标前向运动信息及目标横向运动信息;基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度;基于所述当前前向运动信息及目标前向运动信息,确定轮腿部目标前向运动加速度;基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度;以及基于所确定的所述机器人各关节的目标关节加速度,对所述机器人进行运动控制。4.如权利要求3所述的机器人控制方法,其中,所述当前关节运动信息包括所述机器人各关节的关节当前角度及关节当前角速度;所述当前横向运动信息包括机器人的左轮腿部的当前长度、左轮腿部沿左轮腿部长度方向的当前速度、右轮腿部的当前长度、右轮腿部沿右轮腿部长度方向的当前速度、机器人轮腿部的当前滚转角;所述目标横向运动信息包括机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角;所述当前横向运动状态包括:左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个;所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分;所述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。5.根据权利要求3所述的机器人控制方法,其中,基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度包括:基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态;基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控
制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束;基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。6.根据权利要求3所述的机器人控制方法,其中,基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度,包括:基于所述轮腿部目标横向运动加速度、所述轮腿部目标前向运动加速度生成所述机器人的目标运动加速度;基于所述当前横向运动信息、当前前向运动信息、当前关节运动信息,生成所述机器人的目标运动加速度估计量;利用关节控制约束函数,根据所述机器人的目标运动加速度、所述机器人的目标运动加速度估计量,确定所述机器人的目标关节加速度,其中所述关节控制约束函数用于表征机器人运动信息和关节运动信息之间的约束关系。7.根据权利要求6所述的机器人控制方法,其中,所述机器人的目标运动加速度估计量是所述机器人的关节加速度的函数;其中,利用所述关节控制约束函数,根据所述机器人的目标运动加速度、所述机器人的目标运动加速度估计量,确定所述机器人的目标关节加速度,包括:基于所述机器人的目标运动加速度、所述机器人的目标运动加速度估计量生成误差函数,所述误差函数的值与所述机器人的关节加速度相关;基于所述误差函数及关节控制约束函数,将满足所述关节控制约束函数且使得所述误差函数取得最小值的关节加速度确定为目标关节加速度。8.根据权利要求5所述的机器人控制方法,其中,所述目标横向运动控制函数包括:对应于所述左轮腿部支撑状态的左轮腿部支撑约束函数,对应于所述右轮腿部支撑状态的右轮腿部支撑约束函数,对应于所述左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态的支撑状态切换函数中的一个。9.根据权利要求6所述的机器人控制方法,其中,所述关节控制约束函数包括:关节等式约束子函数、关节不等式约束子函数、关节阈值约束子函数。10.根据权利要求9所述的机器人控制算法,其中,基于所述误差函数及关节控制约束函数,将满足所述关节控制约束函数且使得所述误差函数取得最小值的关节加速度确定为目标关节加速度包括:在所述关节等式约束子函数的零空间中求解所述关节等式约束子函数,得到所述关节等式约束子函数的通解量;基于所述通解量与所述误差函数、关节不等式约束子函数、关节阈值约束子函数,将满足所述关节不等式约束子函数、关节阈值约束子函数且使得所述误差函数取得最小值的通解量确定为目标通解量;基于所述目标通解量,生成所述目标关节加速度。11.根据权利要求9所述的机器人控制算法,其中,所述左轮腿部及右轮腿部中的每一个包括轮部及连接至该轮部的中心轴且用于实现对该轮部的运动控制的两个并联腿部,则所述关节等式约束子函数包括:
其中,为该机器人在目标时刻下的关节加速度,为该机器人的当前关节速度,f
c,t+1
为目标时刻下该机器人在局部坐标系下接触点的广义力,f
λ,t+1
为目标时刻下该两个并联腿部之间的作用力,τ
t+1
为目标时刻下该机器人的关节力矩,j
c,t
,j
λ,t
是在当前时刻下分别对应于机器人在局部坐标系下接触点的广义力fc与两个并联腿部之间的作用力f
λ
的雅克比矩阵,其根据该机器人的当前关节运动信息、当前横向运动信息及当前前向运动信息生成;c
t
,g
t
,m
t
为基于该机器人的当前关节运动信息生成的参数量;s为基于该机器人的关节构型确定的参数量,i为单位矩阵,其维数根据该机器人的运动自由度的个数确定,t为机器人运动的当前时刻,t+1为机器人运动的目标时刻;所述关节不等式约束子函数包括:其中,j
f,l
为对应于该机器人的左轮接触点的摩擦约束矩阵,j
f,r
为对应于该机器人的右轮接触点的摩擦约束矩阵;所述关节阈值约束子函数包括:τ
t+1
∈[τ
min

max
]其中,τ
min
为该机器人的关节力矩的下限阈值,τ
max
为该机器人的关节力矩的上限阈值。12.一种机器人控制系统,所述机器人包括轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节,所述系统包括:当前运动信息获取模块,其被配置为获取所述机器人的当前关节运动信息、当前前向运动信息、当前横向运动状态、当前横向运动信息;目标运动信息获取模块,其被配置为获取所述机器人的目标前向运动信息及目标横向运动信息;横向运动加速度确定模块,其被配置为基于所述当前横向运动信息、当前横向运动状态及目标横向运动信息,确定轮腿部目标横向运动加速度;前向运动加速度确定模块,其被配置为基于所述当前前向运动信息及目标前向运动信息,确定轮腿部目标前向运动加速度;目标关节加速度确定模块,其被配置为基于所确定的所述轮腿部目标横向运动加速度、轮腿部目标前向运动加速度,确定所述机器人各关节的目标关节加速度;以及运动控制模块,其被配置为基于所确定的所述机器人各关节的目标关节加速度,对所述机器人进行运动控制。13.如权利要求12所述的机器人控制系统,其中,所述当前关节运动信息包括所述机器人各关节的关节当前角度及关节当前角速度;所述当前横向运动信息包括机器人的左轮腿部的当前长度、左轮腿部沿左轮腿部长度方向的当前速度、右轮腿部的当前长度、右轮腿部沿右轮腿部长度方向的当前速度、机器人
轮腿部的当前滚转角;所述目标横向运动信息包括机器人的左轮腿部的目标长度、左轮腿部沿左轮腿部长度方向的目标速度、右轮腿部的目标长度、右轮腿部沿右轮腿部长度方向的目标速度、机器人轮腿部的目标滚转角;所述当前横向运动状态包括:左轮腿部支撑状态、右轮腿部支撑状态、左轮腿部切换至右轮腿部支撑状态、右轮腿部切换至左轮腿部支撑状态中的一个;所述当前前向运动信息包括:轮腿部的当前前向运动位置及轮腿部的当前前向运动速度中的至少一部分;所述目标前向运动信息包括:轮腿部的目标前向运动位置及轮腿部的目标前向运动速度中的至少一部分。14.根据权利要求12所述的机器人控制系统,其中,所述横向运动加速度确定模块包括:目标横向运动状态确定模块,其被配置为基于所述当前横向运动状态、所述当前横向运动信息确定所述机器人的目标横向运动状态;目标横向运动控制函数确定模块,其被配置为基于所述目标横向运动状态,确定与所述目标横向运动状态相对应的目标横向运动控制函数,其中所述目标横向运动控制函数用于表征机器人在目标横向运动状态下的运动学约束;目标横向运动加速度生成模块,其被配置为基于所述目标横向运动控制函数、所述当前横向运动信息、所述目标横向运动信息,确定所述机器人的目标横向运动加速度。15.一种机器人,所述机器人包括:轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节;控制器,所述控制器设置在所述机器人上,且能够执行如权利要求1-11中任一项所述的机器人控制方法。

技术总结


公开了一种机器人控制方法、机器人控制系统及机器人,所述机器人包括轮腿部,所述轮腿部包括左轮腿部和右轮腿部,且所述左轮腿部和所述右轮腿部中的每一个包括至少一个关节,所述方法包括:在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得所述机器人处于目标前向运动位置及目标前向运动速度;在所述机器人运动过程中,控制所述左轮腿部的所述至少一个关节及所述右轮腿部的至少一个关节,使得在所述机器人运动过程中,经由所述左轮腿部和所述右轮腿部中的一个实现该机器人的稳定支撑,且控制所述左轮腿部和所述右轮腿部中的另一个升高至目标高度。升高至目标高度。升高至目标高度。


技术研发人员:

王海涛 郑宇 王帅 来杰 陈科 姜鑫洋 徐佳锋 张竞帆 张东胜

受保护的技术使用者:

腾讯科技(深圳)有限公司

技术研发日:

2021.05.31

技术公布日:

2022/12/15

本文发布于:2024-09-24 16:28:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/38372.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:腿部   机器人   所述   横向
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议