Modeling & Simulation > 3-DOF Trajectory Generator

Pilot - Easy to Use Dynamic Trajectory Generator

The Pilot trajectory generator, developed by Network Sensing Technologies (NST), is based on a point mass 3 degree-of-freedom (3DOF) simulation to create flight trajectories relative to the WGS84 ellipsoid.

Pilot.exe is a 32-bit C# software application that executes on Windows platforms. Pilot provides a graphical user interface (GUI) to define a sequence of maneuver events to generate a trajectory file. These trajectory files are predominately used by other applications or in studies. Internally, Pilot uses four coordinate systems: Earth-Centered, Earth-Fixed (ECEF), North-West-Up (NWU), North-East-Down (NED) and Body. All coordinate systems follow the right-hand rule. Pilot's Bearing and Dive Angle are aligned with the Velocity Vector.

Pilot is not an aircraft model, has no autopilot, no lift/drag metrics, no alpha/beta. It is a mathematical based WGS-84 trajectory development tool suitable for rapid trajectory development, exploration and modification. No, it does not accept waypoints. Conceptually, Pilot allows one to generate a trajectory by specifying the initial position and velocity, attitude of a point mass and define a sequence of maneuver events and rotations that describe the trajectory.

The point mass roll channel can be coupled or uncoupled depending on the desired platform. For a conventional aircraft, a Bank to Turn Mode (BTT) automatically computes roll angles. The Skid-to-Turn (STT) mode sets roll to zero and the User Entered roll mode is just that.

Pilot is not designed for trajectories over the poles for barrel loops. It is direction cosine based and a north-slaved system. Pilot does not implement a wander azimuth so discontinuities will exist at high latitudes. Contact NST if a wander azimuth implementation is desired.

Currently Pilot Supports The Following “Macro” Maneuver Definitions:

  • Hover - Remain stationary for a specified duration
  • Coast - Continue flight for a specified duration while maintaining a constant velocity, bearing, and dive. This IS NOT a straight line in inertial space.
  • Accelerate - Accelerate or decelerate based on duration or final velocity or fixed acceleration value.
  • a. for a specified duration and maximum acceleration, or
  • b. to a specific final velocity and maximum acceleration, or
  • c to a specific final velocity within a specific time interval.
  • Climb/Dive - change the Climb / Dive angle +/- 89.99 via entry of
  • a. for a specified duration and Climb/Dive rate, or
  • b. to a specific Climb/Dive angle at a specific rate, or
  • c. to a specific Climb/Dive angle within a time interval.
  • Turn Left/Right – change the heading with the entry options of:
  • a. for a specified duration and turn rate or
  • b. to a specific heading at a specific turn rate or,
  • c. to a specific heading within a specific time interval.
  • Trajectory segments can be saved to templates and later imported making quick resuse of complicated or commonly used maneuves such as a climbing S-Maneuver.

    The Pilot GUI provides an easy method to enter of maneuver events. After each event is entered, Pilot iteratively computes the trajectory attempting to converge the trajectory as specified by maneuver event attributes (velocity, accelerations attitude etc). Although Pilot internally models translational motion only, it exports orientation, angular rate, and angular acceleration data. Pilot assumes that the x-axis of the body frame remains aligned with the x-axis of the velocity vector (no angles-of-attack). Roll angles are created by internal models or from a user-defined time history of roll.

    Pilot Allows Maneuver Overlays(Parent Maneuver, Child Maneuvers, Sibling Maneuvers) and Provides a Waterfall Summary

    Pilot's Maneuver Editor is Based on Initial Conditions, Prior Maneuver's Final State, (et. al.) Maneuver Type and Selection of a Free Variable with A Final Achieved State Field and the Derivative Field

    The Free Variable combo box values are dependent on the maneuver type and selects the free variable (unconstrained variable). Pilot will use the starting conditions for this maneuver, the Final State and the Derivative fields to compute the Free Variable.

    For example the Free Variable Selection (the Variable Pilot Computes) per Maneuver Type:

    Example of the Manuever Editor Free Variable Selection:

    Flexible Configuration Options

    Pilot's Configuration Options Allow for User Selectable Tolerances, Entry Units and Display Units:

  • Iterative Convergence Tolerances for Velocity, Dive & Bearing and Time
  • Altitude (ft | m), Velocity in meters/sec, feet/sec, Knots
  • Acceleration Meters / Second2, Feet / Second2, Knots / Second2 and G's,
  • Integration Step Size (dt) (e.g. 0.1 ... 0.005sec or less)
  • Rise Time Fraction Coefficients (responsiveness)
  • Roll Model as Bank to Turn (BTT), Skid to Turn (STT) or User Entered Roll Values
  • Instant Predefined Plots

    As each manuever is entered, Pilot updates the predefined plot displays to allow for instant analysis. Predefined plots are:

  • Latitude vs Longitude
  • Latitude, Longitude, Altitude
  • Velocity ENU
  • Velocity Bearing, Dive, AngleLatitude vs Longitude
  • Accelerations ENU
  • Body Rates
  • Angular Accelerations
  • Roll Angle
  • Unique to Pilot is the use of Bézier parametric curves to fit a smooth accelrations profile through control points.

    In order to provide as much flexibility as possible, the roll acceleration is not based on any aircraft control law or autopilot. To support hardware in the loop and navigation system modeling, where instantaneous accelerations could saturate the system under test, Pilot uses the Bézier curve for a generalized form of smoothed roll / roll accelerations. Pilot's C# class supports up to seven control points. Follow this link for a good animation of Bezier curves by Jason Davies.

    The Rise Time Factor configuration file parameter controls smoothing of accelerations and resulting angles. The picture that follows shows the effect of Rise Time Factor values (RTF) on raw roll, smoothed roll and roll accelerations via Bezier curve method. The trajectory is a series of S-Turns with the user entered Rise Time Fraction of .1 to .5 in .1 increments, left to right. (Note the decrease in instantaneous roll acceleration due to smoothing and RTF.)

    Exported Trajectory Files -

    Pilot allows exporting of trajectory data to four ASCII files, each a bit different and intended for unique purposes:

    Trajectory File – Space Delimited:

    Column Parameter Units
    1 Time Seconds
    2 Longitude Degrees
    3 Latitude Degrees
    4 Altitude Meters Relative to WGS84
    5..7 ECEF Vel X,Y,Z Meters/Seconds
    8..10 ECEF Accel X,Y,Z Meters/Second2
    11.13 Roll, Pitch, Yaw (hdg) Degrees
    14..16 Body Rate X,Y,Z Radians/Second
    17..18 Angular Accel X,Y,Z Radians/Second2

    Trajectory File – CSV Formatted:

    Column Parameter Units
    1 Time Seconds
    2 Longitude Degrees
    3 Latitude Degrees
    4 Altitude Meters Relative to WGS84
    5..7 NEU Velocities Meters/Seconds
    8 Total Velocity Meters/Seconds
    9..11 NEU Acclerations Meters/Second2
    12 Dive Angle Degrees
    13 Bearing Degrees
    14 Roll Degrees
    15..17 Body Rate X,Y,Z Radians/Second
    18..20 Angular Accel X,Y,Z Radians/Second2

    Trajectory Full State File – ASCII Space Delimited:

    Column Parameter Units
    1 Time Seconds
    2..4 ECEF Position X,Y,Z Meters
    5..7 ECEF Velocity X,Y,Z Meters/Seconds - Relative to Earth
    8..10 ECEF Acceleration X,Y,ZMeters Relative to Earth
    11..13 ECEF Jerk X,Y,Z Meters/Second3
    14..16 Roll, Pitch, Yaw (hdg) Degrees
    17..19 Body Rate X,Y,Z Radians/Second Relative to an Inertial Frame In Body Cords
    20..21 Angular Accel X,Y,Z Radians/Second2 Relative to an Inertial Frame In Body Cords

    Note: Specifications, Capabilities, Features and Availability Subject to Change Without Notice and May Be Restricted to Certain Users.