4조(4조)

cdc wiki
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 화재 발생 상황에서 AR의 가시성(Visivility)을 활용한 대피 안내 UI 제작

영문 : Development of Fire Evacuation UI using AR on Fire occurrence

과제 팀명

구조

지도교수

홍의경 교수님

개발기간

2019년 9월 ~ 2019년 12월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20169200** 주*용 (팀장)

서울시립대학교 컴퓨터과학부 20129200** 최*우

서울시립대학교 컴퓨터과학부 20129200** 홍*훈

서론

개발 과제의 개요

개발 과제 요약

많은 사람이 이용하는 공간에서의 화재 발생 시 화재의 급속한 성장으로 인하여, 소화 구조 활동의 제약 등을 받게 되어 막대한 인명과 재산 피해가 발생할 가능성이 크다. 화재 현장은 급격한 화재 성장, 고온의 열 기류, 연기에 의한 시야의 제약 등으로 안전에 큰 위협이 발생할 가능성이 크다. 2015년 1월 10일 경기도 의정부시 시내에 있는 주거용 오피스텔 건물에서 화재가 일어나 약 130여 명의 사상자가 발생하였으며, 2017년 12월 21일 충청북도 제천시 소재의 스포츠 센터에서도 화재로 인해 총 66명의 사상자가 발생하였다. 화재 상황 시 발생하는 유독가스와 연기가 시야를 가리기 때문에, 이를 충분히 교육받지 못하면 더 큰 피해로 번질 수 있다. 실제로 의정부 아파트 화재 사고에서는 유독가스와 연기로 인해 탈출을 포기하고 집 안에 머물러 있거나, 복도를 채운 연기로 인해 시야가 가려져 제대로 된 탈출을 하지 못해 인명 피해가 급증하였다. 그러나, 고층빌딩, 다이용시설, 지하역사 상 등 대형 소방대상물에서의 화재 대응 훈련은 실제 화재를 재현하는 것이 불가능하므로 현실감이 있는 훈련을 수행하는 데 문제가 있다. 따라서 새로운 개념의 소방훈련 시스템 개발이 필요하며 이를 위해 가상현실(VR, Virtual Reality) 기술을 활용할 필요가 있다. 가상현실(VR, Virtual Reality)기술은 컴퓨터에 의해 시뮬레이션 되는 3차원 가상환경을 통해, 인간에게 실감 몰입감을 제공해 주는 기술로서, 데이터의 시각화/시뮬레이션/교육/의료/오락 등 다양한 분야에 걸쳐 폭넓게 응용되고 있다. 최근 많은 연구가 가상현실을 도입하여 화재 현장에서의 대처 방안을 교육하는 주제를 선정하여 진행되고 있으며, 시장 성장세도 연평균 9.23%로 매우 높은 실정이다. 그러나 화재 현장에서의 문자에 대한 가시성 및 시인성에 관한 연구는 현재 연구가 부족한 실정이다. 실제로 화재 현장에서 대피로 안내 문구 등을 따라 대피하며, 이를 반영하여 비상 탈출구는 시인성이 높은 초록색과 흰색의 조합으로 구성되어 있다. 하지만 실제 화재 현장에서 비상 대피 구는 위치상으로 잘 보이지 않을뿐더러, 익숙하지 않은 일반인들에게는 어디로 가야 하는지 지시를 해주는 역할을 제대로 할 수 있을지 의문이다. 그러므로 VR 환경을 기반으로 하여 가시거리를 실제 환경과 같이 조성된 화재 시뮬레이션 상황에서 글자 기반의 안내 지시등과 소방 안내 물품에 대해서 시인성이 뛰어난 폰트의 개발을 통해 인적ㆍ재산적 피해를 최소화할 방안에 관한 연구를 하고자 한다.

개발 과제의 배경

  1. 기술적 기대효과
    1. 개인용 컴퓨팅에 있어서의 하드웨어 환경은 급속도로 발전하여 최근에는 일반 사용자용으로 보급되는 PC에서도 충분히 양질의 실시간 3D 화면을 렌더링하는 것이 가능한 시대가 되었으며, 게임 및 애니메이션 등의 콘텐츠 산업 분야는 물론 가상 시뮬레이션 분야의 대중화에 기폭제가 되고 있다. 또한 네트워크의 발전과 확산이 개인용 컴퓨팅 환경의 급속 성장에 더해져 클라우드 컴퓨팅을 통해 어느 단말기나, 어느 위치에서도 사용하던 사용자 환경 정보를 그대로 불러와 작업의 연속성을 유지하면서 컴퓨팅이 가능해졌다.
    2. 기술적인 환경에서 특히 한국이 전 세계 시장에서 우위를 점하고 있는 3D 콘텐츠 분야가 바로 3D 온라인 게임 분야이다. 3D와 네트워크 기술을 연구 개발하여 게임 콘텐츠로 사업화 하는 데에 있어 초기 시장을 장한 한국의 기술력은 세계적으로 이미 입증된 상태이며, 3D 온라인 게임 분야는 그 기술적, 스토리의 시스템 전개적 특성상 3D 기술을 활용한 시뮬레이션 분야로의 응용이 가장 용이하다.
    3. 재난 상황에서 안내 글자 및 소방 자재 문구에 대한 연구는 초기 단계이다. 따라서 이 연구를 통해서 VR 환경에서 어떤 글자가 혹은 어떠한 색상이 실제로 효과적인지를 판단하여, 실제 빌딩이나 주택에 배치할 수 있을 것이다.
  2. 경제적 및 사회적 파급효과
    1. 대형 소방대상물에 대한 모의 훈련의 비효율성을 극복하고 가상 공간에 대형 소방대상물을 3차원으로 생성하여 안전하고 반복적으로 다수의 팀 단위의 모의 훈련이 가능하게 됨으로써 훈련에 소요되는 경제적 부담을 줄일 수 있다.
    2. 2010년 7조4천억원 규모였던 국내 게임시장에서 온라인 게임은 64.2%인 4조7천억원의 시장규모를 형성하였으며, 2013년에는 8조5천억 원을 상회할 것으로 예상되며, 수출에 있어서도 온라인 게임은 2010년 15억4천만 달러의 수출성과를 올렸으며, 세계시장 점유율 25.9%로 경 제대국인 중국의 30.4%에 이어 세계 2위의 온라인게임 강국의 면모를 과시하고 있다. 소방업무를 위한 전문교육 프로그램 또는 교육용 시뮬레이션, 교육용 게임 등은 전세계적으로도 출시된 솔루션이 많지 않은 블루오션 시장으로서, 당 주관연구기관이 기 보유한 해외 네트워크와 소재지인 인천시 외 관련 기관의 협력을 활용하여 해외 시장을 대상으로 한 사업을 도모할 수 있다. 본 연구과제의 성공적 완료 후 초등학교 및 중고등학교, 대학생 및 일반인을 대상으로 한 소방 및 방재 교육용 게임을 출시하여 에듀게임 콘텐츠로서 국내 및 해외 시장에 진출할 기회를 창출할 수 있다.
    3. 화재 현장에서 가시성에 대한 연구는 이루어지지 않았으며, 실제로 많은 비상등이 실제 화재 현장과 동떨어진 위치 혹은 디자인을 하고 있다. 이 연구를 통해서 고층 빌딩 및 복합 상가 등 유동인구가 많은 지역에서 안전하고 신속한 대피를 유도할 수 있는 신호 혹은 안내 지시를 할 수 있다.

개발 과제의 목표 및 내용

Display의 발달은 고정된 모니터 속에서만 볼 수 있던 애니메이션을 도시의 여러 공간에서 사람들이 볼 수 있도록 발전해왔으며, 버스 정류장에서의 광고는 이러한 모습의 한 단면을 잘 보여준다. 더 나아가서 근 미래적인 스마트시티에서의 다양한 모습은 거리 어디에서나 다양한 정보를 얻을 수 있는 미래사회를 기대하게 한다. 해당 프로젝트는 다양한 상황 속에서 정보 인식의 가장 기본적인 도구인 글자의 다양한 가능성을 탐구하고자 한다. 기존의 정적인 글자가 아닌 kinetic typography는 미래사회에서 쉽게 볼 수 있는 한 특징이 될 것이며, 이러한 특징이 화재 상황에서 사람들에게 어떠한 도움이 될 것인가에 대한 답변을 모색하는 것이 주요 목적이다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

전 세계적인 기술현황
  1. 전산 유체 역학 (CFD)
    전산 유체 역학(CFD, Computational fluid dynamics)은 유체 현상을 기술한 비선형 편미분 방정식인 나비에-스토크스 방정식(Navier-Stokes Equations)을 FDM (Finite Difference Method), FEM (Finite Element Method), FVM(Finite Volume Method) 등의 방법들을 사용하여 이산화하여 대수 방정식으로 변환하고, 이를 수치 기법(numerical methods)의 알고리즘을 사용하여 유체 유동 문제를 풀고 해석하는 것이다. 컴퓨터를 사용하여 공학 문제에서 유체와 기체의 상호작용을 시뮬레이션한다. 화재 시뮬레이션에서 CFD는 주로 점화, 열전달 및 물질전달, 연소속도, 최대 연소 유속, 에너지 방출속도, 화재성장속도, 연소속도의 변화에 영향을 미치는 인자, 화염의 확산 등의 화재성장에 관한 내용과 화재플럼 (부력에 의한 화염기둥의 열기류)의 생성 및 구조, 현상, 연기 단층 등을 일컫는다.
    이러한 CFD를 계산하기 위해서 NIST에서 제작한 CFAST (Consolidated Fire and Smoke Transport Model)와 FDS 2가지의 소프트웨어가 주로 이용된다. CFAST는 NIST 산하 BFRL (Building and Fire Research Laboratory)에서 제작된 소프트웨어로서 CFD를 계산하기 위해 Zone Model (상부경계층과 하부경계층을 각각 하나의 Cell으로 나누어 화재를 관찰하는 모델)과 Field Model (구획실의 공간을 수천 ~ 수백만개의 Cell) 으로 나눠서 관찰하는 두 가지 모델이 있다
  2. VR
    VR은 2013년부터 현재까지 제2의 성장이라고 불릴 정도로 급격한 성장을 이루었다. 적당한 가격대를 형성하고 있는 새로운 하드웨어 시장의 성장뿐만 아니라 새로운 기술들이 들어서면서 VR 시장은 지속해서 높은 성장세를 보인다. 여기서는 주로 주요 기술적 문제 및 하드웨어 및 소프트웨어에 대한 최신의 기술을 소개한다
    1. 기술적 요소
      최신의 HMD는 휴대폰 및 타블렛 화면의 기술적 성장에 힘입어 해상도, 픽셀 밀집도 그리고 대비도 등이 매우 발달한 상태이다. 따라서 기존의 디스플레이를 대체하여 휴대폰 화면이 사용되기도 한다. 각각의 픽셀은 다른 방법으로 배열될 수 있는 순수한 적색, 녹색 또는 파란색 구성 요소를 가진 하위 픽셀들로 구성되어 있다. 고전적인 RGB 하위 픽셀은 RGB 패턴을 반복한다. 대안으로 펜타일이 있으며, 흰색의 서브 픽셀 혹은 제2의 녹색 필섹을 사용한다. 펜타일 패턴은 특정 경우 인식 분해능이 낮지만, 향후 소형화할 수 있는 여지가 더 많다. 다른 시스템에서는 대신 추가 노란색 하위 픽셀을 사용하기도 한다. 이와 관련해 LCD 디스플레이는 백라이트를 컬러 마스크로 유기발광 다이오드 (OLED)는 유기성 LED를 사용하여 좀 더 우수한 색영역과 트루 블랙 영역을 구사하기도 한다.
      한편 Oculus Rift는 콘텐츠의 잔상효과가 문제가 되었는데, 이는 LCD 디스플레이 기술에서 고정된 발광효과가 기기가 회전하는 동안 잔상을 남기기 때문이었다. 현재는 OLED기술을 채택함으로서 이러한 문제는 어느 정도 해결된 상태이지만, 여전히 스트로브 조명을 사용하는 짧은 노출 시간은 깜빡이는 이미지를 생성한다. 하지만 이전에 생성된 흐릿한 이미지에 비해 개선된 결과를 나타낸다. 최신 HMD에 사용되는 디스플레이는 110 FOV에서 분해능에 대해 3ms 이하의 지속성을 보이며, 특히 Oculus DK2 OLED 디스플레이는 오버클로킹을 사용하여 2-3ms의 주사율을 보인다. Crystal Cove의 Prototype은 1ms 이하의 잔상도를 보이는 반면 소니의 Morpheus (Playstation VR)은 120Hz의 주사율에서 8.3 ms의 잔상도를 보인다.
      스크린도어 효과란 실제 픽셀사이의 가시적인 간격을 의미한다. 디스플레이가 렌즈를 통해 확대되면 그 효과가 가시화된다. 현재의 VR 기술, 특히 HMD 기술에서는 일부 사용자들에게는 불편함으로 다가온다. 디퓨저 화면을 적용하여 스크린도어 효과를 줄일 수 있으며, 이러한 문제는 더 이상 간극이 보이지 않을 때까지 디스플레이 해상도를 높임으로써 해결될 것이다
      렌즈와 관련해서는 Barrel Distortion 현상이 문제 시 되고 있다. Barrel distortion 현상이란 렌즈를 통해 평면의 이미지를 확대하면 이미지의 왜곡이 발생하는 현상이다. Pincusion distortion이라고 불리는 현상이 렌즈를 통해 볼 때 일어난다. 즉 직선이 왜곡되어 이미지의 중앙으로 휜 것처럼 보이는 것이다. 이러한 문제는 오목 렌즈와 볼록 렌즈를 겹치면 왜곡되지 않은 이미지가 나타나는 것처럼, 미리 왜곡된 이미지를 사용하면 해결된다. 또 다른 문제 중 하나는 색수차 현상이다. 렌즈를 이용하여 이미지를 확대할 때, 색상에 따른 파장의 길이 차이로 인해 발생하는 현상으로 이러한 문제는 색상 레이어에 따른 render-pass를 다르게 하여 해결될 수 있다. 다만 성능적인 문제가 존재한다. 보통 이러한 문제는 shader를 통해 해결된다. 또 다른 해결책은 프레스넬 렌즈나 비곡률 렌즈를 사용하는 것이다.
      사용자의 시선에 대한 정보를 획득하기 위해 tracking systems의 구현 또한 기술적인 문제에 포함된다. 최근의 tracking 기술은 적외선 다이오드 (Infra-red Diode)를 사용하여 광학적으로 fovea 영역을 추적하는 것이 주로 사용되고 있다. 다른 접근 방식으로서, 케이블이 연결된 HMD의 경우 자이로스코프, 가속계 그리고 전ㆍ자기장계 등을 사용하여 눈의 위치를 추적하기도 한다. 마지막으로 디스플레이 할 콘텐츠의 회전 시 주사율의 차이로 인해 발생하는 시간 왜곡 현상 (Time warp) 현상이 있다. Rendering 단계에서의 접근 방식을 통해 이러한 문제를 상당히 줄일 수 있다. 주로 사용되는 방법으로서는 비동기화적 시간 왜곡 및 Kalman filter 등을 통한 예측, 그리고 미리 rendering 하는 방식 등이 주로 채택되고 있다.
    2. 하드웨어적 요소
      컴퓨터에서 생성된 콘텐츠를 화면에 표시하는 연구는 1960년대부터 시작되어 왔다. 다양한 광학 및 스크린의 반복적인 개발이 지난 수십 년간 계속되었다. HMD 기술은 해상도, 대비도 등의 다양한 성능에 대해 주목하고 있다. 스마트폰 VR 시장의 경우, 삼성이 Oculus와 협력하여 고해상도의 스마트폰 제품군을 만들고 있으며, GearVR은 케이스의 옆면에 추가적인 터치패드를 제공하는 형식을 제공하여 스마트폰 VR의 차별화를 두고 있다. Zeiss VR One은 apple과 삼성의 기종 모두를 사용하여 스마트 VR 환경을 제공하고 있으며, Google과 협력하여 카드 보드 형식의 HMD를 만들었다. 일반적으로 생각되는 고정형태의 HMD의 경우 Oculus Rift, Play Station VR 그리고 HTC Vive가 주요 시장으로 부각받고 있다. Oculus Rift의 경우 개발자 키트 1, 크리스탈 코브, DK 2 등의 제품군을 거쳐 Oculus Rift 서비스를 제공하고 있으며 연구뿐만 아니라 가정용 VR 기기로서 각광 받고 있다. HTC Vive의 경우 Oculus Rift와 비슷한 사양을 지니고 있으나, 어플리케이션 측면에서 더욱 다른 영역을 제공하여 차별화를 두고 있다. 앞의 두 기기는 프레스넬 렌즈를 사용하여 색수차를 줄이는 반면 Playstation VR은 비곡률적 렌즈를 이용하여 중앙의 왜곡을 줄이는 형태를 지니고 있다.
      고정형태의 HMD의 경우 일반적으로 VR 체험 중 걸어 다닐 수 있다는 몰입감과 현실감 측면에서 단점을 보인다. 하지만 비용과 엔지니어링, 안전성에 대한 고려가 많기 때문에 가장 넓은 시장을 지니고 있다. 다만 HTC Vive는 거리 이내에서 공간을 추적할 수 있도록 하여 가상 공간 내에서 제한적으로 걸을 수 있게 하였다. FOVE HMD의 경우 사용자의 눈을 추적하고 현재 보고있는 것, 상호작용, 필드 깊이, 위조 렌더링 및 원격 사용자의 시선 방향 렌더링과 같은 몇 가지 특징을 파악함으로써 완전히 손대지 않고 렌더링할 수 있는 렌더링을 가능하게 한다. 다중 사용자 환경에서 구현할 수 있다. HMD에 대한 눈 추적의 초기 시도는 항공기 검사를 지원하기 위해 연구되었다.Haptic 디스플레이는 과학 VR 커뮤니티에서 흔히 시각 디스플레이와 결합되어 언급되고 있다. Vest 사는 조끼에 부착한 촉각 표시장치 영역을 활용한 KOR-FX22가 제공하는 조끼는 오디오 신호를 촉각적 피드백으로 변환하는 단순한 접근방식을 사용한다. 조끼와 컴퓨팅 시스템 사이의 연결은 오디오 출력을 통해 실현된다. 오디오 신호는 수집에 의해 처리되고 전송된다.
      입력장치로서는 컨트롤러 및 네비게이션 장치가 있다. 일반적으로 입력장치는 6DOF의 추적장치를 가지며, 버튼, 트리거 그리고 조이스틱 등으로 구성된다. 컨트롤러의 종류로서는 Oculust Rift사의 Half Moon 콘트롤러로 알려진 입력장치가 있으며, 장치에 닿는 손가락에 따라 기본적인 제스처를 인식할 수 있는 용량 센서가 있다. HTC Vive사는 SteamVR 컨트롤러를 사용한다. 이 컨트롤러는 조이스틱 대신 터치패드를 이용하며, Lighthouse fovea tracking system을 사용하여 안구 영역을 탐지한다. 네비게이션 입력장치로서는 ODT (Omnidirectional Treadmil), 슬라이드 밀 그리고 의자 기반 인터페이스 등이 있다. 이러한 입력장치의 종류는 Space Walker VR이 있으며 전체적으로 회전할 수 있는 전통적 트레드밀 방식을 채택하였다. 원형 보행 공간으로는 Walk Mouse 제품이 있다. 사용자가 자유롭게 걸을 수 있는 활성화된 바퀴가 존재하는 표면이 있어 보행자가 의 속력으로 걸을 수 있다.
    3. 소프트웨어적 요소
      일반적으로 많은 Open Platform들이 소프트웨어 개발을 위해 만들어졌다. Playstation VR이 엔터테인먼트 시장에 집중되어 있어 개발 환경 제공에는 미약한 반면, Oculus나 HTC 같은 하드웨어 제조업체들은 SDK를 제공한다. Oculus는 프로토타입을 만들고, 어플리케이션 개발 프로세스에 커뮤니티를 참여시키기 위해 지속적으로 업데이트되는 SDK를 제공한다. 이러한 SDK를 Github에서 다운받을 수 있게 하였으며, 장치 간 개발을 보장하기 위해 표준화된 양식을 제공한다.VR 소프트웨어 개발에 대한 표준화 된 양식으로 OSVR이 있으며, Virtual Reality Peripheral Network (VRPN)은 입력장치의 추상화를 제공한다.
      게임 엔진으로서는 주로 Unity Engine 및 Unreal Engine 4가 있으며, 두 엔진 모두 Oculus Rift에 개발 도구를 통합된 패키지로써 지원한다. 최근 VR 디바이스에 대한 rendering 연산이 높아지면서 개발자들이 연산 복잡도를 줄일 방식에 대한 고려가 필요하다. 예를 들어 표준적인 wallpaper 및 스프라이트 파티클 혹은 모자이크 형식의 이미지는 VR 환경에서 눈에 너무 띄므로 충분한 거리가 있을 때만 사용하는 것이 좋다. 게임 엔진은 개발자에게 유용성과 방대한 기능을 제공하며, 그 중 VR 프레임 워크는 SID 및 기타 다중 디스플레이 설치 지원에 초점을 맞추고 있다.
      WebVR은 가상 현실 경험을 제공하기 위해 Firefox 웹 브라우저 내에서 WebGL을 사용할 수 있는 프레임 워크를 만들었다. 현재 골격은 아칙 초기 개발단계에 있지만, 오큘러스 리프트가 지원되고 있다.360 영화는 시각의 변화만을 허용함으로써 실시간 상호작용의 제약조건을 매우 제한적으로 제공하므로, VR로 간주되지 않을 수 있다. 하지만, 많은 커뮤니티에서 채택되고 있으며 유투브나 페이스북에서도 360영화를 제공하고 있다. HMD를 사용하면 이러한 영화 동안 카메라의 방향을 바꾸는 데 헤드 트래킹을 사용할 수 있다. 이 접근법을 사용하면 하드웨어를 사용할 수 있다면 콘텐츠 생성이 비교적 쉽다. HMD에 대한 관객들의 흥미를 불러일으키기에 좋은 도구이다.
기술 로드맵
4 roadmap.png

시장상황에 대한 분석

  • 경쟁제품 조사 비교

국내에서의 초기의 화재 시장은 정부의 주도로서 재난안전과 관련된 연구시설 및 연구인력이 극히 제한되어 있어, 중장기적인 연구계획에 의하지 않고 주어진 상황에 대응하는 방식으로 연구를 수행하고 있는 것을 해결하고자 화재 진압 시뮬레이션을 제작하는 것이 주가 되었다. 소방훈련 시스템 개발은 중앙소방학교(1999~2003)에서 “화재진압시뮬레이션에 관한 연구”가 최초로 수행되었으며, 건물 내부 또는 탱크로리에 대한 화재 특성 분석, 화재진압모델 구축 및 교육용 대피 프로그램을 개발하였으나, 사용자의 체험기반 시뮬레이터가 아닌, 소방 전문가의 결과 분석 및 이해를 필요로 하는 시스템이었다 [3]. 그러나 최근 VR/AR시장이 확대되면서 민간기업의 주도로서 교육용 체험기반 시뮬레이터가 제작되고 있는 실정이다.

  1. 중앙소방학교 소방 지휘훈련시뮬레이터 (2005)
    중앙소방학교 소방 지휘훈련시뮬레이터는 과기부의 방재기술사업의 일환으로서 중앙소방학교에서 2004년부터 2005년까지 소방지휘관을 대상으로 하는 소방지휘훈련 시뮬레이터다. 이 시뮬레이터에는 지휘관이 가상화재 현장에서 대규모 소방력이 동원되는 상황을 부여하여 지휘관이 상황처리를 선험하면서사고현장 지휘체계를 습득가능하게 한다. 그러나 이는 화재상황(열기, 연기)의 직접 체험보다는 소방자원의 화룡ㅇ 측면에서의 대처요령을 주로 훈련하기 위한 것으로 실제화재현장을 재현하지 못하는 한계를 지니고 있어 실제 화재현장에 투입되는 소방관의 화재진압 훈련용으로 사용하는 것은 불가능하였다 [3].
  2. 메타포트 (2016)
    메타포트는 2016년 문화기술 연구개발 지원사업 가상현실 콘텐츠 프런티어 프로젝트의 일환으로서 전산유체역학 (Computational Fluid Dynamics, CFD)인 FDS를 활용하여 화재 모델을 만들고 화재의 생성과 진화, 소멸과정을 수학적으로 풀어낸 VR기반 시뮬레이션이다. FDS를 기반으로 한 실시간으로 연동이 특징이며, 생애주기형 가상현실 재난 탈출 훈련 시스템인 ‘Golden 5’ 및 ‘Heroes On Fire’을 제작하여 HMD를 착용한 실감형 체험하는 체험 프로그램을 만들었다.
  3. 페리굿 (2017)
    페리굿은 VR 재난안전교육, 교통안전교육, 산업안전교육, 장애인식개선교육을 목적의 VR/AR 제품군을 제작하고, 이와 관련된 콘텐츠 및 기기를 렌탈하는 회사이다. 그 중 VR 화재 안전교육과 관련된 콘텐츠로서는 화재 발생현장에서 VR환경에서 Oculus Rift를 사용하여 소화기를 사용하여 화재 진압을 하는 콘텐츠를 학생 및 일반인을 대상으로 제작하여 각종 전시회 및 교육 프로그램에 사용하고 있다.
  • 마케팅 전략 제시
    • 강점 (Strength)
      증강 현실을 통한 실감 콘텐츠 몰입도의 증가
      기존의 시뮬레이터들에서 주목받지 못하던 안내판 및 소방 물품 사용법 관련 시인성 문제에 관한 연구로서, 새로운 방안 모색
      널리 사용되는 FDS를 활용한 실제 화재 현장에 대한 현실적인 모델 개발 가능
    • 약점 (Weakness)
      학부생 수준의 연구 개발의 한계 (전문성 역량의 한계)
      인적 자원이 풍부하지 않음
    • 기회 (Opportunity)
      사회 안전망에 대한 관심도가 급증
      VR/AR 시장의 높은 성장세
      초기 단계인 VR/AR 환경에서의 글자의 가시성/시인성 연구개발 및 시장
    • 위협 (Threat)
      이미 방재와 관련된 시뮬레이션 시장이 민간업체로 확대되어 있는 상태이다.
      개척되지 않은 시장으로 단발성 관심으로 성장률이 둔화될 수 있다.

기술개발 일정 및 추진체계

개발 일정

Develop table.JPG

구성원 및 추진체계

  • [컴퓨터과학부] 2012920060 최영우: AR환경에서 단순하고 독해
  • [컴퓨터과학부] 2012920064 홍승훈: VR 환경에서 시인성이 높은 폰트 개발
  • [컴퓨터과학부] 2016920054 주하용: 실제 환경을 모방한 가상 VR 건물 개발

설계

설계사양

제품의 요구사항

ID Functional Requirement
FR-01 시스템은 시나리오 제작자로부터 받은 모델을 FDS가 입력받을 수 있는 값으로 변환할 수 있어야 한다.
FR-02 시스템은 모델에 대한 FDS의 결과를 입력받아 공간에 따른 연기의 투명도 및 가시거리를 측정할 수 있어야 한다.
FR-03 시스템은 피실험자가 화재 진압 도구에 도달하면 사용 안내서를 제공하여야 한다.
FR-04 시스템은 피실험자가 적절한 탈출 경로에 다가갈 수 있도록 정보를 간접적으로 제공해야 한다.
FR-05 시스템은 피실험자의 정보 인식 정도를 측정하기 위해 사용자가 탈출한 시간, 탈출 경로 등을 측정한다.
FR-06 실험자는 kinetic typography의 폰트 및 색상, 밝기를 변화할 수 있어야 한다.
FR-07 실험자는 kinetic typography의 위치를 변경하고 어느 정도 이상의 형태 변화를 템플릿으로 제공 받을 수 있어야 한다.
IFR-01 시스템은 피실험자가 시뮬레이션 공간에서 움직일 수 있는 입력 툴을 제공해야 한다.
NFR-01 사실성: 시뮬레이션에 사용되는 연기는 어느 정도 현실성을 띄어야 한다.
NFR-02 확장성: 시뮬레이션은 3차원적인 입력 도구에 대한 확장성을 제공해야 한다 (VR-HMD 혹은 VR-입력 도구)

