Skip to main content

TrajGenPy is a Python library that provides functionality for trajectory task generation using the Boustrophedon Cell Decomposition algorithm for coverage generation.

Project description

TrajGenPy

License Build Status Python Version

TrajGenPy 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.

Features

Covereage path generation

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.

Alt Text

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.

Installation

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

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.

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.

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

trajgenpy-0.1.3.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

trajgenpy-0.1.3-cp310-cp310-manylinux_2_35_x86_64.whl (466.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.35+ x86-64

File details

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

File metadata

  • Download URL: trajgenpy-0.1.3.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for trajgenpy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7cdd0c0f9e7120ac90389a3ab291495924314e36702685f108d5ef1f54b59216
MD5 15f6d98ecf443ffbbbab76c1d13f8f73
BLAKE2b-256 028956cc66dfc66ec3818bf314e76fe3113347a4db84ce4f9ba5c1023e1cffd0

See more details on using hashes here.

File details

Details for the file trajgenpy-0.1.3-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for trajgenpy-0.1.3-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 7c41dd1e8df0158e092fe8acd3ee6485733ae50041d4ab6e22ac398e783393ae
MD5 f734eeeeb95dead0e2c95f19b62a727b
BLAKE2b-256 99c09b286d6383d2ea6dc398a18b293ec9369eb519bf03548da4fdf15670394e

See more details on using hashes here.

Supported by

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