KR20230035139A - 웨이포인트 매칭을 이용한 자율적 맵 주행 - Google Patents

웨이포인트 매칭을 이용한 자율적 맵 주행 Download PDF

Info

Publication number
KR20230035139A
KR20230035139A KR1020237006525A KR20237006525A KR20230035139A KR 20230035139 A KR20230035139 A KR 20230035139A KR 1020237006525 A KR1020237006525 A KR 1020237006525A KR 20237006525 A KR20237006525 A KR 20237006525A KR 20230035139 A KR20230035139 A KR 20230035139A
Authority
KR
South Korea
Prior art keywords
image sensor
robot
waypoint
leg
image
Prior art date
Application number
KR1020237006525A
Other languages
English (en)
Other versions
KR102648771B1 (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 KR20230035139A publication Critical patent/KR20230035139A/ko
Application granted granted Critical
Publication of KR102648771B1 publication Critical patent/KR102648771B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • 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 or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40298Manipulator on vehicle, wheels, mobile
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2201/00Application
    • G05D2201/02Control of position of land vehicles
    • G05D2201/0217Anthropomorphic or bipedal robot
    • 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

Abstract

로봇(100)은 환경(10) 주위에서 로봇을 조작하도록 구성된 드라이브 시스템, 및 메모리 하드웨어(114) 및 드라이브 시스템과 통신하는 데이터 프로세싱 하드웨어(112)를 포함한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 환경에서 로봇 조작의 이미지 데이터(124)를 수신하는 것 및 적어도 하나의 웨이포인트 휴리스틱(212)을 실행하는 것을 포함한다. 적어도 하나의 웨이포인트 휴리스틱은 웨이포인트 맵(200) 상의 웨이포인트 배치를 트리거하도록 구성된다. 웨이포인트 배치를 트리거하는 것에 대한 응답으로, 동작들은, 웨이포인트가 적어도 하나의 웨이포인트 에지(220)와 연관되고 로봇에 의해 획득된 센서 데이터를 포함하는 웨이포인트 맵 상의 웨이포인트(210)를 기록하는 것을 포함한다. 적어도 하나의 웨이포인트 에지는 2개의 웨이포인트들 사이에서 이동하는 방법을 표현하는 포즈 변환을 포함한다.

Description

웨이포인트 매칭을 이용한 자율적 맵 주행{AUTONOMOUS MAP TRAVERSAL WITH WAYPOINT MATCHING}
[0001] 본 개시는 웨이포인트 매칭을 이용한 자율적 맵 주행에 관한 것이다.
[0002] 로봇은 일반적으로 작업들의 수행을 위해 가변 프로그래밍된 모션들을 통해 재료, 부품들, 도구들 또는 특수 디바이스들을 이동시키도록 설계된 재프로그래밍가능한 다기능 조작기로서 정의된다. 로봇들은 물리적으로 고정된 조작기(예를 들어, 산업용 로봇 팔들), 환경 전반에 걸쳐 이동하는 모바일 로봇들(예를 들어, 다리들, 바퀴들 또는 견인 기반 메커니즘들을 사용함) 또는 조작기와 모바일 로봇의 일부 조합일 수 있다. 로봇들은 예를 들어, 제조, 운송, 위험한 환경들, 탐사 및 의료를 포함하는 다양한 산업들에서 활용된다. 따라서, 자율적으로 동작하는 능력은 로봇 기능성을 향상시키고 이러한 산업들에 추가적인 이점들을 제공할 수 있다.
[0003] 본 개시의 일 양상은 자율적 맵 주행을 위한 방법을 제공한다. 방법은 데이터 프로세싱 하드웨어에서, 환경에서 조작되는 로봇에 대한 환경의 센서 데이터를 수신하는 단계를 포함한다. 센서 데이터는 이미지 데이터를 포함한다. 방법은 또한 데이터 프로세싱 하드웨어에 의해, 이미지 데이터에 기초하여 적어도 하나의 웨이포인트 휴리스틱(waypoint heuristic)을 실행하는 단계를 포함한다. 적어도 하나의 웨이포인트 휴리스틱은 웨이포인트 맵 상의 웨이포인트 배치를 트리거하도록 구성된다. 적어도 하나의 웨이포인트 휴리스틱이 웨이포인트 배치를 트리거하는 것에 대한 응답으로, 방법은 데이터 프로세싱 하드웨어에 의해, 웨이포인트 맵 상의 웨이포인트를 기록하는 단계를 포함한다. 웨이포인트는 적어도 하나의 웨이포인트 에지와 연관되고 로봇에 의해 획득된 센서 데이터의 적어도 일부를 포함한다. 적어도 하나의 웨이포인트 에지는 2개의 웨이포인트들 사이에서 이동하는 방법을 표현하는 포즈 변환을 포함한다.
[0004] 본 개시의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 이미지 데이터는 3차원 체적 이미지 센서에 의해 캡처된 3차원 포인트 클라우드 데이터를 포함한다. 여기서, 3차원 체적 이미지 센서는 스테레오 카메라, 스캐닝 LIDAR(light-detection and ranging) 센서, 또는 스캐닝 LADAR(laser-detection and ranging) 센서 중 하나 이상을 포함할 수 있다. 웨이포인트 휴리스틱은 로봇의 현재 위치에서 이미지 데이터 내의 임계 특징부 검출을 검출하도록 구성될 수 있다.
[0005] 일부 예들에서, 웨이포인트의 센서 데이터는 3차원 체적 이미지 센서에 의해 캡처된 3차원 포인트 클라우드 데이터 및 로봇의 IMU(inertial measurement unit)에 의해 측정된 관성 측정 데이터를 포함하는 포즈 데이터를 포함한다. 주어진 웨이포인트에 대해, 방법은 주어진 웨이포인트에 대한 이웃 웨이포인트들을 식별하는 단계 및 주어진 웨이포인트 및 이웃 웨이포인트들의 3차원 포인트 클라우드 데이터의 3차원 포인트들을 3차원 포인트들의 집합으로서 식별하는 단계를 포함할 수 있다. 주어진 웨이포인트에 대해, 방법은 또한 3차원 포인트들의 집합의 3차원 포인트들이 3차원 포인트 클라우드 데이터에 의해 표현된 이미지의 시각적 에지에 대응하는지 여부를 결정하는 단계 및 3차원 포인트 클라우드 데이터에 의해 표현된 이미지의 시각적 에지에 대응하는 3차원 포인트들의 집합의 3차원 포인트들을 주어진 웨이포인트와 연관시키는 단계를 포함할 수 있다.
[0006] 일부 구성들에서, 웨이포인트는, 로봇으로 하여금 웨이포인트에서 배향된 포즈를 달성하게 하도록 구성된 로봇 포즈 제약을 포함한다. 웨이포인트 맵은 이웃 웨이포인트들과 로컬로 일치할 수 있다. 웨이포인트 에지는 환경의 공간적 특징부를 표시하는 어노테이션(annotation)을 포함할 수 있다. 웨이포인트 맵 상의 웨이포인트를 기록하는 것은 웨이포인트 주위의 베이슨(basin) 구역을 기록하는 것을 포함하고, 베이슨 구역은 로봇이 ICP(iterative closest points) 알고리즘을 사용하도록 구성되는 웨이포인트에 인접한 영역을 지정한다.
[0007] 본 개시의 다른 양상은 로봇을 제공한다. 로봇은 환경 주위에서 로봇을 조작하도록 구성된 드라이브 시스템, 및 드라이브 시스템과 통신하는 데이터 프로세싱 하드웨어를 포함한다. 로봇은 또한 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 환경에서 로봇 조작의 센서 데이터를 수신하는 것을 포함한다. 센서 데이터는 이미지 데이터를 포함한다. 동작들은 이미지 데이터에 기초하여 적어도 하나의 웨이포인트 휴리스틱을 실행하는 것을 더 포함한다. 적어도 하나의 웨이포인트 휴리스틱은 웨이포인트 맵 상의 웨이포인트 배치를 트리거하도록 구성된다. 적어도 하나의 웨이포인트 휴리스틱이 웨이포인트 배치를 트리거하는 것에 대한 응답으로, 동작들은 웨이포인트 맵 상의 웨이포인트를 기록하는 것을 포함한다. 웨이포인트는 적어도 하나의 웨이포인트 에지와 연관되고 로봇에 의해 획득된 센서 데이터를 포함한다. 적어도 하나의 웨이포인트 에지는 2개의 웨이포인트들 사이에서 이동하는 방법을 표현하는 포즈 변환을 포함한다.
[0008] 본 개시의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 예들에서, 이미지 데이터는 3차원 체적 이미지 센서에 의해 캡처된 3차원 포인트 클라우드 데이터를 포함한다. 여기서, 이미지 센서는 스테레오 카메라, 스캐닝 LIDAR(light-detection and ranging) 센서, 또는 스캐닝 LADAR(laser-detection and ranging) 센서 중 하나 이상을 포함한다. 웨이포인트 휴리스틱은 로봇의 현재 위치에서 이미지 데이터 내의 임계 특징부 검출을 검출하도록 구성될 수 있다.
[0009] 일부 구현들에서, 웨이포인트의 센서 데이터는 3차원 체적 이미지 센서에 의해 캡처된 3차원 포인트 클라우드 데이터 및 로봇의 IMU(inertial measurement unit)에 의해 측정된 관성 측정 데이터를 포함하는 포즈 데이터를 포함한다. 주어진 웨이포인트에 대해, 동작들은 주어진 웨이포인트에 대한 이웃 웨이포인트들을 식별하는 것 및 주어진 웨이포인트 및 이웃 웨이포인트들의 3차원 포인트 클라우드 데이터의 3차원 포인트들을 3차원 포인트들의 집합으로서 식별하는 것을 포함할 수 있다. 주어진 웨이포인트에 대해, 동작들은 또한 3차원 포인트들의 집합의 3차원 포인트들이 3차원 포인트 클라우드 데이터에 의해 표현된 이미지의 시각적 에지에 대응하는지 여부를 결정하는 것 및 3차원 포인트 클라우드 데이터에 의해 표현된 이미지의 시각적 에지에 대응하는 3차원 포인트들의 집합의 3차원 포인트들을 주어진 웨이포인트와 연관시키는 것을 포함할 수 있다.
[0010] 일부 구성들에서, 웨이포인트는, 로봇으로 하여금 웨이포인트에서 배향된 포즈를 달성하게 하도록 구성된 로봇 포즈 제약을 포함한다. 웨이포인트 맵은 이웃 웨이포인트들과 로컬로 일치할 수 있다. 추가적으로 또는 대안적으로, 웨이포인트 에지는 환경의 공간적 특징부를 표시하는 어노테이션을 포함할 수 있다. 웨이포인트 맵 상의 웨이포인트를 기록하는 것은 웨이포인트 주위의 베이슨 구역을 기록하는 것을 포함할 수 있고, 베이슨 구역은 로봇이 ICP(iterative closest points) 알고리즘을 사용하도록 구성되는 웨이포인트에 인접한 영역을 지정한다.
[0011] 본 개시의 또 다른 양상은 자율적 맵 주행을 위한 방법을 제공한다. 방법은 데이터 프로세싱 하드웨어에서, 환경에서 조작되는 로봇에 대한 환경의 이미지 데이터를 수신하는 단계를 포함한다. 방법은 또한 데이터 프로세싱 하드웨어에 의해, 수신된 이미지 데이터에 기초하여 웨이포인트 맵의 제1 웨이포인트에 로컬화하도록 구성된 ICP(iterative closest points) 알고리즘을 실행하는 단계를 포함한다. 방법은 데이터 프로세싱 하드웨어에 의해, 웨이포인트 맵의 제1 웨이포인트로부터 웨이포인트 맵의 제2 웨이포인트로의 주행 경로를 실행하는 단계 및 데이터 프로세싱 하드웨어에 의해, 수신된 이미지 데이터에 기초하여 ICP 알고리즘에 의해 웨이포인트 맵의 제2 웨이포인트에 대한 로컬화를 업데이트하는 단계를 더 포함한다.
[0012] 본 개시의 이러한 양상의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구성들에서, 이미지 데이터는 3차원 체적 이미지 센서에 의해 캡처된 3차원 포인트 클라우드 데이터를 포함한다. 이미지 센서는 스테레오 카메라, 스캐닝 LIDAR(light-detection and ranging) 센서, 또는 스캐닝 LADAR(laser-detection and ranging) 센서 중 하나 이상을 포함할 수 있다.
[0013] 일부 예들에서, 제2 웨이포인트에 대한 로컬화를 업데이트하는 것은 수신된 이미지 데이터를 웨이포인트 맵의 저장된 이미지 데이터와 비교하는 것을 포함하고, 저장된 이미지 데이터는 제2 웨이포인트와 연관된다. 추가적으로 또는 대안적으로, 제2 웨이포인트에 대한 로컬화를 업데이트하는 것은 로컬화와 연관된 위치가 로컬화 거리 임계치를 충족한다고 결정하는 것 및 데이터 프로세싱 하드웨어에 의해, 운동학적 데이터 및 관성 측정 데이터에 따라 위치에서 로컬화를 실행하는 것을 포함할 수 있다. 여기서, 로컬화 거리 임계치는 개개의 웨이포인트로부터의 거리를 표시한다.
[0014] 본 개시의 다른 양상은 로봇을 제공한다. 로봇은 본체, 본체에 커플링되고 환경 주위에서 로봇을 조작하도록 구성된 다리들, 및 다리들과 통신하는 데이터 프로세싱 하드웨어를 포함한다. 로봇은 또한 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령들을 저장한다. 동작들은 환경에서 조작되는 로봇에 대한 환경의 이미지 데이터를 수신하는 것을 포함한다. 동작들은 또한 수신된 이미지 데이터에 기초하여 웨이포인트 맵의 제1 웨이포인트에 로컬화하도록 구성된 ICP(iterative closest points) 알고리즘을 실행하는 것, 및 웨이포인트 맵의 제1 웨이포인트로부터 웨이포인트 맵의 제2 웨이포인트로의 주행 경로를 실행하는 것을 포함한다. 동작들은 수신된 이미지 데이터에 기초하여 ICP 알고리즘에 의해 웨이포인트 맵의 제2 웨이포인트에 대한 로컬화를 업데이트하는 것을 더 포함한다.
[0015] 본 개시의 이러한 양상의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 이미지 데이터는 3차원 체적 이미지 센서에 의해 캡처된 3차원 포인트 클라우드 데이터를 포함한다. 여기서, 이미지 센서는 스테레오 카메라, 스캐닝 LIDAR(light-detection and ranging) 센서, 또는 스캐닝 LADAR(laser-detection and ranging) 센서 중 하나 이상을 포함한다.
[0016] 일부 예들에서, 제2 웨이포인트에 대한 로컬화를 업데이트하는 것은 수신된 이미지 데이터를 웨이포인트 맵의 저장된 이미지 데이터와 비교하는 것을 포함하고, 저장된 이미지 데이터는 제2 웨이포인트와 연관된다. 선택적으로, 제2 웨이포인트에 대한 로컬화를 업데이트하는 것은 또한 로컬화와 연관된 위치가 로컬화 거리 임계치를 충족한다고 결정하는 것 및 데이터 프로세싱 하드웨어에 의해, 운동학적 데이터 및 관성 측정 데이터에 따라 위치에서 로컬화를 실행하는 것을 포함할 수 있다. 여기서, 로컬화 거리 임계치는 개개의 웨이포인트로부터의 거리를 표시한다.
[0017] 본 개시의 하나 이상의 구현들의 세부사항들은 첨부된 도면들 및 이하의 설명에서 기술된다. 다른 양상들, 특징들 및 이점들은 설명 및 도면들로부터 및 청구항들로부터 자명할 것이다.
[0018] 도 1은 로봇 환경에서 로봇의 예의 개략도이다.
[0019] 도 2a는 로봇에 대한 맵의 예의 개략도이다.
[0020] 도 2b는 베이슨을 갖는 맵의 예시적인 웨이포인트의 개략도이다.
[0021] 도 2c는 맵 제약들을 갖는 예시적인 맵의 개략도이다.
[0022] 도 2d는 로봇에 대한 예시적인 맵의 개략도이다.
[0023] 도 3 및 도 4는 로봇에 대한 로봇 환경 주행을 구현하기 위한 예시적인 어레인지먼트(arrangement)들의 흐름도들이다.
[0024] 도 5은 본원에 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0025] 다양한 도면들에서 유사한 참조 부호들은 유사한 요소들을 표시한다.
[0026] 도 1은 로봇 환경(10)의 예이다. 로봇 환경(10)은 일반적으로 맵(200)에 따라 로봇(100)에 의해 주행될 수 있는 일부 타입의 지형과 연관된 공간적 영역을 지칭한다. 예를 들어, 지형은 건물, 거리, 보도, 공원, 골목, 계단, 경사로, 터널 등과 같은 도시 지형, 도로, 들판, 언덕, 산, 동굴 등과 같은 시골 지형, 동굴, 터널 등과 같은 지하 지형 또는 이들의 임의의 조합이다. 로봇(100)은 로봇(100)이 로봇 환경(10) 주위를 이동할 수 있게 하는 본체(150)에 부착된 다리들 및/또는 바퀴들과 같은 보행 기반 구조들을 포함한다. 도 1은 4개의 다리들(103, 104, 106, 108)를 갖는 4족(quadruped) 로봇을 도시하지만, 로봇(100)은 로봇 환경(10)을 주행하는 수단을 제공하는 임의의 수의 다리들 또는 보행 기반 구조들(예를 들어, 2개의 다리들을 갖는 2족 또는 휴머노이드 로봇)을 포함할 수 있다.
[0027] 일부 구현들에서, 로봇(100)은 컴퓨팅 하드웨어(110) 및 적어도 하나의 센서 시스템(120)을 포함한다. 컴퓨팅 하드웨어(110)는 일반적으로 데이터 프로세싱 하드웨어(112) 및 메모리 하드웨어(114)를 포함한다. 컴퓨팅 하드웨어(110)는 로봇 주행 시스템(116)을 제어하도록 구성된다. 로봇 주행 시스템(116)은 로봇(100)을 로봇 환경(10) 주위에서 이동시키기 위해 로봇(100)의 거동 시스템(102)을 동작시킨다. 거동 시스템(102)은 일반적으로 로봇(100)의 거동들을 제어(즉, 실행)하는 것을 담당한다. 예를 들어, 거동 시스템(102)은 상이한 발자국 패턴들, 다리 패턴들, 본체 움직임 패턴들, 또는 비전 시스템 감지 패턴들을 제어한다. 로봇 주행 시스템(116)은 로봇 주행 시스템(116)에 제공된 적어도 하나의 맵(200)에 기초하여 거동 시스템(102)을 동작시킨다.
[0028] 주행 시스템(116)은 로봇(100)의 데이터 프로세싱 하드웨어(112)를 사용하여 거동 시스템(102)을 동작시키기 위한 맵(200)을 제공하기 위해 로봇(100)의 메모리 하드웨어(114)와 통신하도록 구성된다. 일부 예들에서, 메모리 하드웨어(114)는 로봇(100) 상에 로컬로 맵(200)을 저장한다. 다른 예들에서, 맵(200)은 주행 시스템(116)에 의해 원격으로 저장 및/또는 액세스된다. 예를 들어, 주행 시스템(116)은 네트워크(130)를 통해 원격 시스템(140)과 통신한다. 원격 시스템(140)은 원격 데이터 프로세싱 하드웨어(144) 및 원격 메모리 하드웨어(146)와 같은 원격 자원들(142)을 포함하는 서버 또는 클라우드 기반 환경일 수 있다. 일부 구현들에서, 맵(200)은 원격 자원들(142)을 사용하여 원격 시스템(140) 상에서 저장 및/또는 프로세싱되고 네트워크(130)를 통해 로봇(100)의 주행 시스템(116)에 통신된다. 또 다른 예들에서, 맵(200)의 상이한 부분들은 원격으로(예를 들어, 원격 시스템(140)을 통해) 그리고 로컬로(예를 들어, 컴퓨팅 하드웨어(110)를 통해) 프로세싱 및/또는 저장된다.
[0029] 센서 시스템(120)은 하나 이상의 센서들(122, 122a-n)을 포함한다. 센서들(122)은 비전/이미지 센서들, 관성 센서들(예를 들어, IMU(inertial measurement unit)) 및/또는 운동학적 센서들을 포함할 수 있다. 센서들(122)의 일부 예들은 스테레오 카메라, 스캐닝 LIDAR(light-detection and ranging) 센서, 또는 스캐닝 LADAR(laser-detection and ranging) 센서와 같은 카메라를 포함한다. 일부 예들에서, 센서(122)는 센서(122)에 대응하는 감지 범위 또는 영역을 정의하는 대응하는 시야(들) Fv를 갖는다. 예를 들어, 도 1은 로봇(100)에 대한 시야 FV를 도시한다. 각각의 센서(122)는 피봇가능하고 그리고/또는 회전가능하여, 센서(122)는 예를 들어 하나 이상의 축(예를 들어, 지면 G와 관련하여 x-축, y-축 또는 z-축)에 대해 시야 FV를 변경할 수 있다. 일부 구현들에서, 로봇(100)의 본체(150)는 로봇(100) 주위의 모든 방향들에서 센서 데이터(124)를 수집하기 위해 본체(150) 주위에 다수의 센서들(122)을 갖는 센서 시스템(120)을 포함한다. 예를 들어, 도 1에 도시된 4족 로봇은 가슴(122a) 상의 센서(122), 각각의 측면(122n)(오직 하나의 측면만 도시됨) 상의 센서(122), 및 수축가능한 손(122b) 상의 센서(122)를 포함한다. 로봇(100)은 로봇(100) 주위의 로봇 환경(10)에 대한 센서 데이터(124)를 생성하기 위해 센서 시스템(120)의 일부로서 임의의 수의 센서들(122)을 포함할 수 있다.
[0030] 센서(122)로 시야 FV를 조사할 때, 센서 시스템(120)은 시야 FV에 대응하는 센서 데이터(124)를 생성한다. 일부 예들에서, 센서 데이터(124)는 3차원 체적 이미지 센서(122)에 의해 생성된 3차원 체적 포인트 클라우드에 대응하는 이미지 데이터이다. 추가적으로 또는 대안적으로, 로봇(100)이 로봇 환경(10) 주위에서 조작될 때, 센서 시스템(120)은 관성 측정 데이터(예를 들어, IMU에 의해 측정됨)를 포함하는 로봇(100)에 대한 포즈 데이터를 수집한다. 일부 예들에서, 포즈 데이터는 로봇(100)에 대한 운동학적 데이터 및/또는 배향 데이터를 포함한다.
[0031] 로봇 환경(10)과 관련된 이미지 데이터, 포즈 데이터, 관성 데이터, 운동학적 데이터 등과 같이 센서 시스템(120)에 의해 수집된 센서 데이터(124)는 로봇(100)의 컴퓨팅 하드웨어(110)(예를 들어, 데이터 프로세싱 하드웨어(112) 및 메모리 하드웨어(114))에 통신될 수 있다. 일부 예들에서, 센서 시스템(120)은 센서 데이터(124)를 (예를 들어, 원격 자원들(142)의 메모리 하드웨어(146) 또는 메모리 하드웨어(114)에) 수집 및 저장한다. 다른 예들에서, 센서 시스템(120)은 센서 데이터(124)를 실시간으로 수집하고, 원시(즉, 프로세싱되지 않은) 센서 데이터(124)를 저장하지 않고 센서 데이터(124)를 프로세싱한다. 또 다른 예들에서, 컴퓨팅 하드웨어(110) 및/또는 원격 자원들(142)은 프로세싱된 센서 데이터(124) 및 원시 센서 데이터(124) 둘 모두를 저장한다.
[0032] 도 2a 내지 도 2d는 로봇(100) 및/또는 원격 시스템(140)에 의해 생성된 맵들(200, 200a-d)의 예들이다. 각각의 맵(200)은 로봇(100)을 자율적으로 안내하는데 사용되는 환경(예를 들어, 로봇 환경(10))의 표현이다. 로봇(100)(또는 원격 시스템(140))은, 도 1에 도시된 바와 같이 로봇(100)이 로봇 환경(10) 주위에서 조작될 때 센서 시스템(120)의 하나 이상의 비전 센서들(122, 122a-c)에 의해 캡처된 로봇 환경(10)의 이미지 데이터(124)를 수신함으로써 맵(200)을 생성한다. 일부 예들에서, 로봇(100)은 컴퓨팅 하드웨어(110)로 맵(200)을 생성하는 반면, 다른 예들에서, 원격 시스템(140)은 원격 자원들(142)로 맵(200)을 생성한다. 컴퓨팅 하드웨어(110) 또는 원격 시스템(140)이 맵(200)을 생성하면, 맵(200)은 로봇(100)의 거동 시스템(102)을 실행하기 위해 주행 시스템(116)에 통신된다. 여기서, 거동 시스템(102)은 맵(200)에 따라 로봇 환경(10) 내에서 주행하도록 로봇(100)을 제어한다. 맵(200)은 로봇 환경(10)을 주행하는 동일한 로봇(100) 또는 상이한 로봇에 의해 생성될 수 있다.
[0033] 맵(200)의 일부 이점들은 유사한 센서 시스템(120)을 갖는 다른 로봇에 대해 즉시, 반복적으로 및/또는 전송가능하게 사용될 수 있다. 여기서, 맵(200)은 모든 센서 데이터(124)가 수집되면 최종 최적화를 요구하지 않는다. 또한, 로봇(100)은 글로벌 포지셔닝 정보 또는 비콘으로부터의 다른 내비게이션 데이터없이 맵(200)을 사용하여 로봇 환경(10)을 자율적으로 내비게이팅할 수 있다. 각각의 맵(200)은 로봇(100)(또는 원격 시스템(140))의 시스템들에 의해 자동으로 프로세싱되거나 수동으로 프로세싱될 수 있다(예를 들어, 웨이포인트들(210), 에지들(220), 베이슨들(230)(도 2b), 제약들(240)(도 2c) 등)의 편집). 이것은 맵(200)이 추가적인 데이터(예를 들어, 어노테이션들(222))를 포함하거나 조정된 로봇 거동들을 제공하도록(예를 들어, 특징부가 없는 영역들에서 ICP 로컬화를 억제함) 유연할 수 있게 한다. 또한, (예를 들어, 추가, 편집 또는 제거에 의해) 맵(200)의 웨이포인트들(210) 또는 에지들(220)을 수정하는 것은 맵(200)의 수정되지 않은 부분들에 영향을 주지 않고 따라서 품질 제어를 단순화해야 한다.
[0034] 맵(200)은 웨이포인트들(210) 및 웨이포인트들(210) 사이의 연결들을 형성하는 에지들(220)(또한 웨이포인트 에지들로 지칭됨)을 포함한다. 웨이포인트(210)는 로봇(100)이 로봇 환경(10) 내의 특정 장소에서 (예를 들어, 센서 시스템(120)에 따라) 감지한 것에 대한 표현이다. 로봇(100) 및/또는 원격 시스템(140)은 로봇의 센서 시스템(120)에 의해 수집된 이미지 데이터(124)에 기초하여 웨이포인트들(210)을 생성한다. 맵(200)이 웨이포인트(210)에 의해 생성되기 때문에, 맵(200)은 로컬로 일치할 수 있지만(예를 들어, 이웃 웨이포인트들로 인해 영역 내에서 공간적으로 일치함), 전역적으로 정확하고 그리고/또는 일치할 필요는 없다.
[0035] 이미지 데이터(124)를 이용하여, 로봇(100) 및/또는 원격 시스템(140)은 적어도 하나의 웨이포인트 휴리스틱(212)(도 1)(예를 들어, 웨이포인트 알고리즘)을 실행한다. 적어도 하나의 웨이포인트 휴리스틱(212)은 맵(200) 상의 웨이포인트 배치를 트리거하도록 구성된다. 예를 들어, 웨이포인트 휴리스틱(212)은 로봇(100)의 위치에서 이미지 데이터(124) 내의 임계 특징부 검출을 검출하도록 구성된다(예를 들어, 맵(200)를 생성 또는 업데이트 할 때). 웨이포인트 휴리스틱(212)은 로봇(100)이 로봇 환경(10) 주위에서 조작되도록 반복성을 제공하는 신뢰가능한 비전 센서 특징부들로서 기능하는 로봇 환경(10) 내의 특징부들을 식별할 수 있다. 예를 들어, 웨이포인트 휴리스틱(212)은 특징부 인식을 위해 미리 프로그래밍되거나(예를 들어, 저장된 특징부들로 프로그래밍됨) 또는 체적 이미지 데이터(124)의 공간적 클러스터들이 발생하는 특징부들(예를 들어, 방들의 모서리들 또는 벽들의 에지들)을 식별하도록 프로그래밍된다. 웨이포인트 배치를 트리거하는 적어도 하나의 웨이포인트 휴리스틱(212)에 대한 응답으로, 로봇(100) 및/또는 원격 시스템(140)은 맵(200) 상의 웨이포인트(210)를 기록한다. 이러한 웨이포인트 식별 프로세스는 로봇(100)이 영역(예를 들어, 로봇 환경(10))을 통해 수동으로 구동될 때 반복될 수 있다. 일부 예들에서, 로봇(100) 및/또는 원격 시스템(140)은 로봇(100)이 (자신의 센서 시스템(120)을 통해) 이전에 감지한 영역들에 대해 생성된 복수의 맵들(200)을 저장한다.
[0036] 각각의 웨이포인트(210)는 일반적으로 웨이포인트 에지(220)와 연관된다. 보다 구체적으로, 에지(220)는 하나의 웨이포인트(210)(예를 들어, 제1 웨이포인트(210a))가 다른 웨이포인트(210)(예를 들어, 제2 웨이포인트 (210b))와 어떻게 관련되는지를 표시하도록 구성된다. 예를 들어, 에지(220)는 웨이포인트들(210)(예를 들어, 인접한 웨이포인트들(210)) 사이의 위치 관계를 표현한다. 즉, 에지(220)는 2개의 웨이포인트들(210) 사이의 연결부이다(예를 들어, 제1 웨이포인트(210a)와 제2 웨이포인트(210b) 사이의 연결부로서 도 2a에 도시된 에지(220a)). 예를 들어, 에지(220)는 제1 웨이포인트(210a)에서 제2 웨이포인트(210b)까지의 경로(예를 들어, 로봇(100)의 움직임 경로)이다. 일부 예들에서, 각각의 에지(220)는 로봇(100)이 2개의 웨이포인트들(210) 사이에서 에지(220)를 따라 이동하는 방법을 표현하는 포즈 변환을 포함한다. 포즈 변환은 다른 좌표 프레임에 대한 환경 내의 하나의 좌표 프레임의 위치 및/또는 배향을 설명할 수 있다. 일부 구현들에서, 에지(220)는 완전한 3차원 변환(예를 들어, 6개의 숫자들)을 포함한다. 이들 숫자들 중 일부는 예를 들어 데드 레코닝(dead reckoning) 포즈 추정, 비전 기반 추정, 또는 로봇(100)의 운동학 및/또는 관성 측정들에 기초한 다른 추정들과 같은 다양한 추정들을 포함한다.
[0037] 일부 예들에서, 에지(220)는 로봇 환경(10)의 추가 표시/설명을 제공하는 에지(220)와 연관된 어노테이션들(222)을 포함한다. 어노테이션들(222)의 일부 예들은 에지(220)가 계단에 위치되거나 출입구를 가로지른다는 설명 또는 표시를 포함한다. 이러한 어노테이션들(222)은 특히 시각적 정보가 누락되거나 부족할 때(예를 들어, 출입구와 같은 빈 곳)의 조작 동안 로봇(100)을 보조할 수 있다. 일부 구성들에서, 어노테이션들(222)은 방향성 제약들(또한 포즈 제약들로 지칭될 수 있음)을 포함한다. 어노테이션(222)의 방향성 제약은 특정 환경 특징부에서 로봇(100)의 정렬 및/또는 배향(예를 들어, 포즈)을 특정할 수 있다. 예를 들어, 어노테이션(222)은 로봇(100)이 회전하는 것을 제한할 수 있는 계단을 따라 또는 좁은 복도를 따라 주행하기 전에 로봇(100)에 대한 특정 정렬 또는 포즈를 특정한다.
[0038] 일부 구현들에서, 맵(200)의 각각의 웨이포인트(210)는 또한 로봇(100)이 맵(200)을 형성하는 로봇 환경을 감지했을 때 로봇(100)의 센서 시스템(120)에 의해 수집된 데이터에 대응하는 센서 데이터(124)를 포함한다. 여기서, 웨이포인트(210)의 센서 데이터(124)는, 로봇(100)이 맵(200)에 따라 로봇 환경(10)을 주행할 때 수집된 실시간 센서 데이터(124)를 맵(200)의 웨이포인트들(210)에 대해 저장된 센서 데이터(124)와 비교함으로써 로봇(100)이 로컬화할 수 있게 한다. 일부 구성들에서, 로봇(100)이 에지(220)를 따라 (예를 들어, 타겟 웨이포인트(210)에 있을 의도로) 이동한 후, 로봇(100)은 실시간 센서 데이터(124)를 맵(200)(예를 들어, 맵(200)의 의도된 타겟 웨이포인트(210)와 연관된 센서 데이터(124))과 직접 비교함으로써 로컬화하도록 구성된다. 여기서, 맵(200)의 웨이포인트(210)에 대한 최소한의 프로세싱으로 원시 또는 원시에 가까운 센서 데이터 (124)를 저장함으로써, 로봇(100)은 실시간 센서 데이터(124)를 사용하여 로봇(100)이 맵핑된 로봇 환경(10) 내에서 조작될 때 효율적으로 로컬화할 수 있다. 일부 예들에서, ICP(iterative closest points) 알고리즘은 웨이포인트(210)에 대해 로봇 (100)을 로컬화한다.
[0039] 센서 데이터(124)는 또한 맵(200)을 사용하여 로봇 환경(10)을 자율적으로 주행하도록 로봇(100)의 초기화를 허용할 수 있다. 일부 예들에서, 로봇(100)은 초기에 웨이포인트(210)에 대한 로봇(100)의 초기 포즈 P, PI(예를 들어, 도 2a에 도시된 바와 같음)를 정의하는 힌트를 수신한다. 로봇(100)은 이러한 힌트를 자동으로 또는 로봇(100)의 조작자로부터 수신하도록 구성될 수 있다. 여기서, 포즈 P는 로봇(100)의 운동학적 위치 및/또는 방향을 지칭한다. 개개의 웨이포인트(210)에 대한 로봇(100)의 초기 포즈 PI를 이용하여, 로봇(100)은 에지들(220)을 따라 이동하도록 로봇(100)에 지시하는 주행 시스템(116)으로부터의 커맨드들에 따라 맵(200)을 주행한다. 예를 들어, 도 2a의 맵(200a)은 에지(220a-f)를 따라 웨이포인트들(210a-f) 사이를 이동하는 로봇(100)을 도시한다.
[0040] 일부 구성들에서, 맵(200)은 프로세싱되지 않은 맵(202) 및/또는 프로세싱된 맵(204)을 포함한다. 프로세싱되지 않은 맵(202)은 맵(200)의 생성 동안 로봇(100)의 센서 시스템(120)에 의해 수집된 모든 원시 또는 원시에 가까운 센서 데이터(124)를 포함하는 맵(200)이다(예를 들어, 도 2a에서 포인트들 및/또는 포인트 클라우드들로 도시됨). 대조적으로, 프로세싱된 맵(204)은 웨이포인트(210)의 바로 이웃들을 갖는 웨이포인트들(210)에 대한 센서 데이터(124)를 프로세싱한다. 즉, 프로세싱된 맵(204)은 로봇 환경(10) 내의 다수의 웨이포인트들(210)에 대한 데이터와 같은 더 많은 정도의 데이터를 포함할 수 있다. 일부 예들에서, 프로세싱된 맵(204)은 자율 주행에 대한 효과를 증가시키기 위해 웨이포인트들(210) 및 에지들(220) 근처의 잡음을 감소시킨다. 예를 들어, 도 2a의 맵(200a)을 참조하면, 웨이포인트(210a)에 대한 센서 데이터(124)는 이웃 웨이포인트들(210b, 210d)의 모든 센서 데이터(124)와 함께 프로세싱될 것이다. 일부 예들에서, 프로세싱된 맵(204)은 프로세싱된 맵(204)에 대한 시각적 이미지로서 에지(220)에 대응하는 포인트들(예를 들어, 체적 포인트들)을 도시한다. 예를 들어, 주어진 웨이포인트들(210a)에 대해, 프로세싱된 맵(204)(즉, 프로세싱 시스템)을 생성하는 로봇(100) 또는 원격 시스템(140)은 주어진 웨이포인트(210a)에 대해 이웃 웨이포인트들(210b, 210d)을 식별한다. 식별된 이웃 웨이포인트들(210b, 210d)을 이용하여, 주행 시스템(116)은 웨이포인트들(210a, 210b, 210d)에 대응하는 3차원 포인트 클라우드의 3차원 포인트들이 3차원 포인트 클라우드 데이터로 표현된 이미지의 시각적 에지에 대응하는지 여부를 결정한다. 이러한 결정에 기초하여, 주행 시스템(116)은 3차원 포인트 클라우드 데이터에 의해 표현된 이미지의 시각적 에지에 대응하는 3차원 포인트들을 주어진 웨이포인트(210a)와 연관시킨다. 추가적으로 또는 대안적으로, 프로세싱된 맵(204)에 대한 프로세싱은 다수의 우세 포인트들로부터 센서 시스템(120)에 의해 관찰되지 않은 에지(220)를 따라 임의의 센서 데이터(124)를 제거한다.
[0041] 도 2b는 하나 이상의 웨이포인트들(210) 주위의 베이슨 구역들을 사용하는 맵(200b)의 예이다. 여기서, 웨이포인트(210)는 대응하는 베이슨(230)으로 구성된다. 베이슨(230)은 로봇(100)이 ICP 알고리즘을 사용하여 웨이포인트(210)에 대한 움직임을 결정하는 웨이포인트(210) 주위의 지정된 구역(예를 들어, 230으로 라벨링된 점선 원 내의 영역으로서 도 2b에 도시됨)을 지칭한다. ICP 알고리즘을 사용함으로써 로봇(100)은 자신의 위치를 미세 튜닝할 수 있다. 로봇(100)의 위치 L이 대응하는 웨이포인트(210)의 베이슨(230) 외부에 있다고 로봇(100)이 결정할 때, 로봇(100)은 로봇(100)의 움직임을 결정하기 위해 운동학 및/또는 관성 측정들을 사용하도록 구성된다. 도시된 예에서, 로봇(100)이 제1 위치 L1에 있을 때, 로봇(100)은 ICP 알고리즘을 사용하여 로봇(100)의 움직임을 결정한다. 그러나 로봇(100)이 제2 위치 L2에 있을 때, 로봇(100)은 운동학 및/또는 관성 측정들에 따라 로봇(100)의 움직임을 결정한다.
[0042] 일부 예들에서, 웨이포인트(210) 내의 영역은 목표 구역으로 지칭된다. 로봇(100)이 목표 구역 내에 있으면, 로봇(100)은 웨이포인트(210)로 성공적으로 내비게이팅하였다. 웨이포인트(210)로의 성공적인 내비게이션(즉, 목표 구역의 진입) 시에, 로봇(100)은 로봇(100)의 경로를 따라 후속 웨이포인트(210)를 향해 이동하는 것으로 진행할 수 있다.
[0043] 일부 구성들에서, 로컬화의 품질이 불량할 때, 주행 시스템(116)은 맵(200)에 따라 로봇(100)을 자율적으로 안내하는 것을 중단할 수 있다. 이러한 중단은 베이슨(230)에 기초하여 또는 예를 들어 로컬화 임계치(예를 들어, 로봇(100)의 조작자가 로봇(100)을 잃은 것으로 간주할 웨이포인트(210)로부터의 위치 L)에 기초하여 발생할 수 있다. 예를 들어, 로컬화 임계치는 ICP 알고리즘에 기초하여 로컬화를 수행하기 위해 웨이포인트(210)의 범위 밖에 있는 것으로 결정된 웨이포인트(210)로부터의 거리이다.
[0044] 추가적으로 또는 대안적으로, 로봇(100)은 운동학, 관성 측정들 또는 ICP 알고리즘에 따라 내비게이팅하는 동안 글로벌 포지셔닝(예를 들어, GPS(global positioning system) 수신기)을 활용할 수 있다. 일부 예들에서, 로봇(100)은 먼저 맵(200)을 사용하여 로봇(100)에 대한 초기 방향을 (예를 들어, 웨이포인트들(210) 사이의 에지(220)를 따라) 결정하지만 후속적으로 GPS 수신기로부터 로봇(100)에서 수신된 GPS 측정들로 내비게이션을 보완한다(예를 들어, 운동학, 관성 측정들 또는 ICP 알고리즘을 보완한다). 일부 구성들에서, 컴퓨팅 하드웨어(110)는 GPS 측정들을 수신하도록 구성된다(예를 들어, 컴퓨팅 하드웨어(110)는 GPS 수신기로 구성됨). 보조 GPS 시스템은 로봇(100)이 실외 로봇 환경(10)에서 내비게이팅할 때 특히 유용할 수 있다. 로봇(100)은, 로봇(100)이 특정 로봇 환경(10)을 감지할 때(예를 들어, 로봇(100)이 덜 인접한 특징부들을 갖는 실외 환경을 감지할 때) 로봇(100)이 항상 GPS 시스템을 사용하거나 GPS 시스템을 활용하여 내비게이션 입력들을 제공하도록 구성될 수 있다. 예를 들어, 로컬화의 품질이 불량할 때, 로봇(100)은 내비게이션 입력들을 제공하기 위해 GPS 시스템을 활성화 및/또는 사용한다. 일부 구성들에서, GPS 시스템은 로봇(100)의 경로를 추적한다. 이러한 구성들에서, GPS 경로는 주행 시스템(116)에 피드백을 제공하기 위해(예를 들어, 주행 시스템(116)을 사용하여 자율적 내비게이션을 미세 조정하기 위해) 맵(200) 상의 에지들(220)과 비교될 수 있다.
[0045] 도 2c를 참조하면, 일부 구현들에서, 맵(200c)은 맵 제약들(240, 240a-b)을 포함한다. 맵 제약(240)은 로봇(100)이 가상 장애물로 지정되거나 차단된 영역들로 이탈하는 것을 방지하는 가상 장애물을 지칭한다. 다시 말해서, 맵 제약(240)은 로봇(100)이 하나 이상의 에지들(220)에 대응하는 움직임 경로로부터 상당히 이탈하는 것을 방지하는 데 도움이 될 수 있다. 맵 제약(240)은 기록된 경로에 대해 배치되거나, 조작자에 의해 수동으로 추가되거나, 또는 장면 기하구조에 기초하여 미리 컴퓨팅될 수 있다. 예를 들어, 도 2c에서, 에지들(220a-c)은 복도에 대응할 수 있다. 로봇(100)이 복도에 대응하는 웨이포인트들(210a-c) 및 에지들(220a-c)을 갖는 맵(200)을 기록할 때, 로봇(100)은 복도의 어느 한 측에 있는 방들 및/또는 출입구들로 주행하지 않았을 수 있다. 제1 맵 제약(240a) 및 제2 맵 제약(240b)에 의해 개개의 출입구들에서 이들 방들을 차단하는 것이 유리할 수 있다. 따라서, 제1 맵 제약(240a) 및 제2 맵 제약(240b)에 의해, 로봇(100)은 에지들(220a-c)을 따라갈 때 방들로 방황하는 것이 방지되어 로봇(100)이 길을 잃거나 코스를 벗어나는 것이 방지되어야 한다.
[0046] 도 2d는 주행 시스템(116)이 로봇(100)이 따르도록 구성하는 시간 인덱싱된 로봇 궤적(250)을 갖는 맵(200d)(예를 들어, 프로세싱된 맵(204))을 도시한다. 시간 인덱싱된 로봇 궤적(250)은 웨이포인트들(210) 사이의 로봇(100)에 대한 움직임 궤적이다. 시간 인덱싱된 로봇 궤적(250)은 또한 주행 경로(250)로 지칭될 수 있다. 여기서, 도 2d는 로봇(100)이 현재 위치하는 제1 웨이포인트(210a)(웨이포인트(210a) 내의 "X"로 표시됨)로부터 제3 웨이포인트(210c)를 향하는 화살촉에 의한 시간 인덱싱된 로봇 궤적(250)을 도시한다. 시간 인덱싱된 로봇 궤적(250)을 내비게이팅하기 위해, 로봇(100)은 에지들(220a, 220b)을 주행할 것이다.
[0047] 일부 예들에서, 주행 시스템(116)은 로봇(100)의 움직임을 위해 다가오는 웨이포인트들(210)에 걸쳐 시간 인덱싱된 로봇 궤적(250)을 생성한다. 일부 구현들에서, 시간 인덱싱된 로봇 궤적(250)에 대해, 주행 시스템(116)은 각각의 웨이포인트(210)에서 로봇(100)에 대한 배향이 개개의 웨이포인트(210)를 통한 루트의 현재와 다음 에지들(220) 사이의 중간에 있음을 특정한다. 여기서, 시간 t는 궤적으로 인해 각각의 웨이포인트(210)에 도달할 예상 시간 te에 기초할 수 있다. 로봇(100)이 궤적(250)을 주행할 때, 궤적(250)에 대한 시간 t(예를 들어, 제2 웨이포인트(210b)로부터 제3 웨이포인트(210c)까지 주행하는 시간 t2)는 로봇(100)이 각각의 웨이포인트(210)에 도달해야 할 때에 대한 업데이트된 추정들에 기초하여 업데이트될 수 있다. 이러한 구성에서, 웨이포인트(210)에 대응하는 시간 t가 현재 시간에 가까워질 때, 웨이포인트의 시간이 업데이트된다. 일부 예들에서, 현재 시간이 웨이포인트(210)와 연관된 시간을 경과한 후, 주행 시스템(116)은 웨이포인트(210)에 도달된 것으로 간주하고 후속적으로 이를 궤적으로부터 제거한다.
[0048] 추가적으로 또는 대안적으로, 도 2a 및 2c의 맵들(200a, 200c)에 도시된 바와 같이, 에지들(220)과 연관된 어노테이션들(222)은 로봇(100)이 어노테이션(222)의 방향성 제약을 준수하도록 시간 인덱싱된 로봇 궤적과 연관된 웨이포인트들(210)에서 로봇(100)의 배향을 수정할 수 있다. 이러한 방향성 제약들에 기초하여, 로봇(100)의 배향은 또한 궤적 내의 웨이포인트(210)에 대해 추정될 수 있다. 방향성 제약에 비추어 배향이 부정확할 것이라고 배향 추정이 결정할 때, 배향 세그먼트(예를 들어, 턴-인-플레이스(turn-in-place) 세그먼트)가 시간 인덱싱된 로봇 궤적에 추가되어 로봇(100)이 방향성 제약을 준수하는 것을 보장할 수 있다.
[0049] 다시 도 1을 참조하면, 로봇(100)의 거동 시스템(102)은 선택적으로, 하나 이상의 웨이포인트들(210)에 도달하기 위한 목표 조건들 및 제약 조건들을 포함하는 주행 시스템(116)으로부터 경로 설명(206)을 수신할 수 있다. 이러한 목표 조건들 및 제약 조건들에 기초하여, 로봇(100)은 조정된 루트가 목표 및 제약 조건들을 충족하는 한 자신의 루트를 조정할 수 있는 능력으로 경로 설명(206)을 따른다. 조건들의 일부 예들은 타겟 웨이포인트(210)에서 또는 그 주위에서 로봇(100)에 대한 위치 또는 배향을 특정하는 것 또는 타겟 웨이포인트(210)로의 주행을 위한 위치, 배향 및/또는 속도를 특정하는 것을 포함한다.
[0050] 도 3은 맵(200)을 구성하기 위한 방법(300)의 예시적인 흐름도이다. 동작(302)에서, 방법(300)은 로봇 환경(10)에서 조작되는 로봇(100)에 관한 로봇 환경 (10)의 이미지 데이터 (124)를 수신한다. 동작(304)에서, 방법(300)은 적어도 하나의 웨이포인트 휴리스틱(212)을 실행하고, 적어도 하나의 웨이포인트 휴리스틱(212)은 웨이포인트 맵(200) 상에 웨이포인트 배치를 트리거하도록 구성된다. 웨이포인트 배치를 트리거하는 적어도 하나의 웨이포인트 휴리스틱(212)에 대한 응답으로, 동작(306)에서, 방법(300)은 웨이포인트 맵(200) 상의 웨이포인트(210)를 기록한다. 여기서, 웨이포인트(210)는 적어도 하나의 웨이포인트 에지(220)와 연관되고 로봇(100)의 센서 시스템(120)에 의해 획득된 센서 데이터(124)를 포함한다. 적어도 하나의 웨이포인트 에지(220)는 2개의 웨이포인트들(210) 사이에서 이동하는 방법을 표현하는 포즈 변환을 포함할 수 있다.
[0051] 도 4는 웨이포인트 맵(200)에 대해 로봇(100)을 로컬화하는 방법(400)의 예시적인 흐름도이다. 동작(402)에서, 방법(400)은 로봇 환경(10)에서 조작되는 로봇(100)에 관한 로봇 환경 (10)의 이미지 데이터 (124)를 수신한다. 동작(404)에서, 방법(400)은 수신된 이미지 데이터(124)에 기초하여 웨이포인트 맵(200)의 제1 웨이포인트(210a)에 로컬화하도록 구성된 ICP(iterative closest points) 알고리즘을 실행한다. 동작(406)에서, 방법(400)은 웨이포인트 맵(200)의 제1 웨이포인트(210a)로부터 웨이포인트 맵(200)의 제2 웨이포인트(210b)로의 주행 경로(250)를 실행한다. 동작(404)에서, 방법(400)은 수신된 이미지 데이터에 기초하여 ICP 알고리즘에 의해 웨이포인트 맵(200)의 제2 웨이포인트(210b)에 대한 로컬화를 업데이트한다.
[0052] 도 5는 본 문헌에 설명된 시스템들 및 방법들, 예를 들어 거동 시스템(102), 컴퓨팅 하드웨어(110), 주행 시스템(116) 또는 원격 자원들(142)을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스(500)의 개략도이다. 컴퓨팅 디바이스(500)는 랩톱들, 데스크톱들, 워크스테이션들, 개인 휴대 정보 단말들, 서버들, 블레이드 서버들, 메인프레임들 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 표현하도록 의도된다. 여기에 도시된 컴포넌트들, 이들의 연결들 및 관계들, 및 기능들은 오직 예시일 뿐이며, 본 문헌에서 설명 및/또는 청구된 발명들의 구현들을 제한하려는 의도가 아니다.
[0053] 컴퓨팅 디바이스(500)는 프로세서(510), 메모리(520), 저장 디바이스(530), 메모리(520) 및 고속 확장 포트들(550)에 연결되는 고속 인터페이스/제어기(540), 및 저속 버스(570) 및 저장 디바이스(530)에 연결되는 저속 인터페이스/제어기(560)를 포함한다. 컴포넌트들(510, 520, 530, 540, 550, 560) 각각은 다양한 버스들을 사용하여 상호연결되며, 공통 마더보드 상에 또는 적절한 다른 방식들로 장착될 수 있다. 프로세서(510)는, 고속 인터페이스(540)에 커플링된 디스플레이(580)와 같은 외부 입력/출력 디바이스 상의 GUI(graphical user interface)에 대한 그래픽 정보를 디스플레이하기 위해 메모리(520)에 또는 저장 디바이스(530) 상에 저장된 명령들을 포함하는, 컴퓨팅 디바이스(500) 내에서의 실행을 위한 명령들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 메모리의 타입들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(500)은 (예를 들어, 서버 뱅크, 블레이드 서버들의 그룹, 또는 다중 프로세서 시스템으로서) 필요한 동작들의 부분들을 제공하는 각각의 디바이스와 연결될 수 있다.
[0054] 메모리(520)는 컴퓨팅 디바이스(500) 내에 비일시적으로 정보를 저장한다. 메모리(520)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(520)는 컴퓨팅 디바이스(500)에 의한 사용을 위해 일시적 또는 영구적으로 프로그램들(예를 들어, 명령들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하기 위해 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 ROM(read-only memory) / PROM(programmable read-only memory) / EPROM(erasable programmable read-only memory) / EEPROM(electronically erasable programmable read-only memory)(예를 들어, 통상적으로 부트 프로그램들과 같은 펌웨어에 사용됨)을 포함한다(그러나, 이에 제한되지 않음). 휘발성 메모리의 예들은 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), PCM(Phase Change Memory)뿐만 아니라 디스크들 또는 테이프들을 포함한다(그러나, 이에 제한되지 않음).
[0055] 저장 디바이스(530)는 컴퓨팅 디바이스(500)에 대한 대용량 저장을 제공할 수 있다. 일부 구현들에서, 저장 디바이스(530)는 컴퓨터 실행가능 매체이다. 다양한 다른 구현들에서, 저장 디바이스(530)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 포함하는 디바이스들의 어레이일 수 있다. 추가적인 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구현된다. 컴퓨터 프로그램 제품은 전술된 것들과 같이, 실행될 때, 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(520), 저장 디바이스(530) 또는 프로세서(510) 상의 메모리와 같은 컴퓨터 또는 머신 판독가능 매체이다.
[0056] 고속 제어기(540)는 컴퓨팅 디바이스(500)에 대한 대역폭 집약적인 동작들을 관리하는 반면, 저속 제어기(560)는 더 낮은 대역폭 집약적 동작들을 관리한다. 이러한 업무 할당은 단지 예시적이다. 일부 구현들에서, 고속 제어기(540)는 (예를 들어, 그래픽 프로세서 또는 가속기를 통해) 메모리(520), 디스플레이(580)에 그리고 다양한 확장 카드들(미도시)를 수용할 수 있는 고속 확장 포트들(550)에 커플링된다. 일부 구현들에서, 저속 제어기(560)는 저장 디바이스(530) 및 저속 확장 포트(590)에 커플링된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(590)는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스들, 또는 예를 들어, 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 커플링될 수 있다.
[0057] 컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 이는, 표준 서버(500a)로서 또는 그러한 서버들(500a)의 그룹에서 여러번, 랩톱 컴퓨터(500b)로서 또는 랙 서버 시스템(500c)의 일부로서 구현될 수 있다.
[0058] 본원에 설명된 시스템들 및 기술들의 다양한 구현들은 디지털 전자 및/또는 광학 회로부, 집적 회로부, 특별히 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 그에 데이터 및 명령들을 송신하도록 커플링된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그래밍가능 프로세서를 포함하는 프로그래밍가능 시스템 상에서 실행가능한 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램들로 구현을 포함할 수 있다.
[0059] 이러한 컴퓨터 프로그램들(또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로 공지됨)은 프로그래밍가능한 프로세서에 대한 머신 명령들을 포함하고, 하이 레벨 절차 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에 사용되는 바와 같이, "머신 판독가능 매체” 및 "컴퓨터 판독가능 매체"라는 용어들은 머신 판독가능 신호로서 머신 명령들을 수신하는 머신 판독가능 매체를 포함하는, 머신 명령들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, PLD(Programmable Logic Device)들)를 지칭한다. "머신 판독가능 신호"라는 용어는 머신 명령들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하기 위해 사용되는 임의의 신호를 지칭한다.
[0060] 본 명세서에서 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능 프로세서들에 의해 수행될 수 있다. 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 로직 회로부에 의해 프로세스들 및 로직 흐름들이 또한 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은 예시의 방식으로, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령들을 수행하기 위한 프로세서 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어, 자기, 자기 광학 디스크들 또는 광학 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나 또는 둘 모두를 위해 동작가능하게 커플링될 것이다. 그러나, 컴퓨터는 이러한 디바이스들을 가질 필요가 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체들은, 예를 들어, 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 착탈식 디스크들; 자기-광학 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
[0061] 사용자와의 상호작용을 제공하기 위해, 본 개시의 하나 이상의 양상들은 디스플레이 디바이스, 예를 들어, 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube), LCD(liquid crystal display) 모니터 또는 터치 스크린, 및 선택적으로 키보드 및 포인팅 디바이스, 예를 들어, 사용자가 컴퓨터에 입력을 제공할 수 있도록 하는 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 제공하기 위해 사용될 수 있는데: 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 센서 피드백, 예를 들어, 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 그로부터 문서들을 수신함으로써 사용자와 상호작용할 수 있다.
[0062] 다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 개시의 사상 및 범위를 벗어나지 않고 다양한 수정들이 행해질 수 있음이 이해될 것이다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 존재한다.

Claims (22)

  1. 다리를 갖는 로봇으로서,
    본체;
    오른쪽 앞 다리;
    오른쪽 뒷 다리;
    왼쪽 앞 다리;
    왼쪽 뒷 다리;
    상기 본체 상에 적어도 부분적으로 배치된 비전 시스템 ― 상기 비전 시스템은:
    상기 오른쪽 앞 다리와 상기 오른쪽 뒷 다리 사이에 위치되고 그리고 상기 본체의 우측의 길이를 따라 수평으로 장착되는 제1 이미지 센서 및 제2 이미지 센서;
    상기 왼쪽 앞 다리와 상기 왼쪽 뒷 다리 사이에 위치되고 그리고 상기 본체의 좌측의 길이를 따라 수평으로 장착되는 제3 이미지 센서 및 제4 이미지 센서; 및
    상기 본체의 전방 단부 상에서 상기 오른쪽 앞 다리와 상기 왼쪽 앞 다리 사이에 위치되는 하나 이상의 전방 이미지 센서들 ― 상기 하나 이상의 전방 이미지 센서들은 상기 본체의 전방 단부를 따라 연장됨 ―;
    을 포함하고,
    상기 비전 시스템은 상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 상기 제4 이미지 센서, 및 상기 하나 이상의 전방 이미지 센서들로부터 캡처되는 이미지 데이터 및 포즈 데이터를 포함하는 센서 데이터를 획득하도록 구성됨 ―; 및
    환경에 대해 상기 다리를 갖는 로봇을 조작하기 위해 상기 오른쪽 앞 다리, 상기 오른쪽 뒷 다리, 상기 왼쪽 앞 다리, 또는 상기 왼쪽 뒷 다리 중 적어도 하나를 제어하기 위한 맵을 생성하도록 상기 센서 데이터를 프로세싱하도록 구성된 컴퓨팅 시스템
    을 포함하는,
    다리를 갖는 로봇.
  2. 제1 항에 있어서,
    상기 제1 이미지 센서 및 상기 제2 이미지 센서는 서로 상이한 타입들의 이미지 센서들이고, 상기 제3 이미지 센서 및 상기 제4 이미지 센서는 서로 상이한 타입들의 이미지 센서들인,
    다리를 갖는 로봇.
  3. 제1 항에 있어서,
    제5 이미지 센서가 상기 오른쪽 앞 다리와 상기 오른쪽 뒷 다리 사이에 위치하거나 또는 상기 왼쪽 앞 다리와 상기 왼쪽 뒷 다리 사이에 위치하는,
    다리를 갖는 로봇.
  4. 제1 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 또는 상기 제4 이미지 센서 중 적어도 하나는 3차원 체적 이미지 센서를 포함하는,
    다리를 갖는 로봇.
  5. 제1 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 및 상기 제4 이미지 센서 각각은 상기 본체의 각 측면 상에 상기 본체의 길이를 따라 연장되는 종축을 갖는 하우징을 갖는,
    다리를 갖는 로봇.
  6. 제1 항에 있어서,
    상기 하나 이상의 전방 이미지 센서들은 수직으로 장착되고 그리고 상기 본체의 상기 전방 단부의 길이를 따라 연장되는,
    다리를 갖는 로봇.
  7. 제1 항에 있어서,
    상기 하나 이상의 전방 이미지 센서들은 상기 오른쪽 앞 다리와 상기 왼쪽 앞 다리 사이에 위치된 세 개의 이미지 센서들을 포함하는,
    다리를 갖는 로봇.
  8. 제1 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 또는 상기 제4 이미지 센서 중 적어도 하나는 스테레오 카메라를 포함하는,
    다리를 갖는 로봇.
  9. 제1 항에 있어서,
    상기 비전 시스템은 상기 본체에 커플링된 팔 상에 배치되는 이동식 이미지 센서를 더 포함하는,
    다리를 갖는 로봇.
  10. 제1 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 상기 제4 이미지 센서, 및 상기 하나 이상의 전방 이미지 센서들의 각각의 이미지 센서는 3차원 포인트 클라우드 데이터를 캡처하도록 구성되는,
    다리를 갖는 로봇.
  11. 제1 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 상기 제4 이미지 센서, 및 상기 하나 이상의 전방 이미지 센서들은 상기 본체에 대한 모든 측면 방향들에서의 데이터를 집합적으로 수집하는,
    다리를 갖는 로봇.
  12. 방법으로서,
    데이터 프로세싱 하드웨어에서, 다리를 갖는 로봇의 비전 시스템으로부터 센서 데이터를 수신하는 단계 ― 상기 다리를 갖는 로봇은:
    본체;
    오른쪽 앞 다리;
    오른쪽 뒷 다리;
    왼쪽 앞 다리;
    왼쪽 뒷 다리; 및
    상기 본체 상에 적어도 부분적으로 배치된 상기 비전 시스템 ― 상기 비전 시스템은:
    상기 오른쪽 앞 다리와 상기 오른쪽 뒷 다리 사이에 위치되고 그리고 상기 본체의 우측의 길이를 따라 수평으로 장착되는 제1 이미지 센서 및 제2 이미지 센서;
    상기 왼쪽 앞 다리와 상기 왼쪽 뒷 다리 사이에 위치되고 그리고 상기 본체의 좌측의 길이를 따라 수평으로 장착되는 제3 이미지 센서 및 제4 이미지 센서; 및
    상기 본체의 전방 단부 상에서 상기 오른쪽 앞 다리와 상기 왼쪽 앞 다리 사이에 위치되는 하나 이상의 전방 이미지 센서들 ― 상기 하나 이상의 전방 이미지 센서들은 상기 본체의 전방 단부를 따라 연장됨 ―
    을 포함하고,
    상기 비전 시스템은 상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 상기 제4 이미지 센서, 및 상기 하나 이상의 전방 이미지 센서들로부터 캡처되는 이미지 데이터 및 포즈 데이터를 포함하는 상기 센서 데이터를 획득하도록 구성됨 ―;
    환경에 대해 상기 다리를 갖는 로봇을 조작하기 위해 상기 오른쪽 앞 다리, 상기 오른쪽 뒷 다리, 상기 왼쪽 앞 다리, 또는 상기 왼쪽 뒷 다리 중 적어도 하나를 제어하기 위한 맵을 생성하도록 상기 센서 데이터를 프로세싱하는 단계; 및
    상기 맵을 상기 다리를 갖는 로봇의 드라이브 시스템에 통신하는 단계 ― 상기 드라이브 시스템은 상기 맵을 사용하여 상기 환경에 대해 상기 다리를 갖는 로봇을 조작하도록 구성됨 ―
    를 포함하는,
    방법.
  13. 제12 항에 있어서,
    상기 제1 이미지 센서 및 상기 제2 이미지 센서는 서로 상이한 타입들의 이미지 센서들이고, 상기 제3 이미지 센서 및 상기 제4 이미지 센서는 서로 상이한 타입들의 이미지 센서들인,
    방법.
  14. 제12 항에 있어서,
    제5 이미지 센서가 상기 오른쪽 앞 다리와 상기 오른쪽 뒷 다리 사이에 위치하거나 또는 상기 왼쪽 앞 다리와 상기 왼쪽 뒷 다리 사이에 위치하는,
    방법.
  15. 제12 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 또는 상기 제4 이미지 센서 중 적어도 하나는 3차원 체적 이미지 센서를 포함하는,
    방법.
  16. 제12 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 및 상기 제4 이미지 센서 각각은 상기 본체의 각 측면 상에 상기 본체의 길이를 따라 연장되는 종축을 갖는 하우징을 갖는,
    방법.
  17. 제12 항에 있어서,
    상기 하나 이상의 전방 이미지 센서들은 수직으로 장착되고 그리고 상기 본체의 상기 전방 단부의 높이를 따라 연장되는,
    방법.
  18. 제12 항에 있어서,
    상기 하나 이상의 전방 이미지 센서들은 상기 오른쪽 앞 다리와 상기 왼쪽 앞 다리 사이에 위치된 세 개의 이미지 센서들을 포함하는,
    방법.
  19. 제12 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 또는 상기 제4 이미지 센서 중 적어도 하나는 스테레오 카메라를 포함하는,
    방법.
  20. 제12 항에 있어서,
    상기 비전 시스템은 상기 본체에 커플링된 팔 상에 배치되는 이동식 이미지 센서를 더 포함하는,
    방법.
  21. 제12 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 상기 제4 이미지 센서, 및 상기 하나 이상의 전방 이미지 센서들의 각각의 이미지 센서는 3차원 포인트 클라우드 데이터를 캡처하도록 구성되는,
    방법.
  22. 제12 항에 있어서,
    상기 제1 이미지 센서, 상기 제2 이미지 센서, 상기 제3 이미지 센서, 상기 제4 이미지 센서, 및 상기 하나 이상의 전방 이미지 센서들은 상기 본체에 대한 모든 측면 방향들에서의 데이터를 집합적으로 수집하는,
    방법.
