Curieux.JY
  • JungYeon Lee
  • Post
  • ๐Ÿ•ธ๏ธ Graph
  • Lecture
  • Note

On this page

  • ๐Ÿ” Ping Review
  • ๐Ÿ”” Ring Review
    • ํ•œ ์ค„๋กœ ์‹œ์ž‘ํ•˜๋ฉด
    • ์„œ๋ก ๊ณผ ๋ฐฐ๊ฒฝ: ์™œ โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๊ฐ€ ํ•„์š”ํ•œ๊ฐ€
    • ๋ฐฉ๋ฒ•: ์„ธ ๊ฐ€์ง€ ์ถ”์ƒํ™”๋กœ ์„ผ์„œ ๋‹ค์–‘์„ฑ์„ ํก์ˆ˜ํ•˜๊ธฐ
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค๊ณ„ ์ฒ ํ•™
    • ํƒœ์Šคํฌ๋ณ„ ์„ค๋ช…
      • ํƒœ์Šคํฌ 1: Touch detection (์ ‘์ด‰ ๊ฐ์ง€)
      • ํƒœ์Šคํฌ 2: Slip detection (๋ฏธ๋„๋Ÿฌ์ง ๊ฐ์ง€)
      • ํƒœ์Šคํฌ 3: Contact area / pose ์ถ”์ •
      • ๋ณด๋„ˆ์Šค: ํ•˜๋“œ์›จ์–ด ์‹คํ—˜ ๋ชจ๋“ˆ
    • ๋น„ํŒ์ ์œผ๋กœ ๋ณด๋ฉด
      • ๊ฐ•์ 
      • ์•ฝ์ 
    • ๊ด€๋ จ ์—ฐ๊ตฌ์™€์˜ ์ž๋ฆฌ ๋งค๊น€
    • Allegro Hand / dexterous manipulation ์—ฐ๊ตฌ์ž ์ž…์žฅ์—์„œ
    • ์š”์•ฝ ๋ฐ ๊ฒฐ๋ก 

๐Ÿ“ƒPyTouch ๋ฆฌ๋ทฐ

tactile
machine-learning
PyTouch: A Machine Learning Library for Tactile Sensing
Published

March 26, 2026

  • Paper Link

  • Code Link

  • Mike Lambeta, Huazhe Xu, Jingwei Xu, Po-Wei Chou, Shaoxiong Wang, Trevor Darrell, Roberto Calandra

  • IEEE International Conference on Robotics and Automation (ICRA), 2021

  1. ๐Ÿ’ก PyTouch๋Š” vision-based ์ด‰๊ฐ ์„ผ์„œ์˜ raw ์ด๋ฏธ์ง€๋ฅผ control๊ณผ decision-making์— ๋ฐ”๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ณ ์ˆ˜์ค€ ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š”, ์„ผ์„œ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š”(sensor-agnostic) ์˜คํ”ˆ์†Œ์Šค ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  2. โš™๏ธ โ€œtouch processing as a serviceโ€ ์ฒ ํ•™ ์•„๋ž˜, DIGITยทOmniTactยทGelSight ๊ฐ™์€ ์„œ๋กœ ๋‹ค๋ฅธ ์„ผ์„œ๋ฅผ ๋™์ผํ•œ API๋กœ ๋‹ค๋ฃจ๊ณ  ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ์„ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›์•„ plug-and-play ๋ฐฉ์‹์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ๐ŸŽฏ touch detection, slip detection, contact area(์ž์„ธ) ์ถ”์ • ๊ฐ™์€ ํ•ต์‹ฌ ํƒœ์Šคํฌ๋ฅผ ๋ชจ๋“ˆ๋กœ ์ œ๊ณตํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์ œ์กฐ์‚ฌ ์„ผ์„œ๋ฅผ ํ•จ๊ป˜ ํ•™์Šตํ•œ joint model์ด ๋‹จ์ผ ์„ผ์„œ ๋ชจ๋ธ๋ณด๋‹ค ์šฐ์ˆ˜ํ•˜๊ณ  transfer learning์ด ์‹ ๊ทœ ์„ผ์„œ ์ ์‘์„ ๊ฐ€์†ํ•œ๋‹ค๋Š” ์ ์„ ์‹ค์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” Ping Review

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

PyTouch๋Š” vision-based ์ด‰๊ฐ ์„ผ์„œ(DIGIT, OmniTact, GelSight ๋“ฑ)์˜ raw ์ธก์ •๊ฐ’์„ โ€œ์ง€๊ธˆ ๋ฌผ์ฒด์— ๋‹ฟ์•˜๋Š”๊ฐ€โ€, โ€œ๋ฌผ์ฒด๊ฐ€ ๋ฏธ๋„๋Ÿฌ์ง€๊ณ  ์žˆ๋Š”๊ฐ€โ€, โ€œ์ ‘์ด‰ ์˜์—ญ์˜ ์œ„์น˜์™€ ๋ฐฉํ–ฅ์€ ์–ด๋””์ธ๊ฐ€โ€ ๊ฐ™์€ ๊ณ ์ˆ˜์ค€ ์‹ ํ˜ธ๋กœ ๋ฐ”๊ฟ” ์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ์—์„œ OpenCV์™€ PyTorch๊ฐ€ ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ํ‘œ์ค€ํ™”ํ•˜๊ณ  ์ง„์ž… ์žฅ๋ฒฝ์„ ๋‚ฎ์ถ˜ ๊ฒƒ์ฒ˜๋Ÿผ, PyTouch๋Š” ์ด‰๊ฐ ์„ผ์‹ฑ(touch processing) ์˜์—ญ์—์„œ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋ ค๋Š” ์‹œ๋„์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์—ฐ๊ตฌ์ž๋งˆ๋‹ค ๋งค๋ฒˆ ์ƒˆ๋กœ ์งœ๋˜ ์ผํšŒ์„ฑ touch processing ์ฝ”๋“œ๋ฅผ ๊ฒ€์ฆ๋œ ๋ชจ๋“ˆ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ์€ ์„ผ์„œ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ์ถ”์ƒํ™”์ž…๋‹ˆ๋‹ค. PyTouch๋Š” ์„ผ์„œ ์ข…๋ฅ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋™์ผํ•œ high-level API๋ฅผ ์ œ๊ณตํ•˜๊ณ , ์ดˆ๊ธฐํ™” ์‹œ์ ์— ํ•ด๋‹น ์„ผ์„œ์— ๋งž๋Š” ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ์„ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋ธ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋„ is_touched(), is_slipping() ๊ฐ™์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ์ด‰๊ฐ ์ธ์‹ ๊ธฐ๋Šฅ์„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


PyTouch ์ „์ฒด ๊ตฌ์กฐ(Fig. 1) โ€” Live/Static/Video ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ดˆ๊ธฐํ™”ยท์ „์ฒ˜๋ฆฌยท๋ชจ๋ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌยทํ•™์Šต์„ ๊ฑฐ์ณ Touch Detection, Slip Detection, Contact Area ๋“ฑ์˜ ํƒœ์Šคํฌ๋ฅผ PyTouch Interface๋กœ ๋…ธ์ถœํ•œ๋‹ค โ€” ๋…ผ๋ฌธ Fig. 1

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

PyTouch๋Š” ์„ธ ๊ฐ€์ง€ ์ถ”์ƒํ™” ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  1. ์„ผ์„œ ์ถ”์ƒํ™”(Sensor abstraction): DIGIT(240ร—320ร—3), OmniTact(480ร—640ร—3), GelSight(1280ร—960ร—3)์ฒ˜๋Ÿผ ํ•ด์ƒ๋„์™€ ๊ด‘ํ•™ ํŠน์„ฑ์ด ๋‹ค๋ฅธ ์„ผ์„œ๋ฅผ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ƒˆ ์„ผ์„œ๋Š” custom configuration ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํƒœ์Šคํฌ ์ถ”์ƒํ™”(Task abstraction): โ€œ๋‹ฟ์•˜๋Š”๊ฐ€โ€, โ€œ๋ฏธ๋„๋Ÿฌ์ง€๋Š”๊ฐ€โ€, โ€œ์ ‘์ด‰ ์˜์—ญ์€ ์–ด๋””์ธ๊ฐ€โ€ ๊ฐ™์€ ๊ณตํ†ต ๋ชฉํ‘œ๋ฅผ ๋ชจ๋“ˆ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ชจ๋“ˆ์„ ํ•œ ์„œ๋น„์Šค๋กœ ๋ฌถ๋Š” high-level ์ธํ„ฐํŽ˜์ด์Šค์™€, ๊ฐ ๋ชจ๋“ˆ์— ๊ฐœ๋ณ„ ์ ‘๊ทผํ•˜๋Š” power-user ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘˜ ๋‹ค ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. ์„œ๋น„์Šค๋กœ์„œ์˜ ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ(Pre-trained models as a service): ์ดˆ๊ธฐํ™” ์‹œ์ ์— ์„ผ์„œ๋ณ„ ๋ชจ๋ธ(ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ + ๊ฐ€์ค‘์น˜๊ฐ€ ํŒจํ‚ค์ง•๋œ)์„ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ณ ์ˆ˜์ค€ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ ๋„ ๋ชจ๋ธ๋งŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” PyTorch ์œ„์— ๊ตฌ์ถ•๋˜์–ด ๋ชจ๋ธ์„ ์†์‰ฝ๊ฒŒ ๊ฐˆ์•„๋ผ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „ํ˜•์ ์ธ ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

import pytouch as pt

digit_pt = pt.init(pt.sensors.DigitSensor,
                   tasks={pt.tasks.TouchDetect, pt.tasks.SlipDetect})
digit = ...  # DIGIT ์„ผ์„œ ์—ฐ๊ฒฐ ๋ฐ ์ดˆ๊ธฐํ™”

touch, certainty = digit_pt.is_touched(digit.get_frame())
slipping, _ = digit_pt.is_slipping(digit.get_frames())

์ฃผ์š” ํŠน์ง•/ํƒœ์Šคํฌ:

  • Touch detection(์ ‘์ด‰ ๊ฐ์ง€): ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ์ ‘์ด‰ ์—ฌ๋ถ€ ๋ผ๋ฒจ(0/1)์„ ๋ถ€์—ฌํ•˜๋Š” image classification ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ResNet-18 ๋ฐฑ๋ณธ์„ ์“ฐ๊ณ  ์ž…๋ ฅ์„ 64ร—64๋กœ ์ •๊ทœํ™”ยท๋‹ค์šด์ƒ˜ํ”Œ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์„ผ์„œ๋ฅผ ํ•จ๊ป˜ ํ•™์Šตํ•œ joint model์ด ๋‹จ์ผ ์„ผ์„œ model๋ณด๋‹ค ๋” ๋†’์€ ์ •ํ™•๋„๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ถ”๋ก  ์†๋„๋Š” ํ”„๋ ˆ์ž„๋‹น ์•ฝ 5.89ยฑ0.46 ms๋กœ ์‹ค์‹œ๊ฐ„(์ˆ˜์‹ญ~140 fps ์ˆ˜์ค€) ๋™์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Slip detection(๋ฏธ๋„๋Ÿฌ์ง ๊ฐ์ง€): ์ด๋ฏธ์ง€ ์‹œํ€€์Šค์— ๋ฏธ๋„๋Ÿฌ์ง ์—ฌ๋ถ€๋ฅผ ๋ถ€์—ฌํ•˜๋Š” video classification ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ‘œ๋ฉด ๋งˆ๊ฐ์ด ๋‹ค๋ฅธ 40๊ฐœ ๋ฌผ์ฒด์— ๋Œ€ํ•ด ์‹œํ€€์Šค๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ํ”„๋ ˆ์ž„๋“ค์„ ๊ฒฐํ•ฉํ•œ ResNet-18 ๋ฐฉ์‹์ด 3D CNN๋ณด๋‹ค ์šฐ์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค(128 ํ”„๋ ˆ์ž„ ๊ธฐ์ค€ ์•ฝ 97% ์ •ํ™•๋„).
  • Contact area / pose ์ถ”์ •: ์ ‘์ด‰ ์˜์—ญ์— ํƒ€์›์„ ํ”ผํŒ…ํ•ด centroid์™€ ์žฅ์ถ•ยท๋‹จ์ถ• ๊ธธ์ด๋ฅผ ์ถ”์ •ํ•˜๊ณ , ํ‘œ๋ฉด์— ๋Œ€ํ•œ ์ ‘์ด‰ ๋ฐฉํ–ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Sensor experiments(ํ•˜๋“œ์›จ์–ด ์‹คํ—˜ ๋ชจ๋“ˆ): PyTouch๋ฅผ ์„ผ์„œ ์„ค๊ณ„ ๊ฒ€์ฆ์—๋„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ปจ๋Œ€ DIGIT์˜ ๋‹จ์ƒ‰(monochromatic) ๋Œ€ RGB ์กฐ๋ช… ์„ค๊ณ„๋ฅผ ๋น„๊ตํ•ด ์„ฑ๋Šฅ ์†์‹ค์„ ์ •๋Ÿ‰ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก :

PyTouch๋Š” vision-based ์ด‰๊ฐ ์„ผ์‹ฑ์„ ์œ„ํ•œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ œ์กฐ์‚ฌ ์„ผ์„œ์— ๊ฑธ์นœ ํ‰๊ฐ€๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ๊ณ , joint model์˜ ์šฐ์ˆ˜์„ฑ๊ณผ transfer learning์„ ํ†ตํ•œ ์‹ ๊ทœ ์„ผ์„œ ์ ์‘ ๊ฐ€์†์„ ๋ณด์˜€์œผ๋ฉฐ, ์‹ค์‹œ๊ฐ„ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•จ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” โ€œPyTorch์™€ OpenCV๊ฐ€ ์ปดํ“จํ„ฐ ๋น„์ „์— ํ•œ ์—ญํ• โ€์„ ์ด‰๊ฐ ์ฒ˜๋ฆฌ ๋ถ„์•ผ์—์„œ ์žฌํ˜„ํ•ด, ๊ฒ€์ฆ๋œ building block๊ณผ ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ๋กœ ์ง„์ž… ์žฅ๋ฒฝ์„ ๋‚ฎ์ถ”๊ณ  ์ด‰๊ฐ ์„ผ์‹ฑ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ”” Ring Review

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

ํ•œ ์ค„๋กœ ์‹œ์ž‘ํ•˜๋ฉด

์ด‰๊ฐ ์„ผ์„œ๊ฐ€ ์ ์  ํ”ํ•ด์ง€๋Š”๋ฐ, ๊ทธ raw ์ด๋ฏธ์ง€๋ฅผ ์˜๋ฏธ ์žˆ๋Š” ์‹ ํ˜ธ๋กœ ๋ฐ”๊พธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์งœ์•ผ ํ–ˆ๋‹ค. PyTouch๋Š” ์ด โ€œ๋ฐ”ํ€ด ์žฌ๋ฐœ๋ช…โ€ ๋ฌธ์ œ๋ฅผ ์ •๋ฉด์œผ๋กœ ๊ฒจ๋ƒฅํ•œ๋‹ค. ๋น„์ „ ๋ถ„์•ผ์˜ OpenCV์ฒ˜๋Ÿผ, ์ด‰๊ฐ ๋ถ„์•ผ์—๋„ ๊ฒ€์ฆ๋˜๊ณ  ์ตœ์ ํ™”๋œ ๊ณตํ†ต ํ•จ์ˆ˜ ๋ฌถ์Œ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ˆœํ•œ ์ฃผ์žฅ์—์„œ ์ถœ๋ฐœํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๋‚˜์˜จ ๊ฒƒ์ด ์„ผ์„œ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ , ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ์„ ์„œ๋น„์Šค์ฒ˜๋Ÿผ ๋‚ด๋ ค๋ฐ›์•„ ์“ฐ๋Š” plug-and-play ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” PyTouch๊ฐ€ ์™œ โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๋ผ๋Š” ํ˜•ํƒœ๋ฅผ ํƒํ–ˆ๋Š”์ง€, ์–ด๋–ค ์ถ”์ƒํ™”๋กœ ์„ผ์„œ ๋‹ค์–‘์„ฑ์„ ํก์ˆ˜ํ•˜๋Š”์ง€, ์„ธ ๊ฐ€์ง€ ํ•ต์‹ฌ ํƒœ์Šคํฌ๊ฐ€ ๊ฐ๊ฐ ๋ฌด์—‡์„ ํ’€๊ณ  ์–ด๋–ค ์ˆซ์ž๋ฅผ ๋ณด์˜€๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  dexterous manipulation์„ ํ•˜๋Š” ์—ฐ๊ตฌ์ž ์ž…์žฅ์—์„œ ์‹ค์ œ๋กœ ์–ด๋–ค ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ ํ•œ ํ˜ธํก์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค.

์„œ๋ก ๊ณผ ๋ฐฐ๊ฒฝ: ์™œ โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๊ฐ€ ํ•„์š”ํ•œ๊ฐ€

vision-based ์ด‰๊ฐ ์„ผ์„œ๋Š” ์ž‘์€ ์นด๋ฉ”๋ผ๊ฐ€ ๋ถ€๋“œ๋Ÿฌ์šด ์‹ค๋ฆฌ์ฝ˜ ์ ค ์•„๋ž˜๋ฅผ ๋“ค์—ฌ๋‹ค๋ณด๋Š” ๊ตฌ์กฐ๋‹ค. ๋ฌผ์ฒด๊ฐ€ ์ ค์„ ๋ˆ„๋ฅด๋ฉด ํ‘œ๋ฉด ๋ณ€ํ˜•์ด ์นด๋ฉ”๋ผ์— ์ผ์ข…์˜ โ€œ์ง€๋ฌธ ์ด๋ฏธ์ง€โ€๋กœ ์ฐํžŒ๋‹ค. DIGIT ๊ฐ™์€ ์ €๊ฐ€ ์„ผ์„œ์˜ ๋“ฑ์žฅ์œผ๋กœ ํ•˜๋“œ์›จ์–ด ์ง„์ž… ์žฅ๋ฒฝ์€ ํฌ๊ฒŒ ๋‚ฎ์•„์กŒ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๋Š” ๊ทธ ๋‹ค์Œ์ด๋‹ค. ์ด raw RGB ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์„œ โ€œ๋‹ฟ์•˜๋Š”์ง€โ€, โ€œ๋ฏธ๋„๋Ÿฌ์ง€๋Š”์ง€โ€, โ€œ์–ด๋””์— ๋‹ฟ์•˜๋Š”์ง€โ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ‘œ์ค€์ด ์—†์—ˆ๋‹ค.

๋…ผ๋ฌธ์€ ์ด ์ƒํ™ฉ์„ ๋น„์ „ ๋ถ„์•ผ ์ดˆ๊ธฐ์™€ ๋น„๊ตํ•œ๋‹ค. PyTorch์™€ Caffe๊ฐ€ ์‹ ๊ฒฝ๋ง ๊ฐœ๋ฐœยทํ™•์žฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ๊ณ , OpenCV๊ฐ€ โ€œํ”ํžˆ ์“ฐ์ด๊ณ , ํ…Œ์ŠคํŠธ๋˜๊ณ , ์ตœ์ ํ™”๋œ ํ•จ์ˆ˜ ๋ชจ์Œโ€์„ ์ œ๊ณตํ•˜๋ฉด์„œ ๋น„์ „ ์—ฐ๊ตฌ๊ฐ€ ํญ๋ฐœํ–ˆ๋‹ค. ๋ฐ˜๋ฉด ์ด‰๊ฐ ์ชฝ์€ โ€œ๋ฐ”๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” touch processing ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ทนํžˆ ์ œํ•œ์ โ€์ด์–ด์„œ, ๋ชจ๋‘๊ฐ€ ์ž๊ธฐ ์‹คํ—˜์šฉ touch processing ๋ฃจํ‹ด์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ํฉ์–ด์ง„ ๊ธฐ์—ฌ๋“ค(๋งˆ์ฐฐ ๋ชจ๋ธ, ๋ฌผ์„ฑ ์ถ”์ •, in-hand manipulation, grasp ์•ˆ์ •์„ฑ, end-to-end ํ•™์Šต, graph convolution ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋“ฑ)์€ ๋งŽ์•˜์ง€๋งŒ, ์ด๊ฒƒ๋“ค์„ โ€œํ•˜๋‚˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฌถ์–ด ์ฃผ๋Š” ํ†ตํ•ฉโ€์ด ์—†์—ˆ๋‹ค.

PyTouch์˜ ๋ช…์ œ๋Š” ๋ช…๋ฃŒํ•˜๋‹ค. ์ด‰๊ฐ ์ฒ˜๋ฆฌ์—๋„ OpenCV/PyTorch์— ํ•ด๋‹นํ•˜๋Š” ํ‘œ์ค€ building block์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๊ฒƒ์ด ์žˆ์–ด์•ผ ์‹ ๊ทœ ์—ฐ๊ตฌ์ž์˜ ์ง„์ž… ์žฅ๋ฒฝ์ด ๋‚ด๋ ค๊ฐ€๊ณ , ์ผํšŒ์„ฑ ์ฝ”๋“œ๊ฐ€ ๊ฒ€์ฆ๋œ ๋ชจ๋“ˆ๋กœ ๋Œ€์ฒด๋˜๋ฉฐ, ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๊ฐ€ ์žฌํ˜„ยท๋น„๊ต ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

๋ฐฉ๋ฒ•: ์„ธ ๊ฐ€์ง€ ์ถ”์ƒํ™”๋กœ ์„ผ์„œ ๋‹ค์–‘์„ฑ์„ ํก์ˆ˜ํ•˜๊ธฐ

PyTouch ์„ค๊ณ„์˜ ์ค‘์‹ฌ์—๋Š” ์„ธ ๊ฐ€์ง€ ์ถ”์ƒํ™”๊ฐ€ ์žˆ๋‹ค. ์ด ์ถ”์ƒํ™”๋“ค์ด ์–ด๋–ป๊ฒŒ ๋งž๋ฌผ๋ฆฌ๋Š”์ง€๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ณธ์งˆ์ด๋‹ค.

1) ์„ผ์„œ ์ถ”์ƒํ™”. ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์šด ๋ถ€๋ถ„์ด๋‹ค. DIGIT์€ 240ร—320ร—3, OmniTact์€ 480ร—640ร—3, GelSight์€ 1280ร—960ร—3์œผ๋กœ ํ•ด์ƒ๋„๊ฐ€ ์ œ๊ฐ๊ฐ์ด๊ณ , ์กฐ๋ช… ์ƒ‰ยท๊ด‘์› ๋ฐฐ์น˜ยท์ ค ํ˜•์ƒ๋„ ๋‹ค๋ฅด๋‹ค. PyTouch๋Š” ์ด ์ฐจ์ด๋ฅผ configuration ํŒŒ์ผ ๋’ค๋กœ ์ˆจ๊ธด๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์„ผ์„œ ๊ฐ์ฒด(pt.sensors.DigitSensor ๋“ฑ)๋ฅผ ์ง€์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ทธ ์„ผ์„œ์— ๋งž๋Š” ์ „์ฒ˜๋ฆฌ(์ •๊ทœํ™”, ๋‹ค์šด์ƒ˜ํ”Œ๋ง)์™€ ๋ชจ๋ธ์„ ์•Œ์•„์„œ ๋Œ์–ด์˜จ๋‹ค. ์ƒˆ ์„ผ์„œ๋Š” custom config๋กœ ํ™•์žฅํ•œ๋‹ค.

