Inbetriebnahme eines UR-10 Roboters mit ROS

Aus HSHL Mechatronik
Version vom 8. Dezember 2021, 10:05 Uhr von Mirekgoebel (Diskussion | Beiträge) (→‎Schritt für Schritt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Zurück zum Hauptartikel

Autor: Johannes Schäfer


Einleitung

Dieser Artikel soll als Anleitung dienen, um einen UR-10 Roboter mit Hilfe des Robot Operating Systems in Betrieb zu nehmen.

Was ist ROS?

Das ROS (Robot Operating System) stellt Bibliotheken und Werkzeuge zur Verfügung, welche Softwareentwicklern helfen Roboteranwendungen zu erstellen. Hardware Abstraktion, Gerätetreiber, Bibliotheken, Visualisierungen, Nachrichtenvermittlung, Packetverwaltung und andere Komponenten sind vorhanden. ROS fungiert dabei als Middleware, um die Kommunikation zwischen dem Roboter und einzelnen Nodes(Programmen), welche auf dem ROS laufen, zu ermöglichen. ROS ist unter der Open Source BSD Lizenz veröffentlicht.

Voraussetzungen

  • Rechner mit mindestens Ubuntu 18.04 und Internetanbindung
  • Polyscope 3.7 sowie zugehörige Firmware ist auf dem CB3-Controller des UR-10 installiert
  • Vorkenntnisse im Umgang mit der Kommandozeile in Linux

Update von Polyscope

Falls Polyscope 3.7 noch nicht installiert ist kann dies mit Hilfe der folgenden Datei geschehen. Dies muss auf einen USB-Stick kopiert werden. Dieser wird an der rechten Seite des CB3 Panels eingesteckt. In den Einstellungen des Roboters kann dann unter Roboter aktualiseren das Update gefunden und durchgeführt werden. Wichtig! Vorher sollte man unbedingt ein Backup von allen Programmen und Konfigurationsdateien machen.

Installation von ROS

Um den aktuellen Treiber für den UR-10 zu verwenden wird ROS Melodic benötigt. Die Installation ist hier beschrieben. Nach Schritt 1.4 kann man mit $roscore den Kern des Systems einmal starten und überprüfen, ob die Installation erfolgreich war. Hat dies geklappt sollte dort started core service [/rosout] im Terminal ausgegeben werden. Der Treiber funktioniert ebenfalls mit ROS Kinetic und Noetic. Um jedoch auch die Unterstützung anderer Packages zu gewährleisten ist ROS Melodic im Moment die beste Wahl.

Installation des Universal Robots Treibers

Um diesen Treiber nutzen zu können muss, wie oben bereits beschrieben, mindestens Polyscope 3.7 auf dem CB3 Controller installiert sein. Die Installation des Treiber wird in dieser Readme-Datei erklärt. Auf den All-Source-Build ist nach Möglichkeit zu verzichten. Man sollte also die erste Option(die Installation über Binary Packages) bevorzugen. Es existiert ein Paket namens ur_gazebo, welches Funktionalitäten zur Simulation der UR-Roboter enthält. Diese Funktionalitäten sind jedoch in dem ur_robot_driver Package bereits enthalten, sodass dessen Installation ausreicht.

Einbindung der URCap-Datei

Um den UR-10 auch extern ansteuern zu können muss auf dem CB3-Controller eine URCap-Datei eingebunden werden, welche später auf dem Controller einfach als Bestandteil eines Programms aufgerufen werden kann. Wichtig ist, dass die Polyscopeversion nicht zu neu ist, da dadurch Fehler auftreten können. Die Einbindung der URCap-Datei wird hier erklärt. Falls bei der Installation des Universal_Robots_ROS_Driver ein Fehler auftritt, kann es sein dass je nach Fehlermeldung die Clientlibrary nachgeladen werden muss. Dies geht mit

git clone https://github.com/UniversalRobots/Universal_Robots_Client_Library


Installation des RT-Kernels

Um auch in Echtzeit mit dem UR-10 interagieren zu können empfiehlt sich die Installation eines RT-Kernels. Dieser ist nicht für alle Linux Kernel Versionen vefügbar, sodass man bei der Installation eine Version auswählen sollte, die der des vorhandenen Kernels möglichst ähnlich ist. Die in der Anleitung beschriebene Verifikation funktioniert eventuell nicht in allen Fällen, sodass unter Umständen darauf verzichtet werden muss. Die Integrität des Patches ist trotzdem gegeben.

Erster Start des Roboters mit ROS

Hierzu muss auf dem UR-10 zunächst ein Programm erstellt werden, welches die installierte URCap enthält. Unter dem Tab Installation und External Control müssen dann noch IP und Name des Host-PCs angegeben werden. Der Custom port sollte auf dem default Wert bleiben. Beim ersten ausführen muss der Host-PC die Calibration.yaml des Roboters laden in der Readme des Universal_Robots_ROS_Driver ist beschrieben wie dies funktioniert. Wurde der Treiber dann ohne Fehler gestartet, kann nun das URCap Programm auf dem Roboter gestartet werden. Dabei ist darauf zu achten, dass die alte Installationsdatei verwendet wird. Diese liegt je nach Roboterarm im Ordner 2015301390 oder im Ordner 2015301392. Im jeweiligen Ordner muss dann die default.installation geladen werden. Sollte dann ein Fenster mit dem Hinweis Porgramminstallation aktualisieren? auftauchen, muss dann allerdings der Button Zum jetzigen Zeitpunkt verwenden ausgewählt werden.

Schritt für Schritt

UR10 mit ROS1

Roboter rechts (von hinten): 192.168.1.??

Roboter links (von hinten): 192.168.1.4

PC: 192.168.1.2

ROS liegt auf dem PC auf opt/ros/melodic

ROS-Skript und Anwenderdaten: catkin_ws/src

Anleitungzum starten der Bewegungsplanung und RVIZ mit der Simulation oder dem realen Roboter

  1. Rechner: anmelden mit "ur-10" und "Labor28" (root-Passwort: Labor28)
  2. Roboter starten.
    1. Programm "ROS.urp" starten
    2. Installationsdatei beim Initialisierungsfenster einstellen: die aus dem Ornder 2015301392/default auswählen [Das kommt durch das "Downgraden" der Polyscope-Version, damit ROS1 funktioniert. >> kann noch verschoben werden, ist aber etwas kompliziert (und noch nicht recherchiert)]
    3. "Zum jetzigen Zeitpunkt verwenden"
    4. EIN + Start + OK
    5. Roboterprogramm "Control by ROS_PC" starten
  3. PC
    1. Der Treiber kann dann je nach Roboterarm mit roslaunch ur_robot_driver ur10_bringup.launch limited:=true robot_ip:=192.168.1.2 oder roslaunch ur_robot_driver ur10_bringup.launch limited:=true robot_ip:=192.168.1.4 gestartet werden. limited:=true bewirkt, dass die Gelenkgrenzen beachtet werden.
    2. Bewegungsplanung starten: roslaunch twoarms_ur10_moveit_config ur10_moveit_planning_execution.launch limited:=true. Falls nur Simulation gewünscht, dann sim:=true anhängen
    3. Visualisierung (RViz) starten:roslaunch twoarms_ur10_moveit_config moveit_rviz.launch config:=true

Simulation

  1. Mit roslaunch ur10_urdf ur10.launch wird die Simulation(gazebo) gestartet.
  2. roslaunch twoarms_ur10_moveit_config ur10_moveit_planning_execution.launch sim:=true startet die Bewegungsplanung.
  3. roslaunch twoarms_ur10_moveit_config moveit_rviz.launch config:=true startet die Simulation(RViz). config:=true bewirkt, dass eine Konfigurationsdatei für den Roboter in RViz geladen wird.

Troubleshooting

Falls beim kompilieren eigener oder auch fremder Packages mit Catkin Probleme auftreten sollten folgende Befehle helfen :

cd catkin_ws/
rm -rf build/
rm -rf devel/

Anschließend sollte man noch catkin_make und source devel/setup.bash ausführen, um die /build und /devel Ordnerstruktur wieder neu zu generieren. Dadurch sollten die meisten Probleme beim Kompilieren behoben werden.

Quellen