Curieux.JY
  • JungYeon Lee
  • Post
  • 🕸️ Graph
  • Lecture
  • Note

On this page

  • 정보 추출 매핑 표
  • 코드·데이터셋·사전학습 모델 링크
  • 확정 사항
  • 주의 사항
  • AnyRotate 입력과 DIGIT 추출 연구의 궁합
    • 궁합 해석
    • 추출기와 무관하게 공통으로 맞출 것

📝 DIGIT 2D 센서 정보 활용

tactile
DIGIT
optical tactile
robotics
2026
DIGIT (2D RGB)에서 추출할 수 있는 정보 정리
Published

June 24, 2026

DIGIT 광학 촉각 센서의 2D RGB 한 장에서 뽑아낼 수 있는 정보(접촉·깊이·힘·미끄러짐·자세·표현)를 수준별로 정리하고, AnyRotate 입력과의 궁합까지 매핑한 노트

DIGIT는 gel 변형을 RGB 이미지로 찍는 광학 촉각 센서다. 이 한 장의 이미지에서 뽑아내는 정보는 저수준 기하(접촉, 깊이, 법선)에서 중수준 동역학(힘, 미끄러짐)을 거쳐 고수준 상태추정(자세, 형상, 표현)으로 올라간다. 아래 표는 DIGIT 하드웨어/데이터를 직접 쓴 연구만 추렸고, GelSight나 TacTip 중심 연구(iFEM2.0, TensorTouch, TouchSDF 등)는 제외했다.

정보 추출 매핑 표

수준 추출 정보 대표 연구 (DIGIT 직접) 접근 방식 출력 형식 데이터셋
원천 원본 RGB → 인핸드 조작 정책 DIGIT (Lambeta, RAL 2020) AI (이미지→action, end-to-end) 정책 액션 (명시적 중간 표현 없음) 자체 실세계 RL (유리구슬 조작)
저수준 접촉 유무·접촉 마스크 PyTouch TouchDetect (Lambeta, ICRA 2021) AI (분류 CNN) 이진 접촉 라벨 / 접촉 마스크 자체 수집 (접촉 라벨)
저수준 깊이맵·gel 변형 → 접촉력 Zhu et al. (2022) 전통 (depth 룩업) + 회귀 depth map → 접촉력 (스칼라/벡터) 자체 수집 (depth-force 페어)
중수준 미끄러짐 (slip) PyTouch SlipDetect (Lambeta, ICRA 2021) AI (분류) 이진 slip 라벨 자체 수집 (슬립 시퀀스)
중수준 3축 normal·shear 력장 (실시간) Sparsh 다운스트림 (Higuera, CoRL 2024) AI (SSL 표현 + 디코더) per-pixel normal·shear field DIGIT 힘 라벨 75k (60fps), TacBench
고수준 단일 접촉 6D 자세 PyTouch pose (Lambeta, ICRA 2021) AI (회귀/매칭) SE(3) 상대 자세 자체 수집
고수준 법선맵 기반 6DoF 자세추적 NormalFlow (Huang·Kaess·Yuan, RAL 2024) 전통 (normal map Gauss-Newton 최적화) SE(3) 추적 + normal map (+3D 복원) 자체 수집 (추적 시퀀스), DIGIT 검증
고수준 슬라이딩 촉각 위치추정 MidasTouch (Suresh, CoRL 2022) 하이브리드 (학습 tactile code + 파티클 필터) 표면상 위치 확률분포 (SE(3) belief) YCB-Slide (자체 공개)
고수준 인핸드 자세+형상 동시추정 NeuralFeels (Suresh, Science Robotics 2024) AI (neural SDF) + 포즈그래프 최적화 neural SDF (형상) + SE(3) (자세) FeelSight (자체 공개)
메타 범용 촉각 표현 (다운스트림 공유) Sparsh (Higuera, CoRL 2024) AI (MAE/DINO/JEPA 자기지도) latent 표현 YCB-Slide + Touch-Slide + Touch-and-Go + ObjectFolder (460k+)
메타 센서 불변 표현 (전이) SITR (Gupta·Yuan, ICLR 2025) AI (transformer, sim 학습 zero-shot) latent (센서 불변) 시뮬 센서 데이터셋 (자체) + 실측

코드·데이터셋·사전학습 모델 링크

연구 논문 코드 / 프로젝트 데이터셋 / 사전학습 모델
DIGIT arXiv 2005.14679 digit-interface, TACTO 시뮬 하드웨어 정보 digit.ml
PyTouch arXiv 2105.12791 facebookresearch/PyTouch pretrained 모델은 라이브러리 init 시 자동 다운로드 (DIGIT/OmniTact/GelSight 지원)
Zhu et al. arXiv 2212.13007 공개 코드 미확인 (논문 참조) 자체 수집 (공개 데이터셋 없음)
MidasTouch arXiv 2210.14210 facebookresearch/MidasTouch YCB-Slide (GitHub)
NeuralFeels arXiv 2312.13469 facebookresearch/neuralfeels, 프로젝트 FeelSight (Hugging Face)
NormalFlow arXiv 2412.09617 rpl-cmu/normalflow, 프로젝트 학습 모델 아님 (pretrained 개념 없음), 예제 데이터는 repo 내 포함
Sparsh arXiv 2410.24090 facebookresearch/sparsh, 프로젝트 pretrained 모델 + HF Sparsh 컬렉션 (force/slip/pose 다운스트림 데이터, repo에서 링크)
SITR arXiv 2502.19638 프로젝트 (코드 링크 포함) 시뮬 센서 데이터셋 (실측 센서 목록은 프로젝트 페이지 확인)

확정 사항

YCB-Slide는 MidasTouch가 공개한 데이터셋이다. DIGIT가 10개 YCB 물체 위를 슬라이딩한 상호작용으로 구성되고, DIGIT 이미지·센서 포즈·ground-truth 메시·(시뮬레이션 한정) heightmap과 contact mask를 제공한다. 규모는 180,000 프레임 이상(224×224 RGB crop과 64×64 tactile depth 페어)이다. 위치추정·매핑용으로 설계됐다.

FeelSight는 NeuralFeels가 공개한 평가 데이터셋이다. RL 정책으로 물체를 인핸드 회전시키며 모은 vision·touch·proprioception 데이터로, 실세계 30개와 시뮬레이션 40개를 합쳐 총 70개 실험(각 30초)이다. 실세계는 DIGIT를 단 Allegro 핸드(Franka Panda 장착)와 RealSense 3대로 수집했고, 시뮬레이션은 IsaacGym에서 TACTO를 루프에 넣어 만들었다. 인핸드 회전 정책으로 HORA를 학습해 사용했다.

Sparsh의 데이터·태스크 구성은 다음과 같다. 사전학습은 YCB-Slide, Touch-and-Go, ObjectFolder에 자체 제작한 Touch-Slide를 더해 총 460k+ 촉각 이미지로 진행했다. 이 가운데 DIGIT 부분(YCB-Slide + Touch-Slide)은 약 360k다. 다운스트림 평가는 force estimation, slip detection, pose estimation, grasp stability, bead maze 등 여섯 태스크의 TacBench로 한다. 힘 추정은 3축 normal·shear force 예측으로 정의되고, DIGIT 60fps로 수집한 시간 정렬 샘플(ATI nano17로 ground truth 측정)로 학습한다.

주의 사항

SITR은 DIGIT 전용 연구가 아니다. 본질이 시뮬레이션된 다양한 센서 설계로 학습해 새 광학 센서로 최소 캘리브레이션 zero-shot 전이하는 표현이라, DIGIT를 포함할 수 있는 광학 VBTS 일반 방법이다. 실측 평가 센서에 DIGIT가 명시되는지는 프로젝트 페이지에서 확인해 각주로 달 것을 권한다(표에는 “광학 VBTS 전반”으로 보수적으로 표기).

“자체 수집”으로 표시한 행(PyTouch 모듈들, Zhu et al.)은 공개된 명명 데이터셋이 아니라 논문 내 수집 데이터다. PyTouch는 별도 데이터셋 배포 대신 라이브러리 초기화 시 pretrained 모델을 내려받는 구조이고, Zhu et al.은 depth-force 페어를 논문 안에서 수집한다.

Sparsh가 표에 두 번 등장하는 이유. 중수준 행의 normal·shear 력장은 Sparsh 표현 위에 디코더를 붙인 TacBench 다운스트림 결과이고, 메타 행은 백본 latent 그 자체다. 같은 모델의 두 출력 단계로 보면 된다.

Sparsh-X는 범위 밖이다. Meta의 후속작 Sparsh-X는 Digit 360에서 멀티센서리 촉각을 약 100만 샘플로 사전학습한 모델로, 2D RGB DIGIT가 아닌 새 폼팩터(Digit 360) 대상이다. 계보상 같이 알아두되 이 표(2D RGB DIGIT)에는 넣지 않았다.

NormalFlow의 주 센서는 GelSight이고 DIGIT로도 검증됐다. 학습 모델이 아니라 normal map 정합 최적화(Gauss-Newton)라 pretrained 모델 개념이 없고, 표의 “전통 후처리” 대표 사례로 둔다.

AnyRotate 입력과 DIGIT 추출 연구의 궁합

AnyRotate (Yang et al., CoRL 2024, 프로젝트)는 정책에 물리 이미지를 직접 넣지 않고, 손가락당 (이진 접촉, 접촉 포즈 Rx·Ry, 접촉력 크기)으로 이뤄진 저차원 dense contact feature를 넣는다. 여기서 짚을 전제가 하나 있다. AnyRotate의 센서는 DigiTac으로, DIGIT 베이스에 TacTip 스킨을 올린 marker(pin) 기반 센서다. 즉 접촉 포즈와 힘을 pin 변위에서 회귀로 뽑는다. DIGIT(2D RGB)는 markerless photometric이라 같은 값을 다른 primitive(접촉영역 centroid, 표면 법선, depth-force)에서 만들어야 한다. feature의 “의미”는 맞출 수 있지만 추출기는 DIGIT 데이터로 새로 구성하거나 재보정해야 한다.

아래는 AnyRotate가 요구하는 3종 feature를 앞서 정리한 DIGIT 추출 연구로 채우는 매핑이다.

AnyRotate 입력 요구 형식 DIGIT 추출 경로 (연구) 매핑 / 변환 궁합
이진 접촉 (c, 4) 손가락당 0/1 PyTouch TouchDetect (AI 분류), 또는 contact-area/depth 임계값 (전통), Sparsh 배경차분 is_touched 출력 → threshold 정렬 높음 (거의 직접 대체)
접촉 포즈 (P, 8: Rx·Ry) 2축 각도, [-28°, 28°] 정규화 (전통) 접촉영역 centroid → 극좌표 (PyTouch contact_area); (전통) 표면 법선 dominant 방향 (NormalFlow normal map / photometric); (AI) Sparsh pose decoder centroid 또는 접촉면 법선 → (Rx, Ry)로 스케일 정규화 중~높음 (변환·정규화 필요)
접촉력 크기 (F, 4: ||F||) 크기, 0~5N clip (AI) Sparsh force decoder (3축 normal·shear field); (전통+회귀) Zhu et al. depth→force 회귀 3축 벡터 → ||F|| 합성 → 0~5N clip/rescale 높음 (Sparsh 구조 거의 동일)

궁합 해석

가장 일관된 조합은 Sparsh를 단일 백본으로 쓰는 것이다. 접촉(force field 임계값 또는 배경차분), 포즈(pose decoder 또는 법선), 힘(3축 force decoder)을 한 표현 스택에서 뽑아 AnyRotate의 4×(1+2+1) 벡터로 정렬할 수 있다. 특히 힘은 정합도가 높다. AnyRotate는 UR5 + F/T 센서로 최대 5N 라벨을 모아 이미지에서 힘을 회귀하는데, Sparsh의 force 다운스트림도 ATI nano17로 3축 normal·shear를 라벨링해 학습하는 같은 구조다. clip 범위(0~5N)만 맞추면 된다.

접촉 포즈는 의미상 “접촉면이 향하는 방향”이라, DIGIT에서는 표면 법선이 가장 자연스러운 대응이다. NormalFlow가 쓰는 photometric 법선을 그대로 빼서 dominant 방향을 (Rx, Ry)로 환산하면 학습 없이 전통 경로로 채울 수 있다. 다만 NormalFlow 자체의 최종 출력은 객체 SE(3) 추적이므로, contact pose 용도로는 중간산물인 normal map만 활용한다. 더 sim-to-real 정합을 원하면 Sparsh pose decoder를 DIGIT 데이터로 (Rx, Ry) 회귀에 맞춰 재학습하는 편이 낫다(단, Sparsh의 pose 태스크 정의가 AnyRotate의 contact pose와 정확히 일치하는지는 확인 필요).

범위 밖으로 둘 연구도 분명히 해둔다. MidasTouch와 NeuralFeels는 객체 수준 출력(표면 위 위치 분포, neural SDF + 객체 SE(3))이다. AnyRotate는 의도적으로 객체 포즈를 쓰지 않고 손가락별 contact feature만 쓰므로, 이 둘은 3-feature 인터페이스에 직접 매핑되지 않는다. 보조 상태나 평가용 ground-truth로는 쓸 수 있다. SITR latent도 디코더를 붙이면 3 feature를 낼 수 있지만, AnyRotate가 원하는 건 명시적 벡터라 latent 그대로는 인터페이스가 아니다.

추출기와 무관하게 공통으로 맞출 것

어느 DIGIT 추출 경로를 쓰든 AnyRotate의 sim-to-real 처리를 동일하게 적용한다. 비접촉(c=0)일 때 포즈·힘을 0으로 마스킹하고, 센서 값에 지수 이동 평균(EMA)을 걸어 노이즈를 줄이며, 포즈와 힘의 분포를 논문 범위([-28°, 28°], [0, 5N])에 Min-Max 정규화로 정렬한다. 추출 primitive가 marker에서 photometric으로 바뀌어도, 이 세 가지(마스킹, smoothing, 분포 정렬)는 그대로 유지해야 정책 입력 분포가 깨지지 않는다.

Copyright 2026, JungYeon Lee