A1-QP-MPC-Controller开发环境搭建:VSCode远程调试与CLion配置教程
A1-QP-MPC-Controller开发环境搭建:VSCode远程调试与CLion配置教程
A1-QP-MPC-Controller是MIT Cheetah 3控制器的开源实现,专为四足机器人开发提供高效的QP-MPC控制算法。本文将详细介绍如何快速搭建开发环境,包括Docker容器配置、VSCode远程调试和CLion项目设置,帮助开发者轻松上手这个强大的四足机器人控制框架。
📋 开发环境准备
系统架构概览
A1-QP-MPC-Controller采用模块化设计,支持多种仿真环境和硬件平台。系统架构如下:
该架构通过ROS1实现控制器与仿真环境(Gazebo、Isaac Sim)及硬件设备的通信,核心控制算法在A1_Ctrl模块中实现。
硬件与软件要求
- 操作系统:Ubuntu 20.04 LTS(推荐)
- Docker:19.03+
- NVIDIA显卡:支持CUDA(仿真环境推荐)
- 内存:至少8GB RAM
- 存储:20GB以上可用空间
🐳 Docker环境配置
快速启动Gazebo仿真容器
项目提供了预配置的Docker环境,可快速启动Gazebo仿真:
-
克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/a1/A1-QP-MPC-Controller cd A1-QP-MPC-Controller -
构建Gazebo Docker镜像:
cd gazebo_docker docker build -t a1_unitree_gazebo_image . -
运行仿真容器:
./run_gazebo_docker.bash
该脚本位于gazebo_docker/run_gazebo_docker.bash,负责配置X11转发和NVIDIA运行时,确保仿真界面正常显示。
其他Docker环境选项
项目还提供了以下Docker配置:
- docker/Dockerfile:基础开发环境
- docker_noetic_focal/Dockerfile:ROS Noetic + Ubuntu Focal环境
🔧 VSCode远程调试配置
安装必要插件
- 安装VSCode插件:
- Remote - Containers
- C/C++ Extension Pack
- ROS
容器内开发配置
-
附加到运行中的Docker容器:
- 打开VSCode → 按F1 → 输入
Remote-Containers: Attach to Running Container - 选择
a1_unitree_gazebo_docker容器
- 打开VSCode → 按F1 → 输入
-
配置调试环境: 在
.vscode/launch.json中添加以下配置:{ "version": "0.2.0", "configurations": [ { "name": "A1 Gazebo Controller", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/devel/lib/a1_cpp/MainGazebo", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } -
启动调试:
- 按F5启动调试会话
- 在src/a1_cpp/src/MainGazebo.cpp设置断点
🛠️ CLion项目配置
导入CMake项目
-
打开CLion → 选择
Open→ 导航到项目根目录 → 选择src/a1_cpp/CMakeLists.txt -
配置工具链:
- 进入
File → Settings → Build, Execution, Deployment → Toolchains - 添加Docker工具链,选择正在运行的
a1_unitree_gazebo_docker容器
- 进入
运行与调试配置
-
创建运行配置:
- 点击
Run → Edit Configurations - 点击
+→ 选择CMake Application - 设置名称:
MainGazebo - 可执行文件:
devel/lib/a1_cpp/MainGazebo - 工作目录:项目根目录
- 点击
-
启动仿真调试:
- 点击运行按钮,CLion将在容器内启动Gazebo仿真
- 仿真界面显示如下:
🔍 配置文件说明
项目提供了多种环境的配置文件,位于src/a1_cpp/config/目录:
gazebo_a1_mpc.yaml:Gazebo仿真环境的MPC参数hardware_a1_qp.yaml:硬件平台的QP控制器参数isaac_a1_mpc.yaml:Isaac Sim仿真环境的MPC参数
可根据开发需求修改这些配置文件,调整控制器性能。
🚀 开始开发
运行示例程序
-
在容器内编译项目:
cd src/a1_cpp catkin_make source devel/setup.bash -
启动Gazebo仿真:
roslaunch a1_cpp a1_ctrl.launch -
运行控制器节点:
rosrun a1_cpp MainGazebo
硬件测试
如果有实际的A1机器人硬件,可使用以下命令部署到硬件:
cd src/a1_cpp
catkin_make -DCMAKE_BUILD_TYPE=Release
source devel/setup.bash
rosrun a1_cpp MainHardware
硬件运行效果如下:
💡 开发技巧
- 代码结构:核心控制算法位于src/a1_cpp/src/ConvexMpc.cpp
- ** kinematics **:腿部运动学实现见src/a1_cpp/src/legKinematics/A1Kinematics.cpp
- 测试:单元测试位于src/a1_cpp/src/test/目录
- Isaac Sim:如需使用NVIDIA Isaac Sim仿真,可参考doc/isaac_a1.png配置环境
通过以上步骤,您已成功搭建A1-QP-MPC-Controller的开发环境。无论是在仿真环境中测试算法,还是在实际硬件上部署,这个强大的控制框架都能为您的四足机器人项目提供稳定高效的控制能力。
更多推荐



所有评论(0)