simulator가 달라지면 같은 파일도 다른 시스템이 된다
MuJoCo는 접촉하는 다 관절 구조의 동역학을 다루는 물리 엔진이며 MJCF 모델과 여러 API/실행 경로를 제공한다. Isaac Lab의 선택 backend와 MuJoCo를 비교할 때 이름만으로 정확도/속도를 단정하지 않는다. 같은 로봇 형상이더라도 관절축·관성·충돌 형상·접촉/마찰·actuator·제한·적분주기와 solver 설정이 다르면 다른 움직임이 나온다. URDF를 읽었다는 사실은 모든 물리/제어 속성이 동일하게 옮겨졌다는 증명이 아니다.
Sim-to-Sim은 다른 simulator에서 정책/제어 계약을 검증하는 단계이고 Sim-to-Real은 실제 센서·구동기·접촉과 감독 조건의 차이를 포함한다. 두 simulator에서 잘 됐어도 실물 안전이나 성공을 보장하지 않는다. 기본 경로는 제공한 매핑표/수치의 차이를 찾는 것이며 실제 물리 엔진 실행이나 로봇 배포를 요구하지 않는다.
먼저 동등한 입력과 출력을 확인한다
정책 입력의 관절 이름/순서·좌표/단위·중력 표현·기준 자세·이력/이전 행동·관측 정규화를 맞춘다. 행동이 위치 목표인지 잔차/토크인지, 위치 참조와 PD 이득·출력 limit·주기가 어디에서 적용되는지도 고정한다. 배포에서만 관절 이름 순서가 바뀌면 같은 차원의 텐서라도 다른 관절을 움직인다. 자동으로 정렬될 것이라고 가정하지 않는다.
자체 행동 계약은 q_des=q0+s×clip(a,−1,1), q0=.1rad, 스케일 s=.4rad라고 정한다. 여기서 s는 행동 스케일이며 초의 기호가 아니다. a=1.5면 clip 후 1이므로 목표.5rad다. 별도 관절 허용 범위가 −.3~.4rad라면 제안은 최종 범위 밖이므로.5를 바로 적용하지 않고 명세된 거부/제한 정책으로 처리한다. 이 예제에서는 거부로 정한다. 출력의 포화/거부를 원 본 기록에 남긴다.
randomization은 모르는 현실을 덮는 주문이 아니다
Domain Randomization은 학습 중 물리/관측/환경 조건을 정한 분포에서 바꾸는 방법이다. 질량·마찰·구동기 강도·센서 잡음·시간지연 등을 바꿀 수 있다. 범위와 분포·변경 시점·상관/물리 일관성을 정해야 한다. 질량을 바꾸고 관성은 원래대로 두면 의도하지 않은 물리 모델이 될 수 있다. 너무 좁으면 실제 차이를 못 다루고, 너무 넓으면 과제가 물리적으로 불가능해질 수 있다.
자 체 질량 범위는 기준 10kg의 ±10%로 9~11kg다. 균등분포를 썼다면 그 범위의 평균은 10kg이지만 이것만으로 실제 질량 분포를 알게 된 것은 아니다. 학습 범위 9~11kg에서 평가 12kg는 범위 밖 조건으로 따로 표시한다. 평가 실패를 본 뒤 범위를 12kg까지 늘렸다면 새 독립 조건으로 다시 평가한다. randomization과 실제 system identification으로 측정한 모형 보 정은 서로 보완하지만 같은 작업은 아니다.
지연과 주기 계약을 계산한다
정책 주기가 20ms이고 센서 취득부터 명령 적용까지 60ms라면 세 정책 간격에 해당한다. 실제큐/타임스탬프가 없으면 정확히 세 개의 관측을 쌓았다고 단정하지 않지만 지연 스케일을 비교할 수 있다. 오래된 명령을 연속 실행하는 FIFO와 최신 명령만 유지하는 정책은 다른 폐루프를 만든다. reset 이전 명령이 reset 후에 남아 적용되지 않도록 epoch/seq/유효 기간을 정한다.
Action smoothness나 필터링을 추가하면 출력이 부드러워져도 추가 위상 지연이 생긴다. 신호를 완화했다고 모든 안정성이 좋아졌다고 주장하지 않는다. 학습 때 없던 필터/스케일/PD이 득을 배포에 추가하면 다른 정책 실행 계약이므로 재평가한다.
내보낸 파일과 재현 패키지를 묶는다
정책 내보내기는 추론 모델 파일을 만드는 일이다. 모델 입출력 스키마·가중치/설정 hash·정규화 통계·관절매핑·기준 자세/스케일·limit·주기·전처리/후처리·자산/버전을 함께 전달한다. 학습의 critic/optimizer 전체와 추론 actor를 구분하고 추론 runtime/자료형/지원 연산을 확인한다. 파일 생성 성공만으로 출력 동등성이 증명되지는 않는다.
검수는 고정 입력 벡터의 원래 정책/내보낸 정책 출력을 허용 오차로 비교하고, 짧은 open-loop·simulator 폐루프·조건 변형 평가로 범위를 넓힌다. NaN/차원/순서·limit·관측 유실과 중단/롤 백을 확인한다. 실물은 별도 감독·정지 수단·제한 환경·권한과 실제계 측의 조건을 충족한 뒤 진행한다. 이 단위의 최종 산출물은 전이 명세/평가 표이며 가상의 내보내기 성공이나 실물 실증을 보고하지 않는다.