Qmini 部署开发指南
Qmini 完整开发流程(仿真训练 + 实机部署)
核心认知:两个仓库的分工
| 仓库 | 用途 | 语言 | 运行环境 |
|---|---|---|---|
| RoboTamer4Qmini | 仿真环境 + 强化学习训练 | Python | 上位机(Ubuntu + Isaac Gym) |
| RoboTamerSdk4Qmini | 实机部署 + 电机控制 | C++ | 树莓派(Ubuntu + Unitree SDK) |
第一部分:仿真训练(上位机)
这部分使用 RoboTamer4Qmini,在虚拟环境中训练步态策略:
1. 环境准备
# 克隆训练仓库
git clone https://github.com/vsislab/RoboTamer4Qmini.git
cd RoboTamer4Qmini
# 安装依赖(需要 Isaac Gym)
pip3 install -r requirements.txt
2. 训练模型
# 训练新的步态策略
python train.py --config BIRL --name my_qmini_experiment
3. 导出模型
# 将训练好的 .pt 模型导出为 .onnx 格式(用于实机部署)
python export_pt2onnx.py --name my_qmini_experiment
第二部分:实机部署(树莓派)
这部分使用 RoboTamerSdk4Qmini,这才是真正控制电机的代码!
1. 核心依赖
- Unitree Actuator SDK:宇树官方的电机控制 SDK
- ONNX Runtime:用于运行导出的 .onnx 模型
- yaml-cpp, Eigen:C++ 依赖库
2. 部署步骤
# 1. 克隆实机控制仓库
git clone https://github.com/vsislab/RoboTamerSdk4Qmini.git
cd RoboTamerSdk4Qmini
# 2. 安装依赖库
# 安装 cmake
sudo apt-get install cmake
# 安装 yaml-cpp 和 Eigen(需要从源码编译)
# 下载 yaml-cpp-0.6.0 和 eigen-3.3.7,然后:
cd yaml-cpp-0.6.0 && mkdir build && cd build
cmake .. && make && sudo make install
# 3. 安装 ONNX Runtime 和 Unitree Motor SDK
# 复制库文件到系统目录
sudo cp lib/libonnxruntime.so* /usr/lib/
sudo cp lib/libUnitreeMotorSDK_arm64.so /usr/lib/ # 树莓派用 arm64 版本
# 4. 编译项目(树莓派指定 PLATFORM=arm64)
mkdir build && cd build
cmake -DPLATFORM=arm64 ..
make
# 5. 进入 bin 目录
cd ../bin
3. 关键配置(重要!)
根据搜索结果,需要修改 include/user/motor_thread.hpp:
// 修改串口路径为你树莓派的实际串口
std::vector<SerialGroup> serialGroups = {
{"/dev/ttyUSB0", {0, 1, 2, 3, 4}}, // 第一组串口和对应的电机ID
{"/dev/ttyUSB1", {5, 6, 7, 8, 9}} // 第二组串口和对应的电机ID
};
注意:电机ID要根据你机器人的实际组装情况设置!
4. 运行实机控制
# 在 bin 目录下运行
sudo ./run_interface
# 然后按照提示操作:
# 1. 输入 1 → 进入准备模式
# 2. 输入 2 → 进入站立模式
# 3. 输入 3 → 进入 AI 控制模式(加载 ONNX 模型)
第三部分:两个仓库的衔接
- 仿真端:用
RoboTamer4Qmini训练模型,导出为.onnx - 实机端:把
.onnx模型复制到树莓派的RoboTamerSdk4Qmini/bin目录 - 运行:
RoboTamerSdk4Qmini会加载 ONNX 模型,通过 Unitree SDK 控制电机
总结
- 我之前的错误:混淆了仿真训练仓库和实机控制仓库,虚构了
utils/motor_controller.py - 正确的流程:
- 上位机:
RoboTamer4Qmini(Python)→ 训练 → 导出 ONNX - 树莓派:
RoboTamerSdk4Qmini(C++)→ 加载 ONNX → Unitree SDK 控电机
- 上位机:
- 电机控制的核心:
unitree_actuator_sdk(宇树官方电机SDK),不是自己写的 Python 脚本

浙公网安备 33010602011771号