Installation
Learn how to download and install the software and get started with your first simulation. The subsections introduce you to additional software that you might be interested in when developing with AutoAPMS.
Hardware Compatibility
AutoAPMS is currently only available on Linux.
ROS 2 Version | OS | Status |
---|---|---|
Humble Hawksbill | Ubuntu 22.04 (Jammy Jellyfish) |
Setting up the Workspace
The following installation guide helps you getting started with AutoAPMS by building it from source. Finally, you may test your installation by running an example.
Firstly, you have to 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)
Afterwards, 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
Then, build and install all of the source packages up to auto_apms_examples
.
NOTE
We highly recommend building using the symlink-install
option since AutoAPMS extensively utilizes XML and YAML resources. This option installs symbolic links to those non-compiled source files meaning that you don't need to rebuild again and again when you're for example tweaking a behavior tree document file. Instead, your changes take effect immediately and you just need to restart your application.
source /opt/ros/humble/setup.bash
colcon build --packages-up-to auto_apms_examples --symlink-install
Congratulations, you've already successfully installed all necessary resources.
Launch an Example
You may now launch a lightweight simulation that applies the concepts offered by AutoAPMS. This should give you an idea of what's possible with this framework.
The basic robot behavior can be observed by executing
source install/setup.bash
ros2 launch auto_apms_examples 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 note 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, you simply have to specify the following launch argument.
source install/setup.bash
ros2 launch auto_apms_examples pyrobosim_hogwarts_launch.py mission:=true
# Press Ctrl+C to quit
The 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 certain sequence of action if applicable. With this, we effectively introduced automatically orchestrated reactive behaviors.