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.