跳到主要内容

离线轨迹追踪部署

sonic 和 heft 模型均已提供在 OpenLET/Lejulab_ARM 开源仓库 的 beta 分支,部署前请先切换到该分支。根据需要选择一种模型,按「选择模型 → 配置轨迹 → 仿真验证 → 真机播放」完成部署。两者共用环境和启动流程,无需分别部署两套系统。

先仿真,再真机

确认急停可用、地面平整防滑、动作范围内无人进入;翻滚和腾空动作使用保护吊架。站姿明显不正或更换过电机时,先完成电机零点标定。模型效果可能随机器和地面变化,不要跳过现场验证。

1. 选择模型​

先完成 环境配置,使用仓库中与所选模型配套的配置和轨迹。下表路径以 src/leju-controllers/leju-rl-controller/config/17/ 为基准:

配置项sonicheft
配置文件config_sonic.yamlcontrollers/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 / 当前动作与冷却结束后再按 YA / 再按 A
动作衔接约 0.5 秒输出平滑、2 秒末帧保持、1 秒冷却无插值;不满足首尾站姿要求时,一次只测一条,下一条前重启程序
返回行走X,仅在允许切换时生效以当前 teleop_bindings.yaml 中的绑定为准

两种模型的轨迹首尾都应为向前静止站立。文件名和按键以所用仓库版本的实际配置为准;不要将不同版本的模型、轨迹和观测参数混用。

2. 配置模型与轨迹​

  1. 模型路径:确认 YAML 指向所选 ONNX,复制后检查文件完整性。
  2. 动作列表:放置配套 CSV,更新文件路径与播放顺序。优先使用所选模型自带的轨迹;自定义轨迹须符合对应格式,不可仅改文件名或后缀。
  3. 观测与控制:保留模型配套的输入维度、关节顺序、历史长度、未来帧、增益和 action_scale。离线配置中如有 live_reference.enabled,保持 false。
  4. 控制器与按键:确认 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
  1. 按 START 进入行走控制器 amp,等待站稳,摇杆回中。
  2. 按所选模型的播放键,开始第一条轨迹。
  3. 动作结束后,遵守选择表中的衔接限制,再按同一播放键进入下一条。
  4. 验证完成后,按对应绑定返回行走或停机。
播放与停机限制

播放中不要推摇杆或同时按舞蹈组合键。sonic 在行走中或摇杆未回中时不能切换;动作播放及末帧保持期间,X、Y 都不会打断动作,冷却结束后才接受下一条。需要立即停止时使用急停,或 sonic 的 BACK 安全停机(关节放松);BACK + START 退出程序。不要把播放键或返回键当作急停。

sonic 返回行走后再次进入会继续原有动作顺序,重启控制器进程才从第一条开始。heft 的轨迹切换无插值,不满足首尾站姿要求时不要连续播放。

5. 更换动作或模型​

  • 只换动作:放入兼容的 CSV,修改列表路径或顺序。sonic 轨迹仍须与当前 ONNX 同次导出,不可随意换入其他模型的轨迹。
  • 更换模型:一并切换配套 YAML、模型文件和轨迹,并核对控制器及按键;不是只改一个 ONNX 路径。
  • 使修改生效:重启控制器进程;切换代码分支时重新编译。每次更换后重新完成仿真验证,再上真机。

无法播放时,依次检查本体版本、激活配置目录、模型与轨迹是否配套、文件路径是否正确、按键是否同步到程序运行用户。提示仍在播放或冷却时先等待;输入维度不符时恢复配套配置,不随意修改参数绕过检查。