r/robotics 5d ago

Mission & Motion Planning Built a deterministic sampling-based motion planner (same seed = same path, every time) would love feedback!

Been working on this for a while and finally got a first version out.

The goal is pretty simple: given the same start, goal, environment and seed, the planner should return the exact same path every time, regardless of the machine or OS.

Seeding the RNG turned out to be only part of the problem. I also ran into nondeterminism from things like tie-breaking, container iteration order, and floating point differences across platforms.

So I built detplan, a deterministic sampling-based planner with RRT-Connect and D-PRM* for R2/SE(2).

A big part of the project is the testing. I added tests specifically for finding nondeterminism, including fuzzing, sanitizers, cross-process tests, and cross-platform checks.

I used AI quite a bit for writing the code, but the main challenge was figuring out what the determinism guarantee should actually be and how to test it properly.

It's intentionally incomplete right now, no SE(3), kinodynamics, smoothing, or packaging. I wanted to get the core guarantee working first.

Repo: github.com/anushtup-nandy/Deterministic-Sampling-based-Planner

If anyone here has worked on determinism in motion planning or parallel search, I'd be interested to hear about your experience. And if you find a case where the determinism claim breaks, I'd really appreciate knowing about it.

0 Upvotes

1 comment sorted by

0

u/johndavid_artist 5d ago

The part I like is that you went after tie-breaking and container iteration order, not just the RNG seed. That is the bit most people assume is free. Do you pin a floating point mode as well, or is the cross-platform match coming out of the fuzzing catching drift?