KR20230056690A - 다중 에이전트 맵 생성 - Google Patents

다중 에이전트 맵 생성 Download PDF

Info

Publication number
KR20230056690A
KR20230056690A KR1020237006819A KR20237006819A KR20230056690A KR 20230056690 A KR20230056690 A KR 20230056690A KR 1020237006819 A KR1020237006819 A KR 1020237006819A KR 20237006819 A KR20237006819 A KR 20237006819A KR 20230056690 A KR20230056690 A KR 20230056690A
Authority
KR
South Korea
Prior art keywords
nodes
frame
graph
node
environment
Prior art date
Application number
KR1020237006819A
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
Priority claimed from AU2020903029A external-priority patent/AU2020903029A0/en
Application filed by 커먼웰쓰 사이언티픽 앤 인더스트리알 리서치 오거니제이션 filed Critical 커먼웰쓰 사이언티픽 앤 인더스트리알 리서치 오거니제이션
Publication of KR20230056690A publication Critical patent/KR20230056690A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3841Data obtained from two or more sources, e.g. probe vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • 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
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/3867Geometry of map features, e.g. shape points, polygons or for simplified maps
    • 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
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/7625Hierarchical techniques, i.e. dividing or merging patterns to obtain a tree-like representation; Dendograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2101/00UAVs specially adapted for particular uses or applications
    • B64U2101/30UAVs specially adapted for particular uses or applications for imaging, photography or videography
    • B64U2101/32UAVs specially adapted for particular uses or applications for imaging, photography or videography for cartography or topography
    • 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
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/86Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
    • 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
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • G01S17/8943D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Abstract

환경 맵 생성 시스템으로, 상기 시스템은 범위 센서를 포함하는 매핑 시스템에 의해 캡처된 매핑 데이터를 획득하는 복수의 에이전트를 포함한다. 매핑 데이터는 환경의 3차원 표현을 나타내며 환경의 일부를 나타내는 프레임을 생성하는 데 사용된다. 에이전트는 다른 에이전트로부터 다른 프레임 데이터 - 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 환경의 일부를 나타내는 다른 프레임을 표시함 - 를 수신한다. 그런 다음 각 에이전트는 프레임과 다른 프레임을 사용하여 노드 - 각 노드는 환경의 각 부분을 나타냄 - 를 생성하고, 노드를 상호 연결하는 에지 - 에지는 노드 사이의 공간 오프셋을 나타냄- 를 계산하여 환경 맵을 나타내는 그래프를 생성한다.

Description

다중 에이전트 맵 생성
본 발명은 환경 맵을 생성하기 위한 시스템 및 방법에 관한 것으로, 특히 환경 내의 다중 에이전트를 사용하여 환경 맵을 생성하기 위한 시스템 및 방법에 관한 것이다.
임의의 이전 간행물(또는 그로부터 파생된 정보) 또는 알려진 임의의 문제에 대한 본 명세서의 참조는 이전 간행물(또는 그로부터 파생된 정보), 또는 본 명세서와 관련된 노력의 분야에서 공통의 일반 지식의 일부를 형성하는 것으로 알려진 사항의 인정 또는 승인 또는 임의의 형태의 제안으로 간주되어서는 안 된다.
환경 맵을 생성하기 위해 3차원(3D) 매핑 시스템이 장착된 자율 차량과 같은 에이전트를 사용하는 것이 알려져 있다. 이러한 시스템은 일반적으로 LiDAR 범위 스캐너와 같은 범위 센서를 사용하며, 이 센서는 반사된 레이저 광을 측정하여 환경 일부의 범위를 찾은 다음 이 정보를 사용하여 포인트 클라우드를 생성한다. 예를 들어 SLAM(Simultaneous Localization and Mapping) 알고리즘을 사용하여 범위 데이터를 적절하게 분석하면 에이전트가 환경 내에서 스스로 위치를 알아낼 수(localize) 있으므로 에이전트가 환경 맵을 생성하는 동안 환경 내에서 탐색(navigate)할 수 있다.
그러한 맵의 생성은 다수의 부정확성에 영향을 받는다. 예를 들어, 환경 내에서 에이전트의 궤적은 기류(drift)에 영향을 받는 관성 센서를 사용하여 추적되는 경우가 많은 반면 범위 감지 프로세스 및 결과 데이터 분석의 부정확성으로 인해 완전히 정확하지 않은 맵이 생성될 수 있다. 또 다른 문제는 환경을 횡단하고 매핑하는 프로세스가 시간이 많이 걸릴 수 있으며, 이는 수색 및 구조 시나리오와 같은 애플리케이션에서 특히 문제가 될 수 있다는 것이다. 또한 경우에 따라 환경을 횡단하기 어려울 수 있으며, 즉, 에이전트는 고유한 기능으로 인해 환경의 일부만 횡단할 수 있다. 이는 환경의 일부가 매핑되는 것을 방지할 뿐만 아니라 맵 정확도를 향상시키는 데 도움이 될 수 있는 루프 폐쇄 방지와 같이 맵의 결과 정확도에도 영향을 줄 수 있다.
다중 에이전트를 사용하여 매핑을 수행하려는 시도가 있었지만, 이들은 단일 글로벌 맵을 생성하는 오프라인 일괄 처리 방식에 의존했다. 이렇게 하면 정확한 맵이 생성될 수 있지만 확장이 잘 되지 않고 일정 기간이 지나면 실시간으로 실행할 수 없고, 쉽게 공유되지 않으며, 계산 요구사항의 선형적인 증가로 이어지는 장부상 요구사항의 결과로서. 주로 다른 요구 사항을 고려한 후 문제에 대해 실행 불가능하게 된다.
하나의 광범위한 형태에서, 본 발명의 양태는 환경 맵을 생성하기 위한 시스템을 제공하고자 하며, 이 시스템은 각각의 에이전트가 하나 이상의 처리 장치를 포함하는 복수의 에이전트를 포함하고, 상기 하나 이상의 처리 장치는: 범위 센서를 포함하는 매핑 시스템에 의해, 매핑 데이터를 획득하고 - 매핑 데이터는 환경의 3차원 표현을 표시함 -; 매핑 데이터를 사용하여 환경의 일부를 나타내는 프레임을 생성하고; 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하고 - 다른 프레임 데이터는 하나 이상의 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 환경의 일부를 나타내는 다른 프레임을 표시함 - ; 그리고, 프레임 및 다른 프레임을 사용하여 노드를 생성 - 각 노드는 환경의 각 부분을 나타냄 -; 및 노드를 상호 연결하는 에지를 계산 - 에지는 노드 사이의 공간적 오프셋을 나타냄 -; 함으로써 환경맵을 나타내는 그래프를 생성하도록 구성된 하나 이상의 처리 장치를 포함한다.
일 실시예에서, 각 에이전트는 에이전트에 의해 캡처된 매핑 데이터를 사용하는 것을 기반으로 생성된 프레임 및 하나 이상의 다른 에이전트에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 다른 프레임에 기초해서 각각의 독립적인 그래프를 유지한다.
일 실시예에서, 하나 이상의 처리 장치는: 프레임을 사용하여 초기 그래프를 생성하고; 그리고, 추가 노드 또는 에지를 생성 및 그래프 내의 에지를 정제(refine) 중 적어도 하나에 의해 추가 프레임과 다른 프레임들을 이용하여 그래프를 업데이트하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 에이전트에 의해 이동된 궤적을 사용하여 적어도 부분적으로 그래프를 결정하도록 구성된다.
일 실시예에서, 각각의 에이전트에 의해 생성된 그래프는 에이전트에 의해 이동된 국소적으로(locally) 정확한 궤적에 기초하고, 다른 에이전트에 의해 생성된 그래프와 전역적으로(globally) 일치한다.
일 실시예에서, 하나 이상의 처리 장치는, 하나 이상의 관성 위치 센서 그리고 범위 센서의 신호를 사용하는 것 중 적어도 하나를 사용하여 궤적을 결정하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 궤적을 사용하여 적어도 부분적으로 노드를 상호 연결하는 에지를 계산하도록 구성된다. 제1항 내지 제7항 중 어느 한 항에 따른 시스템에서, 하나 이상의 처리 장치는 상기 매핑 데이터를 분할함으로써 상기 프레임을 생성하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 매핑 데이터의 캡처 시간, 매핑 데이터의 캡처 기간, 매핑 데이터를 캡처하는 동안 이동된 거리, 매핑 데이터를 캡처하는 동안 이동된 회전, 및 매핑 데이터의 범위 중 적어도 하나에 기초해서 프레임을 생성하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 에이전트에 의해 이동된 궤적을 분할하고, 그리고 궤적 분할을 사용하여 프레임을 생성하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 프레임을 분석하고, 및 분석 결과를 기반으로 노드를 생성하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 다수의 부모 노드를 생성하고 - 각각의 부모 노드는 환경의 상이한 부분을 나타냄 -, 및 다수의 자식 노드를 생성 - 각각의 자식 노드는 부모 노드와 연관되고 관련된 부모 노드에 의해 나타내는 환경의 일부와 동일하거나 오버랩되는 환경의 일부를 나타냄 - 하도록 구성된다.
일 실시예에서, 자식 노드는 고정된 기하학적 변환을 통해 부모 노드에 관련된다.
일 실시예에서, 하나 이상의 처리 장치는, 노드와 관련된 프레임 사이의 오버랩 정도 및 노드와 관련된 프레임의 캡처 사이의 이동 정도 중 적어도 하나에 기초해서, 부모 노드와 자식 노드들을 식별하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 부모 노드 사이에서 연장되는 에지를 계산하여 그래프를 생성하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 노드 사이에 에지를 생성하고, 그리고 에지가 자식 노드에 연결되어 있으면 자식 노드와 관련된 부모 노드에 에지를 전파한다.
일 실시예에서, 하나 이상의 처리 장치는 자식 노드와 부모 노드 사이의 기하학적 변환을 사용하여 에지를 전파하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 노드 사이의 에지를 계산하고, 그리고 반복 최적화 프로세스를 사용하여 에지를 정제하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 국소 드리프트 접근법; 루프 폐쇄; 및 장소 인식 중 적어도 하나를 사용하여 에지를 계산하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 노드들 사이의 공간적 오프셋을 계산하기 위해 에이전트에 의해 이동된 궤적을 사용함으로써 에지를 계산하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 정렬 프로세스를 사용하여 상이한 노드의 프레임을 정렬하고; 및 정렬을 사용하여 에지를 계산함으로써, 에지를 계산하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 반복적인 최근접 포인트 알고리즘을 사용하여 정렬 프로세스를 수행하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 매칭 프로세스를 사용하여 잠재적 매칭 노드를 식별하고, 잠재적인 매칭 노드를 사용하여 루프 폐쇄 및 장소 인식 중 적어도 하나를 수행하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 노드를 하나 이상의 다른 노드와 비교하고, 그리고 상기 비교 결과에 기반하여 상기 노드와 상기 하나 이상의 다른 노드 사이의 유사도를 나타내는 순위를 생성함으로써, 매칭 프로세스를 수행하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 노드에 대한 서명을 계산하고 - 서명은 노드와 관련된 프레임의 하나 이상의 특징에 기초함 - ; 및 서명을 다른 노드의 다른 서명과 비교함으로써, 노드를 하나 이상의 다른 노드와 비교하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 노드와 관련된 프레임의 저차원 표현을 사용하여 노드에 대한 서명을 유도하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 노드가 환경의 상이한 부분을 나타내고, 부모 노드 또는 자식 노드로 지정될 수 있는지를 결정; 그래프 토폴로지를 생성; 하나 이상의 에지를 생성; 루프 폐쇄를 수행; 및 장소 인식을 수행 중 적어도 하나에 순위를 사용하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 매칭 프로세스의 결과를 사용하여 하나 이상의 후보 그래프 토폴로지를 생성하고, 그래프 토폴로지와 관련된 노드 사이의 오버랩에 기반하여 적어도 하나의 후보 그래프 토폴로지를 검증하고, 그리고 검증된 그래프 토폴로지에 따라 하나 이상의 에지를 계산하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는: 하나 이상의 새로운 프레임을 나타내는 프레임 데이터를 획득하고; 각각의 새로운 프레임에 대응하는 후보 노드를 생성하고; 에이전트가 이동한 궤적, 정렬 프로세스, 및 매칭 프로세스 중 적어도 하나를 사용하여 후보 노드를 계산하고; 후보 노드에 기반하여 하나 이상의 노드를 추가하고; 그리고 후보 에지에 기반하여 하나 이상의 에지를 추가하거나 업데이트하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는, 추가된 노드, 추가된 에지, 및 업데이트된 에지 중 적어도 하나를 포함하는 그래프 내의 변화를 식별하고, 그래프의 변화를 평가하고, 그리고 평가 결과에 기반하여 그래프를 선택적으로 업데이트하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 그래프의 적어도 일부와 관련된 신뢰도 값을 계산하고, 그리고 신뢰도 값을 기반으로 그래프를 선택적으로 업데이트하도록 구성된다.
일 실시예에서, 노드가 새로운 노드이거나 새로운 에지에 근접한 경우, 하나 이상의 처리 장치는, 인접 노드 및 에지와 관련된 신뢰도 값을 평가하고; 신뢰도 값이 임계값을 초과하는 경우: 인접 노드 및 에지와의 정렬 매칭을 수행하고; 및 정렬 매칭의 결과에 기반하여 새로운 에지를 생성하고; 그리고 신뢰도 값이 임계값 이하이면 매칭을 수행하여 잠재적인 매칭 노드를 식별하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 그래프의 에지와 관련된 추정된 오차를 계산하고, 그리고 추정된 오차에 기반하여 신뢰도 값을 생성 및 추정 오차를 사용하여 그래프를 적어도 부분적으로 최적화하는 것 중 적어도 하나를 수행하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 추정 오차가 높은 에지를 식별하고, 그리고 그래프 예측을 사용하여 식별된 에지를 검증하여 최적화를 수행하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 그래프가 결과로 수렴할 때까지 최적화 접근법을 사용하여 그래프를 반복적으로 해결하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 에지 상의 최소 제곱 오차에 대해 최적화하는 에지 제약에 기반하여 그래프를 해결하고, 에지와 관련된 오차를 업데이트하고, 그리고 그래프가 수렴될 때까지 해결 단계 및 업데이트 단계를 반복하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 하나 이상의 다른 에이전트로부터 프레임 매니페스트를 획득하고 - 프레임 매니페스트는 하나 이상의 다른 에이전트에 사용 가능한 프레임을 나타냄 -; 그리고 프레임 매니페스트에 따라 하나 이상의 다른 에이전트로부터 프레임을 요청하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 하나 이상의 다른 에이전트로부터 매니페스트 요청을 수신하고, 그리고 매니페스트 요청에 응답하여 프레임 매니페스트를 제공하도록 구성된다.
일 실시예에서, 하나 이상의 처리 장치는 하나 이상의 다른 에이전트로부터 프레임 요청을 수신하고 - 프레임 요청은 하나 이상의 요청된 프레임을 나타냄 -, 그리고 프레임 요청에 응답하여 프레임 데이터를 제공하도록 구성된다.
일 실시예에서 프레임에 대한 프레임 데이터는, 프레임의 저차원 표현 및 프레임의 서펠 표현 중 적어도 하나이다.
일 실시예에서 에이전트는 자율 차량을 포함한다.
하나의 광범위한 형태에서, 본 발명의 한 양태는 환경 맵을 생성하기 위한 방법을 제공하고자 하며, 이 방법은 각 에이전트가 하나 이상의 처리 장치를 포함하는 복수의 에이전트에서: 범위 센서를 포함하는 매핑 시스템에 의해, 캡처된 매핑 데이터를 획득하는 단계 - 매핑 데이터는 환경의 3차원 표현을 나타냄 -; 매핑 데이터를 사용하여 환경의 일부를 나타내는 프레임을 생성하는 단계; 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하는 단계 - 다른 프레임 데이터는 하나 이상의 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 환경의 일부를 나타내는 다른 프레임을 표시함 -; 프레임 및 다른 프레임을 사용하여 노드를 생성하는 단계 - 각 노드는 환경의 각 부분을 나타냄 - ; 및 노드를 상호 연결하는 에지를 계산하는 단계 - 에지는 노드 사이의 공간적 오프셋을 나타냄 -에 의해 환경 맵을 나타내는 그래프를 생성하는 단계를 포함한다.
하나의 광범위한 형태에서, 본 발명의 한 양태는 환경 맵을 생성하기 위한 컴퓨터 프로그램 제품을 제공하는 것을 추구하며, 컴퓨터 프로그램 제품은 컴퓨터 실행 가능 코드를 포함하고, 복수의 에이전트에서 제공된 하나 이상의 적절하게 프로그래밍된 처리 장치에서 실행될 때, 하나 이상의 처리 장치로 하여금: 범위 센서를 포함하는 매핑 시스템에 의해 캡처된 매핑 데이터를 획득하고 - 매핑 데이터는 환경의 3차원 표현을 나타냄 - ; 매핑 데이터를 사용하여 환경의 일부를 나타내는 프레임을 생성하고; 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하고 - 다른 프레임 데이터는 하나 이상의 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 환경의 일부를 나타내는 다른 프레임을 표시함 - ; 그리고 프레임 및 다른 프레임을 사용하여 노드를 생성하고 - 각 노드는 환경의 각 부분을 나타냄 - 및 노드를 상호 연결하는 에지를 계산 - 에지는 노드 사이의 공간적 오프셋을 나타냄 - 하는 것에 의해 환경 맵을 나타내는 그래프를 생성하도록 구성된다.
본 발명의 광범위한 형태 및 그 각각의 특징은 함께 및/또는 독립적으로 사용될 수 있으며, 개별적인 광범위한 형태에 대한 언급은 제한하려는 의도가 아님을 이해할 것이다. 또한, 방법의 특징은 시스템 또는 장치를 사용하여 수행될 수 있고 시스템 또는 장치의 특징은 방법을 사용하여 구현될 수 있음을 이해할 것이다.
본 발명의 다양한 예 및 실시예가 이제 첨부된 도면을 참조하여 설명될 것이다:
도 1은 환경을 맵핑하기 위한 시스템 예의 개략도이다.
도 2는 환경을 맵핑하기 위한 방법 예의 흐름도이다.
도 3은 에이전트의 추가 예의 개략도이다.
도 4는 환경을 맵핑하기 위한 방법의 추가예의 흐름도이다.
도 5a 내지 도 5e는 예시적인 그래프의 최적화 예를 도시한 개략도이다.
도 6은 노드를 그래프에 추가하기 위한 방법 예에 대한 흐름도이다.
도 7a 내지 도 7d는 예시적인 그래프에 자식 노드를 추가하는 예시를 도시한 개략도이다.
도 8은 그래프 에지를 생성하는 방법예의 흐름도이다.
도 9는 다른 에이전트로부터 다른 프레임을 획득하는 방법 예에 대한 흐름도이다.
도 10a 내지 10c는 서로 다른 프레임 사이의 관계를 결정하기 위한 접근법의 예를 도시하는 개략도이다.
도 11은 상이한 프레임들 사이의 관계를 결정하기 위한 방법 예의 흐름도이다. 그리고,
도 12a 내지 12c는 환경 매핑 방법의 특정 예의 흐름도이다.
환경을 매핑하기 위한 시스템의 예가 이제 도 1을 참조하여 설명될 것이다.
이 예에서, 시스템(100)은 환경(E) 내에 복수의 에이전트(110)를 포함한다. 에이전트(110)의 특성 및 수는 환경(E)의 특성 및 특정 애플리케이션과 같은 인자의 범위에 따라 달라질 것이다. 예를 들어, 에이전트(110)는 자율 차량, 로봇, 무인 항공기(UAV) 등을 포함할 수 있지만, 개인(사람) 또는 차량이 휴대하는 매핑 시스템도 포함할 수 있다. 동일한 유형의 다수의 에이전트가 사용될 수 있는 반면, 다른 예에서는 상이한 유형의 에이전트의 조합을 사용할 수 있으므로, 예를 들어 공중 및 지상 기반 드론의 조합을 사용하는 것과 같이 다른 형태의 이동을 사용하여 환경의 상이한 부분을 이동하도록 수 있다. 환경(E)은 자연 환경일 수 있고, 야외 공간과 같이 개방적일 수 있거나, 동굴 시스템 또는 이와 유사한 것과 같이 닫힌 것일 수 있다. 환경(E)는 부가적으로 및/또는 대안적으로 빌딩, 지하 광산 등과 같은 구축된 환경, 또는 자연 환경과 구축된 환경의 조합일 수 있다.
에이전트(110)의 특성에 관계없이, 각 에이전트(110)는 일반적으로 라이다(LiDAR) 센서, 입체 비전 시스템 등과 같은 범위 센서를 포함하는 매핑 시스템(112)을 포함할 것이다. 추가로, 각각의 에이전트는 일반적으로 하나 이상의 처리 시스템의 일부를 형성하는 하나 이상의 전자 처리 장치(111)를 포함할 것이며, 이는 매핑 시스템(112)의 범위 센서로부터 신호를 수신하고 이를 사용하여 환경 맵을 생성하고, 및/또는 환경을 통해 에이전트의 탐색(navigation)을 제어한다. 하나의 특정 예에서 이것은 에이전트가 동시 위치탐색(localisation) 및 매핑을 수행하기 위해 SLAM 유형 알고리즘을 구현하도록 하는 것을 포함한다.
각각의 에이전트는 설명의 편의를 위해 하나 이상의 장치에 의해 처리가 수행되는 다수의 처리 장치를 사용할 수 있지만, 이하의 예는 단일 처리 장치를 언급할 것이다. 그럼에도 불구하고, 단일 처리 장치에 대한 언급은 처리가 적절하게 장치 사이에 분배된 복수의 처리 장치를 포함하는 것으로 이해되어야 하며 그 반대의 경우도 마찬가지이다. 또한, 처리 장치는 임의의 적합한 형태일 수 있고, 마이크로프로세서, 마이크로칩 프로세서, 논리 게이트 구성, FPGA(Field Programmable Gate Array)와 같은 구현 로직과 선택적으로 관련된 펌웨어, 또는 임의의 다른 전자 장치, 시스템 또는 장치를 포함할 수 있다.
에이전트는 또한 정보를 교환하기 위해 서로 통신하도록 구성되며, 이는 무선 점대점(point-to-point) 통신, 통신 네트워크를 통한 통신 등과 같은 임의의 적절한 통신 시스템을 사용하여 달성될 수 있다. 한 예에서, 이는 네트워크 내에서 각 에이전트를 각각의 노드로 사용하여 설정된 무선 메쉬 네트워크를 사용하여 달성될 수 있는데, 이는 필수적이지 않고 다른 접근법이 사용될 수 있다.
맵핑 프로세스의 예가 이제 도 2를 참조하여 더 상세히 설명될 것이다.
이 예에서, 단계 200에서 처리 장치(111)는 매핑 시스템(112)에 의해 캡처된 매핑 데이터를 획득한다. 매핑 데이터는 환경의 3차원 표현을 나타내며, 포인트 클라우드 또는 유사한 형태일 수 있다. 매핑 데이터는 매핑 시스템(112)으로부터 직접 수신되거나 메모리 등으로부터 검색될 수 있다. 매핑 데이터는 예를 들어 범위 센서에 의해 수집된 범위 정보를 처리하고 범위 정보를 포인트 클라우드 또는 다른 유사한 형식으로 변환하기 위해 필요에 따라 처리될 수 있다.
단계(210)에서, 처리 장치(111)는 매핑 데이터를 사용하여 환경의 일부를 나타내는 프레임을 생성한다. 개별 프레임은 전형적으로 매핑 데이터의 일부로부터 형성된 서브-맵을 나타내고, 정의된 시간 간격 동안, 정의된 에이전트 이동량 등에 걸쳐 수집된 매핑 데이터를 나타낼 수 있다.
단계(220)에서, 처리 장치(111)는 하나 이상의 다른 에이전트(110)로부터 다른 프레임 데이터를 수신한다. 다른 프레임 데이터는 환경(E)의 각각의 부분을 표시하는 다른 프레임을 나타내며, 이는 하나 이상의 다른 에이전트(110)의 매핑 시스템(112) 에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된다. 이는 각각의 에이전트(110)가 일반적으로 에이전트가 이동하고 있는 환경(E)의 하나 이상의 부분을 나타내는 프레임을 생성한 다음 이러한 프레임을 다른 에이전트에 전송하여 각 에이전트는 전체 환경 맵을 설정한다. 프레임은 주기적으로 전송될 수 있지만 보다 일반적으로 요청에 대한 응답으로 전송되어 이에 대해서는 아래에서 자세히 설명된 것처럼 전송 대역폭 요구 사항을 최소화한다.
일단 에이전트가 다수의 프레임을 가지면, 처리 장치(111)는 프레임을 사용하여 환경 맵을 나타내는 그래프를 생성한다. 이를 달성하기 위해, 단계(230)에서 처리 장치(111)는 프레임 및 다른 프레임을 사용하여 노드를 생성하며, 각 노드는 환경의 각 부분을 나타낸다. 이에 후속하여 또는 동시에, 처리 장치(111)는 또한 단계(240)에서 노드를 상호 연결하는 에지를 계산하는데, 에지는 노드 사이의 공간 오프셋을 나타낸다.
맵을 생성하는 프로세스는 전형적으로 예를 들어 매칭 기술을 사용하거나 환경 내에서 에이전트의 이동을 추적함으로써 환경의 고유한 부분에 대응하는 프레임을 식별하는 것을 포함한다. 그런 다음 프레임 정렬 수행 및/또는 에이전트 이동 추적과 같은 다양한 기술을 사용하여 이러한 노드 간의 공간 관계를 식별하여 에지가 생성된다.
따라서, 전술한 프로세스는 각각의 에이전트가 에이전트에 의해 국소적으로 획득된 프레임 및 다른 에이전트에 의해 원격에서 획득된 다른 프레임에 기반하여 환경 맵을 생성할 수 있게 한다. 이를 통해 각 에이전트는 에이전트가 이동한 환경의 일부를 포함하여 개별 맵을 생성할 수 있으며 다른 에이전트에서 받은 프레임을 기반으로 완료되는 환경의 다른 부분도 포함된다. 이 프로세스는 에이전트가 환경 내에서 이동함에 따라 계속될 수 있으므로, 각 에이전트가 환경의 일부만 이동하더라도 환경의 자체 맵을 점진적으로 설정하도록 하며 이 맵이 궁극적으로 전체 환경을 포함한다. 따라서 위의 접근 방식을 사용하면 각 에이전트가 전체 환경을 이동할 필요 없이 전체 환경을 매핑할 수 있다.
또한, 위의 접근 방식은 매핑 정확도를 개선하는 데 도움이 될 수 있다. 이와 관련하여 추가 프레임을 사용할 수 있게 되면 관련된 새 에지가 있는 새 노드로 그래프에 통합될 수 있다. 그런 다음 최적화 접근법은 이 추가 정보를 사용할 수 있으므로 더 많은 프레임이 추가될수록 결과 맵이 점점 더 정확해진다. 일 예에서, 이는 아래에서 더 자세히 설명되는 바와 같이 계산된 에지 내의 오차를 최소화하도록 구성된 반복 최적화 접근법을 사용하여 수행될 수 있다.
각 맵은 각 에이전트에 의해 독립적으로 구성되므로 각 맵이 다른 에이전트에 의해 생성된 맵과 비교하여 다를 수 있음을 의미한다. 특히, 한 에이전트에 의해 생성된 맵은 다른 에이전트에 의해 생성된 그래프와 전역적으로 일치하면서 해당 에이전트가 이동한 국소적으로 정확한 궤적을 기반으로 한다. 이를 통해 에이전트는 즉각적인 국소적인 환경 내에서 정확한 탐색을 위해 맵을 사용할 수 있으며 에이전트는 전체 환경 내에서 자신의 위치를 보다 광범위하게 이해할 수 있다. 에이전트가 이전에 이동하지 않은 환경의 일부로 이동할 때 전역 맵을 사용하여 경로를 설정할 수 있으며, 에이전트가 환경을 통해 이동할 때 에이전트 자신의 내부 맵이 최적화되어 해당 에이전트의 국소적인 궤적을 기반으로 하는 맵의 정확도가 높아진다.
상기로부터 이는 다수의 에이전트로부터의 데이터에 의존하여 환경 맵이 보다 신속하게 설정될 수 있게 하고, 맵이 예를 들어 단일 유형에 에이전트에 의해 이동될 수 없는 이질적인 지형을 커버할 수 있게 한다는 것을 알 것이다. 이는 다양한 지형 및/또는 장애물을 포함하는 이전에 매핑되지 않은 대규모 지역을 신속하게 검색해야 할 수 있는 수색 및 구조 시나리오와 같은 애플리케이션에서 특히 중요하다.
또한, 에이전트가 자신의 맵을 생성함으로써, 각 에이전트는 환경 내의 자신의 궤적 및 다른 프레임과의 관계를 고려하여 맵을 구성하는 프로세스를 최적화하여 구성하는 데 필요한 분석의 양을 최소화할 수 있고, 결과적으로 이는 확장 가능한 방식으로 실시간으로 구현될 수 있다. 이를 통해 기존 기술로는 달성할 수 없는 대규모 환경 내에서 실시간 방식으로 매핑 및 탐색이 가능한다.
다수의 추가 특징들이 이제 설명될 것이다.
전술한 바와 같이, 각각의 에이전트는 에이전트에 의해 캡처된 매핑 데이터를 사용하여 생성된 프레임뿐만 아니라 하나 이상의 다른 에이전트에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 다른 프레임에 기반하여 각각의 독립적인 그래프를 유지한다.
일 예에서, 처리 장치는 프레임을 사용하여 초기 그래프를 생성한 다음, 추가 프레임을 사용하여 그래프를 점진적으로 업데이트하고, 추가 노드를 생성 및/또는 그래프 내에서 에지를 추가 또는 정제함으로써 다른 프레임을 업데이트하도록 구성된다. 따라서 에이전트 또는 다른 에이전트가 추가 프레임을 획득하면 이러한 프레임을 맵에 통합하여 환경의 새로운 부분에 해당하는 새 노드 및 관련 에지를 추가하고 추가 데이터로 기존 에지를 정제하여 그래프의 최적화를 개선할 수 있다.
일 예에서, 처리 장치는 에이전트에 의해 이동된 궤적을 사용하여 적어도 부분적으로 그래프를 결정하도록 구성되며, 이는 각각의 에이전트에 의해 생성된 그래프가 국소적으로 정확한 궤적에 기초하도록 보장하는 것을 도울 수 있다. 이와 관련하여, 처리 장치는 일반적으로 내비게이션을 지원하기 위해 에이전트에 탑재된 하나 이상의 관성 위치 센서를 사용하여 궤적을 결정하도록 구성될 수 있고, 및/또는 예를 들어 SLAM 알고리즘 또는 이와 유사한 것을 사용하여 환경을 통한 움직임 추적과 같이, 범위 센서로부터의 신호를 사용하는 것을 포함할 수 있다. 그런 다음 에이전트가 이동하는 궤적에 대한 지식을 사용하여 그래프에서 노드를 상호 연결하는 에지를 계산할 수 있다. 예를 들어, 에이전트에 의해 캡처된 프레임을 기반으로 하는 두 노드에 대해, 처리 장치는 프레임 간의 공간 오프셋을 추정하기 위해 프레임 캡처 사이에 에이전트가 따라가는 궤적을 사용할 수 있으므로 에지를 생성할 수 있다.
부가적으로 및/또는 대안적으로, 에지는 상이한 프레임들 사이의 정렬을 조사함으로써, 예를 들어 상이한 노드의 프레임들에서 오버랩 사이의 기하학적 변환을 계산함으로써 생성될 수 있다. 한 예에서, 이러한 프로세스는 함께 수행되어 궤적이 공간 오프셋을 추정하고 두 노드 사이의 후보 에지를 생성하는 데 사용되며, 이는 두 노드 사이의 정렬을 사용하여 정제된다.
일 예에서, 처리 장치는 매핑 데이터를 분할함으로써 프레임을 생성하도록 구성된다. 매핑 데이터를 분할하는 프로세스는 에이전트의 특성 및 선호하는 구현과 같은 요소에 따라 여러 가지 방법 중 하나로 수행될 수 있다. 예를 들어, 분할은 매핑 데이터의 캡처 시간 또는 캡처 기간을 기반으로 수행될 수 있으며, 예를 들어 5초 간격 등을 기반으로 매핑 데이터를 분할할 수 있다. 부가적으로 및/또는 대안적으로, 분할은 매핑 데이터의 캡처 중에 이동된 거리 또는 회전에 기반하여 수행될 수 있는데, 예를 들어 이동된 5-10m마다 새로운 프레임을 생성하거나 30º 이상의 회전을 따르는 등이다. 분할은 매핑 데이터의 커버리지 등에 기반하여 수행될 수도 있다. 하나의 특정 예에서, 처리 장치는 에이전트에 의해 이동된 궤적을 분할한 다음 궤적 분할을 사용하여 프레임을 생성하도록 구성될 수 있다. 어쨌든 사용되는 특정 접근 방식은 환경의 특성 및/또는 에이전트의 특성에 따라 달라질 수 있으므로 빠르게 움직이는 에이전트가 더 자주 분할을 수행할 수 있다.
일단 프레임이 생성되면, 처리 장치는 프레임을 분석하고 분석 결과에 기반하여 노드를 생성하도록 구성될 수 있다. 노드는 임의의 적절한 형식일 수 있으며, 예를 들어 노드가 메모리 내 다른 곳에 저장된 프레임에 대한 포인터를 포함하도록 함으로써 각 프레임과 관련된 모든 데이터를 노드의 일부로 저장할 필요 없이 프레임을 나타내도록 일반적으로 사용된다.
각 노드는 일반적으로 각 프레임에 대해 생성된다. 그러나, 상당한 오버랩이 있고, 따라서 프레임 사이에 잔여(redundancy)가 있으므로, 정확한 맵을 생성하기 위해 모든 프레임이 필요한 것은 아니며, 따라서 처리 장치는 맵 생성 프로세스의 일부로 일부 프레임만 처리하도록 구성된다.
일례에서, 이것은 다른 프레임과 충분히 다른 프레임에 대한 노드를 생성함으로써 달성될 수 있으며, 따라서 맵의 생성에 의미 있는 방식으로 기여할 것이다. 보다 일반적으로 노드는 모든 프레임에 대해 생성되지만 노드 중 일부만 맵 최적화에 사용된다. 이것은 임의의 적절한 방식으로 달성될 수 있지만, 일 예에서 처리 장치는 노드를 분석하고 분석 결과를 사용하여 부모 및 자식 노드를 생성하도록 구성된다. 부모 노드는 환경의 상이한 부분을 나타내는 데 사용되는 반면, 자식 노드는 부모 노드와 연관되고 관련된 부모 노드가 나타내는 환경 부분과 동일하거나 상당히 겹치는 환경의 부분을 나타낸다. 따라서, 예를 들어 건물을 매핑할 때 서로 다른 방과 같은 각각의 서로 다른 영역에 대해 부모 노드가 생성될 수 있는 반면, 방 내에서 캡처된 서로 다른 시야에 해당하는 자식 노드가 생성된다. 이러한 방식으로 부모 노드와 자식 노드를 구분하면 부모 노드만 기반으로 최적화를 수행할 수 있다. 예를 들어 부모 노드 사이에서 확장되는 에지를 계산하여 그래프를 생성하면 맵을 구성하고 최적화하는 계산 복잡성을 크게 줄일 수 있다. 그럼에도 불구하고 하위 노드와 관련된 정보는 예를 들어 맵 내의 모호성을 해결하는 데 도움이 되도록 필요한 경우 유지 및 활용할 수 있다.
처리 장치는 바람직한 구현에 따라 다양한 접근 방식을 사용하여 자식 노드와 부모 노드를 구별하도록 구성될 수 있다. 예를 들어, 이것은 노드와 관련된 프레임 사이의 유사성 또는 오버랩 정도에 기초할 수 있거나, 노드와 관련된 프레임의 캡처 사이의 이동 정도에 기초할 수 있다.
일반적으로, 자식 노드는 예를 들어 부모 노드와 자식 노드 및 부모 노드가 캡처될 때 다른 관점에 기반하여 고정된 기하학적 변환을 통해 부모 노드와 관련된다. 이 경우, 맵을 구성할 때 처리 장치는 노드 사이에 에지를 생성하고 에지가 자식 노드에 연결되어 있으면 자식 노드와 관련된 부모 노드로 에지를 전파하도록 구성할 수 있다. 따라서 예를 들어 자식 노드와 다른 부모 노드의 캡처 사이에 에이전트의 궤적을 알고 있는 경우 자식 노드와 다른 부모 노드 사이에 에지를 설정하는 데 사용할 수 있다. 이 에지가 생성되면 자식 노드와 부모 노드 사이의 기하학적 변환을 사용하여 에지를 자식 노드의 부모 노드로 전파할 수 있으므로 부모 노드와 다른 부모 노드 사이에 에지가 생성된다.
맵을 생성할 때, 처리 장치는 일반적으로 노드 사이의 에지를 계산한 다음 반복 최적화 프로세스를 사용하여 에지를 정제하도록 구성된다. 이와 관련하여 에지가 처음 구성될 때 다양한 부정확성이 발생할 수 있다. 예를 들어, 궤적의 관성 감지를 기반으로 에지를 생성하는 경우 이는 센서 드리프트 또는 부정확성 등으로 인해 부정확할 수 있다. 그러나 그래프 내의 다수의 에지를 검사하고 상이한 노드 간의 정렬 또는 전체 그래프 토폴로지와 같은 그래프의 다른 측면을 살펴봄으로써, 이는 에지를 다시 계산하고 에지 내의 오차를 줄이는 데 사용할 수 있어, 이하에서 자세히 설명된 바와 같이 결과 그래프의 정확도를 증가시킬 수 있다.
처리 장치는 국소 드리프트 접근법, 루프 폐쇄 또는 장소 인식과 같은 다양한 기술을 사용하여 에지를 계산하도록 구성될 수 있다. 이와 관련하여 국소 드리프트 접근 방식은 일반적으로 에이전트가 이동하는 궤적 및/또는 노드 간 정렬을 검사하는 반면, 루프 폐쇄 및 장소 인식은 일반적으로 정렬 프로세스를 사용하여 맵 내 노드의 유사성을 기반으로 매칭을 사용하여 에지를 생성한다. 그러나 루프 폐쇄는 검색할 반경이 더 크지만 국소 드리프트 접근 방식과 동일한 방식으로 감지될 수도 있다.
따라서, 국소 드리프트 접근법을 수행할 때, 처리 장치는 노드들 사이의 공간적 오프셋을 계산하기 위해 에이전트에 의해 이동된 궤적을 사용함으로써 에지를 계산하도록 구성될 수 있다. 그 후 정렬 프로세스를 사용하여 서로 다른 노드의 프레임을 정렬한 다음 정렬을 사용하여 에지를 계산할 수 있다. 따라서, 궤적은 잠재적인 공간 오프셋을 식별하기 위한 제1 패스로 사용되며, 이는 예를 들어 반복적인 가장 가까운 포인트 알고리즘 또는 다른 적절한 접근법을 사용하여 다른 노드와 관련된 프레임의 정렬을 기반으로 정제된다. 이러한 방식으로 궤적을 사용하는 것은 정렬 프로세스를 제한할 수 있으며, 이는 덜 계산소모적인 방식으로 수행될 수 있지만 이것이 필수적인 것은 아니며, 대안적으로 정렬은 궤적을 사용하여 단독으로 수행되거나, 또는 예를 들어 궤적을 사용할 수 없거나 신뢰할 수 없는 것으로 간주되는 경우 궤적을 고려하지 않고 수행될 수 있다. 상기 프로세스는 상위 노드를 사용하여 수행하거나 하나 이상의 하위 노드를 사용할 수 있으며, 결과적인 에지는 필요에 따라 상위 노드로 전파된다.
대안적으로, 궤적이 이용가능하지 않고, 및/또는 정렬이 수행될 수 없는 경우에, 처리 장치는 매칭 프로세스를 사용하여 잠재적인 매칭 노드를 식별한 다음 잠재적인 매칭 노드를 사용하여 루프 폐쇄 및/또는 또는 장소 인식을 수행한다. 예를 들어, 그래프 내의 두 노드가 매칭되는 경우, 이는 그래프 내에 존재하는 루프를 나타낼 수 있다.
처리 장치는 일반적으로 노드를 하나 이상의 다른 노드와 비교함으로써 매칭 프로세스를 수행하도록 구성된다. 일반적으로 이 비교 프로세스는 일반적으로 프레임의 서펠 표현과 같은 프레임의 저차원 표현을 사용하여 노드와 관련된 프레임에서 파생된 서명을 사용하여 수행된다. 이 예에서 처리 장치는 일반적으로 프레임의 하나 이상의 기능을 기반으로 노드에 대한 서명을 계산한 다음 서명을 다른 노드의 다른 서명과 비교한다. 서명은 정의된 특징 세트를 기반으로 하는 벡터의 형태일 수 있으며, 벡터 공간에서 가장 가까운 이웃 분석을 사용하여 비교를 수행할 수 있지만 다른 접근 방식을 사용할 수 있음을 알 수 있다. 이와 관련하여 최초 노드 생성시 서명을 생성하여 저장할 수 있으므로 그래프 내의 기존 노드별로 서명이 저장되어 새로운 노드가 추가됨에 따라 이 과정을 빠르게 수행할 수 있다.
비교 프로세스의 결과는 순위를 생성하는 데 사용될 수 있다. 순위는 노드와 하나 이상의 다른 노드 간의 유사성 정도를 나타내므로, 비교 노드가 동일하거나 겹치는 노드일 가능성을 나타내는 데 사용할 수 있다. 이를 통해 예를 들어 잠재적 매칭 노드를 식별, 노드가 환경의 상이한 부분을 나타내고 부모 노드 또는 자식 노드로 지정될 수 있는지를 결정, 그래프 토폴로지를 생성, 하나 이상의 에지를 생성, 루프 폐쇄 또는 장소 인식 등을 수행하기 위해, 순위가 사용되도록 한다.
일 예에서, 처리 장치는 매칭 프로세스의 결과를 사용하여 하나 이상의 후보 그래프 토폴로지를 생성하도록 구성된다. 예를 들어, 이것은 서로 다른 잠재적인 노드 공간 배열을 기반으로 다수의 서로 다른 후보 에지를 생성하는 데 사용할 수 있다. 이에 따라, 처리 장치는 그래프 토폴로지와 관련된 노드 사이의 오버랩에 기반하여 적어도 하나의 후보 그래프 토폴로지를 검증하고 검증된 그래프 토폴로지에 따라 하나 이상의 에지를 계산한다. 따라서, 사실상 처리 장치는 잠재적인 그래프 토폴로지의 다수의 가설을 생성하여 가설에 맞는 충분한 노드가 생성되고 분석되었을 때 가설 중 하나를 검증한다.
전술한 프로세스는 모든 노드가 식별되었을 때 수행될 수 있지만, 보다 일반적으로 추가 프레임이 캡처되고 및/또는 다른 에이전트로부터 수신됨에 따라 점진적으로 그래프가 생성된다.
이 경우, 처리 장치는 하나 이상의 새로운 프레임을 나타내는 프레임 데이터를 획득하고 각각의 새로운 프레임에 대응하는 후보 노드를 생성하도록 구성된다. 그런 다음 처리 장치는 사용 가능한 데이터에 따라 프레임을 캡처한 에이전트가 이동한 궤적, 정렬 프로세스 및/또는 매칭 프로세스를 사용하는 것과 같은 적절한 접근 방식을 사용하여 후보 에지 계산을 시도한다. 따라서, 그래프의 기존 노드에 대한 궤적을 사용할 수 없거나, 및/또는 정렬을 수행할 수 없는 경우 노드가 그래프에 통합되어야 하는 위치를 식별하기 위해 매칭 프로세스가 사용될 수 있다. 예를 들어 발생할 수 있는, 프레임이 환경의 다른 부분에 있는 다른 에이전트로부터 받은 제1 프레임인 경우와 같이, 프레임이 매칭되거나 추가될 수 없는 경우 적절한 시기에 추가 분석을 위해 이를 유지해야 할 수 있다. 그렇지 않으면, 처리 장치는 후보 노드에 기반하여 하나 이상의 노드를 추가하고, 및/또는 후보 에지에 기반하여 하나 이상의 에지를 추가하거나 업데이트함으로써 그래프를 업데이트할 수 있다.
일단 노드 및/또는 에지가 추가되면, 처리 장치는 추가된 노드, 추가된 에지 또는 업데이트된 에지와 같은 그래프의 변화를 식별할 수 있으며, 그런 다음 그래프 내의 이러한 변화를 평가할 수 있다. 이는 변화의 가능한 오차를 평가하는 데 사용할 수 있으므로 처리 장치가 평가 결과에 따라 그래프를 선택적으로 업데이트할 수 있다. 따라서 노드와 에지가 추가되거나 수정되면 변경 사항이 정확한지 확인하기 위해 변경 사항이 평가되며, 그렇지 않은 경우 원하는 정확도 수준에 도달할 때까지 최적화 접근 방식을 사용하여 그래프의 일부를 수정할 수 있다. 일례에서, 이는 일반적으로 하나 이상의 에지와 관련된 추정된 오차에 기반하여 그래프의 적어도 일부 부분과 관련된 신뢰도 값을 계산한 다음 신뢰도 값에 기반하여 그래프를 선택적으로 업데이트함으로써 수행될 수 있다.
일 예에서, 노드가 새로운 노드이거나 새로운 에지에 근접한 경우, 처리 장치는 인접 노드 및 에지와 관련된 신뢰도 값을 평가한다. 신뢰도 값이 임계값을 초과하면 처리 장치는 인접 노드 및 에지와 정렬 매칭을 수행하고 정렬 매칭 결과를 기반으로 새로운 에지를 생성한다. 따라서 일반적으로 계산 비용이 많이 드는 정렬 매칭은 노드가 그래프에 정확하게 위치한다는 확실성이 높은 경우에만 수행되어 더 높은 정확도로 에지를 계산할 수 있다. 반면에, 신뢰도 값이 임계값 이하이면 처리 장치는 잠재적인 다른 매칭 노드를 식별하기 위해 매칭을 수행할 수 있고, 이는 장소 인식 및/또는 루프 폐쇄에 사용될 수 있다.
일 예에서, 처리 장치는 그래프의 에지와 관련된 추정된 오차를 계산한 다음 추정된 오차에 기반하여 신뢰도 값을 생성하고, 및/또는 추정된 오차를 적어도 부분적으로 사용하여 그래프를 최적화하도록 구성된다. 구체적으로, 처리 장치는 추정 오차가 높은 에지를 식별한 다음 그래프 예측을 사용하여 식별된 에지를 검증함으로써 최적화를 수행하도록 구성될 수 있다.
최적화는 그래프가 결과로 수렴할 때까지 최적화 접근법을 사용하여 그래프를 반복적으로 풀고, 특히 에지 상의 최소 제곱 오차를 최적화하는 에지 제약에 기반하여 그래프를 풀고, 에지와 관련된 에러를 업데이트하고, 그래프가 수렴될 때까지 해결 및 업데이트 단계를 반복함으로써 달성될 수 있다.
전술한 바와 같이, 각각의 에이전트는 다른 에이전트로부터의 프레임을 사용하여 그래프를 생성할 수 있다. 이를 달성하기 위해 에이전트는 필요에 따라 캡처된 프레임에 대한 정보를 교환할 수 있어야 한다. 에이전트는 캡처된 프레임을 브로드캐스트할 수 있지만, 에이전트는 제한된 시간에만 통신 범위에 있을 수 있으므로 이로 인해 프레임이 누락되고 대량의 대역폭이 필요할 수 있다.
따라서, 보다 일반적으로, 다른 에이전트의 처리 장치는 하나 이상의 다른 에이전트로부터 프레임 매니페스트를 획득하도록 구성되며 - 프레임 매니페스트는 하나 이상의 다른 에이전트가 사용할 수 있는 프레임을 표시함 -, 그 후 프레임 매니페스트에 따라 하나 이상의 다른 에이전트로부터 프레임을 요청한다. 이를 달성하기 위해, 각 처리 장치는 하나 이상의 다른 에이전트로부터 매니페스트 요청을 수신한 다음 매니페스트 요청에 대한 응답으로 프레임 매니페스트를 제공하도록 구성된다. 프레임 매니페스트에는 에이전트가 캡처한 프레임뿐만 아니라 에이전트가 다른 에이전트로부터 받은 프레임을 포함하여 에이전트가 소유하고 있는 모든 프레임의 표시가 포함된다. 이렇게 하면 각 에이전트가 생성되었지만 아직 수신하지 않은 임의의 프레임을 식별하기 위해 프레임 매니페스트를 사용하도록 함으로써, 에이전트는 필요에 따라 이러한 프레임을 요청할 수 있도록 한다.
이와 관련하여, 각 에이전트의 처리 장치는 하나 이상의 다른 에이전트로부터 프레임 요청을 수신하도록 구성되며, 프레임 요청은 하나 이상의 필요한 프레임을 나타내고 프레임 요청에 응답하여 프레임 데이터를 제공한다. 따라서, 프레임 요청은 해당 에이전트에 의해 캡처된 프레임 및/또는 에이전트가 소유하고 있는 다른 에이전트에 의해 캡처된 프레임에 대한 요청일 수 있다. 이를 통해 에이전트는 하나 이상의 중간 에이전트를 통해 직접 통신하지 않은 에이전트로부터 프레임을 수신할 수 있으므로 각 에이전트가 전역적으로 완전한 프레임 목록을 설정할 수 있다.
이전에 언급된 바와 같이, 일례에서, 에이전트는 자율 차량을 포함하고 예시적인 에이전트는 도 3에 보다 상세히 도시되어 있다.
이 예에서, 에이전트(310)는 환경의 3D 맵(예: 포인트 클라우드)를 구축하기 위해 차량 주변 환경의 스캔을 수행하도록 구성된 매핑 시스템(312)에 연결된 지상 차량과 같은 모바일 플랫폼에 탑재된 적어도 하나의 전자 처리 장치(311)를 포함한다. 한 예에서, 매핑 시스템은 벨로다인(Velodyne)에서 생산한 VLP-16 3D 라이다와 같은 3D 라이다 센서를 포함한다.
처리 장치(311)는 또한 IMU(관성 측정 유닛)와 같은 관성 감지 장치(313), 제어될 에이전트의 이동을 허용하는 제어 시스템(314) 및 하나 이상의 다른 센서(315)에 결합된다. 이는 예를 들어 환경의 포인트 클라우드 표현을 채색(colourising)하기 위한 목적으로 환경 이미지를 캡처할 수 있도록 추가 안전 제어 또는 이미징 장치 또는 이와 유사한 근접 센서를 포함할 수 있다.
처리 장치(311)는 또한 예를 들어 모바일 통신 네트워크, 4G 또는 5G 네트워크, WiFi 네트워크 또는 Bluetooth 등과 같은 직접 점-대-점 연결과 같은 하나 이상의 통신 네트워크를 통해 다른 에이전트와의 무선 통신을 허용하기 위해 무선 인터페이스와 같은 외부 인터페이스(316)에 연결될 수 있다. ,
전자 처리 장치(311)는 또한 메모리(317)에 결합되며, 메모리(317)는 필요한 프로세스가 수행되도록 처리 장치(311)에 의해 실행 가능한 응용 소프트웨어를 저장한다. 응용 소프트웨어는 하나 이상의 소프트웨어 모듈을 포함할 수 있으며, 운영 체제 환경 등과 같은 적절한 실행 환경에서 실행될 수 있다. 메모리(317)는 또한 필요에 따라 매핑 데이터 및 프레임 데이터를 저장할 수 있을 뿐만 아니라 임의의 생성된 맵을 저장할 수 있도록 구성될 수 있다. 메모리는 필요에 따라 휘발성 메모리, 비휘발성 메모리 또는 이들의 조합을 포함할 수 있음을 이해할 것이다.
다음 예의 목적을 위해 가정된 전술한 구성은 필수적인 것이 아니며 수많은 다른 구성이 사용될 수 있음을 이해할 것이다. 예를 들어, 이 경우 에이전트가 바퀴 달린 차량으로 표시되지만 이것이 필수적인 것은 아니며 UAV 등을 포함하는 다양한 에이전트가 사용될 수 있음을 알 수 있다.
환경 맵을 나타내는 그래프를 생성하기 위한 예시적인 프로세스가 이제 도 4를 참조하여 설명될 것이다.
이 예에서, 단계(400)에서 에이전트(310)는 온보드 매핑 시스템(312) 및 관성 센서(313)를 사용하여 매핑 및 궤적 데이터를 획득한다. 단계(410)에서, 처리 장치(3100)은 이동된 시간 또는 거리를 기반으로 궤적을 분할하고, 이를 사용하여 단계(420)에서 다수의 프레임을 생성하는데, 각 프레임은 환경의 각 부분의 고정 관찰을 나타내고 궤적의 각 분할에 대해 캡처된 매핑 데이터에 기초한다.
단계(430)에서, 처리 장치는 선택적으로 하나 이상의 다른 에이전트(310)로부터 하나 이상의 다른 프레임을 수신하며, 프레임 및 다른 프레임은 메모리(317)에 프레임 데이터로서 저장된다.
단계(440)에서, 처리 장치(311)는 각각의 프레임에 대응하는 노드를 생성하고, 일반적으로 노드의 고유성 정도에 따라 노드를 부모 또는 자식 노드로 식별한다. 그 후 처리 장치(311)는 단계(450)에서 노드, 특히 부모 노드를 상호 연결하는 에지를 생성하며, 일반적으로 가능한 경우 초기 에지를 식별하기 위해 궤적 데이터를 사용하고, 궤적 정보를 사용할 수 없는 경우 에지를 생성하는 데 매칭이 사용된다. 정렬 프로세스는 또한 노드 사이의 정렬을 설정하는 데 사용될 수 있으며, 이는 차례로 에지를 생성하는 데 사용될 수 있다.
단계(460)에서, 처리 장치(311)는 각각의 에지와 관련된 신뢰도 점수를 계산하는데, 신뢰도 점수는 각 에지에 대해 추정된 오차에 기초한다. 이와 관련하여 그래프가 구성됨에 따라 오차가 복잡해지기 때문에 궤적 원점 또는 루트 노드에서 멀리 떨어진 오차가 루트 노드에 가까운 오차보다 크다. 신뢰 수준이 계산되면 이를 사용하여 최적화를 수행할 수 있고, 특히 전체 오차를 최소화하기 위해 에지를 다시 계산함으로써 신뢰 수준을 높일 수 있다. 이 프로세스는 일반적으로 그래프가 수렴되고 추가 개선 사항이 확인되지 않을 때까지 반복된다.
이에 따라, 추가 매핑 데이터 및/또는 다른 프레임이 이용 가능해지면 전역 맵이 점진적으로 구성될 수 있도록 필요에 따라 단계가 반복될 수 있음을 이해할 것이다.
이러한 방식으로 그래프를 생성하고 최적화하기 위한 프로세스의 예가 이제 도 5a 내지 5e를 참조하여 설명될 것이다. 이 예는 단순화된 2D 환경을 참조하여 설명되지만 포인트 클라우드 3D 환경 맵과 유사한 접근 방식을 사용할 수 있음을 알 수 있다.
이 예의 목적을 위해, 에이전트가 도 5b에 표시된 노드 A, B, C, D의 각각에 대응하는 4개의 프레임을 캡처하도록 하는 것을 포함하는 도 5a에 도시된 개념적 그래프에 대해 에이전트가 노드 A, B, C, D 사이의 궤적을 따른다고 가정한다. 프레임은 에이전트가 보는 세계의 고정된 지점을 나타내며 변경할 수 없으며 각각 공유 목적으로 사용되는 고유한 식별자를 가지고 있다.
에이전트가 환경을 이동할 때 초기 맵을 형성하는 프레임 사이의 주행거리 측정(odometry) 추정 에지를 생성하는 데 사용되는 궤적을 측정한다. 따라서 노드 A에서 노드 B까지의 에지가 구성될 수 있으며 이는 명명법 에지 AB로 참조된다. 이러한 주행거리 측정 에지만으로 전역적으로 최적화된 포즈(pose)는 대체로 에지의 단순한 연속(concatenation)과 동일하다. 교차하는 에지가 많을수록 오차가 누적됨에 따라 전역 오차가 커지지만 에지 자체는 예를 들어 원점으로 B가 있는 노드 A, B, C 의 세트가 국소적으로서 일치하기 때문에 단일 에지에 대해 국소적으로 일치한다.
원점 노드 A로부터 에지 AB, BC, CD를 사용하여 D의 현재 포즈를 얻는 예를 들면, 그래프는 도 5c에 도시된 바와 같이 나타날 수 있다. 여기서 원점 노드 A에서 멀어질수록 오차가 커지는 것을 알 수 있다.
예를 들어, 루프 폐쇄를 허용하기 위해 매칭이 수행된 결과 노드 A와 D 사이에 에지가 존재한다고 가정하면, 이는 오차를 감소시킬 수 있다. 구체적으로, 이 지점에서, 에지 AD는 루프 폐쇄를 통해 노드 A에서 노드 D로 직접 연결되는 형태이다. 이제 노드 A에서 노드 C로의 경로를 고려하면 도 5d와 같이 그래프가 나타난다. 이 예에서는 루프 폐쇄를 통해 생성된 매칭 에지 AD가 에지 BC보다 높은 신뢰도를 가지므로 에지 BC와 달리 에지 AD 및 DC를 사용하여 그래프를 생성한다.
추가적으로, 새로운 에지 AD는 최적화를 위해 사용될 수 있다. 예를 들어 이동된 에지 AB, BC, CD 이외의 추가 정보가 없는 경우 전역 솔루션을 제한하는 추가 정보가 없으므로 이러한 에지를 이동하는 것과 전역적으로 최적화된 포즈를 사용하는 것 사이에는 거의 차이가 없다. 그러나 새로운 에지 AD가 그래프에 통합되면, 이는 노드 A에서 노드 B, 노드 C, 노드 D로의 오차가 이제 최소 제곱 최적화와 같은 최적화 접근 방식을 사용하여 분포될 수 있음을 의미하며, 도 5e에 표시된 것과 유사한 그래프가 생성된다.
이 접근 방식은 전역적인 정확도를 제공하는 데 도움이 되도록 실시간으로 그래프 최적화를 수행하기 위해 궤적 기반 에지와 매칭을 통해 식별된 에지의 조합을 활용할 수 있음을 의미한다.
그래프에 노드를 추가하기 위한 예시적인 프로세스가 이제 도 6을 참조하여 설명될 것이다.
이 예에서, 단계(600)에서 처리 장치(311)는 매핑 데이터로부터 생성된 국소적으로 획득된 프레임 또는 다른 에이전트로부터 수신된 다른 프레임인 다음 프레임을 획득한다. 단계(610)에서, 처리 장치(311)는 프레임을 사용하여 노드를 생성하고, 노드는 노드와 관련된 프레임의 고유성을 결정하기 위해 단계(620)에서 평가된다. 고유성은 점유 그리드, 매칭 프로세스를 사용하거나 프레임이 환경의 다른 부분에서 이전 프레임과 캡처되는지 여부를 결정하기 위해 궤적을 평가하여 설정할 수 있다.
프레임 및 노드가 단계(630)에서 고유한 것으로 평가되면, 단계(640)에서 처리 장치(311)는 노드를 부모 노드로 통합한 다음 단계(650)에서 에지를 생성한다. 그러나, 만약 프레임이, 따라서 노드가 단계 (630)에서 고유하지 않은 것으로 평가되면, 단계(660)에서 처리 장치(311)는 에이전트 및/또는 정렬 프로세스에 의해 이동된 궤적을 사용하여 노드와 부모 노드 사이의 기하학적 변환을 계산하고, 단계(670)에서 노드를 자식 노드로서 통합한다. 그래프 에지에 노드가 추가되면, 단계(680)에서 자식 노드에서 부모 노드로 전파되어야 할 수 있다.
상기와 같은 프로세스는 그래프를 유지하고 최적화하기 위해 필요한 계산을 최소화하여 실시간으로 수행할 수 있도록 하기 위함이다. 특히 이것은 환경을 정확하게 기술하는 최소한의 프레임 세트를 포함하도록 그래프를 가지치는 방식으로 작동한다. 이 가지치기는 그래프를 파괴하지 않으며 두 개의 프레임을 자식 및 부모 노드로 포함하는 수퍼 세트로 프레임을 엄격하게 병합하여 자식 또는 부모 노드 자체가 이전에 병합되었을 수 있다는 점에 유의하여 가지치기된 프레임에서 향후 포즈 검색을 허용한다. 이 병합 전략을 수행함으로써, 이는 그래프에 추가 에지의 단순한 추가로 그래프가 보존되도록 한다. 프레임이 견고하게 병합되면 더 이상 최적화되지 않으며 부모 노드에 필요한 정보가 포함되어 있으므로 루프 폐쇄 등과 같은 여러 기능에 대해 고려되지 않는다.
그래프에서 자식 노드를 관리하는 프로세스의 예는 이제 도 7a 내지 7d를 참조하여 설명될 것이다.
이 예에서, 도 5a에 도시된 그래프로부터 시작하여, 노드 D와 밀접하게 관련된 추가 노드 E 및 F가 식별된다. 이 예에서, 노드 E 및 F는 맵에 기여하지 않으며 노드 D에 표시된 잉여 정보 대부분을 포함한다. 예를 들어 점유 그리드와 같은 간단한 휴리스틱을 사용하여 마지막 프레임을 확인함으로써, 새 프레임이 고유한지 확인할 수 있다. 이 경우 노드 E와 F는 고유하지 않으며 도 7b에 도시된 바와 같이 D로 견고하게 병합될 수 있다.
그래프에서의 그들의 위치가 전적으로 부모 노드 D의 위치에 의존하기 때문에, 노드 E 및 F는 더 이상 최적화의 일부가 아니며, 만약 필요하다면 그들의 전역적 포즈가 노드 E와 F를 노드 D와 관련시키는 강체 변환(rigid transformation)을 이용하여 회복될 수 있다.
에이전트가 노드 A를 향해 계속되면, 결국 에이전트가 마지막 프레임에 있는지, 따라서 자식 노드를 캡처하는지를 결정하는 데 사용되는 휴리스틱이 실패하고, 새 노드 G가 추가된 도 7c에 도시된 바와 같이 새 프레임이 생성될 것이다.
이때 최적화 상태에 노드 F가 존재하지 않아 그래프로 나타낼 수 없는 에지 FG가 존재한다. 이에 대한 해결책은 강체 변환 트리를 필요한 노드로 이동시켜 부모 노드 G로 에지를 전파하는 것이다. 그 결과 도 7d에 도시된 바와 같이 새로운 에지 DG가 생성된다. 이 에지는 새로운 에지 DG를 생성하여 F가 D에 병합되었다는 사실을 고려하여 에지 FG를 캡슐화하고 그래프가 분리되지 않도록 한다.
에지가 전파된 후, 새로운 노드 G는 잠재적인 루프 폐쇄(그래프 검색을 통해) 및 에지 이동(노드 D의 에지 확인을 통해)를 찾기 위해 이웃 노드에 대해 테스트된다. 노드 G와 A 사이에 에지가 있으면 원래 시작 위치로 돌아가는 것을 나타내는 새로운 에지 GA가 생성될 수 있다.
이것이 행해질 때, 에지를 병합하고 전파하는 것을 포함하는 상술한 동일한 최적화 프로세스가 수행될 수 있다. 이와 관련하여 이 시점에서 노드 D와 A 사이에는 루프 폐쇄 에지 GA와 주행 거리 측정 에지 DE, EF, FG라는 두 개의 경로가 있다. 최적화된 솔루션에서 파생된 신뢰도 측정은 사용할 최상의 에지를 결정하는 데 사용할 수 있으며 결국 일부 신뢰도가 누적된 후 이러한 에지를 병합하는 것도 가능하므로 다시 최적화 상태가 감소한다.
예를 들어, 에지 DA를 이동한 후 에이전트가 이제 A로 돌아왔다는 것을 검출할 수 있으며 여기에서 불필요한 전역 룩업(look-up)을 중지하는 에지 이동을를 찾기 위해 이웃 에지를 사용하여 프로세스가 계속된다. 이 프로세스는 최적화 그래프에 고유한 노드만 계속 추가할 수 있으며 탐색된 기하학적 공간과 공유 및 확장할 수 있도록 그래프를 작은 크기로 유지한다.
이제 에지 생성을 위한 프로세스의 예가 도 8을 참조하여 더 자세히 설명될 것이다.
이 예에서, 단계(800)에서 예를 들어 다음 프레임 또는 수신된 다른 프레임에 기반하여 노드가 선택되고, 이는 단계(810)에서 궤적이 존재하는지를 결정하기 위해 평가된다. 궤적이 존재하면, 단계(820)에서 처리 장치는 현재 노드의 캡처와 이전 노드 사이를 이동하는 궤적을 사용하여 에지를 계산할 수 있다.
궤적을 이용할 수 없는 경우, 단계(830)에서 서명이 생성되고 단계(840)에서 노드와 그래프의 기존 노드 사이의 매칭을 수행하는 데 사용된다. 매칭이 단계 (850)에서 식별되지 않으면 그래프 내의 노드 위치를 알 수 없으므로 단계(860)에서 나중의 처리를 위해 노드를 유지할 수 있다. 그렇지 않으면 단계(870)에서 처리 장치(311)는 매칭 노드의 상대적 위치를 확인하기 위해 정렬 프로세스를 사용하여 정렬을 수행하고, 단계(880)에서 에지가 생성될 수 있다.
다른 에이전트로부터 다른 프레임을 획득하기 위한 프로세스의 예가 이제 도 9를 참조하여 설명될 것이다.
이 예에서, 단계(900)에서, 제1 에이전트의 처리 장치(311)는 다른 에이전트가 이용 가능한 프레임의 세부 사항을 요청하는 매니페스트 요청을 생성 및 전송한다. 매니페스트 요청은 예를 들어 브로드캐스트 메시지와 같이 주기적으로 전송될 수 있으므로 에이전트의 통신 범위 내에 있는 다른 에이전트에 의해 처리되거나 두 에이전트 간에 설정된 통신에 대한 응답으로 전송될 수 있다.
단계(910)에서 다른 에이전트(310)의 처리 장치(311)는 매니페스트 요청을 수신하고 사용 가능한 프레임 목록을 생성하여 단계(920)에서 이를 매니페스트로 제1 에이전트에 전송한다. 이것은 다른 에이전트가 캡처한 프레임뿐만 아니라 다른 에이전트가 다른 에이전트로부터 받은 프레임도 포함할 수 있다.
단계(930)에서 단계(950)에서 누락된 프레임에 대한 프레임 요청을 에이전트로 전송하기 전에 제 1에이전트의 처리장치(311)는 매니페스트를 수신하고 단계(940)에서 누락된 프레임을 식별한다. 다른 에이전트의 처리장치(311)는 단계(960)에서 프레임 요청을 수신하고 단계(970)에서 요청된 프레임에 해당하는 프레임 데이터를 전송함으로써 이에 응답하여 단계(980)에서 제1에이전트의 처리 장치에서 이를 수신할 수 있도록 한다.
전술한 접근법의 일부로서 수행되는 다수의 특정 프로세스가 이제 설명될 것이다.
이전에 언급한 바와 같이, 그래프는 일반적으로 환경을 표현하는 데 필요한 최소 노드 세트로 가지치기되며, 이에 따라 그래프 최적화의 계산 복잡성이 감소되어, 이는 성능 요구 사항이 충족되는 것을 보장하는 데 도움이 된다. 이는 충분히 고유하지 않은 노드를 자식 노드로 통합하여 고유한 부모 노드만 사용하여 최적화를 수행할 수 있도록 함으로써 달성된다. 몇 가지 요인에 따라, 이 작업의 복잡도가 크게 달라지며 주요 요인은 후보 에지의 신뢰 수준이다. 이는 인트라-프레임, 에지, 이웃, 루프 폐쇄 및 장소 인식을 포함하는 여러 수준의 이동 유형으로 나뉜다.
이동의 가장 간단한 형태는 에이전트가 현재 프레임에서 이동하지 않은 경우이다. 이것은 에이전트가 센서 범위에 대해 정지하거나 느리게 움직일 때 가장 일반적으로 관찰되는 단일 프레임 내의 이동이며 점유 오버랩 또는 특징 오버랩과 같은 단순한 기술을 사용하여 종종 감지된다. 여기에서 최대 오차는 이전 프레임의 국소적인 상태 추정이므로 손쉬운 확인 체크로 신뢰도가 매우 높다.
도 10a에 도시된 예에서, 둘 다 프레임 X 내에 있는 2개의 프레임 A, B가 식별된다. 프레임 A가 이미 프레임 X와 연관되어 있었다면, 이 기술을 사용하여 프레임 B는 프레임 X와 오버랩하는 것으로 검출될 것이다. 이를 통해 프레임 A 및 B와 연결된 노드를 부모 노드 X에 대한 자식 노드로 생성할 수 있다.
일단 에이전트가 프레임을 떠나면, 에이전트가 원래 프레임에서 원래 프레임에 대한 에지를 갖는 다른 프레임으로 이동할 때 발생하는 에지 이동을 사용하여 현재 프레임 상의 기존 에지를 확인할 수 있다. 여기서 최대 오차는 프레임을 떠난 후 국소적인 상태 추정오차이므로 신뢰도가 상당히 높아 쉽게 확인할 수 있다.
도 10b에 도시된 예는 XY로부터 이전에 존재하는 에지를 가로지르는 두 개의 프레임 A 및 B의 예이다. A가 이미 X와 연결되어 있는 경우 이 기술을 사용하여 프레임 B가 프레임 Y와 오버랩되는 것으로 검출될 것이다.
에지가 유효하지 않으면 검색은 인접 노드의 그래프 네트워크를 따라 확장될 수 있다. 이 예에서 매핑할 때 에이전트는 예를 들어 방에 들어갔다가 나올 때와 같이 적은 수의 프레임 후에 이전 위치로 돌아가는 경우가 많다. 이것이 유효한 프레임의 양은 주로 국소적인 상태 추정 신뢰도에 따라 달라지며 신뢰도가 높을수록 더 큰 이웃을 의미한다. N개의 가장 인접한 노드에 대한 그래프를 검색하면 오버랩이 있는지 식별하고 신뢰도(홉들의 수)에 따라 그에 따라 조치할 수 있다. 홉의 양이 적을수록 신뢰도가 높아진다.
도 10c의 예에서, 2개의 프레임 A 및 B는 각각 프레임 Z 및 W에 있지만, 현재 에지 WZ는 존재하지 않는다. 노드 W, X, V, Z의 체인은 노드 Z의 이웃을 나타내며 여기에는 이 기술에 의해 검출될 에지 WZ가 있다.
N이 충분히 크거나 신뢰도가 너무 낮아 실제 에지를 검출하기 위한 보다 진보된 기술이 필요한 경우 이웃 검색을 수행하는 것은 결국 실행 불가능해질 수 있다.
루프 폐쇄는 동일한 그래프에서 유효한 전역적 레퍼런스가 없어 신뢰도가 낮고 과도한 에지 홉 등으로 인해 불확실성이 큰 두 프레임 간의 오버랩을 검출하는 프로세스이다. 이러한 경우 단일 후보 에지는 종종 불확실성 범위 내에 있지만 전역적으로 일관성이 없을 수 있어, 이에 사용되는 솔루션은 에지의 양쪽을 벤치마크로 취급하고 두 원점에 대해 가장 인접한 노드의 이웃을 구축하는 것이다. 이렇게 하면 원점과 관련하여 자체적으로 정확한 두 개의 그래프가 생성되며, 원점에서 더 많은 에지 홉이 있을수록 신뢰도가 떨어진다. 이 시점에서 두 그래프 사이의 에지를 검사하면 일련의 에지와 관련 변환이 표시되며, 그런 다음 이들 사이에서 가장 공통적인 에지를 찾는 문제가 된다. 이 가장 공통적인 에지는 다음으로 가장 가능성이 높은 항목에 대한 최소 수 또는 비율과 같은 몇 가지 기준이 충족되는 경우 에지의 유효성을 검증하는 데 사용할 수 있는 가장 가능성이 높은 후보이다.
이 시점에서 루프-폐쇄는 여전히 후보 프레임으로부터 에지를 이동함으로써 그래프의 신뢰도 정보에 접근할 수 있고 이를 사용하여 많은 후보를 조기에 추려낼 수 있지만, 고립된 그래프가 주어지면 다른 접근법이 요구된다.
장소 인식은 서로 다른 그래프에서 프레임 간의 오버랩을 검출하는 프로세스로서, 이는 프레임 간에 연관성이 없으므로 신뢰도 측정도 없음을 의미한다. 이에 대한 초기 프로세스는 훨씬 더 큰 규모를 제외하고는 루프 폐쇄에 사용되는 프로세스와 대체로 유사하므로 이웃을 사용하는 대신 전체 그래프를 두 개의 원점으로 사용할 수 있다. 초기 추측 후, 그것은 의사 병합(pseudo merge)을 수행하고, 다음 더 많은 오버랩을 검출하기 위해 이전 기술을 사용하여 검증되고, 의사 병합이 높은 신뢰도를 생성하면 두 개를 동일한 그래프로 병합하고, 일반적인 방법을 앞으로 적용할 수 있다.
그래프에 대해 수행하기 위한 핵심 작업은 국소적으로 일관된 궤적으로부터 노드를 추가하는 것이다. 이러한 접근 방식을 사용하여 노드를 추가하는 프로세스 흐름의 예는 이제 도 11을 참조하여 설명된다.
이 예에서, 프레임은 단계(1100)에서 수신되고 이것이 단계(1105)에서 마지막 프레임 내에 있는지를 결정하기 위해 평가된다. 만약 그렇다면, 프레임은 단계(1110)에서 자식 노드로서 마지막 프레임에 병합된다. 그렇지 않으면, 단계 (1115)에서 이웃 에지가 이동되었는지를 결정하기 위해 평가되고, 만약 그렇다면, 프레임은 단계(1120)에서 이웃 프레임으로 병합된다. 그렇지 않으면, 단계(1125)에서 에이전트가 근처로 이동했는지를 결정하기 위해 평가된다. 만약 그렇다면, 프레임은 단계(1130)에서 가까운 프레임으로 병합된다. 그렇지 않으면, 단계(1135)에서 루프가 닫혔는지 결정하기 위해 평가되고 만약 그렇다면, 프레임은 단계(1140)에서 루프 프레임으로 병합된다. 단계(1145)에서 고립된 그래프가 연결되어 있는지를 결정하기 위해 평가되고, 그렇다면 프레임은 단계(1150)에서 그래프에 병합된다. 그렇지 않으면 추가 처리를 위해 노드가 유지된다.
에이전트가 환경을 이동함에 따라, 모두 다를 수 있는 국소적, 전역적 및 공유 맵 표현 간에 포즈를 표현하고 변환하는 것이 필요하게 된다.
국소적인 표현은 환경을 통한 에이전트의 궤적을 기반으로 한 주행거리 측정 추정치이다. 이것은 국소적으로 일관성이 있지만 시간이 지남에 따라 전역적으로 표류하는 경향이 있다. 이러한 유형의 복구에 대한 일반적인 요구 사항은 국소적인 단계에서 식별된 개체를 에이전트의 전역적 표현 또는 공유 표현으로 변환해야 한다는 것이다. 이 작업에는 해당 위치(또는 잠재적으로 보간 기술의 경우 더 많음)를 나타내는 프레임에서 가장 적절한 프레임을 찾고 필요한 공간에서 프레임의 위치를 복구하는 작업이 포함된다.
예를 들어, 부모 노드 A 및 B와 관련된 프레임 사이의 중간 시간에 프레임에서 캡처된 객체(O)가 주어지면, 객체(O)가 처음 위치될 때, 그것은 국소적인 추정 프레임에 있고 시간 및 포즈를 통한 프레임(국소적인 추정 프레임에서)에 연결된다. 시간이 지나면 그래프가 국소적인 프레임에서 분기된다(전역 수정 등). 새 위치를 해결하는 작업에는 해당 위치가 있는 프레임에 적용된 델타를 찾은 다음 이를 적용하여 원래 위치에 상대적인 새 위치로 변환하는 작업이 포함된다.
전역/공유 추정 프레임에서 위치를 지정할 때 이것은 국소적인 프레임을 사용하거나 이를 그래프의 노드에 첨부하여 달성할 수 있다.
첫 번째 경우는 서쪽으로 500보 걷고 북쪽으로 300보 걷는 것과 같다. 국소적인 추정은 시간이 지남에 따라 드리프트되므로 유효성을 유지하려면 빈번한 입력이 필요하므로 짧은 거리에서만 정확도를 달성할 수 있다. 현재 전역 프레임에서 에이전트의 국소적인 프레임으로 변환하는 것은 위에서 설명한 방법과 유사하지만 가장 최근 프레임만 고려하므로 에이전트가 현재 있다고 생각하는 위치를 기반으로 한다. 이 방법은 전역 맵과 관련하여 에이전트가 현재 어디에 있는지 아는 것 외에 작업을 수행하는 데 필요한 정보가 없다는 점에서 간단한다.
반대로, 개체를 그래프의 노드에 첨부하는 것은 매점의 냉장고까지 걸어가라고 말하는 것과 같다. 그래프에서 프레임 내의 위치에 대한 참조를 제공하며 에이전트가 요청된 프레임에 대해 알아야 함을 의미한다. 예를 들어 에이전트가 매점에 가본 적이 없는 경우 그래프의 관련 부분을 제공하거나 국소적인 표현으로 변환하여 에이전트와 관련된 위치를 에이전트에게 알려야 한다. 그런 다음 에이전트 자체는 이것이 자신에게 전역적으로 의미하는 위치를 확인할 수 있으며, 그에 도달하기 위해 단일 명령을 요청한다.
그래프에 프레임을 추가하는 전체 프로세스는 이제 도 12a 내지 12c를 참조하여 더 상세히 설명될 것이다.
이 예에서, 프레임은 단계(1200)에서 매핑 시스템(312)을 사용하여 수집된 매핑 데이터를 분할하거나 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하고, 이를 사용하여 노드를 생성함으로써 획득된다.
단계(1202)에서, 처리 장치(311)는 궤적 정보가 노드에 대해 이용 가능한지 여부를 평가하고, 그렇다면 단계(1204)에서 에지가 궤적에 기반하여 생성된다.
그렇지 않으면, 단계(1206)에서 처리 장치(311)는 프레임에 대한 서명을 생성한다. 이를 수행하기 위해, 처리 장치는 N 차원 벡터를 생성하기 위해 이것을 사용하여 삭스(saxes) 또는 서펠 표현과 같은 프레임의 저차원 표현으로부터 포인트 디스크립터(descriptor) 등과 같은 프레임에 대한 위치 및/또는 회전 특징을 생성한다. 단계(1208)에서, 처리 장치는 그래프 내에서 잠재적으로 매칭하는 프레임을 식별하기 위해 매칭을 수행하고 이를 사용하여 순위를 생성한다.
매칭 프로세스는 일반적으로 프레임과 동일하게 보이는 다른 노드를 반환하기 위해 가장 가까운 이웃 검색을 수행하는 처리 장치(311)와 함께 그래프 내의 기존 노드의 서명 데이터베이스 검색을 포함할 것이다. 매칭의 유사성 및 서명의 고유성은 매칭 사용 여부를 결정하며, 특히 노드 간의 유사성과 서명의 고유성을 고려하는 순위를 생성하는 데 사용된다. 예를 들어 매우 고유한 서명 간의 매칭은 더 높은 순위를 가지므로 고유하지 않은 매칭(인지적 엘리어싱(aliasing))보다 우선할 수 있다.
순위는 예를 들어 단계(1210)에서 잠재적인 루프 폐쇄 및/또는 장소 인식을 식별하기 위해 오버랩 가설을 유도하는 데 사용되며, 이 단계는 또한 오버랩 노드로 후보 에지를 생성하기 위한 정렬 프로세스를 포함한다.
단계(1212)에서, 생성된 에지 및/또는 순위를 사용하여 노드가 고유한지 여부에 대한 평가가 이루어진다. 여기에는 일반적으로 노드가 기존 노드 내에 있는지 평가하거나 그렇지 않으면 존재하지 않을 무언가를 맵에 추가하는 것이 포함된다. 그렇지 않은 경우, 단계(1214)에서 노드와 기존 노드 간의 기하학적 변환이 계산되며, 새 노드를 기존 노드와 병합함으로써 새 노드가 단계(1216)에서 자식 노드로서 그래프에 통합된다. 이것이 완료되면, 프로세스는 단계(1200)로 복귀하여 추가 프레임을 획득할 수 있다.
그렇지 않으면 노드가 충분히 고유한 경우 단계(1218)에서 부모 노드로 그래프에 추가된다.
그 다음, 단계(1220)에서 그래프 내의 에지에 대한 신뢰도 값이 결정된다. 신뢰도는 에지를 계산하는 방식과 원점으로부터의 거리에 따라 그래프를 통해 오차가 누적된다는 점을 고려하여 추정 오차를 기반으로 계산된다.
이에 따라, 그래프의 새롭고 업데이트된 부분, 예를 들어 새로운 노드 및 에지 또는 업데이트 에지가 단계(1222)에서 평가되어 이들이 신뢰도가 높거나 낮은 영역에 있는지를 결정한다. 새로운 노드 또는 에지가 신뢰도가 낮은 영역에 있는 경우, 예를 들어 단계(1210)에서 생성된 가설에 기반하여 단계(1224, 1226)에서 잠재적 오버랩이 식별되고 평가된다. 이것은 일반적으로 잠재적 오버랩을 분석하고 오버랩에 충분한 신뢰가 있는지, 또는 예를 들어 단계(1228)에서 루프 폐쇄 및/또는 장소 인식을 수행하는 것과 같이 오버랩을 검증하는 데 사용될 수 있는 충분한 수의 오버랩 샘플이 있는지 식별하는 것을 포함한다. 그렇지 않은 경우 노드는 단계(1230)에서 나중의 처리를 위해 유지된다.
그렇지 않으면, 오버랩이 생성되거나 에지가 그래프의 신뢰도가 높은 부분인 경우, 에지의 정확도를 향상시키기 위해 단계(1232)에서 위치 및/또는 회전 불변 특징을 사용하여 기존 노드와의 정렬이 수행되어, 단계(1234)에서 에지가 그래프에 통합되도록 한다.
그 다음, 단계(1236)에서, 처리 장치(311)는 최적화를 수행하는데, 이는 에지 상의 최소 제곱 오차를 최적화함으로써 그래프를 해결함으로써 달성된다. 에지와 관련된 신뢰도 값은 단계(1238)에서 업데이트되며, 신뢰도 값의 변화는 그래프가 단계 (1240)에서 최적 솔루션으로 수렴되었는지 확인하는 데 사용된다. 그렇지 않은 경우 수렴이 달성될 때까지 단계(1236 및 1238)가 반복된다. 이 시점에서 그래프 업데이트가 단계(1242)에서 완료되어 그래프가 전역 맵으로 사용될 수 있다.
상술한 단계 (1200 내지 1242)는 필요에 따라 반복될 수 있고, 추가 노드 및 에지가 추가될 수 있도록 하여 에이전트에 의해 추가 프레임이 캡처됨에 따라 글로벌 맵이 점진적으로 구성될 수 있음을 알 수 있을 것이다.
따라서, 전술한 접근 방식은 문제 크기를 줄이고 항상 전역적으로 일관된 맵을 유지하는 데 중점을 둔 포즈 그래프 최적화 기술을 제공한다. 임의의 단일 시점에서 맵에는 주어진 지점에서 고정된 세계관을 나타내는 숫자 프레임과 좌표 변환을 통해 이들을 연결하는 일련의 에지가 포함되어 있어, 국소적으로 일관성을 유지한다. 또한 각 프레임에는 전역 공간 쿼리뿐만 아니라 경로 계획에서 휴리스틱으로 사용할 수 있는 전역 프로젝션 및 공통 좌표 프레임을 허용하는 전역적으로 일관된 포즈가 있다.
문맥상 달리 요구되지 않는 한, 본 명세서 및 청구범위 전체에 걸쳐, "포함하다"라는 단어 및 "포함하다" 또는 "포함하는"과 같은 변형은 명시된 정수 또는 정수 그룹을 포함하는 것으로 이해될 것이다. 또는 단계이지만 다른 정수 또는 정수 그룹을 제외하지는 않는다. 본 명세서에 사용된 바와 같이 달리 명시되지 않는 한 "대략"이라는 용어는 ± 20%를 의미한다.
당업자는 수많은 변형 및 수정이 명백해질 것임을 인식할 것이다. 당업자에게 자명한 이러한 모든 변형 및 수정은 앞서 기술된 본 발명의 사상 및 범위 내에 속하는 것으로 간주되어야 한다.

