Anonymous | Login | Signup for a new account 2013-05-19 21:27 UTC
 Main | My View | View Issues | Change Log | Roadmap | Summary | My Account

View Issue Details  Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006039opensim[REGION] Physics Enginespublic2012-06-01 23:102012-06-07 03:25
ReporterKayaker Magic
Assigned To
PrioritynormalSeverityminorReproducibilityalways
StatusconfirmedResolutionopen
PlatformOpenSim 0.7.1.1 Release (Unix)OSOS Version
Product Version
Target VersionFixed in Version
Summary0006039: VEHICLE_ANGULAR_MOTOR_DIRECTION does not rotate around the vehicle local axes
Description    The LL Wiki (http://wiki.secondlife.com/wiki/VEHICLE_ANGULAR_MOTOR_DIRECTION [^]) is ambiguous about what axes the angular motor rotates around. However the Linden Vehicle Tutorial (http://wiki.secondlife.com/wiki/Linden_Vehicle_Tutorial [^]) does mention in passing that the angular motor rotates the vehicle around its local axes.

HOWEVER, in OpenSim, the angular motor apparently always rotates around the global region axis. This tilts a vehicle at all sorts of unexpected angles depending on which direction it is facing.

A workaround is to always multiply the vector sent to to the angular motor by llGetRot(). I suspect this is not quite right, because for long turns the local axes will be continuously changing. For short turns this makes the vehicle behave well enough.

Steps To ReproduceMake a prim that is longer in the local X direction (so you can tell if it turns it's nose down). Make sure the prim is high enough off the ground to rotate.
Place the following small script in the prim. It SHOULD pitch it's nose down, but instead it rolls sideways.
Additional Information// angular motor test
// Kayaker Magic
// Place this script in a prim that is far enough above ground to rotate freely.
// preferably something long in the local X direction so you can tell
// if it correctly dips it's nose down.
// This should make the prim rotate around it's local Y axis, but
// you will see it rotates around the global Y axis
default
{
state_entry()
{
llSetStatus(STATUS_PHYSICS, FALSE); //disable physics on reset
llSetRot(llEuler2Rot(<0,0,PI_BY_TWO>)); //rotate local axis
llSetVehicleType(VEHICLE_TYPE_BALLOON); //simple vehicle, nothing fancy
llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10000 ); //disable hover height
llSetStatus(STATUS_PHYSICS,TRUE); //turn physics on when ready
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, <0,4,0>); //pitch nose down
//the vehicle should pitch around the local Y axis, but rolls around the global Y
}
}
TagsNo tags attached.
Git Revision or version numberunknown
Run ModeStandalone (1 Region)
Physics EngineODE
EnvironmentMono / Linux32
Mono VersionNone
ViewerIpudence
Attached Files

 Relationships

 Notes There are no notes attached to this issue.

 Issue History Date Modified Username Field Change 2012-06-01 23:10 Kayaker Magic New Issue 2012-06-07 03:25 justincc Assigned To => justincc 2012-06-07 03:25 justincc Status new => confirmed 2012-06-07 03:25 justincc Assigned To justincc =>

 Copyright © 2000 - 2012 MantisBT Group