KR20240081671A - 클라우드 자율주행 시뮬레이션 장치 - Google Patents

클라우드 자율주행 시뮬레이션 장치 Download PDF

Info

Publication number
KR20240081671A
KR20240081671A KR1020220164741A KR20220164741A KR20240081671A KR 20240081671 A KR20240081671 A KR 20240081671A KR 1020220164741 A KR1020220164741 A KR 1020220164741A KR 20220164741 A KR20220164741 A KR 20220164741A KR 20240081671 A KR20240081671 A KR 20240081671A
Authority
KR
South Korea
Prior art keywords
simulation
user
autonomous driving
virtual image
code
Prior art date
Application number
KR1020220164741A
Other languages
English (en)
Inventor
이창건
신동민
한종우
유서환
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020220164741A priority Critical patent/KR20240081671A/ko
Publication of KR20240081671A publication Critical patent/KR20240081671A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/18Details relating to CAD techniques using virtual or augmented reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 클라우드 자율주행 시뮬레이션 장치에 관한 것으로, 상기 장치는 사용자 단말로부터 자율주행 시뮬레이션을 위한 시뮬레이션 코드를 수신하는 코드 수신부; 이미지 관리 서버와 연동하여 상기 시뮬레이션 코드의 실행 정보를 포함하는 가상 이미지를 생성하는 가상 이미지 생성부; 및 시뮬레이션 서버와 연동하여 상기 사용자 단말로부터 수신된 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하고 상기 사용자 인스턴스 상에서 상기 이미지 관리 서버에 의해 제공된 상기 사용자의 가상 이미지를 실행하여 상기 자율주행 시뮬레이션을 처리하는 시뮬레이션 처리부;를 포함한다.

Description

클라우드 자율주행 시뮬레이션 장치{CLOUD AUTONOMOUS DRIVING SIMULATION DEVICE AND METHOD}
본 발명은 자율주행 시뮬레이션 기술에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 기술을 이용하여 자율 주행 시뮬레이션을 원격으로 수정하고 테스트할 수 있는 플랫폼을 제공하는 클라우드 자율주행 시뮬레이션 장치에 관한 것이다.
차량의 자율주행 기술은 주행 중인 차량에 설치된 다양한 센서들(예를 들어, LiDAR, Radar, GPS, 카메라 센서, 초음파 센서 등)들로부터 감지되는 센서 데이터에 기초하여 운전자의 개입이 없이도 차량의 주행이 가능하도록 구현될 수 있다.
자율주행 기술의 개발 동안에는 안전사고 방지를 위해 매우 다양한 상황에 대비한 실제 도로 주행 테스트와 시뮬레이션 테스트를 포함한 다양한 테스트들이 수행될 수 있으며, 이러한 테스트를 통해 자율주행차의 알고리즘을 검증하거나 인공지능 학습을 통해 알고리즘을 업그레이드 등의 과정이 수행될 수 있다.
특히, 자율주행 시뮬레이션의 경우 실제 도로 환경이 아닌 가상의 환경에서 시뮬레이션 코드의 작성만으로 다양한 주행 환경을 실험할 수 있다는 점에서 안전, 비용, 공간 등 여러 측면에서 다양한 장점을 제공할 수 있다.
다만, 자율주행 시뮬레이션은 많은 컴퓨팅 자원을 필요로 하여 일반적인 PC에서 구동하기 어렵다는 단점을 가질 수 있으며 청소년 혹은 초보자 수준의 개발자들은 자율주행에 사용되는 개발도구의 사용에 있어 어려움을 겪을 수 있다.
한국공개특허 제10-2020-0082672호 (2020.07.08)
본 발명의 일 실시예는 클라우드 컴퓨팅 기술을 이용하여 자율 주행 시뮬레이션을 원격으로 수정하고 테스트할 수 있는 플랫폼을 제공하는 클라우드 자율주행 시뮬레이션 장치를 제공하고자 한다.
실시예들 중에서, 클라우드 자율주행 시뮬레이션 장치는 사용자 단말로부터 자율주행 시뮬레이션을 위한 시뮬레이션 코드를 수신하는 코드 수신부; 이미지 관리 서버와 연동하여 상기 시뮬레이션 코드의 실행 정보를 포함하는 가상 이미지를 생성하는 가상 이미지 생성부; 및 시뮬레이션 서버와 연동하여 상기 사용자 단말로부터 수신된 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하고 상기 사용자 인스턴스 상에서 상기 이미지 관리 서버에 의해 제공된 상기 사용자의 가상 이미지를 실행하여 상기 자율주행 시뮬레이션을 처리하는 시뮬레이션 처리부;를 포함한다.
상기 코드 수신부는 상기 사용자 단말 상에서 구현되는 웹 인터페이스를 통해 상기 시뮬레이션 코드를 수신할 수 있다.
상기 가상 이미지 생성부는 상기 사용자 별로 상기 가상 이미지를 독립적으로 관리할 수 있다.
상기 가상 이미지 생성부는 상기 가상 이미지가 생성된 시뮬레이션 코드의 수정이 발생한 경우 해당 수정의 크기에 따라 신규 버전의 가상 이미지를 생성할 수 있다.
상기 가상 이미지 생성부는 상기 시뮬레이션 코드의 실행 정보를 분석하여 상기 자율주행 시뮬레이션을 위한 필요 자원량을 산출한 다음 상기 가상 이미지에 삽입할 수 있다.
상기 시뮬레이션 처리부는 상기 가상 이미지의 필요 자원량을 기초로 상기 사용자 인스턴스를 구성할 수 있다.
상기 시뮬레이션 처리부는 상기 시뮬레이션 서버의 현재 자원 사용율을 기준으로 상기 사용자 인스턴스에 대한 가용 자원량을 결정하고 상기 필요 자원량이 상기 가용 자원량 이하인 경우에 상기 사용자 인스턴스의 생성을 중단할 수 있다.
상기 시뮬레이션 처리부는 상기 자율주행 시뮬레이션에 따른 자율주행 영상을 생성하여 상기 사용자 단말에 제공할 수 있다.
상기 시뮬레이션 처리부는 상기 자율주행 시뮬레이션에 따른 모니터링 정보를 생성하고 상기 사용자 단말 상의 웹 인터페이스를 통해 시각화하여 제공할 수 있다.
실시예들 중에서, 클라우드 자율주행 시뮬레이션 방법은 코드 수신부를 통해, 사용자 단말로부터 자율주행 시뮬레이션을 위한 시뮬레이션 코드를 수신하는 단계; 가상 이미지 생성부를 통해, 이미지 관리 서버와 연동하여 상기 시뮬레이션 코드의 실행 정보를 포함하는 가상 이미지를 생성하는 단계; 및 시뮬레이션 처리부를 통해, 시뮬레이션 서버와 연동하여 상기 사용자 단말로부터 수신된 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하고 상기 사용자 인스턴스 상에서 상기 이미지 관리 서버에 의해 제공된 상기 사용자의 가상 이미지를 실행하여 상기 자율주행 시뮬레이션을 처리하는 단계;를 포함한다.
상기 시뮬레이션 코드를 수신하는 단계는 상기 사용자 단말 상에서 구현되는 웹 인터페이스를 통해 상기 시뮬레이션 코드를 수신하는 단계를 포함할 수 있다.
상기 자율주행 시뮬레이션을 처리하는 단계는 상기 시뮬레이션 서버의 현재 자원 사용율을 기준으로 상기 사용자 인스턴스에 대한 가용 자원량을 결정하고 상기 사용자 인스턴스와 동일한 예비 인스턴스를 생성하는 단계; 및 상기 예비 인스턴스 상에서 상기 사용자의 가상 이미지를 실행하여 상기 시뮬레이션 코드에 대한 테스트 시뮬레이션을 수행하는 단계를 포함할 수 있다.
상기 자율주행 시뮬레이션을 처리하는 단계는 상기 테스트 시뮬레이션 동안 미리 정해진 시간 간격으로 가상 차량에 대한 가상의 주행 경로를 검출하는 단계; 특정 시점을 기준으로 상기 가상의 주행 경로 상의 제1 위치와 상기 가상 차량의 움직임에 기초하여 예측된 제2 위치를 검출하는 단계; 및 상기 제1 및 제2 위치들 간의 차이가 기 설정된 기준을 초과하는 경우 상기 제2 위치와 연관된 상기 가상 차량의 움직임을 추출하여 상기 자율주행 시뮬레이션 과정에 적용하는 단계를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 클라우드 자율주행 시뮬레이션 장치는 클라우드 컴퓨팅 기술을 이용하여 자율 주행 시뮬레이션을 원격으로 수정하고 테스트할 수 있는 플랫폼을 제공할 수 있다.
본 발명의 일 실시예에 따른 클라우드 자율주행 시뮬레이션 장치는 오픈소스 원격 자율주행 시뮬레이션 환경을 제공하여 저비용으로 더 많은 사람들이 자율주행 연구 개발에 참여할 수 있도록 하고, 가상 이미지를 통해 사용자 수준을 고려한 독립 개발 환경을 제공할 수 있다.
도 1은 본 발명에 따른 자율주행 시뮬레이션 시스템을 설명하는 도면이다.
도 2는 도 1의 시뮬레이션 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 시뮬레이션 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 클라우드 자율주행 시뮬레이션 방법을 설명하는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 시스템 구성도를 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 시스템 동작 흐름을 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명에 따른 자율주행 시뮬레이션 시스템을 설명하는 도면이다.
도 1을 참조하면, 자율주행 시뮬레이션 시스템(100)은 사용자 단말(110), 시뮬레이션 장치(130) 및 데이터베이스(150)를 포함할 수 있다.
사용자 단말(110)은 사용자에 의해 운용되는 단말 장치에 해당할 수 있다. 본 발명의 실시예에서 사용자는 하나 이상의 사용자로 이해될 수 있으며, 하나 이상의 사용자들 각각은 하나 이상의 사용자 단말(110)에 대응될 수 있다. 즉, 도 1에서는 하나의 사용자 단말(110)로 표현되어 있으나, 제1 사용자는 제1 사용자 단말, 제2 사용자는 제2 사용자 단말, ..., 제n(상기 n은 자연수) 사용자는 제n 사용자 단말에 각각 대응될 수 있다.
또한, 사용자 단말(110)은 본 발명에 따른 자율주행 시뮬레이션 시스템(100)을 구성하는 하나의 장치로서 구현될 수 있으며, 자율주행 시뮬레이션 시스템(100)은 클라우드 자율주행 시뮬레이션 목적에 따라 다양한 형태로 변형되어 구현될 수 있다.
또한, 사용자 단말(110)은 시뮬레이션 장치(130)와 연결되어 동작 가능한 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 포함하여 다양한 디바이스로도 구현될 수 있다. 특히, 사용자 단말(110)은 적어도 하나의 GPU(Graphics Processing Unit)을 포함하여 구현될 수 있다.
한편, 사용자 단말(110)은 시뮬레이션 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 시뮬레이션 장치(130)와 동시에 연결될 수도 있다.
시뮬레이션 장치(130)는 본 발명에 따른 클라우드 자율주행 시뮬레이션 방법을 수행하는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 또한, 시뮬레이션 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi, LTE 등과 같은 무선 네트워크로 연결될 수 있고, 네트워크를 통해 사용자 단말(110)과 데이터를 송·수신할 수 있다.
또한, 시뮬레이션 장치(130)는 독립된 외부 시스템(도 1에 미도시함)과 연결되어 동작하도록 구현될 수 있다. 예를 들어, 시뮬레이션 장치(130)는 가상 이미지를 생성하고 관리하는 이미지 관리 서버 또는 자율주행 시뮬레이션을 실행하는 시뮬레이션 서버 등과 연동하여 동작하도록 구현될 수 있다.
데이터베이스(150)는 시뮬레이션 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 예를 들어, 데이터베이스(150)는 자율주행 시뮬레이션을 위하여 사용자가 작성한 시뮬레이션 코드를 저장하거나 또는 가상 이미지 생성을 위한 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 시뮬레이션 장치(130)가 본 발명에 따른 클라우드 자율주행 시뮬레이션 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
또한, 도 1에서, 데이터베이스(150)는 시뮬레이션 장치(130)와 독립적인 장치로서 도시되어 있으나, 반드시 이에 한정되지 않고, 논리적인 저장장치로서 시뮬레이션 장치(130)에 포함되어 구현될 수 있음은 물론이다.
도 2는 도 1의 시뮬레이션 장치의 시스템 구성을 설명하는 도면이다.
도 2를 참조하면, 시뮬레이션 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함할 수 있다.
프로세서(210)는 본 발명의 실시예에 따른 클라우드 자율주행 시뮬레이션 프로시저를 실행할 수 있고, 이러한 과정에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄 할 수 있다. 프로세서(210)는 시뮬레이션 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 시뮬레이션 장치(130)의 CPU(Central Processing Unit) 또는 GPU(Graphics Processing Unit)로 구현될 수 있다.
메모리(230)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 시뮬레이션 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다. 또한, 메모리(230)는 전기적으로 연결된 프로세서(210)에 의해 실행됨으로써 본 발명에 따른 클라우드 자율주행 시뮬레이션 방법을 실행하는 명령어들의 집합을 저장할 수 있다.
사용자 입출력부(250)은 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함하고, 예를 들어, 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치 스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)은 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 시뮬레이션 장치(130)는 독립적인 서버로서 수행될 수 있다.
네트워크 입출력부(270)은 네트워크를 통해 사용자 단말(110)과 연결되기 위한 통신 환경을 제공하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다. 또한, 네트워크 입출력부(270)는 데이터의 무선 전송을 위해 WiFi, 블루투스 등의 근거리 통신 기능이나 4G 이상의 무선 통신 기능을 제공하도록 구현될 수 있다.
도 3은 도 1의 시뮬레이션 장치의 기능적 구성을 설명하는 도면이다.
도 3을 참조하면, 시뮬레이션 장치(130)는 코드 수신부(310), 가상 이미지 생성부(330), 시뮬레이션 처리부(350) 및 제어부(370)를 포함할 수 있다.
코드 수신부(310)는 사용자 단말(110)로부터 자율주행 시뮬레이션을 위한 시뮬레이션 코드를 수신할 수 있다. 여기에서, 시뮬레이션 코드는 자율주행 소프트웨어를 구현하는 프로그램 코드에 해당할 수 있다. 시뮬레이션 코드는 자율주행 소프트웨어에 따라 다양한 언어로 작성될 수 있다. 사용자는 사용자 단말(110) 상에서 전용 소프트웨어를 이용하여 시뮬레이션 코드를 작성하고 이를 생성할 수 있으며, 코드 수신부(310)는 사용자 단말(110)로부터 입력된 시뮬레이션 코드를 수신하여 데이터베이스(150)에 저장할 수 있다.
일 실시예에서, 코드 수신부(310)는 사용자 단말(110) 상에서 구현되는 웹 인터페이스를 통해 시뮬레이션 코드를 수신할 수 있다. 코드 수신부(310)는 시뮬레이션 코드 작성을 위한 인터페이스를 제공할 수 있으며, 해당 인터페이스는 사용자 단말(110)에서 구현되어 웹 인터페이스로서 제공될 수 있다. 즉, 사용자는 사용자 단말(110) 상에서 웹 인터페이스를 제공하는 웹 주소에 접근하여 직접 시뮬레이션 코드를 작성할 수 있다.
이때, 사용자는 웹 인터페이스 상에서 시뮬레이션 코드가 실행될 시뮬레이션 환경을 직접 설정할 수 있다. 사용자는 자율주행 소프트웨어의 언어를 선택할 수 있으며, 코드 수신부(310)는 사용자에 의해 선택된 언어로 시뮬레이션 코드를 작성할 수 있는 웹 인터페이스를 구현하여 제공할 수 있다. 또한, 사용자는 사용자 단말(110) 상에서 사전에 저장된 시뮬레이션 코드들 중 일부를 선택하여 코드 작성 과정을 생략하고 완성된 시뮬레이션 코드를 코드 수신부(310)에 전달할 수 있다.
일 실시예에서, 코드 수신부(310)는 사용자 단말(110)로부터 입력된 시뮬레이션 코드를 수신하여 유효성 검사를 수행할 수 있다. 이때, 시뮬레이션 코드에 대한 유효성 검사는 간단한 구문 검사, 규칙 검사, 수식 검증 등을 포함할 수 있다. 코드 수신부(310)는 사용자 단말(110)로부터 수신된 시뮬레이션 코드에 대해 사용자 식별 정보를 추가하여 저장할 수 있다. 여기에서, 사용자 식별 정보는 시뮬레이션 코드를 작성한 사용자를 식별하기 위한 기호, 문자 및 코드 등을 포함할 수 있다.
가상 이미지 생성부(330)는 이미지 관리 서버와 연동하여 시뮬레이션 코드의 실행 정보를 포함하는 가상 이미지를 생성할 수 있다. 여기에서, 이미지 관리 서버는 사용자 별로 가상 이미지를 생성하고 관리하는 동작을 수행하는 독립된 서버에 해당할 수 있다. 가상 이미지 생성부(330)는 이미지 관리 서버와 연동하여 동작하도록 구현될 수 있다. 즉, 가상 이미지 생성부(330)는 코드 수신부(310)를 통해 수신된 시뮬레이션 코드를 기반으로 가상 이미지를 생성하고 사용자와 연관지어 저장할 수 있다. 또한, 가상 이미지는 시뮬레이션 코드와 라이브러리, 코드 실행에 필요한 프로그램 등이 패키징된 파일에 해당할 수 있다. 가상 이미지는 시뮬레이션 실행을 위한 환경(설정값) 등에 대한 정보를 포함할 수 있다. 특히, 가상 이미지는 클라우드 기반의 시뮬레이션 서버 상에서 생성된 인스턴스 내에서 실행될 수 있다.
일 실시예에서, 가상 이미지 생성부(330)는 사용자 별로 가상 이미지를 독립적으로 관리할 수 있다. 가상 이미지 생성부(330)는 사용자 단말(110)에 의해 입력된 시뮬레이션 코드를 기반으로 가상 이미지를 생성할 수 있으며 사용자와 시뮬레이션 코드 간의 연결에 기초하여 사용자와 가상 이미지를 서로 연결하여 사용자 별로 독립적으로 관리할 수 있다. 즉, 사용자는 자신이 작성하거나 입력한 시뮬레이션 코드를 가상의 이미지화 하여 관리할 수 있으며, 가상 이미지를 통해 시뮬레이션을 수행한 다음 시뮬레이션 결과를 반영하여 시뮬레이션 코드를 수정하거나 업데이트할 수 있다. 즉, 가상 이미지 생성부(330)는 사용자 별로 가상 이미지에 대한 접근 권한을 고유하게 부여할 수 있으며, 접근 권한에 따라 가상 이미지에 대한 사용자의 접근을 제한할 수 있다.
일 실시예에서, 가상 이미지 생성부(330)는 가상 이미지가 생성된 시뮬레이션 코드의 수정이 발생한 경우 해당 수정의 크기에 따라 신규 버전의 가상 이미지를 생성할 수 있다. 사용자는 웹 인터페이스를 통해 제공되는 코드 에디터(code editor)에서 시뮬레이션 코드를 자유롭게 수정할 수 있으며, 가상 이미지 생성부(330)는 시뮬레이션 코드의 수정을 반영하여 이미 생성된 가상 이미지를 업데이트할 수 있다. 이때, 가상 이미지 생성부(330)는 시뮬레이션 코드의 변경 정도에 따라 수정의 크기를 산출할 수 있다. 즉, 시뮬레이션 코드의 변경이 많을수록 수정의 크기도 증가할 수 있다. 가상 이미지 생성부(330)는 시뮬레이션 코드의 변경 정도가 큰 경우 가상 이미지를 업데이트하는 대신 신규 버전의 가상 이미지를 생성할 수 있다.
예를 들어, 기존의 가상 이미지가 0.1 버전인 경우, 가상 이미지 생성부(330)는 새롭게 생성된 가상 이미지를 0.2 버전으로 적용하여 관리할 수 있다. 한편, 시뮬레이션 코드의 변경에 관한 수정의 크기는 변경된 코드의 줄 수, 변경된 변수, 함수 및 파라미터의 개수 등을 기초로 결정될 수 있다.
일 실시예에서, 가상 이미지 생성부(330)는 시뮬레이션 코드의 실행 정보를 분석하여 자율주행 시뮬레이션을 위한 필요 자원량을 산출한 다음 가상 이미지에 메타데이터로서 삽입할 수 있다. 가상 이미지 생성부(330)는 시뮬레이션 코드를 기초로 자율주행 시뮬레이션에 필요한 자원들로서 메모리, CPU, 네트워크, 데이터베이스 등의 필요량을 산출할 수 있다. 이때, 필요 자원량은 자율주행 시뮬레이션을 실행하는 사용자 인스턴스의 성능에 대응될 수 있다. 즉, 사용자 인스턴스는 시뮬레이션 서버 상에서 시뮬레이션 코드의 실행 환경을 제공하는 가상 공간에 해당할 수 있다. 구체적으로, 시뮬레이션 서버는 이미지 관리 서버로부터 사용자의 가상 이미지를 수신할 수 있으며, 가상 이미지의 필요 자원량을 기초로 시뮬레이션 코드의 실행을 위한 사용자 인스턴스를 구성할 수 있다.
일 실시예에서, 가상 이미지 생성부(330)는 시뮬레이션 코드로부터 자율 주행 시뮬레이션을 위한 장면(scene) 정보, 자율주행에 관한 차량 정보와 주행 정보를 추출하여 가상 이미지를 생성할 수 있다. 즉, 가상 이미지에는 자율주행 시뮬레이션을 위한 장면 구축 명령과 차량 구현 명령 및 차량 주행 명령이 포함될 수 있다. 이후, 시뮬레이션 서버는 가상 이미지를 기초로 장면 구축 명령에 따라 가상의 장면을 구현하고, 차량 구현 명령에 따라 가상의 차량을 생성하며, 차량 주행 명령에 따라 가상의 차량이 주행 경로를 따라 자율주행하는 과정을 시뮬레이션할 수 있다.
시뮬레이션 처리부(350)는 시뮬레이션 서버와 연동하여 사용자 단말(110)로부터 수신된 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하고 사용자 인스턴스 상에서 이미지 관리 서버에 의해 제공된 사용자의 가상 이미지를 실행하여 자율주행 시뮬레이션을 처리할 수 있다. 여기에서, 시뮬레이션 서버는 사용자가 작성한 시뮬레이션 코드를 실행하여 자율주행 시뮬레이션을 수행하고 그 결과를 생성하는 동작을 수행하는 독립된 서버에 해당할 수 있다. 시뮬레이션 처리부(350)는 시뮬레이션 서버에게 시뮬레이션 실행 명령을 전달하여 시뮬레이션을 위한 동작을 제어할 수 있다.
보다 구체적으로, 시뮬레이션 처리부(350)는 사용자 단말(110)로부터 시뮬레이션 실행 요청을 수신할 수 있으며, 이에 따라 시뮬레이션 서버에게 실행 명령을 전달할 수 있다. 시뮬레이션 서버는 실행 명령을 수신한 경우 자율주행 시뮬레이션을 위한 사용자 인스턴스를 생성할 수 있으며, 이와 함께 이미지 관리 서버로부터 사용자의 가상 이미지를 수신할 수 있다. 이후, 시뮬레이션 서버는 사용자 인스턴스 상에서 가상 이미지를 실행하여 시뮬레이션 환경을 구축할 수 있으며, 시뮬레이션 코드에 따라 자율주행 시뮬레이션을 수행하여 그 결과를 생성할 수 있다. 이 경우, 자율주행 시뮬레이션 과정에서 모니터링 정보가 생성될 수 있으며, 시뮬레이션 서버는 시뮬레이션 동안 모니터링 정보를 수집하여 시뮬레이션 처리부(350)에 전달할 수 있다.
일 실시예에서, 시뮬레이션 처리부(350)는 가상 이미지의 필요 자원량을 기초로 사용자 인스턴스를 구성할 수 있다. 시뮬레이션 처리부(350)는 가상 이미지의 메타데이터로부터 시뮬레이션 환경에 요구되는 필요 자원량을 획득할 수 있으며, 이를 기초로 시뮬레이션 서버의 가용 자원을 할당받아 사용자 인스턴스를 구성할 수 있다. 이때, 시뮬레이션 처리부(350)는 시뮬레이션 서버의 가용 자원에 따라 시뮬레이션 환경에 요구되는 필요 자원량의 일부가 부족한 경우에도 사용자 인스턴스를 구성할 수 있다.
즉, 시뮬레이션 처리부(350)는 필요 자원량의 일부가 부족하여 시뮬레이션 실행 성능이 낮아지더라도 사용자 인스턴스를 구성할 수 있다. 예를 들어, 시뮬레이션 처리부(350)는 필요 자원량의 각 자원들이 10%만큼 공통적으로 부족한 경우라면 해당 자원들을 기초로 사용자 인스턴스를 생성할 수 있다. 다만, 시뮬레이션 처리부(350)는 필요 자원량 중 특정 자원이 절대적으로 부족한 경우에는 해당 자원이 확보될 때까지 사용자 인스턴스의 생성을 중단할 수 있다.
일 실시예에서, 시뮬레이션 처리부(350)는 시뮬레이션 서버의 현재 자원 사용율을 기준으로 사용자 인스턴스에 대한 가용 자원량을 결정하고 필요 자원량이 가용 자원량 이하인 경우에 사용자 인스턴스의 생성을 중단할 수 있다. 시뮬레이션 서버는 자원 풀(resource pool)을 통해 각 자원들의 자원량을 관리할 수 있으며, 각 자원 별로 현재의 자원 사용율을 산출할 수 있다. 자원 사용율은 자원 별로 전체 자원량에 대한 현재 사용 중인 자원량의 비율에 해당할 수 있다. 시뮬레이션 처리부(350)는 시뮬레이션 서버와 연동하여 현재의 자원 사용율을 모니터링할 수 있으며, 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하는 경우 인스턴스 생성에 사용 가능한 가용 자원량을 사전에 결정할 수 있다. 이때, 가용 자원량은 시뮬레이션 서버의 현재 자원 상황에 따라 가변적으로 결정될 수 있다. 시뮬레이션 처리부(350)는 서버 상의 가용 자원량이 사용자 인스턴스 생성을 위한 필요 자원량을 충족하는 경우에만 제한적으로 사용자 인스턴스의 생성 동작을 수행할 수 있으며, 그렇지 않은 경우에는 생성 동작을 중단하고 가용 자원량이 충족될 때까지 대기할 수 있다.
일 실시예에서, 시뮬레이션 처리부(350)는 자율주행 시뮬레이션에 따른 자율주행 영상을 생성하여 사용자 단말(110)에 제공할 수 있다. 시뮬레이션 처리부(350)는 시뮬레이션 서버로부터 자율주행 시뮬레이션에 의해 생성된 결과를 수신할 수 있다. 이때, 시뮬레이션 서버는 자율주행 시뮬레이션의 수행 환경에 따라 자율주행 차량의 움직임에 관한 모니터링 정보를 생성할 수 있고, 자율주행 영상 및 음성 신호를 생성할 수 있으며, 차량의 움직임에 상호작용하는 다양한 객체들의 움직임 정보를 생성할 수 있다.
일 실시예에서, 시뮬레이션 처리부(350)는 자율주행 시뮬레이션에 따른 모니터링 정보를 생성하고 사용자 단말(110) 상의 웹 인터페이스를 통해 시각화하여 제공할 수 있다. 사용자는 웹 인터페이스 상에서 자신이 원하는 시뮬레이션 환경을 구성할 수 있으며, 직접 작성한 시뮬레이션 코드에 기초하여 자율주행 소프트웨어를 가상 환경에서 실행하거나 그 결과를 확인할 수 있다. 시뮬레이션 처리부(350)는 시뮬레이션 서버로부터 수신한 정보를 다양한 시각화 정보로서 제공할 수 있으며, 사용자는 웹 인터페이스를 통해 제공되는 정보를 선택하거나 또는 시각화 툴을 통해 다양한 방법으로 확인 및 분석할 수 있다.
일 실시예에서, 시뮬레이션 처리부(350)는 사용자 인스턴스에 대한 가용 자원량을 결정하고 사용자 인스턴스와 동일한 예비 인스턴스를 생성할 수 있다. 즉, 예비 인스턴스는 사용자 인스턴스와 동일하게 구현된 가상 인스턴스에 해당할 수 있으며, 기본적으로 동일한 자원들을 할당받아 생성될 수 있다. 시뮬레이션 처리부(350)는 예비 인스턴스를 통해 시뮬레이션 코드에 대한 테스트 시뮬레이션을 수행할 수 있다. 구체적으로, 시뮬레이션 처리부(350)는 예비 인스턴스 상에서 가상 이미지를 기초로 장면 구축 명령에 따라 가상의 장면(scene)을 구현하고, 차량 구현 명령에 따라 가상의 차량을 생성하며, 차량 주행 명령에 따라 가상의 차량을 제어하여 자율주행 과정을 예비적으로 테스트할 수 있다.
이때, 시뮬레이션 처리부(350)는 테스트 시뮬레이션 동안 미리 정해진 시간 간격으로 가상의 차량에 대한 가상의 주행 경로를 검출할 수 있다. 시뮬레이션 처리부(350)는 특정 시점을 기준으로 가상의 차량에 대한 가상의 주행 경로 상의 제1 위치를 결정할 수 있고, 차량 주행 명령에 따른 가상의 차량의 움직임에 기초하여 예측된 제2 위치를 결정할 수 있다. 시뮬레이션 처리부(350)는 제1 위치 및 제2 위치 간의 차이가 기 설정된 기준을 초과하는 경우 특정 시점 전후 구간 동안 제2 위치와 연관된 예비 주행 명령을 생성할 수 있다. 이후, 시뮬레이션 처리부(350)는 사용자 인스턴스 상에서 자율주행 시뮬레이션이 수행되는 경우, 제1 위치와 연관된 주행 명령 대신 제2 위치와 연관된 예비 주행 명령을 적용할 수 있다. 즉, 시뮬레이션 처리부(350)는 특정 시점 전후 구간에서 예비 주행 명령에 따라 가상의 차량을 제어하여 자율주행 시뮬레이션을 수행할 수 있다.
한편, 시뮬레이션 코드 상에서 정의된 장면 구축 명령에 따라 구현되는 가상의 장면(scene)은 실제 도로 구간에 대응될 수 있다. 또한, 차량 구현 명령에 따라 생성되는 가상의 차량은 실제 차량에 대응될 수 있다. 따라서, 차량 주행 명령에 따라 제어되는 가상의 차량의 움직임은 실제 도로 구간을 주행하는 실제 차량의 움직임에 대응될 수 있다.
이 경우, 시뮬레이션 처리부(350)는 실제 도로 구간에서의 실제 차량의 움직임에 관한 실제 주행 정보를 사전에 수집할 수 있으며, 자율주행 시뮬레이션에 따라 생성된 가상의 차량의 움직임에 관한 가상 주행 정보와 실제 주행 정보를 상호 비교하여 시뮬레이션 결과를 생성할 수 있다. 사용자는 웹 인터페이스를 통해 실제 도로, 실제 차량 및 실제 주행에 관한 정보를 시뮬레이션 코드와 함께 입력할 수 있고 시뮬레이션 장치(130)는 실제 정보와 시뮬레이션 정보를 상호 비교하여 웹 인터페이스를 통해 출력할 수 있다.
제어부(370)는 시뮬레이션 장치(130)의 전체적인 동작을 제어하고, 코드 수신부(310), 가상 이미지 생성부(330) 및 시뮬레이션 처리부(350) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 4는 본 발명에 따른 클라우드 자율주행 시뮬레이션 방법을 설명하는 순서도이다.
도 4를 참조하면, 시뮬레이션 장치(130)는 코드 수신부(310)를 통해 사용자 단말(110)로부터 자율주행 시뮬레이션을 위한 시뮬레이션 코드를 수신할 수 있다(단계 S410). 시뮬레이션 장치(130)는 가상 이미지 생성부(330)를 통해 이미지 관리 서버와 연동하여 시뮬레이션 코드의 실행 정보를 포함하는 가상 이미지를 생성할 수 있다(단계 S430).
또한, 시뮬레이션 장치(130)는 시뮬레이션 처리부(350)를 통해 시뮬레이션 서버와 연동하여 사용자 단말(110)로부터 수신된 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하고(단계 S450), 사용자 인스턴스 상에서 이미지 관리 서버에 의해 제공된 사용자의 가상 이미지를 실행하여 자율주행 시뮬레이션을 처리할 수 있다(단계 S470).
도 5는 본 발명의 일 실시예에 따른 시스템 구성도를 설명하는 도면이다.
도 5를 참조하면, 본 발명에 따른 자율주행 시뮬레이션 시스템은 시뮬레이션 서버 및 사용자/가상 이미지 관리 서버를 포함하여 구현될 수 있다. 즉, 사용자는 웹 인터페이스를 통해 시뮬레이션 코드를 수정하고, 시뮬레이션 실행 명령을 입력할 수 있다. 또한, 사용자는 웹 인터페이스를 통해 수정한 자율주행 소프트웨어의 시뮬레이션 상황을 모니터링할 수 있다.
사용자/가상 이미지 관리 서버는 사용자 별로 가상 이미지를 생성하고 관리할 수 있다. 또한, 사용자/가상 이미지 관리 서버는 웹 인터페이스를 통해 사용자에 의해 수정된 코드를 수신할 수 있으며, 수정된 코드를 반영하여 가상 이미지를 새로 생성하거나 업데이트할 수 있다. 시뮬레이션 서버는 사용자/가상 이미지 관리 서버로부터 사용자의 가상 이미지를 수신할 수 있다. 시뮬레이션 서버는 웹 인터페이스를 통해 실행 명령을 수신하고 가상 이미지를 기초로 빌드 및 시뮬레이션을 실행할 수 있다.
본 발명에 따른 시뮬레이션 장치(130)는 사용자 단말(110)과 연동하여 사용자가 직접 이용하는 웹 인터페이스를 제공할 수 있으며, 시뮬레이션 서버 및 사용자/가상 이미지 관리 서버와 연동하여 동작할 수 있다. 구체적으로, 시뮬레이션 장치(130)는 가상 이미지 생성부(330)를 통해 사용자/가상 이미지 관리 서버와 연동할 수 있으며, 시뮬레이션 처리부(350)를 통해 시뮬레이션 서버와 연동할 수 있다. 한편, 사용자 단말(110)은 웹 인터페이스를 구현하고 시뮬레이션 장치(130)와 연동하기 위한 전용 프로그램 또는 애플리케이션을 설치하여 실행할 수 있다.
도 6은 본 발명의 일 실시예에 따른 시스템 동작 흐름을 설명하는 도면이다.
도 6을 참조하면, 시뮬레이션 장치(130)는 사용자가 웹 인터페이스를 통해 독립된 작업공간에서 자율주행 소프트웨어를 수정하고 테스트할 수 있는 환경을 제공할 수 있다. 사용자는 웹 인터페이스를 통해 제공되는 코드 에디터에서 코드를 수정할 수 있고, 웹 인터페이스에서 수정된 코드는 이미지 관리 서버를 통해 해당 사용자의 가상 이미지에 반영될 수 있다. 또한, 이미지 관리 서버는 해당 사용자의 수정된 정보를 반영한 가상 이미지를 빌드할 수 있다.
이후, 시뮬레이션 서버는 사용자가 웹 인터페이스를 통해 입력한 실행 명령을 받아 자율주행 시뮬레이션을 개시할 수 있다. 즉, 시뮬레이션 서버는 가상 이미지를 기초로 자율주행 소프트웨어를 빌드하고 실행할 수 있다. 시뮬레이션 서버는 자율주행 시뮬레이션을 실행하는 동안 모니터링 서비스를 활성화하여 사용자 단말의 웹 인터페이스를 통해 모니터링 정보를 제공할 수 있다. 사용자는 웹 인터페이스를 통해 제공되는 시뮬레이션 모니터링 정보를 통해 자신이 개발한 자율주행 어플리케이션을 검증할 수 있다.
본 발명에 따른 시뮬레이션 장치(130)는 오픈소스 원격 자율주행 환경을 제공할 수 있다. 일반적으로 자율주행 연구를 위해서는 고가의 센서와 장비들이 필요할 수 있으며, 자율주행 시뮬레이션 역시 컴퓨팅 성능이 매우 좋은 PC가 필요할 수 있다. 따라서, 자율주행 기술을 연구개발 및 테스트할 수 있는 환경이 매우 제한적일 수 있다.
시뮬레이션 장치(130)는 사용자에게 자율주행 시뮬레이션을 위한 가상 환경을 제공할 수 있으며, 사용자의 조작 신호에 따라 고성능의 자율주행 어플리케이션을 실행하고 그 결과에 따른 영상 및 음성 신호만을 사용자에게 제공할 수 있다. 즉, 사용자는 조작 신호의 전송, 영상 및 음성 신호의 수신 및 출력만을 제한적으로 수행하기 때문에 저사양의 PC를 이용하더라도 자율주행 시뮬레이션을 이용할 수 있다.
또한, 시뮬레이션 장치(130)는 자율주행을 추상화한 간단한 기본 코드를 제공하여 코딩을 처음 접하는 초보자들도 간단한 코딩을 통해 자율주행을 경험할 수 있는 환경을 제공하고, 숙련자들에게는 직접 소스를 수정하고 빌드할 수 있는 커스터마이징 기능을 제공할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 자율주행 시뮬레이션 시스템
110: 사용자 단말 130: 시뮬레이션 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 코드 수신부 330: 가상 이미지 생성부
350: 시뮬레이션 처리부 370: 제어부

Claims (5)

  1. 사용자 단말로부터 자율주행 시뮬레이션을 위한 시뮬레이션 코드를 수신하는 코드 수신부;
    이미지 관리 서버와 연동하여 상기 시뮬레이션 코드의 실행 정보를 포함하는 가상 이미지를 생성하는 가상 이미지 생성부; 및
    시뮬레이션 서버와 연동하여 상기 사용자 단말로부터 수신된 사용자의 실행 요청에 따라 사용자 인스턴스를 생성하고 상기 사용자 인스턴스 상에서 상기 이미지 관리 서버에 의해 제공된 상기 사용자의 가상 이미지를 실행하여 상기 자율주행 시뮬레이션을 처리하는 시뮬레이션 처리부;를 포함하는 클라우드 자율주행 시뮬레이션 장치.
  2. 제1항에 있어서,
    상기 가상 이미지 생성부는
    상기 시뮬레이션 코드의 실행 정보를 분석하여 상기 자율주행 시뮬레이션을 위한 필요 자원량을 산출한 다음 상기 가상 이미지에 삽입하고,
    상기 시뮬레이션 처리부는
    상기 가상 이미지의 필요 자원량을 기초로 상기 사용자 인스턴스를 구성하는 것을 특징으로 하는 클라우드 자율주행 시뮬레이션 장치.
  3. 제2항에 있어서, 상기 시뮬레이션 처리부는
    상기 시뮬레이션 서버의 현재 자원 사용율을 기준으로 상기 사용자 인스턴스에 대한 가용 자원량을 결정하고 상기 필요 자원량이 상기 가용 자원량 이하인 경우에 상기 사용자 인스턴스의 생성을 중단하는 것을 특징으로 하는 클라우드 자율주행 시뮬레이션 장치.
  4. 제1항에 있어서, 상기 시뮬레이션 처리부는
    상기 시뮬레이션 서버의 현재 자원 사용율을 기준으로 상기 사용자 인스턴스에 대한 가용 자원량을 결정하고 상기 사용자 인스턴스와 동일한 예비 인스턴스를 생성하며, 상기 예비 인스턴스 상에서 상기 사용자의 가상 이미지를 실행하여 상기 시뮬레이션 코드에 대한 테스트 시뮬레이션을 수행하는 것을 특징으로 하는 클라우드 자율주행 시뮬레이션 장치.
  5. 제4항에 있어서, 상기 상기 시뮬레이션 처리부는
    상기 테스트 시뮬레이션 동안 미리 정해진 시간 간격으로 가상 차량에 대한 가상의 주행 경로를 검출하고, 특정 시점을 기준으로 상기 가상의 주행 경로 상의 제1 위치와 상기 가상 차량의 움직임에 기초하여 예측된 제2 위치를 검출하며, 상기 제1 및 제2 위치들 간의 차이가 기 설정된 기준을 초과하는 경우 상기 제2 위치와 연관된 상기 가상 차량의 움직임을 추출하여 상기 자율주행 시뮬레이션 과정에 적용하는 것을 특징으로 하는 클라우드 자율주행 시뮬레이션 장치.
KR1020220164741A 2022-11-30 2022-11-30 클라우드 자율주행 시뮬레이션 장치 KR20240081671A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220164741A KR20240081671A (ko) 2022-11-30 2022-11-30 클라우드 자율주행 시뮬레이션 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220164741A KR20240081671A (ko) 2022-11-30 2022-11-30 클라우드 자율주행 시뮬레이션 장치

Publications (1)

Publication Number Publication Date
KR20240081671A true KR20240081671A (ko) 2024-06-10

Family

ID=91482675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220164741A KR20240081671A (ko) 2022-11-30 2022-11-30 클라우드 자율주행 시뮬레이션 장치

Country Status (1)

Country Link
KR (1) KR20240081671A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082672A (ko) 2018-12-31 2020-07-08 주식회사 에스더블유엠 게임서버 연계 자율주행 시뮬레이션 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082672A (ko) 2018-12-31 2020-07-08 주식회사 에스더블유엠 게임서버 연계 자율주행 시뮬레이션 방법

Similar Documents

Publication Publication Date Title
US8549491B2 (en) Apparatus and method for application testing of embedded system
US9195571B2 (en) Automatic testing apparatus for embedded software, automatic testing method thereof and test scenario composing method
KR20210130113A (ko) 자율 운전 시스템의 장면 복원 테스트 방법, 장치, 기기 및 프로그램
US20150169318A1 (en) Method and system for modifying deployed applications
US20170168784A1 (en) Method and device for visually implementing software code
CN103514023A (zh) 一种虚拟机离线自动软件安装的方法及系统
KR20170121553A (ko) 항공기 비행제어법칙 시뮬레이션 방법 및 장치
CN105453033A (zh) 程序测试服务
US8762781B2 (en) Method and apparatus useful in manufacturing test case operations
US20230267255A1 (en) Semiconductor equipment modeling method and device
KR20100056338A (ko) 재활용도를 높일 수 있는 gui 테스트 자동화 시스템 및 그 방법
EP3839731A1 (en) Apparatus and method to assign threads to a plurality of processor cores for virtualization of a hardware configuration
KR20240081671A (ko) 클라우드 자율주행 시뮬레이션 장치
CN112860587A (zh) Ui自动测试方法和装置
JP2021533437A (ja) 情報提示方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
EP3014426B1 (en) Self-revealing symbolic gestures
US20220297731A1 (en) Train signal system and linkage method therefor
US10671729B2 (en) Adaptive dynamic analysis method, adaptive dynamic analysis platform, and device equipped with the same
EP3528126B1 (en) Representing a test execution of a software application using extended reality
US10545858B2 (en) Method for testing a graphical interface and corresponding test system
KR20220022383A (ko) 멀티미디어 기기의 테스트 방법 및 시스템
KR20100065046A (ko) 임베디드 기반 시스템의 응용 시험 장치 및 방법
KR102600294B1 (ko) 차량용 플랫폼을 위한 arinc 기반 운영체제 헬스 모니터링 설정 코드 자동 생성 장치 및 방법
EP4270189A1 (en) Method of optimizing execution of a function on a control system and apparatus for the same
US20230350392A1 (en) Method and system for seamless transition of runtime system from controller device to digitalization platform