flowchart TD
A[GelSight image stream F_t] --> B[Tracking Module]
B -->|relative pose via NormalFlow| C{NormalFlow failure?<br/>CCS / SCR check}
C -->|no| B
C -->|yes| D[Select new keyframe]
D --> E[Loop Closure Module]
E --> F[Match SIFT on curvature map<br/>vs Coverage Set]
F --> G[Refine 6DoF by NormalFlow]
G --> H{Accept loop?<br/>CCS high & SCR high}
H -->|yes| I[Pose Graph Optimization<br/>GTSAM, Levenberg-Marquardt]
H -->|no| E
I --> J[Reconstruction Module]
J --> K[Fast fusion + Poisson re-mesh]
K --> L[Global 3D mesh]
๐GelSLAM
- ๐ค GelSLAM์ ์ด๊ฐ ์ผ์ฑ๋ง์ผ๋ก ์ค์๊ฐ ๋ฌผ์ฒด ํฌ์ฆ ์ถ์ ๋ฐ ๊ณ ํ์ง 3D ํํ ์ฌ๊ตฌ์ฑ์ ์ํํ๋ ๊ฒฌ๊ณ ํ SLAM ์์คํ ์ ๋๋ค.
- ๐ก ์ด ์์คํ ์ ๊ธฐ์กด์ point cloud ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์ ๋์ , NormalFlow์ failure detection, keyframe selection, ๊ทธ๋ฆฌ๊ณ loop detection์ ์ํด tactile-derived surface normals ๋ฐ curvatures์ ๊ฐ์ differential representations๋ฅผ ํ์ฉํฉ๋๋ค.
- ๐ GelSLAM์ ์ฅ๊ธฐ๊ฐ ๋ฌผ์ฒด ์ถ์ ์์ ๋๋ฆฌํํธ๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ ์๋ง ํ๋ ์์์๋ ์คํ ์์ด submillimeter ์ ํ๋๋ก 3D ๋ชจ๋ธ์ ์ฌ๊ตฌ์ฑํ์ฌ, ์ด๊ฐ ์ผ์ฑ์ ๊ตญ์์ ํ๊ณ๋ฅผ ๋์ด ์ ์ญ์ ๊ณต๊ฐ ์ธ์ง๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๐ Ping Review
๐ Ping โ A light tap on the surface. Get the gist in seconds.
GelSLAM์ GelSight ์ผ์์์ ์ป์ ์ด๊ฐ ์ ๋ ฅ๋ง์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ์ค์๊ฐ, ๊ณ ์ ๋ฐ ์ฅ๊ธฐ ์ถ์ (long-horizon tracking) ๋ฐ ๊ณ ์ถฉ์ค๋ 3D ์ฌ๊ตฌ์ฑ(high-fidelity 3D reconstruction)์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํ์ ์ ์ธ 3D SLAM ์์คํ ์ ๋๋ค. ์ด ์์คํ ์ ์ผ๋ฐ์ ์ธ ์๊ฐ ๊ธฐ๋ฐ ๋ฐฉ๋ฒ์ ํ๊ณ(์: ํ์, ์กฐ๋ช ๋ฌธ์ , ํฌ๋ช ํ๊ฑฐ๋ ๋ฐ์ฌ๋๋ ํ๋ฉด)๋ฅผ ๊ทน๋ณตํ๊ณ , ์ ์ด ์ค์ธ ๊ฐ์ฒด์ ์์ธ์ ํ์์ ์ ๋ฐํ๊ฒ ์ธ์ํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.
๊ธฐ์กด์ ์ด๊ฐ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ GelSight ์ด๋ฏธ์ง๋ฅผ ์ฃผ๋ก ํฌ์ธํธ ํด๋ผ์ฐ๋(point cloud)๋ก ์ฒ๋ฆฌํ์ฌ ๊ฐ์ฒด ์์ง์์ ์ถ์ ํ์ง๋ง, ์ด๋ ์ด๊ฐ ์ ์ด์ด ๋งค์ฐ ์์ ํ๋ฉด ๋ณํ๋ง์ ์์ฑํ๋ฏ๋ก ํฌ์ธํธ ํด๋ผ์ฐ๋๊ฐ ํํํ๊ณ ํน์ง์ด ๋ถ์กฑํ๋ค๋ ํ๊ณ๊ฐ ์์์ต๋๋ค. GelSLAM์ ํต์ฌ ์์ด๋์ด๋ GelSight ์ด๋ฏธ์ง๋ฅผ ํฌ์ธํธ ํด๋ผ์ฐ๋๊ฐ ์๋, ํ๋ฉด ๋ฒ์ ๋งต(normal map, 1์ฐจ ๊ธฐํํ)๊ณผ ๊ณก๋ฅ ๋งต(curvature map, 2์ฐจ ๊ธฐํํ)๊ณผ ๊ฐ์ ๋ฏธ๋ถ ํํ(differential representations)์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๋ฏธ๋ถ ํํ์ ๋ฏธ์ธํ ํ๋ฉด ์ง๊ฐ์ ํ๋ถํ๊ฒ ๋ด์๋ด๋ฉฐ, GelSight ์ผ์๊ฐ ๊ด๋ ์คํ ๋ ์ค(photometric stereo)๋ฅผ ํตํด ๋ฒ์ ๋งต์ ์ง์ ์ธก์ ํ ์ ์์ด ํฌ์ธํธ ํด๋ผ์ฐ๋ ๋ณํ ์ ๋ฐ์ํ๋ ๋์ ๋ ธ์ด์ฆ(accumulated noise)์ ์๊ณก ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค.
GelSLAM์ ์ธ ๊ฐ์ง ์ฃผ์ ๋ชจ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ์ถ์ ๋ชจ๋(Tracking Module):
- NormalFlow ๊ธฐ๋ฐ ์๋ ์์ธ ์ถ์ : ์๊ฐ์ ์ผ๋ก ์ธ์ ํ ํ๋ ์ ๊ฐ์ ์๋ ์์ธ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด NormalFlow [12]๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฐธ์กฐ ํ๋ ์ i์ ๋์ ํ๋ ์ j์ ๋ฒ์ ๋งต I_i์ I_j๋ฅผ ์ ๋ ฌํ์ฌ ๋ณํ j \hat{T}_i = (R, t) \in SE(3)๋ฅผ ์ถ์ ํฉ๋๋ค. ์ด๋ ๋ค์ ๋ชฉ์ ํจ์๋ฅผ ์ต์ํํจ์ผ๋ก์จ ์ด๋ฃจ์ด์ง๋๋ค: \sum_{(u,v) \in C} \|I_j(W(u,v; R,t)) - R I_i(u,v)\|^2 ์ฌ๊ธฐ์ C๋ ๊ณต์ ์ ์ด ์์ญ(shared contact region)์ด๊ณ , W๋ ์ถ์ ๋ ๋ณํ (R,t) ํ์์์ ์ํ(warping) ํจ์์ ๋๋ค: W(u,v; R,t) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} \cdot (R \cdot q(u,v) + t) q(u,v) = \begin{bmatrix} u & v & H_i(u,v) \end{bmatrix}^\top๋ ์ฐธ์กฐ ํ๋ ์์ ํฝ์ (u,v)์ ๊ด๋ จ๋ 3D ํฌ์ธํธ์ ๋๋ค.
- NormalFlow ์คํจ ๊ฐ์ง: ์๋ชป๋ ์์ธ ์ถ์ ์ ๊ฐ์งํ๊ธฐ ์ํด ๋ ๊ฐ์ง ์งํ๋ฅผ ๋์
ํฉ๋๋ค:
- ๊ณก๋ฅ ์ฝ์ฌ์ธ ์ ์ฌ๋(Curvature Cosine Similarity, CCS): ์ฐธ์กฐ ํ๋ ์์ ๊ณก๋ฅ ๋งต L_i์ ์ํ๋ ๋์ ํ๋ ์์ ๊ณก๋ฅ ๋งต L'_j = L_j(W(u,v; R,t)) ๊ฐ์ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํฉ๋๋ค. \text{CCS} = \frac{\langle L'_j, L_i \rangle}{\|L'_j\| \cdot \|L_i\|} ์ด๊ฒ์ ์ง๊ฐ์ด ํ๋ถํ ์์ญ์ ์ ๋ ฌ์ ์ค์ ์ ๋ก๋๋ค.
- ๊ณต์ ๊ณก๋ฅ ๋น์จ(Shared Curvature Ratio, SCR): ๊ณต์ ์ ์ด ์์ญ์ ์ถฉ๋ถํ ๊ณต๊ฐ์ ์ค์ฒฉ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฐธ์กฐ ํ๋ ์์ ์ ์ด ์์ญ์ด ๋์ ํ๋ ์๊ณผ ์ค์ฒฉ๋๋ ๋น์จ์ ๊ณก๋ฅ ์ ๋ฐ๋ผ ๊ฐ์คํ์ฌ ์ธก์ ํฉ๋๋ค. \text{SCR} = \frac{\sum_{(u,v) \in C} L_i(u,v)}{\sum_{(u,v) \in C_i} L_i(u,v)} ๋ฏธ๋ฆฌ ์ ์๋ ์๊ณ๊ฐ๋ณด๋ค ๋ฎ์ผ๋ฉด NormalFlow ์คํจ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
- ํคํ๋ ์ ์ ํ(Keyframe Selection): NormalFlow ์ถ์ ์ด ์คํจํ๊ฑฐ๋ ์ ๋ขฐํ ์ ์์ ๋ ์ด์ ํ๋ ์์ ์๋ก์ด ํคํ๋ ์์ผ๋ก ์ ํํ๊ณ , ์ด ํคํ๋ ์ ๊ฐ์ ๋ณํ์ ๊ธฐ๋กํ์ฌ ๋์ค์ ์์ธ ๊ทธ๋ํ ์ต์ ํ(pose graph optimization)์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฃจํ ํ์ ๋ชจ๋(Loop Closure Module):
- ์ ์ฉ ๋ฒ์ ํคํ๋ ์(Coverage Keyframes): ๋ฃจํ ๊ฐ์ง ์ ์จ๋ผ์ธ ๊ณ์ฐ์ ์ค์ด๊ธฐ ์ํด ์ด์ ์ ์ค์บ๋ ๋ชจ๋ ์ ์ด ์์ญ์ ํฌ๊ดํ๋ ํคํ๋ ์์ ๋ถ๋ถ์งํฉ(coverage set)์ ๋ํด์๋ง ๋ฃจํ๋ฅผ ๊ฐ์งํฉ๋๋ค.
- ๋ฃจํ ๊ฐ์ง(Loop Detection): ์๋ก ์ ํ๋ ํคํ๋ ์๊ณผ ์ ์ฉ ๋ฒ์ ํคํ๋ ์ ๊ฐ์ ์ฌ๋ฐฉ๋ฌธ(revisit)์ ๋ ๋จ๊ณ๋ก ๊ฐ์งํฉ๋๋ค.
- SIFT ํน์ง ๋งค์นญ: ๊ณก๋ฅ ๋งต์์ SIFT ํน์ง(SIFT features)์ ์ถ์ถํ๊ณ ๋งค์นญํ์ฌ ์ด๊ธฐ 2D ๋ณํ์ ์ถ์ ํฉ๋๋ค. RANSAC์ผ๋ก ์์๋ผ์ด์ด(outlier)๋ฅผ ์ ๊ฑฐํ๊ณ , 8๊ฐ ์ด์์ ์ธ๋ผ์ด์ด(inlier) ๋งค์นญ์ด ์๋ ์์ ๋ฃจํ ํ๋ณด๋ก ์ ์งํฉ๋๋ค.
- NormalFlow ์ ์ : ๊ฐ ํ๋ณด ์์ ๋ํด SIFT ๋งค์นญ์์ ์ป์ 2D ๋ณํ์ผ๋ก ์ด๊ธฐํํ์ฌ NormalFlow๊ฐ ์ ์ฒด 6DoF ์๋ ์์ธ๋ฅผ ์ถ์ ํฉ๋๋ค. CCS์ SCR ์งํ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ํ์ง์ NormalFlow ์ถ์ ์น(์ฆ, ๋์ CCS ๋ฐ SCR)๋ฅผ ๊ฐ์ง ๋ฃจํ๋ง ์๋ฝํฉ๋๋ค.
- ์์ธ ๊ทธ๋ํ ์ต์ ํ: ์ถ์ ์์ ์ป์ ์ฐ์ ํคํ๋ ์ ๊ฐ์ ์ ์ฝ ์กฐ๊ฑด๊ณผ ๊ฐ์ง๋ ๋ฃจํ์์ ์ป์ ์ ์ฝ ์กฐ๊ฑด์ ๋ชจ๋ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํคํ๋ ์์ ์ ์ญ์ ์ผ๋ก ์ผ๊ด๋ ์์ธ(globally consistent poses)๋ฅผ ์ถ์ ํฉ๋๋ค. ์ด๋ ๋ค์ ์์ธ ๊ทธ๋ํ ์ต์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ์ผ๋ก์จ ์ด๋ฃจ์ด์ง๋๋ค: \arg \min_{\{T_{k_1}, \dots, T_{k_n}\}} \sum_{(i,j) \in E} \|e_{ij}\|^2_{\Sigma} \quad \text{with} \quad e_{ij} = \log \left( \hat{T}_{k_j}^{k_i}{}^{-1} \cdot T_{k_j}^{-1} T_{k_i} \right) ์ฌ๊ธฐ์ T_{k_1}, \dots, T_{k_n} \in SE(3)๋ ์ถ์ ํ ํคํ๋ ์ ์์ธ์ด๊ณ , E๋ ์๋ณ ์์ธ ์ ์ฝ(pairwise pose constraint)์ด ์ฌ์ฉ ๊ฐ๋ฅํ ํคํ๋ ์ ์ ์งํฉ์ ๋๋ค. e_{ij}๋ ์์ธก๋ ์๋ ์์ธ์ NormalFlow๋ก ์ถ์ ๋ ์๋ ์์ธ ๊ฐ์ ์ฐจ์ด๋ฅผ ๋ํ๋ด๋ 6D ์ค์ฐจ ๋ฒกํฐ์ ๋๋ค. ์ด ๋น์ ํ ์ต์ ์ ๊ณฑ ๋ฌธ์ ๋ Levenberg-Marquardt ์๊ณ ๋ฆฌ์ฆ [11]์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค.
- ์ฌ๊ตฌ์ฑ ๋ชจ๋(Reconstruction Module):
- ๊ณ ์ ํ๋ฉด ์ตํฉ(Fast Surface Fusion): ์์ธ ๊ทธ๋ํ ์ต์ ํ์์ ์ป์ ์ต์ ํ๋ ํคํ๋ ์ ์์ธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉ ๋ฒ์ ํคํ๋ ์์ ํฌ์ธํธ ํด๋ผ์ฐ๋๋ฅผ ๋ฑ๋กํ๊ณ ํ๊ท ํํ์ฌ ์ตํฉ๋ ํ๋ฉด์ ์์ฑํฉ๋๋ค. ์ด๋ ์จ๋ผ์ธ ์ฌ์ฉ์ ์ํ ํจ์จ์ ์ธ ๋จ๊ณ๋ก, ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค. ๊ฒน์น๋ ์์ญ์ ํ๊ท ํํ์ฌ ์ ์ด ์์ญ ๊ฒฝ๊ณ์์์ ์ํฐํฉํธ(artifacts)๋ฅผ ์ค์ด๊ณ , ๊ฐ ํฌ์ธํธ๋ฅผ ์ ์ด ๊ฒฝ๊ณ๊น์ง์ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ผ ์๊ทธ๋ชจ์ด๋ ํจ์(sigmoid function)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํฉ๋๋ค.
- ๋ฆฌ๋ฉ์ฑ(Remeshing): Poisson Surface Reconstruction [16] ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ตํฉ๋ ํ๋ฉด์ ์ํฐํ์ดํธ(watertight)ํ๊ณ ๊ณ ์ถฉ์ค๋์ ๋ฉ์(mesh)๋ก ์ฌ๊ตฌ์ฑํฉ๋๋ค. ์ด ๋จ๊ณ๋ ์ผ๋ฐ์ ์ผ๋ก ์คํ๋ผ์ธ ํ๋ก์ธ์ค๋ก ์ํ๋ฉ๋๋ค.
GelSLAM์ ๊ธฐ์กด ๋ฐฉ๋ฒ๋ค์ด ์๋ฐฑ ํ๋ ์ ๊ท๋ชจ์ ๊ทธ์น๊ณ ๋น๋ฒํ ์คํ(false positive) ๋ฃจํ ๊ฐ์ง์ ์คํจํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, ์๋ง ํ๋ ์ ๊ท๋ชจ๋ก ํ์ฅ๋๋ฉฐ ์คํ ์์ด ๋ฃจํ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๊ฐ์งํฉ๋๋ค. ์ด๋ก์จ GelSLAM์ ์ด๊ฐ์ ๋ณธ์ง์ ์ธ ๊ตญ๋ถ์ ํน์ฑ์ ๊ทน๋ณตํ๊ณ , ์ฅ๊ธฐ ์ถ์ ๋ฐ ์์ธํ ๊ธฐํํ์ ํน์ง์ ํฌํจํ๋ ์ผ๊ด๋ ์ ์ญ์ (global) ์ฌ๊ตฌ์ฑ์ ๋ฌ์ฑํฉ๋๋ค. ์คํ ๊ฒฐ๊ณผ, GelSLAM์ ์ค์๊ฐ์ผ๋ก ์ ํํ ์ถ์ ์ ์ ์งํ๋ฉฐ ๋๋ฆฌํํธ(drift)๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ต์ ํ๊ณ , ๋ค์ํ ๊ฐ์ฒด์ ๋ํด ์๋ธ๋ฐ๋ฆฌ๋ฏธํฐ(submillimeter) ์์ค์ ์ ํ๋๋ก ๊ณ ์ถฉ์ค๋ 3D ์ฌ๊ตฌ์ฑ์ ์ํํ ์ ์์์ ์ ์ฆํ์ต๋๋ค. ํนํ, GelBelt ์ผ์ [35]๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฌด ์ค๊ธฐ์ ๊ฐ์ ๋ํ ๊ฐ์ฒด๋ ๋ฏธ์ธํ ํ๋ฉด ๋ํ ์ผ์ ๋ณด์กดํ๋ฉฐ ์ฌ๊ตฌ์ฑํ ์ ์์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
๐ Ring Review
๐ Ring โ An idea that echoes. Grasp the core and its value.
GelSLAM ๋ฆฌ๋ทฐ: ์ด๊ฐ๋ง์ผ๋ก ๋ฌผ์ฒด๋ฅผ ์ถ์ ํ๊ณ ๋ณต์ํ๋ SLAM
์ด๊ฐ ์ผ์๋ก SLAM์ ํ๋ค๋ ๋ฐ์์ ์ฒ์ ๋ค์ผ๋ฉด ์ข ์ด์ํ๊ฒ ๋ค๋ฆฝ๋๋ค. SLAM์ ๋ณดํต ์นด๋ฉ๋ผ๋ LiDAR์ฒ๋ผ โ๋ฉ๋ฆฌ ๋ณด๋โ ์ผ์์ ์ผ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ GelSight ๊ฐ์ ์ด๊ฐ ์ผ์๊ฐ ํ ๋ฒ์ ๋ณด๋ ์์ญ์ ์ํฑ๋ง ํฉ๋๋ค(GelSight Mini์ ๊ฒฝ์ฐ 20mm x 15mm). ์ด๋์ด ๋ฐฉ์์ ์๊ฐ๋ฝ ํ๋๋ก ์ฝ๋ผ๋ฆฌ๋ฅผ ๋๋ฌ์ด ์ฝ๋ผ๋ฆฌ ์ ์ฒด๋ฅผ ๊ทธ๋ ค๋ด๋ผ๋ ์๊ตฌ์ ๋น์ทํฉ๋๋ค. GelSLAM์ ๋ฐ๋ก ์ด ์๊ตฌ์ ์ ๋ฉด์ผ๋ก ๋ตํ๋ ์์คํ ์ ๋๋ค. ๊ทธ๊ฒ๋ ์ค์๊ฐ์ผ๋ก, ์ก์ ๋์ ์์ด, ํ๋ฉด ๋ฌด๋ฌ๊ฐ ๊ฑฐ์ ์๋ ๋๋ฌด ์์ก์ด๊น์ง.
์๋ก : ์ ์ด๊ฐ SLAM์ด ์ด๋ ค์ด๊ฐ
๋ฌธ์ ์ ๋ณธ์ง, โ์ฅ๋๊ณผ ์ฝ๋ผ๋ฆฌโ
๋ ผ๋ฌธ์ ํต์ฌ ๋์ ์ โ์ฅ๋๊ณผ ์ฝ๋ผ๋ฆฌ(blind men and the elephant)โ ๋ฌธ์ ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ด ๋น์ ๊ฐ ์ ํํฉ๋๋ค. ์ด๊ฐ ์ผ์์ ํ ํ๋ ์์ ์ ๋ณด๊ฐ ๋งค์ฐ ํ๋ถํฉ๋๋ค(๊ณ ํด์๋๋ก ํ๋ฉด ๋ฏธ์ธ ๊ตด๊ณก์ ์ก์๋ ๋๋ค). ๊ทธ๋ฐ๋ฐ ๊ทธ ์ ๋ณด๊ฐ ๊ตญ์์ ์ ๋๋ค. ์ฝ๋ผ๋ฆฌ์ ๋ค๋ฆฌ๋ฅผ ๋ง์ง ์ฌ๋์ โ๊ธฐ๋ฅ ๊ฐ๋คโ๊ณ ํ๊ณ , ๊ท๋ฅผ ๋ง์ง ์ฌ๋์ โ๋ถ์ฑ ๊ฐ๋คโ๊ณ ํฉ๋๋ค. ๊ฐ์์ ๊ด์ฐฐ์ ์ ํํ์ง๋ง, ์ด๊ฒ์ ํ๋์ ์ฝ๋ผ๋ฆฌ๋ก ๊ฟฐ๋งค๋ ค๋ฉด โ๋ด๊ฐ ๋ง์ง ๋ถ์๊ฐ ๊ณต๊ฐ์ ์ผ๋ก ์ด๋์ธ๊ฐโ๋ฅผ ์์์ผ ํฉ๋๋ค. ์นด๋ฉ๋ผ๋ผ๋ฉด ๋ฐฐ๊ฒฝ, ์กฐ๋ช , ์๊ฒฝ ๊ฐ์ ์ธ๋ถ ๋จ์๋ก ์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ๋๋ค. ์ด๊ฐ์๋ ๊ทธ๋ฐ ๋จ์๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ๊ธฐ์กด ์ด๊ฐ ์ถ์ /๋ณต์ ์์คํ ์ ๊ฑฐ์ ํญ์ ๋ค์ ์ ์ค ํ๋์ ์์กดํ์ต๋๋ค.
- ๋ก๋ด ํค๋ค๋งคํฑ์ค๋ก ์ ์ด ํฌ์ฆ๋ฅผ ์ด๋ฏธ ์๊ณ ์๋ค๊ณ ๊ฐ์ (stationary object + known touch pose)
- ๋น์ ์ ๊ฐ์ด ์จ์ ์ ์ญ ๋งฅ๋ฝ์ ๋ณด๊ฐ(visuo-tactile)
- ์งง์ ๊ตฌ๊ฐ(์๋ฐฑ ํ๋ ์)๋ง, ๊ทธ๊ฒ๋ ๋ฌด๋ฌ๊ฐ ๊ณผ์ฅ๋ 3D ํ๋ฆฐํ ๋ฌผ์ฒด์์๋ง ๋์
GelSLAM์ ๋๋ฐ์ ์ธ ์ฃผ์ฅ์ ์ด๋ ์ต๋๋ค. ์ธ๋ถ ๋จ์, ๋น์ , ๋ฌผ์ฒด ๋ชจ๋ธ, ํค๋ค๋งคํฑ์ค ์ด๋ ๊ฒ๋ ์์ด, ์์ ๋ ์ผ์์ ์์ ๋ ๋ฌผ์ฒด๋ง์ผ๋ก(both hand-held, free motion, contact break ํ์ฉ) ์๋ง ํ๋ ์ ๊ท๋ชจ์ ์ถ์ ๊ณผ ๊ณ ํ์ง ๋ณต์์ด ๊ฐ๋ฅํ๋ค.
์ point cloud์ผ๋ก๋ ์ ๋๋๊ฐ
์ฌ๊ธฐ์ ๊ฐ์ฅ ์ค์ํ ํต์ฐฐ์ด ๋์ต๋๋ค. ๊ธฐ์กด ๋ฐฉ๋ฒ ๋๋ถ๋ถ์ GelSight ์ด๋ฏธ์ง๋ฅผ ์ ๊ตฐ์ด๋ ๋์ด๋งต(height map)์ผ๋ก ๋ฐ๊ฟ์ ICP, FPFH ๊ฐ์ ํ์ค 3D ์ ํฉ ๊ธฐ๋ฒ์ ์ ์ฉํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๊ฐ ์ ์ด์ด ๋ง๋๋ ํ๋ฉด ๋ณํ์ ๋ณดํต ๋ช mm์ ๋ถ๊ณผํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ๊ตฐ์ด ๊ฑฐ์ ํํํฉ๋๋ค. ํํํ ์ ๊ตฐ ๋ ์ฅ์ ICP๋ก ๋ง์ถ๋ ์ผ์, ๋ฐฑ์ง ๋ ์ฅ์ ๊ฒน์ณ ๋๊ณ โ์ด๋๊ฐ ์ด๋์ ๋์๋๋์งโ ๋ง์ถ๋ ์ผ๊ณผ ๊ฐ์ต๋๋ค. ๋ต์ด ๋ฌด์ํ ๋ง๊ฑฐ๋(์ ํฉ ์คํจ), ๋ต์ด ์์ต๋๋ค(๋๋ฆฌํํธ).
์ง๊ด์ ์ํ ํต์ฌ ๊ทธ๋ฆผ ํ๋. ์ง๋ฌผ(fabric)์ ๋ง์ก๋ค๊ณ ํฉ์๋ค. ๋์ด ๋ณํ๋ 0.5mm๋ ์ ๋ฉ๋๋ค. ์ ๊ตฐ์ผ๋ก ๋ณด๋ฉด ๊ฑฐ์ ํ๋ฉด์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ์ ์ง๋ฌผ์ ๋ฒ์ ๋งต(normal map)์ ๋ณด๋ฉด ์จ์ค๊ณผ ๋ ์ค, ๋ฅ์ ์ด ๋๋ ทํ๊ฒ ์ด์ ์์ต๋๋ค. ๊น์ด(0์ฐจ) ์ ๋ณด๋ ๋น์ฝํด๋, ๊ทธ ๋ฏธ๋ถ(1์ฐจ) ์ ๋ณด๋ ํ๋ถํฉ๋๋ค. ์ด๊ฒ์ด GelSLAM ์ ์ฒด๋ฅผ ๊ดํตํ๋ ํ ๋ฌธ์ฅ์ง๋ฆฌ ์์ด๋์ด์ ๋๋ค.
์ด๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ ๊ตฐ์ด ์๋๋ผ ๋ฏธ๋ถ ํํ(differential representation)์ผ๋ก ๋ค๋ค๋ผ.
๊ฒ๋ค๊ฐ GelSight๋ ๊ด๋ ์ธก์ ์คํ ๋ ์ค(photometric stereo)๋ก ๋ฒ์ ์ ์ง์ ์ธก์ ํฉ๋๋ค. ์ ๊ตฐ์ ์ป์ผ๋ ค๋ฉด ๋ฒ์ ์ ์ ๋ถํด์ผ ํ๋๋ฐ, ์ ๋ถ์ ์ก์์ ๋์ ์ํต๋๋ค. ์ฆ ์ ๊ตฐ์ ์์ฒ์ ์ผ๋ก ์ก์์ด ๋ ๋ 2์ฐจ ๊ฐ๊ณต๋ฌผ์ ๋๋ค. ๋ฏธ๋ถ ํํ์ ์ฐ๋ฉด ์ผ์์ ์๋ฆฌ์ ๊ฐ์ฅ ์ถฉ์คํ ์์ ์ง์ ์ฐ๋ ์ ์ ๋๋ค.
ํต์ฌ ์์ด๋์ด: ๋ ๊ฐ์ ๋ฏธ๋ถ ํํ
GelSLAM์ ๋ ๊ฐ์ง ๋ฏธ๋ถ ํํ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋์ ์ญํ ๋ถ๋ด์ ์ดํดํ๋ฉด ์์คํ ์ ์ฒด๊ฐ ํ๋์ ๋ค์ด์ต๋๋ค.
1์ฐจ ํํ: ๋ฒ์ ๋งต (Surface Normal Map)
๊ฐ ํฝ์ ์ ๋จ์ ๋ฒ์ ๋ฒกํฐ๋ฅผ ๋ด์ ๋งต \mathbf{I}_i \in \mathbb{R}^{H \times W \times 3} ์ ๋๋ค. GelSight RGB ์ด๋ฏธ์ง์์ ์์ MLP(5โ32โ32โ32โ2 ๊ตฌ์กฐ)๊ฐ ํ๋ฉด ๊ธฐ์ธ๊ธฐ (g_u, g_v)๋ฅผ ์์ธกํ๊ณ , ๋ค์์ผ๋ก ๋ฒ์ ์ ์ป์ต๋๋ค.
\hat{\mathbf{n}} = \frac{\mathbf{n}}{\|\mathbf{n}\|}, \quad \text{where } \mathbf{n} = \begin{bmatrix} g_u & g_v & -1 \end{bmatrix}^{\intercal}
(MLP ์ ๋ ฅ์ RGB 3์ฑ๋๊ณผ ํฝ์ ์ขํ (u,v)๋ฅผ ํฉ์น 5์ฐจ์์ ๋๋ค. 6.31mm ๊ธ์ ๊ตฌ๋ฅผ ์ผ์ ๊ณณ๊ณณ์ ๋๋ฌ 50์ฅ์ ๋ชจ์ ํ์ตํฉ๋๋ค.)
๋ฒ์ ๋งต์ ๋ฌด๋ฌ๊ฐ ํ๋ถํฉ๋๋ค. ์ ํฉ(alignment)์ ๊ฐ๋ ฅํฉ๋๋ค. ๋จ, ํ ๊ฐ์ง ์ฝ์ ์ด ์์ต๋๋ค. ๋ฌผ์ฒด๊ฐ ํ์ ํ๋ฉด ๋ฒ์ ๋ ๊ฐ์ด ํ์ ํฉ๋๋ค. ์ฆ ํ์ ๋ถ๋ณ(rotation invariant)์ด ์๋๋๋ค. ๊ทธ๋์ ๋ฒ์ ๋งต์ โ์ด๋ฏธ ๋๋ต ๋ง์ถฐ์ง ๋ ํ๋ ์์ ์ ๋ฐํ๊ฒ ์ ๋ ฌโํ๋ ๋ฐ๋ ์ข์ง๋ง, โ์ ํ ๋ชจ๋ฅด๋ ๋ ํ๋ ์์ด ๊ฐ์ ๋ถ์์ธ์ง ๊ฒ์โํ๋ ๋ฐ๋ ๋ถ์ ํฉํฉ๋๋ค.
2์ฐจ ํํ: ๊ณก๋ฅ ๋งต (Surface Curvature Map)
์ฌ๊ธฐ๊ฐ GelSLAM์ ์๋ฆฌํ ์ง์ ์ ๋๋ค. ๊ณก๋ฅ ์ ์ํ์ ์ผ๋ก ๋ฒ์ ์ฅ์ ๋ฐ์ฐ(divergence)์ด๊ณ , ๋ ผ๋ฌธ์ ์ด๋ฅผ ๋์ด๋งต์ ๋ผํ๋ผ์์์ผ๋ก ๊ทผ์ฌํฉ๋๋ค.
\mathbf{L}_i \approx \frac{\partial g_u}{\partial u} + \frac{\partial g_v}{\partial v}
(๋ฏธ๋ถ์ด ๋ง๋ ๊ณ ์ฃผํ ์ก์์ 7x7 ๊ฐ์ฐ์์ ํํฐ๋ก ์ต์ ํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ์ค์นผ๋ผ ํ๋ \mathbf{L}_i \in \mathbb{R}^{H \times W}.)
๊ณก๋ฅ ์ ๊ฒฐ์ ์ ์ฑ์ง์ ๊ฐ์ฒด ๋ณํ์ ๋ถ๋ณ(invariant to rigid transformations)์ด๋ผ๋ ์ ์ ๋๋ค. ๋ฌผ์ฒด๋ฅผ ํํ์ด๋ํ๊ฑฐ๋ ํ์ ํด๋, ํ๋ฉด์ ํ ์ ์์์ ๊ณก๋ฅ ๊ฐ์ ๋ณํ์ง ์์ต๋๋ค. ์ฐ๋ด์ฐ๋ฆฌ์ โ๋พฐ์กฑํ ์ ๋โ๋ ๊ทธ ์ฐ์ ์ด๋ ๋ฐฉํฅ์์ ๋ณด๋ ๊ทธ๋๋ก์ธ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์ด ๋ถ๋ณ์ฑ ๋๋ถ์ ๊ณก๋ฅ ๋งต์ SIFT ๊ฐ์ ํน์ง์ ๋งค์นญ์ ์ ์ ์กฐ๊ฑด(๊ณต๊ฐ ๋ณํ์ ๋ํ ์ธํ ๋ถ๋ณ)์ ๋ง์กฑํฉ๋๋ค. ์ฆ ๊ณก๋ฅ ๋งต์ ๊ฒ์์ฉ ์ง๋ฌธ์ ๋๋ค. ์ถ๊ฐ๋ก ๊ณก๋ฅ ์ ๊ตญ์ ํ์ ์ฑ(saliency)์ ์ฒ๋์ด๊ธฐ๋ ํฉ๋๋ค. ๊ณก๋ฅ ์ด ํฐ ๊ณณ์ด ๊ณง ๋ฌด๋ฌ๊ฐ ํ๋ถํ๊ณ ์ ํฉ์ ์ค์ํ ๊ณณ์ ๋๋ค.
๋ ํํ์ ์ญํ ์ ํ ์ค๋ก ์์ฝํ๋ฉด ์ด๋ ์ต๋๋ค.
| ํํ | ์ฐจ์ | ๊ฐ์ฒด ๋ณํ ๋ถ๋ณ? | ์ฃผ ์ฉ๋ |
|---|---|---|---|
| ๋ฒ์ ๋งต \mathbf{I} | 1์ฐจ | ์๋์ค (ํ์ ๊ณผ ํจ๊ป ๋ณํจ) | ์ ๋ฐ ํฌ์ฆ ์ถ์ (NormalFlow) |
| ๊ณก๋ฅ ๋งต \mathbf{L} | 2์ฐจ | ์ | ๋ฃจํ ๊ฒ์(SIFT), ์คํจ ๊ฒ์ถ, ํคํ๋ ์ ์ ์ |
โ๋ถ๋ณ์ธ ์์ผ๋ก ๊ฒ์ํ๊ณ , ์ ๋ฐํ ์์ผ๋ก ๋ง์ถ๋ค.โ ์ด ๋ถ์ ์ด ์์คํ ์ ์ฒด ์ค๊ณ ์ฒ ํ์ ๋๋ค.
๋ฐฉ๋ฒ: ์ธ ๋ชจ๋์ ํด๋ถ
GelSLAM์ ์ธ ๋ชจ๋์ ๋ณ๋ ํ๋ก์ธ์ค๋ก ๋ณ๋ ฌ ์คํํฉ๋๋ค. ์ ์ฒด ํ์ดํ๋ผ์ธ์ ๋จผ์ ๊ทธ๋ฆผ์ผ๋ก ๋ด ์๋ค.
๋ชจ๋ 1: ํธ๋ํน (Tracking Module)
1-1. NormalFlow๋ก ์๋ ํฌ์ฆ ์ถ์
ํธ๋ํน์ ์์ง์ NormalFlow(Huang et al. 2024, ๊ฐ์ 1์ ์์ ์ ํ ์ฐ๊ตฌ)์ ๋๋ค. ๊ธฐ์ค ํ๋ ์ i์ ๋์ ํ๋ ์ j์ ๋ฒ์ ๋งต์ ์ ๋ ฌํด ๋ณํ ^{j}\hat{\mathbf{T}}_i = (\mathbf{R}, \mathbf{t}) \in SE(3)๋ฅผ ๊ตฌํฉ๋๋ค. ๋ชฉ์ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
\sum_{(u,v) \in \overline{\mathbf{C}}} \left\| \mathbf{I}_j(\mathbf{W}(u,v;\mathbf{R},\mathbf{t})) - \mathbf{R}\,\mathbf{I}_i(u,v) \right\|^2
์ฌ๊ธฐ์ ์ง๊ด์ด ์ค์ํฉ๋๋ค. ์ ์์ \mathbf{R}\,\mathbf{I}_i ํญ์ด ์๋ ๊ฒ์ ์ฃผ๋ชฉํ์ธ์. ๋จ์ํ ํฝ์ ์์น๋ง ์ํํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฒ์ ๋ฒกํฐ ์์ฒด๋ \mathbf{R}๋ก ํ์ ์์ผ์ ๋น๊ตํฉ๋๋ค. ๋ฒ์ ์ด ํ์ ๊ณผ ํจ๊ป ๋ณํ๋ ์์ด๋ผ๋ ์ฌ์ค์ ๋ชฉ์ ํจ์๊ฐ ์ ์งํ๊ฒ ๋ฐ์ํฉ๋๋ค. ์ํ ํจ์ \mathbf{W}๋ ๊ธฐ์ค ํ๋ ์์ 3D ์ \mathbf{q}(u,v) = [u, v, \mathbf{H}_i(u,v)]^{\intercal}๋ฅผ ๋ณํํ ๋ค ์ด๋ฏธ์ง ํ๋ฉด์ผ๋ก ํฌ์ํฉ๋๋ค.
\mathbf{W}(u,v;\mathbf{R},\mathbf{t}) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix} \cdot \left( \mathbf{R} \cdot \mathbf{q}(u,v) + \mathbf{t} \right)
์ต์ ํ๋ Gauss-Newton์ด๊ณ , ํ๋ ์๋น ์ฝ 8ms์ ๋๋ค. GelSLAM์ ์๋ณธ NormalFlow์ ๋ฌด์์ ๋ถ๋ถํ์ง์ ๋ฒ๋ฆฌ๊ณ , ๊ณก๋ฅ ์ด ๊ฐ์ฅ ๋์ ํฝ์ 3000๊ฐ๋ฅผ ๊ณ ์ ์ ํํ๋๋ก ๋ฐ๊ฟจ์ต๋๋ค. ๊ฒฐ์ ๋ก ์ ์ด๊ณ ์ฌํ ๊ฐ๋ฅํ ์ ๋ ฌ์ ์ํด์์ ๋๋ค. ์ก์์ด ๋ง์ ํํ ์์ญ ๋์ ์ ๋ณด๊ฐ ์๋ ๊ณณ์ ๊ณ์ฐ์ ์ง์คํ๋ ์ ์ ๋๋ค.
1-2. ์คํจ๋ฅผ ์ค์ค๋ก ์๋ ๋ฒ (CCS / SCR)
NormalFlow์ ์น๋ช ์ ์ฝ์ ์ ํ๋ ค๋ ์กฐ์ฉํ ํ๋ฆฐ๋ค(silently fails)๋ ์ ์ ๋๋ค. ์ด๊ธฐ๊ฐ์ด ๋์๊ฑฐ๋ ๊ณต์ ์ ์ด์ด ๋ถ์กฑํ๊ฑฐ๋ ์ง์ญ ์ต์์ ๋น ์ง๋ฉด, ๊ทธ๋ด๋ฏํ์ง๋ง ์๋ชป๋ ํฌ์ฆ๋ฅผ ๋ด๋๊ณ ์๋ฌด ์ ํธ๋ ์ฃผ์ง ์์ต๋๋ค. SLAM์์ ์ด๊ฑด ์ฌ์์ ๋๋ค. ์๋ชป๋ ์ ์ฝ ํ๋๊ฐ ์ ์ฒด ํฌ์ฆ ๊ทธ๋ํ๋ฅผ ๋ง๊ฐ๋จ๋ฆฝ๋๋ค.
GelSLAM์ ๋ ๊ฐ์ ์๊ฐ ์ง๋จ ์งํ๋ฅผ ๋์ ํฉ๋๋ค. ๋ ๋ค ๊ณก๋ฅ ๋งต(๋ถ๋ณ ํํ)์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ์ ์ด ํต์ฌ์ ๋๋ค.
๊ณก๋ฅ ์ฝ์ฌ์ธ ์ ์ฌ๋ (CCS, Curvature Cosine Similarity) โ ์ถ์ ๋ ๋ณํ์ผ๋ก ๋์ ๊ณก๋ฅ ๋งต์ ๊ธฐ์ค ํ๋ ์์ ์ํํ \mathbf{L}_j'์ ๊ธฐ์ค ๊ณก๋ฅ ๋งต \mathbf{L}_i์ ์ฝ์ฌ์ธ ์ ์ฌ๋:
\text{CCS} = \frac{\langle \mathbf{L}_j', \mathbf{L}_i \rangle}{\|\mathbf{L}_j'\| \cdot \|\mathbf{L}_i\|}
๋ด์ ์ด ๊ณก๋ฅ ํฐ ํฝ์ ์ ์๋์ผ๋ก ๋ ํฐ ๊ฐ์ค์น๋ฅผ ์ค๋๋ค. ์ฆ ๋ฌด๋ฌ๊ฐ ๋๋ ทํ ์์ญ์ ์ ๋ ฌ์ ๋ ์๊ฒฉํ๊ฒ ํ๊ฐํฉ๋๋ค. ์ ๊ทํ๋์ด ์์ด ๋ฌด๋ฌ ์์ค์ด ๋ค๋ฅธ ๋ฌผ์ฒด๋ค ์ฌ์ด์์๋ ๋น๊ต ๊ฐ๋ฅํ๊ณ , ์๋ฒฝ ์ ๋ ฌ ์ 1๋ก ์ํ์ด ์กํ๋๋ค.
๊ณต์ ๊ณก๋ฅ ๋น์จ (SCR, Shared Curvature Ratio) โ CCS๊ฐ ๋์๋ ๊ณต์ ์์ญ์ด ๋๋ฌด ์์ผ๋ฉด ์ ๋ขฐํ ์ ์์ต๋๋ค. SCR์ ๊ธฐ์ค ํ๋ ์ ์ ์ด ์์ญ ์ค ๋์๊ณผ ๊ฒน์น๋ ๋ถ๋ถ์ ๋น์จ์ ๊ณก๋ฅ ๊ฐ์ค์ผ๋ก ์ฝ๋๋ค.
\text{SCR} = \frac{\sum_{(u,v) \in \overline{\mathbf{C}}} \mathbf{L}_i(u,v)}{\sum_{(u,v) \in \mathbf{C}_i} \mathbf{L}_i(u,v)}
CCS๋ โ์ผ๋ง๋ ์ ๋ง์๋โ, SCR์ โ์ถฉ๋ถํ ๋ง์ด ๊ฒน์ณค๋โ๋ฅผ ๋ด ๋๋ค. ๋ ์ค ํ๋๋ผ๋ ์๊ณ๊ฐ ๋ฏธ๋ง์ด๋ฉด ์คํจ๋ก ํ์ ํฉ๋๋ค. ๋น์ ํ์๋ฉด CCS๋ ๋ ์ง๋ฌธ์ด ๋ฎ์ ์ ๋์ด๊ณ , SCR์ ๋น๊ตํ ์ง๋ฌธ ๋ฉด์ ์ด ๊ฒฐ๋ก ์ ๋ด๋ฆด ๋งํผ ๋์์ง์ ๋๋ค. ๋ ๋ค ์์ด์ผ โ๋์ผ์ธโ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
1-3. ํ์ดํ๋ผ์ธ๊ณผ ํคํ๋ ์ ์ ์
ํคํ๋ ์์ ํฌ์ํ ์ต์ปค ์งํฉ \mathbb{K} = \{k_1, \dots, k_n\}์ ๋๋ค. ์ ํ๋ ์ t๊ฐ ๋ค์ด์ค๋ฉด ๊ฐ์ฅ ์ต๊ทผ ํคํ๋ ์์ ๋ํด NormalFlow๋ก ํฌ์ฆ๋ฅผ ์ถ์ ํ๋, ์ง์ ์ถ์ ๊ฐ์ผ๋ก ์ด๊ธฐํํฉ๋๋ค. ์คํจํ๋ฉด(CCS ๋๋ SCR ๋ฏธ๋ฌ) ์ง์ ํ๋ ์ t{-}1์ ์ ํคํ๋ ์์ผ๋ก ์น๊ฒฉํฉ๋๋ค.
์ค๊ณ์ ์๋ฆฌํจ์ด ์ฌ๊ธฐ ์์ต๋๋ค. ํคํ๋ ์ ๊ฐฑ์ ์ NormalFlow๊ฐ ๋ ๋ชป ๋ฐ๋ผ๊ฐ ๋๊น์ง ๋ฏธ๋ฃน๋๋ค(defer). ๊ทธ๋์ ์ต์ ํคํ๋ ์์ ๋ณดํต ํ์ฌ ํ๋ ์๋ณด๋ค ๋ช ํ๋ ์ ๋ค์ฒ์ ธ ์์ต๋๋ค. ์ด ์ง์ฐ ์ ๋ต์ ํคํ๋ ์์ ๊ผญ ํ์ํ ๋งํผ๋ง ๋ง๋ค์ด ๋๋ฆฌํํธ์ ๊ณ์ฐ์ ๋์์ ์ค์ ๋๋ค. ์๋ณธ NormalFlow๋ ํคํ๋ ์ ์ ์ ์ ์ํด ํ๋ ์๋น NormalFlow๋ฅผ ๋ ๋ฒ ๋๋ ธ์ง๋ง, GelSLAM์ ํ ๋ฒ๋ง ๋๋ฆฝ๋๋ค(2๋ฐฐ ๋น ๋ฆ, ์ ํ๋๋ ๋๋ฑ).
๊ทน๋จ์ ์ผ๋ก t{-}1์ด ์ด๋ฏธ ํคํ๋ ์์ธ๋ฐ t{-}1 \to t ์ถ์ ๋ง์ ์คํจํ๋ฉด, ์ถ์ ์์ค๋ก ์ ์ธํ๊ณ ํ๋ ์ t๋ฅผ ์ ํธ๋ํน ์ธ์ ์ ์ฒซ ํคํ๋ ์์ผ๋ก ์ผ์ต๋๋ค. ๋ณดํต ์ ์ด์ด ๋๊ฒผ๊ฑฐ๋ ๊ธ๊ฒฉํ ์์ง์์ ๋ ์ผ์ด๋ฉ๋๋ค.
ํธ๋ํน ์์ฌ์ฝ๋
function TRACK(frame F_t):
{I_t, L_t, H_t, C_t} = compute_geometric_properties(F_t)
k = latest_keyframe()
(R, t) = NormalFlow(k, F_t, init = pose_estimate[t-1 -> k])
CCS, SCR = failure_metrics(L_k, L_t, R, t)
if CCS < tau_ccs or SCR < tau_scr:
promote frame (t-1) to new keyframe
record relative pose (prev_keyframe -> new_keyframe)
if (t-1) was already the latest keyframe and (t-1 -> t) also failed:
declare tracking lost
start new tracking session with F_t as first keyframe
return composed pose for frame t๋ชจ๋ 2: ๋ฃจํ ํด๋ก์ (Loop Closure Module)
ํธ๋ํน๋ง์ผ๋ก๋ ๋๋ฆฌํํธ๋ฅผ ํผํ ์ ์๊ณ , ๋๊ธด ์ธ์ ์ฌ์ด์ ๊ณต๊ฐ ๊ด๊ณ๋ ๋ณต์ํ์ง ๋ชปํฉ๋๋ค. ๋ฃจํ ํด๋ก์ ๊ฐ ์ด๋ฅผ ํด๊ฒฐํฉ๋๋ค. โ์ด ๋ถ์, ์๊น ๋ง์ง ๋ฐ ์๋๊ฐ?โ๋ฅผ ๊ฒ์ถํ๋ ์ผ์ ๋๋ค.
2-1. ์ปค๋ฒ๋ฆฌ์ง ์งํฉ (Coverage Set)
๋ชจ๋ ํคํ๋ ์ ์์ ๋น๊ตํ๋ฉด ์กฐํฉ ํญ๋ฐ์ด ์ผ์ด๋ฉ๋๋ค. GelSLAM์ ๊ฒ์ ๋์์ ์ปค๋ฒ๋ฆฌ์ง ์งํฉ \mathbb{C} \subseteq \mathbb{K}๋ก ์ ํํฉ๋๋ค. ์ปค๋ฒ๋ฆฌ์ง ํคํ๋ ์์ ์ง๊ธ๊น์ง ์ค์บํ ํ๋ฉด ์ ์ฒด๋ฅผ ๋น์ค๋ณต์ผ๋ก ๋ฎ๋ ์ต์ ๋ํ ์งํฉ์ ๋๋ค.
ํ์์ ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค. ์ ํคํ๋ ์์ด ๊ธฐ์กด \mathbb{C}๊ฐ ๋ฎ์ง ๋ชปํ ์ ์ด ์์ญ์ 0.2\,\text{mm}^2 ์ด์ ์๋ก ๊ธฐ์ฌํ๋ฉด \mathbb{C}์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํคํ๋ ์๋ค๋ก ์ถฉ๋ถํ ๋ฎ์ด๊ฒ ๋์ด ๊ณ ์ ๊ธฐ์ฌ๊ฐ 0.2\,\text{mm}^2 ๋ฏธ๋ง์ด ๋ ๊ธฐ์กด ์ปค๋ฒ๋ฆฌ์ง ํคํ๋ ์์ ์ ๊ฑฐ(prune)ํฉ๋๋ค. ์ง๊ด์ ๋จ์ํฉ๋๋ค. ์ ํคํ๋ ์์ด ๊ณผ๊ฑฐ ์ด๋๊ฐ๋ฅผ ๋ค์ ๋ง์ก๋ค๋ฉด, ๊ทธ ์์ญ์ ์ปค๋ฒ๋ฆฌ์ง ์งํฉ ์ ๋๊ตฐ๊ฐ๋ ๋ถ๋ช ํ ๋ฎ๊ณ ์์ ๊ฒ์ด๋ฏ๋ก, ์ปค๋ฒ๋ฆฌ์ง ์งํฉ๋ง ๋น๊ตํด๋ ๋ฃจํ๋ฅผ ๋์น์ง ์์ต๋๋ค. ์ง๋์ฑ ์ ์์ธ์ฒ๋ผ, ์ ์ฒด๋ฅผ ๋ค ๋ค์ง์ง ์๊ณ ๋ํ ํ์ด์ง๋ง ๋ด ๋๋ค.
2-2. 2๋จ๊ณ ๋ฃจํ ๊ฒ์ถ
flowchart LR
A[New keyframe<br/>curvature map] --> B[Stage 1:<br/>SIFT on curvature map]
B --> C[Match vs coverage keyframes]
C --> D[Least-squares + RANSAC<br/>2D transform estimate]
D --> E{>8 inliers?}
E -->|yes, ~0.2 ms/pair| F[Stage 2:<br/>NormalFlow 6DoF refine<br/>~8 ms/pair]
E -->|no| G[Reject]
F --> H{CCS high & SCR high?}
H -->|yes| I[Accept loop]
H -->|no| G
1๋จ๊ณ (๋น ๋ฅธ ํ๋ณด ์ ๋ณ, ์ฝ 0.2ms/์): ์ ํคํ๋ ์์ ๊ณก๋ฅ ๋งต์์ SIFT ํน์ง์ ๋ฝ์ ์ปค๋ฒ๋ฆฌ์ง ํคํ๋ ์๋ค๊ณผ ๋งค์นญํฉ๋๋ค. ๊ณก๋ฅ ๋งต์ด ๊ฐ์ฒด ๋ณํ ๋ถ๋ณ์ด๋ฏ๋ก SIFT์ ์ ์ ๊ฐ ์ฑ๋ฆฝํฉ๋๋ค. RANSAC์ ๊ณ๋ค์ธ ์ต์์์น์ผ๋ก 2D ํ๋ฉด ๋ณํ์ ์ถ์ ํ๊ณ , ์ธ๋ผ์ด์ด๊ฐ 8๊ฐ๋ฅผ ๋๋ ์๋ง ํ๋ณด๋ก ๋จ๊น๋๋ค.
2๋จ๊ณ (์ ๋ฐ ๊ฒ์ฆ, ํ๊ท 8ms/์): ๊ฐ ํ๋ณด์ ๋ํด 1๋จ๊ณ์ 2D ๋ณํ์ผ๋ก ์ด๊ธฐํํ NormalFlow๋ก ์์ ํ 6DoF ์๋ ํฌ์ฆ๋ฅผ ์ถ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํธ๋ํน ๋ชจ๋๊ณผ ๋๊ฐ์ CCS/SCR ๊ฒ์ฌ๋ก ๊ฒ์ฆํฉ๋๋ค. ๋ ๋ค ๋์ผ๋ฉด ๋ฃจํ ์ฑํ.
์ด 2๋จ๊ณ ๊ตฌ์กฐ๊ฐ ์ ๋ ๋ค ํ์ํ์ง๋ ์ ์ ์คํ์ด ๋ถ๋ช ํ๊ฒ ๋ณด์ฌ์ค๋๋ค(๋ค์์). 1๋จ๊ณ๋ ๋น ๋ฅธ ๊ฑฐ๋ฆ๋ง์ด์ ์ข์ ์ด๊ธฐ๊ฐ ๊ณต๊ธ์์ด๊ณ , 2๋จ๊ณ๋ ์ ๋ฐ ๊ฒ์ฆ๊ธฐ์ ๋๋ค. NormalFlow๋ ์ข์ ์ด๊ธฐ๊ฐ ์์ด๋ ์ง์ญ ์ต์์ ๋น ์ ธ ์ ํจํ ๋ฃจํ๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. SIFT๋ ๋น ๋ฅด์ง๋ง ๋จ๋ ์ผ๋ก๋ ์ด์์น ๋ฃจํ๋ฅผ ํต๊ณผ์ํต๋๋ค. ๋์ ์ง๋ ฌ๋ก ์ฎ์ด์ผ ๋น ๋ฅด๋ฉด์๋ ๊ฒฌ๊ณ ํฉ๋๋ค.
2-3. ํฌ์ฆ ๊ทธ๋ํ ์ต์ ํ
์ฑํ๋ ๋ชจ๋ ์ ์ฝ(์ฐ์ ํคํ๋ ์ ๊ฐ ์ถ์ ์ ์ฝ + ๊ฒ์ถ๋ ๋ฃจํ ์ ์ฝ)์ผ๋ก ์ ์ญ ์ผ๊ด ํฌ์ฆ๋ฅผ ํผ๋ค.
\operatorname*{arg\,min}_{\{\mathbf{T}_{k_1},\dots,\mathbf{T}_{k_n}\}} \sum_{(i,j)\in\mathcal{E}} \left\| \mathbf{e}_{ij} \right\|^2_{\mathbf{\Sigma}}
\mathbf{e}_{ij} = \log\left( {^{k_j}\hat{\mathbf{T}}_{k_i}}^{-1} \cdot \mathbf{T}_{k_j}^{-1} \mathbf{T}_{k_i} \right)
์ค์ฐจ \mathbf{e}_{ij}๋ ์ธก์ ๋ ์๋ ํฌ์ฆ์ ํ์ฌ ์ถ์ ์๋ ํฌ์ฆ์ ์ฐจ์ด๋ฅผ \mathfrak{se}(3)๋ก ์ฌ์ํ 6D ๋ฒกํฐ์ ๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ๋ ๋ชจ๋ ์ ์ฝ์ ๊ณ ์ ๋ ๊ณต๋ถ์ฐ \mathbf{\Sigma}๋ฅผ ์๋๋ค. ์ถ์ ๊ณต๋ถ์ฐ์ ์จ๋ด๋ ์ค์ ๋ก ์ฑ๋ฅ์ด ๋์์ง์ง ์์๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค. GTSAM์ Levenberg-Marquardt๋ก ํ๋๋ค. ๋ชจ๋ ํ๋ ์์ด ์ด๋ค ํคํ๋ ์์ ๋งค์ฌ ์์ผ๋ฏ๋ก, ํคํ๋ ์ ํฌ์ฆ๋ง ํ๋ฉด ์ ์ฒด ํ๋ ์ ํฌ์ฆ๊ฐ ๋ณต์๋ฉ๋๋ค.
๋ชจ๋ 3: ๋ณต์ (Reconstruction Module)
์ต์ ํ๋ ํคํ๋ ์ ํฌ์ฆ๊ฐ ์์ผ๋ฉด ๊ตญ์ ํจ์น๋ฅผ ์ ์ญ ๋ฉ์๋ก ์ตํฉํฉ๋๋ค. ๋ ๋จ๊ณ์ ๋๋ค.
1๋จ๊ณ (๋น ๋ฅธ ์ตํฉ, ์จ๋ผ์ธ์ฉ): ์ปค๋ฒ๋ฆฌ์ง ํคํ๋ ์๋ค์ ์ ๊ตฐ์ ์ ํฉํ๊ณ ํ๊ท ๋ ๋๋ค. ๋จ์ํ ํจ์น๋ฅผ ํฌ์ฆ๋๋ก ๋ถ์ด๋ฉด ์ ์ด ๊ฒฝ๊ณ ๋ถ๊ทผ์์ ๊น์ด ์๊ณก ๋๋ฌธ์ ์ํฐํฉํธ๊ฐ ์๊น๋๋ค(naive fusion). ๊ทธ๋์ ๊ฐ ํฝ์ ์ ๊ฒน์น๋ ๋ค๋ฅธ ํคํ๋ ์์ผ๋ก ์ฌํฌ์ํด ๋์ 3D ์ ์ ๋ชจ์ผ๊ณ , ๊ฐ์ค ํ๊ท ํฉ๋๋ค. ๊ฐ์ค์น๋ ์ ์ด ๊ฒฝ๊ณ๊น์ง ๊ฑฐ๋ฆฌ์ ์๊ทธ๋ชจ์ด๋ ํจ์๋ก, ์ ๋ขฐ๋ ๋ฎ์ ๊ฒฝ๊ณ ์์ญ์ ๊น์๋ ๋๋ค. ์๊ฐ์ ์ผ๋ก ์ผ๊ด๋๊ณ ๋น ๋ฅด์ง๋ง ๋ฐฉ์(watertight)๋ ์๋๋๋ค.
2๋จ๊ณ (์ฌ๋ฉ์ฑ, ์คํ๋ผ์ธ): ์ตํฉ ํ๋ฉด์ Poisson Surface Reconstruction์ ์ ์ฉํด ๋ฐฉ์ ๊ณ ํ์ง ๋ฉ์๋ฅผ ๋ง๋ญ๋๋ค. ์ ํํ ํ์์ด ๋ชฉ์ ์ด๊ณ ์ค์๊ฐ์ด ํ์ ์์ผ๋ฏ๋ก ์คํ๋ผ์ธ ์ฒ๋ฆฌํฉ๋๋ค.
๊ทธ๋ฆผ 4 ์ค๋ช : ์ ์ค๋ฅธ์ชฝ์ naive fusion์ ๊ฒฝ๊ณ ์ํฐํฉํธ๊ฐ ๋ณด์ด๊ณ , fast fusion ๋จ๊ณ๊ฐ ์ด๋ฅผ ํ๊ท ์ผ๋ก ๋ค๋ฌ์ ๋ค, ์คํ๋ผ์ธ re-meshing์ด ๋ฐฉ์ ์ต์ข ๋ชจ๋ธ์ ๋ง๋ ๋ค.
์คํ: ๋ฌด์์ ์ธก์ ํ๊ณ ๋ฌด์์ด ๋๋ฌ๋ฌ๋
์คํ์ ๋ ๊ฐ๋์ ๋๋ค. (1) ์ฅ๊ธฐ ์ถ์ (long-horizon tracking), (2) ๋ฌผ์ฒด 3D ๋ณต์.
์คํ 1: ์ฅ๊ธฐ ์ถ์
์ค์ . GelSight Mini(320x240, 25Hz, ์ต๋ ์์ 2mm). 8์ฝ์ด 3.3GHz CPU ๋ ธํธ๋ถ, ROS2 ๊ตฌํ. 20๊ฐ ๋ฌผ์ฒด(์ผ์ ๋ฌผ์ฒด 14 + ์์ ํ ์ค์ฒ ๋ฌผ์ฒด 3 + ๋จ์ ๊ธฐํ 3), ๋ฌผ์ฒด๋น 7๊ฐ ์ํผ์๋, ์ด 140 ์ํผ์๋. ๋ฌผ์ฒด๋ ํ ์ด๋ธ์ ๊ณ ์ , ์ผ์๋ OptiTrack MoCap์ผ๋ก GT ํฌ์ฆ ํ๋ณด. ์ํผ์๋ ํ๊ท 21์ด, 523ํ๋ ์. ๋์ ํ์ ์ด ์ถ๋น 450~620๋, ๋์ ๋ณ์ง์ด ์ถ๋น 40~50mm๋ก, ์ ํ NormalFlow ๋ฐ์ดํฐ์ ๋ณด๋ค ํจ์ฌ ํฐ ์ด๋ ๋ฒ์์ ๋๋ค.
์์คํ ํน์ฑ. ํคํ๋ ์์ด 7.7ํ๋ ์๋ง๋ค ํ๋๊ผด๋ก ๋งค์ฐ ์์ฃผ ์์ฑ๋ฉ๋๋ค. ์ด๊ฐ์ด ์๋ ๊ตญ์์ ์ด๋ผ ์กฐ๊ธ๋ง ์๊ฐ์ด ์ง๋๋ ๊ฒน์นจ์ด ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ปค๋ฒ๋ฆฌ์ง ํคํ๋ ์ ์๋ ๋ฎ๊ฒ ์ ์ง๋ฉ๋๋ค(ํ๊ท ํคํ๋ ์ 68๊ฐ ์ค ์ปค๋ฒ๋ฆฌ์ง 21๊ฐ). ํ๋ณด ๋ฃจํ ํ๊ท 65๊ฐ ์ค 34๊ฐ๊ฐ ์ฑํ๋ฉ๋๋ค(๋์ ์ฑํ๋ฅ = ๊ฑฐ๋ฆ๋ง์ด ์ธ๋ผ์ด์ด๋ฅผ ๋ณด์กดํ๋ฉด์ ์ด์์น๋ฅผ ์ ๋ฒ๋ฆฐ๋ค๋ ๋ป).
๋ฐํ์. ํธ๋ํน ๋ชจ๋์ ํ๋ ์๋น ์ฝ 28ms๋ก 25Hz ํ๋ ์๋ฅ ๋ณด๋ค ๋น ๋ฆ ๋๋ค. ๋ฃจํ ๊ฒ์ถ์ ํคํ๋ ์๋น ํ๊ท 12.6ms์ด๊ณ , ํคํ๋ ์์ด ํ๊ท 310ms๋ง๋ค ์๊ธฐ๋ฏ๋ก ์๊ฐ ์์ฐ ์์ ์ถฉ๋ถํ ๋ค์ด๊ฐ๋๋ค. 7๋ถ์ง๋ฆฌ Hammer ์ํผ์๋ ๋ถ์์์ ์ฒซ 1๋ถ๊ฐ์ ์คํต๋ ๋ฃจํ๊ฐ 0์ด๊ณ , ์ ์ฒด 7๋ถ์์๋ 5% ๋ฏธ๋ง๋ง ์คํต๋ฉ๋๋ค. ๋๋ถ๋ถ์ ์กฐ์ ์์ ์ด 1๋ถ ์์ ๋๋๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์ค์ฉ์ ์ํฅ์ด ๊ฑฐ์ ์์ต๋๋ค.
์ ํ๋ (Table IV, 6DoF MAE, Ball/Cylinder ์ ์ธ).
| Method | ฮธx(ยฐ) | ฮธy(ยฐ) | ฮธz(ยฐ) | x(mm) | y(mm) | z(mm) |
|---|---|---|---|---|---|---|
| ICP | 13.0 | 13.9 | 23.9 | 8.14 | 9.94 | 6.73 |
| FilterReg | 13.7 | 13.7 | 19.2 | 3.87 | 3.49 | 2.61 |
| FPFH+RI | 37.8 | 38.7 | 36.3 | 90.6 | 134.1 | 108.5 |
| NormalFlow (NF) | 7.11 | 7.53 | 7.63 | 1.13 | 1.21 | 0.92 |
| Tac2Structure | 37.7 | 38.7 | 36.3 | 90.6 | 134.0 | 108.0 |
| NF-OrigKF | 6.74 | 7.18 | 7.12 | 1.35 | 1.38 | 0.91 |
| NF-KF | 6.55 | 7.39 | 7.11 | 1.26 | 1.24 | 0.90 |
| GS-OnlySIFT | 8.13 | 8.37 | 4.17 | 1.04 | 1.02 | 0.89 |
| GS-OnlyNF | 5.61 | 6.28 | 6.95 | 1.53 | 1.62 | 0.77 |
| GS-ImageSIFT | 5.49 | 6.13 | 6.00 | 1.16 | 1.14 | 0.83 |
| GS-Offline | 3.98 | 4.29 | 3.41 | 0.98 | 0.94 | 0.71 |
| GS-Online (Ours) | 4.06 | 4.38 | 3.57 | 1.00 | 0.96 | 0.72 |
ํด์ ํฌ์ธํธ๋ฅผ ์ง๊ฒ ์ต๋๋ค.
- GS-Online์ด NormalFlow ๋๋น ํ์ ์ค์ฐจ 46%, ๋ณ์ง ์ค์ฐจ 17.5% ๊ฐ์. ๋ฃจํ ํด๋ก์ ๊ฐ ๋๋ฆฌํํธ๋ฅผ ๋ณด์ ํ ์ง์ ์ ํจ๊ณผ์ ๋๋ค.
- GS-Online โ GS-Offline. ์ค์๊ฐ์ผ๋ก ๋๋ ค๋ ์ถ์ ํ์ง์ด ๋จ์ด์ง์ง ์์ต๋๋ค. 5% ๋ฏธ๋ง ๋ฃจํ ์คํต์ ์ํฅ์ด ๊ฑฐ์ ์๋ค๋ ์ฆ๊ฑฐ์ ๋๋ค.
- FPFH+RI์ Tac2Structure๊ฐ ์ฒ์ฐธํจ(๋ณ์ง ์ค์ฐจ 100mm๋). ๋ฐ์ดํฐ์ ์ ์ ํ ์ค์ฒ ๋ฌผ์ฒด๊ฐ ๋ง์ FPFH ํน์ง์ด ๋ฌด๋์ง๊ณ , Tac2Structure์ CNN ์ฝ์ฌ์ธ ์ ์ฌ๋ ๋ฃจํ ๊ฒ์ถ์ด ์ด์์น ๋ฃจํ๋ฅผ ๋ค์ ํต๊ณผ์ํต๋๋ค. ๋ฌด๋ฌ ๊ณผ์ฅ๋ 3D ํ๋ฆฐํ ๋ฌผ์ฒด์์๋ง ํตํ๋ ๋ฐฉ๋ฒ์ ํ๊ณ๋ฅผ ์ ์งํ๊ฒ ๋๋ฌ๋ ๋๋ค.
์ ์ ์คํ์ ๊ตํ. ์ธ ๊ฐ์ง ์ค๊ณ ๊ฒฐ์ ์ด ๊ฐ๊ฐ ๊ฒ์ฆ๋ฉ๋๋ค.
- ํคํ๋ ์ ์ ์ : NF-KF๊ฐ NF๋ณด๋ค ๋ซ๊ณ (๋๋ฆฌํํธ ๊ฐ์), NF-OrigKF์ ๋น์ทํ ์ ํ๋๋ฅผ 2๋ฐฐ ๋น ๋ฅด๊ฒ ๋ฌ์ฑ(ํ๋ ์๋น NormalFlow 1ํ).
- ๋ฃจํ ๊ฒ์ถ: GS-OnlySIFT(SIFT๋ง)๋ ์ด์์น ๋ฃจํ ๋๋ฌธ์ ์คํ๋ ค NF-KF๋ณด๋ค ๋๋น ์ง ์ ์์. GS-OnlyNF(NF๋ง)๋ CCS/SCR ๋์ ์ด์์น๋ฅผ ๊ฑฐ๋ฅด๋ฏ๋ก ๋ซ์ง๋ง, ์ข์ ์ด๊ธฐ๊ฐ์ด ์์ด ์ ํจ ๋ฃจํ๋ฅผ ๋์น๊ณ ์ฝ 40๋ฐฐ ๋๋ฆผ. 2๋จ๊ณ ๊ฒฐํฉ(GS-Offline)์ด ์ต์ .
- SIFT ํน์ง ์ถ์ฒ: ์๋ณธ GelSight ์ด๋ฏธ์ง์์ ๋ฝ์ SIFT(GS-ImageSIFT)๋ณด๋ค ๊ณก๋ฅ ๋งต์์ ๋ฝ์ SIFT(GS-Offline)๊ฐ ํ์ ์ถ์ ์ค์ฐจ๋ฅผ ์ถ๊ฐ๋ก 34% ์ค์. ๋ฏธ๋ถ ํํ์ ๋ถ๋ณ์ฑ์ด ๋งค์นญ ์ ๋ขฐ๋๋ฅผ ๋์ด์ฌ๋ฆฐ๋ค๋ ์ง์ ์ฆ๊ฑฐ.
์๊ณ๊ฐ ๋ฏผ๊ฐ๋์ ์ฌ์์น์ถ์ . CCS/SCR ์๊ณ๊ฐ์ ๋์ ๋ฒ์์์ ๋ฐ๊ฟ๋ ์ถ์ ์ค์ฐจ๊ฐ ๋ฎ๊ฒ ์ ์ง๋ฉ๋๋ค(CCS=0.85, SCR=0.3์ด ์ผ์ ๋ฌผ์ฒด์ ๋๋ฃจ ์ ๋จ). CCS ์๊ณ๊ฐ์ด ๋๋ฌด ๋ฎ์ผ๋ฉด(0 ๋ฏธ๋ง) ๊ฑฐ์ง ๋ฃจํ๋ฅผ ๋ฐ์๋ค์ฌ ์ ํ๋ฉ๋๋ค. 4์ด๋ง๋ค 1์ด(25ํ๋ ์)์ฉ ์ ์ด์ ์ธ์๋ก ๋๋ ์คํ์์, ์ ์ด์ด ์ฌ๊ฐ๋๋ฉด ๊ฑฐ์ ๋์ผํ ์ถ์ ์ฑ๋ฅ์ผ๋ก ์์ ์ ์ผ๋ก ์ฌ์์น์ถ์ ํฉ๋๋ค(๋จ, ๊ณผ๊ฑฐ ์ ์ด ์์ญ์์ ๋ฉ๋ฆฌ ๋จ์ด์ง ๊ณณ์์ ์ฌ๊ฐ๋๋ฉด ์ฌ์์น์ถ์ ์ด ์ง์ฐ๋ ์ ์์).
์คํ 2: 3D ๋ณต์
์ค์ . ์ ์ฑ ํ๊ฐ์ฉ ์ค์ ๋ฌผ์ฒด 15๊ฐ(8mm Seed๋ถํฐ 85mm Avocado๊น์ง), ์ ๋ ํ๊ฐ์ฉ 3D ํ๋ฆฐํ ๋ฌผ์ฒด 10๊ฐ(5๋ชจ๋ธ x 2ํฌ๊ธฐ, ์น์ ํธ์ฐจ ์ต๋ 0.1mm). ์ผ์์ ๋ฌผ์ฒด ๋ชจ๋ ์์ผ๋ก ๋ค๊ณ in-the-wild๋ก ์ค์บ. ์ ์ด ๋๊น์ด ๋ฌผ์ฒด๋น 100ํ ๋๊ฒ ๋ฐ์ํ๊ธฐ๋ ํจ. ๋งค์ฐ ๊ธด ์ค์บ์ 10๋ถ ๋จ์๋ก ๋๋ ์ดฌ์ ํ ์ตํฉ.
๊ท๋ชจ. Avocado๋ 45,557ํ๋ ์, 5,178 ํคํ๋ ์, 442 ํธ๋ํน ์ธ์ , 12,851 ํ๋ณด ์ค 10,529 ๋ฃจํ. Large Rock์ 23,041 ํ๋ณด ์ค 11,854 ๋ฃจํ. ํต์ฌ ๋ณด๊ณ : ๊ฒ์ถ๋ ๋ฃจํ ์ค ๊ฑฐ์ง ์์ฑ์ด ๋จ ํ๋๋ ์์(zero false positives). ํฌ์ฆ ๊ทธ๋ํ์์๋ ์ด์์น ๋ฃจํ ํ๋๊ฐ ์ ์ฒด๋ฅผ ํ๊ตญ์ผ๋ก ๋ชฐ ์ ์์ผ๋ฏ๋ก, ์ด 0%๊ฐ ์์คํ ๊ฒฌ๊ณ ์ฑ์ ๊ฐ์ฅ ๊ฐํ ๊ทผ๊ฑฐ์ ๋๋ค.
์ค๋ด SLAM์ ๋ณดํต ๋ณต๋ ๊ต์ฐจ์ ๊ฐ์ ์์์ ํน์ง์์๋ง ๋๋ฌผ๊ฒ ๋ฃจํ๊ฐ ์๊น๋๋ค. ์ด๊ฐ ๋ณต์์ ํคํ๋ ์์ด ํ๋ฉด ์ ์ญ์ ์ด์ดํ ๋ถํฌํด ์ผ์๊ฐ ์ด๋๋ฅผ ์ฌ๋ฐฉ๋ฌธํ๋ ๋ฃจํ๊ฐ ์๊น๋๋ค. ํธ๋ํน ์ธ์ ์๋ ๋ง์(์ฆ์ ์ฌ์์น์ถ์ ) ๊ฒฌ๊ณ ํ ๋ฃจํ ๊ฒ์ถ ์์กด๋๊ฐ ๋ ๋์ต๋๋ค. ๊ทธ๋ฆผ 14๋ ํฐ ํ์ , ์ ํ ์ค์ฒ, ์์ ๊ฒน์นจ์ด๋ผ๋ ์ ์กฐ๊ฑด์์๋ ์ ํจ ๋ฃจํ๋ฅผ ์์ ์ ์ผ๋ก ์ก์๋ด๋ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ ๋ ๊ฒฐ๊ณผ (Table VI).
| Dice(S) | Shell(S) | Almond(S) | Seed(S) | Lime(S) | Dice(L) | Shell(L) | Almond(L) | Seed(L) | Lime(L) | |
|---|---|---|---|---|---|---|---|---|---|---|
| size(mm) | 10.0 | 18.4 | 17.3 | 9.5 | 15.0 | 15.0 | 27.6 | 25.9 | 14.3 | 29.9 |
| CD(mm) | 0.44 | 0.76 | 0.60 | 0.63 | 0.26 | 0.41 | 0.91 | 0.85 | 0.63 | 0.50 |
| NCD | 0.955 | 0.944 | 0.966 | 0.954 | 0.985 | 0.947 | 0.955 | 0.962 | 0.967 | 0.986 |
- ์ ์ญ ํ์: Chamfer Distance ํ๊ท 0.6mm(๋ฌผ์ฒด ํ๊ท ํฌ๊ธฐ 18.3mm). ์๋ธ๋ฐ๋ฆฌ๋ฏธํฐ ์์ค์ ๋๋ค.
- ๊ตญ์ ํ์: Normal Cosine Distance ํ๊ท 0.962(์๋ฒฝ ์ผ์น ์ 1.0). 100๊ฐ ๊ท ์ผ ์ ์ด์ ์์ ์๋ฎฌ๋ ์ด์ ํ ๋ฒ์ ๋งต์ GT CAD ๋ฒ์ ๋งต๊ณผ ๋น๊ตํ ๊ฐ์ ๋๋ค. ๋ฏธ์ธ ํ ์ค์ฒ๊น์ง ์ ๋ณต์๋ฉ๋๋ค(์ฝ๊ฐ์ ๋ํ ์ผ ์์ค์ GelSight Mini ํด์๋ ์ ํ๊ณผ ํจ์น ์ ๋ ฌ ๋ฏธ์ธ ์ค์ฐจ์ ํ๊ท ํจ๊ณผ ๋๋ฌธ).
์์ฉ ๋ง์ดํฌ๋ก ์ ๋ฐ ์ค์บ๋ GelSight Max์ ๋จ์ผ ์ค์บ๊ณผ ๋น๊ตํด๋ GelSLAM ๋ณต์ ํ ์ค์ฒ๊ฐ ๊ทผ์ ํฉ๋๋ค.
๋ํ ๋ฌผ์ฒด. GelBelt ์ผ์(60mm x 40mm ๋ฒจํธํ, ์ฐ์ ์ค์บ)๋ก ์ง๊ฒฝ ์ฝ 190mm ๋๋ฌด ์ค๊ธฐ๋ฅผ ๊ธธ์ด 130mm ๊ตฌ๊ฐ, 9๋ฐํด ์ค์บํด ๋ณต์. ๊ฒฐ, ๊ท ์ด ๊ฐ์ ์ค์ ํ ์ค์ฒ๋ฅผ ๋ณด์กดํฉ๋๋ค. ์ ๋์ด ์ฝ๊ฐ ์์ถํ๋ ํ์์ด ๊ด์ฐฐ๋๋๋ฐ, ์ค๊ฐ ์์ญ์ ์ฌ๋ฌ ๋ฐฉํฅ์ ํฌ์ฆ ๊ทธ๋ํ ์ฃ์ง๋ก ์ ์ฝ๋๋ ๋ฐ๋ฉด ๋์ ํ์ชฝ ์ฐ๊ฒฐ๋ง ๋ฐ์ ์ ์ญ ์๊ณก์ ๋ ์ทจ์ฝํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๋ถ์ํฉ๋๋ค. ์ด ๊ด์ฐฐ์ ํฌ์ฆ ๊ทธ๋ํ SLAM์ ๋ค๋ค๋ณธ ์ฌ๋์๊ฒ ์ต์ํ ๊ฒฝ๊ณ ํจ๊ณผ์ ๋๋ค.
๋นํ์ ๊ณ ์ฐฐ: ๊ฐ์ ๊ณผ ํ๊ณ
๊ฐ์
1. ์์ด๋์ด์ ๊ฒฝ์ ์ฑ. GelSLAM์ ์๋ ฅ์ ๊ฑฐ๋ํ ์ ๊ฒฝ๋ง์ด๋ ํ์ต๋ ํํ์ด ์๋๋ผ, โ์ด๋ค ์์ ์ธ ๊ฒ์ธ๊ฐโ๋ผ๋ ํํ(representation) ์ ํ์์ ๋์ต๋๋ค. ์ ๊ตฐ ๋์ ๋ฏธ๋ถ ํํ, ๊ทธ์ค์์๋ ๊ฒ์์๋ ๋ถ๋ณ๋์ธ ๊ณก๋ฅ , ์ ๋ ฌ์๋ ์ ๋ฐํ ๋ฒ์ . ์ด ๋ถ์ ํ๋๋ก SLAM ํ์ดํ๋ผ์ธ์ ๋ชจ๋ ๋ถํ(์ถ์ , ์คํจ ๊ฒ์ถ, ํคํ๋ ์, ๋ฃจํ ๊ฒ์)์ด ๊น๋ํ๊ฒ ํ๋ฆฝ๋๋ค. ์ข์ ํํ์ด ์๊ณ ๋ฆฌ์ฆ ์ ๋ฐ์ ๊ณต์ง๋ก ์ค๋ค๋ ๊ณ ์ ์ ๊ตํ์ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค.
2. ๊ฒฌ๊ณ ์ฑ์ ์ ๋์ ์ฆ๊ฑฐ. ์๋ง ํ๋ ์์์ ๊ฑฐ์ง ์์ฑ ๋ฃจํ 0๊ฐ๋ ๊ทธ๋ฅ ์ข์ ์ซ์๊ฐ ์๋๋๋ค. ํฌ์ฆ ๊ทธ๋ํ SLAM์์ ๋จ์ผ ์ด์์น๊ฐ ๊ฐ๋ ํ๊ดด๋ ฅ์ ์๋ ์ฌ๋์๊ฒ๋ ์ด 0์ด ๊ฐ์ฅ ์ธ์์ ์ธ ๊ฒฐ๊ณผ์ ๋๋ค. CCS/SCR์ด๋ผ๋ ๋ ์ค์ง๋ฆฌ ์๊ฐ ์ง๋จ์ด ์ด ๊ฒฌ๊ณ ์ฑ์ ํต์ฌ ๋ถํ์ธ๋ฐ, ์ค๊ณ๊ฐ ๊ตฐ๋๋๊ธฐ ์์ต๋๋ค.
3. ์์ง๋์ด๋ง ์์ฑ๋. ์ธ ๋ชจ๋ ๋ณ๋ ฌ ํ๋ก์ธ์ค, CPU ์ ์ฉ ๋ ธํธ๋ถ ์ค์๊ฐ, ROS2 ๊ตฌํ, ์ฝ๋/๋ฐ์ดํฐ์ (73GB) ๊ณต๊ฐ. ์ฌํ์ฑ๊ณผ ํ์ ์ฐ๊ตฌ ์ง์ ์ฅ๋ฒฝ ์ธก๋ฉด์์ ๋ชจ๋ฒ์ ์ ๋๋ค. โ์ ์์ง๋์ด๋ง๋ ์์คํ โ์ด๋ผ๋ ์๊ธฐ ํ๊ฐ๊ฐ ๊ณผ์ฅ์ด ์๋๋๋ค.
4. ์ ์งํ ํ๊ฐ. ์ ํ ์ค์ฒ์์์ ์คํจ, ๊ธด ์ค์บ์ ๋ฃจํ ์คํต ์ํฐํฉํธ, ๋ฐ๋ณต ํจํด์์์ ์ด์์น ๋ฃจํ๋ฅผ ์จ๊ธฐ์ง ์๊ณ ๋ณ๋ ์ (VII-A)์์ ๋ค๋ฃจ๋ฉฐ ๋ถ๋ถ ํด๋ฒ(GNC ๊ธฐ๋ฐ ํฌ์ฆ ๊ทธ๋ํ ์ต์ ํ)๊น์ง ์ ์ํฉ๋๋ค.
ํ๊ณ
1. ํ ์ค์ฒ ์์กด์ฑ์ด๋ผ๋ ๊ทผ๋ณธ ์ ์ฝ. ์์คํ ์ ์ฒด๊ฐ ๊ณก๋ฅ ๋งต์ ์๋ณ๋ ฅ์ ๊ธฐ๋๋๋ค. ๊ณก๋ฅ ์ ํ๋ฉด ๋ฌด๋ฌ์์ ๋์ต๋๋ค. ๋ฐ๋ผ์ ๊ทน์ ํ ์ค์ฒ ๋ฌผ์ฒด(๋งค๋ํ ๋ฌ๊ฑ, Ball, Cylinder)์์๋ ๋ฃจํ ๊ฒ์ถ์ด ์คํจํ๊ณ , ์ฌ์์น์ถ์ ์คํจ๋ก ๋ฉ์๊ฐ ์กฐ๊ฐ๋๊ฑฐ๋ ๊ตญ์ ๋ถ์ฐ์์ด ์๊น๋๋ค. ๋ ผ๋ฌธ ์ค์ค๋ก โ์ด๊ฐ๋ง์ผ๋ก๋ ๊ทน์ ํ ์ค์ฒ ๋ฌผ์ฒด์์ ์ด ํ๊ณ๋ฅผ ํ๊ธฐ ์ด๋ ต๋คโ๊ณ ์ธ์ ํฉ๋๋ค. ์์ ๋งค๋ํ ์ฐ์ ๋ถํ(๋ฒ ์ด๋ง, ๋ ์ฆ ๋ฑ)์ ๋ค๋ฃจ๋ ์์ฉ์์๋ ๊ทธ๋๋ก ์ฐ๊ธฐ ์ด๋ ต์ต๋๋ค.
2. ์ ํ๋ฉด ์ ์ด ๊ฐ์ . ๋ณต์ํ๋ ค๋ฉด ํ๋ฉด ์ ์ฒด๋ฅผ ์ค์ ๋ก ๋ง์ ธ์ผ ํฉ๋๋ค. Avocado 30๋ถ, ๋ฏธ์ ์ด ์์ญ ์ถ๋ก ์ด๋ ํ์ ์ฌ์ (prior) ์์. ์๋ ์ค์บ์ ์ด๋๋ฅผ ์ ๋ง์ก๋์ง ์๊ธฐ ์ด๋ ค์ ์ค๋ณต ํ์์ด ๋ฐ์ํฉ๋๋ค. ์์จ ํ์์ด๋ ํ์ ์์ฑ(shape completion)์ ๋ฏธ๋ ๊ณผ์ ๋ก ๋จ์์ต๋๋ค.
3. ๋ฐ๋ณต ํจํด ์ทจ์ฝ์ฑ. ์ฐ์ ์ ์กฐ๋ฌผ์ฒ๋ผ ํ๋ฉด ํจํด์ด ๋ฐ๋ณต๋๋ฉด ์๋ก ๋ค๋ฅธ ์์น์ ํ๋ ์์ ๊ฐ์ ๊ณณ์ผ๋ก ์ค์ธํ ์ ์์ต๋๋ค. GNC๊ฐ ๋ถ๋ถ ํด๋ฒ์ด์ง๋ง ๊ณ์ฐ ๋น์ฉ์ด ๋๊ณ ์ ํจ ๋ฃจํ๋ฅผ ๊ฐ๋ ๊ฑฐ๋ถํฉ๋๋ค.
4. ๋์ ์ ๋ณด ๋ฏธํ์ฉ. IMU, ๋ฑ์๋ ์ฌ์ , ๋ฌผ์ฒด ๋์ญํ ๋ชจ๋ธ ๊ฐ์ ์ฌ์ ์ ์ ํ ์ ์๋๋ค. ๊ณ ์ ๊ณต๋ถ์ฐ์ ์ด๋ค๋ ์ ๋ ํฅํ ์ ๋ฐํ ์ฌ์ง๋ฅผ ์์ฌํฉ๋๋ค. ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ณก๋ฅ ๋งต ํ ์์ ๊ฑฐ๋ ์ค๊ณ๋ ์ฐ์ํ์ง๋ง, ๊ทธ๋งํผ ๊ทธ ์์ด ๋ฌด๋์ง๋ฉด ๋์์ด ์์ต๋๋ค.
5. ์จ๋ผ์ธ ๋ณต์์ ์๊ฐ ํ๊ณ. 7~12๋ถ ์ค์บ์ ์จ๋ผ์ธ์ด ์คํ๋ผ์ธ๊ณผ ๊ฑฐ์ ์ผ์นํ์ง๋ง, 19๋ถ ์ค์บ์ ๋ฃจํ ์คํต ๋๋ฌธ์ ์ํฐํฉํธ๊ฐ ์๊น๋๋ค. ๋ค๋ง ์ค์๊ฐ ์ฃผ ์ฉ๋๊ฐ ์กฐ์์ฉ ํฌ์ฆ ์ถ์ (๋ณดํต 10๋ถ ์ด๋ด)์ด๋ผ ์ค์ฉ ์ํฅ์ ์ ํ์ ์ ๋๋ค.
๊ด๋ จ ์ฐ๊ตฌ์์ ๋น๊ต
์ด ๋ ผ๋ฌธ์ ์์น๋ฅผ ์ขํ ์์ ์ฐ์ด๋ณด๊ฒ ์ต๋๋ค.
flowchart TD
A[Tactile object perception] --> B[Known touch pose<br/>+ stationary object<br/>Bauza 2019, Comi 2024]
A --> C[Visuo-tactile<br/>vision for global context<br/>NeuralFeels, ShapeMap-3D, FingerSLAM]
A --> D[Tactile-only, short horizon<br/>NormalFlow, PatchGraph, Tac2Structure]
D --> E[GelSLAM:<br/>tactile-only, long horizon,<br/>tens of thousands of frames,<br/>zero false loops]
- NormalFlow (Huang et al. 2024): GelSLAM์ ์ถ์ ์์ง์ด์ ์ง์ ๋น๊ต ๋์. ์ ํํ์ง๋ง ์์ ๊ตญ์ ๋ฐฉ๋ฒ์ด๋ผ ์๊ธฐ ์คํจ๋ฅผ ๋ชจ๋ฅด๊ณ ์ฌ์์น์ถ์ ๋ ๋ชป ํฉ๋๋ค. GelSLAM์ ๊ทธ ์์ ์คํจ ๊ฒ์ถ + ๋ฃจํ ํด๋ก์ + ํฌ์ฆ ๊ทธ๋ํ๋ฅผ ์น์ด ์๋ฐฑ ํ๋ ์ ํ๊ณ๋ฅผ ์๋ง ํ๋ ์์ผ๋ก ๋์ด์ฌ๋ ธ์ต๋๋ค. ๊ด๊ณ๊ฐ ๋ช ํํฉ๋๋ค(์์ง vs ์์ฑ์ฐจ).
- PatchGraph / Sodhi et al.: ํ๋ ์ ๊ฐ ๋ณํ์ ICP๋ ํ์ต ์ธก์ ์ผ๋ก ์ป์ด ํฉํฐ ๊ทธ๋ํ์ ๋ฃ๋ ๊ณ์ด. GelSLAM์ ํํ ์ ๊ตฐ์ ICP ์ทจ์ฝ์ฑ์ ๋ฏธ๋ถ ํํ์ผ๋ก ์ฐํํฉ๋๋ค.
- Tac2Structure (Lu et al. 2023): ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒฝ์์(์ด๊ฐ ์ ์ฉ ํ SLAM). FPFH+RI ์ถ์ + CNN ์ฝ์ฌ์ธ ์ ์ฌ๋ ๋ฃจํ. ์คํ์์ ์ ํ ์ค์ฒ ์ถ์ ์ด ๋ฌด๋์ง๊ณ ๊ฑฐ์ง ๋ฃจํ๊ฐ ๋น๋ฐํด ๋ณต์์ด ์คํจํฉ๋๋ค. GelSLAM๊ณผ์ ๋๋น๊ฐ ๊ณง โ์ ๊ตฐ + ํ์ต ํน์งโ ๋ โ๋ฏธ๋ถ ํํ + ๊ธฐํ ๊ฒ์ฆโ์ ๋๋น์ ๋๋ค.
- NeuralFeels / ShapeMap-3D / FingerSLAM: ๋ชจ๋ ๋น์ ์ผ๋ก ์ ์ญ ๋งฅ๋ฝ์ ๋ณด๊ฐํ๋ visuo-tactile. GelSLAM์ ๋น์ ์์ด ๊ฐ์ ์์ค์ ์ ์ญ ์ผ๊ด์ฑ์ ๋ณด์๋ค๋ ์ ์์ ์ฐจ๋ณํ๋ฉ๋๋ค.
- ๊ณ ์ ๋น์ฃผ์ผ SLAM (ORB-SLAM, KinectFusion): ํคํ๋ ์/ํฌ์ฆ ๊ทธ๋ํ ๊ณจ๊ฒฉ์ ๊ณต์ ํ์ง๋ง, ํ์ค SLAM ๋ถํ์ด ์ด๊ฐ์ผ๋ก ์ง์ ์ด์๋์ง ์๋๋ค๋ ์ ์ GelSLAM์ด ๋ช ์ํฉ๋๋ค. ๊ณก๋ฅ ๋งต ๊ธฐ๋ฐ SIFT๋ ๊ทธ ๋น์ด์์ฑ์ ํธ๋ ์ด๊ฐ ์ ์ฉ ์ฌ์ค๊ณ์ ๋๋ค.
์ธํธ๋ ์กฐ์ ์ฐ๊ตฌ์์๊ฒ ์ฃผ๋ ํจ์
์ด ๋ถ๋ถ์ ๋ฆฌ๋ทฐ์ ๋ฒ์๋ฅผ ๋์ง๋ง, ์ง์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ธํธ๋ ์กฐ์์์ ๋น์ ์ ์๊ณผ ๋ฌผ์ฒด์ ์๊ฐ ๊ฐ๋ฆผ(self-occlusion)์ผ๋ก ์์ฃผ ๋ฌด๋ ฅํ๋ฉ๋๋ค. GelSLAM์ด ๋ณด์ธ ๊ฒ์, ์๊ฐ๋ฝ ๋ ์ด๊ฐ ์ผ์๋ง์ผ๋ก ๋ฌผ์ฒด ํฌ์ฆ๋ฅผ 1mm ๋ฏธ๋ง ์ค์ฐจ๋ก ์ฅ๊ธฐ ์ถ์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค(Allegro Hand ๊ฐ์ ๋ค์ง ์์ DIGIT/GelSight๋ฅผ ๋ถ์ด๋ ์ ์ ๊ณผ ์ง์ ์ฐ๊ฒฐ๋ฉ๋๋ค).
๋ค๋ง ์ค์ฉํ์๋ ๊ฑฐ๋ฆฌ๊ฐ ์์ต๋๋ค. ํ์ฌ ์ ์ ์ ๋จ์ผ ์ผ์๋ก ํ๋ฉด์ ํ๋ ์๋๋ฆฌ์ค์ ๋๋ค. ์ธํธ๋ ์กฐ์์ ์ฌ๋ฌ ์๊ฐ๋ฝ์ด ๋์์, ๋ฏธ๋๋ฌ์ง๋ฉฐ, ๋์์์ด ์ ์ด์ ์ฌํ์ฑํฉ๋๋ค. ๋ ผ๋ฌธ๋ ๋ค์ง ์ด๊ฐ ํ์ฅ์ ๋ฏธ๋ ๊ณผ์ ๋ก ๋ช ์ํฉ๋๋ค. ๊ทธ๋ผ์๋ โ์ ์ด์ด ๋๊ฒผ๋ค ์ฌ๊ฐ๋ผ๋ ์ฌ์์น์ถ์ ํ๋คโ๋ ๋ฅ๋ ฅ์ ์กฐ์ ์ค ์๊ฐ๋ฝ ๊ฒ์ดํ (finger gaiting)์ด๋ ์ฌํ์ง(regrasp) ์ํฉ์ ์ง์ ๋์ํ๋ ์ฑ์ง์ ๋๋ค. ์๋ฎฌ๋ ์ด์ ๊ด์ ์์๋, TACTO ๊ฐ์ ์ด๊ฐ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ฒ์ ๋งต์ ์ถ๋ ฅํ๋ฏ๋ก GelSLAM์ ๋ฏธ๋ถ ํํ ํ์ดํ๋ผ์ธ์ sim ๋ฐ์ดํฐ์ ๊ทธ๋๋ก ์ ์ฉํด sim-to-real ์ถ์ ์ผ๊ด์ฑ์ ์ ๊ฒํ๋ ์คํ์ ์ค๊ณํด๋ณผ ๋งํฉ๋๋ค.
์์ฝ ๋ฐ ๊ฒฐ๋ก
ํ ๋ฌธ์ฅ์ผ๋ก ์ค์ด๋ฉด ์ด๋ ์ต๋๋ค. GelSLAM์ โ์ด๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ ๊ตฐ์ด ์๋๋ผ ๋ฏธ๋ถ ํํ(๋ฒ์ ๋งต + ๊ณก๋ฅ ๋งต)์ผ๋ก ๋ค๋ฃจ๋ผโ๋ ํ ๊ฐ์ง ํต์ฐฐ์, ๊ฒ์์ฉ ๋ถ๋ณ๋(๊ณก๋ฅ )๊ณผ ์ ๋ ฌ์ฉ ์ ๋ฐ๋(๋ฒ์ )์ ๋ถ์ ์ผ๋ก ๊ตฌ์ฒดํํด, ์ธ๋ถ ๋จ์ ์์ด ์๋ง ํ๋ ์ ๊ท๋ชจ์ ์ด๊ฐ ์ ์ฉ SLAM์ ๊ฑฐ์ง ๋ฃจํ 0๊ฐ๋ก ๋ฌ์ฑํ ์์คํ ์ ๋๋ค.
๊ธฐ์ฌ๋ฅผ ์ ๋ฆฌํ๋ฉด:
- NormalFlow ์คํจ ๊ฒ์ถ(CCS/SCR): ๋ ์ค์ง๋ฆฌ ์๊ฐ ์ง๋จ์ผ๋ก ์กฐ์ฉํ ์คํจ๋ฅผ ์ก์๋. ์์คํ ๊ฒฌ๊ณ ์ฑ์ ํต์ฌ.
- ๊ณก๋ฅ ๋งต ๊ธฐ๋ฐ ํคํ๋ ์ ์ ์ : ๋จ์ผ NormalFlow ์คํ์ผ๋ก ๋๋ฆฌํํธ์ ๊ณ์ฐ์ ๋์์ ์ ๊ฐ(์ ํ ๋๋น 2๋ฐฐ ๋น ๋ฆ).
- 2๋จ๊ณ ๋ฃจํ ๊ฒ์ถ: ๊ณก๋ฅ ๋งต SIFT(๋น ๋ฅธ ๋ถ๋ณ ๊ฒ์) + NormalFlow(์ ๋ฐ 6DoF) + CCS/SCR(๊ธฐํ ๊ฒ์ฆ)์ ์ง๋ ฌ ๊ฒฐํฉ. ์ด๋ ํ ๋จ๊ณ๋ ๋จ๋ ์ผ๋ก๋ ๋ถ์ถฉ๋ถํจ์ ์ ์ ์คํ์ด ์ฆ๋ช .
- ์์คํ ํตํฉ: CPU ๋ ธํธ๋ถ ์ค์๊ฐ, ์๋ธ๋ฐ๋ฆฌ๋ฏธํฐ Chamfer Distance, ์ฝ๋/๋ฐ์ดํฐ ๊ณต๊ฐ.
์ด๊ฐ์ด ๋ณธ์ง์ ์ผ๋ก ๊ตญ์ ๋ชจ๋ฌ๋ฆฌํฐ๋ผ๋ ํต๋ ์, โ๋ถ๋ณ ํํ์ผ๋ก ๊ฒ์ํ๊ณ ์ ๋ฐ ํํ์ผ๋ก ์ ๋ ฌํ๋คโ๋ ํํ ์ค๊ณ ํ๋๋ก ๊นฌ ์ ์ด ์ด ๋ ผ๋ฌธ์ ๊ฐ์ฅ ํฐ ๋ฏธ๋์ ๋๋ค. ์ข์ ํํ์ ๊ณ ๋ฅด๋ฉด ์๊ณ ๋ฆฌ์ฆ์ด ๋จ์ํด์ง๊ณ , ๋จ์ํ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฒฌ๊ณ ํด์ง๋ค๋ ์ค๋๋ ๊ตํ์ ์ด๊ฐ SLAM์์ ๋ค์ ํ์ธ์์ผ ์ค๋๋ค. ํ๊ณ(ํ ์ค์ฒ ์์กด, ์ ํ๋ฉด ์ ์ด, ๋์ ์ ๋ณด ๋ฏธํ์ฉ)๋ ๋ถ๋ช ํ์ง๋ง, ๊ทธ ํ๊ณ์กฐ์ฐจ ๋ค์ ์ฐ๊ตฌ๊ฐ ์ด๋๋ฅผ ํ์ผ ํ๋์ง๋ฅผ ์ ํํ ๊ฐ๋ฆฌํต๋๋ค. ์ด๊ฐ์ ๊ตญ์ ์ผ์์์ ์ ์ญ ๊ณต๊ฐ ์ดํด์ ๋๊ตฌ๋ก ๋์ด์ฌ๋ฆฌ๋ ์ถ๋ฐ์ ์ผ๋ก์, ํ์ ์ฐ๊ตฌ๊ฐ ๋๊ณ ์ค ๋งํ ๋จ๋จํ ํ ๋์ ๋๋ค.