LeRobot documentation
OMX
OMX
订购并组装部件
首先,按照官方组装指南组装 OMX 硬件。
OMX 组装指南:https://ai.robotis.com/omx/assembly_guide_omx.html
OMX 机器人出厂前已预配置完成。电机 ID、通信参数和关节偏移量均已设置,因此在使用 LeRobot 之前无需进行额外的电机设置或校准。
安装 LeRobot 🤗
要安装 LeRobot,请遵循我们的安装指南
除了这些说明之外,您还需要安装 Dynamixel 电机支持:
pip install -e ".[dynamixel]"连接机器人
要查找每个总线舵机适配器的端口,请运行此脚本:
lerobot-find-port
This command runs and when prompted, disconnect the USB cable from either the leader or follower arm and press Enter. The output will show ‘The port of this MotorsBus is [port]’. This identifies the port for the disconnected arm. Repeat for the other arm to identify both ports.
macOS 上的示例输出:
Finding all available ports for the MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Remove the USB cable from your MotorsBus and press Enter when done.
[...Disconnect corresponding leader or follower arm and press Enter...]
The port of this MotorsBus is /dev/tty.usbmodem575E0032081
Reconnect the USB cable.找到的端口为:/dev/tty.usbmodem575E0032081,对应您的 leader 或 follower 机械臂。
在 Linux 上,我们强烈建议使用 udev 规则为 OMX 主臂和从臂分配持久且易于理解的设备名称。这可以避免在机器人断开连接、重新连接或系统重启时,ttyACM0 和 ttyACM1 等设备名称发生变化的问题。
1. 查找您的设备序列号
您应该已经使用 lerobot-find-port 获取了 leader 和 follower 的端口号,例如 ../../ttyACM?。您可以使用 ls -l /dev/serial/by-id/ 命令将这些结果与序列号进行匹配。
要创建 udev 规则,您需要每个 OMX 设备的唯一序列号。最简单的方法是列出以下目录下的设备:
ls -l /dev/serial/by-id/您会看到类似的输出:
usb-ROBOTIS_OpenRB-150_228BDD7B503059384C2E3120FF0A2B19-if00 -> ../../ttyACM0 usb-ROBOTIS_OpenRB-150_67E1ED68503059384C2E3120FF092234-if00 -> ../../ttyACM1
在每一行中,序列号是位于 usb-ROBOTIS_OpenRB-150_ 之后、-if00 之前的长字符串。
Follower 序列号:228BDD7B503059384C2E3120FF0A2B19
Leader 序列号: 67E1ED68503059384C2E3120FF092234
2. 创建 udev 规则
创建一个新的 udev 规则文件:
sudo nano /etc/udev/rules.d/99-omx.rules粘贴以下行,并将序列号替换为上面找到的值:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="228BDD7B503059384C2E3120FF0A2B19", SYMLINK+="omx_follower"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="67E1ED68503059384C2E3120FF092234", SYMLINK+="omx_leader"保存文件并重新加载 udev 规则:
sudo udevadm control --reload-rules
sudo udevadm trigger现在将两个设备都拔掉,然后重新插入一次。
3. 验证符号链接
检查持久设备名称是否存在:
ls -l /dev/omx_follower /dev/omx_leader您应该会看到它们指向 ttyACM* 设备:
/dev/omx_follower -> ttyACM* /dev/omx_leader -> ttyACM*
这些名称在重启和重新连接过程中保持稳定。
远程操作
在确定正确的端口后,您可以直接使用主臂直接遥操作从臂。
无相机远程操作
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=<your_follower_port> \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=<your_leader_port> \ --teleop.id=omx_leader_arm
在遥操作过程中,主臂的动作会实时镜像到从臂上。OMX 已预先配置好,无需任何校准步骤即可立即开始遥操作。
使用相机进行远程操作
你还可以通过为从动臂提供相机配置,在遥操作期间启用相机输入。
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=<your_follower_port> \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=<your_leader_port> \
--teleop.id=omx_leader_arm \
--display_data=true启用摄像头后,摄像头流会实时显示并与机器人状态保持同步。此设置适用于视觉监控,并且可以稍后复用于演示录制和模仿学习。
无相机远程操作
lerobot-teleoperate \ --robot.type=omx_follower \ --robot.port=/dev/omx_follower \ --robot.id=omx_follower_arm \ --teleop.type=omx_leader \ --teleop.port=/dev/omx_leader \ --teleop.id=omx_leader_arm
在遥操作过程中,主臂的动作会实时镜像到从臂上。OMX 已预先配置好,无需任何校准步骤即可立即开始遥操作。
使用相机进行远程操作
你还可以通过为从动臂提供相机配置,在遥操作期间启用相机输入。
lerobot-teleoperate \
--robot.type=omx_follower \
--robot.port=/dev/omx_follower \
--robot.id=omx_follower_arm \
--robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', width: 640, height: 480, fps: 30}}" \
--teleop.type=omx_leader \
--teleop.port=/dev/omx_leader \
--teleop.id=omx_leader_arm \
--display_data=true启用摄像头后,摄像头流会实时显示并与机器人状态保持同步。此设置适用于视觉监控,并且可以稍后复用于演示录制和模仿学习。
恭喜 🎉,你的机器人已准备好自主学习任务。
Update on GitHub如果您有任何问题或需要帮助,请在 Discord 上联系我们。