Curieux.JY
  • JungYeon Lee
  • Post
  • Note

On this page

  • ๐Ÿ” Ping Review
  • ๐Ÿ”” Ring Review

๐Ÿ“ƒTACTO ๋ฆฌ๋ทฐ

tactile
simulation
A Fast, Flexible, and Open-source Simulator for High-Resolution Vision-based Tactile Sensors
Published

March 25, 2026

  • Paper Link

  • Code Link

  • Shaoxiong Wang, Mike Lambeta, Po-Wei Chou, Roberto Calandra

  • IEEE Robotics and Automation Letters (RA-L), 2022

  1. ๐Ÿ’ก TACTO๋Š” ๊ธฐ์กด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋“ค์ด ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ค์› ๋˜ ๊ณ ํ•ด์ƒ๋„ vision-based tactile sensors์˜ ์‚ฌ์‹ค์ ์ธ ์ด‰๊ฐ ์‹ ํ˜ธ๋ฅผ ์ดˆ๋‹น ์ˆ˜๋ฐฑ ํ”„๋ ˆ์ž„์œผ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•œ ์˜คํ”ˆ์†Œ์Šค ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.
  2. โš™๏ธ ์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” PyBullet ๊ฐ™์€ ๋ฌผ๋ฆฌ ์—”์ง„๊ณผ Pyrender ๊ฐ™์€ ๋ Œ๋”๋ง ์—”์ง„์„ ์—ฐ๊ฒฐํ•˜๋ฉฐ, ๋ฌผ์ฒด ๋ฉ”์‰ฌ๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๊ณ  ํฌ์ฆˆ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” OpenGL ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ๋†’์€ ์œ ์—ฐ์„ฑ๊ณผ ๊ณ ์† ๋ Œ๋”๋ง์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. ๐ŸŽฏ ์ €์ž๋“ค์€ TACTO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 100๋งŒ ๊ฑด์˜ ๊ทธ๋žฉ ๋ฐ์ดํ„ฐ๋กœ ๊ทธ๋žฉ ์•ˆ์ •์„ฑ์„ ํ•™์Šตํ•˜๊ณ , ๋Œ€๋ฆฌ์„ ์กฐ์ž‘ ์ œ์–ด๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋ฉฐ, Sim2Real ๊ฒฉ์ฐจ๋ฅผ ์ค„์ด๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๋กœ๋ด‡ ๋ฐ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ์˜ ์ž ์žฌ๋ ฅ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” Ping Review

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

TACTO๋Š” ๊ณ ํ•ด์ƒ๋„ ์‹œ๊ฐ ๊ธฐ๋ฐ˜ ์ด‰๊ฐ ์„ผ์„œ๋ฅผ ์œ„ํ•œ ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•˜๋ฉฐ ์˜คํ”ˆ ์†Œ์Šค ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ๋กœ๋ด‡ ๊ณตํ•™ ๋ฐ ์ œ์–ด ํ•™์Šต ๋ถ„์•ผ์—์„œ ์ƒˆ๋กœ์šด ๋ฐœ์ „์„ ํ”„๋กœํ† ํƒ€์ดํ•‘, ๋””๋ฒ„๊น… ๋ฐ ๋ฒค์น˜๋งˆํ‚นํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ๋ฌผ๋ฆฌ ์—”์ง„๋“ค์€ ์‹œ๊ฐ ๊ธฐ๋ฐ˜ ์ด‰๊ฐ ์„ผ์„œ์™€ ๊ฐ™์€ ๊ณ ํ•ด์ƒ๋„ ์ด‰๊ฐ ์„ผ์„œ์˜ ์ •ํ™•ํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋Š”๋ฐ, ์ด๋Š” ์ ‘์ด‰ ์—ญํ•™๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„ผ์„œ์˜ ๊ด‘ํ•™์  ํŠน์„ฑ ๋ฐ ํ•ด๋‹น ์กฐ๋ช…์„ ๋ชจ๋ธ๋งํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. TACTO๋Š” ์ด๋Ÿฌํ•œ ๊ฒฉ์ฐจ๋ฅผ ํ•ด์†Œํ•˜์—ฌ ์ดˆ๋‹น ์ˆ˜๋ฐฑ ํ”„๋ ˆ์ž„์œผ๋กœ ์‚ฌ์‹ค์ ์ธ ๊ณ ํ•ด์ƒ๋„ ํ„ฐ์น˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, DIGIT ๋ฐ OmniTact๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ์‹œ๊ฐ ๊ธฐ๋ฐ˜ ์ด‰๊ฐ ์„ผ์„œ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋„๋ก ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋…ผ๋ฌธ์€ TACTO์˜ ๊ตฌํ˜„์„ ์ด๋ˆ ์›์น™๋“ค๊ณผ ๊ทธ ์›์น™๋“ค์ด ์•„ํ‚คํ…์ฒ˜์— ์–ด๋–ป๊ฒŒ ๋ฐ˜์˜๋˜์—ˆ๋Š”์ง€ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. TACTO๋Š” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰, ์œ ์—ฐ์„ฑ, ํ˜„์‹ค์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๋ฐฉ๋ฒ•๋ก :

