728x90
#PPO with Cartpole in Pytorch
Sim2Real을 하기 이전에, 어떻게 Env와 Agent가 소통을 하는지
직접적으로 코드를 짜서 구현해보는 Task를 진행해본다.
추후에 Isaac-Gym에서 이 부분을 커스텀하게 만들어야 하는데
굉장히 복잡할 거 같아서 좀 무섭지만, 그래도 부딪히고 볼 생각이다.
좌측에 Directory를 보면 우리가 일전에 구현한 PPO_torch.py와
이제 만들게 될 GYM_torch.py를 한 폴더에 넣어주고
from PPO_torch import Agent를 통해 파일을 불러온다.
utils코드는 단순하게 성능지표를 png파일로 저장해주는 기능이므로
크게 다룰 것이 없다고 생각한다.
Algorithm의 Structure를 위주로 설명해 보고자 한다.
OpenAI-Gym [CartPole-Env]
1. Env & Constants
- 여기서는 gym.make와 Agent가 어디 위치에 들어가야 하는지 위주로 보면 좋다.
2. Rendering, Learning
- env.render를 끄면(주석처리) 학습에만 집중한다.
3. Save
- 학습은 위에서 끝나고, pth파일로 저장하기 위해 save 포인트를 지정하는 부분이다.
- save를 하면 모델 train이 되고, load를 하면 evaluate을 한다고 보면 된다.
Conclusion
이렇게 PPO를 어떻게 Simulation과 소통하면서 돌리는지 알아봤다.
이제 이 지식을 토대로 Isaac-Gym에서 PPO를 구현해보고
Sim2Real 프로젝트로 넘어가 보려 한다.
Quadruped 로봇은 이루지 못해 아쉬움이 남지만
간단한 Task를 통해 갈증을 해결해 보려 한다.