一、绪论:四足机器人发展史、平衡控制的重要性、课程目标与仿真环境概览
1.1 四足机器人:从实验室玩具到产业新星
四足机器人,说白了就是模仿四足动物运动的机器人。你可能在短视频里见过波士顿动力的 Spot 跳舞,或者看过国内宇树科技的 B2 在雪地里奔跑。但这条路走了很久。
我入行那会儿,2015 年左右,四足机器人还属于「实验室专属」。一台机器人的成本能买一辆豪车,控制算法跑在工控机上,走两步就摔。那时候大家讨论最多的问题是:「怎么让它站稳?」
这些年发生了什么?我简单梳理了几个关键节点:
| 时间 | 里程碑 | 我的感受 |
|---|---|---|
| 1980s | Raibert 团队发明单腿跳跃控制,奠定动态平衡理论基础 | 那时候我还没出生,但后来读时被震撼到了 |
| 2013 | 波士顿动力发布 BigDog 升级版,展示极强的地形适应能力 | 当时我在读研,看完视频直接决定做这个方向 |
| 2019 | MIT 开源 Mini Cheetah 软硬件,四足机器人进入「人人可玩」时代 | 我第一时间下载了代码,跑起来那一刻真的很激动 |
| 2023 | 国内宇树、云深处等厂商推出消费级四足机器人,价格降到万元级 | 现在学生也能买一台来玩了,这在我当年想都不敢想 |
从硬件架构看,四足机器人也经历了明显迭代。早期用液压驱动,力大但笨重;后来换成电机+减速器,轻便且可控;现在主流是「高扭矩密度电机+弹性关节」,兼顾爆发力和柔顺性。
核心认知:四足机器人的进化,本质上是「硬件小型化」和「算法智能化」两条腿走路的结果。硬件决定了你能做什么,算法决定了你能做多好。
1.2 平衡控制:为什么它是「地基」?
你想想看,一个四足机器人如果站都站不稳,后面那些花哨的奔跑、跳跃、爬楼梯就全是空谈。平衡控制,就是整个运动控制系统的地基。
我在项目中遇到过最典型的场景:一台机器人在平地上走得好好的,突然遇到一个小台阶,前脚踩空,整个机身瞬间倾斜。如果平衡控制器反应够快,它会立刻调整躯干姿态、重新分配足端力,在 100 毫秒内恢复稳定。如果反应慢了,结果就是——摔。
平衡控制要解决的核心问题有三个:
- 姿态稳定:让机身保持水平,不前后仰、不左右翻。这需要 IMU 实时反馈,配合 PD 控制器或更高级的 MPC 做调节。
- 力分配:四条腿该各出多少力?支撑腿要撑住机身,摆动腿要轻快落地。力分配错了,机器人就会「跛行」。
- 抗扰动:被人推一把、踩到石子、地面突然变滑——这些意外扰动来了,控制器能不能扛住?
避坑指南:我曾经在力分配环节踩过坑。当时只考虑了静态力分配,结果机器人一迈腿就翻。后来才意识到,动态情况下必须考虑机身加速度和角加速度带来的惯性力,否则分配出来的力根本不对。
平衡控制的难度在于:四足机器人是一个「浮动基座」系统。它的机身不固定在地面上,所有运动都依赖于足端与地面的接触力。而地面接触又是非连续的——脚抬起来就没力,踩下去才有。这种「时变拓扑」让控制问题变得非常棘手。
1.3 课程目标:你能学到什么?
这门课的目标很明确:让你从零开始,搭建一套能在仿真环境中稳定运行的四足机器人平衡控制系统。
具体来说,学完这门课,你应该能:
- 理解四足机器人运动学、动力学的基本建模方法
- 掌握状态估计(机身姿态、足端位置)的常用算法
- 实现基于简化模型的平衡控制器(如 VMC、MPC)
- 在 Gazebo 或 MuJoCo 仿真环境中调试并验证你的算法
- 看懂并修改开源四足机器人控制代码(如 MIT Cheetah 的代码框架)
我不会给你堆砌一堆数学公式然后说「你们自己看」。我会把每个公式拆开,告诉你它到底在算什么,为什么这么算,以及——算错了会怎样。
课程定位:这不是一本「四足机器人百科全书」。这是一本「实战手册」。每章都有可运行的代码,每个算法都有对应的仿真场景。你跟着做,就能跑起来。
1.4 仿真环境概览:我们的「试验场」
为什么一定要用仿真?原因很简单:摔不坏。我在实验室里摔坏过两台机器人,每台维修成本够买一台新电脑。仿真环境里你随便摔,重启一下就行。
本课程使用的主要仿真环境是 Gazebo + ROS 2。为什么选这个组合?
| 组件 | 作用 | 为什么选它 |
|---|---|---|
| Gazebo | 物理引擎、传感器仿真、可视化 | 开源、社区活跃、支持多种物理引擎(ODE、Bullet、DART) |
| ROS 2 | 节点通信、数据记录、可视化工具 | 工业级稳定、分布式架构、生态完善 |
| Rviz | 实时数据可视化 | 可以直观看到机身姿态、足端轨迹、力矢量 |
当然,我也会穿插使用 MuJoCo 做快速原型验证。MuJoCo 的计算效率更高,适合算法迭代阶段快速试错。
注意:仿真环境不是万能的。仿真中的摩擦力、惯性参数都是理想化的。你在仿真里跑得飞快的控制器,搬到真机上可能连站都站不稳。这就是所谓的「Sim-to-Real Gap」。课程最后我会专门讲怎么缩小这个差距。
下面这张图展示了我们课程的核心知识体系:
这张图就是整门课的「地图」。我们从建模开始,打好基础;然后做状态估计,让机器人「知道自己在哪」;接着实现平衡控制器,让机器人「知道该怎么动」;最后放到仿真里验证,再想办法迁移到真机上。