Postavte si vlastního robota SO-101!

Získejte díly pro SO-101

Postupujte podle tohoto README. Obsahuje seznam materiálů s odkazem na zdroje dílů a také návod na 3D tisk dílů. Navíc doporučuje, zda je to váš první tisk nebo pokud nevlastníte 3D tiskárnu.

Nainstalujte LeRobot

Pro instalaci LeRobot postupujte podle Instalačního průvodce.
Kromě těchto instrukcí musíte nainstalovat Feetech SDK:
 pip install -e ".[feetech]"

Krok za krokem návod k sestavení

Následná paže používá 6x motory STS3215 s převodem 1/345. Vedoucí paže však používá tři motory s různými převody, aby zajistila, že může jak podpírat svou vlastní váhu, tak být pohybována s minimálním úsilím. Níže uvedená tabulka ukazuje, který motor je potřeba pro každý kloub.
Osa vedoucí paže Motor Převodový poměr
Základna / otáčení ramene 1 1 / 191
Zvednutí ramene 2 1 / 345
Ohyb lokte 3 1 / 191
Ohyb zápěstí 4 1 / 147
Rotace zápěstí 5 1 / 147
Chopič 6 1 / 147

Vyčistěte díly SO-101

Odstraňte veškerý podpůrný materiál z 3D tištěných dílů. Nejjednodušší je zasunout malý šroubovák pod podpůrný materiál a odstranit jej.
Po umístění motorů zapojte do každého motoru jeden 3pinový kabel před pokračováním v montáži.

Nainstalujte kloub 1

  1. Vložte první motor do základny.
  2. Zajistěte motor čtyřmi šrouby M2x6mm (nejmenšími šrouby): dvěma shora a dvěma zdola.
  3. Nasuňte první držák motoru přes motor a upevněte jej dvěma šrouby M2x6mm (po jednom na každé straně).
  4. Nasadte oba motorové rohy a horní roh upevněte šroubem M3x6mm.
  5. Namontujte část ramene.
  6. Zajistěte část ramene čtyřmi šrouby M3x6mm nahoře a čtyřmi šrouby M3x6mm dole.
  7. Nainstalujte držák motoru ramene.

Nainstalujte kloub 2

  1. Zasuňte druhý motor shora na místo.
  2. Zajistěte druhý motor čtyřmi šrouby M2x6mm.
  3. Nasadte oba motorové rohy na motor 2 a horní roh upevněte šroubem M3x6mm.
  4. Připevněte paži a zajistěte ji čtyřmi šrouby M3x6mm na každé straně.

Nainstalujte kloub 3

  1. Vložte motor 3 a zajistěte jej čtyřmi šrouby M2x6mm.
  2. Nainstalujte oba motorové rohy na motor 3 a jeden z nich upevněte šroubem M3x6mm.
  3. Připevněte předloktí k motoru 3 pomocí čtyř šroubů M3x6mm na každé straně.

Nainstalujte kloub 4

  1. Zasuňte držák motoru 4 na místo.
  2. Vložte motor 4.
  3. Zajistěte motor 4 čtyřmi šrouby M2x6mm, poté připevněte jeho motorové rohy a jeden upevněte šroubem M3x6mm.

Nainstalujte kloub 5

  1. Vložte motor 5 do držáku zápěstí a upevněte jej dvěma předními šrouby M2x6mm.
  2. Nasaďte jeden motorový roh na motor zápěstí a zajistěte jej šroubem M3x6mm.
  3. Připevněte zápěstí k motoru 4 a upevněte jej čtyřmi šrouby M3x6mm na každé straně.

Nainstalujte chápadlo / rukojeť

Follower

  1. Namontujte chápadlo na motor 5 připevněním k motorovému rohu zápěstí čtyřmi šrouby M3x6mm.
  2. Vložte motor chápadla a zajistěte jej dvěma šrouby M2x6mm na každé straně.
  3. Nasaďte motorové rohy a jeden upevněte šroubem M3x6mm.
  4. Nainstalujte dráp chápadla a zajistěte jej čtyřmi šrouby M3x6mm na každé straně.

