[Opensim-dev] Springs, Torques, joints , friction, questions and Vehicles oh my

Gerhard Dünnebeil Gerhard.Duennebeil at chello.at
Wed Apr 15 17:04:01 UTC 2009


Hello everybody.

My 2 cents:

As far as I understand the LSL Vehicle API it works on Objects, not on 
prims.
Objects as a whole still are treated as rigid.
Thus using ODE joints to implement the vehicle API is not the solution.

IMO the only purpose it has is to apply forces and pulses (to accelerate 
and damp) movements.
The major difference to a script (which can do the same thing generally) 
is the closer coupling to the system which makes it less sensitive to 
lag problems and allows to correct errors within much smaller and better 
controllable time scales.
The Vehicle API  can (and should?) be implemented outside and 
independant of the physics engine. The only reason i can see to 
integrate it into the physics engine (or couple it closely) is one of 
efficiency.


best regards
Gerhard


Teravus Ovares wrote:
> Greetings all
>
> I was hoping to get some robot physics simulation people's ideas here.
>
> Looking at the LSL Vehicle API, it seems clear that there is at least
> an angular motor and a linear motor involved.   There may be two
> angular motors, one for the angular movement and one for the vertical
> attractor(which may just be a jacobian constraint).  In ODE, angular
> motors are implemented as springs.    Sometimes this can cause
> instability and vibration.     The truth is, using ODE's angular motor
> may or may not be the best solution.   There are others.   For
> example, on the ODE-users list currently they're talking about
> applying torques directly using the Recursive Newton-Euler
> formulation.
>
> "
> desired joint velocities and accelerations (qp and qpp respectively),
> then the joint torques can be calculated with:
>
> tau = M(q) * qpp + V(q,qp) + G(q) + F(qp)
>
> where M(q) is your inertia matrix and V(q,qp) is a vector of the
> coriolis forces, G(q) is a vector of the gravity forces and F(qp) is a
> vector of fiction forces.
> "
>
> Recursive Newton-Euler formulation
> http://www.cours.polymtl.ca/roboop/docs/node146.html
>
> A list of some constants in the LSL Vehicle API:
>
> ANGULAR_DEFLECTION_EFFICIENCY
> ANGULAR_DEFLECTION_TIMESCALE
> ANGULAR_FRICTION_TIMESCALE
> ANGULAR_MOTOR_DECAY_TIMESCALE
> ANGULAR_MOTOR_DIRECTION
> ANGULAR_MOTOR_TIMESCALE
> BANKING_EFFICIENCY
> BANKING_MIX
> BANKING_TIMESCALE
> BUOYANCY
> HOVER_EFFICIENCY
> HOVER_HEIGHT
> HOVER_TIMESCALE
> LINEAR_DEFLECTION_EFFICIENCY
> LINEAR_DEFLECTION_TIMESCALE
> LINEAR_FRICTION_TIMESCALE
> LINEAR_MOTOR_DECAY_TIMESCALE
> LINEAR_MOTOR_DIRECTION
> LINEAR_MOTOR_OFFSET
> LINEAR_MOTOR_TIMESCALE
> VERTICAL_ATTRACTION_EFFICIENCY
> VERTICAL_ATTRACTION_TIMESCALE
>
> Thoughts and patches appreciated.
>
> You'll find a mostly logically complete ODEVehicleSettings.cs in
> OpenSim.Region.Physics.OdePlugin.ODEVehicleSettings.cs that contains
> all of the constants as well as methods that are plugged in to the
> physics plugin, but don't take any action in the physics engine yet.
> This was created to organize vehicle API development.
>
> Best Regards
>
> Teravus
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
>   




More information about the Opensim-dev mailing list