Installieren Sie ROS Kinetic, TurtleBot3, Raspicam auf Raspberry Pi 4b - Gunook
Installieren Sie ROS Kinetic, TurtleBot3, Raspicam auf Raspberry Pi 4b - Gunook
Anonim
Installieren Sie ROS Kinetic, TurtleBot3, Raspicam auf Raspberry Pi 4b
Installieren Sie ROS Kinetic, TurtleBot3, Raspicam auf Raspberry Pi 4b

TurtleBot3 Burger kommt mit Raspberry Pi 3 B/B+ und unterstützt nicht den neuen (Stand 9/2019) Raspberry Pi 4b. Befolgen Sie die folgenden Schritte, damit TurtleBot3 auf Raspberry Pi 4b funktioniert, einschließlich

  • ROS Kinetic aus Quellen auf Raspberry Pi 4b Raspbian Buster erstellen
  • Hinzufügen von TurtleBot3-spezifischen Paketen
  • Raspicam-Knoten zu. hinzufügen

Schritt 1: Raspbian installieren und Raspberry Pi 4b konfigurieren

Raspbian installieren und Raspberry Pi 4b konfigurieren
Raspbian installieren und Raspberry Pi 4b konfigurieren

Laden Sie ein Raspbian-Image herunter. Ich habe Raspbian Buster vom 2019-07-10 verwendet.

Brennen Sie das heruntergeladene Raspbian-Image auf eine SD-Karte (mindestens 8 GB groß). Verbinden Sie ein Display, eine Tastatur und eine Maus mit Ihrem Raspberry Pi 4b, booten Sie und verbinden Sie sich mit dem WLAN. Erweitern Sie das Dateisystem, um Ihre gesamte SD-Karte zu belegen, und aktivieren Sie optional SSH und VNC durch Ausführen

sudo raspi-config

Schritt 2: ROS Kinetic Sources herunterladen

ROS Kinetische Quellen herunterladen
ROS Kinetische Quellen herunterladen

Die folgenden Anweisungen folgen dem offiziellen ROS-Tutorial sowie DmitryM8 instructable.

Melden Sie sich bei Ihrem Raspberry Pi 4b an und führen Sie diese Befehle aus, um das ROS-Paket-Repository hinzuzufügen, Tools zu erstellen und das ROS-Abhängigkeitstool zu initialisieren.

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-generators python python-rosinstall build-essential cmake sudo rosdep init rosdep update

Erstellen Sie einen Arbeitsbereich, um ROS Kinetic aus der Quelle zu erstellen.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Laden Sie den Quellcode für das Paket "ros_comm" herunter, das wesentliche Module enthält, die auf dem Bordcomputer des Roboters ausgeführt werden sollen. Hier erstellt rosinstall_generator eine Liste von Quellcode-Repositorys zum Herunterladen. wstool fährt dann mit dem Herunterladen des Quellcodes fort.

rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall

wstool init -j8 src kinetic-ros_comm-wet.rosinstall rosdep install --from-paths src --ignore-src --rosdistro kinetic -y

Um TurtleBot3 und raspicam auszuführen, benötigen Sie zusätzlich zu ros_comm diese ROS-Pakete: common_msgs, rosserial, image_common, image_transport_plugins und diagnostics. Um diese Pakete hinzuzufügen, führen Sie diese Befehle aus.

rosinstall_generator common_msgs common_msgs rosserial image_common image_transport_plugins Diagnose nodelet_core --rosdistro kinetic --deps --wet-only --tar > kinetic-extra-wet.rosinstall

wstool merge -t src kinetic-extra-wet.rosinstall wstool update -j8 -t src rosdep install --from-paths src --ignore-src --rosdistro kinetic -y

Da sich die Abhängigkeitsversionen im Laufe der Zeit ändern, können Fehler wie "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): try to overwrite '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py', das sich auch im Paket python-rosdistro 0.7.2-1" befindet. Beheben Sie diese Fehler beim Versuch, zu überschreiben:

sudo dpkg --remove --force-all python-catkin-pkg python-catkin-pkg-modules python-rosdistro python-rosdistro-modules python-rospkg python-rospkg-modules

// oder sudo apt entfernen sudo apt --fix-broken install

Schritt 3: ROS-Kompilierungsfehler manuell beheben

ROS-Kompilierungsfehler manuell beheben
ROS-Kompilierungsfehler manuell beheben

Das Erstellen von ROS an dieser Stelle schlägt mit verschiedenen Fehlern fehl. Lassen Sie uns diese Fehler beheben, indem wir den ROS-Quellcode manuell bearbeiten.

Bearbeiten

/home/pi/ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp Zeile 885

Ersetzen

char* str = PyString_AsString(obj);

mit

const char* str = PyString_AsString(obj);

Bearbeiten Sie die Dateien unten.

/home/pi/ros_catkin_ws/src/rospack/include/rospack/rospack.h /home/pi/ros_catkin_ws/src/rospack/src/rospack.cpp /home/pi/ros_catkin_ws/src/rospack/src/utils.cpp

Entfernen Sie alle Vorkommen von

/tr1

und ersetzen Sie alle Vorkommen von

std::tr1

mit

Schub

Bearbeiten Sie die Dateien unten.

/home/pi/ros_catkin_ws/src/actionlib/include/actionlib/client/simple_action_client.h /home/pi/ros_catkin_ws/src/actionlib/include/actionlib/destruction_guard.h /home/pi/ros_catkin_ws/src/actionlib/include /actionlib/server/simple_action_server_imp.h /home/pi/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp /home/pi/ros_catkin_ws/src/actionlib/test/destruction_guard_test.cpp /home/pi/ros_catkin_ws/src/bond_core /bondcpp/src/bond.cpp /home/pi/ros_catkin_ws/src/ros_comm/roscpp/include/ros/timer_manager.h /home/pi/ros_catkin_ws/src/ros/roslib/test/utest.cpp

Ersetzen Sie alle Vorkommen von

boost::posix_time::millisekunden(…)

mit

boost::posix_time::millisekunden(int(…))

Bearbeiten Sie die Datei unten.

/home/pi/ros_catkin_ws/src/geometry2/tf2/src/buffer_core.cpp

Alles ersetzen

logWarn

mit

CONSOLE_BRIDGE_logWarn

und

logError

mit

CONSOLE_BRIDGE_logError

Schritt 4: Erstellen Sie ROS Kinetic

An dieser Stelle sollte der Build gelingen.

cd ~/ros_catkin_ws

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

An ~/.bashrc anhängen und auch in Ihrer Shell ausführen:

Quelle /opt/ros/kinetic/setup.bash

Schritt 5: Erstellen Sie TurtleBot3- und Raspicam-Pakete

Erstellen Sie TurtleBot3- und Raspicam-Pakete
Erstellen Sie TurtleBot3- und Raspicam-Pakete

Diese Anweisungen folgen dem ROBOTIS-Tutorial.

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/catkin_make source devel/setup.bash

~/.bashrc bearbeiten und anhängen

Quelle /home/pi/catkin_ws/devel/setup.bash

Jetzt ausführen

cd ~/catkin_ws/src

git-Klon https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git git-Klon https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git-Klon https://github.com/ROBOTIS-GIT/turtlebot3. git git-Klon https://github.com/UbiquityRobotics/raspicam_node.git cd ~/catkin_ws/src/turtlebot3 rm -r

Der Aufbau sollte gelingen.

Konfigurieren Sie Raspberry Pi 4b, um TurtleBot3-USB-Peripheriegeräte zu erkennen.

rosrun turtlebot3_bringup create_udev_rules

Führen Sie ifconfig aus und notieren Sie die IP von Raspbery Pi.

ifconfig

Bearbeiten Sie ~/.bashrc. Fügen Sie die folgenden Zeilen hinzu und führen Sie sie auch in Ihrer Shell aus.

export ROS_MASTER_URI=https://YOUR. ROS. MASTER. IP:11311

export ROS_HOSTNAME=YOUR. RASPBERRY. PI. IP

Synchronisieren Sie Raspberry Pi und PC-Zeit:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

An diesem Punkt sollte Ihre Einrichtung abgeschlossen sein. Jetzt können Sie Ihren Raspberry Pi 4b anstelle von Raspberry Pi 3/3+ in Ihrem TurtleBot3 verwenden.

Empfohlen: