RH20T의 사람 시범과 로봇 조작을 연결할 때는 작업·사용자·장면·로봇 구성 식별자를 함께 확인해야 한다. 그다음 로봇 에피소드 안에서 영상·힘·자세를 시간과 좌표 기준으로 맞춘다. 사람과 로봇의 시범이 한 쌍이라는 사실만으로 두 영상의 같은 프레임 번호가 같은 동작 순간을 뜻하지는 않는다.
이 글은 2026년 10월 15일 확인한 공식 데이터 형식과 Python API를 바탕으로 한다. 데이터 전체를 내려받거나 로더를 실행해 정렬 오차를 측정한 결과는 아니다.
이름에서 짝을 찾고, 시간축은 따로 확인한다
RH20T 공식 형식은 로봇 폴더의 이름에 task, user, scene, cfg를 포함하고, 대응하는 사람 시범에는 _human을 붙인다. 작업 번호만 같은 폴더를 모으면 다른 사용자·장면·로봇 구성까지 한 시범처럼 섞을 수 있다.
예를 들어 같은 작업을 보여 주는 두 폴더라도 장면 식별자가 다르면 우선 별도 기록으로 취급한다. 이것은 파일 이름 대조 방법을 설명하는 예이며, 특정 실제 에피소드의 오류를 발견했다는 뜻은 아니다. 사람 시범은 무엇을 해야 하는지 보여 주는 대응 자료이고, 로봇 기록 안의 센서 정렬은 어느 순간에 무엇을 관측하고 실행했는지 확인하는 작업이다. 두 관계를 하나의 프레임 인덱스로 해결하지 않는다.
로봇 기록의 작업 완성도와 보정 품질도 별도로 읽는다. 공식 형식에서 작업 완성도는 2–9 구간에서 높을수록 좋지만, 보정 정확도 등급은 1–5 구간에서 낮을수록 좋다. 보정 품질 0은 일부 카메라가 보정되지 않았다는 뜻이다. 두 점수를 같은 방향으로 정렬하면 선별 기준이 뒤집힐 수 있다.
카메라 시리얼과 보정 시점을 함께 넘긴다
영상 파일을 복사할 때 대응하는 cam_[serial_number]와 메타데이터의 보정 연결을 보존한다. 공식 API의 장면 로더는 카메라 시리얼별 내부 파라미터와 로봇 베이스에 정렬된 외부 파라미터를 제공한다. 카메라 배열의 첫 번째 항목을 항상 같은 카메라로 간주하는 방식보다 명시적인 시리얼 키를 쓰는 편이 의미를 보존하기 쉽다.
로더 코드의 _load_calib()는 현재 장면의 metadata["calib"] 값으로 보정 폴더를 찾는다. 폴더에 보정 파일이 있다는 사실만 확인하지 말고, 그 장면이 가리키는 파일이 존재하는지 확인해야 한다.
또한 tcp.npy와 tcp_base.npy처럼 카메라 좌표와 베이스 좌표를 나눈 필드를 합칠 때는 출력 좌표를 하나로 정한다. 시간은 맞아도 기준 좌표가 다른 자세·힘 벡터를 그대로 비교하면 잘못된 차이를 읽게 된다. 시간 정렬과 좌표 변환의 검사를 각각 남겨야 하는 이유다.
이미지 선택과 힘 보간은 같은 연산이 아니다
공식 소개의 RGB 영상은 10Hz, 힘·토크는 100Hz다. 수집 주기가 다른 배열을 앞에서부터 한 행씩 붙여서는 같은 순간을 얻을 수 없다. 각 카메라의 타임스탬프와 선택한 수치 스트림의 시간축을 기준으로 대응 관계를 정한다.
API 설명에는 시간 질의를 통한 데이터 정렬이 나오지만, 실제 get_image_path_pairs() 코드는 질의 시각에 가장 가까운 기존 이미지의 경로를 찾는다. 중간 시각의 새로운 이미지를 합성하는 것은 아니다. 반면 get_ft_aligned()는 선택한 모드와 좌표에 맞는 두 시각의 값을 선형 보간한다. 이미지를 고른 시각과 수치값을 계산한 시각이 어떻게 연결됐는지 남겨야 한다.
가령 설명을 위한 가상 기록에서 영상이 1,000ms와 1,100ms에 있고 질의 시각이 1,040ms라면, 최근접 이미지 선택은 1,000ms 프레임을 가리킨다. 1,040ms로 보간한 힘과 묶었다고 해서 그 영상도 1,040ms에 촬영된 것은 아니다. 이 40ms 차이는 예시 계산이며 실제 RH20T에서 측정한 지연이 아니다.
접촉 순간을 분석한다면 질의 시각, 실제 선택된 영상 시각, 보간에 사용한 수치 샘플의 양 끝 시각을 함께 기록한다. 원본에 없는 관측을 보간으로 복원했다고 주장하지 않는다. 빈 구간이나 허용하기 어려운 시간 차이를 어떻게 제외할지도 먼저 정한다.
학습 입력 한 줄에서 원본까지 돌아갈 수 있게 한다
작은 표본부터 완성된 입력을 역추적해 보자. 한 줄이 어느 로봇 에피소드와 카메라에서 왔는지, 어떤 보정 파일과 좌표를 썼는지, 영상 선택과 수치 보간의 시각은 무엇인지 설명할 수 있어야 한다. 사람 시범의 연결도 이 기록과 별도 키로 유지한다.
API의 장면 로더는 추출된 이미지 형식을 전제로 하므로, 내려받은 MP4를 그대로 읽는 경로와 혼동하지 않는다. 공식 추출 절차와 사용하는 데이터 버전을 먼저 맞춘다. 이후 로봇 학습 데이터 품질 검수의 에피소드 단위 확인으로 이어가면, 단순히 파일이 열리는지에서 실제 학습 입력의 의미가 맞는지로 검토 범위를 넓힐 수 있다.