-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Integrating Behavior Trees with ArduPilot-ROS #33
Comments
Looks like a good start. It would be great if you could find other open source examples of behavior trees in use beyond nav2 so we can compare to! |
Hi! I’ve had some time to work further on this and have implemented some boilerplate scripts and base-level functionality in the ardupilot_bt repo. I attempted to make a PR, but the repository needs restructuring to accommodate multiple packages, such as one for Cartographer, one for behavior trees, etc., under ardupilot_ros. Additionally, we need better DDS support to incorporate topics and services for features like vehicle state (armed, mode, etc.), similar to what MAVROS offers. For the next steps, I’ll work on adding more interfaces and topics/services to AP_DDS, specifically targeted towards behavior tree support. I’d really appreciate your suggestions, @Ryanf55. |
Nice! A PR to restructure would be fine using All the things you listed are already supported.
You can also arm with the |
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:
This is just the starting point, and I'm happy to refine or adjust the plan based on feedback.
Looking forward to your feedbacks!
The text was updated successfully, but these errors were encountered: