【Roban教程】机器人静步态实践1

本帖最后由 零落 于 2021-2-4 09:33 编辑

双足机器人行走控制策略中最经典的是“静态步行”,这种策略的特点是:机器人步行的过程中,重心在地面上的投影(以下简称重心投影)始终位于支撑多边形内。那么具体过程可分为两个阶段:双足支撑期重心转移:在初始姿态时,重心位于两脚之间,首先重心投影应该转移至支撑脚(任意选定一只脚为支撑脚,则另一只脚为摆动脚)的支撑多边形内,这段时间称为“双足支撑期“,双足支撑期内重心移动,双脚不动;单足支撑期摆动脚迈步:待重心移动完成后,摆动脚便开始向前迈步,脚掌离开地面到脚掌落地,这段时间称为单足支撑期,单足支撑期内,重心以及支撑脚不动,摆动脚先抬脚再落脚。 待摆动脚落地后,再次转移重心,将重心投影从支撑脚转移至摆动脚支撑多边形内,原摆动脚变成新的支撑脚,原支撑脚变成新的摆动脚,新的摆动脚按照新规划的轨迹向前迈一步,如此往复循环,就形成了静态步行。


一、五次样条插值

在移动重心位置之前,首先得规划好重心运动轨迹,因此就需要利用到五次样条插值,五次样条曲线保证了位置,速度以及加速度的连续。基本方程形式为五次多项式:

(}F3]N4X(D}9ES%ETO6D8.png

式1

其中t0为初始时刻,t1为终止时刻,t为初始时刻与终止时刻之间的任一时刻,在给定下面初始条件后,即可求得多项式系数,从而可以得每个时刻的位置。

5W19MSWSZF~5HV3$%9OCEIA.png

式2


以下是我们计算好的系数矩阵,在引用下面函数的时候,需要创建两个六维向量,第一个向量 VectorA 装有初始点和末端点的位置,速度和加速度,第二个向量 VectorB 装有五次多项式的系数。在引用第一个函数时,需要给 VectorA 赋值,同时需要给定所规划的轨迹的运动时间,第一个函数计算出的结果存入 VectorB 。第二个函数的输入为 VectorB 以及运动周期中的某个时刻,第二个函数计算出的结果为运动周期中每个时刻对应的轨迹上的相应位置。

DN9_}F525[22DPJ_FXMLA%D.png


二、实现机器人双足支撑情况下的重心位置移动

由于双足机器人在初始姿态时,两脚平齐,重心投影位于两脚之间,因此在第一步规划时,需要将重心投影移动到支撑脚的支撑多边形内,这里需要注意的是在对重心位置进行规划的时候,我们是分别在X方向(正前方)和 方向(左手方向)规划,对于Z方向(正上方)是维待恒定高度不变;因此对于第一步来说,仅仅在Y方向有位移。以下两个代码块分别代表第一步重心的规划以及重心的移动。其中T代表步行周期,步行周期包括双足支撑期和单足支撑期,为了简单起见,各占0.5*T。

B034O75WW8DXP5`EL9O`@01.png

10M_(G7HVK__~PMR(ZMS)5A.png

U2B9VGCI$FMIGBL)M08U]00.png


图1为规划的重心投影运动轨迹(此处指规划了三步),图中红色轨迹为第一步重心运动轨迹,图中的 A为重心初始位置,在第一步双足支撑期,重心从A点运动到B点。

JKB5BUV[9W_2XO_T7_GE9XI.png

图1  重心投影轨迹


下面我们来看看具体仿真中机器人的运动状态图:

`UL(GT{8T)`R9)@TL}7SBGC.png

图2  静态步行——重心转移示意图


回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册

  • 1 关注
  • 1 粉丝
  • 48 帖子