ROS Node Raspberry Pi Dynamixel Servo Controllerboard

2018-06-22 09:31:00 / Anleitungen / Kommentare 2
ROS Node Raspberry Pi Dynamixel Servo Controllerboard - ROS Node & Arduino Firmware DSC | MyBotShop.de

Das MYBOTSHOP Raspberry Pi Dynamixel Servo Controllerboard (DSC), ist wie der Name bereits impliziert, für die Steuerung von Dynamixel Servomotoren mittels Raspberry Pi konzipiert worden. Das Board verfügt über eine leistungsstarke AT644P-20AU uC, einem integrierten Texas Instruments Tri State Buffer für die Half Duplex Schnisttelle und einem integrierten Step Down Modul zur Versorgung aller Verbraucher mit nur einer Spannungsquelle. Weitere Informationen zur Handhabung und Erstinbetriebnahme können unter folgendem Link eingesehen werden:

German Quick Start Guide
English Quick Start Guide

In diesem Beitrag möchten wir uns ausschließlich der Integration des DSC unter ROS (Robot Operating System) widmen.

Auflistung aller benötigten Komponenten

Neben dem MYBOTSHOP DSC werden ebenfalls folgende Komponenten benötigt

  • Raspberry Pi oder PC mit FTDI UART USB Konverter
  • 7,4 - 11,1V Spannungsquelle (Labornetzteil oder 2-3S Lipo Akku)
  • Dynamixel Servomotor mit Half Duplex Schnittstelle (z.B. AX12A, AX18A, XM430-W210-T, usw.)
  • Dynamixel 3 Pin Kabel / Bei Verwendung der Dynamixel X-Serie wird ein Adapterkabel benötigt

Download der Softwarepakete

Wir haben alle Softwarepakete sowohl auf GitHub als auch auf unserem Server abgelegt. Diese Repositories sind in zwei Hauptordner unterteilt. Der erste umfasst alle Arduino seitigen Anpassungen, wie z.B. die Einbindung des DSC unter der Arduino IDE, als auch die ROS Firmware, und der zweite den ROS Node.

Sowohl der Arduino Ordner als auch der ROS Ordner muss heruntergeladen, und die zip Verzeichnisse entpackt werden. Das servo_board muss unter der catkin_ws/src entpackt bzw. eingefügt werden.

Vorbereitungen zur Inbetriebnahme

Wir möchten vor Auführung dieses Schrittes, allen Leser/Nutzer bitten, unseren Quick Start Guide ausführlich zu lesen um Defekte durch falsche Handhabung vorzubeugen. Darüber hinaus möchten wir ebenfalls auf die im Quick Start Guide aufgeführte Gefahrenhinweise aufmerksam machen, und bitten, diese zu Kenntnis zu nehmen.

Da herkömmliche Computer über keine UART Schnittstelle verfügen, empfehlen wir die Verwendung eines FTDI Konverters, welcher über die untere Pinleiste des DSC mit dem Computer verbunden wird. Bei Verwendung eines Raspberry Pi's muss das DSC lediglich auf den GPIO Header gesteckt werden.

Arduino IDE

Um sowohl den Upload des Arduino Sketches (ROS Firmware) als auch die Kompilierung aller benötigten Arduino Bibliotheken vollziehen zu können, wird die vollständige Arduino IDE benötigt. Die Pakete bitte über die Arduino Downloadseite herunterladen und nicht über den folgenden Befehl installieren: apt-get install Arduino
Sollte nach dem Start der Arduino IDE kein Boardmanager auffindbar sein, so wurde nicht die richtige Arduino IDE installiert.

Nachfolgend müssen noch die rosserial packages, zur Kommunikation zwischen Raspberry Pi / Computer und MYBOTSHOP DSC, mit folgenden befehlen installiert werden

  • sudo apt-get install ros-[VERSION]-rosserial-arduino
  • sudo apt-get install ros-[VERSION]-rosserial

Erstellung des Workspaces

  • mkdir -p ~/catkin_ws/src
  • cd ~/catkin_ws/src
  • git clone https://www.github.com/ros-drivers/rosserial.git
  • cd
  • catkin_make

Mit den nachfolgenden Befehlen werden die Arduino Bibliotheken generiert

  • cd Sketchbook/libraries
  • rm -rf ros_lib
  • rosrun rosserial_arduino make_libraries.py .

Nun wurde Arduino-Seitig alle Vorkehrungen getroffen um das MYBOTSHOP Dynamixel Servo Controllerboard (DSC) in der Arduino IDE einzubinden, die ROS Firmware zu kompilieren und hochzuladen. Wie dies vollzogen wird, kann im Quick Start Guide nachgelesen werden.

ROS Node

Nachdem nun Arduino-Seitig alles eingerichtet wurde, kann das DSC ROS package kompiliert und gestartet werden. Dazu das ROS package unter catkin_ws/src entpacken und hochladen.

  • cd catkin_ws
  • catkin_make

Nun ist das DSC einsatzbereit und die Dynamixel Servomotoren können angeschlossen werden.

Wenn ROS nicht in der Startroutine angelegt wurde, muss dies mit roscore gestartet werden. Die nachfolgenden Befehle mit  Kommentaren zeigen das Leistungsspektrum auf:

  • roslaunch servo_board dsc.launch       //Startet ROS Node und baut je nach Version ebenfalls die UART Verbindung auf
  • rosrun rosserial_python serial_node.py /dev/ttyAMA0 //Versionsabhängig muss mit folgendem Befehl ebenfalls die Verbindung aufgebaut werden
  • rostiopic list         //Darstellung des gesamten Befehls.-/Funktionsumfangs
  • rostopic echo /mydata       //Position, Temperatur und anliegende Spannung aller angeschlossenen Servomotoren anzeigen
  • rostopic hz /mydata       //Ausführungszeit der Subscriber anzeigen lassen
  • rostopic /j1/command std_msgs/Float64 [Position]        //Servomotoren ansteuern

Wie in dem darüberliegenden Screenshot dargestellt erfolgt die Paramterübergabe mit 9 bis 10Hz.

Config/Con.yaml

Eine weitere Besonderheit unseres DSC gegenüber anderen DYNAMIXEL Controller ist unser config file (servo_board/config/con.yaml) welcher die Möglichkeit bietet alle Servos in Gruppen zu unterteilen. Der nachfolgende Screenshot stellt diese Datei dar. Wie man sehen kann, wurden bei unserem Beispiel drei Klassen angelegt (j1,j2,j3) Die Namen der Klassen können natürlich Individuell vergeben werden, so können diese auch (Unterarm, Oberarm, Schulter) heißen.
Jeder Klasse sind diverse Servomotoren zugeordnet. Die Anzahl der zuzuordnenen Servomotoren kann nach belieben und Anwendungsbereich angepasst werden.

Darüber hinaus führt die Config Datei die Zeile: use_lib: "false" an, welche die Möglichkeit bietet die Kommunikation über unseren Node zu nutzen. Wenn ein eigener Node programmiert bzw. verwendet werden soll, so muss die Funktion auf true gesetzt werden: use_lib: "true"

Downloads & Verweise


Kommentare 2
Einträge insgesamt: 2

Daniel K., 15.09.19 11:49

Hallo, der DSC Node sollte auch problemlos auf ROS Melodic compiliert und ausgeführt werden können. Selbst ausprobiert haben wir es bislang jedoch nicht.

Renzi W., 14.09.19 18:40

Hallo, ich möchte fragen, ob dieses Board auch geeignet für ROS Melodic ist?

News

Unsere Instagram FEEDS

Social Media

Folgen Sie uns doch auch auf eine der folgenden Social Media Kanälen: