Guía de instalación
Este tutorial proporciona un entorno ROS 2 Jazzy reproducible compatible con MATLAB R2025.
Soporta:
- Entornos basados en Docker (recomendado)
- Instalación nativa en Ubuntu (usuarios avanzados)
Requisitos de MATLAB
Versiones compatibles
- MATLAB R2025a
- MATLAB R2025b
Toolboxes requeridas
- Simulink
- ROS Toolbox
- Robotics System Toolbox
- Symbolic Math Toolbox
- Universal Robots Support Package
Entornos compatibles
Puedes ejecutar este tutorial usando:
- Windows 11 + WSL2 + Docker
- Ubuntu 24 + Docker
- Ubuntu 24 nativo (sin Docker)
Instalación usando el script
Todos los entornos usan:
bash install.sh
Resumen de modos del script
| Modo | Instala Docker | Instala ROS | Compila el workspace | Caso de uso |
|---|---|---|---|---|
| fulldocker | ✅ Sí | Dentro del contenedor | ✅ Sí | Máquina nueva |
| docker | ❌ No | Dentro del contenedor | ✅ Sí | Docker ya instalado |
| fullnative | ❌ No | ✅ Sí | ✅ Sí | Ubuntu nativo |
| native | ❌ No | ❌ No | ✅ Sí | ROS ya instalado |
Instalación con Docker (recomendado)
Docker proporciona:
- Reproducibilidad
- Integración con MATLAB
- Configuración sencilla
Windows 11 + WSL2 + Docker
1. Instalar WSL2
Instala Ubuntu 24:
https://learn.microsoft.com/en-us/windows/wsl/install
2. Instalar usando el script
Dentro de WSL:
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack/scriptsbash install.sh fulldocker
Esto hará lo siguiente:
- Instalar Docker Engine
- Compilar la imagen Docker del tutorial
- Crear el contenedor llamado FCTR-container
Si Docker ya está instalado en WSL
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack/scriptsbash install.sh docker
Esto hará lo siguiente:
- Compilar la imagen Docker del tutorial
- Crear el contenedor preconfigurado
Comportamiento del contenedor Docker
El instalador:
- Compila la imagen
- Crea un contenedor con nombre
- Lo deja detenido
MATLAB:
- Iniciará el contenedor
- Se conectará a él
- Gestionará automáticamente su ciclo de vida
Opciones Docker personalizadas
Si usas un nombre de contenedor personalizado:
StartTutorialApplication('Rviz','model','ur3','DockerName','YourContainerName');
Si la ubicación del workspace es diferente:
StartTutorialApplication('Rviz','model','ur3','Workspace','path/to/workspace');
Ubuntu 24 + Docker
Si Docker todavía NO está instalado (ruta recomendada)
Instala todo mediante el script:
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack/scriptsbashinstall.sh fulldocker
Si Docker ya está instalado
Para instalar Docker manualmente, sigue:
https://docs.docker.com/engine/install/ubuntu/
Después ejecuta:
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack/scriptsbashinstall.sh docker
Esto hará lo siguiente:
- Compilar tu imagen Docker personalizada del tutorial
- Crear el contenedor
FCTR-container(detenido)
Instalar Docker manualmente (sin script)
Paso 1 — Instalar Docker
Para instalar Docker manualmente, sigue:
https://docs.docker.com/engine/install/ubuntu/
Paso 2 — Clonar el repositorio del tutorial
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack
Paso 3 — Compilar la imagen Docker del tutorial
Navega a la carpeta Docker (la ubicación puede variar ligeramente según la estructura del repositorio):
docker build -t from-code-to-robot-tutorial-docker docker
Esto compila la imagen personalizada del tutorial que contiene:
- ROS 2 Jazzy
- Gazebo / ros_gz
- stack ros2_control
- Workspace del tutorial
Paso 4 — Crear el contenedor del tutorial
Crea el contenedor manualmente:
xhost +``local:docker
docker create \\
--name FCTR-container \\
--env``=``"DISPLAY=``\$DISPLAY``" \\
--env``=``"QT_X11_NO_MITSHM=1" \\
--volume``=``"/tmp/.X11-unix:/tmp/.X11-unix:rw" \\
--device /dev/snd \\
--net``=``host \\
from-code-to-robot-tutorial-docker \\
bash -lc "trap : TERM INT; sleep infinity & wait"
Esto crea un contenedor detenido llamado:
FCTR-container
El contenedor:
- Todavía no está en ejecución
- Será iniciado automáticamente por MATLAB
Probar en MATLAB (MATLAB en Ubuntu)
Añade la carpeta robotics y sus subcarpetas al path, y luego ejecuta:
StartTutorialApplication('Rviz','model','ur5e');
JointStatesToRviz([0,-pi/2,0,-pi/2,0,0]);
StopTutorialApplications();
StartTutorialApplication('Simulation','model','ur3e','controller','effort');
StopTutorialApplications();
Información adicional de Docker
Si el nombre de tu contenedor es diferente:
StartTutorialApplication('Rviz','model','ur3','DockerName','YourContainerName');
Si la ruta de tu workspace es diferente:
StartTutorialApplication('Rviz','model','ur3','Workspace','path/to/workspace');
Instalación nativa en Ubuntu (sin Docker)
La instalación nativa proporciona:
- Mayor rendimiento
- Menor latencia
- Mejor acceso al hardware
Opción 1 — Instalación nativa automática (con instalación de ROS)
Instala ROS + dependencias + workspace.
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack/scriptsbash install.sh fullnative
Instala:
- ROS 2 Jazzy Desktop
- Gazebo + ros_gz
- stack ros2_control
- middleware DDS
- Dependencias del workspace
- Compilación completa
Opción 2 — Solo workspace (ROS ya instalado)
Usa esto si ROS 2 Jazzy ya está instalado.
git clone -b docker https://github.com/iocroblab/from_code_to_robot_ros2_stack.gitcd from_code_to_robot_ros2_stack/scriptsbash install.sh native
Esto hará lo siguiente:
- Clonar el workspace
- Importar repositorios
- Ejecutar rosdep
- Compilar con colcon
Opción 3 — Configuración manual del workspace nativo (sin script)
Para usuarios avanzados que prefieren configuración manual.
1. Instalar ROS 2 Jazzy
Sigue la guía oficial:
https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debians.html
2. Instalar herramientas requeridas
sudo apt updatesudo apt install -y \\git \\build-essential \\cmake \\pkg-config \\python3-pip \\python3-venv \\python3-colcon-common-extensions \\python3-rosdep \\python3-vcstool \\python3-argcomplete \\wget curl
3. Instalar paquetes ROS
- sudo apt install -y \
- ros-jazzy-desktop \
- ros-jazzy-ros-gz \
- ros-jazzy-gz-ros2-control \
- ros-jazzy-ros2-control \
- ros-jazzy-ros2-controllers \
- ros-jazzy-controller-manager \
- ros-jazzy-turtlebot3-msgs \
- ros-jazzy-rmw-cyclonedds-cpp \
- ros-jazzy-rmw-fastrtps-dynamic-cpp \
- ros-dev-tools
Inicializar rosdep:
sudo rosdep initrosdep update
4. Crear workspace
- mkdir -p ~/fctr_ws/src
- cd ~/fctr_ws/src
- git clone -b jazzy https://github.com/iocroblab/from_code_to_robot_ros2_stack.git
- source /opt/ros/jazzy/setup.bash
- cd ..
mkdir-psrc/modified-repositoriesvcsimportsrc/modified-repositories<src/from_code_to_robot_ros2_stack/stack.repos
5. Compilar workspace
- source /opt/ros/jazzy/setup.bash
rosdepupdaterosdepinstall--ignore-src--from-pathssrc-ycolconbuild--symlink-install--cmake-args-DCMAKE_BUILD_TYPE=Release
Uso del modo nativo en MATLAB
Al usar Ubuntu nativo:
StartTutorialApplication('Rviz','model','ur5e','Docker',false);
JointStatesToRviz([0,-pi/2,0,-pi/2,0,0];
StopTutorialApplications('Docker',false);
StartTutorialApplication('Simulation','model','ur3e','controller','effort','Docker',false);
StopTutorialApplications('Docker',false);
Solución de problemas
ROS no encontrado
ejecuta y vuelve a intentarlo:
- source /opt/ros/jazzy/setup.bash
errores de rosdep
- sudo rosdep init
- rosdep update
Errores de permisos de Docker
- sudo usermod -aG docker $USER
Después cierra sesión y vuelve a iniciarla.Configuración recomendada
| Caso de uso | Modo recomendado |
|---|---|
| Estudiantes / docencia | Docker |
| Workflows de MATLAB | Docker |
| Robots reales | Nativo |
| Simulación de alto rendimiento | Nativo |
| Desarrollo | Nativo |