시스템 아키텍쳐 및 실험 설계

4 Architecture.png

해당 시스템은 목표를 달성하기 위해 빌딩의 구조 (furniture) 및 소방 도구, 그리고 비상 탈출안내문 혹은 출구 표시등을 적절한 위치에 배치한다. 이는 시나리오 제작자 혹은 모델 제작자가 건물의 환경을 조성하는 과정이다. 피실험자가 정보 획득 능력이 글자와 관련된 파라미터에 따라 어떻게 달라지는지 파악하기 위해 밝기, 색상, 크기 그리고 위치에 대한 동적 움직임 (kinetic characteristic)을 달리하여 실험을 진행한다. 실험의 통제 변인을 폭넓게 측정하기 위해 시뮬레이션 공간에서 글자의 파라미터는 변형을 주어 실험 내/ 실험 간 사용자의 반응을 측정한다. 통제 변인에 따른 주관적 척도는 피실험자 개인의 의견을 반영하며, 예를 들어 가장 밝게 느껴진 글자 혹은 잘 보였는가? 글자가 탈출구의 위치를 향해 움직였는데, 글자를 따라가고 싶었는가? 등이 존재한다. 객관적인 척도로는 소방 도구의 사용법에 따라 제대로 사용하였는지, 총 걸린 탈출 시간이 어느 정도 되는지, 시스템이 알려주는 탈출 경로를 잘 따라갔는지 등이 있다. 결론적으로 해당 시뮬레이션은 긴급한 상황에서 위의 판단 기준을 통해 피실험자의 글자의 동적 움직임에 따른 정보 인식을 파악하여, 주어진 문제를 해결하는 방안을 찾고자 한다.

이론적 계산 및 시뮬레이션

화재 시뮬레이터란 연기 제어, 열복사 및 연소 시간 등의 화재 역학을 계산해주는 소프트웨어이다. 이러한 분야를 전산 유체 역학(Computational Fluid Dynamics)이라 한다. 컴퓨터 그래픽 분야에서 연기, 불, 물의 유체 역학적 특성을 표현하는데 관심이 고조되고 있다. 이에 관한 연구로는 유체역학의 초기 Stable Fluids 방법을 이용하여 유체의 평면을 구현했고, 이후 개인용 컴퓨터 성능의 향상에 따라 연산 복잡도가 높은 Navier Stokes에 파티클 시스템이 구현되었다. 연기를 정교하게 표현하기 위해 연산 복잡도가 많은 와동력 기법을(Vorticity confinement, Vortex Particle) 이용하였다. 이러한 화재 시뮬레이터에는 미국 표준기술연구소의 FDS-SMV, Autodesk 사의 CFD 및 AVL사의 CFD Fire 등이 있다.

