Die Robotik zählt zu den großen Profiteuren der generativen KI. Fortschritte in der KI-gestützten Wahrnehmung, Planung und Interaktion ermöglichen es humanoiden Robotern, zunehmend komplexe Aufgaben in Industrie, Dienstleistung und perspektivisch auch im privaten Umfeld zu übernehmen. Systeme wie Boston Dynamics, Tesla (Optimus) oder Agility Robotics verdeutlichen die Dynamik dieses Technologiefelds.
Ziele:
Am Beispiel des Dynamixel AX-12 von robotis vermittelt dieses Tutorium ein grundlegendes technisches Verständnis für Servoantriebe (also den “Muskeln”) in robotischen Systemen.
Der Antrieb bildet die Grundlage für Mehrgelenksysteme, Koordinierte Bewegungsplanung, KI-gestützte Regelung, und adaptive Kraftregelung. Gerade im Kontext generativer KI entstehen neue Ansätze zur Bewegungsoptimierung, Simulation und autonomen Aufgabenplanung. Ohne ein physikalisches Verständnis der „Muskeln“ bleibt jedoch jede Hochleistungs-KI wirkungslos. Das Tutorial schafft damit die Grundlage für das Verständnis komplexerer Robotersysteme – von Industrierobotern bis hin zu humanoiden Assistenzsystemen. In einem Folgebeitrag werden wir das klassische Lernen (Teaching) von Bewegungsabläufen thematisieren.

Servomotoren sind kompakte elektromechanische Aktoren, die eine präzise Positionsregelung ermöglichen. Im Unterschied zu einfachen Gleichstrommotoren bewegen sie sich nicht nur frei drehend, sondern nehmen eine definierte Winkelposition ein und halten diese aktiv gegen äußere Kräfte. Sie erzeugen Drehmoment in Gelenken und setzen Steuerbefehle in kontrollierte Bewegungen um. Ein Servo ist ein geschlossen geregeltes System (Closed-Loop-System). Der Dynamixel AX-12A gehört zu den sogenannten „Smart Servos“. Im Vergleich zu einfachen RC-Servos verfügt er über erweiterte Kommunikations- und Diagnosefunktionen.
DC-Motor: Im Inneren arbeitet ein Gleichstrommotor, der die eigentliche Rotationsbewegung erzeugt. Die Drehzahl des Motors ist hoch, das Drehmoment jedoch zunächst gering – daher ist ein Getriebe erforderlich. Betriebsspannung: ca. 9–12 V
Metallgetriebe: Das integrierte Untersetzungsgetriebe reduziert die Drehzahl, erhöht das Drehmoment, ermöglicht kontrollierte Bewegungen im Bereich von 0–300°. Das Getriebe ist mechanisch besonders beansprucht, da hier die Kräfte übertragen werden. Drehmoment: ca. 15 kg·cm bei 12 V
Positionssensor: Ein integrierter Sensor (Potentiometer) misst die aktuelle Winkelposition der Abtriebsachse. Diese Information wird kontinuierlich an die interne Regelung weitergegeben.
Mikrocontroller und Regelung: Im Gegensatz zu einfachen Servos besitzt der AX-12A einen integrierten Mikrocontroller. Dieser verarbeitet Soll-Positionsdaten, regelt Geschwindigkeit und Beschleunigung, überwacht Spannung und Temperatur und ermöglicht die Rückmeldung von Statusdaten. Dadurch wird der Servo zu einem intelligenten Aktor mit bidirektionaler Kommunikation.
Digitale Schnittstelle: Der AX-12A wird nicht nur über ein PWM-Signal gesteuert, sondern über eine serielle TTL-Kommunikation im Daisy-Chain-Bus-System. Die Kabelführung des Busssystems ("das Nervensystem") vereinfacht sich dramatisch. Das bedeutet: mehrere Servos können hintereinander geschaltet werden, jeder Servo besitzt eine eindeutige ID, Position, Geschwindigkeit, Temperatur und Last können ausgelesen werden. Wir verwenden den waveshare Adapter der Waveshare Servos zum Anschluss an Serial2 der Grove-Buchse. (Achtung: andere Pinbelegung der Servoanschlüsse).


