Inbetriebnahme eines UR-10 Roboters mit ROS: Unterschied zwischen den Versionen
(25 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:UniversalRobots]] | [[Kategorie:UniversalRobots]] | ||
[[Kategorie:ROS]] | |||
[[Kategorie:Robotik]] | [[Kategorie:Robotik]] | ||
[[Robotik_und_Automatisierung | Zurück zum Hauptartikel]] | [[Robotik_und_Automatisierung | Zurück zum Hauptartikel]] | ||
Zeile 17: | Zeile 18: | ||
* Polyscope 3.7 sowie zugehörige Firmware ist auf dem CB3-Controller des UR-10 installiert | * Polyscope 3.7 sowie zugehörige Firmware ist auf dem CB3-Controller des UR-10 installiert | ||
* Vorkenntnisse im Umgang mit der Kommandozeile in Linux | * 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 [https://www.universal-robots.com/download/software-cb-series/update/cb3/polyscope-software-update-cb3-sw-372/ 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. <span style="color:#ff0000">'''Wichtig!'''</span> Vorher sollte man unbedingt ein Backup von allen Programmen und Konfigurationsdateien machen. | |||
== Installation von ROS == | == Installation von ROS == | ||
Zeile 23: | Zeile 27: | ||
== Installation des Universal Robots Treibers == | == 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 [https://github.com/UniversalRobots/Universal_Robots_ROS_Driver 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. | 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 [https://github.com/UniversalRobots/Universal_Robots_ROS_Driver 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 == | == 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 [https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/install_urcap_cb3.md hier] erklärt. | 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 [https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/install_urcap_cb3.md 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 | ||
<code>git clone https://github.com/UniversalRobots/Universal_Robots_Client_Library</code><br> | |||
== Installation des RT-Kernels == | == Installation des RT-Kernels == | ||
Um auch in Echtzeit mit dem UR-10 interagieren zu können empfiehlt sich die Installation eines [https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md 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 <code>default.installation</code> 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 | |||
[https://github.com/ros-industrial/universal_robot/blob/indigo-devel/README.md Anleitung]zum starten der Bewegungsplanung und RVIZ mit der Simulation oder dem realen Roboter | |||
# Rechner: anmelden mit "ur-10" und "Labor28" (root-Passwort: Labor28) | |||
# Roboter starten. | |||
## Programm "ROS.urp" starten | |||
## 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)] | |||
## "Zum jetzigen Zeitpunkt verwenden" | |||
## EIN + Start + OK | |||
## Roboterprogramm "Control by ROS_PC" starten | |||
# PC | |||
## Der Treiber kann dann je nach Roboterarm mit <code>roslaunch ur_robot_driver ur10_bringup.launch limited:=true robot_ip:=192.168.1.2</code> oder <code>roslaunch ur_robot_driver ur10_bringup.launch limited:=true robot_ip:=192.168.1.4</code> gestartet werden. <code>limited:=true</code> bewirkt, dass die Gelenkgrenzen beachtet werden. | |||
## Bewegungsplanung starten: <code>roslaunch twoarms_ur10_moveit_config ur10_moveit_planning_execution.launch limited:=true</code>. Falls nur Simulation gewünscht, dann <code>sim:=true</code> anhängen | |||
## Visualisierung (RViz) starten:<code>roslaunch twoarms_ur10_moveit_config moveit_rviz.launch config:=true</code> | |||
== Simulation == | |||
# Mit <code>roslaunch ur10_urdf ur10.launch</code> wird die Simulation(gazebo) gestartet. | |||
# <code>roslaunch twoarms_ur10_moveit_config ur10_moveit_planning_execution.launch sim:=true</code> startet die Bewegungsplanung. | |||
# <code>roslaunch twoarms_ur10_moveit_config moveit_rviz.launch config:=true</code> startet die Simulation(RViz). <code>config:=true</code> bewirkt, dass eine Konfigurationsdatei für den Roboter in RViz geladen wird. | |||
# <code></code> | |||
# <code></code> | |||
# <code></code> | |||
# <code></code> | |||
== Troubleshooting == | == Troubleshooting == | ||
Falls beim kompilieren eigener oder auch fremder Packages mit Catkin Probleme auftreten sollten | Falls beim kompilieren eigener oder auch fremder Packages mit Catkin Probleme auftreten sollten folgende Befehle helfen : | ||
<code>cd catkin_ws/<br> rm -rf build/<br> rm -rf devel/</code><br> | <code>cd catkin_ws/<br> rm -rf build/<br> rm -rf devel/</code><br> | ||
Anschließend sollte man noch <code>catkin_make</code> und <code>source devel/setup.bash</code> ausführen, um die /build und /devel Ordnerstruktur wieder neu zu generieren. Dadurch sollten die meisten Probleme beim | Anschließend sollte man noch <code>catkin_make</code> und <code>source devel/setup.bash</code> ausführen, um die /build und /devel Ordnerstruktur wieder neu zu generieren. Dadurch sollten die meisten Probleme beim Kompilieren behoben werden. | ||
== Quellen == | == Quellen == | ||
*[http://wiki.ros.org/de] ROS Wiki | *[http://wiki.ros.org/de] ROS Wiki | ||
Aktuelle Version vom 8. Dezember 2021, 11:05 Uhr
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
- Rechner: anmelden mit "ur-10" und "Labor28" (root-Passwort: Labor28)
- Roboter starten.
- Programm "ROS.urp" starten
- 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)]
- "Zum jetzigen Zeitpunkt verwenden"
- EIN + Start + OK
- Roboterprogramm "Control by ROS_PC" starten
- PC
- Der Treiber kann dann je nach Roboterarm mit
roslaunch ur_robot_driver ur10_bringup.launch limited:=true robot_ip:=192.168.1.2
oderroslaunch ur_robot_driver ur10_bringup.launch limited:=true robot_ip:=192.168.1.4
gestartet werden.limited:=true
bewirkt, dass die Gelenkgrenzen beachtet werden. - Bewegungsplanung starten:
roslaunch twoarms_ur10_moveit_config ur10_moveit_planning_execution.launch limited:=true
. Falls nur Simulation gewünscht, dannsim:=true
anhängen - Visualisierung (RViz) starten:
roslaunch twoarms_ur10_moveit_config moveit_rviz.launch config:=true
- Der Treiber kann dann je nach Roboterarm mit
Simulation
- Mit
roslaunch ur10_urdf ur10.launch
wird die Simulation(gazebo) gestartet. roslaunch twoarms_ur10_moveit_config ur10_moveit_planning_execution.launch sim:=true
startet die Bewegungsplanung.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
- [1] ROS Wiki