Die große Übelkeit des ROS-Lernpfads (ROS Distributed Communication)

ROS verteilte Kommunikation

Das allgemeine ROS-Auto ist der Raspberry Pi als Host-Maschine und der PC als Slave-Maschine. Den Konstruktionsprozess des verteilten Frameworks werde ich im nächsten Schritt erläutern. Er kann gemäß dem Prozess des dritten Schritts realisiert werden. Aber bevor Sie diesen Prozess realisieren, müssen Sie vorbereitende Arbeiten durchführen: Verbinden Sie den Raspberry Pi mit dem drahtlosen Netzwerk und legen Sie eine feste IP fest, wie folgt:
Schritt 1 **
1. Hardware-Vorbereitung: Verwenden Sie ein Display oder eine HDMI-Capture-Karte, um eine Verbindung zum Raspberry herzustellen Pi,
Ubuntu18.4** installieren und starten;

2. Stellen Sie eine Verbindung zum drahtlosen Netzwerk für den Raspberry Pi her. (Die große Grube ist hier, da es aufgrund des Bildschirms keine HDMI-Capture-Karte gibt. Aus diesem Grund habe ich mich für die Verwendung von XDRP und VNC auf dem Computer entschieden, um mich anzumelden den Raspberry Pi aus der Ferne. Apropos Fehler: Wenn auf dem Bildschirm eine HDMI-Capture-Karte winkt, können Sie die Fehlerlösung speichern und direkt mit dem dritten Schritt fortfahren.)

3. Konfigurieren Sie eine statische IP für den Raspberry Pi. Der spezifische Vorgang ist wie in der Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Schritt 2: Beheben Sie den xdrp-Fehler

Wenn Sie über ein Display oder eine HDMI-Capture-Karte verfügen, dann viel Glück, die oben genannten Schritte sind leicht zu lösen,
aber wenn Sie VNC oder XDRP für die Fernverbindung verwenden möchten, werden Sie auf einen großen Fehler stoßen.

Installieren Sie VNC, xdrp
xdrp-Remote-Verbindung, folgen Sie einfach diesem Schritt. Der Windows-Remotedesktop stellt über den xrdp-Dienst eine Verbindung zum Raspberry Pi her.
Um VNC zu verwenden, müssen Sie VNC verwenden, um Ubuntu 18.4 des Raspberry Pi fernzusteuern
(ich persönlich bin der Meinung, dass VNC nicht einfach zu verwenden ist. Sie müssen VNC zuerst über SSH öffnen. und vnc kann eine Verbindung herstellen. Es kann auch sein, dass ich es nicht festgelegt habe. Wenn es eine Einstellungsmethode gibt, können Sie uns auch beraten.)

Fehler:
Es wird immer wieder angezeigt, wenn Sie auf „WLAN bereit zum Herstellen einer Verbindung“ klicken

   **Authentication required. System policy prevents WiFi scans**

Sie werden aufgefordert, das Benutzerkennwort einzugeben. Ich dachte, Sie könnten nach der Eingabe eine Verbindung herstellen, aber Yamamoto, Japan, Sie Vorfahren, wenn Sie das Kennwort eingeben, verschwindet die WLAN-Liste. Dann bleibt es in einer Schleife stecken. . . .
Durch unablässige Nachforschungen wurde in einem Blog festgestellt, dass es sich um einen Fehler von xdrp handelte

Lösung:
Erstellen Sie eine neue Datei mit der Erweiterung pkla im Verzeichnis /etc/polkit-1/localauthority/50-local.d und schreiben Sie den folgenden Inhalt hinein:

[Allow Wifi Scan]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes

Beachten Sie, dass im Originaltext stand, es in /etc/polkit-1/localauthority/50-local-d hinzuzufügen, aber ich habe es viele Male versucht, aber ich konnte den obigen Code nicht mit vim hinzufügen (wenn Sie interessiert sind, können Sie das). Probieren Sie es aus und Sie werden auf eine Reihe von Problemen stoßen. Danach wusste ich nicht, was mein Gehirn verkrampfte. Ich stellte fest, dass es im Verzeichnis /etc/polkit-1/localauthority/ kein 50-local-d gab, aber 50-local.d. Schließlich wurde das Erstellen einer PKLA-Datei in 50-local.d erfolgreich gelöst. WLAN-Problem) Gleichzeitig wird die Farbzertifizierung gemeldet. Es handelt sich auch um eine ähnliche Lösung, sodass kein Bildschirm, keine HDMI-Capture-Karte usw. erforderlich
ist ., Sie können Ihren Raspberry Pi mit Ihrem Notebook steuern! ! !

Schritt 3:
ROS ist eine verteilte Computerumgebung. Ein laufendes ROS-System kann aus mehreren Knoten bestehen, die auf mehrere Computer verteilt sind. Je nachdem, wie das System konfiguriert ist, muss möglicherweise jeder Knoten jederzeit mit jedem anderen Knoten kommunizieren.
Daher stellt ROS bestimmte Anforderungen an die Netzwerkkonfiguration:
Es muss eine vollständige bidirektionale Konnektivität zwischen allen Maschinen an allen Ports bestehen.
Jeder Computer muss sich unter einem Namen anmelden, den alle anderen Computer auflösen können.
Implementierung
1. Vorbereitung Stellen Sie zunächst sicher, dass sich verschiedene Computer im selben Netzwerk befinden. Am besten stellen Sie feste IPs separat ein. Wenn es sich um eine virtuelle Maschine handelt, müssen Sie den Netzwerkadapter in den Bridge-Modus ändern. 2.
Änderung
der Konfigurationsdatei. Ändern Sie die /etc/hosts Datei verschiedener Computer separat hinzufügen, fügen Sie die IP-Adresse und den Computernamen der anderen Partei in die Datei ein: Hostseite:


从机的IP    从机计算机名
从机端:
主机的IP    主机计算机名

Nach der Einstellung können Sie mit dem Ping-Befehl testen, ob die Netzwerkkommunikation normal ist.
Name der IP-Adressansicht: ifconfig
Computernamenansicht: hostname
3. Konfigurieren Sie die Host-IP
, um die IP-Adresse des Hosts zu konfigurieren

~/.bashrc 追加

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP

4. Konfigurieren Sie die IP der Slave-Maschine.
Konfigurieren Sie die IP-Adresse der Slave-Maschine. Es können mehrere Slave-Maschinen vorhanden sein, die jeweils wie folgt eingestellt werden:

~/.bashrc 追加

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP

Test
1. Der Host startet Roscore (erforderlich)
2. Der Host startet den Abonnementknoten, der Slave startet den Veröffentlichungsknoten und testet, ob die Kommunikation normal ist. 3.
Rückwärtstest, der Host startet den Veröffentlichungsknoten, der Slave startet den Abonnementknoten und testet, ob die Kommunikation normal ist.
Referenz

Supongo que te gusta

Origin blog.csdn.net/qq_47128755/article/details/123268841
Recomendado
Clasificación