이번 춘계 항공우주공학회에 발표논문으로 쓰려고 준비했던 강화학습 환경에 대해 써본다.
여러가지 이유와 내 생각으로 인해 주제에 대해 못쓰게 되서 포스팅이라도 해본다.
https://www.youtube.com/watch?v=6o5w0RGIc6g
우선은 강화학습을 진행한 시나리오에 대해 내용을 덧붙이자면
목표고도와 현재기체의 고도 차(벡터), 현재 기체의 Z축 방향 속도를 입력으로 기체의 Throttle Stick 입력 [0-1] 출력하여 목표 고도에 기체가 도달하게 강화학습하는 것을 목표로 하였다.
먼저 Takeoff 3m까지 한 다음 목표고도를 랜덤으로 [2-4]m를 주어 학습을 시작하였다.
CartPole 예제와 같이 매우 간단한 학습 시나리오이다.
다른 점이라면 현실처럼 센서 모델링 및 로터 모델링 까지 구성된 매우 충실도가 높은 시뮬레이션 상에서 학습을 진행했다는 것이다.
물론 이에 대해서도 CartPole에 대해 노이즈나 지연 모델을 넣는다면 충실도가 높아지겠지만 이미 돼있는것을 통해 빠르게 알고리즘을 테스트한다면 얼마나 좋은가.
아무튼 학습 결과적으로 경향성 자체는 보인다.
경향성이 나오기 전까지 기체가 계속 떨어져 환경이 잘못 됐다고는 생각했으나 이래저래 경향성이 보이니 환경이 잘못된 것은 아닌거 같아 다행이였다.
영상 안 우측 터미널에서 보면 episode위에 써있는 숫자는 목표고도를 의미하면 그 아래에 써져있는 Reward는 그 목표고도에 대해 받은 보상이다.
원래 이 환경에 대해서 논문을 쓰려고 했을 때 매우 복잡한 시나리오를 구성해 그 결과에 대해 쓰려고 했었다.
시간이 없어 우선 경향성만 보려고 했으나 시간이 너무나도 부족했다.
아래는 특정 목표 고도에 대한 시뮬레이션 결과이다.
목표고도 3.1m일때 시뮬레이션 결과
좌) 목표고도 2.5m일때 우)목표고도 -3.8m 일때 시뮬레이션 결과
아직 학습을 다 진행한 것이 아닌 학습의 경향성이 보였을 때 시뮬레이션 결과이기에 그다지 좋아보이지는 않는다.
학습이 된다는 것을 확인했으니 환경을 개선하거나 복잡한 시나리오에 대해 구성하려고 한다.
또는 이 환경을 버리고 다른 주제를 찾던지
'취미-공학' 카테고리의 다른 글
px4_ros_com, px4_msgs 패키지 사용자 정의 메시지를 통해 PX4 모듈과 통신 (0) | 2022.04.16 |
---|---|
PX4 Hexarotor 6H frame Mixer 제작 및 SITL (0) | 2022.04.16 |
Tensorboard로 데이터 보기 (0) | 2022.03.19 |
Gazebo 동적 장애물 실습 (0) | 2022.03.16 |
Gazebo 시뮬레이션 구상 진행 (0) | 2022.03.16 |