Claims (43)

  1. 환경 맵을 생성하기 위한 시스템으로서, 상기 시스템은 각각의 에이전트가 하나 이상의 처리 장치를 포함하는 복수의 에이전트를 포함하고, 상기 하나 이상의 처리 장치는:
    a) 범위 센서를 포함하는 매핑 시스템에 의해 캡처된 매핑 데이터를 획득하고 - 상기 매핑 데이터는 환경의 3차원 표현을 나타냄 -;
    b) 상기 매핑 데이터를 사용하여 상기 환경의 일부를 나타내는 프레임을 생성하고;
    c) 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하고 - 상기 다른 프레임 데이터는 상기 하나 이상의 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 환경의 일부를 나타내는 다른 프레임을 표시함 -; 그리고,
    d) i) 상기 프레임 및 다른 프레임들을 사용하여 노드들을 생성하고 - 각 노드는 환경의 각 부분을 나타냄 -, 및
    ii) 상기 노드들을 상호 연결하는 에지를 계산 - 상기 에지는 상기 노드 사이의 공간적 오프셋을 나타냄 - 하는 것에 의해, 환경 맵을 나타내는 그래프를 생성하도록 구성된, 환경 맵을 생성하기 위한 시스템.
  2. 제1항에 있어서, 각각의 에이전트는,
    a) 상기 에이전트에 의해 캡처된 매핑 데이터를 사용하는 것을 기반으로 생성된 상기 프레임; 및
    b) 상기 하나 이상의 다른 에이전트에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 다른 프레임에 기반하여 각각의 독립적인 그래프를 유지하는, 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 프레임을 사용하여 초기 그래프를 생성하고; 그리고
    b) i) 추가 노드 또는 에지를 생성하고, 및
    ii) 그래프 내의 에지를 정제하는 것 중 적어도 하나에 의해 추가 프레임 및 다른 프레임을 사용하여 그래프를 업데이트하도록 구성된, 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는 상기 에이전트에 의해 이동된 궤적을 사용하여 상기 그래프를 적어도 부분적으로 결정하도록 구성된, 시스템.
  5. 제4항에 있어서, 각 에이전트에 의해 생성된 상기 그래프는 상기 에이전트에 의해 이동된 국소적으로 정확한 궤적에 기반하고, 다른 에이전트에 의해 생성된 그래프와 전역적으로 일치하는, 시스템.
  6. 제4항 또는 제5항에 있어서, 상기 하나 이상의 처리 장치는,
    a) 하나 이상의 관성 위치 센서; 및
    b) 상기 범위 센서의 신호 사용,
    중 적어도 하나를 사용하여 궤적을 결정하도록 구성된, 시스템.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는 상기 궤적을 사용하여 적어도 부분적으로 상기 노드를 상호 연결하는 에지를 계산하도록 구성된, 시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는 상기 매핑 데이터를 분할함으로써 상기 프레임을 생성하도록 구성된, 시스템.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 매핑 데이터의 캡처 시간;
    b) 상기 매핑 데이터의 캡처 기간;
    c) 상기 매핑 데이터를 캡처하는 동안 이동된 거리;
    d) 상기 매핑 데이터를 캡처하는 동안 이동된 회전; 및
    e) 상기 매핑 데이터의 범위,
    중 적어도 하나를 기반으로 프레임을 생성하도록 구성된, 시스템:
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 에이전트가 이동한 궤적을 분할하고; 및
    b) 궤적 분할을 사용하여 상기 프레임을 생성하도록 구성된, 시스템.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 프레임을 분석하고; 및
    b) 분석 결과에 따라 노드를 생성하도록 구성된, 시스템.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 다수의 부모 노드를 생성하고 - 각 부모 노드는 환경의 상이한 부분을 나타냄 - ; 및
    b) 다수의 자식 노드를 생성 - 각 자식 노드는 상기 부모 노드와 연관되고 관련된 상기 부모 노드가 나타내는 상기 환경의 일부와 동일하거나 겹치는 환경의 일부를 나타냄 - 하도록 구성된, 시스템.
  13. 제12항에 있어서, 상기 자식 노드는 고정된 기하학적 변환을 통해 상기 부모 노드와 관련된, 시스템.
  14. 제12항 또는 제13항에 있어서, 상기 하나 이상의 처리 장치는,
    a) 상기 노드와 관련된 프레임 간의 오버랩 정도; 및
    b) 상기 노드와 관련된 상기 프레임 캡처 간의 이동 정도,
    중 적어도 하나에 기반하여 자식 노드 및 부모 노드를 식별하도록 구성된, 시스템.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는 상기 그래프를 생성하기 위해 상기 부모 노드 사이에서 연장되는 에지를 계산하도록 구성된, 시스템.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 노드 사이에 에지를 생성하고; 및
    b) 에지가 자식 노드에 연결된 경우, 상기 에지를 상기 자식 노드와 관련된 상기 부모 노드로 전파하도록 구성된, 시스템.
  17. 제16항에 있어서, 상기 하나 이상의 처리 장치는 상기 자식 노드와 상기 부모 노드 사이의 기하학적 변환을 사용하여 상기 에지를 전파하도록 구성된, 시스템.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 노드 사이의 에지를 계산하고; 및
    b) 반복 최적화 프로세스를 사용하여 상기 에지를 정제하도록 구성된, 시스템.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 국소 드리프트 접근법;
    b) 루프 폐쇄; 및
    c) 장소 인식
    중 적어도 하나를 사용하여 에지를 계산하도록 구성된, 시스템.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는 상기 노드 사이의 공간적 오프셋을 계산하기 위해 상기 에이전트에 의해 이동된 궤적을 사용하여 에지를 계산하도록 구성된, 시스템.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 정렬 프로세스를 사용하여 상이한 노드의 프레임을 정렬하고; 및
    b) 상기 정렬을 사용하여 상기 에지를 계산함으로써,
    에지를 계산하도록 구성된, 시스템.
  22. 제21항에 있어서, 상기 하나 이상의 처리 장치는 반복적 최근접 포인트 알고리즘을 사용하여 상기 정렬 프로세스를 수행하도록 구성된, 시스템.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는,
    a) 매칭 프로세스를 사용하여 잠재적인 매칭 노드를 식별하고; 및
    b) 잠재적 매칭 노드를 사용하여:
    i) 루프 폐쇄; 및
    ii) 장소 인식 중 적어도 하나를 수행하도록 구성된, 시스템.
  24. 제23항에 있어서, 상기 하나 이상의 처리 장치는,
    a) 노드를 하나 이상의 다른 노드와 비교하고; 및
    b) 비교 결과에 기반하여 순위를 생성- 상기 순위는 상기 노드와 하나 이상의 다른 노드 사이의 유사성 정도를 나타냄 - 함으로써 상기 매칭 프로세스를 수행하도록 구성된, 시스템.
  25. 제24항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 노드에 대한 서명을 계산하고 - 상기 서명은 상기 노드와 관련된 상기 프레임의 하나 이상의 특징에 기반함 -; 및,
    b) 상기 서명을 다른 노드의 다른 서명과 비교함으로써, 상기 노드를 하나 이상의 다른 노드와 비교하도록 구성된, 시스템.
  26. 제25항에 있어서, 상기 하나 이상의 처리 장치는 상기 노드와 관련된 상기 프레임의 저차원 표현을 사용하여 노드에 대한 서명을 도출하도록 구성된, 시스템.
  27. 제24항 내지 제26항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 노드가 상기 환경의 다른 부분을 나타내고 부모 노드 또는 자식 노드로 지정될 수 있는지 결정하고;
    b) 그래프 토폴로지를 생성하고;
    c) 하나 이상의 에지를 생성하고;
    d) 루프 폐쇄를 수행하고; 그리고,
    e) 장소 인식을 수행하는 것
    중 적어도 하나에 상기 순위를 사용하도록 구성된, 시스템.
  28. 제23항 내지 제27항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 매칭 프로세스의 결과를 사용하여 하나 이상의 후보 그래프 토폴로지를 생성하고;
    b) 상기 그래프 토폴로지와 관련된 노드 사이의 오버랩에 기반하여 적어도 하나의 후보 그래프 토폴로지를 검증하고; 그리고,
    c) 검증된 상기 그래프 토폴로지에 따라 하나 이상의 에지를 계산,
    하도록 구성된, 시스템.
  29. 제1항 내지 제28항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 하나 이상의 새로운 프레임을 나타내는 프레임 데이터를 획득하고;
    b) 각각의 새로운 프레임에 대응하는 후보 노드를 생성하고;
    c) i) 에이전트가 이동한 궤적,
    ii) 정렬 프로세스; 및
    iii) 매칭 프로세스 중 적어도 하나를 사용하여 후보 에지를 계산하고; 그리고
    d) i) 상기 후보 노드를 기반으로 하나 이상의 노드를 추가하는 것; 및
    ii) 상기 후보 에지를 기반으로 하나 이상의 에지를 추가하거나 업데이트 것 중 적어도 하나에 의해 상기 그래프를 업데이트 하도록 구성된, 시스템.
  30. 제29항에 있어서, 상기 하나 이상의 처리 장치는:
    a) i) 추가된 노드;
    ii) 추가된 에지; 및
    iii) 업데이트된 에지 중 적어도 하나를 포함하여 상기 그래프의 변화를 식별하고,
    b) 상기 그래프의 변화를 평가하고; 그리고,
    c) 평가 결과에 따라 상기 그래프를 선택적으로 업데이트하도록 구성된, 시스템.
  31. 제1항 내지 제30항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 그래프의 적어도 일부와 관련된 신뢰도 값을 계산하고; 그리고,
    b) 상기 신뢰도 값을 기준으로 상기 그래프를 선택적으로 업데이트하도록 구성된, 시스템.
  32. 제31항에 있어서, 노드가 새로운 노드이거나 새로운 에지에 근접하면, 상기 하나 이상의 처리 장치는:
    a) 인접 노드 및 에지와 관련된 신뢰도 값을 평가하고; 및,
    b) 상기 신뢰도 값이 임계값을 초과하는 경우:
    i) 인접 노드 및 에지와 정렬 매칭을 수행하고; 및
    ii) 상기 정렬 매칭의 결과에 기반하여 새로운 에지를 생성하고; 그리고,
    c) 신뢰도 값이 임계값보다 작은 경우, 매칭을 수행하여 잠재적인 매칭 노드를 식별하도록 구성된, 시스템.
  33. 제1항 내지 제32항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 상기 그래프의 에지와 관련된 예상 오차를 계산하고; 그리고,
    b) i) 추정된 오차를 기반으로 신뢰도 값을 생성; 및
    ii) 상기 추정된 오차를 사용하여 적어도 부분적으로 상기 그래프를 최적화 중 적어도 하나를 수행하도록 구성된, 시스템.
  34. 제1항 내지 제33항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 추정 오차가 높은 에지를 식별하고; 그리고,
    b) 그래프 예측을 사용하여 상기 식별된 에지를 검증함으로써,
    최적화를 수행하도록 구성된, 시스템.
  35. 제1항 내지 제34항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는 상기 그래프가 결과로 수렴할 때까지 최적화 접근법을 사용하여 상기 그래프를 반복적으로 해결하도록 구성된, 시스템.
  36. 제35항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 에지의 최소 제곱 오차를 최적화하는 에지 제약 조건을 기반으로 상기 그래프를 해결하고;
    b) 상기 에지와 관련된 오차를 업데이트하고; 그리고,
    c) 상기 그래프가 수렴될 때까지 상기 해결 단계 및 상기 업데이트 단계를 반복하도록 구성된, 시스템.
  37. 제1항 내지 제36항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 하나 이상의 다른 에이전트로부터 프레임 매니페스트를 획득하고 - 상기 프레임 매니페스트는 하나 이상의 다른 에이전트에서 사용 가능한 프레임을 나타냄 - ; 그리고,
    b) 상기 프레임 매니페스트에 따라 상기 하나 이상의 다른 에이전트로부터 프레임을 요청하도록 구성된, 시스템.
  38. 제37항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 하나 이상의 다른 에이전트로부터 매니페스트 요청을 수신하고; 그리고,
    b) 상기 매니페스트 요청에 대한 응답으로 프레임 매니페스트를 제공하도록 구성된, 시스템.
  39. 제1항 내지 제38항 중 어느 한 항에 있어서, 상기 하나 이상의 처리 장치는:
    a) 하나 이상의 다른 에이전트로부터 프레임 요청을 수신하고 - 상기 프레임 요청은 하나 이상의 요청된 프레임을 나타냄 - ; 및
    b) 상기 프레임 요청에 대한 응답으로 프레임 데이터를 제공하도록 구성된, 시스템.
  40. 제1항 내지 제39항 중 어느 한 항에 있어서, 프레임에 대한 상기 프레임 데이터는:
    a) 상기 프레임의 저차원 표현; 및
    b) 상기 프레임의 서펠 표현 중 적어도 하나인, 시스템.
  41. 제1항 내지 제40항 중 어느 한 항에 있어서, 상기 에이전트는 자율 차량을 포함하는, 시스템.
  42. 환경 맵을 생성하기 위한 방법으로서, 각각의 에이전트가 하나 이상의 처리 장치를 포함하는 복수의 에이전트에서 상기 방법은:
    a) 범위 센서를 포함하는 매핑 시스템에 의해 캡처된 매핑 데이터를 획득하는 단계 - 상기 매핑 데이터는 상기 환경의 3차원 표현을 나타냄 -;
    b) 상기 매핑 데이터를 사용하여 상기 환경의 일부를 나타내는 프레임을 생성하는 단계;
    c) 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하는 단계 - 상기 다른 프레임 데이터는 상기 하나 이상의 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 상기 환경의 일부를 나타내는 다른 프레임을 표시함 -; 그리고,
    d) i) 상기 프레임 및 다른 프레임을 사용하여 노드를 생성하고 - 각 노드는 상기 환경의 각 부분을 나타냄 - ; 및
    ii) 상기 노드를 상호 연결하는 에지를 계산 - 상기 에지는 상기 노드 사이의 공간적 오프셋을 나타냄 - 함으로써 환경 맵을 나타내는 그래프 생성하는 단계를 포함하는, 방법.
  43. 환경 맵을 생성하기 위한 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 컴퓨터 실행가능 코드를 포함하고, 복수의 에이전트에 제공된 하나 이상의 적절하게 프로그래밍된 처리 장치에서 실행될 때 상기 하나 이상의 처리 장치로 하여금:
    a) 범위 센서를 포함하는 매핑 시스템에 의해 캡처된 매핑 데이터를 획득하고 - 상기 매핑 데이터는 상기 환경의 3차원 표현을 나타냄 - ;
    b) 상기 매핑 데이터를 사용하여 상기 환경의 일부를 나타내는 프레임을 생성하고;
    c) 하나 이상의 다른 에이전트로부터 다른 프레임 데이터를 수신하고 - 상기 다른 프레임 데이터는 하나 이상의 다른 에이전트의 매핑 시스템에 의해 캡처된 다른 매핑 데이터를 사용하여 생성된 환경의 일부를 나타내는 다른 프레임을 표시함 - ; 그리고
    d) i) 상기 프레임 및 다른 프레임을 사용하여 노드를 생성하고 - 각 노드는 환경의 각 부분을 나타냄 - ; 및,
    ii) 상기 노드를 상호 연결하는 에지를 계산 - 상기 에지는 노드 사이의 공간적 오프셋을 나타냄 - 하는 것에 의해 환경 맵을 나타내는 그래프를 생성하도록 하는, 컴퓨터 프로그램 제품.
