Pick-and-Place-Roboter: Der Fehlgriffe erkennt
Ein Arm, der Bauteile aus einer Ablage pickt und in zwei Kisten sortiert, Leegriffe erkennt, es erneut versucht und zählt, wie viele Zyklen gelangen.
Was du baust
Einen Arm, der eine Ablage leert. Teile landen je nach erkennbarem Merkmal – Größe, Farbe, aus welcher Vorrichtung sie kamen – in einer von zwei Kisten, und die Maschine läuft unbeaufsichtigt, bis die Ablage leer ist oder etwas schiefgeht; dann stoppt sie und sagt, in welchem Zustand sie stoppte.
Der Roboter ist nicht der interessante Teil. 4-DOF-Armbausätze kosten 40 £, und die Kinematik ist eine Seite Trigonometrie. Interessant ist, dass eine Pick-and-Place-Maschine an einem Prozentsatz gemessen wird – und von „hat auf Video funktioniert“ zu „hat fünfzig am Stück geschafft“ zu kommen, ist ein anderes Ingenieurproblem, als sie überhaupt zu bewegen.
Zwei Dinge bringen dich dorthin, und beide stecken im Greifer.
Die zwei Entscheidungen, die zählen
1. Der Finger darf nicht steif sein
Das überrascht, also steht es hier klar, bevor du etwas druckst.
Der Knopf deines Greifers ist eine Position – ein Servowinkel. Die Grenzen des Objekts sind Kräfte: ein Boden, unter dem es herausfällt, eine Decke, über der es zerstört wird. Der Wechselkurs dazwischen ist die Reihensteifigkeit k von allem zwischen Horn und Objekt – das Fenster, auf das du tatsächlich zielst, ist also
window (mm) = ( min(F_crush, F_servo) − F_slip ) / k
Ein starrer gedruckter Finger liegt bei rund 25 N/mm. Ein Hobbyservo an einem 30-mm-Hebelarm löst etwa 0,524 mm Backenweg auf. Für eine Erdbeere durchgerechnet ist das Fenster 0,108 mm – fünfmal feiner als ein Schritt, was heißt: Es gibt keinen Befehl, der geht, und kein Abstimmen findet einen.
| Finger | k | Fenster | Servostellungen, die gehen |
|---|---|---|---|
| Starr gedruckt | 25 N/mm | 0,108 mm | 0 |
| Schaumpad | 4 N/mm | 0,677 mm | 1 |
| Feder in Reihe | 0,8 N/mm | 3,386 mm | 7 |
| Gedrucktes Biegegelenk | 0,35 N/mm | 7,739 mm | 15 |
Lege eine 40-p-Extensionsfeder zwischen Horn und Finger, und das Problem ist weg. Dimensioniere deinen im Labor mit eigenem Objekt und eigenem Hebelarm, bevor du Filament einsetzt, und lies Servo-Greifkraft, Blockieren und Nachgiebigkeit für die volle Begründung.
2. Es braucht einen Prüfschritt
Der Zyklus ist anfahren, absenken, greifen, prüfen, heben, übergeben, ablegen. Ohne den Prüfzustand ist jeder Fehler lautlos: Der Greifer schließt ins Leere, der Arm trägt Luft über den Tisch und öffnet über der Kiste – und der Zähler sagt, es hätte geklappt.
Ein Hebel-Mikroschalter innen an einem Finger kostet fünfzig Cent und einen Eingangspin und ist das wertvollste Einzelteil in diesem Aufbau. Lies ihn nach 300–400 ms Beruhigung – ein nachgiebiger Finger schwingt nach dem Schließen nach, und Abtasten während des Nachschwingens gibt dir einen Münzwurf –, entprelle ihn über drei aufeinanderfolgende Messungen und gib der Zustandsmaschine einen RECOVER-Zustand mit begrenztem Wiederholversuch. Das Zustandsmaschinen-Tutorial hat das Ganze.
Der Aufbau, in Reihenfolge
- Endeffektor entscheiden. Sind deine Teile flach und von oben erreichbar, kalkuliere erst einen Saugnapf mit kleiner Pumpe – er schlägt alles Gedruckte. Sonst zwei Finger. Greifertypen und Greifkraft.
- Objekt vermessen. Masse auf der Küchenwaage, Zerstörkraft auf derselben Waage mit ein paar Opferteilen, µ mit einer Gepäckwaage, gezogen über das Pad-Material. Diese drei Zahlen entscheiden die Konstruktion – und die aus dem Netz sind falsch für dein Teil.
- Kraftschluss prüfen. Sind die Flächen, wo die Pads landen, stärker konisch als
atan(µ), hält keine Kraft der Welt – dann brauchst du eine V-Nut oder einen anderen Griffpunkt. Reibung und Kraftschluss. - Greifer im Labor dimensionieren. Hebelarm vom breitesten Objekt, dann Fenster gegen den Servoschritt prüfen. Der Greifer-Simulator.
- Greifer drucken mit Biegegelenk oder Feder in Reihe, TPU-Pads, hartem Anschlag und Mikroschalter. Servogreifer.
- Fünf Servos sauber verdrahten. PCA9685 über I²C, separate Servoschiene, Entkopplung. Bevor du Firmware schreibst – sonst debuggst du einen Tag Resets, die ein Leistungsproblem sind.
- Zustandsmaschine schreiben, nicht-blockierend, mit
VERIFYundRECOVER. Pick-and-Place-Zustandsmaschine. - Beschleunigung begrenzen per Bewegungsprofil, damit der dimensionierte Griff die Übergabe überlebt.
- Fünfzig fahren und zählen.
Die Messung
Fünfzig aufeinanderfolgende Zyklen, unbeaufsichtigt, mit Zähler und Fehlerprotokoll, das jeden Fehler mit Zustand festhält. Das ist das Lieferergebnis – und weit anspruchsvoller als ein Video.
| Ergebnis | Was es heißt |
|---|---|
| Über 95 % | Du hast eine Maschine. Weiter zur Posenerkennung statt hartcodierten Posen |
| 80–95 % | Meist die Anfahrpose oder zu wenig Beruhigung vor dem Prüfen |
| Unter 80 % | Meist Leistung oder ein Griff ohne Beschleunigungsterm dimensioniert |
| Versagt erst spät im Lauf | Servo-Erwärmung oder verschmutzende Pads. Beides real, beides sieht wie Geister aus |
Die Fehlertabelle in dem Zustandsmaschinen-Tutorial ordnet die meisten Symptome Ursachen zu.
Was dieses Projekt nicht ist
Es macht keine Bildverarbeitung und plant nicht um Hindernisse. Die Ablage steht bekannt, die Kisten stehen bekannt, und der Arm fährt, wohin man ihm sagt. Absichtlich – denn der Punkt dieses Aufbaus ist: Greifen ist ein separates, schwerer-als-es-aussieht Problem vom Positionieren, und beides zu vermengen lässt erste Pick-and-Place-Aufbauten stecken.
Will der Arm das Teil finden statt gesagt bekommen, wo es ist, ist das Kamerakalibrierung und Markerpose – und sitzt auf einem funktionierenden Pick-Zyklus, statt einen zu ersetzen.
Projekt-Roadmap
Der Baupfad
Folge dem Technikbaum von den Bauteilen bis zum funktionierenden Roboter. Jeder Knoten wird freigeschaltet, sobald seine Voraussetzungen erledigt sind, und dein Fortschritt wird auf diesem Gerät gespeichert.
0 / 21 erledigt
Bauteile
- Chassis4-DOF Robot Arm KitDer Acryl- oder Metallrahmen, der vier Servos in einen Basis-Schulter-Ellbogen-Greifer-Manipulator verwandelt.
- AktorServogreiferEin Servo, zwei Finger, und die eine Zahl, die keine Artikelbeschreibung nennt.
- AktorSG90-ServomotorDas Neun-Gramm-Servo hinter den meisten Roboterarmen, Greifern und Lenkungen.
- TreiberPCA9685-Servotreiber16 Servos über zwei I²C-Pins treiben – die Platine hinter den meisten Roboterarmen und Hexapoden.
- ControllerArduino UnoDas gutmütige 8-Bit-Board, über das die meisten die Robotik kennenlernen.
- SensorLever MicroswitchDas eine Bit Sensorik, das einem Roboter sagt, dass er schon irgendwo angestoßen ist.
- StromversorgungRobot Battery & Power PackDer Unterschied zwischen einem Roboter, der läuft, und einem, der ständig neu startet.
Tutorials in diesem Pfad
- Einsteiger · 30 Min. LesezeitRobotergreifertypen und Greifkraft bemessenWähle den Greifertyp, dann bemesse die Kraft mit dem Term, den alle vergessen: Beschleunigung.
- Mittelstufe · 25 Min.Reibung, Kraftschluss und warum zwei Kontakte eine Wette sindWarum das Objekt herausschießt, egal wie fest man zudrückt, und was der Reibungskegel wirklich sagt.
- Mittelstufe · 30 Min.Servogreiferkraft, Blockieren und warum Nachgiebigkeit gewinntDer Drehknopf ist eine Position, die Wände sind Kräfte, und Steifigkeit ist der Wechselkurs dazwischen.
- Mittelstufe · 35 Min. LesezeitPick-and-Place-Zustandsmaschine, die Fehler überlebtAnfahren, greifen, prüfen, heben, ablegen — und was zu tun ist, wenn die Prüfung Nein sagt.
- Fortgeschritten · 22 Min. LesezeitInverse Kinematik eines Zwei-GelenkarmsWarum ein Zwei-Gelenkarm zwei Lösungen hat, wohin er reichen kann und nicht, und was eine Singularität wirklich ist.
- Mittelstufe · 18 Min. LesezeitServos mit dem PCA9685 ansteuern (I²C-PWM-Treiber)Frequenz setzen, Winkel in Impulsbreiten umrechnen und 16 Servos an zwei I²C-Pins bewegen – sicher versorgt und kalibriert.
- Mittelstufe · 40 Min.Bewegungsprofile: Trapez- und S-Kurven-BeschleunigungEine Bewegung rampen statt befehlen – Trapezprofile, Ruckgrenzen und was S-Kurve wirklich kostet.
- Einsteiger · 17 Min. LesezeitEndliche Zustandsmaschinen für RoboterverhaltenVerhedderte Roboterbedingungen durch explizite Zustände, Ereignisse, Übergänge, Timeouts und Erholung ersetzen.
- Einsteiger · 30 Min. LesezeitWarum dein Roboter neustartet, wenn Motoren anlaufenDer Reset, der wie ein Codebug aussieht, ist fast immer die Batterie. Budgetiere den Strom, dann miss den Einbruch.
- Einsteiger · 30 Min. LesezeitWarum delay() Roboter lähmt: Timing mit millis()Ein Roboter in delay() ist blind. Ersetze es durch millis() und vergleiche Rollover-sicher.
Üben, bevor du verdrahtest
Im Live-Simulator abstimmen
Der Baupfad führt durch ein Browser-Labor. Bring das Verhalten hier in Ordnung und übertrage deine Einstellungen dann auf den echten Roboter.
Häufig gestellte Fragen
Was ist der schwierigste Teil eines Pick-and-Place-Aufbaus?
Nicht der Arm und nicht die Kinematik – sondern dass der Greifer eine Position befiehlt und das Objekt sich für eine Kraft interessiert. Mit steifen gedruckten Fingern liegt das nutzbare Fenster zwischen Fallenlassen und Zerdrücken bei rund einem Zehntelmillimeter, während ein Schritt eines Hobbyservos die Backen etwa einen halben Millimeter bewegt. Kein Befehl landet im Fenster. Die Lösung ist eine Feder oder ein Biegegelenk in Reihe, das das Fenster proportional zu 1/k öffnet – und die Entscheidung, an der das ganze Projekt hängt. Im Greifer-Simulator dimensionieren, bevor du etwas druckst.
Warum lässt mein Roboterarm das Teil beim Bewegen fallen?
Weil du den Griff fürs Gewicht dimensioniert hast und die Bewegung mehr braucht. Erforderliche Greifkraft ist m(g + a)·SF/(µ·n), und am flotten Arm ist der Beschleunigungsterm größer als die Schwerkraft. Ein Griff, der 58 g im Stand mit 1,63 N hält, braucht 1,93 N durch einen 250-mm-Hub in 0,9 s und 2,59 N bei 0,35 s – und er lässt etwa 40 ms nach Bewegungsbeginn los, bevor der Arm sichtbar gefahren ist, weshalb es sich wie Greiferversagen statt Arithmetik liest. Beschleunigung per Bewegungsprofil begrenzen oder fester greifen; meist ist das Profil die billigere Lösung.
Woher weiß ich, ob der Greifer wirklich etwas aufgenommen hat?
Ein Hebel-Mikroschalter an der Innenfläche eines Fingers, verdrahtet an einen Eingangspin mit Pull-up. Etwa fünfzig Cent, ein Kabel, und eine direkte digitale Antwort. Auf den nachgiebigen Teil des Fingers setzen, damit er bei wiederholbarer Kraft schaltet, per Software entprellen (drei aufeinanderfolgende Messungen, nicht eine) und nach 300–400 ms Beruhigung lesen, damit du nicht das Nachschwingen des Fingers abtastest. Strommessung geht auch und fängt zusätzlich Zerdrücken ab, braucht aber eine kalibrierte Schwelle und driftet mit einbrechendem Akku.
Brauche ich dafür inverse Kinematik?
Nicht strikt – du kannst Posen von Hand teachen und die Gelenkwinkel speichern, und für eine feste Ablage und zwei feste Kisten reicht das wirklich. IK brauchst du, sobald du geradliniges An- und Wegfahren willst, denn das sind kartesische Bewegungen, und hand-geteachte Gelenkwinkel liefern keine. Da schräges Eintauchen ein Teil umwirft und kurviges Heben es mitschleift, wollen die meisten Aufbauten am Ende die geraden Segmente – und das heißt IK.
Wie viele Servos und wie viel Leistung?
Fünf: Fuß, Schulter, Ellbogen, Handgelenk und Greifer. Das sind mehr Kanäle, als ein Uno selbst takten sollte – also PCA9685 über I²C. Leistung unterschätzen die meisten: Fünf Hobbyservos in gemeinsamer Bewegung ziehen mehrere Ampere Einschaltstrom, und der 5-V-Regler des Boards bricht ein und setzt den Controller mitten im Pick zurück. Den Servos eigene Versorgung mit gemeinsamer Masse und ein paar Hundert Mikrofarad nahe am Board geben.
Was zählt als fertig?
Fünfzig aufeinanderfolgende Zyklen mit Zähler und Fehlerprotokoll, unbeaufsichtigt. Das ist ein weit besseres Ziel als ein Video eines gelungenen Picks, denn es zwingt dich zum Prüfschritt, zum begrenzten Wiederholversuch und zur nicht einbrechenden Versorgung – genau den drei Dingen, die eine Demo von einer Maschine trennen. Unter 95 % gibt es immer eine spezifische Ursache, und das Protokoll sagt, in welchem Zustand sie versagte.