Error-state Kalman Filter ๋?
- ์ต๊ทผ SLAM ํ/์
๊ณ์์๋ visual์ OpenVINS, lidar๋ Fast-LIO ๊ฐ ๋์ธ๊ฐ ๋ ๋ฏํ๋ค.
- ์ด ๋์ ๋ชจ๋
on-manifold EKF
ํน์error-state Kalman filter
๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์๋ค.
- ์ด ๋์ ๋ชจ๋
- ๊ทธ๋์ Error-state Kalman Filter (ESKF) ์ ๋ํด ๊ณต๋ถํด๋ณด์๋ค.
- ์ต๋ํ ์ฝ๊ฒ ํฐ๊ทธ๋ฆผ ์์ฃผ๋ก ์ดํดํด๋ณด์.
ํฐ ๊ทธ๋ฆผ
- ์ผ๋จ ESKF์ ๋ํด ์ด์ผ๊ธฐ ํ๋ ค๋ฉด
- EKF (Extended Kalman Filter)๋ฅผ ์์์ผ ํ๊ณ
- ๊ทธ ์ ์ KF (Kalman Filter)๋ฅผ ์์์ผ ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ GN (Gauss-Newton) Opt ์ ๋ํด์๋ ์ดํดํด์ผ ํ๋ค.
- ๋ญ๊ฐ ๋ง์ ๋ณด์ด์ง๋ง, ํฐ ๊ทธ๋ฆผ์์ ์ํ์์ด ์ด์ผ๊ธฐํด๋ณด๋ ๊ฒ์ด ์ด ํฌ์คํธ์ ๋ชฉ์ ์ด๋ค.
KF ํบ์๋ณด๊ธฐ
- KF ์ ๋ํ (์ํ์ ) ์ค๋ช
์ ์ฌ๊ธฐ์ ๋์ด๋์ ์๊ฐ์ ์๋ค..
- KF๋ฅผ ์ฝ๊ฐ ๋ฌด์ํ๊ฒ ํ์ค ์์ฝํ์๋ฉด 1. ์ ์ง๋ฌ๋ณด๊ณ , 2. ์์ ํ๊ธฐ, ๋ผ๊ณ ํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ํ์ฌ ๋ฒฝ์ผ๋ก๋ถํฐ ๋ด๊ฐ 1m ๋จ์ด์ ธ์ ์์์์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด ๋ณดํญ ํ ์นธ์ 50cm ์ ๋ ๋๊ณ ๋ด ํ๊ธธ์ด๋ 50cm ๋ผ๊ณ ํ์. ๋ด๊ฐ ์์ผ๋ก ํ์นธ ์์ง์ด๋ฉด ๋๋ ๋ฒฝ์ผ๋ก๋ถํฐ ์ผ๋ง๋ ๋จ์ด์ ธ์์๊น?
- ์ ์ง๋ฌ๋ณด๊ธฐ: ์ผ๋จ ์์ง์ด์! 50cm ๋ผ๊ณ ์น์. ๊ทธ๋ฌ๋ฉด ๋๋ ๋ฒฝ์ผ๋ก๋ถํฐ 100-50 = 50 cm ๋งํผ ๋จ์ด์ ธ์๊ฒ ์ง?
- ํ์ง๋ง ๋ฌธ์ ๋ ๋ณดํญ์ด ํญ์ ์ ๋ฐํ๊ฒ ๋ฑ 50cm ์ผ๋ฆฌ๋ ๋ง๋ฌดํ๋ค.
- ์์ ํ๊ธฐ: ๊ทธ๋์ ํ์ ํ๋ฒ ๋ป์ด๋ณด์๋ค. ๊ทผ๋ฐ ํ์ ๋๊น์ง ์ญ ๋ป์๋๋ฐ๋ ๊ณต๊ฐ์ด ์กฐ๊ธ ๋จ๋ค. ๊ทธ๋ฌ๋ฉด 50cm ๋ณด๋ค๋ ์ผ๋จ ๋ ๊ฐ ๊ฑด ์๊ฒ ๋ค. ๊ทธ๋ผ ์๊น 50cm ๋จ์ด์ ธ์๋ค๊ณ ์ ์ง๋ ๋ ์์ธก๊ฐ์ ์กฐ๊ธ ์์ ํด์ฃผ๋ฉด ๋๊ฒ ๋ค.
- ์ ์ง๋ฌ๋ณด๊ธฐ: ์ผ๋จ ์์ง์ด์! 50cm ๋ผ๊ณ ์น์. ๊ทธ๋ฌ๋ฉด ๋๋ ๋ฒฝ์ผ๋ก๋ถํฐ 100-50 = 50 cm ๋งํผ ๋จ์ด์ ธ์๊ฒ ์ง?
- ๊ทผ๋ฐ ํ๊ธธ์ด๋ก ๊ธธ์ด๋ฅผ ๋์ถฉ ์ฌ๋ ๊ฒ๋ ์์ฒญ ์ ๋ฐํ์ง๋ ์์๋ฐ.
- ๋๋ ๋ฒฝ์ผ๋ก๋ถํฐ 60cm ๋จ์ด์ ธ์๋ค๊ณ ํด์ผ ํ๋..? 55cm ๋จ์ด์ ธ์๋ค๊ณ ํด์ผ ํ๋..? ๋ณดํญ๊ณผ ํ๊ธธ์ด๊ธฐ๋ฐ์ธก์ ์ ๊ฒฐ๊ณผ๋ฅผ ์๋ก ๋ค๋ฅธ ์ ๋ขฐ๋์ ๊ธฐ๋ฐํด์ ์ด๋ป๊ฒ ์ ์ ํ ์ ์ตํฉํ ์ ์์๊น? ๊ทธ๊ฒ์ ๋ํ ์ํ์ ์ธ ๊ธฐ๊ณ์ ๊ณผ์ ์ ์ ๊ณตํ๋ ๊ฒ์ด KF๋ผ๊ณ ํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ํ์ฌ ๋ฒฝ์ผ๋ก๋ถํฐ ๋ด๊ฐ 1m ๋จ์ด์ ธ์ ์์์์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด ๋ณดํญ ํ ์นธ์ 50cm ์ ๋ ๋๊ณ ๋ด ํ๊ธธ์ด๋ 50cm ๋ผ๊ณ ํ์. ๋ด๊ฐ ์์ผ๋ก ํ์นธ ์์ง์ด๋ฉด ๋๋ ๋ฒฝ์ผ๋ก๋ถํฐ ์ผ๋ง๋ ๋จ์ด์ ธ์์๊น?
- ์ด์ ๋ํ ๊ณต๋ถ์๋ฃ๋ An Introduction to the Kalman Filter (2006 ver) ๋ฅผ ์ถ์ฒํ๋ค.
- KF ๊ณต๋ถ์๋ฃ์ผ ์๋ ๋ง์ง๋งโฆ ์ด๊ฒ ๊ฐ์ฅ ๋ถ๋๋ ์ ์ ํ ๋ฏํ๋ค (๋๋ฌด ์๋ต๋์ด์๊ฑฐ๋ ๋๋ฌด ์ธ๋ฐ์์ด ์ ๋ฌธ์์๊ฒ ๋ถํ์ํ๊ฒ ๋ง์ง์๋ค).
- 95๋ ์ ์ฒ์ ๋์จ report ์ธ๋ฐ ํ์ฌ (2022.09) ๋ฌด๋ ค 10000ํ ์ธ์ฉ์ด ๋์๋ค. ์ด report ๋ ๋๊ฒ ๊ฐ๊ฒฐํ ํธ์ด๋ฉฐ ๋์ฑ ์์ธํ ์ ๋ ๋ฑ์ ์ฌ๊ธฐ์ reference ๋ค์ด ์ ์ถ์ฒ๋์ด ์์ผ๋ฏ๋ก (e.g., Maybeck79) ์ถ๊ฐ์ ์ผ๋ก ๋ ๊ณต๋ถํ๊ณ ์ถ์ผ๋ฉด ์ฐธ๊ณ ํ๋ฉด ์ข๋ค.
- KF๋ฅผ ์ฝ๊ฐ ๋ฌด์ํ๊ฒ ํ์ค ์์ฝํ์๋ฉด 1. ์ ์ง๋ฌ๋ณด๊ณ , 2. ์์ ํ๊ธฐ, ๋ผ๊ณ ํ ์ ์๋ค.
- ์์ฝํ์๋ฉด KF๋ prior (์ ์ง๋ฌ ๋ณธ ๊ฒ)์ measurement (์ฌ ๋ณธ ๊ฒ) ์ฌ์ด์ weighted sum (๋ ๊ฒฐ๊ณผ ํ ๋๋ก ์์ ํ ๊ฒ)์ ํด์ฃผ๋ ์ฅ์น์ด๋ค.
- ์ด ๋ ๊ณ ์ ๋ ์์๋ก ์ตํฉํ๋ ๊ฒ ์๋๋ผ,
a posteriori ์ covariance ๋ฅผ minimize ํ๋ ๊ฒ์ cost
๋ก ํ์ฌ ์ต์ gain ์ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค (๋ฐ๋ผ์ Kalman gain ์blending factor
๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค). - ์ํผ ํต์ฌ์ KF๋ ๋ฐฉ๊ธ ์ค๋ช
ํ๋ฏ
a posteriori ์ covariance ๋ฅผ minimize
ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ธฐ ๋๋ฌธ์,optimal estimator
๋ผ๊ณ ๋ถ๋ฆฐ๋ค.- ํน์ ์ํค๋ฅผ ๋ณด๋ฉด, KF๋
linear quadratic estimation (LQE)
๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค๊ณ ๋์์๋ค.- covariance ๋ ๊ทธ ์ ์์ random variable error vector์ ์ ๊ณฑ๊ผด์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- ํน์ ์ํค๋ฅผ ๋ณด๋ฉด, KF๋
- ์ด ๋ ๊ณ ์ ๋ ์์๋ก ์ตํฉํ๋ ๊ฒ ์๋๋ผ,
- ์ก์ฐ
- ps1. Philโs Lab ์ ์ ํ๋ธ ์์๋ KF์ ๋ํด ์ ๋ง ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ ์ค๋ช
ํด์ค๋ค. ์ถ์ฒ! (1ํธ, 2ํธ, 3ํธ, 4ํธ)
- 2ํธ์์ ์์ weight ๋น์จ๋ก fusion ํ๋ (e.g,, 0.5 and 0.5) complementary filter ๋ฅผ ๋จผ์ ๋ณด์ฌ์ฃผ๊ณ EKF๋ก ๋์ด๊ฐ๋ ์คํ ๋ฆฌ๊ฐ ์์ฃผ ์ผํ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก IMU ์ผ์ ๋ฐ์ดํฐ๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ KF ๊ฐ ํ์ค์ธ๊ณ์ ๋๋จ์ด์ง ๋ฌด์ธ๊ฐ๋ก ๋๊ปด์ง์ง ์๋๋ค.
- ps2. KF์์ prior ๋ผ๋ ์ฉ์ด๊ฐ ๊ผญ ๋งค์ฐ ์ต์ด์ ์ด๋ค ์ ๋ณด๋ง์ ์๋ฏธํ์ง๋ ์๋๋ค. KF๋ Bayesian filtering ์ด๋ฉฐ Bayesian filtering ์ ์ฒ ํ์ ํ์ฌ์ ์ต์ ๊ฐ์ด, ๋ค์ ํด์ ์ฌ์ ์ ๋ณด๊ฐ ๋๋ค, ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ ํ์ฌ์ posterior ๊ฐ ๋ค์ ํด์ prior ๋ก์จ ์ญํ ํ๋ ๊ฒ.
- ๊ทธ๋์ ๋ Bayesian filtering ์ด์ผ๊ธฐ๊ฐ ๋์จ ๊น์โฆ KF๋ ์๋ ์๋นํ ์ต์ ํ ์ค๋ฌ์ด (== least square optimization ์ค๋ฌ์ด) ๋๋์ผ๋ก๋ถํฐ ์ ๋ ๋์์ง๋ง (๋ฐฉ๊ธ ๋งํ๋ฏ cov๋ฅผ ์ต์ํ ํ๋๋ก), ๊ทธ nature ๋ฅผ ๋ค์ฌ๋ค๋ณด๋ฉด Probabilisticํ ๋ฉด์ด ์๋ค. ์ด ์ด์ผ๊ธฐ๊ฐ
The Probabilistic Origins of the Filter
๋ผ๋ฉด์ ์์์ ์ถ์ฒํ ์๋ฃ์๋ ๋์จ๋ค. ๋๋ Sรคrkkรค, Simo. Bayesian filtering and smoothing. No. 3. Cambridge University Press, 2013. ์ด ์ฑ ์ ์๋ถ๋ถ์ ์ฐธ๊ณ (์์ฝ 1ํธ, ์์ฝ 2ํธ).
- ๊ทธ๋์ ๋ Bayesian filtering ์ด์ผ๊ธฐ๊ฐ ๋์จ ๊น์โฆ KF๋ ์๋ ์๋นํ ์ต์ ํ ์ค๋ฌ์ด (== least square optimization ์ค๋ฌ์ด) ๋๋์ผ๋ก๋ถํฐ ์ ๋ ๋์์ง๋ง (๋ฐฉ๊ธ ๋งํ๋ฏ cov๋ฅผ ์ต์ํ ํ๋๋ก), ๊ทธ nature ๋ฅผ ๋ค์ฌ๋ค๋ณด๋ฉด Probabilisticํ ๋ฉด์ด ์๋ค. ์ด ์ด์ผ๊ธฐ๊ฐ
- ps1. Philโs Lab ์ ์ ํ๋ธ ์์๋ KF์ ๋ํด ์ ๋ง ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ ์ค๋ช
ํด์ค๋ค. ์ถ์ฒ! (1ํธ, 2ํธ, 3ํธ, 4ํธ)
EKF ํบ์๋ณด๊ธฐ
- ์ด์ ์ฐ๋ฆฌ๋ KF์ ๋ํด ์์๋ค. ๊ทธ๋ผ EKF๋ก ๋์ด๊ฐ๋ณด์.
- (E-, ES-) KF๋ฅ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ๊ฐ์ฅ ๋จผ์ system model์ด ์ ์๋์ด์ผ ํ๋ค.
-
- process model ๊ณผ 2. measurement model ์ด ์๋ค.
-
- ์์ ๊ณต๋ถ์๋ฃ An Introduction to the Kalman Filter (2006 ver) ์ ์ 1.1, 1.2 ์์์ฒ๋ผ ์ด ๋ชจ๋ธ๋ค์ด, ์ฐ๋ฆฌ๊ฐ ์๊ณ ์ถ์ state ๋ measurement vector ์ ๊ทธ์ matrix ๊ณฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉด linear ํ๋ค๋ผ๊ณ ํ๋ค.
- ๊ทธ๋ฐ๋ฐ ํ์ค์ธ๊ณ์์๋ ๋ค์ํ ์ด์ ๋ค๋ก ์ธํด nonlinearity๊ฐ ์๊ธด๋ค.
- state ๊ฐ nonlinear ํ ์ ์๋ค (e.g., rotation ์ ์ถ์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ)
- ํน์ measurement model ์ด nonlinear ํ ์ ์๋ค (e.g., ์ ๊ณฑ, exponential ๋ฑ๋ฑ์ด ๋ค์ด๊ฐ๋ ๋ณต์กํ ํํ)
- ๊ทธ๋์ ์ด๋ฐ nonlinear ํ process model $f(\cdot)$ or observation model $h(\cdot)$ ์ ํ ์ผ๋ฌ ๊ธ์๋ก ํธ ๋ค์์ 1์ฐจ ๊ทผ์ฌ (== linear term๋ง ๋จ๊น) ํด์ ์ฐ๊ฒ ๋ค๋๊ฒ EKF์ด๋ค.
- (E-, ES-) KF๋ฅ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ๊ฐ์ฅ ๋จผ์ system model์ด ์ ์๋์ด์ผ ํ๋ค.
ESKF ํบ์๋ณด๊ธฐ โฆ ์ ์
- ๊ทธ๋ผ EKF์ ESKF๋ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ?
- ์ด ์ด์ผ๊ธฐ๋ฅผ ํ๊ธฐ ์ ์ ์ฐ๋ฆฌ๋ ์ ์ KF ๋ผ๋ ๊ฒ ์์ฒด๋ก๋ถํฐ ๋ฉ์ด์ง ํ์๊ฐ ์๋ค.
- ์ฆ ESKF ์ EKF๋ ์ด๋ ๊ฒ ๋ฌ๋ผ, ํ๊ณ ๊ทธ ๋ฌผ์ง์ ์ธ ๋ฉด์ ๋ณด๊ณ ์ธ์ฐ๋ ๊ฒ๋ณด๋ค, ๋ฌด์๋ณด๋ค ESKF๊ฐ ์ ํ์ํ๊ฒ ๋์๋์ง๋ฅผ ์ดํด๋ณด์๋ ๊ฒ์ด๋ค.
- ํค์๋ ํํธ: EKF on manifold
- ์ฆ, manifold ์์ EKF๋ฅผ ํ๋ ค๋ฉด ๋ญ๊ฐ ์ข ํน๋ณํ๊ฒ care ํด์ค์ผ ํ ๊ฒ ์๋ค๋ ๊ฒ์ธ๋ฐ. ์ด๊ฒ ๋ญ์๋ฆฐ๊ฐ ํ๋ ์ฐจ์ฐจ ์์๋ณด์.
- ํค์๋ ํํธ: EKF on manifold
- ์์ KF๋ optimal estimator ๋ผ๊ณ ํ๋ค. ์ฆ covariance ๋ผ๋ squared loss ๋ฅผ ์ต์ํ ํ๋ ์ต์ ํ๊ธฐ๊ธฐ ์ธ ๊ฒ์ด๋ค.
- ์ฆ ์ด๋ถ๋ถ์์ KF๋ least square optimization ์ ๋ํ์ฃผ์์ธ
Gauss-Netwon optimization (GN)
์ ๋ฎ์๋ค.- GN (or can be LM, just damping ์ด ์ถ๊ฐ๋ GN)์ด ๋ณํ๋์ด ์ด๋์ ๋๋ณด๋ค ์์์ง ๋๊น์ง ๊ณ์ iteration ์ ๋ฐ๋ณตํด์ $\delta \textbf{x}^*$ ๋ฅผ ์ฐพ์๊ฐ๋ ๊ฒ์ด๋ผ๋ฉด (for details, see the post: Nonlinear ICP ๋ฐ๋ฐ๋ฅ๋ถํฐ ๊ตฌํํด๋ณด๊ธฐ),
- KF๋ ์ต์ ์ weight ๋น์จ์ ํ๋ฐฉ์ ๋ฑ ์ฐพ์๋ด์ ๋ฑ ํ๋ฒ๋ง update ํด์ฃผ๋ GN optimizer ๋ผ๊ณ ์๊ฐํด๋ณผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
- ps1. ์์ ํ ๊ฐ๋ค๋ ๊ฒ ์๋๋ผ, ๊ทธ ๋๋๋ง ๊ณต์ ํ์โฆ GN์์๋ ๋ช ์์ ์ธ prediction step์ด ์์ผ๋ฏ๋ก (๊ทธ์ initial value๊ฐ ์ฃผ์ด์ง) GN์ ์ฌ๋ฌ measurement (squared) loss์ weighted sum์ minimize ํ๋ updator ๋ถ๋ถ๋ง ์๋ค๊ณ ์๊ฐํด๋ณผ ์ ์๊ฒ ๋ค.
- ps2. ๋ฌผ๋ก KF์์๋, ํ๋ฒ์ propagate ์ ๋ํด ์ฌ๋ฌ๋ฒ์ (์๋ ดํ ๋๊น์ง) update ๋ฅผ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก iterative ํ๊ฒ ๊ตฌ์ฑํ ์ ์๊ธดํ๋ค (์์: se3_localization_iekf)
- ๊ทธ๋์ GN ์ด์ผ๊ธฐ๋ฅผ ์ข ๋ ํด๋ณด์.
- ์ฆ ์ด๋ถ๋ถ์์ KF๋ least square optimization ์ ๋ํ์ฃผ์์ธ
GN ํบ์๋ณด๊ธฐ
- GN์์ ๊ฐ๋
์์ฒด๋ ๋๋ฌด ๊ฐ๋จํ๋ค.
- ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ ๋ํด์๋ ๋ ์ถ์ฒํ๋ Grisetti ๊ต์๋์ ICRA tutorial ์๋ฃ๋ฅผ ๋ณด๊ณ ์ค๊ธฐ๋ฅผ ์ถ์ฒโฆ ํ๊ณ ์ฌ๊ธฐ์๋ GN ์ ๋ํด์๋ ์ค๋ช ํ์ง ์๊ธฐ๋ก ํ๊ณ .
- ๊ฒฐ๊ณผ๋ง ์ด์ผ๊ธฐํ์๋ฉด GN์ด๋ ๊ทธ์ $J^{T}J \delta \textbf{x} = -J^{T}e$ ๋ฅผ ํธ๋๊ฒ ์ ๋ถ์ด๋ค.
- ์ด๊ฑธ ํ์ด์ ๋์จ $\delta \textbf{x}^{*}$ ๋ฅผ ๊ธฐ์กด ํด $\textbf{x}$ ์ ๋ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ $\delta \textbf{x}$ ๊ฐ ์ถฉ๋ถํ ์๋ค๋ฉด ์๋ ดํ ๊ฒ์ผ๋ก ๋ณด๊ณ iteration ์ ์ข ๋ฃํ๋ฉด ๋๋ค. ์ด๊ฑธ from scratch (๋ฐ๋ฐ๋ฅ๋ถํฐ)๋ก ๊ตฌํํด๋ณธ ๊ฒ์ด the previous post: Robust Optimization Tutorial.
- ๊ทธ๋ฐ๋ฐ ์ด๋ถ๋ถ์ ์ ๋ง ๊ธฐ๊ณ์ ์ธ ๋ถ๋ถ์ด๊ณ . ์ค์ํ ์ง์ ์ ์ $J$ ๋๊ฒ ๋ญ๋, ํ๋ ๊ฒ์ด๋ค.
- ps. (GN์์ ๋ช
์์ ์ธ prediction ์ ์์ผ๋ฏ๋ก) ์ผ๋จ measurement model ์ ๋ํด์๋ง
J๊ฐ ๋ฌด์์ธ์ง
์ด์ผ๊ธฐํด๋ณด์.
- ps. (GN์์ ๋ช
์์ ์ธ prediction ์ ์์ผ๋ฏ๋ก) ์ผ๋จ measurement model ์ ๋ํด์๋ง
- ์ ์ผ ํฐ ๊ทธ๋ฆผ์ผ๋ก ๋งํด์, $J$๋ ๊ธฐ์ธ๊ธฐ ์ด๋ค.
- ์ด๊ฑด ๊ณ ๋ฑํ๊ต ๋ฏธ๋ถ์์๋ ๋์ค๋ ๋ด์ฉ. ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ, ๋ฏธ๋ถํด์ 0์ด ๋๋ $x$๊ฐ ์ต์ ๊ฐ .. ์ด๋ฐ ์ด์ผ๊ธฐ๋ ์ต์ํ ๊ฒ์ด๋ค.
- ์ด ๋ ๊ทธ ๋ฏธ๋ถ ๊ฐ์ด ๊ณง $J$ ์ ํด๋นํ๋ค.
- ๊ทธ๋ฆฌ์ธํฐ ๊ต์๋์ ์ฌ๋ผ์ด๋ ์์ ์ด ์๊ธฐ๋ฅผ ๋ฐ์ทํด์ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฌ๊ธฐ์ ์ ์ ์๋ ๊ฑด $J$๊ฐ ๊ธฐ์ธ๊ธฐ๋ ๊ธฐ์ธ๊ธฐ ์ธ๋ฐ, ์ข ๋ ์์ธํ ์ค๋ช
ํ์๋ฉด error (loss)์ ๋ํ $\textbf{x}$ ์ ๊ธฐ์ธ๊ธฐ ๋ผ๋ ๊ฒ์ด๋ค. ์ด ๋ ์กฐ์ฌํด์ผํ๋ ๊ฒ์, ๊ทธ๋ฅ ๊ธฐ์ธ๊ธฐ๋ผ๊ณ ๋งํ๋ ๊ฒ์ too vague ํ๋ค๋ ์ .
- ์ฆ, $\textbf{x}$ ๊ฐ ๋ณํ ๋ cost ๊ฐ ์ผ๋ง๋ ๋ณํ ํ๋๋ ์ ๊ดํ ๊ฒ์ด๋ค.
- ps. $J$๋ $k$ by $n$ matrix ๊ฐ ๋๋๋ฐ, $k$๋ cost vector ์ dimension, $n$์ ์์ธกํ๊ณ ์ ํ๋ state vector์ dimension์ด๋ค.
- ์ญ์, ์์ ํฌ์คํธ์์ ์ค์ต์ ํตํด์ ์ด shape ์ ์ง์ ๋๋ผ๋ ๊ฒ์ ์ถ์ฒํจ: Robust Optimization Tutorial
- ps. $J$๋ $k$ by $n$ matrix ๊ฐ ๋๋๋ฐ, $k$๋ cost vector ์ dimension, $n$์ ์์ธกํ๊ณ ์ ํ๋ state vector์ dimension์ด๋ค.
- ์ฆ, $\textbf{x}$ ๊ฐ ๋ณํ ๋ cost ๊ฐ ์ผ๋ง๋ ๋ณํ ํ๋๋ ์ ๊ดํ ๊ฒ์ด๋ค.
- ๊ทธ๋ฐ๋ฐ Grisetti ๊ต์๋์ ICRA tutorial ์๋ฃ ์์ ์ต์ข
์ ์ผ๋ก ํ๋ ๋ง์ ๊ฒฐ๊ตญ ์ด๊ฒ์ด๋ค.
state ์ nonlinear ํ element ๊ฐ ์๋ค๋ฉด, ๊ทธ๊ฒ์ tangent space ์์ update ํด์ฃผ์ด์ผ ํ๋ค.
- ์ด๊ฒ ๋ญ ๋ง์ธ๊ณ ํ๋, ์๋ฅผ ๋ค์ด ๋ณด๋ฉด
- 3์ฐจ์ ๊ณต๊ฐ์์ rotation ์ ๋ณดํต SO(3) ๋ก ํํ๋๋ฉฐ ์ด๋ 3 by 3 matrix ์ด๋ค. rotation์ ์ต์ ํ ํ๊ธฐ ์ํด์ ์ด๋ฅผ 9-dimension vector ๋ก ๋ง๋ค๊ณ , ์ด 9๊ฐ์ ๊ฐ์ ์กฐ๊ธ์กฐ๊ธ์ฉ ์กฐ์ ํด์ cost ์กฐ์ ํด๋๊ฐ๋ฉด ๋ ๊น? ์ฆ $J$๊ฐ $k$ by $9$ ๊ฐ ๋๋๋ก (state ์๋ rotation ๋ง ์๋ค๊ณ ์น์) $J$๋ฅผ ๊ณ์ฐํด๋๊ฐ๋ฉด ๋ ๊น?
- ๊ทธ๋ฌ๋ฉด ์๋๋ค๋ ๊ฒ์ด๋ค.
- ์ด๋ฐ nonlinear entity (e.g,. rotation) ๋ค์ vector space ๊ฐ ์๋๋ฏ๋ก, ๊ธฐ์กด์ ๊ธฐ๊ณ์ ์ธ GN pipeline ์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
- ๊ทธ๋์ ํด๊ฒฐ๋ฒ์,
- nonlinear entity ์ ์ ํ๋ฉด ๊ณต๊ฐ (tangent space)๋ ๊ตญ์์ ์ผ๋ก vector space๋ผ๊ณ ํ ์ ์์ผ๋ฏ๋ก
- ๊ทธ ์ ํ๋ฉด ๊ณต๊ฐ์ ์ฌ๋(live) variable ์ ๋ํ error ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ณ์ฐํด์ฃผ์๋ ๊ฒ์ด๋ค!
- ์๋ฅผ ๋ค์ด rotation ์ ๊ตญ์์ ์ผ๋ก angle-axis ๋ผ๋ 3-dim vector ๋ก ํํํ ์ ์๋ค.
- ๊ทธ๋ฌ๋ฉด cost ๋ฅผ ์ต์ํํ๋ ค๋ฉด ์ ํ๋ฉด ์์ ๋ณ์๋ฅผ ์ผ๋ง๋ ์กฐ์ ํด์ผํ๋์ง ์ ์ ์๋ค.
- ps. ์ด ์ ํ๋ฉด์ ์ฌ๋ ๋ณ์๋ฅผ ์ผ์ปฌ์ด Ceres ์์๋ local parametrization ๋ผ๊ณ ๋ถ๋ฅธ๋ค (2.2.0๋ถํฐ๋ ์ด๋ฆ์ด manifold๋ก ๋ฐ๋์๋ค).
- ๊ทธ๋ฐ ๋ค์, ์ ํ๋ฉด ๊ณต๊ฐ์ ์ฌ๋ ๋ณ์์ ์๋ ๊ณต๊ฐ(nonlinear)์ ์ฌ๋ ๋ณ์ ์ฌ์ด์๋ ์ ์๋ ค์ง ๊ด๊ณ๊ฐ ์๊ธฐ ๋๋ฌธ์, ์๋ ๊ณต๊ฐ์์ ์ผ๋ง๋ ํด๋ฅผ ์กฐ์ ํด์ผ ํ๋์ง ์ ์ ์๋ค๋ ๊ฒ์ด๋ค.
- ps. ์ด๋ ๊ฒ ์๋์ ๊ณต๊ฐ์ผ๋ก ์ต์ ์กฐ์ ๋ถ๋์ ๋๋ ค๋ณด๋ด๋ ๊ฒ์ retraction ์ด๋ผ๊ณ ํ๋ค.
- ๊ทธ ์ ํ๋ฉด ๊ณต๊ฐ์ ์ฌ๋(live) variable ์ ๋ํ error ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ณ์ฐํด์ฃผ์๋ ๊ฒ์ด๋ค!
- ๊ด๋ จ ์ค์ต
- ์ด๋ฏธ ์์ ํฌ์คํธ Robust Optimization Tutorial ์์ SymForce๋ฅผ ์ด์ฉํด์ ์์ 1-3 step ์ ๊ฑฐ์ณ rotation ์ ์ต์ ํ ํด๋ณธ ๋ฐ ์๋ค. ์๋ ์ฝ๋์ฒ๋ผ rotation ์ 3-dim vector๋ก parametrization ํ์์๋ค. (ps. SymForce ์ ์ฅ์ ์, ์ ํ๋ฉด์์ ๊ทธ๋์ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ด๋ป๊ฒ ๊ณ์ฐํด? ์ ๊ฐ์ ์ํ์ ์ธ ๋ถ๋ถ์ ๊ธฐ๊ณ์ ์ผ๋ก ์๋ํ+์ต์ ํ ํ์ฌ ์์ง๋์ด๊ฐ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๊ฒ ํ ๊ฒ)
rotvec = sf.V3.symbolic("Theta") # i.e., angle-axis parametrization rotmat = LieGroupOps.from_tangent(sf.Rot3, rotvec) # for debug, display(rotmat.to_rotation_matrix())
- ์ด๋ฏธ ์์ ํฌ์คํธ Robust Optimization Tutorial ์์ SymForce๋ฅผ ์ด์ฉํด์ ์์ 1-3 step ์ ๊ฑฐ์ณ rotation ์ ์ต์ ํ ํด๋ณธ ๋ฐ ์๋ค. ์๋ ์ฝ๋์ฒ๋ผ rotation ์ 3-dim vector๋ก parametrization ํ์์๋ค. (ps. SymForce ์ ์ฅ์ ์, ์ ํ๋ฉด์์ ๊ทธ๋์ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ด๋ป๊ฒ ๊ณ์ฐํด? ์ ๊ฐ์ ์ํ์ ์ธ ๋ถ๋ถ์ ๊ธฐ๊ณ์ ์ผ๋ก ์๋ํ+์ต์ ํ ํ์ฌ ์์ง๋์ด๊ฐ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๊ฒ ํ ๊ฒ)
- ๊ด๋ จ ๋
ผ๋ฌธ
- ๋ฐฉ๊ธ ํ 1-3 step์ ๊ดํ ์ด์ผ๊ธฐ์ ๋ํ ์ ๋ง ์์ธํ ์ด์ผ๊ธฐ๋ A micro Lie theory for state estimation in robotics ์์ ์๊ฐ๋๊ณ ์๋ค.
- ์ด ๋ฆฌํฌํธ๋ฅผ ๋ฐ๋ก ๋ณด๋ฉด ์จ๊ฐ ์ํ๊ธฐํธ๊ฐ ๊ดํ ์ด๋ ต๊ฒ ๋๊ปด์ง ์ ์์ง๋ง, ํต์ฌ์ ์์ 1-3์ด ์ ๋ถ๋ผ ์๊ฐํ๋ค.
- Kalman Filters on Differentiable Manifolds ์๋ ๊ด๋ จ ์ค๋ช
์ด ์ ๋์์๋ค. ์๋ ๊ทธ๋ฆผ์ด ์์ step 1-3 ์ ์๊ฐํ ํ ๊ฒ.
- ๋ฐฉ๊ธ ํ 1-3 step์ ๊ดํ ์ด์ผ๊ธฐ์ ๋ํ ์ ๋ง ์์ธํ ์ด์ผ๊ธฐ๋ A micro Lie theory for state estimation in robotics ์์ ์๊ฐ๋๊ณ ์๋ค.
- nonlinear entity ์ ์ ํ๋ฉด ๊ณต๊ฐ (tangent space)๋ ๊ตญ์์ ์ผ๋ก vector space๋ผ๊ณ ํ ์ ์์ผ๋ฏ๋ก
- ์๋ฌดํผ ์ด๋ฌํ ์ด์ ๋ก ์ธํด, Grisetti ๊ต์๋์ ICRA tutorial ์๋ฃ ์์๋ ์ต์ข
์ ์ผ๋ก non-manifold ๋ฒ์ ์ GN๊ณผ manifold ๋ฒ์ ์ GN ๋๊ฐ๋ฅผ ๋น๊ตํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
- ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ๋ด์ผํ ๋ถ๋ถ์, ๊ทธ๋์ ๊ทธ ๋ ๊ฐ๊ฐ ๋ญ๋ ๊ฐ๊ณ ๋ญ๊ฐ ๋ค๋ฅด๋? ํ๋ ์ ์ด๋ค.
- ๋ฏธ๋ฆฌ ์คํฌ๋ฅผ ํ์๋ฉด, ๊ทธ๊ฒ ๊ณง EKF์ ESKF๊ฐ ๋ญ๊ฐ ๊ฐ๊ณ ๋ญ๊ฐ ๋ค๋ฅด๋? ํ๋ ์ง๋ฌธ๊ณผ ์ผ๋งฅ์ํตํ๋ค.
- ๋น๊ต
- ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ๋ ๋ถ๋ถ ๋นผ๊ณ ์ ์ฒด ๊ธฐ๊ณ์ ์ธ ํ์ดํ๋ผ์ธ ์์ฒด๋ ์์ ํ ๋์ผํ๋ค.
- ๋ค๋ฅธ ๋ถ๋ถ 1: ๋นจ๊ฐ ๋ถ๋ถ. non-manifold ๋ฒ์ ์์๋ x์ dx ๊ฐ ๋์ผํ ๊ณต๊ฐ (e.g., $R^n$)์ ์ด๊ณ ์์ผ๋ฏ๋ก ๊ทธ์ ๋ํ๊ณ ๋นผ๋ฉด ๋์๋ค๋ฉด, manifold ๋ฒ์ ์์๋ x์ dx ๊ฐ ์๋ก ๋ค๋ฅธ ๊ณต๊ฐ (
homeomorphic ํ๋ค
๊ณ ํ๋ค) ์ ์ด๊ณ ์์ผ๋ฏ๋ก ๋ฐ๋ก ๋ํด์ค ์ ์๊ณ , ์ฝ๊ฐ์ ๋ณํ์ ๊ฑฐ์ณ ๋ํด์ฃผ์ด์ผ ํ๋ค. ์ด๋ฅผ ํธ์์ boxminus ์ boxplus ๋ก ํ์ํ๊ณ ์๋ ๊ฒ. ์ค์ ์ฐ์ฐ์ ์ํด์๋ $\text{Exp}(\cdot)$, $\text{Log}(\cdot)$ ์ด๋ฐ ์ด์ผ๊ธฐ๊ฐ ๋์ค๊ฒ ๋๋๋ฐ โฆ ์์ธํ ์ค๋ช ์ ์ฌ๊ธฐ์๋ ์๋ตํ๊ณ A micro Lie theory for state estimation in robotics ๋ฅผ ๋ณด๊ธฐ๋ฅผ ์ถ์ฒํจ. - ๋ค๋ฅธ ๋ถ๋ถ 2: ํ๋ ๋ถ๋ถ. Jacobain ๊ณ์ฐ์ด ๋ฌ๋ผ์ ธ์ผ ํ๋ค. ์์
Jacobian์ error์ ๋ํ ์กฐ์ ํ๊ณ ์ถ์ ๋ณ์์ ๊ธฐ์ธ๊ธฐ
, ๋ผ๊ณ ์ด์ผ๊ธฐํ์๋ค.- ์ฆ, error ์ ์กฐ์ ๋์ด, ์ด๋ค ๋ณ์์ ๋ํ ๊ฒ์ธ๊ฐ? ๊ฐ ๋ช ์๋์ด์ผ ํ๋ค.
- manifold(์๋ ๊ณต๊ฐ) ์์์ variable ์ ๋ํ๊ฒ์ธ๊ฐ? or tangent space ์์์ variable ์ ๋ํ๊ฒ์ธ๊ฐ? ์ ์ฐจ์ด๊ฐ ์ ๊ทธ๋ฆผ์์ ํ๋ ๋ถ๋ถ์ด๋ค.
- ์๋ฅผ ๋ค์ด, ์ ์์์์ Jacobian์ ์๋์ ๊ฐ์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ค.
- ์ด๋ ์ ํํ ๋ฆฌ์ผ์์ ์๊ฐํ๋ ICP๋ผ๋ application์ ํ์ ๋ ํ๋์ ์์์ด๊ณ โฆ
- A micro Lie theory for state estimation in robotics ์์ ํจ๊ป ๊ณต๊ฐํ manif ๋ผ๋ library๋ robotics ์์ ํํ ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ๋ค์ ๋ํด ์ด๋ฐ Jacobian๋ค์ ์ฎ์ด๋๊ฐ ์ ์๋ ๋จธ์๋๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค.
- ์ด๋ ์ ํํ ๋ฆฌ์ผ์์ ์๊ฐํ๋ ICP๋ผ๋ application์ ํ์ ๋ ํ๋์ ์์์ด๊ณ โฆ
- ๋ค๋ฅธ ๋ถ๋ถ 1: ๋นจ๊ฐ ๋ถ๋ถ. non-manifold ๋ฒ์ ์์๋ x์ dx ๊ฐ ๋์ผํ ๊ณต๊ฐ (e.g., $R^n$)์ ์ด๊ณ ์์ผ๋ฏ๋ก ๊ทธ์ ๋ํ๊ณ ๋นผ๋ฉด ๋์๋ค๋ฉด, manifold ๋ฒ์ ์์๋ x์ dx ๊ฐ ์๋ก ๋ค๋ฅธ ๊ณต๊ฐ (
- ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ๋ ๋ถ๋ถ ๋นผ๊ณ ์ ์ฒด ๊ธฐ๊ณ์ ์ธ ํ์ดํ๋ผ์ธ ์์ฒด๋ ์์ ํ ๋์ผํ๋ค.
- ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ๋ด์ผํ ๋ถ๋ถ์, ๊ทธ๋์ ๊ทธ ๋ ๊ฐ๊ฐ ๋ญ๋ ๊ฐ๊ณ ๋ญ๊ฐ ๋ค๋ฅด๋? ํ๋ ์ ์ด๋ค.
ESKF ํบ์๋ณด๊ธฐ
- ESKF ๊ฐ ํ์ํ๊ฒ ๋ ์ด์ ์ ๋ํด์ ์ด์ ๋งํ ์ ์๊ฒ ๋ค.
- Intro์์ OpenVINS๋ FAST_LIO๊ฐ์ state estaimation application ์ ๋ํด ์ด์ผ๊ธฐํ์ผ๋ฏ๋ก, ์ฌ๊ธฐ์ ํ์ ํด์ ์๊ฐํด๋ณด์.
- robot state estimation ์ ํ๋ค๋ณด๋ฉด rotation์ด ํญ์ ๋ฌธ์ ์ด๋ค. rotation์ nonlinear ํ๋ค.
- ๊ทธ๋์ rotation์ด ๋ค์ด๊ฐ ์ต์ ํ๋ฅผ ์ํด์๋ ํต์์ ์ผ๋ก ์ด๋ฐ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
- ์ข์ initial ์ ๊ณต๊ธํ๋ค.
- rotation์ tangent space parametrization ์ผ๋ก ํํํ์ฌ, ๊ทธ ๊ณต๊ฐ์์ ์ต์ ํ๋ฅผ ์ํํ ํ, retract(==์๋ ๊ณต๊ฐ์ผ๋ก ๋ณด๋ธ๋ค) ํ๋ค.
- ESKF๋ ๊ฐ์ ๋งฅ๋ฝ์ธ ๊ฒ์ด๋ค.
- EKF๋ฅผ ํ๊ณ ์ถ์๋ฐ, ์ฐ๋ฆฌ๊ฐ ์์ธกํ๊ณ ์ถ์ staet vector์ rotation์ด ๋ค์ด์๋ค.
- ๊ทธ๋์ rotation์ minimal (i.e,. 3-dim) ๋ก reparametrization ํ๊ณ , ์ด ๊ณต๊ฐ์์ KF update ๋ฅผ ์ํํ์๋ ๊ฒ.
- ์ฆ error-state ๋ ์์ GN์์ ์์ ์๊ฐํ tangent space์์ ์ด๊ณ ์๋ ๋ณ์, ๋ก ์ดํดํ๋ฉด ์ฌ์ธ ๊ฒ์ด๋ค.
- ๊ทผ๋ฐ ๊ทธ๋์ EKF์์ ์ด๋ค ๋ถ๋ถ์ ๋ค๋ฅด๊ฒ ํด์ฃผ์ด์ผ ํ๋? ๋ฐฉ๊ธ ์์์ ๋น๊ตํด์จ ๊ฒ๊ณผ ์์ ๋์ผํ๋ค.
J
๋ฅผ error state ์ ์ฉ์ผ๋ก ๊ณ์ฐํด์ค๋ค.- ๊ธฐ์กด EKF pipeline ์ ๊ทธ๋๋ก ํ์ด๋ค.
- $\delta \textbf{x}^*$ ๋ฅผ ์๋ ๊ณต๊ฐ์ initial ํด์ boxplus (oplus๋ก๋ ์. ์ค์ ๋ก๋ $\text{Exp}$ ์ฐ์ฐ.) ๋ฅผ ํตํด ๋ํด์ค๋ค.
- ์ด ์๊ธฐ๊ฐ A micro Lie theory for state estimation in robotics ๋
ผ๋ฌธ์๋ ์ด๋ ๊ฒ ์ค๋ช
๋์ด ์๋ค.
- ์์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ๋จผ์ ์๊ฐํ GN ์์ ์์๋ prediction ๋ถ๋ถ์ ์์ผ๋ฏ๋ก, correction ๋ถ๋ถ์ ์์ฃผ๋ก ๋น๊ตํด๋ณด๋ฉด ์ดํดํ๊ธฐ ์ข์ ๊ฒ์ด๋ค.
- ์ผ๋ถ๋ฌ ์์ GN ์์ ์์ ์ฌ์ฉํ์๋ ๋ถ๋ถ๊ณผ ๊ฐ์ ๊ฐ์กฐ์๊น์ ์ฌ์ฉํ์๋ค.
- ์ด ๋
ผ๋ฌธ์์๋ EKF์ ESKF๊ฐ (correction step์์) ๋ค๋ฅธ ์ ์ ๋ฑ ๋๊ฐ์ง๋ผ๊ณ ์ด์ผ๊ธฐํ๊ณ ์๋ค. (์ ๊ทธ๋ฆผ์์ ๋นจ๊ฐ ๋ฐ์ค ์น ๋ถ๋ถ)
- manifold ์ tangent space ์ฌ์ด์ ์ฐ์ฐ์ ํ ์ ์๋ oplus ์ฌ์ฉ
- Jacobian์ tangent space์์ ๊ณ์ฐ
- ps. correction (update) step์์ ์ฌ์ฉํ๋ measurement model์ ๋ณดํต $h(\cdot)$ ์ผ๋ก ๋ง์ด ์ฐ๊ธฐ ๋๋ฌธ์, $ error = h(\cdot) - z $ ์ ๋ฏธ๋ถ์ $H$ ๋ก ํ๊ธฐํ์๋ค (z๋ ์์์ด๋ฏ๋ก ๋ ์๊ฐ๊ณ ). ์ฆ ์ฌ๊ธฐ์ H ๋ Hessian ($= J^T J$) ์ด ์๋๋ผ, ์์ ์ด์ผ๊ธฐํด์๋ $J$ ์ด๋ค! ํท๊ฐ๋ฆฌ์ง ์๋๋ก ๋ฌธ๋งฅ์ ์ ์ดํผ์.
- $H$ (i.e,. $J$) ๊ฐ Lie theory ๋ฅผ ํตํด ๊ณ์ฐ๋๊ณ , ์ด๊ฒ์ด ๊ฒฐ๊ณผ์ ์ผ๋ก $K$์ ์ํฅ์ ์ฃผ๊ฒ ๋๋ค. ์ฆ, tangent space์์์ blending factor ๋ฅผ ์ ๊ณ์ฐํด์ฃผ๋ ๊ฒ์ด๋ค.
- ์์ ์์๊ฐ ์ฝ๋๋ก๋ ์๋ค: manif/examples/se2_localization.py
- ์ค์ ๋ก Jacobian๋ถ๋ถ์ manif ๊ฐ ์์์ ํด์ฃผ๊ณ ์๊ธฐ ๋๋ฌธ์, retract ํ๋ ๋ถ๋ถ (i.e,.
+ SE2Tangent(dx)
) ์ ์ ์ธํ๋ฉด ์ฝ๋ ์์์ ๊ฒ๋ณด๊ธฐ๋ก๋ EKF์ ํฌ๊ฒ ๋ค๋ฅผ ๋ฐ๊ฐ ์๊ฒ ๋๊ปด์ง๋ค.
- ์ค์ ๋ก Jacobian๋ถ๋ถ์ manif ๊ฐ ์์์ ํด์ฃผ๊ณ ์๊ธฐ ๋๋ฌธ์, retract ํ๋ ๋ถ๋ถ (i.e,.
- Note:
- ๋ฌผ๋ก GN๊ณผ ๋ฌ๋ฆฌ (ES)KF์๋ prediction step ์ด ์๊ธฐ ๋๋ฌธ์, ์ด ๋ tangent space ์ ์ด๊ณ ์๋ ๋ณ์(==error state)์ covariance๋ฅผ propagation ํ๋ ๊ณผ์ ์ด ์ถ๊ฐ์ ์ผ๋ก ํ์ํ๋ค. ๊ทธ๊ฒ์ด ์์ ๊ทธ๋ฆผ์์ ์ผ์ชฝ ๋ถ๋ถ์ ํด๋นํ๋ ๊ฒ์ด๊ณ , ์ฌ๊ธฐ์ $P$๋ error-state ์ covariance ์์ ์ฃผ์ํ์.
- ๊ฒฐ๊ตญ ์ด๋ฅผ ์ํํ๊ธฐ ์ํด์๋ error-state ์ ๋ํ (discrete-time) kinematics ๋ฅผ ์ ๋ํ๊ธด ํด์ผ ํ๋ค. (์ฆ, process model์ error state version์ผ๋ก ๋ง๋ค์ด์ผ ํจ)
- ์ด ๋ถ๋ถ์ ๋ํด์๋ Quaternion kinematics for the error-state Kalman filter ์ ์๋์ ๊ฐ์ด ์ ์ค๋ช
๋์ด ์์. ์์ธํ ์ค๋ช
์ ํด๋น ๋ฌธ์๋ฅผ ๋ณด์๊ธธ โฆ
- ์ด $\textbf{F}$ ๋ฅผ ์ด์ฉํด์ covariance propagation ์ด ์ด๋ฃจ์ด์ง๋ค.
- ์๋ฅผ ๋ค์ด, ์ฝ๋์์๋ (์ด ์์์์๋ imu kinematics๋ ์๋๊ธด ํ์ง๋ง)
P = J_x @ P @ J_x.transpose() + J_u @ U @ J_u.transpose()
์ด๋ ๊ฒ.
- ์๋ฅผ ๋ค์ด, ์ฝ๋์์๋ (์ด ์์์์๋ imu kinematics๋ ์๋๊ธด ํ์ง๋ง)
- ps. FAST_LIO ๋ ผ๋ฌธ์์๋ ๊ทธ๋์ ์ ๋ฐ matrix (์ (7))๋ฅผ ์ ์ด๋์ ๊ฒ์ ๋ณผ ์ ์๋ค. OpenVINS docs ์์๋ error state propagation ์ ๋ํด ์ค๋ช ํ๊ณ ์๋ค.
- ์ด $\textbf{F}$ ๋ฅผ ์ด์ฉํด์ covariance propagation ์ด ์ด๋ฃจ์ด์ง๋ค.
- ๋ฌผ๋ก GN๊ณผ ๋ฌ๋ฆฌ (ES)KF์๋ prediction step ์ด ์๊ธฐ ๋๋ฌธ์, ์ด ๋ tangent space ์ ์ด๊ณ ์๋ ๋ณ์(==error state)์ covariance๋ฅผ propagation ํ๋ ๊ณผ์ ์ด ์ถ๊ฐ์ ์ผ๋ก ํ์ํ๋ค. ๊ทธ๊ฒ์ด ์์ ๊ทธ๋ฆผ์์ ์ผ์ชฝ ๋ถ๋ถ์ ํด๋นํ๋ ๊ฒ์ด๊ณ , ์ฌ๊ธฐ์ $P$๋ error-state ์ covariance ์์ ์ฃผ์ํ์.
- ์์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ๋จผ์ ์๊ฐํ GN ์์ ์์๋ prediction ๋ถ๋ถ์ ์์ผ๋ฏ๋ก, correction ๋ถ๋ถ์ ์์ฃผ๋ก ๋น๊ตํด๋ณด๋ฉด ์ดํดํ๊ธฐ ์ข์ ๊ฒ์ด๋ค.
- ps.
- Error-state space (tangent space) ์์์ Jacobian ๊ณ์ฐ๋ฒ์ ๊ด๋ จํ์ฌ, Quaternion kinematics for the error-state Kalman filter ์ ์ข ๋ ์์ธํ๊ฒ ์ค๋ช
์ด ๋์ด ์๋ค.
- ์ฌ๊ธฐ์ $H$๋ ์์ ๊ณ์ ๋งํ๋ฏ, Jacobian, ๊ธฐ์ธ๊ธฐ, ์ฆ
tangent space์์ ๋ณ์๋ฅผ ์กฐ์ ํ๋ฉด error cost ๊ฐ ์ผ๋ง๋ ๋ณํ ๊น
ํ๋ ์ ๋. Chain rule ๋ก ์ด๊ฑธ x ์ ๊ดํ ๋ฏธ๋ถ๊ณผ dx ์ ๊ดํ ๋ฏธ๋ถ์ ๋ term์ผ๋ก ์ชผ๊ฐ์ด ๋ณด์๋ค (์ 277). - ๊ทธ๋ฐ๋ฐ ์ 279๋ฅผ ๋ณด๋ฉด rotation term ์ธ์๋ ๋ชจ๋ identity ์์ ๋ณผ ์ ์๋ค. ์ฆ, ์๋ฅผ ๋ค์ด, ์๋ฅผ ๋ค์ด translation ๋ถ๋ถ์ vector space์ด๊ธฐ ๋๋ฌธ์ ์๋ ๊ณต๊ฐ๊ณผ tangent space ๊ฐ ๋์ผํ ๊ฒ.
- ์ฌ๊ธฐ์ $H$๋ ์์ ๊ณ์ ๋งํ๋ฏ, Jacobian, ๊ธฐ์ธ๊ธฐ, ์ฆ
- Error-state space (tangent space) ์์์ Jacobian ๊ณ์ฐ๋ฒ์ ๊ด๋ จํ์ฌ, Quaternion kinematics for the error-state Kalman filter ์ ์ข ๋ ์์ธํ๊ฒ ์ค๋ช
์ด ๋์ด ์๋ค.
๊ฒฐ๋ก
- ์น์์ error-state kf ๋ผ๊ณ ๊ฒ์ํ์ ๋, ์๋ฃ๊ฐ ๋ง์ด ๋์ค์ง ์์ ๊ฒธ์ฌ๊ฒธ์ฌ ์ ๋ฆฌํด๋ณด๊ฒ ๋์๋ค.
- ์๋ฅผ ๋ค์ด์ ํ ๋ก ํ ๋ ์ผ๋ฆฌ ๊ต์๋๊ป์ ์งง์ ๊ฐ์๋ก ์ฝ๊ฒ ์ค๋ช ํด์ฃผ๊ณ ๊ณ์์ง๋ง, ์์ฌ์ ๋ ๋ถ๋ถ์ ์ ESKF ๋ฅผ ์ฌ์ฉํด์ผ ํ๋์ง ๋งค์ฐ ์์ฝํด์ ๋ง์ง๋ง์ ์ ์ summary๋ก ๋์ค๊ณ ๋๋๋ฒ๋ฆฐ๋คโฆ
- ์์ฝ
- ESKF๋ rotation ๋ฑ nonlinear ํ state element ๋ค์ ํจ๊ณผ์ ์ผ๋ก ์ต์ ํ ํ๊ธฐ ์ํด ํ์ํ๊ฒ ๋์๋ค.
- ์ฆ. On-manifold EKF ๋ผ๊ณ ํ ์ ์์ ๊ฒ์ด๋ค. (vector space์ธ) tangent space ์์ ์ต์ ๊ฐ์ ๊ตฌํ ํ ์๋ space๋ก ์ฌ๋ ค์ค๋ค.
- EKF๋ ESKF ๊ธฐ๊ณ์ ์ธ ํํ๋ ๊ฐ๋ค. (์์: manif/examples/se2_localization.py)
- ๋ค๋ฅธ ์
- prediction step: error state ์ ๋ํด process model ์ ์ธ์์ฃผ์ด์ผ ํ๋ค. ์ด๋ฅผ ์ด์ฉํด์ error state ์ covariance ๋ฅผ propagate ํด์ค๋ค.
- correction step: Jacobian์ nominal state ์ ๋ํด ๊ตฌํ๋ ๊ฒ์ด๋ error state ์ ๋ํด ๊ตฌํ๋ ๊ฒ์ด๋ ํ๋ ๊ฒ์ด EKF์ ESKF์ ์ฐจ์ด์ด๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Kalman gain $K$ ๊ฐ tangent space ์์ weight blending ์ ์ ํ ์ ์๋๋ก ๋ง๋ค์ด์ง๋ค.
- ESKF๋ rotation ๋ฑ nonlinear ํ state element ๋ค์ ํจ๊ณผ์ ์ผ๋ก ์ต์ ํ ํ๊ธฐ ์ํด ํ์ํ๊ฒ ๋์๋ค.
- ์ถ์ฒ์๋ฃ ์ ๋ฆฌ
- Quaternion kinematics for the error-state Kalman filter
- A micro Lie theory for state estimation in robotics
- Kalman Filters on Differentiable Manifolds
- ์ 3๊ฐ๋ฅผ ์์๋๋ก ๋ณด๋ ๊ฒ์ด ์ข์ ๋ฏ ํ๋ค.
- ์ ์ธ ๋ ผ๋ฌธ๋ค์ด robot state estimation ๋ฌธ์ ๋ฅผ ์ค์ ์ ์ผ๋ก ๋ค๋ฃจ๊ณ ์๊ณ , error-state / tangent space / manifold / Lie theory ์ ๊ฐ์ ๊ฐ๋ ๋ค์ด ํ๋ฐ ๋์ค๊ธฐ ๋๋ฌธ์ ์ข์ ๋ฏํ๋ค.
- ๋ณด๋ ์์์ ์ด์ ๋ 1,2,3 ์์ผ๋ก ์ค๋ช ์ด ๋ ์น์ ํ ๋ฏ ํ๊ธฐ ๋๋ฌธ.
- others
- FAST-LIVO ๋
ผ๋ฌธ์ ๋ณด๋ฉด,
an iterative optimization has been proven to be equivalent to an iterated Kalman filter [21].
์ด๋ฐ ๋ง์ด ์๋ค. 93๋ ๋The Iterated Kalman Filter Update as a Gauss-Newton Method
๋ผ๋ ๋ ผ๋ฌธ. ESKF์ GN ์ฌ์ด์ ๊ด๊ณ์ ๋ํด ์์๋ณผ ์ ์๊ฒ ๋ค.
- FAST-LIVO ๋
ผ๋ฌธ์ ๋ณด๋ฉด,
- ์ 3๊ฐ๋ฅผ ์์๋๋ก ๋ณด๋ ๊ฒ์ด ์ข์ ๋ฏ ํ๋ค.
- ps.
- ์ ์ฌํ๊ฒ GN ๊ด์ ์์ imu kinematics ๋ฅผ on-manifold ์์ ๋ค๋ฃจ๋ ์๋ ์ค ๊ฐ์ฅ ์ ๋ช
ํ ๋ฐฉ๋ฒ์ IMU Preintegration on Manifold for Efficient Visual-Inertial Maximum-a-Posteriori Estimation ์ด๋ค.
- ์ด ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ batch (sliding window ํฌํจ) ์ต์ ํ ์ ์ฅ์์๋ recursive nature ๊ฐ ์๊ธฐ ๋๋ฌธ์, error state ์ covariance propagation ์ ๋ํด์๋ less care ํด๋ ๋์์ง๋ง, ๋์ ๊ทธ๋ฌ๋ฉด ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ค์ด์ค๋ IMU measurement ๋ค์ ๋ชจ๋ ๋ค residual ๋ก ๋ฃ์ด์ค์ผ ํ๋? ๋น์ฉ์ด ๋๋ฌด ๋น์ธ๋ค, ๋ผ๋ ๋ฌธ์ ๊ฐ ์์๋ค. ๊ทธ๋์ ์ด ๋ ผ๋ฌธ์ preintegration ์ ํตํด ์ด๋ฅผ ํด๊ฒฐํ ๊ฒ (๋ฌผ๋ก reference๋ณด๋ฉด preintegration์ด๋ ๊ฐ๋ ์ ์ด๋ฏธ ์์์ง๋ง ๊ทธ๊ฑธ on-manifold ์์ ํ๋ค๋ ๊ฒ์ด ์ด ๋ ผ๋ฌธ์ ํฌ์ธํธ).
- ๊ทธ๋์ ์ํผ ๋ณด๋ค๋ณด๋ฉด On-manifold GN๊ณผ ESKF๊ฐ ์๋นํ ๋ฎ์ ์์์ ์ ์ ์๋ค.
- ๊ฒฐ๊ตญ recursive nature ๋ฅผ ๊ฐ์ง๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์ดํ GN vs KF ๊ณ์ด์ ๋ง์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ค.
- ์ฆ, error state process model์ ๋ค์ ์ธ์ฐ๋ ๋ฐ ์กฐ๊ธ ๋ ๋ ธ๋ ฅ์ ๋ค์ฌ์ผ ํ๋์ง,
- ์๋๋ฉด ์๋ง์ imu measurements ๋ค์ ํ๋์ a single measurement ๋ก ์์ถํด์ ํจ์จ์ ์ธ batch GN optimization ์ ๊ฐ์ ธ๊ฐ์ง, ์ ๊ฐ์ ๊ณ ๋ฏผ๋ค.
- ๊ฒฐ๊ตญ recursive nature ๋ฅผ ๊ฐ์ง๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์ดํ GN vs KF ๊ณ์ด์ ๋ง์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ค.
- ์ ์ฌํ๊ฒ GN ๊ด์ ์์ imu kinematics ๋ฅผ on-manifold ์์ ๋ค๋ฃจ๋ ์๋ ์ค ๊ฐ์ฅ ์ ๋ช
ํ ๋ฐฉ๋ฒ์ IMU Preintegration on Manifold for Efficient Visual-Inertial Maximum-a-Posteriori Estimation ์ด๋ค.