Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
57 views

Principles of Robot Autonomy I: Open-Loop Motion Control and Differential Flatness

The document discusses principles of robot autonomy and open-loop motion control. It covers the see-think-act cycle used by autonomous robots to sense the environment, make decisions, and carry out actions. The document also discusses modeling robot motion using differential equations and solving optimal control problems to plan trajectories from an initial to final configuration while minimizing a cost function. Direct methods for numerically solving optimal control problems by transcribing them into nonlinear programs are presented.

Uploaded by

ratjerry
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Principles of Robot Autonomy I: Open-Loop Motion Control and Differential Flatness

The document discusses principles of robot autonomy and open-loop motion control. It covers the see-think-act cycle used by autonomous robots to sense the environment, make decisions, and carry out actions. The document also discusses modeling robot motion using differential equations and solving optimal control problems to plan trajectories from an initial to final configuration while minimizing a cost function. Direct methods for numerically solving optimal control problems by transcribing them into nonlinear programs are presented.

Uploaded by

ratjerry
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Principles of Robot Autonomy I

Open-loop motion control and differential flatness


Logistics
• Homework 1 due in one week: Tuesday, 10/5 (11:59PM)
• Sections start this week
• Section 1: intro to programming tools; ROS teaser

9/28/21 AA 274A | Lecture 3 2


The see-think-act cycle
Knowledge Mission goals
Localiza(on posi(on Decision making
Map Building global map Mo(on planning

environmental model trajectory


local map

Informa(on Trajectory
extrac(on execu(on
Today’s Lecture
actuator
raw data commands
See-think-act
Sensing Actua(on

Real world
environment

9/28/21 AA 274A | Lecture 3 3


Motion control
• Given a nonholonomic system, how to control its motion from an
initial configuration to a final, desired configuration

• Aim
• Learn about main techniques in optimal control and trajectory optimization
• Learn about differential flatness and its use for trajectory optimization

• Readings
• B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo. Robotics: modelling, planning and
control. 2010. Chapter 11.
9/28/21 AA 274A | Lecture 3 4
Kinematic / dynamic models
• In lecture 1 we saw how to derive models that describe the equations
of motion of a robot in the form of differential equations (DE)
̇
𝐱(𝑡) = 𝐚 𝐱 𝑡 ,𝐮 𝑡 ,𝑡
• DEs are equations relating the derivatives of an unknown function
to the unknown function itself and known quantities
• DEs can be integrated numerically, for example, via the Euler method
𝐱 !"# = 𝐱 ! + ℎ! 𝐚 𝐱 ! , 𝐮! , 𝑡! , 𝑖 = 0, … , 𝑁 − 1
where ℎ! = 𝑡!"# − 𝑡! , 𝐮! = 𝐮(𝑡! ), and 𝐱 $ = 𝐱(𝑡$ )

9/28/21 AA 274A | Lecture 3 5


Optimal control problem
The problem:

where 𝒙 𝑡 ∈ 𝑅 % , 𝒖 𝑡 ∈ 𝑅 & , and 𝒙 𝑡$ = 𝒙$

• We’ll focus on the case ; state constraints will be addressed in


the context of motion planning
• Good reference: D. K. Kirk. Optimal Control Theory: An introduction.
2004.
9/28/21 AA 274A | Lecture 3 6
Form of optimal control
• If a functional relationship of the form

can be found, then the optimal control is said to be in closed-loop form


• If the optimal control law is determined as a function of time for a
specified initial state value

then the optimal control is said to be in open-loop form


• A good compromise: two-step design Reference trajectory

Reference control
(open-loop) Trajectory-tracking law Tracking error
(closed-loop)
9/28/21 AA 274A | Lecture 3 7
Open-loop control
• We want to find

• In general, two broad classes of methods:


1. Direct methods: transcribe infinite problem into finite dimensional, nonlinear
programming (NLP) problem, and solve NLP ⇒ “First discretize, then optimize”
2. Indirect methods: attempt to find a minimum point “indirectly,” by solving the
necessary conditions of optimality ⇒ “First optimize, then discretize”

9/28/21 AA 274A | Lecture 3 8


Open-loop control
• We want to find

• In general, two broad classes of methods:


1. Direct methods: transcribe infinite problem into finite dimensional, nonlinear
programming (NLP) problem, and solve NLP ⇒ “First discretize, then optimize”
2. Indirect methods: attempt to find a minimum point “indirectly,” by solving the
necessary conditions of optimality ⇒ “First optimize, then discretize”
• For an in-depth study of direct and indirect methods, see AA203
“Optimal and Learning-based Control” (Spring 2022)

9/28/21 AA 274A | Lecture 3 9


Direct methods: nonlinear programming transcription

!"
min * 𝑔 𝐱 𝑡 , 𝐮 𝑡 , 𝑡 𝑑𝑡
!!

𝐱(𝑡)
̇ = 𝐚 𝐱 𝑡 , 𝐮 𝑡 , 𝑡 , 𝑡 ∈ [𝑡" , 𝑡# ]
(OCP)
𝐱 0 = 𝐱 " , 𝐱 𝑡# ∈ 𝑀#

𝐮 𝑡 ∈ 𝑈 ⊆ ℝ$ , 𝑡 ∈ [𝑡" , 𝑡# ]

9/28/21 AA 274A | Lecture 3 10


Direct methods: nonlinear programming transcription

Forward Euler time discretization


!"
1. Select a discretization 0 = 𝑡! < 𝑡" < ⋯ < 𝑡# = 𝑡$ for the
min * 𝑔 𝐱 𝑡 , 𝐮 𝑡 , 𝑡 𝑑𝑡
!!
interval [𝑡! , 𝑡$ ] and, for every 𝑖 = 0, … , 𝑁 − 1, define
𝐱 % ~𝐱 𝑡 , 𝐮% ~ 𝐮 𝑡 , 𝑡 ∈ (𝑡% , 𝑡%&" ] and 𝐱 ! ~𝐱 0
𝐱(𝑡)
̇ = 𝐚 𝐱 𝑡 , 𝐮 𝑡 , 𝑡 , 𝑡 ∈ [𝑡" , 𝑡# ]
2. By denoting ℎ% = 𝑡%&" − 𝑡% , (OCP) is transcribed into the
(OCP) following nonlinear, constrained optimization problem
𝐱 0 = 𝐱 " , 𝐱 𝑡# ∈ 𝑀# ,-.
min(𝐱# ,𝐮# ) < ℎ* 𝑔(𝐱 * , 𝐮* , 𝑡* )
𝐮 𝑡 ∈ 𝑈 ⊆ ℝ$ , 𝑡 ∈ [𝑡" , 𝑡# ]
*+"
(NLOP)
𝐱 */. = 𝐱 * + ℎ* 𝐚 𝐱 * , 𝐮* , 𝑡* , 𝑖 = 0, … , 𝑁 − 1
𝐮* ∈ 𝑈 , 𝑖 = 0, … , 𝑁 − 1 , 𝐹 𝐱, = 0
9/28/21 AA 274A | Lecture 3 11
Illustrative example: planar quadrotor
<latexit sha1_base64="9CNcSrmfbJcXtINBXvTd85Cf8FA=">AAACEnicbZDLSgMxFIYzXmu9jbp0EyxCi1BmSlGXRTcuK/QGvQyZNNOGZjJDckYoQ5/Bja/ixoUibl25821MLwtt/SHw8Z9zODm/HwuuwXG+rbX1jc2t7cxOdndv/+DQPjpu6ChRlNVpJCLV8olmgktWBw6CtWLFSOgL1vRHt9N684EpzSNZg3HMuiEZSB5wSsBYnl3ohFx2uAQvdSa9FLxggmuem4dCr4QvDJbm2AfPzjlFZya8Cu4Ccmihqmd/dfoRTUImgQqiddt1YuimRAGngk2ynUSzmNARGbC2QUlCprvp7KQJPjdOHweRMk8Cnrm/J1ISaj0OfdMZEhjq5drU/K/WTiC47qZcxgkwSeeLgkRgiPA0H9znilEQYwOEKm7+iumQKELBpJg1IbjLJ69Co1R0L4vl+3KucrOII4NO0RnKIxddoQq6Q1VURxQ9omf0it6sJ+vFerc+5q1r1mLmBP2R9fkD0L2boQ==</latexit>

Z tf
min T1 (t)2 + T2 (t)2 dt
0
(energy objective)
subject to dynamics
2 3 2 3
<latexit sha1_base64="pBP3RlTyALjefI5UMf1dleXMiSY=">AAADK3icdVJNb9QwEHXCVwlfWzhysVghFaGuklUFXJAKXOBWpN220mYVOd5J1qrjRLZTNbXyf7jwVzjAgQ9x5X/gZMPutltGivT85r2Z8cRxwZnSvv/Tca9dv3Hz1tZt787de/cf9LYfHqq8lBTGNOe5PI6JAs4EjDXTHI4LCSSLORzFJ++a/NEpSMVyMdJVAdOMpIIljBJtqWjbeYNthDGkTJg4I1qys9rDbYSzXOMzHIYLdBqtcLXGrnBYzNnqkGeQkrZUCGK2LI5fe/9v2fX4N0AiCTW7O6MowM/xKBo+w6FiomlTm6y2yqWtWh0WrgsmmqulCe/idE3cTnmFeWh1toQ1A+e1+RCZ8/O63ryO50W9vj/w28CbIOhAH3VxEPW+2gXRMgOhKSdKTQK/0FNDpGaUQ+2FpYKC0BOSwsRCQTJQU9P+6xo/tcwMJ7m0n9C4ZdcdhmRKVVlslXbCubqca8ircpNSJ6+mhomi1CDoolFScqxz3DwcPGMSqOaVBYRKZmfFdE7strR9Xs0SgstX3gSHw0HwYrD3ca+//7ZbxxZ6jJ6gHRSgl2gfvUcHaIyo88n54nx3frif3W/uL/f3Quo6necRuhDun7/dDu+t</latexit>

ẋ vx
6v̇x 7 6 (T1 +T2 ) sin 7
6 7 6 m 7
6 ẏ 7 6 v 7
6 7=6 y 7
6v̇y 7 6 (T1 +T2 ) cos 7
6 7 6 m g7
4 ˙5 6 4 !
7
5
!˙ (T2 T1 )`
Izz

9/28/21 AA 274A | Lecture 3 12


Direct methods: software packages
Some software packages:
• DIDO: http://www.elissarglobal.com/academic/products/
• PROPT: http://tomopt.com/tomlab/products/propt/
• GPOPS: http://www.gpops2.com/
• CasADi: https://github.com/casadi/casadi/wiki
• ACADO: http://acado.github.io/
• Trajax: https://github.com/google/trajax

In addition to implementing efficient trajectory optimization algorithms, many of these tools


provide easier-to-use modeling languages for problem specification.

9/28/21 AA 274A | Lecture 3 13


Differential flatness
• Computing “good” feasible trajectories is often sufficient for
trajectory generation purposes, and typically much faster than
computing optimal ones

• A class of systems for which trajectory generation is particularly


easy are the so-called differentially flat systems

• Reference: M. J. Van Nieuwstadt and R. M. Murray. Real-time


trajectory generation for differentially flat systems. 1998.

9/28/21 AA 274A | Lecture 3 14


Motivating example: simple car
Consider the problem of finding a feasible solution that satisfies the
dynamics:

Example: simple car steering


ẋ = cos ✓ v ẏ = sin ✓ v, ˙✓ = v tan
L

• State: (𝑥, 𝑦, 𝜃) Simple car

• Inputs: (𝑣, 𝜙)
L

9/28/21 AA 274A | Lecture 3 15


Structure of the dynamics for simple car steering
• Suppose we are given a (smooth) trajectory for the rear wheels of
the system, 𝑥(𝑡) and 𝑦(𝑡)
1. we can use this solution to solve for the angle of the car by writing
✓ ◆
ẏ sin ✓ 1 ẏ
= ) ✓ = tan
ẋ cos ✓ ẋ
2. we can solve for the velocity

ẋ = v cos ✓ ) v = ẋ/ cos ✓ (or v = ẋ/ sin ✓)


3. and finally !
˙✓ = v tan 1 L ✓˙
) = tan
L v
9/28/21 AA 274A | Lecture 3 16
Structure of the dynamics for simple car steering
• Bottom line: all of the state variables and the inputs can be
determined by the trajectory of the rear wheels and its derivatives!

• We say that the system is differentially flat with flat output 𝐳 = (𝑥, 𝑦)

• This provides a dramatic simplification for the purposes of


trajectory generation (more on this later)

9/28/21 AA 274A | Lecture 3 17


Differential flatness
Differential flatness: A nonlinear system 𝐱̇ = 𝐚(𝐱, 𝐮) is differentially flat
if there exists a function 𝛼 such that

and we can write the solutions of the nonlinear system as functions of


𝒛 and a finite number of derivatives

In words, a system is differentially flat if we can find a set of outputs (equal in


number to the number of inputs) such that all states and inputs can be
determined from these outputs without integration
9/28/21 AA 274A | Lecture 3 18
Differential flatness
• Implication for trajectory generation: to
every curve 𝑡 → 𝐳(𝑡) enough differentiable,
𝐱̇ = 𝐚(𝐱, 𝐮)
there corresponds a trajectory

𝐱(𝑡) 𝛽(𝐳 𝑡 , 𝐳̇ 𝑡 , … , 𝐳 9 (𝑡))


𝑡→ =
𝐮(𝑡) 𝛾(𝐳 𝑡 , 𝐳̇ 𝑡 , … , 𝐳 9 (𝑡)))

that identically satisfies the system equations


𝐳 𝑡 ∈𝑀
• The simple car is differentially flat with the
No dynamics!
position of the rear wheels as the flat output
From Nieuwstadt, Murray. 1998.

9/28/21 AA 274A | Lecture 3 19


Another example: planar quadrotor
<latexit sha1_base64="9WPh/TXL/4uiSdGbdnZF3cBxMfU=">AAACTnicbVHLSgMxFM3UV62vqks3waK4KjNS1I1QdONSwWqhKSWT3qnBTGZIMqXj0C90I+78DDcuFNHMWIqvC4Fzz7mH5J74seDauO6TU5qZnZtfKC9WlpZXVteq6xtXOkoUgxaLRKTaPtUguISW4UZAO1ZAQ1/AtX97muvXQ1CaR/LSpDF0QzqQPOCMGkv1qkBCam78ILsb491jTHwYcJn5llR8NB5hQnBKQPanFCGVUT45smDYKyDpR6bo07xLCyGdCnnfq9bculsU/gu8CaihSZ33qo/Wy5IQpGGCat3x3Nh0M6oMZwLGFZJoiCm7pQPoWChpCLqbFXGM8Y5l+jiIlD3S4IL97shoqHUa+nYyX17/1nLyP62TmOCom3EZJwYk+7ooSAQ2Ec6zxX2ugBmRWkCZ4vatmN1QRZmxP5CH4P1e+S+42q97B/XGRaPWPJnEUUZbaBvtIQ8doiY6Q+eohRi6R8/oFb05D86L8+58fI2WnIlnE/2oUvkTuD2xjw==</latexit>


x
z=
y
✓ ◆
x=x
<latexit sha1_base64="uLd+mFLr/aHa7hdcCijIT/E3GXI=">AAACfnicbVHLbtswEKTUV+o+4rbHXtgaDZwGdiUjSHMpECSXHlOgTgKYtkFRK5kIRQrkqogh6DP6Y731W3IJbatAHl2A4GB2ho/ZpFTSYRT9DcJHj588fbb1vPPi5avX2903b8+cqayAsTDK2IuEO1BSwxglKrgoLfAiUXCeXJ6s+ue/wDpp9E9cljAteK5lJgVHT827v1m5kHTnG2XI9awexA1TkGF/wDLLRc3S1CC9alqwpHs0b5iV+QJ3GeswU0DO1/Z/8o2s9dEB7d9y7tJW4A+8w89Gfms9s1HTmXd70TBaF30I4hb0SFun8+4flhpRFaBRKO7cJI5KnNbcohQKmg6rHJRcXPIcJh5qXoCb1uv4GvrJMynNjPVLI12ztx01L5xbFolXFhwX7n5vRf6vN6kwO5zWUpcVghabi7JKUTR0NQuaSgsC1dIDLqz0b6ViwX2Q6Ce2CiG+/+WH4Gw0jA+G+z/2e0fHbRxb5D35SPokJl/JEflOTsmYCHIdfAg+B3shCXfCQfhlIw2D1vOO3Knw8AbGlbvY</latexit>

1 ẍ
= tan
vx = ẋ ÿ + g
...
<latexit sha1_base64="UIyWLvTcQwdqoWRJIFfC4DrvEUg=">AAAB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0lE1GPRi8cKpi20oWy2m3bpZhN2J0IJ/Q1ePCji1R/kzX/jts1BWx8MPN6bYWZemEph0HW/ndLa+sbmVnm7srO7t39QPTxqmSTTjPsskYnuhNRwKRT3UaDknVRzGoeSt8Px3cxvP3FtRKIecZLyIKZDJSLBKFrJ74Ucab9ac+vuHGSVeAWpQYFmv/rVGyQsi7lCJqkxXc9NMcipRsEkn1Z6meEpZWM65F1LFY25CfL5sVNyZpUBiRJtSyGZq78nchobM4lD2xlTHJllbyb+53UzjG6CXKg0Q67YYlGUSYIJmX1OBkJzhnJiCWVa2FsJG1FNGdp8KjYEb/nlVdK6qHtX9cuHy1rjtoijDCdwCufgwTU04B6a4AMDAc/wCm+Ocl6cd+dj0Vpyiplj+APn8wfGxI6t</latexit>

2 3 2 3
<latexit sha1_base64="pBP3RlTyALjefI5UMf1dleXMiSY=">AAADK3icdVJNb9QwEHXCVwlfWzhysVghFaGuklUFXJAKXOBWpN220mYVOd5J1qrjRLZTNbXyf7jwVzjAgQ9x5X/gZMPutltGivT85r2Z8cRxwZnSvv/Tca9dv3Hz1tZt787de/cf9LYfHqq8lBTGNOe5PI6JAs4EjDXTHI4LCSSLORzFJ++a/NEpSMVyMdJVAdOMpIIljBJtqWjbeYNthDGkTJg4I1qys9rDbYSzXOMzHIYLdBqtcLXGrnBYzNnqkGeQkrZUCGK2LI5fe/9v2fX4N0AiCTW7O6MowM/xKBo+w6FiomlTm6y2yqWtWh0WrgsmmqulCe/idE3cTnmFeWh1toQ1A+e1+RCZ8/O63ryO50W9vj/w28CbIOhAH3VxEPW+2gXRMgOhKSdKTQK/0FNDpGaUQ+2FpYKC0BOSwsRCQTJQU9P+6xo/tcwMJ7m0n9C4ZdcdhmRKVVlslXbCubqca8ircpNSJ6+mhomi1CDoolFScqxz3DwcPGMSqOaVBYRKZmfFdE7strR9Xs0SgstX3gSHw0HwYrD3ca+//7ZbxxZ6jJ6gHRSgl2gfvUcHaIyo88n54nx3frif3W/uL/f3Quo6necRuhDun7/dDu+t</latexit>

y=y y ẍ (ÿ + g)...x


ẋ vx !=
vy = ẏ (ÿ + g)2 + ẍ2
6v̇x 7 6 (T1 +T2 ) sin 7
6 7 6 m 7
6 ẏ 7 6 v 7
6 7=6 y 7 ...
6v̇y 7 6 7 x = (z, ż, z̈, z )
<latexit sha1_base64="h6SRrFzmEOynKKD877+fuZKHzmo=">AAACQHicbZBLSwMxFIUz9VXrq+rSTbAIFaTMSFE3QtGNywr2Ae1QMmmmDc08SO6IdehPc+NPcOfajQtF3LoyM62obQ8EDt+9l3tznFBwBab5bGQWFpeWV7KrubX1jc2t/PZOXQWRpKxGAxHIpkMUE9xnNeAgWDOUjHiOYA1ncJnUG7dMKh74NzAMme2Rns9dTglo1Mk32h6BvuPGdyN8jtsOA1L8QfejI9zuBhD/gpTMQ1PssJMvmCUzFZ411sQU0ETVTv5Jr6KRx3yggijVsswQ7JhI4FSwUa4dKRYSOiA91tLWJx5TdpwGMMIHmnSxG0j9fMAp/TsRE0+poefozuRGNV1L4LxaKwL3zI65H0bAfDpe5EYCQ4CTNHGXS0ZBDLUhVHJ9K6Z9IgkFnXlOh2BNf3nW1I9L1kmpfF0uVC4mcWTRHtpHRWShU1RBV6iKaoiiB/SC3tC78Wi8Gh/G57g1Y0xmdtE/GV/fMKqx/w==</latexit>

(T1 +T2 ) cos


6 7 6 m g7 ... ....
4 ˙5 6 7 u = (z, ż, z̈, z , z )
<latexit sha1_base64="DBkWoOpQC9EnenvrMnQy9+RnD94=">AAACVnicbZFNS8NAEIY3qbW1fkU9elksQgUpiRT1IhS9eKxgP6AJZbPdtIu7SdjdCDXkT+pFf4oXcZtG1LYDCy/PzDAz7/oxo1LZ9odhljbKm5XqVm17Z3dv3zo47MkoEZh0ccQiMfCRJIyGpKuoYmQQC4K4z0jff7qb5/vPREgahY9qFhOPo0lIA4qR0mhkcZcjNfWDNMngDXQniHPU+GEv2Tl0x5FKf0FO1qG1bAmejay63bTzgKvCKUQdFNEZWa96Pk44CRVmSMqhY8fKS5FQFDOS1dxEkhjhJzQhQy1DxIn00tyWDJ5qMoZBJPQLFczp344UcSln3NeV8x3lcm4O1+WGiQquvZSGcaJIiBeDgoRBFcG5x3BMBcGKzbRAWFC9K8RTJBBW+idq2gRn+eRV0btoOpfN1kOr3r4t7KiCY3ACGsABV6AN7kEHdAEGb+DTMI2S8W58mWWzsig1jaLnCPwL0/oGT2y2lw==</latexit>

4 ! 5
!˙ (T2 T1 )`
Izz
9/28/21 AA 274A | Lecture 3 20
Practical implications
This leads to a simple, yet effective strategy for trajectory generation

1. Find the initial and final conditions for the flat output:
Given Find
(𝑡! , 𝐱 𝑡! , 𝐮(𝑡! )) (𝐳 𝑡! , 𝐳̇ 𝑡! , … , 𝐳 ' (𝑡! ))
(𝑡$ , 𝐱 𝑡$ , 𝐮(𝑡$ )) (𝐳 𝑡$ , 𝐳̇ 𝑡$ , … , 𝐳 ' (𝑡$ ))

2. Build a smooth curve 𝑡 → 𝐳(𝑡) for 𝑡 ∈ [𝑡$ , 𝑡E ] by interpolation,


possibly satisfying further constraints
3. Deduce the corresponding trajectory 𝑡 → (𝐱 𝑡 , 𝐮(𝑡))

9/28/21 AA 274A | Lecture 3 21


More on step 2
• We can parameterize the flat output trajectory using a set of smooth
basis functions 𝜓! (𝑡) N X [j]
zj (t) = ↵i i (t)
i=1
• and then solve (Problem 1 in pset)
2 3 2 3
1 (t0 ) 2 (t0 ) ... N (t0 ) zj (t0 )
6 ˙ 1 (t0 ) ˙ 2 (t0 ) ... ˙ N (t0 ) 7 6 7
żj (t0 )
6 72 6 7
6 .. .. .. 7 [j] 3 6 .. 7
6 . . . 7 ↵ 6 . 7
6 7 6 1[j] 7 6 7
6 (q) (q) (q) 7 6↵ 7 6 z (q) (t ) 7
6 1 (t0 ) 2 (t0 ) ... N (t0 ) 7 6 2 7 = 6 j 0 7
6 76 . 7 6 7
6 1 (tf ) 2 (tf ) ... N (tf ) 7 4 .. 5 6 zj (tf ) 7
6 ˙ ˙ 2 (tf ) ˙ N (tf ) 7 6 7
6 1 (tf ) ... 7 [j] 6 żj (tf ) 7
6 .. .. .. 7 ↵N 6 . 7
6 7 6 . 7
4 . . . 5 4 . 5
(q) (q) (q) (q)
1 (tf ) 2 (tf ) ... N (t f ) z j (tf )

For more details see: “Optimization-Based Control” by Richard Murray


9/28/21 AA 274A | Lecture 3 22
Key points
• Nominal trajectories and inputs can be computed in a computationally-
efficient way (solving a set of algebraic equations)

• Other constraints on the system, such as input bounds, can be transformed into
the flat output space and (typically) become limits on the curvature or higher
order derivative properties of the curve
• Alternative: time scaling, i.e., break down trajectory planning in (1) finding a path (via
differential flatness) and (2) defining a timing law on the path (Problem 1 in pset) -- more
on this next time

• If there is a performance index for the system, this index can be transformed
and becomes a functional depending on the flat outputs and their derivatives
up to some order

9/28/21 AA 274A | Lecture 3 23


When is a system differentially flat?
• The existence of a general, computable criterion so as to decide if the
dynamical system 𝐱̇ = 𝐚(𝐱, 𝐮) is differentially flat remains open
• Some results in this direction are, however, available
• Further readings:
• Application to trajectory optimization:
1. M. J. Van Nieuwstadt and R. M. Murray. Real-time trajectory generation for differentially
flat systems. 1998
2. R. M. Murray, M. Rathinam, and W. Sluis. Differential flatness of mechanical control
systems: A catalog of prototype systems. 1995
3. B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo. Robotics: modelling, planning and
control. 2010
4. D. Mellinger. Trajectory Generation and Control for Quadrotors. 2012.
• Theory:
1. J. Levine. Analysis and control of nonlinear systems: A flatness-based approach. 2009
2. G. G. Rigatos, Gerasimos. Nonlinear control and filtering using differential flatness
approaches: applications to electromechanical systems. 2015

9/28/21 AA 274A | Lecture 3 24


Next time: trajectory tracking and closed-loop control

9/28/21 AA 274A | Lecture 3 25

You might also like