본문 바로가기

Sim2Real/Acrobot

Simulation to Real. #7 [Acrobot-IsaacGym : Inverted Pendulum Balance]

728x90

#Intro

이전 글을 이어서 적는다.

Inverted Pendulum Balance


Solution 3 - tan 함수 (성공)

sin도 제대로 학습이 안되는 거 같아서, 어떤 방법을 사용해야 할까 고민하던 찰나.

sin그래프 아래에 tan그래프가 그려져 있었다. 생각해보니까 좌우 대칭에 안정적인 경사를 만들어 낼 수 있는 그래프지 않나

하는 생각이 머리를 스쳐지나 갔다.

 

그래서 바로 sin을 대체했다. 

그림 1. tan를 통한 reward 설계
그림 2. tan로 보상 설계

그리고 추가적으로 만약 θ가 π가 되면 그간 앞에서 걱정했던, 페널티 값이 하늘로 승천해 버리기 때문에

이 문제를 해결하고자, tan함수의 주기를 늘려주는 작업을 했다.

 

최대한 탐험의 범위를 넓혀 보고자 주기의 범위를 tight 하게 주지 않고 ± 4π 로 만들어 보았다.

만약 해당 범위까지 Acrobot이 회전하게 되면, 아예 초기화를 시켜버리는 방법을 선택했다.


1) tan - epoch 100회

 

tan - epoch 100

tan으로 해석하게 되면 처음부터 sin 400 ~ 600에서 보였던 탐험을 시작하는 걸 볼 수 있었다. 


2) tan - epoch 200회

tan - epoch 200

아직 큰 발전은 없지만 중간중간에 task를 수행하는 Model들이 보이기 시작한다.


3) tan - epoch 500회

tan - epoch 500

이제 슬슬 모든 모델들이 desired point에 가깝게 다가가기 시작한다.


4) tan - epoch 750회

tan - epoch 750

750에 비해 좀 더 장시간 머무르는 모습을 보이고, 한번 중심이 흐트러졌을 때, 다시 일어서는 모습도 보인다. 


5) tan - epoch 1000회 (성공)

tan - epoch 1000

대망의 마지막 Max Epoch 1000회를 달성하고 나면

모든 Model들이 원했던 Position을 찾아가는 모습을 보인다.


결론

코드 내에서 reset 부분을 설계하는 것도 일종의 보상 설계 방법 중에 하나이다. 

그렇지만, 해당하는 부분은 정말 최악의 경우로 Simulation상에서 주된 설계 부분이 아니라고 생각했다. 

 

1~2주일 정도 모델을 만들고 urdf로 바꾸고 framework를 공부하고 또 1주일 정도를 보상 설계하는 데 사용했다. 

왜 잘못됐나 또 어떻게 잘 되게 하나를 여러 번 고민하고, 그동안 이 공식 저 공식을 써봤는데 공학 수학을 검토하고

삼각함수 형태를 보면서 아이디어를 짜내다가 20분 만에 해결하는 걸 보고 뭔가 Optimization을 기하학적으로 

해석할 줄 알면 좀 더 빠르고 쉽고 괜찮은 보상 설계를 할 수 있겠다는 생각을 했다.

 

이 외에도 다양한 환경에 대해 적응시키기 위해 randomization domain을 대입도 해보고

실제 Link들의 rad/s와 effort에 가깝게 파라미터를 수정해 보는 과정이 필요하다고 생각한다.

이 과정에서 rad/s를 1000으로 설정하고, Link2의 Velocity에 대한 페널티를 주는 말도 안 되는 task도

실험해 봤는데, Link1이 회전하자마자 Link2가 헬리콥터처럼 도는 모습을 보였다.

그러고 나서 약 4000 epoch쯤 지났을 땐, Link1이 sin때와  같이 90도 기울어진 모습을 보여 실패했다.

하지만 그럼에도 Link2는 아주 섬세하게 세우고 있었는데, 이 부분이 조금 매력적이었다.

 

추가적으로 해본 실험에는 과도한 학습은 오히려 독이 되는 모습을 보였고, 

tan함수의 주기를 더 짧게 해서 탐험하는 회전범위를 축소시켜봤는데 학습시간과는 큰 상관관계를 보이진 않았다.


앞으로의 일정

이제 Simulation에서 어느 정도 다뤘으니, 이걸 현실로 Sim to Real을 도전해보고자 한다.

현재 pth파일은 force control로 이뤄지는데, 이 부분을 어떻게 현실로 옮길지가 관건이라고 생각한다.