Skip to content

NDamirov/CoverageProblem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coverage Path Planning

Description

The coverage path planning problem refers to the task of determining an optimal path for an autonomous agent to navigate through an area, ensuring that the entire area is covered. This problem is commonly encountered in various domains, including robotics, agriculture, cleaning operations, and surveillance.

The objective of coverage path planning is to systematically visit all points or regions of interest within the area while minimizing travel distance.

The presented algorithm operates under the assumption that the region is partitioned into square cells, where each cell can be classified as either an obstacle or an open space. The autonomous agent is restricted to moving in a manner parallel to the grid lines, without any additional time required for turning.

Result example

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

CMake — an open-source, cross-platform family of tools designed to build, test and package software.

OR Tools — a fast and portable software for combinatorial optimization.

Pygame — a computer graphics and sound libraries designed to be used with the Python.

Installing

Download current repository to your local machine. Use

git clone https://github.com/NDamirov/CoverageProblem.git

or direct downloading.

Built current project using CMake.

cmake -B build
cmake --build build 

Input and Output files

The input file should consist of a table of symbols representing the area to be covered. In this table, the # symbol indicates an obstacle, while the * symbol represents a free space. Each symbol corresponds to a square cell in the coverage region.

The output file consists of a table of symbols representing the area to be covered. In this table, the # symbol indicates an obstacle, while the | and - symbols represent vertical and horizontal ranks respectively. It also may have path of agent if needed.

Launch

Algorithm

To launch an application you need to have input file:

./build/CoverageProblem input.txt output.txt

Extra options:

--ranks_only — if you need only ranks decomposition without path generation.

--slow — if you want to use more effective slow algorithms (A-Star instead of Manhattan distance).

Visualizer

Just path the output file to visualizer:

python3 visualizer/visualizer.py output.txt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published