본문 바로가기

Quadruped Robot/Quadruped Robot Theory

Quadruped 공부 하고 싶다. #6-3 [Task1 - PPO: Cartpole with Pytorch③-3]

728x90

#PPO with Cartpole in Pytorch

<CartPole-Training>

Sim2Real을 하기 이전에, 어떻게 Env와 Agent가 소통을 하는지

직접적으로 코드를 짜서 구현해보는 Task를 진행해본다.

 

추후에 Isaac-Gym에서 이 부분을 커스텀하게 만들어야 하는데 

굉장히 복잡할 거 같아서 좀 무섭지만, 그래도 부딪히고 볼 생각이다.

그림 1. Directory

좌측에 Directory를 보면 우리가 일전에 구현한 PPO_torch.py와
이제 만들게 될 GYM_torch.py를 한 폴더에 넣어주고
from PPO_torch import Agent를 통해 파일을 불러온다. 
utils코드는 단순하게 성능지표를 png파일로 저장해주는 기능이므로
크게 다룰 것이 없다고 생각한다.

 

Algorithm의 Structure를 위주로 설명해 보고자 한다.


OpenAI-Gym [CartPole-Env]

1. Env & Constants

그림 2. Env 생성과 상세 설명

  • 여기서는 gym.make와 Agent가 어디 위치에 들어가야 하는지 위주로 보면 좋다.

 

2. Rendering, Learning

그림 3. Rendering & Learning

  • env.render를 끄면(주석처리) 학습에만 집중한다.

 

3. Save

그림 4. Save & Load & plot save

  • 학습은 위에서 끝나고, pth파일로 저장하기 위해 save 포인트를 지정하는 부분이다.
  • save를 하면 모델 train이 되고, load를 하면 evaluate을 한다고 보면 된다.


Conclusion

이렇게 PPO를 어떻게 Simulation과 소통하면서 돌리는지 알아봤다. 

 

이제 이 지식을 토대로 Isaac-Gym에서 PPO를 구현해보고

Sim2Real 프로젝트로 넘어가 보려 한다. 

 

Quadruped 로봇은 이루지 못해 아쉬움이 남지만

간단한 Task를 통해 갈증을 해결해 보려 한다.