isaac sim, isaac gym의 이해
isaac sim과 isaac gym을 처음 접하는 분들은 둘의 어떤 차이가 존재하는지 궁금할 것이다
나는 기존에 pybullet을 사용하여 구성하던 강화학습 환경에 문제점들로 인해서
최근 issac sim 기반으로 환경을 변경하고 있는데, isaac sim이니 isaac gym이니 비슷한 용어들이 자꾸 등장해 헷갈리고 이해도 안됐다
Omniverse isaac sim의 공식 Documentation을 읽는게 베스트지만 귀찮은 분들을 위해 간단히 요약해서 올려둔다
<< 잘못된 내용 있을 수 있습니다 >>
isaac sim은 NVIDIA의 Omniverse 플랫폼에 기반해 만들어진 로보틱스 시뮬레이션 이라고 생각하면 된다
isaac gym은 isaac sim에서 강화학습 환경을 구성하기 위해 제공해주는 framework라고 생각하면 된다
내가 생각하는 isaac gym의 가장 큰 장점은 rl network, action, sim step 간 sync 문제를 어느정도 완화해준다는 점이다
대부분의 시뮬레이션 API는 rl network > action > sim step 순으로 main loop가 동작하는데 반해
isaac sim에서 제공한 isaac gym 예제들은 sim step이 main loop로 동작하고 있고,
rl network와 action은 callback 형태로 동작한다
그리고 또다른 장점은 ray tracing 지원으로 타 시뮬레이션에 비해 sim과 real 간 visual gap이 작다는 점?
이는 sim2real시 유리할 것 같다 ( 하지만 visual observation쓰는 대부분의 논문들은 GAN을 이용해 real->sim으로 변환시킨다 )
동작 시 isaac sim과 isaac gym의 가장 큰 차이점이라고 한다면
isaac sim은 GUI를 통해서 시뮬레이션을 사용할 수 있는 반면 isaac gym은 API로 접근해야한다(이를 headless라 부르는 것 같다)
API 공부를 잘 해야한다는 뜻
근데 isaac gym 예제가 정말 좋다. 여러 parameter들과 reward design을 전부 공개해놓았다.
다만 예제가 많이 없다 . 코드도 많이 없고 ,
수정 예정