Stanford AA274A Principles of Robotic Autonomy | Autumn 2019 | Trajectory Tracking
Stanford Online
Flatness and planning 0:05
Trajectory planning returns to differential flatness. A flat system lets you compute a feasible path by planning in a smaller output space and then recovering the state and input from that curve. The output is often a physical quantity such as position, and for the unicycle example it is the x-y position.
Scaling time for bounds 12:00
The next issue is constraints. Boundary conditions are easy to enforce with polynomial interpolation, but input limits such as speed and turn rate need another trick. The method is time scaling, which separates the geometric path from the timing law. You follow the same path, but you choose how fast to move along it so the limits stay satisfied.
Time scaling 20:01
The schedule along a path is adjusted by choosing a function with S(0)=0 and S(T)=1. Its derivative sets how fast you move through the path, so a larger horizon T lowers the speed. That lets you keep joint speed and acceleration within limits by making T large enough.
Tracking options 33:31
The open-loop path can be turned into a closed-loop tracker by adding feedback from the current state. A simple pursuit law aims at a point a short time ahead on the desired path, like chasing a moving target. Other options are linearization, nonlinear control, and optimization-based methods, but the focus here is exact linearization.
Exact linearization 41:32
A nonlinear system can be rewritten by choosing a virtual input v so that f(x)+u=v. You then design v for simple stable motion and recover the real input with u=v-f(x). This is exact linearization, not a Taylor expansion. It works for differential flat systems, which can be mapped into an equivalent linear form through the flat output and its derivatives.
Tracking and unicycle 45:02
Once the system is in flat coordinates, you set an error between the desired flat output and the actual one, then add stable linear error dynamics so the error goes to zero. For the extended unicycle, the flat output is x and y, and taking second derivatives gives a matrix that links the virtual inputs to acceleration and turn rate. You invert that matrix to recover A and omega, watching for singular cases when speed is near zero.
Closed loop perspective 1:03:32
The control design is described as a two-step process. You first compute the open-loop trajectory, then build a tracking controller around that desired path. The point of the closing remarks is to give you intuition for closed-loop control, which aims to use the current state itself, not just a planned path.
Two main methods 1:06:31
Two broader ways to compute closed-loop controls are named. Hamilton-Jacobi-Bellman methods target general nonlinear optimal control, but they lead to a partial differential equation that is very hard to solve. Dynamic programming is the discrete-time version, and Lyapunov analysis is the other main tool. It is used more to prove stabilization and feasibility than to optimize a cost.
Unicycle stabilization 1:08:31
The example is posture stabilization for a unicycle. The goal is to drive any initial state to rest at the origin, with x, y, and theta all equal to zero. The state is rewritten in polar form using rho, alpha, and delta, which makes the geometry easier to see. A closed-loop law in those variables can be proven asymptotically stable, and the proof idea is to build a Lyapunov energy function that keeps decreasing toward the origin.
Role in practice 1:15:00
The same kind of closed-loop law is useful even after a two-step design. As you get close to the target, you want something fast and reliable that does not require solving harder optimization problems. The posture controller gives that last-stage speed and robustness. It will be combined with motion planning and tracking in the next assignment, and then used as part of a full trajectory optimization pipeline for the final project.
AI-generated summary. It can be wrong or incomplete - check anything that matters against the original.

