Skip to content
Page auto-generated from this source.

Engineering/sysid_backseat.tl

Mission ID: sysid_backseat

Mission Path: Engineering/sysid_backseat.tl

Universal system identification mission driven by a backseat application.

The backseat publishes time-varying actuator commands and hold flags via customUri variables on the slate. This mission routes those commands to the appropriate Guidance behaviors and enforces a safety envelope.

Supports all sysid test types: thrust model, elevator/rudder effectiveness, mass shifter/bladder trim, free response, and coupled MIMO excitation.

Arguments

MissionTimeout

MissionTimeout = 2 hour

Maximum duration of mission.

TestName

TestName = "01_thrust"

Name of the test plan YAML to run (without .yaml extension). Written to the slate to trigger the backseat application.

Heading

Heading = Universal:platform_orientation

Vehicle heading to command. Always active during initial dive, only active during backseat test if heading_hold=true!

InitialDepth

InitialDepth = 50 meter

Depth target for the initial dive before the backseat test starts.

TestDepth

TestDepth = InitialDepth

Depth to command during the backseat test. Only active if test has depth_hold=true!

InitialSpeed

InitialSpeed = 1.0 meter_per_second

Speed target for the initial dive.

DiveSettleTime

DiveSettleTime = 30 second

Time to hold at InitialDepth before triggering the backseat test. Allows vehicle to stabilize at depth.

DepthDeadband

DepthDeadband = Control:VerticalControl.depthDeadband

Depth deadband for backseat test (doesn't apply in initial dive)

MaxDepth

MaxDepth = 100 meter

Max depth for the entire mission.

MinAltitude

MinAltitude = 15 meter

Min altitude for the entire mission.

MaxPitch

MaxPitch = 60 degree

Hard maximum pitch limit (mission envelope). Vehicle will ignore backseat commands and enter safe mode if pitch exceeds this value.

ResumePitch

ResumePitch = 30 degree

Pitch required to exit safe mode after hitting max pitch

MinOffshore

MinOffshore = 2000 meter

Minimum offshore distance for the entire mission.

ElevatorDefault

ElevatorDefault = 0 degree

Default elevator angle when not being commanded.

RudderDefault

RudderDefault = 0 degree

Default rudder angle when not being commanded.

MassDefault

MassDefault = Control:VerticalControl.massDefault

Default mass position.

BuoyancyDefault

BuoyancyDefault = Control:VerticalControl.buoyancyNeutral

Default buoyancy position.

BackseatTimeout

BackseatTimeout = 10 second

Max time allowed between backseat sysidActive updates. If exceeded, vehicle enters safe mode. This is independent of the normal backseat heartbeat timeout.

Output

Speed

Speed = InitialSpeed

Commanded vehicle speed (m/s).

ElevatorAngle

ElevatorAngle = ElevatorDefault

Commanded elevator angle.

RudderAngle

RudderAngle = RudderDefault

Commanded rudder angle.

MassPosition

MassPosition = MassDefault

Commanded mass position.

BuoyancyPosition

BuoyancyPosition = BuoyancyDefault

Commanded buoyancy position.

DepthTarget

DepthTarget = InitialDepth

Commanded depth target.

HoldDepth

HoldDepth = 1 count

Whether depth hold is active (1) or not (0).

HoldHeading

HoldHeading = 1 count

Whether heading hold is active (1) or not (0).

HoldPitch

HoldPitch = 1 count

Whether pitch hold is active (1) or not (0).

HoldSpeed

HoldSpeed = 1 count

Whether speed hold is active (1) or not (0).

SysidActive

SysidActive = 0 count

Whether backseat is actively commanding (1) or idle (0).

SafeMode

SafeMode = 0 count

1 while the mission is in safe mode (Speed=0, backseat commands ignored). Entered by pitch envelope trip or backseat timeout; exits once the relevant entry condition has cleared.

PitchSafeLatch

PitchSafeLatch = 0 count

1 while a pitch trip is latched. Set when |pitch| >= MaxPitch, cleared when |pitch| <= ResumePitch. While latched, SafeMode stays at 1 even if the backseat comes back online — prevents flapping near the limit.

Inserts

Insert/NeedComms.tl

Insert/StandardEnvelopes.tl

Insert/BackseatDriver.tl

Insert/PowerOnly.tl

Invoked Module Behaviors

Guidance:Buoyancy

Guidance:Execute

Guidance:Mass

Guidance:Pitch

Guidance:Point

Guidance:SetSpeed

Guidance:Wait