Auf den Arm nehmen - Tinkerkit Braccio Arduino Robotic Arm
Der Roboterarm Tinkerkit Braccio Robot verspricht einen kostengĂĽnstigen Einstieg in die Robotik. Lohnt sich der Kauf?
- Dr. Michael Stal
Der Roboterarm Tinkerkit Braccio Robot verspricht einen kostengĂĽnstigen Einstieg in die Robotik. Lohnt sich der Kauf?
Wer sich für Elektronik und Mechanik interessiert, dürfte irgendwann auf Mechatronik und Robotik stoßen, speziell auf interessante Themen wie ferngesteuerte Fahrzeuge oder Roboterarme. Industriell nutzbare Roboterarme a la Kuka und Fanuc sind auch im Kleinformat nahezu unerschwinglich. Was also tun, wenn der Wunsch nach einem einfachen Einstieg in diese Technologie auf den Nägeln brennt? Tut es zur Not auch ein preisgünstiger Baukasten?
Tinkerkit Braccio Robot
In diesem Blog kam das Arduino-Ökosystem schon in zahlreichen Postings zur Sprache. Viele experimentelle Robotikmodelle basieren auf Arduino-Boards. Auf dem Arduino-eigenen Shop und auch woanders gibt es entsprechende Kits, darunter den Tinkerkit Braccio Arduino Robotic Arm für rund 199 € (ohne MwSt). Der Name des Roboterarms ist übrigens mit Bedacht gewählt, weil das italienische “Braccio” dem deutschen Wort “Arm” entspricht.
Der Braccio-Roboterarm besitzt sechs Bewegungsachsen und firmiert daher als 6DOF-Roboterarm (DOF = Degrees of Freedom). Einfache Daumenregel: Jeder Motor fügt in der Regel einen Freiheitgrad hinzu. Natürlich ist für diesen Preis kein Roboter zu erwarten, der viele Kilogramm in höchster Geschwindigkeit, mit vorgebener Trajektorie, und mit großer Präzision bewegen kann - die aktuelle Version kommt auf etwa 150 g Maximallast bei ausgestrecktem Arm und sonst auf bis zu 400 g.
Aber taugt ein solches Kit zumindest fĂĽr den Einstieg in die Thematik?
Um diese Frage zu beantworten, habe ich den Braccio-Roboterarm von Arduino erworben. Zusätzlich benutzte ich ein Arduino-Board aus eigenen Bestand, das dem Roboterarm über das beigefügte Braccio-Shield Befehle gibt. Dieses Board sollte den Formfaktor eines Arduino Uno, Leonardo oder Mega besitzen und 5V-Logik implementieren, um das Braccio-Shield huckepack aufnehmen und steuern zu können - das Shield verbindet die verschiedenen Servos mit dem Arduino.
Maker:innen können aber auch neuere Arduino-Boards wie MKR- oder Nano-Boards verwenden. Siehe die Dokumentation zur Braccio-Bibliothek.
Auf den einschlägigen Verkaufsplattformen kosten Arduino-kompatible Boards ab etwa 9 Euro (Beispielsbezugsquelle). Alternativ lässt sich auch das Braccio Bundle Kit erwerben, in dem für rund 219 € bereits ein Original Arduino Uno Board enthalten ist.
Dass der Baukasten aus elektronischen und mechanischen Einzelteilen sowie Gehäuseteilen besteht (siehe Abb. 1) und von seinem neuen Besitzer erst mal Bastelarbeit abverlangt, ist kein Bug sondern ein Feature. Nur dadurch lassen sich wertvolle Einblicke in die Bestandteile eines zugegebenermaßen sehr einfachen Roboterarms gewinnen.
Zudem bieten Enthusiasten ergänzende Komponenten für den Braccio auf 3D-Modell-Plattformen wie Thingiverse an.
Zusammenbau
Wer das Löten elektronischer Bauteile scheut, kann übrigens aufatmen: Nach 21 Schritten und 63 Schrauben ist die vollständige Konstruktion geschafft, ganz ohne Löten. Enthalten im Kit sind sechs Servomotoren, zwei des Typs SR 311 und vier des Typs SR 431 mit höherem Drehmoment.
Für den Zusammenbau des Braccio ist das notwendige Werkzeug - ein Philips Schraubenzieher und ein Maulschlüssel - im Kit enthalten, zumindest theoretisch. Der normalerweise enthaltene kleine Maulschlüssel fehlte in meinem Kit. Wer sich vorab Details der Montage zu Gemüte führen möchte, findet die Bauanleitung zum Beispiel hier. Alternativ existiert ein 17-minütiges YouTube-Video, das alle Aufbauschritte illustriert. Nicht zu vergessen die Braccio-Dokumentation auf dem Arduino Web.
In etwa zwei bis maximal drei Stunden Arbeit lässt sich der Braccio sorgfältig und gemütlich zusammenbauen, wofür sich zum Beispiel ein verregneter Sonntagnachmittag anbietet. Das Endergebnis ist in Abb. 2a und 2b zu sehen.
Wenn einige Teile übrig bleiben, besteht kein Grund zur Panik. Im Kit sind ein paar Ersatzteile vorhanden, speziell für die Teile, die leicht verloren gehen könnten oder Verschleiß ausgesetzt sind.
Schneller, höher, weiter
Was ich als wenig optimal empfinde, ist die sehr leichte Basis des Braccio in Gestalt eines kleinen quadratischen Holzbrettchens. Diese Konstruktion macht den Braccio instabil, wodurch er zum Kippen neigt. Das Anschrauben des Arms auf eine Tischplatte dürfte nur für die wenigsten in Frage kommen. Als Gegenmaßnahme bietet es sich an, entweder ein größeres Holz- oder Aluminiumbrett oder eine verstärkte Basis mit integriertem Gewicht zu bauen. Für letztere Option gibt es auf Thingiverse ein entsprechendes Fundament zum Selbstdrucken. In dieses Fundament lässt sich ein passendes Gewicht integrieren.
Wer aus dem Greifer eine besser zupackende, zangenförmige Hand machen möchte, findet auch hierzu ein passendes 3D-Modell auf Thingiverse.
Hallo, Computer!
Für die nachfolgenden Beispiele habe ich einen Arduino Mega-Klone eingesetzt, da dieser mehr Schnittstellen besitzt, sollte man beziehungsweise frau den Braccio später durch eigene Zusatzkomponenten ergänzen wollen. Die bereits erwähnte Braccio-Dokumentation auf arduino.cc bietet hier einige Anregungen.
Entsprechende Arduino-Sketches funktionieren natürlich auch mit einem Arduino Uno oder Leonardo. Sitzt das Braccio-Shield erst mal auf dem auserwählten Arduino-Board, kann die Programmierung beginnen.
DafĂĽr lassen sich diverse IDEs nutzen, darunter Visual Studio Code plus PlatformIO-Addin oder die gute alte Arduino IDE.
Apropos gut und alt: Empfehlenswert ist zwar der Einsatz der aktuellen und überarbeiteten Arduino IDE 2.0. Wer wie ich aber noch eine Version der “klassischen” Arduino IDE auf einem Computer (mit Linux, Windows oder macOS) installiert hat, kann auch diese nutzen.
Nach Start der Arduino-IDE führt der erste Schritt zur Bibliotheksverwaltung. Für die Suche nach der passenden Bibliothek genügt der Begriff “Braccio”, worauf besagte Bibliothek in der Trefferliste erscheint. Ein Klick auf Install genügt und schon installiert die IDE die Braccio-Bibliothek und, sofern noch nicht vorhanden, auch die benötigte Servo-Bibliothek als Abhängigkeit erstgenannter Bibliothek.
Neben der Bibliothek stellt die Arduino-IDE auch die zusätzlich enthaltenen Programmbeispiele zur Verfügung. Insgesamt gibt es davon fünf. Empfehlenswert ist zuallererst die Ausführung des Sketches testBraccio90.
Nach der Initialisierung des Roboterarms, worauf dieser eine Initialposition einnimmt, vollführt der Braccio zunächst einen höflichen Knicks, um abschließend mit nach oben ausgestrecktem Arm zu verweilen. Dadurch können Maker testen, ob sie den Braccio und insbesondere dessen Servos richtig zusammen geschraubt haben.
Der Arduino-Sketch inkludiert zunächst die Header-Dateien für die Braccio- und die Servo-Bibliothek, um danach für alle Servos von base (Basis) bis gripper (Greifer) eine Variable zu definieren.
#include <Braccio.h>
#include <Servo.h>
Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_rot;
Servo wrist_ver;
Servo gripper;
Die Methode Braccio.begin()
initialisiert die Bibliothek und bewegt alle Servo-Motoren auf initiale Positionen. Die Basis dreht sich auf 90°, die Schulter auf 45°, der Ellbogen ebenso wie das vertikale Handgelenk auf 180°, das Handgelenk selbst rotiert auf 90°, der Greifer auf 10°. Für den Greifer bedeuten 10° eine geöffnete, 73° hingegen eine geschlossene Haltung.
void setup() {
Braccio.begin();
}
In der Dauerschleife loop gibt es nur einen Befehl: Braccio.ServoMovement(delay, M1, M2, M3, M4, M5, M6);
Dieser bewegt die Servomotoren (M1 … M6) auf die angegebenen Winkel, wobei zwischen der abgeschlossenen Bewegung eines Servomotors bis zum Start des nächsten Servomotors eine Pause von delay
(in Millisekunden!) einzuhalten ist:
void loop() {
Braccio.ServoMovement(20, 90, 90, 90, 90, 90, 73);
}
Mehr als die öffentlichen Methoden begin()
und ServoMovement()
existieren in der Bibliothek nicht.
Darüber hinaus gibt es weitere Open-Source-Bibliotheken zur Ansteuerung des Braccio. So hat Lukas Severinghaus die Bibliothek BraccioV2 entworfen, die zusätzliche Funktionalität bietet, sich aber auf die aktuelleren Braccio-Kits mit mindestens Version 4 des Braccio-Shield beschränkt. Zum Beispiel gibt es dort Routinen zur Kalibrierung der Gelenke (Min-, Max-, Mittelposition) und Funktionen für die relative Bewegung des Roboterarms.
Open Source Hardware
Der Braccio-Roboterarm gehört zu den Vertretern der Open Source Hardware. Seine CAD-Dateien stehen auf einer Webseite zum Herunterladen zur Verfügung. Interessenten können daher selbst Hand anlegen, also etwa robustere Teile bauen, das Modell skalieren, leistungsstärkere Motoren integrieren, und einen eigenen Braccio de la casa entwerfen.
Auf den bekannten Seiten mit 3D-Druckmodellen lassen sich wie bereits erwähnt weitere Perlen aufspüren. Der bekannte YouTuber 3D Printing Professor hat einen Controller entworfen (siehe hier), der die Bedienung des Braccio über zwei Mini-Joysticks ermöglicht. Die Mathematik für die Steuerung aller Mittelmotoren bezüglich der Y-Achse implementiert dabei ein Arduino Sketch.
Braccio Simulation
Will Stedden beschreibt auf seiner Webseite eine Simulation des Braccio mit ROS MoveIt und dem Physiksimulator Gazebo. Der Quellcode hierzu findet sich auf GitHub. Interessant in dem kleinen Artikel finde ich vor allem, dass Will Stedden auch auf Einschränkungen des Braccio eingeht, etwa „wie lässt sich der Braccio-Roboterarm genau auf eine Position x bewegen“, was sich durchaus als nichttrivial erweist.
Fazit
Das Braccio Tinkerkit bietet einen Roboterarm für Maker, dessen Aufbau und Programmierung eine ganze Menge Spaß macht. Damit lassen sich einige Grundlagen über solche Arme erlernen, speziell über die koordinierte Ansteuerung von (Servo-)Motoren per Microcontroller. Natürlich ersetzt ein solcher Baukasten nicht das Erlernen von mathematischen und physikalischen Grundlagen der Robotik. Spätestens, wenn Maker:innen einen Roboterarm mit herausfordernderen Eigenschaften entwickeln möchten, dessen Abläufe eine genaue vorherige Planung benötigen, bedarf es eines ingenieurmäßigen Vorgehens sowie leistungsstärkerer Materialien und Motoren. Aber dafür sind Roboterarme für wenige Hundert Euro auch nicht gedacht. Die gehören eher zum Edutainment und sind dementsprechend als Spielzeuge mit Lerncharakter zu betrachten.
NatĂĽrlich ist der Braccio nur ein Beispiel. Wer jetzt auf den Geschmack gekommen ist und sich fĂĽr 3D Druck begeistert, findet auf Thingiverse komplette Projekte fĂĽr Roboterarme zum Nachdrucken beziehungsweise Nachbauen, etwa:
- EEZYbotARM MK2
- BCN3D Moveo
- oder das voll bewegliche Modell eines Kuka-Roboterarms