Solvers

This section documents the concrete motion planning algorithm families in DiscoPygal. All solvers inherit from Solver or SamplingSolver and utilize shared infrastructure for collision checking, sampling, metrics, and graph search.

Solver Inheritance Architecture

The yellow nodes represent abstract base contracts, while the blue nodes represent concrete planners:

../../_images/discopygal_classes.png

Solver Families & Module Breakdown

  • RRT Family (``solvers/rrt/``): Rapidly-exploring Random Tree variants including standard rrt.py, optimal rrt_star.py, bidirectional birrt.py, multi-robot tensor space d-dimensional drrt.py/drrt_star.py, and contact_guided_rrt.py.

  • PRM Family (``solvers/prm/``): Probabilistic Roadmap variants including standard prm.py, batch prm2.py, and prm_rod.py for non-point geometries.

  • Exact Family (``solvers/exact/``): Geometry-driven exact planning via exact_single.py using arrangement face decomposition and dual-graph search.

  • Staggered Grid Family (``solvers/staggered_grid/``): Grid-discretized roadmap planners (staggered_grid.py, staggered_grid_base.py, staggered_grid_drrt.py).

  • Bottleneck Tree (``solvers/bottleneck_tree/``): Optimal path tree construction using Fréchet curve matching (bottleneck_tree.py, frechet_matching.py, three_curve_frechet.py).

  • Hybridization Graphs (``hgraphs.py``): Roadmap hybridization methods to combine path segments from multiple candidate solutions.

Detailed Documentation Pages