This package wraps pyrobosim to create a visual demonstration of the mission architecture proposed by AutoAPMS.
-
Clone
auto-apmsandauto_apms_simulationinto your workspacegit clone https://github.com/AutoAPMS/auto-apms.git src/auto-apms git clone https://github.com/AutoAPMS/auto_apms_simulation.git src/auto_apms_simulation
-
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 -
Manually install python dependencies and build the package
python3 -m pip install -r src/auto_apms_simulation/requirements.txt --break-system-packages 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_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 argumentsource install/setup.bash ros2 launch auto_apms_simulation 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 corresponding sequence of action if applicable. With this, we effectively introduced automatically orchestrated reactive behaviors.