[ODE] V0.8+ Bugs Update (Att: Bram)

Bram Stolk b.stolk at gmail.com
Mon Sep 24 09:16:29 MST 2007

On 9/23/07, Viper <viper at devcode.co.uk> wrote:
> In ODE builds V0.5, V0.6 and V0.7 applying the following hinge
> force/torque results in the ramp tilting gently until it hits the joint
> stops...
> dJointSetHingeParam(HJoint,dParamVel,-1)
> dJointSetHingeParam(HJoint,dParamFMax,10)
> However, in build V0.8 the above force/torque does not move the ramp at
> all, hence the (wrongful) assumption the motor wasn't working. In fact it
> doesn't behave the same until you increase the torque significantly like
> so...
> dJointSetHingeParam(HJoint,dParamVel,-1)
> dJointSetHingeParam(HJoint,dParamFMax,400)
> So, did the previous builds have a problem with the hinge motor which has
> now been corrected, or is this discrepancy due to a possible bug in the
> V0.8+ builds?

Ah, the magnitude may be wrong?
Are you sure the friction and gravity settings were the same between runs?

If you want to debug the magnitude, I guess it would be best to come up with
some calibrated tests.
Use all SI units, and do a 1kg weight on a 1m arm, and then see if the
amotor starts moving at the correct force.

Anyone up for putting together such a test?

Next the mass translate issue:
> [ 1661685 ] dMassTranslate not working (V0.8)
> http://sourceforge.net/tracker/index.php?func=detail&aid=1661685&group_id=24884&atid=382799
> You stated in the tracker that the dMassTranslate function name is
> misleading. If that's the case then the official user guide is also
> misleading in its description of the function... "Given mass parameters for
> some object, adjust them to represent the object displaced by (x,y,z)
> relative to the body frame."
> Previous builds allowed the use of this function, but V0.8+ doesn't allow
> any values other than 0,0,0.
> The question I'm raising here is, if it doesn't accept any values other
> than 0,0,0 then what exactly is the purpose of the dMassTranslate function?
> If it can't accept any other value than 0,0,0 then why have it at all?

The function is provided so that you can translate it *to* 0,0,0
Does that make sense? :-)

I'm not an expert on inertia tensors, but from what I understand, it goes
something like this:

- ODE wants the position of a body to coincide with that body's centre of

- ODE lets you build up a mass incrementally. Typically this is done by
creating 1 body, and then several geoms that are attached to it. For each
geom, you come up with a mass contribution. You add all the masses together.
Once you're done adding geoms/masses, you take a look at the resulting mass
offset. You shift this mass (and the geometry) so that the c.o.m. is nicely
defined at 0,0,0. It really makes good sense.

BTW: The tracker for this issue seems broken: original text is gone, and I
only see my comment, replicated 5 times or so. In other words: fubar.


Zapp: Captain's log, stardate...er..
Kif: Ohhh. April 13th.
Zapp: April 13th. Point 2.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ode.org/pipermail/ode/attachments/20070924/a2c06c65/attachment.htm

More information about the ODE mailing list