WSF_SIX_DOF_MOVER¶
Script Class: WsfSixDOF_Mover
- mover WSF_SIX_DOF_MOVER¶
mover <name> WSF_SIX_DOF_MOVER // SixDOF Vehicle Type Commands autopilot_no_control ... enable_controls ... enable_thrust_vectoring ... engines_on ... follow_vertical_track ... ignore_all_crashes ... six_dof_alt ... six_dof_ned_heading ... six_dof_ned_pitch ... six_dof_ned_roll ... six_dof_position ... six_dof_set_velocity_ned_fps ... produces_launch_smoke ... throttle_afterburner ... throttle_full ... throttle_idle ... wash_in_conditions ... // Route Commands route ... end_route use_route ... // Script Methods -- see WsfSixDOF_Mover end_mover
Overview¶
WSF_SIX_DOF_MOVER is a base class for time-stepped, physics-based movers operating in three translational and three rotational degrees of freedom. These movers offer the ability to produce higher-order dynamics than those available to other movers. Two flavors of SixDOF mover are available: the WSF_RIGID_BODY_SIX_DOF_MOVER and the WSF_POINT_MASS_SIX_DOF_MOVER.
WSF_RIGID_BODY_SIX_DOF_MOVER is a direct descendant of the WSF_P6DOF_MOVER, and retains nearly all of its functionality. It is a true 6DOF mover, complete with three axes of rotational inertia. WSF_POINT_MASS_SIX_DOF_MOVER is intended to provide a simpler model while retaining useful features such as sub-objects and sequencers. It requires far less tuning to be useful, but can still be fine-tuned to match desired characteristics.
Note
Due to its increased fidelity, the WSF_RIGID_BODY_SIX_DOF_MOVER involves significantly more computations than most 3DOF models. It also updates internally at a comparatively high update rate (100 Hz).
WSF_POINT_MASS_SIX_DOF_MOVER is less numerically sensitive, and so updates at 20 Hz. A single point-mass simulation frame is not much faster than a rigid-body simulation frame, but since fewer frames are needed, it is a much less expensive mover.
One strategy an analyst may pursue is to produce rigid-body and point-mass version of a vehicle, using the rigid-body representation where necessary and using the point-mass model for less critical movers and during less interesting phases of flight.
Scenarios using WSF_RIGID_BODY_SIX_DOF_MOVER must set minimum_mover_timestep, and set it to no larger than 0.01 seconds – smaller than the realtime default minimum timestep of 0.05 seconds. This is necessary to allow guidance computers and sequencers to update in step with the SixDOF vehicle when using the explicit realtime mode or when using real-time applications like Warlock.
SixDOF Vehicle Type Commands¶
- vehicle_type <string>¶
This defines the type of object used by the mover. See vehicle_type and vehicle_type.
- autopilot_no_control <boolean-value>¶
This will command the autopilot to “zero” all controls, which will center the stick and rudder and pull back throttle(s) to zero (idle). It is similar to enable_controls but is commanding the autopilot, rather than the controls themselves.
For the corresponding script method, see WsfSixDOF_Mover.SetAutopilotNoControl
- enable_controls <boolean-value>¶
This enables/disables control inputs from any source (autopilot, external manual pilot, etc.). Controls are enabled by default, so this command is typically used to disable controls at the start. This is often used to allow a weapon to drop ballistically and without control inputs as it is released from the carrying aircraft and then calling the script method WsfSixDOF_Mover.EnableControls with true to establish control input after the weapon is safely clear of the aircraft.
For the corresponding script method, see WsfSixDOF_Mover.EnableControls
- enable_thrust_vectoring <boolean-value>¶
Indicates whether thrust vectoring is enabled or not.
For the corresponding script method, see WsfSixDOF_Mover.EnableThrustVectoring
- engines_on <boolean-value>¶
Indicates whether the engines should be on or off when the scenario begins.
For the corresponding script methods, see WsfSixDOF_Mover.StartupEngines or WsfSixDOF_Mover.ShutdownEngines
- follow_vertical_track¶
Normally, the autopilot will climb/dive as quickly as possible (within the current limits – see WsfSixDOF_Mover.SetVerticalSpeedMax and WsfSixDOF_Mover.SetVerticalSpeedMin) when changing altitude, but when “follow_vertical_track” is set, the autopilot will instead use a vertical speed that will allow the object to smoothly/slowly change altitude along a straight line vertical track between waypoints.
Although this is an option and the default is to not use follow_vertical_track, it will often be used, since many users prefer the resultant “gradual” vertical flight path over the default “quick” altitude change between waypoints.
- ignore_all_crashes <boolean-value>¶
Indicates whether the mover ignore all forms of crashes. This is often used in testing.
- six_dof_alt <length-value>¶
This command sets the initial altitude of the mover.
- six_dof_ned_heading <angle-value>¶
This command sets the initial heading of the mover.
- six_dof_ned_pitch <angle-value>¶
This command sets the initial pitch angle of the mover.
- six_dof_ned_roll <angle-value>¶
This command sets the initial roll angle of the mover.
- six_dof_position <real-value> <real-value>¶
This command sets the initial position (using decimal latitude longitude) of the mover.
- six_dof_set_velocity_ned_fps <real-value> <real-value> <real-value>¶
This command sets the initial velocity of the mover in NED coordinates using ft/sec.
- produces_launch_smoke <time-value>¶
This command sets how long the vehicle will produce a launch smoke/flash effect (appearance only) when launched. If no launch effect is desired, this should not be defined at all.
- throttle_afterburner <boolean-value>¶
This command sets the throttle to afterburner when the scenario begins.
For the corresponding script method, see WsfSixDOF_Mover.MoveThrottleToAfterburner
- throttle_full <boolean-value>¶
This command sets the throttle to mil power when the scenario begins.
For the corresponding script method, see WsfSixDOF_Mover.MoveThrottleToFull
- throttle_idle <boolean-value>¶
This command sets the throttle to idle when the scenario begins.
For the corresponding script method, see WsfSixDOF_Mover.MoveThrottleToIdle
- wash_in_conditions <boolean-value>¶
Including this flag indicates that this mover should “wash-in” conditions on initialization. This means that the object will run in a special mode to help “ramp-in” and “stabilize” the object on initialization by allowing it to have some time to settle in the needed angle of attack (alpha) as well as the proper throttle setting. This is useful to ensure vehicles are stable when they start the simulation – they may otherwise lack the correct alpha, for example, when they start in the simulation.
Since the wash-in operation actually performs numerous “update” functions to arrive at a stable condition, it is computationally expensive and should only be used when needed. In addition, it should not be used for subobjects.
During the stabilization wash-in operation, parameters must meet various tolerances in order to be considered stable. Parameters include altitude, vertical speed, angle of attack, speed, pitch control input, and throttle control input.
Route Commands¶
The WSF_SIX_DOF_MOVER supports the following route commands.
Note
WSF_SIX_DOF_MOVER does not support all the route commands.
- route … end_route¶
route position ... altitude ... speed ... label ... goto ... bank_angle_limit ... radial_acceleration ... turn_g_limit ... switch_on_passing ... switch_on_approach ... end_route
- position <latitude-value> <longitude-value>¶
Specifies the latitude and longitude of the waypoint.
- altitude <length-value>¶
Specifies the altitude (MSL) at the waypoint.
- speed <speed-value>¶
Specifies the speed at the waypoint.
- label <label-name>¶
Associates a label with the immediately following waypoint definition. This can be used as the target of a goto command.
- goto <label>¶
Go to the waypoint with the specified label in the current route.
- bank_angle_limit <angle-value>¶
Specifies the maximum bank angle to be used for turns when making heading changes on the route segment that starts with this waypoint. This effectively sets the radial_acceleration to .
- radial_acceleration <acceleration-value>¶
Specifies the radial acceleration to be used for turns when making heading changes on the route segment that starts with this waypoint.
- turn_g_limit <acceleration-value>¶
Specifies the maximum turn g-load to be used for turns when making heading changes on the route segment that starts with this waypoint. This effectively sets the radial_acceleration to .
- switch_on_passing¶
- switch_on_approach¶
Defines the condition when the mover should declare that it has reached this waypoint and should start moving towards the next waypoint. switch_on_passing is sometimes known as ‘turn long’ and causes the switch to occur when the platform passes over or along side of the waypoint. switch_on_approach is sometimes known as ‘turn short’ and causes the switch to occur before the waypoint.
Note
WSF_SIX_DOF_MOVER defaults to switch_on_approach, which is different from most other movers.
- use_route <route-name>¶
Supplies the name of the route to follow. The route is assumed to be a predefined absolute route.
Sample WSF_SIX_DOF_MOVER Route¶
A sample route definition is shown below. The simplest route includes multiple lines using the position, altitude, and speed commands like this:
route
position 21.325n 158.000w altitude 9000.0 ft speed 600.0 kts
position 21.325n 157.941w altitude 9000.0 ft speed 600.0 kts
position 21.250n 157.800w altitude 9000.0 ft speed 600.0 kts
position 21.260n 157.700w altitude 9000.0 ft speed 600.0 kts
position 21.400n 157.700w altitude 9000.0 ft speed 600.0 kts
position 21.700n 157.900w altitude 13000.0 ft speed 600.0 kts
position 21.900n 158.300w altitude 9000.0 ft speed 600.0 kts
position 21.600n 158.200w altitude 9000.0 ft speed 600.0 kts
position 21.550n 158.120w altitude 9000.0 ft speed 600.0 kts
position 21.325n 157.941w altitude 9000.0 ft speed 600.0 kts
position 21.325n 157.900w altitude 9000.0 ft speed 600.0 kts
end_route
Script Methods¶
To learn about the various script methods supported by WSF_SIX_DOF_MOVER, see WsfSixDOF_Mover