Inhaltsverzeichnis:

ROS Melodic auf Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8 - Gunook
ROS Melodic auf Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8 - Gunook

Video: ROS Melodic auf Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8 - Gunook

Video: ROS Melodic auf Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8 - Gunook
Video: Hose nähen für Anfänger – DIY Kinderhose "MATTI" 2024, November
Anonim
Image
Image
ROS Melodic auf Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8
ROS Melodic auf Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8

Dieser Artikel behandelt den Installationsprozess von ROS Melodic Morenia auf Raspberry Pi 4 mit dem neuesten Debian Buster und die Verwendung von RPLIDAR A1M8 mit unserer Installation.

Da Debian Buster erst vor wenigen Wochen offiziell veröffentlicht wurde (zum Zeitpunkt des Schreibens dieses Artikels), gibt es keine vorgefertigten ROS-Pakete, die mit apt-get installiert werden könnten, was eine bevorzugte Installationsmethode ist. Daher müssen wir es aus der Quelle erstellen. Vertrauen Sie mir, es ist nicht so beängstigend, wie es sich anhört. Der Vorgang wird in diesem offiziellen Tutorial beschrieben, aber um ROS Melodic auf Raspberry Pi zu erstellen, müssen wir einige Änderungen vornehmen.

Falls du immer noch Angst hast, hier ist ein lustiges Bild, das dir *vielleicht* beim Entspannen hilft. Bitte geben Sie Feedback, wenn das Maß an Entspannung ausreichend war. Wenn nicht, wird es durch das Bild einer lustigen Katze ersetzt.

Januar 2020 EDIT: Da es ein halbes Jahr her ist, seit ich diesen Artikel veröffentlicht habe, hat es möglicherweise einige Änderungen an ROS oder Buster gegeben. Ich habe vor einiger Zeit ein Image für Raspberry Pi 4 erstellt, nachdem ich dieses Tutorial geschrieben hatte. Ein Mitwirkender hat es auf Google Drive hochgeladen

April 2020 BEARBEITEN: Ich habe vor kurzem Zeit gefunden, die ROS Melodic-Installation auf dem neuesten Raspbian-Image von der offiziellen Raspberry Pi-Site zu wiederholen. Ich habe diese Anleitung entsprechend bearbeitet. Ich habe auch saubere, komprimierte Bilder erstellt und geteilt:

Raspbian Buster Lite 2020-02-13 Release mit ROS Melodic Bare-Bones Benötigt 8 GB SD-Karte

Raspbian Buster mit Desktop 2020-02-13 Release mit ROS Melodic Desktop Benötige 16 GB SD-Karte

Dies ist möglicherweise der schnellste Weg, um Ihr System zum Laufen zu bringen. Wenn Sie ROS selbst kompilieren möchten, lesen Sie den Artikel weiter.

Schritt 1: Bootstrap-Abhängigkeiten installieren und Pakete herunterladen

Beginnen wir damit, die Repositorys einzurichten und die erforderlichen Abhängigkeiten zu installieren

sudo sh -c 'echo "deb https://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

sudo apt-get update

sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake

Dann initialisiere rosdep und aktualisiere es

sudo rosdep init

rosdep-Update

Wenn das erledigt ist, erstellen wir einen dedizierten Catkin-Arbeitsbereich zum Erstellen von ROS und wechseln in dieses Verzeichnis.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Jetzt haben Sie zwei Möglichkeiten:

ROS-Comm: (Bare Bones) Installation - installieren Sie diese, wenn Sie mit ROS vertraut sind und wissen, was Sie tun und welche Pakete Sie benötigen. Wenn Sie Pakete benötigen, die nicht in ROS-Comm enthalten sind, müssen Sie ebenfalls aus dem Quellcode kompilieren.

Desktop-Installation: Enthält GUI-Tools wie rqt, rviz und robotergenerische Bibliotheken. Könnte die bessere Wahl für ROS-Anfänger sein.

Ich werde mit der Installation von Desktop Install hier beginnen.

rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall

wstool init -j8 src melodic-desktop-wet.rosinstall

