双足机器人的弹跳运动控制方法、装置及双足机器人转让专利

申请号 : CN202111528491.3

文献号 : CN114454981B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈春玉葛利刚刘益彰周江琛罗秋月熊友军

申请人 : 深圳市优必选科技股份有限公司

摘要 :

本申请适用于机器人技术领域,提供了双足机器人的弹跳运动控制方法、装置及双足机器人,包括:在双足机器人离开地面之前,根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹;根据所述运动轨迹以及逆运动学计算出所述双足机器人腿部各个关节的第一运动角度;根据所述双足机器人将要执行的动作所属的运动类型确定约束条件;根据所述约束条件对所述第一运动角度进行优化,得到第二运动角度;根据所述第二运动角度控制所述双足机器人的弹跳运动。通过上述方法,能够保证双足机器人以不超出关节的角度限位的第二运动角度进行弹跳。

权利要求 :

1.一种双足机器人的弹跳运动控制方法,其特征在于,包括:在双足机器人离开地面之前,根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹;

根据所述运动轨迹以及逆运动学计算出所述双足机器人腿部各个关节的第一运动角度;

根据所述双足机器人将要执行的动作所属的运动类型确定约束条件;

根据所述约束条件对所述第一运动角度进行优化,得到第二运动角度;

根据所述第二运动角度控制所述双足机器人的弹跳运动。

2.如权利要求1所述的双足机器人的弹跳运动控制方法,其特征在于,所述根据所述双足机器人将要执行的动作所属的运动类型确定约束条件,包括:根据所述双足机器人将要执行的动作所属的运动类型确定对应的动力学方程;

根据所述动力学方程确定约束条件。

3.如权利要求2所述的双足机器人的弹跳运动控制方法,其特征在于,所述动力学方程包括第一方程,且所述第一方程的一个参数为所述双足机器人与地面的接触力,所述根据所述动力学方程确定约束条件,包括:根据所述第一方程确定第一子约束条件;

根据所述双足机器人与地面的接触力确定所述双足机器人在离开地面之前不与地面发生滑动所对应的条件,确定的所述条件作为第二子约束条件;

根据所述第一子约束条件和所述第二子约束条件确定所述约束条件。

4.如权利要求1至3任一项所述的双足机器人的弹跳运动控制方法,其特征在于,所述根据所述约束条件对所述第一运动角度进行优化,得到第二运动角度,包括:根据所述第一运动角度、所述第二运动角度、所述双足机器人离开地面之后的运动轨迹、所述第二运动角度的微分以及预设的权重系数,确定一个优化函数;

根据所述约束条件,从所述优化函数确定所述第二运动角度。

5.如权利要求4所述的双足机器人的弹跳运动控制方法,其特征在于,在所述根据所述第二运动角度控制所述双足机器人的弹跳运动之后,还包括:检测所述双足机器人的弹跳运动是否符合要求,并在不符合要求时,调整所述预设的权重系数,以得到新的优化函数;

根据所述约束条件,从所述新的优化函数确定新的所述第二运动角度;

根据所述新的第二运动角度控制所述双足机器人的弹跳运动。

6.如权利要求1至4任一项所述的双足机器人的弹跳运动控制方法,其特征在于,所述根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹,包括:根据所述双足机器人弹跳的高度确定所述双足机器人在空中停留的时间;

根据所述双足机器人在空中停留的时间,设计出所述双足机器人弹跳起飞时的角速度与在竖直方向上的速度,用以预估所述双足机器人离开地面之后的运动轨迹。

7.如权利要求1至4任一项所述的双足机器人的弹跳运动控制方法,其特征在于,所述根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹,包括:若所述双足机器人将要执行的动作所属的运动类型为空中翻转,则根据所述双足机器人将要执行的空中翻转所对应的角速度确定所述双足机器人在空中翻转的时间;

根据所述双足机器人在空中翻转的时间,设计出所述双足机器人弹跳起飞时在竖直方向上的速度,用以预估所述双足机器人离开地面之后的运动轨迹。

8.一种双足机器人的弹跳运动控制装置,其特征在于,包括:运动轨迹预估模块,用于在双足机器人离开地面之前,根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹;

第一运动角度计算模块,用于根据所述运动轨迹以及逆运动学计算出所述双足机器人腿部各个关节的第一运动角度;

