Sommario:

Installa ROS Kinetic, TurtleBot3, Raspicam su Raspberry Pi 4b: 5 passaggi
Installa ROS Kinetic, TurtleBot3, Raspicam su Raspberry Pi 4b: 5 passaggi

Video: Installa ROS Kinetic, TurtleBot3, Raspicam su Raspberry Pi 4b: 5 passaggi

Video: Installa ROS Kinetic, TurtleBot3, Raspicam su Raspberry Pi 4b: 5 passaggi
Video: Установите ROS 2 Foxy Fitzroy на Raspberry Pi 2024, Dicembre
Anonim
Installa ROS Kinetic, TurtleBot3, Raspicam su Raspberry Pi 4b
Installa ROS Kinetic, TurtleBot3, Raspicam su Raspberry Pi 4b

TurtleBot3 Burger viene fornito con Raspberry Pi 3 B/B+ e non supporta il nuovo Raspberry Pi 4b (dal 9/2019). Segui i passaggi seguenti per far funzionare TurtleBot3 su Raspberry Pi 4b, incluso

  • costruire ROS Kinetic da sorgenti su Raspberry Pi 4b Raspbian Buster
  • aggiunta di pacchetti specifici per TurtleBot3
  • aggiungendo raspicam-nodo a

Passaggio 1: installa Raspbian e configura Raspberry Pi 4b

Installa Raspbian e configura Raspberry Pi 4b
Installa Raspbian e configura Raspberry Pi 4b

Scarica un'immagine Raspbian. Ho usato Raspbian Buster datato 2019–07–10.

Masterizza l'immagine Raspbian scaricata su una scheda SD (di almeno 8 Gb di dimensione). Collega un display, una tastiera e un mouse al tuo Raspberry Pi 4b, avvia e connettiti al WiFi. Estendi il file system per occupare l'intera scheda SD e, facoltativamente, abilita SSH e VNC eseguendo

sudo raspi-config

Passaggio 2: scarica le fonti cinetiche ROS

Scarica sorgenti cinetiche ROS
Scarica sorgenti cinetiche ROS

Le istruzioni seguenti seguono il tutorial ROS ufficiale e l'istruzione DmitryM8.

Accedi al tuo Raspberry Pi 4b ed esegui questi comandi per aggiungere il repository del pacchetto ROS, creare strumenti e inizializzare lo strumento di dipendenza 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-roinstall-wstool python python-rosinstall build-essential cmake sudo rosdep init rosdep update

Crea uno spazio di lavoro per creare ROS Kinetic dal sorgente.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Scarica il codice sorgente per il pacchetto "ros_comm", che contiene moduli essenziali destinati a funzionare sul computer di bordo del robot. Qui rosinstall_generator crea un elenco di repository di codice sorgente da scaricare. wstool procede quindi al download del codice sorgente.

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

Per eseguire TurtleBot3 e raspicam avrai bisogno di questi pacchetti ROS oltre a ros_comm: common_msgs, rosserial, image_common, image_transport_plugins e diagnostics. Per aggiungere questi pacchetti esegui questi comandi.

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

Poiché le versioni delle dipendenze cambiano nel tempo, potrebbero esserci errori come "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): tentativo di sovrascrivere '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py', che è anche nel pacchetto python-rosdistro 0.7.2-1". Risolvi questi errori di "tentativo di sovrascrittura":

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

// o sudo apt remove sudo apt --fix-broken install

Passaggio 3: correggi manualmente gli errori di compilazione del ROS

Correggi manualmente gli errori di compilazione del ROS
Correggi manualmente gli errori di compilazione del ROS

La creazione di ROS a questo punto fallirà con vari errori. Risolviamo questi errori modificando manualmente il codice sorgente di ROS.

Modificare

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

Sostituire

char* str = PyString_AsString(obj);

insieme a

const char* str = PyString_AsString(obj);

Modifica i file di seguito.

/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

Rimuovi tutte le occorrenze di

/tr1

e sostituire tutte le occorrenze di

std::tr1

insieme a

Incremento

Modifica i file di seguito.

/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

Sostituisci tutte le occorrenze di

boost::posix_time::millisecondi(…)

insieme a

boost::posix_time::millisecondi(int(…))

Modifica il file qui sotto.

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

Sostituisci tutto

logAvverti

insieme a

CONSOLE_BRIDGE_logAvviso

e

logError

insieme a

CONSOLE_BRIDGE_logError

Passaggio 4: crea ROS Kinetic

A questo punto la build dovrebbe avere successo.

cd ~/ros_catkin_ws

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

Aggiungi a ~/.bashrc ed esegui anche nella tua shell:

source /opt/ros/kinetic/setup.bash

Passaggio 5: crea i pacchetti TurtleBot3 e Raspicam

Costruisci i pacchetti TurtleBot3 e Raspicam
Costruisci i pacchetti TurtleBot3 e Raspicam

Queste istruzioni seguono il tutorial ROBOTIS.

mkdir -p ~/catkin_ws/src

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

Modifica ~/.bashrc e aggiungi

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

Ora, esegui

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_make_ws && catkin

La build dovrebbe avere successo.

Configura Raspberry Pi 4b per riconoscere le periferiche USB TurtleBot3.

rosrun turtlebot3_bringup create_udev_rules

Esegui ifconfig e annota l'IP di Raspbery Pi.

ifconfig

Modifica ~/.bashrc. Aggiungi le righe sottostanti ed eseguile anche nella tua shell.

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

esporta ROS_HOSTNAME=YOUR. RASPBERRY. PI. IP

Sincronizzare Raspberry Pi e l'ora del PC:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

A questo punto, la configurazione dovrebbe essere completata. Ora puoi usare il tuo Raspberry Pi 4b invece di Raspberry Pi 3/3+ nel tuo TurtleBot3.

Consigliato: