Releases: sjschlapbach/ta-prm
v1.2.0
What's changed?
- A framework for repeated replanning of RRT-based algorithms in the case of collisions with dynamic obstacles was implemented
- Benchmark scripts for the corresponding paper were created, comparing different performance metrics between TA-PRM*, TA-PRM, RRT, and RRT*.
- A script to load results from previous benchmarks has been added
- Graphs can now be saved to and loaded from files
- Illustration scripts have been implemented to create images and videos for a demonstration scenario
- Minor fixes and enhancements
Detailed Changes / PRs
- feat: add script for RRT versions with constant replanning by @sjschlapbach in #36
- refactor: extract RRT Replanner to separate class for evaluations by @sjschlapbach in #37
- feat: introduce benchmarking with increasing number of samples and obstacles by @sjschlapbach in #38
- enhance: add possibility to load benchmark results from file by @sjschlapbach in #39
- enhance: extend benchmark with pruning workflow by @sjschlapbach in #40
- fix: ensure that pruning benchmark results are only saved for successful runs by @sjschlapbach in #41
- fix: ensure that dynamic line collision checking uses subsampling for correct results by @sjschlapbach in #43
- enhance: add illustration script for benchmark scenario by @sjschlapbach in #42
- feat: add possibility to save and load graphs from file by @sjschlapbach in #44
- feat: illustrate algorithm performance in simulation by @sjschlapbach in #45
- Release v1.2.0 by @sjschlapbach in #46
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's changed?
- The TA-PRM algorithm has been extended with a more flexible connection strategy, connecting nodes within a flexible radius, guaranteeing asymptotic optimality.
- Implementations of RRT and RRT* have been added to benchmark the performance of TA-PRM against its contemporaries
- Checking for node instances at similar times in the open list is now implemented with the use of a hash map, making this lookup a lot faster.
Detailed Changes / PRs
- feat: implement first version of RRT tree creation by @sjschlapbach in #30
- feat: implement asymptotically optimal version RRT* (extension of RRT) by @sjschlapbach in #31
- enhance(RRT*): compute the static obstacle-free volume by @sjschlapbach in #32
- feat: automatically compute node connection distance based on optimum by @sjschlapbach in #33
- feat: implement hash map lookup for containment in open list by @sjschlapbach in #34
Full Changelog: v1.0.0...v1.1.0
v1.0.0
This release contains the first working version of the TA-PRM algorithm with optional temporal pruning. Additional surrounding logic ensures that the algorithm can operate on an environment with different types of obstacles.
As obstacles, points, lines, and polygons with corresponding buffer radii are considered. Probabilistic roadmap sampling is performed using the Halton sequence, and temporal availabilities are modeled through time-dependent cost intervals. Example workflows of the algorithm execution can be found in the src/examples
folder, while src/evaluation
contains first evaluation scripts to highlight runtime performance.
A detailed changelog can be found under the following link: https://github.com/sjschlapbach/ta-prm/commits/v1.0.0
What's Changed
- feat: add environment for development with corresponding methods by @sjschlapbach in #1
- feat: introduce automated testing by @sjschlapbach in #2
- feat: add black formatting and corresponding ci check by @sjschlapbach in #3
- feat: add simple point geometry class with basic temporal checks by @sjschlapbach in #4
- refactor: extract shape-unspecific functions to parent geometry class by @sjschlapbach in #5
- enhance: add test cases for geometry parent class by @sjschlapbach in #6
- feat: add line geometry object by @sjschlapbach in #7
- feat: introduce polygon geometry and tests by @sjschlapbach in #8
- feat: add possibility to save and load geometry objects to json by @sjschlapbach in #9
- feat: add saving and loading functions for all geometry classes by @sjschlapbach in #10
- enhance: update environment structure to custom geometry elements by @sjschlapbach in #11
- feat: add recurrence parameters to the obstacles list of an environment by @sjschlapbach in #12
- enhance: add recurrence parameter to geometry instead of environment by @sjschlapbach in #13
- refactor: use constructors to create objects from JSON representation by @sjschlapbach in #14
- feat: implement environment instance in preparation to run algorithm by @sjschlapbach in #15
- enhance: add possibility to automatically generate obstacles in an environment by @sjschlapbach in #16
- feat: add graph class with collision-free vertex sampling by @sjschlapbach in #17
- feat: add connection function for graph and all related methods to obtain time-annotated graph edges by @sjschlapbach in #18
- enhance: limit maximum connections during graph construction through parameter by @sjschlapbach in #19
- enhance: distinguish static and dynamic obstacles by color coding by @sjschlapbach in #20
- feat: add availability checking function for timed edges by @sjschlapbach in #21
- feat: add possibility to connect start and goal node to graph by @sjschlapbach in #22
- feat: implement first working version of TA-PRM algorithm, including examples and test suite extension by @sjschlapbach in #23
- fix: ensure that nodes are connected to closest neighbours first by @sjschlapbach in #24
- enhance: change the sampling to Halton sequence method for low-dispersion by @sjschlapbach in #25
- feat: add possibility to create simulation video from environment instance and solution path by @sjschlapbach in #26
- feat: add algorithm version with limited temporal precision by @sjschlapbach in #27
- enhance: plot inactive obstacles during simulation with low opactity by @sjschlapbach in #28
- Release v1.0.0 by @sjschlapbach in #29
New Contributors
- @sjschlapbach made their first contribution in #1
Full Changelog: https://github.com/sjschlapbach/ta-prm/commits/v1.0.0