Simulación Gazebo con Robots Unitree (instalación local)¶
El sandbox del curso usa sim_lite para los módulos Unitree (U1-U12) porque es muy
ligero (~150 MB RAM vs. 3-4 GB de Gazebo). Pero si tienes un PC potente y quieres
una simulación Gazebo más realista del B2 o Go2, puedes configurarlo localmente.
Requisitos mínimos¶
- Ubuntu 24.04 o 22.04
- ROS 2 Jazzy instalado
- Gazebo Harmonic (la versión compatible con Jazzy)
- GPU recomendada (para renderizado fluido)
- RAM: 8 GB mínimo, 16 GB recomendado para B2
Opción 1: go2_ros2_sdk con Gazebo¶
El repositorio oficial unitree_ros2 incluye paquetes de descripción y simulación.
# Instalación en tu ros2_ws local
cd ~/ros2_ws/src
# Clonar descripción del robot
git clone https://github.com/unitreerobotics/unitree_ros2.git
# Instalar dependencias
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
# Compilar
colcon build --packages-select unitree_go unitree_api go2_description --symlink-install
source install/setup.bash
Opción 2: mundo de inspección con robot diferencial como placeholder¶
Si los paquetes de Unitree son difíciles de compilar, puedes usar el mundo de
inspección incluido en el sandbox con un robot diferencial como placeholder.
El mundo (industrial_inspection.world) tiene la misma geometría que el mundo
unitree_inspection de sim_lite.
# Copiar el mundo desde el sandbox
cp /opt/seed/worlds/industrial_inspection.world ~/ros2_ws/src/
# Lanzar con TurtleBot3 (como placeholder)
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py \
world:=~/ros2_ws/src/industrial_inspection.world
Todo el código del curso (unitree_*.py) funciona con TurtleBot3 porque los topics
son idénticos. La única diferencia: TurtleBot3 es diferencial (no holonómico), por lo
que el movimiento lateral (vy) no funcionará.
Opción 3: MuJoCo (recomendado para B2)¶
Unitree proporciona simulaciones MuJoCo para el B2 con mejor fidelidad física que Gazebo para robots cuadrúpedos.
pip install mujoco
pip install unitree_sdk2py
# Simulación B2 en MuJoCo (viene con el SDK)
python3 -m unitree_sdk2py.examples.b2.mujoco_sim
Pasos siguientes¶
Una vez que tengas Gazebo/MuJoCo configurado:
- Tu código de los módulos U1-U12 funciona sin cambios
- Para hardware real: conecta el robot y lanza
unitree_ros2_bridge.py - Consulta B2: Robot Industrial para specs del hardware
- Para SLAM 3D: ver SLAM Avanzado con FAST-LIO2