( E1 )문서· SCHEMA / aeffer-v1

aeffer-v1 스키마 명세

저장 단위는 관절의 SE(3)와 센서 원점입니다. 뷰어에서 보이는 점 구름은 그 파라미터에서 펼쳐진 시각화일 뿐이며 저장하지 않습니다. 점 개수는 품질 지표가 아닙니다.

( E2 )필드· FIELDS

프레임 하나의 구조

경로타입설명
schema_versionstring항상 "aeffer-v1"
task_descriptionstring태스크 이름 (지시서 원문과 일치)
actors[]array역할(demo/subject) · 체형 · 키
capture_rigstring리그 식별자 (t1 · t2 · t3 · …)
fpsuint16샘플링 레이트
frame_indexuint32프레임 번호
timestamp_nsuint64세션 시작 기준 나노초
pose_sourceuint80 측정 · 1 단안추정 · 2 보간 · 3 합성
transforms/<joint>float32[4][4]관절 SE(3) 동차변환행렬
confidences/<joint>float32관절별 신뢰도 0~1
sensors/object센서 원점 좌표 · 개수 (표면 점은 저장 안 함)
derived/aperture_mfloat32[2]좌·우 엄지-검지 거리 (m)
derived/contactuint8[2]좌·우 파지 상태
rights/consentobject동의 범위 · 철회 조건 (필수)
( E3 )관절· 71 JOINTS

관절 71개

부위개수구성
몸통5hip · spine · chest · neck · head
팔8shoulder · elbow · wrist · hand (좌우)
다리8hip · knee · ankle · foot (좌우)
손가락40손당 5손가락 × MCP · PIP · DIP · 끝
발가락10발당 5개 끝점
( E4 )원칙· TWO RULES

이 스키마가 지키는 두 가지

  • PS-08

    측정과 추정을 섞지 않습니다

    프레임마다 pose_source가 붙습니다. 구매자는 추정 구간을 걸러내고 학습할 수 있고, 우리는 품질을 숫자로 약속할 수 있습니다. 이 필드가 없으면 데이터 전체의 신뢰도를 검증할 방법이 없습니다.

  • /derived/

    파생값을 격리합니다

    개구나 접촉처럼 계산으로 얻은 값은 /derived/ 아래에 따로 둡니다. 원본 측정값과 섞이지 않아 계산식이 바뀌어도 원본이 오염되지 않고, 라이선스가 다른 모델(MANO 등)에서 유도한 값도 분리해 둘 수 있습니다.

( E5 )내보내기· EXPORT

LeRobot v3로 나갑니다

로봇 학습 쪽의 사실상 표준은 LeRobot v3 형식(parquet + mp4)입니다. aeffer-v1은 이 형식으로 손실 없이 변환되도록 설계했습니다. 구매자가 쓰던 파이프라인을 바꿀 필요가 없습니다.

포맷은 해자가 아닙니다. 우리가 특별한 형식을 만들어 묶어두려는 것이 아니라, 오히려 표준으로 나가야 팔립니다. 값은 형식이 아니라 데이터의 품질과 권리에서 나옵니다.