Skip to content

Path Planner: Elastic Bands#60

Open
guilyx wants to merge 10 commits intoShisatoYano:mainfrom
guilyx:feat/elastic-bands
Open

Path Planner: Elastic Bands#60
guilyx wants to merge 10 commits intoShisatoYano:mainfrom
guilyx:feat/elastic-bands

Conversation

@guilyx
Copy link
Contributor

@guilyx guilyx commented Feb 9, 2026

Summary

  • Implement Elastic Bands path planner (Quinlan & Khatib, 1993) as a new planning component
    A* finds the initial seed path on the occupancy grid, then Elastic Bands optimises it using contraction/repulsive forces with SDF-based obstacle distances
  • Tuned parameters (rho0=5, kc=0.3, kr=-0.05, lambda=0.6, step_size=1) for the project's narrow-space 90×120 grid
  • Clearance zones (grey cells) correctly treated as impassable in both A* search and SDF computation
  • Search GIF shows A* expansion → initial path → EB optimisation with bubble circles and blue path trace converging to the smoothed solution
  • Navigation GIF shows car following the smoothed path with PurePursuit (standard project look)

Test plan

[x] pytest test/test_elastic_bands_path_planning.py passes
[x] elastic_bands_search.gif shows A* search, initial path, then EB optimisation with visible path pulling taut
[x] elastic_bands_navigate.gif shows car following the smoothed path to goal
[x] No regressions on existing planner tests (test_astar_path_planning.py, etc.)

@ShisatoYano ShisatoYano self-requested a review March 7, 2026 10:15
@ShisatoYano ShisatoYano added the enhancement New feature or request label Mar 7, 2026
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why were a lot of parts in README changed like this? Please pull the latest changes in README at main branch into your working branch and resolve them.

@ShisatoYano
Copy link
Owner

Please resolve the conflict in README.

guilyx added 9 commits March 16, 2026 18:20
A* seed path optimised with Elastic Bands (Quinlan & Khatib, 1993):
bubble chain with contraction/repulsive forces, SDF-based obstacle
distance, and overlap maintenance.
rho0: 20→5, kc: 0.05→0.3, kr: -0.1→-0.05, lambda: 0.7→0.6,
step_size: 3→1, alpha clamped to 3.0. Path now stays 4+ cells
from obstacles while shortening by ~5%.
@guilyx guilyx force-pushed the feat/elastic-bands branch from ba077ee to 4ceae91 Compare March 16, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants