rover_navigation
Workspace para navegación autónoma con Nav2 y localización.
Paquetes
rover_nav2_bringup
Configuración y launch files para Nav2.
Contenido:
launch/: Launch files para Nav2params/: Parámetros de Nav2 personalizados para el rovernav2_params.yaml: Configuración principalcostmap_common.yaml: Footprint y capas de costmapplanner_server.yaml: Configuración del planificadorcontroller_server.yaml: Configuración del controlador
maps/: Mapas guardados
Parámetros clave:
robot_radius: 0.15 # Basado en track_width/2
footprint: [[0.15, 0.125], [0.15, -0.125], [-0.15, -0.125], [-0.15, 0.125]]
rover_localization
Fusión de sensores para localización.
Características:
- Fusión EKF (encoders + IMU + GPS)
- AMCL para localización con mapa
- Filtro de Kalman extendido
Nodos:
ekf_localization: Robot localization EKFgps_fusion: Integración de GPS
Compilación
cd rover_navigation
colcon build --symlink-install
source install/setup.bash
Dependencias
- rover_core
- rover_control
- Nav2
- robot_localization
Uso
# Navegación con mapa existente
ros2 launch rover_nav2_bringup navigation.launch.py map:=my_map.yaml
# SLAM (crear mapa)
ros2 launch rover_nav2_bringup slam.launch.py
# Solo localización
ros2 launch rover_localization localization.launch.py
Configuración
La geometría del robot se configura automáticamente desde los parámetros:
- wheel_radius: 0.075m
- wheelbase: 0.180m
- track_width: 0.250m
Esto genera el footprint y radio de colisión para Nav2.