KR20180093934A - 자율 시각 내비게이션 - Google Patents

자율 시각 내비게이션 Download PDF

Info

Publication number
KR20180093934A
KR20180093934A KR1020187016758A KR20187016758A KR20180093934A KR 20180093934 A KR20180093934 A KR 20180093934A KR 1020187016758 A KR1020187016758 A KR 1020187016758A KR 20187016758 A KR20187016758 A KR 20187016758A KR 20180093934 A KR20180093934 A KR 20180093934A
Authority
KR
South Korea
Prior art keywords
user input
program code
colliding
map
robot
Prior art date
Application number
KR1020187016758A
Other languages
English (en)
Other versions
KR102226350B1 (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 KR20180093934A publication Critical patent/KR20180093934A/ko
Application granted granted Critical
Publication of KR102226350B1 publication Critical patent/KR102226350B1/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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • 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/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • G05D1/0061Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements for transition from automatic pilot to manual pilot and vice versa
    • 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
    • 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/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • 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/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0253Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • 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/0255Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
    • 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
    • G06K9/00664
    • G06K9/00805
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Acoustics & Sound (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)

Abstract

로봇에 대한 시각 내비게이션의 방법은 3차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하는 단계를 포함한다. 그 방법은 또한, 3D 맵, 로컬화 정보, 또는 사용자 입력에 기초하여 모션 플래닝하는 단계를 포함한다. 모션 플래닝하는 단계는, 사용자 입력을 통해 수신된 궤도 및/또는 속도가 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.

Description

자율 시각 내비게이션
관련 출원에 대한 상호참조
본 출원은 35 U.S.C.§119(e) 하에서 2015 년 12 월 15 일에 출원된 "AUTONOMOUS VISUAL NAVIGATION" 라는 명칭의 미국 특허 가출원 제 62/267,886 호의 이점을 주장하며, 그 개시물은 전체가 본원에 참조로서 통합된다.
기술분야
본 개시물의 특정 양태들은 일반적으로 로봇 공학에 관한 것으로서, 더 상세하게는, 온보드 시각 기반 로컬화, 맵핑, 및 플래닝에 관한 것이다.
로봇들은 높은 자율도를 갖는 거동들 또는 작업들을 수행하도록 설계될 수도 있다. 로봇은 다양한 작업들을 수행하기 위해 상이한 모듈들 및 컴포넌트들을 사용할 수도 있다. 예컨대, 로봇은 로컬화, 맵핑 및 플래닝을 위해 상이한 컴포넌트들을 가질 수도 있다. 로컬화는 로봇이 위치된 장소를 결정하는 문제를 해결하는 것에 관련된다. 로봇은 로봇이 그 환경 내에서 위치되는 장소를 이해하기 위해 센서들로부터 입력을 수신한다.
맵핑은 환경의 표현을 구축하는 것에 관련된다. 예컨대, 맵핑은 환경의 어느 부분이 점유되는지와 어느 부분들이 자유 공간인지를 결정하기 위해 사용된다. 또한, 맵핑은 로봇이 장애물들과 충돌하는 것을 방지할 수도 있다.
플래닝은 로봇이 환경의 레이아웃을 인지한 후에 어떻게 작업을 수행할 것인지와 로봇이 어떻게 포인트 A 로부터 포인트 B 로 이동할 것인지를 결정하는 것에 관련된다. 즉, 일부 경우들에서, 현재 위치로부터 타겟으로 이동하기 전에, 플래닝 단계 동안 평가된 다수의 후보 궤도들로부터 최저 비용을 갖는 타겟까지의 궤도 (예컨대, 경로) 를 결정하는 것이 바람직하다.
본 개시의 일 양태에서, 로봇에 대한 시각 내비게이션의 방법이 개시된다. 방법은 3차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하는 단계를 포함한다. 방법은 또한, 3D 맵, 로컬화 정보, 또는 사용자 입력에 기초하여 모션 플래닝하는 단계를 포함한다. 모션 플래닝하는 것은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.
본 개시물의 다른 양태는 3 차원 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하는 수단을 포함하는 장치에 관련된다. 장치는 또한, 3D 맵, 로컬화 정보, 또는 사용자 입력에 기초하여 모션 플래닝하는 수단을 포함한다. 모션 플래닝하는 것은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.
본 개시물의 또 다른 양태에서, 비-일시적인 프로그램 코드가 기록된 비-일시적인 컴퓨터 판독가능 매체가 개시된다. 로봇에 대한 시각 내비게이션을 위한 프로그램 코드는 프로세서에 의해 실행되고, 3 차원 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하기 위한 프로그램 코드를 포함한다. 프로그램 코드는 또한, 3D 맵, 로컬화 정보, 또는 사용자 입력에 기초하여 모션 플래닝하기 위한 프로그램 코드를 포함한다. 모션 플래닝하는 것은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.
본 개시물의 또 다른 양태는 메모리 유닛 및 메모리 유닛에 커플링된 하나 이상의 프로세서를 갖는 장치에 관한 것이다. 프로세서(들)은 3 차원 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하도록 구성된다. 프로세서(들)은 또한, 3D 맵, 로컬화 정보, 또는 사용자 입력에 기초하여 모션 플래닝하도록 구성된다. 모션 플래닝하는 것은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.
본 개시물의 부가적인 특징들 및 이점들이 이하 설명될 것이다. 본 개시는 본 개시의 동일한 목적들을 수행하는 다른 구조들을 수정 또는 설계하기 위한 기반으로서 용이하게 활용될 수도 있음을 당업자에 의해 인식되어야 한다. 또한, 그러한 균등의 구성들은 첨부된 청구항들에 기재된 바와 같은 본 개시의 교시들로부터 일탈하지 않음을 당업자에 의해 인식되어야 한다. 추가의 목적들 및 이점들과 함께 그 구성 및 동작 방법 양자에 관하여 본 개시의 특성인 것으로 사료되는 신규한 특징들은 첨부 도면들과 관련하여 고려될 경우에 다음의 설명으로부터 더 양호하게 이해될 것이다. 하지만, 도면들 각각은 오직 예시 및 설명의 목적으로만 제공되고 본 개시의 한계들의 정의로서 의도되지 않음이 명시적으로 이해되어야 한다.
본 개시의 특징들, 특성, 및 이점들은 도면들과 함께 취해질 경우에 하기에 기재된 상세한 설명으로부터 더 명백하게 될 것이며, 도면들에 있어서 동일한 참조 부호들은 전반에 걸쳐 대응하게 식별한다.
도 1 은 본 개시의 특정 양태들에 따른, 범용 프로세서를 포함한 시스템 온 칩 (SOC) 을 이용하는 자율 시각 내비게이션의 예시적인 구현을 도시한다.
도 2 는 본 개시의 양태들에 따른 시스템의 예시적인 구현을 도시한다.
도 3 은 예시적인 장치에서 상이한 모듈들/수단들/컴포넌트들을 도시하는 블록 다이어그램이다.
도 4 는 본 개시의 양태들에 따른 로케이션 모듈을 도시하는 블록 다이어그램이다.
도 5 는 본 개시의 양태들에 따른 스테레오-비전 카메라들의 일 예를 도시한다.
도 6a, 도 6b, 도 6c, 도 6d, 도 6e, 및 도 7 은 본 개시물의 양태들에 따른 환경에서 로봇의 예들을 도시한다.
도 8 은 예시적인 장치에서 상이한 모듈들/수단들/컴포넌트들을 도시하는 블록 다이어그램이다.
도 9 는 본 개시물의 양태들에 따라 로봇에 의한 자율 시각 내비게이션을 위한 방법에 대한 흐름도를 도시한다.
도 10 은 본 개시물의 양태들에 따라 모션 플래닝을 위한 방법에 대한 흐름도를 도시한다.
첨부 도면들과 관련하여 하기에 기재된 상세한 설명은 다양한 구성들의 설명으로서 의도되고, 본 명세서에 설명된 개념들이 실시될 수도 있는 유일한 구성들만을 나타내도록 의도되지 않는다. 상세한 설명은 여러 개념들의 완전한 이해를 제공하기 위한 목적으로 특정 상세들을 포함한다. 그러나, 이들 개념들이 이들 특정 상세들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 몇몇 예시들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
교시들에 기초하여, 당업자는, 본 개시의 임의의 다른 양태와는 독립적으로 구현되든 임의의 다른 양태와 결합되든, 본 개시의 범위가 본 개시의 임의의 양태를 커버하도록 의도됨을 인식할 것이다. 예를 들어, 설명된 임의의 수의 양태들을 이용하여 일 장치가 구현될 수도 있거나 일 방법이 실시될 수도 있다. 부가적으로, 본 개시의 범위는, 설명된 본 개시의 다양한 양태들에 부가한 또는 그 이외의 구조 및 기능, 또는 다른 구조, 기능을 이용하여 실시되는 그러한 장치 또는 방법을 커버하도록 의도된다. 개시된 본 개시의 임의의 양태는 청구항의 하나 이상의 엘리먼트들에 의해 구현될 수도 있음을 이해해야 한다.
단어 "예시적인" 은 본원에서 "실시형태인, 예시인 또는 예증인" 것을 의미하기 위해 사용된다. "예시적인" 으로서 본원에서 설명된 임의의 양태는 다른 양태들에 비해 더 선호되거나 또는 더 유익한 것으로 해석될 필요는 없다.
특정 양태들이 본 명세서에서 설명되지만, 이들 양태들의 다수의 변형예들 및 치환예들은 본 개시의 범위 내에 있다. 선호된 양태들의 일부 이익들 및 이점들이 언급되지만, 본 개시의 범위는 특정 이익들, 사용들, 또는 목적들에 한정되도록 의도되지 않는다. 대신, 본 개시의 양태들은 상이한 기술들, 시스템 구성들, 네트워크들, 및 프로토콜들에 널리 적용가능하도록 의도되며, 이들 중 일부는 도면들에서, 그리고 선호된 양태들의 다음의 설명에서 예로써 예시된다. 상세한 설명 및 도면들은 한정하는 것보다는 본 개시물의 단지 예시일 뿐이며, 본 개시물의 범위는 첨부된 청구항들 및 그 균등물들에 의해 정의된다.
본 개시물의 양태들은 로컬화 맵핑과 모션 플래닝을 결합하는 통합 솔루션에 관한 것이다. 통합 솔루션은 심도 맵 및 로컬화 정보에 기초한 모션 플래닝을 달성한다. 시각적 관성 거리계 (visual-inertial odometer) 와 같은 로컬화 모듈은 로컬화를 위해 사용될 수도 있다. 장애물 맵핑은 연속하는, 멀티-뷰 심도 측정들의 체적측정 통합 (volumetric integration) 에 의해 달성될 수도 있다. 플래닝은 고속 재-플래닝과 결합된 샘플링-기반의 기하학적 플래닝에 의해 달성될 수도 있다.
수동적으로 또는 자율적으로 제어될 수도 있는 로봇들과 같은 시스템들에 대하여, 통합된 심도 맵에 기초하여 로봇의 모션을 플래닝하는 것이 바람직하다. 추가로, 모션 플래닝은 사용자 입력을 무효화하는 것을 포함할 수도 있다.
추가로, 수동적 (예컨대, 스틱 제어) 및 자율적 (예컨대, 웨이포인트 제어) 양자로 로봇을 안전하게 조종하는 것이 바람직하다. 오퍼레이터들은 또한, 수동 동작부터 자율 동작 동안 및 그 반대 동안 수집된 정보를 적용하는 것을 요구한다. 또한, 플래닝은 수동 및 자율 모드들 양자에서 로봇이 장애물들 내로 충돌하는 것을 방지하도록 특정될 수도 있다. 플래닝은 또한, 로봇이 수동 또는 자율 모드 중 어느 하나에서 동작중일 경우 최저 비용의 루트를 플래닝하도록 특정될 수도 있다.
또한, 로봇은, 로봇이 로컬화를 위해 외부 시스템들 또는 신호들 (예컨대, 글로벌 포지셔닝 시스템들 및 비컨들) 에 의존하지 않도록, 자체적으로 로컬화할 수도 있다. 일 구성에서, 로봇은 광 및 에너지 사용을 개선하는 센서들을 포함한다.
본 개시물의 양태들은, 로봇이 타겟 로케이션들로 모션 플래닝할 수 있도록, 온보드 비전-기반 로컬화, 맵핑, 및 플래닝하는 로봇에 관한 것이다. 일 구성에서, 모션 플래닝은 사용자 입력을 무효화한다.
도 1 은 본 개시의 특정 양태들에 따른, 범용 프로세서 (CPU) 또는 멀티-코어 범용 프로세서들 (CPU들) (102) 을 포함할 수도 있는 시스템 온 칩 (SOC) (100) 을 이용하는, 앞서 언급된 로봇에 의한 모션 플래닝 방법의 예시적인 구현을 도시한다. 변수들 (예를 들어, 뉴럴 신호들 및 시냅스 가중치들), 연산 디바이스 (예를 들어, 가중치들을 갖는 뉴럴 네트워크) 와 연관된 시스템 파라미터들, 지연들, 주파수 빈 (bin) 정보, 및 태스크 정보는 뉴럴 프로세싱 유닛 (NPU) (108) 과 연관된 메모리 블록에, CPU (102) 와 연관된 메모리 블록에, 그래픽스 프로세싱 유닛 (GPU) (104) 과 연관된 메모리 블록에, 디지털 신호 프로세서 (DSP) (106) 와 연관된 메모리 블록에, 전용 메모리 블록 (118) 에 저장될 수도 있거나, 또는 다수의 블록들에 걸쳐 분산될 수도 있다. 범용 프로세서 (102) 에서 실행된 명령들은 CPU (102) 와 연관된 프로그램 메모리로부터 로딩될 수도 있거나, 또는 전용 메모리 블록 (118) 으로부터 로딩될 수도 있다.
SOC (100) 는 또한, GPU (104), DSP (106), 제4세대 롱 텀 에볼루션 (4G LTE) 접속성, 비허가 Wi-Fi 접속성, USB 접속성, 블루투스 접속성 등등을 포함할 수도 있는 접속성 블록 (110), 및 예를 들어, 제스처들을 검출 및 인식할 수도 있는 멀티미디어 프로세서 (112) 와 같은 특정 기능부들에 맞춤화된 추가적인 프로세싱 블록들을 포함할 수도 있다. 하나의 구현에 있어서, NPU 는 CPU, DSP, 및/또는 GPU 에서 구현된다. SOC (100) 는 또한, 센서 프로세서 (114), 이미지 신호 프로세서들 (ISP들), 및/또는 글로벌 포지셔닝 시스템을 포함할 수도 있는 내비게이션 (120) 을 포함할 수도 있다.
SOC (100) 는 ARM 명령 세트에 기초할 수도 있다. 본 개시의 양태에서, 범용 프로세서 (102) 로 로딩된 명령들은 로케이션에 대한 점유 레벨의 확률 분포 함수 (PDF) 를 결정하기 위한 코드를 포함할 수도 있다. 범용 프로세서 (102) 로 로딩된 명령들은 또한, 3 차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하기 위한 코드를 포함할 수도 있다. 범용 프로세서 (102) 로 로딩된 명령들은 또한, 3D 맵, 로컬화 정보, 및/또는 사용자 입력에 기초하여 모션 플래닝하기 위한 코드를 포함할 수도 있다. 일 구성에서, 모션 플래닝은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.
도 2 는 본 개시의 특정 양태들에 따른 시스템 (200) 의 예시적인 구현을 도시한다. 도 2 에 도시된 바와 같이, 시스템 (200) 은 본 명세서에서 설명된 방법들의 다양한 동작들을 수행할 수도 있는 다수의 로컬 프로세싱 유닛들 (202) 을 가질 수도 있다. 각각의 로컬 프로세싱 유닛 (202) 은 뉴럴 네트워크의 파라미터들을 저장할 수도 있는 로컬 파라미터 메모리 (206) 및 로컬 상태 메모리 (204) 를 포함할 수도 있다. 추가적으로, 로컬 프로세싱 유닛 (202) 은 로컬 모델 프로그램을 저장하기 위한 로컬 (뉴런) 모델 프로그램 (LMP) 메모리 (208), 로컬 학습 프로그램을 저장하기 위한 로컬 학습 프로그램 (LLP) 메모리 (210), 및 로컬 접속 메모리 (212) 를 가질 수도 있다. 더욱이, 도 2 에 예시된 바와 같이, 각각의 로컬 프로세싱 유닛 (202) 은 로컬 프로세싱 유닛의 로컬 메모리들을 위한 구성들을 제공하는 구성 프로세서 유닛 (214) 과, 그리고 로컬 프로세싱 유닛들 (202) 간의 라우팅을 제공하는 라우팅 접속 프로세싱 유닛 (216) 과 인터페이싱할 수도 있다.
일 구성에서, 내비게이션 모델은 3 차원 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하고, 3D 맵, 로컬화 정보, 및/또는 사용자 입력에 기초하여 모션 플래닝하도록 구성된다. 일 양태에 있어서, 전술한 수단들은, 기재된 기능들을 수행하도록 구성된 범용 프로세서 (102), 메모리 블록 (118), 로컬 프로세싱 유닛들 (202), 및 또는 라우팅 접속 프로세싱 유닛들 (216) 일 수도 있다. 다른 구성에 있어서, 전술한 수단들은 전술한 수단들에 의해 기재된 기능들을 수행하도록 구성된 임의의 모듈 또는 임의의 장치일 수도 있다.
본 개시의 특정 양태들에 따르면, 각각의 로컬 프로세싱 유닛 (202) 은 모델의 소망의 하나 이상의 기능적 특징들에 기초하여 모델의 파라미터들을 결정하고, 그리고 결정된 파라미터들이 추가로 적응되고 튜닝되고 업데이트될 때 소망의 기능적 특징들을 향해 하나 이상의 기능적 특징들을 전개하도록 구성될 수도 있다.
자율 시각 내비게이션
종래의 시스템들에서, 수동 동작 동안, 로봇들은 로봇과 장애물 간의 범위가 임계치 미만일 경우 로봇을 중단시키기 위해, 소나 또는 초음파와 같은 반응적 (예컨대, 비메모리) 시스템들에 기초하는 가상 범퍼 시스템을 사용할 수도 있다. 가상 범퍼는, 가상 범퍼 시스템이 비메모리이기 때문에, 자율 동작 동안 유용하지 않을 수도 있다. 그러므로, 자율 로봇은 이전 측정들에 기초하여 플래닝하지 않을 수 있다. 또한, 가상 범퍼 시스템은 시간에 걸친 센서 판독치들 및 포즈를 통합하지 않는다. 따라서, 시스템은 증가된 잡음을 갖는다. 추가로, 가상 범퍼 시스템이 반응적이기 대문에, 가상 범퍼 시스템은 충돌을 피하기 위해 새로운 궤도 및/또는 속도를 플래닝할 수 없다. 오히려, 로봇은 충돌을 피하기 위해 동작을 중단하고, 장애물들 주위로 재지향되지 않는다.
추가로, 자율 동작을 위한 종래의 시스템들에서, 웨이포인트-기반 방식은 내비게이션을 위해, 사용자가 GPS 웨이포인트들과 같은 로케이션-기반 웨이포인트들을 특정하게 하도록 특정된다. 이 시스템에서, 로봇은 하나의 웨이포인트로부터 다른 웨이포인트로 이동하도록 특정된다. 여전히, 웨이포인트-기반 방식은 실내 로케이션들 또는 도시 로케이션들과 같은 일부 로케이션들에서 신뢰할 수 없을 수도 있는, GPS 와 같은 로케이션 시스템을 사용한다. 추가로, 웨이포인트-기반의 방식은 로봇을 장애물들 주위로 재지향하지 않는다.
따라서, 로봇의 환경의 내비게이션 및 이해를 개선하기 위해 상이한 컴포넌트들을 하나의 로봇으로 결합하는 것이 바람직하다. 상이한 컴포넌트들은 환경에서 로봇의 로케이션을 결정하기 위해, 시각적 관성 거리계와 같은 로컬화 모듈; 멀티-뷰 심도 측정들을 획득하기 위한 맵핑 모듈; 및 재플래닝과 결합된 샘플링-기반의 기하학적 플래닝을 위한 플래닝 모듈을 포함할 수도 있다. 즉, 이전에 논의된 것과 같이, 본 개시물의 양태들은 로컬화 맵핑과 모션 플래닝을 결합하는 로봇에 관한 것이다. 더 구체적으로, 모션 플래닝은 심도 맵 및 로컬화 정보를 사용할 수도 있다.
본 개시의 양태들에 따르면, 결합된 컴포넌트들은 맵핑 모듈로부터 생성된 장애물 맵, 로컬화 모듈로부터 획득된 로컬화 정보에 기초하여 모션 플래닝하기 위해, 그리고 사용자 입력 및/또는 플래닝 모듈에 기초하여 플래닝하기 위해 사용될 수도 있다. 일 구성에서, 로봇은 궤도 및/또는 속도에 대한 사용자 입력을 수신한다. 이 구성에서, 로봇은 맵핑 모듈로부터 결정된 장애물들에 기초하여 충돌들을 회피하기 위해 사용자 입력을 무효화할 수도 있다. 로봇은 또한, 적은 연료를 사용하는 루트를 선택하는 것 및/도는 거리 및/또는 시간에 있어서 짧은 루트를 선택하는 것과 같이, 루트를 개선하기 위해 사용자 입력을 무효화할 수도 있다.
로봇은 비전 센서 및 로컬화 센서와 같은 다수의 센서 모달리티 (modality) 들을 포함할 수도 있다. 맵핑 모듈은 심도 맵을 획득하기 위해 다수의 전면 카메라들과 같은 스테레오-비전 센서를 사용할 수도 있다. 심도 측정들은 로봇으로부터의 다수의 포인트들의 거리를 결정하기 위해 각각의 시간 스텝에서 수행될 수도 있다. 추가로, 맵핑 모듈은 연속하는 심도 측정들 (예컨대, 멀티-뷰 심도 측정들) 의 체적측정 통합을 위해 특정될 수도 있다. 로봇은 가속도계들 및/또는 자이로스코프들과 같은 관성 측정 유닛으로부터 로컬화 정보를 획득할 수도 있다. 로컬화 정보는 또는, 하방형 (downward facing) 센서들과 같은 센서들로부터 획득될 수도 있다. 로컬화는 환경 내의 로봇의 로케이션을 지칭한다. 일 구성에서, 하방형 센서는 소나 센서 및/또는 카메라이다.
본 개시의 일 양태에서, 로봇은 각각의 수신된 심도 측정을 로컬화 모듈의 측정들과 통합하여 심도 측정들을 3 차원 (3D) 맵과 같은 맵에서의 적절한 위치에 배치한다. 예를 들어, 로봇은 제 1 로케이션에서 심도 측정들을 획득할 수도 있고, 로봇은 그 측정들을 로봇의 제 1 로케이션과 연관시킨다. 추가로, 로봇은 제 1 로케이션으로부터 제 2 로케이션으로 이동할 수도 있고, 새로운 심도 측정들을 획득할 수도 있다. 또한, 로봇은 새로운 심도 측정들을 제 2 로케이션과 연관시킬 수도 있다. 따라서, 3 차원 맵과 같은 맵은, 로봇이 환경에서 이동할 때, 심도 측정들 및 로컬화 측정들에 기초하여 생성된다.
플래닝 스테이지 동안, 로봇은 수동 모드 또는 자율 모드와 같은 동작 모드에 기초하여 모션 제어를 제공할 수도 있다. 예를 들어, 수동 동작 모드에서, 자율 시스템은 속도 및/또는 궤도에 대한 파일럿의 커맨드 (예컨대, 사용자 입력) 를 3 차원 맵으로 추론하고, 충돌에 대하여 체크한다. 추가로, 로봇은 충돌을 피하거나 개선된 루트 (더 빠른 루트) 를 플래닝하기 위해 사용자 입력을 무효화할 수도 있다. 자율 동작 모드에서, 로봇은 누적된 맵을 사용하여 저장된 목표까지의 무충돌 (collision-free) 경로를 플래닝한다. 추가로, 자율 시스템은 맵 업데이트들이 플랜을 안전하지 않은 것으로 나타낼 경우, 루트를 따라 재플래닝할 수도 있다.
도 3 은 본 개시물의 일 양태에 따른 로봇 (300) 의 블록 다이어그램이다. 도 3 에 도시된 것과 같이, 로봇 (300) 은 심도 센서로부터 심도 측정들을 수신하는, 맵핑 모듈 (302) 을 포함한다. 심도 측정들은 장애물들로부터의 로봇의 거리를 측정한다. 일 구성에서, 심도 센서는 카메라들과 같은 다수의 전면 비전 센서들을 포함한다. 맵핑 모듈 (302) 은 심도 측정들에 기초하여 심도 맵을 생성할 수도 있다. 추가로, 심도 맵은 3D 장애물 맵핑 모듈 (304) 에 입력될 수도 있다. 심도 맵의 입력은 상당히 순간적일 수도 있다.
도 3 에 도시된 것과 같이, 로케이션 모듈 (308) 은 로컬화 측정들 및/또는 관성 측정들을 수신한다. 로컬화 측정들은 하방형 카메라와 같은 하방형 센서로부터 획득될 수도 있다. 또한, 관성 측정들은 가속도계들 및/또는 자이로스코프들과 같은 관성 측정 유닛으로부터 획득될 수도 있다. 수신된 로컬화 측정들 및/또는 관성 측정들에 기초하여, 로케이션 모듈 (308) 은 로봇의 로케이션을 결정하고, 그 로케이션을 3D 장애물 맵핑 모듈 (304) 로 출력한다. 로케이션 정보의 입력은 상당히 순간적일 수도 있다.
3D 장애물 맵핑 모듈 (304) 은 로봇의 현재 위치의 3D 맵을 생성하기 위해, 수신된 로케이션 정보를 수신된 심도 맵과 연관시킨다. 3D 맵은 통합된 심도 맵으로 지칭될 수도 있다. 시간에 걸쳐, 로봇 (300) 이 상이한 로케이션들로 이동하고 상이한 로케이션들로부터 심도 측정들을 획득할 때, 방문된 로케이션들의 3D 맵이 생성된다. 3D 맵은 플래닝 모듈 (306) 로 출력된다. 일 구성에서, 로봇 (300) 은 특정 속도 및/또는 궤도로 로봇 (300) 을 이동시키기 위한 사용자 입력을 수신한다. 추가로, 사용자 입력은 로봇 (300) 이 도달할 목표를 설정할 수도 있다. 사용자 입력은 컴퓨터 또는 원격 제어기와 같은 원격 디바이스로부터 수신될 수도 있다.
일 구성에서, 사용자 입력이 로봇 (300) 에 대한 목표를 설정할 때, 플래닝 모듈 (306) 은 로봇의 현재 위치로부터 목표까지의 루트를 플래닝한다. 원하는 경로가 모션 제어 모듈 (310) 로 출력되고, 모션 제어 모듈 (310) 은 원하는 궤도 및/또는 속도로 플래닝된 루트를 따라 이동하도록 로봇의 모터들을 제어한다. 모터들은 엔진들, 회전 블레이드 (rotary blade) 들, 및/또는 휠들과 같은 로코모션 컴포넌트들을 제어할 수도 있다. 추가로, 도 3 에 도시된 것과 같이, 로케이션 모듈 (308) 은 획득된 로케이션을 플래닝 모듈 (306) 과 모션 제어 모듈 (310) 양자에 송신하여, 양자의 모듈들이 로봇의 현재 로케이션을 인식하도록 한다. 추가로, 로봇 (300) 의 로케이션이 변화할 때, 3D 장애물 맵핑 모듈 (304) 로부터 생성된 3D 맵은 업데이트될 수도 있다. 따라서, 플래닝 모듈은 3D 맵으로의 업데이트들에 기초하여 원하는 경로를 업데이트할 수도 있다.
다른 구성에서, 앞서 논의된 것과 같이, 로봇 (300) 은 특정 속도 및/또는 궤도로 로봇 (300) 을 이동시키기 위한 사용자 입력을 수신한다. 이 구성에서, 플래닝 모듈 (306) 은 3D 맵에서의 현재 로케이션에 기초하여 충돌을 피하거나 특정 속도 및/또는 궤도를 개선하기 위해 사용자 입력을 무효화한다. 무효화 정보는 모션 제어 모듈 (310) 로 출력되어 무효화 정보에 기초하여 로봇의 모터들을 제어할 수도 있다. 물론, 일부 경우들에서, 플래닝 모듈은 사용자 입력을 무효화하지 않을 수도 있다. 따라서, 사용자 입력은 원하는 경로에 따라 플래닝 모듈 (306) 로부터 모션 제어 모듈 (310) 로 출력된다.
도 4 는 본 개시물의 양태들에 따른 로케이션 모듈 (400) 의 일 예를 도시한다. 로케이션 모듈 (400) 은 전역/세계 좌표 프레임에서 로봇의 포즈를 컴퓨팅하기 위해 관성 측정 유닛 (IMU) 데이터 및 센서 데이터를 결합하는 센서 퓨전 모듈일 수도 있다. 일 구성에서, 로케이션 모듈에 대한 센서는 하방형 센서이다. 여전히, 본 개시물의 양태들은 하방형 센서에 제한되지 않는다. 도 4 에 도시된 것과 같이, 로케이션 모듈 (400) 은 특징 검출기 (402), 트랙커 (406), 및 필터 (404) 를 포함할 수도 있다. 일 구성에서, 필터 (404) 는 확장형 칼만 필터이다. 본 개시의 양태에 따르면, 특징 검출기는 카메라와 같은 하방형 센서로부터 프레임들을 수신한다. 일 구성에서, 카메라는 단안용 카메라이다.
특징 검출기 (402) 는 수신된 프레임의 특징들을 검출하도록 구성될 수도 있다. 추가로, 트랙커 (406) 는 로봇의 움직임을 추정하기 위해 수신된 프레임들에 걸쳐 특징들의 위치에서의 검출된 변경들을 트래킹할 수도 있다. 예를 들어, 특징 검출기 (402) 는 제 1 프레임에서 10 개의 특징들을 검출할 수도 있다. 부가적으로, 상기 예에서, 트랙커 (406) 는 후속하는 프레임들에서 검출된 10 개의 특징들을 트래킹할 수도 있다. 따라서, 제 2 프레임이 특징 검출기 (402) 에서 수신될 경우, 특징 검출기 (402) 는 제 2 프레임으로부터 제 1 프레임의 10 개의 특징들을 검출하는 것을 시도하고, 트랙커 (406) 는 제 2 프레임의 10 개의 특징들로부터 제 1 프레임의 10 개의 특징들의 위치에 있어서의 변화를 결정한다. 위치에 있어서의 변화는 로봇의 움직임의 추정치 (예컨대, 로봇이 어디까지 이동하였는지) 를 제공한다. 물론, 10 개의 특징들은 일 예이고, 본 개시의 양태들은 특정 수의 특징들을 검출하는 것에 제한되지 않는다.
추가로, 도 4 에 도시된 것과 같이, 필터 (404) 는 제 1 센서 및 제 2 센서로부터 입력을 수신할 수도 있다. 제 1 센서는 셀프-모션 또는 중력으로 인한 선형 가속도를 감지하기 위한 가속도계일 수도 있다. 제 2 센서는 3 차원 글로벌 로케이션의 배향 (예컨대, 각도들) 을 획득하기 위한 자이로스코프일 수도 있다. 시각적 관성 거리계를 위해, 세계 프레임은 제 1 의 캡처된 이미지의 로케이션에 집중될 수도 있다. 따라서, 로봇의 시작 위치에 대하여, 시각적 관성 거리계는 3 차원 전역 로케이션 및 대응하는 배향의 추정치를 제공한다. 예를 들어, 3 차원 전역 로케이션 및 대응하는 배향 정보가 웨이포인트 내비게이션 또는 속도 제어를 위해 궤도 제어기에 입력될 수도 있다. 3 차원 전역 로케이션 및 대응하는 배향 정보는 또한, 복셀 (voxel) 맵 통합을 위한 서브시스템의 맵핑에 입력될 수도 있다.
일 구성에서, 필터는 로봇의 로케이션을 출력하기 위해 제 1 센서의 입력 제 2 센서의 입력, 및 특징 검출기 (402) 및 트랙커 (406) 로부터의 특징 정보를 결합한다. 로봇의 로케이션은 6 의 자유도 (6 DOF) 포즈로서 출력될 수도 있다. 6 자유도는 전/후, 상/하, 좌/우, 피치, 요, 및 롤을 지칭할 수도 있다. 일 구성에서, 로봇은 비행하도록 구성된다. 물론, 본 개시의 양태들은 비행하는 로봇에 제한되지 않으면, 육상 및/또는 해상 기반일 수도 있는 로봇이 고려된다.
도 5 는 본 개시의 일 양태에 따른 심도 센서 (500) 의 일 예를 도시한다. 도 5 에 도시된 것과 같이, 심도 센서 (500) 는 공지된 거리 (506) 로 이격되는 제 1 카메라 (502) 및 제 2 카메라 (504) 를 포함한다. 도 5 에 도시된 것과 같이, 양자의 카메라들 (502, 504) 은 오브젝트 (514) 의 특정 포인트 (512) 에 포커싱된다. 추가로, 제 1 이미지 (516) 에서 특정 포인트 (512) 에 대응하는 제 1 픽셀 (508) 의 로케이션은 제 1 카메라 (502) 에 대하여 결정되고, 제 2 이미지 (518) 에서 특정 포인트 (512) 에 대응하는 제 2 픽셀 (510) 의 로케이션은 제 2 카메라 (504) 에 대하여 결정된다. 제 1 픽셀 (508) 및 제 2 픽셀 (510) 의 로케이션에 기초하여, 삼각 측량을 사용하여, 로봇은 카메라들 (502, 504) 로부터 오브젝트 (514) 의 특정 포인트 (512) 의 심도를 결정할 수도 있다. 심도를 결정하는 프로세스는 로봇의 현재 로케이션의 심도 맵을 생성하기 위해 카메라에 의해 획득된 이미지들의 다수의 픽셀들 (예컨대, 각각의 픽셀) 에 대하여 반복될 수도 있다.
도 5 에 도시되지 않았지만, 카메라들 (502, 504) 은 로봇의 앞부분 (예컨대, 전방) 에 장착될 수도 있다. 3 차원 복원은 스테레오 심도 인지에 기초하여 개발될 수도 있다. 일 구성에서, 프로세스는 세계 (world) 를 3차원 그리드로 구분한다. 그 그리드에서 각각의 로케이션은 복셀로 지칭될 수도 있다. 스테레오 카메라로부터의 심도 이미지 및 로컬화 프로세스로부터의 6 자유도는, 로봇이 환경 주위를 내비게이팅하고 장애물들을 관측할 때, 3 차원 복셀 맵으로 결합될 수도 있다. 일 구성에서, 복셀 맵은 관측에 기초하여 생성된다. 추가로, 맵핑 프로세스는 스테레오 카메라 프레임 레이트로 실행되어, 새로운 정보가 카메라들에 의해 관측될 때 맵이 업데이트되도록 할 수도 있다. 업데이트는 실질적으로 순간적일 수도 있다. 추가로, 복셀 맵은 안전한 및 신뢰할만한 경로들을 실시간으로 플래닝하기 위해 모션 플래너에 의해 수행될 수도 있다.
시각적 관성 거리계는 실시간으로 업데이트될 수도 있는, 로컬화 정보를 플래너에 제공할 수도 있다. 일 구성에서, 타겟이 로봇에 대하여 특정될 때, 플래너는 최종 상태 추정치를 시작 상태로서 이용하고, 타겟을 목표로서 이용하여 그 목표에 도달하기 위한 플랜을 생성한다. 로봇은 계산된 궤도를 폐루프 방식으로 뒤따름으로써 플랜을 실행할 수도 있다. 플랜이 실행될 때, 플랜을 무효화할 수도 있는 새로운 정보가 관측되고, 이 경우에 플래너는 새로운 플랜을 채택한다.
도 6a 는 맵핑된 영역 (602) 및 맵핑되지 않은 영역 (604) 을 포함하는 환경 (600) 의 일 예를 예시한다. 맵핑된 영역 (602) 은 심도 측정들 및 로컬화에 기초하는 3D 맵핑된 영역일 수도 있다. 즉, 이전에 논의된 것과 같이, 3D 맵은 심도 맵을 로컬화 정보와 통합함으로써 생성될 수도 있다. 심도 맵 및 로컬화 정보는 로봇이 (예컨대, 사용자 입력을 통한) 수동 모드 또는 자율 모드에서 동작되는 동안 획득될 수도 있다. 도 6a 에 도시된 것과 같이, 심도 측정들에 기초하여, 로봇은 특정 복셀들이 오브젝트 (608) 에 의해 점유되는 것을 결정할 수도 있다. 따라서, 플래닝 모듈은 로봇이 수동 모드 또는 자율 모드에서 내비게이팅될 때, 오브젝트 (608) 를 회피하도록 특정된다. 맵핑되지 않은 영역 (604) 은 아직 로봇에 의해 탐사되지 않은 영역일 수도 있다.
일 구성에서, 로봇은 제 1 로케이션 (606) 에 있을 수도 있고, 타겟 로케이션 (610) 으로 자율적으로 내비게이팅하기 위해 사용자 입력을 수신할 수도 있다. 도 6a 에 도시된 것과 같이, 타겟 로케이션 (610) 은 맵핑되지 않은 영역 (604) 에 있을 수도 있다. 사용자 입력에 응답하여, 로봇은 맵핑된 영역 (602) 의 점유되지 않은 영역들에서 후보 포인트들 (612) 을 선택한다. 후보 포인트들 (612) 은 맵핑된 영역 (602) 의 점유되지 않은 영역들로부터 랜덤하게 선택될 수도 있다. 후보 포인트들 (612) 은 이동하기 위해 안전한 것으로 간주되는, 맵핑된 영역 (602) 상의 포인트들일 수도 있다. 따라서, 후보 포인트들 (612) 은 제 1 로케이션 (606) 으로부터 타겟 로케이션 (612) 으로의 무충돌 궤도를 선택하기 위해 플래닝 모듈에 의해 사용될 수도 있다. 즉, 로봇은 후보 포인트들 (612) 의 각각 간의 궤도들 (614) (예컨대, 에지들) 을 플래닝한다. 도 6a 에 도시된 것과 같이, 로봇은 맵핑되지 않은 영역 (604) 에서 후보 포인트들 (612) 및 궤도들 (614) 을 선택할 수도 있다. 여전히, 맵핑되지 않은 영역 (604) 이 아직 탐사되지 않았기 때문에, 후보 포인트들 (612) 및 궤도들 (614) 은 예측된 후보 포인트들 (612) 및 예측된 궤도들 (614) 이다.
도 6b 는 본 개시의 일 양태에 따라, 제 1 로케이션 (606) 과 타겟 로케이션 (610) 간의 선택된 경로 (620) 의 일 예를 도시한다. 도 6b 에 도시된 것과 같이, 후보 포인트들 (612) 및 궤도들 (614) 을 결정한 후에, 플래닝 모듈은 결정된 후보 포인트들 (612) 및 궤도들 (614) 에 기초하여 제 1 로케이션 (606) 과 타겟 로케이션 (610) 간에 사용가능한 다양한 경로들을 탐색할 수도 있다. 탐색은 다이크스트라 (Dykstra) 탐색일 수도 있다. 상이한 경로들의 탐색에 기초하여, 플래닝 모듈은 로봇이 이동할 경로 (620) 를 선택한다. 선택된 경로는 충돌 없는 경로이다. 추가로, 선택된 경로 (620) 는 다른 경로들과 비교하여, 더 적은 리소스들, 예컨대 가스 및/또는 시간을 사용할 수도 있다. 선택된 경로 (620) 는 최소 비용 경로로 지칭될 수도 있다.
도 6c 는 본 개시물의 양태에 따라, 선택된 경로 (620) 를 따라 이동하는 로봇의 일 예를 도시한다. 도 6c 에 도시된 것과 같이, 선택된 경로 (620) 에 기초하여, 로봇은 경로 (620) 를 따라 제 1 로케이션 (606) 으로부터 제 2 로케이션 (622) 으로 이동한다. 제 2 로케이션 (622) 은 플래닝 단계 동안 선택된 후보 포인트들 (612) 중 하나이다. 부가적으로, 도 6c 에 도시된 것과 같이, 로봇이 경로 (620) 를 따라 이동할 때, 맵핑되지 않은 영역 (604) 의 일부는 그 영역이 로봇의 센서들의 시야에 들어올 때 맵핑된다. 즉, 일 예로서, 도 6c 에 도시된 것과 같이, 맵핑되지 않은 영역 (604) 에 이전에 포함된 영역 (624) 은 로봇의 이동에 기초하여 맵핑된 영역 (602) 에 포함된다. 따라서, 로봇이 경로 (620) 를 따라 이동할 때, 로봇은 업데이트된 심도 맵들 및 로케이션 정보에 기초하여, 선택된 경로를 변경할 수도 있다.
도 6d 는 본 개시물의 양태에 따라, 선택된 경로 (620) 를 따라 이동하는 로봇의 일 예를 도시한다. 도 6d 에 도시된 것과 같이, 선택된 경로 (620) 에 기초하여, 로봇은 경로 (620) 를 따라 제 2 로케이션 (622) 으로부터 제 3 로케이션 (626) 으로 이동한다. 제 3 로케이션 (626) 은 플래닝 단계 동안 선택된 후보 포인트들 (612) 중 하나이다. 부가적으로, 도 6d 에 도시된 것과 같이, 로봇이 경로 (620) 를 따라 이동할 때, 맵핑되지 않은 영역 (604) 의 일부는 그 영역이 로봇의 센서들의 시야에 들어올 때 맵핑된 영역이다. 상기 예에서, 심도 측정들에 기초하여, 로봇은 오브젝트 (628) 가 플래닝된 경로 (620) 를 따라 복셀들을 점유하는 것을 결정한다. 따라서, 로봇이 플래닝된 경로 (620) 를 계속 따라갔다면, 충돌이 발생할 것이다. 따라서, 오브젝트 (628) 가 플래닝된 경로 (620) 를 오버랩하는 것을 고려하면, 로봇의 플래닝 모듈은 업데이트된 심도 측정들 및 로케이션 정보에 기초하여 새로운 경로를 선택한다.
도 6e 는 업데이트된 3D 맵에 기초하여 새로운 경로 (630) 를 선택하는 로봇의 일 예를 도시한다. 이전에 논의된 것과 같이, 로봇의 플래닝 모듈은 업데이트된 심도 측정들 및 로케이션 정보 (예컨대, 업데이트된 3D 맵) 에 기초하여 새로운 경로를 선택한다. 도 6e 에 도시된 것과 같이, 로봇이 제 3 로케이션 (626) 에 있을 경우, 오브젝트 (628) 의 인식을 고려하면, 플래닝 모듈은 제 3 로케이션 (626) 과 타겟 로케이션 (610) 간의 새로운 경로들에 대하여 탐색한다. 즉, 로봇은 오브젝트 (628) 와 같은 장애물이 시야에 들어올 때 새로운 경로를 선택한다. 상이한 경로들의 탐색에 기초하여, 플래닝 모듈은 로봇이 이동할 새로운 경로 (630) 를 선택한다. 이전에 논의된 것과 같이, 선택된 경로 (630) 는 최소 비용 경로로서 지칭될 수도 있다. 간결하게, 도 6e 는 맵핑되지 않은 영역 (604) 을 도시하지 않는다. 여전히, 상기 예에서, 로봇이 제 3 로케이션 (626) 에 있을 경우, 환경 (600) 의 일부가 여전히 맵핑되지 않을 수도 있다. 추가로, 새로운 경로 (630) 는, 로봇이 경로 (630) 의 상이한 포인트들을 따라 이동할 때, 로봇이 업데이트된 심도 맵들 및 로케이션 정보를 수신하면 다시 업데이트될 수도 있다.
도 7 은 본 개시의 일 양태에 따라, 맵핑된 환경 (700) 에서 로봇 (702) 의 일 예를 도시한다. 맵핑된 영역 (700) 은 심도 측정들 및 로컬화에 기초하는 3D 맵핑된 영역일 수도 있다. 즉, 이전에 논의된 것과 같이, 3D 맵은 심도 맵을 로컬화 정보와 통합함으로써 생성될 수도 있다. 심도 맵 및 로컬화 정보는 로봇이 (예컨대, 사용자 입력을 통한) 수동 모드 또는 자율 모드에서 동작되는 동안 획득될 수도 있다. 도 7 에 도시된 것과 같이, 심도 측정들에 기초하여, 로봇 (702) 은 특정 복셀들이 제 1 오브젝트 (706) 및 제 2 오브젝트 (704) 에 의해 점유되는 것을 결정할 수도 있다. 따라서, 플래닝 모듈은 로봇이 수동 모드 또는 자율 모드에서 내비게이팅될 때, 제 1 오브젝트 (706) 및 제 2 오브젝트 (704) 를 회피하도록 특정된다.
일 구성에서, 로봇 (702) 은 제 1 궤도 (708) 을 따라 이동하기 위해 사용자 입력을 수신한다. 제 1 궤도 (708) 은 타겟 (720) 에 도달하도록 특정될 수도 있다. 대안적으로, 제 1 궤도 (708) 은 타겟 지향형이 아닐 수도 있다. 부가적으로 또는 대안적으로, 사용자 입력은 속도를 특정할 수도 있다. 생성된 3D 맵에 기초하여, 로봇 (702) 은 사용자 입력을 통해 수신된 제 1 궤도 (708) 이 제 2 오브젝트 (704) 와의 충돌을 야기할 것임을 인식하였다.
일 구성에서, 플래닝 모듈은 사용자 입력을 무효화하고, 제 2 궤도 (722) 를 플래닝하여 제 2 오브젝트 (704) 를 회피한다. 제 2 궤도 (722) 은 장애물을 회피하도록 랜덤하게 선택될 수도 있다. 추가로, 제 2 궤도 (722) 은 타겟 지향형이 아닐 수도 있다. 추가로, 제 2 궤도 (722) 은 로봇 (702) 의 모터들이 제 1 궤도 (708) 대신 제 2 궤도 (722) 을 내비게이팅하게 할 수도 있다. 부가적으로, 또는 대안적으로, 무효화는 로봇 (702) 의 속도를 조정할 수도 있다. 환경이 3D 환경인 경우, 플래닝 모듈은 제 1 궤도 (708) 을 여전히 유지할 수도 있다. 그러나, 플래닝 모듈은 플래닝된 고도를 무효화하여 로봇이 가능하다면, 제 1 오브젝트 위에서 또는 아래에서 이동하게 할 수도 있다.
다른 구성에서, 로봇은 충돌을 회피하기 위해 모션 플래닝을 수행한다. 모션 플래닝은 맵핑된 영역 (700) (예컨대, 3D 맵) 에서 안전한 포인트들을 랜덤하게 선택하는 것을 포함할 수도 있다. 예를 들어, 로봇은 대안적인 후보 포인트들 (710) 을 내비게이션 포인트들로서 랜덤하게 선택할 수도 있다. 랜덤하게 선택된 후보 포인트들 (710) 은 이동에 대하여 안전한 것으로 간주되는 맵 상의 포인트들 (예컨대, 맵의 무충돌 영역들) 일 수도 있다. 랜덤하게 선택된 후보 포인트들 (710) 은 사용자 지정된 경로 (예컨대, 제 1 궤도 (708)) 까지 미리결정된 근접도 내에 있는 후보 포인트들일 수도 있다. 물론, 본 개시물의 양태들은, 미리 결정된 근접도 밖의 포인트들이 또한 선택될 수도 있기 때문에, 사용자의 지정된 경로까지 미리 결정된 근접도 내에 있는 후보 포인트들을 선택하는 것에 제한되지 않는다.
부가적으로, 도 7 에 도시된 것과 같이, 충돌을 피하도록 사용자-입력을 무효화하기 위해, 로봇은 랜덤하게 선택된 후보 포인트들 (710) 간의 하나 이상의 무충돌 경로들 (712) 을 결정할 수도 있다. 충돌을 피하기 위해, 로봇은 로봇 (702) 의 초기 위치로부터 랜덤하게 선택된 후보 포인트들 (710) 중 하나까지의 무충돌 경로들 중 하나를 따라 이동할 수도 있다. 부가적으로, 랜덤하게 선택된 후보 포인트들 (710) 중 하나에 도달한 후, 로봇은, 로봇 (702) 이 타겟 (720) 에 도달할 때까지 또는 로봇 (702) 이 새로운 사용자 입력을 수신할 때까지, 다른 랜덤하게 선택된 후보 포인트들 (710) 까지의 다른 경로를 선택할 수도 있다.
또한, 하나의 구성에서, 하나 이상의 무충돌 경로들 (712) 을 결정한 후에, 로봇은 초기 위치와 타겟 (720) 사이의 최소 비용 경로를 결정할 수도 있다. 최소 비용 경로는 다른 경로들과 비교하여, 더 적은 리소스들, 예컨대 가스들 및/또는 시간을 사용할 수도 있다. 도 7 의 예에서, 로봇은 제 1 궤도 (708) 로부터 예측된 충돌을 피하기 위해 최소 비용 경로 (714) 를 선택한다. 마지막으로, 도 7 에 도시되지는 않았지만, 로봇이 최소 비용 경로 (714) 와 같은 무충돌 경로들 (712) 중 하나를 따라 이동할 때, 새로운 장애물이 실현되면, 로봇은 선택된 경로를 변경할 수도 있다.
도 8 은 프로세싱 시스템 (820) 을 채용하는 장치 (800), 예컨대 로봇에 대한 하드웨어 구현의 일 예를 도시한 다이어그램이다. 프로세싱 시스템 (820) 은 버스 (824) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (824) 는 프로세싱 시스템 (820) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (824) 는 프로세서 (1604), 통신 모듈 (808), 로케이션 모듈 (806), 센서 모듈 (802), 로코모션 모듈 (810), 및 컴퓨터 판독가능 매체 (814) 로 표현되는, 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함하는 다양한 회로들을 함께 링크시킨다. 버스 (824) 는 또한, 당업계에 널리 공지되고 따라서 어떠한 추가로 설명되지 않을 타이밍 소스들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 다양한 다른 회로들을 링크시킬 수도 있다.
장치 (800) 는 트랜시버 (816) 에 커플링된 프로세싱 시스템 (820) 을 포함한다. 트랜시버 (816) 는 하나 이상의 안테나들 (818) 에 커플링된다. 트랜시버 (816) 는 송신 매체를 통해서 여러 다른 장치와 통신하는 것을 인에이블한다. 예를 들어, 트랜시버 (816) 는 사용자로부터의 송신들을 통해 사용자 입력을 수신할 수도 있다. 프로세싱 시스템 (820) 은 컴퓨터-판독가능 매체 (814) 에 커플링된 프로세서 (804) 를 포함한다. 프로세서 (804) 는 컴퓨터-판독가능 매체 (814) 상에 저장된 소프트웨어의 실행을 포함한, 일반적인 프로세싱을 담당한다. 소프트웨어는, 프로세서 (804) 에 의해 실행될 경우, 프로세싱 시스템 (820) 으로 하여금 임의의 특정 장치에 대해 하기에서 설명되는 다양한 기능들을 수행하게 한다. 컴퓨터 판독가능 매체 (814) 는 또한, 소프트웨어를 실행할 경우 프로세서 (804) 에 의해 조작되는 데이터를 저장하는데 사용될 수도 있다.
센서 모듈 (802) 은 제 1 센서 (828) 및 제 2 센서 (826) 를 통해 측정들을 획득하는데 사용될 수도 있다. 제 1 센서 (828) 는 스테레오 카메라와 같은, 측정을 수행하기 위한 스테레오-비전 센서일 수도 있다. 제 2 센서 (826) 는 카메라 및/또는 관성 측정 유닛일 수도 있다. 물론, 본 발명의 양태들은, 예를 들어, 레이더, 열선, 소나, 및/또는 레이저와 같은 다른 타입들의 센서들이 또한 측정을 수행하기 위해 고려되기 때문에, 스테레오-비전 센서에 제한되지 않는다. 제 1 센서 (828) 및 제 2 센서 (826) 의 측정들은 프로세서 (804), 통신 모듈 (808), 위치 모듈 (806), 로코모션 모듈 (810), 컴퓨터 판독가능 매체 (814), 및 다른 모듈들 (832, 834) 중 하나 이상에 의해 프로세싱될 수도 있다. 전술한 바와 같이, 제 1 센서 (828) 로부터의 측정들은 심도 측정들을 획득하는데 사용될 수도 있다. 또한, 제 2 센서 (826) 로부터의 측정들은 로컬화를 위해 사용될 수도 있다. 예를 들어, 제 2 센서 (826) 로부터의 측정들은 로케이션 모듈 (806) 에 의해 사용되어 장치 (800) 의 로케이션을 결정할 수도 있다. 또한, 제 1 센서 (828) 및 제 2 센서 (826) 의 측정들은 트랜시버 (816) 에 의해 외부 디바이스로 송신 될 수도 있다. 도 8 에 도시된 바와 같이, 제 1 센서 (828) 및 제 2 센서 (826) 는 장치 (800) 외부에 한정되는 것으로 제한되지 않으며, 제 1 센서 (828) 및 제 2 센서 (826) 는 또한 장치 (800) 내에 한정될 수도 있다.
로케이션 모듈 (806) 은 장치 (800) 의 로케이션을 결정하는데 사용될 수도 있다. 통신 모듈 (808) 은 트랜시버 (816) 를 사용하여 장치 (800) 의 로케이션과 같은 정보를 외부 디바이스로 전송 및 수신할 수도 있다. 로코모션 모듈 (810) 은 장치 (800) 에 로코모션을 제공하는데 사용될 수도 있다. 일 예로서, 로코모션은 회전 블레이드들 (812) 을 통해 제공될 수도 있다. 물론, 본 발명의 양태들은 회전 블레이드들 (812) 을 통한 로코모션을 제공하는 것에 제한되지 않으며, 프로펠러들, 휠들, 트레드들, 핀들 및/또는 제트 엔진들과 같은 로코모션을 제공하기 위한 임의의 다른 타입의 컴포넌트에 대해 고려된다.
프로세싱 시스템 (820) 은 심도 맵을 로컬화 정보와 통합하여 3 차원 (3D) 맵을 생성하는 통합 모듈 (832) 을 포함한다. 프로세싱 시스템 (820) 은 또한, 3D 맵, 로컬화 정보, 및/또는 사용자 입력에 적어도 부분적으로 기초하여 모션을 플래닝하기 위한 플래닝 모듈 (834) 을 포함한다. 일 구성에서, 모션 플래닝은, 사용자 입력이 충돌을 야기하는 것으로 예상될 (예컨대, 예측될) 경우, 사용자 입력을 무효화한다. 모듈들은 프로세서 (804) 에서 실행중이고 컴퓨터 판독가능 매체 (814) 에 상주하거나 저장된 소프트웨어 모듈들, 프로세서 (804) 에 커플링된 하나 이상의 하드웨어 모듈들, 또는 이들의 일부 조합일 수도 있다.
도 9 는 로봇에 대한 시각 내비게이션을 위한 방법 (900) 을 도시한다. 블록 (902) 에서, 옵션의 구성에서, 로봇은 다수의 카메라들로부터 심도 맵을 결정하고, 다수의 센서들로부터 로컬화 정보를 획득한다. 즉, 로봇은 다수의 센서 모달리티 (modality) 들을 포함할 수도 있다. 심도 측정들은 로봇으로부터의 다수의 포인트들의 거리를 결정하기 위해 각각의 시간 스텝에서 수행될 수도 있다. 맵핑 모듈은 심도 맵을 획득하기 위해 스테레오-비전 센서와 같은 센서를 사용할 수도 있다. 따라서, 하나의 옵션의 구성에서, 블록 (904) 에서, 로봇은 스테레오 카메라로부터 획득된 측정들에 기초하여 심도 맵을 생성한다.
또한, 로봇은 관성 센서 정보로부터 로컬화 정보를 획득할 수도 있다. 따라서, 하나의 옵션의 구성에서, 블록 (906) 에서, 로봇은 자이로스코프 및/또는 가속도계 유닛으로부터 관성 센서 정보를 획득한다. 로컬화 정보는 또는, 하방형 (downward facing) 센서들과 같은 센서들로부터 획득될 수도 있다. 로컬화는 환경 내의 로봇의 로케이션을 지칭한다. 일 구성에서, 하방형 센서는 소나 센서 및/또는 카메라이다.
부가적으로, 블록 (908) 에서, 로봇은 3D 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합한다. 예를 들어, 로봇은 제 1 로케이션에서 심도 측정들을 획득할 수도 있고, 로봇은 그 측정들을 로봇의 제 1 로케이션과 연관시킨다. 추가로, 로봇은 제 1 로케이션으로부터 제 2 로케이션으로 이동할 수도 있고, 새로운 심도 측정들을 획득할 수도 있다. 또한, 로봇은 새로운 심도 측정들을 제 2 로케이션과 연관시킬 수도 있다. 따라서, 3D 맵과 같은 맵은, 로봇이 환경에서 이동할 때, 심도 측정들 및 로컬화 측정들에 기초하여 생성된다.
추가로, 블록 (910) 에서, 로봇은 3D 맵, 로컬화 정보, 및/또는 사용자 입력에 기초하여 모션을 플래닝한다. 일 구성에서, 타겟이 로봇에 대하여 특정될 때, 로봇의 모션 플래너는 최종 상태 추정치를 시작 상태로서 이용하고, 타겟을 목표로서 이용하여 그 목표에 도달하기 위한 플랜을 생성한다. 로봇은 계산된 궤도를 폐루프 방식으로 뒤따름으로써 플랜을 실행할 수도 있다. 플랜이 실행될 때, 플랜을 무효화할 수도 있는 새로운 정보가 관측되고, 이 경우에 플래너는 새로운 플랜을 채택한다. 부가적으로 또는 대안적으로, 모션 플래닝은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화할 수도 있다. 추가로, 모션 플래닝은, 사용자 입력을 통해 수신된 궤도 및/또는 속도가 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화할 수도 있다.
옵션의 구성에서, 블록 (912) 에서, 로봇은 사용자 입력을 무효화할 경우, 새로운 궤도 및/또는 새로운 속도를 선택한다. 예를 들어, 사용자 입력은 속도 및/또는 궤도를 특정할 수도 있다. 생성된 3D 맵에 기초하여, 로봇은 사용자 선택된 속도 및/또는 궤도가 오브젝트와의 충돌을 야기할 것임을 인식하였다. 따라서, 상기 구성에서, 플래닝 모듈은 사용자 입력을 무효화하고, 제 2 오브젝트를 피하도록 새로운 궤도 및/또는 속도를 플래닝한다.
도 10 은 모션 플래닝을 위한 더 상세한 방법 (1000) 을 도시한다. 도 9 의 블록 (910) 과 유사한 블록 (1002) 에서, 로봇은 3D 맵, 로컬화 정보, 및/또는 사용자 입력에 기초하여 모션을 플래닝한다. 블록 (1004) 에서, 모션 플래닝은, 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다. 부가적으로, 옵션의 구성에서, 블록 (1006) 에서, 모션 플래닝은, 사용자 입력을 통해 수신된 궤도 및/또는 속도가 충돌을 야기하는 것으로 예측될 경우, 사용자 입력을 무효화한다.
다른 옵션의 구성에서, 블록 (1008) 에서, 모션 플래닝은 3D 맵에서 다수의 무충돌 포인트들을 랜덤하게 선택하고, 다수의 무충돌 포인트들 중 2 이상의 무충돌 포인트들 간의 하나 이상의 무충돌 경로들을 결정한다. 부가적으로, 옵션의 구성에서, 블록 (1010) 에서, 모션 플래닝은 추가로, 하나 이상의 무충돌 경로에 기초하여 타겟까지의 최소 비용 경로를 결정한다. 또한, 최소 비용 경로를 결정한 후에, 블록 (1012) 에서, 모션 플래닝은 장애물이 최소 비용 경로를 따라 보여질 때, 최소 변경 경로를 추가로 변경할 수도 있다.
또 다른 옵션의 구성에서, 블록 (1014) 에서, 모션 플래닝은 맵핑되지 않은 영역에서 다수의 예측된 무충돌 포인트들을 랜덤하게 선택하고, 다수의 예측된 무충돌 포인트들 중 2 이상의 무충돌 포인트들 간의 하나 이상의 예측된 무충돌 경로들을 결정한다.
일부 양태들에서, 방법들 (900 및 1000) 은 SOC (100; 도 1), 시스템 (200; 도 2), 또는 장치 (800; 도 8) 에 의해 수행될 수도 있다. 즉, 방법들 (900 및 1000) 의 엘리먼트들의 각각은 예컨대, 그러나 제한 없이, SOC (100), 시스템 (200), 장치 (800), 또는 하나 이상의 프로세서들 (예컨대, CPU (102), 로컬 프로세싱 유닛 (202), 프로세서 (804)) 및/또는 그 내부에 포함된 다른 컴포넌트들에 의해 수행될 수도 있다.
상기 설명된 방법들의 다양한 동작들은 대응하는 기능들을 수행 가능한 임의의 적절한 수단에 의해 수행될 수도 있다. 그 수단은 회로, 주문형 집적회로 (ASIC), 또는 프로세서를 포함하지만 이에 한정되지 않는 다양한 하드웨어 및/또는 소프트웨어 컴포넌트(들) 및/또는 모듈(들)을 포함할 수도 있다. 일반적으로, 도면들에 도시된 동작들이 존재하는 경우, 그 동작들은 유사한 넘버링을 갖는 대응하는 상대의 수단-플러스-기능 컴포넌트들을 가질 수도 있다.
본원에서 이용되는 바와 같이, 용어 "결정하는" 는 매우 다양한 액션들을 망라한다. 예를 들어, "결정하는" 는 계산하는, 컴퓨팅, 프로세싱, 도출하는, 조사하는, 검색하는(예를 들어, 테이블, 데이터베이스, 또는 다른 데이터 구조에서 검색하는), 확인하는 등을 포함할 수도 있다. 부가적으로, "결정하는 것" 은 수신하는 것 (예를 들어, 정보를 수신하는 것), 액세스하는 것 (예를 들어, 메모리 내 데이터에 액세스하는 것) 등을 포함할 수도 있다. 더욱이, "결정하는 것" 은 해결하는 것, 선택하는 것, 선출하는 것, 확립하는 것 등을 포함할 수도 있다.
본원에서 이용되는 바와 같이, 아이템들의 리스트 중 "그 중 적어도 하나" 를 지칭하는 구절은 단일 멤버들을 포함하여, 이들 아이템들의 임의의 조합을 지칭한다. 예로서, "a, b, 또는 c: 중 적어도 하나" 는 a, b, c, a-b, a-c, b-c, 및 a-b-c 를 포함하도록 의도된다.
본 개시와 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 신호 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스 (PLD), 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 그 프로세서는 임의의 상업적으로 입수가능한 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 연계한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다.
본 개시와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양자의 조합에서 직접 구현될 수도 있다. 소프트웨어 모듈은, 당업계에 공지된 임의의 형태의 저장 매체에 상주할 수도 있다. 사용될 수도 있는 저장 매체의 일부 예들은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 플래시 메모리, 소거가능한 프로그래밍가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 레지스터들, 하드 디스크, 착탈가능 디스크, CD-ROM 등을 포함한다. 소프트웨어 모듈은 단일 명령 또는 다수의 명령들을 포함할 수도 있으며, 수개의 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에, 및 다중의 저장 매체에 걸쳐 분산될 수도 있다. 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있도록 프로세서에 커플링될 수도 있다. 대안에서, 저장 매체는 프로세서에 통합될 수도 있다.
본원에서 개시된 방법들은 상술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 청구항들의 범위를 벗어나지 않으면서 서로 상호 교환될 수도 있다. 즉, 단계들 또는 액션들의 특정 순서가 명시되지 않으면, 특정 단계들 및/또는 액션들의 순서 및/또는 그 사용은 청구항들의 범위로부터 일탈함 없이 수정될 수도 있다.
설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 하드웨어에서 구현되면, 예시적인 하드웨어 구성은 디바이스에 프로세싱 시스템을 포함할 수도 있다. 프로세싱 시스템은 버스 아키텍처로 구현될 수도 있다. 버스는 프로세싱 시스템의 특정 어플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스는 프로세서, 머신 판독가능 매체들, 및 버스 인터페이스를 포함하는 다양한 회로들을 함께 링크시킬 수도 있다. 버스 인터페이스는, 다른 것들 중에서, 네트워크 어댑터를 버스를 통해 프로세싱 시스템에 접속시키는데 사용될 수도 있다. 네트워크 어댑터는 신호 프로세싱 기능들을 구현하는데 사용될 수도 있다. 특정 양태들에 대해, 사용자 인터페이스 (예를 들어, 키패드, 디스플레이, 마우스, 조이스틱 등) 가 또한 버스에 접속될 수도 있다. 버스는 또한, 당업계에 널리 공지되고 따라서 어떠한 추가로 설명되지 않을 타이밍 소스들, 주변기기들, 전압 레귤레이터들, 전력 관리 회로들 등과 같은 다양한 다른 회로들을 링크시킬 수도 있다.
프로세서는 버스를 관리하는 것, 및 컴퓨터 판독가능 매체 상에 저장된 소프트웨어의 실행을 포함한 일반 프로세싱을 책임질 수도 있다. 프로세서는 하나 이상의 범용 및/또는 특수목적 프로세서들로 구현될 수도 있다. 예들은 마이크로프로세서들, 마이크로 제어기들, DSP 프로세서들, 및 소프트웨어를 실행할 수 있는 다른 회로를 포함한다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어, 또는 기타 등등으로서 지칭되든 아니든, 명령들, 데이터, 또는 이들의 임의의 조합을 의미하도록 넓게 해석될 것이다. 머신 판독가능 매체들은, 예로서, 랜덤 액세스 메모리 (RAM), 플래시 메모리, 판독 전용 메모리 (ROM), 프로그래밍가능 판독 전용 메모리 (PROM), 소거가능한 프로그래밍가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 레지스터들, 자기 디스크들, 광학 디스크들, 하드 드라이브들, 또는 임의의 다른 적합한 저장 매체, 또는 이들의 임의의 조합을 포함할 수도 있다. 머신-판독가능 매체들은 컴퓨터 프로그램 제품으로 구현될 수도 있다. 컴퓨터 프로그램 제품은 패키징 재료를 포함할 수도 있다.
하드웨어 구현에 있어서, 머신-판독가능 매체들은 프로세서와는 분리된 프로세싱 시스템의 부분일 수도 있다. 하지만, 당업자들이 용이하게 인식할 바와 같이, 머신-판독가능 매체들 또는 그 임의의 부분은 프로세싱 시스템 외부에 있을 수도 있다. 예로서, 머신-판독가능 매체들은 송신 라인, 데이터에 의해 변조된 캐리어파, 및/또는 디바이스로부터 분리된 컴퓨터 제품을 포함할 수도 있으며, 이들 모두는 버스 인터페이스를 통해 프로세서에 의해 액세스될 수도 있다. 대안적으로 또는 부가적으로, 머신-판독가능 매체들 또는 그 임의의 부분은, 캐시 및/또는 일반 레지스터 파일들로 있을 수도 있는 경우와 같이, 프로세서에 통합될 수도 있다. 논의된 다양한 컴포넌트들이 로컬 컴포넌트와 같이 특정 위치를 갖는 것으로서 설명될 수도 있지만, 이들은 또한 특정 컴포넌트들이 분산 컴퓨팅 시스템의 부분으로서 구성되는 것과 같이 다양한 방식들로 구성될 수도 있다.
프로세싱 시스템은 프로세서 기능을 제공하는 하나 이상의 마이크로프로세서들 및 머신-판독가능 매체들의 적어도 일부를 제공하는 외부 메모리를 갖는 범용 프로세싱 시스템으로서 구성될 수도 있고, 이들 모두는 외부 버스 아키텍처를 통해 다른 지원 회로와 함께 링크된다. 대안적으로, 프로세싱 시스템은 본 명세서에서 설명된 뉴럴 시스템들의 모델들 및 뉴런 모델들을 구현하기 위한 하나 이상의 뉴로모픽 프로세서들을 포함할 수도 있다. 다른 대안적으로, 프로세싱 시스템은, 단일 칩으로 집적된 프로세서, 버스 인터페이스, 사용자 인터페이스, 지원 회로부, 및 머신-판독가능 매체들의 적어도 일부를 갖는 주문형 집적회로 (ASIC) 로, 또는 하나 이상의 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 제어기들, 상태 머신들, 게이트형 로직, 이산 하드웨어 컴포넌트들, 또는 임의의 다른 적합한 회로부, 또는 본 개시 전반에 걸쳐 설명된 다양한 기능을 수행할 수 있는 회로들의 임의의 조합으로 구현될 수도 있다. 당업자는 전체 시스템에 부과된 전체 설계 제약들 및 특정 어플리케이션에 의존하여 프로세싱 시스템에 대한 설명된 기능을 최상으로 구현할 수 있는 방법을 인식할 것이다.
머신 판독가능 매체들은 다수의 소프트웨어 모듈들을 포함할 수도 있다. 소프트웨어 모듈들은, 프로세서에 의해 실행될 경우, 프로세싱 시스템으로 하여금 다양한 기능들을 수행하게 하는 명령들을 포함한다. 소프트웨어 모듈들은 송신 모듈 및 수신 모듈을 포함할 수도 있다. 각각의 소프트웨어 모듈은 단일 저장 디바이스에 상주할 수도 있거나 또는 다수의 저장 디바이스들에 걸쳐 분산될 수도 있다. 예로서, 소프트웨어 모듈은 트리거링 이벤트가 발생할 때 하드 드라이브로부터 RAM 으로 로딩될 수도 있다. 소프트웨어 모듈의 실행 동안, 프로세서는 액세스 속도를 증가시키기 위해 명령들의 일부를 캐시에 로딩할 수도 있다. 그 후, 하나 이상의 캐시 라인들은 프로세서에 의한 실행을 위해 일반 레지스터 파일에 로딩될 수도 있다. 하기에서 소프트웨어 모듈의 기능을 참조할 경우, 그 소프트웨어 모듈로부터의 명령들을 실행할 때 그러한 기능은 프로세서에 의해 구현됨이 이해될 것이다. 더욱이, 본 개시의 양태들은 프로세서, 컴퓨터, 머신, 또는 그러한 양태들을 구현하는 다른 시스템의 기능에 대한 개선을 발생시킴이 인식되어야 한다.
소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 전송될 수도 있다. 컴퓨터 판독가능 매체는, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체 및 통신 매체 양자를 포함한다. 저장 매체는, 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 요구되는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 부가적으로, 임의의 커넥션이 컴퓨터 판독가능 매체로 적절히 명명된다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 (DSL), 또는 적외선 (IR), 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 본 명세서에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이® 디스크를 포함하며, 여기서, 디스크 (disk) 들은 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 들은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 따라서, 일부 양태들에 있어서, 컴퓨터 판독가능 매체는 비-일시적인 컴퓨터 판독가능 매체 (예를 들어, 유형의 매체) 를 포함할 수도 있다. 부가적으로, 다른 양태들에 대해, 컴퓨터 판독가능 매체는 일시적인 컴퓨터 판독가능 매체 (예를 들어, 신호) 를 포함할 수도 있다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
따라서, 특정 양태들은, 본 명세서에서 제시된 동작들을 수행하기 위한 컴퓨터 프로그램 제품을 포함할 수도 있다. 예를 들어, 그러한 컴퓨터 프로그램 제품은 명령들이 저장된 (및/또는 인코딩된) 컴퓨터 판독가능 매체를 포함할 수도 있으며, 그 명령들은 본 명세서에서 설명된 동작들을 수행하기 위해 하나 이상의 프로세서들에 의해 실행가능하다. 특정 양태들에 대해, 컴퓨터 프로그램 제품은 패키징 재료를 포함할 수도 있다.
추가로, 본 명세서에서 설명된 방법들 및 기법들을 수행하기 위한 모듈들 및/또는 다른 적절한 수단은, 적용가능할 경우, 사용자 단말기 및/또는 기지국에 의해 다운로드되고/되거나 그렇지 않으면 획득될 수 있음을 인식해야 한다. 예를 들어, 그러한 디바이스는 서버에 커플링되어, 본 명세서에서 설명된 방법들을 수행하는 수단의 전송을 용이하게 할 수 있다. 대안적으로, 본 명세서에서 설명된 다양한 방법들은 저장 수단 (예를 들어, RAM, ROM, 컴팩트 디스크 (CD) 또는 플로피 디스크와 같은 물리적 저장 매체 등) 을 통해 제공될 수 있어서, 그 저장 수단을 디바이스에 커플링 또는 제공할 시, 사용자 단말기 및/또는 기지국이 다양한 방법들을 획득할 수 있다. 더욱이, 본 명세서에서 설명된 방법들 및 기술들을 디바이스에 제공하기 위한 임의의 다른 적합한 기술이 활용될 수 있다.
청구항들은 상기 예시된 정확한 구성 및 컴포넌트들에 한정되지 않음을 이해해야 한다. 다양한 수정들, 변경들 및 변이들이 청구항들의 범위로부터 일탈함 없이, 상기 설명된 방법들 및 장치의 배열, 동작 및 상세들에서 행해질 수도 있다.

Claims (40)

  1. 로봇에 대한 시각 내비게이션의 방법으로서,
    3 차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하는 단계; 및
    상기 3D 맵, 상기 로컬화 정보, 또는 사용자 입력에 적어도 부분적으로 기초하여 모션 플래닝하는 단계를 포함하며,
    상기 모션 플래닝하는 단계는 상기 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하는, 로봇에 대한 시각 내비게이션의 방법.
  2. 제 1 항에 있어서,
    복수의 카메라들로부터 상기 심도 맵을 결정하는 단계; 및
    복수의 센서들로부터 상기 로컬화 정보를 획득하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  3. 제 2 항에 있어서,
    상기 로컬화 정보는 이미지 정보, 관성 센서 정보, 또는 이들의 조합 중 적어도 하나를 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  4. 제 3 항에 있어서,
    자이로스코프, 가속도계, 또는 이들의 조합 중 적어도 하나로부터 상기 관성 센서 정보를 획득하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  5. 제 1 항에 있어서,
    스테레오 카메라로부터 획득된 측정들에 기초하여 상기 심도 맵을 생성하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  6. 제 1 항에 있어서,
    상기 사용자 입력을 무효화할 경우, 새로운 궤도, 새로운 속도, 또는 이들의 조합 중 적어도 하나를 선택하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  7. 제 1 항에 있어서,
    상기 사용자 입력을 통해 수신된 궤도, 속도, 또는 이들의 조합 중 적어도 하나가 상기 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  8. 제 1 항에 있어서,
    상기 모션 플래닝하는 단계는,
    상기 3D 맵에서 복수의 무충돌 포인트들을 랜덤하게 선택하는 단계;
    상기 복수의 무충돌 포인트들 중 적어도 2 개의 무충돌 포인트들 간의 적어도 하나의 무충돌 경로를 결정하는 단계; 및
    상기 적어도 하나의 무충돌 경로에 적어도 부분적으로 기초하여 타겟까지의 최소 비용 경로를 결정하는 단계를 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  9. 제 8 항에 있어서,
    상기 모션 플래닝하는 단계는, 상기 최소 비용 경로를 따라 장애물이 보여질 경우, 상기 최소 비용 경로를 변경하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  10. 제 8 항에 있어서,
    상기 모션 플래닝하는 단계는,
    맵핑되지 않은 영역에서 복수의 예측된 무충돌 포인트들을 랜덤하게 선택하는 단계; 및
    상기 복수의 예측된 무충돌 포인트들 중 적어도 2 개의 예측된 무충돌 포인트들 간의 적어도 하나의 예측된 무충돌 경로를 결정하는 단계를 더 포함하는, 로봇에 대한 시각 내비게이션의 방법.
  11. 메모리; 및
    상기 메모리에 커플링된 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는,
    3 차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하고; 그리고
    상기 3D 맵, 상기 로컬화 정보, 또는 사용자 입력에 적어도 부분적으로 기초하여 모션 플래닝하도록
    구성되며,
    상기 모션 플래닝하는 것은, 상기 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하는, 장치.
  12. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    복수의 카메라들로부터 상기 심도 맵을 결정하고; 그리고
    복수의 센서들로부터 상기 로컬화 정보를 획득하도록
    구성되는, 장치.
  13. 제 12 항에 있어서,
    상기 로컬화 정보는 이미지 정보, 관성 센서 정보, 또는 이들의 조합 중 적어도 하나를 포함하는, 장치.
  14. 제 13 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로, 자이로스코프, 가속도계, 또는 이들의 조합 중 적어도 하나로부터 상기 관성 센서 정보를 획득하도록 구성되는, 장치.
  15. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로, 스테레오 카메라로부터 획득된 측정들에 기초하여 상기 심도 맵을 생성하도록 구성되는, 장치.
  16. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로, 상기 사용자 입력을 무효화할 경우, 새로운 궤도, 새로운 속도, 또는 이들의 조합 중 적어도 하나를 선택하도록 구성되는, 장치.
  17. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로, 상기 사용자 입력을 통해 수신된 궤도, 속도, 또는 이들의 조합 중 적어도 하나가 상기 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하도록 구성되는, 장치.
  18. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    상기 3D 맵에서 복수의 무충돌 포인트들을 랜덤하게 선택하고;
    상기 복수의 무충돌 포인트들 중 적어도 2 개의 무충돌 포인트들 간의 적어도 하나의 무충돌 경로를 결정하고; 그리고
    상기 적어도 하나의 무충돌 경로에 적어도 부분적으로 기초하여 타겟까지의 최소 비용 경로를 결정하도록
    구성되는, 장치.
  19. 제 18 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로, 상기 최소 비용 경로를 따라 장애물이 보여질 경우, 상기 최소 비용 경로를 변경하도록 구성되는, 장치.
  20. 제 18 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    맵핑되지 않은 영역에서 복수의 예측된 무충돌 포인트들을 랜덤하게 선택하고; 그리고
    상기 복수의 예측된 무충돌 포인트들 중 적어도 2 개의 예측된 무충돌 포인트들 간의 적어도 하나의 예측된 무충돌 경로를 결정하도록
    구성되는, 장치.
  21. 3 차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하는 수단; 및
    상기 3D 맵, 상기 로컬화 정보, 또는 사용자 입력에 적어도 부분적으로 기초하여 모션 플래닝하는 수단을 포함하며,
    상기 모션 플래닝하는 것은 상기 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하는, 장치.
  22. 제 21 항에 있어서,
    복수의 카메라들로부터 상기 심도 맵을 결정하는 수단; 및
    복수의 센서들로부터 상기 로컬화 정보를 획득하는 수단을 더 포함하는, 장치.
  23. 제 22 항에 있어서,
    상기 로컬화 정보는 이미지 정보, 관성 센서 정보, 또는 이들의 조합 중 적어도 하나를 포함하는, 장치.
  24. 제 23 항에 있어서,
    자이로스코프, 가속도계, 또는 이들의 조합 중 적어도 하나로부터 상기 관성 센서 정보를 획득하는 수단을 더 포함하는, 장치.
  25. 제 21 항에 있어서,
    스테레오 카메라로부터 획득된 측정들에 기초하여 상기 심도 맵을 생성하는 수단을 더 포함하는, 장치.
  26. 제 21 항에 있어서,
    상기 사용자 입력을 무효화할 경우, 새로운 궤도, 새로운 속도, 또는 이들의 조합 중 적어도 하나를 선택하는 수단을 더 포함하는, 장치.
  27. 제 21 항에 있어서,
    상기 사용자 입력을 통해 수신된 궤도, 속도, 또는 이들의 조합 중 적어도 하나가 상기 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하는 수단을 더 포함하는, 장치.
  28. 제 21 항에 있어서,
    상기 모션 플래닝하는 수단은,
    상기 3D 맵에서 복수의 무충돌 포인트들을 랜덤하게 선택하는 수단;
    상기 복수의 무충돌 포인트들 중 적어도 2 개의 무충돌 포인트들 간의 적어도 하나의 무충돌 경로를 결정하는 수단; 및
    상기 적어도 하나의 무충돌 경로에 적어도 부분적으로 기초하여 타겟까지의 최소 비용 경로를 결정하는 수단을 더 포함하는, 장치.
  29. 제 28 항에 있어서,
    상기 모션 플래닝하는 수단은, 상기 최소 비용 경로를 따라 장애물이 보여질 경우, 상기 최소 비용 경로를 변경하는 수단을 더 포함하는, 장치.
  30. 제 28 항에 있어서,
    상기 모션 플래닝하는 수단은,
    맵핑되지 않은 영역에서 복수의 예측된 무충돌 포인트들을 랜덤하게 선택하는 수단; 및
    상기 복수의 예측된 무충돌 포인트들 중 적어도 2 개의 예측된 무충돌 포인트들 간의 적어도 하나의 예측된 무충돌 경로를 결정하는 수단을 더 포함하는, 장치.
  31. 로봇에 시각 내비게이션을 제공하기 위한 프로그램 코드가 기록된 비-일시적인 컴퓨터 판독가능 저장 매체로서,
    상기 프로그램 코드는 프로세서에 의해 실행되고,
    상기 프로그램 코드는,
    3 차원 (3D) 맵을 생성하기 위해 심도 맵을 로컬화 정보와 통합하기 위한 프로그램 코드; 및
    상기 3D 맵, 상기 로컬화 정보, 또는 사용자 입력에 적어도 부분적으로 기초하여 모션 플래닝하기 위한 프로그램 코드
    를 포함하며,
    상기 모션 플래닝하는 것은, 상기 사용자 입력이 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  32. 제 31 항에 있어서,
    상기 프로그램 코드는,
    복수의 카메라들로부터 상기 심도 맵을 결정하기 위한 프로그램 코드; 및
    복수의 센서들로부터 상기 로컬화 정보를 획득하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  33. 제 32 항에 있어서,
    상기 로컬화 정보는 이미지 정보, 관성 센서 정보, 또는 이들의 조합 중 적어도 하나를 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  34. 제 33 항에 있어서,
    상기 프로그램 코드는 자이로스코프, 가속도계, 또는 이들의 조합 중 적어도 하나로부터 상기 관성 센서 정보를 획득하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  35. 제 31 항에 있어서,
    상기 프로그램 코드는 스테레오 카메라로부터 획득된 측정들에 기초하여 상기 심도 맵을 생성하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  36. 제 31 항에 있어서,
    상기 프로그램 코드는 상기 사용자 입력을 무효화할 경우, 새로운 궤도, 새로운 속도, 또는 이들의 조합 중 적어도 하나를 선택하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  37. 제 31 항에 있어서,
    상기 모션 플래닝하기 위한 프로그램 코드는, 상기 사용자 입력을 통해 수신된 궤도, 속도, 또는 이들의 조합 중 적어도 하나가 상기 충돌을 야기하는 것으로 예측될 경우, 상기 사용자 입력을 무효화하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  38. 제 31 항에 있어서,
    상기 모션 플래닝하기 위한 프로그램 코드는,
    상기 3D 맵에서 복수의 무충돌 포인트들을 랜덤하게 선택하기 위한 프로그램 코드;
    상기 복수의 무충돌 포인트들 중 적어도 2 개의 무충돌 포인트들 간의 적어도 하나의 무충돌 경로를 결정하기 위한 프로그램 코드; 및
    상기 적어도 하나의 무충돌 경로에 적어도 부분적으로 기초하여 타겟까지의 최소 비용 경로를 결정하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  39. 제 38 항에 있어서,
    상기 모션 플래닝하기 위한 프로그램 코드는, 상기 최소 비용 경로를 따라 장애물이 보여질 경우, 상기 최소 비용 경로를 변경하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  40. 제 38 항에 있어서,
    상기 모션 플래닝하기 위한 프로그램 코드는,
    맵핑되지 않은 영역에서 복수의 예측된 무충돌 포인트들을 랜덤하게 선택하기 위한 프로그램 코드; 및
    상기 복수의 예측된 무충돌 포인트들 중 적어도 2 개의 예측된 무충돌 포인트들 간의 적어도 하나의 예측된 무충돌 경로를 결정하기 위한 프로그램 코드를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
KR1020187016758A 2015-12-15 2016-10-27 자율 시각 내비게이션 KR102226350B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562267886P 2015-12-15 2015-12-15
US62/267,886 2015-12-15
US15/249,250 2016-08-26
US15/249,250 US10705528B2 (en) 2015-12-15 2016-08-26 Autonomous visual navigation
PCT/US2016/059171 WO2017105643A1 (en) 2015-12-15 2016-10-27 Autonomous visual navigation

Publications (2)

Publication Number Publication Date
KR20180093934A true KR20180093934A (ko) 2018-08-22
KR102226350B1 KR102226350B1 (ko) 2021-03-12

Family

ID=59020531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187016758A KR102226350B1 (ko) 2015-12-15 2016-10-27 자율 시각 내비게이션

Country Status (9)

Country Link
US (1) US10705528B2 (ko)
EP (1) EP3391166B1 (ko)
JP (1) JP6882296B2 (ko)
KR (1) KR102226350B1 (ko)
CN (1) CN108475059B (ko)
BR (1) BR112018011944A2 (ko)
CA (1) CA3004262A1 (ko)
TW (1) TW201728876A (ko)
WO (1) WO2017105643A1 (ko)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015072002A1 (ja) * 2013-11-15 2015-05-21 株式会社日立製作所 移動ロボットシステム
US10372968B2 (en) * 2016-01-22 2019-08-06 Qualcomm Incorporated Object-focused active three-dimensional reconstruction
ES2903532T3 (es) 2016-06-10 2022-04-04 Univ Duke Planificación de movimiento para vehículos autónomos y procesadores reconfigurables de planificación de movimiento
WO2018042853A1 (ja) 2016-09-05 2018-03-08 株式会社クボタ 作業車自動走行システム、走行経路管理装置、走行経路生成装置、走行経路決定装置
US10357709B2 (en) 2016-09-30 2019-07-23 Sony Interactive Entertainment Inc. Unmanned aerial vehicle movement via environmental airflow
US10416669B2 (en) 2016-09-30 2019-09-17 Sony Interactive Entertainment Inc. Mechanical effects by way of software or real world engagement
US10850838B2 (en) 2016-09-30 2020-12-01 Sony Interactive Entertainment Inc. UAV battery form factor and insertion/ejection methodologies
US10377484B2 (en) 2016-09-30 2019-08-13 Sony Interactive Entertainment Inc. UAV positional anchors
US10410320B2 (en) 2016-09-30 2019-09-10 Sony Interactive Entertainment Inc. Course profiling and sharing
US10679511B2 (en) 2016-09-30 2020-06-09 Sony Interactive Entertainment Inc. Collision detection and avoidance
US10336469B2 (en) 2016-09-30 2019-07-02 Sony Interactive Entertainment Inc. Unmanned aerial vehicle movement via environmental interactions
WO2018101351A1 (ja) * 2016-12-02 2018-06-07 株式会社クボタ 走行経路管理システム及び走行経路決定装置
US10846541B2 (en) * 2017-01-04 2020-11-24 Qualcomm Incorporated Systems and methods for classifying road features
WO2018191818A1 (en) * 2017-04-18 2018-10-25 Clearpath Robotics Inc. Stand-alone self-driving material-transport vehicle
US10303180B1 (en) * 2017-04-20 2019-05-28 X Development Llc Generating and utilizing non-uniform volume measures for voxels in robotics applications
US10949798B2 (en) * 2017-05-01 2021-03-16 Symbol Technologies, Llc Multimodal localization and mapping for a mobile automation apparatus
WO2018213931A1 (en) 2017-05-25 2018-11-29 Clearpath Robotics Inc. Systems and methods for process tending with a robot arm
US10578453B2 (en) * 2017-07-14 2020-03-03 Rosemount Aerospace Inc. Render-based trajectory planning
US11422569B2 (en) 2017-08-31 2022-08-23 Clearpath Robotics Inc. Systems and methods for generating a mission for a self-driving material-transport vehicle
WO2019061062A1 (en) * 2017-09-27 2019-04-04 Intel Corporation AUTONOMOUS ROBOTS AND METHODS OF OPERATION
US20190113919A1 (en) 2017-10-18 2019-04-18 Luminar Technologies, Inc. Controlling an autonomous vehicle using smart control architecture selection
US10366531B2 (en) * 2017-10-24 2019-07-30 Lowe's Companies, Inc. Robot motion planning for photogrammetry
US9990767B1 (en) 2017-10-24 2018-06-05 Lowe's Companies, Inc. Generation of 3D models using stochastic shape distribution
US11392121B2 (en) 2017-10-31 2022-07-19 Clearpath Robotics Inc. Systems and methods for operating robotic equipment in controlled zones
WO2019090417A1 (en) 2017-11-10 2019-05-16 Clearpath Robotics Inc. Systems and methods for updating an electronic map
US11073828B2 (en) * 2017-12-08 2021-07-27 Samsung Electronics Co., Ltd. Compression of semantic information for task and motion planning
CN111383059A (zh) * 2017-12-28 2020-07-07 纳恩博(北京)科技有限公司 信息处理方法及装置、电子设备及存储介质
WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
TWI822729B (zh) * 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
EP3769174B1 (en) 2018-03-21 2022-07-06 Realtime Robotics, Inc. Motion planning of a robot for various environments and tasks and improved operation of same
CN108955682A (zh) * 2018-04-03 2018-12-07 哈尔滨工业大学深圳研究生院 手机室内定位导航方法
US10802492B2 (en) * 2018-04-05 2020-10-13 Ford Global Technologies, Llc Vehicle path identification
US11407111B2 (en) * 2018-06-27 2022-08-09 Abb Schweiz Ag Method and system to generate a 3D model for a robot scene
US11597085B2 (en) 2018-09-13 2023-03-07 The Charles Stark Draper Laboratory, Inc. Locating and attaching interchangeable tools in-situ
CN109582032B (zh) * 2018-10-11 2021-10-12 天津大学 多旋翼无人机在复杂环境下的快速实时避障路径选择方法
US11192253B2 (en) 2018-10-12 2021-12-07 Toyota Research Institute, Inc. Systems and methods for conditional robotic teleoperation
JP6508691B1 (ja) * 2018-10-15 2019-05-08 株式会社Mujin 制御装置、作業ロボット、プログラム、及び、制御方法
JP7241517B2 (ja) * 2018-12-04 2023-03-17 三菱電機株式会社 航法装置、航法パラメータ計算方法およびプログラム
TWI672206B (zh) * 2018-12-19 2019-09-21 財團法人工業技術研究院 機械手臂非接觸式工具中心點校正裝置及其方法以及具有校正功能的機械手臂系統
US10948300B2 (en) * 2018-12-27 2021-03-16 Beijing Voyager Technology Co., Ltd. Systems and methods for path determination
KR102198187B1 (ko) * 2018-12-28 2021-01-04 엘지전자 주식회사 이동 로봇
EP3924868A4 (en) * 2019-02-11 2022-11-30 643AI Ltd. SYSTEMS AND PROCEDURES FOR MANAGEMENT OF MULTIPLE AUTONOMOUS VEHICLES
CN109814574B (zh) * 2019-02-22 2022-07-19 百度在线网络技术(北京)有限公司 自动驾驶车道汇合处的速度规划方法、装置和存储介质
CN109685048A (zh) * 2019-03-04 2019-04-26 上海卓易科技股份有限公司 人体测量方法、装置、终端及存储介质
WO2020206071A1 (en) * 2019-04-02 2020-10-08 Brain Corporation Systems, apparatuses, and methods for cost evaluation and motion planning for robotic devices
CN113905855B (zh) 2019-04-17 2023-08-25 实时机器人有限公司 运动规划图生成用户界面、***、方法和规则
US11634126B2 (en) 2019-06-03 2023-04-25 Realtime Robotics, Inc. Apparatus, methods and articles to facilitate motion planning in environments having dynamic obstacles
JP7124797B2 (ja) * 2019-06-28 2022-08-24 トヨタ自動車株式会社 機械学習方法および移動ロボット
WO2021006134A1 (ja) * 2019-07-08 2021-01-14 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよびカメラモジュール
US11875678B2 (en) * 2019-07-19 2024-01-16 Zoox, Inc. Unstructured vehicle path planner
WO2021041223A1 (en) 2019-08-23 2021-03-04 Realtime Robotics, Inc. Motion planning for robots to optimize velocity while maintaining limits on acceleration and jerk
US11233937B1 (en) * 2019-09-26 2022-01-25 Amazon Technologies, Inc. Autonomously motile device with image capture
CN112818727A (zh) * 2019-11-18 2021-05-18 华为技术有限公司 一种道路约束确定方法及装置
TW202146189A (zh) 2020-01-22 2021-12-16 美商即時機器人股份有限公司 於多機器人操作環境中之機器人之建置
CN111650931B (zh) * 2020-04-26 2023-03-14 广东博智林机器人有限公司 多个移动设备的路径确定的方法、装置与存储介质
US20210349462A1 (en) * 2020-05-08 2021-11-11 Robust Al, Inc. Ultraviolet end effector
US20220034669A1 (en) * 2020-07-28 2022-02-03 Bae Systems Information And Electronic Systems Integration Inc. Navigation architecture for contested environments
CN112454367B (zh) * 2020-12-10 2022-04-26 北京市商汤科技开发有限公司 一种轨迹规划方法、装置以及计算机存储介质
CN112797986B (zh) * 2021-02-07 2023-03-31 江西省智能产业技术创新研究院 基于无人自主技术的智能物流机器人定位***及方法
CN112991527B (zh) * 2021-02-08 2022-04-19 追觅创新科技(苏州)有限公司 目标对象的躲避方法及装置、存储介质、电子装置
CN112904366B (zh) * 2021-03-19 2023-06-16 北京小狗吸尘器集团股份有限公司 应用于扫地机的重定位方法、装置、电子设备和介质
KR102551275B1 (ko) * 2021-05-14 2023-07-04 (주)로보티즈 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션
US20230031289A1 (en) * 2021-07-30 2023-02-02 Toyota Research Institute, Inc. Monocular 2d semantic keypoint detection and tracking
US11580690B1 (en) 2021-08-31 2023-02-14 Raytheon Company Horizon-based navigation
WO2023066772A1 (en) * 2021-10-20 2023-04-27 Syddansk Universitet A method and a system for collision avoidance of a 3d robotic concrete printer
CN114384939B (zh) * 2022-03-24 2022-07-29 江苏深瑞光学技术有限公司 一种微型水下探测机器人自主导航***
CN116342827B (zh) * 2023-05-26 2023-08-08 厦门精图信息技术有限公司 一种地图元素三维呈现***及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080027591A1 (en) * 2006-07-14 2008-01-31 Scott Lenser Method and system for controlling a remote vehicle
US20120253582A1 (en) * 2011-03-30 2012-10-04 Microsoft Corporation Semi-Autonomous Mobile Device Driving with Obstacle Avoidance
KR101339480B1 (ko) * 2012-12-14 2013-12-10 고려대학교 산학협력단 Rrt 기반의 듀얼 트리 구조를 이용한 이동 로봇의 궤적 계획 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6667592B2 (en) * 2001-08-13 2003-12-23 Intellibot, L.L.C. Mapped robot system
JP2007257200A (ja) * 2006-03-22 2007-10-04 Toyota Motor Corp 移動体及びその制御方法
US8509965B2 (en) * 2006-12-12 2013-08-13 American Gnc Corporation Integrated collision avoidance system for air vehicle
JP4661838B2 (ja) * 2007-07-18 2011-03-30 トヨタ自動車株式会社 経路計画装置及び方法、コスト評価装置、並びに移動体
CN100468265C (zh) * 2007-08-24 2009-03-11 北京航空航天大学 一种复合式视觉导航方法与装置
JP2009193240A (ja) * 2008-02-13 2009-08-27 Toyota Motor Corp 移動ロボット及び環境地図の生成方法
US8229618B2 (en) 2008-09-11 2012-07-24 Deere & Company Leader-follower fully autonomous vehicle with operator on side
JP5321214B2 (ja) * 2009-04-15 2013-10-23 トヨタ自動車株式会社 移動体及びその制御方法
KR101667032B1 (ko) * 2009-10-30 2016-10-17 삼성전자 주식회사 로봇의 경로 계획 장치 및 그 방법
AU2011289866B2 (en) 2010-05-12 2015-04-09 Irobot Corporation System and method to remotely control a vehicle
US9213905B2 (en) 2010-10-25 2015-12-15 Trimble Navigation Limited Automatic obstacle location mapping
CN102866706B (zh) * 2012-09-13 2015-03-25 深圳市银星智能科技股份有限公司 一种采用智能手机导航的清扫机器人及其导航清扫方法
US9674507B2 (en) 2013-04-30 2017-06-06 Qualcomm Incorporated Monocular visual SLAM with general and panorama camera movements
US20140355869A1 (en) * 2013-06-03 2014-12-04 Elbit Systems Ltd. System and method for preventing aircrafts from colliding with objects on the ground
EP2884364B1 (en) * 2013-12-12 2018-09-26 Hexagon Technology Center GmbH Autonomous gardening vehicle with camera
DE102014226084A1 (de) * 2014-12-16 2016-06-16 Robert Bosch Gmbh Verfahren zur Kartierung einer Bearbeitungsfläche für autonome Roboterfahrzeuge
CN204695100U (zh) * 2015-05-20 2015-10-07 深圳市锐曼智能装备有限公司 机器人用深度摄像头与超声波结合的避障控制装置
CN104865965B (zh) * 2015-05-20 2017-12-26 深圳市锐曼智能装备有限公司 机器人用深度摄像头与超声波结合的避障控制方法及***
US10341633B2 (en) * 2015-11-20 2019-07-02 Qualcomm Incorporated Systems and methods for correcting erroneous depth information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080027591A1 (en) * 2006-07-14 2008-01-31 Scott Lenser Method and system for controlling a remote vehicle
US20120253582A1 (en) * 2011-03-30 2012-10-04 Microsoft Corporation Semi-Autonomous Mobile Device Driving with Obstacle Avoidance
KR101339480B1 (ko) * 2012-12-14 2013-12-10 고려대학교 산학협력단 Rrt 기반의 듀얼 트리 구조를 이용한 이동 로봇의 궤적 계획 방법

Also Published As

Publication number Publication date
KR102226350B1 (ko) 2021-03-12
JP2019500693A (ja) 2019-01-10
WO2017105643A1 (en) 2017-06-22
CN108475059B (zh) 2021-11-09
EP3391166A1 (en) 2018-10-24
CA3004262A1 (en) 2017-06-22
BR112018011944A2 (pt) 2018-11-27
JP6882296B2 (ja) 2021-06-02
EP3391166B1 (en) 2020-02-19
US20170168488A1 (en) 2017-06-15
CN108475059A (zh) 2018-08-31
US10705528B2 (en) 2020-07-07
TW201728876A (zh) 2017-08-16

Similar Documents

Publication Publication Date Title
KR102226350B1 (ko) 자율 시각 내비게이션
US11592844B2 (en) Image space motion planning of an autonomous vehicle
JP6906011B2 (ja) オブジェクトの二次元境界枠を自動運転車両の三次元位置に転換するための方法[method for transforming 2d bounding boxes of objects into 3d positions for autonomous driving vehicles (advs)]
US10310087B2 (en) Range-view LIDAR-based object detection
CN108007452B (zh) 根据障碍物更新环境地图的方法、装置及机器人
JP7502409B2 (ja) 中間ウェイポイント生成器
EP3750140A1 (en) Aerial vehicle smart landing
WO2021096667A1 (en) Methods and systems for joint pose and shape estimation of objects from sensor data
JP2015006874A (ja) 3次元証拠グリッドを使用する自律着陸のためのシステムおよび方法
Campos‐Macías et al. Autonomous navigation of MAVs in unknown cluttered environments
CN105867368A (zh) 一种信息处理方法和移动装置
CN113686347B (zh) 机器人导航路径的生成方法及装置
JP7032062B2 (ja) 点群データ処理装置、移動ロボット、移動ロボットシステム、および点群データ処理方法
Ryu et al. Development of an autonomous vehicle for high-speed navigation and obstacle avoidance
WO2021074660A1 (ja) 物体認識方法及び物体認識装置
Camargo et al. Mobile robot autonomous exploration and navigation in large-scale indoor environments
JP2021095078A (ja) 車線変更決定装置
US20230150543A1 (en) Systems and methods for estimating cuboid headings based on heading estimations generated using different cuboid defining techniques
Gómez-Ayalde et al. Local planning methods for autonomous navigation on sidewalks: a comparative survey
Devmurari et al. AUTOPILOT: An Advanced Perception, Localization and Path Planning Techniques for Autonomous Vehicles using YOLOv7 and MiDaS
Gujarathi et al. Aman Jain, Navid Panchi under the guidance of Dr. Ashwin Dhabale and
Sondermann et al. Improved Mobile Robot Localization Using Semantic World Models
GB2562769A (en) Apparatus and method for determining a cost map

Legal Events

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