2) ํƒœ์Šคํฌ ์ถ”์ƒํ™”. โ€œ๋‹ฟ์•˜๋Š”๊ฐ€โ€, โ€œ๋ฏธ๋„๋Ÿฌ์ง€๋Š”๊ฐ€โ€, โ€œ์ ‘์ด‰ ์˜์—ญ์€ ์–ด๋””์ธ๊ฐ€โ€ ๊ฐ™์€ ๊ณตํ†ต ๋ชฉํ‘œ๋ฅผ ํƒœ์Šคํฌ ๋ชจ๋“ˆ๋กœ ๋…ธ์ถœํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์˜๋ฆฌํ•œ ์ ์€ ๋‘ ๊ฐ€์ง€ ์ˆ˜์ค€์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘” ๊ฒƒ์ด๋‹ค. high-level ์ธํ„ฐํŽ˜์ด์Šค(pt.init(...))๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์„ ํ•œ ์„œ๋น„์Šค๋กœ ๋ฌถ์–ด is_touched(), is_slipping()์ฒ˜๋Ÿผ ํ•œ ์ค„๋กœ ํ˜ธ์ถœํ•˜๊ฒŒ ํ•œ๋‹ค. ๋ฐ˜๋ฉด power-user ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ฐ ํƒœ์Šคํฌ ๋ชจ๋“ˆ์— ๊ฐœ๋ณ„ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•ด, ๋ชจ๋ธ ๊ตฌ์กฐ๋‚˜ ํ•™์Šต ์ ˆ์ฐจ๋ฅผ ์ง์ ‘ ์†๋Œ€๊ณ  ์‹ถ์€ ์—ฐ๊ตฌ์ž๋ฅผ ๋ฐฐ๋ คํ•œ๋‹ค. ์ดˆ๋ณด์ž์™€ ์ „๋ฌธ๊ฐ€๋ฅผ ๋™์‹œ์— ๋งŒ์กฑ์‹œํ‚ค๋Š” API ์„ค๊ณ„๋‹ค.

3) ์„œ๋น„์Šค๋กœ์„œ์˜ ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ. ์ดˆ๊ธฐํ™” ์‹œ์ ์— ์„ผ์„œ๋ณ„ ๋ชจ๋ธ(ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ + ๊ฐ€์ค‘์น˜๊ฐ€ ํ•จ๊ป˜ ํŒจํ‚ค์ง•๋œ ๊ฒƒ)์„ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›๋Š”๋‹ค. ์ด โ€œas a serviceโ€ ํŒจ๋Ÿฌ๋‹ค์ž„ ๋•๋ถ„์— ๊ณ ์ˆ˜์ค€ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ ๋„ ๋ชจ๋ธ๋งŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” PyTorch ์œ„์— ๊ตฌ์ถ•๋˜์–ด, ์ผ๋ฐ˜์ ์ธ CNN๋ฟ ์•„๋‹ˆ๋ผ ๋น„์ „ํ˜•์ ์ธ ํ•™์Šต ๋ฐฉ๋ฒ•๋„ ๋ผ์›Œ ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋ธ-๋ถˆ๊ฐ€์ง€๋ก ์ (model-agnostic)์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค๊ณ„ ์ฒ ํ•™

PyTouch๊ฐ€ ์ข‹์€ ๋„๊ตฌ์ธ ์ด์œ ๋Š” ๊ธฐ๋Šฅ ๋ชฉ๋ก์ด ์•„๋‹ˆ๋ผ ์„ค๊ณ„ ์ฒ ํ•™์— ์žˆ๋‹ค. ๋…ผ๋ฌธ์ด ๋ช…์‹œํ•œ ์›์น™๋“ค์„ ํ’€์–ด ์“ฐ๋ฉด ์ด๋ ‡๋‹ค.

์ง„์ž… ์žฅ๋ฒฝ ๋‚ฎ์ถ”๊ธฐ. ์‹ ๊ทœ ์‹ค๋ฌด์ž์—๊ฒŒ ํ•„์š”ํ•œ ๊ฒƒ์€ โ€œResNet์„ ์–ด๋–ป๊ฒŒ ํ•™์Šตํ•˜๋Š”๊ฐ€โ€๊ฐ€ ์•„๋‹ˆ๋ผ โ€œ์ง€๊ธˆ ๋‹ฟ์•˜๋Š”๊ฐ€โ€๋ผ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์ด๋‹ค. PyTouch๋Š” ๊ณตํ†ต ๋ชฉํ‘œ์˜ ๊ณ ์ˆ˜์ค€ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•ด, ์‚ฌ์šฉ์ž๊ฐ€ ์‹ ๊ฒฝ๋ง ์„ธ๋ถ€์— ๋ฌถ์ด์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. Listing 1์ฒ˜๋Ÿผ ๋ช‡ ์ค„๋กœ touch detection๊ณผ slip detection์„ ๋™์‹œ์— ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ๋ฐ๋ชจ๋‹ค.

ํ‘œ์ค€ํ™”์™€ ์žฌ์‚ฌ์šฉ. ์ผํšŒ์„ฑ ์‹คํ—˜์šฉ์œผ๋กœ ์งœ๋Š” ๊ฐœ๋ณ„ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์–‘์„ ์ค„์ด๊ณ , PyTouch๋ฅผ ํ† ๋Œ€(foundation)๋กœ ์‚ผ์•„ ๊ทธ ์œ„์— ์‹คํ—˜์„ ์Œ“๊ฒŒ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹คํ—˜ ๊ฐ„ ๋น„๊ต๊ฐ€ ๊ณต์ •ํ•ด์ง€๊ณ  ๊ฒฐ๊ณผ ์žฌํ˜„์ด ์‰ฌ์›Œ์ง„๋‹ค.

ํ™•์žฅ์„ฑ. ์ƒˆ ์„ผ์„œ, ์ƒˆ ํƒœ์Šคํฌ, ์ƒˆ ๋ชจ๋ธ์„ ๋ชจ๋‘ ๋ผ์›Œ ๋„ฃ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์„ผ์„œ๋Š” config๋กœ, ๋ชจ๋ธ์€ PyTorch ๋ชจ๋“ˆ ๊ต์ฒด๋กœ, ํƒœ์Šคํฌ๋Š” ์ƒˆ ๋ชจ๋“ˆ ์ถ”๊ฐ€๋กœ ํ™•์žฅํ•œ๋‹ค.

์ด ์ฒ ํ•™์€ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์š”์•ฝ๋œ๋‹ค. โ€œPyTorch์™€ OpenCV๊ฐ€ ์ปดํ“จํ„ฐ ๋น„์ „์— ํ•œ ์ผ์„, ์ด‰๊ฐ ์ฒ˜๋ฆฌ์— ํ•˜์ž.โ€

ํƒœ์Šคํฌ๋ณ„ ์„ค๋ช…

ํƒœ์Šคํฌ 1: Touch detection (์ ‘์ด‰ ๊ฐ์ง€)

๊ฐ€์žฅ ๊ธฐ๋ณธ์ด๋ฉด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํƒœ์Šคํฌ๋‹ค. ๋ฌธ์ œ ์ •์˜๋Š” ๋‹จ์ˆœํ•˜๋‹ค. ์ž…๋ ฅ ์ด๋ฏธ์ง€ X์— ๋Œ€ํ•ด ์ ‘์ด‰์ด ์—†์œผ๋ฉด 0, ์ ‘์ด‰์ด ๋“ฑ๋ก๋˜๋ฉด 1์„ ๋ถ€์—ฌํ•˜๋Š” image classification์ด๋‹ค.


์—ฌ๋Ÿฌ ์„ผ์„œ(DIGIT A/B/C, OmniTact, GelSight)์˜ No Touch(์ขŒ)์™€ Touch(์šฐ) ์˜ˆ์‹œ โ€” ๊ฐ™์€ โ€œ์ ‘์ด‰/๋น„์ ‘์ด‰โ€ ๊ฐœ๋…์ด ์„ผ์„œ๋งˆ๋‹ค ๋งค์šฐ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค โ€” ๋…ผ๋ฌธ Fig. 3

๋ชจ๋ธ์€ ResNet-18 ๋ฐฑ๋ณธ์„ ์“ฐ๊ณ , ์ž…๋ ฅ์„ 64ร—64๋กœ ์ •๊ทœํ™”ยท๋‹ค์šด์ƒ˜ํ”Œ๋งํ•œ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ๋ฅผ ๋น„๊ตํ–ˆ๋‹ค. (a) ์ฐธ์กฐ ์—†์ด(without reference) ํ˜„์žฌ ํ”„๋ ˆ์ž„๋งŒ ๋ณด๋Š” ๋ฐฉ์‹, (b) ์„ผ์„œ๋ณ„๋กœ ๊ณ ์œ ํ•œ โ€œ์ ‘์ด‰ ์—†์Œโ€ ๊ธฐ์ค€ ํ”„๋ ˆ์ž„์„ ํ•จ๊ป˜ ๋„ฃ๋Š” with-reference ๋ฐฉ์‹์ด๋‹ค. ํ›„์ž๋Š” ๊ฐ ์„ผ์„œ์˜ ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ์„ ๋นผ์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ๋…ธ๋ฆฐ๋‹ค.

๋ฐ์ดํ„ฐ์…‹์€ ์„ผ์„œ๋ณ„๋กœ ๋‹ค๋ฅด๋‹ค. DIGIT์€ 3๊ฐœ ์„ผ์„œ๋กœ ์ƒํ™œ์šฉํ’ˆ์„ ๋งŒ์ง„ 2,278 ์ƒ˜ํ”Œ, OmniTact์€ 1,632ํšŒ์˜ ๋ฌด์ž‘์œ„ ๋ˆ„๋ฆ„, GelSight์€ grasp ์‹œํ€€์Šค์—์„œ ์•ฝ 1,000์žฅ์ด๋‹ค.

๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๋ฐœ๊ฒฌ์€ joint model์˜ ์šฐ์ˆ˜์„ฑ์ด๋‹ค. ์„ธ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ํ•™์Šตํ•˜๋ฉด ๋‹จ์ผ ์„ผ์„œ model๋ณด๋‹ค ์ •ํ™•๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ„๋‹ค. 5-fold cross-validation ๊ธฐ์ค€ ์ˆ˜์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋ชจ๋ธ DIGIT OmniTact GelSight
Single (no ref) 95.5ยฑ1.2% 98.4ยฑ1.1% 93.7ยฑ1.2%
Single (with ref) 95.8ยฑ1.3% 98.5ยฑ1.1% -
Joint (no ref) 96.1ยฑ1.0% 99.1ยฑ0.4% 98.3ยฑ0.6%
Joint (with ref) 96.2ยฑ1.1% 99.5ยฑ0.3% -

ํŠนํžˆ GelSight์€ ๋‹จ์ผ ํ•™์Šต ์‹œ 93.7%์˜€๋‹ค๊ฐ€ joint ํ•™์Šต ์‹œ 98.3%๋กœ ํฌ๊ฒŒ ์ข‹์•„์ง„๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ์„ผ์„œ๊ฐ€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ํ‘œํ˜„์„ ๋นŒ๋ ค ์ด๋“์„ ๋ณธ๋‹ค๋Š” ๋œป์ด๋‹ค. โ€œ๋‹ฟ์•˜๋‹คโ€๋Š” ๊ฐœ๋…์€ ์„ผ์„œ๋ฅผ ๊ฐ€๋กœ์งˆ๋Ÿฌ ๊ณต์œ ๋˜๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ๋‹ค๋Š” ์‹ ํ˜ธ์ด๊ธฐ๋„ ํ•˜๋‹ค.


ํ•™์Šต ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ๊ฒ€์ฆ ์ •ํ™•๋„ โ€” Joint Model(ํŒŒ๋ž‘)์ด ๋” ์ ์€ ๋ฐ์ดํ„ฐ๋กœ๋„ Single Model(์ดˆ๋ก)๋ณด๋‹ค ๋†’๊ณ  ์•ˆ์ •์ ์ธ ์ •ํ™•๋„์— ๋„๋‹ฌํ•œ๋‹ค โ€” ๋…ผ๋ฌธ Fig. 4

์ถ”๋ก  ์†๋„๋Š” ํ”„๋ ˆ์ž„๋‹น ํ‰๊ท  5.89ยฑ0.46 ms๋กœ, ์„ผ์„œ์˜ ํ”„๋ ˆ์ž„ ์บก์ฒ˜ ์ฃผ๊ธฐ(24~60 fps, ์ฆ‰ 17~41 ms)๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. ์ฆ‰ touch detection์ด ์‹ค์‹œ๊ฐ„ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ณ‘๋ชฉ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋˜ ํ•˜๋‚˜์˜ ์‹ค์šฉ์  ๋ฐœ๊ฒฌ์€ transfer learning์˜ ํšจ๊ณผ๋‹ค. ๋ฏธ๋ฆฌ ํ•™์Šตํ•œ joint model์„ ์‹ ๊ทœ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋กœ fine-tuneํ•˜๋ฉด, ๋™์ผํ•œ 30์ดˆ์˜ wall-clock ์‹œ๊ฐ„ ์•ˆ์—์„œ from-scratch ํ•™์Šต๋ณด๋‹ค ๋” ์ ์€ ๋ฐ์ดํ„ฐ๋กœ๋„ ๋” ๋†’์€ ์ •ํ™•๋„์— ๋„๋‹ฌํ•œ๋‹ค.


์‹ ๊ทœ ์„ผ์„œ ์ ์‘: ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ fine-tuning(ํŒŒ๋ž‘)์ด from-scratch ํ•™์Šต(์ดˆ๋ก)๋ณด๋‹ค ์ ์€ ๋ฐ์ดํ„ฐ ๋น„์œจ์—์„œ๋„ ๋” ๋†’๊ณ  ์•ˆ์ •์ ์ธ ์ •ํ™•๋„๋ฅผ ๋ณด์ธ๋‹ค โ€” ๋…ผ๋ฌธ Fig. 5

ํƒœ์Šคํฌ 2: Slip detection (๋ฏธ๋„๋Ÿฌ์ง ๊ฐ์ง€)

๋ฏธ๋„๋Ÿฌ์ง์€ ๋‹จ์ผ ํ”„๋ ˆ์ž„์œผ๋กœ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ๋ณ€ํ™”๊ฐ€ ๊ณง ๋ฏธ๋„๋Ÿฌ์ง์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ํƒœ์Šคํฌ๋Š” ์ด๋ฏธ์ง€ ์‹œํ€€์Šค X={xโ‚,โ€ฆ,xโ‚œ}์— ๋ฏธ๋„๋Ÿฌ์ง ์—ฌ๋ถ€ ๋ผ๋ฒจ์„ ๋ถ€์—ฌํ•˜๋Š” video classification์œผ๋กœ ์ •์˜๋œ๋‹ค(๋ฏธ๋„๋Ÿฌ์ง=1, ๋น„๋ฏธ๋„๋Ÿฌ์ง=0). ๋ฏธ๋„๋Ÿฌ์ง ์‹œ์ž‘ ์‹œ์ ์€ ๋ณ„๋„๋กœ ์ฃผ์„๋˜์–ด ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ์…‹์€ ํ‘œ๋ฉด ๋งˆ๊ฐ์ด ๋‹ค๋ฅธ 40๊ฐœ ๋ฌผ์ฒด๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ฌผ์ฒด๋งˆ๋‹ค ๋ฏธ๋„๋Ÿฌ์ง 10๊ฐœยท๋น„๋ฏธ๋„๋Ÿฌ์ง 10๊ฐœ ์‹œํ€€์Šค, ์‹œํ€€์Šค๋‹น 128 ํ”„๋ ˆ์ž„์„ DIGIT์œผ๋กœ 30 Hz์— ์ˆ˜์ง‘ํ–ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋น„๊ตํ–ˆ๋‹ค. (a) ๋ชจ๋“  ํ”„๋ ˆ์ž„์„ ๊ฒฐํ•ฉ(concatenate)ํ•ด ResNet-18์— ๋„ฃ๋Š” ๋ฐฉ์‹, (b) ResNet-18 ๊ธฐ๋ฐ˜ 3D CNN์ด๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์„ค์ • ์ •ํ™•๋„
ResNet-18, 128 frames, split by sequences 97.9%
ResNet-18, 128 frames, split by objects 96.3%
ResNet-18, 12 frames, split by sequences 90.6%
3D Conv, 128 frames, split by objects 81.2%

์ง๊ด€๊ณผ ์–ด๊ธ‹๋‚˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค. ์‹œ๊ณ„์—ด ์ฒ˜๋ฆฌ์— ํŠนํ™”๋œ 3D CNN์ด ๋‹จ์ˆœ ํ”„๋ ˆ์ž„ ๊ฒฐํ•ฉ๋ณด๋‹ค ๋ชปํ–ˆ๋‹ค. ๋…ผ๋ฌธ์€ ๊ทธ ์›์ธ์„ โ€œ๋ฏธ๋„๋Ÿฌ์ง ์†๋„์˜ ๋†’์€ ๋ถ„์‚ฐโ€์œผ๋กœ ๋ณธ๋‹ค. ๋ฏธ๋„๋Ÿฌ์ง€๋Š” ์†๋„๊ฐ€ ์‹œํ€€์Šค๋งˆ๋‹ค ์ฒœ์ฐจ๋งŒ๋ณ„์ด๋ผ, ๊ณ ์ •๋œ ์‹œ๊ฐ„ ์ปค๋„์„ ์“ฐ๋Š” 3D CNN์ด ์˜คํžˆ๋ ค ์ผ๋ฐ˜ํ™”์— ๋ถˆ๋ฆฌํ–ˆ๋‹ค๋Š” ํ•ด์„์ด๋‹ค. ๋˜ํ•œ split by sequences(๊ฐ™์€ ๋ฌผ์ฒด๊ฐ€ train/test์— ์„ž์ž„)๋ณด๋‹ค split by objects(๋ฌผ์ฒด ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ)์—์„œ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€๋Š”๋ฐ, ์ด๋Š” ๋ณธ ์  ์—†๋Š” ๋ฌผ์ฒด๋กœ ์ผ๋ฐ˜ํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ต๋‹ค๋Š”, ๋‹น์—ฐํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ ์‹ ํ˜ธ๋‹ค.

ํƒœ์Šคํฌ 3: Contact area / pose ์ถ”์ •

์„ธ ๋ฒˆ์งธ ํƒœ์Šคํฌ๋Š” โ€œ์–ด๋””์—, ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ฟ์•˜๋Š”๊ฐ€โ€๋ฅผ ํ‘ผ๋‹ค. PyTouch๋Š” ์ ‘์ด‰ ์˜์—ญ์— ํƒ€์›์„ ํ”ผํŒ…ํ•ด centroid์™€ ์žฅ์ถ•(semi-major)ยท๋‹จ์ถ•(semi-minor) ๊ธธ์ด๋ฅผ ์ถ”์ •ํ•˜๊ณ , ํ‘œ๋ฉด์— ๋Œ€ํ•œ ์ ‘์ด‰ ๋ฐฉํ–ฅ์„ ์ œ๊ณตํ•œ๋‹ค.


๋„ค ๊ฐ€์ง€ ๋ฌผ์ฒด(์œ ๋ฆฌ๊ตฌ์Šฌ, ํŽœ, ์ผ€์ด๋ธ”, ํฌํฌ)์— ๋Œ€ํ•œ ์ ‘์ด‰ ์˜์—ญ ํƒ€์› ํ”ผํŒ… โ€” centroid์™€ ์žฅยท๋‹จ์ถ•์œผ๋กœ ์ ‘์ด‰ ์œ„์น˜์™€ ๋ฐฉํ–ฅ์„ ํ‘œํ˜„ํ•œ๋‹ค โ€” ๋…ผ๋ฌธ Fig. 6

์ด ์ •๋ณด๋Š” manipulation์— ์ง์ ‘ ์“ฐ์ธ๋‹ค. ๋ฌผ์ฒด๊ฐ€ ์†๊ฐ€๋ฝ์—์„œ ์–ด๋А ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ ์žˆ๋Š”์ง€, ๊ฐ€๋Š˜๊ณ  ๊ธด ๋ฌผ์ฒด์ธ์ง€ ๋‘ฅ๊ทผ ๋ฌผ์ฒด์ธ์ง€(ํƒ€์›์˜ ์ข…ํšก๋น„), ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ฉด grasp ๋ณด์ •์ด๋‚˜ in-hand re-positioning์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณด๋„ˆ์Šค: ํ•˜๋“œ์›จ์–ด ์‹คํ—˜ ๋ชจ๋“ˆ

PyTouch๋Š” ์ธ์‹๋ฟ ์•„๋‹ˆ๋ผ ์„ผ์„œ ์„ค๊ณ„ ๊ฒ€์ฆ์—๋„ ์“ฐ์ธ๋‹ค. ๋…ผ๋ฌธ์€ DIGIT์˜ ๋‹จ์ƒ‰(monochromatic) ์กฐ๋ช… ๋Œ€ RGB ์กฐ๋ช…์„ ๋น„๊ตํ•ด, ์„ค๊ณ„ ๋ณ€๊ฒฝ์ด ์ธ์‹ ์„ฑ๋Šฅ์— ์ฃผ๋Š” ์†์‹ค์„ ์ •๋Ÿ‰ํ™”ํ•œ๋‹ค.


์„ผ์„œ ์„ค๊ณ„ ์‹คํ—˜: RGB ์กฐ๋ช…(ํŒŒ๋ž‘)์ด Grayscale(์ดˆ๋ก)๋ณด๋‹ค ์ผ๊ด€๋˜๊ฒŒ ๋†’์€ ๊ฒ€์ฆ ์ •ํ™•๋„๋ฅผ ๋ณด์—ฌ, ์ƒ‰ ์ •๋ณด๊ฐ€ touch detection์— ๊ธฐ์—ฌํ•จ์„ ์‹œ์‚ฌํ•œ๋‹ค โ€” ๋…ผ๋ฌธ Fig. 7

์ด ๊ฒฐ๊ณผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋˜ ๋‹ค๋ฅธ ํ™œ์šฉ์ฒ˜๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์ƒˆ ์„ผ์„œ๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ œ์ž‘ํ•˜๊ธฐ ์ „์—, ์กฐ๋ช…ยท์ƒ‰ยทํ•ด์ƒ๋„ ๊ฐ™์€ ์„ค๊ณ„ ๋ณ€์ˆ˜๋ฅผ PyTouch์˜ ๊ฒ€์ฆ๋œ ํƒœ์Šคํฌ๋กœ ํ‰๊ฐ€ํ•ด design space๋ฅผ ์ขํž ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋น„ํŒ์ ์œผ๋กœ ๋ณด๋ฉด

๊ฐ•์ 

์ง„์งœ ๋นˆ์ž๋ฆฌ๋ฅผ ์ฑ„์šด๋‹ค. PyTouch์˜ ๊ฐ€์žฅ ํฐ ๊ธฐ์—ฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜์‹ ์ด ์•„๋‹ˆ๋ผ โ€œํ†ตํ•ฉโ€์ด๋ผ๋Š” ๊ด€์ ์ด๋‹ค. ํฉ์–ด์ง„ touch processing ์ฝ”๋“œ๋ฅผ ํ‘œ์ค€ API๋กœ ๋ฌถ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค ์ž์ฒด๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ฃผ๋Š” ๊ฐ€์น˜๊ฐ€ ํฌ๋‹ค. ์ด๋Š” OpenCV๊ฐ€ ๋น„์ „์— ์ค€ ๊ฐ€์น˜์™€ ๋ณธ์งˆ์ ์œผ๋กœ ๊ฐ™๋‹ค.

์„ผ์„œ ํšก๋‹จ ํ‰๊ฐ€. ์—ฌ๋Ÿฌ ์ œ์กฐ์‚ฌ ์„ผ์„œ๋ฅผ ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ‰๊ฐ€ํ•œ ์ฒซ ์‚ฌ๋ก€๋ผ๋Š” ์ ์ด ์˜๋ฏธ ์žˆ๋‹ค. joint model์ด ๋‹จ์ผ model๋ณด๋‹ค ๋‚ซ๋‹ค๋Š” ๋ฐœ๊ฒฌ์€, ์ด‰๊ฐ ํ‘œํ˜„์— ์„ผ์„œ๋ฅผ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ๊ณตํ†ต ๊ตฌ์กฐ๊ฐ€ ์žˆ์Œ์„ ์‹œ์‚ฌํ•˜๋ฉฐ, ์ดํ›„ tactile foundation model ์—ฐ๊ตฌ์˜ ๋™๊ธฐ์™€๋„ ๋งž๋‹ฟ๋Š”๋‹ค.

transfer learning์˜ ์‹ค์šฉ์„ฑ. ์‹ ๊ทœ ์„ผ์„œ์— ์ ์‘ํ•  ๋•Œ 30์ดˆยท์†Œ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋กœ๋„ from-scratch๋ฅผ ๋Šฅ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒฐ๊ณผ๋Š”, ํ˜„์žฅ์—์„œ ์ƒˆ ์„ผ์„œ๋ฅผ ๋„์ž…ํ•  ๋•Œ์˜ ๋ถ€๋‹ด์„ ํฌ๊ฒŒ ์ค„์ธ๋‹ค.

๋‘ ์ˆ˜์ค€์˜ API. ์ดˆ๋ณด์ž์šฉ high-level๊ณผ ์ „๋ฌธ๊ฐ€์šฉ power-user ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋™์‹œ์— ์ œ๊ณตํ•œ ์„ค๊ณ„๋Š”, ๋„๊ตฌ๊ฐ€ ์˜ค๋ž˜ ์‚ด์•„๋‚จ๊ธฐ ์œ„ํ•œ ์ข‹์€ ์„ ํƒ์ด๋‹ค.

์•ฝ์ 

ํƒœ์Šคํฌ ๋ฒ”์œ„๊ฐ€ ์ข๋‹ค. ๋ฐœํ‘œ ์‹œ์  ๊ธฐ์ค€ ํ•ต์‹ฌ ํƒœ์Šคํฌ๋Š” touch/slip/contact-area ์ •๋„๋‹ค. force estimation, texture/material ๋ถ„๋ฅ˜, 3D ํ‘œ๋ฉด ์žฌ๊ตฌ์„ฑ, ์‹œ๊ฐ„์  ์ ‘์ด‰ ์ถ”์  ๊ฐ™์€ ๋” ํ’๋ถ€ํ•œ ํƒœ์Šคํฌ๋Š” ๋น ์ ธ ์žˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ โ€œOpenCV๊ธ‰โ€์ด ๋˜๋ ค๋ฉด building block์˜ ํญ์ด ํ›จ์”ฌ ๋„“์–ด์ ธ์•ผ ํ•œ๋‹ค.

๋ชจ๋ธ์ด ๋‹จ์ˆœํ•˜๋‹ค. ๋Œ€๋ถ€๋ถ„ ResNet-18 ๊ธฐ๋ฐ˜์ด๋‹ค. ์ด๋Š” ๊ฒฌ๊ณ ํ•œ baseline์ด์ง€๋งŒ, ์ตœ์‹  self-supervised ํ‘œํ˜„ ํ•™์Šต์ด๋‚˜ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์œตํ•ฉ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ๋…ผ๋ฌธ์ด model-agnostic ์„ค๊ณ„๋ฅผ ๊ฐ•์กฐํ•˜๋ฏ€๋กœ ํ–ฅํ›„ ๊ต์ฒด ๊ฐ€๋Šฅ์„ฑ์€ ์—ด๋ ค ์žˆ์œผ๋‚˜, ์ œ๊ณต๋˜๋Š” ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ ์ž์ฒด์˜ ํ‘œํ˜„๋ ฅ์€ ๋ณด์ˆ˜์ ์ด๋‹ค.

๋ฐ์ดํ„ฐ์…‹ ๊ทœ๋ชจ๊ฐ€ ์ž‘๋‹ค. touch detection์ด ์„ผ์„œ๋‹น ์ˆ˜์ฒœ ์ƒ˜ํ”Œ, slip์ด 40๊ฐœ ๋ฌผ์ฒด ์ˆ˜์ค€์ด๋‹ค. ์‹คํ—˜์‹ค ํ†ต์ œ ํ™˜๊ฒฝ์—์„œ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ผ, ์ผ์ƒ ํ™˜๊ฒฝ์˜ ๋‹ค์–‘์„ฑยท๋…ธ์ด์ฆˆ์— ๋Œ€ํ•œ ์ผ๋ฐ˜ํ™”๋Š” ๋ณ„๋„ ๊ฒ€์ฆ์ด ํ•„์š”ํ•˜๋‹ค. split by objects ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ์ ์ด ์ด ํ•œ๊ณ„๋ฅผ ์ด๋ฏธ ๋ณด์—ฌ์ค€๋‹ค.

vision-based ์„ผ์„œ์— ๊ตญํ•œ. taxel ๊ธฐ๋ฐ˜(BioTac, ์••๋ ฅ ๋ฐฐ์—ด) ๊ฐ™์€ ๋น„-vision ์ด‰๊ฐ ์„ผ์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค. โ€œ์ด‰๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๋ผ๋Š” ์ด๋ฆ„์˜ ์•ผ์‹ฌ์— ๋น„ํ•˜๋ฉด ๋ชจ๋‹ฌ๋ฆฌํ‹ฐ ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ ์ข๋‹ค.

3D CNN์˜ ๋ฏธํกํ•œ ์„ฑ๊ณผ. slip์—์„œ ์‹œ๊ณ„์—ด ๋ชจ๋ธ์ด ๋‹จ์ˆœ ๊ฒฐํ•ฉ๋ณด๋‹ค ๋ชปํ•œ ๊ฒƒ์€ ๋ฐ์ดํ„ฐยท์„ค์ •์˜ ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ์–ด, ์‹œ๊ฐ„ ๋ชจ๋ธ๋ง์ด ์ถฉ๋ถ„ํžˆ ํƒ๊ตฌ๋˜์ง€ ์•Š์•˜์Œ์„ ์‹œ์‚ฌํ•œ๋‹ค.

๊ด€๋ จ ์—ฐ๊ตฌ์™€์˜ ์ž๋ฆฌ ๋งค๊น€

PyTouch๋Š” ๋‘ ๊ฐˆ๋ž˜์˜ ํ๋ฆ„ ์œ„์— ๋†“์ธ๋‹ค.

ํ•˜๋‚˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ ๊ณ„๋ณด๋‹ค. ๋น„์ „์˜ OpenCV/PyTorch/Caffe๊ฐ€ ์ง์ ‘์  ์˜๊ฐ์ด๋‹ค. ์ด๋“ค์ด ๊ณตํ†ต ํ•จ์ˆ˜์™€ ํ•™์Šต ์ธํ”„๋ผ๋ฅผ ํ‘œ์ค€ํ™”ํ•ด ๋ถ„์•ผ๋ฅผ ํ‚ค์šด ๊ฒƒ์ฒ˜๋Ÿผ, PyTouch๋Š” ์ด‰๊ฐ์—์„œ ๊ฐ™์€ ์ผ์„ ํ•˜๋ ค ํ•œ๋‹ค. ์ด ๊ด€์ ์—์„œ PyTouch๋Š” โ€œ์ด‰๊ฐํŒ OpenCV๋ฅผ ํ–ฅํ•œ ์ฒซ๊ฑธ์Œโ€์œผ๋กœ ์ฝ๋Š” ๊ฒƒ์ด ์ •ํ™•ํ•˜๋‹ค.

๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” vision-based ์ด‰๊ฐ ์„ผ์„œ ์ƒํƒœ๊ณ„๋‹ค. ๊ฐ™์€ ๊ทธ๋ฃน์˜ DIGIT(์ €๊ฐ€ยท์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด)์™€ TACTO(์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ)๊ฐ€ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋™๋ฐ˜์ž๋‹ค. ํฐ ๊ทธ๋ฆผ์—์„œ ๋ณด๋ฉด DIGIT์ด ํ•˜๋“œ์›จ์–ด๋ฅผ, TACTO๊ฐ€ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์„, PyTouch๊ฐ€ ์ธ์‹ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์Šคํƒ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ฆ‰ PyTouch๋Š” ๋‹จ๋… ๋…ผ๋ฌธ์ด๋ผ๊ธฐ๋ณด๋‹ค โ€œ์ด‰๊ฐ ์—ฐ๊ตฌ ํ’€์Šคํƒโ€์˜ ํ•œ ์กฐ๊ฐ์ด๋‹ค.

์ดํ›„ ํ๋ฆ„๊ณผ ๋น„๊ตํ•˜๋ฉด, PyTouch ์ดํ›„์˜ ์—ฐ๊ตฌ๋“ค์€ ๋” ํฐ ๋ฐ์ดํ„ฐ, self-supervised tactile ํ‘œํ˜„, ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ(์‹œ๊ฐ+์ด‰๊ฐ) ์œตํ•ฉ, ๊ทธ๋ฆฌ๊ณ  tactile foundation model ์ชฝ์œผ๋กœ ํ–ฅํ•œ๋‹ค. PyTouch๊ฐ€ ๋ณด์ธ โ€œjoint model > single modelโ€์€ ์ด ๋ฐฉํ–ฅ์˜ ์ดˆ๊ธฐ ์ฆ๊ฑฐ์˜€๋‹ค. ๋‹ค๋งŒ PyTouch ์ž์ฒด๋Š” ์ด๋Ÿฐ ๋Œ€๊ทœ๋ชจ ํ‘œํ˜„ ํ•™์Šต์„ ๋Œ๊ณ  ๊ฐ€๊ธฐ๋ณด๋‹ค๋Š”, ๊ฒ€์ฆ๋œ baseline๊ณผ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ† ๋Œ€ ์—ญํ• ์— ๋จธ๋ฌธ๋‹ค.

Allegro Hand / dexterous manipulation ์—ฐ๊ตฌ์ž ์ž…์žฅ์—์„œ

์ด‰๊ฐ์„ ์“ฐ๋Š” manipulation ์—ฐ๊ตฌ๋ฅผ ํ•œ๋‹ค๋ฉด PyTouch๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘. DIGIT์„ ์†๊ฐ€๋ฝ์— ๋‹ฌ๊ณ  โ€œ์ง€๊ธˆ ๋‹ฟ์•˜๋Š”๊ฐ€โ€, โ€œ๋ฏธ๋„๋Ÿฌ์ง€๋Š”๊ฐ€โ€๋ฅผ ์ฆ‰์‹œ ์–ป๊ณ  ์‹ถ์„ ๋•Œ, ์ž์ฒด ๋ถ„๋ฅ˜๊ธฐ๋ฅผ ํ•™์Šตํ•  ํ•„์š” ์—†์ด is_touched()/is_slipping()๋กœ ์‹œ์ž‘์ ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ •์ฑ… ๋ฃจํ”„์˜ contact event ํŠธ๋ฆฌ๊ฑฐ๋‚˜ grasp ์•ˆ์ •์„ฑ ๋ชจ๋‹ˆํ„ฐ๋กœ ๋ฐ”๋กœ ์“ธ ๋งŒํ•˜๋‹ค.

TACTO์™€์˜ ๊ฒฐํ•ฉ. TACTO๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ด‰๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€๋Ÿ‰ ์ƒ์„ฑํ•˜๊ณ , PyTouch์˜ ํƒœ์Šคํฌ ์ •์˜ยท๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€ ํ•™์Šตํ•œ ๋’ค ์‹ค์ œ ์„ผ์„œ์— ์˜ฎ๊ธฐ๋Š” ์›Œํฌํ”Œ๋กœ๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๋‹ค. ๋‘ ๋„๊ตฌ๊ฐ€ ๊ฐ™์€ ์ฒ ํ•™ยท๊ฐ™์€ ๊ทธ๋ฃน์—์„œ ๋‚˜์™”๋‹ค๋Š” ์ ์ด ํ†ตํ•ฉ์„ ์‰ฝ๊ฒŒ ํ•œ๋‹ค.

์‹ ๊ทœ ์„ผ์„œ ๋„์ž… ๋น„์šฉ ์ ˆ๊ฐ. ์‚ฌ๋‚ด์—์„œ ์ž์ฒด tactile ์„ผ์„œ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด, PyTouch์˜ transfer learning์œผ๋กœ ๊ธฐ์กด joint model์„ fine-tuneํ•ด ์ ์€ ๋ฐ์ดํ„ฐ๋กœ ๋น ๋ฅด๊ฒŒ ์ธ์‹ ์„ฑ๋Šฅ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์‹คํ—˜ ๋ชจ๋“ˆ(RGB vs grayscale ๋น„๊ต ๊ฐ™์€)์€ ์„ผ์„œ ์„ค๊ณ„ ๊ฒฐ์ •์—๋„ ๊ทผ๊ฑฐ๋ฅผ ์ค€๋‹ค.

ํ•œ๊ณ„ ์ธ์‹. force estimation์ด๋‚˜ ์ •๋ฐ€ํ•œ 6D ์ž์„ธ ์ถ”์ ์ด ํ•„์š”ํ•œ in-hand manipulation์—๋Š” PyTouch์˜ ๊ธฐ๋ณธ ํƒœ์Šคํฌ๋งŒ์œผ๋กœ ๋ถ€์กฑํ•˜๋‹ค. contact area ์ถ”์ •์€ ์ข‹์€ ์ถœ๋ฐœ์ ์ด์ง€๋งŒ, ์ •๋ฐ€ ์ œ์–ด์—๋Š” ์ž์ฒด ๋ชจ๋“ˆ์„ power-user ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์–น์–ด์•ผ ํ•œ๋‹ค.

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

PyTouch์˜ ์ง„์งœ ๊ธฐ์—ฌ๋Š” โ€œ์ด‰๊ฐ ์ฒ˜๋ฆฌ๋„ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹คโ€๋Š” ๊ด€์  ์ „ํ™˜๊ณผ, ๊ทธ๊ฒƒ์„ ์„ผ์„œ-๋ถˆ๊ฐ€์ง€๋ก ์  ์ถ”์ƒํ™”๋กœ ๊ตฌํ˜„ํ•ด๋‚ธ ์‹คํ–‰๋ ฅ์ด๋‹ค. ์„ธ ๊ฐ€์ง€ ์ถ”์ƒํ™”(์„ผ์„œยทํƒœ์Šคํฌยท์„œ๋น„์Šค๋กœ์„œ์˜ ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ)๋กœ DIGITยทOmniTactยทGelSight๋ฅผ ๋™์ผํ•œ ๋ช‡ ์ค„์งœ๋ฆฌ API ๋’ค์— ์ˆจ๊ฒผ๊ณ , touch/slip/contact-area๋ผ๋Š” ํ•ต์‹ฌ ํƒœ์Šคํฌ์—์„œ ๊ฒฌ๊ณ ํ•œ baseline์„ ์ œ๊ณตํ–ˆ๋‹ค. joint model์ด ๋‹จ์ผ model๋ณด๋‹ค ๋‚ซ๊ณ  transfer learning์ด ์‹ ๊ทœ ์„ผ์„œ ์ ์‘์„ ๊ฐ€์†ํ•œ๋‹ค๋Š” ๋ฐœ๊ฒฌ์€, ์ดํ›„ ๋Œ€๊ทœ๋ชจ ์ด‰๊ฐ ํ‘œํ˜„ ํ•™์Šต ์—ฐ๊ตฌ์˜ ๋ฐฉํ–ฅ์„ ๋ฏธ๋ฆฌ ๊ฐ€๋ฆฌํ‚จ ์…ˆ์ด๋‹ค.

ํƒœ์Šคํฌ ๋ฒ”์œ„๊ฐ€ ์ข๊ณ  ๋ชจ๋ธ์ด ๋ณด์ˆ˜์ ์ด๋ฉฐ ๋ฐ์ดํ„ฐ ๊ทœ๋ชจ๊ฐ€ ์ž‘๋‹ค๋Š” ํ•œ๊ณ„๋Š” ๋ถ„๋ช…ํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ PyTouch๋Š” ์™„์„ฑ๋œ ํ•ด๋ฒ•์ด๋ผ๊ธฐ๋ณด๋‹ค ์ถœ๋ฐœ์ ์ด์ž ํ† ๋Œ€๋‹ค. DIGIT(ํ•˜๋“œ์›จ์–ด)ยทTACTO(์‹œ๋ฎฌ๋ ˆ์ด์…˜)ยทPyTouch(์ธ์‹)๋กœ ์ด์–ด์ง€๋Š” ํ’€์Šคํƒ์˜ ํ•œ ์ถ•์œผ๋กœ ๋ณด๋ฉด, ๊ทธ ๊ฐ€์น˜๊ฐ€ ๋ถ„๋ช…ํ•ด์ง„๋‹ค. โ€œPyTorch์™€ OpenCV๊ฐ€ ๋น„์ „์— ํ•œ ์ผ์„ ์ด‰๊ฐ์— ํ•˜์žโ€๋Š” ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์•ผ์‹ฌ์€, vision-based ์ด‰๊ฐ ์„ผ์‹ฑ์ด ์ ์  ๋” ์ง„์ง€ํ•œ ์—ฐ๊ตฌ modality๊ฐ€ ๋˜์–ด๊ฐ€๋Š” ํ๋ฆ„์˜ ์ถœ๋ฐœ ์‹ ํ˜ธ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

Copyright 2026, JungYeon Lee