四足机器人入门指南:5步带你跑通Cheetah-Software仿真与调试

四足机器人入门指南:5步带你跑通Cheetah-Software仿真与调试

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

当你在网上刷到Mini Cheetah机器人腾空后空翻、在草坪上小跑的视频时,是不是也心动过:"这种四足机器人,我能不能也跑起来试试?" 但真正上手时,你可能会遇到一堆头疼事——环境装不上、仿真起不来、代码编不过,最后只能在命令行前干瞪眼。好消息是,MIT开源的 Cheetah-Software 四足机器人仿真与控制平台,就是为"把仿真跑起来"这件事而生的。它内置了完整的动力学仿真、状态估计、步态控制与可视化界面,你只需要一台带Ubuntu系统的电脑,就能在几分钟内看到一只机器人在屏幕上活蹦乱跳。

它到底牛在哪?一张表看懂

亮点说明适合谁
🎮 仿真即硬件同一套控制代码,仿真里调通后可直接部署到真实Mini Cheetah机器人方向的研究生、工程师
🧩 模块化架构动力学、控制器、仿真、硬件桥接分层清晰,改一处不影响全局想深入源码的开发者
🚀 开箱即用示例官方自带Joint PD、站立、小跑步态等多个FSM状态零基础的新手
📊 可视化调试3D仿真窗口 + LCM数据监控,调试像玩游戏一样直观所有人

使用门槛:熟悉基本的Linux命令即可,不需要懂底层控制理论;C++和线性代数有基础会让你后续更顺畅。

出发前,先备齐这几样

  • 操作系统:Ubuntu 16.04~19.04均可(官方推荐18.04)
  • CMake / GCC / build-essential:编译工具链
  • Qt 5.10+:仿真器的图形界面依赖(含gamepad手柄库)
  • LCM 1.3.1+:进程间通信中间件,安装时记得带上Java环境
  • Eigen:线性代数库
  • Logitech F310手柄(可选但推荐):操控机器人移动

你可以在终端一条命令装完大部分系统依赖:

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

安装与启动:三步走通最简路径

第一步,克隆仓库并进入目录:

git clone https://gitcode.com/gh_mirrors/ch/Cheetah-Software
cd Cheetah-Software

第二步,生成LCM类型定义(通信消息的"语言包"):

cd scripts
./make_types.sh
cd ..

💡 这一步报一个 rm: cannot remove... 之类的警告是正常的,忽略它继续即可。

第三步,编译整个工程:

mkdir build && cd build
cmake ..
make -j4

如何确认安装成功? 编译完成后,运行自带的单元测试:

common/test-common

如果输出结尾出现 [ PASSED ] 18 tests.,恭喜你,安装成功!这个测试覆盖了动力学、滤波、数学工具等核心模块,通过它就意味着你的环境已经能支撑整个仿真流程了。

第一个示例:让Mini Cheetah在仿真里跑起来

现在到了最激动人心的时刻——让机器人动起来。整个过程只需要两个终端

终端一:启动仿真器

./sim/sim

在弹出的窗口里,左侧选择 "Mini Cheetah""Simulator",点击 "Start"。如果手柄已插入,你会在输出中看到 [GameController] Found 1 joystick

终端二:启动控制器

./user/MIT_Controller/mit_ctrl m s

参数说明:m 表示Mini Cheetah机器人,s 表示仿真模式(换成 r 就是连接真实硬件)。

成功标志看这里 👀

  1. 仿真器画面中,机器人会先自动摆出"准备姿态"(四条腿撑地站立);
  2. 在窗口中间面板把控制模式设为 10(恢复站立),等机器人完全静止;
  3. 再把模式切到 1(站立),随后切到 4(小跑步态);
  4. 机器人开始以trot步态原地小跑——看到它迈开腿,你的第一个Demo就成功了!

试试用左摇杆推动它前后左右移动,你会看到灰色模型(真实位置)与红色模型(估计位置)几乎重合。

OSQP优化求解器标志

两个必须懂的核心概念(用大白话讲)

1. 控制模式 = 机器人的"档位" 🕹️ 就像汽车有P档、D档,Cheetah-Software用数字代表不同的行为:0 是被动模式(断电松弛),1 是站立,4 是小跑,10 是恢复站立。你在仿真面板里切数字,就是"换挡",机器人会按当前档位执行对应的FSM状态逻辑。理解了这一点,你就能看懂 FSM_State.h 里那些宏定义了。

