Simulación de Vehículo con Dirección Ackermann en ROS2 con Gazebo Sim Harmonic
Este proyecto presenta la simulación de un vehículo personalizado con capacidades de dirección Ackermann, desarrollado usando ROS2 y el entorno Gazebo Sim Harmonic. El modelo integra una variedad de sensores y herramientas de navegación para operación autónoma, siendo una de las primeras implementaciones de un vehículo con dirección Ackermann en este marco de simulación.
| Visualización de Nube de Puntos LiDAR 3D | Modelo de Entorno de Almacén |
| ----- | ----- |
|
|
|
¡Si te gusta este proyecto, considera darle una ⭐ para mostrar tu apoyo!
Tabla de Contenidos
- Simulación de Vehículo con Dirección Ackermann en ROS2 con Gazebo Sim Harmonic
- Características
- 1 Dirección Ackermann
- 2 Comunicación ROS2
- 3 Sensores
- 4 Navegación
- 5 Control Manual con joystick externo
- 6 Visualización
- Requisitos
- Instalación Local
- Instalación con Docker
- Uso
- 1 Simulación Básica y Control Manual
- 2 SLAM Localización y Mapeo Simultáneos
- 3 Navegación con Nav2
- Trabajo Futuro
- Galería
- Árbol TF
- Historial de Estrellas
Características
1. Dirección Ackermann
- Un modelo de vehículo personalizado construido con dinámica realista de dirección Ackermann para maniobrabilidad precisa.
2. Comunicación ROS2
- Todos los datos de los sensores y señales de control están completamente integrados en el ecosistema ROS2 para una interoperabilidad sin interrupciones.
3. Sensores
- IMU: Proporciona orientación y velocidad angular.
- Odometría: Garantiza una retroalimentación precisa del estado del vehículo.
- LiDAR: Montado para la detección de obstáculos y escaneo ambiental. Soporta la generación de nubes de puntos 3D para tareas avanzadas de percepción.
- Cámaras:
- Frontal
- Trasera
- Lado izquierdo
- Lado derecho
# al inicio de las secciones relevantes de cámara en saye_bringup/config/ros_gz_bridge.yaml para activarlas (por ejemplo, /camera/left_raw, /camera/right_raw, /camera/rear_raw).4. Navegación
- Integrado con la pila Nav2 para navegación autónoma.
- AMCL (Localización Adaptativa Monte Carlo) para una mayor precisión posicional.
- Técnicas SLAM implementadas para mapeo en tiempo real y comprensión del entorno.
- Parámetros ajustados para un rendimiento óptimo en la navegación.
5. Control Manual (con joystick externo)
- Soporte añadido para control manual mediante joystick en el entorno de simulación, permitiendo a los usuarios probar el movimiento del vehículo de forma interactiva.
6. Visualización
- Visualización completa del modelo y datos de sensores en RViz2, proporcionando información sobre estados del robot y retroalimentación ambiental.
Requisitos
- ROS2 (Humble)
- Gazebo Sim Harmonic
- RViz2
- Nav2
Instalación Local
- Debe asegurarse de que la instalación de Gazebo Harmonic y ROS (ros_gz) esté realizada:
sudo apt-get install ros-${ROS_DISTRO}-ros-gzsudo apt-get install ros-humble-ros-gzharmonic (Solo versión Humble)Más detalles sobre la instalación de Gazebo y ROS: Enlace
- Clonar el repositorio:
mkdir -p ackermann_sim/src && cd ackermann_sim/srcgit clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2cd ..
- Compilar el proyecto:
colcon build && source install/setup.bash
- Configurar las variables de entorno:
bash
# Set environment variables for current session
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
` Para configuración permanente:
Para hacer que estas variables de entorno sean permanentes, agréguelas a su archivo
.bashrc:
`bash
# Add environment variables to .bashrc
echo 'export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
echo 'export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
# Apply changes
source ~/.bashrc
` > Nota: Reemplace
/your/path/ con la ruta real de su instalación.Instalación con Docker
También puede ejecutar la simulación usando Docker, lo que garantiza un entorno consistente en diferentes sistemas.
Requisitos previos
- Docker
- NVIDIA Container Toolkit (para soporte GPU)
Pasos para ejecutar con Docker
- Clonar el repositorio:
`bash
mkdir -p ackermann_sim/src && cd ackermann_sim/src
git clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2
cd ackermann-vehicle-gzsim-ros2
`- Construya y ejecute el contenedor de Docker:
`bash
docker run -it \
--name ackermann_sim \
--hostname ackermann_sim \
--env="DISPLAY=$DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--privileged alitekes1/ackermann_sim:latest
`
- Si desea un terminal adicional para el mismo contenedor
`bash
docker exec -it ackermann_sim bash
`
Nota: Dentro del contenedor, puedes ejecutar los comandos de simulación con normalidad.
Uso
1. Simulación básica y control manual
- Inicia la simulación:
`bash
ros2 launch saye_bringup saye_spawn.launch.py
`
- Control del coche:
`bash
ros2 run teleop_twist_keyboard teleop_twist_keyboard
`2. SLAM (Localización y Mapeo Simultáneos)
- Para ejecutar SLAM Toolbox para el mapeo, inicie lo siguiente después de comenzar la simulación:
`bash
ros2 launch saye_bringup slam.launch.py
`

3. Navegación con Nav2
- Para ejecutar la simulación con el paquete Nav2 para navegación autónoma, inicie lo siguiente después de arrancar la simulación:
`bash
ros2 launch saye_bringup navigation_bringup.launch.py
``

Nota: Los videos de YouTube arriba se reproducen a 4x de velocidad. Puedes acceder a los videos haciendo clic en las imágenes.
Trabajo Futuro
- Soporte SLAM 3D:
- Entrenar el vehículo para manejar escenarios complejos de forma autónoma usando algoritmos avanzados de DRL.
- Características Mejoradas:
- Explorar configuraciones adicionales de sensores y estrategias de navegación.
- Integración de Nav2 con Localización 3D
- En lugar de AMCL(2D), implementación de algoritmos más precisos y robustos.
Galería
Nube de Puntos LiDAR 3D y Entorno
| Visualización de Nube de Puntos LiDAR 3D | Modelo del Entorno del Almacén |
| ----------------------------------------------------------------- | ---------------------------------------------------------------- |
|
|
|
Vehículo y Navegación
| Simulación Gazebo Harmónica | RViz2 |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| |
|
|
|
|
|
|
|
Árbol TF

Historial de Estrellas
--- Tranlated By Open Ai Tx | Last indexed: 2026-05-13 ---