四足机器人开发入门:Cheetah-Software 从仿真到自定义控制器的上手全攻略

四足机器人开发入门:Cheetah-Software 从仿真到自定义控制器的上手全攻略

【免费下载链接】Cheetah-Software 【免费下载链接】Cheetah-Software 项目地址: https://gitcode.com/gh_mirrors/ch/Cheetah-Software

Cheetah-Software 是 MIT 仿生机器人实验室(MIT Biomimetics Lab)面向 Mini Cheetah 与 Cheetah 3 推出的开源四足机器人软件平台,把浮基座动力学建模、状态估计、MPC 控制与 3D 可视化仿真整合进同一套框架。本文将以新手视角带你走完从环境搭建、编译构建、首次仿真到写出自定义控制器的完整路径,全程只讲"是什么、怎么用、能做什么"。


一、先认识一下:这套框架到底能帮你做什么

本部分你将学会:判断 Cheetah-Software 是否适合你的项目,以及它能覆盖哪些开发环节。

四足开发的三座大山,它替你搬走了两座半

做足式机器人的人普遍头疼三件事:动力学模型太复杂算法调试太费劲仿真代码和真机代码对不上。Cheetah-Software 的设计思路正是围绕这三点展开:

  • 模型不用自己推:浮基座动力学、腿部运动学都由现成模块提供,你直接调用即可。
  • 控制算法开箱即用:官方内置凸 MPC、全身控制(WBC)和完整的有限状态机,可以当"参考答案"来学习。
  • 一套代码双端复用:控制器代码在仿真和真实硬件上几乎通用,切换成本很低。

适合哪些人使用?

使用者你能获得什么
机器人方向的学生现成的仿真环境与算法示例,快速验证想法
控制算法研究者模块化接口清晰,方便替换或对比不同控制器
嵌入式 / 机械工程师完整的硬件桥接与实时驱动示例,少走很多弯路

二、开工前备齐环境:一张核对清单

本部分你将学会:用最少的命令装好所有系统依赖,并确认三个关键组件的版本。

系统级依赖,一条命令搞定

在 Ubuntu 终端里执行下面这行即可:

sudo apt install mesa-common-dev freeglut3-dev coinor-libipopt-dev libblas-dev liblapack-dev gfortran libglib2.0-dev cmake gcc build-essential

💡 这行命令覆盖了 OpenGL 图形、IPOPT 优化求解、BLAS/LAPACK 数值库、编译工具链等全部底层依赖,一次装齐。

三个必装组件,缺一不可

组件最低版本它负责什么
LCM1.3.1轻量级通信中间件,仿真器与控制器之间靠它传数据
Qt5.10提供 3D 仿真图形界面
Eigen较新版本即可线性代数运算的基础库

三、编译构建全流程:两种场景一次讲清

本部分你将学会:通用的五步构建流程,以及仿真与真机两种模式的区别。

通用构建五步法

cd scripts
./make_types.sh        # 第一步:生成 LCM 通信类型定义
cd ..
mkdir build && cd build
cmake ..
make -j4

💡 每次 LCM 类型文件有改动,都要重新跑一遍 make_types.sh,否则编译阶段会报类型错误。

仿真与真机:怎么选编译参数

构建场景命令差异说明
纯仿真开发默认 cmake ..最常用,普通电脑即可运行
Mini Cheetah 真机部署cmake -DMINI_CHEETAH_BUILD=TRUE ..会编译进硬件相关的实时驱动

编译完成后,可执行文件会生成在各自的构建目录下,接下来就可以进入最激动人心的环节——第一次仿真。


四、第一次跑起来:从启动到机器人小跑的分步流程

本部分你将学会:用两个终端配合,让仿真中的 Mini Cheetah 从站立进入小跑步态。

第 1 步:开一个终端启动仿真器

./sim/sim

第 2 步:开另一个终端启动控制器

./user/MIT_Controller/mit_ctrl m s

命令中两个参数的含义:m 表示 Mini Cheetah 机器人,s 表示仿真模式(换成 r 则对应真实机器人)。

第 3 步:按节奏切换控制模式

  1. 在仿真窗口中选择 Mini CheetahSimulator,点击 Start 按钮。
  2. 先把控制模式设为 10,等待机器人摆好准备姿态。
  3. 切换为 1,让机器人进入待命状态。
  4. 最后切到 4,机器人就会开始小跑步态。

💡 很多新手直接跳到模式 4 发现机器人不动,其实模式切换有固定顺序,10 → 1 → 4 的节奏不能乱。

手柄设置

如果使用 Logitech F310 手柄,记得把背面开关拨到 X 位置,此时正面的 LED 灯应处于熄灭状态,否则按键映射会不对。


五、项目结构地图:找代码不再大海捞针

本部分你将学会:快速定位六大核心模块,知道改什么去哪个目录。

目录模块作用典型文件
common/Dynamics/浮基座动力学模型FloatingBaseModel、MiniCheetah
common/Controllers/控制器接口与状态估计LegController、GaitScheduler
common/Math/数学工具与滤波算法orientation_tools、filters
sim/3D 仿真主程序Simulation.cpp、Graphics3D
robot/硬件与仿真桥接HardwareBridge、SimulationBridge
user/各类用户控制器示例MIT_Controller、JPos_Controller