TACTO๋Š” ์ ‘์ด‰ ์˜์—ญ์˜ ๊ตญ๋ถ€ ๊ธฐํ•˜ํ•™(Depth) ๋ฐ ํ•ด๋‹น ๋ Œ๋”๋ง(RGB)์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด PyBullet๊ณผ ๊ฐ™์€ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ Pyrender(OpenGL ๊ธฐ๋ฐ˜)์™€ ๊ฐ™์€ ๋ฐฑ์—”๋“œ ๋ Œ๋”๋ง ์—”์ง„์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ํ•œ๊ณ„์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด โ€œ๋™๊ธฐํ™”๋œ ์žฅ๋ฉด์—์„œ OpenGL์„ ์‚ฌ์šฉํ•œ RGB ๋ Œ๋”๋งโ€ ๋ฐฉ์‹์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

  1. ํ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ RGB ๋ Œ๋”๋ง (๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋œ ๊ฐ•๋ ฅ): PyBullet์˜ ๋‚ด์žฅ ์นด๋ฉ”๋ผ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊นŠ์ด ๋งต์—์„œ RGB ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ์˜ ๋ฐ˜์‚ฌ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€๋งŒ, ๋น›์ด ์ ค ํ‘œ๋ฉด์—์„œ ์นด๋ฉ”๋ผ๋กœ ํ•œ ๋ฒˆ๋งŒ ๋ฐ˜์‚ฌ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฏ€๋กœ, ๋ฐ˜์‚ฌ, ๊ตด์ ˆ, ๊ทธ๋ฆผ์ž์™€ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์— ์ ํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ GPU ๊ฐ€์†ํ™”๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  2. ๊นŠ์ด์—์„œ OpenGL์„ ์‚ฌ์šฉํ•œ RGB ๋ Œ๋”๋ง (๊ฐ•๋ ฅํ•˜์ง€๋งŒ ๋А๋ฆผ): OpenGL์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๊นŠ์ด ๋งต์œผ๋กœ๋ถ€ํ„ฐ RGB ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฏธ๋Ÿฌ, ํˆฌ๋ช… ๊ฐ์ฒด, ๊ทธ๋ฆผ์ž, GPU ๊ฐ€์† ๋“ฑ์„ ์ง€์›ํ•˜์ง€๋งŒ, ๊นŠ์ด ๋งต์—์„œ ์ƒ์„ฑ๋œ ๋ฉ”์‹œ๋ฅผ OpenGL๋กœ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” I/O ๋ณ‘๋ชฉ ํ˜„์ƒ์œผ๋กœ ์ธํ•ด ์†๋„๊ฐ€ ์ดˆ๋‹น 20ํ”„๋ ˆ์ž„์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  3. ๋™๊ธฐํ™”๋œ ์žฅ๋ฉด์—์„œ OpenGL์„ ์‚ฌ์šฉํ•œ RGB ๋ Œ๋”๋ง (์ œ์•ˆ๋œ ๋ฐฉ์‹ - ๊ฐ•๋ ฅํ•˜๊ณ  ๋น ๋ฆ„): TACTO์˜ ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. I/O ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด, TACTO๋Š” ์ ค ํ‘œ๋ฉด๊ณผ ๊ฐ์ฒด ๋ฉ”์‹œ๋ฅผ OpenGL ์žฅ๋ฉด์— ๋ฏธ๋ฆฌ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ(์˜ˆ: PyBullet)์—์„œ ๊ฐ์ฒด์™€ ์„ผ์„œ์˜ ํฌ์ฆˆ(x, y, z, \text{roll}, \text{pitch}, \text{yaw} ๋˜๋Š” ์‚ฌ์›์ˆ˜ x, y, z, q_x, q_y, q_z, q_w)๋ฅผ ๊ฐ€์ ธ์™€ ๋ Œ๋”๋ง ์—”์ง„์—์„œ ํ•ด๋‹น ํฌ์ฆˆ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ณ , ์žฌ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์€ ๋А๋ฆฌ์ง€๋งŒ, ํฌ์ฆˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋น ๋ฅด๋ฏ€๋กœ, ์ด ๋ฐฉ์‹์„ ํ†ตํ•ด ์ดˆ๋‹น ์ตœ๋Œ€ 200ํ”„๋ ˆ์ž„์˜ ๋†’์€ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ์ดˆ๊ธฐํ™” (Initialize): TACTO๋Š” ์„ผ์„œ ๊ตฌ์„ฑ(์นด๋ฉ”๋ผ, ์กฐ๋ช…, ์ ค ๋ฉ”์‹œ)์„ ๋กœ๋“œํ•˜๊ณ  ๋ Œ๋”๋ง ์—”์ง„์— ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์žฅ๋ฉด ์ƒ์„ฑ (Create Scene): PyBullet์ด ๊ฐ์ฒด URDF๋ฅผ ์žฅ๋ฉด์— ๋กœ๋“œํ•˜๋ฉด, TACTO๋Š” URDF๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ๋ถ„์„๋œ ๋ฉ”์‹œ๋ฅผ ๋ Œ๋”๋ง ์—”์ง„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์Šคํ… (Step Simulation): PyBullet์ด ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(์ ‘์ด‰ ํž˜, ๊ฐ์ฒด ํฌ์ฆˆ ๋“ฑ)์„ ๊ณ„์‚ฐํ•œ ํ›„, TACTO๋Š” PyBullet์—์„œ ๊ฐ ๋งํฌ์˜ ํฌ์ฆˆ๋ฅผ ๊ฐ€์ ธ์™€ ๋ Œ๋”๋ง ์—”์ง„์˜ ๊ฐ์ฒด ๋ฐ ์„ผ์„œ ํฌ์ฆˆ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ณ , ๋ Œ๋”๋ง๋œ ์ด‰๊ฐ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•:

  • ๋น ๋ฅธ ์†๋„: 12K ๋ฉด์„ ๊ฐ€์ง„ ๊ฐ์ฒด ๋ฉ”์‹œ์™€ ์ƒํ˜ธ์ž‘์šฉ ์‹œ, 160x120 ํ•ด์ƒ๋„์—์„œ GPU๋กœ ๋‹จ์ผ DIGIT ์„ผ์„œ๋ฅผ ์ดˆ๋‹น 200ํ”„๋ ˆ์ž„์œผ๋กœ ๋ Œ๋”๋ง ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ ‘์ด‰ํ•˜๋Š” ๊ฐ์ฒด์˜ ์ˆ˜์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์†๋„๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›๋„๋ก ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์—ฐ์„ฑ: ๊ตฌ์„ฑ ํŒŒ์ผ ๋ณ€๊ฒฝ๋งŒ์œผ๋กœ DIGIT ๋ฐ OmniTact์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์„ผ์„œ ๋””์ž์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํž˜ ์˜์กด์  ๋ณ€ํ˜•: ๋ฌผ๋ฆฌ ์—”์ง„์—์„œ ์ธก์ •๋œ ์ ‘์ด‰ ํž˜์„ ์ ค ๋ฉ”์‹œ์˜ ๋ณ€ํ˜• ๊นŠ์ด์— ๋งคํ•‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ์ ค์˜ ๋™์  ๋ฒ”์œ„ ๋ณ€ํ˜•์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์„ ํ˜• ํƒ„์„ฑ์„ ๊ทผ์‚ฌํ•˜๋Š” ์กฐ๊ฐ๋ณ„ ์„ ํ˜• ๋งคํ•‘์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊นŠ์ด๋กœ๋ถ€ํ„ฐ ๋ Œ๋”๋ง: ๊นŠ์ด ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด‰๊ฐ ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์˜ต์…˜๋„ ์ œ๊ณตํ•˜์—ฌ, ๋” ํ˜„์‹ค์ ์ธ ์ด‰๊ฐ ์ด๋ฏธ์ง€๋ฅผ ์œ„ํ•ด ๊นŠ์ด ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค์ œ ์„ผ์„œ๋กœ๋ถ€ํ„ฐ์˜ ๋ณด์ •: ์‹ค์ œ ์„ผ์„œ์—์„œ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ Œ๋”๋ง์„ ๋ฏธ์„ธ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ ˆ์ฐจ๋ฅผ ์ง€์›ํ•˜์—ฌ, ์‹ค์ œ ์ธก์ •๊ณผ ์œ ์‚ฌํ•œ ์กฐ๋ช… ๋ถ„ํฌ ๋ฐ ๊ทธ๋ฆผ์ž๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ๋ฌผ๋ฆฌ ์—”์ง„๊ณผ์˜ ํ˜ธํ™˜์„ฑ: PyBullet์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๊ฐ์ฒด/๋งํฌ ํฌ์ฆˆ ๋ฐ ์ ‘์ด‰ ํž˜์„ ๋™๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ ๊นŠ์ด ์ •๋ณด๋งŒ์œผ๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๋ฌผ๋ฆฌ ์—”์ง„๊ณผ๋„ ์—ฐ๋™ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹คํ—˜:

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