Leader

  1. Namontujte držák vedoucího na zápěstí a upevněte jej čtyřmi šrouby M3x6mm.
  2. Připevněte rukojeť k motoru 5 pomocí jednoho šroubu M2x6mm.
  3. Vložte motor chápadla a zajistěte jej dvěma šrouby M2x6mm na každé straně; nasaďte motorový roh a upevněte jej šroubem M3x6mm.
  4. Připevněte spoušť následovníka pomocí čtyř šroubů M3x6mm.

Nakonfigurujte motory SO-101

Najděte USB porty odpovídající každé paži

Pro identifikaci portu pro každý adaptér sběrnice serva připojte MotorBus k počítači přes USB a napájení. Spusťte následující skript a při výzvě odpojte MotorBus:
 lerobot-find-port

Mac

Příklad výstupu:
 Hledání všech dostupných portů pro MotorBus.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Odpojte USB kabel od vašeho MotorsBus a stiskněte [Enter], až budete hotovi.

[...Disconnect corresponding leader or follower arm and press Enter...]

Port tohoto MotorsBus je /dev/tty.usbmodem575E0032081
Znovu připojte USB kabel.
Detekovaný port je /dev/tty.usbmodem575E0032081, který odpovídá buď vaší vedoucí nebo následující paži.

Linux

Na Linuxu možná budete muset udělit přístup k USB portům spuštěním:

 sudo chmod 666 /dev/ttyACM0

 sudo chmod 666 /dev/ttyACM1

Příklad výstupu:
 Hledání všech dostupných portů pro MotorBus. 
['/dev/ttyACM0', '/dev/ttyACM1']

Odpojte usb kabel od vašeho MotorsBus a stiskněte [Enter], až budete hotovi.

[...Disconnect corresponding leader or follower arm and press Enter...]

Port tohoto MotorsBus je /dev/ttyACM1
Znovu připojte USB kabel.

Nalezený port je /dev/ttyACM1, který odpovídá vaší vedoucí nebo následující paži.

Přiřaďte ID motorům a nastavte jejich baudrate

Každý motor má na sběrnici jedinečné ID. Nové motory obvykle přicházejí s ID 1. Pro správnou komunikaci mezi motory a ovladačem musí být každému motoru přiřazeno odlišné ID. Baudrate určuje rychlost přenosu dat na sběrnici; ovladač i všechny motory musí mít stejný baudrate, aby mohly komunikovat.
Pro tento účel se připojte ke každému motoru jednotlivě pomocí ovladače a nastavte jeho ID a baudrate. Tato nastavení jsou zapsána do nevolatilní paměti motoru (EEPROM), takže tento proces je potřeba provést pouze jednou.
Pokud znovu používáte motory z jiného robota, pravděpodobně budete muset tento krok opakovat, protože jejich ID a baudrate nemusí odpovídat.
Níže uvedené video ukazuje krok za krokem postup nastavení ID motorů.

Follower

Připojte USB kabel z počítače a napájecí zdroj k řídicí desce ramene follower. Poté spusťte níže uvedený příkaz (nebo API příklad) s použitím portu, který jste získali dříve. Také přiřaďte jméno vašemu leader rameni pomocí parametru id.
Příkaz:

 lerobot-setup-motors \
      --robot.type=so101_follower \
      --robot.port=/dev/tty.usbmodem585A0076841 # <- vložte zde port nalezený v předchozím kroku

Příklad API:
 from lerobot.robots.so101_follower import SO101Follower, SO101FollowerConfig

config = SO101FollowerConfig(
      port="/dev/tty.usbmodem585A0076841",
      id="my_awesome_follower_arm",
)
follower = SO101Follower(config)
follower.setup_motors()
Uvidíte následující instrukci.
 Připojte řídicí desku pouze k motoru 'gripper' a stiskněte enter.
Podle pokynů připojte motor gripperu — ujistěte se, že je to jediný motor připojený k desce a není zapojen do řetězu s jinými. Po stisknutí [Enter] skript automaticky nakonfiguruje ID a baudrate tohoto motoru.
Řešení problémů:
Pokud dojde k chybě, zkontrolujte všechna kabelová připojení:
  • Napájecí zdroj
  • USB kabel mezi vaším počítačem a řídicí deskou
  • 3pinový kabel od řídicí desky k motoru
