Kostengünstige Elektromotoren für den Roboterarm auswählen

Views icon 5548
Choosing Electric Motors for the Robot Arm

In diesem Artikel möchte ich erläutern, wie die Auswahl der wichtigsten Komponente des Robotermanipulators – der Elektromotoren – ablief. Ich beginne mit einem Überblick über die Lösungen, die Trossen Robotics im Manipulator Viper X 300 S gewählt hat, der eine der beliebtesten Lösungen für Forschungsprojekte wie Aloha 2 und Pi0 ist.

Servoantriebe im Manipulator Viper X 300 S

Servoantriebe im Manipulator ViperX 300 S

Servoantriebe im Manipulator ViperX 300 S

Zunächst untersuchten wir bestehende Lösungen für Manipulatoren mit 6DOF (sechs Freiheitsgraden). Der Manipulator, auf den ich mich konzentriert habe, ist der Viper X 300 S, da er ursprünglich in der Materialliste für Aloha 2 enthalten war. Der Hersteller hat einen Teil der Dokumentation und der Zeichnungen zugänglich gemacht, und ich fand es eine großartige Idee, diese Lösungen wiederzuverwenden.

Desktop-Roboterarm ViperX-300 6DOF

Desktop-Roboterarm ViperX-300 6DOF

Die größte Herausforderung beim Bau eines erschwinglichen Manipulators besteht darin, zugängliche Antriebe mit hohem Drehmoment zu finden. Im Viper X 300 S setzte Trossen Robotics DYNAMIXEL XM430-W350 Servomotoren mit einem Blockiermoment von 4 Nm ein, zum Preis von $290, and DYNAMIXEL XM540-W270-T/R Servomotoren mit einem Blockiermoment von 10 Nm ein, zum Preis von $430. A total of 9 Servo motors werden benötigt, um einen solchen Manipulator zu bauen, was die Gesamtkosten auf 3.590 $ treibt – das gilt nicht mehr als erschwinglich.

ID Gelenkname Servo Baudrate Preis
1 Taille XM540-W270 1Mbps $430 
2 Schulter XM540-W270 1Mbps $430 
3 Schulter (Zweitantrieb) XM540-W270 1Mbps $430 
4 Ellbogen XM540-W270 1Mbps $430 
5 Ellbogen (Zweitantrieb) XM540-W270 1Mbps $430 
6 Unterarmdrehung XM540-W270 1Mbps $430 
7 Handgelenkwinkel XM540-W270 1Mbps $430 
8 Handgelenkdrehung XM430-W350 1Mbps $290
9 Greifer XM430-W350 1Mbps $290
Gesamt $3590

Ein Ingenieur (im Folgenden Alan genannt), der derzeit an dem Projekt arbeitet, erstellte eine kinematische Berechnung für einen Manipulatorarm mit einer Gesamtlänge von 700 mm und einer Tragfähigkeit von 750 Gramm.

Gelenke des ViperX 300

Gelenke des ViperX 300

Version 1.1 – 0,75 kg
Trägheits-Sicherheitsfaktor – 1,5
Gelenk Achse Schulter, cm Last kg*sm kg*sm Gewicht am Ende kg
Basis 0 0 3 7
Schulter 1 20 1,8 54,0 81 Last 0,75
Ellbogen 2 20 1,5 30,0 45,0 Greifer 0,25
Unterarm 3 0 1,2 0 0 Servo 0,1
Hand -1 4 15 1,1 16,5 24,8
Hand – 2 5 0 1 0 0
Greifer 6 0 0,75 0 0

Den Berechnungen zufolge benötigen wir an der Basis des Arms Antriebe mit einem erforderlichen Drehmoment von 81 kg·cm, also insgesamt 8 Nm. Das bedeutet, dass es ausreichen sollte, an der Basis zwei Servomotoren mit jeweils einem Blockiermoment von 4 Nm zu installieren. Es ist jedoch entscheidend zu verstehen, dass das maximale Arbeitsdrehmoment eines Servomotors mit einem Blockiermoment von 4 Nm – also das Drehmoment, mit dem er stabil arbeiten kann – in der Regel nur etwa die Hälfte dieses Wertes beträgt, wie im Performance Graph.

