quadrotor/invariant_violation
A scenario of the Quadrotor model, from tools/trace/scenarios/quadrotor/invariant_violation.cpp.
– no checks
- The clang run (clang 18.1 optimized) matches the committed trace.
- The gcc run (gcc 13.3 optimized) matches the committed trace.
Shown on
These players show the same trace, with panels chosen to explain it:
- Where does an invalid state come from? (Quadrotor Model)
Every channel
The 3-D view needs WebGL, which this browser does not provide. The plots and the description below show the same trace.
position [m] x y z
velocity [m/s] x y z
rotor_speeds [rad/s] rotor 1 rotor 2 rotor 3 rotor 4 dashed: command
rotor_thrusts [N] rotor 1 rotor 2 rotor 3 rotor 4
height_above_ground [m] height_above_ground
on_ground on_ground
t = 0.000 s / 0.800 s
Keys (with the player focused): Space play/pause · ← → one sample (Shift: ten) · Home/End · [ ] speed
0.8 s of the model/quadrotor scenario invariant_violation.cpp, 81 samples every 0.01 s. The panels plot every channel that changes: position, velocity, rotor_speeds, rotor_thrusts, height_above_ground, on_ground, with setpoints dashed. 3 events are marked. It has no pass criteria.
- the caller applies the -2 cm altimeter correction, and again every 0.1 s
- touch-down
- monitor: I5 (below_ground) before step 800, position.z = -0.02 m < ground_z = 0 m
Constant over the run
attitude= [1, 0, 0, 0]body_rates= [0, 0, 0] rad/srotor_speeds_setpoint= [1610, 1610, 1610, 1610] rad/sroll_pitch_yaw= [0, 0, 0] rad