{"id":27261552,"url":"https://github.com/kasperg3/trajgenpy","last_synced_at":"2025-04-11T05:35:01.444Z","repository":{"id":166008007,"uuid":"637777091","full_name":"kasperg3/trajgenpy","owner":"kasperg3","description":"TrajGenPy is a Python library that provides functionality for trajectory task generation","archived":false,"fork":false,"pushed_at":"2025-02-28T14:02:38.000Z","size":4411,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T22:15:54.022Z","etag":null,"topics":["coverage-planning","path-planning","task-generation","trajectory-planning"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kasperg3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-08T11:41:27.000Z","updated_at":"2025-03-03T13:59:13.000Z","dependencies_parsed_at":"2024-09-16T22:13:02.389Z","dependency_job_id":"64dc381f-b2b5-45f2-9bf7-90b2f43f3288","html_url":"https://github.com/kasperg3/trajgenpy","commit_stats":null,"previous_names":["kasperg3/trajgenpy"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasperg3%2Ftrajgenpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasperg3%2Ftrajgenpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasperg3%2Ftrajgenpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasperg3%2Ftrajgenpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kasperg3","download_url":"https://codeload.github.com/kasperg3/trajgenpy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248348435,"owners_count":21088862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coverage-planning","path-planning","task-generation","trajectory-planning"],"created_at":"2025-04-11T05:35:00.818Z","updated_at":"2025-04-11T05:35:01.430Z","avatar_url":"https://github.com/kasperg3.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TrajGenPy\n\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n[![Build Status](https://github.com/kasperg3/trajgenpy/actions/workflows/test.yml/badge.svg)](https://github.com/kasperg3/trajgenpy/actions/workflows/test.yml)\n[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)\n\n**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.\n\n\u003cdiv style=\"display: flex; justify-content: space-between;\"\u003e\n  \u003cimg src=\".assets/image.png\" alt=\"area\" width=\"30%\" /\u003e\n  \u003cimg src=\".assets/features.png\" alt=\"Map Features\" width=\"30%\" /\u003e\n  \u003cimg src=\".assets/coverage.png\" alt=\"Another Image\" width=\"30%\" /\u003e\n\u003c/div\u003e\n\n## Installation\n\nThe package is regularly updated and new releases are created when significant changes to the main branch has happened.\n\nRequirements:\n```bash\nsudo apt-get update \u0026\u0026 apt-get -y install libcgal-dev pybind11-dev\n```\n\nInstall using pip:\n```bash\npip install trajgenpy\n```\n\n## Build from source\n\nBefore building TrajGenPy, ensure you have the following requirements installed:\n\n- [libcgal-dev](https://www.cgal.org/) - The Computational Geometry Algorithms Library\n- [pybind11-dev](https://pybind11.readthedocs.io/en/stable/) - A lightweight header-only library for creating Python bindings\n\nYou can install these dependencies on Ubuntu using the following commands:\n\n```bash\nsudo apt-get update \u0026\u0026 apt-get -y install libcgal-dev pybind11-dev\n```\n\nOnce you have the dependencies installed, you can install TrajGenPy using `pip`. Simply navigate to your project directory and run:\n\n```bash\npip install -r requirements.txt\npip install -e .\n```\n\nThe \"-e\" argument for pip is to enable the developer to edit the python source code and perform tests without having to rebuild everything.\n\n## Usage\n\nTo use TrajGenPy in your Python project, you can import it as follows:\n\n```python\nimport trajgenpy\n```\n\nYou can then use the provided functions and classes to perform trajectory generation and task planning based on the Boustrophedon Cell Decomposition algorithm.\nSee the examples in [a relative link](other_file.md)\n\n# Contributing \u0026 Development\n\nInstall the bindings in dev mode. The bindings have to be reinstalled if any of the trajgenpy_bindings package is changed.\n\n```bash\npip install -e .\n```\n\nTo 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.\n\n## [OSM](https://wiki.openstreetmap.org/wiki/Main_Page) Feature extraction\n\nUsing this library it becomes very easy to exctract features from Openstreetmap and convert the different geometries to and from geodetic coordinates.\n![Alt Text](.assets/map_features.png)\n\nBoth 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](https://wiki.openstreetmap.org/wiki/Map_features).\n\n\n### Covereage path generation\nis 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](https://github.com/ethz-asl/polygon_coverage_planning) repository, with additional features and Python bindings.\n\nMany coverage problems use the boustrophedon (way of the ox) coverage patter and has been implemented in python using [ethz-asl/polygon_coverage_planning](https://github.com/ethz-asl/polygon_coverage_planning) through c++ bindings.\nThe example below has been created using very few lines, and can be applied to all types of polygons.\n\n## Citation\n\nIf you use TrajGenPy in your work, please cite the following paper:\n\n```bibtex\n@inproceedings{grontved2022icar,\n  title={Decentralized Multi-UAV Trajectory Task Allocation in Search and Rescue Applications},\n  author={Gr{\\o}ntved, Kasper Andreas R{\\o}mer and Schultz, Ulrik Pagh and Christensen, Anders Lyhne},\n  booktitle={21st International Conference on Advanced Robotics},\n  year={2023},\n  organization={IEEE}\n}\n```\n\n## License\n\nThis library is released under the [MIT License](LICENSE). Feel free to use, modify, and distribute it in your projects.\n\n## Issues and Contributions\n\nIf you encounter any issues or have ideas for improvements, please open an issue on the [GitHub repository](https://github.com/kasperg3/trajgenpy). Contributions in the form of pull requests are also welcome.\n\n## Support\n\nFor support and inquiries, you can contact the maintainers of this library at [kaspergrontved@gmail.com](mailto:kaspergrontved@gmail.com).\n\nThank you for using TrajGenPy! We hope it proves to be a valuable tool for your trajectory generation and task planning needs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasperg3%2Ftrajgenpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasperg3%2Ftrajgenpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasperg3%2Ftrajgenpy/lists"}