Principles of Robot Autonomy I: Open-Loop Motion Control and Differential Flatness
Principles of Robot Autonomy I: Open-Loop Motion Control and Differential Flatness
Informa(on Trajectory
extrac(on execu(on
Today’s Lecture
actuator
raw data commands
See-think-act
Sensing Actua(on
Real world
environment
• 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 𝐱 $ = 𝐱(𝑡$ )
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
!"
min * 𝑔 𝐱 𝑡 , 𝐮 𝑡 , 𝑡 𝑑𝑡
!!
𝐱(𝑡)
̇ = 𝐚 𝐱 𝑡 , 𝐮 𝑡 , 𝑡 , 𝑡 ∈ [𝑡" , 𝑡# ]
(OCP)
𝐱 0 = 𝐱 " , 𝐱 𝑡# ∈ 𝑀#
𝐮 𝑡 ∈ 𝑈 ⊆ ℝ$ , 𝑡 ∈ [𝑡" , 𝑡# ]
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
• Inputs: (𝑣, 𝜙)
L
• We say that the system is differentially flat with flat output 𝐳 = (𝑥, 𝑦)
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>
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
(𝑡! , 𝐱 𝑡! , 𝐮(𝑡! )) (𝐳 𝑡! , 𝐳̇ 𝑡! , … , 𝐳 ' (𝑡! ))
(𝑡$ , 𝐱 𝑡$ , 𝐮(𝑡$ )) (𝐳 𝑡$ , 𝐳̇ 𝑡$ , … , 𝐳 ' (𝑡$ ))
• 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