Table of Contents
Einleitung
ROS-Projekte im Simulator machen Spaß. Aber echte Roboter bauen macht noch mehr Spaß!
In diesem Tutorial werde ich dir zeigen, wie du ROS 2 auf einem Raspberry Pi installierst.
Die Standardsoftware für den raspberry ist Raspbian, aber wir werden Ubuntu 22.04 verwenden, da es offiziell von ROS 2 unterstützt wird.
Es ist ein sogenanntes Long-Term-Support-Release, das bis 2027 unterstützt wird und wird von ROS 2 Humble Hawksbill als Tier 1 Plattform unterstützt.
Trivia der Name von Ubuntu 22.04 ist Jammy Jellyfish.
Voraussetzungen
Du solltest einen Raspberry Pi 4 oder neuer haben. 4 GB RAM sind das Minimum, 8 GB sind besser. Eine micro-SD-Karte mit mindestens 32 GB wird empfohlen.
Flasher installieren
Um Ubuntu 22.04 auf die SD-KArte zu bekommen, benötigen wir einen Flasher. Gehe auf https://www.raspberrypi.com/software/ und installiere den für dein System passenden Raspberry Pi Imager.
Öffne den Raspberry Pi Imager und wähle deinen Raspberry aus.
Gehe zu Other general-purpose OS und wähle Ubuntu aus. Dann wähle Ubuntu 22 Desktop 64bit aus.
Bevor du auf Write klickst, ändere noch folgende Settings:
Gehe auf den Tab Services und aktivere SSH
Das macht es dir leichter mit dem Raspberry zu arbeiten.
Raspberry Booten
Nun können wir die SD in den Raspberry schubsen und mal anschalten.
Wenn du eine cloud-init failed Fehlermeldung bekommst, ist das nicht schlimm. Drücke einfach Enter und du solltest den login-prompt bekommen.
Du kannst nach dem login auch via Terminal den cloud-init abschalten:
sudo touch /etc/cloud/cloud-init.disabled
Updaten
Wenn wir erfolgreich eingeloggt sind, sollten wir das System updaten.
Dazu musst du folgende Befehle auf der Konsole ausführen:
sudo apt update
sudo apt autoremove
sudo apt upgrade
sudo reboot
ROS 2 installieren
Die aktuelle Long-Term-Support-Version von ROS 2 ist Humble Hawksbill kurz Humble.
Das Ubuntu Universe Repository hinzufügen
Das Universe Repository ist ein von Canonical gepflegtes Repository, das von ROS 2 benötigt wird.
Wir können es mit folgenden Befehlen hinzufügen:
sudo apt install software-properties-common
sudo add-apt-repository universe
ROS 2 GPG Key hinzufügen hinzufügen
GPG ist ein Verschlüsselungsstandard, der auch von ROS 2 verwendet wird.
Wir können den ROS 2 GPG Key mit folgenden Befehlen hinzufügen:
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
ROS 2 Repository hinzufügen
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
Update und Upgrade
sudo apt update && sudo apt upgrade
ROS 2 installieren
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
ROS 2 Umgebungsvariablen setzen
Damit ROS in der Konsole verfügbar ist, müssen die Umgebungsvariablen gesetzt werden:
Um nicht in jedem neuen Terminal die setup.bash von humble zu sourcen, können wir die bash.rc erweitern:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
Installation testen
Wir können die Installation nun testen, indem wir in einem Terminal folgendes Eingeben:
ros2 run demo_nodes_cpp talker
In einem zweiten Terminal geben wir Folgendes ein:
ros2 run demo_nodes_cpp listener
Fazit
Wir haben erfolgreich ROS 2 auf dem Raspberry Pi installiert. In den nächsten Teilen werden wir uns mit weiteren Konzepten von ROS 2 beschäftigen und das Ball-Chaser-Projekt starten.
Troubleshooting
Fall du die Fehlermeldung:
The following packages have unmet dependencies:
python3-pytest : Depends: python3-pluggy (< 1.0) but 1.4.0-1landscape1 is to be installed
E: Unable to correct problems, you have held broken packages.
bekommst, kannst du folgendes versuchen: Schaue mit dem command
apt-cache policy python3-pluggy
ob eine Version verfügbar ist, die kleiner als 1.0 ist. Dann kannst du die Version mit folgendem Befehl installieren:
sudo apt install python3-pluggy=0.13.1-7.1