CC_Controller is the root of the control chain. BreveCoreController extends it; BreveController and BaseController extend that.
CC_Controller
BreveCoreController
BreveController
BaseController
M^=[mE00M˘]\hat{\bm{M}} = \begin{bmatrix} m\bm{E} & \bm{0} \\ \bm{0} & \breve{\bm{M}} \end{bmatrix} M^=[mE00M˘]
M^=Γ−⊤MΓ−1\hat{\bm{M}} = \bm{\Gamma}^{-\top}\bm{M}\bm{\Gamma}^{-1}M^=Γ−⊤MΓ−1 is block-diagonal; centroid Coriolis cancels.
M^=[mE00M˘],C^=[0−Cc⊤CcC˘]\hat{\bm{M}} = \begin{bmatrix} m\bm{E} & \bm{0} \\ \bm{0} & \breve{\bm{M}} \end{bmatrix}, \qquad \hat{\bm{C}} = \begin{bmatrix} \bm{0} & -\bm{C}_c^\top \\ \bm{C}_c & \breve{\bm{C}} \end{bmatrix} M^=[mE00M˘],C^=[0Cc−Cc⊤C˘]
The 3×33\times33×3 top-left block yields an isolated Newton's law:
mv˙c=fcm\dot{\bm{v}}_c = \bm{f}_c mv˙c=fc
(current_sota §3, eqs 3.1–3.3 / Giordano App. B, eq 22a)
x~c=Rtc⊤ (ptc−ptcd)∈R3\tilde{\bm{x}}_c = \bm{R}_{tc}^\top\!\bigl(\bm{p}_{tc} - \bm{p}_{tc_d}\bigr) \in \mathbb{R}^3 x~c=Rtc⊤(ptc−ptcd)∈R3
Velocity error x~˙c=vc−vcd\dot{\tilde{\bm{x}}}_c = \bm{v}_c - \bm{v}_{c_d}x~˙c=vc−vcd drives the PD law and enters the coupling forcing in the 9×99\times99×9 attitude+EE block.
(current_sota §4.1)
Feedforward + proportional + derivative; saturated to FmaxF_{\max}Fmax; integral off by default.
fc=αmacd−Kcx~c−Dcvc\bm{f}_c = \alpha m \bm{a}_{c_d} - \bm{K}_c\tilde{\bm{x}}_c - \bm{D}_c\bm{v}_c fc=αmacd−Kcx~c−Dcvc
Kc,Dc≻0\bm{K}_c, \bm{D}_c \succ 0Kc,Dc≻0 (SPD). Post-saturation force noise added when uncertainty is ON.
(current_sota §4.2, eq 4.4 / Giordano eq 28)
Substituting (4.4) into mv˙c=fcm\dot{\bm{v}}_c = \bm{f}_cmv˙c=fc gives the homogeneous damped oscillator:
mx~¨c+Dcx~˙c+Kcx~c=0m\ddot{\tilde{\bm{x}}}_c + \bm{D}_c\dot{\tilde{\bm{x}}}_c + \bm{K}_c\tilde{\bm{x}}_c = \bm{0} mx~¨c+Dcx~˙c+Kcx~c=0
Kc,Dc≻0\bm{K}_c, \bm{D}_c \succ 0Kc,Dc≻0 ⇒\Rightarrow⇒ all eigenvalues in C−\mathbb{C}^-C−; exponential decay. Fully decoupled from M˘,C˘\breve{\bm{M}},\breve{\bm{C}}M˘,C˘.
(current_sota §4.3, eq 4.9 / Giordano eq 34a)
On Ω={q:σmin(Jνe⊕)>0}\Omega = \bigl\{\bm{q} : \sigma_{\min}(\bm{J}_{\nu_e}^\oplus) > 0\bigr\}Ω={q:σmin(Jνe⊕)>0}:
V=12v˘⊤M˘v˘+12x~⊤K˘x~≥0V = \tfrac{1}{2}\breve{\bm{v}}^\top\breve{\bm{M}}\breve{\bm{v}} + \tfrac{1}{2}\tilde{\bm{x}}^\top\breve{\bm{K}}\tilde{\bm{x}} \geq 0 V=21v˘⊤M˘v˘+21x~⊤K˘x~≥0
V˙=−v˘⊤D˘v˘≤0\dot{V} = -\breve{\bm{v}}^\top\breve{\bm{D}}\breve{\bm{v}} \leq 0 V˙=−v˘⊤D˘v˘≤0
x~c=x~˙c=0,x~=v˘=0\tilde{\bm{x}}_c = \dot{\tilde{\bm{x}}}_c = \bm{0}, \tilde{\bm{x}} = \breve{\bm{v}} = \bm{0}x~c=x~˙c=0,x~=v˘=0 is asymptotically stable.
(current_sota §4.6, eqs 4.15–4.16 / Giordano eqs 36–38)