[ODE] Static objects start rotating?
Jon Watte (ODE)
hplus-ode at mindcontrol.org
Sun Aug 12 14:35:33 MST 2007
I see two problems:
1) You're only creating a single joint. That's only OK for a sphere to
come to rest. As I said below, you'll need three (or preferrably more)
for other geoms to allow a body to come to rest.
2) You're not turning on the friction model, so "mu" is a maximum force.
0.1 Newtons isn't that much,
James Frye wrote:
> "Jon Watte (ODE)" <hplus-ode at mindcontrol.org> wrote on 08/12/2007 08:51:55
>> First, are you creating a ground? If so, how?
>> Are you using gravity? If so, how much?
>> Are you using fixed or variable step size?
>> What does your nearcallback look like? What joints are created, if any,
>> each step?
>> If you have, say, a plane for ground, and you use reasonable gravity, a
>> step size of 0.01, and create at least 3 contacts per body (preferrably
>> more), it should come to rest pretty quickly, although a little
>> rotational and linear inertial dampening each step certainly helps.
> The ground plane & gravity are set with
> dWorldSetGravity (world, 0.0, 0.0, -9.81);
> dCreatePlane (space, 0.0, 0.0, 1.0, 0.0);
> I'm using a fixed timestep, dT = 0.005 sec. That was selected because it
> gave close to realistic time in other models, and let me put off doing
> real timing code.
> The nearCallback code is
> b1 = dGeomGetBody (o1);
> b2 = dGeomGetBody (o2);
> /* exit without doing anything if the two bodies are connected by a joint */
> if (b1 && b2 && dAreConnected (b1, b2))
> contact.surface.mode = 0;
> contact.surface.mu = 0.1;
> contact.surface.mu2 = 0.0;
> if (dCollide (o1, o2, 0, &contact.geom, sizeof (dContactGeom)))
> c = dJointCreateContact (world, contactgroup, &contact);
> dJointAttach (c, b1, b2);
> This was copied straight out of one of the test programs. (After, of
> course running it through indent to de-obfuscate it.).
> There aren't any joints or other bodies in the code, since it's my
> version of a "Hello, World", the simplest case of one body just sitting
> there that I intend to keep adding to until I get my working model.,
> ODE mailing list
> ODE at ode.org
More information about the ODE