Creación de un ROBOT con ROS2


 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:

Código
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:

  1. Instala Raspberry Pi Imager en tu PC.

  2. Selecciona:

    • Ubuntu Server 22.04 LTS (64-bit).

  3. Graba la tarjeta SD.

  4. Inserta la SD en la Raspberry y arranca.

1.2 Conectar por SSH

Desde Windows:

Código
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:

Código
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:

Código
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:

Código
sudo apt update
sudo apt install ros-humble-desktop

Configurar entorno:

Código
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:

Código
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:

Código
ros2 topic list

Si ves los tópicos de la Raspberry → ¡ya están conectados!

🟨 4. Probar comunicación básica

En la Raspberry:

Código
ros2 run demo_nodes_cpp talker

En Windows:

Código
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:

Código
ign gazebo -v 4 shapes.sdf

En otra terminal:

Código
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:

Código
pip install webots-ros2

Lanza un mundo:

Código
webots

Y ejecuta el nodo ROS 2 correspondiente.

🟦 6. Controlar el robot real desde Windows

Teleoperación desde Windows

Código
ros2 run teleop_twist_keyboard teleop_twist_keyboard

El nodo enviará /cmd_vel a la Raspberry.

🟫 7. Flujo de trabajo recomendado

  1. Simulas en Windows

    • Ajustas parámetros

    • Pruebas navegación, sensores, control

  2. Despliegas en Raspberry

    • Ejecutas nodos de hardware

    • Motores, sensores, cámaras

  3. Controlas desde Windows

    • RViz2

    • Teleop

    • Foxglove

  4. Iteras entre simulación y robot real Sin cambiar código gracias a ROS 2.

🟣 8. Diagrama de arquitectura

Código
                ┌──────────────────────────────┐
                │        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ódigo
install_ros2_humble.sh

Y dale permisos:

Código
chmod +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ódigo
ros2 topic list

Y prueba un nodo:

Código
ros2 run turtlesim turtlesim_node

Si abre la ventana, ROS 2 está funcionando.



                └──────────────────────────────┘

No hay comentarios:

Publicar un comentario