Skip to main content

仿真环境使用

Lejulab_ARM 包含 MuJoCo 仿真启动链路。launch_mujoco_sim.sh 会启动 MuJoCo 机器人仿真、游戏手柄、RL 控制器和数据记录器,可用于在不连接真机硬件时验证 SDK 状态订阅和控制流程。

运行前检查​

installed/ 是随包预编译产物,不需要重新编译 SDK,但其可执行文件必须与运行主机架构一致。先检查:

cd <Lejulab_ARM>
uname -m
file installed/bin/leju-mujoco-sim
file installed/bin/run_rl_controller

例如,如果 uname -m 是 x86_64,而两个程序显示 ARM aarch64,该随包不能在当前 x86 电脑上直接运行。终端中出现 ELF ... not found、Syntax error: "(" unexpected 或乱码,是 Shell 在错误解析异构架 ELF 文件,不是启动脚本的语法错误。

使用该发布包仿真时,应在与 installed/bin 一致的 Linux 架构上运行。如需在其他架构开发,需要取得对应架构的开发包,不能通过重新 source installed/setup.bash 解决。

启动 Roban2.2 仿真​

确认架构匹配后,执行:

cd <Lejulab_ARM>
export ROBOT_VERSION=17
source installed/setup.bash

bash src/leju_launch/scripts/launch_mujoco_sim.sh \
--robot-version=17 \
--no-shm

ROBOT_VERSION 必须在 source installed/setup.bash 之前设置。--robot-version=17 会再次把启动脚本的机型锁定为 Roban2.2,对应:

  • 模型:src/leju_assets/models/biped_s17/xml/scene_rl.xml
  • 控制器配置:src/leju-controllers/leju-rl-controller/config/17/controller_manager.yaml
  • 遥控器配置:src/leju-controllers/leju-rl-controller/config/17/teleop_bindings.yaml

--no-shm 使用仓库的普通 Cyclone DDS 配置,适合首次本机验证。已完成 iceoryx RouDi 部署时,可去掉该参数使用共享内存配置。

启动的程序​

程序是否必需作用
leju-mujoco-sim是加载 scene_rl.xml,提供 MuJoCo 机器人和传感器/电机 DDS 数据
run_rl_controller是运行控制器管理器和 RL 控制器
leju-joystick否读取普通游戏手柄;加 --auto-start 时不启动
lejusdk_recorder否按 src/leju_launch/config/recorder.yaml 记录 DDS 数据

任一必需程序退出时,启动器会停止其他子进程。可选程序退出不会单独终止仿真。

验证 SDK​

保持仿真终端运行,新建终端并使用相同 DDS 配置:

cd <Lejulab_ARM>
export ROBOT_VERSION=17
source installed/setup.bash
export CYCLONEDDS_URI="file://$PWD/src/leju_launch/config/cyclonedds.xml"

hw_state_subscriber

也可分别运行:

joint_state_subscriber
imu_data_subscriber

状态读取正常后,再按 接口使用文档 中的分页教程测试控制接口。

常见问题​

setup.bash 提示先设置机器人版本​

原因是执行顺序不对。在新终端中重新执行:

export ROBOT_VERSION=17
source installed/setup.bash

启动后立即出现 ELF 乱码或 Shell 语法错误​

先比较 uname -m 和 file installed/bin/leju-mujoco-sim 的架构。开发包可执行文件与主机架构不同时,需更换匹配架构的开发包。

订阅示例没有数据​

检查仿真终端和订阅终端的 ROBOT_VERSION 和 CYCLONEDDS_URI 是否一致,再运行:

bash scripts/diagnostics/check_dds.sh

仿真界面无法打开​

MuJoCo 程序需要可用的图形显示环境。在 SSH 或容器中运行时,需要确保显示转发或容器图形设备已正确配置。

对应仓库文件​

  • 仿真启动编排:src/leju_launch/scripts/launch_mujoco_sim.sh
  • 通用启动和 DDS 逻辑:src/leju_launch/scripts/_launch_common.sh
  • Roban2.2 模型:src/leju_assets/models/biped_s17/
  • Roban2.2 控制器配置:src/leju-controllers/leju-rl-controller/config/17/