Der Befehl dauert einige Minuten, um alle ROS-Kernpakete in den src-Ordner herunterzuladen.

Wenn wstool init fehlschlägt oder unterbrochen wird, können Sie den Download fortsetzen, indem Sie Folgendes ausführen:

wstool update -j4 -t src

Schritt 2: Beheben Sie die Probleme

Beheben Sie die Probleme
Beheben Sie die Probleme

April 2020 BEARBEITEN: Überspringe diesen Schritt, es scheint, dass alle Probleme jetzt behoben wurden

Lassen Sie uns die kompatible Version von Assimp (Open Asset Import Library) installieren, um das Abhängigkeitsproblem collada_urdf zu beheben.

mkdir -p ~/ros_catkin_ws/external_src

cd ~/ros_catkin_ws/external_src

wget https://sourceforge.net/projects/assimp/files/assi… -O assimp-3.1.1_no_test_models.zip

entpacken Sie assimp-3.1.1_no_test_models.zip

cd assimp-3.1.1

cmake.

machen

sudo machen installieren

Lassen Sie uns auch OGRE für rviz installieren

sudo apt-get install libogre-1.9-dev

UPDATE Januar 2020: Die Probleme mit libbost wurden bereits von ROS-Entwicklern behoben, Sie können diesen Teil überspringen

/// skip /// Schließlich müssen wir die Probleme mit libboost beheben. Ich verwende die Lösung aus diesem Beitrag zu Stackoverflow:

Die Fehler beim Kompilieren werden durch die Funktion 'boost::posix_time::milliseconds' verursacht, die in neueren Boost-Versionen nur ein Integer-Argument akzeptiert, das actionlib-Paket in ROS jedoch an mehreren Stellen einen Float gibt. Sie können alle Dateien auflisten mit dieser Funktion (!im Ordner ros_catkin_ws!):

find -type f -print0 | xargs -0 grep 'boost::posix_time::milliseconds' | Schnitt -d: -f1 | sortieren -u

Öffnen Sie sie in Ihrem Texteditor und suchen Sie nach dem Funktionsaufruf 'boost::posix_time::milliseconds'.

und ersetze Aufrufe wie folgt:

boost::posix_time::millisekunden(loop_duration.toSec() * 1000.0f));

mit:

boost::posix_time::milliseconds(int(loop_duration.toSec() * 1000.0f)));

und diese:

boost::posix_time::millisekunden(1000.0f)

mit:

boost::posix_time::millisekunden(1000)

Ich empfehle Ihnen, den Nano-Texteditor zu verwenden, der einfacher ist als VIM;) Strg+O speichert, Strg+X wird beendet und Strg+W sucht.

///weiter_von_here///

Schritt 3: Erstellen und beziehen Sie die Installation

Als nächstes verwenden wir das rosdep-Tool, um alle restlichen Abhängigkeiten zu installieren:

rosdep install --from-paths src --ignore-src --rosdistro melodic -y

Sobald das Herunterladen der Pakete und das Auflösen der Abhängigkeiten abgeschlossen ist, können Sie die Catkin-Pakete erstellen. (Führen Sie diesen Befehl aus dem Ordner ros_catkin_ws aus)

sudo./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2

Wenn der Kompilierungsvorgang einfriert (sehr wahrscheinlich, wenn Sie die Desktop-Version installieren), müssen Sie den verfügbaren Swap-Speicherplatz erhöhen. Standardmäßig sind es 100 MB, versuchen Sie es auf 2048 MB zu erhöhen.

Viel Glück! Der gesamte Kompilierungsvorgang dauert ungefähr 1 Stunde (weniger für die Bare-Bones-Version), also machen Sie sich einen Tee.

Jetzt sollte ROS Melodic auf Ihrem Raspberry Pi 4 installiert sein. Wir beziehen die neue Installation mit folgendem Befehl:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

Öffnen Sie eine neue Shell, damit die Änderungen wirksam werden. Versuchen Sie, roscore zu starten, um zu überprüfen, ob alles erfolgreich war.

Schritt 4: RPLIDAR ROS-Paket installieren

RPLIDAR ROS-Paket installieren
RPLIDAR ROS-Paket installieren

