
Roban2倒地起身训练部署框架
Overview
本文档对 Roban2 倒地起身的主要流程进行步骤引导。
Prerequisites
在开始之前,请确保满足以下软硬件要求:
- 操作系统: Linux (推荐 Ubuntu 20.04/22.04, x86_64)
- 硬件: NVIDIA GPU
第一部分:强化学习训练流程
核心环境: NVIDIA Isaac Sim + Isaac Lab
1. 安装 Isaac Sim 4.5.0
需要先手动下载 NVIDIA Isaac Sim 4.5.0。
mkdir ~/roban_rl_rise && mkdir ~/roban_rl_rise/isaacsim # 也可以不创建roban_rl_rise而其他文件夹存放工程
cd ~/Downloads
unzip "isaac-sim-standalone-4.5.0-linux-x86_64.zip" -d ~/roban_rl_rise/isaacsim
cd ~/roban_rl_rise/isaacsim
export ISAACSIM_PATH="${HOME}/roban_rl_rise/isaacsim"
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"
${ISAACSIM_PATH}/isaac-sim.sh
等待窗口弹出则这一步完成,可以结束该进程。

2. 配置 Isaac Lab 2.1.0
克隆 Isaac Lab 仓库,建立与 Isaac Sim 的软链接,并使用 Conda 创建名为 roban_rise 的虚拟环境进行安装。
cd ~/roban_rl_rise
git clone https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
git checkout v2.1.0
ln -s ../isaacsim _isaac_sim # 建立软链接
./isaaclab.sh --conda roban_rise
conda activate roban_rise
./isaaclab.sh --install
后续脚本需在 IsaacLab 已正确安装并激活的 Conda 环境中执行。
3. 获取训练代码库
cd ~/roban_rl_rise
git clone https://gitee.com/leju-robot/roban_whole_body_tracking.git
cd roban_whole_body_tracking
python -m pip install -e source/whole_body_tracking
pip install "numpy==1.26.4"
4. 数据预处理 (CSV 转 NPZ)
将动作捕捉数据经由 GMR 处理后,得到包含机器人 baselink 全局位姿和关节角度数据的 csv 格式数据。本工程提供脚本将其转换为信息更丰富的 npz 格式。若设备性能不足,建议使用 --headless 参数。
- 参数说明:需替换
{motion_name}为实际文件名。
python scripts/csv_to_npz.py \
--input_file {motion_name}.csv \
--input_fps 30 \
--output_name {motion_name} \
--save_to assets/motions/{motion_name}.npz \
--no_wandb \
--headless
5. 验证动作回放
在开始训练前,先测试转换后的动作数据是否能正确回放。
注意:replay_npz 仅验证数据格式与关节映射正确性,不代表该动作在动力学上可执行。
python scripts/replay_npz.py \
--motion_file assets/motions/{motion_name}.npz
6. 开始训练 (Train)
启动强化学习训练任务。
- 任务名称:
Tracking-Flat-RobanS2-v0
python scripts/rsl_rl/train.py \
--task=Tracking-Flat-RobanS2-v0 \
--motion_file assets/motions/{motion_name}.npz \
--headless
使用 tensorboard 可视化训练进程:
tensorboard --logdir=${HOME}/roban_rl_rise/roban_whole_body_tracking/logs/rsl_rl/robanS2_flat
7. 模型转换 (Play)
加载训练好的模型检查点进行演示,运行后会生成可用于部署的 .onnx 文件。
python scripts/rsl_rl/play.py \
--task=Tracking-Flat-RobanS2-v0 \
--motion_file assets/motions/{motion_name}.npz \
--model_path logs/rsl_rl/{task_name}/{timestamp}/model_{checkpoint}.pt \
--num_envs 2 \
--headless
第二部分:部署与实机验证流程
核心环境: Docker + ROS + Mujoco
1. 获取部署代码库
拉取 kuavo-ros-opensource 仓库并切换到指定的测试分支。
cd ~/roban_rl_rise
git clone -b opensource/roban_factory https://gitee.com/leju-robot/kuavo-ros-opensource.git
cd kuavo-ros-opensource
2. 环境编译
非实机(使用 Docker):
./docker/run_with_gpu.sh
export ROBOT_VERSION=14 # Roban2 对应代号 v14
source installed/setup.zsh
catkin config -DCMAKE_ASM_COMPILER=/usr/bin/as -DCMAKE_BUILD_TYPE=Release
catkin build humanoid_controllers
实机编译:
sudo su
export ROBOT_VERSION=14
source installed/setup.bash
catkin config -DCMAKE_ASM_COMPILER=/usr/bin/as -DCMAKE_BUILD_TYPE=Release
catkin build humanoid_controllers
3. 参数文件修改
配置文件路径:src/humanoid-control/humanoid_controllers/config/kuavo_v14/rl/skw_rl_param.info。
需将生成的 .onnx 放入 .../model/networks/,将 .csv 放入 .../config/kuavo_v14/rl/。
networkModelFile /2025-10-20_23-00-51.onnx;
trajectoryFile prone_1_robans221_1011.csv;
residualAction true
4. Sim2Sim (Mujoco 仿真验证)
在 Docker 内启动仿真:
source devel/setup.zsh
# 使用键盘从起身开始运动:在键盘控制界面依次按下 g -> c -> g
roslaunch humanoid_controllers load_kuavo_mujoco_sim.launch joystick_type:=sim init_fall_down_state:=true
5. Sim2Real (实机运行)
source devel/setup.bash
# 键盘控制:依次按下 g -> c -> g
roslaunch humanoid_controllers load_kuavo_real.launch joystick_type:=sim init_fall_down_state:=true
第三部分:核心代码解读
command.py
- 关节数据重排序 (To Isaac): 将 NPZ 原始关节顺序重排为 IsaacLab 期望的顺序。
- 关节数据重排序 (To NPZ): 将仿真数据重排回 NPZ 顺序。
- MotionLoader: 加载运动数据并映射维度,保留需追踪的部位数据。
- MotionCommand: 提供时间序列动作追踪,计算机器人当前状态与参考动作的误差(含 Yaw 角对齐与虚拟锚点构建)。
rewards.py
采用“高斯核映射”:。
1. 任务追踪奖励 (Tracking Rewards)
- 锚点绝对位置奖励: 强制根部在世界系中跟上目标,防止漂移。
- 肢体相对位置奖励: 奖励“在正确的高度上摆出正确的以自我为中心的姿态”。
- 锚点绝对朝向奖励: 强迫整体朝向(Yaw)及平衡(Pitch/Roll)一致。
- 肢体相对朝向奖励: 强迫手脚相对于躯干呈现正确旋转,具 Yaw 不变性。
2. 物理与接触奖励
- 双脚离地/接触时间奖励: 塑造步态频率,鼓励快速迈步。
- 双脚滑动惩罚 (Feet Slide Penalty): 消除“滑冰”现象,这是 Sim-to-Real 成功的关键。若脚接触地面时有水平位姿速度,则给予惩罚。
鸣谢与参考:项目基于 whole_body_tracking 开发。
Copyright © 2025 LejuRobot.


