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

Teravus Ovares teravus at gmail.com
Wed Apr 15 16:42:45 UTC 2009


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



More information about the Opensim-dev mailing list