Technologieaustausch

ROS-Grundlagenlernen – ROS-Betriebsmanagement

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ROS-Betriebsmanagement

1. Kurze Beschreibung des ROS-Betriebsmanagements

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 ...

Fügen Sie hier eine Bildbeschreibung ein
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:

  • Beherrschen Sie die Syntax für die Verwendung von Metafunktionspaketen.
  • Beherrschen Sie die Syntax der Verwendung von Startdateien.
  • Verstehen Sie, was die ROS-Arbeitsbereichsabdeckung ist und welche Sicherheitsrisiken es gibt;
  • Verstehen Sie, wie Sie mit doppelten Knotennamen umgehen;
  • Verstehen Sie, wie mit Themen mit doppelten Namen umgegangen wird;
  • Verstehen Sie, wie Sie mit Parameternamen mit doppelten Namen umgehen;
  • Kann eine verteilte ROS-Kommunikation erreichen.

2. ROS-Metafunktionspaket

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 .

2.1 Konzept

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:

  • Der Befehl sudo apt install ros-noetic-desktop-full verwendet das Metafunktionspaket bei der Installation von ROS. Dieses Metafunktionspaket hängt von einigen anderen Funktionspaketen in ROS ab. Bei der Installation dieses Pakets werden die Abhängigkeiten zusammen installiert.
    Es gibt auch einige gängige MetaPackages: navigation moveit!

2.2 Funktion

Um die Benutzerinstallation zu erleichtern, benötigen wir nur dieses eine Paket, um andere verwandte Softwarepakete zusammen zu organisieren und zu installieren.

2.3 Umsetzung

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>
Fügen Sie hier eine Bildbeschreibung ein

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

3. ROS-Startdatei

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.

3.1. Startdatei für die ROS-Knotenverwaltung

3.1.1 Konzept

Die Startdatei ist eine XML-Formatdatei, die mehrere lokale und Remote-Knoten starten und Parameter im Parameterserver festlegen kann.

3.1.2 Funktion

Vereinfachen Sie die Konfiguration und den Start von Knoten und verbessern Sie die Starteffizienz von ROS-Programmen.

3.1.3 Nutzung

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

3.2 Datei-Tag starten

https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9