三分钟看懂 CPG 节律控制

三分钟看懂 CPG 节律控制:机器人如何生成周期步态
机器人在行走时,需要让多条腿和多个关节按照一定顺序配合。
例如,双足机器人通常需要一侧支撑、另一侧摆动;四足机器人则需要安排四条腿的动作顺序。如果完全依靠人工设置每一个时刻的关节角度,轨迹设计和参数调整都会比较复杂。
CPG 是一种常见的周期运动生成方法。它可以持续产生有规律的节律信号,并利用这些信号协调机器人不同关节的运动。
简单来说:
CPG 就像一个节拍器,为机器人的腿部运动提供连续节奏。
一、什么是 CPG?
CPG 的英文全称是 Central Pattern Generator。
在机器人控制中,它通常由一个或多个振荡单元组成。每个振荡单元都会产生连续、周期变化的输出。
这些输出可以用于生成:
髋关节目标角度;
膝关节目标角度;
足端前后轨迹;
足端抬升轨迹;
左右腿动作节奏;
多条腿之间的配合关系。
与逐点轨迹相比,CPG 不需要提前保存大量动作点,只需要调整少量参数,就能改变运动速度、步长和抬腿高度。
二、CPG 为什么适合机器人行走?
机器人行走本身具有明显的重复规律。
以双足机器人为例,一个完整周期通常可以概括为:
左侧支撑
右侧摆动
右侧落下
右侧支撑
左侧摆动
左侧落下
完成一个周期后,机器人继续进入下一个周期。
CPG 可以自动重复这一过程,因此特别适合:
双足行走;
四足行走;
轮足机器人抬腿;
周期摆动动作;
连续踏步;
规则地形运动。
三、CPG 的几个核心参数
1. 频率
频率决定动作节奏。
频率较低时,机器人迈步较慢;频率提高后,动作周期会缩短。
频率需要与机器人关节速度和整体结构相匹配。设置过高时,关节可能来不及完成当前动作。
2. 幅值
幅值决定动作范围。
例如:
髋关节幅值影响腿部前后摆动距离;
膝关节幅值影响腿部收缩程度;
足端高度幅值影响抬腿高度。
幅值较小,动作更加平缓;幅值增加后,机器人可以获得更大的步长或更高的足端轨迹。
3. 偏置
偏置决定周期动作围绕哪个基础姿态变化。
例如,膝关节可以先保持一定弯曲程度,再围绕这一基础角度做周期变化。
调整偏置可以改变:
默认站姿;
身体高度;
膝关节弯曲程度;
腿部初始形态。
4. 相位
相位表示当前动作进行到了周期中的哪个位置。
可以将一个完整动作周期理解为一个圆。相位不断向前变化,机器人动作也随之循环。
5. 相位差
相位差决定不同腿之间的动作顺序。
例如,双足机器人左右腿通常保持半个周期左右的差距。
这样可以形成:
左腿摆动时,右腿支撑;
右腿摆动时,左腿支撑。
对于四足机器人,不同的相位组合还可以产生不同步态。
四、CPG 如何控制双足机器人?
双足机器人可以为左右腿分别设置一个节律单元。
两个单元使用相同频率,但保持一定的相位差。
左腿的节律信号可以用于控制:
左髋关节;
左膝关节;
左侧足端轨迹。
右腿则使用对应的另一组信号。
为了让腿部动作更自然,髋关节和膝关节通常不会完全同步。
例如,腿部向前摆动时,膝关节可以适当收缩;准备落下时,膝关节再逐渐展开。
通过设置不同幅值和相位偏移,就可以形成较完整的迈步动作。
五、CPG 如何控制四足机器人?
四足机器人通常需要四个相互协调的节律单元。
不同的相位组合可以形成不同步态。
对角配合步态
左前腿与右后腿保持相近节奏,右前腿与左后腿保持相近节奏。
两组腿之间保持一定的相位差。
这种步态常用于速度较高的运动。
顺序行走步态
四条腿依次完成摆动,大部分时间内都有多条腿保持支撑。
这种步态速度相对较慢,但身体姿态通常更加平稳。
同步伸展步态
多条腿采用接近的节奏,同时完成伸展和收缩。
通过改变各腿之间的相位关系,机器人可以在不同步态之间切换。
六、直接控制关节还是控制足端?
CPG 可以通过两种方式生成机器人动作。
方法一:直接生成关节目标
节律信号直接转换为髋关节和膝关节的目标角度。
这种方法结构简单,计算量较小。
但关节参数与最终足端运动之间的关系不够直观。
方法二:先生成足端轨迹
CPG 先生成足端的前后位置和高度,再通过逆运动学计算关节目标。
这种方法可以直接调整:
步长;
抬腿高度;
落脚位置;
摆动时间;
支撑时间。
对于需要越过台阶或地面起伏的机器人,足端轨迹方式通常更加直观。
七、CPG 如何调节机器人速度?
机器人速度可以通过多个参数共同调节。
提高频率
机器人在单位时间内完成更多步态周期。
增大步长
每次迈步的前进距离增加。
调整支撑和摆动时间
可以改变腿部在不同阶段所占的时间比例。
一般来说,机器人速度增加时,可以适当提高频率并增大步长。
不过,两者都需要根据关节性能和机身稳定情况设置合理范围。
八、CPG 如何实现转向?
机器人转向时,可以让左右两侧采用不同的运动参数。
例如,机器人向左转时:
左侧步长适当减小;
右侧步长适当增加;
左右侧的节律频率保持接近;
根据需要调整身体朝向。
对于轮足机器人,还可以同时调整左右轮速度。
腿部负责保持身体姿态和高度,轮子负责主要的前进与转向。
九、CPG 为什么需要状态信息?
只依靠固定节奏时,机器人会按照内部周期持续运动。
但实际环境可能发生变化,例如:
足端提前到达地面;
某条腿完成动作较慢;
身体出现倾斜;
地面高度发生变化;
机器人速度没有达到预期。
因此,可以使用机器人当前状态修正 CPG 参数。
常用状态包括:
机身姿态;
关节角度;
关节速度;
足端状态;
左右支撑情况;
实际移动速度。
例如,当足端提前到达地面时,可以适当提前进入下一阶段。
当机身向一侧倾斜时,可以调整左右腿的支撑幅值,使身体逐渐恢复到期望姿态。
十、基础 CPG 与状态修正 CPG
基础 CPG
基础 CPG 按照固定参数持续输出周期信号。
它的优点是:
结构简单;
计算量小;
节奏连续;
参数容易理解。
它更适合规则场景和固定动作。
状态修正 CPG
状态修正 CPG 会根据机器人当前状态调整频率、幅值或相位。
它可以更好地适应:
运动速度变化;
身体姿态变化;
地面高度变化;
左右动作差异;
落脚时刻变化。
实际机器人通常更适合使用带状态修正的 CPG。
十一、CPG 如何用于轮足机器人?
轮足机器人同时具有轮式移动和腿部调节能力。
在平整地面上,轮子可以负责主要移动,腿部主要完成:
身体高度保持;
俯仰姿态调节;
横滚姿态调节;
左右载荷平衡。
当机器人需要完成较大的高度变化时,可以启动腿部节律动作。
一个简化结构是:
平地移动:轮速控制加腿部姿态保持。
需要抬腿时:CPG 生成腿部轨迹,轮子配合低速前进。
CPG 可以让左右腿交替动作,避免两侧同时进入摆动阶段。
十二、CPG 与状态机有什么区别?
状态机将动作分成多个明确阶段,例如:
准备
抬腿
向前摆动
逐渐落下
保持支撑
每个阶段都有对应的进入和结束条件。
CPG 则使用连续变化的相位表示整个动作周期。
状态机的特点是:
阶段关系清晰;
逻辑容易检查;
适合流程明确的动作。
CPG 的特点是:
轨迹连续;
适合重复动作;
频率和幅值容易修改;
不同关节容易保持固定节奏。
两者也可以结合使用。
例如,状态机负责选择当前运动模式,CPG 负责生成该模式内部的周期轨迹。
十三、CPG 与强化学习如何结合?
强化学习可以根据机器人状态动态调整 CPG 参数。
一个常见结构是:
机器人状态
强化学习策略
CPG 参数
周期足端轨迹
关节目标
强化学习可以输出:
动作频率;
抬腿高度;
前后步长;
左右相位修正;
关节基础姿态;
转向参数。
与直接输出所有关节目标相比,调节 CPG 参数可以减少策略输出数量,同时让动作保持一定的周期规律。
十四、CPG 与 WBC 如何结合?
CPG 主要负责生成运动节奏和参考轨迹。
WBC 主要负责协调机身、腿部和地面支撑关系。
两者可以按照下面的结构组合:
运动指令
CPG 生成足端轨迹
生成机身和腿部参考
WBC 计算全身输出
关节执行
可以简单理解为:
CPG 负责什么时候摆动以及怎样形成节奏;
WBC 负责当前时刻全身应该如何配合。
这种组合适合双足、四足和轮足机器人。
十五、CPG 参数调整时需要注意什么?
频率不宜过高
关节需要足够时间完成当前动作。
幅值需要逐步增加
先使用较小动作范围,再根据任务逐渐提高。
左右相位要保持合理
交替步态中,左右腿通常需要保持接近半个周期的差距。
状态修正不宜变化过快
相位和幅值突然改变,可能使关节目标不够连续。
不同参数需要统一尺度
频率、步长、抬腿高度和关节范围需要相互匹配。
十六、一个简化的 CPG 控制流程
一个基础的双足 CPG 控制器可以按照以下步骤运行:
读取前进和转向指令。
根据速度指令设置频率和步长。
更新左腿相位。
根据相位差计算右腿相位。
生成左右足端的前后轨迹和高度轨迹。
通过逆运动学计算关节目标。
根据机器人当前状态适当修正节奏参数。
将关节目标发送到底层执行模块。
若系统中还使用 WBC,可以在生成参考轨迹后,由 WBC 进一步计算全身关节输出。
十七、总结
CPG 是一种面向周期运动的节律生成方法。
它通过频率、幅值、偏置和相位等参数,协调机器人不同腿和不同关节之间的运动。
CPG 特别适合生成:
双足替步态;
四足周期步态;
轮足机器人腿部节奏;
足端摆动轨迹;
连续踏步动作;
不同步态之间的切换。
在完整机器人系统中,不同模块可以分别承担不同任务:
状态机负责选择运动模式;
CPG 负责生成周期节奏;
强化学习负责调整动作参数;
MPC 负责规划后续运动;
WBC 负责协调全身执行。
一种常见组合方式是:
状态机或强化学习
调整 CPG 参数
CPG 生成足端轨迹
WBC 计算关节输出
机器人执行动作
通过这种分层方式,机器人既能保持连续、规律的运动节奏,也可以根据自身状态调整运动参数。