6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)

Der Bereich Robotik ist ein sehr beliebtes Thema, wenn es um den Raspberry Pi geht. Neben normalen Roboterautos können u.a. auch Greifarme gesteuert werden, wobei es verschiedene Modelle gibt. In dieser Bauanleitung mit Tutorial geht es um den Zusammenbau und Testen eines Raspberry Pi 6 DOF Robot Arm, welcher einen Griff hat, womit z.B. Gegenstände gehalten oder aufgegriffen werden können.

Das „DOF“ steht für „degrees of freedom“ bzw. zu deutsch für „Freiheitsgrad„. Damit wird angegeben, wie viele individuell bewegbare Achsen es gibt. So gibt es auch bspw. 2DOF, 4DOF oder 5DOF Bausätze. Da der Preisunterschied aber nur gering ist, habe ich mich für die 6 DOF Variante entschieden. Zusätzlich ist diese auch am weitesten verbereitet, was den Softwaresupport angeht.

 

Zubehör

Bei den Bausätzen gibt es einige Unterschiede. Dabei sind nicht immer die Servomotoren mit dabei und auch in der unteren Platform gibt es kleinere Unterschiede. Die wichtigen Metallteile sind hingegen bei allen „6 DOF Robot Arm“ Bausätzen gleich.

Bei meinem Bausatz waren die Motoren nicht inklusive, weshalb ich folgendes genutzt habe:

 

 

Zusammenbau des 6 DOF Roboter Arm für den Raspberry Pi

Das Set kommt mit einigen Metallteilen und sehr vielen Schrauben, welche hauptsächlich zwei Aufgaben haben:

  • Dünne Schrauben (kurz & lang): Verbinden der Teile
  • Dicke Schrauben: Servos an den Metallteilen befestigen

Bevor wir mit dem Aufbau starten, sollten die Servos in Position gebracht werden, damit sie später optimal gesteuert werden können. Dazu solltest du zunächst das Tutorial für den PCA9685 durchgehen. Darin wird die benötigte Bibliothek installiert und gezeigt, wie man die Servo-Positionen setzen kann.

Die Initialwerte der Servos (bei 60Hz) sollten auf diese Werte gesetzt werden:

  • Greiffinger: 555
  • restliche 5 Motoren: 475

 

Bei mir haben die Schrauben nicht durch die runden Plastikaufsätze gepasst, weshalb ich die Löcher mit einer Bohrmaschine vergrößert habe (3-4mm). Dies solltest du zunächst mit allen Aufsätzen machen:

Vor (links) und nach dem Vergrößern der Löcher (rechts) für die Schrauben.

 

Fangen wir nun mit dem Zusammenbau der Teile an.

Als erstes die Basis: Die zwei langen Teile werden zusammen geschraubt:

Darauf kommt eine Servohalterung:

In die Halterung kommt ein Servo Motor, welcher mit großen Schrauben befestigt wird.

Nun nehmen wir eine weitere Halterung und schrauben seitlich eine runde Plastikhalterung an. Diese wird auf dem gerade montierten Motor der Basis befestigt:

 

Anschließend schrauben wir zwei der U-Stücke aneinander:

Diese werden mit Hilfe einer langen dünnen Schraube und einer der runden Ösen an der vorherigen Servo Halterung befestigt.

Auf einem neuen Servo bringen wir wieder ein rundes Plastikstück an. Wir stellen die U-Stücke senkrecht auf und befestigen sie an dem Plastikstück. Danach platzierst du den eben eingefügten Motor noch mit großen Schrauben an der Halterung.

raspberry pi 6dof robot arm

Am oberen Ende des U-Stücks befestigen wir auf die gleiche Weise eine Halterung (mit langer Schraube und Öse).

Bevor wir nun hier einen Servo befestigen, müssen wir noch eine kleine Vorbereitung treffen. Nimm das verbleibende U-Stück und das L-Stück an der kürzeren Seite und festige beide aneinander:

Dies befestigst du nun an der noch leeren Servo-Halterung:

Dort hinein kommt jetzt erst ein Servo, welcher bereits einen runden Plastikaufsatz montiert hat, hinein. Der Aufsatz sollte ebenfalls nach oben zeigen::

Wir nehmen nun die letzten beiden verbleibenden Halterungen und schrauben diese wie folgt fest:

Mit Hilfe der letzten runden Öse, einer langen Schraube und einer Mutter, befestigen wir die zwei verschraubten Halterungen am letzten U-Stück:

Wahrscheinlich wird es dir bereits klar sein was als nächstes kommt. Der vorletzte Servo wird mit Plastikaufsatz in die Halterung geschraubt (diesmal nicht nach oben zeigend, sondern 90° zur Seite):

Kommen wir zum letzten unverbauten Servomotor. Dieser wird ganz einfach nur auf der letzte Halterung montiert.

Widmen wir uns nun dem Zusammenbau des Metallgriffs. Zunächst befestigen wir das Plastikrädchen mit zwei Schrauben am Griff:

Nun wird noch der Servo mit Schrauben am Griff befestigt:

Nun kannst du Plastikaufsatz anbringen (Griff sollte geschlossen sein) und mit einer Schraube justieren:

Am Gelenk wird ein weiterer Plastikaufsatz angebracht:

Als letztes setzten wir den montierten Griff einfach auf den obersten Motor auf. Falls der Aufsatz zu locker ist, kannst du das letzte Plastikstück erst auf dem Gelenk-Servo befestigen und anschließend erst mit dem Griff verschrauben.

Zusammengebaut sieht das ganze dann so aus:

Die Kabel der Servos sind etwas zu kurz aber wir können sie mit Jumper Kabeln verlängern. Es bietet sich an diese außerdem mit Kabelbindern zu verbinden, damit etwas Ordnung einkehrt.

 

Verkabelung des Robot Arms am Raspberry Pi’s

Zunächst widmen wir uns der Verkabelung des PCA9685 Servo Treiber Boards, sofern du diesen nicht bereits mit dem Raspberry Pi verbunden hast. Hierbei wird der I2C Bus genommen, wodurch wir das Board wie folgt verbinden:

PCA9685 Raspberry Pi
SCL GPIO 3 / SCL (Pin 5)
SDA GPIO 2 / SDA (Pin 3)
VCC / V 3,3V (pin 1)
GND GND (Pin 6)

Raspberry Pi mehrere Servos anschließen

 

Bevor wird die Servos anschließen, kümmern wir und noch um die externe Stromversorgung. Entweder du hast ein 5V Universalnetzteil, welches genügend Strom liefert, oder aber du nutzt ein Schaltnetzteil, so wie ich ebenfalls. Beim Universaltzteil ist lediglich ein Power Jack Adapter nötig. Du kannst die Spannungspins einfach – wie in der Abbildung zu sehen ist – verbinden.

Falls du hingegen ein 5V Schaltnetzteil (10A) nutzt, so brauchst du ein zusätzliches Stromkabel, welches aufgeschnitten wird. Die Kabel werden wie folgt an das Netzteil angeschlossen:

  • Schwarzes bzw. braunes Kabel -> „L“.
  • Blaues Kabel -> „N“.
  • Grün-gelbes Kabel -> „PE“ bzw. Erdungssymbol.

Hier ist Vorsicht geboten! Bei Unsicherheit solltest du einen Fachmann fragen bzw. ein reguläres Universalnetzteil nehmen. Etwas genauer habe ich das Thema u.a. hier erläutert.

 

Zuguterletzt schließen wir die Servos an den PCA9685. Hierbei kommt der unterste Motor an Position 0, der darüber an Position 1 usw. Der Servo des Griffs ist an Position 5.

 

Raspberry Pi 6 DOF Robot Arm Bibliothek laden & testen

Um den Roboter Arm zu testen, muss wie gesagt zunächst die Adafruit PCA9685 Bibliothek installiert sein.

Anschließend können wir eine von mir modifizierte kleine Python Bibliothek laden und im Terminal ausführen:

git clone https://github.com/tutRPi/6DOF-Robot-Arm
cd 6DOF-Robot-Arm
sudo python example.py

Ich habe der ursprünglichen Bibliothek noch etwas Code hinzugefügt, sodass der Arm z.B. „herunterfahren“ (sleep) kann und nicht in sich zusammenfällt, sobald der Strom weg ist.

 

Habt ihr Anregungen / Ideen für Projekte mit dem 6 DOF Roboterarm oder sogar schon ein Projekt umgesetzt? Als nächstes ist von mir die Steuerung per Xbox 360 Controller geplant.

12 Kommentare

  1. Ich habe den im Artikel abgebildeten Roboterarm bei Amazon leider nicht gefunden… Kann ich bitte einen direkten Link zu ihm bekommen? Ich möchte der Anleitung möglichst genau folgen! Gibt es auch einen Lin kurz dem Motoren

    Und welche sind die im Beispiel verwendeten MG996R Motoren ? Sie sollen genau in den Roboterarm passen! Gibt es hier auch einen Link?

    Danke, Dirk

    Antworten
      • Hallo Felix,

        der Arm hat auf Amazon zwei sehr schlechte Bewertungen.
        Kannst du diese bestätigen?

      • Jein, es kommt drauf an: Für den Preis finde ich ihn in Ordnung. Klar ist, dass man keinen Hightech Industrie Roboterarm für wenig Geld bekommt. Daher waren meine Erwartungen auch nicht zu hoch, jedoch entäuscht wurde ich auch nicht.
        Das eigentliche „Problem“ sind die Servos: Der Standardansatz (auch in meinem Video) ist direkt die neue Position des Servos zu setzen. Das verursacht Zuckungen (bspw. gerade noch auf 45°, plötzlich auf 90° in wenigen Zehntelsekunden). Daher wäre es besser wenn man langsam interpoliert. Zwar verliert man etwas an Schnelligkeit, dafür ruckelt es aber nicht mehr so. Vielleicht code ich das wenn ich Zeit habe (ansonsten darf jeder gerne mein Repo forken und modifizieren).
        LG, Felix

    • Es kommt nur auf die Motoren an, weniger auf den eigentlichen Arm. Deiner scheint geeignet, du kannst aber auch den verlinkten Arm nehmen.

      Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!