2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
ROS-Betriebsmanagement
ROS ist ein verteiltes Multiprozess-(Knoten-)Framework, eine vollständige ROS-Systemimplementierung:
Kann mehrere Hosts umfassen;
Auf jedem Host gibt es mehrere Arbeitsbereiche.
Jeder Arbeitsbereich enthält mehrere Funktionspakete;
Jedes Funktionspaket enthält mehrere Knoten (Knoten), und verschiedene Knoten haben ihre eigenen Knotennamen.
Jeder Knoten kann auch mit einem oder mehreren Themen festgelegt werden ...
In einem mehrstufigen ROS-System können einige Probleme bei der Implementierung und Wartung auftreten, wie zum Beispiel:
1. So verknüpfen Sie verschiedene Funktionspakete ---- (Metafunktionspaket)
2. So starten Sie verschiedene ROS-Knoten ---- (Startdatei)
3. Umgang mit doppelten Namen von Funktionspaketen, Knoten, Themen und Parametern ---- (Lösung des Problems doppelter Namen)
4. Wie Knoten auf verschiedenen Hosts kommunizieren ---- (verteilte Kommunikation)
Der Hauptinhalt dieses Kapitels stellt die Lösungen für die oben genannten Probleme in ROS vor (siehe Inhaltsverzeichnis dieses Kapitels). Die erwarteten Lernziele entsprechen auch den oben genannten Problemen:
Szenario: Das Abschließen einer systematischen Funktion in ROS kann mehrere Funktionspakete umfassen, z. B. die Implementierung eines Roboternavigationsmoduls, das über verschiedene Funktionspakete auf Unterebene wie Karte, Positionierung, Pfadplanung usw. verfügt. Wenn der Aufrufer das Modul installiert, muss er dann jedes Funktionspaket einzeln installieren?
Offensichtlich ist es ineffizient, Funktionspakete einzeln zu installieren. Bei der Installation eines bestimmten Funktionsmoduls wird dieses Paket auch als Metapaket bezeichnet .
MetaPackage ist ein Dateiverwaltungssystemkonzept unter Linux. Es handelt sich um ein virtuelles Paket in ROS, das jedoch auf andere Softwarepakete angewiesen ist. Auf diese Weise können wir es uns als einen Verzeichnisindex eines Buches vorstellen, der uns dies mitteilt -Pakete befinden sich in der Paketsammlung und wo Sie sie herunterladen können.
Zum Beispiel:
Um die Benutzerinstallation zu erleichtern, benötigen wir nur dieses eine Paket, um andere verwandte Softwarepakete zusammen zu organisieren und zu installieren.
Schritt 1: Erstens: Erstellen Sie ein neues Funktionspaket
Schritt 2: Dann: Paket.xml ändern, der Inhalt ist wie folgt:
<exec_depend>Integrierte Funktionspakete</exec_depend>
…
<export>
<metapackage />
</export>
Schritt 3: Abschließend: Ändern Sie CMakeLists.txt. Der Inhalt lautet wie folgt:
cmake_minimum_required (VERSION 3.0.2)
Projekt (Demo)
find_package(catkin ERFORDERLICH)
catkin_metapackage()
Behalten Sie einfach die obigen vier Zeilen bei und löschen Sie den Rest.
Siehe auch:
http://wiki.ros.org/catkin/package.xml#Metapackages
Die Verwendung von Startdateien ist uns nicht mehr unbekannt. Im ersten Kapitel haben wir Folgendes vorgestellt:
Ein Programm muss möglicherweise mehrere Knoten starten, z. B. das in ROS integrierte kleine Schildkrötengehäuse. Wenn Sie die Bewegung der Schildkröte steuern möchten, müssen Sie mehrere Fenster starten, Roscore, den Schildkrötenschnittstellenknoten und den Tastatursteuerungsknoten starten jeweils. Wenn Rosrun jedes Mal einzeln aufgerufen wird, ist dies offensichtlich ineffizient. Wie kann man optimieren?
Die verwendete Optimierungsstrategie besteht darin, den Befehl roslaunch zum Sammeln der Startdatei zum Starten des Verwaltungsknotens zu verwenden. In nachfolgenden Tutorials wird die Startdatei auch häufig verwendet.
Die Startdatei ist eine XML-Formatdatei, die mehrere lokale und Remote-Knoten starten und Parameter im Parameterserver festlegen kann.。
Vereinfachen Sie die Konfiguration und den Start von Knoten und verbessern Sie die Starteffizienz von ROS-Programmen.
Nehmen Sie Turtlesim als Beispiel zur Demonstration
Schritt 1. Erstellen Sie eine neue Startdatei
Fügen Sie das Startverzeichnis unter dem Funktionspaket hinzu, erstellen Sie eine neue xxxx.launch-Datei im Verzeichnis und bearbeiten Sie die Startdatei
<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>
Schritt 2. Rufen Sie die Startdatei auf
Roslaunch-Paketname xxx.launch
Hinweis: Wenn der Befehl roslaunch die Startdatei ausführt, wird zunächst festgestellt, ob roscore gestartet wird. Andernfalls wird roscore automatisch aufgerufen.
Kann sich beziehen auf:
http://wiki.ros.org/roslaunch/XML
https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9