Designing a Simple Robotic Hand: Mechanics and Control
Table of Contents
Warum eine Roboterhand bauen?
Roboterhände sitzen an der Schnittstelle von Biologie und Technik und bieten eine greifbare Möglichkeit zu erforschen, wie Maschinen menschliche Geschicklichkeit replizieren können. Ob Sie ein Pädagoge sind, der ein praktisches Klassenzimmerprojekt sucht, ein Hobbyist, der ein Wochenende bauen möchte, oder ein Student, der sich auf einen Robotikwettbewerb vorbereitet, lehrt Kernprinzipien, die direkt auf industrielle Manipulatoren und Prothesen skalieren. Dieser Artikel geht durch das mechanische Design, Steuerungssysteme, Bauprozess und Programmierung, die benötigt werden, um eine funktionale Roboterhand zu schaffen, die kleine Objekte erfassen und freigeben kann. Am Ende werden Sie verstehen, wie man leichte Strukturen, Servoantrieb und Mikrocontrollerlogik zu einer zuverlässigen Maschine kombiniert.
Mechanische Konstruktionsgrundlagen
Die menschliche Hand ist ein Wunder der Biomechanik, mit 27 Knochen, mehreren Gelenken pro Finger und einem komplizierten Sehnennetzwerk. Eine einfache Roboterhand muss diese Komplexität nicht nachbilden. Stattdessen konzentriert sie sich auf drei Schlüsselbewegungen: Öffnen, Schließen und Halten eines Griffs. Das mechanische Design sollte Einfachheit, Wiederholbarkeit und einfache Herstellung priorisieren.
Fingerarchitektur
Jeder Finger in einer einfachen Roboterhand besteht typischerweise aus zwei oder drei Segmenten (Phalangen), die durch Scharniergelenke verbunden sind. Die Anzahl der Segmente beeinflusst sowohl den Bewegungsbereich als auch die Griffstabilität. Dreisegmentfinger können sich natürlicher um Objekte kräuseln, während zweisegmentige Finger leichter zu bauen und zu kalibrieren sind. Standard-Materialien wie lasergeschnittenes Acryl, 3D-gedrucktes PLA oder leichte Aluminiumkanäle funktionieren gut für die Segmente. Bei der Auswahl eines Materials sollten Sie die Steifigkeit, das Gewicht und die Leichtigkeit berücksichtigen, die für Gelenkstifte gebohrt oder angezapft werden kann.
Die Gelenke selbst können einfache Maschinenschrauben sein, die als Drehzapfen fungieren, mit Nylonscheiben, um die Reibung zu reduzieren. Für einen polierteren Aufbau sorgen Messingstandoffs oder kleine Kugellager für eine glattere Rotation. Der Schlüsselparameter des Designs ist die Fügefuge: Zu viel Spiel führt zu einer Schräglage, die eine präzise Kontrolle erschwert, während zu wenig Bindungen verursacht. Ein Abstand von 0,1 bis 0,2 mm zwischen Stift und Loch ist ein gutes Startziel.
Tendon vs. Direct Drive Actuation
Zwei gängige Ansätze zur Bewegung der Finger sind sehnenbasierte und Direktantriebe. Bei einem Sehnensystem läuft ein flexibles Kabel (Fangleine, Dyneema oder geflochtenes Stahlseil) von der Fingerspitze über Führungspunkte entlang des Segments zu einem Servohorn. Wenn der Servo die Sehne zieht, krümmt sich der Finger. Ein Feder- oder elastisches Band auf der gegenüberliegenden Seite sorgt für die Rückholkraft. Dieses Verfahren hält die Aktuatoren (Servos) in der Handfläche oder im Unterarm, wodurch die Masse an den Fingerspitzen verringert wird und die Hand leichter wird.
Bei einem ersten Projekt ist die Bedienung der Sehne einfacher zu stimmen und zu reparieren. Der Nachteil ist, dass die Bedienung der Sehne eine sorgfältige Ausrichtung erfordert, um Reibung oder Bindung zu verhindern, insbesondere im Handgelenkbereich, wenn die Hand rotiert.
Palmstruktur und Fingerplatzierung
Die Handfläche dient als mechanisches Rückgrat. Sie muss die Fingergelenke an genauen Positionen halten und den beim Greifen entstehenden Kräften standhalten. Eine starre Handfläche ist entscheidend; jede Biegung hier verringert die Grifffestigkeit und Wiederholbarkeit. Eine Sandwichkonstruktion mit zwei dünnen, durch Abstandshalter getrennten Platten bietet eine steife, leichte Struktur, die auch einen Hohlraum für das Führen von Sehnen oder Drähten bietet. Bei der Positionierung der Finger ist Folgendes zu beachten:
- Einspruch: Ein Daumen, der sich zur Handfläche hin drehen kann, verbessert die Greiffähigkeit dramatisch. Selbst ein einfacher Daumen mit einem festen Winkel von 45 Grad verbessert die Leistung gegenüber einem reinen Inline-Finger.
- Abstand: Lassen Sie genügend Platz zwischen den Fingern, damit sie beim Schließen nicht stören, aber halten Sie sie nahe genug, um kleine Objekte zu greifen (normalerweise ist der Abstand von 10-20 mm ideal für Objekte im Bereich von 20-80 mm).
- Montage: Verwenden Sie versenkte Schrauben oder Schrauben, um die Fingerbasen an der Handfläche zu befestigen. Vermeiden Sie es, sich auf Klebstoffe allein zu verlassen, da sie bei wiederholter Belastung versagen können.
Materialauswahlleitfaden
| Material | Pros | Conseid | Am besten für |
|---|---|---|---|
| 3D-gedruckte PLA | Niedrige Kosten, leicht zu iterieren, gute Steifigkeit | Sprödigkeit unter dem Aufprall, kann im Laufe der Zeit kriechen | Prototypen, Nutzung im Klassenzimmer |
| Lasergeschnittenes Acryl | Flache, präzise, schnelle Fertigung | Kann in der Nähe von Schraubenlöchern reißen | Flache Finger, Palmplatten |
| Aluminium (6061) | Stark, langlebig, maschinell | Schwerer, benötigt Werkzeuge | Robuste oder schwere Hände |
| Polycarbonat | Zäh, leicht biegsam, nicht spröde | Teurer, härter sauber zu schneiden | Fingersegmente, die eine Schlagfestigkeit benötigen |
Steuerungssystemarchitektur
Sobald die mechanische Struktur fertig ist, wird der nächste Schritt darin bestehen, der Hand ein Gehirn zu geben. Ein Steuerungssystem für eine Roboterhand besteht typischerweise aus einem Mikrocontroller, der Sensoreingaben liest, gewünschte Fingerpositionen berechnet und Servomotoren steuert. Das Ziel ist es, Befehle auf hoher Ebene (wie "Griff" oder "Release") in präzise Gelenkwinkel zu übersetzen.
Mikrocontrollerauswahl
Der Mikrocontroller ist das Entscheidungszentrum. Für eine einfache Roboterhand dominieren zwei Plattformen das Feld:
- Arduino (Uno, Nano, Mega): Reifes Ökosystem, umfangreiche Bibliotheksunterstützung, einfache PWM-Generation. Ein Arduino Uno kann 12-20 Servos mit einem Schild oder einer Software-PWM-Bibliothek fahren. Es ist die beste Wahl für Anfänger und für Projekte, die keine hohe Rechenlast erfordern.
- Raspberry Pi Pico oder ESP32: Bieten Sie mehr Rechenleistung, integriertes WLAN/Bluetooth (ESP32) und mehrere PWM-Kanäle nativ. Der Pico eignet sich besonders für Projekte, die Sensorfusion betreiben oder mit einem Computer in Echtzeit kommunizieren müssen.
Wenn Sie ein PWM-fähiges Daumen verwenden, steigt diese Zahl auf sechs oder sieben. Die fünf Finger mit einem Servo pro Finger müssen mindestens fünf PWM-fähige Pins haben. Arduino Uno Offizieller Guide bietet einen guten Ausgangspunkt für die Einrichtung Ihrer ersten Servosteuerschaltung.
Sensor-Feedback-Optionen
Die Steuerung (das Bewegen der Servos in feste Positionen ohne Rückmeldung) funktioniert für einfache Pick-and-Place-Aufgaben, aber das Hinzufügen von Sensoren verbessert die Zuverlässigkeit dramatisch.
Flexsensoren
Ein Flexsensor ist ein Widerstandsstreifen, der seinen Widerstand bei Biegung ändert. Einen über die Länge eines Fingers anzubringen, gibt eine Spannungsablesung, die proportional zur Krümmung des Fingers ist. Diese sind kostengünstig, aber nicht linear und erfordern eine Kalibrierung. Eine Spannungsteilerschaltung mit einem festen Widerstand (typischerweise 10 kΩ) wandelt die Widerstandsänderung in ein Signal um, das der Mikrocontroller über einen analogen Pin lesen kann.
Kraftempfindliche Widerstände (FSR)
Wenn der Finger ein Objekt berührt, sinkt der Widerstand des FSR, was signalisiert, dass die Hand Kontakt aufgenommen hat. Dies ist entscheidend, um Übergriffe zu verhindern, die Objekte beschädigen oder die Servos zum Stillstand bringen könnten. FSRs sind langlebig und reagieren schnell, so dass sie ein Favorit für die Griffkontrolle sind.
Endschalter
Ein Endschalter an den vollständig geöffneten und vollständig geschlossenen Positionen jedes Fingers bietet harte Stopps. Der Mikrocontroller kann die Finger beim Starten nach Hause bringen, indem er jeden bewegt, bis er den Schalter auslöst, wodurch wiederholbare Nullpositionen gewährleistet werden. Dies ist eine kostengünstige, hochzuverlässige Option.
Aktuelle Sensing
Durch die Überwachung des Stroms, der von einem Servo aufgenommen wird, kann der Mikrocontroller erkennen, wenn der Motor ins Stocken geraten ist (d.h. wenn der Finger auf ein Objekt gestoßen ist und sich nicht weiter bewegen kann).
Servo Motor Selection und Verdrahtung
Für eine kleine Hand, die Objekte mit einem Gewicht von unter 200 Gramm aufnimmt, sind Mikroservos wie die SG90 oder MG90S ausreichend. Sie liefern 1,5–2,5 kg-cm Drehmoment, was für leichtes Greifen ausreichend ist. Für eine größere Hand oder schwerere Objekte sind Servos in Standardgröße (wie die MG996R mit 10 kg-cm) geeigneter. Immer die Abbremsmoment Bewertung: Die Hand sollte nicht mehr als 60-70% dieses Wertes arbeiten, um eine Überhitzung zu vermeiden.
Die Verdrahtung der Servogeräte zum Mikrocontroller erfordert eine gemeinsame Masse. Verbinden Sie die Servomasse (brauner oder schwarzer Draht) mit der Masse des Mikrocontrollers, die Stromleitung (rot) mit einer 5V-Versorgung (oder Batterie) und die Signalleitung (orange oder gelb) mit einem PWM-fähigen GPIO-Pin. Schalten Sie nicht mehrere Servogeräte vom fahrzeugseitigen Regler des Mikrocontrollers mit Strom, der mindestens 2A beträgt, um den Spitzenstrom zu verarbeiten, wenn sich alle Servogeräte gleichzeitig bewegen. Eine detaillierte Anleitung zum Servostrommanagement finden Sie im Dokument Adafruit Servomotor-Tutorial.
Schritt-für-Schritt-Build-Prozess
Mit den ausgewählten mechanischen und elektrischen Komponenten durchläuft der Bau vier Phasen: Fertigung, Montage, Verdrahtung und Erstprüfung. methodisch arbeiten und jeden Finger testen, bevor er zum nächsten wechselt.
Phase 1: Herstellung
Schneiden oder 3D-Drucken der Fingersegmente, Handflächenstücke und Montagehalterungen. Wenn Sie einen Laserschneider verwenden, entwerfen Sie die Teile in einem CAD-Programm (Fusion 360 oder Onshape) mit Laschen, so dass sie vor dem Befestigen zusammenschnappen. Für 3D-gedruckte Teile verwenden Sie eine Schichthöhe von 0,2 mm und 20% Füllung; dies gleicht Stärke und Druckzeit aus. Nach dem Drucken bohren Sie alle Löcher für Gelenkstifte auf genau den erforderlichen Durchmesser (verwenden Sie eine Reibahle für eine saubere Passform).
Phase 2: Mechanische Montage
Jeden Finger durch Stapeln der Segmente mit dem Gelenkbolzen zusammenfügen. Nylonscheiben zwischen Segmenten einsetzen, um die Reibung zu verringern. Sehnenschnur am Spitzensegment befestigen. Bei Verwendung einer Federrückstellung die Feder zwischen dem mittleren Segment und der Handfläche befestigen. Sobald sich der Finger frei von Hand bewegt, mit Halterungen oder Schrauben an der Handfläche befestigen. Wiederholen für alle Finger.
Für einen sehnengetriebenen Daumen ist ein Schwenkblock zu schaffen, der es dem Daumen ermöglicht, sich um die Handfläche zu drehen. Eine einfache Lösung ist eine 90-Grad-Bracket mit einem Servohorn, das seitlich angebracht ist. Das Servohorn zieht eine Sehne, die den Daumen nach innen kräuselt. Eine Torsionsfeder sorgt für die Rückstellung und hält den Daumen in einer ruhenden offenen Position.
Phase 3: Elektrische Verkabelung
Der Mikrocontroller und die Servotreiberplatine (falls verwendet) sind auf einer von der Hand getrennten Plattform zu befestigen, um Vibrationen zu reduzieren. Führen Sie Servosignaldrähte von der Handfläche zur Controllerplatine mit einem Bandkabel oder einzelnen verdrillten Paaren, um das Rauschen zu minimieren. Verwenden Sie bei Sensoren geschirmte Kabel für Läufe länger als 30 cm. Erstellen Sie eine gemeinsame Masseschiene (eine Schraubklemme), so dass die Stromversorgungsmasse, die Mikrocontrollermasse und die Servoerde alle an einem einzigen Punkt verbunden sind. Dies verhindert Masseschleifen, die Servojitter verursachen.
Phase 4: Erstkalibrierung
Führen Sie vor dem Schreiben von Steuercode einen manuellen Sweep aus. Öffnen Sie einen seriellen Monitor und senden Sie jedem Servo einen 0-Grad-Befehl, dann einen 180-Grad-Befehl. Beobachten Sie den vollen Bewegungsbereich. Stellen Sie den Servohornaufsatz so ein, dass der Finger in der neutralen (90-Grad-) Position vollständig geöffnet ist. Legen Sie dann Softwaregrenzen fest, um zu verhindern, dass der Servo seine mechanischen Endanschläge trifft, was zu Summen und Überhitzung des Motors führen würde.
Notieren Sie die minimale und maximale PWM-Pulsbreite (in Mikrosekunden) für jeden Servo; diese Werte werden in Ihren Code aufgenommen.
Programmierung der Kontrolllogik
Die Software, die die Roboterhand antreibt, muss die Sensoreingabe, die Zustandsverwaltung und die reibungslose Servobewegung handhaben. Das Schreiben von sauberem, modularem Code zahlt sich aus, wenn Sie später neue Griffmuster oder Sensoren hinzufügen müssen.
Zustandsmaschinendesign
Organisieren Sie das Programm um eine einfache Zustandsmaschine mit diesen Zuständen:
- IDLE: Alle Finger offen, Servos entspannt (nicht aktiv Position halten).
- ANSATZ: Finger in eine Position vor dem Greifen bewegen (etwas offener als die Zielobjektbreite). Sensoren aktivieren.
- GRASP: Schließen Sie die Finger, bis die Sensorschwelle erreicht ist (entweder FSR-Kontakt oder Stromspitze).
- HALT: Halten Sie die Servoposition mit einem Proportionalregler aufrecht; rutscht das Objekt (Sensorlesung ändert sich schnell), greifen Sie leicht nach.
- RELEASE: Öffnen Sie die Finger mit kontrollierter Geschwindigkeit zur IDLE-Position.
Mit einer Zustandsmaschine wird das Verhalten vorhersehbar und testbar. Jeder Zustand läuft in einer nicht blockierenden Schleife, so dass der Mikrocontroller weiterhin serielle Befehle oder Notstopps verarbeiten kann.
Umsetzung von Smooth Motion
Befehlen Sie dem Servo nicht direkt von 0 auf 180 Grad zu springen. Verwenden Sie stattdessen eine Rampenfunktion, die den Winkel jede Millisekunde um ein kleines Inkrement bewegt. Dies reduziert den mechanischen Schock und klingt natürlicher. Ein einfacher Ansatz ist die Arduino -Funktion innerhalb einer for-Schleife, die den Winkel um 1-2 Grad pro 15 Millisekunden erhöht.
Grip Pattern Library
Definieren Sie voreingestellte Griffmuster als Arrays von Zielwinkeln für jeden Finger.
- Griffkraft: Alle Finger sind vollständig gerollt, Daumen gegenüber. Wird zum Halten eines Zylinders wie eine Flasche verwendet.
- Präzisionsgriff: Daumen und Zeigefinger teilweise gebogen, Mittelfinger stützend, zum Aufnehmen eines kleinen Gegenstandes wie einer Kugelschreiberkappe.
- Klemmgriff: Nur Daumen- und Zeigefinger, Mittel- und Ringfinger vollständig geöffnet.
- Hakengriff: Finger ohne Daumenaufprall, zum Tragen eines Taschengriffs.
Wenn Sie diese in einem Array speichern, können Sie mit einem einzigen Funktionsaufruf den Griff wechseln. Sie können sie auch über ein serielles Menü oder eine physische Schaltfläche aussetzen.
Sicherheit und Fail-Safes
Fügen Sie immer eine Hardware-Notstopptaste (E-Stop) in die Stromleitung ein. In der Software implementieren Sie ein Timeout: Wenn ein Servo länger als 2 Sekunden versucht hat, eine Position zu erreichen, ohne einen Sensor auszulösen, nehmen Sie an, dass er blockiert ist und lösen Sie den Griff. Dies schützt sowohl das Objekt als auch den Servo vor Burnout. Fügen Sie eine Soft-Start-Routine hinzu, die nach dem Booten des Mikrocontrollers allmählich Servoenergie ermöglicht und plötzliche Rucken verhindert.
Testen und Iteration
Die Prüfung zeigt die Lücke zwischen Design und Realität. Beginnen Sie mit einem Test mit trockenem Lauf, bei dem jeder Finger manuell ohne Strom durch seinen Bereich bewegt wird. Hören Sie auf Bindung und suchen Sie nach Teilen, die unter leichtem Druck ausweichen. Dann schalten Sie Strom und überprüfen Sie die Drehrichtung jedes Servos. Wenn sich ein Finger entgegen der vorgeschriebenen Richtung bewegt, tauschen Sie das Signal und die Erdungsdrähte aus (oder kehren Sie die Zuordnung im Code um).
Die Grifffestigkeitsprüfungen sind einfach: Die Hand muss Gegenstände mit bekanntem Gewicht aufnehmen und prüfen, ob sie sie 30 Sekunden lang halten kann, ohne zu fallen. Erhöhen Sie das Gewicht allmählich. Wenn die Hand Gegenstände konsequent fallen lässt, sollten Sie das Servomoment erhöhen, den Griffwinkel einstellen oder den Fingerspitzen Gummigriffpolster hinzufügen. Eine übliche Verbesserung besteht darin, kleine Streifen Silikonmatte oder Schrumpfschlauch zu schneiden und sie an die inneren Fingeroberflächen zu kleben. Instructables hat ein beliebtes Build-Log mit vielen praktischen Tipps zur Verfeinerung der Griffstärke.
Für die Sensorkalibrierung werden fünf Messwerte pro Sensor an bekannten Fingerpositionen gesammelt und eine lineare Interpolationsgleichung berechnet. Bei einem Flexsensor wird der Analogwert bei vollständig geöffnetem, dann bei vollständig geschlossenem und dann bei zwei Zwischenpositionen gemessen. Diese werden verwendet, um rohe ADC-Werte in ungefähre Biegewinkel umzuwandeln. Dieser Vorgang dauert 30 Minuten, eliminiert jedoch Rätselraten während des Betriebs.
Erweiterung des Projekts
Sobald die Basishand zuverlässig funktioniert, fügen mehrere Upgrades Fähigkeiten hinzu und vertiefen die Lernerfahrung:
- Drahtlose Steuerung: Fügen Sie ein HC-05 Bluetooth-Modul oder ein ESP32 hinzu, um die Hand von einer Smartphone-App aus zu steuern.
- Objekterkennung: Befestigen Sie eine kleine Kamera (wie die OV2640) und verwenden Sie ein maschinelles Lernmodell (TensorFlow Lite Micro), um Objekte nach Form zu klassifizieren und automatisch den optimalen Griff auszuwählen.
- Rückmeldung der Kraft: Die FSR-Messwerte werden verwendet, um die Griffkraft je nach Objektfragilität zu variieren.
- Untersteuerung: Ersetzen Sie einzelne Fingerservos durch einen einzigen Motor und einen Differenzialmechanismus, der die Kraft auf alle Finger verteilt, was die Hand vereinfacht und es ihr ermöglicht, sich passiv an Objektformen anzupassen.
Jede dieser Erweiterungen verstärkt die gleichen Kernkompetenzen: mechanisches Design, Sensorintegration und Echtzeitsteuerung. Sie führen auch neue Konzepte in der drahtlosen Kommunikation, Computer Vision und adaptive Steuerung ein.
Schlussfolgerung
Eine einfache Roboterhand zu entwerfen und zu bauen ist eines der befriedigendsten Projekte in der Robotik, weil sie die abstrakte Welt des Codes mit der physischen Welt der Motoren und Hebel verbindet. Indem man sich auf eine klare mechanische Architektur, ein einfaches Steuerungssystem und iteratives Testen konzentriert, kann man eine Hand schaffen, die Objekte zuverlässig erfasst und manipuliert. Die Prinzipien, die man hier lernt - gemeinsames Design, Sehnenrouting, Servokalibrierung, Zustandsmaschinenlogik - übertragen sich direkt auf größere Roboter, Prothesen und industrielle Automatisierung. Beginnen Sie mit einem einzigen Finger, testen Sie, bis sie sich reibungslos bewegt, und bauen Sie dann den Rest. Die Hand, die Sie heute bauen, ist die Grundlage für die leistungsfähigeren Designs von morgen.