Curieux.JY
  • JungYeon Lee
  • Post
  • Lecture
  • Note

On this page

  • ๐Ÿ” Ping Review
  • ๐Ÿ”” Ring Review
    • GelSLAM ๋ฆฌ๋ทฐ: ์ด‰๊ฐ๋งŒ์œผ๋กœ ๋ฌผ์ฒด๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋ณต์›ํ•˜๋Š” SLAM
    • ์„œ๋ก : ์™œ ์ด‰๊ฐ SLAM์ด ์–ด๋ ค์šด๊ฐ€
      • ๋ฌธ์ œ์˜ ๋ณธ์งˆ, โ€œ์žฅ๋‹˜๊ณผ ์ฝ”๋ผ๋ฆฌโ€
      • ์™œ point cloud์œผ๋กœ๋Š” ์•ˆ ๋˜๋Š”๊ฐ€
    • ํ•ต์‹ฌ ์•„์ด๋””์–ด: ๋‘ ๊ฐœ์˜ ๋ฏธ๋ถ„ ํ‘œํ˜„
      • 1์ฐจ ํ‘œํ˜„: ๋ฒ•์„ ๋งต (Surface Normal Map)
      • 2์ฐจ ํ‘œํ˜„: ๊ณก๋ฅ ๋งต (Surface Curvature Map)
    • ๋ฐฉ๋ฒ•: ์„ธ ๋ชจ๋“ˆ์˜ ํ•ด๋ถ€
      • ๋ชจ๋“ˆ 1: ํŠธ๋ž˜ํ‚น (Tracking Module)
      • ๋ชจ๋“ˆ 2: ๋ฃจํ”„ ํด๋กœ์ € (Loop Closure Module)
      • ๋ชจ๋“ˆ 3: ๋ณต์› (Reconstruction Module)
    • ์‹คํ—˜: ๋ฌด์—‡์„ ์ธก์ •ํ–ˆ๊ณ  ๋ฌด์—‡์ด ๋“œ๋Ÿฌ๋‚ฌ๋‚˜
      • ์‹คํ—˜ 1: ์žฅ๊ธฐ ์ถ”์ 
      • ์‹คํ—˜ 2: 3D ๋ณต์›
    • ๋น„ํŒ์  ๊ณ ์ฐฐ: ๊ฐ•์ ๊ณผ ํ•œ๊ณ„
      • ๊ฐ•์ 
      • ํ•œ๊ณ„
    • ๊ด€๋ จ ์—ฐ๊ตฌ์™€์˜ ๋น„๊ต
    • ์ธํ•ธ๋“œ ์กฐ์ž‘ ์—ฐ๊ตฌ์ž์—๊ฒŒ ์ฃผ๋Š” ํ•จ์˜
    • ์š”์•ฝ ๋ฐ ๊ฒฐ๋ก 

๐Ÿ“ƒGelSLAM

slam
tactile
gelsight
A Real-Time, High-Fidelity, and Robust 3D Tactile SLAM System
Published

May 18, 2026

  • Project Page
  • Paper Link
  • Code Link
  • Dataset Link
  1. ๐Ÿค– GelSLAM์€ ์ด‰๊ฐ ์„ผ์‹ฑ๋งŒ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฌผ์ฒด ํฌ์ฆˆ ์ถ”์  ๋ฐ ๊ณ ํ’ˆ์งˆ 3D ํ˜•ํƒœ ์žฌ๊ตฌ์„ฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฌ๊ณ ํ•œ SLAM ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
  2. ๐Ÿ’ก ์ด ์‹œ์Šคํ…œ์€ ๊ธฐ์กด์˜ point cloud ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹ ๋Œ€์‹ , NormalFlow์˜ failure detection, keyframe selection, ๊ทธ๋ฆฌ๊ณ  loop detection์„ ์œ„ํ•ด tactile-derived surface normals ๋ฐ curvatures์™€ ๊ฐ™์€ differential representations๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ๐Ÿš€ 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์€ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  1. ์ถ”์  ๋ชจ๋“ˆ(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)์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฃจํ”„ ํ์‡„ ๋ชจ๋“ˆ(Loop Closure Module):
    • ์ ์šฉ ๋ฒ”์œ„ ํ‚คํ”„๋ ˆ์ž„(Coverage Keyframes): ๋ฃจํ”„ ๊ฐ์ง€ ์‹œ ์˜จ๋ผ์ธ ๊ณ„์‚ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ด์ „์— ์Šค์บ”๋œ ๋ชจ๋“  ์ ‘์ด‰ ์˜์—ญ์„ ํฌ๊ด„ํ•˜๋Š” ํ‚คํ”„๋ ˆ์ž„์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ(coverage set)์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฃจํ”„๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฃจํ”„ ๊ฐ์ง€(Loop Detection): ์ƒˆ๋กœ ์„ ํƒ๋œ ํ‚คํ”„๋ ˆ์ž„๊ณผ ์ ์šฉ ๋ฒ”์œ„ ํ‚คํ”„๋ ˆ์ž„ ๊ฐ„์˜ ์žฌ๋ฐฉ๋ฌธ(revisit)์„ ๋‘ ๋‹จ๊ณ„๋กœ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
      1. SIFT ํŠน์ง• ๋งค์นญ: ๊ณก๋ฅ  ๋งต์—์„œ SIFT ํŠน์ง•(SIFT features)์„ ์ถ”์ถœํ•˜๊ณ  ๋งค์นญํ•˜์—ฌ ์ดˆ๊ธฐ 2D ๋ณ€ํ™˜์„ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค. RANSAC์œผ๋กœ ์•„์›ƒ๋ผ์ด์–ด(outlier)๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , 8๊ฐœ ์ด์ƒ์˜ ์ธ๋ผ์ด์–ด(inlier) ๋งค์นญ์ด ์žˆ๋Š” ์Œ์„ ๋ฃจํ”„ ํ›„๋ณด๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
      2. 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]์œผ๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  3. ์žฌ๊ตฌ์„ฑ ๋ชจ๋“ˆ(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์€ ์„ธ ๋ชจ๋“ˆ์„ ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค๋กœ ๋ณ‘๋ ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ์„ ๋จผ์ € ๊ทธ๋ฆผ์œผ๋กœ ๋ด…์‹œ๋‹ค.

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]

๋ชจ๋“ˆ 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 ํ”„๋ฆฐํŒ… ๋ฌผ์ฒด์—์„œ๋งŒ ํ†ตํ•˜๋˜ ๋ฐฉ๋ฒ•์˜ ํ•œ๊ณ„๋ฅผ ์ •์งํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.

์ ˆ์ œ ์‹คํ—˜์˜ ๊ตํ›ˆ. ์„ธ ๊ฐ€์ง€ ์„ค๊ณ„ ๊ฒฐ์ •์ด ๊ฐ๊ฐ ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค.

  1. ํ‚คํ”„๋ ˆ์ž„ ์„ ์ •: NF-KF๊ฐ€ NF๋ณด๋‹ค ๋‚ซ๊ณ (๋“œ๋ฆฌํ”„ํŠธ ๊ฐ์†Œ), NF-OrigKF์™€ ๋น„์Šทํ•œ ์ •ํ™•๋„๋ฅผ 2๋ฐฐ ๋น ๋ฅด๊ฒŒ ๋‹ฌ์„ฑ(ํ”„๋ ˆ์ž„๋‹น NormalFlow 1ํšŒ).
  2. ๋ฃจํ”„ ๊ฒ€์ถœ: GS-OnlySIFT(SIFT๋งŒ)๋Š” ์ด์ƒ์น˜ ๋ฃจํ”„ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค NF-KF๋ณด๋‹ค ๋‚˜๋น ์งˆ ์ˆ˜ ์žˆ์Œ. GS-OnlyNF(NF๋งŒ)๋Š” CCS/SCR ๋•์— ์ด์ƒ์น˜๋ฅผ ๊ฑฐ๋ฅด๋ฏ€๋กœ ๋‚ซ์ง€๋งŒ, ์ข‹์€ ์ดˆ๊ธฐ๊ฐ’์ด ์—†์–ด ์œ ํšจ ๋ฃจํ”„๋ฅผ ๋†“์น˜๊ณ  ์•ฝ 40๋ฐฐ ๋А๋ฆผ. 2๋‹จ๊ณ„ ๊ฒฐํ•ฉ(GS-Offline)์ด ์ตœ์„ .
  3. 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๊ฐœ๋กœ ๋‹ฌ์„ฑํ•œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

๊ธฐ์—ฌ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด:

  1. NormalFlow ์‹คํŒจ ๊ฒ€์ถœ(CCS/SCR): ๋‘ ์ค„์งœ๋ฆฌ ์ž๊ฐ€ ์ง„๋‹จ์œผ๋กœ ์กฐ์šฉํ•œ ์‹คํŒจ๋ฅผ ์žก์•„๋ƒ„. ์‹œ์Šคํ…œ ๊ฒฌ๊ณ ์„ฑ์˜ ํ•ต์‹ฌ.
  2. ๊ณก๋ฅ ๋งต ๊ธฐ๋ฐ˜ ํ‚คํ”„๋ ˆ์ž„ ์„ ์ •: ๋‹จ์ผ NormalFlow ์‹คํ–‰์œผ๋กœ ๋“œ๋ฆฌํ”„ํŠธ์™€ ๊ณ„์‚ฐ์„ ๋™์‹œ์— ์ ˆ๊ฐ(์„ ํ–‰ ๋Œ€๋น„ 2๋ฐฐ ๋น ๋ฆ„).
  3. 2๋‹จ๊ณ„ ๋ฃจํ”„ ๊ฒ€์ถœ: ๊ณก๋ฅ ๋งต SIFT(๋น ๋ฅธ ๋ถˆ๋ณ€ ๊ฒ€์ƒ‰) + NormalFlow(์ •๋ฐ€ 6DoF) + CCS/SCR(๊ธฐํ•˜ ๊ฒ€์ฆ)์˜ ์ง๋ ฌ ๊ฒฐํ•ฉ. ์–ด๋А ํ•œ ๋‹จ๊ณ„๋„ ๋‹จ๋…์œผ๋กœ๋Š” ๋ถˆ์ถฉ๋ถ„ํ•จ์„ ์ ˆ์ œ ์‹คํ—˜์ด ์ฆ๋ช….
  4. ์‹œ์Šคํ…œ ํ†ตํ•ฉ: CPU ๋…ธํŠธ๋ถ ์‹ค์‹œ๊ฐ„, ์„œ๋ธŒ๋ฐ€๋ฆฌ๋ฏธํ„ฐ Chamfer Distance, ์ฝ”๋“œ/๋ฐ์ดํ„ฐ ๊ณต๊ฐœ.

์ด‰๊ฐ์ด ๋ณธ์งˆ์ ์œผ๋กœ ๊ตญ์†Œ ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ๋ผ๋Š” ํ†ต๋…์„, โ€œ๋ถˆ๋ณ€ ํ‘œํ˜„์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ •๋ฐ€ ํ‘œํ˜„์œผ๋กœ ์ •๋ ฌํ•œ๋‹คโ€๋Š” ํ‘œํ˜„ ์„ค๊ณ„ ํ•˜๋‚˜๋กœ ๊นฌ ์ ์ด ์ด ๋…ผ๋ฌธ์˜ ๊ฐ€์žฅ ํฐ ๋ฏธ๋•์ž…๋‹ˆ๋‹ค. ์ข‹์€ ํ‘œํ˜„์„ ๊ณ ๋ฅด๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‹จ์ˆœํ•ด์ง€๊ณ , ๋‹จ์ˆœํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฒฌ๊ณ ํ•ด์ง„๋‹ค๋Š” ์˜ค๋ž˜๋œ ๊ตํ›ˆ์„ ์ด‰๊ฐ SLAM์—์„œ ๋‹ค์‹œ ํ™•์ธ์‹œ์ผœ ์ค๋‹ˆ๋‹ค. ํ•œ๊ณ„(ํ…์Šค์ฒ˜ ์˜์กด, ์ „ ํ‘œ๋ฉด ์ ‘์ด‰, ๋™์  ์ •๋ณด ๋ฏธํ™œ์šฉ)๋Š” ๋ถ„๋ช…ํ•˜์ง€๋งŒ, ๊ทธ ํ•œ๊ณ„์กฐ์ฐจ ๋‹ค์Œ ์—ฐ๊ตฌ๊ฐ€ ์–ด๋””๋ฅผ ํŒŒ์•ผ ํ•˜๋Š”์ง€๋ฅผ ์ •ํ™•ํžˆ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ด‰๊ฐ์„ ๊ตญ์†Œ ์„ผ์„œ์—์„œ ์ „์—ญ ๊ณต๊ฐ„ ์ดํ•ด์˜ ๋„๊ตฌ๋กœ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ์ถœ๋ฐœ์ ์œผ๋กœ์„œ, ํ›„์† ์—ฐ๊ตฌ๊ฐ€ ๋”›๊ณ  ์„ค ๋งŒํ•œ ๋‹จ๋‹จํ•œ ํ† ๋Œ€์ž…๋‹ˆ๋‹ค.

Copyright 2026, JungYeon Lee