KR1020237006819A 2020-08-25 2021-08-09 다중 에이전트 맵 생성 KR20230056690A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2020903029 2020-08-25
AU2020903029A AU2020903029A0 (en) 2020-08-25 Multi-agent map generation
PCT/AU2021/050871 WO2022040723A1 (en) 2020-08-25 2021-08-09 Multi-agent map generation

Publications (1)

Publication Number Publication Date
KR20230056690A true KR20230056690A (ko) 2023-04-27

Family

ID=80352211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237006819A KR20230056690A (ko) 2020-08-25 2021-08-09 다중 에이전트 맵 생성

Country Status (8)

Country Link
US (1) US11898869B2 (ko)
EP (1) EP4205084A1 (ko)
JP (1) JP2023538946A (ko)
KR (1) KR20230056690A (ko)
CN (1) CN115836325A (ko)
AU (1) AU2021273605B2 (ko)
CA (1) CA3184001A1 (ko)
WO (1) WO2022040723A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116630901B (zh) * 2023-07-24 2023-09-22 南京师范大学 一种基于潜在图预测无监督学习框架的视觉里程计方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075415B2 (en) * 2013-03-11 2015-07-07 Airphrame, Inc. Unmanned aerial vehicle and methods for controlling same
US9342888B2 (en) * 2014-02-08 2016-05-17 Honda Motor Co., Ltd. System and method for mapping, localization and pose correction of a vehicle based on images
US10788836B2 (en) * 2016-02-29 2020-09-29 AI Incorporated Obstacle recognition method for autonomous robots
US10209081B2 (en) * 2016-08-09 2019-02-19 Nauto, Inc. System and method for precision localization and mapping
GB201706129D0 (en) * 2017-04-18 2017-05-31 Blue Vision Labs Uk Ltd Distributed device mapping
US10948297B2 (en) * 2018-07-09 2021-03-16 Samsung Electronics Co., Ltd. Simultaneous location and mapping (SLAM) using dual event cameras
GB2576322B (en) 2018-08-13 2022-11-09 Imperial College Innovations Ltd Mapping object instances using video data
CN109559277B (zh) 2018-11-28 2023-02-28 中国人民解放军国防科技大学 一种面向数据共享的多无人机协同地图构建方法
US11657719B2 (en) * 2020-12-18 2023-05-23 Zoox, Inc. System for sparsely representing and storing geographic and map data

Also Published As

Publication number Publication date
AU2021273605A1 (en) 2022-03-17
CN115836325A (zh) 2023-03-21
WO2022040723A1 (en) 2022-03-03
EP4205084A1 (en) 2023-07-05
CA3184001A1 (en) 2022-03-03
US20230175860A1 (en) 2023-06-08
AU2021273605B2 (en) 2022-03-31
JP2023538946A (ja) 2023-09-12
US11898869B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
US10962370B2 (en) Laser scanner with real-time, online ego-motion estimation
Tang et al. Topological local-metric framework for mobile robots navigation: a long term perspective
Miettinen et al. Simultaneous localization and mapping for forest harvesters
Indelman et al. Incremental distributed inference from arbitrary poses and unknown data association: Using collaborating robots to establish a common reference
Valencia et al. Mapping, planning and exploration with Pose SLAM
Schleicher et al. Real-time hierarchical stereo Visual SLAM in large-scale environments
Choi et al. Hybrid map-based SLAM with Rao-Blackwellized particle filters
KR20230056690A (ko) 다중 에이전트 맵 생성
Wang et al. Robust exploration with multiple hypothesis data association
Hartmann et al. A unified visual graph-based approach to navigation for wheeled mobile robots
Huang et al. A real-time fast incremental SLAM method for indoor navigation
Xu et al. Humanoid robot localization based on hybrid map
Crocoll et al. Laser-aided navigation with loop closure capabilities for Micro Aerial Vehicles in indoor and urban environments
Bultmann et al. Multi-robot navigation and cooperative mapping in a circular topology
Liang et al. Simultaneous Localization and Mapping in a Hybrid Robot and Camera Network System
Burger et al. Map-Aware SLAM with Sparse Map Features
US20240027224A1 (en) Method for recognizing an erroneous map of an environment
Ryu et al. Local map-based exploration for mobile robots
Zou et al. Lmapping: tightly-coupled LiDAR-inertial odometry and mapping for degraded environments
Haggenmiller et al. The masked mapper: Masked metric mapping
Tamjidi et al. 6-DOF pose estimation of an autonomous car by visual feature correspondence and tracking
Hong et al. Large-Scale Radar Localization using Online Public Maps
Lluvia Hermosilla Contributions to autonomous robust navigation of mobile robots in industrial applications
Hermosilla Contributions to autonomous robust navigation of mobile robots in industrial applications
Jorge 3D Graph-Based SLAM Benchmark in Structured Environments and Loop Closure Detection