Pacote de navegação autônoma baseado no ROS 2 Navigation2 (Nav2). Este pacote fornece planejamento de trajetos, desvio de obstáculos e navegação autônoma orientada a objetivos para a plataforma de robôs BotBrain.
O pacote bot_navigation habilita a navegação autônoma do robô ao integrar a stack Nav2 com o sistema BotBrain. Ele gerencia:
- Planejamento global de trajetos
- Planejamento local de trajetória e desvio de obstáculos
- Coordenação de comportamentos (recuperação, seguir waypoints)
- Geração de comandos de velocidade para movimento autônomo
- Integração com sistemas de localização e mapeamento
- Utilitários em tempo de execução para interagir com ações do Nav2
Lançador principal do Nav2 que inicia todos os componentes:
Nós iniciados:
- controller_server – Executa trajetos planejados e gera comandos de velocidade
- smoother_server – Suaviza trajetos planejados
- planner_server – Computa trajetos globais
- behavior_server – Lida com comportamentos de recuperação (recuar, girar, aguardar)
- bt_navigator – Coordenador de navegação baseado em Behavior Tree
- waypoint_follower – Executa navegação por waypoints
Inicia nós auxiliares de utilidades de navegação.
Nós iniciados:
- nav2_utils – Nó de ciclo de vida que fornece serviços de tempo de execução para interação com Nav2
Lançador de alto nível que compõe a stack de navegação.
Inclui:
- nav_utils.launch.py
- nav2.launch.py
Este é o ponto de entrada recomendado para iniciar a navegação.
Uso:
ros2 launch bot_navigation navigation.launch.py
Nó de ciclo de vida que expõe uma interface de serviço para interagir com ações do Nav2.
Recursos:
- Fornece o serviço /cancel_nav2_goal (std_srvs/Trigger)
- Cancela objetivos ativos do Nav2 para:
- NavigateToPose
- FollowWaypoints
- Projetado para rodar junto com o Nav2 usando um executor multithread
- Namespaced automaticamente usando robot_name do robot_config.yaml
Exemplos de uso:
- Parada de emergência ou cancelamento externo de objetivos de navegação
- Integração com sistemas de comportamento de alto nível ou segurança
Cada pacote de robô fornece parâmetros de navegação ajustados:
- go2_pkg/config/nav2_params.yaml – Unitree Go2
- tita_pkg/config/nav2_params.yaml – Tita quadrúpede
- g1_pkg/config/nav2_params.yaml – G1 humanoide
Os parâmetros incluem:
- Footprint do robô e geometria de colisão
- Limites cinemáticos (velocidade, aceleração)
- Ajuste do controlador
- Configuração de camadas do costmap
A navegação requer os seguintes pacotes BotBrain:
- Localização (bot_localization) – Fornece o frame do mapa e a pose do robô
- Descrição (bot_description) – Fornece o modelo do robô e a árvore TF
- Twist Mux (bot_bringup) – Multiplexa comandos de navegação com outras fontes de movimento
bot_navigation/
├── bot_navigation/
│ └── __init__.py
├── launch/
│ ├── nav2.launch.py # Lançador principal do Nav2
│ ├── nav_utils.launch.py # Lançador de utilidades do Nav2
│ └── navigation.launch.py # Lançador de navegação de alto nível
├── scripts/
│ └── nav2_utils.py # Nó de ciclo de vida utilitário do Nav2
├── CMakeLists.txt
├── package.xml
└── README.md
Feito com ❤️ no Brasil