FDS는 미국 표준기술연구소(NIST, National Institute of Standards and Technology)에서 개발한 화재 시뮬레이터로서, Solver인 FDS와 후처리 소프트웨어인 Smokeview로 구성되어 있으며 Field Model 프로그램으로 CFAST와 다르게 복잡하고 어려우며, 장시간이 소요되지만, 화재 시뮬레이션의 정확한 해석을 위하여 반드시 사용하여야 하는 필수 프로그램으로 상세한 해석이 가능하며, Visual 적인 면에서도 뛰어나 연기 및 화염의 거동까지 확인 가능한 유용한 프로그램이다. FDS는 주로 화재의 연소 위치, 열의 이동, 물체의 연소 시간 등을 계산하여 결과를 CSV 형태로 출력한다.

주요 특성으로서는 Hydrodynamic Model을 채택하여 열, 연기의 거동에 주안점을 두었으며, Navier-Stokes 방정식을 푼다. 또한, Combustion model이 있으며, 열복사 전도 (Radiation Transport)를 제공한다. 사용 방정식은 표 1에서 나타난 것과 같다.

FDS equation.JPG

운동량 방정식은 Naiver-Stokes Equation (momentiumequation) 사용하였으며, 유체의 속도, 밀도, 압력, 점성, 외력 등을 해석하기 위한 식으로 난류모델링 (Turbulence modeling)에서의 점성 (유동에 따라 변화하는 비례상수)의 근사치를 구하고자 하였다.

