Loading

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 模型)

第三部分:两个仓库的衔接

  1. 仿真端:用 RoboTamer4Qmini 训练模型,导出为 .onnx
  2. 实机端:把 .onnx 模型复制到树莓派的 RoboTamerSdk4Qmini/bin 目录
  3. 运行RoboTamerSdk4Qmini 会加载 ONNX 模型,通过 Unitree SDK 控制电机

总结

  1. 我之前的错误:混淆了仿真训练仓库和实机控制仓库,虚构了 utils/motor_controller.py
  2. 正确的流程
    • 上位机:RoboTamer4Qmini(Python)→ 训练 → 导出 ONNX
    • 树莓派:RoboTamerSdk4Qmini(C++)→ 加载 ONNX → Unitree SDK 控电机
  3. 电机控制的核心unitree_actuator_sdk(宇树官方电机SDK),不是自己写的 Python 脚本
posted @ 2026-02-26 15:46  StarVik  阅读(311)  评论(0)    收藏  举报