LeRobot documentation
OMX
OMX
Urutkan dan Rakit bagian-bagiannya
Pertama, rakit perangkat keras OMX mengikuti panduan perakitan resmi.
Panduan Perakitan OMX: https://ai.robotis.com/omx/assembly_guide_omx.html
Robot OMX dikirim dari pabrik dalam kondisi sudah dikonfigurasi. ID motor, parameter komunikasi, dan offset sendi sudah diatur, sehingga tidak diperlukan pengaturan atau kalibrasi motor tambahan sebelum menggunakan LeRobot.
Install LeRobot 🤗
Untuk menginstal LeRobot, ikuti Panduan Instalasi kami
Selain instruksi ini, Anda perlu menginstal dukungan motor Dynamixel:
pip install -e ".[dynamixel]"Hubungkan robot
Untuk menemukan port untuk setiap bus servo adapter, jalankan skrip ini:
lerobot-find-port
Perintah ini dijalankan dan saat diminta, lepaskan kabel USB dari lengan leader atau follower lalu tekan Enter. Output akan menampilkan ‘The port of this MotorsBus is [port]’. Ini mengidentifikasi port untuk lengan yang dilepas. Ulangi untuk lengan lainnya untuk mengidentifikasi kedua port.
Contoh output di 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.Port yang ditemukan adalah: /dev/tty.usbmodem575E0032081 yang sesuai dengan lengan leader atau follower Anda.
Pada Linux, kami sangat merekomendasikan penggunaan aturan udev untuk memberikan nama perangkat yang persisten dan mudah dibaca oleh manusia pada lengan pemimpin dan pengikut OMX. Hal ini menghindari masalah di mana nama perangkat seperti ttyACM0 dan ttyACM1 berubah ketika robot dicabut, disambungkan kembali, atau ketika sistem di-reboot.
1. Cari nomor seri perangkat Anda
Anda seharusnya telah memperoleh nomor port seperti ../../ttyACM? untuk leader dan follower menggunakan lerobot-find-port. Anda dapat mencocokkan hasil tersebut dengan nomor seri menggunakan perintah ls -l /dev/serial/by-id/.
Untuk membuat aturan udev, Anda memerlukan nomor seri unik untuk setiap perangkat OMX. Cara termudah adalah dengan mendaftar perangkat di bawah:
ls -l /dev/serial/by-id/Anda akan melihat output yang mirip dengan:
usb-ROBOTIS_OpenRB-150_228BDD7B503059384C2E3120FF0A2B19-if00 -> ../../ttyACM0 usb-ROBOTIS_OpenRB-150_67E1ED68503059384C2E3120FF092234-if00 -> ../../ttyACM1
Pada setiap baris, nomor seri adalah string panjang setelah usb-ROBOTIS_OpenRB-150_ dan sebelum -if00.
Serial pengikut: 228BDD7B503059384C2E3120FF0A2B19
Serial pemimpin: 67E1ED68503059384C2E3120FF092234
2. Buat aturan udev
Buat file aturan udev baru:
sudo nano /etc/udev/rules.d/99-omx.rulesTempel baris-baris berikut, ganti nomor seri dengan nilai yang Anda temukan di atas:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="228BDD7B503059384C2E3120FF0A2B19", SYMLINK+="omx_follower"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{serial}=="67E1ED68503059384C2E3120FF092234", SYMLINK+="omx_leader"Simpan file dan muat ulang aturan udev:
sudo udevadm control --reload-rules
sudo udevadm triggerSekarang cabut dan colokkan kembali kedua perangkat sekali.
3. Verifikasi symlink
Periksa bahwa nama perangkat persisten ada:
ls -l /dev/omx_follower /dev/omx_leaderAnda harus melihatnya menunjuk ke perangkat ttyACM*:
/dev/omx_follower -> ttyACM* /dev/omx_leader -> ttyACM*
Nama-nama ini tetap stabil di antara proses reboot dan koneksi ulang.
Teleoperasi
Setelah mengidentifikasi port yang benar, Anda dapat langsung melakukan teleoperasi lengan pengikut menggunakan lengan pemimpin.
Teleoperasi tanpa kamera
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
Selama teleoperasi, gerakan lengan pemimpin (leader arm) dicerminkan secara real time oleh lengan pengikut (follower arm). OMX sudah dikonfigurasi sebelumnya, sehingga teleoperasi dapat dimulai segera tanpa langkah kalibrasi apa pun.
Teleoperasi dengan kamera
Anda juga dapat mengaktifkan input kamera selama teleoperation dengan menyediakan konfigurasi kamera untuk lengan pengikut.
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=trueKetika kamera diaktifkan, aliran kamera ditampilkan secara real time dan disinkronkan dengan status robot. Pengaturan ini berguna untuk pemantauan visual dan dapat digunakan kembali nanti untuk perekaman demonstrasi dan pembelajaran imitasi.
Teleoperasi tanpa kamera
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
Selama teleoperasi, gerakan lengan pemimpin (leader arm) dicerminkan secara real time oleh lengan pengikut (follower arm). OMX sudah dikonfigurasi sebelumnya, sehingga teleoperasi dapat dimulai segera tanpa langkah kalibrasi apa pun.
Teleoperasi dengan kamera
Anda juga dapat mengaktifkan input kamera selama teleoperation dengan menyediakan konfigurasi kamera untuk lengan pengikut.
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=trueKetika kamera diaktifkan, aliran kamera ditampilkan secara real time dan disinkronkan dengan status robot. Pengaturan ini berguna untuk pemantauan visual dan dapat digunakan kembali nanti untuk perekaman demonstrasi dan pembelajaran imitasi.
Selamat 🎉, robot Anda sudah siap untuk belajar tugas secara mandiri.
Update on GitHubJika Anda memiliki pertanyaan atau membutuhkan bantuan, silakan hubungi kami di Discord.