ТОП просматриваемых книг сайта:
Roboter mit ROS. Murat Calis
Читать онлайн.Название Roboter mit ROS
Год выпуска 0
isbn 9783960884682
Автор произведения Murat Calis
Жанр Математика
Издательство Bookwire
Tab. 1–2Ordner- und Dateinamen in einem ROS-Paket
Der Befehl rospack liefert nützliche Informationen über die auf dem System installierten ROS-Pakete. Um alle installierten ROS-Pakete aufzulisten, verwendet man folgenden Befehl.
rospack list
Ist der Name des ROS-Pakets bekannt und möchte man wissen, ob das Paket auf dem System installiert ist, dann kann man sich mit dem nächsten Befehl schnell Gewissheit darüber verschaffen.
rospack find abot_description
Meist hängt ein ROS-Paket von diversen anderen Paketen ab. Die Abhängigkeiten überprüfen wir in folgendem Beispiel für das Programm RViz.
rospack depends rviz
1.2.3ROS-Meta-Paket
Im Gegensatz zu einem einzelnen ROS-Paket ist ein ROS-Meta-Paket eine Ansammlung mehrerer loser ROS-Pakete in einem großen Gesamtpaket. Angenommen, wir entwickeln einen Roboter, der fahren, sehen und sprechen kann. Wir würden ein Paket für das Fahren, eines für das Sehen und zuletzt ein Paket für das Sprechen erstellen. Nun befinden sich diese Pakete innerhalb unseres src-Ordners und sobald weitere Pakete dazukommen, leidet die Übersichtlichkeit. Ein Meta-Paket bedeutet zugleich, dass ROS-Pakete in einem Unterordner von src gesammelt werden. Die Struktur unseres Beispielroboters könnte folgendermaßen aussehen, wenn wir es als ROS-Meta-Paket anlegen.
/home/<benutzername>/catkin_ws/src/meinbot-kinetic-master
/home/<benutzername>/catkin_ws/src/meinbot-kinetic-master/meinbot
/home/<benutzername>/catkin_ws/src/meinbot-kinetic-master/meinbot_fahren
/home/<benutzername>/catkin_ws/src/meinbot-kinetic-master/meinbot_sehen
/home/<benutzername>/catkin_ws/src/meinbot-kinetic-master/meinbot_sprechen
Die Anatomie eines ROS-Pakets kennen wir bereits. Interessant ist hier nur das ROS-Paket meinbot. Es vermittelt von seinem Namen her keine Funktion, die wir besprochen haben. Schauen wir also in den Ordner.
meinbot
|__ CMakeLists.txt
|__ package.xml
Das Verzeichnis von meinbot, welches ein Meta-Paket realisiert, enthält lediglich die Pflichtdatei package.xml und die Bauanleitung CMakeLists.txt. Der Inhalt von CMakeLists.txt verrät uns mehr über seine Funktion.
cmake_minimum_required(VERSION 2.8.3)
project(meinbot)
find_package(catkin REQUIRED)
catkin_metapackage()
Das Makro catkin_metapackage() weist CMake an, das Verzeichnis meinbot wie ein ROS-Meta-Paket zu behandeln. Werfen wir zuletzt noch einen Blick in die stark verkürzte Datei package.xml.
...
<buildtool_depend>catkin</buildtool_depend>
<run_depend>meinbot_fahren</run_depend>
<run_depend>meinbot_sehen</run_depend>
<run_depend>meinbot_sprechen</run_depend>
<export>
<metapackage />
</export>
Abgesehen von dem benötigten <buildtool_depend>-Element dürfen Meta-Pakete nur <run_depend>-Elemente haben. In diesen Elementen werden die losen ROS-Pakete zu einem großen, ganzen Meta-Paket geschnürt. Am Ende steht ein <export>-Element,