Sim2Real ์‹คํ—˜:

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

๊ฒฐ๋ก :

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

๐Ÿ”” Ring Review

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

  • ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ๋ฌผ์ฒด pose๋ฅผ OpenGL ๋ Œ๋”๋Ÿฌ์— ๋™๊ธฐํ™”ํ•˜์—ฌ, depth map ๋ณ€ํ™˜ ์—†์ด mesh๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๊ณ  pose๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์†๋„์™€ ์œ ์—ฐ์„ฑ์„ ๋™์‹œ์— ํ™•๋ณด
  • 100๋งŒ ๊ฐœ์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ grasp์œผ๋กœ grasp stability ์˜ˆ์ธก ํ•™์Šต โ€” ์ด‰๊ฐ์ด ๋น„์ „๋ณด๋‹ค ํ›จ์”ฌ ์ ์€ ๋ฐ์ดํ„ฐ๋กœ ํ•™์Šต ๊ฐ€๋Šฅํ•จ์„ ์ž…์ฆ
  • Marble manipulation ํƒœ์Šคํฌ์—์„œ Bayesian optimization์œผ๋กœ 8๋ถ„ ๋งŒ์— ์ œ์–ด ์ •์ฑ… ํ•™์Šต ์„ฑ๊ณต
  • ๋‹จ์ผ DIGIT ์„ผ์„œ ๊ธฐ์ค€ 160ร—120 ํ•ด์ƒ๋„์—์„œ GPU ์œ„์—์„œ 200 FPS ๋‹ฌ์„ฑ
  • Sim2Real: color jittering augmentation ์ ์šฉ ์‹œ pose estimation์—์„œ 1.66ยฑ0.16 mm ์œ„์น˜ ์˜ค์ฐจ ๋‹ฌ์„ฑ (์‹ค์ œ ๋ฐ์ดํ„ฐ 64๊ฐœ๋กœ ํ•™์Šตํ•œ ๊ฒฐ๊ณผ์™€ ๋น„์Šทํ•œ ์ˆ˜์ค€)

Copyright 2026, JungYeon Lee