Bauteil · Chassis

4-DOF Robot Arm Kit

Ein 4-DOF-Bausatz ist der Rahmen, der vier Hobby-Servos in einen Tisch-Manipulator verwandelt – Drehbasis, Schulter, Ellbogen und Greifer zum Positionieren.

Was es ist

Ein 4-DOF-Roboterarm-Bausatz ist das mechanische Skelett eines Tisch-Manipulators: ein Satz lasergeschnittener Acryl- oder Aluminiumwinkel, eine Drehbasis und Befestigungsschlitze für vier Servos. Allein tut er nichts – er ist der Rahmen, der Servos in eine Maschine verwandelt, die greift, positioniert und zupackt. Servos einschrauben, mit einem PCA9685 ansteuern, und daraus wird ein Arm, den du zu einem Punkt im Raum befehlen kannst.

Beschriftete Seitenansicht eines 4-DOF-Servo-Roboterarms: Drehbasis-Servo unten, Schulter-Servo hebt das obere Glied, Ellbogen-Servo beugt den Unterarm und Greifer-Servo an der Werkzeugspitze, mit angedeutetem erreichbarem Bogen um die Basis.
Vier Gelenke, vier Servos: eine Drehbasis, Schulter und Ellbogen, die das Werkzeug in einer Vertikalebene platzieren, und ein Greifer an der Spitze. SVG herunterladen

Die vier Gelenke

Jeder Freiheitsgrad ist ein Servo mit einer Aufgabe:

  • Basis – dreht den ganzen Arm links und rechts (Gieren), richtet die Arbeitsebene aus.
  • Schulter – hebt das obere Glied; das erste der zwei Gelenke, die Reichweite und Höhe setzen.
  • Ellbogen – beugt den Unterarm; zusammen mit der Schulter platziert er das Werkzeug überall in einer Vertikalebene.
  • Greifer – öffnet und schließt die Backen, um ein Objekt zu halten.

Schulter und Ellbogen sind das Paar, das die Zweiglied-Inverskinematik löst: Zu einem Zielpunkt in der Arbeitsebene des Arms berechnet sie die zwei Gelenkwinkel, die ihn erreichen. Die Basis schwenkt diese Ebene dann in die Zielrichtung, und der Greifer greift zu.

Wann man ihn verwendet

Greife zu einem 4-DOF-Arm-Bausatz, wenn du Manipulation statt Mobilität lernen willst – Pick-and-Place, Klötze stapeln, Zeichnen oder eine Kamera auf einer positionierbaren Halterung. Er ist das Arm-Gegenstück zu einem 2WD-Chassis: die gemeinsame Struktur, auf die eine ganze Projektklasse aufbaut. Er ist bewusst leicht gebaut; behandle ihn als Lehrplattform, nicht als Arbeitstier.

Für schwerere oder präzisere Arbeit steige auf Metallgetriebe-Servos, einen steiferen Rahmen oder einen 5–6-DOF-Arm mit Handgelenk um. Für mobile Roboter ist stattdessen das Chassis der richtige Rahmen.

Verdrahtung und Fallstricke

  • Ein Servo pro Gelenk, je ein Kanal. Nummeriere die Kanäle (0 = Basis, 1 = Schulter, …) und halte die Zuordnung im Code, damit ein „Bewege den Ellbogen“-Befehl das richtige Servo treibt.
  • Servos separat versorgen. Vier sich gemeinsam bewegende Servos treiben den Strom in Spitzen; speise sie über die V+-Klemme des PCA9685, niemals über den Arduino.
  • Vor der Montage auf Null stellen. Setze jedes Servo auf einen bekannten Winkel (z. B. 90°), bevor du die Hörner aufsteckst, damit die Nullpose des Arms zur Null deines Codes passt.
  • Respektiere die Reichweite. Das Werkzeug erreicht nur einen Kreisring, den die Gliedlängen setzen; einen Punkt außerhalb zu befehlen ist unerreichbar, egal welche Gelenkwinkel – siehe Roboterarm-Simulator.
  • Beachte den Hebel. Nutzlast fällt schnell, wie der Arm ausfährt; halte Lasten leicht, sonst bleiben Servos stehen und Nylon­zahnräder verlieren Zähne.

Die Maße, die du vor jedem Code brauchst

Inverskinematik ist Arithmetik über Gliedlängen. Miss sie falsch, und der Arm greift selbstbewusst an die falsche Stelle, ohne dass der Code schuld wäre.

Maß Wo messen Typisch
L1 – Oberarm Schulterachse zu Ellbogenachse 90–105 mm
L2 – Unterarm Ellbogenachse zum Greifpunkt des Greifers 80–95 mm
Basishöhe Tisch zur Schulterachse 50–70 mm
Basisversatz Drehachse der Basis zur Schulterachse, horizontal 0–15 mm

