Comments (4)
I've managed to repeat the same test as above with a time step of 10 ms, and Exponential is still stable with this large time step!
With dt=10 ms Exponential gives roughly the same integration error of Euler with dt=1/4 ms. This means that we need 40 times more time steps with Euler than with Exponential.
from consim.
I've found the maximum time step for the controller to remain stable (it is 40 ms), and I've used it as basic time step for the simulator. Here the new results:
Results are good even with large time steps. However, it should be noticed that this doesn't mean the simulator would work with a time step of 40 ms. In these tests we are indeed measuring the local error, which means that every time step (40 ms) the state of the system is reset to the ground truth, so the simulator cannot diverge. If instead I measure the global error (i.e. I don't reset the state to the ground truth) I can see that even Exponential diverges for time steps >= 5ms:
However, for dt=2.5 ms Exponential is stable, while Euler is not. For dt<=1.25 ms both Exponential and Euler are stable, but Exponential performs better.
Anyway I think it's better to focus on the local error, because the global error is dominated by the collision checking errors, which are rather independent of the integration scheme, and so it tends to "hide" the benefits of Exponential over Euler.
from consim.
New results for the same test. Here I'm showing the local integration error as a function of the computation time (per time step, which is 40 ms in this test):
These results are excellent. Euler never beats Exponential. Using 0, 1 or 2 matrix multiplications in expm we get peak performance of Exponential.
from consim.
The previous test was using a contact stiffness of 1e5 and a contact damping of 1e2, which is underdamped. If we use instead a critically damped contact (i.e. damping 5e2) the results are a bit better for Euler:
Euler is never the best, but sometimes it's better than the standard Exponential integrator. It seems that Exponential is most beneficial for underdamped contacts, probably because it's able to predict the contact force oscillations much better than Euler, which simply assumes constant forces during the time step.
from consim.
Related Issues (20)
- First benchmark Exponential vs Euler HOT 9
- Bug in exponential integrator without double integral HOT 5
- Results with seldom updates of matrix exponential HOT 2
- gcc internal error segmentation fault
- Reset of contact state HOT 4
- New method for friction cone constraints HOT 1
- Sanity check: Sliding point mass HOT 3
- Integration accuracy without contacts HOT 7
- Accuracy of the Euler integration HOT 4
- Potential influcence of the cone projection HOT 2
- ExponentialSimulator accuracy with nonzero impact velocity HOT 5
- EulerSimulator discontinuity in friction force during sliding HOT 2
- bug in c++ exponential simulator HOT 3
- Quadruped Trot Results HOT 7
- Quadruped Jump Results HOT 3
- Quadruped Squat Results
- missing reference trajectory HOT 1
- few issues with HalfPlane HOT 2
- Exponential VS Rigid-contacts HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from consim.