Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

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

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.