CN104331081B - 一种双足机器人斜面行走的步态规划方法 - Google Patents

一种双足机器人斜面行走的步态规划方法 Download PDF

Info

Publication number
CN104331081B
CN104331081B CN201410529230.7A CN201410529230A CN104331081B CN 104331081 B CN104331081 B CN 104331081B CN 201410529230 A CN201410529230 A CN 201410529230A CN 104331081 B CN104331081 B CN 104331081B
Authority
CN
China
Prior art keywords
mrow
mtd
plane
mtr
msub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410529230.7A
Other languages
English (en)
Other versions
CN104331081A (zh
Inventor
黄强
张文
余张国
陈学超
孟立波
张伟民
高峻峣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201410529230.7A priority Critical patent/CN104331081B/zh
Publication of CN104331081A publication Critical patent/CN104331081A/zh
Application granted granted Critical
Publication of CN104331081B publication Critical patent/CN104331081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Magnetic Resonance Imaging Apparatus (AREA)
  • Manipulator (AREA)

Abstract

本发明公开了一种双足机器人斜面行走的步态规划方法,属于机器人技术领域。所述方法包括三维线性倒立摆的非正交分解与合成和基于双腿长线性倒立摆的步态规划两大核心理论。所述方法包括以下步骤:步行参数的配置,三维线性倒立摆的非正交分解,基于三次样条插值的足部轨迹规划,基于双腿长线性倒立摆的矢状面和冠状面的质心轨迹规划,矢状面和冠状面质心轨迹的非正交合成,逆运动学求解机器人各个关节轨迹。本发明提供的方法能够有效地解决双足机器人在斜面上各个方向上的稳定行走,具有通用性,同时,算法简单,实用性强。

Description

一种双足机器人斜面行走的步态规划方法
技术领域
本发明涉及一种双足机器人斜面行走的步态规划方法,属于机器人技术领域。
背景技术
由于与人类在外形上和功能上具有相似性,双足机器人对人类的日常生活环境具有很强的适应性,因此双足机器人的研究一直是机器人领域的热点之一。双足机器人是集机械、电子、材料、控制、人工智能和仿生学等多学科于一体的综合性平台,是高新技术密集的机电一体化产品。双足机器人的研究对其他各学科的发展也具有促进作用。
双足机器人辅助和服务人类的前提是能够在人类生活的各种环境稳定行走。然而双足机器人自身的高质心、多自由度耦合、支撑区域小等特点,使其自身在行走过程中容易失去稳定性。因此,早期为了有效地简化双足机器人的步态规划和平衡控制,结构化的平整地面是研究的重点。通过学者们的研究,不少关键的理论得到应用,例如ZMP(零力矩点)稳定判据和基于三维线性倒立摆模型的轨迹规划等。随着研究的深入和相关科学技术的发展,科研人员清楚地认识到双足机器人的应用必须应对环境中的各种地面(如台阶、斜面、崎岖路面等),这也是双足机器人优于其他类型机器人的一个重要特征。本发明就是以实现双足机器人在斜面上各个方向上的稳定行走这一目标提出的。
现有论文“The 3D Linear Inverted Pendulum Mode:A simple modeling for abiped walking pattern generation”,阐述了一种基于三维线性倒立摆的仿人机器人行走的步态规划方法,该方法能有效地解决平地和台阶上的双足行走,但是对于斜面上的双足行走没有进入深入的解释和说明。
申请号为201110193236.8的中国发明专利申请公开了一种仿人机器人斜坡步行模式的在线生成的方法,尝试建立仿人机器人在斜坡上的桌子-小车模型,从而实现在线生成斜坡步行模式。但是,该发明在建模过程中默认仿人机器人的前进方向与斜面最大/小梯度方向重合,即上下坡这种特殊情况,因此该方法不适用于斜面上各个方向上的步行。
现有论文“3-D Biped Robot Walking along Slope with Dual Length LinearInverted Pendulum Method(DLLIPM)”,提出了一种双足机器人沿着斜面行走的步态规划方法,该方法采用不同腿长的方式使机器人的质心在行走过程中保持水平,以达到减小地面冲击的目的,但是该方法也只是局限在一个特殊方向的斜面行走,同时,由于缺少双脚支撑期,不同腿长带来左右腿运动的不协调使得步态很不自然。
虽然现有文献和专利尝试解决双足机器人在斜面上行走的问题,但是多数研究具有局限性,只能实现斜面上特殊方向(如上下坡、沿斜面)的行走,不适用于斜面上各个方向行走这种一般情况,因此,本发明提出了一种通用的双足机器人斜面行走的步态规划方法,以实现双足机器人在斜面上各个方向的稳定行走,从而达到提高双足机器人环境适应性这一目的。
发明内容:
为了实现双足机器人在斜面上各个方向的稳定行走,提高双足机器人的环境适应性。本发明提供了一种双足机器人斜面行走的步态规划方法,利用三维线性倒立摆的非正交分解与合成能有效解决双足机器人在斜面上矢状面和冠状面在世界坐标系的描述问题,具有双脚支撑期的双腿长线性倒立摆的斜面步态规划能在减少地面冲击的同时保证步态的协调性。
本发明通过以下技术方案实现。
一种双足机器人斜面行走的步态规划方法,所述方法包括以下步骤:
步骤1,配置斜面参数和步行参数,对双足机器人在斜面各个方向的行走进行参数统一化描述,从而实现步态规划方法通用性的特征;
步骤2,对三维线性倒立摆进行矢状面和冠状面的非正交分解,并计算矢状面和冠状面的相关变换参数,为后续协调稳定的质心轨迹规划做准备;
步骤3,基于三次样条插值的足部轨迹规划,实现双足机器人的迈步软着地这一过程;
步骤4,计算双腿长倒立摆的模型参数和单双脚支撑期衔接处的规划参数,对矢状面和冠状面的质心轨迹进行规划,其中单脚支撑期采用双腿长线性倒立摆,双脚支撑期采用四次多项式插值,以实现分解平面中质心运动的稳定性和协调性规划。
步骤5,质心运动的非正交合成,实现三维质心轨迹在正交世界坐标系中的描述。
步骤6,将世界坐标系下的足部轨迹转换到双足机器人质心坐标系,并通过双足机器人的逆运动学求解得到各个关节的轨迹规划。
优选地,所述步骤1包括配置双足机器人在斜面上各个方向行走统一化参数α和β,其中α为斜面的倾斜角度,取值范围为-90°~90°,β为斜面最大/小梯度方向(注:α>0,取最大方向;α<0,取最小方向)与双足机器人前进方向的角度,取值范围为-90°~90°。如此,就可描述双足机器人在斜面上各个方向上的行走,一些特殊参数的意义描述如下:
α=0,双足机器人在水平地面行走;
α>0,双足机器人上坡;
α<0,双足机器人下坡;
β=0,双足机器人沿着斜面最大/小梯度方向上下坡;
β=±90°,双足机器人沿着斜面梯度为0的方向行走;
所述步骤1中还包括步行参数的配置,包括步行速度V、步长Lstep、步行周期Tstep、步宽Wstep、双脚支撑期的时间占比r、步行质心高度zc和抬脚高度Hstep等参数,其中参数Lstep、Wstep、Hstep在斜面世界坐标系ΣS描述(定义斜面世界坐标系原点固定在斜面上,位于2只脚的中点,y轴是双足机器人的前进方向,z轴垂直斜面向上,x轴由右手定则得到),而zc在水平世界坐标系ΣH描述(定义水平世界坐标系的原点固定,与ΣS的原点重合,z轴竖直向上,x,y轴在水平面内,y轴指向斜面最大/小梯度方向,x轴由右手定则得到)。
优选地,所述步骤2中的三维线性倒立摆的非正交分解详细描述如下:
在进行双足机器人步态规划的过程中,通常将质心的运动分解到双足机器人的矢状面和冠状面,但是由于重力是在竖直方向而不是垂直于斜面,所以规划应该在水平世界坐标系下描述而不是在斜面世界坐标系描述。同时,由于双足机器人的矢状面和冠状面在水平面上的投影构成的不是一个直角,需要对三维线性倒立摆规划的非正交分解进行论证,具体证明如下:
三维线性倒立摆的最大特征是无质量杆对质心的作用力在竖直方向上(水平世界坐标系的z轴)抵消重力,在水平面上驱动质心做变速运动,当三维线性倒立摆分解在在冠状面xOz与矢状面yOz时,其动力学模型的描述如下:
其中,M是倒立摆质心质量,x表示双足机器人冠状面在水平面投影方向,y表示双足机器人矢状面在水平面的投影方向,z表示竖直向上方向,r是支撑杆长度,f是支撑杆的伸缩力,g是重力加速度,进一步分别得到冠状面和矢状面的质心运动学方程:
这里,zc为线性倒立摆的质心高度,设质心在x方向上的初始位置为x(0),可求解微分方程得x,y关于时间t的解析表达式,仅列举x方向表达式x(t),如下,y方向相同:
因此,水平面上x,y轴是否正交对双足机器人的三维线性倒立摆模型分解与合成没有影响,将质心运动分解为矢状面和冠状面后,矢状面和冠状面的相关参数与斜面参数α和β的关系以及各个坐标系之间的变换需要得到,以方便后续规划。不妨做如下定义:
矢状面坐标系ΣSag:z轴竖直向上,y轴是斜面世界坐标系ΣS的y轴在水平面上的投影,水平世界坐标系ΣH绕z轴旋转γ可以得到ΣSag,ΣSag绕x轴旋转后y轴与斜面世界坐标系ΣS的y轴重合;
冠状面坐标系ΣCor:z轴竖直向上,x轴是斜面世界坐标系ΣS的x轴在水平面上的投影,水平世界坐标系ΣH绕z轴旋转θ可以得到ΣCor,ΣCor绕y轴旋转ξ后x轴与斜面世界坐标系ΣS的x轴重合;
由上面的定义,可以得出以下旋转变换:
水平世界坐标系ΣH通过绕x轴旋转α,再绕z轴旋转β得到斜面世界坐标系ΣS,因此,ΣS相对ΣH的旋转变换矩阵的推导如下
利用不同方式的坐标系变换后坐标轴的重合关系,可得到矢状面坐标系ΣSag的y轴与水平世界坐标系ΣH的y轴的夹角γ和斜面在矢状面内的梯度夹角与参数α和β的关系,计算过程如下
由于与ΣS的y轴重合,因此可以得到旋转矩阵HTS的第二列元素相同,进一步通过方程求解得到γ和的表达式
同理,可以得到冠状面参数θ和ξ与斜面参数α和β的关系式,唯一的区别就是旋转方式和重合坐标轴不一样,具体推导如下
优选地,在所述步骤3中,由于在斜面上任意方向的行走脚面相对水平世界坐标系在前进和左右方向梯度都发生了变化,在斜面世界坐标系上的足部轨迹规划相对直观。因此,根据双足的落脚点抬脚高度Hstep,采用斜面世界坐标系的三次样条插值函数对双足运动轨迹进行规划,其中足部各时刻的位置坐标为SPfoot(t)=[Sxfoot(t);Syfoot(t);Szfoot(t)],各时刻足部姿态运动矩阵用SRF(t)表示。
优选地,所述步骤4中进一步包括:
双足机器人在斜面各个方向上的行走时,双足着地点不在同一水平面上,为了减少地面冲击力,提高行走的稳定性,采用双腿长线性倒立摆(左右腿分别支撑时,线性倒立摆质心高度不同),以保证质心在左右方向上保持水平。双腿长质心高度参数计算如下:
zcl=zc-Wstep×sin(ξ)/2
zcr=zc+Wstep×sin(ξ)/2
其中zcl为左脚支撑时线性倒立摆的质心高度,zcr为右脚支撑时线性倒立摆的质心高度,zc为给定步行质心高度,Wstep为步宽,ξ为前面所述的冠状面参数;。
由每个单脚支撑期时间Tsi和左右脚线性倒立摆质心高度zcl和zcr,以及前进或左右方向上质心位移和速度约束,可以得到单脚支撑期步行单元的位移和速度关系。在双脚支撑期采用4次多项式插值,边界条件由单脚支撑期步行单元的参数决定,根据时间、位移、速度、加速度的约束关系,可以唯一计算得到一组协调稳定的规划步行参数。此处仅列举冠状面左脚支撑的推导过程,其他情况类似。
步行单元:vx=x(C-1)/(TcS),
双脚支撑期:P(t)=k4t4+k3t3+k2t2+k1t+k0
这里,vx为步行单元质心的速度参数,x为步行单元质心的位移参数,k0至k4是待求双脚支撑期质心轨迹规划系数。通过单脚支撑期和双脚支撑期的时间、位移、速度、加速度的约束关系,可以得到单脚支撑期和双脚支撑期各自移动的位移、边界处的速度、加速度以及双脚支撑期4项多项式的5个系数。由以上求出的步行规划参数回代到三维线性倒立摆的运动学微分方程和双脚支撑期的4项多项式插值得到规划质心轨迹,此处需要说明的是在矢状面质心在竖直方向以为斜率变化,而在冠状面质心在竖直方向上保持水平。因此,质心轨迹规划如下:
单脚支撑期
矢状面:双脚支撑期
单脚支撑期
冠状面:双脚支撑期
zCor(t)=zc
这里,上标j仅用于区分左右脚支撑与切换过程中参数值的变化,表达式是一致的。另外,a和k表示四次多项式的系数,x(0),y(0),表示机器人质心的初始位置与速度。
优选地,所述步骤5中,质心运动的非正交合成是指将矢状面和冠状面描述的质心规划转换到水平世界坐标系,具体转换表达式如下:
由步骤2中的线性倒立摆的非正交分解可知,θ、γ、均可由斜面参数α和β表示;xCor(t)描述的是机器人质心在冠状面里的运动;ySag(t)描述的是机器人质心在矢状面的运动。从而,水平世界坐标系下的质心轨迹[xH(t);yH(t);zH(t)]可以得到。
优选地,所述步骤6中的逆运动学求解关节空间的轨迹规划具体包括:将斜面世界坐标系的足部轨迹规划转换到水平世界坐标系,再转换到机器人质心坐标系,具体表达如下:
足部轨迹:
足部姿态:
这里定义双足机器人上身的姿态在水平世界坐标系ΣH的旋转矩阵为HRR(t)。
最后依据足部相对双足机器人质心坐标系的轨迹与姿态,进行逆运动学求解得到各个关节的轨迹规划,从而实现斜面各方向上的稳定行走的步态规划。
相比现有技术,本发明适用于双足机器人在斜面上各个方向的行走。采用三维线性倒立摆的非正交分解和合成,保证了行走的动力学平衡稳定性;双腿长线性倒立摆使双足机器人在行走过程中左右方向上质心保持水平,避免了左右周期性运动引起质心上下变化造成的地面冲击;双脚支撑期的引入使得双足机器人左右腿的运动更加的协调与自然。该方法考虑双足机器人在斜面上各个方向的稳定行走,具有通用性。同时,该方法相对比较简单,具有很强的实用性,能够有效地提高双足机器人的环境适应能力。
附图说明:
下面结合附图,通过对实施例的描述,本发明的这些和/或其他方面和优点将变得更加清晰和易于理解,其中:
图1是本发明实施例1双足机器人沿斜面某一梯度方向爬坡的示意图;
图2是本发明实施例2双足机器人沿斜面最小梯度方向下坡的示意图;
图3是本发明实施例3双足机器人沿斜面梯度为0方向行走的示意图;
图4是本发明专利所述的斜面双足行走的步态规划流程图;
图5是三维线性倒立摆的非正交分解在矢状面参数描述的示意图;
图6是三维线性倒立摆的非正交分解在冠状面参数描述的示意图;
图7是本发明所涉及的矢状面质心双腿长线性倒立摆运动规划;
图8是本发明所涉及的冠状面质心双腿长线性倒立摆运动规划;
图9是本发明所涉及的三维线性倒立摆的非正交合成的示意图;
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明作进一步详细描述,但不作为对本发明的限定。
具体实施例1是利用本发明方法实现双足机器人沿10°斜面,与最大梯度方向成10°方向(α=10°,β=10°)的直线行走,图1为具体实施例1的示意图。
具体实施例2是利用本发明方法实现双足机器人沿-15°斜面最小梯度方向(α=-15°,β=0)的直线行走,图2为具体实施例2的示意图。
具体实施例3是利用本发明方法实现双足机器人沿8°斜面梯度为0的方向(α=8°,β=90°)的直线行走,图3为具体实施例3的示意图。
具体实施例2和具体实施例3是具体实施例1的特殊情况,三者的双足行走步态规划的过程基本一致,区别仅仅在于步态规划的相关参数不同。所以以下具体实施方式仅对具体实施例1进行介绍。
本发明实施例采用的双足机器人拥有2条腿和1个上身躯干,每条腿具有6个自由度,其中髋关节3个、膝关节1个、踝关节2个;双足机器人在行走过程中上身躯干保持直线平移,脚在迈步过程中也保持平移,质心近似在两个髋关节的中点位置。
图4给出了一种通用的双足机器人斜面行走的步态规划方法的具体流程图,包括以下步骤:
步骤1,配置斜面参数和步行参数,对双足机器人在斜面各个方向的行走进行参数统一化描述,从而实现步态规划方法通用性的特征;
步骤2,对三维线性倒立摆进行矢状面和冠状面的非正交分解,并计算矢状面和冠状面的相关变换参数,为后续协调稳定的质心轨迹规划做准备;
步骤3,基于三次样条插值的足部轨迹规划,实现双足机器人的迈步软着地这一过程;
步骤4,计算双腿长倒立摆的模型参数和单双脚支撑期衔接处的规划参数,对矢状面和冠状面的质心轨迹进行规划,其中单脚支撑期采用双腿长线性倒立摆,双脚支撑期采用四次多项式插值,以实现分解平面中质心运动的稳定性和协调性规划。
步骤5,质心运动的非正交合成,实现三维质心轨迹在正交世界坐标系中的描述。
步骤6,将世界坐标系下的足部轨迹转换到双足机器人自身质心坐标系,并通过双足机器人的逆运动学求解得到各个关节的轨迹规划。
在具体实施例1中,各相关参数配置如下:斜面倾斜角度α=10°,前进方向与最大梯度方向夹角β=10°;步行速度V=1.08km/h、步长Lstep=0.3m、步行周期Tstep=1.0s、步宽Wstep=0.17m、双脚支撑期的时间占比r=15%、步行质心高度zc=0.516和抬脚高度Hstep=0.03m等参数,其中参数Lstep、Wstep、Hstep在斜面世界坐标系ΣS描述(定义斜面世界坐标系原点固定在斜面上,位于2只脚的中点,y轴是双足机器人的前进方向,z轴垂直斜面向上,x轴由右手定则得到),而zc在水平世界坐标系ΣH描述(定义水平世界坐标系的原点固定,与ΣS的原点重合,z轴竖直向上,x,y轴在水平面内,y轴指向斜面最大/小梯度方向,x轴由右手定则得到)。
在进行双足机器人步态规划的过程中,通常将质心的运动分解到双足机器人的矢状面和冠状面,但是由于重力是在竖直方向而不是垂直于斜面,所以规划应该在水平世界坐标系下描述而不是在斜面世界坐标系描述。同时,由于双足机器人的矢状面和冠状面在水平面上的投影构成的不是一个直角,需要对三维线性倒立摆规划进行非正交分解,将质心的三维运动分解到矢状面和冠状面,矢状面和冠状面的相关参数与斜面参数α和β的关系以及各个坐标系之间的变换需要得到,以方便后续规划,具体计算如下:
如图5所示三维线性倒立摆的非正交分解在矢状面的参数描述,水平世界坐标系ΣH通过绕x轴旋转α,再绕z轴旋转β得到斜面世界坐标系ΣS,则ΣS相对ΣH的旋转变换矩阵可得:
设水平世界坐标系ΣH绕z轴旋转γ可以得到ΣSag,ΣSag绕x轴旋转后得到坐标系相对ΣH的旋转变换矩阵可得:
为了达到分解规划的目的,令的y轴与斜面世界坐标系ΣS的y轴重合,可以得到旋转矩阵HTS的第二列元素相同,进一步通过方程求解得到γ和的表达式
同理,如图6所示,由三维线性倒立摆的非正交分解在冠状面的参数描述,可以得到冠状面参数θ和ξ与斜面参数α和β的关系式,唯一的区别就是旋转方式和重合坐标轴不一样,具体推导如下:
设水平世界坐标系ΣH绕z轴旋转θ可以得到ΣCor,ΣCor绕y轴旋转ξ后得到坐标系Σξ,则Σξ相对ΣH的旋转变换矩阵可得:
为了达到分解规划的目的,令Σξ的x轴与斜面世界坐标系ΣS的x轴重合,可以得到旋转矩阵HTξHTS的第一列元素相同,进一步通过方程求解得到θ和ξ的表达式
矢状面和冠状面的描述参数获取后,需要分别规划这两个平面行走时的足部运动轨迹和双足机器人质心运动轨迹。由于在斜面上任意方向的行走脚面相对水平世界坐标系在前进和左右方向梯度都发生了变化,所以在斜面世界坐标系上进行足部轨迹规划相对直观。依据步行参数Lstep、Wstep、Hstep、Tstep和r,在斜面世界坐标系采用次样条插值函数对双足的运动轨迹进行规划,同时足部姿态保持不变HRFHTS
由于重力是竖直向下的,机器人质心运动选择在水平世界坐标系下的描述是直观的,而步长等斜面世界坐标系ΣS下描述的参数需要转换到水平世界坐标系ΣH;同时,双足机器人在斜面各个方向上的行走时,双足着地点不在同一水平面上,为了减少地面冲击力,提高行走的稳定性,采用双腿长线性倒立摆(左右腿分别支撑时,线性倒立摆质心高度不同),以保证质心在左右方向上保持水平。双腿长质心高度参数计算如下:
zcl=zc-Wstep×sin(ξ)/2
zcr=zc+Wstep×sin(ξ)/2
其中zcl为左脚支撑时线性倒立摆的质心高度,zcr为右脚支撑时线性倒立摆的质心高度。
双脚支撑期的引入可以解决不同腿长规划引起的步态不协调,利用每个单脚支撑期时间Tsi和左右脚线性倒立摆质心高度zcl和zcr,以及前进或左右方向上质心位移和速度约束,可以得到单脚支撑期步行单元的位移和速度关系。
vx=x(C-1)/(TcS),vy=y(C+1)/(TcS)
在双脚支撑期采用4次多项式插值,P(t)=k4t4+k3t3+k2t2+k1t+k0,边界条件由单脚支撑期步行单元的参数决定,根据单脚支撑期和双脚支撑期的时间、位移、速度、加速度的约束关系,可以得到单脚支撑期和双脚支撑期各自移动的位移、边界处的速度、加速度以及双脚支撑期4项多项式的5个系数,从而唯一计算得到一组协调稳定的规划步行轨迹。
由以上求出的步行规划参数回代到三维线性倒立摆的运动学微分方程和双脚支撑期的4项多项式插值得到规划质心轨迹,图7和图8给出了矢状面和冠状面的基于双腿长线性倒立摆的质心轨迹规划,在矢状面质心在竖直方向以为斜率变化,而在冠状面质心在竖直方向上保持水平。因此,质心轨迹规划如下:
单脚支撑期
矢状面:双脚支撑期
单脚支撑期
冠状面:双脚支撑期
zCor(t)=zc
这里,上标j仅用于区分左右脚支撑与切换过程中参数值的变化,表达式是一致的。
质心运动的非正交合成是指将矢状面和冠状面描述的质心规划转换到水平世界坐标系,如图9所示坐标轴关系,可得具体转换表达式如下:
由步骤2中的线性倒立摆的非正交分解可知,θ、γ、均可由斜面参数α和β表示。从而,水平世界坐标系下的质心轨迹可以得到。本发明实施例中双足机器人在行走过程中上身躯干姿态保持竖直不变,因此,双足机器人上身姿态在水平世界坐标系的旋转矩阵为HRRHTSag
逆运动学求解关节空间的轨迹规划具体包括:将斜面世界坐标系的足部轨迹规划转换到水平世界坐标系,再转换到机器人质心坐标系,具体表达如下:
足部轨迹:
足部姿态:
最后依据足部相对双足机器人质心坐标系的轨迹与姿态,进行逆运动学求解得到各个关节的轨迹规划,从而实现斜面各方向上的稳定行走的步态规划。
本发明实施例采用斜面参数统一化的描述,具有一般化的特性;采用三维线性倒立摆的非正交分解和合成,保证了斜面上行走的动力学平衡稳定性;双腿长线性倒立摆使双足机器人在行走过程中左右方向上质心运动保持水平,避免质心左右周期性运动时势能振荡造成的地面冲击;双脚支撑期的引入解决了双足机器人不同腿长规划引起的不协调,使步态更加的自然。本发明实施例具有实际应用价值,能有效解决双足机器人在斜面各个方向上的行走难题,有效地提高了双足机器人在应用环境的适应能力。
本发明实施例在阐述的过程中,采用一些特殊化和简化方式(比如双足机器人上身姿态的规划和双脚姿态的规划),但这并不影响发明方法的一般化和拓展应用。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种双足机器人斜面行走的步态规划方法,所述方法包括以下步骤:
步骤1,配置斜面参数和步行参数,对双足机器人在斜面各个方向的行走进行参数统一化描述,从而实现步态规划方法通用性的特征;
步骤2,对三维线性倒立摆进行矢状面和冠状面的非正交分解,并计算矢状面和冠状面的相关变换参数,为后续协调稳定的质心轨迹规划做准备;
步骤3,基于三次样条插值的足部轨迹规划,实现双足机器人的迈步软着地这一过程;
步骤4,计算双腿长倒立摆的双腿长质心高度参数和单双脚支撑期衔接处的规划参数,对矢状面和冠状面的质心轨迹进行规划,其中单脚支撑期采用双腿长线性倒立摆,双脚支撑期采用四次多项式插值,以实现分解平面中质心运动的稳定性和协调性规划;
步骤5,质心运动的非正交合成,实现三维质心轨迹在正交世界坐标系中的描述;
步骤6,将世界坐标系下的足部轨迹转换到双足机器人自身质心坐标系,并通过双足机器人的逆运动学求解得到各个关节的轨迹规划。
2.根据权利要求1所述的方法,其特征在于,所述步骤1包括配置双足机器人在斜面上各个方向行走统一化参数α和β;其中α为斜面的倾斜角度,取值范围为-90°~90°;β为斜面最大/小梯度方向与双足机器人前进方向的角度,取值范围为-90°~90°,其中α>0时取最大方向,α<0时取最小方向;如此,就可描述双足机器人在斜面上各个方向上的行走,一些特殊参数的意义描述如下:
α=0,双足机器人在水平地面行走;
α>0,双足机器人上坡;
α<0,双足机器人下坡;
β=0,双足机器人沿着斜面最大/小梯度方向上下坡;
β=±90°,双足机器人沿着斜面梯度为0的方向行走;
所述步骤1中还包括步行参数的配置,包括步行速度V、步长Lstep、步行周期Tstep、步宽Wstep、双脚支撑期的时间占比r、步行质心高度zc和抬脚高度Hstep,其中步长Lstep、步宽Wstep、抬脚高度Hstep在斜面世界坐标系ΣS描述,所述斜面世界坐标系ΣS的原点固定在斜面上,位于2只脚的中点,所述斜面世界坐标系ΣS的y轴是双足机器人的前进方向,所述斜面世界坐标系ΣS的z轴垂直斜面向上,所述斜面世界坐标系ΣS的x轴由右手定则得到,而步行质心高度zc在水平世界坐标系ΣH描述,所述水平世界坐标系ΣH的原点固定,与斜面世界坐标系ΣS的原点重合,所述水平世界坐标系ΣH的z轴竖直向上,所述水平世界坐标系ΣH的x、y轴在水平面内,所述水平世界坐标系ΣH的y轴指向斜面最大/小梯度方向,所述水平世界坐标系ΣH的x轴由右手定则得到。
3.根据权利要求2所述的方法,其特征在于,所述步骤2中的对三维线性倒立摆进行矢状面和冠状面的非正交分解包括:
在进行双足机器人步态规划的过程中,将质心的运动分解到双足机器人的矢状面和冠状面,但是由于重力是在竖直方向而不是垂直于斜面,所以规划应该在水平世界坐标系ΣH下描述而不是在斜面世界坐标系描述;同时,由于双足机器人的矢状面和冠状面在水平面上的投影构成的不是一个直角,需要对三维线性倒立摆进行矢状面和冠状面的非正交分解进行变换,具体过程包括:
三维线性倒立摆的最大特征是无质量杆对质心的作用力在竖直方向上,即水平世界坐标系ΣH的z轴方向抵消重力,在水平面上驱动质心做变速运动,当三维线性倒立摆分解在冠状面xOz与矢状面yOz时,其动力学模型的描述如下:
<mrow> <mi>M</mi> <mover> <mi>x</mi> <mo>&amp;CenterDot;&amp;CenterDot;</mo> </mover> <mo>=</mo> <mrow> <mo>(</mo> <mi>x</mi> <mo>/</mo> <mi>r</mi> <mo>)</mo> </mrow> <mi>f</mi> </mrow>
<mrow> <mi>M</mi> <mover> <mi>y</mi> <mo>&amp;CenterDot;&amp;CenterDot;</mo> </mover> <mo>=</mo> <mrow> <mo>(</mo> <mi>y</mi> <mo>/</mo> <mi>r</mi> <mo>)</mo> </mrow> <mi>f</mi> </mrow>
<mrow> <mi>M</mi> <mover> <mi>z</mi> <mo>&amp;CenterDot;&amp;CenterDot;</mo> </mover> <mo>=</mo> <mrow> <mo>(</mo> <mi>z</mi> <mo>/</mo> <mi>r</mi> <mo>)</mo> </mrow> <mi>f</mi> <mo>-</mo> <mi>M</mi> <mi>g</mi> </mrow>
其中,M是倒立摆质心质量,x表示双足机器人冠状面在水平面投影方向,y表示双足机器人矢状面在水平面的投影方向,z表示竖直向上方向,r是支撑杆长度,f是支撑杆的伸缩力,g是重力加速度,进一步分别得到冠状面和矢状面的质心运动学方程:
<mrow> <mover> <mi>x</mi> <mo>&amp;CenterDot;&amp;CenterDot;</mo> </mover> <mo>=</mo> <mfrac> <mi>g</mi> <msub> <mi>z</mi> <mi>c</mi> </msub> </mfrac> <mi>x</mi> </mrow>
<mrow> <mover> <mi>y</mi> <mo>&amp;CenterDot;&amp;CenterDot;</mo> </mover> <mo>=</mo> <mfrac> <mi>g</mi> <msub> <mi>z</mi> <mi>c</mi> </msub> </mfrac> <mi>y</mi> </mrow>
这里,zc为线性倒立摆的质心高度,设质心在x方向上的初始位置为x(0),可求解微分方程得x,y关于时间t的解析表达式,仅列举x方向表达式x(t),如下,y方向相同:
<mrow> <mi>x</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>x</mi> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> <mi>cosh</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>/</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mover> <mi>x</mi> <mo>&amp;CenterDot;</mo> </mover> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> <mi>sinh</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>/</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mo>)</mo> </mrow> </mrow>
<mrow> <mover> <mi>x</mi> <mo>&amp;CenterDot;</mo> </mover> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>x</mi> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> <mo>/</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mi>sinh</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>/</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mover> <mi>x</mi> <mo>&amp;CenterDot;</mo> </mover> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> <mi>cosh</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>/</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>T</mi> <mi>c</mi> </msub> <mo>=</mo> <msqrt> <mrow> <msub> <mi>z</mi> <mi>c</mi> </msub> <mo>/</mo> <mi>g</mi> </mrow> </msqrt> </mrow>
因此,水平面上x,y轴是否正交对双足机器人的三维线性倒立摆模型分解与合成没有影响,将质心运动分解为矢状面和冠状面后,矢状面和冠状面的相关参数与斜面参数α和β的关系以及各个坐标系之间的变换需要得到,如下定义:
矢状面坐标系ΣSag:z轴竖直向上,y轴是斜面世界坐标系ΣS的y轴在水平面上的投影,水平世界坐标系ΣH绕z轴旋转夹角γ可以得到ΣSag,ΣSag绕x轴旋转夹角后y轴与斜面世界坐标系ΣS的y轴重合;
冠状面坐标系ΣCor:z轴竖直向上,x轴是斜面世界坐标系ΣS的x轴在水平面上的投影,水平世界坐标系ΣH绕z轴旋转θ可以得到ΣCor,ΣCor绕y轴旋转夹角ξ后x轴与斜面世界坐标系ΣS的x轴重合;
由上面的定义,可以得出以下旋转变换:
水平世界坐标系ΣH通过绕x轴旋转α,再绕z轴旋转β得到斜面世界坐标系ΣS,因此,斜面世界坐标系ΣS相对水平世界坐标系ΣH的旋转变换矩阵的推导如下
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mi>&amp;alpha;</mi> </msub> <mo>=</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mi>&amp;alpha;</mi> </mmultiscripts> <mi>S</mi> </msub> <mo>=</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mi>S</mi> </msub> <mo>=</mo> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mi>&amp;alpha;</mi> </msub> <msub> <mmultiscripts> <mi>T</mi> <mi>&amp;alpha;</mi> </mmultiscripts> <mi>S</mi> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> 2
利用不同方式的坐标系变换后坐标轴的重合关系,可得到矢状面坐标系ΣSag的y轴与水平世界坐标系ΣH的y轴的夹角γ和斜面在矢状面内的梯度夹角与参数α和β的关系,计算过程如下
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mrow> <mi>S</mi> <mi>a</mi> <mi>g</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mi>&amp;gamma;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;gamma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;gamma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;gamma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;gamma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>
由于矢状面坐标系ΣSag绕x轴旋转梯度夹角后的y轴与斜面世界坐标系ΣS的y轴重合,因此可以得到旋转矩阵HTS的第二列元素相同,进一步通过方程求解得到水平世界坐标系ΣH的y轴的夹角γ和斜面在矢状面内的梯度夹角的表达式
同理,可以得到冠状面坐标系ΣCor的x轴与水平世界坐标系ΣH的x轴的夹角θ,斜面在冠状面的梯度夹角ξ与斜面参数α和β的关系式,唯一的区别就是旋转方式和重合坐标轴不一样,具体推导如下
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mrow> <mi>C</mi> <mi>o</mi> <mi>r</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mrow> <mi>C</mi> <mi>o</mi> <mi>r</mi> </mrow> </mmultiscripts> <mi>&amp;xi;</mi> </msub> <mo>=</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mi>&amp;xi;</mi> </msub> <mo>=</mo> <msub> <mmultiscripts> <mi>T</mi> <mi>H</mi> </mmultiscripts> <mrow> <mi>C</mi> <mi>o</mi> <mi>r</mi> </mrow> </msub> <msub> <mmultiscripts> <mi>T</mi> <mrow> <mi>C</mi> <mi>o</mi> <mi>r</mi> </mrow> </mmultiscripts> <mi>&amp;xi;</mi> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;theta;</mi> <mo>)</mo> </mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;xi;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>sin</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> 3
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mi>&amp;theta;</mi> <mo>=</mo> <mi>arctan</mi> <mo>(</mo> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> <mo>)</mo> </mtd> </mtr> <mtr> <mtd> <mi>&amp;xi;</mi> <mo>=</mo> <mi>arcsin</mi> <mo>(</mo> <mo>-</mo> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>&amp;beta;</mi> <mo>)</mo> </mrow> <mo>)</mo> </mtd> </mtr> </mtable> </mfenced> <mo>.</mo> </mrow>
4.根据权利要求1所述的方法,其特征在于,在所述步骤3中,由于在斜面上任意方向的行走脚面相对水平世界坐标系在前进和左右方向梯度都发生了变化,在斜面世界坐标系ΣS上的足部轨迹规划相对直观;因此,根据双足的落脚点和抬脚高度Hstep,采用斜面世界坐标系的三次样条插值函数对双足运动轨迹进行规划,其中各时刻的足部位置坐标为SPfoot(t)=[Sxfoot(t);Syfoot(t);Szfoot(t)],各时刻足部姿态运动矩阵用SRF(t)表示。
5.根据权利要求3所述的方法,其特征在于,所述步骤4中进一步包括:
双足机器人在斜面各个方向上的行走时,双足着地点不在同一水平面上,为了减少地面冲击力,提高行走的稳定性,采用双腿长线性倒立摆,以保证质心在左右方向上保持水平,左右腿分别支撑时,线性倒立摆质心高度不同;双腿长质心高度参数计算如下:
zcl=zc-Wstep×sin(ξ)/2
zcr=zc+Wstep×sin(ξ)/2
其中zcl为左脚支撑时线性倒立摆的质心高度,zcr为右脚支撑时线性倒立摆的质心高度,zc为步行质心高度,Wstep为步宽,ξ为权利要求3中所述的冠状面参数;
由每个单脚支撑期时间Tsi和左右脚线性倒立摆质心高度zcl和zcr,以及前进或左右方向上质心位移和速度约束,可以得到单脚支撑期步行单元的位移和速度关系;在双脚支撑期采用4次多项式插值,边界条件由单脚支撑期步行单元的参数决定,根据时间、位移、速度、加速度的约束关系,可以唯一计算得到一组协调稳定的规划步行参数;
步行单元:vx=x(C-1)/(TcS),
双脚支撑期:P(t)=k4t4+k3t3+k2t2+k1t+k0
这里,vx为步行单元质心的速度参数,x为步行单元质心的位移参数,k0至k4是待求双脚支撑期质心轨迹规划系数;通过单脚支撑期和双脚支撑期的时间、位移、速度、加速度的约束关系,可以得到单脚支撑期和双脚支撑期各自移动的位移、边界处的速度、加速度以及双脚支撑期4项多项式的5个系数;由以上求出的步行规划参数回代到三维线性倒立摆的运动学微分方程和双脚支撑期的4项多项式插值得到规划质心轨迹,此处需要说明的是在矢状面质心在竖直方向以为斜率变化,而在冠状面质心在竖直方向上保持水平;因此,质心轨迹规划如下:
矢状面:
冠状面:
这里,上标j仅用于区分左右脚支撑与切换过程中参数值的变化,表达式是一致的;另外,a和k表示四次多项式的系数,x(0),y(0),表示机器人质心的初始位置与速度。
6.根据权利要求3所述的方法,其特征在于,所述步骤5中,质心运动的非正交合成是指将矢状面和冠状面描述的质心规划转换到水平世界坐标系,具体转换表达式如下:
由步骤2中的对三维线性倒立摆进行矢状面和冠状面的非正交分解可知,θ、γ、均可由斜面参数α和β表示;xCor(t)描述的是机器人质心在冠状面里的运动;ySag(t)描述的是机器人质心在矢状面的运动;从而,水平世界坐标系下的质心轨迹[xH(t);yH(t);zH(t)]可以得到。
7.根据权利要求1所述的方法,其特征在于,所述步骤6中的逆运动学求解关节的轨迹规划具体包括:将斜面世界坐标系的足部轨迹规划转换到水平世界坐标系,再转换到机器人质心坐标系,具体表达如下:
足部轨迹:
足部姿态:
这里定义双足机器人上身的姿态在水平世界坐标系ΣH的旋转矩阵为HRR(t);
最后依据足部相对双足机器人质心坐标系的轨迹与姿态,进行逆运动学求解得到各个关节的轨迹规划,从而实现斜面各方向上的稳定行走的步态规划。
CN201410529230.7A 2014-10-10 2014-10-10 一种双足机器人斜面行走的步态规划方法 Active CN104331081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410529230.7A CN104331081B (zh) 2014-10-10 2014-10-10 一种双足机器人斜面行走的步态规划方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410529230.7A CN104331081B (zh) 2014-10-10 2014-10-10 一种双足机器人斜面行走的步态规划方法

