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です。
Linux環境では、OMXのリーダーアームとフォロワーアームに永続的で人間が読みやすいデバイス名を割り当てるために、udevルールを使用することを強く推奨します。これにより、ロボットを抜粋して再接続した場合やシステムを再起動した場合に、ttyACM0やttyACM1などのデバイス名が変更される問題を防ぐことができます。
1. デバイスのシリアル番号を確認する
You should have obtained the port numbers like ../../ttyACM? for the leader and follower using lerobot-find-port. You can match those results with the serial numbers using the ls -l /dev/serial/by-id/ command.
To create udev rules, you need the unique serial number for each OMX device. The easiest way is to list devices under:
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
リーダーシリアル: 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_leaderttyACM* デバイスを指していることを確認できます:
/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までご連絡ください。