Intelligence in Space

InDrone 환경 공유

2019-03-22
이현호
Projects

본 포스트에서는 (주)인스페이스에서 제작한 유니티 기반 드론 강화학습 환경을 공유하고자 합니다.

저장소 링크 : https://github.com/InSpaceAI/RL-InDrone


소개

강화학습 적용을 위해 유니티로 제작한 드론 시뮬레이션 환경입니다.

Drone Flight Drone Juggling

기본적으로 드론 비행 시뮬레이션, 드론 저글링 시뮬레이션을 제공합니다.

공유 파일들은 다음과 같은 기능을 제공합니다.

  • 직접 제작한 강화학습 알고리즘을 적용할 수 있습니다.
  • State, Action, Reward 설정을 바꿀 수 있습니다.
  • 유니티 툴을 이용하여 원하는 환경으로 마음껏 변환할 수 있습니다.
  • 사용자가 직접 키보드로 드론을 조종할 수 있습니다.

진행 환경

  • Windows10 64bit
  • Unity 2019.1.0f2 Personal
  • Unity ML-Agents v0.8
  • VisualStudio 2017

드론 비행 환경

Drone Flight

목표

  • 이 환경의 목표는 목적지(하얀 구체)에 도달하는 것입니다.

State 설정

  • 드론 - 목적지 벡터
  • 드론 상향 벡터
  • 드론 전방 벡터
  • 드론 속력
  • 드론 각속력

Action 설정

  • 각 프로펠러의 추력 (Continuous)

Reward 설정

  • 드론-목적지 거리의 변화량

드론 저글링 환경

Drone Juggling

목표

  • 이 환경의 목표는 빨간 공을 놓치지 않으면서 비행을 하는 것입니다.

State 설정

  • 드론 - 공 벡터
  • 드론 현재 위치 - 초기 위치 벡터
  • 드론 상향 벡터
  • 드론 전방 벡터
  • 드론 속력
  • 드론 각속력
  • 공 위치 변화량의 유닛 벡터

Action 설정

  • 각 프로펠러의 추력 (Continuous)

Reward 설정

  • 드론 상향 벡터의 y축 값
  • 1 / 드론 초기 위치 부터 벗어난 거리
  • 1 / 공 초기 위치 부터 벗어난 거리

시작하기

설정 변경 및 환경 제작

  • Unity에서 UnitySDK 를 Open 하시면 드론 환경에 접근할 수 있습니다.
  • 드론 환경은 Assets/DRONEENV 에 있습니다.

Unity ML-Agents 튜토리얼이 필요하시면 참조하시기 바랍니다.
링크 : https://github.com/hyunho1027/Unity_ML_Agents_Tutorial

강화학습 알고리즘 적용

  • notebooks/getting-started.ipynb. 에서 직접 만든 알고리즘을 적용할 수 있습니다.

사용자 모드

  • playermodes/DRONEENV/DRONEENV.exe 에서 키보드로 직접 드론을 조종해볼 수 있습니다.

사용자 설정

  • 사용자 모드에서 Q, W, A, S 로 직접 드론을 조종할 수 있습니다. 각 키를 누르면 해당하는 프로펠러에 추력을 발생합니다.

Similar Posts

Comments