[ODE] A slider joint to bond an axis-aligned body with a rigidbodygroup?

Bob Dowland Bob.Dowland at blue52.co.uk
Fri Oct 15 11:44:26 MST 2004


Megan,

do you have a method to "motivate" a single rigid body from any given pos/ori to a specified target pos/ori (by "motivate" I mean via some "physical" device, ie "motor" or whatever - so you're geometry is being collision managed during the motion)? also do you're anims or at least start of anim poses (that you want to blend to) satisfy the ragdoll joint constraints? This second thing would seem to be a bit of prerequisite ;).

If so - just an idea mind - it may be that you could get this ragdoll->anim done via a/the model hierarchy - perhaps this was what Jon was hinting at with the comment on "chaining joints".

Here's the basic idea: firstly establish a hierarchy/graph/"chain of command" on the skeleton (which you no doubt have already for ragdoll and/or anim). Then set up pos/ori targets for each bone (not in/wrt to (eg.) "world" frame), but relative and wrt parent - like for running an anim. Then apply corrections (via motor) so that the "energy pulse" propagates through the tree (in breadth first order) picking up (parent relative) child transforms along the way.

Another thing - if you set this up outside of the solver, apply motors as you would a "global" force like wind or gravity it might be easier to keep it stable - (any arguments between solver and blend-dynamics will go in favour of the curmudgeonly old solver) an added freeby being that ragdoll joint limits/constraints can continue to take priority right up until the end of the blend.

Just a thought.

:)

Bob.


> -----Original Message-----
> From: Geoff Carlton [mailto:gcarlton at iinet.net.au]
> Sent: 14 October 2004 01:45
> To: ode at q12.org
> Subject: Re: [ODE] A slider joint to bond an axis-aligned body with a
> rigidbodygroup?
> 
> 
> If you want a slider+ball joint, your best bet may be to create a new 
> joint type that does exactly that. 
> 
> It sounds complex, but it should actually be pretty easy.  
> Have a look 
> at the slider2 joint I made up (either at ode patch page, or on 
> www.zenohm.com); in a couple of lines that joint type would have the 
> functionality you require.
> 
> You would merely have to change slider2GetInfo1() to return 
> '3's instead 
> of '6's, and drop out the line "setFixedOrientation(joint, info, 
> joint->qrel, 3);" from slider2GetInfo2().  That should be it, 
> I think. :-)
> 
> If it works you could always extend the slider2 with a 
> dSetSlider2FixedOrientation(bool) type interface - I'd like 
> to have that 
> joint type in my collection.
> 
> Geoff
> 
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
> 



More information about the ODE mailing list