足式机器人相较于传统的四轮式和履带式机器人,在复杂环境中展现出更高的机动性,尤其在军事任务和救援任务中表现更为出色。要实现机器人的智能化,首先需要让机器人具备类似人类或动物的行动能力。马克·雷波特认为,实现这一目标的关键在于让机器人具备以下三种能力:
波士顿动力公司致力于开发高效的四足机器人控制系统。从平衡控制入手,这项技术十分复杂,需要一定的先验知识。因此,我们首先探讨机器人的基本运动控制,即如何让机器人移动。这里介绍了一种基于平面三轴的运动控制方法。
在详细介绍这种控制方法之前,先简要介绍一些四足机器人的基础知识。我们的控制方法基于北理工出版的《仿生四足机器人技术》中的CPG控制网络。这部分内容主要摘自书中,笔者不再对具体技术细节做过多解释,有兴趣的读者可以自行查阅。
本章节讨论如何描述机器人的位置和姿态。位置可以通过坐标表示,例如在平面上的一个点可以用坐标[x, y]表示,在空间中则用[x, y, z]表示。姿态的描述则更为复杂,通常用旋转角表示。在机器人运动中,姿态和位置是解决定位和坐标转换问题的基础。
该项目设想了一个简化模型:在不考虑各腿协同运动的情况下,可以将机器人视为刚体,其运动类似于刚体的运动。我们选用欧拉角来表示机器人的姿态,运动包括Roll、Pitch、LinerZ、LinerX、LinerY、Yaw等部分。需要注意的是,LinerZ控制机器人的质心高度,属于姿态控制的一部分;而Yaw控制机器人在平面内的旋转,属于运动控制的一部分。
姿态控制主要涉及Roll、Pitch和Liner_Z。姿态控制更多应用于环境响应部分,这里暂不详述。接下来,我们重点讨论运动控制部分。
当四足机器人在平坦地面上运动时,质心高度(Liner_Z)、Pitch和Roll角基本保持不变,因此可以将其视为平面内的运动。其位置可以用坐标[x, y, θ]表示。当前的主要目标是通过控制模型使机器人沿着给定轨迹[P(t)]=[x(t), y(t), θ(t)]移动。基本运动包括:
几乎所有的平面运动都可以分解为上述三种基本运动的组合。例如:
需要注意的是,这些基本运动的顺序并不固定,既可同时发生,也可按时间先后发生,具体取决于实际环境对运动轨迹的约束。
足式动物的运动形式可以用“步态”来描述,步态是指各腿在行走时具有固定相位关系的运动模式。慢速行走时,四足动物每一步都是稳定的三脚支撑状态,称为行提高态,是一种四拍步态。快速行走时,则是两拍步态,如小跑步态(Trot)和溜蹄步态(Pace)。
为了用数学语言描述步态,我们需要了解以下几个参数:
以上参数定义了动物的步态,四足机器人的步态参照这些参数。步态转换时,左前腿相位定义为φLF=0,相对相位可以表示为负载因子β和右后腿相位φRH的函数。
动物的运动通常具有节律性,即按照一定的节奏重复协调的动作,这是低级神经中枢的自激行为。动物的节律运动控制区被认为是分层且模块化的,控制中心为中枢模式发生器(CPG)。后人根据CPG控制机理建立了不同的数学模型,这些模型能够产生周期性的振荡信号,满足节律运动的特点。
CPG模型大致分为两类:
根据这些模型的选择原则,我们选择了Hopf振荡器作为CPG的单元模型。
Hopf振荡器在形状空间中存在一个稳定的极限环,即对于任意非零初始值,振荡器都会产生相同形状的周期性振荡信号。其数学模型如下:
假设α=100, μ=1, ω=2π,振荡器产生的极限环和输入结果如下:
从图像可以看出,对于该微分方程组,取任意初始值x(0),y(0),在波动输入后,均能收敛到同一个圆上。放大输入信号进行观察:
通过对比发现,输入信号的上升沿与下降沿所用时间相同。我们将上升沿定义为摆动相,下降沿定义为支撑相。为了适应不同负载因子下的运动形式,对ω进行以下改进:
其中,ωst、ωsw分别表示支撑相频率和摆动相频率,参数a决定ω在这两者之间的变化速度,β为负载因子,用于控制不同步态。最终数学模型如下:
其中:
通过设置不同的参数值,可以观察到振荡器输入信号的幅值、周期、上升/下降沿所占时间比例的变化。这些参数之间不存在耦合,具体总结如下:
以上内容简要介绍了单个振荡器的特性,但四足机器人至少有12个自动关节,单个振荡器显然不够。因此,我们需要一个CPG控制网络来完成各腿的协同运动。CPG网络可以通过链式连接或网络连接实现,以完成多个肢体的协同运动,并在时域上保持相关性。
我们参考北理工《仿生四足机器人技术》中的CPG控制网络模型。基本思路是采用4个Hopf振荡器分别对应四足机器人的4条腿,将每个振荡器的x输入作为髋关节的角度控制信号,对y输入进行变换,再将变换后的信号作为膝关节的角度控制信号。
需要注意的是,这4个振荡器必须相互关联。按照前辈的方法,引入一个耦合项来表征振荡器之间的关系。最终数学模型如下:
其中:
至此,我们已经建立了最基础的控制网络模型。然而,这只是第一步,正如单个Hopf振荡器需要多个参数一样,该控制模型同样需要多个参数。这些参数与机器人有何关系?如何确定?这些问题将在后续文章中详细解答。
这里提供一个仿真实例,视频将在B站发布,搜索“四足机器人”,认准我的头像即可找到。
按照Trot步态的相位分布,给定以下参数α=1000, a=100, β=0.5, Ak=3.3, Ah=9.8, ωsw=5π,输入结果如下:
其中,蓝色信号为髋关节信号,红色信号为膝关节信号。从图像可以看出,输入信号符合Trot步态运动规律,左前腿与右后腿保持同步,其他腿也遵循相同的模式。髋关节信号在上升沿为正,其他时间为0,符合摆动相的要求。
最终,仿真结果如下:
[1] 罗庆生, 罗霄著. 仿生四足机器人技术[M]. 北京: 北京理工大学, 2016. 15-30.
[2] 韩宝玲, 王秋丽, 罗庆生. 六足仿生步行机器人足端工作空间和灵敏度研究[J]. 机械设计与研究, 2006, 22(4): 11-12.
[3] 常青, 韩宝玲, 罗庆生. 四足机器人转向与斜向运动规划理论及方法[J]. 北京理工大学学报, 2015, 35(5): 1-2.
[4] 施宏阳. 基于WCPG的步态生成与运动控制方法[D]. 华中科技大学, 2015. 15-18.
[5] 高翔. 视觉SLAM十四讲[M]. 北京: 电子工业出版社, 2017.