XM430-W350 Performance Graph

XM430-W350 Performance Graph

Diese Einschränkung muss berücksichtigt werden, damit der Manipulator die gewünschten Lasten bewältigen kann, ohne die Motoren zu überlasten.

Arten von Servoantrieben

Ich begann zu untersuchen, welche Motortypen in preisgünstigen Manipulatoren verwendet werden.

  • Schrittmotoren wie Nema 17, Nema 23.
    Schrittmotor Nema 17

    Schrittmotor Nema 17

  • PWM-Motoren (Pulsweitenmodulation) wie der Dsservo 160 kg·cm.
    DsServo DS51160MG

    DsServo DS51160MG

  • UART-Motoren (Universal Asynchronous Receiver/Transmitter) wie der Feetech STS 3215-C01.
    Feetech-STS3215

    Feetech-STS3215

Auf welche Schlüsselkennzahlen werden wir uns konzentrieren?

  • Drehmoment
  • Präzision
  • Strom, Spannung
  • Rückmeldung (Temperatur-, Strom- und Positionssensoren)
  • Gewicht
  • Kosten

Was ist das Drehmoment eines Motors?

Drehmoment = Kraft (F) × Abstand (d)

Drehmoment = Kraft (F) × Abstand (d)

Das Drehmoment eines Motors ist die Kraft, die ihn zum Drehen bringt. Man kann es sich als die „Drehkraft“ vorstellen, die dem Motor hilft, seine Arbeit zu verrichten. Je höher das Drehmoment, desto leichter kann der Motor beschleunigen und schwere Lasten heben. Für Autos ist es wichtig: Ein gutes Drehmoment hilft beim besseren Beschleunigen und beim Bergauffahren.

Das Drehmoment eines Motors ist definiert als das Produkt aus der aufgebrachten Kraft und dem Abstand vom Drehpunkt bis zu dem Punkt, an dem diese Kraft angreift. Die Formel lautet wie folgt:

Drehmoment = Kraft × Abstand (oder Drehmoment = F × d). Je höher das Drehmoment, desto größer ist der Hebelarm, mit dem dieser Motor arbeiten kann.

Positioniergenauigkeit

In der Robotik ist dies eine der wichtigsten Kennzahlen, denn die Aufgabe des Servoantriebs besteht darin, den Arm präzise im Raum zu positionieren, und je genauer uns das gelingt, desto besser. Die wichtigsten Eigenschaften eines Roboterarms sind die Wiederholgenauigkeit und die absolute Genauigkeit.

Wiederholgenauigkeit

Damit ist die Fähigkeit des Manipulators gemeint, nach mehreren Zyklen zum selben Punkt im Raum zurückzukehren. Sie wird in Millimetern gemessen (zum Beispiel ±0,01 mm). Je kleiner der Wert, desto höher die Genauigkeit bei der Wiederholung der Bewegungen.

Absolute Genauigkeit

Dies ist die Fähigkeit des Manipulators, einen bestimmten Punkt im Raum bezogen auf ein globales Koordinatensystem zu erreichen. Sie wird in Millimetern gemessen (zum Beispiel ±0,1 mm). Die absolute Genauigkeit ist aufgrund der Anhäufung von Fehlern in der Kinematik in der Regel schlechter als die Wiederholgenauigkeit.

Rückmeldesensoren

Positionssensoren

  • Hall-Effekt-Sensoren: Diese Sensoren bestimmen die Position des Rotors. Sie nutzen Magnete, um zu erkennen, wo sich der bewegliche Teil des Motors (der Rotor) befindet oder wie schnell er sich dreht.
    Funktionsprinzip des Hall-Effekt-Sensors

    Funktionsprinzip des Hall-Effekt-Sensors

  • Resolver: Sie ermöglichen die präzise Bestimmung des Drehwinkels. Sie funktionieren als genaue „Winkeldetektoren“ und geben die exakte Position des Motorrotors an.
    Funktionsprinzip des Resolvers

    Funktionsprinzip des Resolvers

  • Potentiometer: Dieses Bauteil, ähnlich einem Lautstärkeregler, ändert seinen Widerstand bei der Bewegung des Motors und zeigt so die Position seiner Welle an.
    Funktionsprinzip des Potentiometers

    Funktionsprinzip des Potentiometers

  • Optische Encoder: Sie liefern Informationen über die Position und die Geschwindigkeit des Rotors. Stellen Sie sich ein kleines Rad mit Schlitzen vor. Licht fällt durch diese Schlitze, und durch das Zählen dieser Lichtimpulse bestimmen wir, wie oft sich der Motor gedreht hat und wo er sich befindet.
    Funktionsprinzip des optischen Encoders

    Funktionsprinzip des optischen Encoders

  • Magnetische Encoder: Sie messen Position und Geschwindigkeit ebenfalls mithilfe von Magnetfeldern. Sie nutzen Magnete, um die Position des Motors zu verfolgen, und funktionieren auch unter schwierigen Bedingungen gut.
    Funktionsprinzip des magnetischen Encoders

    Funktionsprinzip des magnetischen Encoders

Stromsensoren

  • Strommesssensoren: Sie messen den vom Motor aufgenommenen Strom, um die Last zu beurteilen.
    Funktionsprinzip des Strommesssensors

    Funktionsprinzip des Strommesssensors

Temperatursensoren

  • Thermoelemente oder Thermistoren: Sie überwachen die Temperatur des Motors, um eine Überhitzung zu verhindern.
    Funktionsprinzip des Thermoelements

    Funktionsprinzip des Thermoelements

Schrittmotoren

Schema des Schrittmotors

Schema des Schrittmotors

Auf Schrittmotoren bin ich aufgrund ihrer Größe, ihres höheren Gewichts, ihres geringeren Drehmoments und ihrer niedrigen Positioniergenauigkeit nicht näher eingegangen.

For example, the Nema 17 Bipolar 1.8° 36Ncm lässt sich mit dem preisgünstigen UART-Servomotor vergleichen ST3215-C018 in einem ähnlichen Preisbereich. Der Nema 17 wiegt 280 Gramm und hat ein Drehmoment von 36 N·cm (oder 3,6 kg·cm) bei einem Schrittwinkel von 1,8 Grad.

Schrittmotor Nema 17

Schrittmotor Nema 17

Der Servomotor in einem ähnlichen Preisbereich, Feetech ST3215-C018, wiegt 55 Gramm, hat ein Drehmoment von 30 kg·cm und eine Positioniergenauigkeit von 0,09 Grad.

Motormodell Masse/Gramm  Nenndrehmoment/kg Genauigkeit/Grad Preis/$
Nema 17 Bipolar 1.8deg 36Ncm 280 3,6 1,8 10,75
Feetech ST3215-C018 55 15 0,09 16.45

Wenn wir also anhand der Schlüsseleigenschaften vergleichen, die wir für unseren Arm berücksichtigt haben – Gewicht × Drehmoment × Positioniergenauigkeit –, ergibt sich ein Unterschied von (280 / 55) × (15 / 3,6) × (1,8 / 0,09) ≈ 424-mal. Natürlich können wir diese Motortypen nicht allein anhand dieser 3 Parameter vergleichen; wir haben eine Reihe weiterer Faktoren außer Acht gelassen, etwa RPM, Untersetzungsverhältnis, Geräusch und Spiel. Fügen wir diese der Vergleichstabelle hinzu, ist der Unterschied nicht mehr so erheblich. Für manche Szenarien könnte der Nema-Motor die bessere Wahl sein.

PWM gegen UART

Grundschema des Servoantriebs

Grundschema des Servoantriebs

