Skip to main content

A package to generate a guidance trajectory for complete 2D coverage of a region of interest

Project description

CovPlan

A Python package for coverage path planning

PyPI PyPi license

This repository can be used for generating guidance trajectories for complete field coverage. It can be used for operations where complete coverage of an Area of Interest (AoI) is required for various applications. It is an updated Python implementation of the method that was presented in this paper.

Hameed IA, Bochtis D, Sørensen CA. An Optimized Field Coverage Planning Approach for Navigation of Agricultural Robots in Fields Involving Obstacle Areas. International Journal of Advanced Robotic Systems. 2013;10(5). doi:10.5772/56248

Installation

The package can be installed using pip

pip install covplan

Getting started

To generate a guidance trajectory for full coverage, use the API covplan.pathplan(input_file, params). It returns a list of coordinates that compose a path for complete coverage. In the input file, describe the boundaries of the AoI using its lat-lon coordinates in the following format:

  lat1  lon1
  lat2  lon2
  ...
  lat1  lon1
  NaN  NaN

Ensure that the AoI is a closed polygon, by keeping the first coordinate the same as the last coordinate. Separate different polygons by including a NaN NaN at the end. Also ensure that the coordinates of the polygon are described clockwise, and counter-clockwise for any obstacles and forbidden regions. covplan.find_min(input_file, params) runs a single objective optimizer to find the driving angle that minimizes the trajectory length for a given AoI and the specified parameters.

Example usage

from covplan import pathplan

def main():
	n_clusters=4	#number of sections
	r=2	#radius for Dubins curves
	input_file='sample_area.txt' #location of the input file containing coordinates of the field
	width = 10	#distance between tracks
	driving_angle=90	#angle wrt X-axis in degrees
	no_hd=0	#number of margins around boundary (each with distance=0.5*width) if needed, otherwise 0
	
	op=pathplan(input_file,num_hd=no_hd,width=width,theta=driving_angle,num_clusters=n_clusters,radius=r,visualize=False) # returns list of waypoint coordinates composing full trajectory for coverage
	print('The trajectory for full coverage consists of the following waypoints:',op)
	

if __name__ == '__main__':
	main()

Documentation

The full documentation can be found here.

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Please adhere to this project's code of conduct

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

covplan-0.2.0.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

covplan-0.2.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file covplan-0.2.0.tar.gz.

File metadata

  • Download URL: covplan-0.2.0.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for covplan-0.2.0.tar.gz
Algorithm Hash digest
SHA256 954233cb560f32836103ef07143b6d0fb24c92ca277d14931c2ccbd3f222bd18
MD5 3b6e71a32d2ca7c529e8e7df2aa0eca2
BLAKE2b-256 a808febac5e95ae86dd5bcb8e3818335b1027106c8188c8f8fd01e86dcc11526

See more details on using hashes here.

File details

Details for the file covplan-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: covplan-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for covplan-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b95f793e6bd50f5b55fba7d277db919621f6e35e2fbd103a531f8d4186fcbddb
MD5 642205db0fc7e9ae2cde097025eeab47
BLAKE2b-256 c1cd59a92a737e7d617e5b7c4f64b272ffa7f55d425336c1c62b53e38427503e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page