约束条件确定模块,用于根据所述双足机器人将要执行的动作所属的运动类型确定约束条件;

第二运动角度确定模块,用于根据所述约束条件对所述第一运动角度进行优化,得到第二运动角度;

弹跳运动控制模块,用于根据所述第二运动角度控制所述双足机器人的弹跳运动。

9.一种双足机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

7任一项所述的方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。

说明书 :

双足机器人的弹跳运动控制方法、装置及双足机器人

技术领域

[0001] 本申请属于机器人技术领域,尤其涉及双足机器人的弹跳运动控制方法、装置、双足机器人及计算机可读存储介质。

背景技术

[0002] 目前,双足机器人能够模仿的动作越来越多,比如,其可以通过控制“手关节”、“脚关节”的转动来实现行走、伸展手臂的动作。除此之外,有些双足机器人还可以实现弹跳运动,而在实现弹跳运动的过程中,通常采用离线规划的方法。但采用离线规划的方法对输入的参数进行规划时,可能存在输入的参数超过机器人的限位的问题。

发明内容

[0003] 本申请实施例提供了双足机器人的弹跳运动控制方法、装置及双足机器人,可以解决机器人在离线规划时,可能存在采用超过机器人的限位的关节的角度对机器人进行弹跳控制,进而导致控制的准确度较低的问题。
[0004] 第一方面,本申请实施例提供了一种双足机器人的弹跳运动控制方法,包括:
[0005] 在双足机器人离开地面之前,根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹;
[0006] 根据所述运动轨迹以及逆运动学计算出第一运动角度;
[0007] 根据所述双足机器人将要执行的动作所属的运动类型确定约束条件;
[0008] 根据所述约束条件对所述第一运动角度进行优化,得到第二运动角度;
[0009] 根据所述第二运动角度控制所述双足机器人的弹跳运动。
[0010] 第二方面,本申请实施例提供了一种双足机器人的弹跳运动控制装置,包括:
[0011] 运动轨迹预估模块,用于在双足机器人离开地面之前,根据所述双足机器人在空中停留的时间或空中翻转的时间,预估所述双足机器人离开地面之后的运动轨迹;
[0012] 第一运动角度计算模块,用于根据所述运动轨迹以及逆运动学计算出所述双足机器人腿部各个关节的第一运动角度;
[0013] 约束条件确定模块,用于根据所述双足机器人将要执行的动作所属的运动类型确定约束条件;
[0014] 第二运动角度确定模块,用于根据所述约束条件对所述第一运动角度进行优化,得到第二运动角度;
[0015] 弹跳运动控制模块,用于根据所述第二运动角度控制所述双足机器人的弹跳运动。
[0016] 第三方面,本申请实施例提供了一种双足机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
[0017] 第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
[0018] 第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在双足机器人上运行时,使得双足机器人执行上述第一方面所述的方法。
[0019] 本申请实施例与现有技术相比存在的有益效果是:
[0020] 本申请实施例中,由于第一运动角度是根据运动轨迹以及逆运动学计算得到,而运动轨迹是预估的双足机器人离开地面之后的运动轨迹,因此,该第一运动角度为该双足机器人基于当前运动参数所得到的腿部各个关节的运动角度。同时,由于约束条件是根据该双足机器人将要执行的动作所属的运动类型确定,也即,该约束条件与该双足机器人将要执行的运动是匹配的,从而在根据该约束条件对第一运动角度进行优化后,能够得到更符合该双足机器人将要执行的运动所对应的腿部各个关节的运动角度,即保证得到的腿部各个关节的第二运动角度不超出该双足机器人将要执行的运动所对应的关节的角度限位,从而使得该双足机器人的弹跳运动控制得更准确。

附图说明

[0021] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0022] 图1是本申请一实施例提供的一种双足机器人的弹跳运动控制方法的流程示意图;
[0023] 图2是本申请一实施例提供的一种双足机器人的坐标系的示意图;
[0024] 图3是本申请一实施例提供的一种双足机器人的弹跳运动控制装置的结构示意图;
[0025] 图4是本申请一实施例提供的一种双足机器人的结构示意图。

具体实施方式

[0026] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0027] 应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0028] 还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0029] 另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0030] 在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
[0031] 实施例一:
[0032] 目前,当采用离线规划的方法确定双足机器人各个关节的运动角度时,可能存在规划得到的运动角度超出对应关节的限位,进而导致依据超出关节的限位的运动角度对双足机器人进行控制时,控制出错的问题。
[0033] 为了保证输入到伺服器的运动角度符合要求,本申请实施例提供了一种双足机器人的弹跳运动控制方法,在该方法中,先预估该双足机器人离开地面之后的运动轨迹,再根据该运动轨迹以及逆运动学计算出双足机器人腿部各个关节的第一运动角度,最后结合确定的约束条件对该第一运动角度进行优化,得到第二运动角度。由于约束条件是根据该双足机器人将要执行的动作所属的运动类型确定,也即,该约束条件与该双足机器人将要执行的运动是匹配的,从而在根据该约束条件对第一运动角度进行优化后,能够得到更符合该双足机器人将要执行的运动所对应的运动角度。
[0034] 下面结合附图对本申请实施例提供的一种双足机器人的弹跳运动控制方法进行描述,详述如下:
[0035] 图1示出了本申请实施例提供的一种双足机器人的弹跳运动控制方法的流程图,详述如下:
[0036] 步骤S11,在双足机器人离开地面之前,根据双足机器人在空中停留的时间或空中翻转的时间,预估双足机器人离开地面之后的运动轨迹。
[0037] 本实施例中,当双足机器人执行弹跳(如将要执行后空翻)动作(即离开地面)之前,该双足机器人将根据其在空中停留的时间或空中翻转的时间,预估其离开地面之后的运动轨迹。
[0038] 步骤S12,根据上述运动轨迹以及逆运动学计算出双足机器人腿部各个关节的第一运动角度。
[0039] 具体地,根据双足机器人的运动轨迹确定该双足机器人的质心坐标系,并将该质心坐标系代入机器人的逆运动学,计算出第一运动角度。
[0040] 如图2所示,针对双足机器人的弹跳运动,采用单质量块模型来计算该双足机器人的运动轨迹。假设双足机器人在如图2所示的三个参考坐标系的质心坐标系分别为:w(t)=T T[xw0 yw0 z(t) αw0 β(t) γw0],r(t)=[xr0 yr0 zr0 αr0 βr0 γr0] ,l(t)=[xl0 yl0 zl0 αl0 T
βl0 γl0] ,将三个坐标系代入机器人逆运动学中可得第一运动角度。上述质心坐标系中,前三个参数表示位置信息,后三个参数表示对应绕轴的转向角度,t表示时间。当t取多个连续的时刻时,上述质心坐标系中的z(t)和β(t)分别表示双足机器人离地后在竖直方向上的运动轨迹和旋转方向上的运动轨迹。
[0041] 需要指出的是,该第一运动角度是一个向量,该向量包括的每一项均为一个关节的角度,比如脚腕的关节的角度等。在一些实施例中,该第一运动角度为12维向量。
[0042] 步骤S13,根据上述双足机器人将要执行的动作所属的运动类型确定约束条件。
[0043] 本实施例中,双足机器人是根据接收到的控制命令执行对应的动作,比如,当用户希望双足机器人执行后空翻的动作时,控制命令将携带用于执行后空翻的动作所相关的参数,比如,双足机器人在竖直方向的加速度、角加速度等。当用户希望双足机器人执行跑步的动作时,控制命令将携带用于执行跑步的动作所相关的参数,比如,双足机器人在水平方向上的加速度等等。即,当双足机器人将要执行的动作所属的运动类型(比如是属于后空翻,还是属于不涉及翻转的跳跃等)不同时,其需要控制的关节以及各个关节所对应的参数通常是不同的,也即,根据不同的运动类型确定对应的约束条件将使得确定的约束条件更准确。
[0044] 步骤S14,根据上述约束条件对上述第一运动角度进行优化,得到第二运动角度。
[0045] 本实施例中,根据约束条件对第一运动角度进行优化后,使得优化后的第一运动角度与双足机器人将要执行的动作所属的运动类型更匹配,也即,通过约束条件对第一运动角度进行优化后,能够保证得到的第二运动角度不会超过其将要执行的动作所属的运动类型所对应的关节的角度的限位。
[0046] 步骤S15,根据第二运动角度控制双足机器人的弹跳运动。
[0047] 本实施例中,将优化后的第一运动角度(即第二运动角度)输入双足机器人的伺服,以便根据该第二运动角度控制该双足机器人执行对应的动作。由于第二运动角度为双足机器人腿部各个关节优化后的角度,因此,采用第二运动角度控制双足机器人的运动能够优化该双足机器人离开地面之前的运动轨迹。
[0048] 本申请实施例中,由于第一运动角度是根据运动轨迹以及逆运动学计算得到,而运动轨迹是预估的双足机器人离开地面之后的运动轨迹,因此,该第一运动角度为该双足机器人基于当前运动参数所得到的腿部各个关节的角度。同时,由于约束条件是根据该双足机器人将要执行的动作所属的运动类型确定,也即,该约束条件与该双足机器人将要执行的运动是匹配的,从而在根据该约束条件对第一运动角度进行优化后,能够得到更符合该双足机器人将要执行的运动所对应的关节的角度,即保证得到的第二运动角度不超出该双足机器人将要执行的运动所对应的关节的角度限位。
[0049] 在一些实施例中,上述步骤S13包括:
[0050] A1、根据上述双足机器人将要执行的动作所属的运动类型确定对应的动力学方程。
[0051] 具体地,假设上述的运动类型为后空翻,而后空翻涉及竖直方向弹跳和旋转方向运动,针对该竖直方向弹跳和旋转方向运动,分别建立动力学方程:
[0052]
[0053]
[0054]
[0055] 其中,W=[xw0 yw0 z(t)]T表示双足机器人质心在三轴方向的运动轨迹,“[]T”表示T向量的转置,t表示时间,m表示双足机器人的质量,g表示重力加速度,f=[fx fy fz]表示机器人与地面接触力,h表示机器人角动量,其可以为一个三维向量,A(θ)表示动量矩阵,该动量矩阵用于描述角速度和动量之间的关系,在该动量矩阵中,只有角速度是变化的,该动量矩阵可以为12×6维矩阵。c表示质心到接触点的向量,其可以为三维向量。本实施例中,参数上有一个点表示是该参数的一阶微分,有两个点表示是该参数的二阶微分,例如, 是该W的二阶微分,是θ的一阶微分。
[0056] A2、根据上述动力学方程确定约束条件。
[0057] 具体地,可将确定的动力学方程作为本实施例的约束条件。
[0058] 由于双足机器人的动作是通过模拟人的动作来完成,而人的动作是符合动力学方程的,因此,上述步骤A1和步骤A2中,通过运动类型来确定动力学方程,进而根据该动力学方程来确定对应的约束条件,能够保证约束条件与运动类型相匹配,进而提高确定的约束条件的准确性。
[0059] 在一些实施例中,上述动力学方程包括第一方程,且上述第一方程的一个参数为上述双足机器人与地面的接触力,上述步骤A2包括:
[0060] A21、根据上述第一方程确定第一子约束条件。
[0061] 具体地,可将第一方程作为第一子约束条件。
[0062] A22、根据上述双足机器人与地面的接触力确定上述双足机器人在离开地面之前不与地面发生滑动所对应的条件,确定的上述条件作为第二子约束条件。
[0063] 考虑到地面摩擦力的实际情况,当满足以下条件时,双足机器人在弹跳运动离地之前,不与地面发生滑动:
[0064] fx≤μfz
[0065] fy≤μfz
[0066] 其中μ表示双足机器人与地面之间的摩擦系数。
[0067] 本实施例中,考虑到双足机器人起跳时可能存在打滑等问题,因此,将不与地面发生滑动所对应的条件作为第二子约束条件,能够避免该双足机器人起跳时打滑。
[0068] A23、根据上述第一子约束条件和上述第二子约束条件确定上述约束条件。
[0069] 具体地,可将该第一子约束条件和第二子约束条件均作为上述的约束条件。
[0070] 上述A21~A23中,由于还将不与地面发生滑动所对应的条件作为约束条件中的一个条件,因此,能够保证双足机器人根据第二运动角度执行动作时,不与地面打滑。
[0071] 在一些实施例中,上述步骤S14包括:
[0072] B1、根据上述第一运动角度、上述第二运动角度、双足机器人离开地面之后的运动轨迹、上述第二运动角度的微分以及预设的权重系数,确定一个优化函数。
[0073] 本实施例中,第二运动角度的微分包括该第二运动角度的一阶微分,也可以包括该第二运动角度的二阶微分。其中,第二运动角度的一阶微分表示关节的角度的变化率,第二角度的二阶微分表示双足机器人的状态变化率。
[0074] B2、根据上述约束条件,从上述优化函数确定上述第二运动角度。
[0075] 上述B1和B2中,由于优化函数根据第一运动角度、上述第二运动角度、双足机器人离开地面之后的运动轨迹、上述第二运动角度的微分以及预设的权重系数确定,因此,可以使得根据该优化函数优化得到的第二运动角度,不仅在关节的角度上满足要求,且在关节的角度的变化率和/或状态变化率上也能满足要求。
[0076] 在一些实施例中,若预先设定双足机器人弹跳的高度,则上述步骤S11中根据所述双足机器人在空中停留的时间或空中翻转的时间,预估双足机器人离开地面之后的运动轨迹,包括:
[0077] C1、根据双足机器人弹跳的高度确定该双足机器人在空中停留的时间。
[0078] 本实施例中,由于机器人弹跳时,其受到重力加速度的影响,因此,可根据下式确定双足机器人在空中停留的时间:
[0079] H=(1/2)gT2
[0080] 其中,H为预先设定的双足机器人弹跳的高度,g为重力加速度,T为双足机器人在空中停留的时间。
[0081] C2、根据双足机器人在空中停留的时间,设计出双足机器人弹跳起飞时的角速度与在竖直方向上的速度,用以预估双足机器人离开地面之后的运动轨迹。
[0082] 具体地,可根据 计算出双足机器人弹跳起飞时的角速度ω,其中,上式中,π为数学常量。
[0083] 再根据v1=gT/2确定双足机器人弹跳起飞时在竖直方向上的速度。
[0084] 本实施例中,根据双足机器人在旋转与竖直移动两个方向上的运动,假设双足机器人采用的加速度是恒定的,竖直方向上的加速度为a0,角加速度为α0,竖直方向初始位置z0和角度初始位置β0,则可以计算得到双足机器人在两个方向上的运动轨迹z(t)与β(t):
[0085] z(t)=v1*t+(1/2)*(a0‑g)*t2,β(t)=(1/2)*α0*t2。
[0086] 根据z0和z(t),得到双足机器人在竖直方向上的完整的运动轨迹,根据β0和β(t),得到双足机器人在旋转方向上的完整的运动轨迹。由于双足机器人离开地面之后的运动轨迹主要与该双足机器人在空中停留的时间有关,因此,根据双足机器人在空中停留的时间、双足机器人的初始位置、上述双足机器人的加速度以及重力加速度预估上述双足机器人离开地面之后的运动轨迹,能够提高得到的运动轨迹的准确性。
[0087] 在一些实施例中,若预先设定双足机器人翻转的角速度,则上述步骤S11中根据所述双足机器人在空中停留的时间或空中翻转的时间,预估双足机器人离开地面之后的运动轨迹,包括:
[0088] D1、若双足机器人将要执行的动作所属的运动类型为空中翻转,则根据双足机器人将要执行的空中翻转所对应的角速度确定双足机器人在空中翻转的时间。
[0089] 本实施例中,当双足机器人将要执行的动作所属的运动类型为后空翻时,则双足机器人完成后空翻这一动作所需要的时间(即双足机器人在空中停留的时间)为:
[0090]
[0091] 其中,T为双足机器人翻转一周所需要的时间,ω为该双足机器人的旋转角速度,π为数学常量。
[0092] D2、根据双足机器人在空中翻转的时间,设计出双足机器人弹跳起飞时在竖直方向上的速度,用以预估双足机器人离开地面之后的运动轨迹。
[0093] 本实施例中,当确定出双足机器人在空中翻转的时间T之后,根据v1=gT/2确定双足机器人弹跳起飞时在竖直方向上的速度,最后计算得到双足机器人在旋转和竖直两个方向上的运动轨迹z(t)与β(t):
[0094] z(t)=v1*t+(1/2)*(a0‑g)*t2,β(t)=(1/2)*α0*t2。
[0095] 由于双足机器人离开地面之后的运动轨迹主要与该双足机器人在空中停留的时间有关,因此,根据双足机器人在空中停留的时间、双足机器人的初始位置、上述双足机器人的加速度以及重力加速度预估上述双足机器人离开地面之后的运动轨迹,能够提高得到的运动轨迹的准确性。
[0096] 在一些实施例中,假设步长设置为tm,可得插入点数 其中,T为预估的双足机器人在空中停留的时间(或空中翻转的时间),设计优化函数为:
[0097]
[0098]
[0099]
[0100]
[0101] W(k)=kinematic(θ(k))
[0102] fx≤μfz,fy≤μfz
[0103] θ(k)min≤θ(k)≤θ(k)max
[0104] 其中,θr(k)表示第一运动角度,θ(k)表示第二运动角度,“|| ||”表示向量的模,Q1,Q2和Q3表示权重系数,θ(k)min和θ(k)max表示关节的角度的上限和下限,“s.t.”表示约束条件,kinematic()表示机器人正运动学。此外,Q1,Q2和Q3这三者相加的和等于1,当需要得到一个与θr(k)的差值最小的θ(k)时,设置Q1最大;当需要关节的角度变化率最小时,设置Q2最大;当需要末端加速度最小时,设置Q3最大;当需要双足机器人的状态变化率最小时,设置Q4最大。
[0105] 通过构建以上优化指标,并通过优化工具计算,可以得到第二运动角度θ(k),以及机器人状态W(k)和β(k)。通过将得到的θ(k)发送到机器人伺服,从而控制双足机器人的运动。
[0106] 在一些实施例中,当步骤S15之后,包括:
[0107] E1、检测双足机器人的弹跳运动是否符合要求,并在不符合要求时,调整所述预设的权重系数,以得到新的优化函数。
[0108] 由于双足机器人在根据得到的第二运动角度进行弹跳运动时,其弹跳运动可能存在不符合要求的情况,比如,关节的角度变化率不满足要求,或者,末端加速度不满足要求等,此时,需要调整对应的权重系数,以形成新的优化函数。
[0109] E2、根据约束条件,从新的优化函数确定新的第二运动角度。
[0110] E3、根据新的第二运动角度控制双足机器人的弹跳运动。
[0111] 当形成新的优化函数之后,再根据设定的约束条件重新确定出第二运动角度。之后,继续根据该新的第二运动角度控制该双足机器人的弹跳运动,并返回E1,直到依据最新确定的第二运动角度控制的弹跳运动符合要求。
[0112] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0113] 实施例二:
[0114] 对应于上文实施例上述的双足机器人的弹跳运动控制方法,图3示出了本申请实施例提供的一种双足机器人的弹跳运动控制装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
[0115] 参照图3,该双足机器人的弹跳运动控制装置3可应用在双足机器人中,包括:运动轨迹预估模块31、第一运动角度计算模块32、约束条件确定模块33以及第二运动角度确定模块34。其中:
[0116] 运动轨迹预估模块31,用于在双足机器人离开地面之前,根据双足机器人在空中停留的时间或空中翻转的时间,预估上述双足机器人离开地面之后的运动轨迹。
[0117] 第一运动角度计算模块32,用于根据上述运动轨迹以及逆运动学计算出双足机器人腿部各个关节的第一运动角度。
[0118] 约束条件确定模块33,用于根据上述双足机器人将要执行的动作所属的运动类型确定约束条件。
[0119] 第二运动角度确定模块34,用于根据上述约束条件对上述第一运动角度进行优化,得到第二运动角度。
[0120] 弹跳运动控制模块,用于根据第二运动角度控制双足机器人的弹跳运动。
[0121] 本申请实施例中,由于第一运动角度是根据运动轨迹以及逆运动学计算得到,而运动轨迹是预估的双足机器人离开地面之后的运动轨迹,因此,该第一运动角度为该双足机器人基于当前运动参数所得到的关节的角度。同时,由于约束条件是根据该双足机器人将要执行的动作所属的运动类型确定,也即,该约束条件与该双足机器人将要执行的运动是匹配的,从而在根据该约束条件对第一运动角度进行优化后,能够得到更符合该双足机器人将要执行的运动所对应的关节的角度,即保证得到的第二运动角度不超出该双足机器人将要执行的运动所对应的关节的角度限位。
[0122] 在一些实施例中,上述约束条件确定模块33包括:
[0123] 动力学方程确定单元,用于根据上述双足机器人将要执行的动作所属的运动类型确定对应的动力学方程。
[0124] 约束条件确定单元,用于根据上述动力学方程确定约束条件。
[0125] 在一些实施例中,上述动力学方程包括第一方程,且上述第一方程的一个参数为上述双足机器人与地面的接触力,上述动力学方程确定单元包括:
[0126] 第一子约束条件确定单元,用于根据上述第一方程确定第一子约束条件;第二子约束条件确定单元,用于根据上述双足机器人与地面的接触力确定上述双足机器人在离开地面之前不与地面发生滑动所对应的条件,确定的上述条件作为第二子约束条件;
[0127] 约束条件组合单元,用于根据上述第一子约束条件和上述第二子约束条件确定上述约束条件。
[0128] 在一些实施例中,上述第二运动角度确定模块34包括:
[0129] 优化函数确定单元,用于根据上述第一运动角度、上述第二运动角度、双足机器人离开地面之后的运动轨迹、上述第二运动角度的微分以及预设的权重系数,确定一个优化函数;
[0130] 第二运动角度确定单元,用于根据上述约束条件,从上述优化函数确定上述第二运动角度。
[0131] 在一些实施例中,若预先设定双足机器人弹跳的高度,则上述运动轨迹预估模块31包括:
[0132] 第一时间预估单元,用于根据双足机器人弹跳的高度确定该双足机器人在空中停留的时间。
[0133] 第一运动轨迹预估单元,用于根据双足机器人在空中停留的时间,设计出双足机器人弹跳起飞时的角速度与在竖直方向上的速度,用以预估双足机器人离开地面之后的运动轨迹。
[0134] 在一些实施例中,若预先设定双足机器人翻转的角速度,则上述运动轨迹预估模块31包括:
[0135] 第二时间预估单元,用于若双足机器人将要执行的动作所属的运动类型为空中翻转,则根据双足机器人将要执行的空中翻转所对应的角速度确定双足机器人在空中翻转的时间。
[0136] 第二运动轨迹预估单元,用于根据双足机器人在空中翻转的时间,设计出双足机器人弹跳起飞时在竖直方向上的速度,用以预估双足机器人离开地面之后的运动轨迹。
[0137] 在一些实施例中,该双足机器人的弹跳运动控制装置3还包括:
[0138] 新的优化函数确定模块,用于检测双足机器人的弹跳运动是否符合要求,并在不符合要求时,调整所述预设的权重系数,以得到新的优化函数。
[0139] 新的第二运动角度确定模块,用于根据约束条件,从新的优化函数确定新的第二运动角度。
[0140] 运动控制模块,用于根据新的第二运动角度控制双足机器人的弹跳运动。
[0141] 在一些实施例中,假设步长设置为tm,可得插入点数 其中,T为预估的双足机器人在空中停留的时间,设计优化函数为:
[0142]
[0143]
[0144]
[0145]
[0146] W(k)=kinematic(θ(k))
[0147] fx≤μfz,fy≤μfz
[0148] θ(k)min≤θ(k)≤θ(k)max
[0149] 其中,θr(k)表示第一运动角度,θ(k)表示第二运动角度,“|| ||”表示向量的模,Q1,Q2和Q3表示权重系数,当需要得到一个与θr(k)的差值最小的θ(k)时,设置Q1最大,0(k)min和θ(k)max表示关节的角度的上限和下限,“s.t.”表示约束条件,kinematic()表示机器人正运动学。
[0150] 需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0151] 实施例三:
[0152] 图4为本申请一实施例提供的双足机器人的结构示意图。如图4所示,该实施例的双足机器人4包括:至少一个处理器40(图4中仅示出一个处理器)、存储器41以及存储在上述存储器41中并可在上述至少一个处理器40上运行的计算机程序42,上述处理器40执行上述计算机程序42时实现上述任意各个方法实施例中的步骤。
[0153] 该双足机器人可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是双足机器人4的举例,并不构成对双足机器人4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
[0154] 所称处理器40可以是中央处理单元(Central Processing Unit,CPU),该处理器40还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0155] 上述存储器41在一些实施例中可以是上述双足机器人4的内部存储单元,例如双足机器人4的硬盘或内存。上述存储器41在另一些实施例中也可以是上述双足机器人4的外部存储设备,例如上述双足机器人4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器41还可以既包括上述双足机器人4的内部存储单元也包括外部存储设备。上述存储器41用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
[0156] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0157] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0158] 本申请实施例提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行时实现可实现上述各个方法实施例中的步骤。
[0159] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/机器人的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0160] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0161] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0162] 在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0163] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0164] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。