[ODE] amotor bugfix

Geoff Carlton gcarlton at iinet.net.au
Mon Oct 24 17:06:49 MST 2005


So in regards to amotors, a simulation may be unstable in the stable 
branch, and stable in the unstable branch? :)

Geoff


Rodrigo Hernandez wrote:

>
> It's fixed on UNSTABLE branch, it was probably fixed there, but not on 
> HEAD.
>
> Geoff Carlton wrote:
>
>> Actually, the bug has been found before, on 30/9/04.  The result of 
>> the discussion was apparently the patch file committed into cvs, so 
>> I'm not sure why the bug is still there now, a year later.
>>
>> [ODE] bug in amotorComputeGlobalAxes:
>>
>> @@ -2301,20 +2301,20 @@
>>    // relative to b1
>>    dMULTIPLY0_331 (ax[i],joint->node[0].body->R,joint->axis[i]);
>>      }
>> -      if (joint->rel[i] == 2) {
>> +      else if (joint->rel[i] == 2) {
>>    // relative to b2
>>    if (joint->node[1].body) {   // jds: don't assert, just ignore
>>    dMULTIPLY0_331 (ax[i],joint->node[1].body->R,joint->axis[i]);
>>
>>
>>
>> Nagymáthé Dénes wrote:
>>
>>> Hi,
>>>  
>>> I've just realized a bug in amotor; it might be responsible for 
>>> confusion of many people recently:
>>> In amotorComputeGlobalAxes(), when mode is dAMotorUser (the else 
>>> case), there's an else statement missing, causing the use of 
>>> _global_ axis if the axis is set relative to b1!
>>> The code looks like this:
>>>  
>>>       if (joint->rel[i] == 1) {
>>>  // relative to b1
>>>  dMULTIPLY0_331 (ax[i],joint->node[0].body->R,joint->axis[i]);
>>>       } else  <----THIS WAS MISSING **********
>>>       if (joint->rel[i] == 2) {
>>>  // relative to b2
>>>         dIASSERT(joint->node[1].body);
>>>  dMULTIPLY0_331 (ax[i],joint->node[1].body->R,joint->axis[i]);
>>>       }
>>>       else {
>>>  // global - just copy it
>>>  ax[i][0] = joint->axis[i][0];
>>>  ax[i][1] = joint->axis[i][1];
>>>  ax[i][2] = joint->axis[i][2];
>>>       }
>>> I can't believe no one has realized it before. :o)
>>>  
>>> Denes
>>>  
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> _______________________________________________
>>> ODE mailing list
>>> ODE at q12.org
>>> http://q12.org/mailman/listinfo/ode
>>>  
>>>
>> _______________________________________________
>> ODE mailing list
>> ODE at q12.org
>> http://q12.org/mailman/listinfo/ode
>>
>


More information about the ODE mailing list