KR20190142360A - 환경 맵 생성 및 정렬을 위한 방법 및 시스템 - Google Patents

환경 맵 생성 및 정렬을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20190142360A
KR20190142360A KR1020197033980A KR20197033980A KR20190142360A KR 20190142360 A KR20190142360 A KR 20190142360A KR 1020197033980 A KR1020197033980 A KR 1020197033980A KR 20197033980 A KR20197033980 A KR 20197033980A KR 20190142360 A KR20190142360 A KR 20190142360A
Authority
KR
South Korea
Prior art keywords
sensor
map
markers
environment
pose
Prior art date
Application number
KR1020197033980A
Other languages
English (en)
Other versions
KR102342152B1 (ko
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 엑스 디벨롭먼트 엘엘씨
Publication of KR20190142360A publication Critical patent/KR20190142360A/ko
Application granted granted Critical
Publication of KR102342152B1 publication Critical patent/KR102342152B1/ko

Links

Images

Classifications

    • 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/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • 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
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F17/00Safety devices, e.g. for limiting or indicating lifting force
    • B66F17/003Safety devices, e.g. for limiting or indicating lifting force for fork-lift trucks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/063Automatically guided
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/075Constructional features or details
    • B66F9/0755Position control; Position detectors
    • 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/3807Creation or updating of map data characterised by the type of data
    • G01C21/383Indoor data
    • 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
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/16Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
    • 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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • G06T7/41Analysis of texture based on statistical description of texture
    • G06T7/44Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2201/00Application
    • G05D2201/02Control of position of land vehicles
    • G05D2201/0216Vehicle for transporting goods in a warehouse, factory or similar
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Abstract

컴퓨팅 시스템은 환경 내의 센서에 대해 위치된 다수의 마커의 위치들을 표시하는 센서 데이터를 수신하고 사용하여 센서의 포즈를 결정하고 또한 마커 위치들을 표시하는 맵을 생성한다. 컴퓨팅 시스템은 또한 센서로부터 환경 내의 표면들까지의 거리들을 표시하는 후속하는 센서 데이터는 물론 센서의 포즈를 수신하고 사용하여 환경 내의 표면들을 나타내는 점유 그리드 맵을 결정한다. 다음으로, 컴퓨팅 시스템은 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들과 관련시키는, 마커들의 맵과 환경의 설계 모델 사이의 변환을 결정하고, 복수의 마커의 맵과 설계 모델 간의 변환을 제공할 수 있다.

Description

환경 맵 생성 및 정렬을 위한 방법 및 시스템
본 출원은 2017년 4월 21일자로 출원된 미국 특허 출원 제15/494,341호의 우선권을 주장하며, 이 출원은 그 전체가 본 명세서에 참조로 포함된다.
제조사, 도매상, 및 운송 업체와 같은 상업 단체는 종종 원자재, 부품 또는 컴포넌트, 포장 재료, 및 완제품과 같은 아이템을 저장하기 위해 창고를 사용한다. 창고는 보다 용이한 접근 및 효율적인 처리를 허용하는 방식으로 팔레트들 및 다양한 아이템을 보유하는 다수의 팔레트를 저장하기 위한 팔레트 랙들의 사용을 통해 아이템들의 조직화를 가능하게 할 수 있다. 이와 같이, 창고는 다양한 타입의 팔레트를 사용할 수 있는데, 이러한 팔레트는 차량들 및 창고에서 작동하는 다른 장비에 의한 운송을 위한 아이템들을 보유하도록 구성된 평평한 운송 구조물들이다.
전통적으로, 인간 조작자들은 창고 내의 머신들, 차량들, 및 다른 장비를 작동시킬 수 있다. 예를 들어, 인간 조작자는 전달 영역과 보관소 사이에서 팔레트들을 들어 올리고 운송하기 위해 지게차를 내비게이팅(navigate)할 수 있다. 그러나, 센서들, 컴퓨팅 능력, 및 다른 기술들이 지속적으로 진보함에 따라, 회사들은 인간 조작자들에 의존하기보다는 창고들 내에서 동작들을 수행하기 위한 자율 및 반자율 차량들로 전환하고 있다.
예시적인 구현들은 맵 생성 및 정렬을 위한 방법들 및 시스템들에 관한 것이다. 예시적인 구현은 마커 위치들의 맵을 구축하기 위해 센서로부터의 환경 내에 배치된 마커들의 측정들을 사용하는 컴퓨팅 시스템을 포함할 수 있다. 컴퓨팅 시스템은 또한 환경 내의 표면들까지의 거리 측정들을 사용하여, 마커들의 맵을 환경의 설계 모델과 정렬시킬 수 있다.
일 양태에서, 예시적인 방법이 제공된다. 본 방법은 센서로부터, 환경 내의 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하는 단계, 및 제1 센서 데이터에 기초하여 복수의 마커의 맵 내의 센서의 포즈를 결정하는 단계를 포함할 수 있다. 본 방법은 센서로부터, 센서로부터 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하는 단계, 및 제2 센서 데이터 및 센서의 결정된 포즈에 기초하여 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하는 단계를 추가로 포함할 수 있다. 본 방법은 또한 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들에 관련시키는, 복수의 마커의 맵과 환경의 설계 모델 간의 변환을 결정하는 단계, 및 복수의 마커의 맵과 설계 모델 간의 변환을 제공하는 단계를 포함할 수 있다.
다른 양태에서, 예시적인 시스템이 제공된다. 시스템은 센서, 컴퓨팅 시스템, 비일시적 컴퓨터 판독가능 매체, 및 센서로부터, 환경 내의 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하고, 제1 센서 데이터에 기초하여 복수의 마커의 맵 내의 센서의 포즈를 결정하도록 컴퓨팅 시스템에 의해 실행가능하며 비일시적 컴퓨터 판독가능 매체 상에 저장되는 프로그램 명령어들을 포함할 수 있다. 비일시적 컴퓨터 판독가능 매체 상에 저장되는 프로그램 명령어들은 또한 컴퓨팅 시스템으로 하여금 센서 상의 센서로부터, 센서로부터 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하고, 제2 센서 데이터 및 센서의 결정된 포즈에 기초하여 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하게 할 수 있다. 비일시적 컴퓨터 판독가능 매체 상에 저장되는 프로그램 명령어들은 또한 컴퓨팅 시스템으로 하여금 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들에 관련시키는, 복수의 마커의 맵과 환경의 설계 모델 사이의 변환을 결정하고, 복수의 마커의 맵과 설계 모델 간의 변환을 제공하게 할 수 있다.
추가적인 양태에서, 비일시적 컴퓨터 판독가능 매체가 제공된다. 본 비일시적 컴퓨터 판독가능 매체는 컴퓨팅 시스템이 동작들을 수행할 수 있도록 컴퓨팅 시스템에 의해 실행가능한 명령어들을 그 내부에 저장한다. 본 동작들은 센서로부터, 환경 내의 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하는 단계, 및 제1 센서 데이터에 기초하여 복수의 마커의 맵 내의 센서의 포즈를 결정하는 단계를 포함할 수 있다. 본 동작들은 센서로부터, 센서로부터 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하는 단계, 및 제2 센서 데이터 및 센서의 결정된 포즈에 기초하여 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하는 단계를 추가로 포함할 수 있다. 본 동작들은 또한 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들에 관련시키는, 복수의 마커의 맵과 환경의 설계 모델 간의 변환을 결정하는 단계, 및 복수의 마커의 맵과 설계 모델 간의 변환을 제공하는 단계를 포함할 수 있다.
또 다른 양태에서, 시스템이 제공된다. 본 시스템은 맵 생성 및 정렬을 위한 수단을 포함할 수 있다. 특히, 본 시스템은 센서로부터, 환경 내의 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하기 위한 수단; 및 제1 센서 데이터에 기초하여 복수의 마커의 맵 내의 센서의 포즈를 결정하기 위한 수단을 포함할 수 있다. 본 시스템은 센서로부터, 센서로부터 환경 내의 표면까지의 거리를 나타내는 제2 센서 데이터를 수신하기 위한 수단; 및 제2 센서 데이터 및 센서의 결정된 포즈에 기초하여 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하기 위한 수단을 추가로 포함할 수 있다. 본 시스템은 또한 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들과 관련시키는, 복수의 마커의 맵과 환경의 설계 모델 간의 변환을 결정하기 위한 수단, 및 복수의 마커의 맵과 설계 모델 간의 변환을 제공하기 위한 수단을 포함할 수 있다.
이러한 그리고 다른 양태들, 장점들, 및 대안들은 첨부된 도면들을 적절히 참조하여, 다음의 상세한 설명을 읽음으로써 본 기술 분야의 통상의 기술자에게 명백해질 것이다.
도 1은 예시적인 실시예에 따른 시스템의 블록도이다.
도 2는 예시적인 실시예에 따라, 하나 이상의 창고를 작동시키기 위한 시스템을 도시한다.
도 3은 예시적인 실시예에 따른 시스템을 도시한다.
도 4는 예시적인 실시예에 따른, 하나 이상의 로봇 디바이스에 대한 로봇 디바이스 아키텍처를 도시한다.
도 5는 예시적인 실시예에 따른, 하나 이상의 로봇 디바이스에 대한 레이저 스캐너 아키텍처를 도시한다.
도 6은 예시적인 실시예에 따른, 공간을 사전-매핑하기 위한 디바이스를 도시한다.
도 7은 예시적인 실시예에 따라, 로봇이 환경 내에서 내비게이팅하는 것을 도시한다.
도 8은 예시적인 실시예에 따른, 매핑된 랜드마크들과 검출들을 연관시키는 로봇을 도시한다.
도 9는 예시적인 실시예에 따른, 로봇 제어 시스템의 모듈들을 도시하는 기능 블록도이다.
도 10은 맵 생성 및 정렬을 위한 예시적인 방법을 도시하는 흐름도이다.
도 11은 예시적인 구현들에 따른 점유 그리드 맵을 도시한다.
도 12a는 예시적인 실시예들에 따른, 마커 위치들의 맵과 설계 모델 사이의 변환 결정을 도시한다.
도 12b는 예시적인 실시예들에 따른, 도 12a에 도시된 설계 모델과 마커 위치들의 맵 사이의 정렬을 도시한다.
예시적인 방법들 및 시스템들이 본 명세서에 설명된다. "예(example)", "예시적인(exemplary)", 및 "예시적인(illustrative)"이라는 단어들은 본 명세서에서 "예, 사례, 또는 예시로서 제공"을 의미하기 위해 사용된다는 점을 이해해야 한다. "예(example)"인 것으로, "예시적인(exemplary)"인 것으로, 또는 "예시적인(illustrative)" 것으로 본 명세서에 설명된 임의의 구현 또는 특징은 반드시 다른 구현들 또는 특징들에 비해 바람직하거나 유리한 것으로 해석되지는 않는다.
본 명세서에 설명된 예시적인 구현들은 제한하려는 것이 아니다. 본 명세서에 전반적으로 설명되고 도면들에 도시된 바와 같이, 본 개시내용의 양태들이 본 명세서에서 명확하게 모두 고려되는, 매우 다양한 상이한 구성들로 배열, 치환, 조합, 분리 및 설계될 수 있다는 것을 용이하게 이해할 수 있을 것이다.
I. 개요
컴퓨팅 및 센서 능력의 진보는 창고 및 다른 타입의 환경 내에서 동작들을 수행하기 위한 로봇 디바이스들(로봇들)의 배치의 증가에 기여하는 데 도움이 되었다. 일부 동작이 고정 로봇들에 의해 수행될 수 있지만, 많은 작업은 종종 로봇이 다수의 위치 사이에서 성공적으로 내비게이팅하는 것을 요구한다. 따라서, 작업들을 완료하기 위해, 이동 로봇은 환경의 실질적인 이해를 요구할 수 있다.
실제로, 이동 로봇이 환경을 효과적으로 내비게이팅하기 위해 사용하기 위한 정보를 개발하기 위해 다양한 방법들이 사용될 수 있다. 특히, 이동 로봇은 그의 제어 시스템이 물리적 경계들 주위의 적절한 내비게이션 전략들을 결정하는 것을 가능하게 할 수 있는 공간의 하나 이상의 맵에 의존할 수 있다.
환경의 맵을 개발하기 위해, 예시적인 방법은 내비게이션 동안 로봇이 사용할 수 있는 다양한 랜드마크들의 위치들을 결정하기 위해 환경을 수동으로 조사하는 단계를 포함할 수 있다. 랜드마크들은 위치 및 배향 기준에 사용될 수 있는 환경에서의 검출가능한 특징들을 나타낸다. 예를 들어, 창고는 로봇들을 안내하는 것을 돕기 위해 특정 위치들에 위치된 역반사성 마커들(마커들) 또는 다른 인프라스트럭처를 포함할 수 있다. 로봇이 위치를 변경함에 따라 상이한 위치들 및 상이한 각도들로부터 재관찰될 수 있기 때문에 마커들 및 다른 가능한 랜드마크들이 유용하다. 예시의 목적으로, 마커들은 본 명세서에서 논의된 주요 랜드마크들로서 사용될 것이지만, 다른 타입의 랜드마크들도 예들 내에서 가능하다.
환경의 수동 조사는 로봇이 사용할 수 있는 마커들의 정확한 맵의 생성을 가능하게 할 수 있지만, 이 프로세스는 시간 소모적이고 로봇들의 배치를 지연시킬 수 있다. 또한, 본 방법은 공간의 물리적 특징들을 지정하는 설계 모델과 정렬된 마커 위치들의 맵을 생성하지 않을 수 있다. 본 방법은 또한 더 많은 마커들을 추가하지 않고 내비게이팅하기가 어렵다는 것을 증명하는 특정 영역들을 식별하기 위해 후속 테스트들을 요구할 수 있다.
매핑 프로세스의 속도를 높이고 실시간 사용자 피드백을 가능하게 하기 위해, 컴퓨팅 시스템은 센서가 환경 내의 상이한 위치들로부터의 측정들을 제공하는 동안 센서에 의해 제공되는 측정들을 사용하여 미지의 환경(예를 들어, 창고)의 맵을 구축하기 위해 SLAM(simultaneous localization and mapping) 프로세스를 수행할 수 있다. SLAM은 마커 검출, 데이터 연관, 포즈 추정, 및 포즈/마커 정제를 포함할 수 있고, 환경의 레이저 스캔들과 같은 다양한 센서 데이터를 사용하여 2차원(2D) 또는 3차원(3D)에서 수행될 수 있다. SLAM을 수행하는 동안, 컴퓨팅 시스템은 환경에 배치된 로봇들 및 다른 차량들(자율 또는 수동)에 의해 사용될 수 있는 검출된 마커들의 위치를 지정하는 맵을 개발할 수 있다.
일부 예시적인 실시예들에서, 컴퓨팅 시스템은 또한 물리적 특징들(예를 들어, 벽들, 계단들, 충전소들, 및 주차 장소들)의 구조 및 위치들을 지정하는 CAD 모델과 같은, 환경의 설계 모델과 마커 위치들의 부분적으로 완료된 맵을 정렬시키는 변환을 결정하면서 SLAM을 동시에 수행할 수 있다. 변환은 내비게이션 동안에 로봇 제어 시스템이 마커들과 물리적 특징들의 위치를 함께 정확하게 사용할 수 있도록 마커들의 맵을 설계 모델과 정렬시킬 수 있다. 컴퓨팅 시스템은 안전한 내비게이션을 가능하게 하기 위해 환경에 배치된 로봇들의 제어 시스템들에 대한 마커들의 변환, 설계 모델, 및 맵을 제공할 수 있다. 일부 경우들에서, 인간 조작자는 환경 내에서 차량을 내비게이팅할 때 결합된 정보를 사용할 수 있다.
예시적 실시예에서, 컴퓨팅 시스템은 검출된 마커들의 위치를 환경의 CAD 모델에서의 벽들 및 다른 인프라스트럭처와 정렬하기 위해 센서로부터의 거리 측정들을 사용할 수 있다. 예를 들어, 컴퓨팅 시스템은 제1 마커가 근처의 계단들에 위치되고 다른 마커가 센서에 의해 제공되는 거리 측정들에 기초하여 도어에 대해 벽 상에 위치되는 것으로 결정할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 주변 표면들의 인커밍 센서 측정들에 기초하여 환경 내의 대응하는 영역들을 나타내는 다수의 셀을 포함하는 점유 그리드 맵을 생성할 수 있다. 특히, 컴퓨팅 시스템은 센서의 POV(point-of-view)에 대응하는 좌표 프레임을 갖는 점유 그리드 맵을 개발할 수 있다. 점유 그리드 맵의 각각의 셀은 표현된 영역의 상태를 표시하는 할당된 상태를 가질 수 있다. 예를 들어, 셀은 장애물, 자유 공간, 또는 미지의 것을 포함할 수 있다. 점유 그리드 맵이 센서의 POV로부터의 센서 측정들을 사용하여 개발될 수 있기 때문에, 점유 그리드 맵은 센서 측정들에 기초하여 개발된 마커들의 맵과 동일한 좌표 프레임을 사용하여 결정될 수 있다. 그 결과, 컴퓨팅 시스템은 점유 그리드 맵과 CAD 모델 간의 에러를 최소화함으로써 마커의 맵을 CAD 모델과 정렬시킬 수 있다.
개발된 점유 그리드 맵과 환경을 나타내는 CAD 모델 간의 에러들을 최소화하기 위해, 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들과 관련시키는 변환이 사용될 수 있다. 예를 들어, 변환은 점유 그리드 맵의 셀들 또는 포인트들과 설계 모델로부터의 샘플링된 포인트들 사이의 에러들을 감소시키는 수평 평면의 회전 및 병진을 포함할 수 있다. 일부 예들에서, 컴퓨팅 시스템은 변환을 결정할 때 다양한 2D 회전 및 병진값들을 샘플링할 수 있다.
추가적인 예들에서, 컴퓨팅 시스템은 환경 내의 마커 위치들의 맵을 동시에 개발하면서도 또한 마커들의 맵을 설계 모델에 정렬시키는 변환을 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 환경 내의 마커 위치들의 맵을 설계 모델과 정렬하기 위해 환경을 통한 단일 런(single run)을 가능하게 하는 그래프-기반 SLAM 구현으로 변환 최적화를 구축할 수 있다. 사실상, 컴퓨팅 시스템은 상기 프로세스를 사용하여 로봇들이 SLAM의 단일 반복 후에 환경의 기존 CAD 모델을 활용할 수 있게 할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 SLAM(또는 유사한 프로세스)의 동작들을 수행하는 것과 마커 위치들의 개발된 맵을 설계 모델에 정렬시키는 변환을 업데이트하는 것 사이에서 교대할 수 있다. 예를 들어, 컴퓨팅 시스템은 검출된 마커들의 맵에 대한 센서의 포즈를 결정하고 이어서 마커 위치들의 맵을 CAD 모델에 정렬시키기 위해 환경에서 인근 표면들의 측정들을 사용할 수 있다. 그 결과, 로봇뿐만 아니라 다른 차량들은 마커들 및 물리적 특징들의 위치들 모두를 표시하는 정보를 사용하여 환경을 내비게이팅할 수 있다. 예를 들어, 제어 시스템은 환경의 설계 모델에 표시된 바와 같이 물리적 벽들 주위를 주차 장소 또는 저장 랙으로 내비게이팅하기 위한 전략을 결정하기 위해 마커들의 위치들을 사용할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 마커들의 맵의 좌표 프레임을 CAD 모델의 좌표 프레임과 관련하여 설정함으로써 마커들의 맵을 CAD 모델과 정렬시킬 수 있다. 이와 같이, 컴퓨팅 시스템은 벽들, 랙킹(racking), 및 CAD 모델에 제시된 다른 구조물들로의 변환을 통해 마커들의 맵에 새로운 추가들을 자동으로 정렬하도록 구성될 수 있다. 또한, 컴퓨팅 시스템은 마커 위치들의 맵 내의 센서의 포즈를 정제하기 위해 추가적인 센서 데이터를 사용할 수 있다. 컴퓨팅 시스템은 또한 정제된 포즈를 사용하여, 마커 위치들의 맵을 설계 모델과 정렬시키는 변환을 조정할 수 있다. 예를 들어, 컴퓨팅 시스템은 원래의 변환에 기초하는 후보 변환들의 더 좁은 범위를 샘플링함으로써 변환을 조정할 수 있다.
일부 예시적인 실시예에서, 컴퓨팅 시스템은 결정된 변환을 다른 시스템들(예를 들어, 환경에 배치된 로봇들의 제어 시스템들)에 제공할 수 있다. 로봇들의 제어 시스템들은 마커 맵, 변환, 및/또는 설계 모델을 사용하여 환경을 내비게이팅할 수 있다. 일부 경우들에서, 컴퓨팅 시스템은 환경(예를 들어, CAD 모델)의 변환 및 설계 모델에 기초하여 제어 명령어들을 로봇의 제어 시스템에 제공할 수 있다.
II. 로봇 디바이스들을 위한 시스템 설계
도 1은 예시적인 실시예에 따른 시스템(100)의 블록도이다. 시스템(100)은 계획 시스템(110) 및 로봇 디바이스(120)를 포함한다. 계획 시스템(110)은 환경에서 동작하는 하나 이상의 로봇 디바이스의 움직임들을 조정할 수 있는 오프보드 플래너(112)를 포함할 수 있다. 오프보드 플래너(112)는 오프보드 플래너(112) 및/또는 로드맵 플래너(114)가 환경에서 로봇 디바이스(예를 들어, 로봇 디바이스(120))가 뒤따르기 위한 하나 이상의 비동기 경로들(116)을 생성할 수 있도록 로드맵 플래너(114)를 포함할 수 있다.
도 3의 문맥에서 아래에 논의되는 프로토타입 그래프(300)와 같은, 환경을 나타내는 로드맵 그래프, 프로토타입 그래프, 또는 다른 로드맵은 계획 시스템(110), 오프보드 플래너(112) 및/또는 로드맵 플래너(114)에 수신되거나, 결정되거나, 이와는 달리 제공될 수 있다. 비동기 경로들(116)은 로드 맵 그래프, 프로토타입 그래프 또는 다른 로드맵 중 하나 이상에 기초하여 개발된 하나 이상의 경로일 수 있다. 예를 들어, 로드맵 그래프, 프로토타입 그래프, 또는 다른 로드맵이 복수의 교차점을 접속하는 복수의 에지를 갖는다면, 비동기 경로들(116)은 복수의 에지 및/또는 복수의 교차점에 관하여 지정될 수 있다.
일부 예들에서, 로봇 디바이스(120)는 경로를 뒤따를 수 있는 임의의 하나 이상의 조향 차량(들)일 수 있다. 예를 들어, 로봇 디바이스(120)는 온보드 소프트웨어(130) 및/또는 하드웨어(150)를 포함할 수 있다. 온보드 소프트웨어(130)는 위치표시 서브시스템(132), 장애물 검출 서브시스템(134), 주행 거리 측정 서브시스템(136), 경로-추종 서브시스템(138), 및 궤적-추종 서브시스템(142) 중 하나 이상을 포함할 수 있다. 이와 같이, 온보드 소프트웨어(130)는 다른 예들에서의 추가 소프트웨어 시스템들을 포함할 수 있다.
위치표시 서브시스템(132)은 로봇 디바이스를 위치표시할 수 있는 시스템을 나타낸다. 즉, 위치표시 서브시스템(132)은 환경에 대한 로봇 디바이스의 위치 결정을 가능하게 할 수 있다. 예를 들어, 위치표시 서브시스템(132)은 로봇 디바이스를 위치표시하고, 원하는 경로(예를 들어, 비동기 경로들(116))를 뒤따르는 로봇 디바이스를 지원하고/하거나, 궤적(예를 들어, 궤적들(140))을 뒤따르는 로봇 디바이스를 보조하기 위해 사용될 수 있는 로봇 디바이스 및/또는 다른 물체들의 위치 추정치를 생성할 수 있다. 위치 추정치가 생성되면, 위치표시 서브시스템(132)은 위치 추정치를 경로-추종 서브시스템(138)에 제공할 수 있다.
비동기 경로 또는 줄여서 경로는 시불변 계획(time-invariant plan) 또는 로봇 디바이스(120)가 시작 포인트(SP)로부터 종료 포인트(EP)로 어떻게 이동할 수 있는지를 표시하는 다른 정보일 수 있으며; 즉, (비동기) 경로는 시간을 고려하지 않는다. 대조적으로, 궤적은 계획 시간 간격 동안 로봇 디바이스(120)가 뒤따를 수 있는 조향각 및 견인 모터 속도의 값들을 포함할 수 있다.
계획 시간 간격은 로봇 디바이스가 경로, 및/또는 이동을 뒤따르도록 안내되거나 계획되는 시간의 지속기간일 수 있다. 일부 실시예에서, 계획 시간 간격은 미리 결정된 시간량; 예를 들어, 5초, 1초, 0.2초, 0.1초일 수 있다. 특히, 미리 결정된 계획 시간 간격은 계획 시간 간격에 대한 값을 지정하는 사용자 입력에 기초하여 결정될 수 있다. 다른 실시예들에서, 계획 시간 간격은 하나 이상의 다른 값들; 예를 들어, 스티치 시간, 균일한 에지(또는 경로) 비용과 연관된 시간, 궤적을 따라 이동하는 것으로 추정되는 시간에 기초하여 결정될 수 있다. 계획 시간 간격을 결정하기 위한 다른 기법들 및 계획 시간 간격에 대한 값들도 가능하다.
다음으로, 하나 이상의 궤적은 로봇 디바이스(120)가 시변 방식(time-variant manner)으로 시작 포인트(SP)로부터 종료 포인트(EP)로 어떻게 이동할 수 있는지를 설명하기 위해 사용될 수 있다. 일부 실시예들에서, 궤적은 또한 로봇 디바이스(120)의 다른 운동학적 변수들(예를 들어, 속도 및 가속도), 및 로봇 디바이스(120)의 액추에이터 위치들과 같은, 그러나 이에 제한되지 않는 계획 시간 간격에 걸친 조향각 및 견인 모터 속도와는 다른 변수들의 값들에 관한 정보를 제공할 수 있다.
일례로서, 위치 "집(home)"으로부터 위치 "직장(work)"까지 자동차를 운전하는 경로는 자율 차량의 사람 또는 제어 디바이스와 같은 제어 엔티티가 자동차를 집으로부터 직장까지 운전하기 위해 사용할 수 있는 거리들의 정렬된 목록을 포함할 수 있다. 이 예에서, 집으로부터 직장까지의 궤적은 제어 엔티티가 자동차를 집으로부터 직장까지 운전하기 위해 사용할 수 있는 속도 및/또는 가속도를 지정하는 하나 이상의 명령어를 포함할 수 있다. 일부 예들에서, 궤적은 교통, 장애물, 날씨, 및 다른 시간에 민감한 조건들을 고려할 수 있는데; 예를 들어, 집으로부터 직장까지 가기 위한 궤적은 제어 엔티티가 "20MPH 이하에서 10초 동안 우측으로 회전하고", "55MPH로 가속하고 3분 동안 직진 운전하고", "30초 내에 20MPH로 느리게 하고", "20MPH 이하에서 10초 동안 좌측으로 회전하는" 등을 표시할 수 있다. 일부 실시예에서, 궤적은 방식에 따라 변경될 수 있는데; 예를 들어, 장애물들, 경로의 변경들 등을 고려하기 위한 것이다.
장애물 검출 서브시스템(134)은 하나 이상의 장애물이 로봇 디바이스(120)의 경로 및/또는 궤적을 차단하고 있는지를 결정할 수 있다. 이러한 장애물들의 예들은 팔레트, 팔레트로부터 떨어져 있을 수 있는 물체들, 로봇 디바이스들, 및 환경에서 작동하는 인간 조작자들을 포함할 수 있지만, 이들로 제한되지 않는다. 장애물이 검출되면, 장애물 검출 서브시스템(134)은 경로-추종 서브시스템(138)에 장애물 검출을 표시하는 하나 이상의 통신을 제공할 수 있다. 장애물 검출을 표시하는 하나 이상의 통신은 장애물 검출 서브시스템(134)에 의해 검출된 하나 이상의 장애물의 하나 이상의 위치에 관한 위치 정보 및/또는 장애물 검출 서브시스템(134)에 의해 검출된 하나 이상의 장애물에 관한 식별 정보를 포함할 수 있다. 주행 거리 측정 서브시스템(136)은 서보 드라이브(152)로부터의 데이터와 같은 데이터를 사용하여, 시간에 따른 로봇 디바이스(120)의 위치의 하나 이상의 변경을 추정할 수 있다.
경로-추종 서브시스템(138) 및/또는 궤적-추종 서브시스템(142)은 로봇 디바이스(120)에 탑재되는 플래너로서 기능할 수 있다. 이러한 온보드 플래너는 위치표시 서브시스템(132)에 의해 제공되는 위치 추정치에 기초하여 비동기 경로(116)와 같은 하나 이상의 경로를 따를 수 있다.
경로-추종 서브시스템(138)은 비동기 경로들(116), 위치표시 서브시스템(132)으로부터의 위치 추정치 입력들, 장애물 검출 서브시스템(134)으로부터의 하나 이상의 장애물의 하나 이상의 위치에 관한 위치 정보, 및/또는 주행 거리 측정 서브시스템(136)으로부터의 하나 이상의 위치 변경에 관한 정보를 수신할 수 있고, 하나 이상의 궤적(140)을 출력들로서 생성할 수 있다.
하드웨어(150)는 서보 드라이브들(152) 및/또는 모터들(154)을 포함할 수 있다. 서보 드라이브들(152)은 하나 이상의 서보 메커니즘들 및 관련 전기 장비를 포함할 수 있다. 일부 예들에서, 서보 드라이브들(152)은 하나 이상의 서보 메커니즘에 전력을 공급하고/하거나 서보 메커니즘(들)으로부터 피드백 신호를 모니터링하기 위해 사용되는 하나 이상의 전자 증폭기를 포함할 수 있다. 서보 드라이브들(152)은 온보드 소프트웨어(130)로부터 궤적들(144)과 같은 제어 신호들을 수신할 수 있고, 제어 신호들에 비례하는 모션을 생성하기 위해 서보 메커니즘(들)에 전류를 제공할 수 있다. 일부 실시예에서, 서보 드라이브들(152)은 궤적들(144)에 의해 명령된 바와 같이 서보 메커니즘(들)으로부터 수신된 상태 정보를 예상된 상태와 비교할 수 있다. 다음으로, 서보 드라이브들(152)은 수신된 상태 정보와 예상된 상태 사이의 편차를 정정하기 위해 제공된 전류의 전압 주파수 또는 펄스 폭을 조정할 수 있다. 다른 실시예들에서, 서보 드라이브(152)는 피드백 신호 및/또는 위치-관련 정보와 같은 정보를 온보드 소프트웨어(130)에 제공할 수 있다.
하나 이상의 모터(154)는 서보 드라이브들(152)의 서보 메커니즘(들)의 일부 또는 전부일 수 있다. 예를 들어, 모터들(154)은 로봇 디바이스(120)의 일부 또는 전부를 구동하기 위한 기계적 힘을 생성하기 위해 서보 드라이브들(152)에 의해 제공되는 전류를 사용할 수 있으며; 예를 들어, 모터들(154)은 로봇 디바이스(120)를 추진하고/하거나 로봇 디바이스(120)의 하나 이상의 이펙터를 구동하기 위한 힘을 제공할 수 있다.
창고, 사무실 빌딩, 또는 집과 같은 실내 설정들, 및/또는 공원, 주차장 또는 마당과 같은 옥외 설정들을 포함하는 환경과 같은, 환경 내의 로봇 디바이스들의 경로 계획은 로봇 디바이스들과 같은 에이전트들이 뒤따를 수 있는 경로들의 접속된 그래프인 로드맵 그래프에 대해 수행될 수 있다. 자유 공간 접근법을 취하기 보다는 환경 내에서의 에이전트 라우팅을 계획하기 위해 로드맵 그래프들을 사용하는 것은 전체 계획 상태 공간을 감소시킬 수 있고, 따라서 대규모 멀티 에이전트 조정을 다루기 쉬울 수 있다. 또한, 로드맵 그래프들의 사용은 조작자들이 로봇 디바이스들이 내비게이팅하도록 허용되는 영역들을 직관적으로 제어할 수 있게 할 수 있다.
도로맵 그래프 생성은 먼저 이동 방향들 및 차선들의 대략적인 위치를 표시하는 프로토타입 그래프의 생성을 포함할 수 있다. 일부 예들에서, 프로토타입 그래프는 로봇 디바이스들의 이동 방향들 및 차선들을 표시하는 방향성 그래프일 수 있다. 다른 예들에서, 프로토타입 그래프는 환경의 맵 또는 도면에 기초하여 수동으로 생성될 수 있다.
도 2는 예시적인 실시예에 따른, 하나 이상의 창고를 동작시키기 위한 시스템(200)을 도시한다. 시스템(200)은 창고 관리 시스템(210), 계획 시스템(110), 및 로봇 디바이스(220)를 포함한다. 창고 관리 시스템(210)은 창고와 연관된 하나 이상의 물류 요청들(212); 예를 들어, 창고에 하나 이상의 아이템을 저장하는 요청들 및/또는 창고로부터 하나 이상의 아이템을 출하하는 요청들을 수신할 수 있다. 창고 관리 시스템(210)은 물류 요청들(212)을 하나 이상의 액션(214)으로 변환할 수 있고, 여기서 액션들(214)은 하나 이상의 지정된 에이전트를 하나 이상의 지정된 위치로 이동시키기 위한 "이동(move-to)" 액션, 및 하나 이상의 아이템을 하나 이상의 지정된 위치로 운반하는"운송(transport)" 액션을 포함할 수 있지만, 이들로 제한되지 않는다. 일부 예들에서, 액션들(214)은 {에이전트 ID, 목적지} 형태의 이동 명령들을 포함할 수 있지만, "이동 팔레트" 와 같은 다른 액션들이 가능하다. 이들은 전형적으로 이동 명령들(move-to commands)로 분해가능하지만, (픽 위치(pick location)로 이동, 장소 위치(place location)로 이동).
계획 시스템(110)은 오프보드 플래너(112) 및 실행자(220)를 포함한다. 오프보드 플래너(112)는 액션들(214)을 입력들로서 수신하고 창고에서 동작하는 하나 이상의 에이전트; 예를 들어, 액션들(214)을 수행하기 위한, 다수의 로봇 디바이스들에 대한 하나 이상의 조정된 경로들(216)을 생성할 수 있다. 조정된 경로들(216)은 물류 요청들(212)을 이행하기 위해 창고 내의 모든 에이전트들에 대한 조정된 액션 계획의 일부일 수 있다. 조율된 액션 계획은 에이전트들의 우선권을 고려할 수 있으며; 예를 들어, 로봇 디바이스(RD1 및 RD2)가 모두 대략 동시에 포인트에 도달할 것으로 예상되는 경우, 로봇 디바이스들 중 하나는 로봇 디바이스(RD2)가 포인트를 통과하기를 기다리는 로봇 디바이스(RD1)와 같은, 다른 것보다 우선권 또는 우선순위를 가질 수 있다(또는 그 반대도 마찬가지이다). 실행자(220)는 조정된 경로들(216)을 수신하고, 물류 요청들(212)을 이행하기 위한 액션들(214)을 수행하기 위해 조정된 액션 계획의 일부를 달성하는데 있어서 로봇 디바이스(120)에게 지시하는 충돌하지 않는 서브-경로들(222)을 생성할 수 있다.
도 2에 위에서 도시된 바와 같이, 오프보드 플래너(112) 및 실행자(220)를 포함하는 계획 시스템(110)은 로봇 디바이스(120)와 통신할 수 있다. 일부 실시예에서, 로봇 디바이스는 포크 트럭; 예를 들어, 임의의 OSHA(Occupational Safety and Health Administration) 클래스 1 또는 클래스 3 구동 산업용 트럭일 수 있다. 다른 실시예들에서, 계획 시스템(110)은 "클라우드"(예를 들어, 하나 이상의 네트워킹된 컴퓨팅 디바이스들)에 위치된 및/또는 로봇 디바이스(120)와 함께 위치된 구내의 어딘가에 위치된 하나 이상의 네트워킹된 컴퓨팅 디바이스들을 사용하여 실행되는 소프트웨어를 포함할 수 있다.
도 3은 예시적인 실시예에 따라, 네트워크(318)를 사용하여 접속된 물류 인터페이스(310), 창고 관리 시스템(210), 및 하나 이상의 로봇 디바이스(120)를 포함하는 시스템(300)을 도시한다. 물류 인터페이스(310)는 창고 관리 시스템(210)으로의 팔레트와 같은 물체들, 및/또는 로봇 디바이스들의 이동에 관련하여 네트워크(318)를 통해 창고 관리 시스템(210)에 재고 작업 명령어들을 제공할 수 있다. 예시적인 재고 작업은 타입 B의 아이템들을 포함하는 팔레트 A를 위치 C로 이동시키는 것일 수 있다.
창고 관리 시스템(210)은 물류 인터페이스(310)로부터 재고 작업 명령어들을 수신하고, 하나 이상의 작업/미션 명령어들(예를 들어, 로봇 디바이스 A가 팔레트 B를 위치 C로부터 위치 D로 이동하게 하기 위한 명령어) 및/또는 재고 작업 명령어들을 수행하도록 로봇 디바이스(들)(120)를 제어하기 위한 계획들을 생성할 수 있다. 작업/미션 명령어들 및/또는 계획들은 하나 이상의 경로 및/또는 하나 이상의 궤적에 관한 정보를 포함할 수 있고, 여기서 작업/미션 명령어(들), 계획(들), 경로(들) 및 궤적/궤적들은 도 1 및 2의 맥락에서 논의된 기술들을 사용하여 창고 관리 시스템(210)의 계획 시스템(110)에 의해 생성된다.
예를 들어, 창고 관리 시스템(210)은 하나 이상의 컴퓨팅 디바이스들을 사용하여 데이터를 실행하고 저장하는 중앙집중식 제어 서비스; 예를 들어, 서버 컴퓨팅 디바이스들일 수 있다. 이들 작업을 수행하기 위해, 창고 관리 시스템(210)은 WMS 미들웨어를 포함할 수 있고, 모니터링 및 관리 시스템(300)을 위한 도구들에 대한 액세스를 제공하기 위해 사용자 인터페이스를 제공할 수 있다. 창고 관리 시스템(210)의 WMS 미들웨어 및/또는 다른 컴포넌트들은, 로봇 디바이스 경로들, 포즈들, 및/또는 궤적들에 대한 작업/미션 명령어들(예를 들어, 로봇 디바이스 A가 팔레트 B를 위치 C로부터 위치 D로 이동하게 하기 위한 명령어) 사이의 변환; 재고 작업들과 작업/미션 명령어들 사이의 변환; 및 API들 사이의 변환들과 같은 프로토콜 변환 API들과 같은 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)들을 사용할 수 있다.
창고 관리 시스템(210)에 의해 제공되는 사용자 인터페이스는 로봇 디바이스(들)(120)의 모니터링, 예를 들어, 하나 이상의 로봇 디바이스의 위치, 배터리 상태, 충전 상태, 등에 관련된 데이터를 제시하는 것; 하나 이상의 로봇 디바이스(들)(120)에 대한 재고 작업 명령어(들), 작업/미션 명령어(들), 계획(들), 경로(들) 및/또는 궤적/궤적들의 생성 및 전송을 가능하게 하는 것; 및 하나 이상의 창고 맵, 팔레트, 네트워크, 및/또는 계획 시스템(예를 들어, 계획 시스템(110), 창고 관리 시스템(210), 및/또는 물류 인터페이스(310))에 관련된 데이터의 검토, 업데이트, 삭제 및/또는 삽입을 포함하지만, 이에 제한되지 않는 시스템(300)을 위한 하나 이상의 사용자 인터페이스 기능을 제공할 수 있다.
일부 실시예에서, 창고 관리 시스템(210)은 물류 인터페이스(310)와 로봇 디바이스(들)(120) 사이에서 그리고 2개 이상의 로봇 디바이스(들)(120) 사이에서 통신을 라우팅할 수 있고, 하나 이상의 온보드 디바이스(들)(120)에 탑재되는 온보드 시스템(320)과 같은 하나 이상의 온보드 시스템을 관리할 수 있다. 다른 실시예들에서, 창고 관리 시스템(210)은 하나 이상의 로봇 디바이스(들)(120)에 의한 작업/미션 명령어의 완료에 관한 데이터; 로봇 디바이스가 초기화/부팅된 위치를 표시하는 데이터를 포함하는, 로봇 디바이스(들)(120)의 일부 또는 전부의 위치들 및/또는 포즈들에 관한 데이터; 인간 액션들, 사건 분석 및/또는 디버깅을 위한 하나 이상의 감사 추적들(audit trails)에 관련된 데이터; 및 상태 추적을 위한 데이터와 같지만 이에 제한되지는 않는, 시스템(300)에 관련된 데이터를 저장, 생성, 판독, 기록, 업데이트, 및/또는 삭제할 수 있다. 다른 실시예들에서, 창고 관리 시스템(210)은 로봇 디바이스(들)(120) 및 하나 이상의 어댑터와 통신하는 중앙 메시지 라우터/지속성 관리자를 포함할 수 있다. 하나 이상의 어댑터 각각은 창고 관리 시스템(210)에 활용가능한 시스템(300)의 데이터 및/또는 통신에 대한 액세스를 제공할 수 있고, 전술한 사용자 인터페이스를 위한 사용자 인터페이스 서비스 어댑터, 시스템(300)에 관한 정보에 대한 월드 와이드 웹(WWW)/인터넷 액세스를 인에이블하는 웹 콘텐츠 서비스 어댑터, API들 및/또는 WMS 사이의 통신들 사이에서 중재자로서 작용하는 메시지 프록시 어댑터 및/또는 WMS 어댑터를 포함할 수 있지만, 이에 제한되지 않는다.
도 3은 하나 이상의 로봇 디바이스(120) 각각이 온보드 시스템(320), 네트워크 스위치(330), 차량 제어기(332), 프로그램가능 로직 제어기(PLC)(334), 하나 이상의 디바이스 센서(338), 및 하나 이상의 드라이브(340) 중 하나 이상을 포함할 수 있다는 것을 도시한다.
온보드 시스템(320)은 로봇 디바이스(120)에 설치 및 사용하기 위해 구성된 로봇 계획을 위한 계산 및 센서 패키지일 수 있으며, 여기서 온보드 시스템(320)은 온보드 센서들(322) 및 하나 이상의 계획/실행 프로세서들(324)을 포함할 수 있다. 도 3은 또한 적어도(네트워크(318)를 통해) 계획 시스템(110)과, 디바이스 센서들(338)과, 및/또는 로봇 디바이스(120)의 하나 이상의 액추에이터와 통신하기 위해 네트워크 스위치(330)를 사용하도록 구성되는 온보드 시스템(320)을 도시한다.
온보드 시스템(320)은 로봇 디바이스(120)의 위치표시, 창고 관리 시스템(210)에 의해 제공되는 경로들 및/또는 궤적들을 따라 계획들 및/또는 이동을 수행하기 위한 로컬 궤적들의 생성, 하나 이상의(로컬) 궤적들을 뒤따르기 위한 드라이브들(340)에 대한 명령들의 생성, 로봇 디바이스(120)의 액추에이터(들)를 제어하기 위한 명령들의 생성, 및 포즈, 상태 및/또는 다른 정보를 창고 관리 시스템(210)에 보고하는 것 중 하나 이상을 담당할 수 있다.
온보드 센서들(322)은 온보드 시스템(320)을 내비게이팅 및/또는 제어하기 위한 하나 이상의 내비게이션 레이저, 레이저 스캐너, 카메라, 및/또는 다른 센서를 포함할 수 있다. 예를 들어, 로봇 디바이스(들)(120) 중 하나의 로봇 디바이스는 독일의 SICK AG Waldkirch, 일본 오사카의 HOKUYO AUTOMATIC CO. LTD, 및/또는 일본 오사카의 KEYENCE CORPORATION에 의해 제공되는 하나 이상의 레이저 스캐너와 같은 하나 이상의 레이저 스캐너를 포함할 수 있다. 레이저 스캐너들은 로봇 디바이스의 이동 방향은 물론 로봇 디바이스의 측면들, 코너들, 및/또는 후방을 따라 장애물 검출 및/또는 회피를 위해 사용될 수 있다. 레이저 스캐너들은 반사기-기반 위치표시를 사용하여 로봇 디바이스를 위치표시하기 위해 또한 사용될 수 있다. 일부 실시예에서, 카메라들 및/또는 다른 센서들은 레이저 스캐너들 대신에 또는 이와 함께 장애물 검출, 장애물 회피, 및/또는 위치표시를 위해 사용될 수 있다.
계획/실행 프로세서(들)(324)는 적어도 온보드 센서들(322)에 접속된 하나 이상의 컴퓨터 프로세서를 포함할 수 있다. 계획/실행 프로세서(들)(324)는 온보드 센서들(322)로부터 데이터를 판독하고, 로봇 디바이스(120)를 이동시키기 위해 드라이브(들)(340)에 로컬 궤적들 및/또는 명령들을 생성하고, 창고 관리 시스템(210)과 통신할 수 있다. 로컬 궤적은 로봇 디바이스(120)가 어떤 시간에 시작 포즈에서 시작하고 종료 포즈에 도달하는 궤적일 수 있다. 일부 예들에서, 시작 포즈는 암시적으로 지정될 수 있는데; 예를 들어, 시작 포즈는 로봇 디바이스(120)의 현재 포즈일 수 있고, 따라서 로컬 궤적은 그 시작 포즈가 로봇 디바이스(120)의 현재 포즈라는 가정에 기초한다.
계획/실행 프로세서(들)(324)는 컴포넌트 프레임워크를 활용할 수 있다. 컴포넌트 프레임워크는 버지니아주, 오난콕의 boost.org에 의해 제공되는 "boost::asio" 및 "boost::signals2" 소프트웨어 라이브러리들과 같은, 로봇 디바이스(120)의 일관된 비동기 모델을 제공하도록 구성되는 입력/출력(I/O) 및 시그널링에 대한 소프트웨어 라이브러리들에 구축된 멀티-스레드 작업 스케줄링 및 메시지 전달 시스템일 수 있다. 컴포넌트 프레임워크는 소프트웨어 컴포넌트들이 스레드 안전 방식으로 병렬로 실행될 수 있도록 소프트웨어 컴포넌트들(또는 모듈들) 사이의 통신을 가능하게 할 수 있다.
컴포넌트 프레임워크는 상태 머신 컴포넌트, 위치표시 컴포넌트, 계획 컴포넌트, 및 궤적 추종 컴포넌트 중 하나 이상을 포함할 수 있다. 상태 머신 컴포넌트는 차량 초기화, 차량 명령 및 고장 핸들링에 대한 로봇 디바이스(120)의 상태를 관리할 수 있다. 상태 머신 컴포넌트는 로봇 디바이스의 상태를 관리하기 위해 결정론적 유한 오토마톤 또는 다른 상태 머신을 사용할 수 있다.
위치표시 컴포넌트는 로봇 디바이스(120)의 포즈를 결정하기 위해 차량 센서들로부터 데이터를 판독하고 로봇 디바이스(120)의 이전 상태 정보를 통합할 수 있다. 차량 센서 데이터는 차량 센서들에 의해 검출된 관심 있는 하나 이상의 랜드마크/포인트를 표시할 수 있다. 대안적으로, 차량 센서들로부터의 데이터는 위치표시 컴포넌트가 차량 센서 데이터에 기초하여 관심있는 하나 이상의 랜드마크/포인트를 검출하도록 처리를 요구할 수 있다. 포즈는 팔레트들 또는 다른 물체들과 같은, 관심있는 하나 이상의 검출된 랜드마크/포인트에 대해 결정될 수 있다. 계획 컴포넌트는 창고 관리 시스템(210)으로부터 하나 이상의 목표를 수신하고 이들 목표를 달성하기 위해 로봇 디바이스(120)에 대한 로컬 궤적을 결정할 수 있다. 일부 실시예에서, 로컬 궤적은 로봇 디바이스(120)가 미리 결정된 시간량; 예를 들어, 100밀리초, 200밀리초, 500밀리초, 1초, 5초 동안 뒤따르는 단기 궤적일 수 있다. 궤적 추종 컴포넌트는 계획 컴포넌트에 의해 생성된 로컬 궤적을 수신하고, 로컬 궤적을 따라 이동하도록 구동 제어 명령어들을 생성할 수 있다. 다음으로, 구동 제어 명령어들은 로봇 디바이스(120)에 대한 견인 모터 및 다른 액추에이터들을 제어하는 드라이브들(340)로 중계된다.
네트워크 스위치(330)는 로봇 디바이스(들)(120)에 대한 통신을 가능하게 할 수 있다. 이러한 통신들은 온보드 시스템(320)과 나머지 로봇 디바이스(120); 예를 들어, 디바이스 센서들(338)과 드라이브들(340) 사이의 통신들, 및 네트워크(318)를 통한 창고 관리 시스템(210)과의 통신들을 포함할 수 있지만, 이들로 제한되지 않는다. 예를 들어, 네트워크 스위치(330)는 대만 신 베이시의 PLANET Technology Corporation의 PLANET 이더넷 스위치와 같은, 이더넷 및/또는 다른 유선 통신 인터페이스(들)를 통한 유선 네트워크로의 및/또는 Wi-FiTM 및/또는 다른 무선 통신 인터페이스(들)를 통한 무선 네트워크로의 TCP/IP(Transmission Control Protocol/Internet Protocol)-기반 통신들을 가능하게 할 수 있다.
일부 실시예에서, 로봇 디바이스(들)(120)와 계획 시스템(110) 사이의 통신들은 원격 절차 호출(RPC)들을 포함할 수 있다. 원격 절차 호출들은 계획 시스템(110)의 소프트웨어에 의해 하나 이상의 로봇 디바이스(들)(120)에 상주하는 소프트웨어 절차들, 방법들, 및/또는 기능들의 호출을 허용할 수 있고 그 반대도 마찬가지이다. 원격 절차 호출들은 TCP/IP, HTTP 1.0 및/또는 HTTP 2.0과 같은 하이퍼텍스트 전송 프로토콜(HTTP), 및/또는 다른 통신 프로토콜과 같은 통신 프로토콜에 기초할 수 있다. 원격 절차 호출들의 일부 또는 전부는 암호화된 데이터를 포함할 수 있으며; 이러한 데이터는 SSL(Secure Sockets Layer), TLS(Transport Layer Security), 및/또는 하나 이상의 다른 암호화 알고리즘들 및/또는 프로토콜들을 사용하여 암호화될 수 있다. 암호화된 데이터가 사용되는 실시예들에서, 개인 인증 기관과 같은 하나 이상의 인증 기관들은 암호화된 데이터를 암호화 및/또는 복호화하기 위해 사용되는 하나 이상의 인증서를 인증할 수 있다. 인증 기관은 하나 이상의 인증서에 대한 액세스를 제어하기 위해 액세스 제어 리스트(ACL)를 사용할 수 있다. 원격 절차 호출들은 RPC-관련 통신들을 위해 요청/응답 프로토콜 및/또는 양방향 스트리밍 프로토콜을 사용할 수 있다. 양방향 스트리밍 프로토콜이 RPC-관련 통신들에 사용되는 실시예들에서, 단일의 긴 수명의 RPC는 양방향 스트리밍 프로토콜을 구현하기 위해 사용될 수 있다.
차량 제어기(332) 및/또는 프로그램가능 로직 제어기(334)는 로봇 디바이스(들)(120)에 대한 전기 및 센서 관리 기능성을 제공할 수 있다. 전기 및 센서 관리 기능성은 전기 부하 제어, 조명 제어, 센서 제어, 센서 및/또는 스위치 신호 처리, 및 전력 관리를 위한 기능성을 포함할 수 있지만, 이에 제한되는 것은 아니다. 차량 마스터(336)는 로봇 디바이스(들)(320)의 리프트 디바이스들과 같은 하나 이상의 액추에이터를 제어하기 위한 기능성을 제공할 수 있다.
장치 센서(들)(338)는 로봇 디바이스(들)(120)를 제어 및/또는 동작시키는 것에 관련된 데이터를 제공할 수 있는 하나 이상의 센서를 포함할 수 있다. 데이터는 위치표시 정보, 위치 추정치들, 및 매핑 데이터와 같은, 그러나 이에 제한되지 않는 로봇 디바이스(들)(120) 주위의 환경에 관한 정보를 제공할 수 있다. 예를 들어, 디바이스 센서(들)(338)는 하나 이상의 레이저(예를 들어, 2차원(2D) 레이저들, 안전 레이저들, 레이저 스캐너들), 카메라들(예를 들어, 비행 시간(ToF) 카메라들, 적색-녹색-청색(RGB) 카메라들, 열 카메라들), 전기 센서들, 근접 센서들, 내비게이션 디바이스들, 및 위치 센서들을 포함할 수 있다.
드라이브(들)(340)은 로봇 디바이스(들)(120)를 이동시키기 위한 기능성을 제공하는 하나 이상의 구동 제어기 및/또는 액추에이터를 포함할 수 있다. 구동 제어기들은 로봇 디바이스(들)(120)의 움직임을 제어하도록 구동 액추에이터들을 지시할 수 있다. 구동 액추에이터들은 하나 이상의 견인 모터들, 전기 드라이브들, 유압 드라이브들, 및 공압 드라이브들을 포함할 수 있다.
도 4는 예시적인 실시예에 따른 로봇 디바이스(들)(120)의 로봇 디바이스 아키텍처(400)를 도시한다. 로봇 디바이스(들)(120)의 로봇 디바이스 아키텍처(400)는 소프트웨어를 포함할 수 있다. 소프트웨어는 위치표시(410)를 위한 소프트웨어, 팔레트 포즈 추정기(412)를 위한 소프트웨어, 상태 머신(414)에 관련된 소프트웨어, 플래너 폴로어(planner follower)(416)를 위한 소프트웨어, 컴포넌트 프레임워크(420)를 위한 소프트웨어, 및 운영 체제430을 위한 소프트웨어를 포함할 수 있다. 소프트웨어는 하나 이상의 하드웨어 계획/실행 프로세서들(324)에 의해 실행될 수 있다. 로봇 디바이스(들)(120)와 다른 디바이스들 사이의 통신은 네트워크 게이트웨이(440) 및/또는 네트워크 스위치(330)를 사용하여 수행될 수 있다. 예를 들어, 네트워크 게이트웨이(440)는 로봇 디바이스(들)(120) 중 하나의 로봇 디바이스와의 그리고 그 내에서의 무선 통신에 사용될 수 있고, 네트워크 스위치(330)는 로봇 디바이스(들)(120) 중 하나의 로봇 디바이스와의 그리고 그 내에서의 유선 통신에 사용될 수 있다. 로봇 디바이스 아키텍처(400)는 또한 도 3의 맥락에서 앞서 논의된 디바이스 센서(들)(338) 및 드라이브(들)(340)와 같은 추가적인 하드웨어를 포함한다. 일부 실시예에서, 로봇 디바이스 아키텍처(400)는 ToF 카메라(450) 및 RGB 카메라(452)를 포함하지만 이에 제한되지 않는 하나 이상의 카메라를 포함할 수 있으며, 여기서 하나 이상의 카메라는 하나 이상의 스틸 카메라 및/또는 하나 이상의 비디오 카메라를 포함할 수 있다.
도 5는 예시적인 실시예에 따른 로봇 디바이스(들)(120)를 위한 레이저 스캐너 아키텍처(500)를 도시한다. 일부 실시예에서, 디바이스 센서(들)(338)의 일부 또는 전부는 레이저 스캐너 아키텍처(500)에 의해 예시된 레이저들 및 레이저 스캐너들일 수 있다.
레이저 스캐너 아키텍처(500)는 레이저들(510, 512, 520, 522), 레이저 스캐너(524), 프로토콜 변환기(526), 네트워크 스위치(330), 및 온보드 시스템(320)을 포함할 수 있다. 레이저들(510, 512, 520, 및 522)은 로봇 디바이스(들)(120)의 고정된 위치들에 위치될 수 있으며; 예를 들어, 레이저(510)는 로봇 디바이스의 전방에 위치될 수 있고, 레이저(512)는 로봇 디바이스의 후방에 위치될 수 있고, 레이저(520)는 로봇 디바이스의 전방 좌측 코너에 위치될 수 있고, 레이저(522)는 로봇 디바이스의 전방 우측 코너에 위치될 수 있다. 레이저들(510, 512, 520, 522) 및/또는 레이저 스캐너(524)는 환경 내의 로봇 디바이스를 위치표시하기 위한 정보를 제공할 수 있다. 일부 실시예에서, 레이저들(510, 512, 520, 522) 및/또는 레이저 스캐너(524)는 하나 이상의 반사기로부터 반사된 광을 방출할 수 있고 -반사된 광은 하나 이상의 레이저 센서에 의해 검출될 수 있고, 로봇 디바이스는 반사된 광을 검출하기 위해 취해진 시간의 지속기간에 기초하여 환경 내에 위치표시될 수 있다. 특히 이러한 실시예들에서, 레이저들(510, 512, 520, 522) 및/또는 레이저 스캐너(524)의 일부 또는 전부는 반사된 레이저 광을 검출하기 위한 하나 이상의 레이저 센서를 포함할 수 있다. 다음으로, 레이저(510, 512, 520, 522) 및/또는 레이저 스캐너(524)의 일부 또는 전부는 레이저에 관련된 데이터(예를 들어, 레이저에 대한 유지보수 데이터), 레이저에 의해 방출된 광과 관련된 데이터, 및 레이저 센서(들)에 의해 반사된 레이저 광을 검출하기 위해 취해진 하나 이상의 시간의 지속기간에 관련된 데이터를 포함하지만 이에 제한되지 않는 데이터를 생성할 수 있다.
도 5에 도시된 바와 같이, 레이저들(520, 522)과 같은 일부 레이저들, 및 레이저 스캐너(524)는 네트워크 스위치(330)에 직접적으로 접속될 수 있는 반면, 레이저들(510, 512)과 같은 다른 레이저들은 프로토콜 변환기(526)를 통해 네트워크 스위치(330)에 접속될 수 있다. 프로토콜 변환기(526)는 레이저(510 및/또는 512)와 같은 레이저에 의해 사용되는 통신 프로토콜을 네트워크 스위치(330)에 의해 사용되는 통신 프로토콜로 변환할 수 있는데; 예를 들어, RS-422에 기초한 통신 프로토콜로부터 이더넷에 기초한 통신 프로토콜로 변환할 수 있다. 다음으로, 레이저들(510, 512, 520, 522) 및 레이저 스캐너(524)는 네트워크 스위치(330) 및 아마도 프로토콜 변환기(526)를 통해 온보드 시스템(320)에 데이터를 전송하고 그로부터 명령을 수신할 수 있다.
일부 실시예에서, 로봇 디바이스(들)(120)는 하나 이상의 고장 조건에 종속될 수 있다. 이들 고장 조건 및 관련 복구 전략의 예들은 이하의 표 1에서 설명된다.
명칭 개요 복구 전략
오래된 위치표시 위치표시 시스템은 로봇 디바이스 포즈를 결정할 수 없고/없거나 위치표시 확실성 추정치가 한계를 초과하였다. 로봇 디바이스는 중단되고 인간 조작자에게 통지할 것이다. 조작자는 수동으로 로봇 디바이스를 재위치표시를 위한 위치로 운전하고 재결합시킴으로써 개입할 수 있다.
궤적 추종 궤적 추종 에러가 임계값을 초과한다. 로봇 디바이스는 중단되고 궤적 추종을 자동적으로 재시작하려고 시도할 것이다. 시스템이 두 번 연속적으로 실패하면 인간 조작자에게 통지될 것이다. 조작자는 수동으로 로봇 디바이스를 로드맵 상으로 다시 운전함으로써 개입할 수 있다.
안전하지 않은 궤적 장애물 근접성으로 인해, 궤적 플래너는 로봇 디바이스가 공지된 장애물들로부터 안전 거리를 유지할 안전한 궤적을 찾을 수 없다. 로봇 디바이스는 중단되고 인간 조작자에게 통지할 것이다. 조작자는 장애물 주변의 로봇 디바이스를 수동으로 구동함으로써 개입할 수 있다.
하드웨어 고장 조향/견인 구동 고장 또는 다른 저레벨 하드웨어
I/O
고장 조건
로봇 디바이스는 중단되고 인간 조작자에게 통지할 것이다. 조작자는 전력 사이클링할 수 있고 수동으로 로봇 디바이스를 로드맵 상으로 다시 운전할 수 있다.
팔레트 검출 실패 로봇 디바이스는 명령된 위치에서 팔레트를 발견할 것으로 예상되며; 팔레트가 발견되지 않았다 로봇 디바이스는 팔레트가 발견될 것으로 예상되었던 곳에 대한 센서 데이터를 포함하는 메시지를 제어 서비스에 전송할 것이다. 제어 서비스는 인간 조작자에게 통지할 것이고, 선택적으로 팔레트 포즈 정보를 수동으로 전송할 수 있다.
팔레트 포즈 추정 실패 로봇 디바이스는 로봇 디바이스에 대한 팔레트의 포즈를 높은 신뢰도로 결정할 수 없다. 로봇 디바이스는 팔레트가 예상되었던 곳에 대한 센서 데이터를 포함하는 메시지를 제어 서비스에 전송할 것이다. 제어 서비스는 인간 조작자에게 통지하고 팔레트 포즈 정보를 수동으로 전송할 것이다.
표 1
III. 예시적인 환경의 사전 매핑
도 6은 예시적인 실시예에 따른, 공간을 사전-매핑하기 위한 예시적인 디바이스를 도시한다. 보다 구체적으로, 디바이스는 하나 이상의 로봇이 나중에 배치될 수 있는 환경을 나타내는 센서 데이터를 수집하도록 구성된 센서(602)를 포함한다. 일부 예들에서, 센서(602)는 환경 내의 표면들까지의 거리 측정들은 물론 검출된 마커들의 위치들을 생성할 수 있는 2차원 내비게이션 레이저 센서일 수 있다. 특히, 센서(602)는 레이저 광 빔들(604)을 투영하고 반사된 빔들을 측정하여 거리를 측정할 수 있다. 센서(602)는 로봇의 검출 능력을 복제하기 위해 공간 내에 배치될 로봇 상의 센서와 동일한 높이에 장착될 수 있다. 예를 들어, 센서(602)는 환경 내의 수평 평면에 배열된 역반사성 반사기들을 검출하기 위한 높이에 배치될 수 있다. 다른 예들에서, 센서(602)는 거리 또는 윤곽 측정들만을 생성하는 2차원 레이저 스캐너일 수 있다. 추가적인 예들에서, 센서(602)는 스테레오 카메라와 같은 다른 타입의 센서일 수 있다.
디바이스는 추가적으로 센서(602)로부터 센서 데이터를 처리하는 컴퓨팅 유닛(606)을 포함한다. 특히, 컴퓨팅 유닛(606)은 본 명세서에 설명된 임의의 타입의 매핑 기능성을 실행하여 공간의 맵들을 생성하고/하거나 생성된 맵들을 사용하도록 구성될 수 있다. 디바이스는 추가적으로 센서(602) 및 컴퓨팅 유닛(606) 양쪽 모두에 전력을 공급하기 위한 배터리 팩(608)을 포함한다. 디바이스는 디바이스가 하나 이상의 로봇을 배치하기 전에 공간을 통해 용이하게 이동될 수 있게 하는 이동 베이스(610)를 추가로 포함한다. 예를 들어, 이동 베이스(610)는 도 6에 도시된 바와 같은 휠들 상의 삼각대일 수 있다. 전력 및/또는 비전력 이동 베이스들을 포함하는 다른 타입의 이동 베이스들이 사용될 수 있다.
예들 내에서, 자동화된 안내 차량들(AGV들)의 적용 및(AGV들의 유무에 관계없이) 창고들의 최적화는 환경에 관한 정확한 기하학적 정보(예를 들어, 정확한 맵들)를 요구할 수 있다. 정확한 설비 맵들은 수동 및 자동 차량 환경들(예를 들어, 랙들이 2개의 전력 산업 트럭들이 함께 통과하는 것을 허용하기에는 너무 가까움) 양쪽 모두에서 설비/작업 흐름 비효율성의 식별을 초래할 수 있다. 설비 레이아웃들(예를 들어, CAD 모델들)은 빌딩 설계 및 구성 프로세스를 안내하기 위해 사용되고, 실세계를 반영하도록 항상 업데이트되지는 않을 수 있다. 따라서, 이들은 종종 부정확성들을 포함하고 신뢰할 수 있는 것으로 간주되지 않을 수 있다(예를 들어, CAD는 올바르고 정확한 벽들을 포함할 수 있는 반면, 랙들 및 추후에 추가되는 다른 인프라스트럭처는 상당한 양, 예를 들어, 30 센티미터만큼 떨어져 있을 수 있다). 일부 예들에서, 도 6에 도시된 것과 같은 사전-매핑 디바이스는 최적화된 AGV 및/또는 수동 포크 트럭 배치들을 가능하게 하는 정확한 설비 맵들을 생성하는 데 도움을 주기 위해 사용될 수 있다.
사전-매핑 시스템은 다수의 상이한 애플리케이션에 사용될 수 있다. 일부 예들에서, 창고의 맵(예를 들어, 벽들 및 랙들과 같은 다른 인프라스트럭처를 포함하는 기하학적 맵)이 생성되고 공간의 기존 CAD 모델과 비교될 수 있다. 이 프로세스는 CAD 모델이 실세계를 적절히 반영하지 않는다는 것을 드러낼 수 있다. 다음으로, 설비 맵들이 올바른 레이아웃들로 업데이트될 수 있다. 추가적인 예들에서, 창고 매핑은 창고가 로봇 AGV들을 사용하여 자동화되고/되거나 수동으로-구동되는 구동 산업용 트럭들을 사용하여 최적화될 수 있는 방법을 입증하기 위해 시뮬레이션에 로봇 시스템을 배치하기 위해 사용될 수 있다.
추가적인 예들에서, 창고 공간은 맵에 기초하여 마커(반사기) 셋업(예를 들어, 환경에서 반사기들을 배치하기 위한 위치들)을 계획하는 것을 보조하기 위해 사전 매핑될 수 있다. 이러한 프로세스는 AGV 배치의 계획 단계를 가속하기 위해 사용될 수 있다.
추가적인 예들에서, 창고 맵 및 반사기 셋업은 임의의 차량들을 그 위치에 전송하기 전에(또는 차량들이 시간을 절약하기 위해 출하되는 동안) AGV 롤아웃 프로세스에서 조기에 결정될 수 있다. 차량들이 도달하면, 이들은 맵(들)을 업로드하고, 맵(들)을 구동 또는 사용하기 시작하여, 차량들에 후속하는 매핑 실행을 초기화 및 부트스트랩한다.
일부 예들에서, 정확한 매핑은 또한 새로운 세대의 수동 트럭들이 기존 설비에서 동작할 수 있는지 또는 설비가 수정을 필요로 할 것인지를 결정하기 위해 사용될 수 있다. 추가적인 예들에서, 정확한 맵들은 또한 작업 흐름들 및 이동 거리들에 대한 랙킹, 충전소들, 또는 주차장들의 배치와 같은 수동 설비 비효율성의 식별을 허용할 수 있다. 이 정보는 더 최적의 설비 레이아웃들에 대한 제안들을 제공하기 위해 사용될 수 있다.
언급된 바와 같이, 컴퓨팅 유닛(606)은 센서(602)에 의해 수집된 센서 데이터에 기초하여 다양한 매핑 기능성을 실행하도록 구성될 수 있다. 일부 예들에서, 매핑 기능성은 창고 맵 및 반사기 맵 양쪽 모두를 구축하기 위한 계층적 포즈 그래프 SLAM 및 번들 조정을 포함할 수 있다. 기능성은 부분적인 반사기 셋업만을 갖는 또는 반사기 셋업이 전혀 없는 창고를 매핑하기 위해 윤곽들/거리 측정들과 마커 검출들 사이에서 스위칭함으로써 양쪽 맵들을 생성할 수 있다. 매핑 기능성은 생성된 맵들을 창고의 CAD 모델과 자동으로 정렬하는 것을 추가로 포함할 수 있다. 매핑 기능성은 이전에 구축된 맵으로 매핑 프로세스를 부트스트래핑하는 것을 추가로 포함할 수 있다(예를 들어, 새로운 맵은 이전 맵으로부터 부트스트래핑되는 반사기 위치들을 갖는, CAD 모델 및 이전 맵 양쪽 모두와 자동으로 정렬될 수 있다).
예시적인 프로세스는 저장, 시각화 등을 포함하여 도 6에 도시된 디바이스를 사용하여 매핑 실행의 결과들을 검색하는 것을 포함할 수 있다. 다음으로, 검색된 결과들은 내비게이션을 위한 차량들에 업로드하는 것, 새로운 매핑 실행들을 위한 차량들에 업로드하는 것(이전 실행으로부터의 결과들로 부트스트래핑됨), 시뮬레이션에서 시스템의 배치를 보여주는 컴포넌트 내로 결과들을 불러오는 것, 생성된 맵을 기존 CAD 모델과 비교하는 컴포넌트 내로 결과들을 불러오는 것, 및/또는 자동화된 반사기 계획을 보조하는 컴포넌트 내로 결과들을 불러오는 것을 포함하는 다양한 기능들에 적용될 수 있다.
IV. 환경에서의 로봇의 예시적인 위치표시
도 7은 예시적인 실시예에 따라, 로봇이 환경 내에서 내비게이팅하는 것을 도시한다. 환경에 대한 로봇(700)의 위치 및 배향이 추정될 수 있으며, 그에 따라 로봇이 환경을 통해 내비게이팅할 수 있게 한다. 특히, 포즈는 환경 내의 로봇의 위치 및 배향을 표시할 수 있다.
컴퓨팅 시스템은 하나 이상의 센서(702)로부터의 수신된 신호들(706)에 기초하여 로봇(700)의 포즈를 결정할 수 있다. 센서(702)에 의해 제공되는 신호들(706)은 창고 내의 다양한 위치들에 배치된 역반사성 마커들에 의해 반사될 수 있다. 예를 들어, 로봇은 로봇을 둘러싸는 영역에 광을 방출하는 LIDAR(light ranging and detection) 유닛을 사용할 수 있고, 로봇을 둘러싸는 영역에 위치된 마커들은 로봇의 센서에 의한 검출을 위해 광을 역 반사시킬 수 있다.
센서(702)에서 수신된 반사된 신호들(706)은 로봇에 대한 마커들의 위치를 표시할 수 있다. 컴퓨팅 시스템은 마커들의 이러한 결정된 위치들을 사용하여 마커들의 맵을 개발할 수 있다. 일부 경우들에서, 컴퓨팅 시스템은 검출된 마커들을 사용하여 이미 생성된 마커 위치들의 맵을 보충할 수 있다. 예를 들어, 컴퓨팅 시스템은 새로운 측정들을 사용하여 맵 내의 하나 이상의 마커의 위치를 수정할 수 있다.
컴퓨팅 시스템은 또한 로봇이 마커들의 맵을 사용하여 내비게이팅함에 따라 로봇의 포즈를 결정할 수 있다. 컴퓨팅 시스템은 검출된 마커들을 맵 내의 마커들과 매칭시켜서 로봇의 위치 및 배향을 결정할 수 있다. 환경 내의 장애물들(710)에 관한 마커들의 위치는 미리 결정될 수 있다. 예를 들어, 장애물들의 위치도 매핑될 수 있다. 로봇은 무브먼트들(708)이 장애물들의 추정된 포즈 및 미리 결정된 위치들에 기초하여 장애물들을 회피하면서 환경 내에서 내비게이팅하게 할 수 있다.
도 8은 예시적인 실시예에 따른, 매핑된 랜드마크들과 검출들을 연관시키는 로봇을 도시한다. 후보 랜드마크들(812)로부터의 검출된 신호(806)는 로봇(800)의 하나 이상의 센서(802)에 의해 수신될 수 있다. 신호들은 로봇에 대한 후보 랜드마크들의 위치들을 표시할 수 있다. 후보 랜드마크들은 매핑된 랜드마크들(804)과 정렬되도록 변환될 수 있다. 변환된 후보 랜드마크들과 매핑된 랜드마크들 사이의 최소 거리를 초래하는 연관들(814)은 후보 랜드마크들과 매핑된 랜드마크들 사이에 형성될 수 있다. 예를 들어, 연관들(814)은 ICP(iterative closest point) 방법과 같은 최소 평균 제곱 방법을 사용하여 형성될 수 있다. 후보 랜드마크들은 후보 랜드마크들과 매핑된 랜드마크들 사이의 연관들(814)에 기초하여 병진 및 회전될 수 있다. 로봇의 포즈는 로봇을 유사하게 병진 및 회전시킴으로써 추론될 수 있다.
도 9는 예시적인 실시예에 따른, 로봇 제어 시스템의 모듈들을 도시하는 기능 블록도이다. 로봇 제어 시스템은 온-보드 감지 모듈(900)의 일부로서 하나 이상의 센서를 포함할 수 있다. 센서들은 로봇의 휠 주행 거리 측정(908)을 표시하는 데이터를 제공할 수 있다. 센서들은 또한 내비게이션 스캐너(910)를 포함할 수 있다. 내비게이션 스캐너(910)는 로봇의 환경 내의 후보 랜드마크들로부터 신호들을 수신하도록 구성될 수 있다.
로봇 제어 시스템의 포즈 추정 모듈(902)은 환경 내의 매핑된 랜드마크에 대한 로봇의 위치 및 배향을 표시할 수 있다. 포즈 추정 모듈(902)은 온-보드 감지 모듈(900)로부터의 입력들에 기초하여 기능들을 수행하는 소프트웨어를 포함할 수 있다. 예를 들어, 내비게이션 스캐너(910)가 스캔을 수행할 때마다, 온-보드 감지 모듈로부터의 센서 데이터는 환경 내의 로봇의 현재 위치 및 배향을 결정하기 위해 포즈 추정 모듈(902)에 의해 처리될 수 있다. 포즈 추정 모듈(902)의 포즈 추적/정제 블록(912) 및 글로벌 위치표시 블록(914)은 처리 단계들을 나타내는 반면, 포즈 블록(916), 신뢰도/정확도 블록(918), 및 초기 포즈 추정치 블록(920)은 처리 블록들(912 및 914)의 출력들을 나타낸다.
포즈 추정 모듈(902)은 2개의 모드에서 동작할 수 있다. 제1 모드에서, 포즈 추정 모듈(902)은 로봇의 초기 포즈 추정치(920)를 가질 수 있고, 포즈 추적/추정 블록(912)은 초기 포즈 추정치(920)를 업데이트할 수 있다. 포즈 추적/정제(912)는 후보 랜드마크들과 관련하여 로봇의 위치를 식별하기 위해, 초기 포즈 추정치(920)와 함께 내비게이션 스캐너(910)로부터의 휠 주행 거리 측정(908) 및 데이터를 활용할 수 있다. 포즈 추적/정제 블록(912)은 후보 랜드마크들을 초기 포즈 추정치(920)에 가까운 특정한 매핑된 랜드마크들에 연관시킬 수 있다. 포즈 추정 모듈(902)은 연관에 기초한 포즈 추정치(916), 및 포즈 추정치의 신뢰도/정확도(918)를 추가로 제공할 수 있다. 신뢰도/정확도(918)는 초기 포즈 추정치가 적절하다는 것 또는 추가 정제를 요구한다는 것을 표시할 수 있다. 또한, 제1 모드에서, 포즈 추적/정제 블록(912)에 의해 결정된 포즈(916) 및 신뢰도/정확도(918)는 로봇의 정제된 포즈 추정치를 결정하기 위해 후처리 모듈(904)에서 사용될 수 있다. 한편, 글로벌 위치표시 블록(914)은 스킵될 수 있다. 또한, 포즈 추적/정제(912) 동안 도출된 포즈 추정치(916)는 후속 포즈 추정들에서 사용하기 위해 로봇의 초기 포즈 추정치(920)로서 취급될 수 있다.
제2 모드에서, 포즈 추정 모듈(902)은 로봇이 환경 내에 있는 곳의 초기 표시를 갖지 않을 수 있다. 즉, 초기 포즈 추정치(920)는 아직 결정되지 않을 수 있다. 제2 모드에서, 포즈 추정 모듈(902)은 로봇의 포즈를 결정하기 위해 포즈 추적/정제(912)보다는 글로벌 위치표시(914)를 활용할 수 있다. 글로벌 위치표시 블록(914)은 로봇의 전체 환경에 걸쳐서 후보 랜드마크들과 매핑된 랜드마크들 사이의 연관을 테스트할 수 있다. 글로벌 위치표시 블록(914)은 또한 포즈 추정치(916) 및 신뢰도/정확도(918)를 출력할 수 있다. 또한, 제2 모드에서, 글로벌 위치표시 블록(914)에 의해 결정된 포즈(916) 및 신뢰도/정확도(918)는 로봇의 정제된 포즈 추정치를 결정하기 위해 후처리 모듈(904)에서 사용될 수 있다. 또한, 글로벌 위치표시(914) 동안 도출된 포즈 추정치(916)는 후속 포즈 추정들에서 사용하기 위해 로봇의 초기 포즈 추정치(920)로서 취급될 수 있다.
후처리 모듈(904)은 포즈 추적/정제 또는 글로벌 위치표시로부터 도출된 포즈 추정을 정제하는데 사용될 수 있다. 후처리 모듈은 위치표시 모듈의 포즈 추정치 및 신뢰도/정확도의 융합 외삽(922), 및 온-보드 감지 모듈의 휠 주행 거리 측정을 수행할 수 있다. 융합 외삽 동안, 정제된 포즈 추정치는 높은 신뢰도/정확도가 있을 때 위치표시 모듈에 의해 제공되는 추정된 포즈에 더욱 의존할 수 있다. 반대로, 정제된 포즈 추정치는 낮은 신뢰도/정확도가 있을 때 휠 주행 거리 측정에 더욱 의존할 수 있다. 또한, 후처리 모듈은 제공된 신뢰도/정확도 및 정제된 포즈 추정치에 기초하여 맵 업데이트(924)를 제공할 수 있다. 예를 들어, 맵 업데이트는 정제된 포즈 추정치에 기초하여 매핑된 랜드마크들의 위치를 업데이트할 수 있다. 다른 예들에서, 맵 업데이트는 정제된 포즈 추정을 생성하는데 사용되는 매핑된 랜드마크들과 연관된 통계 정보를 업데이트할 수 있다.
도 9의 로봇 제어 시스템에 의해 수행되는 기능들 각각은 주기적으로 수행될 수 있다. 예를 들어, 내비게이션 스캐너(910)는 8Hz에서 스캔들을 수행할 수 있는 반면, 휠 주행 거리 측정(908)은 100Hz에서 업데이트할 수 있다. 다른 예로서, 포즈 추정 모듈의 처리 블록들(912 및 914)은 8Hz에서 온-보드 감지 모듈로부터 데이터를 수신할 수 있고, 8Hz에서 포즈들(916) 및 신뢰도/정확도들(918)을 생성할 수 있다. 상이한 주파수들도 가능하다.
V. 예시적인 SLAM 구현들
컴퓨팅 시스템은 환경 내에서 마커들의 위치들을 또한 검출하면서 로봇의 위치를 결정하기 위해 SLAM 또는 유사한 프로세스들을 수행할 수 있다. 예를 들어, 컴퓨팅 시스템은 레이저 스캔들 내의 측정들의 강도에 기초하여 마커들을 검출할 수 있고, 관측된 마커들을 상이한 세트의 측정들로부터 매칭시킬 수 있다.
검출된 마커들의 부족 또는 검출된 마커들 사이의 잘못된 연관들을 초래하는 고장들과 같은, 상이한 스캔들에 걸쳐 검출된 마커들을 연관시키려고 시도할 때 잠재적인 에러들이 발생할 수 있다. 컴퓨팅 시스템은 각각의 검출된 마커를 여러번 검출된 가장 가까운 마커에 연관시킬 수 있는 가장 가까운 이웃 접근법을 사용하여 이들 및 다른 잠재적인 에러들을 극복할 수 있다. 특히, 가장 가까운 이웃 접근법은 유클리드 거리 또는 다른 거리 결정들(예를 들어, 마할라노비스 거리)을 사용하여 가장 가까운 마커를 결정하는 것을 포함할 수 있다. 일부 경우들에서, 컴퓨팅 시스템은 또한 마커가 이전에 관측된 시점 또는 마커가 새롭게 검출된 랜드마크로서 추가되어야 하는 시점을 결정하기 위해 검증 게이트를 활용하도록 구성될 수 있다. 검출된 마커들 사이의 데이터 연관의 결과들은 컴퓨팅 시스템이 환경 내의 로봇의 현재 포즈를 추정하는 것을 가능하게 할 수 있다.
컴퓨팅 시스템은 그의 현재 포즈를 추정할 때 로봇의 제어 시스템으로부터의 제어 명령어들을 사용할 수 있다. 예를 들어, 로봇의 휠들에 위치된 센서들로부터 제공되는 주행 거리 측정 데이터는 로봇의 현재 포즈의 변경들을 추정하는데 사용될 수 있다. 예로서, 로봇은 초기 배향 θ을 갖는 초기 2D 위치(x, y)를 가질 수 있다. 제어 시스템에 의해 적용되는 제어들에 의해 표시되는 바와 같이 (Δx, Δy)만큼 위치를 변경하고 (Δθ)만큼 배향을 변경한 후에, 로봇의 업데이트된 포즈는 업데이트된 배향 (θ+Δθ)을 갖는 (x+Δx, y+Δy)이다. 컴퓨팅 시스템은 인커밍 센서 스캔들 내의 검출된 마커들을 사용하여 추정된 포즈를 추가로 정제할 수 있다.
컴퓨팅 시스템은 또한 환경의 검출된 마커들 및 다른 측정들(예를 들어, 근처 표면들까지의 거리들을 나타내는 윤곽 측정들)을 사용하여 센서(또는 로봇)의 현재 포즈를 추정할 수 있다. 센서/로봇의 이전 포즈가 알려져 있을 때, 컴퓨팅 시스템은 마커들의 이전 검출에 기초하여 마커들이 위치해야 하는 곳을 예측하기 위해 최근 포즈 추정을 사용할 수 있다. 컴퓨팅 시스템은 후속 측정들을 사용하여 로봇의 포즈의 변경들을 계속 모니터링할 수 있다.
일부 경우들에서, 컴퓨팅 시스템은 새로운 측정들에 기초하여 최근의 변경들을 반영하기 위해 각각의 관측된 마커와 연관된 불확실성을 수정할 수 있고, 또한 새롭게 검출된 마커들을 환경 내의 마커들의 맵에 추가할 수 있다. 컴퓨팅 시스템은 공간 내의 마커들의 맵을 연속적으로 업데이트하기 위해 SLAM을 반복적으로 수행하여 로봇이 또한 안전하게 내비게이팅하면서 환경을 매핑하는 것을 가능하게 할 수 있다.
다른 예시적인 구현에서, 컴퓨팅 시스템은 초기 포즈 모니터링, 로컬 윈도우 최적화, 글로벌 최적화, 및 완전한 번들 조정과 같은 하나 이상의 동작을 사용하는 수정된 SLAM 프로세스를 수행할 수 있다. 컴퓨팅 시스템은 종종 초기 포즈 추정 후에 후속 동작들을 억제할 수 있다. 사실상, 컴퓨팅 시스템은 선행 동작의 수행 동안 다음의 계산적으로 보다 소비적인 동작을 수행할지의 여부를 결정할 수 있다.
컴퓨팅 시스템은 로봇의 일련의 포즈를 나타내는 기본 포즈 그래프에 환경의 초기 스캔을 추가할 수 있다. 초기 스캔은 맵의 좌표 프레임의 기초를 형성하기 위해 포즈(0)로서 할당될 수 있다. 그 후, 환경의 모든 후속 스캔에 대해, 컴퓨팅 시스템은 그래프(예를 들어, 포즈(0))에 추가된 이전 노드를 참조하고 그에 따라 현재 포즈를 업데이트할 수 있다. 일부 경우들에서, 컴퓨팅 시스템은 수학식 1의 변환에 도시된 바와 같이 매칭 마커 검출들과 매핑된 랜드마크들의 쌍들 사이의 유클리드 포인트 대 포인트 거리 및 마커-기반 위치표시를 위한 등록 프로세스(예를 들어, ICP(Iterative Closest Point) 알고리즘)를 사용하여 포즈를 업데이트할 수 있다.
Figure pct00001
수학식 1은 포즈 그래프에서 단일 링크에 대한 에러를 결정하는데 사용될 수 있다. 즉, 컴퓨팅 시스템은 2개의 상이한 포즈 사이에 에러가 존재하는지를 결정하는데 수학식 1을 사용할 수 있다. 이와 같이, 포즈 그래프는 에러를 감소시키기 위한 최적화 문제를 생성하는 다수의 링크를 포함할 수 있다. 수학식 1은 매칭들에 대해 wij=1의 일정한 가중치들을 가정할 수 있다. 그러나, 일부 경우들에서, 컴퓨팅 시스템은 로봇에 더 가깝게 검출된 마커들 또는 컴퓨팅 시스템에 의해 안정적인 것으로 간주되는 검출된 마커들에 더 높은 영향을 주기 위해 일정하지 않은 가중치들을 적용하도록 구성될 수 있다. 컴퓨팅 시스템은 또한 마커들의 검출 레이트를 고려하고, 일반화된 등록 프로세스(예를 들어, ICP)에서와 같이 공분산 대 공분산 메트릭들과 같은 상이한 에러 함수를 사용할 수 있다. 마커들 사이의 매칭들의 모든 쌍에 대해, 컴퓨팅 시스템은 2개의 노드들 사이의 개별 ICP 문제들을 동시에 해결하기 위해 전체 포즈 그래프(또는 부분 그래프)를 최적화할 수 있다.
일부 경우들에서, 스캔들 내의 레이저 스캔들과 마커 검출들의 매칭은 약간의 에러들 및 부정확성들을 초래할 수 있다. 이와 같이, 로컬 윈도우 최적화는 로컬 윈도우에서의 포즈 그래프 최적화를 통해 추정된 포즈를 정제함으로써 원하지 않는 영향들을 극복할 수 있다. 특히, 컴퓨팅 시스템은 이웃 노드들의 이전 포즈들을 포즈 그래프에서 일정하게 유지하고 로컬 윈도우 밖에 있는 더 오래된 포즈 추정치들의 사용을 제한하면서 추정된 포즈를 최적화하고 할 수 있다. 예를 들어, 스캔들이 로봇 근처의 소수의 검출된 마커들만을 생성할 때, 컴퓨팅 시스템은 로컬 윈도우 최적화를 사용하여 포즈 추정치를 개선할 수 있다.
컴퓨팅 시스템은 로봇이 거리를 이동하거나 최대 거리 또는 최대 회전 각도를 초과하는 환경의 스캔들 사이의 각도를 회전시킬 때 포즈 그래프에 새로운 노드를 추가할 수 있다. 특히, 컴퓨팅 시스템은 현재 스캔을 기본 포즈 그래프에 후속 포즈 결정들에 사용될 수 있는 새로운 기준 스캔으로서 추가할 수 있다.
컴퓨팅 시스템은 또한 로봇의 현재 포즈는 물론 로컬 윈도우 내의 노드들에 의해 표현되는 다른 포즈들의 추정치를 정제하기 위해 포즈 그래프 내의 다른 노드들의 로컬 이웃을 결정하고 결과적인 서브그래프(예를 들어, 노드들의 로컬 이웃)를 최적화할 수 있다. 컴퓨팅 시스템은 새로운 스캔들(즉, 각각의 포즈들을 초기에 계산할 때 활용할 수 없었던 정보)을 고려하는 동안 서브그래프를 나머지 포즈 그래프에 접속시키는 노드들을 일정하게 유지하고, 서브그래프 내의 모든 다른 포즈들을 최적화하여 현재 포즈를 정제할 수 있다.
컴퓨팅 시스템은 또한 루프 검출 및 검증을 수행할 수 있다. 예를 들어, 로컬 윈도우가 환경의 영역을 통한 이전의 통과 동안 생성된 그래프 노드들을 포함하는 경우, 컴퓨팅 시스템은 영역의 이전 스캔들을 사용하여 포즈 그래프의 글로벌 최적화를 트리거할 수 있다. 글로벌 최적화는 로봇의 포즈의 변경들을 나타내는 포즈 그래프 내의 모든 노드를 최적화하고 마커 위치들의 맵을 구축하는 것을 가능하게 할 수 있다. 컴퓨팅 시스템은 마커가 2개의 포즈/노드로부터 검출될 때 그래프에 양쪽 포즈를 갖는 에지를 추가할 수 있다. 2개의 포즈를 변경함으로써, 컴퓨팅 시스템은 2개의 포인트 사이의 거리들을 최소화하고 새로운 로봇 포즈들을 획득할 수 있다. 컴퓨팅 시스템은 모든 노드를 거쳐 세계 프레임에서 모든 마커 검출을 추출하여 맵을 획득할 수 있다.
글로벌 최적화 동안, 컴퓨팅 시스템은 마커 검출들을 매칭(또는 환경의 윤곽 스캔들을 매칭)할 수 있으며, 이에 의해 환경의 상이한 스캔들 내에서 검출된 마커들의 모든 발견된 매칭들 사이의 차이들을 최소화하기 위해 그래프 내의 모든 포즈가 최적화되도록 요구하는 큰 최적화 문제 내에서 블록들을 형성할 수 있다. 컴퓨팅 시스템은 글로벌 시스템이 로봇의 정확한 포즈 추정들을 생성하도록 수렴할 때까지 반복된 프로세스에서 포즈 그래프를 매칭 및 최적화할 수 있다.
잡음을 고려하고 마커 위치들의 보다 정확한 맵을 획득하기 위해, 컴퓨팅 시스템은 로봇의 경로 및 마커 위치들의 맵 둘 다를 최적화하기 위해 최종적인 완전한 조정을 수행할 수 있다. 컴퓨팅 시스템은 마커들의 새로운 맵을 구축하기 위해 각각의 스캔들과 함께 그래프 내의 포즈들을 최적화할 수 있고 번들 조정 동안 매핑된 반사기들의 위치들을 정제함으로써 측정 에러들 및 다른 부정확성들을 추가로 정정할 수 있다. 특히, 일부 예들에서, 집계된 마커 검출들은 글로벌 그래프 최적화의 쌍방식 공식화(pair-wise formulation)에서 매우 잘 매칭될 수 있지만, 환경 내의 마커들의 실제 위치들을 정확하게 나타내지 않을 수 있다. 따라서, 컴퓨팅 시스템은 마커 위치들의 맵에서 개별 마커 위치들의 정확도를 개선하기 위해 완전한 번들 조정을 사용할 수 있다.
아래의 표 2는 수정된 SLAM 프로세스의 다양한 단계들 및 대응하는 포즈 그래프들을 예시한다.
Figure pct00002
포즈 모니터링:
마지막 포즈 추정치(원 4) 및 양쪽 스캔(정사각형 4, 5)에 기초하여 현재 포즈(원 5)를 최적화한다.
Figure pct00003
포즈 모니터링 정제:
포즈들(원들 2, 3, 4) 및 스캔들(정사각형들 2, 3, 4, 5)의 로컬 윈도우를 사용하여 현재 포즈(원 5)를 최적화한다.
Figure pct00004
로컬 윈도우 최적화:
로컬 윈도우 내의 모든 포즈들(원들 3, 4, 5)은 윈도우 내의 모든 스캔들(정사각형들 2, 3, 4, 5)에 기초하여 최적화된다. 제1 포즈(원 5)는 일정하게 유지되고(그리고 윈도우 밖의 포즈들에 직접적으로 접속되는 모든 다른 포즈들은) 전체 SLAM 그래프와의 통합성을 유지하도록 최적화되지 않은 상태로 유지된다.
Figure pct00005
글로벌 최적화:
모든 포즈(원들 2, 3, 4, 5)는 모든 스캔(정사각형들 1, 2, 3, 4, 5)을 사용하여 최적화된다. 제1 포즈(원 1)만이 제1 포즈(원 1) 로서 최적화되지 않고, 맵 좌표 프레임의 원점을 정의한다.
Figure pct00006
완료 번들 조정:
모든 포즈(원들 2, 3, 4, 5) 및 매핑된 마커들(도넛들 1, 2, 3, 4, 5)은 글로벌적으로 최적화된다. 제1 포즈(원 1)만이 최적화되지 않는다.
표 2
컴퓨팅 시스템은 정렬된 스캔들의 마커 검출들을 집계함으로써 마커 위치들의 맵을 계속 업데이트할 수 있다. 각각의 검출된 마커에 대해, 컴퓨팅 시스템은 검출된 마커가 맵에 이미 추가된 마커와 매칭하는지를 확인하기 위해 체크할 수 있고, 이는 환경의 다수의 스캔 내에서 검출된 마커들 사이의 매칭들을 식별하기 위해 예측된 마커간 거리(예를 들어, 0.5미터 거리 임계값)에 대응하는 최대 거리를 갖는 가장 가까운 이웃 검색을 사용하는 것을 포함할 수 있다. 컴퓨팅 시스템이 검출된 마커가 맵 내에 위치된 마커와 매칭되는 것을 발견하면, 컴퓨팅 시스템은 필요하다면 맵 내의 마커의 위치를 조정할 수 있다. 일부 경우들에서, 컴퓨팅 시스템은 새로운 마커들을 추가하거나 일반적으로 맵을 재구축한 후에 재구축될 수 있는 마커들의 맵의 kd-트리에서의 대략 가장 가까운 이웃 검색을 사용하여 매칭 프로세스를 가속할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 세트 내의 모든 포인트를 통과하고 다른 세트의 포인트들에서의 가장 가까운 포인트와 각각의 포인트를 매칭시킴으로써 매칭들을 결정할 수 있다. 특히, 거리 임계값들 내의 가장 가까운 포인트들은 매칭들이라고 간주될 수 있다. 다른 예들에서, 컴퓨팅 시스템은 매칭들을 보다 빠르게 검색하는 것을 가능하게 할 수 있는 kd-트리들 또는 다른 검색 구조들을 사용할 수 있다.
오검출 가능성이 있는 마커 검출들을 식별하기 위해, 컴퓨팅 시스템은 마커가 안정적인지를 결정하기 위해 로컬 검출 이력을 모니터링할 수 있다. 안정된 마커들은 마커 위치들의 최종 맵에 새로운 마커들로서 또는 이전에 추가된 마커들을 정정하기 위해 포함된다. 컴퓨팅 시스템은 환경의 스캔들 내에서 검출되는 모든 마커들에 관한 정보를 포함하는 중간 맵 표현을, 안정된 마커들과 고반사성 표면들에 의해 야기될 가능성이 있는 오검출이 없는 것만을 포함하는 마커 위치들의 최종 맵과 구별할 수 있다.
예시적인 실시예에서, 컴퓨팅 시스템은 오검출들을 제거하기 위해 각각의 매핑된 마커에 대한 로컬 검출 이력을 모니터링할 수 있다. 예를 들어, n개의 스캔의 로컬 윈도우에서, 컴퓨팅 시스템은 추가된 모든 스캔에 대해(모든 매핑된 마커에 대해) 네가티브를 추가하고 스캔이 매핑된 마커에 매칭되는 마커 검출을 포함하면 포지티브를 추가할 수 있다. 검출의 로컬 윈도우의 예가 아래의 표 3에 도시되어 있다.
Figure pct00007
로컬 검출 이력:
- 정사각형 = 환경의 스캔
- "X" = 마커가 검출됨,
- "o" = 검출된 마커가 없음,
- 15개의 검출을 갖는 윈도우 크기 20 = 75% 검출 레이트
표 3
표 3에 도시된 바와 같이, 컴퓨팅 시스템은 환경의 n=20개의 스캔들의 윈도우 크기를 사용할 수 있다. 매핑된 마커의 로컬 윈도우가 임계량의 포지티브들(예를 들어, 총 스캔들의 75% 포지티브들)을 보여주면, 컴퓨팅 시스템은 마커를 안정적인 것으로 간주할 수 있다. 이와 같이, 컴퓨팅 시스템은 안정된 마커를 계속 업데이트할 수 있고, 이는 이후 수동으로 제거되지 않는 한 또는 마커들의 최종 맵의 완전한 재구축 동안 불안정한 것으로 간주되는 경우에는 불안정해질 수 없다. 그래프가 새로운 스캔들을 추가함으로써 상당히 크게 변경되는 경우에(예를 들어, 글로벌 최적화의 경우에), 컴퓨팅 시스템은 마커들의 맵을 재구축할 수 있고, 이는 마커가 안정적일 때(예를 들어, 전체 스캔들의 80% 포지티브 임계값을 초과할 때)를 결정하기 위해 더 높은 임계값을 사용하는 것을 포함할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 마커들의 맵 내의 마커들의 위치를 업데이트하도록 구성될 수 있다. 예를 들어, 매핑된 마커의 위치를 업데이트하기 위해, 컴퓨팅 시스템은 수학식 2에 도시된 바와 같이 매칭되는 마커 검출들의 모든 n개의 위치 pi에 대한 평균 μ를 증분하여 계산할 수 있다.
Figure pct00008
수학식 2에 도시된 바와 같이, 컴퓨팅 시스템은 모든 마커 검출에 동등하게 가중치부여할 수 있지만, 일부 예들에서 증분 가중 평균을 사용하여, 측정된 위치들에서의 잡음이 거리에 따라 증가할 수 있기 때문에, 센서에 더 가깝게 검출된 마커들에 로봇으로부터 멀리 떨어져서 검출된 마커들보다 더 높은 가중치를 부여할 수 있다. 컴퓨팅 시스템은 또한 오검출이 더 큰 분산을 나타낼 수 있기 때문에 진정한 마커 검출들로부터 거짓을 구별하는 추가 방식을 제공하기 위해 집계된 위치에 대한 증분 공분산을 계산할 수 있다. 게다가, 컴퓨팅 시스템은 포즈 모니터링 및 그래프 최적화의 비용 함수에서 포인트 대 포인트 에러로부터 공분산-기반 에러 함수로 스위칭할 수도 있다.
VI. 예시적인 시스템들 및 방법들
도 10은 예시적인 구현에 따른 방법(1000)을 도시한 플로우차트이다. 특히, 방법(1000)은 맵 생성 및 정렬을 수행하도록 구현될 수 있다.
방법(1000) (및 본 명세서에 개시된 다른 프로세스들 및 방법들)은, 예를 들어, 로봇 디바이스(들)(120)(또는 보다 구체적으로는, 그 컴포넌트들 또는 서브시스템들에 의해, 예를 들어 디바이스로 하여금 본 명세서에 설명된 기능들을 수행하게 하기 위해 실행가능한 명령어들을 갖는 비일시적 컴퓨터 판독가능 매체 및 프로세서에 의해)를 포함하는 배열 내에서 구현될 수 있는 방법을 제시한다. 부가적으로 또는 대안적으로, 방법(1000)은 임의의 다른 배열들 및 시스템들 내에서 구현될 수 있다.
방법(1000) 및 본 명세서에 개시된 다른 프로세스들 및 방법들은 블록들(1002, 1004, 1006, 1008, 1010, 및 1012) 중 하나 이상에 의해 예시된 동작들, 기능들, 또는 액션들을 포함할 수 있다. 블록들이 순차적 순서로 도시되지만, 이러한 블록들은 또한 병렬로, 및/또는 본 명세서에 설명된 것들과 상이한 순서로 수행될 수 있다. 또한, 다양한 블록들은 원하는 구현에 기초하여 더 적은 블록들로 결합될 수 있고, 추가 블록들로 분할될 수 있고/있거나 제거될 수 있다.
또한, 본 명세서에 개시된 방법(1000) 및 다른 프로세스들 및 방법들에 대해, 흐름도는 본 구현들의 하나의 가능한 구현의 기능성 및 동작을 도시한다. 이와 관련하여, 각각의 블록은 프로세스 내의 특정 논리 기능들 또는 단계들을 구현하기 위해 프로세서에 의해 실행가능한 하나 이상의 명령어를 포함하는, 모듈, 세그먼트, 또는 프로그램 코드의 일부를 나타낼 수 있다. 프로그램 코드는 예를 들어, 디스크 또는 하드 드라이브를 포함하는 저장 디바이스와 같은 임의의 타입의 컴퓨터 판독가능 매체 상에 저장될 수 있다. 컴퓨터 판독가능 매체는 예를 들어, 레지스터 메모리, 프로세서 캐시 및 랜덤 액세스 메모리(RAM)와 같은 단기간 동안 데이터를 저장하는 컴퓨터 판독가능 매체와 같은 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다.
컴퓨터 판독가능 매체는 또한, 예를 들어, 판독 전용 메모리(ROM), 광학 또는 자기 디스크, CD-ROM(compact-disc read only memory)과 같은 보조 또는 영구 장기 저장소와 같은 비일시적 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 또한 임의의 다른 휘발성 또는 비휘발성 저장 시스템들일 수 있고, 예를 들어, 컴퓨터 판독가능 저장 매체 또는 유형의 저장 디바이스로 간주될 수 있다. 또한, 본 명세서에 개시된 방법(1000) 및 다른 프로세스들 및 방법들에 대해, 도 10의 각각의 블록은 프로세스에서 특정 논리 기능들을 수행하도록 배선되는 회로를 나타낼 수 있다.
블록(1002)에서, 방법(1000)은 환경 내의 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하는 것을 포함할 수 있다. 컴퓨팅 시스템(예를 들어, 제어 시스템, 원격으로 위치된 컴퓨팅 시스템)은 센서 또는 센서들로부터 환경의 센서 측정들을 수신할 수 있다. 예를 들어, 컴퓨팅 시스템은 레이저 스캐너가 환경 내의 위치들을 변경함에 따라 레이저 스캐너로부터 스캔들을 수신할 수 있다. 컴퓨팅 시스템은 인커밍 센서 데이터 내에서 환경에 위치된 랜드마크들(예를 들어, 마커들)을 검출할 수 있다.
예시적 구현에서, 컴퓨팅 시스템은 2D 레이저 스캐너로부터 수평 평면을 따라 배열된 마커들의 측정들을 수신할 수 있다. 컴퓨팅 시스템은 레이저 스캐너로부터의 각각의 스캔에서 수평 평면에서 마커들을 검출할 수 있다. 다른 예들에서, 컴퓨팅 시스템은 카메라 이미지들, RADAR 등과 같은 이동 로봇에 결합된 다른 타입의 센서들로부터 센서 데이터를 수신할 수 있다.
블록(1004)에서, 방법(1000)은 제1 센서 데이터에 기초하여 복수의 마커의 맵 내의 센서의 포즈를 결정하는 것을 포함할 수 있다. 센서 데이터를 사용하여, 컴퓨팅 시스템은 마커들의 위치들을 지정하는 맵을 개발하면서도 환경에 대한 센서의 포즈를 결정하기 위해 SLAM 또는 유사한 프로세스를 수행할 수 있다. 컴퓨팅 시스템은 센서가 환경 내의 위치를 변경할 때 추정된 포즈뿐만 아니라 마커들의 맵을 추가로 결정하고 업데이트할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 센서를 포함하는 로봇의 포즈를 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 센서의 포즈 및 로봇의 포즈가 동일하다고 가정할 수 있다. 추가적인 예들에서, 컴퓨팅 시스템은 고정된 센서 대 로봇 변환을 사용하여 로봇의 포즈를 결정할 수 있다.
블록(1006)에서, 방법(1000)은 센서로부터 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하는 것을 포함할 수 있다. 컴퓨팅 시스템은 센서(들)와 환경 내의 표면들 사이의 거리들을 지정하는 센서 데이터를 추가로 수신할 수 있다. 이러한 윤곽 측정은 벽들, 계단들, 저장 랙들 등과 같은, 근처에 위치된 상이한 물리적 특징들과 센서 사이의 거리를 지정할 수 있다. 일부 예들에서, 센서(들)는 로봇 또는 다른 타입의 차량에 결합될 수 있고, 컴퓨팅 시스템은 센서와 환경 내의 표면 사이의 거리를 로봇과 표면 사이의 거리로서 정의할 수 있다.
블록(1008)에서, 방법(1000)은 제2 센서 데이터 및 센서의 결정된 포즈에 기초하여 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하는 것을 포함할 수 있다. 컴퓨팅 시스템은 점유 그리드를 결정하기 위해 로봇의 추정된 포즈 및 센서와 환경 내의 물리적 특징들 사이의 거리를 표시하는 센서 데이터를 사용할 수 있다.
점유 그리드는 환경의 주변 영역들을 나타내는 로봇의 POV(point of view)로부터 다수의 셀을 포함할 수 있다. 각각의 셀은 특정 영역을 나타낼 수 있고, 영역의 상태를 표시하는 상태를 할당받을 수 있다. 특히, 셀은 장애물, 자유 공간, 또는 미지의 것을 갖는 것으로서 할당될 수 있다. 미지의 셀들은 영역이 장애물을 포함하는지의 여부를 결정하기 위해 추가적인 센서 데이터를 요구할 수 있다. 로봇의 POV로부터의 센서 데이터를 사용하여 점유 그리드가 결정되기 때문에, 점유 그리드는 로봇의 센서로부터의 센서 데이터를 사용하여 결정되는 마커 위치들의 맵과 동일한 좌표 프레임을 사용하여 결정될 수 있다. 따라서, 컴퓨팅 시스템은 마커 위치들의 맵을 점유 그리드와 정렬시킬 수 있다.
도 11은 예시적인 실시예들에 따른 예시적인 점유 그리드를 도시한다. 점유 그리드(1100)는 로봇(1140)에 결합된 센서의 POV로부터 환경의 주변 영역들을 나타낸다. 그러나, 예시의 목적으로, 점유 그리드(1100)는 환경 내에 위치된 로봇(1140)을 추가로 도시한 상면도로부터 도시되어 있다. 점유 그리드(1100)의 각각의 정사각형 셀은 환경의 대응하는 영역을 나타낸다. 다른 예들에서, 점유 그리드(1100)는 상이한 형상들 및 크기들을 가질 수 있는 더 많거나 적은 셀을 포함할 수 있다. 예를 들어, 점유 그리드(1100)의 크기 및 전체 구성은 그것이 나타내는 환경에 따라 상이할 수 있다.
점유 그리드(1100)는 3개의 상이한 타입의 셀을 포함한다. 제1 타입, 셀(1110)은 십자형 패턴 음영을 포함하고, 환경 내의 물리적 특징들과 같은 검출된 장애물을 포함하는 영역들을 나타낸다. 점유 그리드(1100)는 로봇이 내비게이션 중에 회피할 수 있는 벽들 또는 다른 물리적 장애물들에 대응할 수 있는 점유 그리드(1100)의 경계 주위에 위치된 다수의 셀(1110)을 추가로 포함한다.
제2 타입, 셀(1120)은 음영을 포함하지 않고(비어있는 셀들), 환경에서 자유 공간을 나타낸다. 로봇은 환경에서 잠재적인 장애물들을 타격하지 않고 환경에서 셀들(1120)을 통해 성공적으로 내비게이팅할 수 있다. 제3 타입, 셀(1130)은 점선 음영을 포함하고, 환경 내의 미지의 영역들을 나타낸다. 점유 그리드(1000)를 개발하는 컴퓨팅 시스템은 그러한 영역들이 장애물을 포함하는지 또는 개방 공간인지 아직 식별되지 않았을 수 있다.
컴퓨팅 시스템은 환경을 내비게이팅하는 하나 이상의 로봇에 결합된 센서들로부터의 환경의 새로운 측정들을 활용하여 점유 그리드(1100)를 계속 업데이트 및 조정할 수 있다. 이와 같이, 로봇(1140)은 점유 그리드(1100)를 개발하여, 마커들의 맵을 설계 모델과 정렬시킬 수 있다.
도 10을 다시 참조하면, 블록(1010)은 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들에 관련시키는, 복수의 마커의 맵과 환경의 설계 모델 간의 변환을 결정하는 것을 포함할 수 있다. 설계 모델(예를 들어, CAD 모델)은 저장 랙들, 충전소들, 입구들 및 출구들, 주차 장소들, 및 벽들 및 다른 구조들의 일반적인 레이아웃의 위치들과 같은 환경의 물리적 특징들의 장소(location) 및 위치(position)를 지정할 수 있다. 컴퓨팅 시스템은 환경에서 로봇을 내비게이팅하는 제어 시스템이 제어 전략을 결정하기 위해 마커 위치들 및 물리적 특징들 둘 다를 사용할 수 있도록 마커들의 맵과 CAD 설계 모델 사이의 변환을 결정할 수 있다.
예시적 실시예에서, 컴퓨팅 시스템은 한 세트의 잠재적 병진들을 한 세트의 잠재적 회전들로 샘플링하고 이들 초기 추정치들을 사용하여 포인트들의 등록을 실행할 수 있다. 예를 들어, 컴퓨팅 시스템은 포인트 매칭들 간의 큰 거리(예를 들어, 50m)에서 시작할 수 있고 등록 동안 점유 그리드 맵의 해상도로 렌더링할 수 있다. 각각의 반복 단계에서, 컴퓨팅 시스템은 모든 점유된 셀 중심(또는 이들의 서브세트)에 대한 샘플링된 모델의 대응관계를 검색하고, 수학식 3을 사용하여 포인트 대 라인 에러를 최소화하는 변환을 계산할 수 있다. 수학식 3에서, "R"은 회전을 나타내고, "t"는 병진을 나타내고, "p"는 그리드 맵으로부터의 포인트이고, "q"는 모델에서의 매칭이고, "n"은 포인트에서의 법선(즉, 포인트 q가 샘플링된 라인의 방향에 수직인 벡터)이다.
Figure pct00009
일부 경우들에서, 환경(예를 들어, 창고)의 양태들을 나타내는 CAD 모델은 공간에서 벽들, 랙킹, 및 다른 물리적 특징들을 묘사하는 다각형들 또는 라인 세그먼트들의 세트들을 포함할 수 있다. 생성된 마커 위치들의 맵과 CAD 모델 사이의 샘플링 포인트들을 샘플링할 때, 컴퓨팅 시스템은 모든 라인 세그먼트들을 추출할 수 있다. 마커들의 맵 내의 경로 세그먼트의 길이가 샘플링된 거리를 초과할 때, 컴퓨팅 시스템은 시작 포인트를 추가하고, 이어서 라인 세그먼트를 따라 서로로부터 떨어진 세트 샘플 거리를 샘플링할 수 있다. 컴퓨팅 시스템은 또한, 여러 라인 세그먼트들로부터의 추가된 샘플 포인트들이 이전에 추가된 포인트에 대응하지 않는다고 결정하는 것을 포함할 수 있는 중복들을 체크할 수 있다. 예를 들어, 2개의 라인 세그먼트가 동일한 포인트에서 종료하거나 시작할 때, 컴퓨팅 시스템은 샘플링된 포인트 세트에 한 번만 포인트를 추가할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 마커 위치들의 맵의 포인트들이 설계 모델의 포인트들과 얼마나 잘 정렬되는지에 기초하여 신뢰도를 결정할 수 있다. 신뢰도는 최고 신뢰도를 산출하는 변환을 선택하는데 사용될 수 있다. 예를 들어, 컴퓨팅 시스템은 신뢰도가 임계 신뢰도 수준(예를 들어, 50% 신뢰도)보다 높을 것을 요구할 수 있다. 컴퓨팅 시스템은 또한 거리 측정들과 CAD 모델 간의 매칭들을 사용하여 마커 맵에서의 로봇 포즈들 및 마커 위치들의 맵과 CAD 모델 간의 변환을 최적화할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 수평 평면의 회전 및 병진을 통한 변환을 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 맵의 좌표 프레임을 설계 모델의 좌표 프레임과 정렬시키기 위해 마커 위치들의 맵을 회전시킬 수 있다.
추가적인 예에서, 컴퓨팅 시스템은 다수의 2차원 회전 및 병진값들을 샘플링함으로써 변환을 결정할 수 있다. 특히, 컴퓨팅 시스템은 다수의 후보 변환의 각각의 후보 변환에 대해, 점유 그리드 맵 내의 점유된 셀들과 샘플링된 포인트들을 포함하는 설계 모델로부터의 라인들 사이의 포인트 대 라인 법선 거리들의 합계를 결정할 수 있다. 컴퓨팅 시스템은 각각의 후보 변환에 대해 결정된 포인트 대 라인 법선 거리들의 합계에 기초하여 다수의 후보 변환으로부터의 변환을 추가로 결정할 수 있다.
또한, 컴퓨팅 시스템은 다수의 후보 변환의 각각의 후보 변환에 대해, 샘플링된 포인트들을 포함하는 설계 모델로부터 라인의 임계 거리 내에 있는 점유 그리드 맵에서의 점유된 셀들의 백분율을 포함하는 측정 신뢰도를 결정할 수 있다. 다음으로, 컴퓨팅 시스템은 각각의 후보 변환에 대해 결정된 측정된 신뢰도에 기초하여 변환을 결정할 수 있다. 컴퓨팅 시스템은 또한 결정된 변환에 대한 측정된 신뢰도의 표시를 제공할 수 있다.
도 12a는 예시적인 실시예들에 따른, 마커 위치들의 맵과 설계 모델 사이의 변환 결정을 도시한다. 도 12a에 도시된 바와 같이, 마커들(1200)의 맵은 환경을 내비게이팅하는 로봇에 결합된 센서로부터 스캔들에서 검출된 마커들(1202)의 위치들을 운반한다. 마커들(1202)은 로봇이 안전하게 내비게이팅하는 것을 보조하기 위해 다양한 위치에 위치된 것으로 도시되어 있다. 다른 예들에서, 마커들(1202)은 다른 예들에서 더 많거나 더 적은 마커들을 포함할 수 있다.
설계 모델(1210)은 마커들(1200)의 맵에 의해 표현되는 동일한 환경의 2D 개요 모델을 나타내고, 저장 랙들, 벽들, 및 다른 특징들과 같은 물리적 구조들의 위치를 나타낸다. 도 12a에 도시된 예시적인 예시에서, 마커들(1200)의 맵의 좌표 프레임은 설계 모델(1210)의 좌표 프레임과 정렬되지 않는다. 그러나, 컴퓨팅 시스템은 마커들(1200)의 맵의 좌표 프레임을 설계 모델(1210)의 좌표 프레임과 정렬시키는 변환을 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 로봇 근처의 표면들의 측정들을 사용하여 점유 그리드 맵을 결정하고 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들과 관련시키는 변환을 추가로 결정할 수 있다.
일례로서, 컴퓨팅 시스템은 점유 그리드 맵 내의 점유된 셀들과 샘플링된 포인트들을 포함하는 설계 모델로부터의 라인들 사이의 포인트 대 라인 법선 거리들의 합계를 결정하고, 각각의 후보 변환에 대해 결정된 포인트 대 라인 법선 거리들의 합계에 기초하여 한 세트의 후보 변환들로부터의 변환을 결정할 수 있다. 컴퓨팅 시스템은 또한 다른 프로세스들을 사용하여 변환을 결정할 수 있다.
도 12b는 예시적인 실시예들에 따른, 도 12a에 도시된 설계 모델과 마커 위치들의 맵 사이의 정렬을 도시한다. 전술한 바와 같이, 컴퓨팅 시스템은 마커들(1200)의 맵을 설계 모델(1210)과 정렬하는 변환을 결정할 수 있다. 그 결과, 컴퓨팅 시스템은 환경 내의 물리적 특징들에 대한 마커들(1202)의 위치들을 묘사하는 정렬된 맵(1230)을 결정할 수 있다. 따라서, 로봇들은 정렬된 맵(1230)을 사용하여 경로들을 결정하고 내비게이션 동안 장애물들을 회피할 수 있다.
도 10을 다시 참조하면, 블록(1012)은 복수의 마커의 맵과 설계 모델 사이의 변환을 제공하는 것을 포함할 수 있다. 컴퓨팅 시스템은 환경 또는 다른 시스템들에 배치된 로봇들의 제어 시스템들과 같은 하나 이상의 디바이스에 변환을 제공할 수 있다. 예로서, 컴퓨팅 시스템은 환경내의 로봇을 내비게이팅하기 위한 제어 명령어들을 제공하기 위해 설계 모델에 표시된 물리적 특징들의 변환, 마커 위치들, 및 위치들을 사용할 수 있다. 컴퓨팅 시스템은 내비게이팅하는데 어려운 영역들에 대한 경고들과 같은 추가 정보로 제어 명령어들을 보충할 수 있다.
일부 예시적인 실시예들에서, 컴퓨팅 시스템은 수신된 추가적인 센서 데이터를 사용하여 마커 위치들의 개발된 맵에 대한 로봇의 포즈 추정을 정제할 수 있다. 예를 들어, 컴퓨팅 시스템은 환경의 새롭게 취득된 스캔들을 사용하여 한 세트의 마커에 대한 로봇의 위치 또는 배향을 조정할 수 있다.
컴퓨팅 시스템은 또한 로봇의 정제된 포즈에 기초하여 결정된 변환을 조정할 수 있다. 예를 들어, 컴퓨팅 시스템은 이전에 결정된 변환에 기초하여 후보 변환의 범위를 샘플링함으로써 변환을 조정할 수 있다. 특히, 후보 변환들의 범위는 컴퓨팅 시스템이 초기 변환을 원래 결정하는데 사용되었던 후보 변환들의 초기 범위보다 좁을 수 있다.
일부 SLAM 그래프들에서, 그래프는 2개의 포즈(노드들)로부터의 마커 검출들의 매칭들에 의해 형성된 노드들 및 에지들에서의 포즈 및 스캔들을 포함할 수 있다. 동시에 정렬을 행할 때, 컴퓨팅 시스템은 거리 측정들(마커 검출들이 아님)의 매칭들을 나타내는 추가적인 에지들을 CAD 모델로부터 샘플링된 가장 가까운 포인트들에 추가할 수 있다. 포인트 대 오차를 사용하는 대신에, 컴퓨팅 시스템은 매칭 마커 검출들 사이의 거리와 CAD 모델에서의 랙킹과 측정된 2D 스캔 포인트 대 벽들 사이의 거리를 최소화하는 방식으로 포즈들을 최적화하기 위해 포인트 대 라인 에러를 사용할 수 있다.
일부 예시적인 실시예들에서, 컴퓨팅 시스템은 그래프-기반 최적화 문제를 해결함으로써 마커 위치들의 맵 및 변환을 결정할 수 있다. 그래프-기반 최적화 문제는 점유 그리드 맵 내의 점유된 셀과 샘플링된 포인트를 포함하는 설계 모델로부터의 라인 사이의 각각의 포인트 대 라인 법선 거리에 대한 별개의 에지를 최소화하는 것을 포함할 수 있다. 컴퓨팅 시스템은 그래프-기반 최적화 문제를 해결하여, SLAM을 동시에 수행하면서 마커들의 맵 내의 포인트들을 설계 모델 내의 포인트들과 정렬할 수 있다.
일부 예들에서, 컴퓨팅 시스템은 결정된 변환에 기초하여 CAD 모델에서 정렬 에러를 식별하고 CAD 모델에서 식별된 정렬 에러의 표시를 추가로 제공할 수 있다. 예를 들어, 컴퓨팅 시스템은 물리적 특징의 위치 및 배향의 CAD 모델 표현이 물리적 특징의 실제 위치 및 배향과 약간 상이한 것으로 결정할 수 있다. 이와 같이, 컴퓨팅 시스템은 변환을 결정할 때(또는 이후에) 정렬 에러를 식별하고 정렬 에러의 표시를 제공할 수 있다.
수십 또는 수백 개의 마커를 갖는 큰 환경을 포함하는 다른 예에서, 컴퓨팅 시스템은 맵과 설계 모델 둘 다에 대한 중심을 결정함으로써 마커 위치들의 맵과 설계 모델 사이의 변환을 결정할 수 있다. 컴퓨팅 시스템은 마커들의 맵 내의 모든 마커들로부터 평균을 감산하고, 잠재적 배향들의 범위를 커버하는 상이한 초기 포즈들을 갖는 결과적인 포인트 세트들 상에 등록 기반 프로세스(예를 들어, ICP 프로세스)를 사용할 수 있다. 따라서, 컴퓨팅 시스템은 정렬 파라미터들(즉, 정렬을 가능하게 하는 변환)을 결정하기 위해 가장 많은 수의 인라이어(inlier)들을 산출하는 등록 정렬을 사용할 수 있다.
추가적인 예시적인 실시예에서, 컴퓨팅 시스템은 환경 내의 마커들의 위치들을 확인하기 위해 마커 위치들의 맵을 맵의 이전 버전과 정렬할 수 있다. 예를 들어, 컴퓨팅 시스템은 컨센서스-기반 프레임워크를 사용하여 양쪽 맵들 내에 위치된 마커들 사이의 잠재적 매칭들을 샘플링하고 또한 가장 많은 수의 인라이어들(샘플링된 세트에 대해 계산된 정렬을 사용한 후에 발견된 매칭들)을 생성하는 매칭들을 사용하여, 양쪽 맵들을 고려한 마커 위치들의 업데이트된 맵을 생성할 수 있다.
V. 결론
본 개시내용은 다양한 양태들의 예시들로서 의도되는, 본 출원에서 설명된 특정 구현들에 관하여 제한되지 않는다. 본 기술분야의 통상의 기술자에게 명백한 바와 같이, 그의 사상 및 범위로부터 벗어나지 않고서 많은 수정들 및 변형들이 이루어질 수 있다. 본 개시내용의 범위 내의 기능적으로 동등한 방법들 및 장치들은 본 명세서에 나열된 것들에 추가하여, 전술한 설명으로부터 본 기술분야의 통상의 기술자에게 분명할 것이다. 그러한 수정들 및 변형들은 첨부된 청구범위의 범주 내에 속하도록 의도된다.
상기 상세한 설명은 첨부 도면들을 참조하여 개시된 시스템들, 디바이스들 및 방법들의 다양한 특징들 및 기능들을 설명한다. 문맥에서 달리 기술하지 않는 한, 도면에서 유사한 기호는 전형적으로 유사한 컴포넌트를 나타낸다. 본 명세서 및 도면들에서 설명된 예시적인 구현들은 제한하려는 것이 아니다. 본원에서 제시된 청구 대상의 사상 또는 범위로부터 벗어나지 않고도, 다른 구현들이 활용될 수 있고, 다른 변경이 이루어질 수 있다. 본 명세서에 전반적으로 설명되고 도면에 도시된 바와 같이, 본 개시 내용의 양태들은 본 명세서에서 명확하게 모두 고려되는, 매우 다양한 상이한 구성들로 배열, 치환, 조합, 분리 및 설계될 수 있다는 것을 용이하게 이해할 수 있을 것이다.
도면들에 도시된 특정 배열들은 제한적인 것으로 간주되어서는 안 된다. 다른 구현들이 주어진 도면에 도시된 각각의 요소를 더 많이 또는 더 적게 포함할 수 있다는 것을 이해해야 한다. 또한, 예시된 요소들 중 일부는 결합되거나 생략될 수 있다. 또한, 예시적인 구현은 도면들에 예시되지 않은 요소들을 포함할 수 있다.
다양한 양태 및 구현이 본 명세서에서 개시되었지만, 다른 양태들 및 예들이 관련 기술 분야의 통상의 기술자에게 명백할 것이다. 본 명세서에서 개시된 다양한 양태 및 구현은 설명을 위한 것으로 제한하려는 의도는 아니며, 진정한 범위는 다음 청구항들에 의해서 표시된다.

Claims (20)

  1. 방법으로서,
    센서로부터, 환경 내의 상기 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하는 단계;
    상기 제1 센서 데이터에 기초하여 상기 복수의 마커의 맵 내의 상기 센서의 포즈를 결정하는 단계;
    상기 센서로부터, 상기 센서로부터 상기 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하는 단계;
    상기 제2 센서 데이터 및 상기 센서의 결정된 포즈에 기초하여 상기 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하는 단계;
    상기 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들과 관련시키는, 상기 복수의 마커의 맵과 상기 환경의 설계 모델 간의 변환을 결정하는 단계; 및
    상기 복수의 마커의 맵과 상기 설계 모델 간의 변환을 제공하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 복수의 마커는 수평 평면을 따라 배열된 복수의 역반사성 마커를 포함하고, 상기 제1 센서 데이터는 2차원 레이저 스캐너로부터 수신되는 방법.
  3. 제1항에 있어서,
    상기 변환을 결정하는 단계는 수평 평면의 회전 및 병진을 결정하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 변환을 결정하는 단계는 복수의 2차원 회전 및 병진값들을 샘플링하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 변환을 결정하는 단계는:
    복수의 후보 변환 중 각각의 후보 변환에 대해, 상기 점유 그리드 맵 내의 점유된 셀들과 상기 샘플링된 포인트들을 포함하는 설계 모델로부터의 라인들 사이의 포인트 대 라인(point-to-line) 법선 거리들의 합계를 결정하는 단계; 및
    각각의 후보 변환에 대해 결정된 포인트 대 라인 법선 거리들의 합계에 기초하여 상기 복수의 후보 변환으로부터의 변환을 결정하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 변환을 결정하는 단계는:
    복수의 후보 변환 중 각각의 후보 변환에 대해, 상기 샘플링된 포인트들을 포함하는 상기 설계 모델로부터의 라인들의 임계 거리 내에 있는 점유 그리드 맵 내의 점유된 셀들의 백분율을 포함하는 측정 신뢰도를 결정하는 단계; 및
    각각의 후보 변환에 대해 결정된 측정 신뢰도에 기초하여 상기 복수의 후보 변환으로부터의 변환을 결정하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 결정된 변환에 대한 측정 신뢰도의 표시를 제공하는 단계를 추가로 포함하는 방법.
  8. 제1항에 있어서,
    상기 점유 그리드 맵을 결정하는 단계는 장애물, 자유 공간, 및 미지의 영역 중 하나인 상태를 각각의 셀에 할당하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    추가로 수신된 센서 데이터에 기초하여 상기 복수의 마커의 맵 내에서 상기 센서의 포즈를 정제하는 단계; 및
    상기 복수의 마커의 맵 내의 상기 센서의 정제된 포즈에 기초하여 상기 복수의 마커의 맵과 상기 환경의 설계 모델 사이의 변환을 조정하는 단계를 추가로 포함하는 방법.
  10. 제9항에 있어서,
    상기 변환을 조정하는 단계는 상기 결정된 변환에 기초하여 후보 변환들의 범위를 샘플링하는 단계를 포함하고, 후보 변환들의 샘플링된 범위는 상기 변환을 결정하기 위해 사용되는 후보 변환들의 초기 범위보다 좁은 방법.
  11. 제1항에 있어서,
    그래프-기반 최적화 문제를 해결함으로써 상기 복수의 마커의 맵 및 상기 변환을 결정하는 단계를 추가로 포함하는 방법.
  12. 제11항에 있어서,
    상기 그래프-기반 최적화 문제는 상기 점유 그리드 맵 내의 점유된 셀과 샘플링된 포인트를 포함하는 상기 설계 모델로부터의 라인 사이의 각각의 포인트 대 라인 법선 거리에 대한 별도의 에지를 포함하는 방법.
  13. 제1항에 있어서,
    상기 변환 및 상기 환경의 설계 모델에 기초하여 로봇을 제어하기 위한 명령어들을 제공하는 단계를 추가로 포함하는 방법.
  14. 제1항에 있어서,
    상기 환경의 설계 모델은 CAD(computer-aided design) 모델을 포함하는 방법.
  15. 제14항에 있어서,
    상기 변환에 기초하여 상기 CAD 모델에서의 정렬 에러를 식별하는 단계; 및
    상기 CAD 모델에서의 상기 식별된 정렬 에러의 표시를 제공하는 단계를 추가로 포함하는 방법.
  16. 시스템으로서,
    센서;
    컴퓨팅 시스템;
    비일시적 컴퓨터 판독가능 매체; 및
    상기 비일시적 컴퓨터 판독가능 매체 상에 저장되고,
    상기 센서로부터, 환경 내의 상기 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하고;
    상기 제1 센서 데이터에 기초하여 상기 복수의 마커의 맵 내의 상기 센서의 포즈를 결정하고;
    상기 센서로부터, 상기 센서로부터 상기 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하고;
    상기 제2 센서 데이터 및 상기 센서의 결정된 포즈에 기초하여 상기 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하고;
    상기 점유 그리드 맵 내의 점유된 셀들을 상기 설계 모델로부터의 샘플링된 포인트들과 관련시키는, 상기 복수의 마커의 맵과 상기 환경의 설계 모델 간의 변환을 결정하고;
    상기 복수의 마커의 맵과 상기 설계 모델 간의 변환을 제공하도록 상기 컴퓨팅 시스템에 의해 실행가능한 프로그램 명령어들을 포함하는 시스템.
  17. 제16항에 있어서,
    상기 복수의 마커는 역반사성 마커들을 포함하는 시스템.
  18. 제16항에 있어서,
    상기 컴퓨팅 시스템은:
    추가로 수신된 센서 데이터에 기초하여 상기 복수의 마커의 맵 내의 상기 센서의 포즈를 정제하고;
    상기 복수의 마커의 맵 내의 상기 센서의 상기 정제된 포즈에 기초하여 상기 복수의 마커의 맵과 상기 환경의 상기 설계 모델 사이의 상기 변환을 조정하도록 추가로 구성되는 시스템.
  19. 컴퓨팅 시스템으로 하여금 동작들을 수행하게 하기 위해 컴퓨팅 시스템에 의해 실행가능한 프로그램 명령어들을 내부에 저장하고 있는 비일시적 컴퓨터 판독가능 매체로서, 상기 동작들은:
    센서로부터, 환경 내의 상기 센서에 대한 복수의 마커의 위치들을 표시하는 제1 센서 데이터를 수신하는 동작;
    상기 제1 센서 데이터에 기초하여 상기 복수의 마커의 맵 내의 상기 센서의 포즈를 결정하는 동작;
    상기 센서로부터, 상기 센서로부터 상기 환경 내의 표면까지의 거리를 표시하는 제2 센서 데이터를 수신하는 동작;
    상기 제2 센서 데이터 및 상기 센서의 결정된 포즈에 기초하여 상기 환경 내의 표면을 나타내는 점유 그리드 맵을 결정하는 동작;
    상기 점유 그리드 맵 내의 점유된 셀들을 설계 모델로부터의 샘플링된 포인트들과 관련시키는, 상기 복수의 마커의 맵과 상기 환경의 설계 모델 간의 변환을 결정하는 동작; 및
    상기 복수의 마커의 맵과 상기 설계 모델 간의 변환을 제공하는 동작을 포함하는 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 센서는 차량에 결합되고;
    상기 동작들은:
    고정된 센서 대 차량 변환을 사용하여 상기 차량의 포즈를 결정하는 동작을 추가로 포함하는 비일시적 컴퓨터 판독가능 매체.
KR1020197033980A 2017-04-21 2018-03-14 환경 맵 생성 및 정렬을 위한 방법 및 시스템 KR102342152B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/494,341 US10222215B2 (en) 2017-04-21 2017-04-21 Methods and systems for map generation and alignment
US15/494,341 2017-04-21
PCT/US2018/022385 WO2018194767A1 (en) 2017-04-21 2018-03-14 Method and system for environment map generation and alignment

Publications (2)

Publication Number Publication Date
KR20190142360A true KR20190142360A (ko) 2019-12-26
KR102342152B1 KR102342152B1 (ko) 2021-12-23

Family

ID=61899364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197033980A KR102342152B1 (ko) 2017-04-21 2018-03-14 환경 맵 생성 및 정렬을 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US10222215B2 (ko)
EP (1) EP3612906B1 (ko)
JP (1) JP6986188B6 (ko)
KR (1) KR102342152B1 (ko)
WO (1) WO2018194767A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
JP6717697B2 (ja) * 2016-07-27 2020-07-01 シャープ株式会社 自律走行装置
US10346797B2 (en) 2016-09-26 2019-07-09 Cybernet Systems, Inc. Path and load localization and operations supporting automated warehousing using robotic forklifts or other material handling vehicles
JP6673293B2 (ja) * 2017-05-24 2020-03-25 トヨタ自動車株式会社 車両システム
US10860750B2 (en) * 2017-06-15 2020-12-08 Sap Se Model driven layout design for robotics warehouse
US11815602B2 (en) * 2017-10-03 2023-11-14 Intel Corporation Grid occupancy mapping using error range distribution
JP7353747B2 (ja) * 2018-01-12 2023-10-02 キヤノン株式会社 情報処理装置、システム、方法、およびプログラム
GB201800751D0 (en) * 2018-01-17 2018-02-28 Mo Sys Engineering Ltd Bulk Handling
US11567504B1 (en) * 2018-09-12 2023-01-31 Amazon Technologies, Inc. Dynamic wait location for an autonomous mobile device
JP2020049642A (ja) * 2018-09-28 2020-04-02 セイコーエプソン株式会社 制御装置、ロボットシステム、及びロボット
CN109460032A (zh) * 2018-11-29 2019-03-12 亿嘉和科技股份有限公司 一种基于激光对射的定位方法以及机器人自主充电方法
CN109839935B (zh) * 2019-02-28 2020-08-25 华东师范大学 多agv的路径规划方法及设备
CN110032196B (zh) * 2019-05-06 2022-03-29 北京云迹科技股份有限公司 一种机器人回充方法及装置
KR102224637B1 (ko) * 2019-07-05 2021-03-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102275300B1 (ko) 2019-07-05 2021-07-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
US11927457B2 (en) 2019-07-10 2024-03-12 Deka Products Limited Partnership System and method for real time control of an autonomous device
KR102361130B1 (ko) * 2019-07-11 2022-02-09 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102297496B1 (ko) 2019-07-11 2021-09-02 엘지전자 주식회사 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
US11958183B2 (en) 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
US11233937B1 (en) * 2019-09-26 2022-01-25 Amazon Technologies, Inc. Autonomously motile device with image capture
WO2021083529A1 (en) * 2019-10-31 2021-05-06 Telefonaktiebolaget Lm Ericsson (Publ) Object handling in an absolute coordinate system
CN110853098B (zh) * 2019-11-15 2023-06-16 上海思岚科技有限公司 机器人定位方法、装置、设备及存储介质
NO345665B1 (en) * 2019-11-20 2021-06-07 Autostore Tech As A method, system and computer program for controlling an automated storage and retrieval system during rebuilding its physical design
US11520332B1 (en) * 2019-12-03 2022-12-06 Amazon Technologies, Inc. System for automated exploration by an autonomous mobile device using markers based on image features
CN111009036B (zh) * 2019-12-10 2023-11-21 北京歌尔泰克科技有限公司 同步定位与地图构建中栅格地图的修正方法、装置
AU2021221963A1 (en) 2020-02-21 2022-06-23 Crown Equipment Corporation Lighting floor on sides of material handling vehicle to indicate limited or non-limited area
SE544298C2 (en) * 2020-04-14 2022-03-29 Husqvarna Ab Robotic work tool system and method for defining a working area
DE102020205549A1 (de) * 2020-04-30 2021-11-04 Volkswagen Aktiengesellschaft Verfahren zum Betrieb eines Transportmittel-Assistenz- oder Steuerungssystems
CN111683203B (zh) * 2020-06-12 2021-11-09 达闼机器人有限公司 栅格地图生成方法、装置及计算机可读存储介质
CN111753036B (zh) * 2020-06-19 2024-04-16 重庆大学 一种基于栅格地图的智能车库地图构建方法
CN111750864B (zh) * 2020-06-30 2022-05-13 杭州海康机器人技术有限公司 一种基于视觉地图的重定位方法和装置
EP3964911B1 (en) * 2020-09-03 2023-08-02 Volvo Autonomous Solutions AB A method of controlling the working scheme of an autonomous working machine at a worksite
CN112068154B (zh) * 2020-09-14 2022-12-13 中科院软件研究所南京软件技术研究院 一种激光建图定位方法、装置、存储介质及电子设备
CN113739798B (zh) * 2020-11-05 2024-04-12 北京京东乾石科技有限公司 路径规划方法和装置
CN112304318B (zh) * 2020-11-10 2022-07-29 河北工业大学 一种虚实耦合约束环境下的机器人自主导航方法
US11699014B2 (en) * 2021-01-29 2023-07-11 Insight Direct Usa, Inc. System and method for determining paths between locations in a physical system
WO2022167097A1 (en) * 2021-02-08 2022-08-11 Abb Schweiz Ag Human-robot collaborative navigation
JP7090809B1 (ja) * 2021-02-15 2022-06-24 三菱電機株式会社 交通管理装置、交通管理方法及び交通管理プログラム
US20220266867A1 (en) * 2021-02-22 2022-08-25 Argo AI, LLC Indoor Localization of Autonomous Vehicles
CN113375657A (zh) * 2021-04-26 2021-09-10 北京迈格威科技有限公司 电子地图的更新方法、装置和电子设备
US20230029596A1 (en) * 2021-07-30 2023-02-02 Clearedge3D, Inc. Survey device, system and method
BE1029956B1 (nl) * 2021-11-24 2023-06-19 Dsp Automation Autonoom hefvoertuig en navigatiesysteem daarvoor
WO2023200075A1 (ko) * 2022-04-12 2023-10-19 (주)서울로보틱스 객체 추적 장치, 객체 추적 방법 및 이를 수행하는 프로그램을 기록한 기록매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140247A (ja) * 2008-12-11 2010-06-24 Yaskawa Electric Corp 移動体システム
KR101427186B1 (ko) * 2013-06-12 2014-08-07 건국대학교 산학협력단 미지환경에서 지능형 로봇의 이동경로 생성을 위한 영역탐색 및 매핑 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11104984A (ja) * 1997-10-06 1999-04-20 Fujitsu Ltd 実環境情報表示装置及び実環境情報表示処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002108446A (ja) 2000-09-29 2002-04-10 Nippon Seiki Co Ltd 移動体の誘導方法
JP2004298977A (ja) 2003-03-28 2004-10-28 Sony Corp 行動制御装置、行動制御方法及び行動制御プログラム、並びに移動型ロボット装置
JP4448497B2 (ja) 2006-03-23 2010-04-07 本田技研工業株式会社 移動体の自己位置検出装置および位置検出システム
JP5304128B2 (ja) 2008-09-16 2013-10-02 村田機械株式会社 環境地図修正装置及び自律移動装置
JP5745067B2 (ja) 2010-09-24 2015-07-08 アイロボット・コーポレーション Vslam最適化のためのシステムおよび方法
US20120303255A1 (en) * 2011-05-26 2012-11-29 INRO Technologies Limited Method and apparatus for providing accurate localization for an industrial vehicle
US8548671B2 (en) * 2011-06-06 2013-10-01 Crown Equipment Limited Method and apparatus for automatically calibrating vehicle parameters
JP5658372B2 (ja) 2011-08-29 2015-01-21 株式会社日立製作所 監視装置、監視システム及び監視方法
US9037396B2 (en) 2013-05-23 2015-05-19 Irobot Corporation Simultaneous localization and mapping for a mobile robot
US9354070B2 (en) * 2013-10-31 2016-05-31 Crown Equipment Corporation Systems, methods, and industrial vehicles for determining the visibility of features
US9630319B2 (en) * 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
US9816820B2 (en) * 2016-01-07 2017-11-14 Caterpillar Inc. Positioning system having smoothed kalman filter update
US20170329332A1 (en) * 2016-05-10 2017-11-16 Uber Technologies, Inc. Control system to adjust operation of an autonomous vehicle based on a probability of interference by a dynamic object

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140247A (ja) * 2008-12-11 2010-06-24 Yaskawa Electric Corp 移動体システム
KR101427186B1 (ko) * 2013-06-12 2014-08-07 건국대학교 산학협력단 미지환경에서 지능형 로봇의 이동경로 생성을 위한 영역탐색 및 매핑 장치

Also Published As

Publication number Publication date
US20180306587A1 (en) 2018-10-25
WO2018194767A1 (en) 2018-10-25
EP3612906B1 (en) 2023-06-07
JP6986188B2 (ja) 2021-12-22
US10222215B2 (en) 2019-03-05
EP3612906A1 (en) 2020-02-26
JP2020519987A (ja) 2020-07-02
JP6986188B6 (ja) 2022-02-08
KR102342152B1 (ko) 2021-12-23

Similar Documents

Publication Publication Date Title
KR102342152B1 (ko) 환경 맵 생성 및 정렬을 위한 방법 및 시스템
US11373395B2 (en) Methods and systems for simultaneous localization and calibration
US11326887B2 (en) Landmark placement for localization
JP6811258B2 (ja) ロボット車両の位置測定
US10328578B2 (en) Methods and systems for detecting, recognizing, and localizing pallets
US11262200B2 (en) Boolean satisfiability (SAT) reduction for geometry and kinematics agnostic multi-agent planning
US10296012B2 (en) Pre-computation of kinematically feasible roadmaps
JP6853832B2 (ja) ネガティブマッピングを用いる位置測定
US11493930B2 (en) Determining changes in marker setups for robot localization
JP2021196489A (ja) 地図補正システム、及び地図補正プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right