[ODE] Iterative solution

david@csworkbench.com david at csworkbench.com
Mon Mar 17 03:04:01 2003


Well, test_boxstack itself is good at pointing out the worst parts of
the algorithm, partly because the size and mass of each box can vary so
much, but also because a lot of the problems with box stacking come from
the collision detection routines as opposed to the constraint solving
ones.

With that said, I'm not saying that you can't stack boxes with this
solution.  It seems like I remember a discussion about a ball rolling
down a ramp into a wall of boxes.  Well, I tried running that simulation
with my latest code, and was quite pleased with the result.  I had to
make it a bit more complex to really tax my system, though.  So I made a
bunch of cars run into the wall instead of just a sphere.  So 32 cars,
45 blocks, and 450+ joints (with contacts), and the system runs at 18-20
fps, hardly varying at all.  The old solution runs at anywhere from 5 to
25 fps until the cars hit the wall and the two islands join, then I
couldn't tell you what it runs at, mine segfaults.

Either way, if you want to have a look at the eye candy, check out
http://www.csworkbench.com/crash.mpg .  I'm aiming for a (beta) release
in the next couple of days (next weekend at the latest), as soon as I
get it just a bit more stable/optimized.

I'm going to look into solving one constraint at a time (as opposed to
one joint at a time). If it works, I think the LCP solver becomes
solving a single variable equation, but I could be wrong.....  If you
know for sure, let me know.  I'm spending over 80% of my time making the
(up to) 6x6 system matrix and solving it, so anything that can be done
to speed those steps up would help.  I'd like to go back to the Cholesky
solver, but it ceased to work ("A is not positive definite"????) when I
took the Jacobian calculations out of the iteration loop.  It would
really help to figure out why that is happening.

David Whittaker

> Have you tried the iterative method on something like box-stacking?
> How does it compare to the regular solver on that?
>
> cheers,
> m
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode