1. 四足机器人步态规划简介

四足机器人的运动可以分为站立(stance)和摆动(swing)两种运动形式,通过控制和组合两种运动形式来产生不同的机器人步态。由于它们是四足机器人的腿部运动过程里的两个不同阶段,因此又将其运动分为站立阶段和摆动阶段。由于在站立阶段时其腿部会承受很高加速度和机器人自身负载,如果只使用位置控制,很容易给机器人本体带来大的刚性冲击,这不利于稳定行走或跑步,也会导致本体结构的损坏。因此实际的机器人控制过程中,在站立和摆动阶段分别采用了位置控制和阻抗控制进行设计。当腿部接触地面时,将采用阻抗控制方法用于确保腿部与地面的灵活接触,减少冲击。由于需要对两种运动阶段分别控制,因此就产生两种控制器,将其称为swing controller和stance controller。

摆动阶段轨迹设计的目标是在足够的地面空间上伸缩腿部以保证腿部和障碍物之间有足够的间隙,同时保证获得理想的摆腿缩回率来减少运动过程中与地面接触的能量损失,以及降低能量的理想摆动腿缩回率触地运动期间的运行损失。在腿部不受外部力的影响下,可以获得更高的速度和加速度。

考虑摆动过程中,腿部轨迹的光滑性,需要尽量减小腿部的最大加速度,确保位置速度加速度的连续性,可以采用三角函数曲线、Bezier曲线对腿部摆动阶段的轨迹进行规划。这篇关于四足机器人步态规划的文章主要讲解的是腿部末端的轨迹规划及步态规划,至于腿部对机器人本体的平衡控制,以及机器人腿部的阻抗控制,在后续文章会单独介绍,这篇文章不做讲解。

1.1 三角函数规划

三角函数曲线基本函数如下:

[公式]

在机器人运动过程中的swing阶段和stance阶段,对机器人腿部末端状态的x,y,z位置分别进行三角函数规划,保证运动平滑下的函数如下:

[公式] 阶段: [公式]

[公式]

[公式]

[公式]

[公式] 阶段:[公式]

[公式]

[公式]

[公式]

1.2 三阶bezier曲线规划

三阶bezier曲线函数式如下:

[公式]

由于三次贝塞尔曲线规划的输入为四个约束点,但在实际的规划过程中,只有起始落脚点和终止落脚点,因此输入的四个点中前两个点重合,后两个点重合来处理。处理之后的函数为:

[公式]

写成单变量形式:

[公式]

以上公式即为MIT Cheetah的FootSwingTrajectory的贝塞尔规划的实现。

在水平方向上以水平步幅 [公式] 作为规划条件;而在垂直方向上,则加上了一个swing的高度值h,上升和下降分别规划。如下所示是采用bezier曲线规划机器人末端步态轨迹的函数公式:

[公式] 阶段: [公式]

[公式]

[公式]

[公式]

[公式] 阶段: [公式]

[公式]

[公式]

2. 机器人Gazebo步态仿真

采用Gazebo搭建了四足机器人的仿真模型,采用前面讲到的规划方式进行机器人步态仿真,如下图2所示,是步态仿真时,内部的组成单元。主要有四部分组成:步态调度器gait scheduler,站立规划器stance planner,摆动规划器swing planner,以及逆运动学模型inverse kinematic。单腿的运动学关节坐标系如下图1所示。

图1 单腿的运动关节坐标系
图2 步态仿真的模块组成

步态调度器gait scheduler负责在给定的时间内规划哪条腿应该着地(stance),哪条腿应该向前走(swing),从而产生不同的机器人步态行为。例如常见的两种机器人运动状态下的步态trot和walk,在trot步态下机器人对角线的双腿同步移动,同时在站立stance和行走swing之间交替走动;而在walk步态下,通常是单腿处于swing状态,而其它腿处于stance状态,依次调动每一条腿swing,从而产生机器人的walk步态行为。

站立规划器stance和摆动规划器swing都是相对于身体质心的笛卡尔坐标中生成脚的目标轨迹;接着对目标轨迹进行时间插值,形成笛卡尔空间轨迹插补点;然后采用逆运动学将腿部笛卡尔空间插补点转换到关节空间;最后通过驱动Gazebo机器人仿真模型的关节位置,就可以实现机器人的步态仿真了。

如下图所示是采用Gazebo仿真实现的机器人躺平下(也就是腿部不受力,背部受力)的腿部末端运动状态。

图3 对角线双腿同步swing
图4 四条腿依次单腿swing

如下图所示是Gazebo仿真实现的机器人不同步态的仿真运动。

图5 stance状态下的蹲坐
图6 trot步态仿真
图7 walk步态仿真