Principles of Robot Autonomy I: Trajectory Tracking and Closed-Loop Control
Principles of Robot Autonomy I: Trajectory Tracking and Closed-Loop Control
• Aim
• Learn how to handle bound constraints via space-time separation
• Learn about trajectory tracking
• Learn about closed-loop control
• Readings
• B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo. Robotics: modelling, planning and
control. 2010. Chapter 11.
9/30/21 AA 274A | Lecture 4 2
Summary of previous lecture
• A nonlinear system 𝐱̇ = 𝐚(𝐱, 𝐮) is differentially flat if there exists a
set of outputs 𝐳 = α(𝐱, 𝐮, . . . , 𝐮(") ) such that
Informa(on Trajectory
extrac(on execu(on
actuator
raw data commands
See-think-act
Sensing Actua(on Closed-loop
control/tracking
Real world
environment
• Reference trajectory and control history (i.e., 𝐱 & 𝑡 and 𝐮& 𝑡 ) are
computed via open-loop techniques (e.g., differential flatness)
• For reference tracking (Problem 3 in pset)
• Geometric (e.g., pursuit) strategies
• Linearization (either approximate or exact) + linear structure
• Non-linear control
• Optimization-based techniques (e.g., MPC)
9/30/21 AA 274A | Lecture 4 8
Trajectory tracking for differentially flat systems
• Key fact (see, e.g,. Levine 2009): a differentially flat system can be
linearized by (dynamic) feedback and coordinate change, that is it
can be equivalently transformed into the system
𝐳 ('()) = 𝐰
• One can then design a tracking controller for the linearized system
by using linear control techniques; in particular, for a given
reference flat output 𝐳& , define the component-wise error
('())
𝑒* : = 𝑧* − 𝑧*,& , which implies 𝑒* = 𝑤* − 𝑤*,&
• For guaranteed convergence to zero of tracking error, one can set
' (,)
𝑤* = 𝑤*,& − ∑,-$ 𝑘*,, 𝑒* ,
with the gains {𝑘*,, } chosen so as to enforce stability
9/30/21 AA 274A | Lecture 4 9
Trajectory tracking for differentially flat systems
• Example: dynamically extended unicycle model
ẋ(t) = V cos(✓(t))
ẏ(t) = V sin(✓(t))
V̇ (t) = a(t)
˙ = !(t)
✓(t)
• The system is differentially flat with flat outputs (𝑥, 𝑦), in particular
ẍ(t) cos(✓) V sin(✓) a w1
= :=
ÿ(t) sin(✓) V cos(✓) ! w2
| {z }
:=J
9/30/21 AA 274A | Lecture 4 10
Trajectory tracking for differentially flat systems
• Then one can use the following virtual control law for trajectory
tracking:
w1 = ẍd + kpx (xd x) + kdx (ẋd ẋ)
w2 = ÿd + kpy (yd y) + kdy (ẏd ẏ)
• Main techniques:
• Hamilton–Jacobi–Bellman equation, dynamic programming
• Lyapunov analysis
For an in-depth study of this topic, see AA203 “Optimal and Learning-
based Control” (Spring 2020)
✓
y
x
• Inputs: V (linear velocity of the wheel) and 𝜔 (angular velocity
around the vertical axis)
• Goal: drive the robot to the origin [0, 0, 0]
9/30/21 AA 274A | Lecture 4 13
Control based on polar coordinates
• Polar coordinates
• 𝜌: distance of the reference point of the unicycle from the goal
• 𝛼: angle of the pointing vector to the goal w.r.t. the unicycle main axis
• 𝛿: angle of the same pointing vector w.r.t. the 𝑋. axis
• Coordinate transformation
• 𝜌 = 𝑥/ + 𝑦/
• 𝛼 = atan2 𝑦, 𝑥 − 𝜃 + 𝜋
• 𝛿 =𝛼+𝜃