Wie programmiert man Dynamixel Servomotoren mit RoboPlus

Dynamixel Servomotoren von Robotis werden weltweit als die besten Servomotoren für Konsumenten angesehen, da diese die gute Leistungen, eine stabile Konstruktion, hohe Präzision und andere Funktionen bieten. Robotis bietet eine große Auswahl an Servomotoren, welche an Leistung herausstehen, im Bezug auf Drehmoment und Benutzung der verschiedenen Funktionen.

Dieses Tutorial wird Ihnen zeigen, was alles notwendig ist, um Ihre Servomotoren zu steuern. Dabei werden folgende Schritte behandelt:

  • Verbindung der Servomotoren
  • Programmierung
  • Übertragung von Programmen auf den Regler
  • Ausgabe von Daten

 

In diesem Beispiel, wird ein CM-700 Regler und ein Dynamixel RX-28 Servomotor verwendet. Die Programmiermethode für andere Regler von Robotis (CM-5, CM-510, CM-530) funktioniert auf die gleiche Weise. Ebenso ändert sich nichts durch die Baureihe (AX, RX, EX und MX) der Servos. Um einen Servomotor zu steuern, benötigt man:

  • Einen oder mehrer Dynamixel Servomotoren und deren Verbindungskabel
  • Einen Regler und ein PC Verbindungskabel (LN-101 USB Schnittstellenkabel für den CM-700, Bioloid BSC-10 Kabel oder andere mit einem USB2Dynamixel Schnittstellenkabel, sollte der Computer keinen seriellen Port haben)
  • Eine regulierte Versorgungsspannung oder Batterie (oder ein SMPS Kabel (12V,5A), abhängig vom Regler)
  • Einen Computer mit einer RoboPlus Software.

Schritt 1: Verbindung des Dynamixel Servos mit der Spannungsversorgung

Verbinden Sie den Dynamixel Servomotor mit dem Regler (Servomotoren der Baureihe AX und MX-xxT verwenden eine TTL Kommunikation und daher 3-polige Kabel, wohingegen Motoren der RX, EX und MX-xxR Reihe das RS485 Protokoll verwenden und daher einer 4-polige Verbindung benötigen).

Schalten Sie das Netzteil für den Dynamixle Regler ein: Ein LED leuchtet auf und andere beginnen zu blinken. Das LED auf der Rückseite der Servomotoren blinkt auch kurz auf (kürzer als eine Sekunde), sobald die Versorgungspannung eingeschalten wird.

Verbinden Sie den Regler mit Ihrem Computer. Das Gerät sollte automatisch erkannt werden. Sollte das nicht der Fall sein, sehen sie hier nach.

Schritt 2: Detektion der Servomotoren und des Reglers

Starten Sie RoboPlus, die grafische und freie Software von Robotis, zur Steuerung und Programmierung von Dynamixel Servomotoren. Im Willkommensbildschirm von RoboPlus (siehe unten), wählen Sie "RoboPlus Manger" aus.

RoboPlus, die freie Software von Robotis um einfach Dynamixel Servomotoren zu steuern und kontrollieren.

Drücken Sie auf Ihrem Dynmixelregler den Taster "Manage" (CM-5, CM-510 und CM-530) oder "Mon" (CM-700), bis eine LED zu blinken anfängt.

In Ihrem Softwarefenster wählen Sie oben links den COM Port aus, mit dem der Regler verbunden ist, oder sie wählen "Auto Search". Dann klicken Sie auf "Connect".

RoboPlus Manager detektiert, welche Regler und Dynamixel Servos angeschlossen sind

Sollte die Verbindung fehlschlagen, liegt wurde vermutlich der falsche COM Port ausgewählt. Um den richtigen herauszufinden, öffnen sie Ihren Gerätemanager" und sehen nach welchen Port Ihr Regler verwendet. Das Gerät wird "USB Serial Port" genannt und ist unter "Anschlüsse (COM und LPT)" zu finden.

Bei einer funktionierenden Verbindung wird RoboPlus den Regler und alle angeschlossenen Servomotoren erkennen.

RoboPlus Manager detektiert, welche Regler und Dynamixel Servos angeschlossen sind

Beachten Sie die ID Ihrer Dynamixel Servo, denn mit dieser können Sie die Servos kontrollieren. Außerdem haben Sie damit Zugriff auf alle Variablen, welche diesen Servo und den Regler betreffen. Ab diesem Punkt können Sie entscheiden, ob Sie den Servomotor im Gelenksmodus ("Joint"), z.B. für Roboterarme, oder im Radmodus ("Wheel") betreiben wollen. Im Radmodus erhalten Sie eine kontinuierliche Roatation, z.B. für Räder von mobilen Robotern.

RoboPlus Manager kann alle Dynamixel Servos individuell steuern

Schritt 3: Programmierung eines Tasks für Ihren Dynamixel Servo

Nun können Sie den RoboPlus Manager schließen und RoboPlus Task öffnen.

Drücken Sie den "Mode" Taster auf dem Regler bis das "Play" LED zu blinken beginnt. Wählen Sie in RoboPlus den richtigen Regler und COM-Port aus.

Mit RoboPlus können Sie Progamme erstellen, um ihre Servomotoren zu steuern

Als Erstes versuchen wir nun einfach die Position des Servos jede Sekunde auszugeben.

Klicken Sie in die erste Zeile des Programmes. Es wird ein Fenster aufgehen, welches Ihnen eine Auswahl von Kommandos zur Verfügung stellt. Klicken Sie auf "Start Program".

Verfügbare Kommandos in RoboPlus

Erste Programmierschritte in RoboPlus

Ihr ganzes Programm muss in geschwungenen Klammern "{}" sein. Doppelklicken Sie auf eine Linie zwischen den geschwungenen Klammern (z.B. Zeile 3), und wählen "Load (assignment value)"

Zuweisen von Werten in RoboPlus

Nun müssen den beiden Fragezeichen Werte zugewiesen werden.

Klicken Sie auf das Erste. Im Pop-up Fenster wählen Sie nun "Dynamixel/Actuator" und "Torque Enable". Überprüfen Sie, ob die ID im Fenster oben mit dem Servomotor übereinstimmt.

Regelkreis für Dynamixel Servomotoren in RoboPlus.

Dann klicken Sie auf das zweite Fragezeichen. Bei "Constant Vaue" wählen Sie "False" aus.

Als nächsten erzeugen sie eine neue leere Zeile, durch die Leertaste oder einen Rechtsklick.

Ausschalten der Drehmomentkontrolle in RoboPlus

Nun benötigen wir eine unendliche Schleife. Dazu klicken Sie auf die neue leere Zeile und wählen "Endless loop (while(1))". Ein neuer Block erscheint, welcher sich wiederrum in geschwungenen Klammern befindet. Der Code in dieser Klammer, ist eine Schleife, er wird unendlich oft ausgeführt.

Nun wollen wir die Position des Servo ausgeben in diesem Block ausgeben. Wir benötigen wir den Befehl "Load (assignment value)". Im ersten Fragezeichen wählen Sie, "Print with Line" in "Controller". Für das Zweite wählen Sie "Present Position" in "Dynamixel/Actuator". "Print with Line" wird verwendet, um eine Zahl zwischen -32767 und +32767 darzustellen, egal woher diese kommt.

Anzeigen der Position eines Servos mit RoboPlus von Robotis

Zu guter Letzt sollte noch etwas Zeit verstreichen zwischen den einzelen Auslesevorgängen der Servoposition. Daher werden wir eine Wartezeit von einer Sekunde zwischen jeder Messung einführen. Dafür brauchen wir eine Art Stoppuhr, welche den Auslesevorgang startet, wenn die Uhr bei Null ist.

Erstellen Sie eine neue leere Zeile in der unendlich Schleife und erstellen Sie wieder einen Wert. Diesmal müssen Sie allerdings einen "Timer value" in "Constant value" mit dem Wert 10 und geben diesen einem "Timer" in "Controller".Sie können den berechneten Wert sofort sehen.

Hinzufügen eines Timers für Dynamixel Servos mit RoboPlus Tasks

als nächstes erzeugen Sie eine neue Zeile und wählen den Befehl "Conditional Stand". Weisen Sie die Werte, wie unten, zu, um zu warten, dass der Timer 0 erreicht (Achtung: 0 ist ein "Timer value").

Sie können den Syntax Ihres Codes überprüfen, indem Sie auf das kleine rote Symbol mit dem Name "Rule Check" drücken. Das Debug Panel im unteren Teil des Fensters wird Ihnen die Anzahl der Variablen, die Größe des Programmes und alle Fehler anzeigen.

Finaler Code für Dynamixel Servos mit Fehlerüberprüfung in RoboPlus Task

Das komplette Programm können sie hier herunterladen.

Schritt 4: Laden und ausführen des Programmes

Nun werden wir das Programm auf den Regler übertragen und überprüfen, ob dieses korrekt ausgeführt wird.

Klicken Sie auf den grünen Pfeil um das Programm zu übertragen. Wenn die Übetragung ("Download") fertig ist, drücken Sie auf "View output of programm".

Übertragung eines Programmes auf den Regler

Dies öffnet ein neues Fenster mit dem Name "Program Output Monitor":

Program output monitor zu Überprüfung laufender Programme

Alles was nun noch zu tun ist, ist den "Start" Taster auf Ihrem Regler zu drücken. Das LED "Play" leuchtet nun permanent, während der Ausführung eines Programmes. Die ersten Zeilen enthalten die Struktur Ihres Roboters.

Die Nummer, die Sie ausgewählt haben, wird angezeigt.

Ausführung des Programmes zur Steuerung von Dyanmixel Servos

Da sich das Programm in einer Endlosschleife befindet, schalten Sie einfach den Regler aus, um das Programm zu stoppen. Möchten Sie das Programm wieder starten, können sie den Vorgang mit"Start wiederolen.

Wenn Sie nun einen tieferen Einblick in die Programmierung von Dynamixel Servomotoren erhalten möchten, können Sie mit dem 2. Teil dieses Tutorials (noch in Englisch) fortfahren. Dort erfahren Sie ein wenig komplexere Programmierungen, wie Sie Bewegungsabläufe für Servos progammieren und RoboPlus Motion verwenden.

Verwendung der USB2Dynamixel Schnittstelle

Der USB2Dynamixel Adapter kann entweder als USB-Serielle Schnittstelle oder direkt zur Steuerung von Servos verwendet werden.

Für eine serielle Schnittstelle muss der Schalter auf "RS232" stehen, damit Sie einen CM-510 Regler anschließen können. Der CM-530 hat bereits eine USB Schnitstelle, welche direkt verwendet werden kann um Programme vom Computer zu übertragen, genau wie auch der CM-700.

Um direkt mit den Dynamixel Servos zu kommunizieren, stellen Sie den USB2Dynamixel Adapter auf "RS485" für Servo Motoren der Baureihe RX, EX und MX-xxR oder auf "TTL" für AX und MX-xxT Servomotoren.

Versorgung der Dynamixel Servomotoren bei Verwendung des USB2Dynamixel Adapters

Beachten sie das der USB2Dynamixel Adapter nicht verwendet werden kann, um die Servomotoren zu Versorgen, daher muss die Versorgung über den zweiten Stecker des letzten Servomotors der Kette erfolgen, oder zwischen dem Adapter und dem ersten Servo.

Pins, um Servomotoren, bei verwendung des USB2Dynamixel, zu versorgen

Pins, um Servomotoren, bei verwendung des USB2Dynamixel, zu versorgen

Versorgung von Servomotoren bei Verwendung des USB2Dynamixel Adapters

Versorgung von Servomotoren bei Verwendung des USB2Dynamixel Adapters

Verwendung des USB2Dynamixel Adapter mit RoboPlus, um Dynamixel Servomotoren zu kontrollieren

Ist einmal der Adapter und die Servomotoren angeschlossen, kann der "Dynamixel Wizard" von RoboPlus verwendet werden.

Dynamixel Wizard von RoboPlus

Klicken Sie auf den "Connect" Taster um den Wizard zu starten und alle verbundenen Geräte zu suchen.

Verbindung des USB2Dynmixel mit RoboPlus Wizard

In diesem Fenster können auch direkt Einstellungen des Servomotors vorgenommen werden. Z.B.: können Sie den Servomotor bewegen, indem Sie seine "Goal Position" - Zielposition verändern.

Direkte Steuerung von Dynamixel Servomotoren über USB2Dynamixel

Sollten Sie keinen Regler verwenden, können Sie die Servo zwar steuern, allerdings keine Programme von Ihrem Computer auf den Regler laden, um Bewegungen der Servos zu automatisieren.

 

Generation Robots (http://www.generationrobots.com)

Jede Verwendung und Weitergabe ist nicht ohne Genehmigung gestattet.