Читать книгу Roboter mit ROS - Murat Calis - Страница 15

1.1.8ROS-Arbeitsbereich erstellen

Оглавление

Als Nächstes erstellen wir einen Arbeitsbereich, der unsere eigenen Robotik-Werke enthalten wird, also unsere selbstgeschriebenen Programme. Aber auch Git-Repositorien von anderen Anbietern können wir dorthin herunterladen und verwenden. Obligatorisch ist der Name des Quelltextordners »src«, aber nicht der übergeordnete Ordner, dessen Namen ich gerne anders wähle, als er in wiki.ros.org mit »catkin_ws« vorgegeben wird. Der Grund dafür ist, dass ich oft zwischen Roboter-Computer und Entwicklungs-Computer hin und her kopiere. Wenn aber die Ordnernamen auf beiden Computern identisch sind, kann es passieren, dass man Quelle und Ziel verwechselt, was ärgerlich sein kann, wenn man vorher kein Backup gemacht hat.

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/

catkin_make

Der Befehl catkin_make erzeugt eine Datei CMakeLists.txt, wenn diese noch nicht existiert, und darüber hinaus die Ordner build und devel. Im devel-Verzeichnis befinden sich die setup-Dateien, die dem ROS-System bekanntgeben, wo es nach ROS-Paketen suchen soll.

Mit catkin_make install, dem Äquivalent zu make install, wird zusätzlich der Ordner install mit ausführbaren Binärdateien angelegt. Ansonsten macht catkin_make das, was make auch macht – es baut alle Programme, die im Arbeitsbereich vorliegen. Dieser Vorgang kann, abhängig von der Anzahl der ROS-Pakete im aktuellen Arbeitsbereich, sehr lange dauern.

Wer in unterschiedlichen Roboterprojekten arbeitet, hat die Möglichkeit, mehrere getrennte Arbeitsbereiche anzulegen. Das reduziert die Arbeit von catkin_make auf das, was der aktuelle Arbeitsbereich an ROS-Paketen enthält. Sie erstellen dazu wie oben beschrieben ein neues Verzeichnis mit einem Unterverzeichnis src. Im neuen Verzeichnis wird der Befehl catkin_make weitere benötigte Dateien und Verzeichnisse generieren, sodass Sie nur noch die setup-Datei im Verzeichnis devel ausführen müssen, um den neuen Arbeitsbereich zu verwenden. Das Ausführen der setup-Datei eines Arbeitsbereichs blendet alle anderen Arbeitsbereiche für die Kompilierung auf dem System aus. Die anderen Arbeitsbereiche sind mit dem Befehl roscd dennoch erreichbar. Die Arbeit mit mehreren Arbeitsbereichen wird in ROS als Überlagerung (engl. overlay) bezeichnet.

build, devel und install werden von src generiert

Es kann vorkommen, dass die Ordner build, devel oder install inkonsistent werden. Diese Ordner außer src sollten Sie löschen und mit catkin_make wird aus dem Ordner src ein neuer build und devel generiert.

Abschließend tragen wir unseren Arbeitsbereich in unsere Terminalkonfiguration ein. Dadurch wird nach jedem Neustart der gewünschte Arbeitsbereich in jeder Konsole mit dem Befehl roscd erreichbar sein. Falls Sie den Ordnernamen von catkin_ws verändert haben, muss der entsprechende Name verwendet werden.

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

source ~/.bashrc

Ob unsere Installation erfolgreich war, testen wir mit folgendem Befehl und beenden ihn anschließend mit .

roscore


Abb. 1–3roscore startet den ROS-Master auf port 11311 und erstellt die zugehörige log-Datei in ~/.ros.

Wer mehr über den Entstehungs- und Beendigungsprozess erfahren möchte, startet ein separates Fenster mit netstat -tulpanc. So kann man die einzelnen Prozesse beim Öffnen und Schließen der Ports beobachten.

Roboter mit ROS

Подняться наверх