센로그

[Unity] 강화학습을 활용한 VR 지하철 화재 대피 시뮬레이션 본문

프로젝트

[Unity] 강화학습을 활용한 VR 지하철 화재 대피 시뮬레이션

seeyoun 2024. 1. 21. 23:30

◆ 프로젝트 개발 동기

  • 2003년 대구 지하철 화재 참사로 대한민국은 재난 및 사고 시 대응 매뉴얼을 구축하고 시민들의 사전 훈련과 숙지 상태가 얼마나 중요한지를 알게 되었습니다. 이후 각 기관과 정부는 이에 대한 중요성을 실감하며 재난 및 사고 대응체계를 강화하기 위해 많은 정책을 도입하고 실현하고 있습니다.
  • 'Safe VR Subway Simulation with Reinforcrment Learning' 은 VR 지하철 화재 대응 시뮬레이션 콘텐츠로, 시민들의 안전의식을 향상하고 지하철 화재 사고시 신속한 대응 체계 확립에 기여하기 위해 기획·개발되었습니다. 학교 및 기관에서 매년 건물 내 화재 대응 훈련이 실시되고 있으나, 지하철과 같은 특수한 공간에서의 재난 훈련은 실전처럼 진행하기엔 어렵습니다. 특히 지하철의 경우 대부분이 지하 공간을 이용하고, 많은 인원이 탑승하기에 사고시 피해 규모가 큰 편이며 2차 피해까지 이어질 수 있으므로 대처 방법을 미리 인지하고 침착하게 대응하는 것이 중요합니다.
  • 따라서 저희는 지하철 역사 내부를 가상현실로 구현하여, 지하철 승강장 및 열차 내부 화재 시 초기 대처 및 대피 방법을 단계별로 현실감 있게 실습하고, 이를 통해 실제 재난 발생 시에도 이성적/감정적으로 침착하게 대처할 수 있는 실전 경험을 제공하고자 합니다. 현실감 있는 사고 대응 훈련을 위해서 지하철 환경 및 안전 장치의 위치 및 구조, 현장 사운드를 최대한 실제와 유사하게 구현하였습니다.
  • 체험 시 사용자의 대응 결과를 평가하기 위해 강화학습을 사용했습니다. 실제 사고 상황에 대한 데이터는 많지 않습니다. 따라서 데이터 없이도 직접 시행착오를 거치며 학습할 수 있는 강화학습을 통해 수많은 상황을 시뮬레이션함으로써, 최선의 결과를 찾아낼 수 있습니다. 콘텐츠가 종료되면 본인이 선택했던 상황이 어떤 결론에 도달하였고, 얼마나 적절했는지 확인할 수 있으며 이를 통해 재난 상황에서 어떤 행동을 해야 하는지 학습할 수 있습니다.

◆ 프로젝트 목적

  • 지하철 승강장 및 열차 내부 화재 시 초기 대처 및 대피 방법을 단계별로 현실감 있게 실습하고, 이를 통해 실제 재난 발생 시에도 이성적/감정적으로 침착하게 대처할 수 있는 실전 경험을 제공하고자 합니다

 


 프로젝트 개요

프로젝트 제목 : Safe VR Subway Simulation with Reinforcrment Learning

 플랫폼 : VR (Oculus Quest2)

 장르 : 시뮬레이션

 소개 및 플레이 영상 : https://www.youtube.com/watch?v=6vQ57Ax0qo4

 

< 에피소드 진행 순서 >

 

 

더보기

1. 승강장 진입

 

2. 지하철 탑승

 

 

3. 지하철 내 화재 발생

- 소방 시설 확인 : 화재를 초기 진압하고 탈출하기 위한 소방 시설의 위치를 확인합니다.

- 소화기 사용 및 화재 진압 : 지하철 내에 비치된 소화기를 찾고, 안전핀을 뽑은 후 화재 장소에 소화기를 분사하여 화재를 초기 진압합니다.

 

4. 지하철 비상 탈출

- 전동차 문 열기 : 지하철 자동문 옆 비상 핸들의 커버를 열고, 손잡이를 시계방향으로 돌려서 지하철 자동문을 엽니다.

- 스크린 도어 열기 : 스크린 도어의 손잡이를 잡고 밀어서 스크린 도어를 엽니다

 

5. 승강장 내 화재 발생

