[ODE] External vs. internal joint forces

Michael Goldish michael.goldish at gmail.com
Wed Jun 13 10:31:50 MST 2007

My solution to this problem is to use AMotor joints in addition to hinge  
joints (or whatever you use).
Use the function dJointSetAMotorParam on the AMotor joints to set  
dParamFMax and dParamVel.
Use the function dJointSetHingeParam on the hinge joints to set the stops  
(dParamLoStop, dParamHiStop, ...).
Use dJointSetFeedback on the AMotor joints and hinge joints separately,  
and hopefully you'll receive the correct information.

If I may, I would like to ask a related question:
Once you have the internal forces, how do you compute how much work has  
been done?
If the answer is too long or complex I would appreciate it if you provided  
a relevant link (if you know of one). I haven't found an answer to this on  
the net.

On Wed, 13 Jun 2007 20:04:27 +0300, Arndt Twickel <ode at twickel.ws> wrote:

> Hi,
> Basically I'm asking a question that has already been posed on this  
> mailing
> list several times (see e.g. [1][2][3][4]), but to which I couldn't find  
> a
> satisfactory answer:
> I would like to know if it is possible to get information about internal  
> vs.
> external forces/torques in joints. By internal forces I mean forces  
> applied by a
> motor of the same joint, by external forces I mean all other forces.
> When you use a motor you specify a desired velocity and a maximum force  
> that may
> be applied by the motor to reach the desired velocity but in the end you  
> do not
> know how much force was actually applied by the motor.
> With the dJointGetFeedback() function you get the accumulated  
> force/torque at a
> joint but you cannot tell who (motor, gravity, other motors,  
> environment, ...)
> contributed how much of the force.
> The only possibility I can think of at the moment (and which I would  
> like to
> avoid if possible, see e.g. [5]) is to use functions like e.g.
> dJointAddHingeTorque() (where forces/torques are explicitly added to the  
> joints)
> instead of the joint motors (see also [6]).
> Why do I need to differentiate between internal and external forces in  
> joints?
> I would like to:
> 1. implement an energy sensor that tells me how much work has been done  
> by the
>     motors.
> 2. implement a spring coupling where I need to know the energy taken up  
> / put
>     back into the system by the spring to determine its state.
> Any help is very much appreciated!
> Arndt
> [1] http://ode.org/pipermail/ode/2006-September/020180.html
> [2] http://ode.org/pipermail/ode/2006-August/019935.html
> [3] http://ode.org/pipermail/ode/2007-April/thread.html#21896
> [4] http://ode.org/pipermail/ode/2002-October/006096.html
> [5] http://ode.org/pipermail/ode/2001-December/004757.html
> [6] http://ode.org/pipermail/ode/2007-May/021917.html
> _______________________________________________
> ODE mailing list
> ODE at ode.org
> http://ode.org/mailman/listinfo/ode

More information about the ODE mailing list