本次使用MATLAB復現CLF-CBF-QP算法,以實現機器人軌跡跟蹤同時保證安全性能
模型
使用自行車模型來進行模擬機器人的移動動態,具體的模型推導參考車輛運動學模型-自行車模型
采用偏差變量
p ~ = p ? p r e f u ~ = u ? u r e f \tilde{p} = p - p_{ref} \\ \tilde{u} = u - u_{ref} p~?=p?pref?u~=u?uref?
系統偏差模型寫成狀態方程形式為
p ~ ˙ = A p ~ + B u ~ = [ 0 0 ? v sin ? ( φ ) cos ? ( φ ) 0 0 v cos ? ( φ ) sin ? ( φ ) 0 0 0 tan ? ( δ ) l 0 0 0 0 ] p ~ + [ 0 0 0 0 0 v l cos ? ( δ ) 2 1 0 ] u ~ \dot{\tilde{p}} = A\tilde{p} + B\tilde{u} = \begin{bmatrix} 0 & 0 & -v\sin(\varphi) & \cos(\varphi) \\ 0 & 0 & v\cos(\varphi) & \sin(\varphi) \\ 0 & 0 & 0 & \frac{\tan(\delta)}{l} \\ 0 & 0 & 0 & 0 \end{bmatrix} \tilde{p} + \begin{bmatrix} 0 & 0 \\ 0 & 0 \\ 0 & \frac{v}{l\cos(\delta)^2} \\ 1 & 0 \end{bmatrix} \tilde{u} p~?˙?=Ap~?+Bu~= ?0000?0000??vsin(φ)vcos(φ)00?cos(φ)sin(φ)ltan(δ)?0? ?p~?+ ?0001?00lcos(δ)2v?0? ?u~
其中,矩陣 A = ? f ~ ( p , u ) ? p A = \frac{\partial \tilde{f}(p, u)}{\partial p} A=?p?f~?(p,u)?, B = ? f ~ ( p , u ) ? u B = \frac{\partial \tilde{f}(p, u)}{\partial u} B=?u?f~?(p,u)?
算法
算法使用控制障礙函數保證安全性,控制李雅普諾夫函數保證軌跡跟蹤,具體可以參考基于控制障礙函數(Control Barrier Function)的二次規劃(QP)控制
u ? ( x ) = arg ? min ? u = ( u , δ ) ∈ R m × R 1 2 u T H ( x ) u + F T ( x ) u s . t . { L f V ( x ) + L g V ( x ) u + c 3 V ( x ) ? δ ≤ 0 ? L f h ( x ) ? L g h ( x ) u ? α ( h ( x ) ) ≤ 0 \begin{equation} \nonumber \begin{aligned} & u^*(x)=\underset{u=(u,\delta)\in\mathbb{R}^m\times\mathbb{R}}{\arg\min}\frac{1}{2}u^TH(x)u + F^T(x)u \\ & s.t. \begin{cases} L_fV(x)+L_gV(x)u + c_3V(x)-\delta\leq0 \\ -L_fh(x)-L_gh(x)u-\alpha (h(x))\leq0 \end{cases} \end{aligned} \end{equation} ?u?(x)=u=(u,δ)∈Rm×Rargmin?21?uTH(x)u+FT(x)us.t.{Lf?V(x)+Lg?V(x)u+c3?V(x)?δ≤0?Lf?h(x)?Lg?h(x)u?α(h(x))≤0???
CLF 選取
基于運動學偏差模型,選取CLF V : R n → R V:R^n\rightarrow R V:Rn→R 如下
V ( p ~ ) = 1 2 p ~ T S p ~ V(\tilde{p})=\frac{1}{2}\tilde{p}^TS\tilde{p} V(p~?)=21?p~?TSp~?
其中,矩陣 S S S為 LQR 線性二次調節器過程中產生的 Algebraic Riccaci Equation 等式
A T S + S A + Q ? S B R ? 1 B T S = 0 A^TS + SA+Q - SBR^{-1}B^TS = 0 ATS+SA+Q?SBR?1BTS=0
的解,其中,矩陣 A A A、 B B B的取值見偏差模型狀態方程,滿足
V ˙ = d d t p ~ T S p ~ = ? ( p ~ T Q p ~ +