cascade/schedule
A scenario of the Cascaded controller, from tools/trace/scenarios/cascade/schedule.cpp.
✓ pass
- 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:
- How often does each loop update its output? (How the Cascade Works)
- Does each loop update only on its own ticks? (Cascade V&V Plan)
Every channel
velocity_setpoint_x [m/s] velocity_setpoint_x
target_tilt [rad] target_tilt
pitch_rate_setpoint [rad/s] pitch_rate_setpoint
pitch_torque [N·m] pitch_torque
tick tick
t = 0.000 s / 0.100 s
Keys (with the player focused): Space play/pause · ← → one sample (Shift: ten) · Home/End · [ ] speed
0.1 s of the control/cascade scenario schedule.cpp, 101 samples every 0.001 s. The panels plot every channel that changes: velocity_setpoint_x, target_tilt, pitch_rate_setpoint, pitch_torque, tick. 3 events are marked. Pass criteria: BB-T1 updates_off_schedule <= 0.
- the setpoint sets off at 5 m/s; all three loops run, with no error yet
- position loop: 0.1 m behind, so a 3.3° tilt target
- attitude loop, 4 ms later: the next rate setpoint toward that tilt
- ✓ passBB-T1 updates_off_schedule = 0 (<= 0), computed by the scenario harness