7.1 本地推理
7.1 本地推理
XLeRobot 本地推理使用 LeRobot 官方的 lerobot-record 命令,通过 --policy.path 参数加载训练好的模型,在推理的同时记录评估数据集。
命令说明
lerobot-record 加上 --policy.path 参数即可从"录制模式"切换为"推理模式"——机器人由模型自主控制,不再需要 Leader 臂遥操作。
推理参数说明
| 参数 | 说明 |
|---|---|
--robot.type=xlerobot |
XLeRobot 双臂机器人类型 |
--robot.port1 |
Follower 左臂串口 |
--robot.port2 |
Follower 右臂串口 |
--robot.id |
机器人编号,与标定时一致 |
--policy.path |
训练好的模型路径,格式 outputs/train/<job_name>/checkpoints/last/pretrained_model |
--policy.device |
推理设备,cuda(GPU)或 cpu |
--dataset.repo_id |
推理时新建的数据集名称,不能与训练数据集同名 |
--dataset.single_task |
任务描述,与录制时保持一致 |
--dataset.push_to_hub=false |
不上传推理数据到 HuggingFace |
--dataset.num_episodes |
推理运行 episode 数量 |
推理前检查清单
- 确认模型路径:
policy.path指向正确的 checkpoint 目录,路径格式为两级目录(如act_xlerobot_test/pretrained_model) - 检查标定:确认左右臂的标定参数正确
- 安全空间:机械臂运动范围内无障碍物
- 紧急停止:动作异常时立即按
Ctrl+C停止
常见问题
机械臂抖动:调整 set_so100_robot_preset() 函数的 D_Coefficient 参数为较小值(如 0)
动作偏移:重新校准关节零点;检查相机画面是否与训练时一致(视角、光照)
推理无法启动:确认 pretrained_model 目录存在且文件完整;检查 policy.path 格式是否正确
本地推理 (lerobot-record)
linux: lerobot-record \
--robot.type=xlerobot \
--robot.disable_torque_on_disconnect=true \
--robot.port1=/dev/so101_follower_left \
--robot.port2=/dev/so101_follower_right \
--robot.id=joyandai_xlerobot \
--display_data=false \
--dataset.push_to_hub=false \
--dataset.num_episodes=10 \
--dataset.single_task="Task description" \
--policy.path=outputs/train/act_xlerobot_test/checkpoints/last/pretrained_model \
--policy.device=cuda \
--dataset.repo_id=${HF_USER}/eval_xlerobot
macos: lerobot-record \
--robot.type=xlerobot \
--robot.disable_torque_on_disconnect=true \
--robot.port1=/dev/tty.usbmodem58760431541 \
--robot.port2=/dev/tty.usbmodem58760431551 \
--robot.id=joyandai_xlerobot \
--display_data=false \
--dataset.push_to_hub=false \
--dataset.num_episodes=10 \
--dataset.single_task="Task description" \
--policy.path=outputs/train/act_xlerobot_test/checkpoints/last/pretrained_model \
--policy.device=cuda \
--dataset.repo_id=${HF_USER}/eval_xlerobot
windows: lerobot-record `
--robot.type=xlerobot `
--robot.disable_torque_on_disconnect=true `
--robot.port1=COM4 `
--robot.port2=COM5 `
--robot.id=joyandai_xlerobot `
--display_data=false `
--dataset.push_to_hub=false `
--dataset.num_episodes=10 `
--dataset.single_task="Task description" `
--policy.path=outputs/train/act_xlerobot_test/checkpoints/last/pretrained_model `
--policy.device=cuda `
--dataset.repo_id=%HF_USER%/eval_xlerobot