Lassen Sie uns einen separaten Arbeitsbereich für andere Pakete erstellen, die nicht Teil des Kern-ROS sind.

Führen Sie in Ihrem Home-Ordner Folgendes aus:

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/

catkin_make

und source es zu bashrc:

echo "Quelle $HOME/catkin_ws/devel/setup.bash" >> ~/.bashrc

Okay, wir sind bereit, mit der Installation des RPLIDAR ROS-Pakets zu beginnen.

cd src

sudo git-Klon

CD..

catkin_make

Warten Sie, bis die Paketkompilierung abgeschlossen ist. Versuchen Sie, das Paket zu starten, um zu sehen, ob die Kompilierung erfolgreich war:

roslaunch rplidar_ros rplidar.launch

Wenn keine Fehler ausgegeben werden, machen Sie einen schnellen Feiertanz (*optional).

Jetzt fehlt nur noch das letzte Stück - da Sie den Raspberry Pi 4 wahrscheinlich im Headless-Modus betreiben, können wir keine Lidar-Nachrichten visualisieren. Dazu müssen wir ROS so einrichten, dass es auf mehreren Computern ausgeführt wird.

Schritt 5: Einrichten von ROS für die Ausführung auf mehreren Computern

Einrichten von ROS für die Ausführung auf mehreren Computern
Einrichten von ROS für die Ausführung auf mehreren Computern

Für diesen Teil benötigen Sie einen Ubuntu 18.04-Computer mit installiertem ROS Melodic. Da es sich um Ubuntu handelt, kann ROS einfach mit apt-get installiert werden, wie in diesem Tutorial beschrieben.

Nachdem Sie sowohl auf dem Raspberry Pi als auch auf Ihrem Desktop-Computer eine funktionierende ROS-Installation durchgeführt haben, überprüfen Sie die IP-Adressen beider Computer. Sie müssen sich im selben Netzwerk befinden!

Führen Sie roscore auf Ihrem Desktop-Computer aus und exportieren Sie ROS_MASTER_URI

roscore

export ROS_MASTER_URI=https://[your-desktop-machine-ip]:11311

Weiter auf Raspberry PI ausführen

export ROS_MASTER_URI=https://[your-desktop-machine-ip]:11311

export ROS_IP=[Ihre-Himbeer-Pi-IP]

und starten Sie die RPILIDAR-Startdatei

roslaunch rplidar_ros rplidar.launch

Wenn es erfolgreich gestartet wird, überprüfen Sie die auf Ihrem Desktop-Computer vorhandenen Themen mit der rotopic-Liste

Wenn Sie Nachrichten sehen / scannen können, funktioniert alles so, wie es funktionieren soll. Starten Sie dann RVIZ auf Ihrem Desktop-Computer, fügen Sie Laserscan-Nachrichten hinzu und wählen Sie /scan topic. Sie müssen auch den festen Rahmen in /laser ändern.

Voila!

Schritt 6: Fertig

Fertig!
Fertig!
Fertig!
Fertig!

Diese Anleitung kann ein erster Schritt zum Aufbau Ihres ROS-Roboters auf dem neuen Raspberry Pi 4 sein. Wir haben ROS Melodic installiert und die Installation für den Headless-Betrieb und die Verbindung zu unserem Desktop-Computer über ein drahtloses Netzwerk zur Fernsteuerung vorbereitet.

Die nächsten Schritte hängen davon ab, welchen Robotertyp Sie bauen möchten. Sie können Motoren und Encoder für Odometrie, Stereokamera für Visual SLAM und alle möglichen anderen aufregenden und nützlichen Dinge hinzufügen.

Die Hardware für diesen Artikel wurde freundlicherweise von Seeed Studio zur Verfügung gestellt. Schauen Sie sich Raspberry Pi 4, RPLIDAR A1M8 und andere Hardware für Hersteller im Seeed Studio Store an!

Fügen Sie mich auf LinkedIn hinzu, wenn Sie Fragen haben, und abonnieren Sie meinen YouTube-Kanal, um über weitere interessante Projekte im Bereich Machine Learning und Robotik informiert zu werden.