- 소방 비상벨 작동 : 역사 내 다른 승객들이 화재 사실을 알 수 있도록 소방 비상벨을 작동하여 화재경보를 통보하고 대피할 수 있도록 합니다.

- 소화기 사용 및 화재 진압 : 승강장 주변에 비치된 소화기를 찾고, 안전핀을 뽑은 후 화재 장소에 소화기를 분사하여 화재를 초기 진압합니다.

 

6. 외부 탈출

- 비상등 확인 : 비상등을 확인하고 외부로 탈출하여 안전 장소로 대피합니다.

 

7. 체험 결과 확인
: 강화학습을 통해 학습한 최선의 상황을 바탕으로, 시뮬레이트 결과를 산출합니다.

 

 


◆ 개발 기간 및 참여 인원

개발 기간 : 2023.11.10 ~ 2023.11.11

참여 인원 : 프로그래머 4

 


◆ 개발 방법

강화학습

  • 비상 대피 교육은 매뉴얼에 따라 한정적으로 움직이며 실제 안전사고 상황에 대한 데이터는 턱없이 부족합니다. 일반적인 통계 데이터들은 사고 상황 내의 여러 변수와 사람들의 다양한 판단을 제대로 고려하지 못하기 때문에 강화학습을 선택했습니다.
  • 강화학습을 사용하면 직접 시행착오를 거치며 학습하기 때문에 데이터의 필요성이 사라지게 됩니다. 따라서 강화학습을 통해 수많은 상황을 시뮬레이션하여, 최선의 결과를 찾아낼 수 있도록 구현하였습니다. 또한, 사용자의 순간적 판단이 어떤 결론에 도달하였는지 확인할 수 있기 때문에 콘텐츠를 반복해서 체험하면 최선의 상황에 도달하기 위한 행동들을 경험적으로 학습할 수 있습니다.

 

 

Unity를 활용한 물리 시뮬레이션 및 상호작용

  • Unity의 물리 엔진을 활용하여 가상 공간 내에서 물체 간의 물리적 충돌 및 상호작용을 구현했습니다. 사용자는 1인칭 시점에서 생동감 있는 콘텐츠를 경험할 수 있습니다.
  • Raycasting을 통해 사용자가 컨트롤러를 특정 방향으로 향하거나 특정 지점에 Ray를 쏴서 상호작용을 감지할 수 있습니다. 버튼 클릭, 물체 선택, 상호작용 지점 트리거 등의 기술 구현에 활용했습니다.
  • 안전 교육 콘텐츠에서는 레버를 돌리거나 소화기 안전핀을 제거하는 등 디테일한 상호작용 요구했기 때문에 단순한 클릭, 선택을 넘어서 섬세한 컨트롤을 할 수 있도록 구현했습니다. VR 컨트롤러를 사용하여 레버를 일정 각도 이상 돌려서 문을 통과하거나, 안전핀을 정확히 타겟팅하여 제거해야 하는 등 사용자의 세밀한 조작을 요구하여 현실감을 높일 수 있었습니다.

 

맵 디자인 및 사운드

  • 사용자에게 실제 상황과 같은 몰입감을 주기 위해 실제와 유사하게 맵을 구현했습니다.
  • 블렌더를 활용해 오브젝트의 디테일한 요소들을 분리하여 상호작용할 수 있도록 하였습니다. 문을 분리하여 양방향으로 열리도록 하거나, 안전바를 제작하고 상호작용 요소를 더해 안전바를 밀어서 문을 통과하는 컨텐츠를 만들었습니다.
  • 또한 상황에 적합한 입체감 있는 사운드를 추가하여 몰입감 높은 시각적 경험을 만들어낼 수 있었습니다.

 


◆ 프로젝트에서 나의 역할

  • VR 상호작용 구현
    • 소화기 안전핀 뽑기
    • 소화기 분말 발사 및 이에 따른 화재 진압
    • 스크린도어 열기
    • 소방 비상벨 작동
  • 맵 및 사운드 디자인
    • 블렌더를 사용해 모델을 최대한 현실과 비슷하게 수정
    • 실제 한국 지하철에서 사용하는 효과음 도입

 


◆ 기술 스택 및 사용한 도구

  • Unity (C#)
  • GitHub
  • Oculus Quest 2

 

Comments