[ODE] ODE's Jacobian matrices

Aaron Dwyer cubeleo at yahoo.com
Sun Sep 28 21:39:24 MST 2003


--- Henri Hakl <henri at cs.sun.ac.za> wrote:
[snip]
> These equate to 6 constraints, thus the 9 variables
> actually only
> describe 3 (9-6) dimensions of freedom.
> 
> Thus everything works out as it should...
[snip]

Understood.  Likewise with quaternions, 4 variables
with one constraint (length of the quaternion must be
one) equals 3 degrees of freedom.   I still don't see
how a function of 12 parameters can give you a
jacobian with 6 columns.  Somehow in taking the time
derivative of C(q) = 0, we seem to arbitrarily end up
with a resulting jacobian that has 6 columns per body.
 The angular velocity isn't even really the derivative
of any actual orientation coordinates.  This jumping
between number of variables and method representations
seems like black magic to me.

Michael Cline's very informative thesis describes a
system very similar to ODE with time stepping, half
explicit in the velocities, and uses the same method
for calculating his jacobians.  Cline mentions that it
is not exactly true that dC(q)/dt = J * v, but sadly,
doesn't explain why.  He just says as long as the
constraint's "rotational error is small", it is a good
approximation.  If he is right and it's not exactly
true, then perhaps this is an area where a more
correct formula would decrease accumulated error,
especially when bodies are spinning quickly (possibly
correcting the wheels spinning off-axis on cars
problem?).

The only way I can think of to do this is to write the
constraints in terms of a 3 parameter orientation
representation such as Euler angles or modified
Rodrigues parameters and then derive the jacobians
using partial derivatives wrt the orientation
representation's 3 parameters.

-Aaron Dwyer


More information about the ODE mailing list