Скачать книгу

1.2.13package.xml

      Die zentrale Konfigurationsdatei für catkin enthält alle Informationen für den Bau unserer ROS-Programme.

       1.3ROS-Hilfswerkzeuge

      Bei der Arbeit mit ROS entstehen Fehler oder manche Programme tun nicht so, wie sie tun sollen. Um diesen Dingen auf den Grund zu gehen, bietet das ROS-Framework eine Menge wertvoller grafischer sowie konsolenbasierter Werkzeuge. Mit der Zeit und etwas Erfahrung entwickelt man ein Gespür für diverse Fehlermuster und Phänomene und erkennt deren Ursachen schneller. Die Vorgehensweise, wie man dann ein Problem löst, ist immer gleich – zuerst wird die Fehlerquelle lokalisiert. Hierbei helfen uns vorrangig die Logger. Dazu zählen insbesondere die Log-Ausgaben von ROS, aber auch das Betriebssystem und dessen Log-System sollten berücksichtigt werden, schließlich betreiben wir einige Hardwarekomponenten am Roboter und die Treiber jener Hardware werden vom Betriebssystem verwaltet.

      Wenn wir bedenken, dass manche Hardware von uns selbst zusammengelötet wird, dann könnten auch durch kalte Lötstellen oder lose Kabelverbindungen Fehlermeldungen erscheinen, die zuerst gar nicht auf einen Hardwarefehler hinweisen. So beginnt man oft an der falschen Stelle zu suchen und vergeudet dabei wertvolle Zeit. Um diese Zeit nicht zu verlieren, kann ich aus Erfahrung empfehlen, dass die Hardware korrekt funktionieren sollte.

      Für die kommenden Abschnitte benötigen Sie auch einige laufende ROS-Programme, die wir mit dem roslaunch-Befehl vorab starten.

      roslaunch abot_gazebo abot_home.launch

      Im vorhergehenden Kapitel haben wir ROS kennengelernt und können zusammenfassen, dass Programme, die im ROS-Framework erstellt wurden, mit Nodes, Services und Topics zu tun haben. Also sollten diese Punkte mit den folgenden Befehlen zuerst überprüft werden.

      rostopic list

      rosservice list

      rosnode list

      Sind alle Nodes gestartet? Veröffentlichen oder abonnieren sie die entsprechenden Topics? Sind alle Services verfügbar? In den folgenden Abschnitten lernen wir Orte und Programme kennen, die uns bei der Analyse und Suche behilflich sein können. Da wir nicht alle Programme besprechen, sollen die Links zu den Wiki-Seiten als Ergänzung und als eine Anlaufstelle für weitere Tools dienen.

      1 ROS-Toolshttp://wiki.ros.org/ROS/CommandLineTools

      2 ROS-Topic-Toolshttp://wiki.ros.org/topic_tools

      3 ROS-Programme und Paketehttp://www.ros.org/browse/

      4 ROS-Schnittstellenhttp://wiki.ros.org/APIs

      5 ROS-Spickzettelhttps://github.com/ros/cheatsheet/releases/

       1.3.1rqt_graph

      Wenn wir mindestens zwei Nodes gestartet haben, die ROS-Nachrichten miteinander austauschen oder einen ROS-Dienst beanspruchen, können wir diese Topologie mittels rqt_graph darstellen. Das Programm rqt_graph stellt Nodes und Topics grafisch mit Pfeilverbindungen dar. So ist es möglich, schnell zu erkennen, ob alle benötigten Nodes gestartet oder Topics vorhanden sind.

      rqt_graph

      Nach dem Start des Programms rqt_graphs werden standardmäßig nur Nodes angezeigt. In der Symbolleiste befindet sich ein Dropdown-Feld, in dem man alle Nodes und Topics anzeigen lassen kann. Überfährt man ein Node oder Topic mit der Maus, ändern sich die Farben der zusammenhängenden Elemente nach folgendem Muster:

       Rotein mit der Maus markiertes Element, wobei eine Ellipse einem Node und ein Rechteck oder ein frei schwebender Text einem Topic entspricht. Die folgenden Farben gehen davon aus, dass das hier rot markierte Element der Ausgangspunkt ist.

       BlauTopics oder Nodes, die als Eingabe abonniert verwendet werden.

       GrünTopics oder Nodes, an die etwas publiziert wird.

       CyanTopics oder Nodes, die als Eingabe und Ausgabe dienen.

       SchwarzNodes, die weder abonnieren noch Abonnenten besitzen. Meist haben solche Nodes ihre Funktion einmalig ausgeführt und anschließend sich selbst beendet. Es kann auch vorkommen, dass zuvor gestartete und vom ROS-Master registrierte Nodes aufgeführt werden. Nach einem Neustart des ROS-Masters bzw. roscore verschwinden solche »veralteten« Nodes.

image

      Abb. 1–9ROS-Nodes und Topics grafisch dargestellt mit rqt_graph.

       1.3.2rqt_plot

      Ein grafisches Werkzeug zur Beobachtung von numerischen Werten über einen Zeitraum bietet das Programm rqt_plot. Auf einer Zeitskala verteilt können Veränderungen der Werte gemessen werden, so ähnlich wie bei einem Oszilloskop. Bewegt sich ein Roboter auf Basis von Geschwindigkeitsangaben des Topics cmd_vel, dann fügt man eben die gewünschte Variable dieses Topics als zu beobachtendes Element der Zeitskala hinzu. Wenn wir nicht wissen, welche Variablen das Topic cmd_vel enthält, geben wir in einer Konsole folgende Befehle ein.

      rostopic info /cmd_vel

      Die Ausgabe zeigt uns unter anderem den Datentyp an, hier geometry_msgs/Twist. Nun kennen wir den Typ und können mit dem nächsten Befehl die Details darüber erfahren.

      rosmsg show geometry_msgs/Twist

      Eine weitere Möglichkeit, die Datentypstruktur zu erfahren, ist, in dem Eingabefeld von rqt_plot den Namen des Topics gefolgt von einem Schrägstrich einzugeben und abzuwarten, was die Autovervollständigung ausgibt.

      Also fügen wir /cmd_vel/linear/x und /cmd_vel/angular/z als Messwerte hinzu, indem man diese im Eingabefeld Topic eintippt oder auswählt und anschließend mit dem Plus-Symbol der Zeitachse hinzufügt. Es ist ebenso möglich, das Programm rqt_plot direkt mit den gewünschten Parametern aus einer Konsole heraus zu starten. Der folgende Befehl rüstet die Zeitachsen von rqt_plot mit Sensoren für die x- und z-Werte des Topics cmd_vel aus.

      rqt_plot /cmd_vel/linear/x /cmd_vel/angular/z

      Auf der Zeitskala können wir nun die lineare Geschwindigkeit des Roboters entlang der x-Achse und dessen angulare Geschwindigkeit um die z-Achse beobachten. Mit den Werkzeugen in der Symbolleiste kann das Diagramm über ein Dialogfenster optisch angepasst und numerisch skaliert werden. Wenn Sie keine Bewegung im Programmfenster von rqt_plot sehen, dann erstellen Sie mit dem interaktiven Werkzeug in RViz ein Navigationsziel. Wie man Navigationsziele mit der Maus eingibt, ist in Abschnitt 2.2 und in Abbildung 2–6 auf Seite 58 beschrieben.

image

      Abb. 1–10ROS-Topics grafisch dargestellt mit rqt_plot.

      In der Abbildung ist erkennbar, dass die maximale Geschwindigkeit von 0,2 m/s in x-Richtung nicht

Скачать книгу