Page 1 of 1

Joints function

Posted: 16 Sep 2014, 13:59
by dds
Hi, lets say I have a joint, working on force/torque mode, on the "main properties" I have "Motor mode" enabled and control loop disabled.
When set a certain speed in the joint, this attempts to reach that speed which depends on maximum torque setup, now how is the mathematical relationship between the torque and speed of the joint? What is the physical significance of the parameters on the "Engine specific properties" button?
Thanks greetings!

Re: Joints function

Posted: 16 Sep 2014, 21:34
by coppelia
Hello,

when your joint motor is enabled, then the physics engine will apply the specified force/torque until the velocity you specified is reached. If that attached mass is low, then the target velocity will be reached quickly, otherwise it will take more time. You have the dynamic relationship F=M*A (or equivalent for revolute joints).

The joint engine specifiy properties are very cryptic and not really realted to a physical value for the Bullet or ODE engines. The Vortex parameters you can adjust there do much more correspond to realistic physical values/units.

Cheers

Re: Joints function

Posted: 08 Oct 2014, 16:12
by dds
Hi, thanks for the answer. But there should be an control expression that adjust the torque applied depending on the current speed and disturbances (external forces). What is the expression of that control?
It is impossible to predict the time evolution of the joint speed without knowing the control expression that drives it.

Re: Joints function

Posted: 08 Oct 2014, 22:21
by coppelia
As far as I know, there is no complex control algorithm, and if there was, then it would be specific to the physics engine. For one reason, if there was, then it would be very difficult to build your own control algorithm on top of it, and for another reason, the control algorithm wouldn't know about the underlying system it would be used for.

At most, I could imagine it to be a proportional algorithm, but I guess for most physics engines, it would just be an on/off function. You would have to study the respective engine's documentation and/or source code for details on this.

Cheers