기록 메모. 이 글은 시뮬레이터가 실행되는 것과 실험을 반복할 수 있는 환경은 다르다는 점을 확인하던 단계에서 남겼다. 환경을 먼저 고정하지 않으면 이후의 학습 결과가 코드 문제인지 실행 환경 문제인지 구분하기 어려웠다.
같은 코드를 실행했는데 어제와 오늘의 결과가 다르면, 나는 어디부터 의심해야 할까? 휴머노이드 로봇을 컴퓨터 안에서 움직이게 하는 작업에서는 코드뿐 아니라 그래픽 드라이버, 시뮬레이터, 로봇 에셋, 실행 방식이 모두 결과에 영향을 줄 수 있다. 이 글은 Isaac Sim과 Isaac Lab을 설치한 기록이 아니라, 왜 실행 환경을 실험 조건의 일부로 관리하게 되었는지에 대한 기록이다.
실행된다는 사실만으로는 부족했다
Isaac Sim은 로봇과 물리 환경을 컴퓨터 안에서 재현하는 시뮬레이터이고, Isaac Lab은 그 안에서 로봇 제어나 학습 실험을 구성하는 도구 모음이다. 처음에는 화면에 로봇이 보이고 프로그램이 켜지면 준비가 끝났다고 생각하기 쉽다. 하지만 이후에 학습이나 평가가 흔들리면, 내가 바꾼 정책 때문인지 환경의 조합 때문인지 분리해서 보기 어렵다. 그래서 “일단 실행해 보기”보다 “다음에도 같은 조건으로 다시 실행할 수 있는가”를 먼저 확인하기로 했다.
최신 버전보다 확인 가능한 조합을 골랐다
환경을 만들 때는 최신 버전을 바로 쓰는 선택지도 있었다. 다만 휴머노이드 시뮬레이션은 프로그램 하나만 바꿔도 그래픽 처리나 물리 계산의 조건이 함께 달라질 수 있어서, 문제가 생겼을 때 원인을 좁히기 어려웠다. 그래서 한 번 동작을 확인한 시뮬레이터, 학습 도구, 그래픽 환경의 조합을 기준점으로 남겼다. 새 버전을 쓰지 않겠다는 뜻이 아니라, 바꾸기 전후를 비교할 기준을 먼저 마련하겠다는 판단이었다.
큰 학습 전에 작은 질문부터 통과시켰다
처음부터 긴 학습을 돌리는 방법은 빨라 보이지만, 실패했을 때 어디에서 멈췄는지 알기 어렵다. 나는 시뮬레이터가 열리는지, 로봇 에셋이 불러와지는지, 과제가 초기화되는지, 짧은 실행이 가능한지를 작은 단계로 나눠 확인했다. 각각은 사소해 보이지만, 앞 단계가 통과하지 않은 상태에서 다음 단계로 가면 나중의 오류 메시지가 너무 많은 의미를 갖게 된다. 이 순서는 시간을 더 쓰기 위한 절차가 아니라, 실패의 위치를 좁히기 위한 장치였다.
실험 기록에 환경을 함께 남긴 이유
정책의 보상이나 구조를 바꾼 기록만 남기면, 나중에는 그 결과가 어떤 조건에서 나온 것인지 알 수 없다. 그래서 실험을 기록할 때 실행 환경과 확인한 상태도 함께 남기기로 했다. 대용량 결과 파일 자체를 모두 저장하는 방식은 관리하기 어려워서, 어떤 조건에서 무엇을 확인했는지를 다시 따라갈 수 있게 하는 쪽을 택했다. 이 기록 덕분에 다음 실험에서 문제가 생겨도 “코드를 고칠지, 환경부터 다시 볼지”를 먼저 판단할 수 있게 됐다.
설치는 시작이고, 재현은 기준이다
이 환경을 정리하며 배운 것은 설치 완료와 실험 준비 완료가 같은 말이 아니라는 점이다. 로봇 연구에서 환경은 배경이 아니라 결과를 해석하는 조건이다. 오늘의 결론은 간단하다. 큰 실험을 시작하기 전에, 작은 실행을 같은 방식으로 다시 할 수 있어야 한다.
다음에는 이 실행 환경을 노트북과 데스크탑 사이에서 옮길 때, 왜 긴 기록 대신 짧은 인수인계 규칙을 만들었는지 적어 보려 한다.