-
Notifications
You must be signed in to change notification settings - Fork 39
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
Software errors with dartsim? #9
Comments
Running the
So I'll assume that something very wrong is happening in the dartsim simulation which I would be able to clearly see if the GUI were usable. I'll try to use dartsim's GUI utilities to view the benchmark results unless you happen to know how I can get the |
Hi Michael,
Could you give us the exact Dart installation options that you used? |
Thanks, that pushed helped, and now I can see the visualizations. It seems that for 666 and Elastic666, the balls explode somewhat spectacularly, so presumably the contact handler is being way too aggressive. If we provided options to tune CFM and ERP like what was requested here it probably wouldn't be too hard to make those tests work decently. But the Rolling benchmark seemed to work okay for me. Qualitatively, it looked similar to the results for the bullet version, although it does seem that the error is being computed as much higher. Are the rolling balls slipping too much? Or not slipping enough? To clarify, when the report says "cannot simulate due to inaccurate model or excepted" or "simulation fails due to software error", does that mean that the computed error of the benchmark is so high that you've concluded it's invalid? Or does it mean that the application crashed in some way when you tried to run it?
I've been testing with the In case it's relevant, here are my computer specs:
|
Elastic666 tests the energy conservation. So it will increase the error so much if we turn on CFM and ERP. We also disable these features in RaiSim for testing as well. It is meant to explode somewhat since it has coefficient of restitution = 1. Here is a test shot from RaiSim https://leggedrobotics.github.io/SimBenchmark/elastic666/index.html The rolling benchmark is designed such that it doesn't move if the friction cone constraint is approximated by a pyramid. So it shouldn't work with a LCP solver (if it is a LINEAR complementarity problem solver). The default push direction is Y, but we test it with XY. I updated the default to XY force. Now you will see that nothing is moving in Dart. All Dart errors were segmentation faults. But now I checked with a different machine, Dart works fine. We will investigate this issue and give you an update. We also test with |
@mxgrey Hi Michael, thank you so much for your valuable feedback. There was an error in the benchmark result. At the beginning we tested with more ball-shaped objects but reduced the number since the simulation takes too much time. I didn't updated Dart's result with smaller number of objects. Sorry for misleading. I am trying to reproduce segmentation fault error now. I will let you know if there's an update. Here, I share my result of 666 test and elastic-666 test with DART.
As I checked the system with GUI, I found the stack of the balls explods with PGS solver. It shows similar results with different timestep
The simulation is blown up with This is not the case for other engines. For instance, Bullet's mean penetration errors are
I will change the plot and the benchmark report of 666 and elastic666 test as soon as possible. |
Please see https://leggedrobotics.github.io/SimBenchmark/666/index.html and https://leggedrobotics.github.io/SimBenchmark/elastic666/index.html for updated DART benchmark results from 666 and elastic 666 tests. |
Thanks for creating this benchmark! It's an incredibly valuable service to the simulation community to be able to compare existing solutions in terms of performance and accuracy.
As a dartsim developer, I see these benchmark results as an opportunity to identify where dartsim could be improved.
I'm especially concerned about "cannot simulate due to inaccurate model or excepted" and "simulation fails due to software error" results.
To figure out what went wrong with those tests, I've cloned your repo and tested the benchmarks on my own machine (specifically
DartRollingBenchmark
,Dart666Benchmark
, andDartElastic666Benchmark
which were reported as impossible to run). I got the following results for these benchmarks:None of these tests seemed to crash or error out (as far as I can tell), so would you be able to elaborate on what those two categories refer to? Or is there some other diagnostic information I should be looking at?
It's probably worth noting that I needed to run these benchmarks with the
--nogui
option, because running the GUI with any of the benchmarks results in a segfault inside of therai_graphics::Shader_basic
constructor (it seems astd::string
constructor is hitting a logic error). If the GUI is providing important information, then I can't currently access that. If you happen to know what might be causing this segfault, I'd appreciate any tips on how to fix it.The text was updated successfully, but these errors were encountered: