UC-win/Road의 새로운 버전은 시뮬레이션 환경의 구축을 지원하는 기능과 오픈 데이터를 활용한 기능을 업그레이드 및 추가되었습니다. 이 글에서는 주요 개정 내용에 대해 설명합니다.
City GML 데이터 출력 기능
일본 국토교통성이 추진하는 PLATEAU 프로젝트에서는 일본의 각 도시의 3D도시모델 작성이 진행되고 있습니다. UC-win/Road도 이러한 도시 모델에 로딩 작업을 진행하고 있으며, ver.15에서는 글로벌 좌표의 3DS나 FBX 형식 모델을 일괄 임포트하여 정렬하는 가져오기 기능을 개선하고, ver.16에서는 도시 모델의 국제 표준 형식인 CityGML 형식을 직접 가져오는 기능을 추가하고 있습니다. 우리는 게시된 모든 도시 모델 데이터의 가져오기를 지원하는 것을 포함하여 지금까지 PLATEAU를 지원해 왔습니다. UC-win/Road ver.17은 또한 CityGML 형식의 출력 기능을 지원합니다. UC-win/Road를 플랫폼으로 사용하여 도시 모델을 작성 및 편집하고, UC-win/Road에서 도시 모델을 출력하는 데 사용하기 위한 것입니다.
|
그림1. UC-win/Road 도시 모델 데이터 |
|
그림2. UC-win/Road에서 출력한 CityGML을 뷰어로 표시한 예 |
UC-win/Road에서 출력하는 오브젝트는 LOD1~2의 건축물 모델, 및 LOD1 레벨의 도로·지형 모델 등이며, PLATEAU의 3D 도시 모델 표준 작업 매뉴얼에 있어서의 기본 세트로의 출력할 수 있습니다. LOD는 디테일 정도를 나타내고, 건축물의 LOD1 모델에서는 텍스처가 없는 건물의 윤곽선을 나타내고, 건축물의 LOD2 모델에서는 텍스처를 부여한 건물을 나타냅니다.
PLATEAU에서 CityGML을 읽으면 CityGML 데이터가 가지고 있는 정보 그대로 재출력할 수 있도록 하고, 변경한 부분 제외하고 원래의 정보를 최대한 재현할 수 있습니다. 또한 건물 모델은 Shade3D 등에서 솔리드(solid, 덩어리) 형상으로 작성한 경우에는 CityGML 데이터에 솔리드 형상으로 출력할 수 있습니다.
침수 탐색 데이터 임포트(가져오기) 지원
쓰나미 플러그인에 일본 국토교통성의 침수 네비게이션에서 침수 데이터를 다운로드하는 기능을 추가합니다. UC-win/Road에서 침수 내비게이션의 데이터를 이용한 침수의 시각화 시뮬레이션이 가능해집니다. 침수 내비게이션에서 데이터를 다운로드하는 범위는 UC-win/Road의 존 기능으로 영역을 지정합니다. 데이터를 가져온 후 쓰나미 플러그인 기능을 이용하여 시간에 따라 수위 변화의 확인이나 그라데이션을 사용하여 사실적으로 수면을 표현할 수 있습니다.
|
그림 3. UC-win/Road 침수 네비게이션 데이터를 읽어서 시뮬레이션한 예(위) 일본 국토교통성의 침수 항법 시스템의 애니메이션 표시(아래) |
도로 편집 기능 개선
도로 작성을 더 효율적으로 하기 위해 3가지 유용한 기능을 추가했습니다.
1. Undo(되돌리기)・Redo(다시실행) 기능
기존에는 평면 편집 화면에서 이전 작업을 한 번까지 되돌리기(Undo)하는 기능이 있었지만 ver.17에서는 최대 10회까지 실행 취소가 가능하도록 개선되었습니다. 또한 이전에는 불가능했던 편집 작업을 복원하는 다시실행(Redo) 기능도 추가되었습니다. 기본적으로 10회로 설정되어 있지만, 사용량 및 메모리 상황에 따라 적절하게 변경할 수 있습니다. Undo/Redo 기능은 종단 선형 편집 화면, 도로 단면 편집 화면, 지형 패치 데이터 편집 화면에서 사용할 수 있습니다.
2. 도로 선형 저장 및 읽기 기능
평면 편집 화면에서 도로 선형 내보내기/가져오기 기능과 복사 및 붙여넣기 기능을 사용할 수 있습니다. 도로에 사용되는 도로 단면, 노면 텍스처도 함께 저장되기 때문에 도로 선형과 텍스처를 정확하게 재현할 수 있습니다. 또한, 온/오프 램프도로를 포함하여 여러 도로를 선택하고 저장할 수 있습니다. 복사 및 붙여넣기는 클립보드를 통해 처리되기 때문에 UC-win/Road 어플리케이션을 2개 이상 실행하여 여러의 프로젝트 데이터를 통합하는 작업에 효과적입니다.
또한 내보낸 도로 선형을 여러 데이터 작성자와 공유하고 필요에 따라 가져와서 효율적으로 데이터 작성을 할 수 있습니다. 도로 데이터에는 고유 ID가 할당되며, 내보낸 도로를 동일한 프로젝트로 가져올 때 원래 도로를 유지할지 덮어쓸지 선택하여 병합할 수 있습니다. 이 외, 종단선형의 편집화면에서도 이 기능을 사용할 수 있습니다. 이 화면에서는 종단선형, 도로 단면, 노면 텍스처가 대상이 됩니다.
3. 도로의 기점·종점 변경 기능
평면 편집 화면에서 도로의 기점과 종점을 바꾸는 기능이 추가됩니다. 예를 들어, 도로 선형을 작성한 후 일방통행의 방향이 반대로 되어 있는 것을 깨닫고 수정해야하는 경우에 유용합니다.
또한, 도로에 도로 부속물이나 터널, 교량 등에 이 기능을 적용하면 위치가 원래의 종점을 기준으로 업데이트되어 각각의 위치가 유지됩니다.
LKA 기능
LKA는 Lane Keeping Assist(차선 유지 보조)의 약자로, 차선 이탈 경보 시스템이라고 합니다. 실제 자동차는 흰색 차선을 인식하여 차선 이탈 시 경고음을 울리거나 스티어링 휠에 회전력을 가해 차선 중앙으로 돌아가는 시도를 합니다.
UC-win/Road ver.17에는 LKA의 움직임을 표현하는 기능을 탑재되었습니다. UC-win/Road는 차선 편차값을 계산하고 이 편차와 속도에 따라 스티어링 휠에 가해지는 힘과 스티어링 보정값을 계산할 수 있습니다. 스티어링 휠의 반발력은 포스 피드백을 지원하는 게임 컨트롤러에 반영되며, 토크 제어를 지원하는 다양한 드라이브 시뮬레이터 하드웨어를 지원될 예정입니다.
또한 차량이 차선을 이탈할 때 설정된 경고음을 재생할 수 있습니다. 이 기능과 외부 시스템 간의 협력을 가정하면 이 기능의 계산 결과를 실시간으로 받을 수 있습니다. 이를 통해 HMI의 연구 개발 및 LKA 기능과 연계된 교통안전에 활용할 수 있습니다.
속도 제한 기능 개선
UC-win/Road ver.17은 도로 속도 제한 기능을 개선합니다. 기존에는 교통 흐름을 생성할 때 초기 속도 및 동작제어점에서 제한 속도를 설정했지만, 도로 구간별로 속도 제한을 설정할 수 있도록 실제 도로에 지정된 제한속도를 쉽게 표현할 수 있도록 개선했습니다. 또한 설정된 제한 속도 값은 시나리오와 API에서 전환할 수 있습니다. 적용 중인 제한 속도에 대한 정보를 얻을 수도 있습니다. 다양한 교통 상황에서 반복적인 실험과 데이터 분석이 용이해집니다.
재생 녹화를 비디오로 변환 기능
재생 플러그인 옵션을 확장하여 주행 시뮬레이션 및 시나리오 실행과 같은 재생 녹화를 비디오로 변환하는 기능이 추가됩니다. 현재 기록된 데이터뿐만 아니라 과거에 기록된 재생 데이터(.RR 파일)을 일괄 변환할 수 있습니다. 변환은 옵션 설정에 따라 해상도, 녹화 시점 및 변환 범위를 설정할 수 있습니다. 예를 들어 시나리오 주행 중 특정 교차로에서 우회전하는 장면을 조감도 동영상을 제작하는 경우, 이 기능을 사용하여 마주 오는 차량, 신호등, 보행자 등 교통상황에 주의하면서 안전운전을 하고 있는지 시각적으로 확인할 수 있습니다.
Python API
개요
UC-win/Road에서 시뮬레이션 개발을 지원하기 위해 Python API가 출시됩니다. 지금까지 UC-win/Road는 Delphi SDK, JavaScript 연동, C++ API로 외부 데이터 연동 기능을 제공해 왔습니다. Python API는 데이터를 UC-win/Road와 보다 쉽고 효율적으로 연결할 수 있는 API입니다.
대상기능
드라이빙 시뮬레이터 제어, 실시간 모델 제어, 메인 화면 시점 제어, 메뉴 및 버튼 UI 제어 등 C++ API와 동등한 기능을 제공합니다.
COM
COM
Python API는 Microsoft의 COM을 사용합니다. Python은 COM 라이브러리를 제공하기 떄문에 사용자가 COM 프로그램을 몰라도 Python API를 사용하여 쉽게 프로그래밍할 수 있습니다. 또한 COM으로 개발되었기 때문에 Python뿐만 아니라 C#, JavaScript, MATLAB 등에서도 사용할 수 있습니다.
효율적인 프로그래밍 및 실행
사용자는 Delphi SDK 및 C++API를 사용하여 플러그인을 개발하고 UC-win/Road에 로드하여 실행합니다. 하지만 Python API에서는 UC-win/Road 리본 메뉴, 스크립트 화면, 이것이 시나리오 이벤트에서 Python 스크립트가 실행되는 방법입니다. 프로그램 변경 후 UC-win/Road 재부팅 없이 스크립트를 즉시 실행할 수 있습니다.
또한 Visual Studio 등의 외부 애플리케이션에서 스크립트를 실행하여 UC-win/Road와 연동할 수 있습니다. 사용자는 익숙한 환경에서 프로그래밍 및 디버그할 수 있습니다. Python에는 그 밖에도 다양한 편리한 라이브러리가 있으므로 UC-win/Road와 연계 프로그램을 효율적으로 작성할 수 있습니다.
그 외 기능
그 외 기능으로 점군 데이터를 이용한 도로 작성 지원 기능을 추가할 예정입니다. 특히 편집 화면에서 입력 지원이나 점군을 더 쉽게 참조할 수 있도록 개선되었습니다. 또한 VISSIM 2023을 지원합니다.
|