LeRobot documentation
SO-100
SO-100
Aşağıdaki adımlarda, SO-100 robotunun nasıl monte edileceğini açıklıyoruz.
Parçaları temin edin
Bu README dosyasını takip edin. Parçaların temin edileceği bağlantıyı içeren malzeme listesini ve parçaların 3D baskı talimatlarını içerir. İlk kez baskı alacaksanız veya 3D yazıcınız yoksa tavsiye niteliğinde bilgiler de sunar.
LeRobot 🤗'u Yükle
LeRobot'u yüklemek için Yükleme Kılavuzumuza göz atın
Bu talimatların yanı sıra Feetech SDK'sını da kurmanız gerekir (LeRobot'u PyPI'den kurduysanız bunun yerine pip install 'lerobot[feetech]' komutunu çalıştırın):
pip install -e ".[feetech]"Motorları yapılandırın
Not: SO-101'in aksine, kol monte edildikten sonra motor konnektörlerine kolayca erişilemez, bu nedenle yapılandırma adımının önceden yapılması gerekir.
1. Her kolun ilişkili olduğu USB portlarını bulun
Her bus servo adaptörü için portu bulmak için bu betiği çalıştırın:
lerobot-find-port
Örnek çıktı:
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.Bulunan port: /dev/tty.usbmodem575E0032081, lider veya takipçi kolunuza karşılık gelir.
Linux'ta, USB portlarına erişim vermek için şunu çalıştırmanız gerekebilir:
sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1Örnek çıktı:
Finding all available ports for the MotorBus.
['/dev/ttyACM0', '/dev/ttyACM1']
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/ttyACM1
Reconnect the USB cable.Bulunan port: /dev/ttyACM1, lider veya takipçi kolunuza karşılık gelir.
2. Motor kimliklerini ve baud oranlarını ayarlayın
Her motor, bus üzerinde benzersiz bir id ile tanımlanır. Sıfır kilometre motorlar genellikle 1 varsayılan id ile gelir. Motorlar ile denetleyici arasındaki iletişimin düzgün çalışması için önce her motora benzersiz, farklı bir id atamamız gerekir. Ayrıca, bus üzerinden veri iletim hızı baudrate ile belirlenir. Birbirleriyle iletişim kurabilmeleri için denetleyici ve tüm motorların aynı baudrate ile yapılandırılması gerekir.
Bu amaçla, öncelikle bu ayarları yapmak için kontrolcü üzerinden her bir motora ayrı ayrı bağlanmamız gerekiyor. Bu parametreleri motorların dahili belleğinin (EEPROM) kalıcı bölümüne yazacağımız için, bunu yalnızca bir kez yapmamız yeterli olacaktır.
Başka bir robottan motorları yeniden kullanıyorsanız, kimlikler ve baudrate muhtemelen eşleşmeyeceği için bu adımı da gerçekleştirmeniz gerekecektir.
Takipçi
Bilgisayarınızdan ve güç kaynağından gelen USB kablosunu takip kolunun kontrol kartına bağlayın. Ardından, önceki adımda aldığınız portu kullanarak aşağıdaki komutu çalıştırın veya API örneğini çalıştırın. Takip kolunuza id parametresiyle bir ad da vermeniz gerekecektir.
Motor kimliklerini nasıl ayarlayacağınızla ilgili görsel bir referans için, SO101 kolunda bu süreci izlediğimiz bu videoya bakabilirsiniz.
lerobot-setup-motors \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem585A0076841 # <- paste here the port found at previous stepfrom lerobot.robots.so_follower import SO100Follower, SO100FollowerConfig
config = SO100FollowerConfig(
port="/dev/tty.usbmodem585A0076841",
id="my_awesome_follower_arm",
)
follower = SO100Follower(config)
follower.setup_motors()Aşağıdaki talimatı görmelisiniz
Connect the controller board to the 'gripper' motor only and press enter.Talimatlar doğrultusunda, kavrayıcının motorunu takın. Panoya bağlı tek motorun bu olduğundan ve motorun henüz başka bir motora daisy-chain (sıralı) olarak bağlanmadığından emin olun. [Enter] tuşuna bastığınızda, betik o motorun id ve baudrate değerlerini otomatik olarak ayarlayacaktır.
Troubleshooting
Bu noktada bir hata alırsanız, kablolarınızı kontrol edin ve doğru şekilde takıldıklarından emin olun:
- Güç kaynağı
- Bilgisayarınız ile kontrol kartı arasındaki USB kablosu
- Kontrol kartından motora giden 3 pinli kablo
Waveshare kontrol kartı kullanıyorsanız, iki jumper'ın B kanalında (USB) olduğundan emin olun.
Ardından aşağıdaki mesajı görmelisiniz:
'gripper' motor id set to 6Bunu bir sonraki talimat izler:
Connect the controller board to the 'wrist_roll' motor only and press enter.3 pinli kabloyu kontrol kartından çıkarabilirsiniz, ancak diğer ucundaki gripper motoruna bağlı bırakabilirsiniz, çünkü zaten doğru yerdedir. Şimdi, başka bir 3 pinli kabloyu bilek yuvarlama motoruna takın ve kontrol kartına bağlayın. Önceki motorda olduğu gibi, kartın yalnızca bu motora bağlı olduğundan ve motorun kendisinin başka hiçbir motora bağlı olmadığından emin olun.
Talimatlar doğrultusunda işlemi her motor için tekrarlayın.
Enter tuşuna basmadan önce her adımda kablajınızı kontrol edin. Örneğin, anakartı manipüle ederken güç kablosu bağlantısı kopabilir.
İşiniz bittiğinde betik basitçe sona erer ve bu noktada motorlar kullanıma hazır hale gelir. Artık her motorun 3 pinli kablosunu bir sonraki motora, ilk motorun (id=1 olan ‘omuz pan’) kablosunu ise kontrol kartına takabilirsiniz; bu kart artık kolun tabanına bağlanabilir.
Lider
Lider kol için aynı adımları uygulayın.
lerobot-setup-motors \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem575E0031751 # <- paste here the port found at previous stepfrom lerobot.teleoperators.so_leader import SO100Leader, SO100LeaderConfig
config = SO100LeaderConfig(
port="/dev/tty.usbmodem585A0076841",
id="my_awesome_leader_arm",
)
leader = SO100Leader(config)
leader.setup_motors()Adım Adım Montaj Talimatları
6 lider motorun dişlilerini çıkarın
Video removing gears
Dişli çıkarma videosunu izleyin. Lider kolun motorları için dişlinin çıkarılması gerekir. Bu sayede yalnızca motorun konum kodlamasını kullanır ve lider kolu daha kolay çalıştırmak için sürtünmeyi azaltırsınız.
Temiz Parçalar
3D yazdırılmış parçalardan tüm destek malzemesini kaldırın. Bunu yapmanın en kolay yolu, destek malzemesinin altına küçük bir tornavida sokmaktır.
Ek Yönergeler
Video assembling arms
Not: Bu video, kolların birleştirilmesi için görsel bir rehberlik sunmaktadır ancak kablolamanın ne zaman veya nasıl yapılacağını belirtmez. Kabloları önceden yerleştirmek, sonradan yapmaktan çok daha kolaydır. İlk kolun birleştirilmesi 1 saatten biraz fazla sürebilir, ancak alıştığınızda ikinci kolu 1 saatten kısa bir sürede birleştirebilirsiniz.
İlk Motor
Adım 2: Kabloları Yerleştirin
- İlk motora iki tel takın.
Adım 3: Base'te kurun
- İlk motoru tabana yerleştirin.
4. Adım: Motoru Sabitleme
- Motoru 4 vida ile sabitleyin. İki tanesi alttan, iki tanesi üstten.
Adım 5: Motor Tutucuyu Bağlayın
- İlk motor tutucusunu kaydırın ve iki vida ile (her bir tarafta birer tane) sıkıştırın.
Adım 6: Motor Korna Bağlantıları
- Her iki motor boynuzunu da takın ve üst boynuzu bir vida ile sabitleyin. Motor boynuzunu takarken motorun konumunu değiştirmemeye çalışın, özellikle dişlileri çıkardığımız lider kollarında.
Video adding motor horn
Adım 7: Omuz Parçasını Bağlayın
- Bir kabloyu robotun arkasına, diğerini ise sola veya size doğru yönlendirin (fotoğrafa bakın).
- Omuz kısmını takın.
8. Adım: Omuz Güvenliği
- Omuz kısmını üstte 4 ve altta 4 vida ile sıkın (alttaki deliklere erişmek için omzu çevirin).
İkinci Motor Montajı
Adım 9: Motor 2'yi Yükle
- İkinci motoru üstten içeri kaydırın ve 1 numaralı motordan 2 numaralı motora giden kabloyu bağlayın.
Adım 10: Omuz Tutucuyu Takın
- Omuz motor tutucusunu ekleyin.
- Motor 1'den motor 2'ye giden kablonun tutucunun arkasından geçmesini, diğer kablonun ise yukarı yönlendirilmesini sağlayın (fotoğrafa bakın).
- Bu parçanın montajı biraz zor olabilir; parçayı motorun etrafına oturtmak için görseldeki gibi bir iş tezgahı veya benzer bir düzenek kullanabilirsiniz.

Adım 11: Motor 2'yi Sabitleyin
- İkinci motoru 4 vida ile sabitleyin.
12. Adım: Motor Korna Bağlama
- Her iki motor kornasını da motor 2'ye takın, yine korna vidasını kullanın.
Adım 13: Tabanı Bağlayın
- Taban ek parçasını 2 vida kullanarak monte edin.
Adım 14: Üst Kolun Bağlanması
- Üst kolu her iki tarafta 4 vida ile sabitleyin.
Üçüncü Motor Montajı
Adım 15: Motor 3'ü Yükle
- Motor kablosunu motor 2'den kablo tutucusu üzerinden motor 3'e yönlendirin, ardından motor 3'ü 4 vida ile sabitleyin.
Adım 16: Motor Korna Bağlama
- Her iki motor kornasını da motor 3'e takın ve birini tekrar bir korna vidasıyla sabitleyin.
Adım 17: Ön Kol Bağlama
- Ön kolu her iki tarafta 4 vida kullanarak motor 3'e bağlayın.
Dördüncü Motor Montajı
Adım 18: Motor 4'ü Yükle
- Motor 4'ü kaydırın, motor 3'ten gelen kabloyu takın ve kabloyu vidayla tutucusuna sabitleyin.

Adım 19: Motor Tutucu 4'ü Bağlayın
- Dördüncü motor tutucusunu takın (sıkı bir sığışma). Bir kablonun yukarı yönlendirildiğinden ve 3 numaralı motordan gelen kablonun aşağı yönlendirildiğinden emin olun (fotoğrafa bakın).
Adım 20: Motor 4'ü Sabitleyin ve Korna Bağlayın
- Motor 4'ü 4 vida ile sıkın ve motor boynuzlarını takın, her biri için bir boynuz vidası kullanın.
Bilek Montajı
Adım 21: Motor 5'i Yükle
- Motor 5'i bilek tutucusuna yerleştirin ve 2 ön vida ile sabitleyin.
22. Adım: Bileği Bağla
- Motor 4'ten motor 5'e giden kabloyu bağlayın. Ve parmak (gripper) için diğer kabloyu zaten takın.
- Bileği, her iki tarafta 4 vida kullanarak motor 4'e sabitleyin.
23. Adım: Bilek Boynuzunu Takın
- Sadece bilek motoruna bir motor kornası takın ve bir korna vidasıyla sabitleyin.
Takipçi Yapılandırması
Adım 24: Kavrayıcıyı Bağlayın
- Gripper'i 5 numaralı motora bağlayın.
25. Adım: Gripper Motorunu Kurun
- Gripper motorunu yerleştir, motor 5'ten motor 6'ya motor kablosunu bağla ve her iki tarafta 3 vida ile sabitle.
26. Adım: Gripper Boynuzu ve Pençesini Takın
- Motor kornalarını takın ve yine bir korna vidası kullanın.
- Gripper pençesini takın ve her iki tarafta 4 vida ile sabitleyin.
27. Adım: Kontrolcü Bağlama
- Motor kontrolcüyü robotun arkasına takın.

Montaj tamamlandı – Leader kol montajına geçin.
Lider Yapılandırması
Lider yapılandırması için 1–23. adımları uygulayın. Motorlardan motor dişlilerini çıkardığınızdan emin olun.
Adım 24: Lider Tutucuyu Bağlayın
- Lider tutucuyu bileğe monte edin ve bir vida ile sabitleyin.
25. Adım: Tutamağı Bağlama
- Kolu, 4 vida kullanarak 5 numaralı motora takın.
26. Adım: Gripper Motorunu Kurun
- Gripper motorunu yerleştir, her iki tarafta 3 vida ile sabitle, bir boynuz vidası kullanarak motor boynuzunu tak ve motor kablosunu bağla.
27. Adım: Tetikleyici Ekle
- Takipçi tetiğini 4 vida ile sabitleyin.
28. Adım: Kontrolcü Bağlama
- Motor kontrolcüyü robotun arkasına takın.

Kalibre
Ardından, lider ve takipçi kollarının aynı fiziksel konumda olduklarında aynı konum değerlerine sahip olmasını sağlamak için robotunuzu kalibre etmeniz gerekecektir. Kalibrasyon süreci, bir robot üzerinde eğitilen bir sinir ağının başka bir robot üzerinde de çalışabilmesini sağladığı için çok önemlidir.
Takipçi
Takipçi kolunu kalibre etmek için aşağıdaki komutu veya API örneğini çalıştırın:
# Use the port of your follower arm, and give the arm a unique name with --robot.id
lerobot-calibrate \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem58760431551 \
--robot.id=my_awesome_follower_armfrom lerobot.robots.so_follower import SO100FollowerConfig, SO100Follower
config = SO100FollowerConfig(
port="/dev/tty.usbmodem585A0076891",
id="my_awesome_follower_arm",
)
follower = SO100Follower(config)
follower.connect(calibrate=False)
follower.calibrate()
follower.disconnect()Çoğu robot için kalibrasyon yöntemini birleştirdik. Bu nedenle, bu SO100 kolunun kalibrasyon adımları, Koch ve SO101 için olan adımlarla aynıdır. Öncelikle, robotun her eklem aralığının ortasında olduğu konuma hareket ettirmemiz, ardından Enter tuşuna basmamız gerekir. İkinci olarak, tüm eklemleri tam hareket aralıkları boyunca hareket ettiririz. SO101 için aynı sürecin referans videosuna buradan ulaşabilirsiniz.
Lider
Lider kolu kalibre etmek için aynı adımları izleyin, aşağıdaki komutu veya API örneğini çalıştırın:
# Use the port of your leader arm, and give the arm a unique name with --teleop.id
lerobot-calibrate \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem58760431551 \
--teleop.id=my_awesome_leader_armfrom lerobot.teleoperators.so_leader import SO100LeaderConfig, SO100Leader
config = SO100LeaderConfig(
port="/dev/tty.usbmodem58760431551",
id="my_awesome_leader_arm",
)
leader = SO100Leader(config)
leader.connect(calibrate=False)
leader.calibrate()
leader.disconnect()Tebrikler 🎉, robotunuz kendi başına bir görev öğrenmeye hazır. Eğitimine bu öğreticiyi izleyerek başlayın: Gerçek dünya robotlarıyla başlangıç
Update on GitHubHerhangi bir sorunuz varsa veya yardıma ihtiyacınız varsa, lütfen Discord üzerinden bize ulaşın.