[ODE] Jittering of light weighted model
Daniel Hein
dhein at informatik.hu-berlin.de
Mon Apr 3 17:15:00 MST 2006
Hello,
I know, there are already mass of stuff about units, scaling and
jittering - but I couldn't found the answers to my problem:
I wanna simulate a real humanoid robot, approx. 34cm height, 2kg total
mass.
After modeling everything in a meter-kg-second system I encountered
problems with jittering of the whole robot when it just stands on the
ground. As I understand this is caused by the collision handling. I
could reduce the jittering, adjusting contact[i].surface.soft_cfm and
contact[i].surface.soft_erp in the nearCallBack function. The best
result I had at erp=0.682 and cfm=0.0014874. But I am not able to
eleminate the visible jittering. For further reducing the jittering I
only found decreasing the dWorldStep time length (actually I use
dWorldStep (world, 0.03)) - but this reduces the simulation time heavily.
The thing is - I am wondering, because if I scale all masses of the
robot to the 10 times, the jittering is not visible anymore, so ODE is
able to simulate the model without visible jittering at a dWorldStep
length of 0.03. So for my understanding it should also be possible with
the (real) light weighted model, scaling accordingly all collision
handling forces...(?) Since I use double precision and no further speed
optimization options of ODE I think this cannot be caused by precision
problems - or am I wrong?
That's why I have these questions:
1. How can I adjust ODE to the (real) weighted robot model, in that way
that there is no visible jittering - without touching the dWorldStep
time? (or in other words: How can I adjust ODE that the absolute
amplitude of jittering of the light weighted model is the same as with
the 10times weighted robot?)
2. It is said, I can choose the units for myself as long as I stay
consistent. The relationship between length, time and gravity is clear,
but I have still problems to understand happens if I scale the masses to
the 10times (so using a meter-100g-second system): Except adjusting the
forces/torques of all joints, what else do I had to attend to? If in
real life I would scale the robots mass to the 10times, the whole body
caracteristics (e.g. body frequency) would change - so if I just scale
the masses and torques in ODE would it really have still the same
simulation behavior?
What is use:
- Gravity is set to (0,0,-9.81)
- PRECISION=DOUBLE
- BUILD=release
- dWorldStep (world,0.03)
- nearCallBack function taken from test_boxstack.cpp
Thanks in advance,
Daniel Hein,
Humboldt University of Berlin, Germany
More information about the ODE
mailing list