Publications (2)

Publication Number Publication Date
CN104331081A CN104331081A (zh) 2015-02-04
CN104331081B true CN104331081B (zh) 2017-11-07

Family

ID=52405827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410529230.7A Active CN104331081B (zh) 2014-10-10 2014-10-10 一种双足机器人斜面行走的步态规划方法

Country Status (1)

Country Link
CN (1) CN104331081B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105388755B (zh) * 2015-05-12 2018-08-24 北京理工大学 一种仿人机器人摆动腿迈步的能效优化控制方法
CN105137969B (zh) * 2015-07-31 2018-03-09 中国人民解放军国防科学技术大学 基于支撑线运动分解的四足机器人trot步态本体位姿控制方法
CN105353773B (zh) * 2015-11-20 2018-02-16 清华大学 双足机器人行走非单周期步态控制方法
CN105938364B (zh) * 2016-01-15 2018-09-25 浙江大学 一种3d欠驱动双足机器人的动力学模型计算方法
CN107515603A (zh) * 2016-06-16 2017-12-26 苏州宝时得电动工具有限公司 自动行走设备及其在坡面的行走方法
CN108345211A (zh) * 2017-01-23 2018-07-31 深圳市祈飞科技有限公司 双足仿人机器人及其非线性步态规划方法以及控制方法
CN107065867B (zh) * 2017-03-28 2019-05-31 浙江大学 一种面向未知崎岖地形的四足机器人运动规划方法
CN107315346B (zh) * 2017-06-23 2020-01-14 武汉工程大学 一种基于cpg模型的仿人机器人步态规划方法
CN107811639B (zh) * 2017-09-25 2020-07-24 天津大学 一种基于运动学数据确定步态站立中期的方法
CN108733065B (zh) * 2017-09-29 2021-06-04 北京猎户星空科技有限公司 一种机器人的避障方法、装置及机器人
CN108089578B (zh) * 2017-12-07 2021-04-13 东莞深圳清华大学研究院创新中心 一种用于双足步行机器人的步行运动规划方法
CN108089583B (zh) * 2017-12-20 2020-12-25 中科新松有限公司 一种多足机器人运动过渡的方法和装置
CN109955928B (zh) * 2017-12-25 2020-10-16 深圳市优必选科技有限公司 一种双足机器人及其等效轨迹生成方法和装置
CN109164705A (zh) * 2018-08-15 2019-01-08 重庆大学 一种动态双足步行机器人鲁棒控制方法
CN109202901A (zh) * 2018-08-29 2019-01-15 厦门理工学院 一种双足机器人爬楼梯步态规划方法、装置及机器人
CN110014451B (zh) * 2019-04-24 2021-12-21 哈尔滨理工大学 一种适于斜坡路面的爬行机器人髋部装置及控制
CN110812131B (zh) * 2019-11-28 2022-02-22 深圳市迈步机器人科技有限公司 外骨骼机器人的步态控制方法、控制系统及外骨骼机器人
CN113119102B (zh) * 2019-12-31 2022-09-20 深圳市优必选科技股份有限公司 基于浮动基飞轮倒立摆的仿人机器人建模方法和装置
CN111674486B (zh) * 2020-05-25 2021-08-10 浙江大学 双足机器人稳定步行控制方法、装置、设备及可读介质
CN111736615B (zh) * 2020-08-04 2020-12-15 深圳市优必选科技股份有限公司 一种步态规划方法、装置、计算机可读存储介质及机器人
CN111880544B (zh) * 2020-08-07 2024-03-22 深圳市优必选科技股份有限公司 仿人机器人步态规划方法、装置和仿人机器人
CN112486170A (zh) * 2020-11-23 2021-03-12 深圳市优必选科技股份有限公司 机器人控制方法、装置、计算机可读存储介质及机器人
CN112731951A (zh) * 2020-12-22 2021-04-30 深圳市优必选科技股份有限公司 一种机器人平衡控制方法、装置、可读存储介质及机器人
CN112596530B (zh) * 2020-12-24 2022-08-05 广州市威控机器人有限公司 一种通用的足式机器人步态设计及控制方法
CN112859856B (zh) * 2021-01-11 2022-12-09 常州工程职业技术学院 一种基于质心高度补偿的仿人机器人步态生成方法
CN112882467B (zh) * 2021-01-12 2022-11-18 常州工程职业技术学院 一种双足仿人机器人在斜坡上行走的步态规划方法
CN112859902B (zh) * 2021-01-21 2024-02-23 广州视源电子科技股份有限公司 机器人及其控制方法
CN113093780B (zh) * 2021-04-06 2022-01-14 中山大学 一种基于降阶极点配置法的机器人平衡控制方法及装置
CN113359792A (zh) * 2021-05-27 2021-09-07 深圳市优必选科技股份有限公司 一种双足机器人控制方法、装置、双足机器人及存储介质
CN113325859B (zh) * 2021-06-10 2022-08-30 西北工业大学 一种游走混合型水下机器人沿斜面直立攀爬行走控制方法
CN113359800A (zh) * 2021-06-30 2021-09-07 深圳市优必选科技股份有限公司 机器人行走控制方法、装置、机器人控制设备及存储介质
CN113377113B (zh) * 2021-07-02 2022-01-04 北方工业大学 足式机器人足端轨迹规划方法、系统及控制方法、系统
CN113485403A (zh) * 2021-07-28 2021-10-08 乐聚(深圳)机器人技术有限公司 机器人的步态规划方法、装置、处理设备及存储介质
CN113467484B (zh) * 2021-09-02 2021-12-31 深圳市优必选科技股份有限公司 双足机器人步态控制方法、装置和计算机设备
CN113879421B (zh) * 2021-10-28 2022-07-08 乐聚(深圳)机器人技术有限公司 双足机器人的运动轨迹规划方法、装置、设备及介质
CN114527663B (zh) * 2022-02-24 2023-03-14 北京理工大学 基于变参数速度映射和二次规划的双足机器人落脚点规划方法
CN116224892B (zh) * 2023-05-08 2023-07-21 之江实验室 一种机器人的控制方法、装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090092910A (ko) * 2008-02-28 2009-09-02 숭실대학교산학협력단 지엠피의 상태추정을 통한 2족보행로봇의 균형제어기법
CN101943912A (zh) * 2010-09-02 2011-01-12 北京理工大学 一种消除双足仿人机器人上身姿态晃动的控制方法
KR20120019546A (ko) * 2010-08-26 2012-03-07 한국과학기술원 로봇의 걸음새 생성기
CN102372042A (zh) * 2011-09-07 2012-03-14 广东工业大学 一种双足机器人的运动规划系统
CN103204193A (zh) * 2013-04-08 2013-07-17 浙江大学 一种欠驱动双足机器人行走控制方法
JP2013180384A (ja) * 2012-03-05 2013-09-12 Toyota Motor Corp 重心高さ軌道生成装置、その生成方法及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090092910A (ko) * 2008-02-28 2009-09-02 숭실대학교산학협력단 지엠피의 상태추정을 통한 2족보행로봇의 균형제어기법
KR20120019546A (ko) * 2010-08-26 2012-03-07 한국과학기술원 로봇의 걸음새 생성기
CN101943912A (zh) * 2010-09-02 2011-01-12 北京理工大学 一种消除双足仿人机器人上身姿态晃动的控制方法
CN102372042A (zh) * 2011-09-07 2012-03-14 广东工业大学 一种双足机器人的运动规划系统
JP2013180384A (ja) * 2012-03-05 2013-09-12 Toyota Motor Corp 重心高さ軌道生成装置、その生成方法及びプログラム
CN103204193A (zh) * 2013-04-08 2013-07-17 浙江大学 一种欠驱动双足机器人行走控制方法

Also Published As

Publication number Publication date
CN104331081A (zh) 2015-02-04

Similar Documents

Publication Publication Date Title
CN104331081B (zh) 一种双足机器人斜面行走的步态规划方法
CN103149933B (zh) 基于闭环控制的仿人机器人全向行走方法
CN102749919B (zh) 一种多足机器人平衡控制方法
CN109202901A (zh) 一种双足机器人爬楼梯步态规划方法、装置及机器人
CN107045552A (zh) 一种基于正弦对角步态与快速查表法的四足机器人运动控制方法及控制装置
Albert et al. Analytic path planning algorithms for bipedal robots without a trunk
JPWO2006132330A1 (ja) 脚式移動体の平衡点安定化装置
Guenther et al. Energy-efficient monopod running with a large payload based on open-loop parallel elastic actuation
Ames et al. Three-dimensional kneed bipedal walking: A hybrid geometric approach
Xing et al. Arm/trunk motion generation for humanoid robot
Szumowski et al. Preview control applied for humanoid robot motion generation
Mandava et al. Forward and inverse kinematic based full body gait generation of biped robot
KR20100093833A (ko) 이족 인간형 로봇의 계단 내려오기를 위한 최적 궤적 설계 방법
Xie et al. Human-like strategies exploiting momentum for biped robot balance recovery
Zhang et al. Modeling for a metamorphic quadruped robot with a twisting trunk: Kinematic and workspace
Wang et al. Locomotion planning for quadruped robot over rough terrain
Galdeano et al. Optimal pattern generator for dynamic walking in humanoid robotics
Giardina et al. Efficient and stable locomotion for impulse-actuated robots using strictly convex foot shapes
Norcross et al. Characterization of Partial-Gravity Analog Environments for Extravehicular Activity Suit Testing
Zhou et al. Modeling and planning for stable walking of a novel 6-DOF biped robot
Firouzi et al. Tip model: a combination of unstable subsystems for lateral balance in walking
Ramezani Feedback Control Design for MARLO, a 3D-Bipedal Robot.
Zhang et al. Human-like walking patterns with pelvic rotation for a humanoid robot
Lathan et al. Analytical approach for generating dynamically balanced gaits for obstacle crossing biped robot
Iqbal et al. HT-LIP model based robust control of quadrupedal robot locomotion under unknown vertical ground motion

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant