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

On this page

  • ๐Ÿ” Ping Review
  • ๐Ÿ”” Ring Review
    • ์„œ๋ก 
      • ์™œ ์ ‘์ด‰(contact) ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์–ด๋ ค์šด๊ฐ€
      • ๊ธฐ์กด ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ์˜ ๋ฐœ๋ชฉ์„ ์žก๋˜ ๊ฒƒ
    • ๋ฐฉ๋ฒ•
      • A. ๋“ฑ์••๋ฉด ์ƒ์„ฑ (Isosurface Generation)
      • B. ์ ‘์ด‰ ์ด์‚ฐํ™” (Contact Discretization)
      • C. ์ ‘์ด‰ ์ถ•์†Œ์™€ ๋ Œ์น˜ ๋งค์นญ (Contact Reduction & Wrench Matching)
    • ์‹คํ—˜
      • ์‘์šฉ 1: ์ด‰๊ฐ ์„ผ์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (๊ทธ๋ฆผ 3)
      • ์‘์šฉ 2: ๋ฉด์  ๋ถ„ํ•ด ์ ‘์ด‰ ๋™์—ญํ•™์˜ ์ •์„ฑ ๊ฒ€์ฆ (๊ทธ๋ฆผ 4)
    • ๋น„ํŒ์  ๊ณ ์ฐฐ
      • ๊ฐ•์ 
      • ์•ฝ์ ยทํ•œ๊ณ„
      • ๊ด€๋ จ ์—ฐ๊ตฌ์™€์˜ ๋น„๊ต
    • ์š”์•ฝ ๋ฐ ๊ฒฐ๋ก 

๐Ÿ“ƒGPU-Accelerated Hydroelastic Contact

simulation
contact
gpu
GPU-Accelerated Hydroelastic Contact via Signed Distance Fields
Published

April 6, 2026

  • Paper Link

๐Ÿ” Ping Review

๐Ÿ” Ping โ€” A light tap on the surface. Get the gist in seconds.


๐Ÿ”” Ring Review

๐Ÿ”” Ring โ€” An idea that echoes. Grasp the core and its value.

์„œ๋ก 

์™œ ์ ‘์ด‰(contact) ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์–ด๋ ค์šด๊ฐ€

๋กœ๋ด‡ ๋งค๋‹ˆํ“ฐ๋ ˆ์ด์…˜์—์„œ โ€œ๋ฌผ์ฒด๋ฅผ ์žก๊ณ , ๋ผ์šฐ๊ณ , ๋ฐ€๊ณ , ๊ตด๋ฆฌ๋Š”โ€ ๊ฑฐ์˜ ๋ชจ๋“  ๋™์ž‘์€ ์ ‘์ด‰์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ์ ‘์ด‰์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์ ‘์ด‰์„ ์–ผ๋งˆ๋‚˜ ์‚ฌ์‹ค์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๋А๋ƒ๊ฐ€ sim-to-real ๊ฒฉ์ฐจ์˜ ํ•ต์‹ฌ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ ‘์ด‰์„ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•˜๋Š” ์ผ์€ ์ƒ๊ฐ๋ณด๋‹ค ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋ฐฉ์‹์€ ์  ์ ‘์ด‰(point contact) ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฌผ์ฒด๊ฐ€ ๋‹ฟ์œผ๋ฉด ๋ช‡ ๊ฐœ์˜ ๋Œ€ํ‘œ ์ ์—์„œ ํž˜์„ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์ด์ฃ . ๋น ๋ฅด๊ธด ํ•˜์ง€๋งŒ, ์‹ค์ œ ์ ‘์ด‰์ด ๊ฐ€์ง€๋Š” ๋ฉด์  ์˜์กด ํšจ๊ณผ(area-dependent effects) ๋ฅผ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋„“์€ ๋ฉด์œผ๋กœ ๋ˆ„๋ฅด๋ฉด ํšŒ์ „์„ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋ง‰์•„์ฃผ๋Š” ๋งˆ์ฐฐ(๋น„ํ‹€๋ฆผ ๋งˆ์ฐฐ, torsional friction)์ด ์ƒ๊ธฐ๋Š”๋ฐ, ์  ์ ‘์ด‰์€ ์ด๋Ÿฐ ๊ฑธ ์žก์•„๋‚ด์ง€ ๋ชปํ•˜๊ณ  ์ข…์ข… ์ด์ƒํ•œ ์•„ํ‹ฐํŒฉํŠธ(ํŠ€๋Š” ํž˜, ์ง„๋™)๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์ ‘์ด‰(hydroelastic contact) ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ํ•œ ์ค„๋กœ ๋น„์œ ํ•˜์ž๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

โ€œ๋‘ ๋ฌผ์ฒด๊ฐ€ ์„œ๋กœ ํŒŒ๊ณ ๋“ค๋ฉด, ๊ทธ ๊ฒน์น˜๋Š” ๋ถ€ํ”ผ ์•ˆ์—์„œ ์••๋ ฅ์ด ํ‰ํ˜•์„ ์ด๋ฃจ๋Š” ๋ฉด์„ ์ฐพ์•„ ๊ทธ ๋ฉด ์ „์ฒด์— ๋ถ„ํฌ๋œ ํž˜์„ ๋งค๊ธด๋‹ค.โ€

์ฆ‰, ํ•œ ์ ์ด ์•„๋‹ˆ๋ผ ์ ‘์ด‰ ํŒจ์น˜(contact patch) ์ „์ฒด๋ฅผ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฌผ์ฒด ๋‚ด๋ถ€์— ๊ฐ€์ƒ์˜ ์••๋ ฅ์žฅ(pressure field)์„ ์ •์˜ํ•˜๊ณ , ๋‘ ๋ฌผ์ฒด๊ฐ€ ๊ฒน์ณค์„ ๋•Œ ์–‘์ชฝ ์••๋ ฅ์ด ๊ฐ™์•„์ง€๋Š” ๋ฉด์„ ์ ‘์ด‰๋ฉด์œผ๋กœ ๋ด…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด (1) ์ ‘์ด‰ ํ˜•์ƒ์ด ์กฐ๊ธˆ ๋ณ€ํ•  ๋•Œ ํž˜์ด ๋งค๋„๋Ÿฝ๊ฒŒ(continuously) ๋ณ€ํ•˜๊ณ , (2) ์ ‘์ด‰๋ฉด์˜ ๊ณต๊ฐ„์  ๋„“์ด๊ฐ€ ํ•ฉ๋ ฅ/ํ•ฉ๋ชจ๋ฉ˜ํŠธ(net wrench)์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ์˜ ๋ฐœ๋ชฉ์„ ์žก๋˜ ๊ฒƒ

ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ๋ชจ๋ธ์€ Drake ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž˜ ์•Œ๋ ค์ง„ ๊ตฌํ˜„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์‹ค์  ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์••๋ ฅ์žฅ์„ ์‚ฌ๋ฉด์ฒด ๋ฉ”์‹œ(tetrahedral mesh) ์œ„์— ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ณผ๋ก(convex) ํ˜•์ƒ์€ ์ž๋™ ์ƒ์„ฑ์ด ๋˜์ง€๋งŒ, ๋น„๋ณผ๋ก(non-convex) ๋ฌผ์ฒด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ VTK ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถฉ๋Œ ์‹œ ๊ต์ฐจํ•˜๋Š” ์‚ฌ๋ฉด์ฒด ์Œ์„ ์ฐพ์•„ ๊ต์ฐจ ํ‰๋ฉด์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋ฉ”์‹œ ํ•ด์ƒ๋„๊ฐ€ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ์ด ๋น„์šฉ์ด ํญ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋””ํ…Œ์ผ์ด ๋งŽ์€ ํ˜•์ƒ๊ณผ ์ ‘์ด‰์ด ๋นˆ๋ฒˆํ•œ ์ž‘์—…(์กฐ๋ฆฝ ๋“ฑ)์—์„œ ํ™•์žฅ์„ฑ(scalability) ์ด ๋‚˜๋น ์ง‘๋‹ˆ๋‹ค.

์ด ๋…ผ๋ฌธ์€ ๋ฐ”๋กœ ์ด ์ง€์ ์„ ๊ณต๋žตํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์ฃผ์žฅ์€ ๋ช…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋ฉด์ฒด ๋ฉ”์‹œ๋ฅผ ๋ฒ„๋ฆฌ๊ณ , ๋ชจ๋“  ๊ฒƒ์„ ๋ถ€ํ˜ธ ๊ฑฐ๋ฆฌ์žฅ(Signed Distance Field, SDF) ์œ„์—์„œ ๊ณ„์‚ฐํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  ์ „ ๊ณผ์ •์„ GPU์—์„œ ๋ณ‘๋ ฌ๋กœ ๋Œ๋ฆฌ์ž.

SDF๋Š” ๊ณต๊ฐ„์˜ ๊ฐ ์ ์—์„œ โ€œ๋ฌผ์ฒด ํ‘œ๋ฉด๊นŒ์ง€์˜ ๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฑฐ๋ฆฌโ€๋ฅผ ์ฃผ๋Š” ํ•จ์ˆ˜ \phi(\mathbf{x}) ์ž…๋‹ˆ๋‹ค. ๋ฌผ์ฒด ์•ˆ์ด๋ฉด \phi < 0, ๋ฐ–์ด๋ฉด \phi > 0 ์ด์ฃ . SDF๋Š” ์ž„์˜์˜ ๋ณต์žกํ•œ ํ˜•์ƒ์„ ๊ทœ์น™์ ์ธ ๊ฒฉ์ž(grid) ์œ„์— ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฒฉ์ž ๊ธฐ๋ฐ˜์ด๋ผ GPU ๋ณ‘๋ ฌํ™”์— ์ฒœ์„ฑ์ ์œผ๋กœ ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค. ์ €์ž๋“ค์€ ์ด SDF ํ‘œํ˜„์˜ ๊ธฐํ•˜ํ•™์  ์ผ๋ฐ˜์„ฑ๊ณผ ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ์˜ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ทผ๊ฑฐ ์žˆ๋Š” ๋ถ„์‚ฐ ํž˜ ๋ชจ๋ธ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์ž‘์—…์€ NVIDIA์˜ ์˜คํ”ˆ์†Œ์Šค GPU ๋ฌผ๋ฆฌ์—”์ง„ Newton ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€๋กœ ํ†ตํ•ฉ๋˜์—ˆ์œผ๋ฉฐ, IEEE ICRA 2026 ์›Œํฌ์ˆ(CR2)์—์„œ oral ๋ฐœํ‘œ๋กœ ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ•

์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ์€ ํฌ๊ฒŒ ์„ธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 1(๋…ผ๋ฌธ)์€ ๊ตฌ(sphere) ๋‘ ๊ฐœ๊ฐ€ ์ถฉ๋Œํ•˜๋Š” ์˜ˆ์‹œ๋กœ ์ด ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•˜๋Š”๋ฐ, ํ…์ŠคํŠธ๋กœ ํ’€์–ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • (A) ๋“ฑ์••๋ฉด(isopressure surface) ์ถ”์ถœ: ๊ฒน์นœ ์˜์—ญ ์•ˆ์—์„œ ์–‘์ชฝ ์••๋ ฅ์ด ๊ฐ™์•„์ง€๋Š” ๋ฉด์„ SDF๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ๋ฝ‘์•„ ์‚ผ๊ฐํ˜• ๋ฉ”์‹œ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ๋Š” ๊ฒฉ์ž ์…€ ์•ˆ์— ์ž‘๊ณ  ๋‚ฉ์ž‘ํ•œ ์ƒ‰์น ๋œ ๋ฉด์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  • (B) ์ ‘์ด‰ ์ด์‚ฐํ™”(discretization): ๊ทธ ๋ฉด์˜ ๊ฐ ์‚ผ๊ฐํ˜•๋งˆ๋‹ค ์••๋ ฅ์— ๋น„๋ก€ํ•˜๋Š” ํž˜ ํ™”์‚ดํ‘œ๊ฐ€ ์†Ÿ์•„์˜ค๋ฆ…๋‹ˆ๋‹ค(๋ถ„ํฌ๋œ ํž˜์žฅ).
  • (C) ์ ‘์ด‰ ์ถ•์†Œ(reduction): ์ˆ˜๋ฐฑ ๊ฐœ์˜ ํž˜ ํ™”์‚ดํ‘œ๋ฅผ, ๊ฐ™์€ ํ•ฉ๋ ฅ/ํ•ฉ๋ชจ๋ฉ˜ํŠธ๋ฅผ ๋‚ด๋Š” ์†Œ์ˆ˜์˜ ๋Œ€ํ‘œ ํ™”์‚ดํ‘œ๋กœ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ์—์„œ๋Š” 274๊ฐœ โ†’ 17๊ฐœ).

flowchart TD
    A["Two objects A and B<br/>each as grid-sampled SDF"] --> B["Stiffness-weighted SDF difference<br/>g(x) = kA*phiA(x) - kB*phiB(x)"]
    B --> C["Hierarchical pruning<br/>find isovoxels containing g=0"]
    C --> D["Marching cubes on isovoxels<br/>--> triangle mesh of contact surface S"]
    D --> E["Per-triangle contact point<br/>(position, normal, depth, k_eff)"]
    E --> F["Contact reduction<br/>normal binning + spatial selection<br/>+ wrench/moment matching"]
    F --> G["Compact contact set<br/>--> downstream solver (XPBD / MuJoCo)"]

A. ๋“ฑ์••๋ฉด ์ƒ์„ฑ (Isosurface Generation)

๊ฐ ๋ฌผ์ฒด์˜ ํ˜•์ƒ์€ ์ •์œก๋ฉด์ฒด ๋ณต์…€(voxel)๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทœ์น™ ๊ฒฉ์ž ์œ„์— ์ƒ˜ํ”Œ๋ง๋œ SDF \phi(\mathbf{x}) ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋‘ ์ถฉ๋Œ ๋ฌผ์ฒด A, B ๊ฐ€ ๊ฐ๊ฐ SDF \phi_A(\mathbf{x}), \phi_B(\mathbf{x}) ์™€ ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ๊ฐ•์„ฑ(hydroelastic moduli) k_A, k_B ๋ฅผ ๊ฐ€์ง„๋‹ค๊ณ  ํ•  ๋•Œ, ๊ฐ•์„ฑ ๊ฐ€์ค‘ ์ฐจ์ด์žฅ(stiffness-weighted difference field) ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

g(\mathbf{x}) = k_A\,\phi_A(\mathbf{x}) - k_B\,\phi_B(\mathbf{x}). \tag{1}

์ง๊ด€์ ์œผ๋กœ ํ’€๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ๋ชจ๋ธ์—์„œ ์••๋ ฅ์€ ํ‘œ๋ฉด์—์„œ ์•ˆ์ชฝ์œผ๋กœ ๋“ค์–ด๊ฐˆ์ˆ˜๋ก(์นจํˆฌ ๊นŠ์ด์— ๋น„๋ก€ํ•ด์„œ) ์„ ํ˜•์œผ๋กœ ์ปค์ง„๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. -\phi ๊ฐ€ ๊ณง ์นจํˆฌ ๊นŠ์ด ๊ฐ™์€ ์–‘์ด๋ฏ€๋กœ k\,\phi ๋Š” ๋ถ€ํ˜ธ๋ฅผ ๋ฐ”๊พธ๋ฉด โ€œ๊ทธ ๋ฌผ์ฒด๊ฐ€ ๊ทธ ์ง€์ ์—์„œ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์••๋ ฅโ€์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฌผ์ฒด์˜ ์••๋ ฅ์ด ๊ฐ™์•„์ง€๋Š” ๋ฉด, ์ฆ‰ ๋“ฑ์••๋ฉด์€ k_A\phi_A = k_B\phi_B ์ธ ๊ณณ์ด๊ณ , ์ด๋Š” ๊ณง g(\mathbf{x}) = 0 ์ธ ์˜-๋ ˆ๋ฒจ์…‹(zero-level set) ์ž…๋‹ˆ๋‹ค. ๊ฐ•์„ฑ์ด ํฐ ๋‹จ๋‹จํ•œ ๋ฌผ์ฒด์ผ์ˆ˜๋ก ๋“ฑ์••๋ฉด์ด ๋” ๋ถ€๋“œ๋Ÿฌ์šด(๋ฌด๋ฅธ) ๋ฌผ์ฒด ์ชฝ์œผ๋กœ ๋ฐ€๋ ค๊ฐ€๋Š”๋ฐ, ์ด ๋˜ํ•œ ์‹ (1)์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ด์•„๋ƒ…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์ ‘์ด‰๋ฉด \mathcal{S} ๋Š” ๋‹ค์Œ์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

\mathcal{S} = \left\{\, \mathbf{x}\in\mathbb{R}^3 \;\middle|\; g(\mathbf{x}) = 0,\; \phi_A(\mathbf{x}) < 0,\; \phi_B(\mathbf{x}) < 0 \,\right\}. \tag{2}

์กฐ๊ฑด \phi_A<0 ๊ณผ \phi_B<0 ์€ โ€œ๋‘ ๋ฌผ์ฒด ๋ชจ๋‘์˜ ๋‚ด๋ถ€, ์ฆ‰ ์‹ค์ œ๋กœ ๊ฒน์นœ ๋ถ€ํ”ผ ์•ˆโ€์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋“ฑ์••๋ฉด ์ค‘์—์„œ๋„ ๊ฒน์นœ ์˜์—ญ์— ๋“ค์–ด์˜จ ๋ถ€๋ถ„๋งŒ ์ง„์งœ ์ ‘์ด‰๋ฉด์ด ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜-๋ ˆ๋ฒจ์…‹์€ ๋งˆ์นญ ํ๋ธŒ(marching cubes) ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‚ผ๊ฐํ˜• ๋ฉ”์‹œ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋งˆ์นญ ํ๋ธŒ๋Š” ๊ฒฉ์ž ๊ฐ ์…€์˜ ๊ผญ์ง“์ ์—์„œ ์Šค์นผ๋ผ ๊ฐ’์„ ๋ณด๊ณ , ๋ถ€ํ˜ธ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๋ณ€์„ ๋”ฐ๋ผ ๋ณด๊ฐ„ํ•˜์—ฌ ๋“ฑ์น˜๋ฉด ์‚ผ๊ฐํ˜•์„ ๋ฝ‘์•„๋‚ด๋Š” ๊ณ ์ „์  ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” g ์˜ ์˜๋ฉด์„ ๋ฝ‘๋˜, ๋‘ ๋ฌผ์ฒด์˜ SDF ํ•ด์ƒ๋„๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‘˜ ์ค‘ ๋” ์ด˜์ด˜ํ•œ(finer) ๊ฒฉ์ž๋ฅผ ๋งˆ์นญ ํ๋ธŒ ๊ฒฉ์ž๋กœ ์“ฐ๊ณ , ๊ฑฐ์นœ ์ชฝ SDF๋Š” ์‚ผ์ค‘์„ ํ˜• ๋ณด๊ฐ„(trilinear interpolation)์œผ๋กœ ์งˆ์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ ๊ผญ์ง“์ ์ด \phi_A<0 ์ด๊ณ  \phi_B<0 ์ธ ์‚ผ๊ฐํ˜•๋งŒ ๋‚จ๊น๋‹ˆ๋‹ค. ๊ฐ ๊ผญ์ง“์ ์—๋Š” ์••๋ ฅ๊ฐ’ p(\mathbf{v}_j) = k_A\phi_A(\mathbf{v}_j) = k_B\phi_B(\mathbf{v}_j) ๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

๊ณ„์ธต์  ๊ฐ€์ง€์น˜๊ธฐ (Hierarchical Pruning)

๊ฒฉ์ž ์ „์ฒด์— ๋งˆ์นญ ํ๋ธŒ๋ฅผ ๋ฌด์ž‘์ • ๋Œ๋ฆฌ๋ฉด, ๋นฝ๋นฝํ•œ 3D ๊ฒฉ์ž์—์„œ๋Š” ๋น„์šฉ์ด ํฝ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ ‘์ด‰๋ฉด์ด ์ง€๋‚˜๊ฐ€๋Š” ์…€(์ €์ž๋“ค์€ isovoxel ์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค)์€ ์ „์ฒด์˜ ๊ทนํžˆ ์ผ๋ถ€์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋“ฑ์น˜๋ฉด์„ ๋‹ด์€ ๋ณต์…€๋งŒ ๋น ๋ฅด๊ฒŒ ๊ณจ๋ผ๋‚ด๋Š” ๊ณ„์ธต์  ํ•„ํ„ฐ๋ฅผ ๋‘ก๋‹ˆ๋‹ค.

  1. SDF ๊ฒฝ๊ณ„์ƒ์ž(bounding box)๊ฐ€ ๊ฒน์น˜๋Š” ์ž ์žฌ์  ์ถฉ๋Œ ์Œ A, B ๋ฅผ ๋จผ์ € ๊ฒ€์ถœํ•ฉ๋‹ˆ๋‹ค.
  2. SDF๋ฅผ 8\times8\times8 ๋ณต์…€ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๋ธ”๋ก ์ค‘์‹ฌ์—์„œ g(\mathbf{x}_T) ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ๊ฐ•์„ฑ ๋ณด์ •๋œ ๊ฒฝ๊ณ„ ๋ฐ˜๊ฒฝ R_T = r(k_A+k_B) (์—ฌ๊ธฐ์„œ r ์€ ๋ธ”๋ก์˜ ๊ธฐํ•˜ ๋ฐ˜๋Œ€๊ฐ์„  ์ ˆ๋ฐ˜)์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ |g(\mathbf{x}_T)| > R_T ์ด๋ฉด, ๊ทธ ๋ธ”๋ก์€ ๋“ฑ์น˜๋ฉด์„ ์ ˆ๋Œ€ ํฌํ•จํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ†ต์งธ๋กœ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. (๋ณด์ˆ˜์ ์ธ ๋ณด์žฅ: ๋ธ”๋ก ์•ˆ์—์„œ g ๊ฐ€ ์˜์„ ์ง€๋‚˜๋ ค๋ฉด ์ค‘์‹ฌ๊ฐ’์ด ์ด ๋ฐ˜๊ฒฝ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•จ)
  3. ์‚ด์•„๋‚จ์€ ๋ธ”๋ก์„ 4\times4\times4, 2\times2\times2, 1\times1\times1 ๋กœ ์žฌ๊ท€์ ์œผ๋กœ ์ชผ๊ฐœ๋ฉฐ ๊ฐ™์€ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋‚จ์€ isovoxel์—๋งŒ ๋งˆ์นญ ํ๋ธŒ๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ํฌ์†Œ narrow-band SDF(ํ‘œ๋ฉด ๊ทผ์ฒ˜ ๋ ๋งŒ ์ €์žฅ)๋ฅผ ์จ์„œ ๋ฉ”๋ชจ๋ฆฌ์™€ ์—ฐ์‚ฐ์„ ๋” ์ค„์ž…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„ ์ „์ฒด๊ฐ€ ๋ณต์…€ ๋‹จ์œ„๋กœ ๋…๋ฆฝ์ ์ด๋ผ GPU ๋ณ‘๋ ฌํ™”์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ณต์…€์—์„œ ํ•„์š”ํ•œ ๊ฑด ๋กœ์ปฌ SDF ์งˆ์˜์™€ ์‚ผ์ค‘์„ ํ˜• ๋ณด๊ฐ„๋ฟ์ž…๋‹ˆ๋‹ค.

B. ์ ‘์ด‰ ์ด์‚ฐํ™” (Contact Discretization)

์œ„์—์„œ ์–ป์€ ์‚ผ๊ฐํ˜• ๋“ฑ์••๋ฉด์„ ODE ๊ธฐ๋ฐ˜ ์†”๋ฒ„์—๋Š” ๊ทธ๋Œ€๋กœ ๋„˜๊ธธ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹ค๋ฌด์—์„œ ๋„๋ฆฌ ์“ฐ๋Š” ์†๋„ ๋ ˆ๋ฒจ(velocity-level) ์†”๋ฒ„(์˜ˆ: XPBD, MuJoCo)์— ๋„ฃ์œผ๋ ค๋ฉด ๋ฉด์„ ์  ์ ‘์ด‰๋“ค๋กœ ์ด์‚ฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์‚ผ๊ฐํ˜•์˜ ๋ฌด๊ฒŒ์ค‘์‹ฌ \mathbf{x}_c ์— ์ ‘์ด‰์  (\mathbf{x}_c, \hat{\mathbf{n}}, \phi_0, k_{\text{eff}}) ๋ฅผ ํ•˜๋‚˜์”ฉ ๋†“์Šต๋‹ˆ๋‹ค. ๋ฒ•์„  \hat{\mathbf{n}} ์€ ์‚ผ๊ฐํ˜• ๋ฉด์˜ ๋ฒ•์„ ์ด๊ณ , ๋Œ€๋ฆฌ ์นจํˆฌ ๊นŠ์ด(surrogate penetration depth) ๋Š”

\phi_0 = \phi_A(\mathbf{x}_c) + \phi_B(\mathbf{x}_c), \tag{3}

์‚ผ๊ฐํ˜• ๋„“์ด a ๋ฅผ ๋ฐ˜์˜ํ•œ ์œ ํšจ ๊ฐ•์„ฑ(effective stiffness) ์€

k_{\text{eff}} = \frac{k_A\,k_B}{k_A + k_B}\,a. \tag{4}

์‹ (4)์˜ \frac{k_A k_B}{k_A+k_B} ๋ถ€๋ถ„์€ ๋‘ ์Šคํ”„๋ง์„ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐํ–ˆ์„ ๋•Œ์˜ ๋“ฑ๊ฐ€ ๊ฐ•์„ฑ๊ณผ ๊ฐ™์€ ๊ผด์ž…๋‹ˆ๋‹ค (๋ฌด๋ฅธ ์ชฝ์ด ์ง€๋ฐฐ). ์—ฌ๊ธฐ์— ์‚ผ๊ฐํ˜• ๋„“์ด a ๋ฅผ ๊ณฑํ•ด โ€œ์ด ์กฐ๊ฐ์ด ๋‹ด๋‹นํ•˜๋Š” ๋ฉด์ ๋งŒํผ์˜ ํž˜โ€์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์ ‘์ด‰์ ์ด ํ‘œํ˜„ํ•˜๋Š” ํ‰ํ˜• ์ˆ˜์ง๋ ฅ์€ f_{n,i} = k_{\text{eff}}|\phi_{0,i}| ์ธ๋ฐ, ์ €์ž๋“ค์€ ์ด๊ฒƒ์ด ์„ ํ˜• ์••๋ ฅ์žฅ์„ ๊ทธ ์‚ผ๊ฐํ˜• ๋„“์ด์— ๋Œ€ํ•ด ์ ๋ถ„ํ•œ ๊ฐ’๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•œ๋‹ค๊ณ  ์ง€์ ํ•ฉ๋‹ˆ๋‹ค. ์„ ํ˜• ํ•จ์ˆ˜์˜ ๋ฉด์ ๋ถ„์€ ๋ฌด๊ฒŒ์ค‘์‹ฌ ๊ฐ’์œผ๋กœ ์ •ํ™•ํžˆ ํ‰๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์ด ์ด์‚ฐํ™”๋Š” ๋‹จ์ˆœํ•œ ๊ทผ์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ผ, ์˜์—ญ ํ‰๊ท  ์˜๋ฏธ์—์„œ ์ •ํ™•(exact) ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งˆ์นญ ํ๋ธŒ ์‚ผ๊ฐํ˜•์€ ์ ‘์ด‰ ํ˜•์ƒ์ด ๋ณ€ํ•˜๋ฉด ๋ฉด์ ์ด ๋งค๋„๋Ÿฝ๊ฒŒ ๋Š˜์—ˆ๋‹ค ์ค„์—ˆ๋‹ค ํ•˜๋ฏ€๋กœ, ํž˜๋„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.

๋ถ€๊ฐ€์ ์œผ๋กœ, ์•„์ง ๋‹ฟ์ง€ ์•Š์•˜์ง€๋งŒ ๊ณง ๋‹ฟ์„ ์ ‘์ด‰์„ ๋ฏธ๋ฆฌ ๋งŒ๋“œ๋Š” ํˆฌ๊ธฐ์  ์ ‘์ด‰ ์ƒ์„ฑ(speculative contact) ์„ ์œ„ํ•ด, \phi_A(\mathbf{x}) < d_{\text{gap}} ์ด๊ณ  \phi_B(\mathbf{x}) < d_{\text{gap}} ์ธ ์–‘์˜ ์—ฌ์œ (margin) ์•ˆ์˜ ์ ‘์ด‰๋„ ํ•จ๊ป˜ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

C. ์ ‘์ด‰ ์ถ•์†Œ์™€ ๋ Œ์น˜ ๋งค์นญ (Contact Reduction & Wrench Matching)

์—ฌ๊ธฐ๊ฐ€ ์ด ๋…ผ๋ฌธ์˜ ๊ฐ€์žฅ ์˜๋ฆฌํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์‚ผ๊ฐํ˜• ํ•˜๋‚˜๋‹น ์ ‘์ด‰์  ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค๋ฉด, ๋””ํ…Œ์ผ์ด ํ’๋ถ€ํ•œ ํ˜•์ƒ์—์„œ๋Š” ์ ‘์ด‰์ ์ด ์ˆ˜๋ฐฑ~์ˆ˜๋ฐฑ๋งŒ ๊ฐœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Newton์˜ Jacobi ์Šคํƒ€์ผ XPBD ์†”๋ฒ„์ฒ˜๋Ÿผ GPU์—์„œ ๋ณ‘๋ ฌ๋กœ ํ‘ธ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ๋‹ค ๋„˜๊ฒจ๋„ ๋˜์ง€๋งŒ, MuJoCo ๊ฐ™์€ ๋„๋ฆฌ ์“ฐ๋Š” ์†”๋ฒ„๋Š” ์ ‘์ด‰ ์ œ์•ฝ ์ˆ˜์— ๋Œ€ํ•ด ์ดˆ์„ ํ˜•(superlinear) ์œผ๋กœ ๋А๋ ค์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•ฉ๋ ฅ๊ณผ ํ•ฉ๋ชจ๋ฉ˜ํŠธ(net wrench)๋Š” ๋ณด์กดํ•˜๋ฉด์„œ ์ ‘์ด‰์  ์ˆ˜๋ฅผ ํ™• ์ค„์ด๋Š” ์ ‘์ด‰ ์ถ•์†Œ(contact reduction) ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถฉ๋Œ ์Œ AB ์˜ ์›์‹œ ์ ‘์ด‰๋“ค์„ ๋‹ค์Œ ์ ˆ์ฐจ๋กœ ๋Œ€ํ‘œ ์ง‘ํ•ฉ์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค.

1) ๋ฒ•์„  ๋น„๋‹ (Normal binning). ๋‹จ์œ„ ๊ตฌ๋ฅผ ์ •์ด์‹ญ๋ฉด์ฒด ์„ธ๋ถ„(icosahedral subdivision)์œผ๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ ๋‚˜๋ˆˆ N_b ๊ฐœ์˜ ๋นˆ ๋ฒ•์„  \hat{\mathbf{n}}_b ๋ฅผ ๋‘ก๋‹ˆ๋‹ค. ๊ฐ ์ ‘์ด‰ i ๋Š” ์ž๊ธฐ ๋ฒ•์„  \hat{\mathbf{n}}_i ์™€ ๊ฐ€์žฅ ์ž˜ ์ •๋ ฌ๋˜๋Š” ๋นˆ์— ๋ฐฐ์ •๋ฉ๋‹ˆ๋‹ค.

b^* = \arg\max_b \langle \hat{\mathbf{n}}_i, \hat{\mathbf{n}}_b \rangle.

2) ๋นˆ๋ณ„ ์ง‘๊ณ„ (Per-bin aggregation). ๊ฐ ๋นˆ b ์—์„œ ํ•ฉ๋ ฅ, ์••๋ ฅ ๊ฐ€์ค‘ ๋ฌด๊ฒŒ์ค‘์‹ฌ, ๋นˆ ๋ฒ•์„  ๋‘˜๋ ˆ์˜ ๋งˆ์ฐฐ ์œ ๋ฐœ ์ตœ๋Œ€ ์ €ํ•ญ ๋ชจ๋ฉ˜ํŠธ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

\mathbf{F}_b = \sum_{i\in b} f_{n,i}\,\hat{\mathbf{n}}_i, \tag{5}

\bar{\mathbf{x}}_b = \frac{\sum_{i\in b} p_i \mathbf{x}_i}{\sum_{i\in b} p_i}, \qquad M_b = \sum_{i\in b}\mu\, f_{n,i}\,|\mathbf{r}_i \times \hat{\mathbf{n}}_i|, \tag{6}

์—ฌ๊ธฐ์„œ \mathbf{r}_i = \mathbf{x}_i - \bar{\mathbf{x}}_b ์ด๋ฉฐ, ์ ‘์ด‰์  ๋ถ„ํฌ์˜ 2์ฐจ ๋ชจ๋ฉ˜ํŠธ ํ†ต๊ณ„๋„ ํ•จ๊ป˜ ๋‘ก๋‹ˆ๋‹ค. M_b ๋Š” โ€œ์ด ํŒจ์น˜๊ฐ€ ๋น„ํ‹€๋ฆผ์— ์–ผ๋งˆ๋‚˜ ๋ฒ„ํ‹ฐ๋Š”๊ฐ€โ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋น„ํ‹€๋ฆผ ๋งˆ์ฐฐ ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.

3) ๊ณต๊ฐ„ ์„ ํƒ (Spatial selection). ๊ฐ ๋นˆ ์•ˆ์—์„œ ์ ‘์„  ํ‰๋ฉด์— ๊ท ๋“ฑ ๋ถ„ํฌ๋œ N_u ๊ฐœ์˜ ๋ฐฉํ–ฅ ๋ฒกํ„ฐ \mathbf{u}_j ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ฐ ๋ฐฉํ–ฅ๋งˆ๋‹ค ๋‹ค์Œ ํœด๋ฆฌ์Šคํ‹ฑ ์ ์ˆ˜๋ฅผ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ์ ‘์ด‰์„ ํ•˜๋‚˜์”ฉ ๋‚จ๊น๋‹ˆ๋‹ค (์นจํˆฌ ๊นŠ์ด๋กœ ๊ฐ€์ค‘๋œ, ํŒจ์น˜ ์ค‘์‹ฌ์œผ๋กœ๋ถ€ํ„ฐ์˜ ํˆฌ์˜ ๋ณ€์œ„).

i_j^{*} = \arg\max_{i\in b}\; \left( \langle \mathbf{x}_i - \bar{\mathbf{x}}_b,\, \mathbf{u}_j \rangle\,|\phi_{0,i}| \right). \tag{7}

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์„ ํƒ๋œ ์ ‘์ด‰๋“ค์ด ์ ‘์ด‰ ํŒจ์น˜์˜ ๊ณต๊ฐ„์  ๋ฒ”์œ„(spatial extent) ๋ฅผ ๋ฎ์–ด, ์•ˆ์ •์ ์ธ ์ง€์ง€(support)๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ๋ Œ์น˜์— ์˜๋ฏธ ์žˆ๊ฒŒ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ์ตœ๋Œ€ ์••๋ ฅ ์˜์—ญ์„ ๋น ๋œจ๋ฆฌ์ง€ ์•Š๋„๋ก, ๋ฌผ์ฒด ๊ฒฝ๊ณ„์ƒ์ž ์œ„ ๊ฑฐ์นœ ๊ฒฉ์ž์˜ ๊ฐ ๋ณต์…€์—์„œ ๊ฐ€์žฅ ๊นŠ์€ ์ ‘์ด‰๋„ ํ•จ๊ป˜ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ ํƒ์€ ๋นˆ๋ณ„๋กœ ๋…๋ฆฝ์ด๊ณ  ๋ณผ๋ก์„ฑ์ด๋‚˜ ํŒจ์น˜์˜ ์—ฐ๊ฒฐ์„ฑ์„ ์ „ํ˜€ ๊ฐ€์ •ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณต์žกํ•œ ๋น„๋ณผ๋ก ํ˜•์ƒ์—๋„ ๊ทธ๋Œ€๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

4) ๋ Œ์น˜ ๋งค์นญ (Wrench matching). ์„ ํƒ๋œ ์†Œ์ˆ˜์˜ ์ ‘์ด‰์ด ์›๋ž˜ ๋นˆ ํ•ฉ๋ ฅ \mathbf{F}_b ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‚ด๋„๋ก ๋ณด์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋นˆ ์•ˆ์˜ ์ ‘์ด‰๋“ค์€ ๋ฒ•์„ ์ด ๋น„์Šทํ•˜๊ณ  ํž˜ ๋ชจ๋ธ์ด k_{\text{eff}} ์— ์„ ํ˜•์ด๋ผ, ๋‹ซํžŒ ํ˜•์‹(closed-form) 2๋‹จ๊ณ„๋กœ ํ’€๋ฆฝ๋‹ˆ๋‹ค.

  • ์ฒซ์งธ, ์„ ํƒ๋œ ๋ชจ๋“  ์ ‘์ด‰์— ๊ท ์ผํ•œ ๊ฐ•์„ฑ์„ ๋ถ€์—ฌํ•ด ํ•ฉ๋ ฅ ํฌ๊ธฐ๋ฅผ ๋งž์ถฅ๋‹ˆ๋‹ค: k_{\text{eff}}^b = \|\mathbf{F}_b\| / \sum_{j\in\text{selected}} |\phi_{0,j}|.
  • ๋‘˜์งธ, ์„ ํƒ๋œ ์ ‘์ด‰๋“ค์˜ ๋ฒ•์„ ์„ ๊ท ์ผํ•˜๊ฒŒ ํšŒ์ „์‹œ์ผœ ํ•ฉ๋ ฅ ๋ฐฉํ–ฅ์„ \mathbf{F}_b ์— ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

\hat{\mathbf{n}}_j \leftarrow \mathbf{R}_b\,\hat{\mathbf{n}}_j, \qquad \mathbf{R}_b = \text{rot}\!\left( \frac{\mathbf{F}_{\text{sel}}}{\|\mathbf{F}_{\text{sel}}\|} \rightarrow \frac{\mathbf{F}_b}{\|\mathbf{F}_b\|} \right), \tag{8}

์—ฌ๊ธฐ์„œ \mathbf{F}_{\text{sel}} = \sum_{j\in\text{selected}} k_{\text{eff}}^b\,\phi_{0,j}\,\hat{\mathbf{n}}_j ๋Š” ๊ฐ•์„ฑ ์žฌ๋ฐฐ์ • ํ›„ ์„ ํƒ ์ ‘์ด‰๋“ค์˜ ํ•ฉ๋ ฅ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์›๋ž˜ ํŒจ์น˜์˜ ๋น„ํ‹€๋ฆผ ๋งˆ์ฐฐ ์šฉ๋Ÿ‰์„ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด, ์„ ํƒ๋œ ์ ‘์ด‰๋“ค์˜ ๋งˆ์ฐฐ๊ณ„์ˆ˜ \mu_j ๋ฅผ ์••๋ ฅ ๊ฐ€์ค‘ ๋ฌด๊ฒŒ์ค‘์‹ฌ \bar{\mathbf{x}}_b ์œผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋น„๊ท ์ผํ•˜๊ฒŒ ์Šค์ผ€์ผํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ๋ฒ•์„  ๋‘˜๋ ˆ์˜ ์ตœ๋Œ€ ๋งˆ์ฐฐ ์œ ๋ฐœ ๋ชจ๋ฉ˜ํŠธ๊ฐ€ M_b ์— ๊ทผ์‚ฌ๋กœ ์ผ์น˜ํ•˜๋„๋ก(Moment Matching) ๋งž์ถ”๋Š” ๊ฒƒ์ด์ฃ . ๋น„๊ท ์ผ ์Šค์ผ€์ผ์ด๋ผ์„œ ํ•ฉ ์ ‘์„  ๋งˆ์ฐฐ ์šฉ๋Ÿ‰์€ ๋™์‹œ์— ๋ณด์กด๋ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, ํ•ฉ๋ ฅยทํ•ฉ๋ชจ๋ฉ˜ํŠธยท๋น„ํ‹€๋ฆผ ์šฉ๋Ÿ‰์„ ๋ชจ๋‘ ๋ณด์กดํ•˜๋ฉด์„œ ์ ‘์ด‰์  ์ˆ˜๋งŒ ๊ทน์ ์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค.

์‹คํ—˜

์ €์ž๋“ค์€ Warp๋กœ ๊ตฌํ˜„ํ•œ GPU ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ธ ๊ฐœ์˜ ์ ‘์ด‰ ์ง‘์•ฝ์  ์žฅ๋ฉด(๊ทธ๋ฆผ 2)์—์„œ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ๋””ํ…Œ์ผ์ด ๋งŽ๊ณ  ๋งค์šฐ ๋น„๋ณผ๋กํ•œ ํ˜•์ƒ์ด๋ผ๋Š” ๊ณตํ†ต์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒค์น˜๋งˆํฌ๋Š” NVIDIA RTX 5090 ์—์„œ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋‚˜์‚ฌ-๋„ˆํŠธ ์กฐ๋ฆฝ(nut-and-bolt): M20 ๋„ˆํŠธ์™€ ๋ณผํŠธ. ๋‚˜์‚ฌ์‚ฐ ๊ฐ™์€ ๋ฏธ์„ธ ํ˜•์ƒ์ด ๋นฝ๋นฝํ•œ ์ „ํ˜•์  ๋น„๋ณผ๋ก ์ ‘์ด‰. MuJoCo Warp ์†”๋ฒ„ ์‚ฌ์šฉ, 128๊ฐœ ์ธ์Šคํ„ด์Šค ๋ณ‘๋ ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜.
  • ๋ฒ„๋‹ˆ ๋”๋ฏธ(bunny pile): ๋น„๋ณผ๋ก ๋ฉ”์‹œ 91๊ฐœ(์Šคํƒ ํผ๋“œ ๋ฒ„๋‹ˆ)๊ฐ€ ๋ฌด๋”๊ธฐ๋กœ ์ถฉ๋Œ. Newton์˜ XPBD ์‚ฌ์šฉ.
  • ํ”„๋ž‘์นด ํŽœ(Panda-pen): Franka Panda ๋กœ๋ด‡์ด ํŽœ์„ ์ง‘์–ด ์ปต์— ๊ฝ‚๋Š” ์ž‘์—…. MuJoCo Warp, 512๊ฐœ ์ธ์Šคํ„ด์Šค ๋ณ‘๋ ฌ.

์„ฑ๋Šฅ ์ง€ํ‘œ๋Š” ๋ˆ„์  ์‹ค์‹œ๊ฐ„ ๋ฐฐ์ˆ˜(Acc. Realtime Factor, ์‹ค์‹œ๊ฐ„ ๋Œ€๋น„ ๋ช‡ ๋ฐฐ ๋น ๋ฅธ๊ฐ€)์™€ ์ƒ์„ฑ๋œ ์ ‘์ด‰ ์ˆ˜์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ ‘์ด‰ ์ถ•์†Œ์˜ ํšจ๊ณผ๋ฅผ ๋ถ„๋ฆฌํ•ด ๋ณด๊ธฐ ์œ„ํ•ด, ๋‚˜์‚ฌ-๋„ˆํŠธ๋Š” ์ถ•์†Œ on/off๋ฅผ ๋ชจ๋‘ ์ธก์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์žฅ๋ฉด (Scene) ๋ชจ๋“œ ์ ‘์ด‰ ์ˆ˜ (# Contacts) ๋ˆ„์  ์‹ค์‹œ๊ฐ„ ๋ฐฐ์ˆ˜
nut-and-bolt reduced 18k 141ร—
nut-and-bolt unreduced 4M 18ร—
bunny pile reduced 14k 5.0ร—
Panda-pen reduced 57k 104ร—

ํ•ด์„ํ•˜๋ฉด, ๋‚˜์‚ฌ-๋„ˆํŠธ์—์„œ ์ถ•์†Œ๋ฅผ ์ผœ๋ฉด ์ ‘์ด‰ ์ˆ˜๊ฐ€ 200๋ฐฐ ์ด์ƒ(4M โ†’ 18k) ์ค„๊ณ , ์ด์— ๋”ฐ๋ผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์†๋„๊ฐ€ 18ร— โ†’ 141ร— ๋กœ ํฌ๊ฒŒ ๋œ๋‹ˆ๋‹ค. ์ ‘์ด‰ ์ถ•์†Œ๊ฐ€ ๋‹จ์ˆœํ•œ ์ตœ์ ํ™”๊ฐ€ ์•„๋‹ˆ๋ผ, ์†”๋ฒ„์˜ ์ดˆ์„ ํ˜• ๋น„์šฉ ๊ณก์„ ์—์„œ ์ž‘์—…์„ โ€œ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์˜์—ญโ€์œผ๋กœ ์˜ฎ๊ฒจ์ฃผ๋Š” ํ•ต์‹ฌ ์žฅ์น˜์ž„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์‘์šฉ 1: ์ด‰๊ฐ ์„ผ์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (๊ทธ๋ฆผ 3)

A์ ˆ์—์„œ ์ถ”์ถœํ•œ ๋“ฑ์••๋ฉด์€ ๊ณต๊ฐ„์ ์œผ๋กœ ๋ถ„ํ•ด๋œ ์ ‘์ด‰๋ฉด์ด๋ผ, ์ด‰๊ฐ ์„ผ์„œ๋ฅผ ๊ทธ๋Œ€๋กœ ํ‰๋‚ด ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์ž๋“ค์€ Sharpa Wave ํ•ธ๋“œ๋ฅผ ์œ„ํ•œ ๋น„์ฃผ์˜คํƒํƒ€์ผ(visuotactile) ์„ผ์„œ ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํƒ์…€(taxel)์˜ ๋ฐ”๊นฅ ํ‘œ๋ฉด์—์„œ ๋กœ์ปฌ ๋ฒ•์„ ์„ ๋”ฐ๋ผ ์•ˆ์ชฝ์œผ๋กœ ๊ด‘์„ ์„ ์˜์•„, ์ถ•์†Œํ•˜์ง€ ์•Š์€ ์›๋ณธ ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์ ‘์ด‰๋ฉด๊ณผ์˜ ๊ต์ฐจ ๊นŠ์ด๋ฅผ ์žฝ๋‹ˆ๋‹ค. ์ด ๊ต์ฐจ ๊นŠ์ด๊ฐ€ ๊ณง ํ”ฝ์…€๋ณ„ ํƒ„์„ฑ์ฒด ๋ณ€์œ„ ๋งต(๊ทธ๋ฆผ 3์—์„œ ์†๊ฐ€๋ฝ๋งˆ๋‹ค ๋ณด์ด๋Š” ์ปฌ๋Ÿฌ ๋ณ€์œ„ ์ด๋ฏธ์ง€)์ด ๋˜์–ด ์‹ค์ œ ์„ผ์„œ ์ถœ๋ ฅ์„ ๋ชจ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์  ์ ‘์ด‰ ๊ธฐ๋ฐ˜ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ๋Š” ํ‘œํ˜„ ๋ชป ํ•˜๋Š” ์••๋ ฅ์˜ ๊ณต๊ฐ„ ๋ถ„ํฌ์™€ ๋ฉด์  ์˜์กด ๋งˆ์ฐฐ ํšจ๊ณผ๋ฅผ ๋‹ด์•„๋‚ธ๋‹ค๋Š” ์ ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

์‘์šฉ 2: ๋ฉด์  ๋ถ„ํ•ด ์ ‘์ด‰ ๋™์—ญํ•™์˜ ์ •์„ฑ ๊ฒ€์ฆ (๊ทธ๋ฆผ 4)

๋Œ€๋ถ€๋ถ„์˜ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๋น„ํ‹€๋ฆผ ๋งˆ์ฐฐ์€ ํ˜•์ƒ๊ณผ ๋ฌด๊ด€ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋”ฐ๋กœ ๋„ฃ์–ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: MuJoCo์˜ torsional friction์€ geom๋ณ„ ์ƒ์ˆ˜). ๋ฐ˜๋ฉด ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ๋ชจ๋ธ์—์„œ๋Š” ๋น„ํ‹€๋ฆผ ์šฉ๋Ÿ‰์ด SDF๋กœ๋ถ€ํ„ฐ ์žฌ๊ตฌ์„ฑ๋œ ๋“ฑ์••๋ฉด์˜ ๊ณต๊ฐ„์  ๋„“์ด์—์„œ ์ž๋™์œผ๋กœ emerge ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ํŽœ(๋ง‰๋Œ€) ๋–จ์–ด๋œจ๋ฆฌ๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์”๋‹ˆ๋‹ค. ํ‰ํ–‰ ๊ทธ๋ฆฌํผ๊ฐ€ ๋ง‰๋Œ€๋ฅผ ๋ฌด๊ฒŒ์ค‘์‹ฌ์—์„œ ๋ฒ—์–ด๋‚œ ๊ณณ์„ ์žก๊ณ  ์„œ์„œํžˆ ๋†“์œผ๋ฉด, ์ค‘๋ ฅ ํ† ํฌ ๋•Œ๋ฌธ์— ๋ง‰๋Œ€๊ฐ€ ํšŒ์ „(pivot)ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ ‘์ด‰ ๋„“์ด๊ฐ€ ์ข์„์ˆ˜๋ก ๋น„ํ‹€๋ฆผ ๋งˆ์ฐฐ ์šฉ๋Ÿ‰์ด ์ž‘์•„ ๋” ์ผ์ฐ ํšŒ์ „ํ•˜๊ณ , ๋ถ„๋ฆฌ(detach) ์‹œ์ ๊นŒ์ง€ ๋” ํฐ ๊ฐ์†๋„๋ฅผ ์Œ“์„ ๊ฒƒ์ด๋ผ๋Š” ์ง๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด transient ๊ฑฐ๋™์€ ์•ฝ 50ms ์•ˆ์— ์ผ์–ด๋‚˜ ์‹ค์ œ๋กœ ์žฌํ˜„์ด ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ €์ž๋“ค์€ ๋งˆ์ฐฐ๊ณ„์ˆ˜ \mu ์™€ ์ ‘์ด‰ ํญ(๋ง‰๋Œ€๋ฅผ ๊ทธ๋ฆฌํผ ์•ˆ์—์„œ ์˜ฎ๊ฒจ ์กฐ์ ˆ, ์ค‘๋ ฅ ํ† ํฌ๋Š” ๊ณ ์ •)์„ ์Šค์œ•ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 4(์˜ค๋ฅธ์ชฝ)๋Š” ๋ถ„๋ฆฌ ์‹œ ๊ฐ์†๋„ |\omega_y| ์˜ ๋ฏผ๊ฐ๋„ ์ง€ํ˜•์„ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ, ์ž‘์€ \mu ์™€ ์ž‘์€ ์ ‘์ด‰ ํญ์ผ์ˆ˜๋ก ๋” ๋น ๋ฅธ ํšŒ์ „์ด๋ผ๋Š” ๋‘ ๊ฒฝํ–ฅ์ด ๋ชจ๋‘ ๋‚˜ํƒ€๋‚˜๋ฉฐ, ์ด๋Š” ์„ ํ–‰ ์—ฐ๊ตฌ์˜ ILS(๊ฐ€์žฅ ์ •ํ™•ํ•œ ํ•œ๊ณ„๋ฉด ๋ชจ๋ธ) ์˜ˆ์ธก๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ์ ์€ ์ด ์ง€ํ˜•์ด ๋ถ€๋“œ๋Ÿฝ๊ณ  ๋‹จ์กฐ(smooth, monotonic) ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค โ€” transient ์˜์—ญ์—์„œ ๊ณ ์ „์  ํ•œ๊ณ„๋ฉด ๋ชจ๋ธ์„ ๊ดด๋กญํžˆ๋Š” Zeno ๊ฐ™์€ ๋ณ‘์  ์ง„๋™์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋™์—ญํ•™์„ ์ง€๋ฐฐํ•˜๋Š” ์ ‘์ด‰ ๋„“์ด๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋งˆ๋‹ค ํŠœ๋‹ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ SDF ํ˜•์ƒ์—์„œ ์ง์ ‘ emerge ํ•˜๋ฏ€๋กœ, ์ƒˆ๋กœ์šด ๋ฌผ์ฒด์™€ ํŒŒ์ง€์— ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ์„ค์ • ์—†์ด๋„ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ผ๊ด€๋œ ์˜ˆ์ธก์„ ์ค๋‹ˆ๋‹ค.

๋น„ํŒ์  ๊ณ ์ฐฐ

๊ฐ•์ 

  • ๊ธฐํ•˜ํ•™์  ์ผ๋ฐ˜์„ฑ + ๋ฌผ๋ฆฌ์  ๊ทผ๊ฑฐ์˜ ๊ฒฐํ•ฉ. ๋น„๋ณผ๋ก ํ˜•์ƒ์— VTK ์‚ฌ๋ฉด์ฒด ๋ฉ”์‹œ๋ฅผ ์†์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋˜ ๊ธฐ์กด Drake ๋ฐฉ์‹์˜ ํฐ ์ง„์ž… ์žฅ๋ฒฝ์„ ์—†์•ด์Šต๋‹ˆ๋‹ค. SDF๋Š” ์ž„์˜ CAD ๋ฉ”์‹œ์—์„œ ๋น„๊ต์  ์‰ฝ๊ฒŒ ์ƒ์„ฑ๋˜๊ณ , ๊ฐ•์„ฑ ๊ฐ€์ค‘ ์ฐจ์ด์žฅ์˜ ์˜-๋ ˆ๋ฒจ์…‹์ด๋ผ๋Š” ํ•œ ๊ฐ€์ง€ ์ˆ˜์‹์œผ๋กœ ๋“ฑ์••๋ฉด์ด ๊น”๋”ํ•˜๊ฒŒ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
  • GPU ์นœํ™”์  ์„ค๊ณ„. ๋ณต์…€ ๋‹จ์œ„ ๋…๋ฆฝ ํ‰๊ฐ€, ์‚ผ์ค‘์„ ํ˜• ๋ณด๊ฐ„, ๊ณ„์ธต์  ๊ฐ€์ง€์น˜๊ธฐ, narrow-band ํฌ์†Œ SDF๊นŒ์ง€, ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ณ‘๋ ฌํ™”๋ฅผ ์—ผ๋‘์— ๋‘” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. 256๋ฐฐ ๊ฐ€๊นŒ์šด ์ ‘์ด‰ ์ˆ˜ ์ถ•์†Œ๊ฐ€ ์‹ค์ œ ์†๋„ ํ–ฅ์ƒ์œผ๋กœ ์ง๊ฒฐ๋จ์„ ์ˆ˜์น˜๋กœ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
  • ์ด์‚ฐํ™”์˜ ์ •ํ™•์„ฑ ๋…ผ์ฆ. ์„ ํ˜• ์••๋ ฅ์žฅ์˜ ๋ฉด์ ๋ถ„์ด ๋ฌด๊ฒŒ์ค‘์‹ฌ ํ‰๊ฐ€๋กœ ์ •ํ™•ํ•˜๋‹ค๋Š” ์ ์„ ๋“ค์–ด, ์  ์ ‘์ด‰์œผ๋กœ ์ค„์—ฌ๋„ ์˜์—ญ ํ‰๊ท  ์˜๋ฏธ์—์„œ ํ•ฉ๋ ฅ์ด ์ •ํ™•ํ•จ์„ ๋ณด์ธ ๊ฒƒ์€ ์„ค๋“๋ ฅ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ Œ์น˜+๋ชจ๋ฉ˜ํŠธ ๋ณด์กด ์ถ•์†Œ. ๋‹จ์ˆœํžˆ ์ ‘์ด‰์„ ์†Ž์•„๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•ฉ๋ ฅยทํ•ฉ๋ชจ๋ฉ˜ํŠธยท๋น„ํ‹€๋ฆผ ๋งˆ์ฐฐ ์šฉ๋Ÿ‰๊นŒ์ง€ ๋‹ซํžŒ ํ˜•์‹์œผ๋กœ ๋งž์ถ”๋Š” ์ ์ด ์ •๊ตํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ณผ๋กยท๋น„์—ฐ๊ฒฐ ํŒจ์น˜๋ฅผ ๊ฐ€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ผ๋ฐ˜์„ฑ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
  • ์‹ค์šฉ์  ํ†ตํ•ฉ. ๊ฒฐ๊ณผ๋ฌผ์ด ์—ฐ๊ตฌ์šฉ ํ”„๋กœํ† ํƒ€์ž…์— ๊ทธ์น˜์ง€ ์•Š๊ณ  Newton ํ”„๋กœ์ ํŠธ์— ๋“ค์–ด๊ฐ€, XPBD์™€ MuJoCo Warp ์–‘์ชฝ ์†”๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, ์‚ฐ์—… ์กฐ๋ฆฝ ์ž‘์—…(Skild ์‚ฌ๋ก€ ๋“ฑ)์—์„œ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

์•ฝ์ ยทํ•œ๊ณ„

  • ์ •๋Ÿ‰์  ์ •ํ™•๋„ ๊ฒ€์ฆ์˜ ๋ถ€์กฑ. ํ•ต์‹ฌ ๊ฒ€์ฆ์ด โ€œ์ •์„ฑ์ (qualitative)โ€์ž…๋‹ˆ๋‹ค(๊ทธ๋ฆผ 4 ์ œ๋ชฉ๋ถ€ํ„ฐ โ€œQualitative Verificationโ€). ํŽœ ๋–จ์–ด๋œจ๋ฆฌ๊ธฐ ์ง€ํ˜•์ด ILS ๊ฒฝํ–ฅ๊ณผ โ€œ์ผ์น˜โ€ํ•œ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ, ์˜ค์ฐจ ์ˆ˜์น˜๋‚˜ ์‹ค์ œ ๋กœ๋ด‡ ์ธก์ •๊ณผ์˜ ์ •๋Ÿ‰ ๋Œ€์กฐ๋Š” ์ œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €์ž ์Šค์Šค๋กœ Drake์˜ ์‚ฌ๋ฉด์ฒด ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ๊ณผ์˜ ์ง์ ‘ ์ •๋Ÿ‰ ๋น„๊ต๋Š” โ€œ๊ธฐ๋ฐ˜ ์ •์‹ํ™”๊ฐ€ ๋‹ฌ๋ผ ์–ด๋ ต๋‹คโ€๋ฉฐ ํ–ฅํ›„ ๊ณผ์ œ๋กœ ๋‚จ๊ฒจ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์‚ฐํ™”ยท์ถ•์†Œ์˜ ๊ทผ์‚ฌ ์˜ค์ฐจ ๋ฏธ๊ทœ๋ช…. ์‹ (7)์˜ ๊ณต๊ฐ„ ์„ ํƒ์€ ํœด๋ฆฌ์Šคํ‹ฑ์ด๊ณ , ๋น„ํ‹€๋ฆผ ๋ชจ๋ฉ˜ํŠธ ๋งค์นญ๋„ โ€œ๊ทผ์‚ฌ๋กœ ์ผ์น˜โ€ํ•œ๋‹ค๊ณ ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. N_b, N_u, ๊ฑฐ์นœ ๊ฒฉ์ž ํ•ด์ƒ๋„ ๊ฐ™์€ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๊ฒฐ๊ณผ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด๋‚˜, ์ถ•์†Œ๊ฐ€ ๋™์—ญํ•™ ๊ถค์ ์— ๋‚จ๊ธฐ๋Š” ์˜ค์ฐจ์˜ ์ •๋Ÿ‰ ๋ถ„์„์ด ์—†์Šต๋‹ˆ๋‹ค.
  • SDF ํ•ด์ƒ๋„ ์˜์กด์„ฑ. ์ ‘์ด‰๋ฉด ์ถฉ์‹ค๋„๋Š” ๊ฒฉ์ž ํ•ด์ƒ๋„์— ๋‹ฌ๋ ค ์žˆ๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ/์†๋„์™€์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋‚˜ ํ•ด์ƒ๋„๊ฐ€ ๋„ˆ๋ฌด ๋‚ฎ์„ ๋•Œ์˜ ์‹คํŒจ ๋ชจ๋“œ์— ๋Œ€ํ•œ ๋ถ„์„์ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (์ถ”์ธก) ๋‚˜์‚ฌ์‚ฐ์ฒ˜๋Ÿผ ์–‡์€ ํ˜•์ƒ์€ narrow-band SDF์—์„œ ํ‘œํ˜„์ด ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์›Œํฌ์ˆ ๋…ผ๋ฌธ์˜ ๋ถ„๋Ÿ‰ ํ•œ๊ณ„. ICRA ์›Œํฌ์ˆ oral ๋ฐœํ‘œ์šฉ ๋‹จํŽธ์ด๋ผ ์‹คํ—˜ ๋ฒ”์œ„๊ฐ€ ์ข๊ณ (3๊ฐœ ์žฅ๋ฉด), ๋‹ค์–‘ํ•œ ์žฌ์งˆยท๋งˆ์ฐฐ ์กฐ๊ฑด, ์žฅ์‹œ๊ฐ„ ์•ˆ์ •์„ฑ, ๋‹ค๋ฅธ ์†”๋ฒ„์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์— ๋Œ€ํ•œ stress test๋Š” ํ–ฅํ›„ ๊ณผ์ œ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฏธ๋ถ„ ๊ฐ€๋Šฅ์„ฑ์€ ์•„์ง ์˜ˆ๋น„ ๋‹จ๊ณ„. SDF ๊ธฐ๋ฐ˜์ด๋ผ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•œ ๊ตฌํ˜„์ด ๋งค๋ ฅ์ ์ธ ๋ฐฉํ–ฅ์ด๊ณ  k ์— ๋Œ€ํ•œ ๊ทธ๋ž˜๋””์–ธํŠธ๋กœ ์ตœ์ ํ™”ํ•˜๋Š” ์˜ˆ๋น„ ์‹คํ—˜์ด ์žˆ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ, ๋ณธ ๋…ผ๋ฌธ์—์„œ ์™„์„ฑ๋œ ๊ฒฐ๊ณผ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๊ด€๋ จ ์—ฐ๊ตฌ์™€์˜ ๋น„๊ต

  • Elandt et al. (2019), Masterjohn et al. (2022) / Drake: ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์••๋ ฅ์žฅ ๋ชจ๋ธ์˜ ์›ํ˜•๊ณผ ์†๋„ ๋ ˆ๋ฒจ ์ •์‹ํ™”. ๋ณธ ๋…ผ๋ฌธ์€ ๊ฐ™์€ ๋ฌผ๋ฆฌ ๋ชจ๋ธ์„ ๋”ฐ๋ฅด๋˜, ํ‘œํ˜„์„ ์‚ฌ๋ฉด์ฒด ๋ฉ”์‹œ์—์„œ SDF๋กœ ๊ฐˆ์•„๋ผ์šฐ๊ณ  GPU ๋ณ‘๋ ฌํ™”ํ•œ ๊ฒƒ์ด ์ฐจ๋ณ„์ ์ž…๋‹ˆ๋‹ค. ์‹ (3)์˜ ์ ‘์ด‰์  ์ด์‚ฐํ™”๋Š” Masterjohn์˜ ํด๋ฆฌ๊ณค ํ…Œ์…€๋ ˆ์ด์…˜ ์•„์ด๋””์–ด๋ฅผ SDF ์‚ผ๊ฐํ˜•์œผ๋กœ ์˜ฎ๊ธด ์…ˆ์ž…๋‹ˆ๋‹ค.
  • Macklin et al. (2020) SDF ์ถฉ๋Œ, Narang et al. (Factory): ๊ฐ•์ฒด-SDF ๊ฐ„ ์ถฉ๋Œ์„ ๋กœ์ปฌ ์ตœ์ ํ™”๋กœ ํ‘ธ๋Š” ์  ์ ‘์ด‰ ๊ธฐ๋ฐ˜ SDF ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์ ‘์ด‰ ์ถ•์†Œ์™€ GPU ๊ฐ€์†์„ ์กฐ๋ฆฝ ์ž‘์—…์— ์ ์šฉํ•œ ์—ฐ๊ตฌ. ๋ณธ ๋…ผ๋ฌธ์€ ์ด๋“ค๊ณผ SDFยทGPUยท์ ‘์ด‰ ์ถ•์†Œ๋ผ๋Š” ๋„๊ตฌ๋Š” ๊ณต์œ ํ•˜์ง€๋งŒ, ์ „์ฒด ๋ถ„ํฌ ์ ‘์ด‰๋ฉด์„ ๋ณต์›ํ•ด ๋ฉด์  ์˜์กด ํšจ๊ณผ๋ฅผ ์‚ด๋ฆฐ๋‹ค๋Š” ์ ์—์„œ ๋‹ค๋ฆ…๋‹ˆ๋‹ค(์„ ํ–‰ SDF ์  ์ ‘์ด‰์€ ๋ฉด์  ํšจ๊ณผ๊ฐ€ ์—†์Œ).
  • MuJoCo์˜ native SDF ์ ‘์ด‰: SDF ๊ต์ฐจ์—์„œ ๊ทธ๋ž˜๋””์–ธํŠธ ํ•˜๊ฐ•์œผ๋กœ ์ ‘์ด‰์ ์„ ์ฐพ์ง€๋งŒ ์—ญ์‹œ ๋ถ„ํฌ ์ ‘์ด‰๋ฉด ๋ณต์›์€ ๋ชฉํ‘œ๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด‰๊ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ(Tacto, Taxim, TacSL)์™€ Leins et al. (Hydroelastictouch): ๋ณธ ๋…ผ๋ฌธ์˜ ์‘์šฉ 1์€ ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์ ‘์ด‰๋ฉด์„ ์ด‰๊ฐ ์„ผ์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์ง์ ‘ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ์ ์—์„œ ์ด ๊ณ„์—ด๊ณผ ๋งž๋‹ฟ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝ ๋ฐ ๊ฒฐ๋ก 

์ด ๋…ผ๋ฌธ์€ โ€œํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์ ‘์ด‰์„ ๋ถ€ํ˜ธ ๊ฑฐ๋ฆฌ์žฅ(SDF) ๋งŒ์œผ๋กœ, GPU์—์„œ ๋๊นŒ์ง€ ๊ณ„์‚ฐํ•œ๋‹คโ€๋Š” ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ํ†ต์ฐฐ์€ ๋‘ ๋ฌผ์ฒด์˜ ์••๋ ฅ ํ‰ํ˜•๋ฉด์ด ๊ฐ•์„ฑ ๊ฐ€์ค‘ SDF ์ฐจ์ด์žฅ g = k_A\phi_A - k_B\phi_B ์˜ ์˜-๋ ˆ๋ฒจ์…‹์ด๋ผ๋Š” ์ (์‹ 1~2)์ด๋ฉฐ, ์ด๋ฅผ ๋งˆ์นญ ํ๋ธŒ๋กœ ์‚ผ๊ฐํ™”ํ•˜๊ณ , ๊ณ„์ธต์  ๊ฐ€์ง€์น˜๊ธฐ๋กœ GPU์—์„œ ๋น ๋ฅด๊ฒŒ ๋ฝ‘์€ ๋’ค, ํ•ฉ๋ ฅยทํ•ฉ๋ชจ๋ฉ˜ํŠธยท๋น„ํ‹€๋ฆผ ์šฉ๋Ÿ‰์„ ๋ณด์กดํ•˜๋Š” ์ ‘์ด‰ ์ถ•์†Œ(์‹ 5~8)๋กœ ๋‹ค์šด์ŠคํŠธ๋ฆผ ์†”๋ฒ„์— ๋„˜๊น๋‹ˆ๋‹ค.

๊ธฐ์—ฌ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ๋ฉด์ฒด ๋ฉ”์‹œ ์—†์ด SDF๋งŒ์œผ๋กœ ํ•˜์ด๋“œ๋กœ์ผ๋ž˜์Šคํ‹ฑ ์ ‘์ด‰๋ฉด์„ ์ •์˜ยท์ถ”์ถœํ•˜๋Š” ์ˆœ์ˆ˜ SDF ์ •์‹ํ™”.
  2. ๊ณ„์ธต์  ๊ฐ€์ง€์น˜๊ธฐ + narrow-band SDF๋กœ ๋“ฑ์••๋ฉด ์ถ”์ถœ์„ GPU์—์„œ ํšจ์œจํ™”.
  3. ๋ Œ์น˜ยท๋ชจ๋ฉ˜ํŠธ๋ฅผ ๋ณด์กดํ•˜๋ฉด์„œ ์ ‘์ด‰์  ์ˆ˜๋ฅผ 200๋ฐฐ ์ด์ƒ ์ค„์ด๋Š” ์ ‘์ด‰ ์ถ•์†Œ ๊ธฐ๋ฒ•.
  4. Newton ํ”„๋กœ์ ํŠธ์— ํ†ตํ•ฉ๋˜์–ด XPBD/MuJoCo Warp์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, ์ด‰๊ฐ ์„ผ์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ๋ฉด์  ๋ถ„ํ•ด ๋™์—ญํ•™(ํŽœ ๋–จ์–ด๋œจ๋ฆฌ๊ธฐ)์—์„œ ์  ์ ‘์ด‰์ด ๋ชป ํ•˜๋Š” ๊ฑฐ๋™์„ ์žฌํ˜„.

๋กœ๋ด‡ ์—ฐ๊ตฌ์ž ๊ด€์ ์—์„œ ๊ฐ€์น˜๋Š” ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ณผ๋กยท๊ณ ํ•ด์ƒ๋„ ํ˜•์ƒ์—์„œ ๋ฉด์  ์˜์กด ์ ‘์ด‰์„ ์‚ฌ์‹ค์ ์œผ๋กœ, ๊ทธ๋ฆฌ๊ณ  ์ˆ˜๋ฐฑ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณ‘๋ ฌ๋กœ ๋น ๋ฅด๊ฒŒ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ ‘์ด‰ ํ’๋ถ€ ๋งค๋‹ˆํ“ฐ๋ ˆ์ด์…˜(์ •๋ฐ€ ์กฐ๋ฆฝ, ๋„๊ตฌ ์‚ฌ์šฉ, ์ด‰๊ฐ ๊ธฐ๋ฐ˜ ์ •์ฑ… ํ•™์Šต)์˜ sim-to-real์— ์ง์ ‘์ ์ธ ๋ฌด๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ˜„์žฌ๊นŒ์ง€์˜ ๊ฒ€์ฆ์ด ๋Œ€์ฒด๋กœ ์ •์„ฑ์ ์ด๋ผ๋Š” ์ ์—์„œ, ์‹ค์ œ ๋กœ๋ด‡ ์ธก์ •๊ณผ์˜ ์ •๋Ÿ‰ ๋Œ€์กฐ, ์ถ•์†Œ ์˜ค์ฐจ์˜ ์ฒด๊ณ„์  ๋ถ„์„, ๋ฏธ๋ถ„ ๊ฐ€๋Šฅ ๊ตฌํ˜„์˜ ์™„์„ฑ์ด ํ›„์†์œผ๋กœ ์ฑ„์›Œ์ ธ์•ผ ํ•  ๋นˆ์นธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„, โ€œ์ •ํ™•ํ•œ ์ ‘์ด‰ ๋ฌผ๋ฆฌโ€์™€ โ€œGPU ๊ทœ๋ชจ์˜ ์†๋„โ€๋ผ๋Š” ์˜ค๋ž˜ ์ƒ์ถฉํ•˜๋˜ ๋‘ ๋ชฉํ‘œ๋ฅผ SDF๋ผ๋Š” ๊ณตํ†ต ์–ธ์–ด๋กœ ์ž‡๋Š” ๊น”๋”ํ•œ ๋ฐฉํ–ฅ ์ œ์‹œ๋ผ๋Š” ์ ์—์„œ ์ฃผ๋ชฉํ•  ๋งŒํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

Copyright 2026, JungYeon Lee