Tutorial de instalación de ROS en GNU/Linux y creación de un entorno virtual

Publicado por Daniel Rincón el 5 de abril de 2023 a las 11:53. En Contenido de YouTube, Robótica

Cuando entre a la universidad a estudiar Ingeniería electrónica estaba muy ansioso de saber que iba a aprender a realizar robots, finalizando la carrera me di cuenta que a pesar de haber hecho uno que otro robot aún me faltaba mucho por aprender sobre la robótica, es por ello que decidí enfocar mi proyecto de grado en este campo de la electrónica y en medio de ese camino encontré esta poderosa herramienta ROS. ROS por sus siglas es inglés (Robot Operating System) es un software que nos permite hacer una infinidad de cosas relacionadas con la robótica, es por ello que he preparado un tutorial de la instalación en GNU/Linux en sus versiones disponibles: Ubuntu y Debian. Además prepare un pequeño robot con su ambiente respectivo para probar el funcionamiento de ROS, espero que te quedes leyendo hasta el final y veas lo que ROS puede llegar a hacer.

Parte 1: Instalación de ROS

Para realizar la instalación de ROS me he basado en los tutoriales oficiales ROS Noetic (para Debian 10 y Ubuntu 20.04), ROS Melodic (para Debian 9 y Ubuntu 18.04). Lo primero que debemos hacer es actualizar la base de datos de los repositorios del sistema, como vemos a continuación:

sudo sh -c 'echo "deb http://deb.debian.org/debian $(lsb_release -sc) contrib non-free" > /etc/apt/sources.list'
sudo sh -c 'echo "deb-src http://deb.debian.org/debian $(lsb_release -sc) contrib non-free" > /etc/apt/sources.list'
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe restricted multiverse"
sudo sh -c 'echo "deb http://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 update
sudo sh -c 'echo "deb http://deb.debian.org/debian $(lsb_release -sc) contrib non-free" > /etc/apt/sources.list'
sudo sh -c 'echo "deb-src http://deb.debian.org/debian $(lsb_release -sc) contrib non-free" > /etc/apt/sources.list'

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

sudo apt update
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe restricted multiverse"
sudo sh -c 'echo "deb http://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 update

Ya con los paquetes actualizados vamos a seleccionar la instalación mas completa de ROS (esto con el fin de tener los simuladores en 2D y 3D), con el siguiente comando.

sudo apt install ros-noetic-desktop-full
sudo apt install ros-melodic-desktop-full

*Nota para usuarios Debian 9 y Ubuntu 18.04: Para estas 2 distribuciones es necesario un paso adicional, es necesario inicializar rosdep.

sudo rosdep init
rosdep update

Ahora vamos a configurar ROS en el entorno del sistema, esto con el fin de tenerlo instalado de manera global.

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

 

Parte 2: Instalación de dependencias

 

Para probar ROS con el robot que realice es necesario que instalemos algunas dependencias, estas son ros_control y ros_controllers, un par de paquetes que facilitan el control de los robots. Pueden leer más acerca de este paquete en la página oficial ros_control. Además de un paquete de python llamado getch sirve para leer el teclado, esto es necesario porque el robot se va a mover cuando oprimamos ciertas teclas. También necesitamos instalar git para descargar el repositorio.

sudo apt install ros-noetic-ros-control ros-noetic-ros-controllers
python3 -m pip install getch
sudo apt install git
sudo apt install ros-melodic-ros-control ros-melodic-ros-controllers
python -m pip install getch
sudo apt install git

 

Parte 3: Configuración del entorno virtual

 

Ahora lo que vamos a realizar es crear un entorno virtual o espacio de trabajo (siguiendo este tutorial: Configurando el entorno de ROS) donde vamos a instalar un pequeño robot que diseñé para mostrarles el funcionamiento de ROS en una simulación.

Este entorno lo llamaremos catkin_tutorial, básicamente para crear el entorno, necesitamos crear una carpeta y allí dentro una que se llame src, así el compilador de ROS detectará que se va a usar como entorno de ROS. Cuando hayamos realizado esto vamos a compilar dentro de la carpeta que creamos por medio del comando catkin_make. A continuación podemos ver los comandos usados.

mkdir -p ~/catkin_tutorial/src
cd ~/catkin_tutorial/
catkin_make

En este punto ya logramos compilar nuestro entorno correctamente, ya es hora de agregar algún robot, y como ya les mencione he preparado un entorno y un robot sencillo para hacer pruebas se encuentra en mi repositorio de github (robot_example), para hacer uso de ello lo vamos a clonar dentro de la carpeta src (todos los robots y códigos que vayamos a utilizar en ROS deben ir en esta carpeta) y luego volver a compilar, lo procedemos a hacer con los siguientes comandos:

cd ~/catkin_tutorial/src/
git clone https://github.com/danielr460/robot_example
cd ~/catkin_tutorial/
catkin_make

Ahora vamos a añadir un ambiente que preparé para el simulador, basicamente es un terreno plano de color verde y un cielo con nubes, es necesario copiarlo en la carpeta de configuración del simlador (Gazebo), para copiarlo lo podemos hacer de la siguiente forma:

cp -R src/robot_example/models/ground_plane_grass/ ~/.gazebo/models/
ls ~/.gazebo/models/
--> ground_plane_grass

 

Parte 4: Simulación

 

Para la simulación del robot_example necesitamos abrir varias terminales para ejecutar el robot.

En la primera terminal vamos a ejecutar roscore que es el núcleo de ROS. ROS tiene un sistema de conexión por medio de nodos (de una manera similar a la que funciona internet), al ejecutar este comando todos los siguientes nodos se van a comunicar entre si por medio de este este núcleo.

roscore

Ahora vamos a ejecutar en la segunda terminal el código que abre el simulador y además contiene el robot. Cuando aparezca Gazebo vamos a darle play al simulador y ya va a estar disponible para ver la simulación.

cd ~/catkin_tutorial
source devel/setup.bash
roslaunch robot_example gazebo.launch

Posteriormente, vamos a ejecutar en una tercera terminal el codigo del control, básicmanente es código que estará leyendo cuando oprimamos el teclado y cada vez que hagamos click en alguna de las flechas el robot efectuará alguna acción (si es la flecha de la derecha el robot se movera hacia adelante, si es la izquierda hacia atrás y si es arriba o abajo el robot frenará). Luego de ejecutar este comando tenemos que tener oprimir las teclas en la terminal donde la ejecutamos para que ROS reconozca que se oprimio una tecla.

cd ~/catkin_tutorial
source devel/setup.bash
roslaunch robot_example control.launch
Etiquetas: Robótica ROS Simulación Software Tutorial

Compartir       

 ⋅  0 comentarios han sido publicados.

Tu comentario

Necesario para verificar el comentario.