Polar-Backstepping Policy Residual
Implementation & benchmark of arXiv:2607.26442 — Global Exponential Stabilization of the Kinematic Bicycle Model of a Car in Polar Coordinates
Source paper: Global Exponential Stabilization of the Kinematic Bicycle Model of a Car in Polar Coordinates arXiv:2607.26442 ⓘ · analyzed Aug 31, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Represent car-like navigation states in the paper's polar coordinates and make a neural policy predict only a residual around an analytic backstepping controller. Add a Lyapunov-decrease penalty so the learned residual can improve trajectory quality without destroying the nominal parking attractor.
Formulas
Mathematical statement
For a target at the origin, define \(\rho=\sqrt{x^2+y^2}\), \(\delta=\operatorname{atan2}(y,x)+\pi\), and \(\gamma=\delta-\theta\), where \(\rho\) is range, \(\delta\) is the line-of-sight angle, and \(\gamma\) is heading error. Away from the coordinate cut and target singularity, the kinematic bicycle equations imply \(\dot\rho=-v\cos\gamma\), \(\dot\delta=v\sin\gamma/\rho\), \(\dot\gamma=v\sin\gamma/\rho-(v/L)\tan\phi\), and \(\dot v=a\), with speed \(v\), wheelbase \(L\), acceleration \(a\), and steering angle \(\phi\). Use a positive definite local Lyapunov function \(V=\tfrac12(q_\rho\rho^2+q_\gamma\gamma^2+q_v(v-v_d(\rho))^2)\). Penalize positive drift \([\dot V+\lambda V]_+\), where \(q_\rho,q_\gamma,q_v,\lambda>0\), so the desired certificate is \(\dot V\le-\lambda V\). A bounded nominal choice is \(v_d=k_\rho\rho\), \(a_0=-k_v(v-v_d)-k_\rho v\cos\gamma\), and \(\tan\phi_0=L\sin\gamma/(\rho+\epsilon)+Lk_\gamma\gamma/(v+\epsilon)\), with positive gains \(k_\rho,k_v,k_\gamma\) and safeguard \(\epsilon>0\).
Implementation notes
1. Integration point: use this controller as a reinforcement-learning or imitation-learning policy for a kinematic bicycle simulator. At every step compute \(s=(\rho,\sin\gamma,\cos\gamma,v,1/\rho_\epsilon)\), where \(\rho_\epsilon=\max(\rho,\epsilon)\). The network outputs bounded residuals \((\Delta a,\Delta u)\) through tanh heads. The analytic controller computes \((a_0,\phi_0)\), and the final actions are clipped to actuator limits. 2. Pseudocode: compute the polar state; compute \(v_d=k_\rho\rho\); compute \(a_0=-k_v(v-v_d)-k_\rho v\cos\gamma\); compute \(u_{\phi0}=L\sin\gamma/\rho_\epsilon+Lk_\gamma\gamma/(|v|+\epsilon)\); evaluate the MLP residual; apply the actions; estimate \(\dot\rho,\dot\gamma,\dot v\) from the analytic equations or finite differences; calculate \(\dot V\); and optimize task loss plus \(\beta[\dot V+\lambda V]_+^2\). 3. Computed from the paper: the polar geometry, transformed dynamics, and strict-feedback structure. Estimated empirically: \(\lambda\), gains, residual bounds, and the fraction of sampled states satisfying the certificate. 4. First cheap experiment: train a two-layer MLP on randomly generated parking goals in a bicycle simulator, comparing residual training against a Cartesian policy and an unconstrained polar policy. Use \(L=2.5\), \(\epsilon=0.05\), and measure \(V(t)\), success rate, and the largest initial-error radius for which \(V(t+1)\le e^{-\lambda\Delta t}V(t)\) holds. The quantitative prediction is an approximately linear semilog decay of \(V\) with slope no greater than \(-\lambda\) over the certified region. Removing the stability loss should sharply increase positive-\(\dot V\) events, particularly when \(|v|<0.2\) or \(\rho<0.5\).
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: Significantly worse ✗
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 8/10
Built a fixed-seed polar backstepping residual-policy MVP with bounded MLP residuals, Lyapunov drift penalty, exact polar dynamics, and three parameter sweeps. All three mechanism predictions were confirmed: speed-error decay matched k_v with identity error below 2.3e-16, steering decay matched k_gamma*v/(|v|+epsilon) with relative error below 6.2e-15, and the epsilon transition matched the predicted 1/r-1/epsilon residual below epsilon while vanishing above it. In the toy policy comparison, the Lyapunov penalty reduced positive-drift states from 13.09% to 10.89% and improved mean drift-plus-lambda-V from -0.135 to -0.206, but increased task MSE from 0.00071 to 0.0611, so the stability effect is real but comes with a clear accuracy tradeoff.
- Agent confidence
- 8/10
- Baseline
- Unconstrained polar residual: task MSE 0.0007122, positive drift fraction 0.13086, mean (dV+lambda V) -0.13484
- Idea
- Lyapunov-regularized polar residual: task MSE 0.06113, positive drift fraction 0.10889, mean (dV+lambda V) -0.20551; 16.8% relative reduction in positive-drift events
Limitations: This is a sampled one-step toy study rather than full bicycle trajectory navigation; no success-rate or long-horizon parking evaluation was performed, and no Cartesian-policy baseline was implemented. The certificate is evaluated on sampled states and uses clipped actions, so it is not a formal global stability guarantee.
How to run: python3 polar_backstepping_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2607.26442)
Significantly WORSE than the tuned baseline (+917.7%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0004
- Idea mean
- 0.004
- Effect (Δ)
- 0.0036 (+917.7%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±334.1%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 6 configs
The built-in dynamics track predicts a future pendulum angle rather than directly learning a car-like navigation action policy, so the intervention uses a one-step finite-difference pendulum Lyapunov proxy adapted to the available control structure. No long-horizon closed-loop parking, actuator clipping study, Cartesian policy comparison, or larger-scale neural architecture was tested.
How to run: python3 stage2_bench.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 9/10
Implemented the Polar-Backstepping Lyapunov residual as a modified training loss on the structurally matched dynamics track using the shared rnn_small architecture. Across 8 paired seeds, the idea significantly worsened test MSE (delta +0.0036311, permutation p=0.0081) despite confirming its mechanism signature: positive drift fraction fell by 22.3% (0.611 to 0.475). The benchmark therefore rejects the idea as a task-performance win.
- Baseline
- Best sweep lr=0.01, weight_decay=0.0; 8-seed test MSE mean 0.000395668 ± 0.000148467
- Idea
- Best beta=0.1 of {0.1,0.5,1.0}, lr=0.01, weight_decay=0.0; 8-seed test MSE mean 0.00402676 ± 0.00157548; paired delta +0.00363109; p=0.0081; positive-drift fraction 0.4747 vs baseline 0.6109
Benchmark result
Significantly WORSE than the tuned baseline (+917.7%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0004
- Idea mean
- 0.004
- Effect (Δ)
- 0.0036 (+917.7%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±334.1%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 6 configs
The built-in dynamics track predicts a future pendulum angle rather than directly learning a car-like navigation action policy, so the intervention uses a one-step finite-difference pendulum Lyapunov proxy adapted to the available control structure. No long-horizon closed-loop parking, actuator clipping study, Cartesian policy comparison, or larger-scale neural architecture was tested.
How to run: python3 stage2_bench.py
Artifacts
- bench_report.json 4.7 KB View Raw
- polar_backstepping_experiment.py 6.2 KB View Raw
- report.md 1.7 KB View
- report_bench_2026-08-31T180039.md 5.7 KB View
- results.json 4.4 KB View Raw
- stage2_bench.py 5.3 KB View Raw