ta-prm

Time-Aware Probabilistic Roadmaps (TA-PRM*)

https://github.com/sjschlapbach/ta-prm

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.8%) to scientific vocabulary

Keywords

path-planning planning-algorithms python sampling-based-planning
Last synced: 4 months ago · JSON representation ·

Repository

Time-Aware Probabilistic Roadmaps (TA-PRM*)

Basic Info
  • Host: GitHub
  • Owner: sjschlapbach
  • License: agpl-3.0
  • Language: Python
  • Default Branch: dev
  • Homepage:
  • Size: 229 KB
Statistics
  • Stars: 10
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 3
Topics
path-planning planning-algorithms python sampling-based-planning
Created about 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Time-Aware Probabilistic Roadmaps

Python Testing Example Scripts

This repository contains a Python implementation of the Time-Aware PRM (TA-PRM) algorithm. If you use this code in your academic work, please cite the corresponding paper (PDF, Video):

@inproceedings{schlapbach2024taprm, author={Schlapbach, Julius and Schopferer, Simon}, booktitle={2024 Eighth IEEE International Conference on Robotic Computing (IRC)}, title={Time-Aware Probabilistic Roadmaps for Multi-Query Path Planning in Dynamic Environments}, year={2024}, pages={9-16}, doi={10.1109/IRC63610.2024.00008} }

TA-PRM is a sampling-based path planning algorithm that is able to find a solution to a path planning problem in known time-varying environments. In addition to the algorithm itself, this repository contains a simple simulation environment and a number of example scripts that showcase the core functionalities of the implementation, as well as an evaluation of the algorithm's performance.

Demonstration of TA-PRM algorithm in randomized environment

Setup

Consider setting up a virtual environment for this project. The following commands will create a virtual environment and install the required dependencies:

bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

In some cases, it might be necessary to set the PYTHONPATH environment variable to the root of this repository. This can be done by running the following command:

bash export PYTHONPATH=.

Example Scripts

The src/examples/ directory contains a number of example scripts. They showcase the core functionalities of this repository and offer an entry point into the codebase. For more detailed insights and edge cases, check out the test suite (below). Demonstration scripts for the following topics are currently available:

  • Creation and plotting of defined or random Environment and EnvironmentInstance objects with static and dynamic obstacles, using matplotlib.
  • Creation and plotting of Geometry objects, which can be of types Point, Line or Polygon.
  • Creation and plotting of Graph objects, which can be generated from random samples in an environment.
  • Example scenarios for the usage of the TimeAwarePRM class, which implements the TA-PRM algorithm.

A separate GitHub action is run on every push or pull_request. The status of the latest run can be seen in the badge at the top of this README.

Simulation Videos

The simulate-function of the graph class, allows to simulate a solution path in a time-varying environment and either illustrate the result using matplotlib or save it as a video. While the video is initially save in the avi-format, this results in a very large file size. A subsequent conversion to the more compressed mp4-format is implemented through the ffmpeg-tool. To install it on MacOS, run the following command:

bash brew install ffmpeg

For the installation of ffmpeg on other operating systems, please refer to the official documentation.

Test Suite

After installing the pytest package, the test suite can be run with the following command:

bash pytest src/test/

A corresponding GitHub action is also available. The status of the latest run can be seen in the badge at the top of this README.

License

This project is licensed under a AGPL-3.0 License - see the LICENSE file for details.

Owner

  • Name: Julius Schlapbach
  • Login: sjschlapbach
  • Kind: user
  • Location: Zürich
  • Company: ETH Zurich

Master student in Robotics, Systems and Control at ETH Zurich

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Schlapbach"
    given-names: "Julius"
    orcid: "https://orcid.org/0009-0006-0118-6451"
  - family-names: "Schopferer"
    given-names: "Simon"
    orcid: "https://orcid.org/0000-0001-5254-3961"
title: "Time-Aware Probabilistic Roadmaps for Multi-Query Path Planning in Dynamic Environments"
doi: 10.1109/IRC63610.2024.00008
date-released: 2024-12-31
url: "https://github.com/sjschlapbach/ta-prm/"
preferred-citation:
  type: proceedings
  authors:
    - family-names: "Schlapbach"
      given-names: "Julius"
      orcid: "https://orcid.org/0009-0006-0118-6451"
    - family-names: "Schopferer"
      given-names: "Simon"
      orcid: "https://orcid.org/0000-0001-5254-3961"
  doi: 10.1109/IRC63610.2024.00008
  booktitle: "2024 Eighth IEEE International Conference on Robotic Computing (IRC)"
  title: "Time-Aware Probabilistic Roadmaps for Multi-Query Path Planning in Dynamic Environments"
  start: 9
  end: 16
  year: 2024

GitHub Events

Total
  • Watch event: 8
  • Push event: 2
  • Fork event: 1
Last Year
  • Watch event: 8
  • Push event: 2
  • Fork event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 104
  • Total Committers: 1
  • Avg Commits per committer: 104.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 6
  • Committers: 1
  • Avg Commits per committer: 6.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
sjschlapbach j****h@g****t 104
Committer Domains (Top 20 + Academic)
gmx.net: 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 0
  • Total pull requests: 47
  • Average time to close issues: N/A
  • Average time to close pull requests: about 4 hours
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.02
  • Merged pull requests: 47
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • sjschlapbach (46)
Top Labels
Issue Labels
Pull Request Labels
wip (1)