๐PyTouch ๋ฆฌ๋ทฐ
Mike Lambeta, Huazhe Xu, Jingwei Xu, Po-Wei Chou, Shaoxiong Wang, Trevor Darrell, Roberto Calandra
IEEE International Conference on Robotics and Automation (ICRA), 2021
- ๐ก PyTouch๋ vision-based ์ด๊ฐ ์ผ์์ raw ์ด๋ฏธ์ง๋ฅผ control๊ณผ decision-making์ ๋ฐ๋ก ์ธ ์ ์๋ ๊ณ ์์ค ์ ํธ๋ก ๋ณํํด ์ฃผ๋, ์ผ์์ ๊ตฌ์ ๋ฐ์ง ์๋(sensor-agnostic) ์คํ์์ค ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
- โ๏ธ โtouch processing as a serviceโ ์ฒ ํ ์๋, DIGITยทOmniTactยทGelSight ๊ฐ์ ์๋ก ๋ค๋ฅธ ์ผ์๋ฅผ ๋์ผํ API๋ก ๋ค๋ฃจ๊ณ ์ฌ์ ํ์ต ๋ชจ๋ธ์ ์๋์ผ๋ก ๋ด๋ ค๋ฐ์ plug-and-play ๋ฐฉ์์ผ๋ก ์ธ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ๐ฏ 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๋ ์ธ ๊ฐ์ง ์ถ์ํ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ผ์ ์ถ์ํ(Sensor abstraction): DIGIT(240ร320ร3), OmniTact(480ร640ร3), GelSight(1280ร960ร3)์ฒ๋ผ ํด์๋์ ๊ดํ ํน์ฑ์ด ๋ค๋ฅธ ์ผ์๋ฅผ ๋์ผํ ์ธํฐํ์ด์ค๋ก ๋ค๋ฃน๋๋ค. ์ ์ผ์๋ custom configuration ํ์ผ์ ์ถ๊ฐํด ํ์ฅํ ์ ์์ต๋๋ค.
- ํ์คํฌ ์ถ์ํ(Task abstraction): โ๋ฟ์๋๊ฐโ, โ๋ฏธ๋๋ฌ์ง๋๊ฐโ, โ์ ์ด ์์ญ์ ์ด๋์ธ๊ฐโ ๊ฐ์ ๊ณตํต ๋ชฉํ๋ฅผ ๋ชจ๋๋ก ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ๋ชจ๋์ ํ ์๋น์ค๋ก ๋ฌถ๋ high-level ์ธํฐํ์ด์ค์, ๊ฐ ๋ชจ๋์ ๊ฐ๋ณ ์ ๊ทผํ๋ power-user ์ธํฐํ์ด์ค๋ฅผ ๋ ๋ค ์ ๊ณตํฉ๋๋ค.
- ์๋น์ค๋ก์์ ์ฌ์ ํ์ต ๋ชจ๋ธ(Pre-trained models as a service): ์ด๊ธฐํ ์์ ์ ์ผ์๋ณ ๋ชจ๋ธ(ํ์ดํผํ๋ผ๋ฏธํฐ + ๊ฐ์ค์น๊ฐ ํจํค์ง๋)์ ์๋์ผ๋ก ๋ด๋ ค๋ฐ์ต๋๋ค. ๊ณ ์์ค ์ฝ๋๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ๋ ๋ชจ๋ธ๋ง ๊ต์ฒดํ ์ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ PyTorch ์์ ๊ตฌ์ถ๋์ด ๋ชจ๋ธ์ ์์ฝ๊ฒ ๊ฐ์๋ผ์ธ ์ ์์ต๋๋ค.
์ ํ์ ์ธ ์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฃผ์ ํน์ง/ํ์คํฌ:
- 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๊ฐ ๋์ด๊ฐ๋ ํ๋ฆ์ ์ถ๋ฐ ์ ํธ๋ก ์ฝ์ ์ ์๋ค.