[ODE] how to stopbody enabling by joint
Krystian Ligenza
kxxl at poczta.onet.pl
Mon Oct 29 05:44:35 MST 2007
Mark Williams pisze:
> Mark Williams wrote:
>
>> Krystian Ligenza wrote:
>>
>>
>>> Mark Williams pisze:
>>>
>>>
>>>>> Krystian Ligenza wrote:
>>>>>
>>>>>
>>>>>
>>>>>> I have look more in mailing list archive, and see that this topic was
>>>>>> many times discussed. Main problem is how to set that joint should only
>>>>>> affect one body and other left unforced. Maybe we should think about
>>>>>> adding flag for this, by adding dJointSetXXXParam with dParamAffectBoth,
>>>>>> dParamAffectFirst, dParamAffectSecond? If joint can link with world,
>>>>>> this should not be impossible to do - correct me if I'm wrong?
>>>>>>
>>>>>>
>>>>>>
>>>>> Why wouldn't you just create the joint attached to the affected body and
>>>>> the world (NULL), then? I do that for collisions in certain cases, for
>>>>> example.
>>>>>
>>>>>
>>>>>
>>>> If you attach a joint to a null-body, then the joint considers that body
>>>> to have zero velocity. This is a potential source of error when
>>>> colliding against non-simulated yet animated geoms. I think Krystian's
>>>> patch has a great deal of value.
>>>>
>>>>
>>>>
>>> Hope that you are talking about "void dJointSetFixedBodies (dJointID
>>> j,const dVector3 p1,const
>>> dQuaternion q1,const dVector3 p2,const dQuaternion q2)" function that
>>> I proposed for adding, becouse I haven't add what I was talking about
>>> in this mail (about dJointSetXXXParam ). I have thought, that only
>>> thing that is need to be change for all joints is XXXGetInfo2(...),
>>> but It seems that all step functions also check if joint is attached
>>> to Body and World, so this become too time consume for me to make it
>>> good. Also joint can be attached to World - Body, or Body - World, but
>>> internally it is always Body-World, so making a param that hide one of
>>> Bodies as World would be a tricky part.
>>>
>> Apologies, I realised after I wrote this that you'd not submitted a
>> patch for the dJointSetXXXParam stuff. I think it's a good idea, though.
>>
> Alternatively, can the JointFeedback structures be used to query how
> much force/torque the joint is applying, then apply the exact
> opposites to the body you'd like to remain unaffected? Or is this always
> going to be out of sync by one time step?
>
Feedback structures are filled in stepper function, so we would always
be one step behind. Also, I think we would need to correct
forces/torques for all joint in the chain, not only for one body. I will
try to investigate this topic more, but now I have very limited time.
Krystian
More information about the ODE
mailing list