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)"]
๐GPU-Accelerated Hydroelastic Contact
๐ 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๊ฐ).
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 ์ด๋ผ ๋ถ๋ฆ ๋๋ค)์ ์ ์ฒด์ ๊ทนํ ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค. ๊ทธ๋์ ๋ฑ์น๋ฉด์ ๋ด์ ๋ณต์ ๋ง ๋น ๋ฅด๊ฒ ๊ณจ๋ผ๋ด๋ ๊ณ์ธต์ ํํฐ๋ฅผ ๋ก๋๋ค.
- SDF ๊ฒฝ๊ณ์์(bounding box)๊ฐ ๊ฒน์น๋ ์ ์ฌ์ ์ถฉ๋ ์ A, B ๋ฅผ ๋จผ์ ๊ฒ์ถํฉ๋๋ค.
- SDF๋ฅผ 8\times8\times8 ๋ณต์ ๋ธ๋ก์ผ๋ก ๋๋๋๋ค. ๋ธ๋ก ์ค์ฌ์์ g(\mathbf{x}_T) ๋ฅผ ํ๊ฐํ๊ณ , ๊ฐ์ฑ ๋ณด์ ๋ ๊ฒฝ๊ณ ๋ฐ๊ฒฝ R_T = r(k_A+k_B) (์ฌ๊ธฐ์ r ์ ๋ธ๋ก์ ๊ธฐํ ๋ฐ๋๊ฐ์ ์ ๋ฐ)์ ๋น๊ตํฉ๋๋ค. ๋ง์ฝ |g(\mathbf{x}_T)| > R_T ์ด๋ฉด, ๊ทธ ๋ธ๋ก์ ๋ฑ์น๋ฉด์ ์ ๋ ํฌํจํ ์ ์์ผ๋ฏ๋ก ํต์งธ๋ก ๋ฒ๋ฆฝ๋๋ค. (๋ณด์์ ์ธ ๋ณด์ฅ: ๋ธ๋ก ์์์ g ๊ฐ ์์ ์ง๋๋ ค๋ฉด ์ค์ฌ๊ฐ์ด ์ด ๋ฐ๊ฒฝ๋ณด๋ค ์์์ผ ํจ)
- ์ด์๋จ์ ๋ธ๋ก์ 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)๋ก ๋ค์ด์คํธ๋ฆผ ์๋ฒ์ ๋๊น๋๋ค.
๊ธฐ์ฌ๋ฅผ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฌ๋ฉด์ฒด ๋ฉ์ ์์ด SDF๋ง์ผ๋ก ํ์ด๋๋ก์ผ๋์คํฑ ์ ์ด๋ฉด์ ์ ์ยท์ถ์ถํ๋ ์์ SDF ์ ์ํ.
- ๊ณ์ธต์ ๊ฐ์ง์น๊ธฐ + narrow-band SDF๋ก ๋ฑ์๋ฉด ์ถ์ถ์ GPU์์ ํจ์จํ.
- ๋ ์นยท๋ชจ๋ฉํธ๋ฅผ ๋ณด์กดํ๋ฉด์ ์ ์ด์ ์๋ฅผ 200๋ฐฐ ์ด์ ์ค์ด๋ ์ ์ด ์ถ์ ๊ธฐ๋ฒ.
- Newton ํ๋ก์ ํธ์ ํตํฉ๋์ด XPBD/MuJoCo Warp์์ ๋์ํ๋ฉฐ, ์ด๊ฐ ์ผ์ ์๋ฎฌ๋ ์ด์ ๊ณผ ๋ฉด์ ๋ถํด ๋์ญํ(ํ ๋จ์ด๋จ๋ฆฌ๊ธฐ)์์ ์ ์ ์ด์ด ๋ชป ํ๋ ๊ฑฐ๋์ ์ฌํ.
๋ก๋ด ์ฐ๊ตฌ์ ๊ด์ ์์ ๊ฐ์น๋ ๋ถ๋ช ํฉ๋๋ค. ๋น๋ณผ๋กยท๊ณ ํด์๋ ํ์์์ ๋ฉด์ ์์กด ์ ์ด์ ์ฌ์ค์ ์ผ๋ก, ๊ทธ๋ฆฌ๊ณ ์๋ฐฑ ์ธ์คํด์ค๋ฅผ ๋ณ๋ ฌ๋ก ๋น ๋ฅด๊ฒ ๋๋ฆด ์ ์๋ค๋ ๊ฒ์ ์ ์ด ํ๋ถ ๋งค๋ํฐ๋ ์ด์ (์ ๋ฐ ์กฐ๋ฆฝ, ๋๊ตฌ ์ฌ์ฉ, ์ด๊ฐ ๊ธฐ๋ฐ ์ ์ฑ ํ์ต)์ sim-to-real์ ์ง์ ์ ์ธ ๋ฌด๊ธฐ๊ฐ ๋ฉ๋๋ค. ๋ค๋ง ํ์ฌ๊น์ง์ ๊ฒ์ฆ์ด ๋์ฒด๋ก ์ ์ฑ์ ์ด๋ผ๋ ์ ์์, ์ค์ ๋ก๋ด ์ธก์ ๊ณผ์ ์ ๋ ๋์กฐ, ์ถ์ ์ค์ฐจ์ ์ฒด๊ณ์ ๋ถ์, ๋ฏธ๋ถ ๊ฐ๋ฅ ๊ตฌํ์ ์์ฑ์ด ํ์์ผ๋ก ์ฑ์์ ธ์ผ ํ ๋น์นธ์ ๋๋ค. ๊ทธ๋ผ์๋, โ์ ํํ ์ ์ด ๋ฌผ๋ฆฌโ์ โGPU ๊ท๋ชจ์ ์๋โ๋ผ๋ ์ค๋ ์์ถฉํ๋ ๋ ๋ชฉํ๋ฅผ SDF๋ผ๋ ๊ณตํต ์ธ์ด๋ก ์๋ ๊น๋ํ ๋ฐฉํฅ ์ ์๋ผ๋ ์ ์์ ์ฃผ๋ชฉํ ๋งํ ์์ ์ ๋๋ค.