ODE or Bullet in Gazebo 13.x when reproducibility and accuracy conflict
0 reputation · 07 Dec 2024, 15:28 UTC
Scenario
I am setting up a Gazebo 13.x simulation pipeline where a world repeatedly spawns and deletes high-poly models during long runs. I need to pick a physics engine and configure the real-time factor, but the documented trade-offs leave me without a clear choice.
Constraints
ODE is the default and gives deterministic behavior, which matters because our regression tests replay identical scenarios. Bullet is documented as more accurate for rigid-body dynamics and high-compression contacts, but its non-deterministic behavior across hardware could break reproducibility. Separately, I want to run faster than real time, but the effect of setting the real-time factor above 1 on the physics loop's internal stepping and memory behavior over long runs is not well documented.
Questions
- Given a hard reproducibility requirement, is there any documented way to make Bullet deterministic enough for replayed tests, or is ODE the only defensible choice?
- For repeated spawn/delete cycles in 13.x, does either engine handle collision-object cleanup differently enough to affect long-run memory growth?
- Is a real-time factor above 1 considered safe for extended runs, or should faster-than-real-time rollouts be avoided until the stepping behavior is clarified?