Bouw je eigen SO-101 robot!

Verkrijg de onderdelen voor de SO-101

Volg deze README. Deze bevat de materialenlijst met een link naar bronnen voor de onderdelen, evenals de instructies voor het 3D-printen van de onderdelen. Geef daarnaast aan of dit uw eerste keer printen is of als u geen 3D-printer bezit.

Installeer LeRobot

Om LeRobot te installeren, volgt u de Installatiehandleiding.
Naast deze instructies moet u de Feetech SDK installeren:
 pip install -e "".[feetech].""

Stapsgewijze montage-instructies

De volgerarm gebruikt 6x STS3215 motoren met 1/345 overbrenging. De leider gebruikt echter drie motoren met verschillende overbrengingen om ervoor te zorgen dat hij zowel zijn eigen gewicht kan dragen als met minimale inspanning kan worden bewogen. De onderstaande tabel toont welke motor voor elk gewricht nodig is.
Leider-armas Motor Overbrengingsverhouding
Basis / Schouderpan 1 1 / 191
Schouderheffing 2 1 / 345
Elleboogbuiging 3 1 / 191
Polsbuiging 4 1 / 147
Polsrol 5 1 / 147
Grijper 6 1 / 147

Reinig onderdelen van de SO-101

Verwijder al het ondersteuningsmateriaal van de 3D-geprinte onderdelen. De makkelijkste methode is om een kleine schroevendraaier onder het ondersteuningsmateriaal te schuiven om het te verwijderen.
Plaats na het plaatsen van de motoren een 3-pins kabel in elke motor voordat je verder gaat met de montage.

Installeer Gewricht 1

  1. Plaats de eerste motor in de basis.
  2. Beveilig de motor met vier M2x6mm schroeven (de kleinste schroeven): twee van boven en twee van onderen.
  3. Schuif de eerste motorhouder over de motor en zet deze vast met twee M2x6mm schroeven (één aan elke kant).
  4. Plaats beide motorhoorns en zet de bovenste hoorn vast met een M3x6mm schroef.
  5. Monteer het schouderdeel.
  6. Bevestig het schouderdeel met vier M3x6mm schroeven aan de bovenkant en vier M3x6mm schroeven aan de onderkant.
  7. Installeer de schoudermotorhouder.

Installeer Gewricht 2

  1. Schuif de tweede motor van bovenaf naar beneden op zijn plaats.
  2. Beveilig de tweede motor met vier M2x6mm schroeven.
  3. Plaats beide motorhoorns op motor 2 en zet de bovenste hoorn vast met een M3x6mm schroef.
  4. Bevestig de bovenarm en zet deze vast met vier M3x6mm schroeven aan elke kant.

Installeer Gewricht 3

  1. Plaats motor 3 en zet deze vast met vier M2x6mm schroeven.
  2. Installeer beide motorhoorns op motor 3, waarbij je er één vastzet met een M3x6mm hoornschroef.
  3. Bevestig de onderarm aan motor 3, met vier M3x6mm schroeven aan elke kant.

Installeer Gewricht 4

  1. Schuif motorhouder 4 op zijn plaats.
  2. Plaats motor 4.
  3. Bevestig motor 4 met vier M2x6mm schroeven, monteer vervolgens de motorhoorns en zet er één vast met een M3x6mm hoornschroef.

Installeer Gewricht 5

  1. Plaats motor 5 in de polshouder en zet deze vast met twee M2x6mm schroeven aan de voorkant.
  2. Monteer een enkele motorhoorn op de polsmotor en zet deze vast met een M3x6mm hoornschroef.
  3. Bevestig de pols aan motor 4, zet deze vast met vier M3x6mm schroeven aan elke kant.

Installeer Grijper / Handvat

Volger

  1. Monteer de grijper op motor 5 door deze met vier M3x6mm schroeven aan de polsmotorhoorn te bevestigen.
  2. Plaats de grijpermotor en zet deze vast met twee M2x6mm schroeven aan elke kant.
  3. Monteer de motorhoorns en zet er één vast met een M3x6mm hoornschroef.
  4. Installeer de grijperklauw en zet deze vast met vier M3x6mm schroeven aan elke kant.

Leader

  1. Monteer de leader houder op de pols en zet deze vast met vier M3x6mm schroeven.
  2. Bevestig het handvat aan motor 5 met één M2x6mm schroef.
  3. Plaats de grijpermotor en zet deze vast met twee M2x6mm schroeven aan elke kant; monteer een motorhoorn en bevestig deze met een M3x6mm hoornschroef.
  4. Bevestig de follower trigger met vier M3x6mm schroeven.

Configureer de motoren van de SO-101

Zoek de USB-poorten die overeenkomen met elke arm

Om de poort voor elke bus servo-adapter te identificeren, sluit de MotorBus met USB en stroom aan op uw computer. Voer het volgende script uit en haal de MotorBus los wanneer daarom wordt gevraagd:
 lerobot-find-port

Mac

Voorbeelduitvoer:
 Alle beschikbare poorten voor de MotorBus worden gezocht.
['/dev/tty.usbmodem575E0032081', '/dev/tty.usbmodem575E0031751']
Verwijder de USB-kabel van je MotorsBus en druk op [Enter] als je klaar bent.

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

De poort van deze MotorsBus is /dev/tty.usbmodem575E0032081
Sluit de USB-kabel opnieuw aan.
De gedetecteerde poort is /dev/tty.usbmodem575E0032081, die overeenkomt met je leader- of follower-arm.

Linux

Op Linux moet je mogelijk toegang tot de USB-poorten verlenen door het volgende uit te voeren:

 sudo chmod 666 /dev/ttyACM0

 sudo chmod 666 /dev/ttyACM1

Voorbeelduitvoer:
 Alle beschikbare poorten voor de MotorBus worden gezocht. 
['/dev/ttyACM0', '/dev/ttyACM1']

Verwijder de usb-kabel van je MotorsBus en druk op [Enter] als je klaar bent.

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

De poort van deze MotorsBus is /dev/ttyACM1
Sluit de USB-kabel opnieuw aan.

De gevonden poort is /dev/ttyACM1, die overeenkomt met je leader- of follower-arm.

Wijs de motor-ID's toe en stel hun baudrates in

Elke motor heeft een unieke ID op de bus. Nieuwe motoren worden meestal geleverd met een ID van 1. Voor een goede communicatie tussen de motoren en de controller moet elke motor een unieke ID krijgen toegewezen. De baudrate bepaalt de datasnelheid op de bus; de controller en alle motoren moeten dezelfde baudrate delen om te kunnen communiceren.
Om dit te doen, verbind je met elke motor afzonderlijk met de controller en configureer je de ID en baudrate. Deze instellingen worden geschreven naar het niet-vluchtige geheugen (EEPROM) van de motor, dus het proces hoeft maar één keer te worden uitgevoerd.
Als je motoren hergebruikt van een andere robot, moet je deze stap waarschijnlijk herhalen omdat hun ID's en baudrate mogelijk niet overeenkomen.
De onderstaande video toont de stapsgewijze procedure voor het instellen van motor-ID's.

Volger

Sluit de USB-kabel van je computer en de voedingsadapter aan op de controllerkaart van de follower-arm. Voer vervolgens de onderstaande opdracht uit (of run het API-voorbeeld) met de eerder verkregen poort. Ken ook een naam toe aan je leader-arm met de id-parameter.
Commando:

 lerobot-setup-motors \
      --robot.type=so101_follower \
      --robot.port=/dev/tty.usbmodem585A0076841 # <- plak hier de poort die je in de vorige stap hebt gevonden

API voorbeeld:
 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()
Je zult de volgende instructie zien.
 Verbind de controllerkaart alleen met de 'gripper' motor en druk op enter.
Sluit zoals aangegeven de grippermotor aan—zorg dat dit de enige motor is die aan de kaart is bevestigd en niet in een keten met andere motoren zit. Wanneer je op [Enter] drukt, configureert het script automatisch de ID en baudrate van die motor.
Probleemoplossing:
Als er een fout optreedt, controleer dan alle kabelverbindingen:
  • Voedingsadapter
  • USB-kabel tussen je computer en de controllerkaart
  • 3-pins kabel van de controllerkaart naar de motor
Als je een Waveshare controllerkaart gebruikt, bevestig dan dat beide jumpers zijn ingesteld op het B-kanaal (USB).
Daarna zou je het volgende bericht moeten zien:
 'gripper' motor id ingesteld op 6
Vervolgens de volgende instructie:
 Verbind de controllerkaart alleen met de 'wrist_roll' motor en druk op enter.
Je mag de 3-pins kabel loskoppelen van de controllerkaart, maar laat het andere uiteinde bevestigd aan de grippermotor, aangezien dat uiteinde al op zijn plaats zit. Verbind vervolgens een nieuwe 3-pins kabel van de controllerkaart naar de polsrolmotor. Zorg er net als eerder voor dat deze motor de enige is die op de kaart is aangesloten en niet in een keten met andere motoren zit.
Herhaal deze procedure voor elke motor zoals aangegeven.
Controleer elke keer vóór het indrukken van [Enter] alle kabelverbindingen — de voedingskabel kan bijvoorbeeld losraken terwijl je met de kaart werkt.
Wanneer het script is voltooid, zijn de motoren geconfigureerd en klaar voor gebruik. Je kunt dan de 3-pins kabels van motor naar motor in serie schakelen en de kabel van de eerste motor (de schouderpan met id=1) aansluiten op de controllerkaart, die aan de basis van de arm kan worden gemonteerd.

Leader

Voer dezelfde stappen uit voor de leader-arm.
Commando:
 lerobot-setup-motors \
      --teleop.type=so101_leader \
      --teleop.port=/dev/tty.usbmodem575E0031751 # <- plak hier de poort die je in de vorige stap hebt gevonden
API voorbeeld:
 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()

Kalibreer je Robot

Kalibreer vervolgens de robot zodat de leader- en follower-armen identieke positiewaarden rapporteren wanneer ze dezelfde fysieke pose innemen. Deze kalibratie is cruciaal omdat het een neuraal netwerk dat op één robot is getraind, in staat stelt correct te functioneren op een andere.

Volger

Voer het onderstaande commando uit (of gebruik het API-voorbeeld) om de follower-arm te kalibreren:
Commando:
 lerobot-calibrate \
      --robot.type=so101_follower \
      --robot.port=/dev/tty.usbmodem58760431551 \ # <- De poort van je robot
      --robot.id=my_awesome_follower_arm # <- Geef de robot een unieke naam
API voorbeeld:
 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()
De onderstaande video toont de kalibratie: positioneer eerst de robot zodat elk gewricht in het midden van zijn bereik staat, druk dan op [Enter] en beweeg elk gewricht door zijn volledige bewegingsbereik.

Leader

Voer dezelfde stappen uit om de leader arm te kalibreren — voer het onderstaande commando uit of gebruik het API voorbeeld:
Commando:
 lerobot-calibrate \
      --teleop.type=so101_leader \
      --teleop.port=/dev/tty.usbmodem58760431551 \ # <- De poort van je robot
      --teleop.id=my_awesome_leader_arm # <- Geef de robot een unieke naam
API voorbeeld:
 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()

Zijbalk

Laatste bericht

Deze sectie bevat momenteel geen inhoud. Voeg inhoud toe aan deze sectie via de zijbalk.

Meld je aan voor onze nieuwsbrief

Ontvang de laatste informatie over onze producten en speciale aanbiedingen.