Ich begann, nach erschwinglichen Servos mit hohem Drehmoment zu suchen. Das Erste, was ich fand, war der DsServo RDS51150, der ein Drehmoment von 150 kg·cm hat – ein sehr hoher Wert für diesen Servotyp. Eine Besonderheit dieser Servos ist, dass sie ein Steuerungssystem mit einem Positionssensor auf Potentiometer-Basis enthalten, was die Rückmeldung und die Positionsregelung aufgrund der begrenzten Genauigkeit und Empfindlichkeit des Potentiometers erschwert.

Prinzip der Pulsweitenmodulation

Prinzip der Pulsweitenmodulation

Eine Besonderheit der Funktionsweise von Dsservo-Motoren ist, dass es sich um PWM-Motoren (Pulsweitenmodulation) handelt. Dies ist eine Methode zur Steuerung der Leistung des elektrischen Stroms durch impulsweises Ein- und Ausschalten. Ihnen fehlt ein magnetischer Encoder zur Übertragung der aktuellen Position der Welle, und sie haben keinen integrierten Controller. Diese Motoren eignen sich nicht für den Einsatz in Robotersystemen, bei denen Positioniergenauigkeit und Rückmeldung wichtig sind.

Ich überlegte, wie sich diese Nachteile ausgleichen ließen. Wir fanden einen geeigneten magnetischen Encoder, den AS5600, mit 4600 Positionen. Außerdem benötigten wir einen Controller, der mit PWM arbeiten kann.

Magnetischer Encoder AS5600

Magnetischer Encoder AS5600

Alan empfahl einen guten Programmierer, der in der Robotik tätig ist. Er schlug vor, PWM zugunsten von UART-Motoren (Universal Asynchronous Receiver/Transmitter) aufzugeben, da sich der zusätzliche Aufwand bei der Softwaresteuerung und der technischen Umsetzung wahrscheinlich nicht lohnen würde. Auch die Zuverlässigkeit preisgünstiger PWM-Motoren im Vergleich zu UART ist fraglich, da die eingebauten Potentiometer zur Drehzahlerfassung häufig ausfallen.

PWM UART
Funktionsprinzip Analog: Steuerung der Leistung durch Pulsweitenmodulation Digital: Befehlsübertragung über eine serielle Schnittstelle
Hauptaufgabe Sanfte Drehzahlregelung (Gleichstrommotoren) Präzise Positionierung (Servoantriebe)
Genauigkeit Hoch für die Geschwindigkeit, niedrig für die Position Hoch für die Positionierung (Schrittgenauigkeit)
Kommunikation Unidirektional (Steuerung → Motor) Bidirektional (unterstützt Rückmeldung)
Hardware-Komplexität Minimal (Treiber + PWM-Generator) Hoch (Controller mit UART + Protokoll)
Energieeffizienz Höher (direkte Leistungssteuerung) Niedriger (abhängig von Protokoll und Verarbeitung)
Typische Anwendungen Bohrmaschinen, Ventilatoren, Servoantriebe 3D-Drucker, CNC, Robotik

Bei UART-Motoren können wir sie in Reihe an einem einzigen Bus anschließen und erhalten dabei Rückmeldung über Position, Stromstärke und Motortemperatur. Allerdings sind die Kosten solcher Motoren mit ähnlichem Drehmoment deutlich höher.

Ich begann, geeignete UART-Motoren in Betracht zu ziehen, und entschied mich nach sorgfältiger Prüfung für folgende Typen: Feetech 30 kg und 50 kg. Beim Kauf in Chargen von 100 Stück betragen die Kosten $12 each.

Servomotor Feetech STS3215-C018. Drehmoment und Spiel

Servomotor Feetech STS3215

Servomotor Feetech STS3215

Der Ingenieur erstellte eine kinematische Berechnung des Systems auf Grundlage der auf der Website des Verkäufers angegebenen Drehmomentwerte. An diesem Punkt wies Alan darauf hin, dass das für den Motor angegebene Drehmoment das Blockiermoment ist, also das maximale Drehmoment, bei dem der Motor noch arbeiten kann, bevor er unter Last vollständig stehen bleibt. Daher können wir dieses Drehmoment nicht zur Beurteilung der Tragfähigkeit des Manipulators heranziehen, da er sich unter einer solchen Last schlicht nicht bewegen wird.

Diagramm von Drehmoment, Leistung, Wirkungsgrad und Strom

Diagramm von Drehmoment, Leistung, Wirkungsgrad und Strom

Die Diagramme unter dem Link following graphs kommen zu Hilfe und zeigen, dass das maximale Arbeitsdrehmoment, auf das man sich konzentrieren sollte, tatsächlich nur die Hälfte des angegebenen Werts beträgt – das ist in der Mitte des Diagramms zu sehen. Konkret werden 15 und 25 kg·cm angezeigt. Das bedeutet, dass wir mit einem Hebelarm von 700 mm und zwei Motoren mit jeweils 50 kg eine maximale Tragfähigkeit von 240 Gramm erreichen würden, was nicht ausreicht.

Letzten Monat bestellte Alan mehrere Muster, um sie zu Hause zu testen. Folgendes ist uns aufgefallen.

Messung des Spiels beim Feetech STS3215

Messung des Spiels beim Feetech STS3215

Das Spiel des Servomotors ist doppelt so groß wie angegeben (≤0,5°) im the technical documentation und beträgt 3 mm bei einer Armlänge von 160 mm, was etwa 1,072 Grad entspricht.

 

Zweitens haben wir die Temperatur unter konstanter Last gemessen.

 

Test 1: Überhitzungsprüfung beim Halten einer statischen Last.

Überhitzungstest unter statischer Last. Feetech STS3215

Überhitzungstest unter statischer Last. Feetech STS3215

Der Arm mit einer Hantel wurde seitlich ausgerichtet und hielt ein Gewicht von 1 kg an einem Hebelarm von 15 cm, was ein Drehmoment von 15 kg·cm ergibt. Innerhalb von 10 Minuten stieg die Temperatur auf 48 °C und blieb eine Stunde lang stabil, ohne weiter anzusteigen.

Test 2: Pendelbewegung im Bereich von ±90 Grad. Temperaturmessung

Pendelbewegung im Bereich von ±90 Grad. Temperaturtest. Feetech STS3215

Pendelbewegung im Bereich von ±90 Grad. Temperaturtest. Feetech STS3215

Ausgehend von 48 °C erreichte die Temperatur nach 50 Minuten 60 °C. In den folgenden 20 Minuten stieg die Temperatur nicht an. Danach wurde die Pendelgeschwindigkeit verringert, um die Erwärmung zu beschleunigen (siehe Hinweis unten). Es waren weitere 40 Minuten erforderlich, um 71 °C zu erreichen, woraufhin der Motor überhitzte.

Schlussfolgerungen

  • Kritischer Temperaturschwellenwert: Bei 71 °C zeigt der Motor Probleme, wie in den gestern und heute durchgeführten Experimenten beobachtet (zwei Fälle). Es scheint keinen integrierten Überhitzungsschutz zu geben, daher ist bei Erreichen dieser Temperatur ein manuelles Abschalten erforderlich.
  • Einfluss der Beschleunigung auf die Erwärmung: Eine geringere Beschleunigung erhöhte die Geschwindigkeit des Temperaturanstiegs. Anfangs erreichte die Temperatur bei einer Beschleunigung von 5 60 °C. Eine Verringerung der Beschleunigung auf 2 führte nach zusätzlicher Zeit zur Überhitzung. Morgen werden wir in weiteren Tests die Zeit bis zur Überhitzung bei einer Beschleunigung von 5 messen, da eine Beschleunigung von 2 für unsere Anwendung zu langsam ist.

Das war es fürs Erste zum Thema Elektromotoren. Neuigkeiten über unsere Fortschritte in der Robotik werden ganz sicher auf der Website veröffentlicht!