[ODE] Moving an island of bodies around by setting a position
Mauro G. Todeschini
mauro2006todeschini at itia.cnr.it
Fri Nov 3 01:21:38 MST 2006
Russell Bartley wrote:
> The dBodySetPosition is fine, as I can set each body in the island turn but,
> in the ODE 0.5 manual it says:
> "After setting (position/rotation) a group of bodies, the outcome of the
> simulation is undefined if the new configuration is inconsistent with the
> joints/constraints that are present"
> Does this mean that if only one body in an island of connected bodies is
> moved through dBodySetPosition(), dBodySetRotation() that during the next
> world update the joint constraints will try to move all of the bodies in the
> island to a position that solves the constraints? Or something worse?
> I'm assuming the former, which means that if I set the position of one of
> the bodies in the island each frame, then this will force the rest of the
> attached bodies to follow due to the constraints.
> Am I worried about nothing? I think I'll give it a go anyway.
I' have done what you are trying to do (moving an island of bodies). To
be honest I move the Island at the beginning of the simulation and not
after the simulation run for a while.
What I do is create the bodies in a position, attach the joints and set
joint parameters. Then move (all!) the bodies to the final position
(well the final position in which they are when the simulation begins).
There is no need to move the joints (or detach and reattach them), they
follow the bodies and behave as expected. But my joints connects only
bodies of the island. I think that if a joint connects a body of the
island to the world or to a body not in the island It doesn't work. I
tried to create a body and attach it with a fixed joint to the world;
and then I moved the body to another position; the body doesn't stop in
the second position, It jumps back to the position It was when I
attached the fixed joint. I think such behaviour is common to other
joints attached to the world.
So I think that what you are trying to do can be mostly done but It's
not as easy as you hope. It's not enough to move a single body in the
island to make It work. And If you only translate It is quite easy, If
you have to translate and rotate the island It is much more difficult.
> Also is there an update to the 0.5 docs?
> ----- Original Message -----
> From: "Christoph Beyer" <boernerb at web.de>
> To: <ode at q12.org>
> Sent: Friday, November 03, 2006 9:44 AM
> Subject: Re: [ODE] Moving an island of bodies around by setting a position
>> use dBodySetPosition to set the position of a body.
>> If you want to move a whole island, you have to move all body in this
>> Perhaps, in Ode exists such a function, i don't know
>> ODE mailing list
>> ODE at q12.org
> This message and its attachments may contain legally privileged or confidential information. This message is intended for the use of the individual or entity to which it is addressed. If you are not the addressee indicated in this message, or the employee or agent responsible for delivering the message to the intended recipient, you may not copy or deliver this message or its attachments to anyone. Rather, you should permanently delete this message and its attachments and kindly notify the sender by reply e-mail. Any content of this message and its attachments, which does not relate to the official business of the sending company must be taken not to have been sent or endorsed by the sending company or any of its related entities. No warranty is made that the e-mail or attachment(s) are free from computer virus or other defect.
> ODE mailing list
> ODE at q12.org
More information about the ODE