Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test a multi-world simulation with DART and bullet collision detector #368

Merged
merged 2 commits into from
Jul 1, 2021

Conversation

diegoferigo
Copy link
Member

Upstream support introduced in gazebosim/gz-sim#684. In similar setup, ODE crashes due to gazebosim/gz-sim#18, however, replacing ODE with bullet should prevent that. This setup seems a good candidate whether the aim is:

  1. A multi-world simulation (advanced feature of Ignition Gazebo).
  2. A single-process multi-thread setup where each thread simulates a single world (e.g. in Python's with threading or in C++ with std::thread).

This test is simple enough that also ODE does not crash, but the simulation slows down considerably when the detector has to deal with contact between the sphere and the ground. Using bullet seems faster in this case.

Note: I also tried a more complex single-world simulation (the panda manipulation example) and bullet with both pgs and dantzig solvers seems working fine. However, compared to the default ODE collision detector, the RTF is much slower (3-5x).

cc @nicholaspalomo

@diegoferigo
Copy link
Member Author

Note that this test changes the collision detector through the world's SDF. Similarly to what we do for the physics engine, it would be nice having APIs that simplify this setting. However, it is not part of this PR and it might be implemented in the future in a new PR. For the moment, using SDF for testing purposes is more than enough.

@diegoferigo diegoferigo merged commit 2d0cc67 into devel Jul 1, 2021
@diegoferigo diegoferigo deleted the feature/collision_detector_test branch July 1, 2021 09:50
@diegoferigo
Copy link
Member Author

Unfortunately this test is flaky and CI didn't catch it before merging. Updated in 027f0a4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants