Creación de un ROBOT con ROS2
🟢 Arquitectura recomendada: Raspberry Pi con ROS 2 + PC Windows con simulación
Esta es la configuración más estable y usada hoy en día:
Raspberry Pi 4 Ejecuta ROS 2, nodos de hardware, sensores, motores, etc.
PC Windows Ejecuta simuladores y herramientas gráficas:
Ignition Gazebo (Fortress, Garden, Harmonic)
Webots
RViz2
Foxglove Studio
Unity/Unreal con ROS 2 bridge
Ambos se comunican por la red usando DDS (ROS 2), sin necesidad de configurar un ROS Master.
🟦 ¿Qué simuladores funcionan bien con ROS 2 en Windows?
✔️ Ignition Gazebo (Gazebo Garden / Harmonic)
Es el simulador más recomendado para ROS 2.
Ventajas:
Funciona nativamente en Windows.
Integración oficial con ROS 2.
Física realista.
Sensores avanzados (LIDAR, cámaras, IMU…).
✔️ Webots
Muy estable en Windows y con soporte ROS 2.
✔️ Unity + ROS 2 bridge
Ideal si quieres simulaciones más visuales o videojuegos.
✔️ Unreal Engine + ROS 2 bridge
Para simulaciones de alta fidelidad.
🟨 ¿Qué simuladores NO funcionan bien en Windows?
Gazebo Classic → No funciona nativamente en Windows.
RViz2 → Funciona, pero más estable en Linux.
🧩 ¿Cómo se conectan Windows y Raspberry Pi con ROS 2?
ROS 2 usa DDS, así que ambos se detectan automáticamente si están en la misma red.
Solo necesitas:
Que ambos tengan la misma versión de ROS 2 (por ejemplo, Humble).
Que estén en la misma red WiFi o Ethernet.
Que no haya firewalls bloqueando multicast.
Después de eso, desde Windows puedes ver los tópicos de la Raspberry:
ros2 topic list
Y desde la Raspberry puedes ver los de Windows.
🕹️ Flujo de trabajo típico
1. La Raspberry Pi ejecuta el robot real
Ejemplo:
Nodo de motores
Nodo de sensores
Nodo de navegación
Nodo de cámara
2. Windows ejecuta la simulación
Ejemplo:
Ignition Gazebo con un robot virtual
RViz2 para visualizar mapas y sensores
Teleoperación desde teclado o joystick
3. Puedes alternar entre robot real y simulado
Gracias a ROS 2:
Puedes probar algoritmos en simulación.
Luego enviarlos a la Raspberry sin cambiar código.
Incluso mezclar datos reales y simulados.
ROS 2 en Raspberry Pi 4 + Windows + Simulación
🟩 1. Preparar la Raspberry Pi 4
1.1 Instalar Ubuntu 22.04 ARM64
Descarga la imagen oficial de Ubuntu Server 22.04 para Raspberry Pi.
Pasos:
Instala Raspberry Pi Imager en tu PC.
Selecciona:
Ubuntu Server 22.04 LTS (64-bit).
Graba la tarjeta SD.
Inserta la SD en la Raspberry y arranca.
1.2 Conectar por SSH
Desde Windows:
ssh ubuntu@IP_DE_LA_RASPBERRY
Contraseña por defecto: ubuntu
(Te pedirá cambiarla al iniciar).
1.3 Instalar ROS 2 Humble en la Raspberry
Ejecuta:
sudo apt update && sudo apt upgrade -y
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
export LANG=en_US.UTF-8
Añadir repositorio ROS:
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo apt install curl
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
Instalar ROS 2 Humble:
sudo apt update
sudo apt install ros-humble-desktop
Configurar entorno:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
🟦 2. Preparar Windows con ROS 2 y simuladores
2.1 Instalar ROS 2 Humble en Windows
Descarga el instalador oficial de ROS 2 Humble para Windows.
Instala:
ROS 2 Humble
Chocolatey
Python 3.10
Visual Studio Build Tools
Configura el entorno en PowerShell:
call C:\dev\ros2_humble\local_setup.bat
2.2 Instalar Ignition Gazebo (Garden o Harmonic)
Ignition funciona muy bien en Windows.
Instálalo desde:
Paquete MSI oficial
O desde
choco install ignition-garden
2.3 Instalar herramientas útiles
VS Code
Foxglove Studio
PlotJuggler
Git
🟧 3. Conectar Windows y Raspberry Pi con ROS 2
ROS 2 usa DDS → no necesitas configurar ROS_MASTER_URI.
Solo asegúrate de que:
Ambos están en la misma red.
No hay firewall bloqueando multicast.
Prueba desde Windows:
ros2 topic list
Si ves los tópicos de la Raspberry → ¡ya están conectados!
🟨 4. Probar comunicación básica
En la Raspberry:
ros2 run demo_nodes_cpp talker
En Windows:
ros2 run demo_nodes_py listener
Si ves mensajes → comunicación OK.
🟩 5. Usar simuladores en Windows conectados a la Raspberry
5.1 Ignition Gazebo + ROS 2
Ejemplo: lanzar un robot simulado:
ign gazebo -v 4 shapes.sdf
En otra terminal:
ros2 run ros_gz_bridge parameter_bridge /cmd_vel@geometry_msgs/msg/Twist@ignition.msgs.Twist
Ahora puedes enviar comandos desde Windows o desde la Raspberry.
5.2 Webots + ROS 2
Webots tiene un paquete oficial:
pip install webots-ros2
Lanza un mundo:
webots
Y ejecuta el nodo ROS 2 correspondiente.
🟦 6. Controlar el robot real desde Windows
Teleoperación desde Windows
ros2 run teleop_twist_keyboard teleop_twist_keyboard
El nodo enviará /cmd_vel a la Raspberry.
🟫 7. Flujo de trabajo recomendado
Simulas en Windows
Ajustas parámetros
Pruebas navegación, sensores, control
Despliegas en Raspberry
Ejecutas nodos de hardware
Motores, sensores, cámaras
Controlas desde Windows
RViz2
Teleop
Foxglove
Iteras entre simulación y robot real Sin cambiar código gracias a ROS 2.
🟣 8. Diagrama de arquitectura
┌──────────────────────────────┐
│ Windows PC │
│ - ROS 2 Humble │
│ - Ignition / Webots │
│ - RViz2 / Foxglove │
└──────────────┬──────────────┘
│ DDS
│ (auto-discovery)
┌──────────────┴──────────────┐
│ Raspberry Pi 4 │
│ - ROS 2 Humble │
│ - Motores / Sensores │
│ - Nodos de hardware │
🟢 SCRIPT AUTOMATIZADO PARA INSTALAR ROS 2 HUMBLE EN RASPBERRY PI 4
Copia y pega este script en un archivo llamado:
Códigoinstall_ros2_humble.sh
Y dale permisos:
Códigochmod +x install_ros2_humble.sh
Luego ejecútalo:
Código./install_ros2_humble.sh
📜 Contenido del script
Código#!/bin/bash
set -e
echo "=============================================="
echo " Instalador automático de ROS 2 Humble"
echo " Raspberry Pi 4 - Ubuntu 22.04 ARM64"
echo "=============================================="
# 1. Actualizar sistema
echo "[1/8] Actualizando sistema..."
sudo apt update && sudo apt upgrade -y
# 2. Configurar locales
echo "[2/8] Configurando locales..."
sudo apt install -y locales
sudo locale-gen en_US en_US.UTF-8
export LANG=en_US.UTF-8
echo "export LANG=en_US.UTF-8" >> ~/.bashrc
# 3. Añadir repositorios necesarios
echo "[3/8] Añadiendo repositorios..."
sudo apt install -y software-properties-common curl gnupg lsb-release
sudo add-apt-repository universe -y
# 4. Añadir clave de ROS 2
echo "[4/8] Añadiendo clave de ROS 2..."
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
-o /usr/share/keyrings/ros-archive-keyring.gpg
# 5. Añadir repositorio de ROS 2
echo "[5/8] Añadiendo repositorio de ROS 2..."
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 6. Instalar ROS 2 Humble Desktop
echo "[6/8] Instalando ROS 2 Humble Desktop..."
sudo apt update
sudo apt install -y ros-humble-desktop
# 7. Instalar herramientas adicionales
echo "[7/8] Instalando herramientas adicionales..."
sudo apt install -y \
python3-colcon-common-extensions \
python3-argcomplete \
ros-humble-ros-base \
ros-humble-rqt* \
ros-humble-turtlesim
# 8. Configurar entorno
echo "[8/8] Configurando entorno..."
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
echo "=============================================="
echo " Instalación completada correctamente"
echo " ROS 2 Humble está listo para usarse"
echo "=============================================="
🧪 Cómo comprobar que ROS 2 funciona
Después de reiniciar la Raspberry:
Códigoros2 topic list
Y prueba un nodo:
Códigoros2 run turtlesim turtlesim_node
Si abre la ventana, ROS 2 está funcionando.
└──────────────────────────────┘
No hay comentarios:
Publicar un comentario