Tabla de contenido:

Instale ROS Kinetic, TurtleBot3, Raspicam en Raspberry Pi  4b: 5 pasos
Instale ROS Kinetic, TurtleBot3, Raspicam en Raspberry Pi 4b: 5 pasos

Video: Instale ROS Kinetic, TurtleBot3, Raspicam en Raspberry Pi 4b: 5 pasos

Video: Instale ROS Kinetic, TurtleBot3, Raspicam en Raspberry Pi  4b: 5 pasos
Video: Install ROS 2 Foxy Fitzroy on a Raspberry Pi 2024, Noviembre
Anonim
Instale ROS Kinetic, TurtleBot3, Raspicam en Raspberry Pi 4b
Instale ROS Kinetic, TurtleBot3, Raspicam en Raspberry Pi 4b

TurtleBot3 Burger viene con Raspberry Pi 3 B / B + y no es compatible con la nueva (a fecha de 9/2019) Raspberry Pi 4b. Siga los pasos a continuación para que TurtleBot3 funcione en Raspberry Pi 4b, incluido

  • construyendo ROS Kinetic a partir de fuentes en Raspberry Pi 4b Raspbian Buster
  • agregar paquetes específicos de TurtleBot3
  • agregando raspicam-node a

Paso 1: Instale Raspbian y configure Raspberry Pi 4b

Instale Raspbian y configure Raspberry Pi 4b
Instale Raspbian y configure Raspberry Pi 4b

Descarga una imagen de Raspbian. Usé Raspbian Buster con fecha de 2019-07-10.

Grabe la imagen de Raspbian descargada en una tarjeta SD (al menos 8 Gb de tamaño). Conecte una pantalla, teclado y mouse a su Raspberry Pi 4b, arranque y conéctese a WiFi. Extienda el sistema de archivos para ocupar toda su tarjeta SD y, opcionalmente, habilite SSH y VNC ejecutando

sudo raspi-config

Paso 2: Descarga ROS Kinetic Sources

Descarga ROS Kinetic Sources
Descarga ROS Kinetic Sources

Las instrucciones a continuación siguen el tutorial oficial de ROS, así como el instructable de DmitryM8.

Inicie sesión en su Raspberry Pi 4b y ejecute estos comandos para agregar el repositorio de paquetes ROS, construir herramientas e inicializar la herramienta de dependencia 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-wstool python-rosinstall build-essential cmake sudo rosdep init rosdep update

Cree un espacio de trabajo para construir ROS Kinetic desde la fuente.

mkdir ~ / ros_catkin_ws

cd ~ / ros_catkin_ws

Descargue el código fuente del paquete "ros_comm", que contiene módulos esenciales destinados a ejecutarse en la computadora de a bordo del robot. Aquí rosinstall_generator crea una lista de repositorios de código fuente para descargar. wstool luego procede a descargar el código fuente.

rosinstall_generator ros_comm --rosdistro kinetic --deps - solo húmedo --tar> kinetic-ros_comm-wet.rosinstall

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

Para ejecutar TurtleBot3 y raspicam, necesitará estos paquetes ROS además de ros_comm: common_msgs, rosserial, image_common, image_transport_plugins y diagnostics. Para agregar estos paquetes, ejecute estos comandos.

rosinstall_generator common_msgs common_msgs rosserial image_common image_transport_plugins diagnóstico 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 -path src --ignore-src --rosdistro kinetic -y

A medida que las versiones de las dependencias cambian con el tiempo, puede haber errores como "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): intentando sobrescribir '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py ', que también está en el paquete python-rosdistro 0.7.2-1 ". Resuelva estos errores de "intentar sobrescribir":

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 eliminar sudo apt --fix-broken install

Paso 3: corregir manualmente los errores de compilación de ROS

Corregir manualmente los errores de compilación de ROS
Corregir manualmente los errores de compilación de ROS

La construcción de ROS en este punto fallará con varios errores. Arreglemos esos errores editando manualmente el código fuente de ROS.

Editar

/home/pi/ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp línea 885

Reemplazar

char * str = PyString_AsString (obj);

con

const char * str = PyString_AsString (obj);

Edite los archivos a continuación.

/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

Eliminar todas las apariciones de

/ tr1

y reemplazar todas las apariciones de

std:: tr1

con

aumentar

Edite los archivos a continuación.

/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 / rosc_catkin_ws / sr. /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 / bond_wscore / /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

Reemplazar todas las ocurrencias de

boost:: posix_time:: milisegundos (…)

con

boost:: posix_time:: milisegundos (int (…))

Edite el archivo a continuación.

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

Reemplaza todo

logWarn

con

CONSOLE_BRIDGE_logWarn

y

logError

con

CONSOLE_BRIDGE_logError

Paso 4: Construya ROS Kinetic

En este punto, la compilación debería realizarse correctamente.

cd ~ / ros_catkin_ws

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

Agregue a ~ /.bashrc y también ejecute en su shell:

fuente /opt/ros/kinetic/setup.bash

Paso 5: Construya los paquetes TurtleBot3 y Raspicam

Cree paquetes TurtleBot3 y Raspicam
Cree paquetes TurtleBot3 y Raspicam

Estas instrucciones siguen el tutorial de ROBOTIS.

mkdir -p ~ / catkin_ws / src

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

Edite ~ /.bashrc y agregue

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

Ahora, ejecuta

cd ~ / catkin_ws / src

clon de git https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git clon de git https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git clon de git 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

La construcción debería tener éxito.

Configure Raspberry Pi 4b para reconocer los periféricos USB TurtleBot3.

rosrun turtlebot3_bringup create_udev_rules

Ejecute ifconfig y anote la IP de Raspbery Pi.

ifconfig

Edite ~ /.bashrc. Agregue las líneas a continuación y también ejecútelas en su shell.

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

exportar ROS_HOSTNAME = YOUR. RASPBERRY. PI. IP

Sincronice la hora de la Raspberry Pi y la PC:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

En este punto, su configuración debería estar completa. Ahora puede usar su Raspberry Pi 4b en lugar de Raspberry Pi 3/3 + en su TurtleBot3.

Recomendado: