AutoPilot

public class AutoPilot

Provides basic auto-piloting utilities for a vessel. Created by calling Vessel.getAutoPilot().

Note

If a client engages the auto-pilot and then closes its connection to the server, the auto-pilot will be disengaged and its target reference frame, direction and roll reset to default.

void engage()

Engage the auto-pilot.

Game Scenes:Flight
void disengage()

Disengage the auto-pilot.

Game Scenes:Flight
void wait_()

Blocks until the vessel is pointing in the target direction and has the target roll (if set). Throws an exception if the auto-pilot has not been engaged.

Game Scenes:Flight
float getError()

The error, in degrees, between the direction the ship has been asked to point in and the direction it is pointing in. Throws an exception if the auto-pilot has not been engaged and SAS is not enabled or is in stability assist mode.

Game Scenes:Flight
float getPitchError()

The error, in degrees, between the vessels current and target pitch. Throws an exception if the auto-pilot has not been engaged.

Game Scenes:Flight
float getHeadingError()

The error, in degrees, between the vessels current and target heading. Throws an exception if the auto-pilot has not been engaged.

Game Scenes:Flight
float getRollError()

The error, in degrees, between the vessels current and target roll. Throws an exception if the auto-pilot has not been engaged or no target roll is set.

Game Scenes:Flight
ReferenceFrame getReferenceFrame()
void setReferenceFrame(ReferenceFrame value)

The reference frame for the target direction (AutoPilot.getTargetDirection()).

Game Scenes:Flight

Note

An error will be thrown if this property is set to a reference frame that rotates with the vessel being controlled, as it is impossible to rotate the vessel in such a reference frame.

float getTargetPitch()
void setTargetPitch(float value)

The target pitch, in degrees, between -90° and +90°.

Game Scenes:Flight
float getTargetHeading()
void setTargetHeading(float value)

The target heading, in degrees, between 0° and 360°.

Game Scenes:Flight
float getTargetRoll()
void setTargetRoll(float value)

The target roll, in degrees. NaN if no target roll is set.

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getTargetDirection()
void setTargetDirection(org.javatuples.Triplet<Double, Double, Double> value)

Direction vector corresponding to the target pitch and heading. This is in the reference frame specified by ReferenceFrame.

Game Scenes:Flight
void targetPitchAndHeading(float pitch, float heading)

Set target pitch and heading angles.

Parameters:
  • pitch (float) – Target pitch angle, in degrees between -90° and +90°.
  • heading (float) – Target heading angle, in degrees between 0° and 360°.
Game Scenes:

Flight

boolean getSAS()
void setSAS(boolean value)

The state of SAS.

Game Scenes:Flight

Note

Equivalent to Control.getSAS()

SASMode getSASMode()
void setSASMode(SASMode value)

The current SASMode. These modes are equivalent to the mode buttons to the left of the navball that appear when SAS is enabled.

Game Scenes:Flight

Note

Equivalent to Control.getSASMode()

double getRollThreshold()
void setRollThreshold(double value)

The threshold at which the autopilot will try to match the target roll angle, if any. Defaults to 5 degrees.

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getStoppingTime()
void setStoppingTime(org.javatuples.Triplet<Double, Double, Double> value)

The maximum amount of time that the vessel should need to come to a complete stop. This determines the maximum angular velocity of the vessel. A vector of three stopping times, in seconds, one for each of the pitch, roll and yaw axes. Defaults to 0.5 seconds for each axis.

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getDecelerationTime()
void setDecelerationTime(org.javatuples.Triplet<Double, Double, Double> value)

The time the vessel should take to come to a stop pointing in the target direction. This determines the angular acceleration used to decelerate the vessel. A vector of three times, in seconds, one for each of the pitch, roll and yaw axes. Defaults to 5 seconds for each axis.

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getAttenuationAngle()
void setAttenuationAngle(org.javatuples.Triplet<Double, Double, Double> value)

The angle at which the autopilot considers the vessel to be pointing close to the target. This determines the midpoint of the target velocity attenuation function. A vector of three angles, in degrees, one for each of the pitch, roll and yaw axes. Defaults to 1° for each axis.

Game Scenes:Flight
boolean getAutoTune()
void setAutoTune(boolean value)

Whether the rotation rate controllers PID parameters should be automatically tuned using the vessels moment of inertia and available torque. Defaults to true. See AutoPilot.getTimeToPeak() and AutoPilot.getOvershoot().

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getTimeToPeak()
void setTimeToPeak(org.javatuples.Triplet<Double, Double, Double> value)

The target time to peak used to autotune the PID controllers. A vector of three times, in seconds, for each of the pitch, roll and yaw axes. Defaults to 3 seconds for each axis.

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getOvershoot()
void setOvershoot(org.javatuples.Triplet<Double, Double, Double> value)

The target overshoot percentage used to autotune the PID controllers. A vector of three values, between 0 and 1, for each of the pitch, roll and yaw axes. Defaults to 0.01 for each axis.

Game Scenes:Flight
org.javatuples.Triplet<Double, Double, Double> getPitchPIDGains()
void setPitchPIDGains(org.javatuples.Triplet<Double, Double, Double> value)

Gains for the pitch PID controller.

Game Scenes:Flight

Note

When AutoPilot.getAutoTune() is true, these values are updated automatically, which will overwrite any manual changes.

org.javatuples.Triplet<Double, Double, Double> getRollPIDGains()
void setRollPIDGains(org.javatuples.Triplet<Double, Double, Double> value)

Gains for the roll PID controller.

Game Scenes:Flight

Note

When AutoPilot.getAutoTune() is true, these values are updated automatically, which will overwrite any manual changes.

org.javatuples.Triplet<Double, Double, Double> getYawPIDGains()
void setYawPIDGains(org.javatuples.Triplet<Double, Double, Double> value)

Gains for the yaw PID controller.

Game Scenes:Flight

Note

When AutoPilot.getAutoTune() is true, these values are updated automatically, which will overwrite any manual changes.