시뮬레이터 강의
정책 학습, 데모 데이터 생성, 배포 전 평가에 쓰는 가상 환경. 시뮬레이터를 현실에 맞추는 과정(real2sim)까지 다룬다
로봇 주변
아직 공개한 강의가 없습니다. 준비 중인 주제는 아래와 같습니다.
개요
시뮬레이터의 역할(정책 학습·데이터 생성·평가), 시뮬레이터와 현실이 어긋나는 지점, 물리 엔진 선택 기준
-
시뮬레이터의 역할: 정책 학습, 데이터 생성, 평가공개 예정
시뮬레이션 시간을 실제 시간과 분리하면서 로봇 학습의 규모가 어떻게 달라졌는지.
-
시뮬레이터와 현실은 어디서 어긋나는가공개 예정
시뮬레이터와 현실 사이 격차가 생기는 다섯 가지 원인과 갭 점검표, 그리고 격차의 상당 부분이 사람이 넣은 설정에서 나온다는 점.
-
물리 엔진 선택 기준: MuJoCo, PhysX, Genesis, Newton 비교공개 예정
접촉 솔버, 병렬화, 렌더링, 생태계를 기준으로 비교하기.
기본
URDF·MJCF·USD 형식과 변환, 첫 MuJoCo 실험, Isaac Lab으로 강화학습 환경 구성하기, 시뮬레이터에서 데모 수집하기
-
로봇 모델 파일 형식: URDF, MJCF, USD와 형식 간 변환공개 예정
형식끼리 변환할 때 빠지거나 바뀌는 관성, 충돌 형상, 액추에이터 정의.
-
MuJoCo 첫 실험: mj_step의 계산 순서와 처짐을 없애는 설정공개 예정
한 스텝 안에서 순동역학, 접촉, 적분이 계산되는 순서, 그리고 gravcomp, 높은 게인의 PD, 중력 끄기가 각각 처짐을 없애는 방식.
-
Isaac Lab으로 첫 강화학습 환경 구성하기: manager-based 워크플로, decimation, 병렬 학습공개 예정
manager-based 워크플로, decimation, 병렬 학습으로 기준 보행 정책 만들기(GPU가 없으면 MuJoCo Playground로 대체).
-
시뮬레이터에서 데모 수집하기: 키보드 텔레옵부터 LeRobot 형식까지공개 예정
시뮬레이션에서 텔레옵하며 기록하기, 액션과 상태가 거의 같은 값이 되는 현상 관찰.
심화
접촉 계산의 원리, 액추에이터 모델링, 도메인 랜덤화, 시스템 식별, MimicGen·SkillGen 데모 자동 생성
-
접촉 계산의 원리: 침투, 미끄러짐, 폭발공개 예정
soft contact와 반복 솔버, 그리고 파지 실패와 폭발에서 거꾸로 원인 찾아가기.
-
시뮬레이터의 액추에이터 모델링: 이상적인 토크원에서 actuator net까지공개 예정
armature, 마찰, 토크-속도 한계, 지연 모델.
-
도메인 랜덤화: 무엇을 얼마나 무작위로 바꿀 것인가공개 예정
알아낼 수 있는 값은 식별하고, 모르는 값만 랜덤화한다는 원칙.
-
시스템 식별: 시뮬레이터를 현실에 맞추는 절차공개 예정
여기(excitation) 궤적, 최소제곱법과 CMA-ES, 교차 검증(SO-101 한 대로, 또는 파라미터를 숨긴 시뮬레이터를 실물 대신 써서).
-
데모 자동 생성의 원리: MimicGen과 SkillGen공개 예정
물체 기준으로 데모 구간을 변환하는 방식과, 성공한 데모만 남길 때 생기는 생존자 편향.
실전
시뮬레이터 평가 결과를 믿을 수 있는 조건, 갭 점검표로 시뮬레이터 설정 검토하기, 시뮬레이션 데이터를 섞는 co-training의 효과와 한계, 월드 모델을 시뮬레이터로 쓰기
-
시뮬레이터 평가 결과는 언제 믿을 만한가: 실물 결과와의 순위 상관, 짝지은 평가, sim2sim공개 예정
시뮬레이션과 실물 결과의 순위 상관, 짝지은(paired) 평가, 시뮬레이터 허점 찾기.
-
갭 점검표로 시뮬레이터 설정 검토하기: 격차를 만드는 설정과 줄이는 설정공개 예정
격차를 없애거나 만드는 설정을 찾고, 그 격차를 어느 층에서 흡수할지 정한다.
-
co-training의 효과와 한계: 시뮬레이션 데이터 혼합 비율에 따른 양의 전이와 음의 전이공개 예정
혼합 비율에 따라 달라지는 양의 전이와 음의 전이를, 설정을 바꾼 시뮬레이터를 실물 대신 써서 확인한다.
-
월드 모델을 시뮬레이터로 쓸 수 있을까공개 예정
롤아웃에서 쌓이는 오차, 그리고 액션 입력을 바꾸면 예측도 그에 맞게 바뀌는지(제어 가능성).