Winkel vorgeben
In einem ersten Experiment verbinden wir den ESP32 gemäß Schaltplan mit einem Servo (hier ID 1) und testen die Funktion. Dazu verwenden wir den Dynamixel Baustein aus dem Werkzeugkasten für “Externe Interfaces”. Zur Vorgabe des Drehwinkels (zwischen 0 und 300 Grad) nutzen wir unseren Drehencoder. Nach Aufwachen sind die Servos “kraftlos”, d.h. der Sollwert für den Winkel wird noch nicht automatisch angefahren. Mittels “Torque enable” wird das Servo auf “on” geschaltet. Mit diesem einfachen Aufbau haben wir bereits einen fernsteuerbaren Servo realisiert, der den Drehbewegungen des Encoders folgt.

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an VCRP/Panopto übermittelt. Weitere Informationen dazu finden Sie hier.

Rückmeldung der Position und des Drehmomentes
Dank digitaler Kommunikation kann unser AX-12 Servo nicht nur Sollwerte für die Position entgegennehmen, sondern auch Infomationen über den aktuellen Zustand zurückliefern. So kann die Belastung Rückschlüsse auf das Gewicht einer gehobenen Last liefern, oder Hindernisse detektieren. Auch die Motortemperatur liefert wertvolle Hinweise über die Belastung. Im Beispiel geben wir den Istwert der Position und die aktuelle Belastung (Drehmoment in % vom Maximum) zyklisch auf dem OLED-Display aus.

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an VCRP/Panopto übermittelt. Weitere Informationen dazu finden Sie hier.

Multitasking - die Fähigkeit viele Dinge gleichzeitig zu tun
Die Ansteuerung unseres Servos haben wir nun im Griff. Wenn es aber darum geht, parallel zur Bewegung auch mit der Umgebung zu interagieren und auf plötzliche Ereignisse schnell zu reagieren, sind neue Multitasking-Fähigkeiten nötig. Das sind typische Aufgaben für ein Echtzeit-Betriebssystem wie das quelloffene FreeRTOS. Glücklicherweise hat die IoT2-Werkstatt entsprechende Features bereits implementiert. Im Werkzeugkasten “ESP32” findet sich ganz unten ein schwarzer Programmblock mit setup und loop - so wie wir ihn bereits vom Hauptprogramm in orange kennen. Damit bauen wir quasi ein weiteres Arduino-Programm (eine Task), die fortan parallel zu unserer bekannten Loop ausgeführt wird. Da der ESP32 tatsächlich zwei CPU-Kerne besitzt, können die beiden Tasks auch wirklich gleichzeitig laufen. Aus der Sicht der Informatik entstehen so nebenläufige Prozesse, die natürlich unter Umständen auch per Semaphore koordiniert werden müssen. Aber das ist dann ein Thema für eine Spezialvorlesung. In unserem Beispiel nutzen die beiden Tasks keine gemeinsame Ressourcen (I2C-Bus für Sensoren oder OLED zur Anzeige), so dass wir auf Koordination verzichten können. Task 2 (schwarz) ist für die Neopixel zuständig, blinkt zylisch in blau und überwacht den Belastungszustands unseres Servos. Ist der Load über 20 %, dann signalisiert der linke Neopixel den Belastungszustand in rot.

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an VCRP/Panopto übermittelt. Weitere Informationen dazu finden Sie hier.

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an VCRP/Panopto übermittelt. Weitere Informationen dazu finden Sie hier.
Im Tutorial haben wir die Ansteuerung eines Servos kennengelernt. Dies ist unser erster Schritt, um auch komplexe mechatronische Automatisierungsaufgaben zu lösen. Zum Beispiel könnte unser Servo das Schultergelenk eines humanoiden Roboters bilden und den Arm bewegen. Hier wissen wir aus eigener Erfahrung, dass das notwenige Drehmoment mit der Armlänge zunimmt. Jeder hat schon einmal versucht, einen schweren Gegenstand am langen Arm zu halten. Also eine klassische Aufgabe für die obige Drehmomentmessung.
Sie verlassen die offizielle Website der Hochschule Trier