#1 Intro
https://github.com/leggedrobotics/legged_gym
GitHub - leggedrobotics/legged_gym: Isaac Gym Environments for Legged Robots
Isaac Gym Environments for Legged Robots. Contribute to leggedrobotics/legged_gym development by creating an account on GitHub.
github.com
Nvidia에서 제공하는 다양한 Tutorial을 리뷰하기 앞서, 공동의 목표가 잡힌 Quadruped Robot에 초점을 맞추다가 취리히 공대에서 오픈된 코드를 하나 발견할 수 있었다.
아직은 참조된 논문은 읽어보지 못 했지만, 이는 이론적인 부분에서 다루고 Simulation에만 집중해서 얘기해보려 한다.
짧게나마 인상적이였던 구문은,
대부분의 논문들은 120시간, 88시간 12시간 등등의 학습시간을 보였지만, Isaac gym은 parallel training에 집중하여 개발 된만큼
오로지 Single GPU만을 사용해 그 시간을 최소 20분이하로 단축시키는데 성공하였다고 한다.
#2 Installation
일단 해당 코드를 돌려보기 전에 사전에 준비를 몇 가지 해야 한다.
github주소에 자세한 설명이 돼 있지만 간략하게 정리하면.
1. torch 버전 맞추기
2. Isaac Gym 설치하기
3. rsl_rl 설치하기
4. leggedrobotics 설치하기
대략적으로 4가지 단계로 분류된다.
일단 내 같은 경우에는 일전에 아이작을 설치해놨고, 단순하게 git clone 하면 되겠지 했는데
1. torch attributes error가 발생하였다.
pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
해당 README.md 에서 언급됐듯이 1.10의 torch를 설치하면 해결되는 모습을 보였다.
3. 그리고 난 뒤에 rsl_rl을 설치하였는데
git clone https://github.com/leggedrobotics/rsl_rl
자세한 이유는 모르겠지만 rsl_rl을 pip install -e . 를 하고 난 뒤 약간의 에러 문구가 보였다.
아마 버전에 대한 error 메시지였던 거 같은데, 프로그램을 실행하는 데는 아무 문제가 없었다.
(항상 말하지만 setup.py가 있는 곳에서 pip install -e . 를 해야 한다.)
4. 이제 드디어 위에 포스팅한 git hub의 directory에서
pip install -e .
를 해주면 설치가 완료된다.
※ 저는 rsl_rl안에 legged_gym을 clone하지 않았습니다. 디렉토리 자체만 잘 설정하면 상관 없긴 합니다.
#3-1 Usage - train.py
그림 1. 에서 나온 대로 사용방법에 대해 알아보면 기재된 경로가 실제와는 조금 다르다는 것을 볼 수 있다.
나 같은 경우에는
legged_gym/scripts에 해당 파일이 있었다.
경로 자체가 달라서 python 경로/어쩌고/train.py를 하지 않고
위 그림 2.처럼 scripts경로에 직접 들어가서
python train.py --task=anymal_c_rough
를 입력해주면! 조금 시간이 걸린다.
Isaac gym에서 Terrain이 포함된 파일을 불러오면 시간이 좀 걸렸다.
아무래도 모델과 환경 전부 불러오다 보니 조금 시간이 걸리나 보다.
Isaac은 항상 'v'를 눌러서 시뮬레이션을 멈추고 강화학습에만 집중 할 수 있는 기능을 제공한다.
어느정도 봤으면 v를 누르고 학습에 집중시켜 빨리 끝내자.
#3-2 Usage-play.py
약 1500번의 학습이 끝나면 play.py파일로 내가 훈련시킨 모델을 테스트해볼 수 있다.
train 시켜놓고 그동안에 ros공부를 하고 있었는데, 생각보다 시간이 좀 걸렸다. 한 10~20분? 쯤 (3080 ti 사용 중입니다.)
근데 논문을 열어보니, 다른곳은 12시간 training할 때 이건 single gpu로 20분만에 한다는 것이 굉장한 강점이라고 소개 돼 있다.
아는만큼 보인다는데, 난 복받은 train을 했던 것이였다.
python play.py --task=anymal_c_rough
이렇게 테스트를 실행하면,
좌측에 matplot이랑 같이 아이들이 뛰어다니는 모습을 볼 수 있다.
#4 수정
plot이 서로 겹쳐서 나오는 경향이 있는데, 이는 legged_gym/utils/logger.py 파일을 열어서
Line 126에 plt.tight_layout()을 추가해주면 해결된다.
#5 앞으로의 진행
이제부터는 이 시뮬레이션을 기점으로 내 모델을 강화 학습에 넣어보려 한다.
혼자 하려고 보니까 너무 많은 내용이 있어서, 몇몇 사람들과 공부하면서 같이 해결해 보려 한다.
혼자만 공부하다가 관심 있는 사람들이 모여서 한다고 생각하니, 굉장히 기분이 좋다.
'Isaac Gym' 카테고리의 다른 글
시뮬레이션 하고 싶다. #5-1 [Tensor API-Rigid Body States] (0) | 2022.01.20 |
---|---|
시뮬레이션 하고 싶다. #4-2 [Isaac Gym Environments for Legged Robots-Cassie] (0) | 2022.01.16 |
시뮬레이션 하고 싶다. #3-2 [Make Custom Gym (Part 2)] (2) | 2022.01.07 |
시뮬레이션 하고 싶다. #3-1 [Make Custom Gym (Part 1)] (1) | 2022.01.05 |
시뮬레이션 하고 싶다. #2-2 [Environments, Training, and Tips] (0) | 2021.12.26 |