KR102135443B1 - 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체 - Google Patents

그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체 Download PDF

Info

Publication number
KR102135443B1
KR102135443B1 KR1020190010538A KR20190010538A KR102135443B1 KR 102135443 B1 KR102135443 B1 KR 102135443B1 KR 1020190010538 A KR1020190010538 A KR 1020190010538A KR 20190010538 A KR20190010538 A KR 20190010538A KR 102135443 B1 KR102135443 B1 KR 102135443B1
Authority
KR
South Korea
Prior art keywords
graph structure
sensing data
node
moving object
data
Prior art date
Application number
KR1020190010538A
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 KR1020190010538A priority Critical patent/KR102135443B1/ko
Priority to CN202010074949.1A priority patent/CN111486837B/zh
Priority to JP2020009748A priority patent/JP7105819B2/ja
Priority to US16/774,857 priority patent/US11170049B2/en
Priority to EP20154084.6A priority patent/EP3686556B1/en
Application granted granted Critical
Publication of KR102135443B1 publication Critical patent/KR102135443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1652Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with ranging devices, e.g. LIDAR or RADAR
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/48Determining position by combining or switching between position solutions derived from the satellite radio beacon positioning system and position solutions derived from a further system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/0278Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Navigation (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 출원은 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체에 관한 것으로서, 본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추적방법은, 복수의 센서를 이용하여, 이동체의 이동에 따른 센싱 데이터를 생성하는 센싱단계; 기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 생성단계; 상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정단계; 및 상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치추정단계를 포함할 수 있다.

Description

그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체 {Method for position estimation of vehicle based on graph structure and vehicld using the same}
본 출원은 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체에 관한 것으로서, 특히 비동기 센싱 데이터를 그래프 구조에 정합시킬 수 있는 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체에 관한 것이다.
주행 위치 탐색을 통해 자율주행을 수행하는 자율주행 시스템은 주로 선박, 항공기 등에 적용되고 있는데, 최근들어 도로를 주행하는 차량에도 적용되고 있다.
자율주행 시스템은 주행 차량 및 주변 차량 등의 위치를 기반으로 주행 행동 및 주행 궤적을 결정한다. 예를 들면, 자율주행 시스템은 주행 경로, 도로 혼잡도 등과 같은 다양한 정보를 모니터를 통해 사용자에게 알려주거나, 스스로 차량을 운전하거나 주행 상태를 제어한다.
자율주행 시스템에서 위치 인식의 정확성은 주행의 안전성에 직결되는 중요한 요소기술이며, 기존의 자율주행 시스템은 자차에 장착된 로컬 센서를 이용하여 확률적으로 자차의 위치 및 주변 차량의 위치를 인식하였다.
예를 들면, 차량 내에 스캐닝 장치, 카메라, 레이더 등과 같은 모든 센서 장비와, 컴퓨팅 장치와, 차량 제어 및 자율주행용 소프트웨어를 탑재하여 기 설정된 조건에 따라 차량이 자동으로 주행할 수 있었다.
본 출원은, 그래프 구조의 노드 생성시간과 센서의 센싱 데이터의 생성시간이 상이한 경우, 그래프 구조를 수정하여 센싱 데이터를 그래프 구조 내에 정합시킬 수 있는, 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체를 제공하고자 한다.
본 출원은, 센서 데이터 보간법(sensor data interpolation)과 그래프 노드 보간법(graph node interpolation)을 선택적으로 적용하여, 그래프 구조에 추가되는 노드 개수를 최소화할 수 있는, 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체를 제공하고자 한다.
본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추적방법은, 복수의 센서를 이용하여, 이동체의 이동에 따른 센싱 데이터를 생성하는 센싱단계; 기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 생성단계; 상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정단계; 및 상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치추정단계를 포함할 수 있다.
본 발명의 일 실시예에 의한 이동체는, 복수의 센서를 이용하여, 이동체의 이동에 따른 각각의 센싱 데이터를 생성하는 센서부; 기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 구축부; 상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정부; 및 상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치 추정부를 포함할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체에 의하면, 그래프 구조의 노드 생성시간과 센서의 센싱 데이터의 생성시간이 상이한 경우, 그래프 구조를 수정하여 센싱 데이터를 그래프 구조 내에 정합시킬 수 있다. 즉, 비동기 센싱 데이터를 그래프 구조에 반영할 수 있으므로, 이동체의 위치를 정확하게 추정할 수 있다.
본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체에 의하면, 센서 데이터 보간법(sensor data interpolation)과 그래프 노드 보간법(graph node interpolation)을 선택적으로 적용하여 그래프 구조를 수정할 수 있다. 이 경우, 그래프 구조에 추가되는 노드 개수를 최소화할 수 있으므로, 그래프 구조 최적화시 소요되는 시간이나 연산량 등을 감소시킬 수 있으며, 위치추정의 실시간성을 유지할 수 있다.
다만, 본 발명의 실시예들에 따른 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도1은 본 발명의 일 실시예에 의한 이동체를 나타내는 블록도이다.
도2 내지 도7은 본 발명의 일 실시예에 의한 그래프 구조 생성을 나타내는 예시도이다.
도8은 본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치추정방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이동체는 자율주행하는 차량이나 로봇(robot), 드론(drone) 등일 수 있다. 이동체는 현재 위치를 인식하기 위한 위치추정(localization)을 수행할 수 있으며, 위치추정을 통해 현재 이동체의 위치정보와 포즈 정보 등을 확인한 후, 이를 바탕으로 자율주행을 위한 제어 등을 수행할 수 있다.
이동체는 위치추정을 위하여, 복수의 센서로부터 센싱 데이터들을 수집할 수 있으며, 입력받은 센싱 데이터들을 이용하여 그래프 구조(Graph Structure)를 생성할 수 있다. 여기서, 그래프 구조는 복수의 센싱 데이터를 통합하여 나타내는 것으로, 그래프 구조를 활용하면 이동체의 위치정보를 신속하고 정확하게 추출하는 것이 가능하다.
위치추정을 통해 추출하는 이동체의 위치정보에는, 이동체의 회전정보(rotation), 이동정보(translation) 및 속도정보(velocity)를 포함할 수 있다. 회전정보에는 피치(pitch), 롤(roll), 요(yaw)의 3축 회전량을 포함할 수 있으며, 이동정보는 이동체가 위치하는 지도상의 좌표일 수 있다. 또한, 속도정보는 이동체의 이동방향과 속력을 나타내는 속도벡터일 수 있다. 즉, 위치정보의 회전정보(rotation), 이동정보(translation) 및 속도정보(velocity) 이용하여, 이동체의 현재 위치와 포즈를 용이하게 파악하는 것이 가능하다.
다만, 이동체의 센서들이 측정하는 센싱 데이터들은 각각의 생성주기가 상이할 수 있으며, 비동기 센싱 데이터가 입력되는 경우 이들에 대한 처리가 문제될 수 있다. 즉, 그래프 구조 생성시 비동기 센싱 데이터를 제외하는 경우에는 정확도에 문제가 발생할 수 있으며, 비동기 센싱 데이터를 적용하는 경우에는, 그래프 구조의 수정 등에 따른 지연에 의하여 위치정보의 실시간성에 문제가 발생할 수 있다.
한편, 본 발명의 일 실시예에 의한 이동체에 의하면, 비동기 센싱 데이터를 반영하여 그래프 구조를 수정하는 것이 가능하며, 이를 통하여 신속하면서도 정확하게 이동체의 위치추정을 수행하는 것이 가능하다. 이하, 도1을 참조하여 본 발명의 일 실시예에 의한 이동체를 설명한다.
도1은 본 발명의 일 실시예에 의한 이동체를 나타내는 블록도이다.
도1을 참조하면 본 발명의 일 실시예에 의한 이동체(100)는 센서부(110), 그래프 구조 구축부(120), 그래프 구조 수정부(130) 및 위치추정부(140)를 포함할 수 있다.
센서부(110)는 복수의 센서들을 포함할 수 있으며, 복수의 센서를 이용하여 이동체(100)의 이동에 따른 각각의 센싱 데이터를 생성할 수 있다. 구체적으로, 도1에 도시한 바와 같이, 센서부(110)에는 IMU 센서(111), GPS 센서(112), 휠 인코더 센서(113), 라이다 센서(114) 등이 포함될 수 있다. 다만, 센서부(110)에 포함되는 센서는 이에 한정되지 않으며, 이외에도 다양한 종류의 센서들이 센서부(110)에 포함될 수 있다. 또한, 센서부(110)에 포함되는 센서들은 이동체(100)의 내부 또는 외부에 위치할 수 있으며, 이동체(100)에 위치하는 센서의 종류 및 개수는 한정되지 않는다.
IMU(Inertial Measurement Unit) 센서(111)는 관성 측정 수단으로 가속도 센서 및 자이로 센서(자이로스코프)를 포함할 수 있다. 예를들어, IMU 센서(111)는 이동체(100)의 회전각으로서 전진방향(Roll 축 방향), 전진방향의 우측방향(pitch 축 방향), 중력방향(yaw 축 방향) 각각의 각속도 증분치와 이동체(100)의 속도 증분치 등의 센싱 데이터를 생성할 수 있다. 또한, IMU 센서(111)는 센싱 데이터를 이용하여, IMU 오도메트리(Odometry)를 생성할 수 있다. 즉, 초기조건으로부터 가속도와 각속도의 변화량을 측정하여, 이동체(100)의 이동방향 및 이동거리 등을 IMU 오도메트리를 제공하는 것도 가능하다.
GPS 센서(112)는 위성과 통신하여 이동체(100)의 지표상 좌표를 센싱 데이터로 제공할 수 있다. 예를들어, GPS 센서(112)는 WGS84 좌표계의 측지좌표로서, 위도, 경도 및 타원 체고 등을 제공할 수 있다.
휠 인코더 센서(113)는 이동체(100)에 구비된 휠(wheel)의 회전수를 측정하여 제공하는 것으로, 휠 인코더 센서(113)를 이용하면, 이동체(100)의 이동거리와 이동속도 등을 측정할 수 있다.
라이다 센서(LiDAR, 114)는 레이저 펄스 등을 주변으로 방사한 후, 반사되어 돌아오는 시간을 측정하여, 이동체(100) 주변에 대한 3차원 깊이정보를 생성할 수 있다. 여기서, 라이다 센서(114)를 이용하여 이동체(100)의 회전량을 측정하거나 비주얼 오도메트리(Visual Odometry)를 생성할 수 있다. 따라서, 라이다 센서(114)를 이용하면, 이동체(100)의 이동방향, 이동거리 등을 측정할 수 있다. 실시예에 따라서는, 라이다 센서(114)로 Velodyne VLP-16의 3D LiDAR를 이용할 수 있으나, 이에 한정되는 것은 아니다.
추가적으로, 센서부(110)에 카메라 등을 더 포함할 수 있으며, 카메라를 이용하여 이동체(100)의 이동에 대응하는 영상을 촬영하는 것도 가능하다. 이 경우, 카메라로부터 이동체(100)의 비주얼 오도메트리를 생성할 수 있다.
한편, 센서부(110)가 생성하는 센싱 데이터는 단항 데이터(unary data)와 이항 데이터(binary data)로 구별할 수 있다. 여기서 단항데이터는 센싱 데이터의 생성시점에서의 측정결과를 나타내는 것으로, GPS 센서(112)에서 측정한 좌표값 등이 해당한다. 즉, GPS 센서(112)에 의하면 특정시점에 이동체(100)의 위치에 대응하는 위도 및 경도 좌표값이 생성되므로, 단항 데이터에 해당한다.
반면에, 이항 데이터는 센싱 데이터의 측정시작시점과 측정종료시점 사이의 관계정보를 측정결과로 나타내는 것으로, IMU 센서(111)의 IMU 오도메트리 등이 해당한다. 즉, 특정 시점에서의 가속도 값이 아니라, 측정시작시점과 측정종료시점 사이의 가속도 변화량을 이용한 이동방향과 이동거리 등의 정보를 추출하는 것이므로, IMU 오도메트리는 이항 데이터에 해당한다.
센서부(110)에서 생성한 센싱 데이터는 대기열(Queque)에 입력될 수 있으며, 입력된 센싱 데이터는 순차적으로 그래프 구조 구축부(120)로 입력될 수 있다. 다만, 센서부(110)에 포함된 센서들의 생성주기는 상이할 수 있으며, 센싱 데이터의 생성 후 대기열에 입력되는 시점도 각각 상이할 수 있다.
그래프 구조 구축부(120)는 기준주기에 따라 노드(node)를 생성할 수 있으며, 기준주기와 동기화된 센싱 데이터로 노드들 사이의 구속조건(constraint)를 설정하여, 그래프 구조(graph structure)를 생성할 수 있다. 여기서, 그래프 구조 구축부(120)는 센싱 데이터 중 어느 하나를 기준 데이터로 설정할 수 있으며, 기준 데이터의 생성주기를 기준주기로 설정할 수 있다. 즉, 기준 데이터의 생성주기에 따라, 노드를 생성하여 그래프 구조를 생성할 수 있다. 이때, 기준주기와 동기화된 센싱 데이터들이 함께 입력될 수 있으며, 입력된 센싱 데이터들을 해당 노드의 구속조건으로 설정할 수 있다. 실시예에 따라서는, IMU 센서(111)의 IMU 오도메트리(Odometry)를 기준 데이터로 설정할 수 있다.
구체적으로, 도2(a)에 도시한 바와 같이, 그래프 구조 구축부(120)는 t=0의 시점에 최초로 제1 노드를 생성할 수 있으며, 제1 노드의 초기조건(i1)을 구속조건으로 설정할 수 있다. 이후, t=5의 시점에 제2 노드를 생성할 수 있으며, 제1 노드와 제2 노드 사이를 연결하는 구속조건(a1)을 설정할 수 있다. 즉, 기준주기는 5일 수 있으며, t=0과 t=5사이의 IMU 오도메트리를 구속조건(a1)으로 설정할 수 있다. 이와 같이, 기준주기마다 이동체(100)의 위치에 대응하는 노드를 신규 생성하고, 각각의 노드에 센싱 데이터에 대응하는 구속조건을 설정하여, 이동체(100)의 그래프 구조를 생성할 수 있다.
그래프 구조 수정부(130)는 센싱 데이터 중에서, 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 비동기 센싱 데이터를 이용하여 그래프 구조를 수정할 수 있다.
도1에 도시한 바와 같이, 센서부(110)에서 생성한 센싱 데이터는 대기열(Queue)을 통하여 그래프 구조 구축부(120)로 순차적으로 입력될 수 있다. 이때, 각각의 센싱 데이터는 생성된 순서에 따라 순차적으로 입력될 수 있으나, 실시예에 따라서는 센서들이 센싱 데이터를 생성하는 주기가 일치하지 않을 수 있다. 또한, 각각의 센서들마다 센싱 데이터를 생성하는데 소요되는 시간이 상이하여, 동일한 시점에 대한 센싱 데이터임에 불구하고 상대적으로 늦게 대기열에 입력되는 경우도 발생할 수 있다.
즉, 센서부(110)의 센서들이 생성하는 센싱 데이터들은 각각의 생성주기가 상이할 수 있으며, 노드의 생성주기와 동기화되지 않은 비동기 센싱 데이터가 입력될 수 있다. 이때, 단순히 비동기 센싱 데이터를 제외하는 경우에는 위치추정 등의 정확도가 문제될 수 있으므로, 비동기 센싱 데이터를 그래프 구조에 정합하도록 그래프 구조를 수정할 필요가 있다. 따라서, 그래프 구조 수정부(130)에서는 그래프 구조를 수정하여 비동기 센싱 데이터를 그래프 구조 내에 정합시킬 수 있다.
구체적으로, 그래프 구조 수정부(130)는, 먼저 수신한 비동기 센싱 데이터의 생성시점을 확인할 수 있다. 즉, 비동기 센싱 데이터의 생성시점과 그래프 구조 중에서 최근 생성된 제1 노드의 생성시점을 비교할 수 있다.
여기서, 비동기 센싱데이터가 제1 노드의 생성시점 이후에 생성된 경우에는, 비동기 센싱 데이터의 생성시점에 대응하는 제2 노드를 신규 생성하여 그래프 구조에 추가할 수 있다. 즉, 기준주기가 도래하기 전에 비동기 센싱 데이터가 먼저 입력된 경우에 해당하므로, 해당 비동기 센싱 데이터의 생성시점에 대응하는 노드를 추가하여, 비동기 센싱 데이터를 그래프 구조 상에 반영할 수 있다. 이 경우, 제2 노드에 비동기 센싱 데이터에 대응하는 제1 구속조건을 설정하고, 제1 노드와 제2 노드 사이의 제2 구속조건은 기준 데이터를 이용하여 설정할 수 있다.
구체적으로, 도4(a)에 도시한 바와 같이, 기존의 그래프 구조는 t=0과 t=5에 각각 노드를 생성한 후, 초기조건(i1)을 t=0의 구속조건으로 설정하고, t=0과 t=5의 노드 사이에 IMU 오도메트리에 따른 구속조건(a1)을 설정한 것일 수 있다. 여기서, t=5까지 노드가 생성되었으므로, 이후 기준주기에 따라 t=10에서 노드가 생성될 예정이나, 현재 t=7의 시점에 비동기 센싱 데이터가 입력된 경우에 해당한다.
이 경우, 도4(b)에 도시한 바와 같이, t=7은 현재 그래프 구조와 비교할 때 미래 데이터에 해당하므로, t=7에 해당하는 노드를 추가할 수 있다. 이후, 가장 근접하는 t=5의 노드와 기준 데이터를 이용하여 구속조건(a2)을 설정할 수 있으며, 이후 t=7에 대응하는 비동기 센싱 데이터를 적용하여 t=7에서의 구속조건(u1)을 설정할 수 있다. 즉, 그래프 구조를 기준으로, 아직 생성되지 않은 미래 데이터가 입력되는 경우에는, 해당 비동기 센싱 데이터에 대응하는 노드를 추가하도록 그래프 구조를 수정할 수 있다.
한편, 그래프 구조에서 가장 최근 생성된 제1 노드의 생성시점을 기준으로, 비동기 센싱 데이터가 제1 노드의 생성시점 이전에 생성된 경우에는, 그래프 노드 보간법(Graph node interpolation) 또는 센서 데이터 보간법(Sensor data interpolation)을 이용하여 그래프 구조를 수정할 수 있다.
구체적으로, 비동기 센싱 데이터가 단항 데이터(unary data)이고, 비동기 센싱 데이터의 생성시점이 그래프 구조 내에 포함된 전체 노드들의 생성시점과 설정시간간격 이상 차이나는 경우에는, 그래프 노드 보간법을 이용할 수 있다. 즉, 비동기 센싱 데이터의 생성시점이 그래프 구조내 포함된 노드의 생성시점과 근접하지 않는 경우에는, 그래프 구조 내에 추가적인 노드를 더 포함하는 방식으로 비동기 센싱 데이터를 정합시킬 수 있다.
그래프 노드 보간법을 이용하는 경우에는, 그래프 구조 수정부(130)가 비동기 센싱 데이터의 생성시점에 제2 노드를 신규 생성할 수 있으며, 제2 노드에 비동기 센싱 데이터에 대응하는 제1 구속조건을 설정할 수 있다. 또한, 제2 노드와 기존 노드 사이에는 연계요소(between factor)를 이용하여 제2 구속조건을 설정할 수 있다.
구체적으로, 도2에 도시한 바와 같이, t=0과 t=5에 대응하는 노드를 각각 생성한 이후에, t=4의 시점에 대응하는 비동기 센싱 데이터가 입력되는 경우가 존재할 수 있다. 여기서, 그래프 구조는 이미 t=5의 시점까지 생성된 상태이므로, t=4의 시점에 대응하는 비동기 센싱 데이터를 반영하기 위해서는 그래프 구조를 수정할 필요가 있다. 여기서, 비동기 센싱 데이터는 t=4의 시점에 생성된 것으로, 기존의 그래프 구조에 포함된 노드들과는 설정시간간격이상(예를들어, t=1) 차이가 난다. 따라서, 도2의 경우에는 그래프 노드 보간법을 적용할 수 있다.
이 경우, 도2(b)에 도시한 바와 같이, 비동기 센싱 데이터가 생성된 t=4에 대응하는 노드를 신규 생성할 수 있으며, t=4에 대응하는 노드에 비동기 센싱 데이터에 대응하는 구속조건(u1)을 설정할 수 있다. 여기서, t=4의 노드와, t=5의 노드 사이를 연결하는 구속조건을 추가할 필요가 있으며, 이를 위하여 추가적으로 연계요소를 설정하여 구속조건(b1)을 설정할 수 있다. 예를들어, t=4에 생성된 비동기 센싱 데이터가 GPS 좌표값인 경우, t=4의 GPS 좌표값과, t=5 에서의 위치정보를 비교한 후, t=4의 GPS 좌표에서 t=5의 위치까지 진행하기 위한 휠 인코더값 등으로 설정할 수 있다. 다만, 연계요소는 이에 한정되는 것은 아니며, 실시예에 따라 다양하게 설정가능하다.
또한, 비동기 센싱 데이터가 단항 데이터이고, 그래프 구조 내에 포함된 전체 노드 중에서, 비동기 센싱 데이터의 생성시점과 설정시간간격(예를들어, t=1) 미만인 대상 노드가 존재하는 경우에는, 센서 데이터 보간법을 이용할 수 있다. 즉, 도3(a)에 도시한 바와 같이, 비동기 센싱 데이터의 생성시점이 t=4.9이고, 기존의 그래프 구조 내에 생성시점이 t=5인 대상노드가 존재하는 경우에는, 설정시간간격 미만인 대상 노드가 존재하는 경우에 해당한다. 따라서, 도3(b)에 도시한 바와 같이, 비동기 센싱 데이터에 대응하는 노드를 별도로 생성하지 않고, 기존 그래프 구조에 포함된 대상 노드(t=5)에 비동기 센싱 데이터에 대응하는 구속조건(u1)을 추가하도록 그래프 구조를 수정할 수 있다.
즉, 그래프 구조 수정부(130)는 비동기 센싱 데이터의 생성시점이 기존 그래프 구조의 노드와 설정시간 간격 미만으로 차이나는 경우에는, 센서 데이터 보간법을 적용하여, 신속하게 비동기 센싱 데이터를 그래프 구조 상에 반영하도록 할 수 있으며, 설정시간 간격 이상으로 차이나는 경우에는, 그래프 노드 보간법을 적용하여 비동기 센싱 데이터를 정확하게 그래프 구조 상에 반영하도록 할 수 있다. 따라서, 본 발명의 일 실시예에 의하면, 비동기 센싱 데이터를 그래프 구조 상에 신속하게 반영하는 동시에 정확하게 반영하는 것이 가능하다.
추가적으로, 그래프 구조 수정부(130)는 입력되는 비동기 센싱 데이터가 이항 데이터인 경우에도, 그래프 구조를 수정하여 반영하도록 할 수 있다. 구체적으로, 비동기 센싱 데이터가 이항 데이터인 경우에는, 그래프 노드 보간법을 이용할 수 있다.
즉, 비동기 센싱 데이터의 측정시작시점 및 측정종료시점이 각각 제1 노드의 생성시점 이전이면, 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 비동기 센싱 데이터를 이용하여 제2 노드 및 제3 노드 사이의 제1 구속조건을 설정할 수 있다. 또한, 제2 노드 및 제3 노드에 가장 인접하는 대상 노드와의 사이에는 각각 연계요소를 이용하여 제2 구속조건 및 제3 구속조건으로 설정할 수 있다.
예를들어, 도5에 도시한 바와 같이, t=0, t=5, t=10의 시점에 각각 노드를 생성하여 그래프 구조를 구축한 상태에서, 측정시작시점이 t=4이고 측정종료시점이 t=7인 이항 데이터가 입력될 수 있다. 이 경우, t=4와 t=7에 대응하는 노드를 각각 생성할 수 있으며, 비동기 센싱 데이터를 이용하여 각 노드를 연결하는 구속조건(v1)을 설정할 수 있다. 또한, t=4와 t=7와 인접하는 t=5의 노드 사이에 각각 연계요소를 이용하여 구속조건(b1, b2)들을 설정할 수 있다. 여기서, 연계요소는 실시예에 따라 다양하게 설정가능하다.
또한, 실시예에 따라서는 비동기 센싱 데이터의 측정시작시점이 제1 노드의 생성시점 이전이고, 비동기 센싱 데이터의 측정종료시점은 제1 노드의 생성시점 이후인 경우도 존재할 수 있다. 이때, 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 비동기 센싱 데이터를 이용하여 제2 노드 및 제3 노드 사이의 제1 구속조건을 설정할 수 있다. 여기서, 제2 노드와 제1 노드의 사이의 제1 구속조건은 연계요소를 이용하여 설정하고, 제3 노드와 제1 노드 사이의 제2 구속조건은 기준 데이터를 이용하여 설정할 수 있다.
즉, 도6에 도시한 바와 같이, t=0, t=5의 시점에 각각 노드를 생성하여 그래프 구조를 구축한 상태에서, 측정시작시점이 t=4이고 측정종료시점이 t=7인 이항 데이터가 입력될 수 있다. 이 경우, t=4와 t=7에 대응하는 노드를 각각 생성할 수 있으며, 비동기 센싱 데이터를 이용하여 각 노드를 연결하는 구속조건(v1)을 설정할 수 있다. 또한, t=4와 t=7와 인접하는 t=5의 노드에 대하여, 각각 연계요소와 기준 데이터를 이용하여 구속조건(b1, a2)들을 설정할 수 있다.
추가적으로, 도7에 도시한 바와 같이, 비동기 센싱 데이터의 측정시작시점(t=7)과 측정종료시점(t=13)이 제1 노드의 생성시점(t=5) 이후인 경우도 존재할 수 있다. 이때, 그래프 구조 수정부(130)는 비동기 센싱 데이터의 측정시작시점(t=7)과 측정종료시점(t=13)에 각각 제2 노드 및 제3 노드를 생성하고, 비동기 센싱 데이터를 이용하여 제2 노드 및 제3 노드 사이의 구속조건(v1)을 설정할 수 있다. 이후, 제2 노드(t=7)와 제1 노드(t=5)의 사이의 구속조건(a2)과, 제2 노드(t=7)와 제3 노드(t=13) 사이의 구속조건(a3)을 각각 기준 데이터를 이용하여 설정할 수 있다.
위치 추정부(140)는 그래프 구조를 이용하여 이동체(100)의 위치정보를 생성할 수 있다. 구체적으로, 위치 추정부(140)는 구축된 그래프 구조를 기반으로 그래프 최적화 기법(Graph optimization)을 적용할 수 있으며, 최적화된 그래프 구조를 이용하여, 이동체(100)의 이동 경로 및 시간에 따른 최종 위치를 추정할 수 있다. 즉, 위치 추정부(140)는 그래프 구조로부터, 이동체(100)의 회전정보, 이동정보 및 속도정보 등을 포함하는 위치정보를 최종적으로 추출할 수 있다. 이후 위치 추정부(140)에서 추출한 위치정보를 기반으로, 자율주행을 위한 이동체(100)의 제어를 수행하도록 할 수 있다.
도8은 본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추정방법을 나타내는 순서도이다.
도8을 참조하면, 본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추정방법은, 센싱단계(S110), 그래프 구조 생성단계(S120), 그래프 구조 수정단계(S130) 및 위치추정단계(S140)를 포함할 수 있다. 여기서, 각 단계들은 이동체에 의하여 수행될 수 있다.
이하 도8을 참조하여 본 발명의 일 실시예에 의한 그래프 구조 기반의 이동체 위치 추정방법을 설명한다.
센싱단계(S110)에서는, 복수의 센서를 이용하여 이동체의 이동에 따른 센싱 데이터를 생성할 수 있다. 구체적으로, 이동체에 장착되는 IMU(Inertial Measurement Unit) 센서, GPS(Global Positioning System) 센서, 휠 인코더(Wheel Encoder) 센서, 라이더(LiDAR) 센서 등을 이용하여 이동체의 이동에 따른 센싱 데이터를 생성할 수 있다. 다만, 이동체에 포함되는 센서들은 이에 한정되지 않으며, 이외에도 다양한 종류의 센서들을 이용하여 센싱 데이터를 생성할 수 있다.
한편, 센서들이 생성하는 센싱 데이터는, 단항 데이터(unary data)와 이항 데이터(binary data)로 구별할 수 있다. 즉, 센싱 데이터의 생성시점에서의 측정결과를 나타내는 단항 데이터와, 센싱 데이터의 측정시작시점과 측정종료시점 사이의 관계정보를 측정결과로 나타내는 이항 데이터로 각각 구별가능하다.
그래프 구조 생성단계(S120)에서는, 기준주기에 따라 노드(node)를 생성하고, 기준주기와 동기화된 센싱 데이터로 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성할 수 있다. 여기서, 센싱 데이터 중 어느 하나를 기준 데이터로 설정할 수 있으며, 기준 데이터의 생성주기를 기준주기로 설정할 수 있다. 즉, 기준 데이터의 생성주기에 따라, 노드를 생성하여 그래프 구조를 생성할 수 있다. 이때, 기준주기와 동기화된 다른 센싱 데이터들이 함께 입력될 수 있으며, 입력된 센싱 데이터들은 해당 노드의 구속조건으로 설정할 수 있다. 실시예에 따라서는, IMU 센서의 IMU 오도메트리(Odometry)를 기준 데이터로 설정할 수 있다.
그래프 구조 수정단계(S130)에서는, 센싱 데이터 중에서, 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 비동기 센싱 데이터를 이용하여 그래프 구조를 수정할 수 있다.
각각의 센서들이 생성한 센싱 데이터는 대기열(Queue)을 통하여 순차적으로 입력될 수 있다. 이때, 각각의 센싱 데이터는 생성된 순서에 따라 순차적으로 입력될 수 있으나, 실시예에 따라서는 센서들이 센싱 데이터를 생성하는 주기가 일치하지 않을 수 있다. 또한, 각각의 센서들마다 센싱 데이터를 생성하는데 소요되는 시간이 상이하여, 동일한 시점에 대한 센싱 데이터임에 불구하고 상대적으로 늦게 대기열에 입력되는 경우도 발생할 수 있다.
즉, 센싱 데이터들은 각각의 생성주기가 상이할 수 있으며, 노드의 생성주기와 동기화되지 않은 비동기 센싱 데이터가 입력될 수 있다. 이때, 단순히 비동기 센싱 데이터를 제외하는 경우에는 위치추정 등의 정확도가 문제될 수 있으므로, 비동기 센싱 데이터를 그래프 구조에 정합하도록 그래프 구조를 수정할 필요가 있다. 따라서, 그래프 구조 수정단계(S130)에서는, 그래프 구조를 수정하여 비동기 센싱 데이터를 그래프 구조 내에 정합시킬 수 있다.
이 경우, 먼저 수신한 비동기 센싱 데이터의 생성시점을 확인할 수 있다. 즉, 비동기 센싱 데이터의 생성시점과 그래프 구조 중에서 최근 생성된 제1 노드의 생성시점을 비교할 수 있다.
여기서, 비동기 센싱데이터가 제1 노드의 생성시점 이후에 생성된 경우에는, 비동기 센싱 데이터의 생성시점에 대응하는 제2 노드를 신규 생성하여 그래프 구조에 추가할 수 있다. 즉, 기준주기가 도래하기 전에 비동기 센싱 데이터가 먼저 입력된 경우에 해당하므로, 해당 비동기 센싱 데이터의 생성시점에 대응하는 노드를 추가하여, 비동기 센싱 데이터를 그래프 구조 상에 반영할 수 있다. 이 경우, 제2 노드에 비동기 센싱 데이터에 대응하는 제1 구속조건을 설정하고, 제1 노드와 제2 노드 사이의 제2 구속조건은 기준 데이터를 이용하여 설정할 수 있다. 즉, 그래프 구조를 기준으로, 아직 생성되지 않은 미래 데이터가 입력되는 경우에는, 해당 비동기 센싱 데이터에 대응하는 노드를 추가하도록 그래프 구조를 수정할 수 있다.
한편, 그래프 구조에서 가장 최근 생성된 제1 노드의 생성시점을 기준으로, 비동기 센싱 데이터가 제1 노드의 생성시점 이전에 생성된 경우에는, 그래프 노드 보간법(Graph node interpolation) 또는 센서 데이터 보간법(Sensor data interpolation)을 이용하여 그래프 구조를 수정할 수 있다.
구체적으로, 비동기 센싱 데이터가 단항 데이터(unary data)이고, 비동기 센싱 데이터의 생성시점이 그래프 구조 내에 포함된 전체 노드들의 생성시점과 설정시간간격 이상 차이나는 경우에는, 그래프 노드 보간법을 이용할 수 있다.
그래프 노드 보간법을 이용하는 경우에는, 비동기 센싱 데이터의 생성시점에 제2 노드를 신규 생성할 수 있으며, 제2 노드에 비동기 센싱 데이터에 대응하는 제1 구속조건을 설정할 수 있다. 또한, 제2 노드와 기존 노드 사이에는 연계요소(between factor)를 이용하여 제2 구속조건을 설정할 수 있다.
또한, 비동기 센싱 데이터가 단항 데이터이고, 그래프 구조 내에 포함된 전체 노드 중에서, 비동기 센싱 데이터의 생성시점과 설정시간간격(예를들어, t=1) 미만인 대상 노드가 존재하는 경우에는, 센서 데이터 보간법을 이용할 수 있다. 즉, 비동기 센싱 데이터에 대응하는 노드를 별도로 생성하지 않고, 기존 그래프 구조에 포함된 대상 노드에 비동기 센싱 데이터에 대응하는 구속조건을 추가하도록 그래프 구조를 수정할 수 있다
추가적으로, 입력되는 비동기 센싱 데이터가 이항 데이터인 경우에도, 그래프 구조를 수정하여 반영하도록 할 수 있다. 구체적으로, 비동기 센싱 데이터가 이항 데이터인 경우에는, 그래프 노드 보간법을 이용할 수 있다.
즉, 비동기 센싱 데이터의 측정시작시점 및 측정종료시점이 각각 제1 노드의 생성시점 이전이면, 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 비동기 센싱 데이터를 이용하여 제2 노드 및 제3 노드 사이의 제1 구속조건을 설정할 수 있다. 또한, 제2 노드 및 제3 노드에 가장 인접하는 대상 노드와의 사이에는 각각 연계요소를 이용하여 제2 구속조건 및 제3 구속조건으로 설정할 수 있다.
또한, 실시예에 따라서는 비동기 센싱 데이터의 측정시작시점이 제1 노드의 생성시점 이전이고, 비동기 센싱 데이터의 측정종료시점은 제1 노드의 생성시점 이후인 경우도 존재할 수 있다. 이때, 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 비동기 센싱 데이터를 이용하여 제2 노드 및 제3 노드 사이의 제1 구속조건을 설정할 수 있다. 여기서, 제2 노드와 제1 노드의 사이의 제1 구속조건은 연계요소를 이용하여 설정하고, 제3 노드와 제1 노드 사이의 제2 구속조건은 기준 데이터를 이용하여 설정할 수 있다.
이외에도, 비동기 센싱 데이터의 측정시작시점과 측정종료시점이 제1 노드의 생성시점 이후인 경우도 존재할 수 있다. 이 경우, 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 비동기 센싱 데이터를 이용하여 제2 노드 및 제3 노드 사이의 구속조건을 설정할 수 있다. 이후, 제2 노드와 제1 노드의 사이의 구속조건과, 제2 노드와 제3 노드 사이의 구속조건을 각각 기준 데이터를 이용하여 설정할 수 있다.
위치추정단계(S140)에서는, 그래프 구조를 이용하여, 이동체의 위치정보를 생성할 수 있다. 구체적으로, 구축된 그래프 구조를 기반으로 그래프 최적화 기법(Graph optimization)을 적용할 수 있으며, 최적화된 그래프 구조를 이용하여, 이동체의 이동 경로 및 시간에 따른 최종 위치를 추정할 수 있다. 즉, 수정된 그래프 구조로부터, 이동체의 회전정보, 이동정보 및 속도정보 등을 포함하는 위치정보를 최종적으로 추출할 수 있다. 이후 추출한 위치정보를 기반으로, 자율주행을 위한 이동체의 제어를 수행하도록 할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
100: 이동체 110: 센서부
111: IMU 센서 112: GPS tpstj
113: 휠 인코더 센서 114: LiDAR 센서
120: 그래프 구조 구축부 130: 그래프 구조 수정부
140: 위치 추정부
S110: 센싱단계 S120: 그래프 구조 생성단계
S130: 그래프 구조 수정단계 S140: 위치추정단계

Claims (18)

  1. 복수의 센서를 이용하여, 이동체의 이동에 따른 센싱 데이터를 생성하는 센싱단계;
    기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 생성단계;
    상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정단계; 및
    상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치추정단계를 포함하는 것으로,
    상기 그래프 구조 수정단계는
    상기 비동기 센싱 데이터가 상기 그래프 구조 내에 정합되도록 상기 그래프 구조 내에 노드 또는 구속조건을 추가하는 것을 특징으로 하는 그래프 구조의 이동체 위치추정방법.
  2. 제1항에 있어서, 상기 센싱단계는
    상기 이동체에 장착되는 IMU(Inertial Measurement Unit) 센서, GPS(Global Positioning System) 센서, 휠 인코더(Wheel Encoder) 센서, 라이더(LiDAR) 센서 중 적어도 어느 하나를 이용하여, 상기 이동체의 이동에 따른 센싱 데이터를 생성하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  3. 제1항에 있어서, 상기 센싱 데이터는
    상기 센싱 데이터의 생성시점에서의 측정결과를 나타내는 단항 데이터(unary data) 또는, 상기 센싱 데이터의 측정시작시점과 측정종료시점 사이의 관계정보를 측정결과로 나타내는 이항 데이터(binary data)인 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  4. 제1항에 있어서, 상기 그래프 구조 생성단계는
    상기 센싱 데이터 중 어느 하나를 기준 데이터로 설정하고, 상기 기준 데이터의 생성주기를 상기 기준주기로 설정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  5. 제4항에 있어서, 상기 그래프 구조 생성단계는
    상기 이동체에 장착되는 IMU 센서에서 측정한 IMU 오도메트리(Odometry)를 상기 기준 데이터로 설정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  6. 복수의 센서를 이용하여, 이동체의 이동에 따른 센싱 데이터를 생성하는 센싱단계;
    기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 생성단계;
    상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정단계; 및
    상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치추정단계를 포함하는 것으로,
    상기 그래프 구조 수정단계는
    상기 그래프 구조 중에서 최근 생성된 제1 노드의 생성시점을 기준으로, 상기 비동기 센싱데이터가 상기 제1 노드의 생성시점 이후에 생성된 것이면, 상기 비동기 센싱 데이터의 생성시점에 대응하는 제2 노드를 신규 생성하여 상기 그래프 구조에 추가하는 것을 특징으로 하는, 그래프 구조의 이동체 위치추정방법.
  7. 제6항에 있어서,
    상기 그래프 구조 생성단계는
    상기 센싱 데이터 중 어느 하나를 기준 데이터로 설정하고, 상기 기준 데이터의 생성주기를 상기 기준주기로 설정하며,
    상기 그래프 구조 수정단계는
    상기 제2 노드에 상기 비동기 센싱 데이터에 대응하는 제1 구속조건을 설정하고, 상기 기준 데이터를 이용하여 상기 제1 노드와 상기 제2 노드 사이를 제2 구속조건을 설정하는 것을 특징으로 하는 그래프 구조의 이동체 위치추정방법.
  8. 복수의 센서를 이용하여, 이동체의 이동에 따른 센싱 데이터를 생성하는 센싱단계;
    기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 생성단계;
    상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정단계; 및
    상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치추정단계를 포함하는 것으로,
    상기 그래프 구조 수정단계는
    상기 그래프 구조 중에서 최근 생성된 제1 노드의 생성시점을 기준으로, 상기 비동기 센싱 데이터가 상기 제1 노드의 생성시점 이전에 생성된 것이면, 그래프 노드 보간법(Graph node interpolation) 또는 센서 데이터 보간법(Sensor data interpolation)을 이용하여, 상기 그래프 구조를 수정하는 것을 특징으로 하는 그래프 구조의 이동체 위치추정방법.
  9. 제8항에 있어서, 상기 그래프 구조 수정단계는
    상기 비동기 센싱 데이터가 단항 데이터이고, 상기 비동기 센싱 데이터의 생성시점이 상기 그래프 구조 내에 포함된 전체 노드들의 생성시점과 설정시간간격 이상 차이나면, 상기 그래프 노드 보간법을 이용하여, 상기 그래프 구조를 수정하는 것을 특징으로 하는 그래프 구조의 이동체 위치추정기법.
  10. 제9항에 있어서, 상기 그래프 구조 수정단계는
    상기 그래프 노드 보간법을 이용하여, 상기 비동기 센싱 데이터의 생성시점에 제2 노드를 신규 생성하고, 상기 제2 노드에 상기 비동기 센싱 데이터에 대응하는 제1 구속조건을 설정하며, 상기 제2 노드와 기존 노드 사이의 연계요소(between factor)를 이용하여 제2 구속조건을 설정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  11. 제8항에 있어서, 상기 그래프 구조 수정단계는
    상기 비동기 센싱 데이터가 단항 데이터이고, 상기 그래프 구조 내에 포함된 전체 노드 중에서, 상기 비동기 센싱 데이터의 생성시점과 설정시간간격 미만인 대상 노드가 존재하면, 상기 센서 데이터 보간법을 이용하여, 상기 그래프 구조를 수정하는 것을 특징으로 하는 그래프 구조의 이동체 위치추정기법.
  12. 제11항에 있어서, 상기 그래프 구조 수정단계는
    상기 대상 노드에 상기 비동기 센싱 데이터에 대응하는 구속조건을 추가로 설정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  13. 제7항에 있어서, 상기 그래프 구조 수정단계는
    상기 비동기 센싱 데이터가 이항 데이터이면, 그래프 노드 보간법을 이용하여, 상기 그래프 구조를 수정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  14. 제13항에 있어서, 상기 그래프 구조 수정단계는
    상기 비동기 센싱 데이터의 측정시작시점 및 측정종료시점이 각각 상기 제1 노드의 생성시점 이전이면, 상기 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 상기 비동기 센싱 데이터를 이용하여 상기 제2 노드 및 제3 노드 사이의 제1 구속조건을 설정하며, 상기 제2 노드 및 제3 노드에 가장 인접하는 대상 노드와의 사이를 연계요소를 이용하여 각각 제2 구속조건 및 제3 구속조건으로 설정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  15. 제13항에 있어서, 상기 그래프 구조 수정단계는
    상기 비동기 센싱 데이터의 측정시작시점이 상기 제1 노드의 생성시점 이전이고, 상기 비동기 센싱 데이터의 측정종료시점은 상기 제1 노드의 생성시점 이후이면, 상기 비동기 센싱 데이터의 측정시작시점과 측정종료시점에 각각 제2 노드 및 제3 노드를 생성하고, 상기 비동기 센싱 데이터를 이용하여 상기 제2 노드 및 제3 노드 사이의 제1 구속조건을 설정하며, 상기 제2 노드와 상기 제1 노드의 사이의 제1 구속조건을 연계요소를 이용하여 설정하고, 상기 제3 노드와 제1 노드 사이의 제2 구속조건을 상기 기준 데이터를 이용하여 설정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추정방법.
  16. 제1항에 있어서, 상기 위치추정단계는
    상기 그래프 구조를 기반으로 그래프 최적화 기법(Graph optimization)을 이용하여 상기 이동체의 위치를 추정하는 것을 특징으로 하는 그래프 구조 기반의 이동체 위치 추적방법.
  17. 하드웨어와 결합되어 제1항 내지 제16항 중 어느 한 항의 그래프 구조 기반의 이동체 위치 추적방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램.
  18. 복수의 센서를 이용하여, 이동체의 이동에 따른 각각의 센싱 데이터를 생성하는 센서부;
    기준주기에 따라 노드(node)를 생성하고, 상기 기준주기와 동기화된 센싱 데이터로 상기 노드들 사이의 구속조건(constraint)를 설정하여 그래프 구조(graph structure)를 생성하는 그래프 구조 구축부;
    상기 센싱 데이터 중에서, 상기 기준주기와 동기화되지 않은 비동기 센싱 데이터가 입력되면, 상기 비동기 센싱 데이터를 이용하여 상기 그래프 구조를 수정하는 그래프 구조 수정부; 및
    상기 그래프 구조를 이용하여, 상기 이동체의 위치정보를 생성하는 위치 추정부를 포함하는 것으로,
    상기 그래프 구조 수정부는
    상기 비동기 센싱 데이터가 상기 그래프 구조 내에 정합되도록 상기 그래프 구조 내에 노드 또는 구속조건을 추가하는 것을 특징으로 하는 이동체.
KR1020190010538A 2019-01-28 2019-01-28 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체 KR102135443B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190010538A KR102135443B1 (ko) 2019-01-28 2019-01-28 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체
CN202010074949.1A CN111486837B (zh) 2019-01-28 2020-01-22 基于图结构的交通工具位置估计方法和使用其的交通工具
JP2020009748A JP7105819B2 (ja) 2019-01-28 2020-01-24 グラフ構造ベースの移動体の位置推定方法およびそれを用いた移動体
US16/774,857 US11170049B2 (en) 2019-01-28 2020-01-28 Method for position estimation of vehicle based on graph structure and vehicle using the same
EP20154084.6A EP3686556B1 (en) 2019-01-28 2020-01-28 Method for position estimation of vehicle based on graph structure and vehicle using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190010538A KR102135443B1 (ko) 2019-01-28 2019-01-28 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200084035A Division KR20200093477A (ko) 2020-07-08 2020-07-08 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체

Publications (1)

Publication Number Publication Date
KR102135443B1 true KR102135443B1 (ko) 2020-07-17

Family

ID=69374225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190010538A KR102135443B1 (ko) 2019-01-28 2019-01-28 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체

Country Status (5)

Country Link
US (1) US11170049B2 (ko)
EP (1) EP3686556B1 (ko)
JP (1) JP7105819B2 (ko)
KR (1) KR102135443B1 (ko)
CN (1) CN111486837B (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101553898B1 (ko) * 2014-03-04 2015-09-17 국방과학연구소 지형지물의 위치정보를 이용한 자율이동차량의 위치추정시스템 및 방법
KR20180117879A (ko) * 2017-04-20 2018-10-30 한국과학기술원 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110130916A1 (en) * 2009-12-01 2011-06-02 Ise Corporation Location Based Vehicle Data Logging and Diagnostic System and Method
US9255989B2 (en) * 2012-07-24 2016-02-09 Toyota Motor Engineering & Manufacturing North America, Inc. Tracking on-road vehicles with sensors of different modalities
KR101738750B1 (ko) 2015-06-11 2017-05-24 한국과학기술원 실외 환경에서의 강인한 위치 인식 방법 및 장치
EP3109589B1 (en) * 2015-06-23 2019-01-30 Volvo Car Corporation A unit and method for improving positioning accuracy
US10075818B2 (en) * 2016-09-13 2018-09-11 Google Llc Systems and methods for graph-based localization and mapping
US10775801B2 (en) * 2018-03-08 2020-09-15 Baidu Usa Llc Determining speeds along a path for autonomous driving vehicles
JP2019190994A (ja) 2018-04-25 2019-10-31 日産自動車株式会社 自己位置推定方法及び自己位置推定装置
WO2020014683A1 (en) * 2018-07-13 2020-01-16 Kache.AI Systems and methods for autonomous object detection and vehicle following

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101553898B1 (ko) * 2014-03-04 2015-09-17 국방과학연구소 지형지물의 위치정보를 이용한 자율이동차량의 위치추정시스템 및 방법
KR20180117879A (ko) * 2017-04-20 2018-10-30 한국과학기술원 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법

Also Published As

Publication number Publication date
JP7105819B2 (ja) 2022-07-25
US20200242166A1 (en) 2020-07-30
JP2020119570A (ja) 2020-08-06
US11170049B2 (en) 2021-11-09
CN111486837B (zh) 2023-09-15
EP3686556A1 (en) 2020-07-29
EP3686556B1 (en) 2022-09-28
CN111486837A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
US10145945B2 (en) Systems and methods for automatically calibrating a LIDAR using information from a secondary vehicle
KR20200044420A (ko) 위치 추정 방법 및 장치
JP7404010B2 (ja) 位置推定装置及び方法
US10369993B2 (en) Method and device for monitoring a setpoint trajectory to be traveled by a vehicle for being collision free
JP2016149132A (ja) 乗り物のドライバ支援システムにおける予測のためのシステムおよび方法
JP2015006874A (ja) 3次元証拠グリッドを使用する自律着陸のためのシステムおよび方法
KR20180117879A (ko) 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법
US20220291012A1 (en) Vehicle and method for generating map corresponding to three-dimensional space
US20190219699A1 (en) Vehicle pose system
US11668573B2 (en) Map selection for vehicle pose system
KR102115004B1 (ko) 항공사진을 이용하여 3차원 지도를 생성하는 장치 및 방법
US20220194412A1 (en) Validating Vehicle Sensor Calibration
KR20220024791A (ko) 차량의 궤적을 결정하기 위한 방법 및 장치
US20190283760A1 (en) Determining vehicle slope and uses thereof
Groh et al. Advanced real-time indoor parking localization based on semi-static objects
JP2024032805A (ja) 航空写真を利用して三次元地図を生成する装置及びその方法
KR102660497B1 (ko) 차량의 위치 정보 측위 시스템
JP2022081396A (ja) 車両側位方法及び装置
KR102135443B1 (ko) 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체
JP7234840B2 (ja) 位置推定装置
KR20200093477A (ko) 그래프 구조 기반의 이동체 위치 추적방법 및 이를 이용하는 이동체
JP5686048B2 (ja) 位置姿勢出力装置、位置姿勢出力プログラム及び位置姿勢出力方法
US20220198714A1 (en) Camera to camera calibration
Feik SLAM-based navigation of an autonomous driving car
KR20210057393A (ko) 정밀 항법 장치 및 그 장치의 동작 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant