LeRobot documentation

SO-101

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SO-101

SO-101 SO-101

Pada langkah-langkah di bawah, kami menjelaskan cara merakit robot unggulan kami, SO-101.

Sumberkan komponen

Ikuti README ini. Dokumen ini berisi daftar bahan, dengan tautan untuk memesan komponen, serta instruksi untuk mencetak komponen secara 3D. Dokumen ini juga memberikan saran jika ini adalah pertama kalinya Anda mencetak atau jika Anda tidak memiliki printer 3D.

Install LeRobot 🤗

Untuk menginstal LeRobot, ikuti Panduan Instalasi kami

Selain instruksi ini, Anda perlu menginstal Feetech SDK (jika Anda menginstal LeRobot dari PyPI, jalankan pip install 'lerobot[feetech]' sebagai gantinya):

pip install -e ".[feetech]"

Instruksi Perakitan Langkah demi Langkah

Lengan pengikut menggunakan 6x motor STS3215 dengan rasio gigi 1/345. Namun, lengan pemimpin menggunakan tiga motor dengan rasio gigi berbeda untuk memastikan bahwa lengan tersebut dapat menopang beratnya sendiri dan dapat digerakkan tanpa memerlukan banyak gaya. Motor yang dibutuhkan untuk setiap sendi ditunjukkan pada tabel di bawah.

Sumbu Leader-ArmMotorRasio Gigi
Dasar / Bahu Pan11 / 191
Angkat Bahu21 / 345
Elbow Flex31 / 191
Wrist Flex41 / 147
Wrist Roll51 / 147
Gripper61 / 147

Konfigurasikan motor

1. Temukan port USB yang terkait dengan masing-masing lengan

Untuk menemukan port untuk setiap bus servo adapter, hubungkan MotorBus ke komputer Anda melalui USB dan daya. Jalankan skrip berikut dan putuskan MotorBus saat diminta:

lerobot-find-port
Mac
Linux

Contoh keluaran:

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.

2. Atur id dan baudrate motor

Setiap motor diidentifikasi oleh id unik di bus. Saat baru, motor biasanya memiliki id default 1. Agar komunikasi antara motor dan controller berjalan dengan baik, kita perlu mengatur id unik yang berbeda untuk setiap motor. Selain itu, kecepatan transmisi data di bus ditentukan oleh baudrate. Agar controller dan semua motor dapat berkomunikasi, keduanya harus dikonfigurasi dengan baudrate yang sama.

Untuk tujuan tersebut, kita pertama perlu terhubung ke setiap motor secara individual dengan pengontrol untuk mengatur parameter ini. Karena kita akan menulis parameter ini ke bagian non-volatile dari memori internal motor (EEPROM), kita hanya perlu melakukan ini sekali.

Jika Anda menggunakan ulang motor dari robot lain, kemungkinan besar Anda juga perlu melakukan langkah ini karena id dan baudrate kemungkinan tidak akan cocok.

Video di bawah ini menunjukkan urutan langkah untuk mengatur id motor.

Video pengaturan motor

Pengikut

Hubungkan kabel usb dari komputer dan sumber daya ke papan kontrol lengan pengikut. Kemudian, jalankan perintah berikut atau jalankan contoh API dengan port yang Anda dapatkan dari langkah sebelumnya. Anda juga perlu memberikan nama untuk lengan pengikut Anda dengan parameter id.

Perintah
Contoh API
lerobot-setup-motors \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem585A0076841  # <- paste here the port found at previous step

Anda harus melihat instruksi berikut

Connect the controller board to the 'gripper' motor only and press enter.

Sesuai instruksi, colokkan motor gripper. Pastikan itu satu-satunya motor yang terhubung ke papan, dan bahwa motor tersebut belum di-daisy-chain ke motor lain. Saat Anda menekan [Enter], skrip akan secara otomatis mengatur id dan baudrate untuk motor tersebut.

Troubleshooting

Jika Anda mendapatkan error pada titik tersebut, periksa kabel Anda dan pastikan mereka terpasang dengan benar:

  • Catu daya
  • Kabel USB antara komputer Anda dan papan kontrol
  • Kabel 3-pin dari papan pengontrol ke motor

Jika Anda menggunakan papan kontrol Waveshare, pastikan kedua jumper disetel pada kanal B (USB).

Anda seharusnya melihat pesan berikut:

'gripper' motor id set to 6

Diikuti oleh instruksi berikutnya:

Connect the controller board to the 'wrist_roll' motor only and press enter.

Anda dapat mencabut kabel 3-pin dari papan kontrol, tetapi biarkan kabel tersebut tetap terhubung ke motor gripper di ujung lainnya, karena posisinya sudah tepat. Sekarang, colokkan kabel 3-pin lainnya ke motor pergelangan tangan (wrist roll) dan hubungkan ke papan kontrol. Sama seperti motor sebelumnya, pastikan itu adalah satu-satunya motor yang terhubung ke papan dan motor itu sendiri tidak terhubung ke motor lain.

Ulangi operasi untuk setiap motor sesuai instruksi.

Periksa kabel Anda di setiap langkah sebelum menekan Enter. Misalnya, kabel catu daya bisa terlepas saat Anda memanipulasi papan.

Setelah selesai, skrip akan langsung berakhir, yang berarti motor sudah siap digunakan. Anda sekarang dapat menyambungkan kabel 3-pin dari setiap motor ke motor berikutnya, dan kabel dari motor pertama (‘shoulder pan’ dengan id=1) ke papan kontrol, yang kini dapat dipasang pada dasar lengan.

Pemimpin

Lakukan langkah yang sama untuk lengan pemimpin.

Perintah
Contoh API
lerobot-setup-motors \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem575E0031751  # <- paste here the port found at previous step

Bagian Bersih

Lepaskan semua material penyangga dari bagian yang dicetak 3D. Cara termudah untuk melakukan ini adalah menggunakan obeng kecil untuk mengait bagian bawah material penyangga.

Disarankan untuk memasang satu kabel 3-pin di motor setelah menempatkan kabel-kabel tersebut sebelum melanjutkan perakitan.

Ganda 1

  • Pasang kedua klakson motor. Kencangkan klakson atas dengan sekrup M3x6mm. Klakson bawah tidak memerlukan sekrup.
  • Letakkan motor pertama ke dalam dasar.
  • Kencangkan motor dengan 4 sekrup M2x6mm (sekrup terkecil). Dua dari atas dan dua dari bawah.
  • Geser penyangga motor pertama dan kencangkan menggunakan dua sekrup M2x6mm (satu di setiap sisi).
  • Lampirkan bagian bahu.
  • Kencangkan bagian bahu dengan 4 sekrup M3x6mm di bagian atas dan 4 sekrup M3x6mm di bagian bawah
  • Tambahkan pemegang motor bahu.

Gabungan 2

  • Pasang kedua klakson motor. Kencangkan klakson atas dengan sekrup M3x6mm. Klakson bawah tidak memerlukan sekrup.
  • Geser motor kedua dari atas ke dalam.
  • Kencangkan motor kedua dengan 4 sekrup M2x6mm.
  • Pasang lengan atas dengan 4 sekrup M3x6mm di setiap sisi.

Ganda 3

  • Pasang kedua klakson motor. Kencangkan klakson atas dengan sekrup M3x6mm. Klakson bawah tidak memerlukan sekrup.
  • Pasang motor 3 dan kencangkan menggunakan 4 sekrup M2x6mm.
  • Hubungkan lengan bawah ke motor 3 menggunakan 4 sekrup M3x6mm di setiap sisi.

Ganda 4

  • Pasang kedua klakson motor. Kencangkan klakson atas dengan sekrup M3x6mm. Klakson bawah tidak memerlukan sekrup.
  • Geser penyangga motor 4.
  • Geser ke motor 4.
  • Kencangkan motor 4 dengan 4 sekrup M2x6mm.

Gabungan 5

  • Masukkan motor 5 ke dalam penahan pergelangan tangan dan amankan dengan 2 sekrup depan M2x6mm.
  • Pasang hanya satu motor horn pada motor pergelangan tangan dan kencangkan dengan sekrup horn M3x6mm.
  • Amankan pergelangan tangan ke motor 4 menggunakan 4 sekrup M3x6mm di kedua sisi.

Gripper / Pegangan

Pengikut
Pemimpin
  • Pasang gripper pada motor 5, lalu pasang ke motor horn di pergelangan tangan menggunakan 4 sekrup M3x6mm.
  • Masukkan motor gripper dan amankan dengan 2 sekrup M2x6mm di setiap sisi.
  • Pasang kedua motor horns pada gripper motor. Kencangkan horn atas dengan sekrup M3x6mm; tidak diperlukan sekrup untuk horn bawah.
  • Pasang cakar gripper dan amankan dengan 4 sekrup M3x6mm di kedua sisi.

Kalibrasi

Selanjutnya, Anda perlu melakukan kalibrasi pada robot Anda untuk memastikan bahwa lengan pemimpin dan pengikut memiliki nilai posisi yang sama ketika berada pada posisi fisik yang sama. Proses kalibrasi sangat penting karena memungkinkan jaringan saraf yang dilatih pada satu robot untuk bekerja pada robot lain.

Pengikut

Jalankan perintah atau contoh API berikut untuk mengkalibrasi lengan pengikut:

Perintah
Contoh API
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_awesome_follower_arm

Video di bawah ini menunjukkan cara melakukan kalibrasi. Pertama, Anda perlu memindahkan robot ke posisi di mana semua sendi berada di tengah rentang geraknya. Kemudian, setelah menekan enter, Anda harus menggerakkan setiap sendi melalui seluruh rentang geraknya.

Video kalibrasi

Pemimpin

Lakukan langkah yang sama untuk mengkalibrasi lengan pemimpin, jalankan perintah atau contoh API berikut:

Perintah
Contoh API
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
    --teleop.type=so101_leader \
    --teleop.port=/dev/tty.usbmodem58760431551 \
    --teleop.id=my_awesome_leader_arm

Selamat 🎉, robot Anda sudah siap untuk belajar tugas secara mandiri. Mulai melatihnya dengan mengikuti tutorial ini: Mulai dengan robot dunia nyata

Jika Anda memiliki pertanyaan atau membutuhkan bantuan, silakan hubungi kami di Discord.

Update on GitHub