Getting Started
Start leveraging the advantages of Behavior Trees 🌳 fully integrated with ROS 2 🤖.
NOTE
Currently we support Linux only!.
| ROS 2 | Build & Test |
|---|---|
| Jazzy Jalisco | |
| Kilted Kaiju | |
| Rolling Ridley |
Run your first Behavior
The following installation guide helps you getting started with AutoAPMS.
Create a ROS 2 workspace and clone this repository
bashmkdir ros2_ws && cd ros2_ws (mkdir src && cd src && git clone https://github.com/autoapms/auto-apms.git)Install all required dependencies. We assume that you already installed ROS 2 on your system
bashrosdep init # Skip this if rosdep has already been initialized rosdep update rosdep install --from-paths src --ignore-src -yBuild and install all packages required for
auto_apms_examplesbashcolcon build --packages-up-to auto_apms_examples --symlink-installRun your first behavior using
ros2 behavior. This is an extension of the ROS 2 CLI introduced by theauto_apms_ros2behaviorpackagebashsource install/setup.bash ros2 behavior run auto_apms_examples::demo::HelloWorld --blackboard name:=Turtle
Visual Demonstration
Finally, you may as well run a cool visual demonstration of what's possible with this framework.
Install dependencies and build package
auto_apms_simulationbash# 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-installRun the less intelligent behavior first
bashsource install/setup.bash ros2 launch auto_apms_simulation pyrobosim_hogwarts_launch.py # Press Ctrl+C to quitThe actions of each robot you've seen are executed using behavior trees. This functionality is provided by the
auto_apms_behavior_treepackage. 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_missionpackage. To achieve that, add a launch argumentbashsource install/setup.bash ros2 launch auto_apms_simulation pyrobosim_hogwarts_launch.py mission:=true # Press Ctrl+C to quitThe robots dynamically decide to retreat and wait until the hallway they are about to cross is not occupied anymore. They basically monitor if a certain event occurs and initialize a corresponding sequence of action if applicable. With this, we effectively introduced automatically orchestrated reactive behaviors.