本发明属于机器人技术领域,尤其涉及一种双足机器人的步态控制方法、装置、终端设备及介质。
背景技术:
双足机器人具有静态步行和动态步行两种不同的步行方式。在动态步行方式之下,由于双足机器人的质心投影点可以处于机器人的支撑多边形之外,因而控制双足机器人的动态步行相对复杂,由此使得动态步行成为了当下机器人领域的一个研究热点。
目前,虽然许多双足机器人已成功实现了通过动态步行的方式来上下楼梯,但在现有双足机器人的步态控制方式中,为了减小步态规划和控制算法的难度,通常都需要引入机器人足底与地面始终保持平行的这一前提条件。也就是说,在机器人抬腿和落足时,其足底与地面都必须时刻保持平行,因此,这种步态方式与人类的步态行走方式存在较大的区别,仿真程度较低。并且,在这种步态方式之下,基于始终与地面保持平行的足底,机器人难以实现较大幅度地抬腿,因而限制了双足机器人上下楼梯的速度,从而也降低了双足机器人的运动效率。
技术实现要素:
有鉴于此,本发明实施例提供了一种双足机器人的步态控制方法、装置、终端设备及介质,以解决现有技术中双足机器人的运动效率以及仿真程度均较为低下的问题。
本发明实施例的第一方面提供了一种双足机器人的步态控制方法,包括:
获取双足机器人的足端位姿,所述足端位姿包括足端位置以及足端姿态;
获取所述双足机器人的本体位姿;
通过逆运动学算法,对所述本体位姿以及所述足端位姿进行运算处理,以得到所述双足机器人各个关节的关节角度;
基于各个所述关节角度,调整所述双足机器人的步态。
本发明实施例的第二方面提供了一种双足机器人的步态控制装置,包括:
足端位姿获取单元,用于获取双足机器人的足端位姿,所述足端位姿包括足端位置以及足端姿态;
本体位姿获取单元,用于获取所述双足机器人的本体位姿;
关节角度确定单元,用于通过逆运动学算法,对所述本体位姿以及所述足端位姿进行运算处理,以得到所述双足机器人各个关节的关节角度;
步态调整单元,用于基于各个所述关节角度,调整所述双足机器人的步态。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取双足机器人的足端位姿,所述足端位姿包括足端位置以及足端姿态;
获取所述双足机器人的本体位姿;
通过逆运动学算法,对所述本体位姿以及所述足端位姿进行运算处理,以得到所述双足机器人各个关节的关节角度;
基于各个所述关节角度,调整所述双足机器人的步态。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
获取双足机器人的足端位姿,所述足端位姿包括足端位置以及足端姿态;
获取所述双足机器人的本体位姿;
通过逆运动学算法,对所述本体位姿以及所述足端位姿进行运算处理,以得到所述双足机器人各个关节的关节角度;
基于各个所述关节角度,调整所述双足机器人的步态。
本发明实施例在调整双足机器人行走步态的过程中,加入了对机器人足端位姿的规划及控制,通过综合机器人的本体位姿以及足端位姿来计算机器人各个关节的关节角度,使得基于各个关节角度来调整机器人的步态后,双足机器人能够实现以类人步态的方式进行行走,增强了机器人的仿真程度,使得机器人的行走步态更为流畅,因而也提高了双足机器人上下楼梯的速度,增强了机器人的运动能力以及运动效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的双足机器人的步态控制方法的实现流程图;
图2是本发明实施例提供的双足机器人的一腿部模型示意图;
图3是本发明实施例提供的双足机器人的步态控制方法s103的具体实现流程图;
图4是本发明实施例提供的双足机器人的平地行走步态示意图;
图5是本发明实施例提供的双足机器人的模型示意图;
图6是本发明实施例提供的双足机器人的步态控制方法s103的另一具体实现流程图;
图7是本发明实施例提供的双足机器人的步态控制装置的结构框图;
图8是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参见图1,图1是本发明实施例提供的双足机器人的步态控制方法的实现流程图。如图1所示的实现流程包括步骤s101至s104,各步骤的实现原理具体如下:
s101:获取双足机器人的足端位姿,所述足端位姿包括足端位置以及足端姿态。
s102:获取所述双足机器人的本体位姿。
本发明实施例中,机器人具体是指具有双足且能够行走的仿人形机器人。通过接收外部设备或者接收用户所直接输入的控制指令,上述机器人能够执行与控制指令对应的各项动作或姿态。
机器人的位姿是指机器人在空间的位置和姿态。其中,位置为具体的空间坐标,可通过一个位置矩阵来表示;姿态是指机器人所需呈现的最终动作形态,具体可通过坐标系中三个坐标轴两两夹角的余弦值所组成的姿态矩阵来表示。
本发明实施例中,双足机器人的足端位姿包括足端位置以及足端姿态,即,机器人足部各个活动杆件在空间的位置和姿态。其中,足部是指该仿人形机器人中,踝关节及其以下的活动杆件所组成的器件部位。
为了控制双足机器人通过动态步行的方式来上下楼梯,本发明实施例中,获取用户输入的各项初始化参数。上述初始化参数包括但不限于台阶高度、台阶宽度以及当前机器人足端脚掌与水平地面的夹角等。基于预设算法对上述初始化参数进行识别,以确定出双足机器人在当前时刻的各项控制参数。例如,确定出双足机器人在当前时刻的抬腿高度、步幅长度、步态周期以及质心侧移幅度等。根据确定出的各项控制参数,获取机器人的质心运动轨迹以及足端运动轨迹。其中,足端运动轨迹包含上述足端位置以及足端姿态。
机器人的本体位姿为机器人驱干的位姿,其用于指示驱干质心在各个时刻的位置以及姿态。机器人的本体位姿同样基于双足机器人的上述各项控制参数获得。
s103:通过逆运动学算法,对所述本体位姿以及所述足端位姿进行运算处理,以得到所述双足机器人各个关节的关节角度。
逆运动学即已知机器人末端的位置姿态,计算机器人对应位置的全部关节变量。
本发明实施例中,通过预设的逆运动学算法,对机器人的本体位姿以及足端位姿进行求解,以分别获取机器人左右两腿各个关节的关节角度。上述逆运动学算法包括但不限于解析法以及数值法。机器人的关节包括但不限于踝关节、膝关节以及髋关节等。每一关节配置有用于控制该关节进行转动的舵机。其中,通过上述逆运动学所求解得到的角度中,每一关节的关节角度包括该关节的滚转角、俯仰角以及摆动角。
示例性地,图2示出了本发明实施例提供的双足机器人的一腿部模型示意图。如图2所示,若双足机器人的本体位姿和足端位姿分别为(p1,r1)和(p7,r7),从驱干坐标系的原点到髋关节的距离为d,大腿长度为a,小腿长度为b,则通过以下公式计算出髋关节的位置为:
在踝关节坐标系中,髋关节的位置矢量为:
则踝关节与髋关节之间的相对距离c为:
根据余弦定理可得,双足机器人中,膝关节的角度q5为:
在踝关节坐标系中,根据矢量r可得,踝关节的滚动角q7和俯仰角q6分别为
q7=atan2(ry,rz)(5)
对于髋关节的摆动角q2、滚转角q3以及俯仰角q4,髋关节各连杆姿态之间的关系为:
r7=r1rz(q2)rx(q3)ry(q4)ry(q5+q6)rx(q7)(7)
因此,基于上述式子(7)可得:
q2=atan2(-r12,r22)(8)
q3=atan2(-r32,-r12sinq2+r22cosq2)(9)
q4=atan2(-r31,r33)(10)
s104:基于各个所述关节角度,调整所述双足机器人的步态。
基于上述求解得到的双足机器人中各个关节的关节角度,分别控制该双足机器人的每一关节进行转动,以使关节在各个方向上达到其对应的摆动角、滚转角以及俯仰角。因此,通过各个关节的联动,实现了双足机器人在行走过程中的步态调整,使其在各个时刻能够具有预设的本体姿态以及足端姿态。
进一步地,在基于求解出的各个关节角度以调整双足机器人的步态后,返回执行上述s101,以根据最新时刻下所对应的双足机器人的足端位姿以及本体位姿,重新计算当前时刻双足机器人各个关节的关节角度。
本发明实施例在调整双足机器人行走步态的过程中,加入了对机器人足端位姿的规划及控制,通过综合机器人的本体位姿以及足端位姿来计算机器人各个关节的关节角度,使得基于各个关节角度来调整机器人的步态后,双足机器人能够实现以类人步态的方式进行行走,增强了机器人的仿真程度,使得机器人的行走步态更为流畅,因而也提高了双足机器人上下楼梯的速度,增强了机器人的运动能力以及运动效率。
作为本发明的一个实施例,图3示出了本发明实施例工的双足机器人的步态控制方法s103的具体实现流程,详述如下:
s1031:控制所述双足机器人的脚掌绕预设端点进行转动。
在机器人的摆腿过程中,在其抬腿和落足的时刻,控制机器人的脚掌绕预设端点进行转动,以使的机器人的足底与地面不再保持水平,使得足底与地面之间呈现一定的夹角。
具体地,如图4所示,对于双足机器人中的一个足端,当检测到所述踝关节的位置变化量为正值时,以所述双足机器人的该足端的脚尖a为端点,控制所述双足机器人的脚掌绕该端点a进行转动。当检测到所述踝关节的位置变化量为负值时,以所述双足机器人的该足端的脚跟b为端点,控制所述双足机器人的脚掌绕该端点b进行转动。通过本发明实施例提供的方法,使得双足机器人能够采用脚尖先推进,以脚跟着地的类人步态方式进行行走。
s1032:获取所述双足机器人的足端初始位置以及足端目标位置。
s1033:根据所述足端目标位置以及所述足端初始位置,在所述脚掌的转动过程中,计算所述双足机器人的踝关节的位置变化量。
s1034:对所述本体位姿、所述足端位置以及所述踝关节的位置变化量进行运算处理,以得到所述双足机器人各个关节的关节角度。
在机器人上下楼梯的过程中,机器人的足端在各个时刻的坐标位置不同。本发明实施例中,在每一时刻,获取双足机器人足部关节的足端初始位置以及足部关节在下一时刻所即将要到达的足端目标位置。
本发明实施例中,足部关节为双足机器人的踝关节以及膝关节。
示例性地,图5示出了一双足机器人的模型示意图。在图5中,实线为双足机器人脚掌转动前的支撑腿位置,虚线为双足机器人的脚掌转动角度θ后,其支撑腿所处的位置。定义机器人的前进方向为坐标系x轴,竖直方向为z轴,y轴由右手系确定,坐标原点位于双足机器人的脚尖e点。其中,点a表示双足机器人的髋关节,点b和点c表示双足机器人的膝关节以及踝关节的足端初始位置,ef为双足机器人的一脚掌长度。b’、c’分别表示脚掌转动角度θ后,膝关节和踝关节的足端目标位置。
当双足机器人的支撑腿的足端姿态发生变化时,机器人的踝关节的坐标位置将发生改变,从而间接影响到机器人本体的位置和姿态。因此,本发明实施例中,根据踝关节的足端目标位置以及足端初始位置,计算踝关节的位置变化量。
具体地,在图5的双足机器人脚掌ef中,以脚尖e为原点建立坐标系,在控制机器人的脚掌ef绕着脚尖e进行转动之前,踝关节在坐标系中的足端初始位置c为:
在控制机器人的脚掌ef绕着脚尖e转动角度θ后,踝关节从足端初始位置c转动到足端目标位置c’,由几何关系可知,足端目标位置c’在坐标系中的位置为:
其中,θ0为双足机器人脚背ce所在平面与水平地面之间的初始夹角。
基于上述公式(11)和(12)可求得,双足机器人的脚掌ef绕着脚尖e转动角度θ后,踝关节的位置变化量为:
基于上述公式(13)所得出的踝关节的位置变化量以及基于当前时刻双足机器人所对应的本体位姿以及足端位置,通过逆运动学的方式计算出双足机器人各个关节的关节角度。
本发明实施例中,通过控制机器人的脚掌进行转动,可以在机器人的本体进行移动行走之前,基于踝关节的位置变化而提前摆动机器人的大腿,因此,降低了大腿在本体摆动过程中对机器人本体姿态的影响。由于本发明实施例中,机器人的足底不再时刻与地面保持平行,且采用了脚尖先推进,然后脚后跟着地的方式来行走,因而使得双足机器人实现了类人步态的上下楼梯方式,增强了机器人的仿真程度以及提高了其上下楼梯的速度。
作为本发明的一个实施例,图6示出了本发明实施例提供的双足机器人的步态控制方法s103的另一具体实现流程,详述如下:
s1034:在所述脚掌的转动过程中,获取所述双足机器人的髋关节位置。
s1035:根据所述双足机器人的足端目标位置,计算所述足端目标位置与所述髋关节位置的相对距离。
s1036:通过逆运动学算法,对所述本体位姿、所述足端位置、所述相对位置以及所述踝关节位置变化量进行运算处理,以得到所述双足机器人各个关节的关节角度。
在控制双足机器人的脚掌绕脚尖进行转动时,在该脚掌离开水平地面之前,双足机器人的髋关节位置将保持不动,此时,获取双足机器人在该过程中恒定不变的髋关节位置。
例如,在如图5所示的坐标系中,髋关节a的位置为:
在双足机器人的脚掌绕脚尖e进行转动之前,髋关节位置a与踝关节的足端初始位置c的相对距离为:
在双足机器人的脚掌绕脚尖e转动角度θ后,髋关节位置a与踝关节的足端目标位置c’的相对距离为:
本发明实施例中,将上述式子(13)所计算得到的踝关节的位置变化量作为上述式子(2)中足端位姿p7的补偿值,将上述式子(16)所计算得出的足端目标位置与髋关节位置的相对距离作为上述式子(2)中的髋关节位置矢量r,以通过上述实施例中的逆运动学算法,计算出双足机器人各个关节的关节角度,从而基于实时计算出的各个关节角度,调整双足机器人的步态,以推动机器人在上下楼梯过程中的行走。
本发明实施例中,通过在双足机器人的步态中引入足端姿态的规划及控制,并依据各个时刻所实时得到的计算结果,补偿踝关节的位置变化量以及补偿髋关节位置与踝关节位置的相对距离,保证了通过逆运动学来计算双足机器人各个关节的关节角度时,能够得到更为准确的计算结果,避免了足端位姿的引入而导致机器人的步态控制出现错误,使得双足机器人的行走步态更为自然流畅,实现了较大步幅的行走,因而提高了机器人的运动速度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的双足机器人的步态控制方法,图7示出了本发明实施例提供的双足机器人的步态控制装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图7,该装置包括:
足端位姿获取单元71,用于获取双足机器人的足端位姿,所述足端位姿包括足端位置以及足端姿态。
本体位姿获取单元72,用于获取所述双足机器人的本体位姿。
关节角度确定单元73,用于通过逆运动学算法,对所述本体位姿以及所述足端位姿进行运算处理,以得到所述双足机器人各个关节的关节角度。
步态调整单元74,用于基于各个所述关节角度,调整所述双足机器人的步态。
可选地,所述步态调整单元74包括:
转动子单元,用于控制所述双足机器人的脚掌绕预设端点进行转动。
第一获取子单元,用于获取所述双足机器人的足端初始位置以及足端目标位置。
第一计算子单元,用于根据所述足端目标位置以及所述足端初始位置,在所述脚掌的转动过程中,计算所述双足机器人的踝关节的位置变化量。
第一运算子单元,用于对所述本体位姿、所述足端位置以及所述踝关节的位置变化量进行运算处理,以得到所述双足机器人各个关节的关节角度。
可选地,所述步态调整单元74还包括:
第二获取子单元,用于在所述脚掌的转动过程中,获取所述双足机器人的髋关节位置。
第二计算子单元,用于根据所述双足机器人的足端目标位置,计算所述足端目标位置与所述髋关节位置的相对距离。
第二运算子单元,用于通过逆运动学算法,对所述本体位姿、所述足端位置、所述相对位置以及所述踝关节位置变化量进行运算处理,以得到所述双足机器人各个关节的关节角度。
可选地,所述转动子单元具体用于:
当检测到所述踝关节的位置变化量为正值时,以所述双足机器人的脚尖为第一端点,控制所述双足机器人的脚掌绕所述第一端点进行转动;
当检测到所述踝关节的位置变化量为负值时,以所述双足机器人的脚跟为第二端点,控制所述双足机器人的脚掌绕所述第二端点进行转动。
可选地,所述双足机器人的步态控制装置还包括:
返回单元75,用于返回执行所述获取双足机器人的足端位姿的步骤。
本发明实施例在调整双足机器人行走步态的过程中,加入了对机器人足端位姿的规划及控制,通过综合机器人的本体位姿以及足端位姿来计算机器人各个关节的关节角度,使得基于各个关节角度来调整机器人的步态后,双足机器人能够实现以类人步态的方式进行行走,增强了机器人的仿真程度,使得机器人的行走步态更为流畅,因而也提高了双足机器人上下楼梯的速度,增强了机器人的运动能力以及运动效率。
图8是本发明一实施例提供的终端设备的示意图。如图8所示,该实施例的终端设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82,例如双足机器人的步态控制程序。所述处理器80执行所述计算机程序82时实现上述各个双足机器人的步态控制方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图5所示单元71至75的功能。
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述终端设备8中的执行过程。
所述终端设备8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是终端设备8的示例,并不构成对终端设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述终端设备8的内部存储单元,例如终端设备8的硬盘或内存。所述存储器81也可以是所述终端设备8的外部存储设备,例如所述终端设备8上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器81还可以既包括所述终端设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。