KR1020237006525A 2018-10-12 2019-08-23 웨이포인트 매칭을 이용한 자율적 맵 주행 KR102648771B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862745013P 2018-10-12 2018-10-12
US62/745,013 2018-10-12
US16/295,592 2019-03-07
US16/295,592 US11747825B2 (en) 2018-10-12 2019-03-07 Autonomous map traversal with waypoint matching
KR1020217014063A KR102504729B1 (ko) 2018-10-12 2019-08-23 웨이포인트 매칭을 이용한 자율적 맵 주행
PCT/US2019/047804 WO2020076422A2 (en) 2018-10-12 2019-08-23 Autonomous map traversal with waypoint matching

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217014063A Division KR102504729B1 (ko) 2018-10-12 2019-08-23 웨이포인트 매칭을 이용한 자율적 맵 주행

Publications (2)

Publication Number Publication Date
KR20230035139A true KR20230035139A (ko) 2023-03-10
KR102648771B1 KR102648771B1 (ko) 2024-03-18

Family

ID=70161286

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237006525A KR102648771B1 (ko) 2018-10-12 2019-08-23 웨이포인트 매칭을 이용한 자율적 맵 주행
KR1020217014063A KR102504729B1 (ko) 2018-10-12 2019-08-23 웨이포인트 매칭을 이용한 자율적 맵 주행

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217014063A KR102504729B1 (ko) 2018-10-12 2019-08-23 웨이포인트 매칭을 이용한 자율적 맵 주행

Country Status (6)

Country Link
US (3) US11747825B2 (ko)
EP (1) EP3864484A2 (ko)
JP (1) JP7259020B2 (ko)
KR (2) KR102648771B1 (ko)
CN (1) CN112840285A (ko)
WO (1) WO2020076422A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11747825B2 (en) 2018-10-12 2023-09-05 Boston Dynamics, Inc. Autonomous map traversal with waypoint matching
EP4010659A1 (en) 2019-08-06 2022-06-15 Boston Dynamics, Inc. Intermediate waypoint generator
US11712802B2 (en) * 2020-04-20 2023-08-01 Boston Dynamics, Inc. Construction constrained motion primitives from robot maps
US11927961B2 (en) * 2020-04-20 2024-03-12 Boston Dynamics, Inc. Constrained robot autonomy language
US11681304B2 (en) * 2020-09-01 2023-06-20 International Business Machines Corporation Emergency response system
CN112097744B (zh) * 2020-09-16 2022-08-30 上海遥程信息科技有限公司 一种竖立面的图像扫描方法、装置、设备和存储介质
CN113741457A (zh) * 2021-09-03 2021-12-03 上海擎朗智能科技有限公司 地图构建和使用方法、机器人及存储介质
US20230157506A1 (en) * 2021-11-22 2023-05-25 Irobot Corporation Trajectory-based localization and mapping
US20230211842A1 (en) * 2021-12-31 2023-07-06 Hyundai Motor Company Autonomous walking vehicle
CN116188702B (zh) * 2023-04-28 2023-07-25 北京德塔精要信息技术有限公司 一种相机漫游路线的搭建方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007051972A1 (en) * 2005-10-31 2007-05-10 Qinetiq Limited Navigation system
US20090125225A1 (en) * 2004-03-24 2009-05-14 Bbn Technologies Corp Vehicle routing and path planning
KR20130020107A (ko) * 2011-08-19 2013-02-27 박재형 차륜구동과 4족보행을 동시에 취할 수 있는 하이브리드형 구동 로봇의 주행 알고리듬과 그 로봇.
US9717387B1 (en) * 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
CN108052103A (zh) * 2017-12-13 2018-05-18 中国矿业大学 基于深度惯性里程计的巡检机器人地下空间同时定位和地图构建方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3467136B2 (ja) 1995-11-07 2003-11-17 富士重工業株式会社 自律走行車の走行制御装置
JP3994950B2 (ja) * 2003-09-19 2007-10-24 ソニー株式会社 環境認識装置及び方法、経路計画装置及び方法、並びにロボット装置
JP4479372B2 (ja) 2004-06-25 2010-06-09 ソニー株式会社 環境地図作成方法、環境地図作成装置、及び移動型ロボット装置
US7444237B2 (en) 2005-01-26 2008-10-28 Fujitsu Limited Planning a journey that includes waypoints
US8843244B2 (en) 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
US20100066587A1 (en) 2006-07-14 2010-03-18 Brian Masao Yamauchi Method and System for Controlling a Remote Vehicle
CA2602879A1 (en) 2006-09-14 2008-03-14 University Of South Florida System and method for real-time travel path prediction and automatic incident alerts
JP2008072963A (ja) 2006-09-21 2008-04-03 Yanmar Co Ltd 農用作業車
US8930058B1 (en) 2008-10-20 2015-01-06 The United States Of America As Represented By The Secretary Of The Navy System and method for controlling a vehicle traveling along a path
KR101581197B1 (ko) * 2009-01-06 2015-12-30 삼성전자주식회사 로봇 및 그 제어방법
US8918209B2 (en) 2010-05-20 2014-12-23 Irobot Corporation Mobile human interface robot
US9014848B2 (en) * 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
US9123058B2 (en) 2011-11-16 2015-09-01 Flextronics Ap, Llc Parking space finder based on parking meter data
KR101772977B1 (ko) * 2010-10-07 2017-08-31 삼성전자주식회사 이동 로봇 및 그 지도 작성 방법
US9146558B2 (en) * 2010-11-30 2015-09-29 Irobot Corporation Mobile robot and method of operating thereof
US9323250B2 (en) * 2011-01-28 2016-04-26 Intouch Technologies, Inc. Time-dependent navigation of telepresence robots
US9463574B2 (en) 2012-03-01 2016-10-11 Irobot Corporation Mobile inspection robot
JP2013250795A (ja) 2012-05-31 2013-12-12 Aisin Seiki Co Ltd 移動体誘導装置及び移動体誘導方法
JP5886502B2 (ja) 2012-12-20 2016-03-16 トヨタ自動車株式会社 移動体制御装置、移動体制御方法及び制御プログラム
US9483055B2 (en) 2012-12-28 2016-11-01 Irobot Corporation Autonomous coverage robot
CN104769962B (zh) * 2013-01-18 2019-03-12 艾罗伯特公司 包括移动机器人的环境管理系统以及其使用方法
US8849494B1 (en) 2013-03-15 2014-09-30 Google Inc. Data selection by an autonomous vehicle for trajectory modification
CN203371557U (zh) 2013-07-19 2014-01-01 上海化学工业区公共管廊有限公司 机器人视频系统
ES2617307T3 (es) * 2014-04-14 2017-06-16 Softbank Robotics Europe Un procedimiento de localización de un robot en un plano de localización
JP2016081404A (ja) 2014-10-21 2016-05-16 株式会社日立製作所 自律移動装置
US20200409382A1 (en) 2014-11-10 2020-12-31 Carnegie Mellon University Intelligent cleaning robot
US9352470B1 (en) 2014-11-11 2016-05-31 Google Inc. Yaw slip handling in a robotic device
JP6481347B2 (ja) 2014-11-28 2019-03-13 村田機械株式会社 移動量推定装置、自律移動体、及び移動量の推定方法
CN104536445B (zh) * 2014-12-19 2018-07-03 深圳先进技术研究院 移动导航方法和系统
US9586316B1 (en) 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
WO2017090108A1 (ja) 2015-11-25 2017-06-01 株式会社日立製作所 棚配置システム、搬送ロボット及び棚配置方法
US9868210B1 (en) 2015-12-30 2018-01-16 Google Inc. Methods and systems for planning a body position of a robotic device
EP3403146A4 (en) * 2016-01-15 2019-08-21 iRobot Corporation AUTONOMOUS MONITORING ROBOT SYSTEMS
CN106371445B (zh) * 2016-11-17 2019-05-14 浙江大学 一种基于拓扑地图的无人车规划控制方法
US9933781B1 (en) 2016-11-23 2018-04-03 Denso International America, Inc. Data-driven planning for automated driving
US10296012B2 (en) 2016-12-21 2019-05-21 X Development Llc Pre-computation of kinematically feasible roadmaps
DE102017214746A1 (de) 2017-08-23 2019-02-28 Neusoft Technology Solutions Gmbh Verfahren zur Erzeugung alternativer Routenvorschläge
US10754339B2 (en) 2017-09-11 2020-08-25 Baidu Usa Llc Dynamic programming and quadratic programming based decision and planning for autonomous driving vehicles
US10606269B2 (en) 2017-12-19 2020-03-31 X Development Llc Semantic obstacle recognition for path planning
EP3776447A1 (en) 2018-04-12 2021-02-17 Uber Technologies, Inc. Autonomous vehicle control using service pools across different service entities
US11747825B2 (en) 2018-10-12 2023-09-05 Boston Dynamics, Inc. Autonomous map traversal with waypoint matching
EP4010659A1 (en) 2019-08-06 2022-06-15 Boston Dynamics, Inc. Intermediate waypoint generator
CN211956515U (zh) 2020-04-30 2020-11-17 上海允登信息科技有限公司 一种数据中心it设备智能资产盘点系统
CN111604916B (zh) 2020-04-30 2024-04-02 杭州优云科技有限公司 一种机房it设备故障机柜u位定位系统及方法
CN112034861A (zh) 2020-09-15 2020-12-04 航天科工智能机器人有限责任公司 一种仿生自主机器人自主避障系统及其避障方法
US20220390954A1 (en) 2021-06-04 2022-12-08 Boston Dynamics, Inc. Topology Processing for Waypoint-based Navigation Maps
US20220388170A1 (en) 2021-06-04 2022-12-08 Boston Dynamics, Inc. Alternate Route Finding for Waypoint-based Navigation Maps
US20220390950A1 (en) 2021-06-04 2022-12-08 Boston Dynamics, Inc. Directed exploration for navigation in dynamic environments
CN113633219B (zh) * 2021-07-23 2022-12-20 美智纵横科技有限责任公司 回充路径确定方法、装置、设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090125225A1 (en) * 2004-03-24 2009-05-14 Bbn Technologies Corp Vehicle routing and path planning
WO2007051972A1 (en) * 2005-10-31 2007-05-10 Qinetiq Limited Navigation system
KR20130020107A (ko) * 2011-08-19 2013-02-27 박재형 차륜구동과 4족보행을 동시에 취할 수 있는 하이브리드형 구동 로봇의 주행 알고리듬과 그 로봇.
US9717387B1 (en) * 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
CN108052103A (zh) * 2017-12-13 2018-05-18 中国矿业大学 基于深度惯性里程计的巡检机器人地下空间同时定位和地图构建方法

Also Published As

Publication number Publication date
WO2020076422A3 (en) 2020-05-14
KR102648771B1 (ko) 2024-03-18
US20230359220A1 (en) 2023-11-09
EP3864484A2 (en) 2021-08-18
JP2022511359A (ja) 2022-01-31
KR102504729B1 (ko) 2023-03-02
US20210141389A1 (en) 2021-05-13
JP7259020B2 (ja) 2023-04-17
US20200117214A1 (en) 2020-04-16
US11747825B2 (en) 2023-09-05
KR20210058998A (ko) 2021-05-24
CN112840285A (zh) 2021-05-25
WO2020076422A2 (en) 2020-04-16
US11656630B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
KR102504729B1 (ko) 웨이포인트 매칭을 이용한 자율적 맵 주행
US20200108499A1 (en) Localization and Mapping Using Physical Features
US8271132B2 (en) System and method for seamless task-directed autonomy for robots
US11340620B2 (en) Navigating a mobile robot
US20220390950A1 (en) Directed exploration for navigation in dynamic environments
US20230321830A1 (en) Construction constrained motion primitives from robot maps
Al-Mutib et al. Stereo vision SLAM based indoor autonomous mobile robot navigation
Roggeman et al. Embedded vision-based localization and model predictive control for autonomous exploration
US20220196410A1 (en) Vehicle navigation
Chestnutt et al. Interactive control of humanoid navigation
Meedendorp Path Planning and Path Following for an Autonomous GPR Survey Robot
Al-Jarrah Developing 3D model for mobile robot environment using mono-vision system
Ortega-Palacios et al. A Review of Indoor Navigation Systems for a Bipedal Robot: Preliminary Results.
Liu et al. Perspective Of Vision, Motion Planning, And Motion Control for Quadruped Robots
Veerajagadheswar et al. An Autonomous Descending-Stair Cleaning Robot with RGB-D based Detection, Approaching, and Area coverage Process
Mattar et al. A survey: Intelligent based mobile robots stereo vision maps synthesis and learning methodologies
Ferrin Autonomous Goal-Based Mapping and Navigation Using a Ground Robot
CN115668088A (zh) 受约束机器人自主语言
Liu Mobile Robot Manipulator System Design for Localization and Mapping in Cluttered Environments
Gowtham et al. Autonomous Robotic Exploration and Navigation System using Tri-layered Mapping and Geometrical Path Planning Techniques
Hsu et al. Using a Robot for Indoor Navigation and Door Opening Control Based on Image Processing
Miller Algoritmos de navegación autónoma para robots móviles basados en tecnología LiDAR
Yan Simulation, Control and Path Planning for Articulated Unmanned Ground Vehicles
Schaerer Practical visual odometry for small embedded systems
MacKenzie et al. Design and Evaluation of a Self-Contained Collaborative Autonomy Unit for UGVs

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant