Table des matières:

Installer ROS Kinetic, TurtleBot3, Raspicam sur Raspberry Pi 4b : 5 étapes
Installer ROS Kinetic, TurtleBot3, Raspicam sur Raspberry Pi 4b : 5 étapes

Vidéo: Installer ROS Kinetic, TurtleBot3, Raspicam sur Raspberry Pi 4b : 5 étapes

Vidéo: Installer ROS Kinetic, TurtleBot3, Raspicam sur Raspberry Pi 4b : 5 étapes
Vidéo: Install ROS 2 Foxy Fitzroy on a Raspberry Pi 2024, Novembre
Anonim
Installez ROS Kinetic, TurtleBot3, Raspicam sur Raspberry Pi 4b
Installez ROS Kinetic, TurtleBot3, Raspicam sur Raspberry Pi 4b

TurtleBot3 Burger est livré avec Raspberry Pi 3 B/B+ et ne prend pas en charge le nouveau Raspberry Pi 4b (à compter de 9/2019). Suivez les étapes ci-dessous pour faire fonctionner TurtleBot3 sur Raspberry Pi 4b, y compris

  • construire ROS Kinetic à partir de sources sur Raspberry Pi 4b Raspbian Buster
  • ajout de packages spécifiques à TurtleBot3
  • ajout de raspicam-node à

Étape 1: Installez Raspbian et configurez Raspberry Pi 4b

Installer Raspbian et configurer Raspberry Pi 4b
Installer Raspbian et configurer Raspberry Pi 4b

Téléchargez une image Raspbian. J'ai utilisé Raspbian Buster daté du 2019-07-10.

Gravez l'image Raspbian téléchargée sur une carte SD (d'au moins 8 Go). Connectez un écran, un clavier et une souris à votre Raspberry Pi 4b, démarrez et connectez-vous au WiFi. Étendez le système de fichiers pour occuper toute votre carte SD et, en option, activez SSH et VNC en exécutant

sudo raspi-config

Étape 2: Télécharger les sources cinétiques ROS

Télécharger ROS Kinetic Sources
Télécharger ROS Kinetic Sources

Les instructions ci-dessous suivent le tutoriel officiel ROS ainsi que DmitryM8 instructable.

Connectez-vous à votre Raspberry Pi 4b et exécutez ces commandes pour ajouter un référentiel de packages ROS, créer des outils et initialiser l'outil de dépendance ROS.

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

Créez un espace de travail pour construire ROS Kinetic à partir des sources.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Téléchargez le code source du package "ros_comm", qui contient des modules essentiels destinés à fonctionner sur l'ordinateur de bord du robot. Ici, rosinstall_generator crée une liste de référentiels de code source à télécharger. wstool procède ensuite au téléchargement du code source.

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

Pour exécuter TurtleBot3 et raspicam, vous aurez besoin de ces packages ROS en plus de ros_comm: common_msgs, rosserial, image_common, image_transport_plugins et diagnostics. Pour ajouter ces packages, exécutez ces commandes.

rosinstall_generator common_msgs common_msgs rosserial image_common image_transport_plugins diagnostic 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

Au fur et à mesure que les versions des dépendances changent au fil du temps, il peut y avoir des erreurs telles que "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): essayer d'écraser '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py', qui se trouve également dans le package python-rosdistro 0.7.2-1". Résolvez ces erreurs « essayer d'écraser »:

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

// ou sudo apt supprime sudo apt --fix-broken install

Étape 3: Corrigez manuellement les erreurs de compilation ROS

Corriger manuellement les erreurs de compilation ROS
Corriger manuellement les erreurs de compilation ROS

La construction de ROS à ce stade échouera avec diverses erreurs. Corrigons ces erreurs en éditant manuellement le code source ROS.

Éditer

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

Remplacer

char* str = PyString_AsString(obj);

avec

const char* str = PyString_AsString(obj);

Modifiez les fichiers ci-dessous.

/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

Supprimer toutes les occurrences de

/tr1

et remplacer toutes les occurrences de

std::tr1

avec

renforcer

Modifiez les fichiers ci-dessous.

/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

Remplacer toutes les occurrences de

boost::posix_time::milliseconds(…)

avec

boost::posix_time::milliseconds(int(…))

Modifiez le fichier ci-dessous.

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

Remplace tout

logAvertir

avec

CONSOLE_BRIDGE_logAvertir

et

logError

avec

CONSOLE_BRIDGE_logError

Étape 4: Construire ROS Kinetic

À ce stade, la construction devrait réussir.

cd ~/ros_catkin_ws

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

Ajoutez à ~/.bashrc et exécutez également dans votre shell:

source /opt/ros/kinetic/setup.bash

Étape 5: Construire les packages TurtleBot3 et Raspicam

Construire les packages TurtleBot3 et Raspicam
Construire les packages TurtleBot3 et Raspicam

Ces instructions suivent le tutoriel ROBOTIS.

mkdir -p ~/catkin_ws/src

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

Éditez ~/.bashrc et ajoutez

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

Maintenant, exécutez

cd ~/catkin_ws/src

git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone https://github.com/ROBOTIS-GIT/turtlebot3. git git clone https://github.com/UbiquityRobotics/raspicam_node.git cd ~/catkin_ws/src/turtlebot3 rm -r Turtlebot3_description/ Turtlebot3_teleop/ Turtlebot3_navigation/ Turtlebot3_slam/ Turtlebot3_example/ cd ~/catkin_ws

La construction devrait réussir.

Configurez Raspberry Pi 4b pour reconnaître les périphériques USB TurtleBot3.

rosrun Turtlebot3_bringup create_udev_rules

Exécutez ifconfig et notez l'adresse IP de Raspbery Pi.

ifconfig

Modifiez ~/.bashrc. Ajoutez les lignes ci-dessous et exécutez-les également dans votre shell.

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

export ROS_HOSTNAME=VOTRE. RASPBERRY. PI. IP

Synchronisez l'heure du Raspberry Pi et du PC:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

À ce stade, votre configuration devrait être terminée. Vous pouvez maintenant utiliser votre Raspberry Pi 4b au lieu de Raspberry Pi 3/3+ dans votre TurtleBot3.

Conseillé: