[ODE] Power, torques and feedback
jean-baptiste.mouret at lip6.fr
Mon Sep 11 09:32:18 MST 2006
This seems to be a recurring question but I cannot find any definitive
answer; as a lot of ODE users, I have to compute the energy used by my
simulated robots to move and I need some help to set up this
I am trying to use the provided feedback functions as follow:
- I use angular motors by setting the dParamVel
- Since power is Torque dot AngularVelocity, I get the torque and the
angular velocities for the two connected bodies.
This gives this code :
maths::Vectorf t1(_feedback.f1, _feedback.f1, _feedback.f1);
const dReal* r1 = dBodyGetAngularVel(_o1.get_body());
maths::Vectorf v1(r1, r1, r1);
float e1 = t1 * v1; // * is the dot product
maths::Vectorf t2(_feedback.f2, _feedback.f2, _feedback.f2);
const dReal* r2 = dBodyGetAngularVel(_o2.get_body());
maths::Vectorf v2(r2, r2, r2);
float e2 = t2 * v2; // * is the dot product
_power = e1 + e2;
=> I am really not sure to do this computation in the right way, mainly
because I'm not sure to understand what is computed in the torque vector
returned by ODE. Basically, I have theses questions:
- do I have to add the two contributions ?
- do I use the good angular velocity ?
- I get negative values for _power, does it mean that the system get
some new energy?
And, of course, is it the "good way" to compute the energy ?
I understand that these questions are more physics-related than
ODE-related but I'm sure the answers will interest some other ODE users
Jean-Baptiste Mouret / Mandor
tel : (+33) 6 28 35 10 49
More information about the ODE