Mit Hilfe dieses Tutorials können sich Anfänger mit Dynamixel vertraut machen und lernen, wie man die Parameter seines Servomotors setzt, um ihn zu kontrollieren.
Level des Tutorials: ANFÄNGER
1. Einleitung
Zuerst müssen wir die Grundprinzipien von Dynamixel verstehen. Dynamixel ist ein Servomotor, den der Anwender leicht nutzen kann, indem er bestimmte Parameter über ROS eingibt, aber darauf wird später noch genauer eingegangen. Außerdem lässt sich unser Dynamixel Servomotor über drei Wege steuern:
- Joint Mode
- Wheel Mode
- Multi-turn Mode
Es ist wichtig zu wissen, dass wir jedes Mal, wenn wir einen Modus konfigurieren wollen, den Controller Manager laufen lassen. In diesem Tutorial finden Sie heraus, wie.
2. Den Servomotor pingen
Mit einem Python Skript ist es sehr einfach, den Motor zu pingen. Das Interface ist sehr benutzerfreundlich, wie Sie unten sehen können. Hier finden Sie das komplette Paket .
Wenn wir zum Beispiel einen
Dynamixel Servomotor
an unseren Computer anschließen und wir, angenommen, weder die Identifikation noch die Symbolrate (Baudrate) wissen, würden wir alle Baudraten und Identifikationen (IDs) auswählen (von 1 bis 10).
In diesem Fall ist der gefundene Motor ein MX-28 mit einer Symbolrate von 57600 und der ID 5. Diese Daten sind extrem wichtig für alles, was wir mit dem Dynamixel machen wollen.
3. Joint Mode
Um zu verstehen, was ein Joint ist, stellen Sie sich vor, dass Sie den Arm eines Roboters kontrollieren wollen, dafür drehen Sie ihn um einen bestimmten Winkel und dann sollte der Arm im vorgegebenen Winkel bleiben, dafür sorgt ein Joint. Den Dynamixel im Joint Mode zu konfigurieren, ist die einfachste Einstellung, die Sie vornehmen können. Wie Sie das schaffen, sehen Sie hier .
4. Wheel Mode
Um im Wheel Mode arbeiten zu können, müssen wir nach folgendem Paket in unserem Endgerät suchen:
$ rosrun dynamixel_drivers set_servo_config.py
Im Paket “dynamixel_drivers” ist das Python Skript “set_servo_config.py” enthalten. Das ist das Skript, mit dem man die Parameter auf dem Dynamixel festlegt. Wenn wir den vorherigen Befehl ausführen, sehen wir in etwa folgendes auf unserem Endgerät:
Options:
-h, –help show this help message and exit
-p PORT, –port=PORT motors of specified controllers are connected to PORT
[default: /dev/ttyUSB0]
-b BAUD, –baud=BAUD connection to serial port will be established at BAUD
bps [default: 1000000]
-r RATE, –baud-rate=RATE
set servo motor communication speed
-d DELAY, –return-delay=DELAY
set servo motor return packet delay time
–cw-angle-limit=CW_ANGLE
set servo motor CW angle limit
–ccw-angle-limit=CCW_ANGLE
set servo motor CCW angle limit
–min-voltage-limit=MIN_VOLTAGE
set servo motor minimum voltage limit
–max-voltage-limit=MAX_VOLTAGE
set servo motor maximum voltage limit
Es gibt zahlreiche Parameter, aber wir wollen unseren Dynamixel einfach nur in den Wheel Mode bringen. Jetzt geben wir folgenden Befehl:
$ rosrun dynamixel_drivers set_servo_config.py 5 –baud=57600 –cw-angle-limit=0
–ccw-angle-limit=0
Der erste Parameter, “5”, bezieht sich auf die Identifikation des Dynamixel, hier sollten Sie also die ID Ihres Dynamixels sehen. Der zweite Parameter ist die Symbolrate, davon sind jede Menge verfügbar, deshalb sollten Sie diese auch vorher überprüfen. Zwei neue Parameter hier sind “–cw-angle-limit” und “–ccw-angle-limit”. CW ist kurz für clockwise, also im Uhrzeigersinn und CCW die Abkürzung für counterclockwise, also gegen den Uhrzeigersinn. Es ist sinnvoll, die Grenzen für CW und CCW auf 0 setzen, wenn sich unser Motor voll drehen soll.
5. Multi-turn Mode
Mit diesem Modus erhält der Dynamixel ein größeres Ziel als 4095 (4095 ist eine volle Drehung). Erwähnenswert ist, dass der Multi-turn Mode nur für bestimmte Servomotoren von Dynamixel verfügbar ist. Überprüfen Sie die Betriebsanleitung, bevor Sie irgendetwas ausprobieren. Sie finden das Tutorial für diesen Modus hier .
6. Ein einfacher Weg
Statt uns das Leben schwer zu machen, könnten wir einfach das Skript oben verwenden, mit dem wir Dynamixel zudem in jeden beliebigen Modus setzen können, wie z.B. die Verstärkung, neue Symbolraten, IDs und das maximale Drehmoment festlegen.