Skip to content

Release v0.1.1#1

Merged
mlsdpk merged 27 commits into
masterfrom
release/v0.1.1
Apr 23, 2026
Merged

Release v0.1.1#1
mlsdpk merged 27 commits into
masterfrom
release/v0.1.1

Conversation

@mlsdpk
Copy link
Copy Markdown
Contributor

@mlsdpk mlsdpk commented Apr 23, 2026

See CHANGELOG.md for the v0.1.1 entry.

Highlights:

  • discrete_geodesic() Riemannian interpolation on any manifold.
  • Collision module + SDFConformalMetric + metric-aware path smoothing.
  • Full OMPL integration (GeodexStateSpace, informed sampler, cached interpolation).
  • Sampler concept, n-dimensional Sphere, turning-radius SE(2).
  • CMake install targets + find_package(geodex) support.
  • SE(2) planning tutorial and concept pages.

Contributors: @mlsdpk, @karyna-volokhatiuk.

mlsdpk and others added 27 commits April 22, 2026 14:18
…pported installation; add examples installation if BUILD_EXAMPLES is ON; remove leaking of lib/pkgconfig/ from GoogleTest and GoogleBenchmark; drop add_subdirectory(eigen) to stop shipping Eigen as a findable CMake package.
Add GeodesicPathCache for amortized arc-length interpolation in
GeodexStateSpace. Auto-detects identity vs non-identity metrics
to route between fast path (direct geodesic) and cached discrete
geodesic with fallback on convergence failure.
- SDFConformalMetric: exponential conformal scaling via smooth SDF callable
- Path smoothing: metric-aware shortcutting + collision-constrained L-BFGS
- SE2LeftInvariantMetric::car_like() factory for turning radius control
- Updated se2_planning.cpp with full post-planning pipeline and timing
- New se2_clearance_planning.cpp with SDF clearance + G-RRT*
- 13 new tests for clearance metric, smooth-min SDF, and path smoothing
- OMPL adapter: drop deprecated use_discrete_geodesic_; add InterpolationMode
  enum (Auto / BaseGeodesic / RiemannianGeodesic); inline GeodesicPathCache
  into geodex_state_space.hpp; delete geodex_path_cache.hpp
- discrete_geodesic: FD midpoint guard with via-log fallback for
  spatially-varying metrics (SDFConformalMetric), exposed via
  fd_midpoint_guard_tau; fd_midpoint_fallbacks counter in InterpolationResult
- Path smoothing: fix head<2>() SE(2)-hardcoded coord distance; replace
  broken Cauchy-Schwarz shortcut criterion with arc-length test; adaptive
  upsample (skip when input already >= lbfgs_target_segments)
- minimum_energy_planning: integrate shape-preserving smoothing, raw+smoothed
  overlay in Python visualizer, regenerate tutorial figure
- Examples cleanup: delete se2_parking{,_replan}, se2_clearance_planning,
  se2_planning, se2_willow_planning, euclidean_planning, cspace_rrt_star,
  duplicate planar_manipulator_metric.hpp; scenarios consolidated in
  se2_tutorial; add Python-bindings parallel examples/sphere_interpolation.py
- Scripts cleanup: delete animate_parking, preprocess_map, visualize_{rrt,
  se2,se2_grid,sphere_interpolation}; add crop_and_preprocess,
  draw_se2_diagrams, visualize_se2_tutorial, animate_se2_tutorial
- Collision module: SDF primitives (circle/rect smooth-min), distance grid,
  polygon footprint, footprint grid checker with bounding-sphere early-out;
  NEON/SSE2 paths and fast_exp
- Python bindings: collision module; new test_collision, test_clearance_metric,
  test_path_smoothing
- Benchmarks: new SE2 SDFConformal (midpoint vs via-log) and BatchSteer
  suites in bench_algorithms; refreshed README with current numbers
- ROS2 nav2 planner updated for new APIs; tests migrated to InterpolationMode
Three files were stripped from the initial v0.1.0 public release but are
referenced by the cherry-picked post-v0.1.0 commits:

- examples/sphere_interpolation target — missing add_executable in
  examples/CMakeLists.txt (install list referenced it).
- algorithm/heuristics.hpp — EuclideanHeuristic used by OMPL
  informed sampler and optimization objective.
- umbrella geodex.hpp — missing includes for algorithm/interpolation.hpp
  and algorithm/heuristics.hpp that master's version re-exports.
@mlsdpk mlsdpk merged commit 40f75a4 into master Apr 23, 2026
4 checks passed
@mlsdpk mlsdpk deleted the release/v0.1.1 branch April 23, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants