Nachdem die Installation von Ubuntu 21.10 auf dem Raspberry Zero 2 mehrfach fehlgeschlagen ist, habe ich mich entschlossen auf dem Raspberry Zero 2 Debian Buster nebst ROS (1) zu installieren.
Auch bei Debian Bullseye landete ich auf keinem mir möglichen Pfad, ROS zum laufen zu bringen. Für echte Linux Profis wird das eventuell ein Klacks sein, aber ich will vorher nicht noch ein paar Jahre Linux Administration lernen.
Es gelang mir auch das Image von Ubuntu 21.10 auf dem Zero 2 zu starten, dennoch stellt Ubuntu 21.10 deutlich höhere Anforderungen an den Raspberry Pi Zero, als Debian Buster. Sobald man versucht mit sudo apt update / upgrade Ubuntu zu aktualisieren, kommt der Zero an seine Grenzen, wenn er einen neuen Kernel kompilieren soll. Das gelingt dann nur, wenn man vorher(!) ein entsprechend großes Swapfile angelegt hat.
Über die ROSBridge lässt sich ROS 1 später mit ROS2 verbinden. Der ROS-Jungle hat hiermit begonnen. Die Herausforderung besteht darin ROS2, ROS und MicroROS in Verbindung zu bringen.
Die Installation von ROS für den Zero 2 führt man am Besten auf einem vollwertigen Raspberry Pi 4 aus , indem man die SD Karte temporär in diesen hineinsteckt. Eine fehlerfreie Anleitung für ROS für Debian Buster habe ich hier gefunden.
Hier der Auszug meiner history (auf einem Raspberry Pi ausgeführt – nicht auf dem Zero 2!):
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu buster main" > /etc/apt/sources.list.d/ros-noetic.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt upgrade
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
sudo rosdep init
rosdep update
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws
rosinstall_generator ros_comm --rosdistro noetic --deps --wet-only --tar > noetic-ros_comm-wet.rosinstall
wstool init src noetic-ros_comm-wet.rosinstall
rosdep install -y --from-paths src --ignore-src --rosdistro noetic -r --os=debian:buster
sudo src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/noetic -j2 -DPYTHON_EXECUTABLE=/usr/bin/python3
source /opt/ros/noetic/setup.bash
Nach der Installation kann die Version auf dem Raspberry Pi Zero 2 verifiziert werden mit:
printenv | grep ROS
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROS_PACKAGE_PATH=/opt/ros/melodic/share
ROSLISP_PACKAGE_DIRECTORIES=
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_MASTER_URI=http://localhost:11311
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_DISTRO=melodic
Last but not least: Installiere rosdep2 mit pip3:
pip3 install rosdep