RoTO 2.0의 blind 정책은 카메라나 물체 위치 대신 관절 상태와 접촉 여부의 최근 이력을 읽습니다. 한 시점의 관측에는 관절 위치·속도, 관절 명령 오차, 직전 행동, 링크별 이진 접촉이 들어가며, 이를 4개 시점으로 쌓아 다음 관절 위치 명령을 정합니다. 같은 과제의 state-based 정책에는 물체의 위치와 선속도가 추가됩니다. 두 설정을 비교하면 물체 상태를 직접 아는 조건과 손의 반응으로 추정해야 하는 조건의 차이를 볼 수 있습니다.
RoTO 2.0 논문과 공식 프로젝트는 Isaac Lab 시뮬레이션에서 Bounce와 Baoding 과제를 제공합니다. 여기서 촉각 입력은 젤 표면 영상이 아니라 작업에 관련된 로봇 링크의 접촉 여부입니다. 로봇 촉각 센서의 여러 감지 방식 중 어떤 정보를 정책에 남길 것인지 이해하기 좋은 구체적인 사례입니다.
Shadow Hand의 입력 388개는 어떻게 만들어지는가
논문 Table I에서 Shadow Hand의 한 시점 관측은 총 97개 값입니다. 접촉 17개와 고유감각 관련 네 묶음 80개를 합한 결과입니다. 이를 4개 시점으로 쌓으면 정책 입력은 97 × 4 = 388개가 됩니다.
| Shadow Hand의 관측 항목 | 한 시점의 값 수 | 정책이 읽을 수 있는 단서 |
|---|---|---|
| 이진 접촉 | 17 | 어떤 작업 관련 링크가 접촉 중인지 |
| 관절 위치 | 20 | 손가락의 현재 구성 |
| 관절 속도 | 20 | 손가락이 움직이는 방향과 속도 |
| 관절 명령 오차 | 20 | 명령과 관절 반응의 차이 |
| 직전 행동 | 20 | 이전에 내보낸 제어 명령 |
| 합계 | 97 | 위 다섯 묶음의 현재 관측 |
접촉 비트 하나는 해당 링크가 닿았는지를 나타냅니다. 이 값만으로 접촉 힘의 크기나 접촉면의 미세한 형상까지 읽을 수 있는 것은 아닙니다. 대신 관절 속도와 명령 오차를 함께 보면, 같은 접촉 상태에서도 손가락이 계속 움직이는지 또는 명령에 비해 반응이 달라졌는지를 구분하는 단서가 생깁니다.
예를 들어 가상의 연속 관측에서 한 링크의 접촉이 0→0→1→1로 바뀌고 관절 움직임도 달라졌다고 하겠습니다. 마지막 1 하나만 읽으면 이미 오래 닿아 있었는지 방금 닿았는지 알기 어렵습니다. 네 시점의 관절·접촉·직전 행동을 함께 읽으면 접촉이 생기기 전후의 짧은 변화를 정책에 제공할 수 있습니다. 이력은 물체의 완전한 상태를 직접 전달하는 대신, 시간 변화의 단서를 입력에 남기는 방식입니다.
손이 바뀌면 관측과 행동의 크기도 달라진다
같은 관측 항목 이름을 사용해도 손마다 링크와 제어 관절 구성이 달라집니다. 논문의 값을 그대로 정리하면 다음과 같습니다.
| 손 모델 | 접촉 값 수 | 한 시점 관측 | 4시점 관측 | 행동의 관절 위치 값 수 |
|---|---|---|---|---|
| Shadow | 17 | 97 | 388 | 20 |
| Shadow Lite | 14 | 72 | 288 | 13 |
| Allegro | 20 | 84 | 336 | 10 |
| ORCA | 17 | 85 | 340 | 17 |
따라서 관측에 들어 있는 관절 위치의 개수로 출력 차원을 계산하면 틀릴 수 있습니다. 예를 들어 Table I의 Allegro는 관측의 관절 위치가 16개지만 행동의 관절 위치는 10개입니다. 이 표는 논문이 정의한 관측·행동 공간이며, 손의 제품 사양에 적힌 자유도와도 별도로 읽어야 합니다.
데이터 로더나 정책 입력을 검토할 때는 현재 관측의 구성, 이력을 쌓은 차원, 출력 행동 차원을 따로 대응시키면 됩니다. Shadow용 388차원 텐서를 다른 손에 그대로 넣는 것보다 먼저 해야 할 일은, 각 원소가 어느 링크·관절·시점에 해당하는지 매핑하는 것입니다.
물리 240Hz와 정책 60Hz는 서로 다른 시간축이다
RoTO 2.0의 물리 시뮬레이션은 240Hz, 제어 정책은 60Hz로 동작합니다. 이 설정에서 물리 계산 간격은 약 4.17ms이고 정책 간격은 약 16.67ms입니다. 비율로 보면 정책 한 주기에 물리 계산 네 번이 대응합니다. 관측 이력의 k=4 역시 이 비율과 숫자가 같지만, 뜻은 네 시점의 정책 관측을 쌓는다는 것입니다.
논문은 한 에피소드를 10초, 최대 600개 제어 timestep으로 정의합니다. 60 × 10 = 600으로 연결하면 과제 길이가 어느 시간축인지 분명해집니다. 시뮬레이터의 모든 물리 step을 같은 에피소드 카운터로 읽으면 이 관계가 어긋납니다.
Bounce의 점수 규칙에도 시간 간격이 들어갑니다. 최소 5개 timestep 동안 접촉이 없다가 다시 접촉한 사건을 bounce로 셉니다. 60Hz에서 다섯 간격은 약 83ms입니다. 따라서 공이 손에 닿은 채 몇 step 유지됐다고 매번 새 bounce가 되는 구조가 아닙니다. 접촉 이력 4개를 정책에 제공하는 설정과, 환경이 bounce를 판정하는 5개 무접촉 step 조건은 서로 다른 역할을 합니다.
물체 위치는 정책 입력과 점수 계산에서 다르게 쓰인다
Blind와 state-based의 핵심 차이는 물체 위치·선속도의 제공 여부입니다. Blind 정책은 자기 손의 관절과 접촉으로 행동을 정하고, state-based 정책은 여기에 물체가 어디에서 어떻게 움직이는지도 직접 받습니다. 같은 보상과 과제를 두고 이 차이를 비교하면 관측 정보가 학습에 미치는 영향을 살펴볼 수 있습니다.
Baoding에서는 손 안의 두 공을 서로 회전시키도록 두 목표 위치를 둡니다. 공 두 개의 중심이 각각 목표에서 1cm 이내로 들어오면 목표 위치를 전환하고 회전 보상을 줍니다. 환경은 이런 보상을 계산하기 위해 시뮬레이터의 공 위치를 알고 있습니다. 그 사실과 blind 정책의 입력에 공 위치가 포함되는지는 별개입니다. 환경의 판정 데이터와 정책에 전달되는 데이터를 나눠 봐야 관측 조건을 정확히 이해할 수 있습니다.
공이 손의 도달 범위를 벗어나거나 최대 길이에 이르면 에피소드가 끝납니다. 논문이 보고한 고속 동작은 이 시뮬레이션 조건의 결과이며, 저자들은 실물로의 전이를 별도 연구 과제로 두고 있습니다. 실물 손에서 이 관측 구성을 구현하려면 링크별 접촉 신호와 관절 피드백이 실제 제어 주기에 맞춰 도착하는지도 함께 다뤄야 합니다.
짧은 관측 이력으로 무엇을 비교할 수 있나
RoTO의 4시점 입력은 RMBench에서 설명한 작업 기억 복잡도와 다른 개념입니다. 전자는 구현에서 정책에 전달하는 최근 관측의 길이이고, 후자는 과제를 해결하려면 과거 정보가 얼마나 필요한지를 묻습니다. RoTO의 입력 길이를 이해하면, 한 시점만 쓰는 정책과 시간 변화를 읽는 정책을 같은 과제에서 비교하는 실험을 설계할 수 있습니다.
가령 접촉 비트는 그대로 두고 관측 이력을 바꾸는 비교는 짧은 시간 변화의 역할을 묻습니다. 이력을 유지하면서 접촉을 제거하는 비교는 고유감각에 촉각이 더하는 정보를 묻습니다. 물체 위치·속도를 추가하는 비교는 직접 상태 관측의 효과를 묻습니다. 이처럼 입력을 하나씩 바꾸면 각 정보가 담당하는 역할을 묻는 비교를 구성할 수 있습니다. 먼저 입력 항목과 시간축을 고정하면 각 비교가 무엇을 바꾸는지 명확해집니다.
본문은 2026년 10월 16일 확인한 RoTO 2.0 논문 v1과 공식 프로젝트에 근거합니다. 정책 학습, 시뮬레이션 실행, 실물 로봇 시험은 수행하지 않았습니다.