Miss zwischen Gelenkachsen, nicht zwischen Halterkanten. Die Achse ist die Mitte der Servo-Abtriebswelle und liegt oft 5–10 mm innerhalb des sichtbaren Halters. Bei einem 95-mm-Glied sind 10 mm Fehler über 10 % – was sich als systematisch zu kurzer Arm zeigt und durch kein Tuning zu beheben ist.

Diese zwei Längen geben dir den Arbeitsraum direkt:

maximum reach = L1 + L2
minimum reach = |L1 - L2|

Mit L1 = 100 und L2 = 90 reicht der Arm zwischen 10 mm und 190 mm ab der Schulter – ein Kreisring, keine Scheibe. In der Mitte ist ein Loch, das er physisch nicht erreichen kann, und es ist beim ersten Mal eine echte Überraschung, wenn ein Ziel nahe der Basis als unerreichbar zurückkommt. Sind beide Glieder gleich, verschwindet das Loch und der Arm kann sich auf sich selbst falten.

Servodrehmoment: warum der Arm ausgestreckt durchhängt

Das Schulter-Servo trägt alles dahinter, und der Drehmomentbedarf steigt, je weiter die Masse vom Gelenk sitzt.

Für einen voll ausgestreckten Arm mit L1 = L2 = 95 mm, der 30 g Nutzlast hält, bei Gliedern von je grob 20 g:

Shoulder torque ~= (forearm+elbow mass x 0.095) + (payload x 0.190)
                ~= (0.05 kg x 9.5 cm) + (0.03 kg x 19 cm)
                ~= 0.48 + 0.57 = 1.05 kg.cm

Das Blockiermoment eines SG90 liegt bei etwa 1,8 kg·cm bei 4,8 V. 1,05 kg·cm zu halten heißt 58 % des Blockiermoments im Dauerbetrieb, was deutlich jenseits des Punkts liegt, an dem ein Hobby-Servo genau bleibt – er hängt unter dem befohlenen Winkel durch, brummt und wird heiß.

Konfiguration Schulterbedarf SG90 (1,8 kg·cm) MG90S (2,2 kg·cm)
Eingefaltet, ohne Nutzlast ~0,2 kg·cm Komfortabel Komfortabel
Ausgestreckt, ohne Nutzlast ~0,5 kg·cm In Ordnung In Ordnung
Ausgestreckt, 30 g Nutzlast ~1,05 kg·cm Hängt sichtbar durch Grenzwertig
Ausgestreckt, 50 g Nutzlast ~1,4 kg·cm Bleibt stehen Hängt durch

Drei praktische Folgen. Die Genauigkeit des Arms ist voll ausgestreckt am schlechtesten, genau dort, wo auch eine Singularität lebt, also plane Bahnen innerhalb der Grenze. Nutze MG90S-Servos mit Metallgetriebe für die Schulter, selbst wenn der Rest SG90s sind – es ist das Gelenk, das zuerst versagt, und Nylon­zahnräder verlieren unter Dauerlast Zähne. Und halte gegen, wenn du kannst: Ein Gummiband vom oberen Glied zurück zur Basis nimmt dem Schulter-Servo überraschend viel statische Last gratis ab.

So montieren, dass die Mathematik stimmt

Die Reihenfolge zählt, und ein Schritt lässt sich danach fast nicht mehr rückgängig machen.

1. Jedes Servo auf Mitte stellen, bevor ein Horn montiert wird. Servo mit Strom versorgen, 90° befehlen, und erst dann das Horn aufstecken. Ein Servohorn ist verzahnt – etwa 20 oder 24 Zähne –, lässt sich also nur in diskreten Positionen montieren, und die feinste Einstellung ist grob 15–18°. Wer den Arm erst montiert und danach kalibriert, findet womöglich ein Gelenk, dessen nutzbarer Bereich um 40° versetzt ist und sich mechanisch gar nicht korrigieren lässt.

2. Hörner in der Pose montieren, die als Null gelten soll. Für die Schulter heißt das meist: oberes Glied senkrecht. Für den Ellbogen: Unterarm waagerecht. Lege die Konvention fest, schreibe sie auf und baue danach.

3. Vor dem Festziehen den vollen Weg jedes Gelenks prüfen. 0° und 180° befehlen und prüfen, dass nichts mit dem Rahmen kollidiert. Ein Gelenk, das bei 160° an den eigenen Halter stößt, hat eine wirksame Grenze von 160°, und dein Code muss das wissen.

4. Offsets und Vorzeichen pro Gelenk festhalten. Manche Gelenke drehen wegen der Anlenkung gegen deine mathematische Konvention. Einmal erfassen:

