Darstellung der Ergebnisse: Unterschied zwischen den Versionen
Zeile 10: | Zeile 10: | ||
==== Infrarot Hindernisumfahrung Ergebnis ==== | ==== Infrarot Hindernisumfahrung Ergebnis ==== | ||
In Abb. | In Abb. 14 ist zu der Infrarot Hindernisumfahrung ein Beispiel, wie das in einem Terminal während der Programmausführung aussieht. | ||
So fährt der AlphaBot vorwärts (I heard: "forward"), da für beide IR-Sensoren eine 1 ausgelesen wurde. | So fährt der AlphaBot vorwärts (I heard: "forward"), da für beide IR-Sensoren eine 1 ausgelesen wurde. | ||
Zeile 16: | Zeile 16: | ||
Oder er fährt links (I heard: "left"), da für den rechten IR-Sensor eine 0 und für den linken eine 1 ausgelesen wurde. | Oder er fährt links (I heard: "left"), da für den rechten IR-Sensor eine 0 und für den linken eine 1 ausgelesen wurde. | ||
[[Datei:IR_Left.jpg|left|mini|500px|Abb. | [[Datei:IR_Left.jpg|left|mini|500px|Abb. 14 Hindernisumfahrung Beispiel]] | ||
<br clear=all> | <br clear=all> | ||
In ROS2 können die Programmierten Nodes und Topics in einem RQT-Graph grafisch Dargestellt werden wie schon in den ROS2 Tutorials gezeigt. | In ROS2 können die Programmierten Nodes und Topics in einem RQT-Graph grafisch Dargestellt werden wie schon in den ROS2 Tutorials gezeigt. | ||
Für die Infrarot Hindernisumfahrung könnte der Graph dann wie in Abb. | Für die Infrarot Hindernisumfahrung könnte der Graph dann wie in Abb. 15 gezeigt aussehen. | ||
Dort ist zusehen das der master zu den beiden Topics "IR_right und IR_left" subscript und über die Topic "cmd_vel" published. Auf der anderen Seite, die Slave, published über die Topics "IR_right und IR_left" und subscript zur Topic "cmd_vel". | Dort ist zusehen das der master zu den beiden Topics "IR_right und IR_left" subscript und über die Topic "cmd_vel" published. Auf der anderen Seite, die Slave, published über die Topics "IR_right und IR_left" und subscript zur Topic "cmd_vel". | ||
[[Datei:RQT_Graph_Infrared.jpeg|left|mini|600px|Abb. | [[Datei:RQT_Graph_Infrared.jpeg|left|mini|600px|Abb. 15 Infrarot Hindernisumfahrung RQT-Graph]] | ||
<br clear=all> | <br clear=all> | ||
Zeile 31: | Zeile 31: | ||
Zudem gibt es unter RQT die Möglichkeit die Sensordaten in einem sogenannten Plot darzustellen. | Zudem gibt es unter RQT die Möglichkeit die Sensordaten in einem sogenannten Plot darzustellen. | ||
Dazu muss in RQT unter dem Reiter Plugin, Visualisierung Plot ausgewählt werden, wie in Abb. | Dazu muss in RQT unter dem Reiter Plugin, Visualisierung Plot ausgewählt werden, wie in Abb. 16 gezeigt. | ||
[[Datei:RQT_Plot_öffnen.png|left|mini|300px|Abb. | [[Datei:RQT_Plot_öffnen.png|left|mini|300px|Abb. 16 RQT Plot öffnen]] | ||
<br clear=all> | <br clear=all> | ||
In dem Plot kann das Koordinatensystem mit dem in Abb. | In dem Plot kann das Koordinatensystem mit dem in Abb. 17 markierten Bereich in der Größe eingestellt werden. | ||
An der X-Axis muss nichts geändert werden, da diese sich während der Ausführung automatisch erweitert. Unter Y-Axis lässt sich für Bottom der niedrigste Wert und für Top der höchste Wert, welches das Koordinaten System haben soll einstellen. | An der X-Axis muss nichts geändert werden, da diese sich während der Ausführung automatisch erweitert. Unter Y-Axis lässt sich für Bottom der niedrigste Wert und für Top der höchste Wert, welches das Koordinaten System haben soll einstellen. | ||
[[Datei: Koordinatensystem einstellen.png|left|mini|300px|Abb. | [[Datei: Koordinatensystem einstellen.png|left|mini|300px|Abb. 17 Koordinatensystem einstellen]] | ||
<br clear=all> | <br clear=all> | ||
Zeile 47: | Zeile 47: | ||
Um die Sensordaten dem Plot hinzuzufügen wird der Topic-Monitor benötigt. Der Topic Monitor wird über den Reiter Plugin und dann Topics, Topic Monitor geöffnet. | Um die Sensordaten dem Plot hinzuzufügen wird der Topic-Monitor benötigt. Der Topic Monitor wird über den Reiter Plugin und dann Topics, Topic Monitor geöffnet. | ||
In Abb. | In Abb. 18 sind links über den Topic Monitor die verschiedenen Topics zu sehen. Über den Pfeil links neben den Topics wird ein weiterer Reiter Namens "data" ausgeklappt. | ||
Unter den Topics DR_left und DR_right kann "data" per drag and drop in den Plot gezogen werden. So erscheint in dem Plot oben links eine Legende mit dem Topic Namen und der Farbe des Graphens(Abb. | Unter den Topics DR_left und DR_right kann "data" per drag and drop in den Plot gezogen werden. So erscheint in dem Plot oben links eine Legende mit dem Topic Namen und der Farbe des Graphens (Abb. 18). Während der Laufzeit wird dann der Plot für die beiden IR-Sensoren generiert. | ||
Außerdem ist zusehen, das zweimal der blaue Graph auf 0 fällt. | Außerdem ist zusehen, das zweimal der blaue Graph auf 0 fällt. | ||
Zeile 54: | Zeile 54: | ||
Weiter ist zuerkennen, dass der linke Sensor(blauer Plot) anspricht und dort sich zu dem Zeitpunkt ein Hindernis befindet. | Weiter ist zuerkennen, dass der linke Sensor(blauer Plot) anspricht und dort sich zu dem Zeitpunkt ein Hindernis befindet. | ||
[[Datei:RQT_Plot_Infrared.png|left|mini|600px|Abb. | [[Datei:RQT_Plot_Infrared.png|left|mini|600px|Abb. 18 Infrarot Hindernisumfahrung]] | ||
<br clear=all> | <br clear=all> |
Version vom 18. März 2022, 16:19 Uhr
Motortest Ergebnis
In Abb. 13 ist zusehen wie links die Nachricht "forward" gepublished wird und rechts die Node "motor_subscriber" diese Nachricht empfängt. Zudem ist zu sehen das nach dem pub Befehl eine loop beginnt, das heißt, dass die Nachricht in gleichmäßigen Zeitabständen gepublished wird.
Infrarot Hindernisumfahrung Ergebnis
In Abb. 14 ist zu der Infrarot Hindernisumfahrung ein Beispiel, wie das in einem Terminal während der Programmausführung aussieht.
So fährt der AlphaBot vorwärts (I heard: "forward"), da für beide IR-Sensoren eine 1 ausgelesen wurde.
Oder er fährt links (I heard: "left"), da für den rechten IR-Sensor eine 0 und für den linken eine 1 ausgelesen wurde.
In ROS2 können die Programmierten Nodes und Topics in einem RQT-Graph grafisch Dargestellt werden wie schon in den ROS2 Tutorials gezeigt. Für die Infrarot Hindernisumfahrung könnte der Graph dann wie in Abb. 15 gezeigt aussehen.
Dort ist zusehen das der master zu den beiden Topics "IR_right und IR_left" subscript und über die Topic "cmd_vel" published. Auf der anderen Seite, die Slave, published über die Topics "IR_right und IR_left" und subscript zur Topic "cmd_vel".
Zudem gibt es unter RQT die Möglichkeit die Sensordaten in einem sogenannten Plot darzustellen.
Dazu muss in RQT unter dem Reiter Plugin, Visualisierung Plot ausgewählt werden, wie in Abb. 16 gezeigt.
In dem Plot kann das Koordinatensystem mit dem in Abb. 17 markierten Bereich in der Größe eingestellt werden.
An der X-Axis muss nichts geändert werden, da diese sich während der Ausführung automatisch erweitert. Unter Y-Axis lässt sich für Bottom der niedrigste Wert und für Top der höchste Wert, welches das Koordinaten System haben soll einstellen.
Um die Sensordaten dem Plot hinzuzufügen wird der Topic-Monitor benötigt. Der Topic Monitor wird über den Reiter Plugin und dann Topics, Topic Monitor geöffnet.
In Abb. 18 sind links über den Topic Monitor die verschiedenen Topics zu sehen. Über den Pfeil links neben den Topics wird ein weiterer Reiter Namens "data" ausgeklappt. Unter den Topics DR_left und DR_right kann "data" per drag and drop in den Plot gezogen werden. So erscheint in dem Plot oben links eine Legende mit dem Topic Namen und der Farbe des Graphens (Abb. 18). Während der Laufzeit wird dann der Plot für die beiden IR-Sensoren generiert.
Außerdem ist zusehen, das zweimal der blaue Graph auf 0 fällt. So ist hier genauer zu erkennen, dass sich die Sensordaten nur auf 1 und 0 beschränken. Weiter ist zuerkennen, dass der linke Sensor(blauer Plot) anspricht und dort sich zu dem Zeitpunkt ein Hindernis befindet.
Ultraschall Hindernisumfahrung Ergebnis
Die Terminalausgabe während das Programm ausgeführt wird, könnte wie in Abb. 19 aussehen.
Dort ist zu erkenne, dass nur middle_data gepublished wird bis dieser Wert unter 50 fällt.
Dann werden zusätzlich die Sensordaten für links und rechts gepublished, nachdem der Servo nach rechts und links gedreht wurde.
In dem RQT-Graph zur Ultraschall Hindernisumfahrung wurden die Sensordaten Topics zu einer Gruppe zusammengefasst, da nur ein Ultraschallsensor mit 3 ROS2 Topics verwendet wurde(Abb. 20).
Das wurde gemacht, um die Sensordaten für links, Mitte und rechts auseinander zuhalten.
Allgemein ist das Prinzip, wie bei der Infrarot Hindernisumfahrung, nur das die Slave über drei verschiedene Topics die Sensordaten published.
Und über die cmd_vel Topic werden zusätzlich die Servo-Movements gepublished.
→ zurück zum vorherigen Artikel: Kommunikation Raspberry Pi mit ROS2