WsfManeuver

WsfManeuver

Overview

The WsfManeuver is an object representing a maneuver that a WsfP6DOF_Mover can execute that changes the state of that mover.

Created maneuvers will not cause anything to occur until they are assigned to a specific WsfP6DOF_Mover through either WsfP6DOF_Mover.ExecuteManeuver or WsfP6DOF_Mover.ExecuteManeuverSequence. The entry and exit constraints provide further control over the exact execution of a maneuver. These constraints, of type WsfManeuverConstraint, give the conditions that are required to be met for the maneuver to begin executing (the entry constraint), and the conditions that must be met for a maneuver that has finished its execution to be marked complete (the exit condition). In isolation the entry and exit constraints are of more limited utility; in the context of a WsfManeuverSequence the entry and exit constraints become central in obtaining complex behaviors.

General Methods

bool GetDebug()

Returns if the maneuver is set to produce extra debugging output.

void SetDebug(bool aDebug)

Enable or disable extra debugging output.

Note

In some cases debugging output can produce a significant amount of output.

WsfP6DOF_Mover GetMover()

Return the WsfP6DOF_Mover to which this maneuver is assigned. If this maneuver has not yet been assigned, this will return an invalid object.

void Cancel()

Cancel this maneuver if it is assigned and has not completed. If it has not been assigned, or has completed, this method will do nothing.

double GetUrgency()

Get the urgency of the maneuver. The urgency of a maneuver is a parameter that controls the manner of execution of some maneuvers. The use of this parameter is up to the individual maneuver; see the documentation for specific maneuvers for details.

void SetUrgency(double aUrgency)

Set the urgency of this maneuver.

string GetManeuverType()

Return a string giving the type of this maneuver.

bool IsSequence()

Return true if this maneuver is a sequence.

Constraint Methods

WsfManeuverConstraint GetEntryConstraint()

Return the entry constraint for this maneuver.

void SetEntryConstraint(WsfManeuverConstraint aConstraint)

Set the entry constraint for this maneuver.

WsfManeuverConstraint GetExitConstraint()

Return the exit constraint for this maneuver.

void SetExitConstraint(WsfManeuverConstraint aConstraint)

Set the exit constraint for this maneuver.

Status Methods

bool IsAssigned()

Return true if this maneuver has been assigned to a WsfP6DOF_Mover.

bool IsPending()

Returns true if this maneuver is pending. A maneuver is pending if it has been assigned, but the entry constraint has not yet been met. If the maneuver was not given an entry constraint, it will never be pending.

bool IsExecuting()

Returns true if this maneuver is executing. A maneuver is executing if it has been assigned, and the entry constraint is satisfied.

bool IsCompleting()

Returns true if a maneuver is completing. A maneuver is completing if it has been assigned, it is no longer executing, but the exit constraint is not satisfied.

bool IsCompleted()

Returns true if this maneuver is completed. A maneuver is completed it has been assigned, is no longer executing, and the exit constraint is satisfied.

bool IsCanceled()

Returns true if this maneuver was canceled. A canceled maneuver was halted before it reached the completed state. A completed maneuver cannot be canceled, nor can an unassigned maneuver.

Available Maneuvers

Elemental Maneuvers

Elemental maneuvers are the simplest available maneuvers, all of which set one feature of the motion of the assigned platform. These maneuvers all operate by interacting with the autopilot on the WsfP6DOF_Mover to which the maneuver is assigned, so all of these should be thought of as setting target motions, which may eventually be fulfilled by the autopilot. By stringing together these maneuvers with careful use of the set of WsfManeuverConstraint types, one can produce arbitrarily complex motions.

Relative Maneuvers

All maneuvers affect changes to the platform to which they are assigned. A relative maneuver’s changes depend not only on the state of the platform to which it is assigned, but also on some other platform in the simulation. Relative maneuvers control the executing platform to create a specific situation for that platform relative to a target platform. See WsfRelativeManeuver for more details on features of all relative maneuvers.