2. 共享内存 = 控制器与仿真的"对讲机" 📻 控制器 mit_ctrl 和仿真器 sim 是两个独立进程,它们通过共享内存互相通信:仿真把传感器数据发过去,控制器把力矩指令发回来。这就像两个人隔着墙用对讲机对话——所以你必须同时开两个终端,缺一个就"失联"了。

三个高频实操场景

场景一:加速仿真节省等待时间 按住键盘 t 键不放,仿真会以最快速度运行;松手即恢复1倍速。调步态、测参数时这招能帮你省下大把时间。

场景二:用LCM Spy监控内部数据 仿真运行时另开一个终端:

./scripts/launch_lcm_spy.sh

这是机器人的"心电图":能实时看到关节角度、IMU数据、接触力等所有通信流,点击任意数据流就能绘图,排查控制问题时超级好用。如果遇到Java报错,改用 launch_lcm_spy_jdk_fix.sh 即可。

场景三:自由视角看机器人 按下空格键进入自由相机模式,用 W/A/S/D 移动、鼠标拖拽旋转视角,从任意角度观察步态姿态。

配置与个性化:按你的口味调整

  • 仿真速度与地面摩擦:修改 config/simulator-defaults.yaml 里的 simulation_speed,以及 config/default-terrain.yaml 里的地面摩擦系数。想加楼梯、盒子和网格地形?后者里已经有注释好的示例,取消注释即可。
  • "作弊模式":在仿真窗口中间面板打开 cheater_mode,状态估计会直接等于真实位置——调试控制器时排除估计器干扰,非常实用。
  • 控制器用户参数:右侧面板对应你的控制器专属参数(如PD增益),修改后可在不重编译的情况下实时调节,是调参利器。

⚠️ 注意:加载的yaml参数必须与代码中定义的完全一致,否则控制器不会启动;增删参数后需要重新编译对应程序。

避坑手册:常见误区与正确做法

常见误区 ❌正确做法 ✅
只开仿真器,忘了启动控制器,抱怨"机器人不动"两个终端缺一不可,sim/simmit_ctrl m s 同时运行
编译报错就怀疑代码坏了先检查是否忘记执行 ./make_types.sh;改过LCM类型后需重跑 cmake .. && make
OSQP测试失败就认为安装失败OSQP求解器本身非确定性,重跑一次大概率通过,可忽略
手柄没反应就乱按F310背面开关拨到 "X" 位置,切换后需重新插拔;正面LED应熄灭
直接在build目录外运行 sim所有可执行文件都在 build 目录内,先 cd build 再运行
加载自定义参数文件后控制器起不来参数必须与代码定义一一对应,缺一个都不行

进阶路线图:从"跑起来"到"写自己的控制器"

  1. 模仿官方控制器user/JPos_Controller 是最简示例,user/MIT_Controller 是官方完整实现,对照 documentation/getting_started.md 的接口说明逐行理解。
  2. 写第一个自定义控制器:在 user/ 下新建文件夹,继承 RobotController 类,实现 runController()(以1kHz自动调用),在 user/CMakeLists.txt 注册后重新编译。你的机器人就能按你的逻辑动了!
  3. 深入算法层user/MIT_Controller/Controllers/convexMPC(凸MPC)、WBC(全身控制)、BackFlip(后空翻)是研究级代码;third-party/osqpqpOASES 是背后的优化求解器,想做足式机器人最优控制就从这里入手。
  4. 挑战真机部署:读 documentation/running_mini_cheetah.md,用 -DMINI_CHEETAH_BUILD=TRUE 编译、send_to_mini_cheetah.sh 传输代码——仿真调通的代码,在这里完成最后的蜕变。

写在最后

Cheetah-Software最迷人的地方,在于它把MIT顶尖实验室的完整研究链路——从仿真验证到真机部署——装进了一个你能亲手掌控的工程里。你不需要站在MIT的实验室,也能看到自己的代码驱动一只机器人跑起来。现在,去打开那个终端,让这只小猎豹迈出第一步吧。🚀

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

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

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

抵扣说明:

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

余额充值