FaRe-CPP: Fast Revisit Coverage Path Planning for Autonomous Mobile Patrol Robots Using Long-Range Sensor Information
FaRe-CPP is an algorithm designed for efficient revisit coverage path planning for autonomous mobile patrol robots using long-range sensor information. This repository provides the tools for generating optimized patrol paths and executing them in simulation environments such as AWS RoboMaker and the Dynamic Logistics Warehouse.
If you decide to use our work, please cite it as such:
S. Kachavarapu, T. Doernbach and R. Gerndt, "Fast-Revisit Coverage Path Planning for Autonomous Mobile Patrol Robots Using Long-Range Sensor Information," 2025 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Hangzhou, China, 2025, pp. 7677-7683, doi: 10.1109/IROS60139.2025.11246182.
Before running the FaRe-CPP algorithm, download and set up one of the following simulation environments:
Clone this repository using the following command:
git clone https://github.com/Srinikstudent/FaRe_CPP.git(or) for similar settings as IPA coverage path planning
git clone --branch FaRe_cpp_ipa_fov https://github.com/hcr-lab/FaRe-CPP.gitAfter cloning, update the file paths in config.py to point to where your environment map files (.pgm and .yaml) are stored. Adjust the parameters to match your robot's sensor capabilities.
-
Install the required dependencies:
pip install -r requirements.txt
-
Execute the surveillance script:
python Cpp/Surveillance.py
This will process the environment Occupancy grid map and save the waypoints in the output directory. These waypoints will be used for navigation in the simulation.
To execute patrols in the simulation, please make sure ROS and Gazebo are installed and follow these steps.
- ros-noetic and Gazebo simulation installed and working
- Follow the procedure on how to set up the simulation environment from here - AWS RoboMaker Small House World or - Dynamic Logistics Warehouse or you can use environment of your choice.
- launch world
or
roslaunch aws_robomaker_small_house_world view_small_house.launch
roslaunch dynamic_logistics_warehouse logistics_warehouse.launch
- Launch TurtleBot 3 in the world: In a second terminal, make sure you have set the TurtleBot 3 model and source the environment again
export TURTLEBOT3_MODEL=burger source /opt/ros/noetic/setup.bash
- Then, spawn TurtleBot 3 in the world:
roslaunch turtlebot3_gazebo turtlebot3_world.launch
- Run the Patrol Simulation: before executing this step, ensure you first run the FaRe algorithm on the same environment map and see if the optimized waypoints are saved.
This will execute the patrol path in the simulation, using the waypoints generated by the FaRe-CPP algorithm.
Python3 Cpp/PatrolSim.py