5.1 Host/Client 模式记录

Host/Client 模式记录数据

架构

[推车] Host 已运行 xlerobot_host ←→ Wi-Fi ←→ [桌面] Client 运行录制脚本

Step 1: 确保 Host 已启动

机器人端已运行 xlerobot_host(参照 4.3 远程遥操作中的 Step 2)。

Step 2: 运行 record_keyboard_teleop

python examples/xlerobot/record_keyboard_teleop.py \
  --repo_id=YOUR_NAME/xlerobot_test \
  --num_episodes=10 \
  --episode_time_s=60 \
  --reset_time_s=10 \
  --display_data

image

按键 功能
Q / E 肩部水平旋转 - / +
W / S 末端 X 坐标 + / -
A / D 末端 Y 坐标 + / -
Z / X 俯仰 + / -
R / F 手腕旋转 + / -
T / G 夹爪 + / -
C 左臂复位

右臂控制

按键 功能
7 / 9 肩部水平旋转 - / +
8 / 2 末端 X 坐标 + / -
4 / 6 末端 Y 坐标 + / -
1 / 3 俯仰 + / -
* / / 手腕旋转 - / +
+ / - 夹爪 + / -
0 右臂复位

头部云台

按键 功能
< / > 头部舵机 1 + / -
, / . 头部舵机 2 + / -
? 头部云台复位

<、> 和 ? 在英文键盘上通常需要配合 Shift 输入。

移动底盘

按键 功能
I / K 前进 / 后退
J / L 左移 / 右移
U / O 左转 / 右转

速度控制

按键 功能
N 加速
M 减速

录制流程

按键 功能
Right Arrow 提前结束当前 episode
Left Arrow 重录当前 episode
Esc 停止整个录制任务

Step 3: 运行远程双臂录制脚本

相比record_keyboard_teleop.py ,这个为远程双主臂+键盘控制底盘,需要在host端连接好xlerobot,远程端连接好两个主臂,然后进行数据采集。示例如下:
代码找标定文件的逻辑为:当前输入的--leader_id + "right" or "left" 。例如我当前输入的为“my_bi_so101_leader”,那么代码就会在calibration/teleoperators/so101_leader下找“my_bi_so101_leader_right.json”和“my_bi_so101_leader_left.json”,如果没有找到则会进入标定流程。

python record_remote_bi_so101_leader_keyboard.py \
  --robot_id=joyandai_xlerobot \
  --remote_ip=192.168.200.9 \
  --leader_id=my_bi_so101_leader \
  --left_leader_port=/dev/ttyACM1 \
  --right_leader_port=/dev/ttyACM0 \
  --num_episodes=50 \
  --fps=30 \
  --episode_time_s=300 \
  --reset_time_s=5 \
  --task_description="catch the block" \
  --repo_id=xlerobot/test \
  --display_data

image
双臂:

控制设备 功能
左侧 SO-101 Leader 示教左机械臂的 6 个关节
右侧 SO-101 Leader 示教右机械臂的 6 个关节

该脚本不使用键盘控制双臂。

头部云台:

按键 功能
< / > 头部舵机 1 +5° / -5°
, / . 头部舵机 2 +5° / -5°

< 和 > 需要配合 Shift 键输入。当前脚本没有头部云台归零键。

移动底盘:

按键 功能
I / K 前进 / 后退
J / L 左移 / 右移
U / O 左转 / 右转

速度控制:

按键 功能
N 加速
M 减速

录制流程:

按键 功能
→ 提前结束当前 episode
← 重录当前 episode
Esc 或 Q 停止整个录制任务
B 触发机器人 quit 信号