Tabla de contenido:

ROS Melodic en Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 pasos
ROS Melodic en Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 pasos

Video: ROS Melodic en Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 pasos

Video: ROS Melodic en Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 pasos
Video: How to Install ROS Melodic on the Raspberry Pi OS - Buster! 2024, Mes de julio
Anonim
Image
Image
ROS Melodic en Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8
ROS Melodic en Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8

Este artículo cubrirá el proceso de instalación de ROS Melodic Morenia en Raspberry Pi 4 ejecutando la última versión de Debian Buster y cómo usar RPLIDAR A1M8 con nuestra instalación.

Dado que Debian Buster se lanzó oficialmente hace solo unas semanas (en el momento de escribir este artículo), no hay paquetes ROS preconstruidos para instalar con apt-get, que es un método preferido de instalación. Por lo tanto, necesitaremos construirlo desde la fuente. Créame, no es tan aterrador como parece. El proceso se describe en este tutorial oficial, pero para construir ROS Melodic en Raspberry Pi necesitaremos hacer algunas modificaciones.

En caso de que todavía tenga miedo, aquí hay una imagen divertida que * podría * ayudarlo a relajarse. Proporcione comentarios si el nivel de relajación proporcionado fue suficiente. De lo contrario, se reemplazará con la imagen de un gato gracioso.

Enero de 2020 EDITAR: Dado que ha pasado medio año desde que publiqué este artículo, es posible que haya habido algunos cambios en ROS o Buster. Hice una imagen para Raspberry Pi 4 hace un tiempo, después de escribir este tutorial. Un colaborador lo ha subido a Google Drive

Abril de 2020 EDITAR: Recientemente encontré tiempo para rehacer la instalación de ROS Melodic en la imagen más reciente de Raspbian del sitio oficial de Raspberry Pi. He editado este instructivo en consecuencia. También creé y compartí imágenes limpias y comprimidas:

Raspbian Buster Lite 2020-02-13 Lanzamiento con ROS Melodic Bare-bones Necesita una tarjeta SD de 8 GB

Raspbian Buster con escritorio 2020-02-13 Lanzamiento con ROS Melodic Desktop Necesita tarjeta SD de 16 GB

Puede que sea la forma más rápida de poner en funcionamiento su sistema. Si desea compilar ROS usted mismo, siga leyendo el artículo.

Paso 1: Instalar las dependencias de Bootstrap y descargar los paquetes

Comencemos configurando los repositorios e instalando las dependencias necesarias

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

Luego inicialice rosdep y actualícelo

sudo rosdep init

actualización de rosdep

Cuando termine, creemos un espacio de trabajo dedicado a catkin para construir ROS y muévase a ese directorio.

mkdir ~ / ros_catkin_ws

cd ~ / ros_catkin_ws

Ahora tienes dos opciones:

ROS-Comm: instalación (Bare Bones): instale este si está familiarizado con ROS y sabe lo que está haciendo y qué paquetes necesitará. Si necesita paquetes no incluidos en ROS-Comm, también deberá compilar desde el código fuente.

Instalación de escritorio: incluye herramientas GUI, como rqt, rviz y bibliotecas genéricas de robots. Podría ser una mejor opción para los principiantes de ROS.

Iré con la instalación de Desktop Install aquí.

rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar> melodic-desktop-wet.rosinstall

wstool init -j8 src melodic-desktop-wet.rosinstall

El comando tardará unos minutos en descargar todos los paquetes ROS principales en la carpeta src.

Si wstool init falla o se interrumpe, puede reanudar la descarga ejecutando:

actualización de wstool -j4 -t src

Paso 2: solucionar los problemas

Solucione los problemas
Solucione los problemas

EDICIÓN de abril de 2020: omita este paso, parece que todos los problemas se han solucionado ahora

Instalemos la versión compatible de Assimp (Open Asset Import Library) para solucionar el problema de dependencia collada_urdf.

mkdir -p ~ / ros_catkin_ws / external_src

cd ~ / ros_catkin_ws / external_src

wget https://sourceforge.net/projects/assimp/files/assi… -O assimp-3.1.1_no_test_models.zip

descomprimir assimp-3.1.1_no_test_models.zip

cd assimp-3.1.1

cmake.

hacer

sudo hacer instalar

Instalemos también OGRE para rviz

sudo apt-get install libogre-1.9-dev

ACTUALIZACIÓN de enero de 2020: los desarrolladores de ROS ya han solucionado los problemas con libbost, puede omitir esta parte

/// skip /// Finalmente, necesitaremos solucionar los problemas con libboost. Estoy usando la solución de esta publicación en stackoverflow:

Los errores durante la compilación son causados por la función 'boost:: posix_time:: milliseconds' que en las versiones más recientes de boost solo acepta un argumento entero, pero el paquete actionlib en ROS le da un flotante en varios lugares. Puede listar todos los archivos usando esa función (! en la carpeta ros_catkin_ws!):

find -type f -print0 | xargs -0 grep 'boost:: posix_time:: milisegundos' | cut -d: -f1 | sort -u

Ábrelos en tu editor de texto y busca la llamada a la función 'boost:: posix_time:: milliseconds'.

y reemplace llamadas como esta:

boost:: posix_time:: milisegundos (loop_duration.toSec () * 1000.0f));

con:

boost:: posix_time:: milisegundos (int (loop_duration.toSec () * 1000.0f)));

y estos:

boost:: posix_time:: milisegundos (1000.0f)

con:

boost:: posix_time:: milisegundos (1000)

Te recomiendo que uses un editor de texto nano, que es más simple que VIM;) Ctrl + O está guardando, Ctrl + X está saliendo y Ctrl + W está buscando.

/// continue_from_here ///

Paso 3: compile y obtenga la instalación

A continuación, usamos la herramienta rosdep para instalar el resto de las dependencias:

rosdep install --from -path src --ignore-src --rosdistro melodic -y

Una vez que haya terminado de descargar los paquetes y resolver las dependencias, estará listo para construir los paquetes catkin. (Ejecute este comando desde la carpeta ros_catkin_ws)

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

Si el proceso de compilación se congela (muy probablemente, si instala la versión de escritorio), necesita aumentar el espacio de intercambio disponible. De forma predeterminada, es de 100 MB, intente aumentarlo a 2048 MB.

¡Buena suerte! Todo el proceso de compilación dura aproximadamente 1 hora (menos para la versión Bare-bones), así que prepara un poco de té.

Ahora ROS Melodic debería estar instalado en su Raspberry Pi 4. Obtendremos la nueva instalación con el siguiente comando:

echo "fuente /opt/ros/melodic/setup.bash" >> ~ /.bashrc

Abra un nuevo shell para que los cambios surtan efecto. Intente iniciar roscore para verificar si todo fue exitoso.

Paso 4: Instale el paquete RPLIDAR ROS

Instalar el paquete RPLIDAR ROS
Instalar el paquete RPLIDAR ROS

Creemos un espacio de trabajo separado para otros paquetes, que no son parte del núcleo ROS.

Desde tu carpeta de inicio haz:

mkdir -p ~ / catkin_ws / src

cd ~ / catkin_ws /

catkin_make

y enviarlo a bashrc:

echo "fuente $ HOME / catkin_ws / devel / setup.bash" >> ~ /.bashrc

Bien, estamos listos para comenzar a instalar el paquete RPLIDAR ROS.

cd src

sudo git clon

CD..

catkin_make

Espere a que finalice la compilación del paquete. Intente iniciar el paquete para ver si la compilación fue exitosa:

roslaunch rplidar_ros rplidar.launch

Si no muestra ningún error, haz un baile de celebración rápido (* opcional).

Ahora solo falta la última pieza, ya que probablemente esté ejecutando Raspberry Pi 4 en modo sin cabeza, no podemos visualizar los mensajes LIDAR. Para eso, necesitaremos configurar ROS para que se ejecute en varias máquinas.

Paso 5: Configure ROS para que se ejecute en varias máquinas

Configurar ROS para que se ejecute en varias máquinas
Configurar ROS para que se ejecute en varias máquinas

Para esta parte, necesitará una computadora Ubuntu 18.04 con ROS Melodic instalado. Dado que es Ubuntu, ROS se puede instalar simplemente usando apt-get como se describe en este tutorial.

Una vez que haya trabajado la instalación de ROS tanto en Raspberry Pi como en su máquina de escritorio, verifique las direcciones IP de ambas máquinas. ¡Deben estar en la misma red!

Ejecute roscore en su computadora de escritorio y exporte ROS_MASTER_URI

roscore

exportar ROS_MASTER_URI = https:// [su-escritorio-máquina-ip]: 11311

Siguiente en la ejecución de Raspberry PI

exportar ROS_MASTER_URI = https:// [su-escritorio-máquina-ip]: 11311

exportar ROS_IP = [tu-frambuesa-pi-ip]

y ejecute el archivo de lanzamiento RPILIDAR

roslaunch rplidar_ros rplidar.launch

Si se inicia con éxito, verifique los temas presentes en su máquina de escritorio con la lista rostopic

Si puede ver / escanear mensajes, todo funciona como se supone que debe funcionar. Luego, inicie RVIZ en su máquina de escritorio, agregue mensajes de escaneo láser y elija / escanear tema. También deberá cambiar el marco fijo a / láser.

¡Voila!

Paso 6: ¡Listo

¡Hecho!
¡Hecho!
¡Hecho!
¡Hecho!

Esta guía puede ser un primer paso hacia la construcción de su robot ROS sobre la nueva Raspberry Pi 4. Hemos instalado ROS Melodic y preparado la instalación para funcionar sin cabeza y conectarnos a nuestra máquina de escritorio a través de una red inalámbrica para control remoto.

Los siguientes pasos dependen del tipo de robot que desee construir. Puede agregar motores y codificadores para odometría, cámara estéreo para Visual SLAM y todo tipo de otras cosas interesantes y útiles.

El hardware de este artículo fue proporcionado amablemente por Seeed Studio. ¡Eche un vistazo a Raspberry Pi 4, RPLIDAR A1M8 y otro hardware para fabricantes en la tienda Seeed Studio!

Agrégueme a LinkedIn si tiene alguna pregunta y suscríbase a mi canal de YouTube para recibir notificaciones sobre proyectos más interesantes relacionados con el aprendizaje automático y la robótica.

Recomendado: