The AHPA multi-agent project. This repository will be renamed and made public once the paper is submitted to a conference.
There are two important repositories which are included in this repository as Git submodules:
- patrolling_sim: Experiment code. Includes all AHPA-related code, including that used on physical robots.
- robot_turtlebot3: Physical robot code. Does not include any AHPA-related code.
To run the simulation, follow the steps in src/patrolling_sim/README.md.
Physical experiments require a command & control computer, robots, and a wireless network which connects all devices.
Robot software is best installed using the robot_configuration repository, which will automatically install pre-built Docker images to your robot and configure them to start upon boot. Follow the steps below to install.
-
Install the
robot_configurationrepository on your computer by following its instructions. -
If desired, modify the configuration and composition of the robot fleet in
robot_configuration/inventory.d/project_ahpa.yml. -
Install software to the robot fleet:
ansible-playbook -i ./inventory/ -i ./inventory.d/project_ahpa.yml ./deploy-software.yml -e tag=project-ahpa-<branch_name> -l <robot_names>
-
Reboot the robots. The robot software should start automatically and will await confirmation from the C2 software before beginning the experiment.
The command and control (C2) software will be installed on a Windows or (preferably) Ubuntu PC. Follow the steps below to build and run the software.
-
Install prerequisites:
- ROS 2 Jazzy
- Additional ROS 2 packages:
apt install ros-jazzy-rmw-cyclonedds-cpp - Python packages:
pip install networkx[default] numpy matplotlib zarr - Zenoh-ROS2 Bridge:
echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list > /dev/null sudo apt update
-
Clone this repository to the C2 PC. Ensure that all submodules are also downloaded by using the
--recurseflag.git clone --recurse git@github.com:NU-IDEAS-Lab/project_ahpa.git
-
Build the C2 software:
cd ./project_ahpa . /opt/ros/jazzy/setup.bash colcon build --packages-up-to target_c2
-
Launch the C2 software:
. ./install/setup.bash ros2 launch target_c2 all.launch.yaml
The robot software can be built and run directly on an Ubuntu PC (or on the robot itself). Follow the steps below.
-
Install prerequisites:
- ROS 2 Jazzy
- Additional ROS 2 packages:
apt install ros-jazzy-rmw-cyclonedds-cpp
-
Clone this repository to the robot or PC. Ensure that all submodules are also downloaded by using the
--recurseflag.git clone --recurse git@github.com:NU-IDEAS-Lab/project_ahpa.git
-
Build the robot software:
cd ./project_ahpa . /opt/ros/jazzy/setup.bash colcon build --packages-up-to target_robot
-
Launch the robot software:
. ./install/setup.bash ros2 launch target_robot test_L440.launch.yaml