KR102148593B1 - 로봇 차량들의 국부화 - Google Patents

로봇 차량들의 국부화 Download PDF

Info

Publication number
KR102148593B1
KR102148593B1 KR1020187034361A KR20187034361A KR102148593B1 KR 102148593 B1 KR102148593 B1 KR 102148593B1 KR 1020187034361 A KR1020187034361 A KR 1020187034361A KR 20187034361 A KR20187034361 A KR 20187034361A KR 102148593 B1 KR102148593 B1 KR 102148593B1
Authority
KR
South Korea
Prior art keywords
landmarks
robot
sample set
candidate
pose
Prior art date
Application number
KR1020187034361A
Other languages
English (en)
Other versions
KR20190003969A (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 KR20190003969A publication Critical patent/KR20190003969A/ko
Application granted granted Critical
Publication of KR102148593B1 publication Critical patent/KR102148593B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • 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
    • 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
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

예시적인 방법은 로봇 상의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하는 단계를 포함한다. 방법은 복수의 샘플 세트를 결정하는 단계를 추가로 포함하고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다. 방법은 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 각각의 샘플 세트에 대한 변환을 결정하는 단계를 또한 포함한다. 방법은, 각각의 샘플 세트에 대한 결정된 변환을 복수의 후보 랜드마크에 대해 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 각각의 샘플 세트와 연관된 인라이어들의 수를 결정하는 단계를 추가로 포함한다. 방법은 각각의 샘플 세트와 연관된 인라이어들의 수에 기초하여 복수의 샘플 세트로부터 샘플 세트를 선택하는 단계를 추가로 포함한다. 방법은 선택된 샘플 세트에 기초하여 로봇의 포즈를 추정하는 단계를 또한 추가로 포함한다.

Description

로봇 차량들의 국부화
관련 출원에 대한 상호 참조
본 출원은 2016년 12월 23일자로 출원된 미국 특허 출원 제15/390,460호에 대한 우선권을 주장하며, 이 출원은 이로써 그 전체가 본 명세서에 참고로 포함된다.
창고는 제조자, 도매업자 및 운송업을 포함한, 다양한 상이한 타입의 상업적 엔티티들에 의한 상품의 저장을 위해 사용될 수 있다. 예시적인 저장된 상품은 원자재, 부품들 또는 컴포넌트들, 포장 재료들, 및 완성된 제품들을 포함할 수 있다. 일부 경우에, 창고는 상품이 배달 트럭이나 다른 타입의 차량에 로딩되고 그로부터 언로딩되는 것을 가능하게 하는 로딩 도크(loading dock)를 구비할 수 있다. 창고는 또한 박스들 또는 다른 객체들의 스택들을 포함하는 납작한 운송 구조물들인 팔레트들의 저장을 허용하기 위해 팔레트 랙(pallet rack)들의 열들을 사용할 수 있다. 추가적으로, 창고는 상품들 또는 상품들의 팔레트들을 들어올리고 이동시키기 위한 머신들 또는 차량들, 예컨대 크레인 및 포크리프트를 사용할 수 있다. 인간 운영자들이 머신, 차량 및 다른 장비를 동작시키기 위해 이용될 수 있다. 일부 경우에, 머신들 또는 차량들 중 하나 이상은 컴퓨터 제어 시스템들에 의해 유도되는 로봇 디바이스("로봇")일 수 있다. 컴퓨터 제어 시스템들은 창고 도처에 분포된 마커들과 관련하여 하나 이상의 로봇을 국부화할 수 있다. 로봇들을 국부화하는 것은 컴퓨터 제어 시스템들이 창고를 통해 하나 이상의 로봇을 내비게이팅하는 것을 가능하게 할 수 있다.
예시적인 시스템들 및 방법들은 로봇의 환경 내의 로봇의 포즈를 추정하는 것을 도울 수 있다. 로봇의 환경은 랜드마크들을 포함할 수 있다. 랜드마크들의 위치들은 매핑될 수 있다. 시스템들은 로봇이 매핑된 랜드마크들에 대한 그의 포즈에 기초하여 환경 내에 그 자체를 국부화하는 것을 허용할 수 있다. 로봇을 국부화하기 위해, 로봇은 랜드마크들의 위치들을 나타내는 랜드마크들로부터 신호들을 수신하는 센서들을 포함할 수 있다. 그러나, 모든 수신된 신호들이 매핑된 랜드마크로부터 나오는 것은 아닐 것이다. 따라서, 수신된 신호들로부터의 각각의 검출은 후보 랜드마크로서 취급될 수 있다. 시스템들은 어느 것이 매핑된 랜드마크들에 대응하는지를 결정하기 위해 후보 랜드마크들을 점검할 수 있고, 매핑된 랜드마크들인 것으로 결정되는 후보 랜드마크들에 기초하여 로봇의 포즈를 결정할 수 있다. 시스템들은 후보 랜드마크들의 다수의 서브 세트들 및 대응하는 매핑된 랜드마크들을 샘플링할 수 있다. 시스템들은 후보 랜드마크들의 서브 세트를 대응하는 매핑된 랜드마크들에 정렬하는 각각의 샘플링된 서브 세트의 변환을 결정할 수 있다. 변환은 후보 랜드마크들 모두에 적용될 수 있다. 인라이어 거리 임계값 내에 있는 변환된 후보 랜드마크들과 이웃하는 매핑된 랜드마크들 사이의 거리들은 "인라이어들"로 간주될 수 있다. 인라이어들은 적용된 변환이 로봇의 포즈를 정확히 표현하는지를 나타낼 수 있다. 더 많은 수의 인라이어를 생성하는 샘플 세트는 로봇의 포즈를 정확하게 표현할 가능성이 더 많다. 하나의 그러한 샘플 세트는 복수의 서브 세트들로부터 선택될 수 있다. 그 후, 로봇의 포즈는 선택된 샘플 세트에 기초하여 추정될 수 있다.
일 예에서, 로봇 상의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하는 단계를 포함하는 방법이 제공된다. 방법은 복수의 샘플 세트를 결정하는 단계를 추가로 포함하고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다. 방법은 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 각각의 샘플 세트에 대한 변환을 결정하는 단계를 또한 포함한다. 방법은, 각각의 샘플 세트에 대한 결정된 변환을 복수의 후보 랜드마크에 대해 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 각각의 샘플 세트와 연관된 인라이어들의 수를 결정하는 단계를 추가로 포함한다. 방법은 각각의 샘플 세트와 연관된 인라이어들의 수에 기초하여 복수의 샘플 세트로부터 샘플 세트를 선택하는 단계를 추가로 포함한다. 방법은 선택된 샘플 세트에 기초하여 로봇의 포즈를 추정하는 단계를 또한 추가로 포함한다.
다른 예에서, 로봇, 로봇에 결합된 적어도 하나의 센서, 하나 이상의 프로세서, 및 비일시적 컴퓨터 판독가능 매체를 포함하는 시스템이 제공된다. 이 시스템은 비일시적 컴퓨터 판독가능 매체 상에 저장되고, 로봇에 결합된 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하기 위해 하나 이상의 프로세서에 의해 실행가능한 프로그램 명령어들을 추가로 포함한다. 프로그램 명령어들은 복수의 샘플 세트를 추가로 결정하고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다. 프로그램 명령어들은 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 각각의 샘플 세트에 대한 변환을 또한 결정한다. 프로그램 명령어들은 각각의 샘플 세트에 대한 결정된 변환을 복수의 후보 랜드마크에 추가적으로 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 각각의 샘플 세트와 연관된 인라이어들의 수를 결정한다. 프로그램 명령어들은 각각의 샘플 세트와 연관된 인라이어들의 수에 기초하여 복수의 샘플 세트로부터의 샘플 세트를 추가로 선택한다. 프로그램 명령어들은 선택된 샘플 세트에 기초하여 로봇의 포즈를 또한 추가로 추정한다.
다른 예에서, 모바일 로봇 디바이스의 제어 시스템에 의해 실행될 때, 제어 시스템으로 하여금 기능들을 수행하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체가 제공된다. 기능들은 로봇 상의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하는 것을 포함한다. 기능들은 복수의 샘플 세트를 결정하는 것을 추가로 포함하고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다. 기능들은 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 각각의 샘플 세트에 대한 변환을 결정하는 것을 또한 포함한다. 기능들은, 각각의 샘플 세트에 대한 결정된 변환을 복수의 후보 랜드마크에 대해 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 각각의 샘플 세트와 연관된 인라이어들의 수를 결정하는 것을 추가로 포함한다. 기능들은 각각의 샘플 세트와 연관된 인라이어들의 수에 기초하여 복수의 샘플 세트로부터 샘플 세트를 선택하는 것을 추가로 포함한다. 기능들은 선택된 샘플 세트에 기초하여 로봇의 포즈를 추정하는 것을 또한 추가로 포함한다.
다른 예에서, 로봇 상의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하는 수단을 포함하는 시스템이 제공된다. 시스템은 복수의 샘플 세트를 결정하는 수단을 추가로 포함하고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다. 시스템은 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 각각의 샘플 세트에 대한 변환을 결정하는 수단을 또한 포함한다. 시스템은, 각각의 샘플 세트에 대한 결정된 변환을 복수의 후보 랜드마크에 대해 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 각각의 샘플 세트와 연관된 인라이어들의 수를 결정하는 수단을 추가로 포함한다. 시스템은 각각의 샘플 세트와 연관된 인라이어들의 수에 기초하여 복수의 샘플 세트로부터 샘플 세트를 선택하는 수단을 추가로 포함한다. 시스템은 선택된 샘플 세트에 기초하여 로봇의 포즈를 추정하는 수단을 또한 추가로 포함한다.
전술한 요약은 단지 예시적이며, 어떤 식으로든 제한적인 것으로 의도되지 않는다. 위에 설명된 예시적인 양태들, 실시예들, 및 특징들에 더하여, 추가의 양태들, 실시예들, 및 특징들은 도면들 및 이하의 상세한 설명 및 첨부 도면들을 참조하여 명백해질 것이다.
도 1은 예시적인 실시예에 따른, 시스템의 블록도이다.
도 2는 예시적인 실시예에 따른, 하나 이상의 창고를 운영하기 시스템을 도시한다.
도 3은 예시적인 실시예에 따른, 시스템을 예시한다.
도 4는 예시적인 실시예에 따른, 하나 이상의 로봇 디바이스에 대한 로봇 디바이스 아키텍처를 예시한다.
도 5는 예시적인 실시예에 따른, 하나 이상의 로봇 디바이스에 대한 레이저 스캐너 아키텍처를 예시한다.
도 6은 예시적인 실시예에 따른, 환경 내에서 내비게이팅하는 로봇을 도시한다.
도 7은 예시적인 실시예에 따른, 매핑된 랜드마크들과의 검출들을 연관시키는 로봇을 도시한다.
도 8은 예시적인 실시예에 따른 로봇 제어 시스템의 모듈들을 예시하는 기능 블록도이다.
도 9는 예시적인 실시예에 따른, 로봇의 매핑된 환경을 도시한다.
도 10은 예시적인 실시예에 따른, 다수의 검출을 행한 로봇을 도시한다.
도 11a, 도 11b, 도 11c 및 도 11d는 예시적인 실시예에 따른, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 샘플 세트와 연관된 인라이어들의 결정을 예시한다.
도 12a, 도 12b, 도 12c 및 도 12d는 예시적인 실시예에 따른, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 다른 샘플 세트와 연관된 인라이어들의 결정을 예시한다.
도 13a, 도 13b, 도 13c 및 도 13d는 예시적인 실시예에 따른, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 또 다른 샘플 세트와 연관된 인라이어들의 결정을 예시한다.
도 14는 예시적인 실시예에 따른 방법의 블록도이다.
도 15는 예시적인 실시예에 따른 다른 방법의 블록도이다.
예시적인 방법들 및 시스템이 본 명세서에 설명된다. 본 명세서에 설명된 임의의 예시적인 실시예 또는 특징은 반드시 다른 실시예들 또는 특징들에 비해 바람직하거나 유리한 것으로서 해석되어야 하는 것은 아니다. 본 명세서에 설명된 예시적인 실시예들은 제한적인 것으로 의도되지 않는다. 개시된 시스템들 및 방법들의 특정 양태들은, 모두가 본 명세서에서 고려되는 매우 다양한 상이한 구성들로 배열되고 조합될 수 있다는 것이 쉽게 이해될 것이다.
또한, 도면들에 도시된 특정 배열들은 제한적인 것으로 간주되어서는 안 된다. 다른 실시예들은 주어진 도면에 도시된 각각의 요소를 더 많이 또는 더 적게 포함할 수 있다는 것을 이해해야 한다. 또한, 예시된 요소들 중 일부는 조합되거나 생략될 수 있다. 또한 추가로, 예시적인 실시예는 도면들에 예시되지 않은 요소들을 포함할 수 있다.
I. 개요
예시적인 실시예들은 로봇의 환경 내에서 로봇의 포즈를 추정하고 그에 의해 로봇을 환경을 통해 내비게이팅하는 것을 돕기 위해 사용될 수 있는 방법들 및 시스템들을 포함하거나 달리 그와 관련될 수 있다. 예를 들어, 로봇의 하나 이상의 센서는 환경 내의 랜드마크들로부터 신호들을 수신함으로써 랜드마크들을 검출할 수 있다. 로봇은 수신된 신호들에 기초하여 랜드마크들과 관련하여 그것의 위치를 결정할 수 있다. 또한, 환경 내의 랜드마크들의 위치들은 매핑될 수 있다. 로봇은 매핑된 랜드마크들이 검출된 랜드마크들에 대응하는지를 결정할 수 있다. 로봇은 검출된 랜드마크들과 관련하여 그것의 위치를 대응하는 매핑된 랜드마크들과 관련하여 그것의 위치로 변환함으로써 환경 내의 그것의 포즈를 추정할 수 있다.
일부 예들에서, 로봇은 랜드마크와 연관되지 않은, 또는 랜드마크의 위치를 잘못 표현하는 신호들을 수신 또는 검출할 수 있다. 이러한 타입의 수신 또는 검출된 신호는 "잘못된 검출(false detection)"이라고 지칭될 수 있다. 잘못된 검출들은 로봇이 환경 내에서 그것의 포즈 포즈를 부정확하게 추정하게 하고, 따라서 로봇이 환경을 통해 효과적으로 내비게이팅하는 것을 방해할 수 있다. 예를 들어, 검출된 랜드마크들이 하나 이상의 잘못된 검출을 포함하기 때문에 로봇은 특정 매핑된 랜드마크들을 검출된 랜드마크들과 잘못 연관시킬 수 있다. 이러한 잘못된 연관에 기초하여, 로봇은 환경 내에서 그것의 포즈를 부정확하게 추정할 수 있고 환경을 통해 무효하게 내비게이팅할 수 있다.
예시적인 시스템들 및 방법들은 잘못된 검출들을 필터링하는 동안 로봇의 포즈를 동시에 추정하는 것을 도울 수 있다. 이 때문에, 검출된 랜드마크들은 후보 랜드마크들로서 취급될 수 있고, 후보 랜드마크들은 그들 중 어느 것이 매핑된 랜드마크들에 대응하는지 및 어느 것이 잘못된 검출들에 대응하는지를 결정하기 위해 점검될 수 있다.
일부 예들은 후보 랜드마크들의 다수의 서브세트(예를 들어, 3개의 후보 랜드마크의 서브세트들)를 샘플링하는 것을 포함할 수 있다. 그 후, 서브세트의 각각의 샘플링된 후보 랜드마크는 대응하는 매핑된 랜드마크와 쌍을 이룰 수 있다. 이 프로세스는 일부 샘플링된 서브세트들은 잘못된 검출들을 포함할 것이고 다른 것들은 그렇지 않을 것이기 때문에 후보 랜드마크들을 점검하는 것을 도울 수 있다. 각각의 샘플링된 서브세트는 개별적으로 평가될 수 있다. 이들 예들은 각각의 서브세트의 후보 랜드마크들에 적용할 변환을 결정하는 것을 추가로 포함할 수 있다. 변환은 샘플링된 후보 랜드마크들과 대응하는 매핑된 랜드마크들 사이에 최소 거리가 있도록 각각의 서브세트의 샘플링된 후보 랜드마크들을 대응하는 매핑된 랜드마크들과 정렬시킬 수 있다. 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 서브세트를 사용하는 것은 변환을 결정하는 데 필요한 계산을 감소시킬 수 있다.
일부 예들은 각각의 샘플링된 서브세트와 연관된 인라이어의 수를 결정하는 것을 추가로 포함할 수 있다. 각각의 샘플링된 서브세트에 대해 결정된 변환은 후보 랜드마크들 모두에 적용될 수 있다. 샘플링된 서브세트에 대한 인라이어의 수는 변환된 후보 랜드마크들과 이웃하는 매핑된 랜드마크들 사이의 거리들에 기초할 수 있다. 예를 들어, 변환된 후보 랜드마크들과 이웃하는 매핑된 랜드마크들(예를 들어, 가장 가까운 매핑된 랜드마크들) 사이의 거리들이 인라이어 임계 거리와 비교될 수 있다. 인라이어 임계 거리 이하인 이웃하는 매핑된 랜드마크까지의 거리를 갖는 변환된 후보 랜드마크들은 "인라이어들"이라고 지칭될 수 있다. 임계값보다 큰 이웃하는 매핑된 랜드마크까지의 거리를 갖는 변환된 후보 랜드마크들은 "아웃라이어들"이라고 지칭될 수 있다. 인라이어는 변환된 서브세트가 연관된 후보 랜드마크를 이웃하는 매핑된 랜드마크와 정확하게 정렬한 것을 나타낼 수 있는 반면, 아웃라이어는 반대를 나타낼 수 있다. 잘못된 검출을 포함하지 않는 샘플링된 서브세트는 후보 랜드마크들을 이웃하는 매핑된 랜드마크들과 정확하게 정렬시키는 변환을 생성할 가능성이 더 많고, 결국 더 많은 인라이어들을 생성할 것이다. 따라서, 인라이어의 수를 결정하는 것은 후보 랜드마크들을 점검하는 것을 도울 수 있는데 그 이유는 더 많은 수의 인라이어는 잘못된 검출이 거의 또는 전혀 없는 샘플링된 서브세트에 대응할 수 있는 반면, 더 많은 수의 아웃라이어들은 하나 이상의 잘못된 검출을 포함하는 서브세트에 대응할 수 있기 때문이다.
일부 예들에서, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 서브 세트들은 반복적으로 샘플링될 수 있다. 이러한 예들은 각각의 샘플링된 서브 세트와 연관된 인라이어들의 수를 결정하고, 최고 수의 인라이어들을 갖는 서브 세트를 선택하는 것을 포함할 수 있다. 다른 예들에서, 인라이어 임계값을 충족시키거나 초과하는 연관된 수의 인라이어들을 갖는 제1 반복적으로 샘플링된 서브 세트가 선택될 수 있다. 서브 세트가 선택된 후, 그 서브 세트와 연관된 인라이어들의 변환은 로봇의 포즈를 추정하는 데 사용될 수 있다. 인라이어들이 어느 서브 세트들이 잘못된 검출들을 포함하는지를 검출하기 위해 사용될 수 있고 또한 로봇의 포즈를 추정하기 위해 사용될 수 있기 때문에, 본 명세서에 설명된 방법들 및 시스템들은 잘못된 검출들을 필터링하는 동안 로봇의 포즈를 동시에 추정할 수 있다.
추가의 예들은 포즈 추정 신뢰도를 결정하는 것을 포함할 수 있다. 포즈 추정 신뢰도는 후보 랜드마크들의 총 수에 대한, 서브 세트와 연관된 인라이어들의 비율에 기초할 수 있다. 1에 가까운 비율은 잘못된 검출들이 거의 없다는 것을 나타낼 수 있는 반면, 0에 가까운 비율은 많은 잘못된 검출들이 존재한다는 것을 나타낼 수 있다.
또 다른 예들에서, 로봇의 초기 포즈 추정치를 나타내는 이전 정보가 이용 가능할 수 있다. 예를 들어, 초기 포즈 추정치는 로봇이 시간(t1)에서의 좌표들 (x, y)에 있었다는 것을 나타낼 수 있다. 이러한 예들에서, 로봇은 로봇의 초기 포즈 추정치에 부분적으로 기초하여 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 서브 세트들을 샘플링할 수 있다. 예를 들어, 대응하는 매핑된 랜드마크들은 좌표들 (x, y)에 가장 가까운 매핑된 랜드마크들로부터 선택될 수 있다.
이제 다양한 실시예들이 상세히 참조될 것이며, 그 예들은 첨부 도면들에 예시된다. 이하의 상세한 설명에서, 본 개시내용 및 설명된 실시예들의 철저한 이해를 제공하기 위해 다수의 특정 상세가 제시된다. 그러나, 본 개시내용은 이들 특정 상세 없이 실시될 수도 있다. 다른 경우에, 실시예들의 양태들을 불필요하게 모호하게 하지 않기 위해 잘 알려진 방법들, 절차들, 및 컴포넌트들, 및 회로들은 상세히 설명되지 않는다.
II. 로봇 디바이스들에 대한 시스템 설계
도 1은 예시적인 실시예에 따른, 시스템(100)의 블록도이다. 시스템(100)은 플래닝 시스템(110) 및 로봇 디바이스(120)를 포함한다. 플래닝 시스템(110)은 환경에서 동작하는 하나 이상의 로봇 디바이스의 모션을 조정할 수 있는 오프보드 플래너(112)를 포함할 수 있다. 오프보드 플래너(112)는 로드맵 플래너(114)를 포함할 수 있다. 오프보드 플래너(112) 및/또는 로드맵 플래너(114)는 로봇 디바이스(120)와 같은 로봇 디바이스가 환경에서 동작하는 동안 추종하기 위한 하나 이상의 비동기 경로(116)를 생성할 수 있다.
도 3의 문맥에서 아래 논의되는 프로토타입 그래프(300)와 같은, 환경을 표현하는 로드맵 그래프, 프로토타입 그래프, 또는 다른 로드맵이 수신되거나, 결정되거나, 또는 다른 방식으로 플래닝 시스템(110), 오프보드 플래너(112) 및/또는 로드맵 플래너(114)에 제공될 수 있다. 비동기 경로들(116)은 로드맵 그래프, 프로토타입 그래프, 또는 다른 로드맵에 기초한 하나 이상의 경로일 수 있다. 예를 들어, 로드맵 그래프, 프로토타입 그래프, 또는 다른 로드맵이 복수의 교차부를 연결하는 복수의 에지를 갖는다면, 복수의 에지 및/또는 복수의 교차부에 관하여 비동기 경로들(116)이 특정될 수 있다.
일부 예들에서, 로봇 디바이스(120)는 경로를 추종하는 것이 가능한 임의의 하나 이상의 조향된 차량(들)일 수 있다. 예를 들어, 로봇 디바이스(120)는 온보드 소프트웨어(130) 및/또는 하드웨어(150)를 포함할 수 있다. 온보드 소프트웨어(130)는 국부화 서브시스템(132), 장애물 검출 서브시스템(134), 오도메트리 서브시스템(136), 경로-추종 서브시스템(138), 및 궤적-추종 서브시스템(142) 중 하나 이상을 포함할 수 있다. 국부화 서브시스템(132)은 로봇 디바이스를 국부화하는 데, 즉 환경 내의 로봇 디바이스의 위치를 결정하는 데 사용될 수 있다. 국부화 서브시스템(132)은 로봇 디바이스 및/또는 로봇 디바이스를 국부화하는 데 사용될 수 있는 다른 객체들의 포지션 추정치들을 생성하고, 로봇 디바이스가 비동기 경로들(116)과 같은 경로를 추종하는 것을 돕고, 및/또는 로봇 디바이스가 궤적들(140)과 같은 궤적을 추종하는 것을 도울 수 있다. 일단 포지션 추정치들이 생성되면, 국부화 서브시스템(132)은 포지션 추정치들을 경로-추종 서브시스템(138)에 제공할 수 있다.
비동기 경로, 또는 줄여서 경로는 로봇 디바이스(120)가 시작 포인트 SP로부터 종료 포인트 EP까지 어떻게 진행할 수 있는지를 나타내는 시불변적 플랜 또는 다른 정보일 수 있다; 즉, (비동기) 경로는 시간을 고려하지 않는다. 대조적으로, 궤적은 로봇 디바이스(120)가 플래닝 시간 간격 동안 추종할 수 있는 조향 각도 및 견인 모터 속도의 값들을 포함할 수 있다.
플래닝 시간 간격은 로봇 디바이스가 경로, 루트, 및/또는 진행을 추종하기 위해 가이드되거나 플래닝되는 시간의 지속기간일 수 있다. 일부 실시예들에서, 플래닝 시간 간격은 미리 결정된 양의 시간일 수 있다; 예를 들어, 5초, 1초, 0.2초, 0.1초. 특히, 미리 결정된 플래닝 시간 간격은 플래닝 시간 간격에 대한 값을 특정하는 사용자 입력에 기초하여 결정될 수 있다. 다른 실시예들에서, 플래닝 시간 간격은 하나 이상의 다른 값에 기초하여 결정될 수 있다; 예를 들어, 스티치 시간, 균일한 에지(또는 경로) 비용과 연관된 시간, 궤적을 따라 진행할 추정된 시간. 플래닝 시간 간격을 결정하기 위한 다른 기법들 및 플래닝 시간 간격에 대한 값들도 가능하다.
그 후, 로봇 디바이스(120)가 시변적 방식으로 시작 포인트 SP로부터 종료 포인트 EP까지 어떻게 진행할 수 있는지를 설명하기 위해 하나 이상의 궤적이 사용될 수 있다. 일부 실시예들에서, 궤적은 또한 로봇 디바이스(120)의 다른 운동 변수들(예를 들어, 속도 및 가속도) 및 로봇 디바이스(120)의 액추에이터 포지션들과 같은, 그러나 이에 제한되는 것은 아닌, 플래닝 시간 간격 동안 조향 각도 및 견인 모터 속도와는 다른 변수들의 값들에 대한 정보를 제공할 수 있다.
예로서, 위치 "집"으로부터 위치 "직장"까지 자동차를 운전하기 위한 경로는 자율 차량의 사람 또는 제어 디바이스와 같은 제어 엔티티가 집으로부터 직장까지 자동차를 운전하기 위해 사용할 수 있는 거리들의 순서화된 리스트를 포함할 수 있다. 이 예에서, 집으로부터 직장까지의 궤적은 제어 엔티티가 집으로부터 직장까지 자동차를 운전하기 위해 사용할 수 있는 속도 및/또는 가속도를 특정하는 하나 이상의 명령어를 수반할 수 있다. 일부 예들에서, 궤적은 트래픽, 장애물, 날씨 및 다른 시간 민감 조건들을 고려할 수 있다; 예를 들어, 집으로부터 직장까지 가기 위한 궤적은 제어 엔티티가 "20 MPH 이하에서 10초 동안 우측으로 돌고", "55 MPH로 가속하고 3분 동안 곧장 운전하고", "30초 내에 20 MPH까지 감속하고, "20 MPH 이하에서 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, 목적지} 형태의 go-to 커맨드들을 포함할 수 있지만, "팔레트 이동"과 같은 다른 액션들이 가능하다. 그러나, 이들은 전형적으로 move-to 커맨드들로 분해 가능하다(픽업 위치로 이동, 배치 위치로 이동).
플래닝 시스템(110)은 오프보드 플래너(112) 및 실행기(220)를 포함한다. 오프보드 플래너(112)는 액션들(214)을 입력들로서 수신하고 창고에서 동작하는 하나 이상의 에이전트에 대한 하나 이상의 조정된 경로(216)를 생성할 수 있다; 예를 들어, 액션들(214)을 수행하는, 다수의 로봇 디바이스. 조정된 경로들(216)은 창고 내의 모든 에이전트들이 물류 요청들(212)을 실현하기 위한 조정된 액션 플랜의 일부일 수 있다. 조정된 액션 플랜은 에이전트들의 우선권을 고려할 수 있다; 예를 들어, 로봇 디바이스들 RD1 및 RD2 둘 다가 거의 동시에 포인트에 도달할 것으로 예상되면, 로봇 디바이스들 중 하나는 다른 것에 비해 우선권 또는 우선순위를 가질 수 있는데, 예컨대 로봇 디바이스 RD1은 로봇 디바이스 RD2가 포인트를 통과하는 것을 기다릴 수 있다(또는 그 반대). 실행기(220)는 조정된 경로들(216)을 수신하고, 물류 요청들(212)을 실현하기 위한 액션들(214)을 수행하기 위해 조정된 액션 플랜의 그의 부분을 달성하는 데 로봇 디바이스(120)를 유도하기 위한 비-충돌 서브-경로들(222)을 생성할 수 있다.
도 2에 위에 예시된 바와 같이, 오프보드 플래너(112) 및 실행기(220)를 포함하는 플래닝 시스템(110)은 로봇 디바이스(120)와 통신할 수 있다. 일부 실시예들에서, 로봇 디바이스는 포크 트럭일 수 있다; 예를 들어, 임의의 직업 안전 및 건강 관리(OSHA) 클래스 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 미들웨어 및/또는 다른 컴포넌트들은 하나 이상의 애플리케이션 프로그래밍 인터페이스(API), 예컨대 로봇 디바이스 경로들, 포즈들, 및/또는 궤적들에 대한 작업/미션 명령어들(예를 들어, 로봇 디바이스 A에게 팔레트 B를 위치 C로부터 위치 D로 이동시키라는 명령어) 간의 변환; 재고 작업들과 작업/미션 명령어들 간의 변환; 및 API들 간의 변환을 위한 프로토콜 변환 API들을 사용할 수 있다.
창고 관리 시스템(210)에 의해 제공되는 사용자 인터페이스는 시스템(300)에 대한 하나 이상의 사용자 인터페이스 기능을 제공할 수 있는데, 이 기능은 다음에 언급한 것들을 포함하지만 이에 제한되는 것은 아니다: 로봇 디바이스(들)(120)의 모니터링, 예를 들어, 하나 이상의 로봇 디바이스의 위치, 배터리 상태, 충전 상태 등과 관련된 데이터를 제시하는 것; 로봇 디바이스(들)(120) 중 하나 이상에 재고 작업 명령어(들), 작업/미션 명령어(들), 플랜(들), 경로(들) 및/또는 궤적/궤적들의 생성 및 전송을 가능하게 하는 것; 및 하나 이상의 창고 맵, 팔레트, 네트워크, 및/또는 플래닝 시스템(예를 들어, 플래닝 시스템(110), 창고 관리 시스템(210), 및/또는 물류 인터페이스(310))과 관련된 데이터의 검토, 업데이트, 삭제 및/또는 삽입.
일부 실시예들에서, 창고 관리 시스템(210)은 물류 인터페이스(310)와 로봇 디바이스(들)(120) 사이 및 로봇 디바이스(들)(120) 중 2개 이상의 로봇 디바이스 사이의 통신을 라우팅하고 하나 이상의 온보드 시스템, 예컨대 로봇 디바이스(들)(120) 중 하나 이상의 로봇 디바이스에 탑재된 온보드 시스템(320)을 관리할 수 있다. 다른 실시예들에서, 창고 관리 시스템(210)은 시스템(300)과 관련된 데이터를 저장, 생성, 판독, 기입, 업데이트 및/또는 삭제할 수 있는데, 그 데이터는 예컨대 다음과 같은 것이지만 이에 제한되는 것은 아니다: 로봇 디바이스(들)(120) 중 하나 이상에 의한 작업/미션 명령어의 완료에 관한 데이터; 로봇 디바이스가 초기화/부팅되었던 위치를 나타내는 데이터를 포함하는, 로봇 디바이스(들)(120)의 일부 또는 전부의 위치들 및/또는 포즈들에 관한 데이터; 인간 액션들, 사건 분석, 및/또는 디버깅에 대한 하나 이상의 감사 흔적들과 관련된 데이터; 및 상태 추적을 위한 데이터. 다른 실시예들에서, 창고 관리 시스템(210)은 로봇 디바이스(들)(120) 및 하나 이상의 어댑터와 통신하는 중앙 메시지 라우터/지속성 관리자를 포함할 수 있다. 하나 이상의 어댑터 각각은 창고 관리 시스템(210)에 이용가능한 시스템(300)의 데이터 및/또는 통신들로의 액세스를 제공할 수 있고, 다음에 언급한 것들을 포함할 수 있지만, 이에 제한되는 것은 아니다: 위에 언급된 사용자 인터페이스에 대한 사용자 인터페이스 서비스 어댑터, 시스템(300)에 대한 정보로의 월드 와이드 웹(WWW)/인터넷 액세스를 가능하게 하는 웹 콘텐츠 서비스 어댑터, 메시지 프록시 어댑터 및/또는 WMS 및/또는 API들 사이의 통신들 사이의 중개자들로서 역할을 하는 WMS 어댑터.
도 3은 하나 이상의 로봇 디바이스(120) 각각이 온보드 시스템(320), 네트워크 스위치(330), 차량 컨트롤러(332), 프로그램 가능 로직 컨트롤러(PLC)(334), 하나 이상의 디바이스 센서(338), 및 하나 이상의 드라이브(340) 중 하나 이상을 포함할 수 있다는 것을 도시한다.
온보드 시스템(320)은 로봇 디바이스(120) 내에 설치하고 그와 함께 사용하기 위해 구성된 로봇 플래닝을 위한 계산 및 센서 패키지일 수 있고, 여기서 온보드 시스템(320)은 온보드 센서들(322) 및 하나 이상의 플래닝/실행 프로세서(324)를 포함할 수 있다. 도 3은 또한 적어도 플래닝 시스템(110)과(네트워크(318)를 통해), 디바이스 센서들(338)과, 및/또는 로봇 디바이스(120)의 하나 이상의 액추에이터와 통신하기 위해 네트워크 스위치(330)를 이용하도록 구성되는 온보드 시스템(320)을 도시한다.
온보드 시스템(320)은 다음에 언급한 것들 중 하나 이상에 대한 책임이 있을 수 있다: 로봇 디바이스(120)의 국부화, 창고 관리 시스템(210)에 의해 제공되는 경로들 및/또는 궤적들을 따라 진행하고 및/또는 플랜들을 수행하기 위한 로컬 궤적들의 생성, 하나 이상의 (로컬) 궤적들을 추종하기 위한 드라이브들(340)에 대한 커맨드들의 생성, 로봇 디바이스(120)의 액추에이터(들)를 제어하기 위한 커맨드들의 생성, 및 포즈, 상태 및/또는 다른 정보를 창고 관리 시스템(210)에 보고하는 것.
온보드 센서(322)는 온보드 시스템(320)을 내비게이팅 및/또는 제어하기 위한 하나 이상의 내비게이션 레이저, 레이저 스캐너, 카메라, 및/또는 다른 센서를 포함할 수 있다. 예를 들어, 로봇 디바이스(들)(120) 중의 로봇 디바이스는 하나 이상의 레이저 스캐너, 예컨대 독일 발드키르히(Waldkirch)의 SICK AG, 일본 오사카의 HOKUYO AUTOMATIC CO. LTD, 및/또는 일본 오사카의 KEYENCE CORPORATION에 의해 제공되는 하나 이상의 레이저 스캐너를 포함할 수 있다. 레이저 스캐너들은 로봇 디바이스의 진행 방향을 따라서뿐만 아니라, 로봇 디바이스의 측면들, 코너들 및/또는 후방을 따라 장애물 검출 및/또는 회피를 위해 사용될 수 있다. 레이저 스캐너들은 또한 반사기 기반 국부화를 이용하여 로봇 디바이스를 국부화하는 데 사용될 수 있다. 일부 실시예들에서, 카메라들 및/또는 다른 센서들은 레이저 스캐너 대신에 또는 그와 함께 장애물 검출, 장애물 회피, 및/또는 국부화를 위해 사용될 수 있다.
플래닝/실행 프로세서(들)(324)는 적어도 온보드 센서들(322)에 연결된 하나 이상의 컴퓨터 프로세서를 포함할 수 있다. 플래닝/실행 프로세서(들)(324)는 온보드 센서들(322)로부터 데이터를 판독하고, 로봇 디바이스(120)를 이동시키기 위한 드라이브(들)(340)에 대한 로컬 궤적들 및/또는 커맨드들을 생성하고, 창고 관리 시스템(210)과 통신할 수 있다. 로컬 궤적은 로봇 디바이스(120)가 시작 포즈에서 시작하고 어떤 시간에 종료 포즈에 도달하는 궤적일 수 있다. 일부 예들에서, 시작 포즈는 암시적으로 특정될 수 있다; 예를 들어, 시작 포즈는 로봇 디바이스(120)의 현재 포즈일 수 있고 따라서 로컬 궤적은 그 시작 포즈가 로봇 디바이스(120)의 현재 포즈라는 가정에 기초할 수 있다.
플래닝/실행 프로세서(들)(324)는 컴포넌트 프레임워크를 이용할 수 있다. 컴포넌트 프레임워크는 로봇 디바이스(120)의 일관된 비동기 모델을 제공하도록 구성된 입력/출력(I/O) 및 시그널링을 위한 소프트웨어 라이브러리들, 예컨대 버지니아 주 오난콕(Onancock)의 boost.org에 의해 제공되는 "boost::asio" 및 "boost::signals2" 소프트웨어 라이브러리들 상에 구축된 멀티-스레드 작업 스케줄링 및 메시지 전달 시스템일 수 있다. 컴포넌트 프레임워크는 소프트웨어 컴포넌트들이 스레드 안전 방식으로 병렬로 실행될 수 있도록 소프트웨어 컴포넌트들(또는 모듈들) 간의 통신을 가능하게 할 수 있다.
컴포넌트 프레임워크는 상태 머신 컴포넌트, 국부화 컴포넌트, 플래닝 컴포넌트, 및 궤적 추종 컴포넌트 중 하나 이상을 포함할 수 있다. 상태 머신 컴포넌트는 차량 초기화, 차량 커맨딩 및 고장 처리를 위한 로봇 디바이스(120)의 상태를 관리할 수 있다. 상태 머신 컴포넌트는 결정론적 유한 오토마톤 또는 다른 상태 머신을 이용하여 로봇 디바이스의 상태를 관리할 수 있다.
국부화 컴포넌트는 차량 센서들로부터 데이터를 판독하고 로봇 디바이스(120)의 이전 상태 정보를 통합하여 로봇 디바이스(120)의 포즈를 결정할 수 있다. 차량 센서 데이터는 차량 센서들에 의해 검출된 관심 있는 하나 이상의 랜드마크/포인트를 나타낼 수 있다. 대안적으로, 차량 센서들로부터의 데이터는 국부화 컴포넌트가 차량 센서 데이터에 기초하여 하나 이상의 랜드마크/포인트를 검출하도록 처리를 요구할 수 있다. 포즈는 팔레트들 또는 다른 객체들과 같은, 하나 이상의 검출된 관심 있는 랜드마크/포인트에 대해 결정될 수 있다. 플래닝 컴포넌트는 창고 관리 시스템(210)으로부터 하나 이상의 목적을 수신하고, 로봇 디바이스(120)가 그들 목적을 달성하기 위한 로컬 궤적을 결정할 수 있다. 일부 실시예들에서, 로컬 궤적은 로봇 디바이스(120)가 미리 결정된 양의 시간; 예를 들어, 100 밀리초, 200 밀리초, 500 밀리초, 1초, 5초 동안 추종해야 하는 단기 궤적일 수 있다. 궤적 추종 컴포넌트는 플래닝 컴포넌트에 의해 생성된 로컬 궤적을 수신하고, 로컬 궤적을 따라 진행하기 위한 드라이브 제어 명령어들을 생성할 수 있다. 드라이브 제어 명령어들은 그 후 로봇 디바이스(120)에 대한 견인 모터 및 다른 액추에이터들을 제어하는 드라이브들(340)에 중계된다.
네트워크 스위치(330)는 로봇 디바이스(들)(120)에 대한 통신들을 가능하게 할 수 있다. 이들 통신은 온보드 시스템(320)과 로봇 디바이스(120)의 나머지; 예를 들어, 디바이스 센서들(338) 및 드라이브들(340) 사이의 통신들, 및 네트워크(318)를 통한 창고 관리 시스템(210)과의 통신들을 포함할 수 있지만, 이에 제한되는 것은 아니다. 예를 들어, 네트워크 스위치(330)는 이더넷 및/또는 유선 네트워크에 대한 다른 유선 통신 인터페이스(들)를 통한, 및/또는 Wi-Fi™ 및/또는 무선 네트워크에 대한 다른 무선 통신 인터페이스(들), 예컨대 대만 신 타이페이 시의 PLANET Technology Corporation에 의한 PLANET 이더넷 스위치를 통한 송신 제어 프로토콜/인터넷 프로토콜(TCP/IP) 기반 통신을 가능하게 할 수 있다.
일부 실시예들에서, 로봇 디바이스(들)(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 관련 통신을 위해 사용되는 실시예들에서는, 양방향 스트리밍 프로토콜을 구현하기 위해 싱글 롱-리브(single long-lived) RPC가 사용될 수 있다.
차량 컨트롤러(332) 및/또는 프로그램 가능 로직 컨트롤러(334)는 로봇 디바이스(들)(120)에 대한 전기 및 센서 관리 기능성을 제공할 수 있다. 전기 및 센서 관리 기능성은 전기 부하 제어, 조명 제어, 센서 제어, 센서 및/또는 스위치 신호 처리, 및 전력 관리를 위한 기능성을 포함할 수 있지만, 이에 제한되는 것은 아니다. 차량 마스터(336)는 로봇 디바이스(들)(320)의 하나 이상의 액추에이터, 예컨대 리프트 디바이스들을 제어하기 위한 기능성을 제공할 수 있다.
디바이스 센서(들)(338)는 로봇 디바이스(들)(120)를 제어 및/또는 동작시키는 것과 관련된 데이터를 제공할 수 있는 하나 이상의 센서를 포함할 수 있다. 데이터는 국부화 정보, 포지션 추정치, 및 매핑 데이터와 같은, 그러나 이에 제한되는 것은 아닌, 로봇 디바이스(들)(120)에 관한 환경에 관한 정보를 제공할 수 있다. 예를 들어, 디바이스 센서(들)(338)는 하나 이상의 레이저(예를 들어, 2-차원(2D) 레이저, 안전 레이저, 레이저 스캐너), 카메라(예를 들어, ToF(Time-of-Flight) 카메라, 레드-그린-블루(RGB) 카메라, 열 카메라), 전기 센서, 근접 센서, 내비게이션 디바이스, 및 위치 센서를 포함할 수 있다.
드라이브(들)(340)은 로봇 디바이스(들)(120)를 이동시키기 위한 기능성을 제공하는 하나 이상의 드라이브 컨트롤러 및/또는 액추에이터를 포함할 수 있다. 드라이브 컨트롤러들은 로봇 디바이스(들)(120)의 움직임을 제어하도록 드라이브 액추에이터들에 지시할 수 있다. 드라이브 액추에이터들은 하나 이상의 견인 모터, 전기 드라이브, 유압 드라이브, 및 공압 드라이브를 포함할 수 있다.
도 4는 예시적인 실시예에 따른, 로봇 디바이스(들)(120)의 로봇 디바이스 아키텍처(400)를 예시한다. 로봇 디바이스(들)(120)의 로봇 디바이스 아키텍처(400)는 소프트웨어를 포함할 수 있다. 소프트웨어는 국부화(410)를 위한 소프트웨어, 팔레트 포즈 추정기(412)를 위한 소프트웨어, 상태 머신(414)과 관련된 소프트웨어, 플래너 추종기(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)는 하나 이상의 반사기에서 반사되는 광을 방출할 수 있고, 반사된 광은 하나 이상의 레이저 센서에 의해 검출될 수 있고, 로봇 디바이스는 반사된 광을 검출하는 데 걸리는 시간의 지속기간에 기초하여 환경 내에서 국부화될 수 있다. 특히 이들 실시예에서, 레이저 스캐너(524), 및/또는 레이저들(510, 512, 520, 522)의 일부 또는 전부는 반사된 레이저 광을 검출하기 위한 하나 이상의 레이저 센서를 포함할 수 있다. 그 후에, 레이저 스캐너(524), 및/또는 레이저들(510, 512, 520, 522)의 일부 또는 전부는 레이저와 관련된 데이터(예를 들어, 레이저에 대한 유지보수 데이터), 레이저에 의해 방출된 광과 관련된 데이터, 및 레이저 센서(들)에 의해 반사된 레이저 광을 검출하는 데 걸리는 시간의 하나 이상의 지속기간과 관련된 데이터를 포함하지만 이에 제한되는 것은 아닌 데이터를 생성할 수 있다.
도 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에 설명된다.
Figure 112018118283769-pct00001
Figure 112018118283769-pct00002
III. 환경 내의 로봇 디바이스들의 국부화
도 6은 예시적인 실시예에 따른, 환경 내에서 내비게이팅하는 로봇을 도시한다. 로봇(600)의 위치 및 배향이 추정될 수 있고, 로봇은 그에 따라 환경을 통해 내비게이팅할 수 있다. 로봇의 위치 및 배향은 로봇의 "포즈"라고 지칭될 수 있다. 로봇의 포즈는 로봇의 하나 이상의 센서(602)에 의해 수신된 신호들(606)에 기초하여 추정될 수 있다. 수신된 신호들은 환경 전체에 걸쳐 분포된 랜드마크들(604)과 연관될 수 있다. 예를 들어, 신호들은 창고 내의 다양한 위치들에 배치된 역반사성 마커들에 의해 반사될 수 있다. 이 예에서, 로봇은 로봇을 둘러싸는 영역에 광을 방출하는 LIDAR(light ranging and detection) 유닛을 포함할 수 있고, 로봇을 둘러싸는 영역에 포지셔닝된 역반사기들은 로봇의 하나 이상의 센서에 의한 검출을 위해 로봇으로 다시 광을 반사할 수 있다.
일부 예들에서, 수신된 신호들은 로봇에 대한 랜드마크들의 위치들을 나타낼 수 있다. 또한, 환경 내의 랜드마크들의 위치들은 미리 결정될 수 있다. 예를 들어, 랜드마크들은 매핑될 수 있다. 수신된 신호들을 대응하는 매핑된 랜드마크들과 매칭시키는 것은 환경 내의 로봇의 포즈가 추론되는 것을 가능하게 할 수 있다. 예를 들어, 로봇은 검출된 랜드마크들을 매핑된 랜드마크들과 정렬하여 맵 상의 그것의 포지션을 결정할 수 있다. 또한, 환경 내의 장애물들(610)과 관련하여 랜드마크들의 위치들은 미리 결정될 수 있다. 예를 들어, 장애물들의 위치들도 매핑될 수 있다. 로봇은 장애물들의 미리 결정된 위치들 및 추정된 포즈에 기초하여 장애물들을 회피하면서 환경 내에서 내비게이팅하는 움직임들(608)을 행할 수 있다.
도 7은 예시적인 실시예에 따른, 매핑된 랜드마크들과의 검출들을 연관시키는 로봇을 도시한다. 후보 랜드마크들(712)로부터의 검출된 신호들(706)은 로봇(700)의 하나 이상의 센서(702)에 의해 수신될 수 있다. 신호들은 로봇과 관련하여 후보 랜드마크들의 위치들을 나타낼 수 있다. 후보 랜드마크들은 매핑된 랜드마크들(704)과 정렬하도록 변환될 수 있다. 후보 랜드마크들과 매핑된 랜드마크들 사이에는 변환된 후보 랜드마크들과 매핑된 랜드마크들 사이의 최소 거리를 초래하는 연관들(714)이 형성될 수 있다. 예를 들어, 연관들(714)은 ICP(iterative closest point) 방법과 같은 최소 평균 제곱법(a least means squared method)을 사용하여 형성될 수 있다. 후보 랜드마크들은 후보 랜드마크들과 매핑된 랜드마크들 사이의 연관들(714)에 기초하여 변환되고 회전될 수 있다. 로봇의 포즈는 로봇을 유사하게 변환 및 회전시킴으로써 추론될 수 있다.
도 8은 예시적인 실시예에 따른 로봇 제어 시스템의 모듈들을 예시하는 기능 블록도이다. 로봇 제어 시스템은 온보드 감지 모듈(800)의 일부로서 하나 이상의 센서를 포함할 수 있다. 센서들은 로봇의 휠 오도메트리(808)를 나타내는 데이터를 제공할 수 있다. 센서들은 내비게이션 스캐너(810)를 또한 포함할 수 있다. 내비게이션 스캐너(810)는 로봇의 환경에서 후보 랜드마크들로부터 신호들을 수신하도록 구성될 수 있다.
로봇 제어 시스템의 포즈 추정 모듈(802)은 환경 내의 매핑된 랜드마크들에 대한 로봇의 위치 및 배향을 나타낼 수 있다. 포즈 추정 모듈(802)은 온보드 감지 모듈(800)로부터의 입력들에 기초하여 기능들을 수행하는 소프트웨어를 포함할 수 있다. 예를 들어, 내비게이션 스캐너(810)가 스캔을 수행할 때마다, 온보드 감지 모듈로부터의 센서 데이터는 포즈 추정 모듈(802)에 의해 처리되어 환경에서 로봇의 현재 위치 및 배향을 결정할 수 있다. 포즈 추정 모듈(802)의 포즈 추적/개선 블록(812) 및 글로벌 국부화 블록(814)은 처리 단계들을 표현하는 반면, 포즈 블록(816), 신뢰도/정확도 블록(818), 및 초기 포즈 추정치 블록(820)은 처리 블록들(812 및 814)의 출력들을 표현한다.
포즈 추정 모듈(802)은 2개의 모드로 동작할 수 있다. 제1 모드에서, 포즈 추정 모듈(802)은 로봇의 초기 포즈 추정치(820)를 가질 수 있고, 포즈 추적/추정치 블록(812)은 초기 포즈 추정치(820)를 업데이트할 수 있다. 포즈 추적/개선(812)은 후보 랜드마크들과 관련하여 로봇의 위치를 식별하기 위해 초기 포즈 추정치(820)와 함께 내비게이션 스캐너(810)로부터의 데이터 및 휠 오도메트리(808)를 이용할 수 있다. 포즈 추적/개선 블록(812)은 후보 랜드마크들을 초기 포즈 추정치(820)에 가까운 특정 매핑된 랜드마크들에 연관시킬 수 있다. 포즈 추정 모듈(802)은 연관에 기초한 포즈 추정치(816), 및 포즈 추정치의 신뢰도/정확도(818)를 추가로 제공할 수 있다. 신뢰도/정확도(818)는 초기 포즈 추정치가 적절하다는 것 또는 추가 개선을 필요로 하다는 것을 나타낼 수 있다. 또한 제1 모드에서, 포즈 추적/개선 블록(812)에 의해 결정된 포즈(816) 및 신뢰도/정확도(818)는 로봇의 개선된 포즈 추정치를 결정하기 위해 후처리 모듈(804)에서 사용될 수 있다. 한편, 글로벌 국소화 블록(814)은 스킵될 수 있다. 또한, 포즈 추적/개선(812) 동안 도출된 포즈 추정치(816)는 후속 포즈 추정들에서 사용하기 위한 로봇의 초기 포즈 추정치(820)로서 취급될 수 있다.
제2 모드에서, 포즈 추정 모듈(802)은 환경 내에서 로봇이 어디에 있는지에 대한 초기 표시를 갖지 않을 수 있다. 다시 말해서, 초기 포즈 추정치(820)는 아직 결정되어 있지 않을 수 있다. 제2 모드에서, 포즈 추정 모듈(802)은 로봇의 포즈를 결정하기 위해 포즈 추적/개선(812)보다는 글로벌 국부화(814)를 이용할 수 있다. 글로벌 국부화 블록(814)은 로봇의 전체 환경에 걸쳐 매핑된 랜드마크들과 후보 랜드마크들 간의 연관들을 테스트할 수 있다. 글로벌 국부화 블록(814)은 또한 포즈 추정치(816) 및 신뢰도/정확도(818)를 출력할 수 있다. 또한 제2 모드에서, 글로벌 국부화 블록(814)에 의해 결정된 포즈(816) 및 신뢰도/정확도(818)는 로봇의 개선된 포즈 추정치를 결정하기 위해 후처리 모듈(804)에서 사용될 수 있다. 또한, 글로벌 국부화(814) 동안 도출된 포즈 추정치(816)는 후속 포즈 추정들에서 사용하기 위한 로봇의 초기 포즈 추정치(820)로서 취급될 수 있다.
포즈 추적/개선 또는 글로벌 국부화로부터 도출된 포즈 추정을 개선하기 위해 후처리 모듈(804)이 사용될 수 있다. 후처리 모듈은 온보드 감지 모듈의 휠 오도메트리, 및 국부화 모듈의 포즈 추정치 및 신뢰도/정확도의 융합 외삽(822)을 수행할 수 있다. 융합 외삽 동안에, 개선된 포즈 추정치는 높은 신뢰도/정확도가 있을 때 국부화 모듈에 의해 제공되는 추정된 포즈에 더 많이 의존할 수 있다. 반대로, 개선된 포즈 추정치는 낮은 신뢰도/정확도가 있을 때 휠 오도메트리에 더 많이 의존할 수 있다. 또한, 후처리 모듈은 제공된 신뢰도/정확도 및 개선된 포즈 추정치에 기초하여 맵 업데이트(824)를 제공할 수 있다. 예를 들어, 맵 업데이트는 개선된 포즈 추정치에 기초하여 매핑된 랜드마크들의 위치들을 업데이트할 수 있다. 다른 예들에서, 맵 업데이트는 개선된 포즈 추정을 생성하는 데 사용되는 매핑된 랜드마크들과 연관된 통계 정보를 업데이트할 수 있다.
도 8의 로봇 제어 시스템에 의해 수행되는 기능들 각각은 주기적으로 수행될 수 있다. 예를 들어, 내비게이션 스캐너(810)는 8 Hz에서 스캔을 수행할 수 있는 반면, 휠 오도메트리(808)는 100 Hz에서 업데이트할 수 있다. 다른 예로서, 포즈 추정 모듈의 처리 블록들(812 및 814)은 8 Hz에서 온보드 감지 모듈로부터 데이터를 수신할 수 있고, 8 Hz에서 포즈들(816) 및 신뢰도/정확도들(818)을 생성할 수 있다. 상이한 주파수들도 가능하다.
도 9는 예시적인 실시예에 따른, 로봇의 매핑된 환경을 도시한다. 로봇의 포즈 추정치를 생성하는 것은 환경 내의 랜드마크들의 미리 결정된 위치들에 의존할 수 있다. 예를 들어, 매핑된 랜드마크(902)는 맵 상의 제1 좌표(x1, y1)에 대응할 수 있고, 매핑된 랜드마크(904)는 제2 좌표(x2, y2)에 대응할 수 있고, 매핑된 랜드마크(906)는 제3 좌표(x3, y3)에 대응할 수 있고, 매핑된 랜드마크(908)는 제4 좌표(x4, y4)에 대응할 수 있다. 이 예에서는, x 및 y 축만이 관련될 수 있는데, 그 이유는 매핑된 랜드마크들이 실질적으로 수평인 마커 평면 상에 분포될 수 있기 때문이다. 예를 들어, 창고 내의 각각의 리플렉터는 플로어 위의 5 피트의 높이(z 축에 대응함)에 포지셔닝될 수 있다. 다른 예들에서, 매핑된 랜드마크들은 맵 상의 좌표들의 범위들에 대응할 수 있다. 예를 들어, 좌표들의 범위들은 다양한 랜드마크들의 크기들에 대응할 수 있다. 또 다른 예들에서, 매핑된 랜드마크들은 (3-D) 맵 상의 3-차원(3-D) 좌표들에 대응할 수 있다. 매핑된 랜드마크들의 위치들을 표현하는 다른 방식들도 가능하다.
일부 예시적인 실시예들에서, 매핑된 랜드마크들은 광을 광의 소스로 다시 반사하도록 구성된 역반사성 마커들일 수 있다. 이러한 예들에서, 로봇은 로봇을 둘러싸는 영역에 광을 방출하도록 구성된 LIDAR(light ranging and detection) 유닛을 포함할 수 있다. 역반사성 마커들은 LIDAR 유닛으로부터의 신호들을 로봇으로 다시 반사할 수 있다. 로봇은 로봇의 하나 이상의 센서를 포함할 수 있고, 이들은 역반사성 마커들로부터 반사 신호들을 수신하고 로봇에 대한 마커들의 위치들을 검출하도록 구성될 수 있다.
도 10은 예시적인 실시예에 따른, 다수의 검출을 행한 로봇을 도시한다. 로봇의 포즈 추정치를 생성하는 것은 로봇(1000)의 하나 이상의 센서(1002)에 의해 검출된 신호들(1006)에 추가로 의존할 수 있다. 일 예에서, 신호들은 후보 랜드마크들(1012, 1014, 1016, 1018, 및 1020)과 연관될 수 있다. 신호들은 로봇과 관련하여 후보 랜드마크들의 위치들을 나타낼 수 있다. 예를 들어, 후보 랜드마크(1012)는 로봇(1000)에 대한 반경(r1) 및 로봇(1000)에 대한 각도(α1)에 대응할 수 있고, 후보 랜드마크(1014)는 반경(r2) 및 각도(α2)에 대응할 수 있고, 후보 랜드마크(1016)는 반경(r3) 및 각도(α3)에 대응할 수 있고, 후보 랜드마크(1018)는 반경(r4) 및 각도(α4)에 대응할 수 있고, 후보 랜드마크(1020)는 반경(r5) 및 각도(α5)에 대응할 수 있다. 다른 예들에서, 후보 랜드마크들은 로봇(1000)에 대한 데카르트 좌표들에 의해 표현될 수 있다. 로봇에 대해 후보 랜드마크들의 위치들을 표현하는 다른 방식들도 가능하다.
일부 예들에서, 후보 랜드마크들의 위치들은 로봇의 적어도 하나의 센서에 의해 결정될 수 있다. 즉, 센서는 후보 랜드마크들의 위치들을 나타내는 신호들을 수신할 수 있다. 센서는 수신된 신호들을 대표하는 센서 데이터를 생성할 수 있고, 센서 데이터에 기초하여 후보 랜드마크들의 위치들을 결정할 수 있다. 그 후, 로봇의 제어 시스템은 센서로부터 후보 랜드마크들의 위치들을 수신할 수 있다. 다른 예들에서, 적어도 하나의 센서는 미가공 센서 데이터를 생성할 수 있고, 로봇의 하나 이상의 프로세서는 미가공 센서 데이터를 처리하여 후보 랜드마크들의 위치들을 결정할 수 있다. 예를 들어, 프로세서들은 강도 임계값보다 큰 강도를 갖는 로봇 상의 센서로부터의 신호들을 식별할 수 있다. 또 다른 예들에서, 로봇으로부터 원격인 프로세서들은 센서 데이터에 기초하여 후보 랜드마크들의 위치들을 검출할 수 있다. 후보 랜드마크들의 위치들을 결정하는 다른 방식들도 가능하다.
후보 랜드마크들은 매핑된 랜드마크에 대응하거나 대응하지 않을 수 있다. 예를 들어, 후보 랜드마크들(1012, 1014, 1016 및 1018)은 매핑된 랜드마크들(예를 들어, 도 9의 매핑된 랜드마크들(902, 904, 906, 및 908))에 대응할 수 있는 반면, 후보 랜드마크(1020)는 잘못된 검출에 대응할 수 있다. 잘못된 검출들은 후보 랜드마크들을 대응하는 매핑된 랜드마크들과 정렬시키는 것을 어렵게 만들 수 있고, 따라서 로봇의 정확한 포즈 추정치들을 방해할 수 있다. 정확한 포즈 추정치들을 달성하기 위해 후보 랜드마크들을 점검하는 방법들을 설명하는 예시적인 실시예들이 뒤따른다.
도 11a, 도 11b, 도 11c 및 도 11d는 예시적인 실시예에 따른, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 샘플 세트와 연관된 인라이어들의 결정을 예시한다. 도 11a는 로봇의 매핑된 환경을 도시한다. 매핑된 랜드마크들(1102, 1104, 1106, 및 1108)은 미리 결정된 위치들을 갖는다. 도 11b는 다수의 검출을 행한 로봇을 도시한다. 검출들은 후보 랜드마크들(1112, 1114, 1116, 1118 및 1120)에 대응한다. 예시적인 실시예에서, 후보 랜드마크들(1112, 1114 및 1120) 및 대응하는 매핑된 랜드마크들(1102, 1104 및 1106)을 포함하는 샘플 세트가 결정된다. 본 예에서는, 3개의 후보 랜드마크가 샘플링되었다. 그러나, 상이한 수의 샘플링된 랜드마크들도 가능하다. 예를 들어, 샘플링된 랜드마크들의 수는 후보 랜드마크들의 총 수의 백분율과 관련될 수 있다.
일부 실시예들에서, 후보 랜드마크들을 샘플링하는 것은 의사 랜덤하게 수행될 수 있다. 다른 실시예들에서, 후보 랜드마크들을 샘플링하는 것은 순서화된 방식으로 수행될 수 있다. 예를 들어, 후보 랜드마크들을 샘플링하는 것은 로봇에 대한 각도의 순서로 수행될 수 있다. 다른 예들에서, 후보 랜드마크들을 샘플링하는 것은 로봇에 대한 반경의 순서로 수행될 수 있다. 또 다른 예들에서, 제1 후보 랜드마크는 의사 랜덤하게 선택될 수 있고, 다른 후보 랜드마크들은 제1 후보 랜드마크에 대한 그들의 근접성에 기초하여 샘플링될 수 있다. 또 다른 예들에서, 후보 랜드마크들은 원하는 지오메트리에 기초하여 선택될 수 있다. 예를 들어, 등변 삼각형과 가장 가깝게 닮은 후보 랜드마크들이 샘플링될 수 있다. 다른 예에서, 라인과 가장 가깝게 닮은 후보 랜드마크들이 샘플링될 수 있다. 후보 랜드마크들을 샘플링하는 다른 방식들도 가능하다.
일부 실시예들에서, 대응하는 매핑된 랜드마크들은 샘플링된 후보 랜드마크들과 유사한 방식으로 선택될 수 있다. 다른 실시예들에서, 샘플링된 후보 랜드마크들과 유사한 지오메트리를 형성하는 대응하는 매핑된 랜드마크들이 샘플링될 수 있다. 본 예에서, 샘플링된 매핑된 랜드마크들(1102, 1104, 및 1006)은 샘플링된 후보 랜드마크들(1112, 1114, 및 1120)에 의해 형성된 지오메트리와 가장 가깝게 닮는다. 대응하는 매핑된 랜드마크들을 샘플링하는 다른 방식들도 가능하다.
일부 실시예들에서, 각각이 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 상이한 조합을 포함하는 수 개의 샘플 세트가 결정될 수 있다. 샘플 세트들 각각은 로봇의 포즈를 적절하게 표현하는 것들을 결정하기 위해 점검될 수 있다.
도 11c는 후보 랜드마크들 모두에 적용된 샘플 세트에 기초하여 결정된 변환을 도시한다. 샘플링된 후보 랜드마크들의 서브세트를 대응하는 매핑된 랜드마크들과 관련시키는 샘플 세트에 대한 변환이 결정될 수 있다. 예를 들어, 변환은 샘플링된 후보 랜드마크들과 대응하는 매핑된 랜드마크들 사이의 거리들을 최소화하기 위해 후보 랜드마크들을 병진 및 회전시킬 수 있다. 이 예시적인 실시예에서, 샘플링된 후보 랜드마크들(1112, 1114, 및 1120)은 대응하는 매핑된 랜드마크들(1104, 1106 및 1102)로부터의 전체 거리를 최소화하도록 배향되었다. ICP(iterative closest point) 알고리즘과 같은 최소 제곱법이 이 정렬을 달성할 수 있다. 임의의 유사한 알고리즘이 샘플링된 후보 랜드마크들의 서브세트를 대응하는 매핑된 랜드마크들과 적절하게 정렬시킬 수 있다. 다른 변환들도 가능하다.
변환은 샘플링된 후보 랜드마크들의 서브세트 및 대응하는 매핑된 랜드마크들에 기초하여 결정될 수 있지만, 변환은 후보 랜드마크들 모두에 적용될 수 있다. 본 예에서, 변환은 샘플링된 후보 랜드마크들에 더하여 비-샘플링된 후보 랜드마크들(1116 및 1118)에 적용된다.
일단 결정된 변환이 후보 랜드마크들에 적용되면, 변환된 후보 랜드마크들과 이웃하는 매핑된 랜드마크들 사이의 거리들이 결정될 수 있다. 특정한 변환된 후보 랜드마크에 대응하는 이웃하는 매핑된 랜드마크는 변환이 적용된 후에 가장 가까운 매핑된 랜드마크일 수 있다. 일부 예들에서, 각각의 매핑된 랜드마크는 하나의 변환된 후보 랜드마크에 대해 이웃하는 매핑된 랜드마크로서 역할만을 할 수 있다(예를 들어, 단일 매핑된 랜드마크는 다수의 후보 랜드마크에게 인라이어들로서 자격을 줄 수 없다). 이 예에서, 매핑된 랜드마크(1102)는 변환된 후보 랜드마크(1120)의 이웃하는 매핑된 랜드마크이고, 매핑된 랜드마크(1104)는 변환된 후보 랜드마크(1112)의 이웃하는 매핑된 랜드마크이고, 매핑된 랜드마크(1106)는 변환된 후보 랜드마크(1114)의 이웃하는 매핑된 랜드마크이다.
변환은 일반적으로 로봇(1100)의 잠재적 포즈를 나타낼 수 있다. 변환된 후보 랜드마크들과 이웃하는 랜드마크들 사이의 거리들은 변환이 실행 가능한 포즈를 제시하는지 여부를 나타낼 수 있다. 예를 들어, 변환과 연관된 인라이어들의 수가 결정될 수 있다.
도 11d는 예시적인 실시예에 따른, 변환된 후보 랜드마크들과 연관된 인라이어의 수를 도시한다. 인라이어들 각각은 인라이어 거리 임계값에 기초하여 결정될 수 있다. 인라이어 거리 임계값은 변환된 후보 랜드마크가 매핑된 랜드마크들 중 임의의 것과 적절하게 정렬되는지를 나타낼 수 있다. 본 예에서, 인라이어 거리 임계값은 변환된 후보 랜드마크들(1120, 1112, 및 1114)을 각각 둘러싸는 반경들(1130, 1132, 및 1134)에 의해 표현된다. 이웃하는 매핑된 랜드마크의 임계 거리 내의 임의의 변환된 후보 랜드마크가 인라이어로 간주될 수 있다. 본 예에서, 변환된 후보 랜드마크들(1112, 1114, 및 1120)은 인라이어들로 간주될 수 있다. 도 11d에는 인라이어들로 간주되지 않는 후보 랜드마크들(1116 및 1118)이 도시되어 있지 않다. 또한 도 11d에는 변환된 후보 랜드마크들 중 임의의 것의 인라이어 거리 임계값 내에 있지 않은 매핑된 랜드마크(1108)가 도시되어 있지 않다.
잘못된 검출을 포함하는 샘플링된 서브세트는 로봇의 포즈를 적절하게 표현하지 않는 변환을 초래할 수 있다. 본 예에서, 후보 랜드마크들(1112, 1114, 1116, 및 1118)은 각각 매핑된 랜드마크들에 대응하는 반면, 후보 랜드마크(1120)는 잘못된 검출에 대응한다. 도 11c 및 도 11d는, 샘플링된 서브 세트가 잘못된 검출을 포함하기 때문에, 로봇의 포즈를 적절히 표현하지 않는 변환의 예시적인 실시예를 도시한다.
본 예에서는, 5개의 변환된 후보 랜드마크로부터 3개의 인라이어가 결정된다. 다시 말해서, 5개의 후보 랜드마크 중 3개는 변환에 기초하여 적절하게 정렬된 것으로 간주될 수 있다. 인라이어들을 갖는 5개의 후보 랜드마크 중 3개가 실행 가능한 변환에 대응하지 않으며, 이는 결국 로봇의 실행 가능한 포즈를 나타내지 않는 것으로 결정될 수 있다. 다른 팩터들이 변환이 실행 가능하지 않다는 결정에 기여할 수 있다. 예를 들어, 도 11a 내지 도 11d에서는, 비-샘플링된 후보 랜드마크들 중 어느 것도 인라이어와 연관되지 않는다. 변환된 샘플링된 후보 랜드마크들이 인라이어들과 연관되는 것은 일반적일 수 있는데, 그 이유는 결정된 변환은 샘플링된 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 가장 잘 정렬시키도록 의도되기 때문이다. 따라서, 비-샘플링된 후보 랜드마크들이 인라이어들과 연관되는지 여부는 변환의 실행 가능성을 결정하는 데 더 많은 가중치가 주어질 수 있다. 인라이어들의 수가 불충분하다고 결정되는 예들에서는, 다른 후보 랜드마크들 및 대응하는 매핑된 랜드마크들이 샘플링될 수 있고, 다른 후보 랜드마크들이 변환될 수 있고, 다른 후보 랜드마크들과 연관된 인라이어들의 수가 결정될 수 있다.
도 12a, 도 12b, 도 12c 및 도 12d는 예시적인 실시예에 따른, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 다른 샘플 세트와 연관된 인라이어들의 결정을 예시한다. 도 12a는 도 11a에 도시된 바와 같은 로봇의 동일한 매핑된 환경을 도시한다. 유사하게, 도 12b는 도 12b에 도시된 것들과 동일한 검출들을 행한 로봇을 도시한다. 그러나, 도 12a 및 도 12b는 상이한 샘플 세트를 도시한다. 본 예에서는, 후보 랜드마크들(1214, 1216, 및 1218) 및 대응하는 매핑된 랜드마크들(1204, 1206, 및 1208)이 샘플링된다. 도 12c는 후보 랜드마크들 모두에 적용된 샘플 세트로부터 결정된 변환을 도시한다. 본 예에서, 변환은 샘플링된 후보 랜드마크들(1214, 1216, 및 1218) 및 대응하는 매핑된 랜드마크들(1204, 1206, 및 1208)에 기초하여 결정된다. 변환은 비-샘플링된 랜드마크들(1212 및 1220)에도 적용된다. 도 12d는 맵 랜드마크들과 정렬된 변환된 후보 랜드마크들과 연관된 인라이어의 수를 도시한다. 샘플링된 후보 랜드마크들(1214, 1216, 및 1218)은 샘플링된 후보 랜드마크들의 반경들(1234, 1236 및 1238) 내에 있는 이웃하는 매핑된 랜드마크들(1204, 1206, 및 1208)에 대응하기 때문에 인라이어들이다. 비-샘플링된 후보 랜드마크(1212)도 인라이어인데, 그 이유는 이웃하는 매핑된 랜드마크(1202)가 후보 랜드마크(1212)의 반경(1232) 내에 있기 때문이다.
도 12d는 5개의 후보 랜드마크 중 4개의 인라이어를 포함하는 예시적인 실시예를 도시한다. 인라이어들을 갖는 5개의 후보 랜드마크 중 4개가 실행 가능한 변환에 대응하며, 이는 결국 로봇의 실행 가능한 포즈를 나타내는 것으로 결정될 수 있다. 이러한 결정은 총 4개의 샘플링되고 이웃하는 랜드마크들(1202, 1204, 1206, 및 1208)이 있기 때문에 이루어질 수 있다. 따라서, 본 예에서 4개의 인라이어을 결정하는 것은 후보 랜드마크들을 각각 그리고 모든 관련 매핑된 랜드마크와 적절하게 정렬시키는 변환을 나타낸다. 다른 팩터들이 변환이 실행 가능하다는 결정에 기여할 수 있다. 예를 들어, 도 12d에서는, 비-샘플링된 후보 랜드마크들 중 하나가 인라이어와 연관된다. 비-샘플링된 후보 랜드마크들이 인라이어와 연관되는 것이 중요할 수 있는데, 그 이유는 도 11a 내지 도 11d에 도시된 바와 같이 하나 이상의 잘못된 검출로부터 도출되는 변환이 비-샘플링된 후보 랜드마크들과 연관된 인라이어들을 허용할 가능성이 더 적기 때문이다.
도 12a 내지 도 12d는 매핑된 랜드마크들에 대응하는 후보 랜드마크들만을 포함하는 샘플링된 서브세트가 로봇의 포즈를 적절하게 표현하는 변환을 초래할 수 있다는 것을 도시한다. 도 11a 내지 도 11d는 임의의 매핑된 랜드마크들로부터 멀리 떨어진 잘못된 검출들이 어떻게 변환을 부적절하게 렌더링할 수 있는지를 도시했지만, 일부 예들은 매핑된 랜드마크에 가까운 잘못된 검출들을 포함할 수 있다.
도 13a, 도 13b, 도 13c 및 도 13d는 예시적인 실시예에 따른, 후보 랜드마크들 및 대응하는 매핑된 랜드마크들의 또 다른 샘플 세트와 연관된 인라이어들의 결정을 예시한다. 도 13a는 도 11a 및 도 12a에 도시된 바와 같은 로봇의 동일한 매핑된 환경을 도시한다. 그러나, 도 13b는 2개의 추가적인 검출(후보 랜드마크들(1320 및 1322))을 행하고, 검출(도 11b/도 12b의 후보 랜드마크(1120/1220))을 손실한 로봇을 도시한다. 본 예는 로봇(1300)이 환경 내에서 그 포지션 및 배향을 변경함에 따라, 로봇이 추가적인 잘못된 검출들을 검출할 수 있음을 도시한다. 예를 들어, 후보 랜드마크들(1312, 1314, 1316 및 1318)은 매핑된 랜드마크들(1302, 1304, 1306 및 1308)에 각각 대응할 수 있는 반면, 후보 랜드마크들(1320 및 1322)은 잘못된 검출들에 대응할 수 있다. 이것은, 각각이 로봇(도 11b/도 12b의 1100/1200)의 상이한 포지션 및 배향에서 하나의 잘못된 검출(도 11b/도 12b의 후보 랜드마크(1120/1220))만을 포함하는 도 11a 내지 도 11d 및 도 12a 내지 도 12d에 도시된 예들과 대조적이다.
도 13c는 후보 랜드마크들 모두에 적용된 샘플 세트로부터 결정된 변환을 도시한다. 본 예에서, 샘플 세트는 후보 랜드마크들(1314, 1322, 및 1316) 및 대응하는 매핑된 랜드마크들(1304, 1306, 및 1308)을 포함한다. 도 13d는 변환이 4개의 인라이어를 생성한다는 것을 도시한다. 구체적으로, 샘플링된 후보 랜드마크들(1314, 1322 및 1316)은 이웃하는 매핑된 랜드마크들(1304, 1306 및 1308)과 각각 정렬되어, 이웃하는 매핑된 랜드마크들이 반경들(1334, 1342 및 1336) 내에 속하게 된다. 추가로, 비-샘플링된 후보 랜드마크(1312)는 이웃하는 매핑된 랜드마크(1302)와 정렬되어, 이웃하는 매핑된 랜드마크(1302)가 반경(1332) 내에 속하게 된다. 따라서, 도 13d는 잘못된 검출(예를 들어, 후보 랜드마크(1322))을 포함하는 것에도 불구하고 후보 랜드마크들의 샘플링된 서브 세트가 외견상 실행 가능한 변환을 생성할 수 있다는 것을 도시한다. 도 13c 내지 도 13d는 잘못된 검출을 사용한 변환이 로봇의 약간 시프트된 포즈 추정치를 나타낼 수 있다는 것을 또한 도시한다. 부정확한 포즈 추정치는 로봇이 환경을 통해 비효과적으로 내비게이팅하게 할 수 있다.
도 13a 내지 도 13d에 도시된 것과 같은 시나리오들의 부정적 영향들을 완화시키기 위해 몇몇 조치들이 취해질 수 있다. 예를 들어, 인라이어 거리 임계값이 감소될 수 있다. 이러한 방식으로, 매핑된 랜드마크에 가까운 잘못된 검출들조차도, 잘못된 검출들을 포함하지 않는 샘플링된 서브 세트와 동일한 수의 인라이어를 일반적으로 생성하지 않을 것이다. 또한, 잘못된 검출이 이러한 변환을 산출할 때에도, 포즈는, 예를 들어 도 13c에 도시된 시프트보다 더 적은 정도로 시프트될 것이다. 본 예에서, 변환된 후보 랜드마크(1312)가 인라이어를 생성하지 않도록 인라이어 거리 임계값이 감소될 수 있다. 그렇더라도, 인라이어 거리 임계값을 감소시키는 것은 잘못된 검출들에 의해 야기되는 시프트된 포즈 추정치들을 여전히 허용할 수 있다.
또한, 잘못된 검출을 포함하는 샘플 세트가 실행 가능한 변환을 생성할 수 있지만, 그 샘플 세트는 로봇의 포즈를 추정하기 위해 반드시 선택되는 것은 아닐 것이다. 다른, 더 적합한 샘플링된 서브 세트가 대신 선택될 수 있다. 예를 들어, 2개 이상의 샘플 세트가 동일한 수의 인라이어를 생성할 때, 매핑된 랜드마크들로의 가장 낮은 네트 거리를 갖는 변환된 샘플 세트가 선택될 수 있다. 예를 들어, 도 12d에 도시된 변환은, 후보 랜드마크/매핑된 랜드마크 쌍들(1212/1202, 1214/1204, 1216/1206, 및 1218/1208) 사이의 거리들이 1312/1302, 1314/1304, 1322/1306, 및 1316/1308 사이의 거리들보다 작기 때문에, 도 13d에 도시된 변환보다 바람직할 수 있다. 추가적인 예에서, 동일한 수의 인라이어를 생성하는 샘플 세트들이 서로에 대해 반복적으로 비교될 수 있다. 각각의 반복마다 하나의 샘플 세트가 다른 것들보다 더 많은 인라이어를 가질 때까지 인라이어 거리 임계값은 감소될 수 있다.
일단 샘플 세트가 선택되면, 로봇의 포즈 추정치가 샘플 세트에 기초하여 결정될 수 있다. 일부 예들에서, 샘플 세트에 대해 이미 결정된 변환은 추정된 로봇 포즈를 결정하기 위해 직접 적용될 수 있다. 다른 예들에서, 선택된 샘플 세트와 연관된 인라이어들 모두를 사용하여 개선된 변환이 결정될 수 있다. 이어서, 개선된 변환을 적용하여 더 정확한 로봇 포즈 추정치를 생성할 수 있다. 포즈 추정치들의 다른 예들도 가능하다.
일부 예들은 샘플링된 서브 세트와 연관된 포즈 추정 신뢰도를 결정하는 것을 또한 포함할 수 있다. 포즈 추정 신뢰도는, 후보 랜드마크들의 총 수에 비교한, 샘플링된 서브 세트와 연관된 결정된 인라이어들의 수에 일반적으로 관련될 수 있다. 예를 들어, 포즈 추정 신뢰도는 후보 랜드마크들의 총 수에 대한, 결정된 인라이어들의 수의 비율에 기초할 수 있다. 이 예에서, 1에 가까운 비율은 정확한 포즈 추정치의 높은 가능성을 나타낼 것이다. 반대로, 0에 가까운 비율은 정확한 포즈 추정치의 낮은 가능성을 나타낼 것이다.
일부 예들에서, 포즈 추정 신뢰도는 개선된 포즈 추정치를 결정하는 데 고려될 수 있다. 예를 들어, 높은 포즈 추정 신뢰도를 갖는 선택된 샘플링된 서브세트는 개선된 포즈 추정치에 대한 1차 기여자일 수 있다. 낮은 포즈 추정 신뢰도를 갖는 선택된 샘플링된 서브세트는 개선된 포즈 추정치에 대한 2차 기여자일 수 있다. 예를 들어, 개선된 포즈 추정치는 선택된 샘플 세트로부터보다 휠 오도메트리로부터 유래할 수 있다. 이러한 방식으로, 포즈 추정치를 완료하는 것은 칼만 필터링을 연상시키는 것일 수 있다.
다른 예들은 샘플링된 서브 세트와 연관된 포즈 추정치의 정확도를 결정하는 것을 포함할 수 있다. 정확도는 로봇의 과거 포즈 추정치와 관련된 통계 정보에 기초할 수 있다. 예를 들어, 공분산 매트릭스가 각각의 매핑된 랜드마크에 대해 결정될 수 있다. 공분산 매트릭스는 과거 포즈 추정치들의 위치 및 배향을 포함할 수 있다. 공분산 매트릭스와 양호하게 매칭하지 않는 포즈 추정치는 공분산 매트릭스에 맞는 포즈 추정치만큼 정확하지 않을 수 있다. 예를 들어, 도 12a 내지 도 12d의 샘플 세트로부터 도출된 포즈 추정치가 매핑된 랜드마크(1206)에 대해 그러한 것만큼, 도 13a 내지 도 13d에서의 샘플 세트에 기초한 포즈 추정치는 매핑된 랜드마크(1306)에 대한 공분산 매트릭스에 또한 맞지 않을 수도 있다. 이것은, 로봇(1300)의 포즈가 포즈 추정치를 시프트할 수 있는 2개의 잘못된 검출(후보 랜드마크들(1320 및 1322))을 포함하는 반면, 로봇(1200)은 단지 하나의 잘못된 검출(후보 랜드마크(1220))만을 포함하기 때문에 발생할 수 있다. 일부 예들에서, 둘 다의 샘플 세트가 동일한 수의 인라이어를 생성하더라도, 다른 것보다 더 정확한 것으로 간주되는 샘플 세트가 선택될 수 있다. 추가 예들에서, 포즈 추정 신뢰도에 대해 기술된 것과 대체로 동일한 방식으로 포즈 추정치의 결정된 정확도에 기초하여 포즈 추정치가 개선될 수 있다.
도 14는 예시적인 실시예에 따른 로봇의 환경 내의 로봇의 포즈를 추정하기 위해 사용될 수 있는 방법의 블록도이다. 일부 예들에서, 이 방법은 시스템의 일부로서 수행될 수 있다. 예를 들어, 블록 1400은 비일시적 컴퓨터 판독가능 매체 상에 저장된 프로그램 명령어들을 실행하는 하나 이상의 프로세서와 함께 로봇의 하나 이상의 센서에 의해 수행될 수 있다. 이 예에서, 로봇의 하나 이상의 센서는 복수의 후보 랜드마크로부터 신호들을 수신할 수 있는 반면, 실행된 프로그램 명령어들은 수신된 신호들에 기초하여 로봇과 관련된 후보 랜드마크들의 위치들을 결정할 수 있다. 하나 이상의 프로세서는 블록들(1402, 1404, 1406, 1408, 및 1410)에 포함된 기능들을 또한 수행하기 위해 프로그램 명령어들을 실행할 수 있다.
다른 예들에서, 이 방법은 컴퓨팅 시스템의 일부로서 수행될 수 있다. 이들 예에서, 비일시적 컴퓨터 판독가능 매체는 컴퓨팅 시스템으로 하여금 방법의 블록들을 수행하게 하기 위해 하나 이상의 프로세서에 의해 실행가능한 명령어들을 저장할 수 있다.
이들 예에서, 하나 이상의 프로세서 및 비일시적 컴퓨터 판독가능 매체는 블록들을 원격으로 수행할 수 있다. 다른 예들에서, 하나 이상의 프로세서 및 비일시적 컴퓨터 판독가능 매체는 로봇에서 방법을 수행할 수 있다. 또 다른 예들에서, 방법의 부분들은 원격으로 수행될 수 있는 반면, 다른 부분들은 로봇에서 수행될 수 있다.
방법의 블록 1400은 로봇 상의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하기 위해 수행될 수 있다. 예를 들어, 로봇의 하나 이상의 센서는 신호들을 수신할 수 있다. 신호들은 로봇의 환경 내의 랜드마크들로부터, 또는 환경 내의 다른 물체들로부터 나올 수 있다. 랜드마크들 및 물체들의 위치들이 결정될 수 있다. 각각의 검출은 후보 랜드마크로서 취급될 수 있다.
방법의 블록 1402는 복수의 샘플 세트를 결정하기 위해 수행될 수 있고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다. 예를 들어, 복수의 샘플 세트를 결정하는 것은 로봇과 관련된 복수의 후보 랜드마크의 위치들에 기초하여 복수의 후보 랜드마크로부터 각각의 샘플 세트에 대한 3개의 후보 랜드마크를 선택하는 것을 포함할 수 있다. 샘플 세트는 3개의 대응하는 매핑된 랜드마크를 또한 포함할 수 있다.
다른 예에서, 복수의 샘플 세트를 결정하는 것은, 대응하는 매핑된 랜드마크들의 대응 임계값 내에 있는 후보 랜드마크들을, 로봇의 초기 포즈 추정치에 기초하여 식별하는 것을 포함할 수 있고, 각각의 샘플 세트는 식별된 후보 랜드마크들의 서브 세트 및 대응하는 매핑된 랜드마크들을 포함한다. 예를 들어, 배향 α1 및 (x1, y1)의 초기 포즈 추정치를 갖는 로봇은, 로봇에 대한 위치들에서 후보 랜드마크들을 검출할 수 있다. 로봇은 오도메트리 데이터를 또한 가질 수 있다. 로봇의 일반적인 포즈는 초기 포즈 추정치 및 오도메트리 데이터에 기초하여 추론될 수 있다. 환경 내의 후보 랜드마크들의 포지션들은 그에 따라 추론될 수 있다. 후보 랜드마크들의 추론된 위치들의 대응 임계값 내의 매핑된 랜드마크들을 결정하기 위해 환경의 맵이 검색될 수 있다. 대응 임계값 내의 매핑된 랜드마크들 및 후보 랜드마크들은 대응 쌍들을 형성할 수 있다. 샘플 세트는 대응 쌍들로부터 결정될 수 있다.
방법의 블록 1404는 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 각각의 샘플 세트에 대한 변환을 결정하기 위해 수행될 수 있다. 변환은 샘플 세트의 샘플링된 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 대해 정렬하기 위해 ICP 알고리즘과 같은 최소 평균 제곱 알고리즘을 사용할 수 있다.
방법의 블록 1406은 각각의 샘플 세트에 대한 변환을 복수의 후보 랜드마크에 대해 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 각각의 샘플 세트와 연관된 인라이어들의 수를 결정하도록 수행될 수 있다. 변환된 복수의 후보 랜드마크와 이웃하는 매핑된 랜드마크들 사이의 거리들이 결정될 수 있다. 인라이어 거리 임계값 내에 이웃하는 매핑된 랜드마크를 갖는 변환된 후보 랜드마크들은 인라이어들로 간주될 수 있다.
방법의 블록 1408은 각각의 샘플 세트와 연관된 인라이어들의 수에 기초하여 복수의 샘플 세트로부터 샘플 세트를 선택하도록 수행될 수 있다. 최고 수의 인라이어를 갖는 복수의 샘플 세트의 샘플 세트가 선택될 수 있다. 다른 예들에서, 미리 결정된 수의 인라이어를 생성하기 위한 복수의 샘플 세트의 제1 샘플 세트가 선택될 수 있다.
방법의 블록 1410은 선택된 샘플 세트에 기초하여 로봇의 포즈를 추정하도록 수행될 수 있다. 포즈는 선택된 샘플 세트에 대한 결정된 변환을 사용하여 추정될 수 있다. 다른 예들에서, 선택된 샘플 세트와 연관된 인라이어들 모두에 기초한 개선된 변환이 더 큰 정밀도를 위해 사용될 수 있다.
도 15는 예시적인 실시예에 따른 로봇의 환경 내의 로봇의 포즈를 추정하는 데 사용될 수 있는 다른 방법의 블록도이다. 도 15에 의해 도시된 방법은 또한 도 14와 관련하여 전술한 바와 대체로 동일한 방식으로 시스템 또는 컴퓨터 시스템에 의해 수행될 수 있다.
방법의 블록 1500은 로봇 상의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하기 위해 수행될 수 있다.
방법의 블록 1502는 복수의 샘플 세트를 결정하기 위해 수행될 수 있고, 각각의 샘플 세트는 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함한다.
방법의 블록 1504는 복수의 샘플 세트로부터 샘플 세트를 선택하도록 수행될 수 있다. 복수의 샘플 세트로부터 샘플 세트를 선택하는 것은 복수의 순서에 기초할 수 있다. 예를 들어, 블록 1504에서, 방법은 블록 1502에 의해 결정되는 바와 같이 각각의 샘플 세트를 선택할 수 있다.
방법의 블록 1506은 서브 세트로부터의 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 관련시키는 선택된 샘플 세트에 대한 변환을 결정하기 위해 수행될 수 있다. 변환은 샘플 세트의 샘플링된 후보 랜드마크들을 대응하는 매핑된 랜드마크들에 대해 정렬하기 위해 ICP 알고리즘과 같은 최소 평균 제곱 알고리즘을 사용할 수 있다.
방법의 블록 1508은, 선택된 샘플 세트에 대한 변환을 복수의 후보 랜드마크에 적용하여, 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 선택된 샘플 세트와 연관된 인라이어들의 수를 결정하도록 수행될 수 있다.
방법의 블록 1510은 선택된 샘플 세트와 연관된 인라이어들의 수를 인라이어 임계값과 비교하도록 수행될 수 있다. 예를 들어, 인라이어 임계값은 미리 결정된 수일 수 있고, 블록 1504의 선택된 샘플 세트와 연관된 인라이어들의 수는 임계값과 비교될 수 있다. 다른 예들에서, 인라이어 임계값은 미리 결정된 백분율일 수 있고, 후보 랜드마크들의 총 수에 대한 블록 1504의 선택된 샘플 세트와 연관된 인라이어들의 백분율은 임계 백분율과 비교될 수 있다. 블록 1510은 방법에서 삼항 연산자(ternary operator)로서 역할을 할 수 있다. 예를 들어, 임계값이 충족된 것으로 결정하는 것은 하나의 결과를 가질 수 있는 반면, 임계값이 충족되지 않는다고 결정한 것은 다른 결과를 가질 수 있다.
방법의 블록 1512는 인라이어들의 수가 인라이어 임계값을 충족하지도 않고 초과하지도 않을 때 블록 1510의 결과를 표현한다. 이는 블록 1504가 수행되는 것을 초래하고, 상이한 샘플 세트가 선택된다. 따라서, 방법은 샘플 세트들 중 하나가 인라이어 임계값을 충족시키거나 초과하는 인라이어들의 수를 갖는 것으로 결정될 때까지 샘플 세트들 각각에 대한 인라이어들의 수를 순차적으로 결정하는 것을 수반한다.
방법의 블록 1514는 인라이어들의 수가 인라이어 임계값을 충족하거나 초과할 때 블록 1510의 결과를 표현한다. 이는 블록 1516이 수행되는 것을 초래한다.
방법의 블록 1516은 이전에 설명된 것과 대체로 동일한 방식으로 선택된 샘플 세트에 기초하여 로봇의 포즈를 추정하도록 수행될 수 있다.
본 개시내용은, 다양한 양태들의 예시로서 의도되는, 본 출원에서 설명된 특정 실시예들에 관하여 제한되어서는 안 된다. 본 기술분야의 통상의 기술자들에게 명백한 바와 같이, 많은 수정 및 변형이 그의 사상 및 범위를 벗어나지 않고 이루어질 수 있다. 본 명세서에 열거된 것들 이외에도, 본 개시내용의 범위 내에 있는 기능적으로 동등한 방법들 및 장치들은 전술한 설명들로부터 본 기술분야의 통상의 기술자들에게 명백할 것이다. 이러한 수정들 및 변형들은 첨부된 청구항들의 범위 내에 있는 것으로 의도된다.
위 상세한 설명은 첨부 도면들을 참조하여 개시된 시스템들, 디바이스들, 및 방법들의 다양한 특징들 및 기능들을 설명한다. 도면들에서, 유사한 심벌들은 문맥이 달리 지시하지 않는 한, 전형적으로 유사한 컴포넌트들을 식별한다. 본 명세서에 그리고 도면들에서 설명된 예시적인 실시예들은 제한적인 것으로 의도되지 않는다. 본 명세서에 제시된 주제의 사상 또는 범위를 벗어나지 않고, 다른 실시예들이 이용될 수 있고, 다른 변경들이 이루어질 수 있다. 본 명세서에서 일반적으로 설명되고 도면들에 예시된 바와 같이, 본 개시내용의 양태들은 매우 다양한 상이한 구성들로 배열, 치환, 조합, 분리 및 설계될 수 있으며, 이들 모두는 본 명세서에서 명시적으로 고려된다는 것이 쉽게 이해될 것이다.
정보의 처리를 표현하는 블록은 본 명세서에 설명된 방법 또는 기법의 특정 로직 기능들을 수행하도록 구성될 수 있는 회로에 대응할 수 있다. 대안적으로 또는 추가적으로, 정보의 처리를 표현하는 블록은 모듈, 세그먼트, 또는 (관련 데이터를 포함하는) 프로그램 코드의 일부에 대응할 수 있다. 프로그램 코드는 방법 또는 기법에서의 특정 로직 기능들 또는 액션들을 구현하기 위해 프로세서에 의해 실행가능한 하나 이상의 명령어를 포함할 수 있다. 프로그램 코드 및/또는 관련 데이터는 디스크 또는 하드 드라이브 또는 다른 저장 매체를 포함하는 저장 디바이스와 같은 임의의 타입의 컴퓨터 판독가능 매체 상에 저장될 수 있다.
컴퓨터 판독가능 매체는 또한 레지스터 메모리, 프로세서 캐시, 및 랜덤 액세스 메모리(RAM)와 같은 짧은 기간 동안 데이터를 저장하는 컴퓨터 판독가능 매체와 같은 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 또한, 예를 들어, 판독 전용 메모리(ROM), 광학 또는 자기 디스크, 콤팩트 디스크 판독 전용 메모리(CD-ROM)와 같은, 보조 또는 지속적 장기 저장소와 같이, 더 긴 시간 기간 동안 프로그램 코드 및/또는 데이터를 저장하는 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 또한 임의의 다른 휘발성 또는 비휘발성 저장 시스템일 수 있다. 컴퓨터 판독가능 매체는 예를 들어 컴퓨터 판독가능 저장 매체 또는 유형의(tangible) 저장 디바이스로 간주될 수 있다.
또한, 하나 이상의 정보 송신을 표현하는 블록은 동일한 물리적 디바이스에서의 소프트웨어 및/또는 하드웨어 모듈들 사이의 정보 송신들에 대응할 수 있다. 그러나, 다른 정보 송신들은 상이한 물리적 디바이스들에서의 소프트웨어 모듈들 및/또는 하드웨어 모듈들 사이에 이루어질 수 있다.
도면들에 도시된 특정 배열들은 제한적인 것으로 간주되어서는 안 된다. 다른 실시예들은 주어진 도면에 도시된 각각의 요소를 더 많이 또는 더 적게 포함할 수 있다는 것을 이해해야 한다. 또한, 예시된 요소들 중 일부는 조합되거나 생략될 수 있다. 또한 추가로, 예시적인 실시예는 도면들에 예시되지 않은 요소들을 포함할 수 있다.
다양한 양태들 및 실시예들이 본 명세서에 개시되었지만, 다른 양태들 및 실시예들이 본 기술분야의 통상의 기술자들에게 명백할 것이다. 본 명세서에 개시된 다양한 양태들 및 실시예들은 예시의 목적들을 위한 것이고 제한적인 것으로 의도되지 않으며, 진정한 범위는 이하의 청구항들에 의해 나타내어진다.

Claims (20)

  1. 방법으로서,
    로봇의 적어도 하나의 센서로부터의 센서 데이터에 기초하여 상기 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하는 단계;
    복수의 샘플 세트를 결정하는 단계- 각각의 샘플 세트는 상기 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함함 -;
    상기 복수의 샘플 세트 중 각각의 샘플 세트에 대해:
    상기 복수의 후보 랜드마크의 서브 세트로부터의 상기 후보 랜드마크들을 상기 복수의 대응하는 매핑된 랜드마크들 중의 상기 대응하는 매핑된 랜드마크들과 관련시키는 변환을 결정하는 단계;
    상기 결정된 변환을 상기 복수의 후보 랜드마크에 대해 적용하는 단계; 및
    상기 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 상기 샘플 세트와 연관된 인라이어들의 수를 결정하는 단계;
    상기 복수의 샘플 세트로부터의 각각의 샘플 세트와 연관된 상기 결정된 인라이어들의 수에 기초하여 상기 복수의 샘플 세트로부터 샘플 세트를 선택하는 단계; 및
    상기 선택된 샘플 세트에 기초하여 상기 로봇의 포즈를 추정하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 추정된 포즈에 기초하여 상기 로봇의 환경 내에서 상기 로봇을 내비게이팅하는 단계를 추가로 포함하는, 방법.
  3. 제1항에 있어서,
    상기 복수의 샘플 세트를 결정하는 단계는, 대응하는 매핑된 랜드마크들의 대응 거리 임계값 내에 있는 후보 랜드마크들을, 상기 로봇의 초기 포즈 추정치에 기초하여 식별하는 것을 포함하고, 각각의 샘플 세트는 상기 식별된 후보 랜드마크들의 서브 세트 및 대응하는 매핑된 랜드마크들을 포함하는, 방법.
  4. 제1항에 있어서,
    상기 복수의 후보 랜드마크 내의 후보 랜드마크들의 총 수에 대한, 상기 선택된 샘플 세트와 연관된 인라이어들의 상기 결정된 수의 비율에 기초하여, 상기 추정된 포즈와 연관된 포즈 추정 신뢰도를 결정하는 단계를 추가로 포함하는, 방법.
  5. 제1항에 있어서,
    휠 오도메트리에 부분적으로 기초하여 상기 로봇의 상기 추정된 포즈를 개선하는 단계를 추가로 포함하는, 방법.
  6. 제1항에 있어서,
    상기 추정된 포즈의 정확도를 결정하는 단계를 추가로 포함하고, 상기 정확도를 결정하는 단계는 상기 추정된 포즈의 추정치를 과거 포즈 추정치들을 표현하는 통계 데이터와 비교하는 것을 포함하는, 방법.
  7. 제1항에 있어서,
    상기 복수의 샘플 세트로부터 상기 샘플 세트를 선택하는 단계는, 상기 샘플 세트들 중 하나가 인라이어 임계값을 충족시키거나 초과하는 인라이어들의 수를 갖는 것으로 결정될 때까지 상기 샘플 세트들 각각에 대한 상기 인라이어들의 수를 순차적으로 결정하는 것을 포함하는, 방법.
  8. 제1항에 있어서,
    상기 복수의 샘플 세트를 결정하는 단계는:
    각각의 샘플 세트에 대한 제1 대응하는 매핑된 랜드마크를 선택하는 것; 및
    상기 선택된 제1 대응하는 매핑된 랜드마크에 대한, 후속 대응하는 매핑된 랜드마크들의 포지션들에 기초하여, 각각의 샘플 세트에 대한 상기 후속 대응하는 매핑된 랜드마크들을 선택하는 것을 포함하는, 방법.
  9. 제1항에 있어서,
    상기 로봇과 관련된 상기 복수의 후보 랜드마크의 상기 위치들을 결정하는 단계는 상기 로봇의 적어도 하나의 센서로부터 상기 위치들을 수신하는 것을 포함하거나, 상기 로봇과 관련된 상기 복수의 후보 랜드마크의 상기 위치들을 결정하는 단계는 강도 임계값보다 큰 강도를 갖는 상기 로봇의 상기 적어도 하나의 센서로부터의 신호들을 식별하는 것을 포함하는, 방법.
  10. 제1항에 있어서,
    상기 선택된 샘플 세트와 연관된 상기 인라이어들을, 상기 복수의 매핑된 랜드마크로부터의 이웃하는 상기 매핑된 랜드마크들과 관련시키는 개선된 변환을 결정하는 단계; 및
    상기 개선된 변환에 기초하여 상기 로봇의 상기 포즈를 추정하는 단계
    를 추가로 포함하는, 방법.
  11. 제1항에 있어서,
    상기 복수의 샘플 세트를 결정하는 단계는, 상기 로봇과 관련된 상기 복수의 후보 랜드마크의 상기 위치들에 기초하여, 상기 복수의 후보 랜드마크로부터 각각의 샘플 세트에 대한 3개의 후보 랜드마크를 선택하는 것을 포함하는, 방법.
  12. 제1항에 있어서,
    상기 샘플 세트로부터의 상기 후보 랜드마크들을 상기 대응하는 매핑된 랜드마크들과 관련시키는 각각의 샘플 세트에 대한 상기 변환을 결정하는 단계는, 상기 대응하는 매핑된 랜드마크들과 정렬시키기 위해 상기 샘플 세트로부터의 상기 후보 랜드마크들의 시프트된 위치 및 배향을 추정하는 것을 포함하는, 방법.
  13. 시스템으로서,
    로봇;
    상기 로봇에 결합된 적어도 하나의 센서;
    하나 이상의 프로세서;
    비일시적 컴퓨터 판독가능 매체; 및
    상기 비일시적 컴퓨터 판독가능 매체 상에 저장된 프로그램 명령어들
    을 포함하고, 상기 명령어들은 상기 하나 이상의 프로세서에 의해:
    상기 로봇에 결합된 상기 적어도 하나의 센서로부터의 센서 데이터에 기초하여 상기 로봇과 관련된 복수의 후보 랜드마크의 위치들을 결정하고;
    복수의 샘플 세트를 결정하고- 각각의 샘플 세트는 상기 복수의 후보 랜드마크의 서브 세트 및 복수의 대응하는 매핑된 랜드마크를 포함함 -;
    상기 복수의 샘플 세트 중 각각의 샘플 세트에 대해:
    상기 복수의 후보 랜드마크의 상기 서브 세트로부터의 상기 후보 랜드마크들을 상기 복수의 대응하는 매핑된 랜드마크들 중의 상기 대응하는 매핑된 랜드마크들과 관련시키는 변환을 결정하고;
    상기 결정된 변환을 상기 복수의 후보 랜드마크에 대해 적용하고;
    상기 변환된 복수의 후보 랜드마크와 복수의 이웃하는 매핑된 랜드마크 사이의 거리들에 기초하여 상기 샘플 세트와 연관된 인라이어들의 수를 결정하고;
    상기 복수의 샘플 세트로부터의 각각의 샘플 세트와 연관된 상기 결정된 인라이어들의 수에 기초하여 상기 복수의 샘플 세트로부터 샘플 세트를 선택하고;
    상기 선택된 샘플 세트에 기초하여 상기 로봇의 포즈를 추정하도록 실행가능한, 시스템.
  14. 제13항에 있어서,
    상기 로봇에 결합된 LIDAR(light detection and ranging) 유닛을 추가로 포함하고, 상기 LIDAR 유닛은 상기 복수의 후보 랜드마크를 검출하기 위해 상기 로봇을 둘러싸는 영역에 광 신호들을 방출하도록 구성되는, 시스템.
  15. 제13항에 있어서,
    상기 대응하는 매핑된 랜드마크들은 역반사성 마커들을 나타내고, 상기 로봇에 결합된 상기 적어도 하나의 센서는 상기 로봇을 둘러싸는 영역에 포지셔닝된 역반사성 마커들로부터 반사 신호들을 수신하도록 구성되는, 시스템.
  16. 컴퓨팅 시스템으로 하여금 제1항 내지 제12항 중 어느 한 항의 방법을 수행하게 하기 위해 하나 이상의 프로세서에 의해 실행가능한 명령어들을 저장하는 컴퓨터 판독가능 매체.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020187034361A 2016-12-23 2017-12-22 로봇 차량들의 국부화 KR102148593B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/390,460 2016-12-23
US15/390,460 US10866102B2 (en) 2016-12-23 2016-12-23 Localization of robotic vehicles
PCT/US2017/068206 WO2018119404A1 (en) 2016-12-23 2017-12-22 Localization of robotic vehicles

Publications (2)

Publication Number Publication Date
KR20190003969A KR20190003969A (ko) 2019-01-10
KR102148593B1 true KR102148593B1 (ko) 2020-08-27

Family

ID=61006364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034361A KR102148593B1 (ko) 2016-12-23 2017-12-22 로봇 차량들의 국부화

Country Status (6)

Country Link
US (1) US10866102B2 (ko)
EP (1) EP3559772B1 (ko)
JP (1) JP6811258B2 (ko)
KR (1) KR102148593B1 (ko)
CN (1) CN109154827B (ko)
WO (1) WO2018119404A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010630B2 (en) * 2017-04-27 2021-05-18 Washington University Systems and methods for detecting landmark pairs in images
US10860750B2 (en) * 2017-06-15 2020-12-08 Sap Se Model driven layout design for robotics warehouse
WO2019228630A1 (en) * 2018-05-30 2019-12-05 Here Global B.V. Collecting or triggering collecting positioning data for updating and/or generating a positioning map
JP7243110B2 (ja) * 2018-10-02 2023-03-22 ソニーグループ株式会社 情報処理装置及び情報処理方法、コンピュータプログラム、並びに荷物受け取り支援システム
KR102325333B1 (ko) * 2019-04-19 2021-11-12 한국전자통신연구원 이동체 자율주행을 위한 인공표식 기반의 위치인식 방법 및 이를 위한 장치
CN112388621B (zh) * 2019-08-13 2023-04-07 京东科技信息技术有限公司 对接装置、移动机器人和对接装置的对接方法
CN110487263A (zh) * 2019-08-15 2019-11-22 北京致行慕远科技有限公司 可移动设备的坐标获取方法及装置
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
GB2588650A (en) * 2019-10-30 2021-05-05 Triple Lidar Tech Ltd Crane device provided with data
US11891067B2 (en) * 2019-12-11 2024-02-06 Electronics And Telecommunications Research Institute Vehicle control apparatus and operating method thereof
TWI715358B (zh) * 2019-12-18 2021-01-01 財團法人工業技術研究院 移動載具及其狀態估測與感測融合切換方法
CN111222225B (zh) * 2019-12-20 2023-08-29 浙江欣奕华智能科技有限公司 一种机器人中传感器位姿的确定方法及装置
CN111307035A (zh) * 2020-02-20 2020-06-19 北京天智航医疗科技股份有限公司 光学定位系统
JP7370288B2 (ja) * 2020-03-19 2023-10-27 三菱重工業株式会社 演算装置、車両、荷役システム、演算方法及びプログラム
US11426871B1 (en) * 2020-06-02 2022-08-30 Amazon Technologies, Inc. Automated robotic floor map generation
US20220057225A1 (en) * 2020-08-18 2022-02-24 International Business Machines Corporation Landmark determination
JP7459732B2 (ja) 2020-09-08 2024-04-02 株式会社豊田自動織機 自己位置推定システム
EP3995925B1 (en) * 2020-11-06 2023-08-30 Kabushiki Kaisha Toshiba Autonomous mobile robot, transporter, autonomous mobile robot control method, and transporter control method
KR20230053314A (ko) * 2021-10-14 2023-04-21 삼성전자주식회사 로봇, 로봇 시스템 및 그 제어 방법
CN115277742A (zh) * 2022-02-23 2022-11-01 智能清洁设备控股有限公司 用于管理机器人的系统和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919944B1 (ko) * 2007-03-19 2009-10-01 주식회사 유진로봇 이동로봇의 맵 생성 시스템 및 맵 생성방법
JP2012083855A (ja) * 2010-10-07 2012-04-26 Toyota Motor Corp 物体認識装置及び物体認識方法
WO2014020317A1 (en) * 2012-07-30 2014-02-06 Sony Computer Entertainment Europe Limited Localisation and mapping

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690134B1 (en) 2001-01-24 2004-02-10 Irobot Corporation Method and system for robot localization and confinement
ATE301302T1 (de) 2002-01-24 2005-08-15 Irobot Corp Verfahren und system zur roboterlokalisierung und beschränkung des arbeitsbereichs
US7424218B2 (en) * 2005-07-28 2008-09-09 Microsoft Corporation Real-time preview for panoramic images
US8577538B2 (en) 2006-07-14 2013-11-05 Irobot Corporation Method and system for controlling a remote vehicle
JP4448497B2 (ja) 2006-03-23 2010-04-07 本田技研工業株式会社 移動体の自己位置検出装置および位置検出システム
KR101214143B1 (ko) 2008-12-22 2012-12-20 한국전자통신연구원 이동체의 위치 및 방향 인식 장치 및 그 방법
JP5182762B2 (ja) * 2009-05-09 2013-04-17 国立大学法人福井大学 2次元図形マッチング方法
US8340438B2 (en) * 2009-12-17 2012-12-25 Deere & Company Automated tagging for landmark identification
US9684989B2 (en) * 2010-06-16 2017-06-20 Qualcomm Incorporated User interface transition between camera view and map view
AU2011305154B2 (en) 2010-09-24 2015-02-05 Irobot Corporation Systems and methods for VSLAM optimization
US8594923B2 (en) * 2011-06-14 2013-11-26 Crown Equipment Limited Method and apparatus for sharing map data associated with automated industrial vehicles
US20130060461A1 (en) * 2011-09-07 2013-03-07 INRO Technologies Limited Method and apparatus for using pre-positioned objects to localize an industrial vehicle
GB201116960D0 (en) * 2011-09-30 2011-11-16 Bae Systems Plc Monocular camera localisation using prior point clouds
US20140031980A1 (en) * 2011-11-11 2014-01-30 Jens-Steffen Gutmann Systems and methods for extending slam to multiple regions
KR20140108828A (ko) * 2013-02-28 2014-09-15 한국전자통신연구원 카메라 트래킹 장치 및 방법
WO2017020317A1 (zh) * 2015-08-06 2017-02-09 秦玲娟 根据不同密码显示不同信息的方法和取款机
US10025886B1 (en) * 2015-09-30 2018-07-17 X Development Llc Methods and systems for using projected patterns to facilitate mapping of an environment
US10697779B2 (en) * 2017-04-21 2020-06-30 X Development Llc Landmark placement for localization
US10761541B2 (en) * 2017-04-21 2020-09-01 X Development Llc Localization with negative mapping

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919944B1 (ko) * 2007-03-19 2009-10-01 주식회사 유진로봇 이동로봇의 맵 생성 시스템 및 맵 생성방법
JP2012083855A (ja) * 2010-10-07 2012-04-26 Toyota Motor Corp 物体認識装置及び物体認識方法
WO2014020317A1 (en) * 2012-07-30 2014-02-06 Sony Computer Entertainment Europe Limited Localisation and mapping

Also Published As

Publication number Publication date
KR20190003969A (ko) 2019-01-10
US10866102B2 (en) 2020-12-15
CN109154827A (zh) 2019-01-04
EP3559772A1 (en) 2019-10-30
JP2019537078A (ja) 2019-12-19
EP3559772B1 (en) 2021-03-24
CN109154827B (zh) 2021-05-11
WO2018119404A1 (en) 2018-06-28
US20180180421A1 (en) 2018-06-28
JP6811258B2 (ja) 2021-01-13

Similar Documents

Publication Publication Date Title
KR102148593B1 (ko) 로봇 차량들의 국부화
KR102148592B1 (ko) 네거티브 매핑을 이용한 국부화
US11016493B2 (en) Planning robot stopping points to avoid collisions
US11373395B2 (en) Methods and systems for simultaneous localization and calibration
US11326887B2 (en) Landmark placement for localization
EP3612906B1 (en) Method and system for environment map generation and alignment
US20190351553A1 (en) Layered Multi-Agent Coordination
US10260890B2 (en) Aisle-based roadmap generation

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
GRNT Written decision to grant