技术博客
推理优化其他原理

三分钟看懂 CPG 节律控制

LSST2026-08-06 10:00
三分钟看懂 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 控制器可以按照以下步骤运行:

  1. 读取前进和转向指令。

  2. 根据速度指令设置频率和步长。

  3. 更新左腿相位。

  4. 根据相位差计算右腿相位。

  5. 生成左右足端的前后轨迹和高度轨迹。

  6. 通过逆运动学计算关节目标。

  7. 根据机器人当前状态适当修正节奏参数。

  8. 将关节目标发送到底层执行模块。

若系统中还使用 WBC,可以在生成参考轨迹后,由 WBC 进一步计算全身关节输出。


十七、总结

CPG 是一种面向周期运动的节律生成方法。

它通过频率、幅值、偏置和相位等参数,协调机器人不同腿和不同关节之间的运动。

CPG 特别适合生成:

  • 双足替步态;

  • 四足周期步态;

  • 轮足机器人腿部节奏;

  • 足端摆动轨迹;

  • 连续踏步动作;

  • 不同步态之间的切换。

在完整机器人系统中,不同模块可以分别承担不同任务:

  • 状态机负责选择运动模式;

  • CPG 负责生成周期节奏;

  • 强化学习负责调整动作参数;

  • MPC 负责规划后续运动;

  • WBC 负责协调全身执行。

一种常见组合方式是:

状态机或强化学习
调整 CPG 参数
CPG 生成足端轨迹
WBC 计算关节输出
机器人执行动作

通过这种分层方式,机器人既能保持连续、规律的运动节奏,也可以根据自身状态调整运动参数。

点赞收藏
// 评论0
0 / 500
还没有评论,快来抢沙发