Ph.D. Thesis Proposal · School of ECE · Robotics
May 5, 2026
Thesis Committee · Georgia Tech
Dr. Samuel Coogan — Advisor, ECE
Dr. Shreyas Kousik — ME
Dr. Kyriakos Vamvoudakis — AE
Dr. Yorai Wardi — ECE
Dr. Saman Zonouz — SCP

Thank you to my advisor, committee, friends, family, labmates, and collaborators.
Autonomous robotics are an increasingly prominent part of our lives — on our roads and sidewalks, in our warehouses and supply chains, and in the skies above.
A drone in mid-flight may suddenly deviate from its intended trajectory, leaving only a narrow time window to diagnose the anomaly and apply corrective action before failure becomes unavoidable.
Inaccurate tracking, unaccounted disturbance, sensor degradation, actuator faults, adversarial interference
Detection and mitigation must occur under strict constraints
Quadrotors are underactuated, highly nonlinear, open-loop unstable; tight onboard compute budgets
Intersection of control theory, real-time hardware, and cybersecurity
This proposal is organized around addressing these challenges with computational efficiency at the forefront
We propose a comprehensive program for safe autonomy
Thrust I — Efficient Tracking
Fast, accurate, onboard execution of planned maneuvers with smooth input saturation.
Thrust II — Safe Planning
Generate verifiably safe trajectories under bounded disturbance using reachability-based planning
Thrust III — Secure Control
Analogous to a biological immune response: diagnose → recover → inoculate against adversarial attacks.
Completed
Proposed
Completed
Proposed
Proposed
Thrust I · Low-Level Control
Despite major advances in aerial trajectory planning and control, state-of-the-art methods remain time- and compute-heavy — hard to deploy on real hardware.
Particularly pronounced on miniature aerial platforms, where onboard compute is often limited
NMPC is the state-of-the-art, yet: “impractical to run NMPC on some miniature aerial vehicles with a limited computational budget” [1]
Similar state-of-the-art approaches are either computationally complex, or require advanced reference derivatives or detailed model knowledge
The practical state-of-the-art remains largely tethered to advanced PID control — a gap between the practical and research state-of-the-art.
For \(\dot x = f(x,u),\; y = h(x)\), introduce a differentiable look-ahead predictor \(\hat y(t+T) = \rho(x(t), u(t))\) under zero-order hold on \(u\). Applying NRT to the predictor [2]:
\(\displaystyle \Psi(x,u) \;\triangleq\;\) \(\displaystyle \Bigl(\tfrac{\partial \rho}{\partial u}(x,u)\Bigr)^{-1}\)\(\displaystyle \bigl(r(t+T) - \rho(x,u)\bigr)\)
\(\displaystyle \dot u(t) =\) \(\displaystyle \alpha\)\(\displaystyle \,\bigl(\Psi(x,u) + \eta\bigr)\)
\[ u_{k+1} = u_k + \dot u(t_k)\Delta t \]
For \(\dot x = f(x,u),\; y = h(x)\), introduce a differentiable look-ahead predictor \(\hat y(t+T) = \rho(x(t), u(t))\) under zero-order hold on \(u\). Applying NRT to the predictor [2]:
\[ \Psi(x,u) \;\triangleq\; \Bigl(\tfrac{\partial \rho}{\partial u}(x,u)\Bigr)^{-1} \bigl(r(t+T) - \rho(x,u)\bigr), \qquad \dot u(t) = \alpha\,\bigl(\Psi(x,u) + \eta\bigr) \]
\[ u_{k+1} = u_k + \dot u(t_k)\Delta t \]
Asymptotic error bound: \[\limsup_{t\to\infty}\lVert r(t)-y(t)\rVert \leq \nu_1 + \frac{\nu_2}{\alpha}\]
\(\nu_1\) — prediction-model mismatch: gap between predictor \(\rho\) and true \(y(t+T)\); can’t be attenuated
\(\nu_2\) — reference-variation residual: scales with \(\sup_t\lVert\dot r(t+T)\rVert\); attenuated by speedup \(\alpha\)
For \(\dot x = f(x,u),\; y = h(x)\), introduce a differentiable look-ahead predictor \(\hat y(t+T) = \rho(x(t), u(t))\) under zero-order hold on \(u\). Applying NRT to the predictor [2]:
\[ \Psi(x,u) \;\triangleq\; \Bigl(\tfrac{\partial \rho}{\partial u}(x,u)\Bigr)^{-1} \bigl(r(t+T) - \rho(x,u)\bigr), \qquad \dot u(t) = \alpha\,\bigl(\Psi(x,u) + \eta\bigr) \]
\[ u_{k+1} = u_k + \dot u(t_k)\Delta t \]
Asymptotic error bound: \[\limsup_{t\to\infty}\lVert r(t)-y(t)\rVert \leq \nu_1 + \frac{\nu_2}{\alpha}\]
\(\nu_1\) — prediction-model mismatch: gap between predictor \(\rho\) and true \(y(t+T)\); can’t be attenuated
\(\nu_2\) — reference-variation residual: scales with \(\sup_t\lVert\dot r(t+T)\rVert\); attenuated by speedup \(\alpha\)
Integral CBFs [3] \[\eta \;=\; \arg\min_{\eta}\tfrac12\lVert\eta\rVert^2 \quad \text{s.t.}\quad \dot b + \gamma(b) \ge 0\]
The central design choice is the prediction strategy. Throughout our work, we’ve developed different approaches with various tradeoffs:
Quadrotor running NRT on a Raspberry Pi (Spinning Helix).
Flatness-based NRT on 3D quadrotor.
Quadrotor with NRT and NMPC running onboard on a Raspberry Pi.
Avg per-iteration compute — NRT: 2.45 ms · NMPC: 12.88 ms → NRT ~\(5.3\times\) faster
NMPC implementation:
NRT Implementation:
Average CPU energy per iteration — NRT is lowest on both platforms:
| Method | Energy / iter [\(\mu\)J] |
|---|---|
| Blimp NRT | \(\mathbf{1.25\times 10^4}\) |
| Blimp NMPC | \(2.04\times 10^5\) |
| Blimp FBL | \(3.06\times 10^4\) |
| Quad NRT | \(\mathbf{1.73\times 10^4}\) |
| Quad NMPC | \(6.15\times 10^4\) |
RMSE on full flight paths — NRT and NMPC are roughly even:
| Trajectory | NRT [m] | NMPC [m] |
|---|---|---|
| Circle A | 0.123 | 0.107 |
| Circle B | 0.123 | 0.152 |
| Lemniscate A | 0.122 | 0.113 |
| Lemniscate B | 0.152 | 0.105 |
| Lemniscate C | 0.145 | 0.173 |
| Helix A | 0.149 | 0.169 |
| Helix B | 0.189 | 0.180 |
| Circle C | 0.171 | 0.177 |
| Sawtooth | 0.045 | 0.060 |
| Triangle | 0.081 | 0.084 |
Competitive tracking against state-of-the-art NMPC and lowest CPU energy consumption across all platforms
Miniature blimp tracking references under FBL, NMPC, & NRT.
NMPC missed the 25 ms deadline at 40 Hz; NRT + FBL never did. Only NRT used no derivative information.
Per-trajectory RMSE — NRT wins on all 8:
| Trajectory | NRT [m] | NMPC [m] | FBL [m] |
|---|---|---|---|
| Circle A | 0.079 | 0.141 | 0.193 |
| Circle B | 0.051 | 0.110 | 0.143 |
| Lemniscate A | 0.104 | 0.185 | 0.230 |
| Lemniscate B | 0.054 | 0.103 | 0.146 |
| Lemniscate C | 0.056 | 0.118 | 0.131 |
| Helix A | 0.072 | 0.077 | 0.113 |
| Helix B | 0.088 | 0.215 | 0.220 |
| Circle C | 0.101 | 0.403 | 0.384 |
Separation of timescales: 2 Hz RTA, 50 Hz splines + NRT.
We couple NRT to a runtime-assurance layer enforcing temporal-logic safety[4]:
Proposition [5]. For the hover linearization of the six-DOF miniature blimp with exact ZOH predictor \(\hat y(t)=Ce^{AT}x + CA^{-1}(e^{AT}-I)Bu\), the closed-loop linearized system is \(\alpha\)-stable.
Definition [2, Def. 4.1]
A uniform-in-\(\alpha\) variant of BIBS stability: \(\exists\,\bar\alpha\!\geq\!0\) and class-\(\mathcal{K}\) functions \(\beta,\gamma_1,\gamma_2\) independent of \(\alpha\!\in\![\bar\alpha,\infty)\) such that \[\lVert z(t)\rVert \leq \beta(\lVert z_0\rVert) + \gamma_1(\lVert r\rVert_\infty) + \gamma_2(\lVert\dot r\rVert_\infty)\] for all \(\alpha\!\geq\!\bar\alpha\).
Implication [2, Prop. 4.2]
\(\alpha\)-stability \(\Rightarrow\) asymptotic exact tracking as the speedup grows: \[\lim_{\alpha\to\infty}\limsup_{t\to\infty}\lVert r(t)-\hat y(t)\rVert = 0.\]
Once \(\alpha\)-stability holds, arbitrary tracking precision is achievable by speedup.
Proof Sketch. The closed-loop Newton–Raphson system with this predictor defines the linear closed-loop system for extended state \(z := [x^\top,\, u^\top]^\top\). \[ \dot z = \Phi_\alpha\, z + \Psi_\alpha\, r(t+T) \]
[2] defines corresponding system polynomials \(P_0(s)\) and \(Q(s)\) for this closed loop, with the sufficient condition that both polynomials being Hurwitz implies \(\alpha\)-stability.
For the linearized blimp system, both \(P_0\) and \(Q\) can be shown to have all roots in the open left-hand complex plane for any value of \(\alpha\). Therefore, the linearized closed loop is \(\alpha\)-stable, and our true system is stable near equilibrium. \(\blacksquare\)
Hardware MM-GPR demo — wind estimation OFF vs ON.
MM-GPR tube rejects an unmodeled industrial-fan disturbance. With GP estimation disabled, tubes become inaccurate and the mission fails[6]
NRT inside a runtime-assurance framework using forward-invariant tubes around reference trajectories:
immrax [7] tube updates at 10 Hz — full pipeline meets 10 ms budget on averageSummary of Thrust 1
Thrust II · Safe Trajectory Planning
Limitations we address:
(1) worst-case inflation → safe trajectories falsely deemed infeasible
(2) offline FRS cannot absorb a priori unknown disturbances.
Limitations we address:
(1) worst-case inflation → safe trajectories falsely deemed infeasible
(2) offline FRS cannot absorb a priori unknown disturbances.
Limitations we address:
(1) worst-case inflation → safe trajectories falsely deemed infeasible
(2) offline FRS cannot absorb a priori unknown disturbances.
Departure: strip the offline FRS of its tracking-error inflation and delegate safety certification to the online MMR verifier against the measured disturbance. First RTD-class framework to safely plan under a priori unknown disturbances.
MMR enables efficient calculation of hyperrectangular reachable set overapproximations via a single ODE integration. immrax [7] provides an embedding system for our dynamics and JIT-compiles it for real-time reachability.
immrax verification to certify a safe corridor path.Two rectangular obstacles make a narrow gap:
Scenario isolates the effect of offline FRS conservatism
At each step: generate candidate → verify → execute or repair.
Side-by-side animation: Standard RTD (conservative but succeeds) and RTD-RAX (online verification + repair reaches goal).
The RTD-RAX path is shorter than the Standard RTD path.
Close-up of two repair events: unsafe candidate tube (pink) rejected, repaired tube (green) chosen and executed. Animation pauses at each repair for visual clarity.
The verifier + repair layer turns mission failures into safe alternatives.
Verification and simple repairs often happen near-instantly: trade \(\approx\!1\) ms online compute for a recovered, certifiably safe path
Receding-horizon with multiple disturbance patches.
| Planner | Outcome | Cycles | Repairs | Mean / p95 [ms] |
|---|---|---|---|---|
| Std RTD | Collision | 3 | — | 10.5 / 21.9 |
| RTD-RAX | Goal reached | 19 | 3 | 10.5 / 37.4 |
First RTD-class framework to certify safety under a priori unknown runtime disturbances [9].
Summary of Thrust 2
Thrust 1 · Low-Level
Thrust 2 · Mid-Level
RTD-RAX:
RL-STL: MILP-on-trigger policy
Thrust 3 · High-Level
Thrust I · Proposed Work
In addition to upcoming methodological contributions, will leverage hardware-implementation expertise in collaborative efforts.
Upcoming collaboration:

Preliminary Gazebo Results


Thrust II · Proposed Extensions
Current
Rejected parameters are altered in a guess-and-check manner that empirically works but may be inefficient.
RTD candidate-generation and online MMR verifier communicate only through accept/reject.
Proposed. Two parallel tracks.
Differentiable distance-to-obstacle measure that accounts for disturbance and perform gradient step on the parameters for smarter repair
\[ k_{\text{new}} \leftarrow k^\star + \eta\;\nabla_k\bigl(\min_i\operatorname{dist}(\mathcal B_j(k,\mathbf d), \mathrm{obs}_i)\bigr) \]
Feed disturbance measurements back into core RTD program as constraints and/or warm-start with disturbance-aware repaired trajectory parameters. \[ \min_k \, J(k) \; \text{s.t. } k \text{ is obstacle-free},\;\; k_0 = k^{\text{wind}} \]
Current. Simulated disturbance known at every iteration.
Not viable for real-world implementations.
Proposed. Utilize time-varying GPs as in [6].
Learn the disturbance online from a measured residual between estimated acceleration and measured acceleration.
Pay-off. Learns from flight data.
More recent measurements weighted more strongly. SITL precedent in gale-force conditions. Hardware precedent in IFL against an industrial fan.

Setup for hardware experiments in the Indoor Flight Lab at Georgia Tech. The quadrotor (blue), tracked by a motion capture system (red), landing pad (yellow), while in the presence of wind created by an industrial fan (green).
Will be first hardware demonstrations of RTD-RAX.
Extend from spatial safety to full STL mission specifications by learning which parameters map onto given STL formulas:
What STL adds beyond “avoid obstacles”: timed, sequenced, conditional objectives.
STL-based control synthesis typically requires a mixed-integer program (MILP) — expensive to solve every step.
Pipeline
Online compute dominated by policy inference rather than solving MILP.
Safety maintained because MILP re-solve is triggered by robustness degradation.
Threshold \(\rho_{\text{trig}}\) introduces a compute–conservatism tradeoff.
Thrust III · Secure Control
Failure-Mode Inoculation.
Accumulate verified safety-preserving strategies for each fault class so recurring faults are handled faster each time.
Like a biological immune response, each new attack expands the resilient operating envelope.
For each fault class \(f\), precompute an offline map \[\sigma_f : \mathcal{P} \to \Sigma_f\] from system parameters \(p \in \mathcal{P}\) (altitude, speed, battery) to a pre-certified backup strategy.
P3.1 broadly classifies (fault, parameters) into a backup-strategy class; we now turn these into an actual recovery strategy
Instead of executing a one-size-fits-all re-stabilizing backup, each class carries a cached warm-start that seeds an online optimal-recovery program — precomputed templates refined online, rather than cold-solved from scratch.
Offline build. For each fault class \(f\), encode the safe-recovery strategy. Sweep the parameter grid \(\mathcal{P}\) and cache the optimal recovery trajectory \(z^\star_f(p)\) as a warm-start.
Runtime trigger. Fault \(f\) at parameters \(p\) → retrieve \(z^\star_f(p)\) from the cache → warm-start the online optimal-recovery program → much faster feasible recovery instead of cold-solve latency.
If no such backup strategy exists in the cache for the current (fault, parameters), fall back into a broader diagnosis/recovery pipeline.
| Venue | Milestone | Status |
|---|---|---|
| ACC | First hardware validation of NRT on quadrotor | Published |
| TCST | Competitive tracking performance shown on quad and blimp vs NMPC, FBL | Accepted |
| NAHS | I-STL runtime assurance on blimp with NRT method as LLC + \(\alpha\)-stability proof for blimp | In revision |
| MECC + ALDSC Joint Submission | RTD-RAX Architecture | Submitted |
| OJ-CSYS | GP-tube tracking, quadrotor validation + NRT Method as LLC | Submitted |
| Term | Milestone |
|---|---|
| Summer 2026 | Contraction-NN tracker on Holybro X500 vs NRT/NMPC (P1.1, CoRL) |
| Summer 2026 | RTD-RAX: GP disturbance bounds + gradient repair (P2.1–P2.2) |
| Fall 2026 | RL-STL MILP-on-trigger policy (P2.5) |
| Fall 2026 | RTD-RAX hardware: GTernal → Holybro X500 (P2.3) |
| Spring 2027 | Parameter → STL trajectory map (P2.4) |
| Spring 2027 | Certified backup-controller library, one fault class (P3.1) |
| Summer 2027 | STL failure-mode warm-start cache (P3.2) |
| Summer 2027 | Dissertation writing & defense |
Computationally Efficient and Safe Control for Aerial Robotic Systems
under Threat and Disturbance
A research program for efficient, robust, and cyber-secure autonomy.
Q&A Reference Slides — additional technical detail for committee discussion. Navigate freely; these slides are not part of the main 45-minute talk.
Shared Infrastructure — hardware platforms and software tooling used across all three thrusts.
| Platform | Role | Key constraints | Source |
|---|---|---|---|
| Holybro X500 V2 quadrotor | NRT + GP tube + proposed RTD-RAX | \(\geq\) 100 Hz/10 ms budget; RPi 4 Model B Onboard | [5, 6, 12] |
| Miniature blimp (undermounted thrusters) | NRT + I-STL RTA | 40 Hz control/25 ms budget | [4, 5] |
| GTernal ground robot | Proposed RTD-RAX | Dubins-class kinematics, onboard compute | [9] |
All hardware uses OptiTrack / Vicon for motion capture
PX4-based quadrotor fuses MoCap with onboard sensors via the PX4 EKF2 [5].
immrax [7] — automated embedding-system construction and MMR propagation9-state, 4-input nonlinear model used for the Holybro X500 V2 hardware [5]. State \(x=[p_x,p_y,p_z,\;V_x,V_y,V_z,\;\phi,\theta,\psi]^\top\in\mathbb R^9\); input \(u=[u_\tau,\;u_p,u_q,u_r]^\top\in\mathbb R^4\) (net thrust + body rates).
\[ \begin{aligned} (\dot p_x,\dot p_y,\dot p_z) &= (V_x,V_y,V_z), \\ \dot V_x &= -\tfrac{u_\tau}{m}\bigl(\sin\phi\sin\psi + \cos\phi\cos\psi\sin\theta\bigr), \\ \dot V_y &= -\tfrac{u_\tau}{m}\bigl(\cos\phi\sin\psi\sin\theta - \cos\psi\sin\phi\bigr), \\ \dot V_z &= g - \tfrac{u_\tau}{m}\bigl(\cos\phi\cos\theta\bigr), \\ (\dot\phi,\dot\theta,\dot\psi) &= T_\Theta\,\omega^b, \end{aligned} \]
where \(T_\Theta\) is the Euler-rate transformation matrix.
GT-MAB platform [13]: radially-symmetric blimp with undermounted gondola; CG sits below the center of buoyancy along body \(\hat z\) at offset \(r^b_{z,g/b}\)
State \(x=(\nu^b_{b/n},\eta^n_{b/n})\in\mathbb R^{12}\) with \(\nu^b\) = body-frame translational/angular velocities and \(\eta^n\) = world-frame position + Euler angles
Input \(u=[f^b_x,f^b_y,f^b_z,\tau^b_z]^\top\in\mathbb R^4\) (3 thrust forces + yaw torque)
Output \(\sigma=[p_x,p_y,p_z,\psi]^\top\in\mathbb R^4\)
6-DOF dynamics [13, Eq. 3]: \[M^{CB}\dot\nu^b_{b/n} \;+\; C^{CB}(x)\,\nu^b_{b/n} \;+\; D^{CB}\,\nu^b_{b/n} \;+\; G^{CB}(x) \;=\; L\,u\]
with mass/inertia \(M^{CB}\), Coriolis \(C^{CB}(x)\), aerodynamic damping \(D^{CB}\), restoring gravity \(G^{CB}(x)\), and constant input map \(L\in\mathbb R^{6\times 4}\).
Buoyancy cancels translational gravitational acceleration; the CB–CG offset induces a non-zero roll/pitch restoring torque.
Underactuation [13, Eq. 2]: the 4-D input \(u\) maps into a 6-D wrench via \(\tau^b = L u\) with constant \(L\in\mathbb R^{6\times 4}\)
Operating point: level hover with \(\nu^b=0\), \(\Theta^n=0\). Linearizing the GT-MAB model about this point preserves the underactuation through \(B\):
\[\dot x \;=\; A\,x + B\,u, \qquad B = (M^{CB})^{-1}\,L, \qquad (A,B) \text{ constant.}\]
Trade-off: valid only while \(\|\Theta\|\) stays small; aggressive attitude maneuvers push the linearization into model-mismatch territory.
Thrust I · Backup Details — Theory, Models & Baselines, Results
Start from a classical Newton-Raphson root-finder for \(f:\mathbb R^n\to\mathbb R^n\) [5]:
\[x_{k+1} = x_k - \Bigl(\tfrac{\partial f}{\partial x}(x_k)\Bigr)^{-1} f(x_k).\]
Memoryless plant \(y(t)=g(u(t))\); seek \(u\) such that \(g(u)=r\). Discretize with step \(\Delta t\), \(t_k=k\Delta t\): \[u(t_{k+1}) \;=\; u(t_k) + \Delta t\,\Bigl(\tfrac{\partial g}{\partial u}(u(t_k))\Bigr)^{-1}\bigl(r(t_k)-g(u(t_k))\bigr).\]
Rearrange as a difference quotient and take the limit \(\Delta t\to 0\) to obtain the continuous-time NRT flow; scaling by a speedup factor \(\alpha>1\) yields [2]: \[\boxed{\;\dot u(t) = \alpha\,\Bigl(\tfrac{\partial g}{\partial u}(u(t))\Bigr)^{-1}\bigl(r(t)-g(u(t))\bigr)\;}\qquad\limsup_{t\to\infty}\|r(t)-y(t)\|\;\leq\;\alpha^{-1}\limsup_{t\to\infty}\|\dot r(t)\|.\]
Problem Given \(\dot x = f(x,u)\), \(y = h(x)\) — there is no static map \(u\mapsto y\); the output depends on the trajectory of \(u\), and the system dynamics not just its instantaneous value.
Resolution [2]: replace \(g(u(t))\) with a ZOH look-ahead predictor \(\hat y(t+T)=\rho(x(t),u(t))\) — the predicted output \(T\) seconds ahead assuming the current \(u\) stays frozen (construction on the next slide). Substituting \(g\to\rho\) and shifting the reference \(r(t)\to r(t+T)\) in the memoryless NRT flow yields:
\[\boxed{\;\dot u(t) \;=\; \alpha\,\Bigl(\tfrac{\partial \rho}{\partial u}(x(t),u(t))\Bigr)^{-1}\bigl(r(t+T)-\rho(x(t),u(t))\bigr)\;}\]
Asymptotic error bound [2, Thm. 4.5]: \(\limsup_{t\to\infty}\lVert r(t)-y(t)\rVert \,\leq\, \nu_1+\nu_2/\alpha\), where \(\nu_1\) accounts for prediction inaccuacy over horizon \(T\) and \(\nu_2\) for reference speed \(\lVert\dot r\rVert_\infty\)
\(\alpha\) is a speedup, not a gain — it multiplies \(\dot u\), not \(u\)
ZOH assumption [2]: hold \(u\) constant over \(\tau \in [t, t+T]\) and define \[ \rho(x(t),u(t)) \;\triangleq\; C\,x(t+T)\;\big|_{\dot x = f(x,u(t)),\; x(t)=x(t),\; u(\tau)=u(t)} \]
This is the (model-predicted) output at the lookahead horizon \(t+T\) assuming the current \(u\) stays frozen.
Linearized case. Closed-form: \[ \begin{aligned} \rho(x,u) &= C e^{AT}x + C\!\int_0^T e^{As}\mathrm ds\,B\,u \\ &=: C\tilde A x + C\tilde B u \end{aligned} \] → constant Jacobian \(J=C\tilde B\) [5]
Nonlinear case. \(\rho\) via numerical integration:
RK4/Euler: \(\partial_u\rho\) via autodiff or finite differences [12]
Horizon \(T\) is a tuning knob: small \(T\) → high-frequency noise; large \(T\) → stale prediction.
Definition 4.1 [2]. The NRT-closed-loop system is \(\alpha\)-stable on a compact set \(\Gamma\subset\mathbb R^{n+m}\) if \(\exists\,\bar\alpha\geq 0\) and class-\(\mathcal K\) functions \(\beta,\gamma_1,\gamma_2\) such that for every \(z(0)\in\Gamma\), every bounded reference \(r\) with bounded \(\dot r\), and every \(\alpha\geq\bar\alpha\), \[\lVert z(t)\rVert \leq \beta(\lVert z(0)\rVert) + \gamma_1(\lVert r\rVert_\infty) + \gamma_2(\lVert\dot r\rVert_\infty).\]
Intuition. The extended state \((x,u)\) stays bounded by three additive budgets: a transient from the initial condition, a tax for reference magnitude, and a tax for reference speed.
Key property: the bounds hold uniformly in \(\alpha\) once \(\alpha\geq\bar\alpha\) — increasing the gain never destabilises. By Proposition 4.2 of [2], \(\alpha\)-stability implies \(\lim_{\alpha\to\infty}\limsup_t\lVert r-\hat y\rVert=0\) for references with \(\dot r\to 0\). This is the BIBS-with-speedup variant; distinct from standard ISS in that \(\alpha\) appears as a control parameter, not a fixed gain [2].
Corollary 3.5 of [2]. For any bounded reference with bounded derivative, the tracking error of the NRT flow satisfies \[\limsup_{t\to\infty}\lVert r(t)-y(t)\rVert \;\leq\; \eta_1 + \tfrac{\eta_2}{\alpha}.\]
\(\eta_1\) — sup-norm of the prediction-model residual \(\lVert\rho(x(t),u(t)) - y(t+T)\rVert\); vanishes only if \(\rho\) matches the true ZOH output exactly. Floor that \(\alpha\) cannot touch.
\(\eta_2\) — proportional to \(\sup_t\lVert\dot r(t+T)\rVert\), the reference’s own rate of change; attenuated by \(1/\alpha\) because larger \(\alpha\) tracks the moving target faster.
The NRT dynamic law \(\dot u = \phi(x,u,t)\) is augmented with a min-norm perturbation \(v\in\mathbb R^m\) to enforce safety on the augmented set \(\mathcal S=\{(x,u)\in\mathbb R^{n+m}:h(x,u)\geq 0\}\) [3, Thm. 1]:
\[\dot u \;=\; \phi(x,u,t) + v^\star,\qquad v^\star \;=\; \operatorname{arg\,min}_{v\in\mathbb R^m}\;\tfrac{1}{2}\lVert v\rVert^2 \quad\text{s.t.}\quad p(x,u)^\top v \;\geq\; d(x,u,t),\]
with \(p(x,u)\!:=\!(\partial_u h)^\top\) and \(d(x,u,t)\!:=\!-\bigl[\partial_x h\,f(x,u)+\partial_u h\,\phi(x,u,t)+\gamma(h(x,u))\bigr]\).
Input bounds are I-CBFs too: \(h(u)=u_{\max}^2-\lVert u\rVert^2\) satisfies the I-CBF condition [3, Lem. 1], so \(u\) is kept in-envelope by integration of \(\dot u=\phi+v^\star\) rather than by hard saturation — no windup.
The quadrotor is differentially flat in \(\sigma=[x,y,z,\psi]^\top\): the full state and input are recovered algebraically from \(\sigma\) and its derivatives up to order \(\ell=3\) \[ x=\beta(\sigma,\dot\sigma,\ddot\sigma,\dddot\sigma),\qquad u=\Phi(\sigma,\dot\sigma,\ddot\sigma,\dddot\sigma). \] NRT is then run in the flat domain with flat state \(x_\mathrm{flat}=[\sigma,\dot\sigma]\) and flat input \(u_\mathrm{flat}=\ddot\sigma\) — one derivative below the order needed by \(\Phi\), so the NRT update naturally produces the jerk \(\dddot\sigma_\mathrm{des}\).
Second-order kinematic predictor: \[ \rho(x_\mathrm{flat},u_\mathrm{flat}) \;=\; \sigma + \dot\sigma\,T + \tfrac{1}{2}u_\mathrm{flat}\,T^2 \]
\[ \frac{\partial\rho}{\partial u_\mathrm{flat}} = \tfrac{T^2}{2}\,I_4 \]
Jacobian inverse is a constant scalar — no matrix factorization per step. Flat-domain law: \[ \dddot\sigma_\mathrm{des} \;=\; \alpha\odot\bigl(\tfrac{2}{T^2}\,I_4\bigr)\bigl(r(t{+}T)-\rho\bigr). \]
A triple-integrator chain \(\dot z = A_3 z + B_3\,\dddot\sigma_\mathrm{des}\) with \(z=[\sigma,\dot\sigma,\ddot\sigma]^\top\) is forward-Euler integrated each tick to recover \(\chi=[\sigma,\dot\sigma,\ddot\sigma,\dddot\sigma]_\mathrm{des}\), then \(\Phi(\chi)\) produces \(u_\mathrm{des}=[F,p,q,r]\) on the PX4 inner loop.
Implementation (JAX, JIT)
x_df = [σ, σ̇, σ̈], control u_df = σ⃛Error-state OCP — state \(x=[p,v,\eta]\in\mathbb R^9\), input \(u=[F,p,q,r]\in\mathbb R^4\) (collective thrust + body rates) [5]: \[ \min_{x_{0:N},\,u_{0:N-1}}\; \tfrac{1}{2}\|e_N\|_{Q_e}^2 + \tfrac{1}{2}\sum_{k=0}^{N-1}\|e_k\|_W^2 \;\;\text{s.t.}\;\; x_{k+1}=\Phi_{\!\Delta t}(x_k,u_k),\;\; x_0=\hat x(t),\;\; u_k\in\mathcal U, \] where \(e_k=[\,p_k-p_k^\mathrm{ref},\,v_k-v_k^\mathrm{ref},\,\mathrm{atan2}(\sin\Delta\psi,\cos\Delta\psi),\,u_k-u_k^\mathrm{ref}\,]\) uses wrapped yaw error
Real-time iteration in acados
nlp_solver = SQP_RTI — one SQP iteration per control step, no convergence loopcost_type = NONLINEAR_LS with stage-wise reference parameter \(p_k=[p^\mathrm{ref},v^\mathrm{ref},\eta^\mathrm{ref},u^\mathrm{ref}]\in\mathbb R^{13}\) — references enter as parameters, not via yref rebuildDelay-compensation strategy
Two 100 Hz ROS timers ride out solve-time jitter without per-step latency:
compute_control_timer (100 Hz): solves the OCP, warm-starts \(u_0\!\leftarrow\!u_\mathrm{last}\), writes the full \(N\)-step input plan into control_buffer and resets buffer_index=0publish_control_timer (100 Hz): accounts for computation delay and uses the appropriate \(n^{th}\) inputWith differential-flatness feedforward (--ff, used in the contraction study), per-stage references include flat-output-derived \(\eta^\mathrm{ref}_k\) and \(u^\mathrm{ref}_k\) instead of hover — the SQP step then only solves for the residual correction, sharply reducing transient excursions.
Input-output FBL for the GT-MAB blimp [13, Thm. 1]: with output \(\sigma=[x,y,z,\psi]^\top\), each channel has relative degree 2 (away from \(\theta,\phi=\pm\pi/2\)), so \(\ddot\sigma = A(x) + B(x)u\).
Invert the input map and solve for virtual input \(q\in\mathbb R^4\): \[ u(x) = B(x)^{-1}\bigl(q - A(x)\bigr), \qquad q = \ddot r + K_d(\dot r - \dot y) + K_p(r - y) \] giving linear residual dynamics \(\ddot e + K_d\dot e + K_p e = 0\) on tracking error \(e=\sigma-r\).
From the Holybro X500 V2 hardware study in [5]
“Clipped” removes the initial hover-to-reference transient; “With Transients” includes it.
RMSE [m] — Clipped vs. With Transients
| Trajectory | NRT Clipped | NMPC Clipped | NRT Full | NMPC Full |
|---|---|---|---|---|
| Circle A | 0.10695 | 0.03932 | 0.12266 | 0.10653 |
| Circle B | 0.11887 | 0.03246 | 0.12276 | 0.15162 |
| Lemniscate A | 0.12328 | 0.09738 | 0.12249 | 0.11311 |
| Lemniscate B | 0.15915 | 0.04683 | 0.15203 | 0.10479 |
| Lemniscate C | 0.14554 | 0.09938 | 0.14532 | 0.17329 |
| Helix A | 0.14879 | 0.13327 | 0.14867 | 0.16865 |
| Helix B | 0.19540 | 0.14977 | 0.18851 | 0.18044 |
| Circle C | 0.17398 | 0.14782 | 0.17073 | 0.17715 |
| Sawtooth | 0.04014 | 0.02331 | 0.04505 | 0.06032 |
| Triangle | 0.05979 | 0.01803 | 0.08136 | 0.08387 |
Per-iteration compute [ms]
| Trajectory | NRT | NMPC |
|---|---|---|
| Circle A | 2.381 ± 0.206 | 13.036 ± 0.173 |
| Circle B | 2.426 ± 0.201 | 13.352 ± 0.139 |
| Lemniscate A | 2.438 ± 0.239 | 13.088 ± 0.092 |
| Lemniscate B | 2.486 ± 0.200 | 13.288 ± 0.246 |
| Lemniscate C | 2.397 ± 0.200 | 9.216 ± 5.646 |
| Helix A | 2.480 ± 0.222 | 13.307 ± 0.196 |
| Helix B | 2.471 ± 0.271 | 13.294 ± 0.110 |
| Circle C | 2.454 ± 0.255 | 13.705 ± 0.222 |
| Sawtooth | 2.507 ± 0.254 | 13.329 ± 0.140 |
| Triangle | 2.417 ± 0.196 | 13.182 ± 0.291 |
Bold = winner per category. NRT consistently ~5.3–5.6\(\times\) faster than NMPC per iteration.
Newton-Raphson tracker (NRT) vs. NMPC vs. FBL on the miniature blimp [5].
NRT receives no reference-derivative information; NMPC and FBL are given \(\dot r\).
Bold = winner per category
RMSE [m] — standard + aggressive trajectories
| Trajectory | NRT | NMPC | FBL |
|---|---|---|---|
| Circle A | 0.079 | 0.141 | 0.193 |
| Circle B | 0.051 | 0.110 | 0.143 |
| Lemniscate A | 0.104 | 0.185 | 0.230 |
| Lemniscate B | 0.054 | 0.103 | 0.146 |
| Lemniscate C | 0.056 | 0.118 | 0.131 |
| Helix A | 0.072 | 0.077 | 0.113 |
| Helix B | 0.088 | 0.215 | 0.220 |
| Circle C | 0.101 | 0.403 | 0.384 |
Per-iteration compute [ms]
| Trajectory | NRT | NMPC | FBL |
|---|---|---|---|
| Circle A | 0.84 ± 0.05 | 58.7 ± 15.7 | 10.4 ± 9.7 |
| Circle B | 0.82 ± 0.03 | 51.5 ± 12.2 | 10.9 ± 10.4 |
| Lemniscate A | 0.82 ± 0.02 | 52.7 ± 12.5 | 10.5 ± 10.7 |
| Lemniscate B | 0.87 ± 0.23 | 54.2 ± 6.8 | 10.8 ± 10.1 |
| Lemniscate C | 0.86 ± 0.02 | 54.8 ± 11.9 | 10.7 ± 10.4 |
| Helix A | 0.94 ± 0.04 | 53.2 ± 6.8 | 9.9 ± 9.5 |
| Helix B | 0.95 ± 0.02 | 60.8 ± 12.8 | 10.3 ± 10.1 |
| Circle C | 0.96 ± 0.03 | 73.5 ± 20.9 | 10.2 ± 9.9 |
NMPC misses the 25 ms control deadline on every trajectory → degraded tracking.
NRT is ~10× faster than FBL and ~60× faster than NMPC on this platform.
Setting [4]: linear discrete-time system \(x_{k+1}=Ax_k+Bu_k+Gw_k\), \(w_k\in\mathcal W\) bounded, plus a (possibly unsafe) nominal controller \(\hat u\) and a bounded-horizon Interval STL safety formula \(\varphi\) with affine predicates \([\alpha]^\top[x]-[\beta]\geq 0\).
Goal: at every time \(t\), output \(u_t\) that minimally deviates from \(\hat u_t\) while guaranteeing \(\underline\rho^\varphi(\mathbf x,k)\geq 0\) for all \(k\geq 0\) and all disturbance realizations.
Why I-STL (vs. plain STL)?
Receding-horizon RTA program [4, Eq. 7]: \[
\begin{aligned}
\min_{\,u_t,\dots,u_{t+N-1}}\;& \max_{w\in\mathcal W}\,\|\hat u_t - u_t\|\\
\text{s.t. }& x_{k+1}=Ax_k+Bu_k+Gw_k\\
& \underline\rho^\varphi(\mathbf x,k)\geq 0\\
& u_k\in\mathcal U
\end{aligned}
\] Encoded as a MILP via stlpy extended with npinterval for I-STL semantics — integer variables enforce the temporal-operator big-M constraints exactly.
Three obstacles to making this real-time — (1) recursive feasibility under disturbance, (2) the inner \(\max\) over \(w\), (3) MIP solve too slow for low-level control. Each is addressed on the next slide.
Making the MIP correct [4]
Meeting the deadline [4]
The split decouples correctness (slow MIP, I-STL interval semantics) from bandwidth (fast NRT tracking the spline).
Platform [4]: GT-MAB 6-DOF miniature blimp, hardware in real time. Dynamics linearized about hover for the RTA MIP; nonlinear in the NRT tracking layer. Nominal PID loops four corners of \(\mathcal S\) → violates both specs by construction.
Specs — central square \(\mathcal S\), side \(\approx 2.82\) m
Hardware parameters [4, Tab. 1]
| Param | \(\varphi\) Sim | \(\varphi\) Real | \(\vartheta\) Real |
|---|---|---|---|
| State unc. \(\lvert\varepsilon\rvert\) | 0.07 m | 0.12 m | 0.18 m |
| Reward \(\zeta\) | 0.02 | 0.07 | 0.07 |
| Formula horizon \(\|\varphi\|\) | 8 | 8 | 8 |
| Actuation coeff. \(\alpha_0\) | 0.4 | 0.4 | 0.3 |
Prediction horizon \(N=12\), \(b=1\) [§ X.4]. Hardware \(\lvert\varepsilon\rvert\) inflated \(\sim 70\!-\!80\%\) vs. sim — absorbs unmodeled higher-order terms and slight negative buoyancy.
Findings [4]
The persistent-feasibility net is the design payoff: occasional MIP overruns, which would chatter or crash a simplex-style RTA, are absorbed silently — the system is provably safe even when the optimizer fails.
For \(\dot x=f(x,u,w)\) with \(w\!=\!g(t,x)\) unknown, [6] build a forward-invariant tube of radius \(\varepsilon\) around the reference \(x_r(t)\) by:
modelling \(g\) as a time-varying Gaussian process
using mixed-Jacobian inclusion to construct an embedding system
propagating \([\underline x(t),\overline x(t)]\) alongside \(x_r\) under the tracking controller.
Mechanism: Identify the earliest time \(t^\star\) at which the tube can no longer stay inside the \(\varepsilon\)-neighborhood of \(x_r\).
At \(t^\star\), trigger:
Full pipeline in ~0.11 ms mean, tube-recompute at 100 Hz body-rate loop without missing deadlines.
SITL Setup:
immrax-based mixed-Jacobian inclusion [7], triggered when tube grows beyond desired limitHardware Setup:
| Computation | Average [ms] | Max [ms] |
|---|---|---|
| Joint NRT + LQR controller | \(0.0026 \pm 0.00069\) | 0.00677 |
| Invariant tube (mixed-Jacobian inclusion) | \(0.108 \pm 0.0059\) | 0.134 |
immrax [7] automated inclusion-function constructionA Gaussian process (GP) [6] is a distribution over functions \(g:\mathbb R^n\to\mathbb R\) such that any finite set of evaluations \(\{g(x_1),\dots,g(x_\tau)\}\) is jointly Gaussian, fully specified by a mean function \(m(x)\) (here taken as zero) and a covariance kernel \(k(x,x')\).
Posterior given \(\tau\) noisy observations \(y_j=g(x_j)+\varepsilon_j,\;\varepsilon_j\sim\mathcal N(0,\sigma^2)\): \[ \begin{aligned} \mu_\tau(x) &= k_\tau(x)^\top(K_\tau+\sigma^2 I)^{-1}y_\tau\\[-2pt] \sigma_\tau^2(x) &= k(x,x)-k_\tau(x)^\top(K_\tau+\sigma^2 I)^{-1}k_\tau(x) \end{aligned} \] where \(k_\tau(x)=(k(x_1,x),\dots,k(x_\tau,x))^\top\) and \(K_\tau=[k(x_i,x_j)]\).
The mean \(\mu_\tau\) is the best-guess function; the variance \(\sigma_\tau^2\) is the uncertainty in that guess at \(x\).
Why GPs (vs. point estimates)
GP-UCB confidence bracket [6, Eq. 9]
UCB — “Upper Confidence Bound”; from bandit theory [Srinivas et al., ICML 2010]. Inflate the posterior mean by \(\sqrt{\beta_\tau}\sigma_\tau(x)\) and you get a high-probability upper envelope on \(g\); mirror it for the lower envelope. The pair is the two-sided high-prob bracket on the unknown function.
With scale factor \(\sqrt{\beta_\tau}\) chosen per [6, Thm. 7]: \[ \begin{aligned} \underline g_i^{(\tau)}(x) &:= \mu_\tau(x)-\sqrt{\beta_\tau}\,\sigma_\tau(x)\\ \overline g_i^{(\tau)}(x) &:= \mu_\tau(x)+\sqrt{\beta_\tau}\,\sigma_\tau(x) \end{aligned} \] brackets the unknown \(g(x)\) with probability \(\geq 1-\eta\) simultaneously over all queries.
Time-varying extension [6]
For drifting disturbances \(g_i(t,x)\), a separable spatio-temporal kernel \[ k_\mathrm{ST}\bigl((t_1,x_1),(t_2,x_2)\bigr) = k(x_1,x_2)\,(1-\epsilon)^{|t_1-t_2|/2} \] downweights stale observations by an \(\epsilon\)-controlled forgetting factor: \(\epsilon=0\) recovers the time-invariant GP, \(\epsilon=1\) discards all history.
The bracketing pair \((\underline g,\overline g)\) lets MMR consume our TV–GPR-based learned disturbance data as a hard interval bound on the disturbance.
Setting [6]: \(\dot x=f(x,u,w)\) with unknown, time- and state-dependent disturbance \(w_i=g_i(t,x)\) (e.g. wind on the planar multirotor). Goal: a forward-invariant tube \([\underline x(t),\overline x(t)]\) around the reference, holding with probability \(\geq 1-\eta\).
1. Bracket \(g\) with the GP [6, Eq. 14] — convert the time-varying GP-UCB bound (Upper Confidence Bound: \(\mu_\tau(x)\pm\sqrt{\beta_\tau}\sigma_\tau(x)\), prev. slide) into interval surrogates over the current tube: \[ \underline\gamma_i(t,\underline x,\overline x)\;\leq\; g_i(t,x)\;\leq\;\overline\gamma_i(t,\underline x,\overline x),\quad x\in[\underline x,\overline x]. \]
2. Plug into a mixed-monotone embedding [6, Eq. 15]: \[ \dot{\underline x}_i = \underline{\mathsf E}([\underline x,\overline x],[\underline u,\overline u];\,\underline\gamma_i,\overline\gamma_i),\;\; \dot{\overline x}_i = \overline{\mathsf E}(\dots) \] The GP enters as if a known interval-bounded disturbance → reachable-set computation stays deterministic ODE integration, not stochastic simulation.
3. Tighten with mixed-Jacobian inclusions [6]: bound the partials \(\partial g/\partial x\) via interval analysis on the GP posterior → captures first-order state interaction, shrinks tube width.
4. Trigger online recomputation [6, Alg. 1]: while integrating the embedding, monitor when tube width approaches the safety threshold \(\varepsilon\); that crossing time \(t_r\) is the next planning instant.
5. Observe & update the GP. At \(t_r\), ingest a new disturbance measurement: the time-kernel auto-discounts old samples, the posterior tightens, the new \((\underline\gamma,\overline\gamma)\) shrinks the next tube, and the system re-plans — closing the observe → learn → bound → track loop.
The GP turns uncertainty about a function into an interval-valued time-varying disturbance.
Thrust II · Backup Details
RTD splits the dynamics into a high-fidelity model (the robot’s true closed-loop behavior) and a low-dimensional trajectory-producing model [8].
High-fidelity [8, eq. (1)]: \[ \dot{\bar z}(t)=\bar f\bigl(t,\bar z(t),u(t,\bar z(t))\bigr), \] \(\bar z\in\bar Z\subset\mathbb R^{n_{\bar Z}}\), control \(u\in U\).
Trajectory-producing [8, eq. (2)]: \[ \begin{bmatrix}\dot z\\\dot k\end{bmatrix}=\begin{bmatrix}f(t,z,k)\\0\end{bmatrix}, \] \(z\in Z\subseteq\bar Z\), \(k\in K\subset\mathbb R^{n_K}\).
Segway example [8, Ex. 1–3]:
Assumption [8, Asm. 7]: for each shared coordinate \(i\in\{1,\dots,n_Z\}\) there exists a bounded, Lipschitz \(g_i:[0,T]\times Z\times K\to\mathbb R\) that conservatively bounds the cumulative tracking error between the high-fidelity \(\bar z_i\) and trajectory-producing \(z_i\): \[ \max_{\bar z\in A_z}\;\bigl|\bar z_i(t;\bar z_0,k)-z_i(t;z_0,k)\bigr|\;\le\;\int_0^t g_i(\tau,z,k)\,d\tau, \] \(\forall\,z\in Z,\,t\in[0,T],\,k\in K\).
Why “worst-case”: \(g_i\) is the upper envelope over the family of sampled error trajectories — it must dominate the largest observed error at every \(t\). Only the worst realisation drives FRS conservatism.
Step 1 — Absorb \(g\) into the dynamics. Define the trajectory-tracking model with worst-case disturbance signal \(d\in L_d:=L^1([0,T],[-1,1]^{n_Z})\) [8, eq. (13)]: \[ \dot{\tilde z}(t)\;=\;f(t,\tilde z(t),k)\;+\;g(t,\tilde z(t),k)\circ d(t). \]
Step 2 — FRS definition [8, eq. (18), § III.A]. The set of \(xy\)-subspace positions reachable by a robot described by the high-fidelity model while tracking parameterised trajectories from the trajectory-producing model, despite tracking error, over the horizon \(T\): \[ \begin{aligned} \mathcal X_{\mathrm{FRS}}\;=\;\Bigl\{(x,k)\in X\!\times\! K\;\big|\; &\exists\,z_0\in Z_0,\;\tau\in[0,T],\;d\in L_d\;\text{ s.t. }\;x=\mathrm{proj}_X\!\bigl(\tilde z(\tau)\bigr),\\ &\text{where }\;\dot{\tilde z}(t)=f(t,\tilde z(t),k)+g(t,\tilde z(t),k)\circ d(t)\\ &\text{a.e. }t\in[0,T],\;\tilde z(0)=z_0\Bigr\}. \end{aligned} \] Each fixed \(k\) slices a spatial tube
Sensing assumptions [8]:
Geometric buffer + discretization [8]: \[ X_{\mathrm{obs}}^b=X_{\mathrm{obs}}\oplus\mathcal B(b), \] \[ X_p=\texttt{discretizeObs}(X_{\mathrm{obs}}^b,r,a), \] where \(b\) is a user-chosen buffer, \(r\) is the point spacing required so the robot’s footprint cannot fit between samples, \(a\) bounds arc-length around concave corners.
OptKOptK program [8, Prog. \((\mathrm{OptK})\)]: evaluate the offline polynomial \(w^l\) at each sensed obstacle point \(p\in X_p\): \[
\min_{k\in K}\;J(k)\quad\text{s.t.}\quad w^l(p,k)<1,\;\;\forall\,p\in X_p.
\]
Receding-horizon loop [8, Alg. 2]: at iteration \(j\), concurrently:
OptK → execute In our turtlebot implementation, \(k=(k_1,k_2)\in[-1,1]^2\) are normalized, dimensionless knobs. The unit square is exactly the domain over which the offline FRS polynomial \(w^l(x,k)\) is fitted — no physical units enter until decode time.
Step 1 — decode \((k_1,k_2)\) to commanded controls: \[ \omega_{\mathrm{des}}=\omega_{\max}\,k_1,\qquad v_{\mathrm{des}}=\tfrac{v_{\max}}{2}(k_2+1). \]
Step 2 — Dubins-unicycle two-phase trajectory: \[ \dot x=v(t)\cos\theta,\;\;\dot y=v(t)\sin\theta,\;\;\dot\theta=\omega(t), \] with \(v(t)=v_{\mathrm{des}}\,s(t)\), \(\omega(t)=\omega_{\mathrm{des}}\,s(t)\), and braking scale: \[ s(t)=\begin{cases}1,&0\le t\le t_{\mathrm{plan}}\\[2pt]\max\!\bigl(0,\tfrac{t_{\mathrm{stop}}-(t-t_{\mathrm{plan}})}{t_{\mathrm{stop}}}\bigr),&t_{\mathrm{plan}}\le t\le T\end{cases} \] where \(T=t_{\mathrm{plan}}+t_{\mathrm{stop}}\). Typical: \(t_{\mathrm{plan}}=0.5\) s, \(t_{\mathrm{stop}}=1.0\) s ⇒ one trajectory spans 1.5 s of horizon.
The previous slide showed how \((k_1,k_2)\) decode to a Dubins-style trajectory. This is relevant, for example, in the case of a 5-D high-fidelity truth model versus a 2-D trajectory-producing (planning) model.
High-fidelity — 5-D [8, Ex. 1]: \[ \bar z=\begin{bmatrix}x_c\\y_c\\\theta\\\omega\\v\end{bmatrix},\quad \dot{\bar z}=\begin{bmatrix}v\cos\theta\\v\sin\theta\\\omega\\\mathrm{sat}_\gamma\!\bigl(\beta_\gamma(u_1-\omega)\bigr)\\\mathrm{sat}_\alpha\!\bigl(\beta_\alpha(u_2-v)\bigr)\end{bmatrix} \]
Trajectory-producing — 2-D [8, Ex. 2]: \[ z=\begin{bmatrix}x\\y\end{bmatrix},\quad \dot z=\begin{bmatrix}k_2-k_1(y-y_{c,0})\\k_1(x-x_{c,0})\end{bmatrix} \]
Closing the gap — PD tracker [8, Ex. 3]. A simple PD controller \(u_k(t,\bar z)\) drives the 5-D \(\bar z\) to follow the 2-D Dubins reference: \[ u_k=\begin{bmatrix}\beta_\theta(k_1 t-\theta)+\beta_\omega(k_1-\omega)+\beta_y\,e_y\\\beta_v(k_2-v)+\beta_x\,e_x\end{bmatrix},\qquad \begin{bmatrix}e_x\\e_y\end{bmatrix}=R(\theta)^\top\!\begin{bmatrix}x-x_c\\y-y_c\end{bmatrix}. \] Whatever residual mismatch this PD leaves behind is exactly the tracking error that the worst-case envelope \(g(t)\) (slide 2) bounds — and the FRS (slide 3) over-approximates by union over \(d\in L_d\).
Every parameterised plan ends in a built-in brake. The FRS verifies the entire \(T=t_{\mathrm{plan}}+t_{\mathrm{stop}}\) window of every candidate \(k\), but the planner only commits the first \(t_{\mathrm{plan}}\) before re-planning. The braking tail is already certified safe by construction — no separate fail-safe controller is needed.
Why the stop is safe — three properties of \(s(t)\):
Failsafe trigger. If OptK returns no feasible \(k_{j+1}^\star\) in the next iteration, just keep executing \(k_j^\star\) — it brakes itself to rest inside the FRS-verified safe set.
For \(\dot x=f(x,u,w)\) with \(f\in C^1\), \(x\in\mathbb R^n\), \(u\in\mathbb R^m\), \(w\in\mathbb R^p\) [6]. Let \(\mathbb{IR}^n\) denote the set of intervals \([\underline a,\overline a]\subset\mathbb R^n\).
Inclusion function [6, eq. (2)]. A map \[ \mathsf F=[\underline{\mathsf F},\overline{\mathsf F}]:\mathbb{IR}^n\!\times\!\mathbb{IR}^m\!\times\!\mathbb{IR}^p\to\mathbb{IR}^n \] includes \(f\) if for every \((x,u,w)\) in the input intervals, \[ f(x,u,w)\;\in\;\mathsf F\bigl([\underline x,\overline x],[\underline u,\overline u],[\underline w,\overline w]\bigr). \]
Reads as: \(\mathsf F\) takes interval inputs and returns an interval output that contains every possible value of \(\dot x\) — no matter which point inside the input intervals was the truth.
Important: \(\mathsf F\) is a static set-valued bound. It is not yet a dynamical system — just a snapshot guarantee at one instant in time. The next slide turns this static bound into the embedding system \(\mathsf E\) that you can actually integrate.
Given the inclusion function \(\mathsf F\) from the previous slide, we now construct the \(2n\)-dimensional embedding system \(\mathsf E\) — a single ODE whose state is the entire interval \((\underline x,\overline x)\).
Partial-replacement notation [6]. \(x_{[i:y]}\in\mathbb R^n\) is the vector \(x\) with its \(i\)th component replaced by \(y_i\). So \(\overline x_{[i:\underline x]}\) = upper-bound vector with the \(i\)th coordinate “tightened” down to the lower bound.
Induced embedding system \(\mathsf E\) [6, Def. 1]. Coordinatewise, for \(i\in\{1,\dots,n\}\): \[ \dot{\underline x}_i=\underline{\mathsf F}\!\bigl([\underline x,\,\overline x_{[i:\underline x]}],[\underline u,\overline u],[\underline w,\overline w]\bigr)_i, \] \[ \dot{\overline x}_i=\overline{\mathsf F}\!\bigl([\underline x_{[i:\overline x]},\,\overline x],[\underline u,\overline u],[\underline w,\overline w]\bigr)_i. \]
When updating \(\dot{\underline x}_i\), the \(i\)th coordinate of the upper bound is collapsed to the lower bound (and symmetrically for \(\dot{\overline x}_i\)). Breaking \(\mathsf F\)’s symmetry this way is what turns the static bound into a dynamical \(2n\)-dim ODE whose flow is monotone in the southeast order — the property that earns “mixed monotone.”
\(\mathsf F\) vs \(\mathsf E\) side-by-side:
| \(\mathsf F\) — inclusion function | \(\mathsf E\) — embedding system | |
|---|---|---|
| Type | static, set-valued | dynamical, \(2n\)-dim ODE |
| Inputs | interval \((\underline x,\overline x,\dots)\) | same |
| Output | interval bound on \(\dot x\) | rate \((\dot{\underline x},\dot{\overline x})\) |
| Built from | \(f\) + interval analysis | \(\mathsf F\) + partial replacement |
| Use | snapshot bound | integrate → tube |
Inclusion functions bound \(f\) at one instant; embedding systems propagate that bound through time.
The embedding system \(\mathsf E\) inherits two structural properties from the partial-replacement construction. These are what make it useful, not just well-defined.
Property 1 — Monotonicity of the flow \(\Phi^{\mathsf E}\) [6, eq. (7)]. If \[ (\underline x_0,\overline x_0)\preceq_{\mathrm{SE}}(\underline x'_0,\overline x'_0), \] \[ [\underline u,\overline u](t)\preceq_{\mathrm{SE}}[\underline u',\overline u'](t)\;\;\forall\,t\!\ge\!0, \] \[ [\underline w,\overline w](t)\preceq_{\mathrm{SE}}[\underline w',\overline w'](t)\;\;\forall\,t\!\ge\!0, \] then for every \(t\ge 0\), \[ \Phi^{\mathsf E}(t;\cdot)\preceq_{\mathrm{SE}}\Phi^{\mathsf E}(t;\cdot'). \]
Tighter interval inputs (initial state, control, disturbance) yield tighter interval outputs at every horizon. The embedding flow respects containment of boxes through time.
Property 2 — Reachable-tube guarantee [6, eq. (8)]. For any \(x_0\in[\underline x_0,\overline x_0]\) and admissible signals \(u(\cdot),w(\cdot)\), \[ \phi(T;x_0,u,w)\;\in\;[\![\Phi^{\mathsf E}(T;[\underline x_0,\overline x_0],[\underline u,\overline u],[\underline w,\overline w])]\!]. \]
The bracket-bracket \([\![\cdot]\!]\) casts the \(2n\)-dim embedding state back into an \(n\)-dim interval — that interval contains every possible true-state trajectory.
Integration of the \(2n\)-dim ODE \(\mathsf E\) produces a rigorous hyperrectangular over-approximation of the true reachable set
The embedding-system theory is agnostic to how you build \(\mathsf F\). Two recipes for bounding \(f\) over an interval input [6], in increasing tightness:
1. Natural inclusion — interval arithmetic on \(f\): \[ \underline{\mathsf F}_i,\;\overline{\mathsf F}_i\;\;\text{from interval-evaluating each operator in }f_i. \]
2. Mixed-Jacobian inclusion [6, eq. (13)]. Bound \(f(x,u,w)-f(x',u',w')\) by a matrix set \(\mathcal M\,(x-x')\) derived from \(\partial f/\partial x\) on the box: \[ f(x,\cdot)-f(x',\cdot)\;\in\;\mathrm{co}\bigl\{\partial_x f([\underline x,\overline x])\bigr\}\,(x-x'). \]
mjacM in immrax.Trade-off. Mixed-Jacobian needs interval matrix products at every integration step — pricier than natural’s interval arithmetic. Pick the loosest recipe that still gives the conservatism budget the application needs.
The whole pipeline is automated.
Tooling: immrax [7]. Write \(f\) once in JAX — the toolbox automates all three recipes via:
End-to-end pipeline: \[ f(x,u,w)\;\xrightarrow{\texttt{immrax}}\;\mathsf F\;\to\;\mathsf E\;\to\;\text{tube}. \]
Problem: MMR integration gives interval bounds \([\underline x(t_k),\overline x(t_k)]\) at discrete times \(t_k = k\Delta t\). A naive check at \(\{t_k\}\) can miss collisions that happen between samples. Solution used by RTD-RAX [9]: construct the swept interval hull over \([t_k, t_{k+1}]\) from a one-sided bound on \(\dot{\underline x}, \dot{\overline x}\): \[
\mathrm{Hull}_k \;=\; \bigl[\,\min\{\underline x(t_k), \underline x(t_{k+1})\} - \rho\Delta t,\;\; \max\{\overline x(t_k), \overline x(t_{k+1})\} + \rho\Delta t\,\bigr]
\] with \(\rho\) an a priori Lipschitz constant of the embedding RHS (certified by the same immrax framework).
Without swept hulls, RTD-RAX would need an expensive inter-sample check (e.g., interval Taylor, verified ODE integration) at every \(k\) — killing real-time performance. The hull trick is the engineering step that makes the online MMR certificate tractable inside the 100 ms planning budget.
Given a rejected candidate \(k^\star\) (with collision index \(j^\star\) from the MMR online check) [9]:
Fail-safe: if no repair candidate certifies within the 100 ms planning budget, the previously executed plan’s fail-safe braking segment is committed (guaranteed safe by construction of the RTD family). Cost per cycle (Case 3, seed 32): mean \(10.5\) ms (matches Std RTD); p95 \(37.4\) ms (vs. \(21.9\) Std) — growth is entirely in the tail when repair fires [9].
Full “icy corridor” benchmark [9]: multi-gap course with randomised disturbance patches and road-edge obstacles. RTD-RAX completes the course; Standard RTD aborts or collides across seeds.
github.com/evannsm/rtd-raxCore Idea: run policy \(\pi_\theta\) (2 ms) instead of MILP (tens of ms). Only re-solve MILP when \(\rho^\varphi\) drops below threshold
RL-STL Plan:
STL robustness \(\rho^\varphi(\mathbf x, t)\) quantifies how much margin a trajectory \(\mathbf x\) has to satisfying \(\varphi\) at time \(t\) [4]:
Thrust III · Backup Details
Proposed Thrust 3 synthesis — extends the preliminary I-STL RTA [4] to post-fault recovery under cyber threat [14].
Under fault class \(\mathcal F_j\) identified (by NSF collaborator) via STL specification \(\varphi_j\):