Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior 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 (-)

README

🤖 Streamlining Behaviors in ROS 2

auto-apms-gif

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 and ament_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.

  1. 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)
    
  1. 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
    
  1. Build and install all packages required for auto_apms_examples
    colcon build --packages-up-to auto_apms_examples --symlink-install
    
  1. Run your first behavior using ros2 behavior. This is an extension of the ROS 2 CLI introduced by the auto_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.

  1. 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
    
  1. 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.
  1. 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.
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): ~~~ 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. ~~~
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms
Repo symbol

auto-apms repository

behavior control robot uav drone interface px4 uas planning behavior-tree mission ros2 auto-apms