struct Joint {
  uint8_t channel;
  int      offsetDeg;   // servo angle when the joint is at its mathematical zero
  int8_t   sign;        // +1 or -1
  int      minDeg, maxDeg;  // mechanical limits, measured
};

const Joint BASE     = {0,  90, +1,  -85,  85};
const Joint SHOULDER = {1,  90, -1,  -10, 120};
const Joint ELBOW    = {2,  90, +1, -120,  10};
const Joint GRIPPER  = {3,  20, +1,    0,  55};

int servoAngle(const Joint &j, float jointDeg) {
  float clamped = constrain(jointDeg, j.minDeg, j.maxDeg);
  return constrain((int)(j.offsetDeg + j.sign * clamped), 0, 180);
}

Dieses Struct ist die gesamte Brücke zwischen Kinematik und Hardware, und es explizit zu haben ist der Unterschied zwischen einem Arm, über den du nachdenken kannst, und einem, an dem du ständig herumpfuschst.

Vier Servos versorgen

Vier sich gemeinsam bewegende Mikro-Servos liegen weit jenseits dessen, was ein Mikrocontroller liefern kann, und die Versagensart des Arms macht es schlimmer: Wenn der Arm an den eigenen Rahmen stößt oder etwas Festes greift, bleiben alle Servos der Kette gleichzeitig stehen.

Situation Strom
Leerlauf, hält Position ~40 mA gesamt
Bewegt, unbelastet ~600 mA – 1 A
Alle vier blockiert ~2,6 A

Lege die Versorgung auf den Blockierwert aus. Eine separate 5–6-V-Versorgung in die V+-Klemme des PCA9685, mit 470–1000 µF Kondensator darüber, und Massen mit dem Controller verbunden. Etwas davon über den 5-V-Pin des Arduino zu betreiben, schickt das Board in Brown-out – und weil es nur passiert, wenn der Arm eine bestimmte Position erreicht, liest es sich überzeugend wie ein Softwarefehler.

Bewege ihn sanft

Ein Servo, dem ein neuer Winkel befohlen wird, fährt dorthin mit voller Geschwindigkeit. An einem mobilen Roboter ist das nur abrupt; an einem Arm ist es ein echtes Problem: eine heftige Bewegung, eine Stromspitze und ein mechanischer Schlag durch Nylon­zahnräder, mit dem Hebel des Arms multipliziert.

// Interpolate every joint together so the tool moves in a straight-ish line
// and no single servo takes the whole load at once.
void moveTo(float base, float shoulder, float elbow, int steps, int stepMs) {
  static float cur[3] = {0, 0, 0};
  float target[3] = {base, shoulder, elbow};

  for (int s = 1; s <= steps; s++) {
    float t = (float)s / steps;
    for (int j = 0; j < 3; j++) {
      float a = cur[j] + (target[j] - cur[j]) * t;
      pwm.setPWM(JOINTS[j].channel, 0, countsFor(JOINTS[j], a));
    }
    delay(stepMs);
  }
  memcpy(cur, target, sizeof(cur));
}

Alle Gelenke gemeinsam zu interpolieren zählt ebenso wie das Glätten. Gelenke nacheinander zu bewegen schickt das Werkzeug auf einen seltsamen Weg durch den Arbeitsraum, was langsamer ist und unterwegs viel eher irgendwo anstößt.

Fehlerbehebung

Symptom Wahrscheinliche Ursache Lösung
Arm greift völlig daneben Horn in beliebigem Winkel montiert Jedes Servo auf 90° nullen, bevor Hörner montiert werden
Bereich eines Gelenks ~20° versetzt Horn einen Zahn daneben Abnehmen und neu stecken – in Software nicht zu beheben
Board startet neu, wenn sich der Arm bewegt Servostrom über den Controller Separate V+-Versorgung, gemeinsame Masse, großer Kondensator
Arm hängt voll ausgestreckt durch Schulter-Servo jenseits seines Wohlfühl­moments MG90S an der Schulter; Gegengewicht; Nutzlast reduzieren
Brummt beim Halten einer Pose Servo kämpft an seiner Grenze gegen Last Last reduzieren oder lösen, wenn Halten nicht nötig ist
Griffe nahe der Basis scheitern Ziel im Mindestreichweiten-Ring Erwartete Geometrie – |L1 − L2| ist unerreichbar
IK liefert NaN Ziel jenseits von L1 + L2 Erreichbarkeit vor der Trigonometrie prüfen
Greift je nach Richtung anders Getriebespiel, per Gliedlänge verstärkt Jedes Ziel aus gleicher Richtung anfahren
Heftige Bewegung bei neuem Befehl Servo fährt Vollgas Bewegung über Schritte interpolieren
Greifer zerdrückt oder verliert Dinge Keine Kraftrückmeldung Schließwinkel begrenzen; Schaum in die Backen

Wann du über diesen Bausatz hinauswächst

Ein 4-DOF-Acryl-Bausatz ist eine Lehrplattform, und er steht dazu. Seine Grenzen, in der Reihenfolge, in der du sie triffst:

Nutzlast. Dutzende Gramm. Alles Schwerere, und das Schulter-Servo hält es nicht.

Wiederholgenauigkeit. Spiel in den Servogetrieben plus Biegung in Acrylgliedern heißt: Zum selben befohlenen Punkt zurückzukehren landet Millimeter auseinander. Vier Grad Spiel an der Schulter sind über 190 mm Reichweite über 13 mm am Werkzeug.

Handgelenks­orientierung. Mit vier Freiheitsgraden kannst du das Werkzeug irgendwo platzieren, aber nicht unabhängig wählen, aus welchem Winkel es sich nähert. Ein 5- oder 6-DOF-Arm fügt ein Handgelenk hinzu, was erst „heb das von der Seite auf“ möglich macht.

Upgrade Was es bringt
MG90S-Servos überall Metallgetriebe – überlebt Stöße, weniger Spiel
Aluminiumglieder Deutlich weniger Biegung, bessere Wiederholgenauigkeit
MG996R-Servos + größerer Rahmen Echte Nutzlast, Hunderte Gramm
6-DOF-Arm Unabhängige Werkzeug­orientierung
Schrittmotor- oder BLDC-getriebener Arm Wiederholgenauigkeit in Zehntel­millimetern

Nichts davon ändert die Mathematik. Die Zweiglied-Kinematik, die du für diesen Bausatz schreibst, ist derselbe Löser, den ein besserer Arm nutzt – genau deshalb lohnt sich der billige Rahmen zuerst.

Den Graphen erkunden

Verwendet in diesen Bauprojekten

Projekte, Lernpfade und Simulatoren, die 4-DOF Robot Arm Kit verwenden.

Fragen

FAQ zu 4-DOF Robot Arm Kit

Was ist ein 4-DOF-Roboterarm?

Ein 4-DOF-Roboterarm (vier Freiheitsgrade) hat vier unabhängig gesteuerte Gelenke – meist eine Drehbasis, eine Schulter, einen Ellbogen und einen Greifer. Diese vier Bewegungen lassen das Werkzeug eine Reihe von Positionen auf dem Tisch erreichen und Dinge aufheben. Es ist der kleinste Arm, der sich wie ein echter Manipulator anfühlt, aber billig und einfach zu steuern bleibt.

Wie viele Servos braucht ein Roboterarm?

Einen pro Gelenk. Ein 4-DOF-Arm nutzt vier Servos – Basisdrehung, Schulter, Ellbogen und Greifer. Größere Arme fügen Handgelenk-Neigen und -Drehen für 5 oder 6 DOF hinzu. Weil jedes Servo einen eigenen PWM-Kanal braucht, sind Arme der klassische Grund, einen PCA9685-Treiber zu ergänzen, statt Servos direkt am Mikrocontroller zu betreiben.

Was ist der MeArm?

Der MeArm ist ein beliebter Open-Source-4-DOF-Arm-Bausatz aus lasergeschnittenem Acryl, angetrieben von vier Mikro-Servos. Er ist der Archetyp des billigen Tisch-Roboterarms – viele heute verkaufte Bausätze sind MeArm-Klone oder nahe Varianten. Jeder wird gleich verdrahtet und programmiert, also übertragen sich Kinematik- und Treiberkenntnisse zwischen ihnen.

Wie viel kann ein Hobby-Roboterarm heben?

Nicht viel – Dutzende Gramm am Greifer. Die Grenze ist Servodrehmoment mal Hebel. ~1,8 kg·cm Blockiermoment eines SG90 klingen nach viel, bis man sie über einen 15-cm-Arm verteilt, wo die nutzbare Last auf wenige Dutzend Gramm sinkt. Metallgetriebe-Servos und ein kürzerer Arm helfen; für echtes Heben braucht man einen größeren, untersetzten Arm.

Brauche ich einen PCA9685 für einen Roboterarm?

Nicht zwingend, aber es ist das richtige Werkzeug. Vier Servos laufen an den PWM-Pins eines Arduino, wenn man sie separat versorgt, aber ein PCA9685 entlastet die Timer des Mikrocontrollers, treibt alle Gelenke über zwei I²C-Pins an und führt den Servostrom über seine eigene Versorgung – genau das, was ein mehrgelenkiger Arm braucht.

Weiterführende Literatur

Quellen