BehaviorTree.CPP
Biblioteca de árvores de comportamento em C++ para planejamento de tarefas de robôs, base do Nav2 e de sistemas ROS 2
Licença
MIT
Visão geral
O BehaviorTree.CPP é uma biblioteca C++ para criar e executar árvores de comportamento para planejamento de tarefas de robôs. As árvores são definidas em XML e construídas a partir de nós Action, Condition, Control e Decorator que compartilham dados por meio de um blackboard, com logging e replay para depuração. É a base da navegação baseada em comportamentos do Nav2 para ROS 2.
BehaviorTree.CPP é uma biblioteca C++ de alto desempenho para criar árvores de comportamento, amplamente usada em robótica para planejamento e execução de tarefas. É a base do sistema de navegação baseado em comportamento do Nav2.
Características principais incluem: - Definição de árvore baseada em XML - Tipos de nó customizados (Action, Condition, Control, Decorator) - Blackboard para compartilhamento de dados - Logging e replay para debugging - Execução capaz de tempo real - Editor gráfico Groot - Integração ROS 2 - Documentação e tutoriais extensivos
A biblioteca é usada em produção por muitas empresas de robótica para execução de tarefas complexas, desde sequências de manipulação até coordenação multi-robô.
Por que importa
O BehaviorTree.CPP é o framework padrão para planejamento de tarefas de robôs no ROS 2. Ele oferece a forma estruturada de compor comportamentos robóticos complexos da qual o Nav2 e muitos outros pacotes ROS 2 dependem — o que o torna uma infraestrutura fundamental para robôs autônomos.
Problema que resolve
Comportamentos robóticos complexos (navegar, pegar objetos, inspecionar, recuperar-se de erros) são difíceis de expressar como máquinas de estados finitos. As árvores de comportamento oferecem uma alternativa modular e hierárquica, mais fácil de projetar, depurar e modificar.
Pontos principais
- Biblioteca C++ padrão da indústria para execução de árvores de comportamento
- Base da navegação do Nav2 e de muitos pacotes de autonomia do ROS 2
- Editor gráfico (Groot2) para projeto visual de árvores de comportamento
- Suporta ações assíncronas, subárvores e modificação da árvore em tempo de execução
- Arquitetura reativa e modular para comportamentos robóticos complexos
Para quem é
- Desenvolvedores ROS 2 que criam comportamentos de robôs autônomos
- Engenheiros de robótica que projetam sistemas de planejamento de tarefas
- Equipes que usam o Nav2 e precisam de comportamentos de navegação personalizados
- Desenvolvedores de jogos que aplicam árvores de comportamento à IA de robôs
Limitações
- Por ser uma biblioteca C++, exige conhecimento de C++ para nós personalizados
- Os padrões de projeto de árvores de comportamento têm uma curva de aprendizado
- O editor gráfico Groot2 é comercial para recursos avançados
- Depurar árvores complexas exige entender a propagação de ticks