This package simulates a Multi-agent system for search and rescue missions where we use turtlebot3 package in ROS Noetic. Our multi-agent system consists of 2- robots that are each specialized for a certain task. 5 turtlebots will be simulated as threats and another 5 turtlebots will be simulating the behavior of security forces (SWAT). The objective of the SWAT bots is to neutralize the threats and then go on to rescue the hostages. The SWAT knows the location of the hostages.
This software is a stepping stone in developing and studying the interaction between security forces and the adversaries. The objective is run all the swat bot simultaneously without bumping into each other.
The project will help us to gain insight as to how ROS Noetic, Gazebo and RViz works. The goal is to have understanding as to how services and nodes work. Gazebo and Rviz was another tool which we plan to learn through this project
- Project: Muti-Agent Search and Rescue
- Overview of prosposed work, including risks, mitigation, timeline
- UML and activity diagrams
- Developer-level documentation
- Naveen Mangla (https://github.com/nvnmangla)
- Mahima Arora (https://github.com/mahimaarora2208)
- Abhinav Garg (https://github.com/15abhinavgarg)
Sprint | #1 | #2 | #3 |
---|---|---|---|
Naveen Mangla | Design Keeper | Navigator | Driver |
Mahima Arora | Navigator | Driver | Navigator |
Abhinav Garg | Driver | Design Keeper | Design Keeper |
- OS : Ubuntu 20.04
- ROS Distro : ROS Noetic
- Package build type :
ament_cmake
- Package dependencies :
rclcpp
,std_msgs
- ROS Noetic Installation : link
Badges for Github CI and codecov are located at the top of the readme file. Additional information on building the software to test for coverage is shown below.
We are going with a Apache 2.0 License.
This project will be completed using AIP process with the involvement of 3 programmers using Pair-programming in turns. One of the programmer would be driver while other 2 would be navigator and design keeper. The detailed Product Backlog, Iteration Backlogs and Work Log are mentioned in the link given below :
- Phase 1 Proposal
- Phase 1 Video
- UML Class Diagram Phase 1
- Activity Diagram Phase 1
- UML Class Diagram Phase 2
- Activity Diagram Phase 2)
- Quad Chart
- Video Demonstration
The below link contains combined notes of sprint 1,2 and 3. Link
- We created a custom gazebo world which could simulate the requirements for our project
- For the custom world, we also generated a binary occupancy grid, loaded in rviz
cd <your_ROS2_ws>/src
git clone https://github.com/mahimaarora2208/multi_agent_hostage_rescue.git
cd ..
rosdep install -i --from-path src --rosdistro galactic -y
colcon build --packages-select multi_agent_hostage_rescue
source . install/setup.bash
source ~/<your ROS2 installation>/opt/ros/galactic/setup.bash
Run the following commands to test your test cases:
colcon build --packages-select multi_agent_hostage_rescue
source install/setup.bash
colcon test --packages-select multi_agent_hostage_rescue
colcon test --event-handlers console_direct+ --packages-select multi_agent_hostage_rescue
colcon test-result --test-result-base build/multi_agent_hostage_rescue
echo $?
sudo apt-get install lcov
cmake -D COVERAGE=ON -D CMAKE_BUILD_TYPE=Debug ../
make
make code_coverage
This generates a index.html page in the build/coverage sub-directory that can be viewed locally in a web browser.
open your terminal in your repository
doxywizard
Follow steps in GUI after selecting path of your repository.