Pokud používáte řídicí desku Waveshare, potvrďte, že oba jumpery jsou nastaveny na kanál B (USB).
Poté byste měli vidět následující zprávu:
 ID motoru 'gripper' nastaveno na 6
Následuje další instrukce:
 Připojte řídicí desku pouze k motoru 'wrist_roll' a stiskněte enter.
Můžete odpojit 3pinový kabel od řídicí desky, ale nechte jeho druhý konec připojený k motoru gripperu, protože tento konec je již na místě. Dále připojte nový 3pinový kabel od řídicí desky k motoru wrist roll. Stejně jako předtím se ujistěte, že tento motor je jediný připojený k desce a není zapojen do řetězu s jiným motorem.
Opakujte tento postup pro každý motor podle pokynů.
Před každým stisknutím [Enter] zkontrolujte všechny kabelové spoje — například napájecí kabel se může během manipulace s deskou uvolnit.
Po dokončení skriptu budou motory nakonfigurovány a připraveny. Poté můžete propojit 3pinové kabely motorů za sebou a připojit kabel z prvního motoru (rameno s id=1) k řídicí desce, kterou lze namontovat na základnu ramene.

Leader

Proveďte stejné kroky pro rameno leader.
Příkaz:
 lerobot-setup-motors \
      --teleop.type=so101_leader \
      --teleop.port=/dev/tty.usbmodem575E0031751 # <- vložte zde port nalezený v předchozím kroku
Příklad API:
 from lerobot.teleoperators.so101_leader import SO101Leader, SO101LeaderConfig
config = SO101LeaderConfig(
      port="/dev/tty.usbmodem585A0076841",
      id="my_awesome_leader_arm",
)
leader = SO101Leader(config)
leader.setup_motors()

Kalibrujte svého robota

Dále kalibrujte robota tak, aby ramena leader a follower hlásila stejné hodnoty polohy, když zaujmou stejnou fyzickou pozici. Tato kalibrace je zásadní, protože umožňuje neuronové síti trénované na jednom robotu správně fungovat na jiném.

Follower

Pro kalibraci ramene follower spusťte níže uvedený příkaz (nebo použijte příklad API):
Příkaz:
 lerobot-calibrate \
      --robot.type=so101_follower \
      --robot.port=/dev/tty.usbmodem58760431551 \ # <- Port vašeho robota
      --robot.id=my_awesome_follower_arm # <- Dejte robotu jedinečné jméno
Příklad API:
 from lerobot.robots.so101_follower import SO101FollowerConfig, SO101Follower

config = SO101FollowerConfig(
      port="/dev/tty.usbmodem585A0076891",
      id="my_awesome_follower_arm",
)
follower = SO101Follower(config)
follower.connect(calibrate=False)
follower.calibrate()
follower.disconnect()
Níže uvedené video ukazuje kalibraci: nejprve umístěte robota tak, aby každý kloub byl vycentrován ve svém rozsahu, poté stiskněte [Enter] a pohybujte každým kloubem v celém rozsahu pohybu.

Leader

Proveďte stejné kroky ke kalibraci leader ramene — spusťte níže uvedený příkaz nebo použijte příklad API:
Příkaz:
 lerobot-calibrate \
      --teleop.type=so101_leader \
      --teleop.port=/dev/tty.usbmodem58760431551 \ # <- Port vašeho robota
      --teleop.id=my_awesome_leader_arm # <- Dejte robotu jedinečné jméno
Příklad API:
 from lerobot.teleoperators.so101_leader import SO101LeaderConfig, SO101Leader
config = SO101LeaderConfig(
      port="/dev/tty.usbmodem58760431551",
      id="my_awesome_leader_arm",
)

leader = SO101Leader(config)
leader.connect(calibrate=False)
leader.calibrate()
leader.disconnect()

Postranní panel

Nejnovější příspěvek

Tato sekce momentálně neobsahuje žádný obsah. Přidejte obsah do této sekce pomocí postranního panelu.

Přihlaste se k odběru našeho zpravodaje

Získejte nejnovější informace o našich produktech a speciálních nabídkách.