Skip to main content

TrajGenPy

License Build Status Python Version

TrajGenPy is a powerful Python library designed for generating coverage trajectories using the Boustrophedon Cell Decomposition algorithm. This library facilitates the extraction of environmental features from OpenStreetMap (OSM) and converts them into geodetic coordinates, enabling efficient and effective coverage path planning. By leveraging the capabilities of TrajGenPy, users can easily generate coverage paths for various applications such as agricultural field coverage, robotic vacuum cleaning, and environmental monitoring.

area Map Features Another Image

Installation

The package is regularly updated and new releases are created when significant changes to the main branch has happened.

Requirements:

sudo apt-get update && apt-get -y install libcgal-dev pybind11-dev

Install using pip:

pip install trajgenpy

Build from source

Before building TrajGenPy, ensure you have the following requirements installed:

  • libcgal-dev - The Computational Geometry Algorithms Library
  • pybind11-dev - A lightweight header-only library for creating Python bindings

You can install these dependencies on Ubuntu using the following commands:

sudo apt-get update && apt-get -y install libcgal-dev pybind11-dev

Once you have the dependencies installed, you can install TrajGenPy using pip. Simply navigate to your project directory and run:

pip install -r requirements.txt
pip install -e .

The "-e" argument for pip is to enable the developer to edit the python source code and perform tests without having to rebuild everything.

Usage

To use TrajGenPy in your Python project, you can import it as follows:

import trajgenpy

You can then use the provided functions and classes to perform trajectory generation and task planning based on the Boustrophedon Cell Decomposition algorithm. See the examples in a relative link

Contributing & Development

Install the bindings in dev mode. The bindings have to be reinstalled if any of the trajgenpy_bindings package is changed.

pip install -e .

To contribute to trajgenpy, start by forking the repository on GitHub. Create a new branch for your changes, make the necessary code edits, commit your changes with clear messages, and push them to your fork. Create a pull request from your branch to the original repository, describing your changes and addressing any related issues. Once your pull request is approved, a project maintainer will merge it into the main branch.

OSM Feature extraction

Using this library it becomes very easy to exctract features from Openstreetmap and convert the different geometries to and from geodetic coordinates. Alt Text

Both of the examples showed above has been generated using less than 20 lines of code. More examples and extensions to the library is in the works. The specific tags of the features which can be queried can be found here.

Covereage path generation

is a Python library that provides functionality for trajectory task generation using the Boustrophedon Cell Decomposition algorithm for coverage generation. It is an extension of the C++ implementation found in the ethz-asl/polygon_coverage_planning repository, with additional features and Python bindings.

Many coverage problems use the boustrophedon (way of the ox) coverage patter and has been implemented in python using ethz-asl/polygon_coverage_planning through c++ bindings. The example below has been created using very few lines, and can be applied to all types of polygons.

Citation

If you use TrajGenPy in your work, please cite the following paper:

@inproceedings{grontved2022icar,
  title={Decentralized Multi-UAV Trajectory Task Allocation in Search and Rescue Applications},
  author={Gr{\o}ntved, Kasper Andreas R{\o}mer and Schultz, Ulrik Pagh and Christensen, Anders Lyhne},
  booktitle={21st International Conference on Advanced Robotics},
  year={2023},
  organization={IEEE}
}

License

This library is released under the MIT License. Feel free to use, modify, and distribute it in your projects.

Issues and Contributions

If you encounter any issues or have ideas for improvements, please open an issue on the GitHub repository. Contributions in the form of pull requests are also welcome.

Support

For support and inquiries, you can contact the maintainers of this library at kaspergrontved@gmail.com.

Thank you for using TrajGenPy! We hope it proves to be a valuable tool for your trajectory generation and task planning needs.

Download files

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

Source Distribution

trajgenpy-0.3.1.tar.gz (4.1 MB view details)

Uploaded Source

Built Distributions

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

trajgenpy-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

trajgenpy-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file trajgenpy-0.3.1.tar.gz.

File metadata

  • Download URL: trajgenpy-0.3.1.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for trajgenpy-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d37bf4e8c4c349ed1fdf87cd05c34658b5199ba8ac5c352c32062a9c8d1f385b
MD5 e91731fac7d9b48cc0e61cddfd010b08
BLAKE2b-256 2f8e431299a5afb6a928a5bd2de86d6f0aa5874e3214ed0a62ee56dd4f9c5d8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1.tar.gz:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 54790d234d87be5b0a700b78464fe25ed8f101f9338ec7d61fa4818672c8016c
MD5 acb69a6821c8cf3f97af32c8b864fac7
BLAKE2b-256 635f871854131fc8e840f7d51fdebd43dbb98f52b819ddb4aa5f73ed273ab0e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6df5f66eb7d8ed52b58e71d8d984d0d9d03ea5ee4e97857e08ebfe55f0341e6
MD5 220fb614490c6cb3da8e870db35a27f5
BLAKE2b-256 08c49dfc6a6341a76d0d89d57795a118957d5ca57eddbd0d138f6b5783cdf3fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6eafab98507ae7e798347c4fe82427d770681f8507df4b5954439b816754d617
MD5 0d36c85f7c6dd0084ceb34e77f14b49b
BLAKE2b-256 168448e16c7de37808230740d6e2cd96472788053662bf442f45c9feba0b3ef8

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85c90435cc7b73276284261ba7f9149c4c3d197f8d5afa2a87237305f3e68d61
MD5 26556c06351de14265500be11f3e22bc
BLAKE2b-256 38e19b2225108d407fb1ba6f11871daf77e43f6e86e35352a9645262917e8019

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2647d394a8a3c34093682b3d8870393c4d1c246972d030e6bfe2ed88a8bb4758
MD5 be16d43c66e6a82cc095ced38b72fb15
BLAKE2b-256 a5d3fbca220b5f895d2dd9092282056c2bed62212439da7dc72ca4eab3f040ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d03c1b0d2164b0e9f39e01e17438b9dfeeec7eac0f7cc17dd8b6ce07bc8aa3a
MD5 99cbe89638fabd58f4187b06c3573c11
BLAKE2b-256 9ac87a33307295ff031e5c0060c9bb0601199727755a981bf8fac19916740cab

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74e16891f0143328579054f68f3a56128fd4da1f748af70a5fcafe1df0902a31
MD5 a3cf7df26bf1e458aa1d7f9215ea2de0
BLAKE2b-256 66a967c5d5941774e32b13e7218a9c904b9b946e3898d5418709958fab500e39

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15526aaabe2a3a024950ccd9c096907700375edaf9b2a921000ad84264997718
MD5 4a70db4acf938cc17d8339cea62578ac
BLAKE2b-256 7e5c18c0accda15a56b25d9da7dc1f588928588de17f56bb888000073c7230ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trajgenpy-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8877ceaf7f925bbc0acf521e5a6c265eed5746c02d43aba2478615f1730604fd
MD5 1bfaef61878da4364d90ef457066186d
BLAKE2b-256 44bdd027ccb0da9d0cb5f31980e2b769363b6608e9a705f727332dc4575f6473

See more details on using hashes here.

Provenance

The following attestation bundles were made for trajgenpy-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on kasperg3/trajgenpy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.1 This release

10 files

0.3.0

2 files

0.2.0

1 file

0.1.7

1 file

0.1.6

1 file

0.1.5

1 file

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page