Sim-to-Real 격차
GPU에서 수천 번 학습한 정책이 시뮬에선 100% 성공합니다. 그 정책을 실제 로봇에 올리면 — 무너집니다. 이 Sim-to-Real 격차(reality gap) 는 로봇 학습의 가장 근본적인 난관입니다. 왜 생기고, 어떻게 좁히고, 어떻게 정직하게 재는지 봅니다.
격차는 어디서 오나
시뮬과 현실의 차이는 여러 곳에서 누적됩니다.
도식 렌더링 중…
시뮬은 깔끔하지만 현실은 지저분합니다. 마찰계수가 미묘하게 다르고, 카메라엔 노이즈가 끼고, 명령과 동작 사이에 지연이 있고, 모터엔 백래시가 있습니다. 각각은 작아도, 학습된 정책이 시뮬의 깔끔함에 과적합했다면 이 작은 차이들이 모여 실패가 됩니다.
좁히는 법 — 도메인 무작위화
핵심 처방은 도메인 무작위화입니다. 시뮬을 일부러 다양하게(마찰·질량·조도·노이즈를 매번 바꿔) 만들어, 정책이 "어떤 조건에서도" 되게 학습시킵니다. 그러면 현실도 "또 하나의 변형"으로 보여 격차가 줄어듭니다.
💡 현실을 분포 안에 넣어라 — 도메인 무작위화의 직관은, 무작위화의 범위 안에 현실이 포함되게 하는 것입니다. 마찰을 0.3~1.2로 무작위화하면, 실제 마찰 0.7은 그 안에 있으니 정책이 당황하지 않습니다. 범위가 현실을 못 덮으면 격차는 남습니다.
정직하게 측정하라
여기서 가장 중요한 부분 — 격차를 정직하게 재는 것입니다.
⚠️ "시뮬 성공"을 "검증 완료"로 포장하지 마라 — 우리의 실제 기록에서, 어떤 sim2real 매니퓰레이션 설정은 시뮬 KPI는 통과인데 실제 grasp 성공률이 0% 였습니다. 시뮬 숫자만 보고 "된다"고 했다면 거짓이 됐을 겁니다. Sim-to-Real에서 진실은 실물 성공률이지 시뮬 성공률이 아닙니다.
격차를 수치로 적으면 이렇습니다 — sim2real_gap = (시뮬 KPI) − (실물 KPI). 이 격차를 드러내놓고 추적해야, 무엇을 더 무작위화하고 무엇을 더 모델링할지가 보입니다. 격차를 숨기면(시뮬 숫자만 보고) 영원히 못 좁힙니다.
한 줄 정리
📌 Sim-to-Real 격차는 물리·센서·지연·액추에이터 불일치가 누적돼 생긴다. 도메인 무작위화로 현실을 분포 안에 넣어 좁히되, 진실은 실물 성공률이다 — 시뮬 KPI 통과를 "검증 완료"로 포장하면 안 된다(실제 grasp 0%였던 사례처럼). 격차는 숨기지 말고 수치로 추적하라.