其中 robot/src/rt/ 目录还封装了 EtherCAT、SPI、遥控器、惯导等实时硬件驱动,需要对接真机时重点看这里。


六、参数调整实战:不改代码也能改变机器人行为

本部分你将学会:通过 YAML 配置文件调整机器人参数和仿真地形。

三份核心参数文件

配置文件控制对象
config/mini-cheetah-defaults.yamlMini Cheetah 本体参数
config/cheetah-3-defaults.yamlCheetah 3 本体参数
config/simulator-defaults.yaml仿真器物理参数

地形也能自定义

config/default-terrain.yaml 支持添加网格、盒子、楼梯等多种地形元素,还可以调整地面摩擦系数等物理参数。想模拟草地、冰面或者越过台阶,改这里就行,完全不用碰代码。


七、调试与可视化工具箱

本部分你将学会:三个实用技巧,让调试效率翻倍。

用 LCM Spy 实时看数据

./scripts/launch_lcm_spy.sh

LCM Spy 是监控机器人状态数据的利器,可以实时查看并绘制仿真中的各类传感器与状态信息,排查控制问题时非常有用。

看懂仿真窗口里的两个模型

  • 灰色模型:仿真的实际机器人位置。
  • 红色模型:状态估计器输出的估计位置。

两者贴合说明估计器工作正常,出现明显偏差时就要检查估计算法了。

两个提高效率的小技巧

  • 空格键 进入自由相机模式,用 WASD 键移动视角。
  • 按住 t 键可以加速仿真运行,长时间跑数据时省时间。
  • 开启 cheater_mode 可以让估计位置直接等于实际位置(仅限仿真),方便单独调试控制器。

八、四步写出你的第一个自定义控制器

本部分你将学会:搭建一个属于自己的控制器工程,并认识五个核心接口。

第 1 步:建立工程目录

user/ 下新建一个控制器文件夹,直接参考现成的 JPos_Controller 示例结构,它的工程组织方式是最标准的模板。

第 2 步:实现控制器类

让你的类继承自 RobotController,并实现主控制逻辑。

第 3 步:登记到构建系统

user/CMakeLists.txt 中添加你的新目录,让编译系统认识它。

第 4 步:编译并运行验证

回到构建目录重新 cmakemake,然后在仿真中验证效果。

五个关键接口速览

接口作用
runController()主控制循环,以 1kHz 频率执行
_legController腿部控制接口,下发力矩与位置
_stateEstimate当前状态估计结果
_driverCommand游戏手柄输入
_visualizationData调试可视化数据接口

九、新手高频问题 FAQ

本部分你将学会:遇到最常见的五个坑,如何快速自救。

Q:编译时提示找不到 Qt? A:运行 ./scripts/find_qt_path.sh 脚本自动探测 Qt 路径。

Q:报 LCM 类型相关的错误? A:重新执行 ./scripts/make_types.sh 再编译,多半是类型定义没有同步。

Q:游戏手柄不被识别? A:先确认手柄模式开关是否在 X 位置、连接是否正常,再看正面的 LED 是否熄灭。

Q:仿真中机器人怎么都不动? A:检查控制模式是否按 10 → 1 → 4 的顺序切换,同时确认参数配置文件格式正确。

Q:要部署到真实 Mini Cheetah 上,网络怎么配? A:依次使用 ./scripts/setup_network_mc.py 配置网络、./scripts/send_to_mini_cheetah.sh 传输程序,最后在机器人端运行 ./run_mc.sh


十、往深了走:进阶路线图

本部分你将学会:找到下一步的深入学习方向。

控制算法方向

user/MIT_Controller/Controllers/ 下有大量宝藏:convexMPC 凸模型预测控制、WBC 全身控制,以及 FSM_States/ 中完整的有限状态机实现(站立、小跑、空翻、越障等),都是研究四足运动控制的绝佳范例。

数值优化方向

项目内置了多个二次规划求解器:third-party/osqp/ 的算子分裂求解器、third-party/qpOASES/ 以及 common/SparseCMPC/ 的稀疏模型预测控制实现,适合深入算法细节的同学。

数据处理方向

lcm_data/matlab_plot/ 提供了 MATLAB 数据分析脚本,scripts/lcm-log2smat/ 能把 LCM 日志转成 smat 格式,实验数据后处理一条龙。


读完这篇文章,你已经掌握了 Cheetah-Software 从环境搭建、编译构建、首次仿真到自定义控制器的完整链路,也知道了如何通过配置文件调整行为、用调试工具观察状态。这套框架的最大优势在于仿真到硬件的工作流完整模块化结构清晰示例代码丰富,无论是课程作业、科研实验还是产品原型,都能帮你把精力集中在真正想研究的问题上。

下一步建议很简单:现在就打开终端,照着第二章把环境装好,然后跑一遍第四章的流程,亲眼看着机器人小跑起来。跑通之后,试着用第六章的知识改几个参数,再按第八章的方法写一个最简单的关节位置控制器——你会发现,四足机器人开发并没有想象中那么遥远。🚀

【免费下载链接】Cheetah-Software 【免费下载链接】Cheetah-Software 项目地址: https://gitcode.com/gh_mirrors/ch/Cheetah-Software

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值