Control / Planning under uncertainty

Stochastic trajectory tracking

Implemented receding-horizon certainty-equivalent control and explored a discretized generalized-policy-iteration formulation for a noisy differential-drive system.

Trajectory tracking plot showing a robot path, reference path, and obstacles
Context
ECE 276B course project
Methods
CEC / CasADi / GPI exploration
Artifacts
Code + report

01 / Problem

Track a reference path with noisy motion.

The differential-drive robot must trade position and heading error against control effort while respecting bounded linear and angular inputs. Gaussian motion noise makes the system state depart from its nominal trajectory.

02 / Receding horizon

Optimize a deterministic approximation at each step.

The certainty-equivalent controller sets process noise to zero inside a finite-horizon nonlinear program, solves that program with CasADi, applies the first control, and plans again from the updated state. Tuning balances tracking error, orientation alignment, effort, and obstacle penalties.

Measured constraint: The source notes report roughly 10 to 15 seconds to compute a control input in the tested setup. That is not real-time control; it is an offline simulation result and a clear optimization target.

03 / Policy iteration

Explore the stochastic formulation directly.

I discretized error and control spaces and explored transition-probability, stage-cost, policy-evaluation, and policy-improvement computations. The formulation exposed a severe memory and computation scaling problem. The work did not establish a complete, benchmarked GPI controller, so this page does not claim smoother or better trajectories from it.

04 / Limitations and next steps

Computational scale, not theory, became the bottleneck.

  • The receding-horizon solution was sensitive to objective weights and horizon choice.
  • Its measured solve time was too slow for an online robot loop.
  • Discretized GPI produced state-action tables too large for a practical full-resolution implementation.

A next iteration would first benchmark warm starts and solver settings for CEC, then test a compact function approximator for the value or policy instead of a dense GPI table.