Skip to content

Proposal: Integrating Behavior Trees with ArduPilot-ROS #33

Description

@snktshrma

Hi there,
This proposal outlines the plan to introduce Behavior Tree (BT) support to ArduPilot using ROS2 AP-DDS interface. @Ryanf55 suggested this framework to allow users to have a modular and flexible interface. This is inspired by how Nav2 in ROS 2 uses BTs to handle planning, failsafes, and advanced integrations.

Overview

The idea is to use BTs to manage tasks like planning, failsafes, and mission execution in a more intuitive way. This would also simplify integrating advanced features like SLAM modules, depth estimators, external planners and even external systems like Nav2. It will also make it easy to allow users integrate existing features like cartographer SLAM to their systems and have flexible control over the system. Users would benefit from a drag-and-drop approach to behavior design, using tools like Groot to build and debug BTs visually.

Here’s the rough plan:

  • Start with some groundwork; explore BehaviorTree.CPP or similar libraries and experiment with a basic integration and controlling the vehicle.
  • Create BT nodes for common ArduPilot tasks like waypoints, failsafe triggers, or high-level planning.
  • Integrate with Groot so users can visually design and debug trees.
  • Test with real-world scenarios (e.g., mission planning or obstacle avoidance, etc).

This is just the starting point, and I'm happy to refine or adjust the plan based on feedback.

Looking forward to your feedbacks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions