[ODE] ODE & Motion Sensors & Haptics??

Nate W coding at natew.com
Sun Nov 23 09:15:46 MST 2003

On Sun, 23 Nov 2003, Manohar B.S wrote:

> I am doing exactly that way. I am not getting huge
> vibrations though, but when the position of the body
> being dragged and the cursor point comes very close
> then I have the problem high freqency & low amplitude
> vibrations.

Oscillation is usually (maybe always) an indication that a feedback loop
has too much gain or not enough damping.  There are two feeback loops
here, one between the cursor and body, one between the body and
force-feedback.  So here's some things I would try:

>  F_Drag = K_Spring * (Cursor_Pos - Body_Pos);

Try a smaller K_Spring.  This would slow the rate at which the body
approaches or follows the cursor, so you might have to compromise between
stability and that sort of latency.

> F_Drag += K_Damp * (Cursor_Vel - BodyVel);

Try using -=, just to be sure there isn't a sign error here.  Changing the
sign will probably either help a lot or hurt a lot, so it should be easy

> F_ForceFeedback_To_ExternaDevice = -F_Drag;

Try reducing this force, for example with a Gain_Reduction_Factor
of 0.3 or 0.7 or something:

> F_ForceFeedback_To_ExternaDevice = -F_Drag * Gain_Reduction_Factor;

You might also try:

 F_ForceFeedback_To_ExternaDevice += K_Damp * (Cursor_Vel - BodyVel);

And again, try changing += to -= and see if that helps or hurts.

> Due to the spring & mass system, I feel damping when
> I change the cursor position with my hand, which is
> also not accepted.

If you are simulating a spring-damper connection between your hand and the
mass, this sounds like a desirable result.  Why isn't it?


Nate Waddoups
Redmond WA USA

More information about the ODE mailing list