소프트웨어적으로 FDS는 MPI ((Message-Passing Interface)를 활용하여 여러 대의 컴퓨터 혹은 multi-core system을 갖춘 하나의 컴퓨터에서 multi-mesh를 이용하여 FDS의 프로세스를 처리할 수 있도록 하였다. FDS에서 geometry는 grid-mesh로 구현되어 있으며, FDS의 여러 개의 방정식과 flow field를 여러 MPI process에서 처리할 수 있도록 하였다. MPI는 MPI 프로세스의 정보를 처리할 수 있도록 하였으며, 각 mesh는 하나의 MPI 계산에 포함된다. 하나의 프로세스는 같은 컴퓨터 혹은 다른 컴퓨터에서 프로세싱될 수 있으나, 각자의 메모리를 사용한다. Implementation은 C compiler 및 Fortran을 사용하였으며 각 implementation은 FDS에서 사용되는 subroutine과 데이터 전송에 사용을 담당한다. 메시지 전달은 Open MPI를 사용하여 MPI를 구현하였다.

해당 프로젝트는 단순한 화학적 접근을 통해 연소 반응 도중 발생하는 연기를 구현하고, 그에 따른 가시성을 확인하고자 한다. 가시거리의 세기는 연기의 흡광계수와 거리의 곱에 대한 자연로그의 제곱의 역수에 비례한다.

흡광계수 는 공기의 밀도 와 질량에 따른 흡광계수, , 그리고 가스의 성질인 의 곱으로 정의된다. 해당 시뮬레이션에서는 가시거리를 정밀하게 측정하여 가스의 성질을 파악하기보다 화재 상황에서 피해자가 눈앞의 정보에 얼마나 영향을 받는지를 측정하려는 목적에 초점을 두고 있다. 따라서 흡광계수를 계산하기보다는 QUANTITY 파라미터를 ‘ASPIRATION’ 혹은 ‘CHAMBER OBSCURATION’으로 설정하여 FDS의 계산으로 나오는 3D Plot (.s3d)의 포맷의 3차원 불투명도 정보를 입력받아, FDS에서 시뮬레이션 된 모델과 대응되는 Unity3D에서 해당 위치의 Smoke Particle의 alpha 값을 조정하여 실제와 같은 가시거리 산출을 하고자 한다.

또 다른 시뮬레이션의 중요한 요소인 연기의 사실적 묘사이다. FDS에서 건물과 연소 반응에 따른 연기의 운동의 3차원 묘사는 ISO-surface (.iso) 와 plot3D (.s3d) 포맷으로 출력된다. 따라서 해당 프로젝트는 건물의 입력과 연소 반응을 일으킬 물체 혹은 건물 일부분을 실험자의 시나리오로부터 입력받아 적절한 FDS의 입력 파일 (.fds)로 변환하는 과정을 진행한다. 이 입력에 대한 출력은 화재의 진행에 따른 시간 축을 한 축으로 하는 3차원 공간에서 각 위치에서의 가시거리 및 연기의 형태이다.

Fds change.png

FDS에서 원하는 형태의 데이터를 얻기 위해서는 출력 포맷에 대한 ‘output QUANTITY’를 명시하여야 한다. 가시거리 및 연기의 형태를 얻기 위해서는 값의 설정이 필요하다. 출력 포맷은 총 4가지가 존재한다. BouNDary file (.bnd), SLice file (.sl), ISO-surface(.iso) 그리고 어느 한 지점의 특정된 성질의 양을 측정하는 DEViCe File이 존재한다. 가시거리 및 연기의 밀도는 iso-surface의 특징으로 추출할 수 있으므로 .iso 포맷 형태의 출력을 통해 unity에서 구현하고자 한다. 이러한 데이터의 흐름도는 그림 11. 과 같다. Unity에서 시뮬레이션하고자 하는 건물의 모델을 공간 및 물체의 형태를 고려하여 표 2와 같이 FDS에 적합한 입력 파일로 변환한다. 그리고 연소 반응에 대한 적절한 입력을 마련하고 FDS의 결과를 얻는다.

Fds iso.png


FDS는 Fortran 90으로 구현되어 있으며, 주요 parameter, 특히 3D 연기 데이터 등의 결과는 dump.f90에서 이루어진다. 구하고자하는 .iso 파일은 dump.f90에서 출력물의 형태로 나타난다. iso파일의 포맷은 다음과 같다.

version은 FDS의 version을 의미하며 levels은 각각 등위 값들이다. 원하는 parameter (예를 들어 가시거리 혹은 가스 밀도) 등을 선택하여 원하는 level마다 등위 곡면을 얻을 수 있을 것이다. 따라서 다수의 iso파일을 이용하여 3차원 공간에서 연기와 관련된 정보를 밀도 높게 파악할 수 있다. 특히 연기의 밀도를 QUANTITY로 지정한 등위 곡면에 따라서 연기를 생성하고, alpha값을 조정하면 현실성 있는 시뮬레이션의 구성이 가능할 것으로 보인다.

개념 설계안

  • 목적계통도
Purpose system.png
  • 개념설계도
4 concept design.png
  • 시뮬레이션 흐름도
Simulation flowchart.png
  • 목표기능
  1. 시뮬레이션 모델 구축
    1. 건물 모델의 구현
      기존에 존재하는 건물 모델 사용
      Unity Asset Store에서 제공하는 가구와 관련된 prefabs 사용
    2. 플레이어블 캐릭터의 제공
      Adobe Fuse CC를 활용한 3D 캐릭터의 생성 (fbx file)
      Mixamo를 활용한 Animation 생성 (fbx file)
      Unity Animation 및 Animation Controller를 사용하여 움직임 제어
      Script를 사용하여 입력에 대응하는 애니메이션 제어
    3. VR HMD를 활용한 현실감 조성
      HMD 기기를 제어할 수 있는 adapter와 script 작성
  2. 화재 상황 구현
    1. 건물 모델 데이터의 FDS와의 porting
      기존의 모델을 (skp 파일) cad를 활용하여 dae 파일로 변환
      dae파일을 BlenderFDS를 활용하여 Geometry 정보를 가진 fds 파일 생성
      화재 상황을 고려한 각 geometry에 대응하는 환경 설정
    2. FDS에서 처리된 데이터의 Unity로의 porting
      fds의 연기의 농도 및 가시거리는 isosurface를 나타내는 isof 파일에 저장이 가능
      isof 파일은 C로 읽을 수 있으므로 C#으로 isosurface 정보를 읽는 C# script 구현
    3. FDS 데이터에 따른 연기 조성
      읽어드린 isof 데이터를 활용하여 그리드에 따른 연기의 농도를 계산하여 연기 prefabs의 opacity를 조정
  3. 가시거리 평가
    1. kinetic typography의 구현
      다양한 Unity의 effect animation 그리고 컴포넌트 및 스크립트를 이용하여서 구현
    2. Unity 평가 모듈 구현
      최초 시작 구간부터 탈출하는 시점까지의 시간을 계산하는 스크립트 구현
      안내 문구에 따라 소방 도구의 적절한 활용을 하였는지를 체크
    3. 설문지 및 반응에 따른 보고서 작성
      각 Kinetic typography에 대한 피실험자의 주관적 반응을 측정

상세설계 내용

  • 시뮬레이션 모델 구축
    • 건물 모델의 구현
      • 기존에 존재하는 건물 모델 사용
      Sketchup.png
      • Unity Asset Store에서 제공하는 가구와 관련된 prefabs 사용
      Extingush prefabs.png
      • 소방 기구와 관련된 object는 asset store 이용
    • 플레이어블 캐릭터의 제공
      • Adobe Fuse CC를 활용한 3D 캐릭터의 생성 (fbx file)
      Model.JPG
      • Mixamo를 활용한 Animation 생성 (fbx file)
      Animation.png
      • Unity Animation 및 Animation Controller를 사용하여 움직임 제어
      • Script를 사용하여 입력에 대응하는 애니메이션 제어
if (translation != 0)
   animator.SetBool("IsWalking", true);
else 
   animator.SetBool("IsWalking", false);
  • VR HMD를 활용한 현실감 조성
    • HMD 기기를 제어할 수 있는 adapter와 script 작성
foveRigTr = GetComponent<Transform>();
foveRigTr.position = target.position; </pre>
  • 화재 상황 구현
    • 건물 모델 데이터의 FDS와의 porting
      • 기존의 모델을 (skp 파일) cad를 활용하여 dae 파일로 변환
&SURF ID='Brick_Antique_01'
     RGB=204,204,204
     TRANSPARENCY=1.00 /
&SURF ID='Brick_Antique_01.002'
     RGB=204,204,204
     TRANSPARENCY=1.00 /
&SURF ID='Carpet_Plush_Charcoal.002'
     RGB=204,204,204
     TRANSPARENCY=1.00 /
&MATL ID='Wall’
     FYI='Sheetrock UltraLight Panels',
     SPECIFIC_HEAT=1.0
     CONDUCTIVITY=0.16
     DENSITY=480.0 /
...
&OBST ID='SketchUp' SURF_ID='edge_color000255.002' ‘MATL ID= ’Wall’
     XB=32.048832,32.320004,8.959235,8.999235,3.119999,3.119999 /
&OBST ID='group_0' SURF_ID='material.002' ‘MATL ID= ’Wall’
     XB=26.605122,37.245762,6.041003,8.959235,-0.000000,0.720000 /
&OBST ID='group_0.001' SURF_ID='Polished_Concrete_Old.002'‘MATL ID= ’Wall’
     XB=33.500153,37.405762,6.109634,9.119235,-0.000000,0.720000 /
...
&DEVC XB=12.05,12.05,0.05,0.05,0.74,1.86 ID='1BDPT', QUANTITY='THERMOCOUPLE', POINTS=5, 
TIME_HISTORY=.TRUE. /
&DEVC XB=12.05,12.05,0.05,0.05,0.74,1.86 ID='1BDPV', QUANTITY='V-VELOCITY',   POINTS=5, 
TIME_HISTORY=.TRUE., CONVERSION_FACTOR=-1.0 /
&DEVC XB=10.25,10.25,0.4,0.4,0.3,2.1     ID='1PT',   QUANTITY='PRESSURE',     POINTS=3, 
TIME_HISTORY=.TRUE. /
...
&ISOF QUANTITY='VISIBILITY’,
    VALUE(1)=4., VALUE(2)=8., VALUE(3)=12., VALUE(4)=16./
&ISOF QUANTITY='SOOT VOLUME FRACTION’,
    VALUE(1)=.4., VALUE(2)=.6., VALUE(3)=.8., VALUE(3)=.9/
  • FDS에서 처리된 데이터의 Unity로의 porting
    • fds의 연기의 농도 및 가시거리는 isosurface를 나타내는 isof 파일에 저장이 가능
Fds iso.png
  • isof 파일은 C로 읽을 수 있으므로 C#으로 isosurface 정보를 읽는 C# script 구현
 float[] times_local = new float[2];
       reader.ReadBytes(4);
       times_local[0] = reader.ReadSingle();
       times_local[1] = reader.ReadSingle();
       reader.ReadBytes(4);
       Debug.Log("current time : " + times_local[0] + " sec");
       int[] nvertfacesvolumes = new int[3];
       reader.ReadBytes(4);
       nvertfacesvolumes[0] = reader.ReadInt32();
       nvertfacesvolumes[1] = reader.ReadInt32();
       nvertfacesvolumes[2] = reader.ReadInt32();
       //Debug.Log("nvertfacesvolumes : " + nvertfacesvolumes[0] + ",  " + nvertfacesvolumes[1]);
       //Debug.Log(" Level  :  " + i + ", value : " + levels[i]);
       int nVertices = nvertfacesvolumes[0];
       int nTriangles = nvertfacesvolumes[1];
       Debug.Log("nVertices : " + nVertices + ", nTriangles : " + nTriangles);
       tVertex = new float[nVertices, 3];
       tTris = new int[nTriangles, 4];
       if (nVertices > 0 && nTriangles > 0)
       {
           // vertices
           Debug.Log("Print Vertices below...");
           reader.ReadBytes(4);
           for (int j = 0; j < nVertices; j++)
           {
               tVertex[j, 0] = reader.ReadSingle();
               tVertex[j, 1] = reader.ReadSingle();
               tVertex[j, 2] = reader.ReadSingle();
           }
           reader.ReadBytes(4);
           Debug.Log("");
           // triangles
           Debug.Log("Print Triangles below...");
           reader.ReadBytes(4);
           for (int j = 0; j < nTriangles; j++)
           {
               tTris[j, 0] = reader.ReadInt32();
               tTris[j, 1] = reader.ReadInt32();
               tTris[j, 2] = reader.ReadInt32();
           }
           reader.ReadBytes(4);
           Debug.Log("");
           // levels
           // mesh 1개당 id를 지정, surf_ind는 level value
           reader.ReadBytes(4);
           for (int j = 0; j < nTriangles; j++)
           {
               tTris[j, 3] = reader.ReadInt32();
           }
           reader.ReadBytes(4);
       }
       if (target_timestep == 0 && nVertices == 0 && nTriangles == 0)
           reader.ReadBytes(16);
  • FDS 데이터에 따른 연기 조성
    • 읽어드린 isof 데이터를 활용하여 그리드에 따른 연기의 농도를 계산하여 연기 prefabs의 opacity를 조정
List<Vector3> vertices = new List<Vector3>();
       List<Vector3> normals = new List<Vector3>();
       List<Vector2> uv = new List<Vector2>();
       for (int i =0; i<nvert;i++)
       {
           vertices.Add(new Vector3(vertex[i, 0], vertex[i, 2], vertex[i, 1]));
           normals.Add(new Vector3(vertex[i, 0], vertex[i, 2], vertex[i, 1]));
           uv.Add(new Vector2(vertex[i, 0], vertex[i, 2]));
       }
       int ntris_level = 0;        
       int j = 0;
       int[] triangles;
       if (targetlevel == 0)
       {
           triangles = new int[ntris * 3];   
           for (int i = 0; i < ntris; i++)
           {
               triangles[j] = tris[i, 0] - 1;
               triangles[j + 1] = tris[i, 2] - 1;
               triangles[j + 2] = tris[i, 1] - 1;
               j += 3;
           }
       }else
       {
           for (int i = 0; i < ntris; i++)
           {
               if (tris[i, 3] == targetlevel)
               {
                   ntris_level++;
               }
           }
           triangles = new int[ntris_level * 3];
           for (int i = 0; i < ntris_level; i++)
           {
               if(tris[i,3] == targetlevel)
               {
                   triangles[j] = tris[i, 0] - 1;
                   triangles[j + 1] = tris[i, 1] - 1;
                   triangles[j + 2] = tris[i, 2] - 1;
                   j += 3;
               }
           }
       }
  • 가시거리 평가
    • kinetic typography의 구현
      • 다양한 Unity의 effect animation 그리고 컴포넌트 및 스크립트를 이용하여서 구현
if (Input.GetAxis("Mouse ScrollWheel") > 0f)
       {
           if (Time.timeScale < 1.0F)
           {
               Time.timeScale += 0.1f;
           }               
           Time.fixedDeltaTime = 0.02F * Time.timeScale;
           if (textMesh != null)
           {
               textMesh.text = "Time Scale : " + System.Math.Round(Time.timeScale, 2);
           }          
       }
       else if (Input.GetAxis("Mouse ScrollWheel") < 0f)
       {
           if (Time.timeScale >= 0.2F)
           {
               Time.timeScale -= 0.1f;
           }                
           Time.fixedDeltaTime = 0.02F * Time.timeScale;
           if (textMesh != null)
           {
               textMesh.text = "Time Scale : " + System.Math.Round(Time.timeScale, 2);
           }
       }
  • Unity 평가 모듈 구현
  • 최초 시작 구간부터 탈출하는 시점까지의 시간을 계산하는 스크립트 구현
    안내 문구에 따라 소방 도구의 적절한 활용을 하였는지를 체크
  • 설문지 및 반응에 따른 보고서 작성
    각 Kinetic typography에 대한 피실험자의 주관적 반응을 측정

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

4 result 1.png 4 result 2.png 4 result 3.png 4 result 4.png

완료작품의 평가

화재 현장에 대한 현실에서의 훈련은 비용이 막대하게 드나, 인명 및 재산의 피해에 대해 고려하면 반드시 선행되어야한다. 해당 프로젝트는 이러한 목적에 따라 근 미래적 시각으로 다가올 스마트시티에서 중요한 하나의 요소인 글자에 대해서 분석하고자 하였다. 이를 위해서 CFD의 일종인 FDS를 활용하여 현실을 부여한 화재 시뮬레이션에서 가시성 평가를 하였다.

향후계획

추가적으로 화재가 발생한 경우에 대해 화재가 어떻게 번져나가는지 알 수 있는 시뮬레이션을 제작하고자 한다.