离线轨迹追踪部署
sonic 和 heft 模型均已提供在 OpenLET/Lejulab_ARM 开源仓库 的 beta 分支,部署前请先切换到该分支。根据需要选择一种模型,按「选择模型 → 配置轨迹 → 仿真验证 → 真机播放」完成部署。两者共用环境和启动流程,无需分别部署两套系统。
确认急停可用、地面平整防滑、动作范围内无人进入;翻滚和腾空动作使用保护吊架。站姿明显不正或更换过电机时,先完成电机零点标定。模型效果可能随机器和地面变化,不要跳过现场验证。
1. 选择模型
先完成 环境配置,使用仓库中与所选模型配套的配置和轨迹。下表路径以 src/leju-controllers/leju-rl-controller/config/17/ 为基准:
| 配置项 | sonic | heft |
|---|---|---|
| 配置文件 | config_sonic.yaml | controllers/config_heft.yaml |
| 模型文件 | policy/sonic/recon_obs10_clip_28000.onnx;配套 .onnx.data 与 ONNX 放在同一目录 | policy_let.onnx,放到 YAML 指定的策略位置 |
| 轨迹 | motion_data/sonic_motion/ 下的配套 CSV,须与 ONNX 来自同一次导出 | 使用 heft 格式的配套 CSV,不可直接使用 sonic 格式 |
| 进入并播放 / 下一条 | Y / 当前动作与冷却结束后再按 Y | A / 再按 A |
| 动作衔接 | 约 0.5 秒输出平滑、2 秒末帧保持、1 秒冷却 | 无插值;不满足首尾站姿要求时,一次只测一条,下一条前重启程序 |
| 返回行走 | X,仅在允许切换时生效 | 以当前 teleop_bindings.yaml 中的绑定为准 |
两种模型的轨迹首尾都应为向前静止站立。文件名和按键以所用仓库版本的实际配置为准;不要将不同版本的模型、轨迹和观测参数混用。
2. 配置模型与轨迹
- 模型路径:确认 YAML 指向所选 ONNX,复制后检查文件完整性。
- 动作列表:放置配套 CSV,更新文件路径与播放顺序。优先使用所选模型自带的轨迹;自定义轨迹须符合对应格式,不可仅改文件名或后缀。
- 观测与控制:保留模型配套的输入维度、关节顺序、历史长度、未来帧、增益和
action_scale。离线配置中如有live_reference.enabled,保持false。 - 控制器与按键:确认
controller_manager.yaml注册了所选控制器,名称、配置路径与手柄绑定一致;更换激活配置或绑定后重新同步按键。
sonic 的 policy_path 和 motion.motions[].file 相对于其 YAML 所在目录解析,动作条目的 name 不得为空或重复,列表至少保留一条。heft 使用自身 YAML 的路径和字段结构,不直接套用另一模型的配置。
将 sonic 格式轨迹用于 heft 前,需要通过 convert_sonic_csv_to_heft.py 转换,并按脚本说明核对输入输出。尚未准备好转换工具时,先使用仓库中已有的 heft 配套轨迹。更换权重时同时核对配置,不自行猜测或修改输入维度。
3. 仿真验证
在自己主机(x86)上运行仿真时,需切换到 OpenLET/LejuLab-Deploy 开源仓库。仓库下的启动脚本已内置镜像自动下载与导入逻辑,首次运行本地无镜像时按提示输入 yes 即可自动完成。
在开发机上进入仓库的 docker 目录,按仓库 README 和本机 GPU 环境选择 ./run.sh 或 ./run_with_gpu.sh 启动容器。
进入容器后的仓库根目录,执行:
source installed/setup.zsh
catkin build
source devel/setup.zsh
export ROBOT_VERSION=17
roslaunch leju_launch load_mujoco_sim.launch enable_iceoryx_shm:=false
该参数关闭 iceoryx 共享内存,容器内无需先启动 RouDi。机器人倒地时,在 MuJoCo 中依次点击 Pause、Reset、Run。
按 START 站立,摇杆回中并确认站稳,再按所选模型的播放键。逐条检查动作范围、首尾姿态和切换行为,全部通过后再上真机。
4. 真机启动与播放
在仓库根目录执行;进入 root 后重新设置本体版本:
sudo su
export ROBOT_VERSION=17
sudo bash src/leju_launch/scripts/launch_real.sh
- 按
START进入行走控制器amp,等待站稳,摇杆回中。 - 按所选模型的播放键,开始第一条轨迹。
- 动作结束后,遵守选择表中的衔接限制,再按同一播放键进入下一条。
- 验证完成后,按对应绑定返回行走或停机。
播放中不要推摇杆或同时按舞蹈组合键。sonic 在行走中或摇杆未回中时不能切换;动作播放及末帧保持期间,X、Y 都不会打断动作,冷却结束后才接受下一条。需要立即停止时使用急停,或 sonic 的 BACK 安全停机(关节放松);BACK + START 退出程序。不要把播放键或返回键当作急停。
sonic 返回行走后再次进入会继续原有动作顺序,重启控制器进程才从第一条开始。heft 的轨迹切换无插值,不满足首尾站姿要求时不要连续播放。
5. 更换动作或模型
- 只换动作:放入兼容的 CSV,修改列表路径或顺序。sonic 轨迹仍须与当前 ONNX 同次导出,不可随意换入其他模型的轨迹。
- 更换模型:一并切换配套 YAML、模型文件和轨迹,并核对控制器及按键;不是只改一个 ONNX 路径。
- 使修改生效:重启控制器进程;切换代码分支时重新编译。每次更换后重新完成仿真验证,再上真机。
无法播放时,依次检查本体版本、激活配置目录、模型与轨迹是否配套、文件路径是否正确、按键是否同步到程序运行用户。提示仍在播放或冷却时先等待;输入维度不符时恢复配套配置,不随意修改参数绕过检查。