Flow Week4
- G90을 활용한 자동차 에뮬레이터입니다.
- Scene1은 G90 에뮬레이터, Scene2는 깃발 트래킹 강화학습으로 이루어져 있습니다.
- Unity 실행 시 주의사항
- Engine: Unity 2020.3.26.f1
- Language: C#
- Design: Blender
- ML-agents Release 19
- Python package 0.28.0
- Unity package 2.2.1
-
Blender를 통해 G90을 3D 모델링했습니다.
-
Unity를 통해 G90을 시험 운행 할 수 있습니다.
- W,A,S,D 키 입력을 통해 이동할 수 있습니다.
- V 키 입력을 통해 카메라 시점을 전환할 수 있습니다.
- Z 키 입력을 통해 좌우측 도어와 트렁크를 개폐할 수 있습니다.
- Q, E 키 입력을 통해 좌우측 방향지시등을 작동 시킬 수 있습니다.
- 숫자 패드의 1, 2, 3, 4 버튼을 통해 화면을 미리 설정해둔 카메라들로 분할 할 수 있습니다.
- 1은 메인 화면, 2는 두 개로, 3은 세 개로, 4는 네 개로 분할합니다.
- 마우스 스크롤을 통해 줌인, 줌아웃을 할 수 있습니다.
-
FCAS(Forward Collision-Avoid System)
- ML-Agents를 이용해서 Flag Tracking을 훈련시킨 모델입니다.
- 이미 훈련된 모델을 사용하고 싶다면 다음과 같이 진행합니다.
- Hierarchy 윈도우에서
AgentCar -> TrainingArea -> CarAgent
클릭합니다. - Behavior-Parameters에 autopilot.nn 모델을 추가합니다.
- Behavior Type에서 Inference only를 체크합니다.
- Hierarchy 윈도우에서
- 새로운 모델을 훈련시키고 싶다면 다음과 같이 진행합니다.
- Behavior Type에서 Default를 체크합니다.
- Shell을 열어
mlagents-learn CarAgent_config.yaml --run-id=testpilot
를 입력합니다. - Unity로 돌아와 플레이버튼을 클릭합니다.
- 차를 직접 운전하고 싶다면 다음과 같이 진행합니다.
- Behavior Type에서 Heuristic only를 체크합니다.
- W,S,A,D 키를 활용하여 운전합니다.
- Unity에서 플레이버튼을 클릭합니다.
- Unity에서 제공하는 ppo RL-algorithm을 사용하여 학습했습니다.
- Target에 도달하면 reward를 부여하고, Floor에서 추락하면 penalty를 부여합니다.
- G90 x,z 좌표의 관찰값을 받아서 학습을 진행합니다.
- ML-Agents 예제는 다음 링크에 제공되어 있습니다. [Link]
My_little_endian_pony\mltest\mlagent\Packages\manifest.json
파일 수정이 필요합니다.manifest.json
내부에서 아래 항목들을 찾아,com.unity.ml-agents
와com.unity.ml-agents.extensions
의 경로를 본인 환경에 맞게 수정합니다.
{
"dependencies": {
"com.unity.ml-agents": "file:/Desktop/mltest/ml-agents-release_19/com.unity.ml-agents",
"com.unity.ml-agents.extensions": "file:/Desktop/mltest/ml-agents-release_19/com.unity.ml-agents.extensions",
}
}