仿真环境使用
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/