![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms auto_apms_behavior_tree auto_apms_behavior_tree_core auto_apms_examples auto_apms_interfaces auto_apms_mission auto_apms_ros2behavior auto_apms_simulation auto_apms_util |
Repository Summary
Description | Streamlined behavior development and automated action management for ROS 2. |
Checkout URI | https://github.com/robin-mueller/auto-apms.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-07-29 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
auto_apms_behavior_tree | 0.0.0 |
auto_apms_behavior_tree_core | 0.0.0 |
auto_apms_examples | 0.0.0 |
auto_apms_interfaces | 0.0.0 |
auto_apms_mission | 0.0.0 |
auto_apms_ros2behavior | 0.0.0 |
auto_apms_simulation | 0.0.0 |
auto_apms_util | 0.0.0 |
README
Automated Action Planning and Management System
   🤖 Streamlining Behaviors in ROS 2
AutoAPMS is a heavily extensible development framework for behavior-based applications. It integrates BehaviorTree.CPP with ROS 2, implements a powerful execution engine and offers convenient CLI tooling for deploying behaviors with ease.
The intention of this project is to make it significantly more user-friendly and less error prone to develop autonomous robotics with behavior trees. Most of the packages are written in C++, but the core functionality can also be leveraged by a Python API.
The following ROS 2 versions are supported (Linux only):
ROS 2 Version | OS |
---|---|
Jazzy Jalisco | Ubuntu 24.04 (Noble Numbat) |
Highlights
There are plenty of ROS 2 packages which provide an implementation for behavior trees. AutoAPMS adopts the most popular one when it comes to C++ and embeds it into the ROS 2 ecosystem so that developers have a much easier time writing custom behaviors and distributing them in a ROS 2 workspace. Here are some of the most prominent features offered by this repository:
-
Utilizes
ament_cmake
andament_index
for efficient behavior resource management -
Inherently extensible due to plugin-based design
-
Flexible and highly configurable behavior execution engine
-
Powerful C++ behavior tree builder API (a supplement to BehaviorTree.CPP)
-
Easy integration of custom behavior tree node implementations
-
Support for custom behavior definitions and tree builder algorithms
-
ros2cli
extensions for orchestrating the system from the command line
🚀 Getting Started
The following installation guide helps you getting started with AutoAPMS.
- Create a ROS 2 workspace and clone this repository
mkdir ros2_ws && cd ros2_ws
(mkdir src && cd src && git clone https://github.com/robin-mueller/auto-apms.git)
- Install all required dependencies. We assume that you already installed ROS 2 on your system
rosdep init # Skip this if rosdep has already been initialized
rosdep update
rosdep install --from-paths src --ignore-src -y
- Build and install all packages required for
auto_apms_examples
colcon build --packages-up-to auto_apms_examples --symlink-install
- Run your first behavior using
ros2 behavior
. This is an extension of the ROS 2 CLI introduced by theauto_apms_ros2behavior
package
source install/setup.bash
ros2 behavior run auto_apms_examples::demo::HelloWorld --blackboard name:=Turtle
Finally, you may as well run a cool visual demonstration of what’s possible with this framework.
- Install dependencies and build package
auto_apms_simulation
# Python packages for simulation (not all are available with rosdep)
python3 -m pip install -r src/auto-apms/auto_apms_simulation/requirements.txt
colcon build --packages-up-to auto_apms_simulation --symlink-install
- Run the less intelligent behavior first
source install/setup.bash
ros2 launch auto_apms_simulation pyrobosim_hogwarts_launch.py
# Press Ctrl+C to quit
The actions of each robot you've seen are executed using behavior trees. This functionality is provided by the `auto_apms_behavior_tree` package. However, each robot is acting independently and they are not aware of their environment. Yet.
- Now, we want to make the robots more intelligent and allow them to dynamically adjust their behavior when they encounter other robots inside one of the hallways. This is realized by implementing fallback mechanisms introduced by the
auto_apms_mission
package. To achieve that, add a launch argument
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |
![]() |
auto-apms repositorybehavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms |