KR20220078563A - 중간 웨이포인트 생성기 - Google Patents

중간 웨이포인트 생성기 Download PDF

Info

Publication number
KR20220078563A
KR20220078563A KR1020227007114A KR20227007114A KR20220078563A KR 20220078563 A KR20220078563 A KR 20220078563A KR 1020227007114 A KR1020227007114 A KR 1020227007114A KR 20227007114 A KR20227007114 A KR 20227007114A KR 20220078563 A KR20220078563 A KR 20220078563A
Authority
KR
South Korea
Prior art keywords
yaw
robot
graph
map
generating
Prior art date
Application number
KR1020227007114A
Other languages
English (en)
Inventor
지나 크리스틴 페이
알프레드 리지
Original Assignee
보스턴 다이나믹스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 보스턴 다이나믹스, 인크. filed Critical 보스턴 다이나믹스, 인크.
Publication of KR20220078563A publication Critical patent/KR20220078563A/ko

Links

Images

Classifications

    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/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
    • 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/0248Control 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 in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • 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
    • 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/40519Motion, trajectory planning
    • G05D2201/0217

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Manipulator (AREA)
  • Navigation (AREA)

Abstract

로봇(10)의 항행 시스템(100)에 대한 중간 웨이포인트들(310)을 생성하기 위한 방법은 항행 루트(112)를 수신하는 단계를 포함한다. 항행 루트는 시작 위치(113)에서 시작하고 목적지 위치(114)에서 종료되는 일련의 고수준 웨이포인트들(210)을 포함하고, 로봇이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타내는 고수준 항행 데이터(50)에 기초한다. 그 방법은 또한 이미지 센서(31)로부터 로봇 주위의 환경(8)의 이미지 데이터(17)를 수신하는 단계, 및 이미지 데이터에 기초하여 적어도 하나의 중간 웨이포인트를 생성하는 단계를 포함한다. 그 방법은 또한 적어도 하나의 중간 웨이포인트를 항행 루트의 일련의 고수준 웨이포인트들에 추가하는 단계, 및 시작 위치로부터 일련의 고수준 웨이포인트들 및 적어도 하나의 중간 웨이포인트를 따라 목적지 위치를 향해 로봇을 항행하는 단계를 포함한다.

Description

중간 웨이포인트 생성기
[0001] 본 개시는 제약들, 특히 지형에 의해 부과된 제약들의 존재 하에서 중간 웨이포인트들(intermediate waypoints)을 생성하는 것에 관한 것이다.
[0002] 로봇 디바이스들(robot devices)은 다양한 작업들 또는 기능들을 수행하기 위해 제약된 환경들을 항행(navigating)하는 데 점점 더 많이 사용되고 있다. 이러한 로봇 디바이스들은 종종 장애물들과 접촉하거나 교착되거나 갇히지 않으면서 이러한 제약된 환경들을 항행할 필요가 있다. 이러한 로봇 디바이스들이 보다 보편화됨에 따라, 목적지까지 성공적으로 항행하면서 장애물들과의 접촉을 회피하는 실시간 항행(real-time navigation) 및 루트 계획(route planning)에 대한 필요성이 존재한다.
[0003] 본 개시의 일 양태는 로봇의 항행 시스템에 대한 중간 웨이포인트들을 생성하기 위한 방법을 제공한다. 그 방법은, 로봇의 데이터 처리 하드웨어에서, 항행 루트를 수신하는 단계를 포함한다. 항행 루트는 시작 위치에서 시작하고 목적지 위치에서 종료되는 일련의 고수준 웨이포인트들을 포함하고, 고수준 항행 데이터에 기초한다. 고수준 항행 데이터는 로봇이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타낸다. 그 방법은 또한, 데이터 처리 하드웨어에서, 이미지 센서로부터 로봇 주위의 환경의 이미지 데이터를 수신하는 단계를 포함한다. 그 방법은 또한, 데이터 처리 하드웨어에 의해, 이미지 데이터에 기초하여 적어도 하나의 중간 웨이포인트를 생성하는 단계를 포함한다. 그 방법은 또한, 데이터 처리 하드웨어에 의해, 적어도 하나의 중간 웨이포인트를 항행 루트의 일련의 고수준 웨이포인트들에 추가하는 단계, 및 데이터 처리 하드웨어에 의해, 시작 위치로부터 일련의 고수준 웨이포인트들 및 적어도 하나의 중간 웨이포인트를 따라 목적지 위치를 향해 로봇을 항행하는 단계를 포함한다.
[0004] 본 개시의 구현예들은 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 각각의 고수준 웨이포인트 및 각각의 중간 웨이포인트는 평면 상의 포지션을 표시하는 2 개의 좌표들, 요 값 및 시간 값을 포함한다. 시간 값은 로봇이 각각의 웨이포인트를 항행하는 데 걸리는 시간의 추정 양을 표시한다. 일부 예들에서, 그 방법은, 데이터 처리 하드웨어에 의해, 항행 루트 상의 일련의 고수준 웨이포인트들 각각을 유지하는 단계를 더 포함한다. 그 방법은 또한, 데이터 처리 하드웨어에서, 몸체 장애물 맵을 수신하는 단계를 포함할 수 있다. 몸체 장애물 맵은 로봇의 몸체가 횡단할 수 없는 장애물들의 맵을 포함한다. 추가적으로, 적어도 하나의 중간 웨이포인트를 생성하는 단계는 몸체 장애물 맵에 기초하여 희소 그래프를 생성하는 단계를 포함할 수 있다. 희소 그래프는 노드들 및 에지들의 리스트를 포함한다. 노드들 및 에지들은 로봇이 환경에서 주행할 수 있는 경로들을 나타낸다. 그 방법은 또한, 노드들의 리스트로부터의 제1 노드로부터 노드들의 리스트로부터의 제2 노드까지의 대략적 경로를 계획하는 단계를 포함할 수 있다. 제1 노드 및 제2 노드 각각은 환경 내의 공간을 나타낸다. 그 방법은 또한, 이미지 센서에 의한 가시선이 상실되는, 대략적 경로를 따른 지점을 결정하는 단계, 및 가시선이 상실된 지점에 적어도 하나의 중간 웨이포인트 중 하나를 생성하는 단계를 포함할 수 있다.
[0005] 일부 구현예들에서, 희소 그래프를 생성하는 단계는 몸체 장애물 맵에 기초하여 전체 구성 공간 맵을 생성하는 단계를 포함한다. 전체 구성 공간 맵은 요소들의 2차원 그리드를 포함하고, 그리드의 각 요소는 환경의 공간을 나타내고, 전체 구성 공간 맵의 각 요소는 요 구성들의 각 세트를 포함한다. 각각의 요 구성은 유효하거나 무효한 것으로 분류될 수 있으며, 유효한 요 구성은 각각의 요소와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전한 로봇의 요 구성을 나타내고, 무효한 요 구성은 각각의 요소와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전하지 않은 로봇의 요 구성을 나타낸다. 그 방법은 또한, 전체 구성 공간 맵으로부터 압축된 구성 공간 맵을 생성하는 단계를 포함할 수 있다. 압축된 구성 공간 맵은 요소들의 제2 2차원 그리드를 포함하고, 제2 그리드의 각 요소는 환경의 공간을 나타낸다. 제2 그리드의 각 요소는 또한 (i) 요 충돌 구역, (ii) 요 자유 구역, 또는 (iii) 요 제약 구역 중 하나로 분류된다. 일부 예들에서, 그 방법은 압축된 구성 공간 맵으로부터 희소 그래프를 생성하는 단계를 포함한다.
[0006] 선택적으로, 제1 노드로부터 제2 노드까지의 대략적 경로를 계획하는 단계는 압축된 구성 공간 맵으로부터 밀집 그래프를 생성하는 단계를 포함한다. 밀집 그래프는 요 자유 구역으로 분류된 요소들을 포함한다. 그 방법은 또한, 희소 그래프로부터의 에지들을 밀집 그래프로부터의 요소들과 링크연결하는 단계를 포함할 수 있다. 일부 구현예들에서, 에지들을 밀집 그래프로부터의 요소들과 링크연결하는 단계는 희소 그래프와 밀집 그래프를 조합하여 최종 그래프를 생성하는 단계를 포함한다. 일부 예들에서, 그 방법은 또한 최종 그래프에 대해 A* 탐색 알고리즘을 실행하는 단계를 포함한다.
[0007] 일부 예들에서, 희소 그래프를 생성하는 단계는 복수의 보로노이 셀들을 압축된 구성 공간 맵 상에 오버레이하는 단계를 더 포함하며, 각각의 보로노이 셀은 희소 그래프에서 요 제약 구역으로 분류된다. 각각의 보로노이 셀은 요 충돌 구역으로 분류된 적어도 2 개의 요소들로부터 등거리에 있다. 선택적으로, 희소 그래프를 생성하는 단계는 각각의 보로노이 셀을 에지 또는 노드로 분류하는 단계를 더 포함한다. 각각의 보로노이 셀을 분류하는 단계는 플러드 충전 알고리즘을 실행하는 단계를 포함할 수 있다.
[0008] 일부 구현예들에서, 제1 노드로부터 제2 노드까지의 대략적 경로를 계획하는 단계는 에지들을 프루닝하는 단계를 포함하며, 각각의 프루닝된 에지는 임계 길이 미만의 요소들을 포함하고, 요 충돌 구역 또는 요 제약 구역으로 분류된다. 이미지 센서에 의한 가시선이 상실되는, 대략적 경로를 따른 지점을 결정하는 단계는, 계획된 대략적 경로를 따른 각 요소에서 최소 허용가능 요 및 최대 허용가능 요를 결정하는 단계, 및 최소 허용가능 요 및 최대 허용가능 요에 기초하여 최소 포락선을 결정하는 단계를 포함할 수 있다. 그 방법은 또한 대략적 경로 상의 지점에서 요구되는 요가 최소 포락선 외부에 있다고 결정하는 단계를 포함한다.
[0009] 일부 예들에서, 그 방법은, 데이터 처리 하드웨어에 의해, 고수준 웨이포인트들 및 적어도 하나의 중간 웨이포인트를 갖는 항행 루트를 저수준 경로 생성기로 송신하는 단계를 더 포함한다. 그 방법은 또한, 데이터 처리 하드웨어에 의해, 적어도 하나의 중간 웨이포인트를 항행 루트에 추가할지 여부를 결정하는 단계, 및 적어도 하나의 중간 웨이포인트를 항행 루트에 추가하지 않는다고 결정하는 것에 응답하여, 데이터 처리 하드웨어에 의해, 항행 루트를 변경되지 않은 상태로 저수준 경로 생성기에 전달하는 단계를 포함할 수 있다.
[0010] 본 개시의 다른 양태는 몸체, 및 몸체에 결합되고 환경에 대해 로봇을 기동하도록 구성된 다리들을 포함하는 로봇을 제공한다. 로봇은 또한, 다리들과 통신하는 데이터 처리 하드웨어, 및 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 처리 하드웨어 상에서 실행될 때, 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령들을 저장한다. 그 동작들은 항행 루트를 수신하는 동작을 포함한다. 항행 루트는 시작 위치에서 시작하고 목적지 위치에서 종료되는 일련의 고수준 웨이포인트들을 포함하고, 고수준 항행 데이터에 기초한다. 고수준 항행 데이터는 로봇이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타낸다. 그 동작들은 또한 이미지 센서로부터 로봇 주위의 환경의 이미지 데이터를 수신하는 동작을 포함한다. 그 동작들은 또한 이미지 데이터에 기초하여 적어도 하나의 중간 웨이포인트를 생성하는 동작을 포함한다. 그 동작들은 또한, 적어도 하나의 중간 웨이포인트를 항행 루트의 일련의 고수준 웨이포인트들에 추가하는 동작, 및 시작 위치로부터 일련의 고수준 웨이포인트들 및 적어도 하나의 중간 웨이포인트를 따라 목적지 위치를 향해 로봇을 항행하는 동작을 포함한다.
[0011] 이러한 양태는 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 각각의 고수준 웨이포인트 및 각각의 중간 웨이포인트는 평면 상의 포지션을 표시하는 2 개의 좌표들, 요 값 및 시간 값을 포함한다. 시간 값은 로봇이 각각의 웨이포인트를 항행하는 데 걸리는 시간의 추정 양을 표시한다. 일부 예들에서, 그 동작들은 항행 루트 상의 일련의 고수준 웨이포인트들 각각을 유지하는 동작을 더 포함한다. 그 동작들은 또한 몸체 장애물 맵을 수신하는 동작을 포함할 수 있다. 몸체 장애물 맵은 로봇의 몸체가 횡단할 수 없는 장애물들의 맵을 포함한다. 추가적으로, 적어도 하나의 중간 웨이포인트를 생성하는 동작은 몸체 장애물 맵에 기초하여 희소 그래프를 생성하는 동작을 포함할 수 있다. 희소 그래프는 노드들 및 에지들의 리스트를 포함한다. 노드들 및 에지들은 로봇이 환경에서 주행할 수 있는 경로들을 나타낸다. 그 동작들은 또한, 노드들의 리스트로부터의 제1 노드로부터 노드들의 리스트로부터의 제2 노드까지의 대략적 경로를 계획하는 동작을 포함할 수 있다. 제1 노드 및 제2 노드 각각은 환경 내의 공간을 나타낸다. 그 동작들은 또한, 이미지 센서에 의한 가시선이 상실되는, 대략적 경로를 따른 지점을 결정하는 동작, 및 가시선이 상실된 지점에 적어도 하나의 중간 웨이포인트 중 하나를 생성하는 동작을 포함할 수 있다.
[0012] 일부 구현예들에서, 희소 그래프를 생성하는 동작은 몸체 장애물 맵에 기초하여 전체 구성 공간 맵을 생성하는 동작을 포함한다. 전체 구성 공간 맵은 요소들의 2차원 그리드를 포함하고, 그리드의 각 요소는 환경의 공간을 나타내고, 전체 구성 공간 맵의 각 요소는 요 구성들의 각 세트를 포함한다. 각각의 요 구성은 유효하거나 무효한 것으로 분류될 수 있으며, 유효한 요 구성은 각각의 요소와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전한 로봇의 요 구성을 나타내고, 무효한 요 구성은 각각의 요소와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전하지 않은 로봇의 요 구성을 나타낸다. 그 동작들은 또한, 전체 구성 공간 맵으로부터 압축된 구성 공간 맵을 생성하는 동작을 포함할 수 있다. 압축된 구성 공간 맵은 요소들의 제2 2차원 그리드를 포함하고, 제2 그리드의 각 요소는 환경의 공간을 나타낸다. 제2 그리드의 각 요소는 또한 (i) 요 충돌 구역, (ii) 요 자유 구역, 또는 (iii) 요 제약 구역 중 하나로 분류된다. 일부 예들에서, 그 동작들은 압축된 구성 공간 맵으로부터 희소 그래프를 생성하는 동작을 포함한다.
[0013] 선택적으로, 제1 노드로부터 제2 노드까지의 대략적 경로를 계획하는 동작은 압축된 구성 공간 맵으로부터 밀집 그래프를 생성하는 동작을 포함한다. 밀집 그래프는 요 자유 구역으로 분류된 요소들을 포함한다. 그 동작들은 또한, 희소 그래프로부터의 에지들을 밀집 그래프로부터의 요소들과 링크연결하는 동작을 포함할 수 있다. 일부 구현예들에서, 에지들을 밀집 그래프로부터의 요소들과 링크연결하는 동작은 희소 그래프와 밀집 그래프를 조합하여 최종 그래프를 생성하는 동작을 포함한다. 일부 예들에서, 그 동작들은 또한 최종 그래프에 대해 A* 탐색 알고리즘을 실행하는 동작을 포함한다.
[0014] 일부 예들에서, 희소 그래프를 생성하는 동작은 복수의 보로노이 셀들을 압축된 구성 공간 맵 상에 오버레이하는 동작을 더 포함하며, 각각의 보로노이 셀은 희소 그래프에서 요 제약 구역으로 분류된다. 각각의 보로노이 셀은 요 충돌 구역으로 분류된 적어도 2 개의 요소들로부터 등거리에 있다. 선택적으로, 희소 그래프를 생성하는 동작은 각각의 보로노이 셀을 에지 또는 노드로 분류하는 동작을 더 포함한다. 각각의 보로노이 셀을 분류하는 동작은 플러드 충전 알고리즘을 실행하는 동작을 포함할 수 있다.
[0015] 일부 구현예들에서, 제1 노드로부터 제2 노드까지의 대략적 경로를 계획하는 동작은 에지들을 프루닝하는 동작을 포함하며, 각각의 프루닝된 에지는 임계 길이 미만의 요소들을 포함하고, 요 충돌 구역 또는 요 제약 구역으로 분류된다. 이미지 센서에 의한 가시선이 상실되는, 대략적 경로를 따른 지점을 결정하는 동작은, 계획된 대략적 경로를 따른 각 요소에서 최소 허용가능 요 및 최대 허용가능 요를 결정하는 동작, 및 최소 허용가능 요 및 최대 허용가능 요에 기초하여 최소 포락선을 결정하는 동작을 포함할 수 있다. 그 동작들은 또한 대략적 경로 상의 지점에서 요구되는 요가 최소 포락선 외부에 있다고 결정하는 동작을 포함한다.
[0016] 일부 예들에서, 그 동작들은 고수준 웨이포인트들 및 적어도 하나의 중간 웨이포인트를 갖는 항행 루트를 저수준 경로 생성기로 송신하는 동작을 더 포함한다. 그 동작들은 또한, 적어도 하나의 중간 웨이포인트를 항행 루트에 추가할지 여부를 결정하는 동작, 및 적어도 하나의 중간 웨이포인트를 항행 루트에 추가하지 않는다고 결정하는 것에 응답하여, 항행 루트를 변경되지 않은 상태로 저수준 경로 생성기에 전달하는 동작을 포함할 수 있다.
[0017] 본 개시의 하나 이상의 구현예들의 세부사항들은 첨부 도면들 및 하기의 설명에 기재되어 있다. 다른 양태들, 특징들 및 이점들은 이 설명 및 도면들, 그리고 청구범위로부터 명백할 것이다.
[0018] 도 1은 로봇에 대한 중간 웨이포인트들을 생성하는 항행 시스템을 위한 예시적인 시스템의 개략도이다.
[0019] 도 2a 및 도 2b는 로봇이 고수준 웨이포인트들을 이용하여 항행 루트를 항행하는 것의 개략도들이다.
[0020] 도 3은 로봇이 고수준 웨이포인트들 및 중간 웨이포인트를 사용하여 도 2a 및 도 2b의 항행 루트를 항행하는 것의 개략도이다.
[0021] 도 4는 도 1의 항행 시스템의 예시적인 중간 웨이포인트 생성기의 개략도이다.
[0022] 도 5는 압축된 구성 공간 맵의 개략도이다.
[0023] 도 6은 보로노이 셀들이 오버레이된 도 5의 구성 공간 맵의 개략도이다.
[0024] 도 7은 보로노이 셀에 대한 가장 가까운 장애물과 요소들 사이의 거리를 도시하는 도 6의 보로노이 셀들의 개략도이다.
[0025] 도 8a 내지 도 8e는 도 6의 보로노이 셀들을 충전하는 플러드 충전 알고리즘의 개략도들이다.
[0026] 도 9는 도 6의 보로노이 셀들로부터 도출되는 에지들 및 노드들의 개략도이다.
[0027] 도 10은 도 6의 보로노이 셀들로부터 도출되는 프루닝된 에지들 및 노드들의 개략도이다.
[0028] 도 11a 및 도 11b는 2차원 희소 그래프(도 11a) 및 SE2 희소 그래프(도 11b)의 개략도들이다.
[0029] 도 12a 및 도 12b는 목표 목적지에 대한 추가된 노드의 개략도들이다.
[0030] 도 13은 요 자유 구역들 및 요 제약 구역들을 통한 경로의 개략도이다.
[0031] 도 14는 요 제약 구역을 통한 경로의 개략도이다.
[0032] 도 15a 및 도 15b는 가시선이 상실된 위치들에 배치된 중간 웨이포인트들을 포함하는 로봇에 대한 항행 루트의 개략도들이다.
[0033] 도 16은 로봇의 항행 시스템에 대한 중간 웨이포인트들을 생성하기 위한 예시적인 방법의 흐름도이다.
[0034] 도 17은 본원에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0035] 다양한 도면들에서 유사한 참조 부호들은 유사한 요소들을 나타낸다.
[0036] 보행 로봇 디바이스들(legged robotic devices)("로봇"으로도 지칭됨)이 보다 보편화됨에 따라, 로봇들이 다수의 방식들로 제약된 환경들을 자율적으로 항행할 필요성이 증가하고 있다. 종종, 로봇은 대형 및/또는 정적 물체들(예를 들어, 벽들, 문들 등)과 관련된 정보를 저장하는 고수준의 맵 데이터(high-level map data)에 의존한다. 목적지 목표가 주어지는 경우, 로봇은 종종 먼저 정적 장애물들을 항행하기 위해 이러한 고수준의 맵으로부터 경로 또는 코스(course)를 플로팅한 후에, 주행하는 동안에 마주치는 소형 및 동적 물체들 주위를 항행하기 위해 저수준의 항행 데이터를 수집하는 인식 시스템에 의존한다. 흔히, 이러한 종류의 환경들을 항행하는 경우, 로봇은 고수준 맵에서는 고려되지 않지만 저수준 시스템이 항행하기에는 너무 큰 장애물과 마주친다. 이러한 상황들에서, 로봇이 교착되거나 갇히는 것은 드문 일이 아니다. 본원의 구현예는 실시간으로 고수준 루트에 대한 중간 웨이포인트들을 생성하여 보행 로봇 디바이스가 보다 큰 동적 물체들 주위를 효율적으로 항행할 수 있게 하는 중간 웨이포인트 생성기(intermediate waypoint generator)를 위한 시스템들 및 방법들에 관한 것이다.
[0037] 도 1을 참조하면, 로봇 또는 로봇 디바이스(10)는 2 개 이상의 다리들(12)을 갖는 몸체(11)를 포함하고, 로봇(10)이 제약된 환경(8)을 항행할 수 있게 하기 위한 항행 시스템(navigation system)(100)을 실행한다. 각각의 다리(12)는 몸체(11)에 결합되고, 다리 관절(18)에 의해 분리된 상부 부분(14) 및 하부 부분(16)을 가질 수 있다. 각각의 다리(12)의 하부 부분(16)은 발(19)에서 종단된다. 각각의 다리의 발(19)은 선택적이고, 다리(12) 중 하나 이상의 하부 부분의 말단 단부는 휠(wheel)에 결합될 수 있거나, 각각의 다리(12)의 원위 단부는 지면(9)과 직접 접촉할 수 있다. 로봇(10)은 중력 방향을 따른 수직 중력 축(Vg)과, 로봇(10)의 분포된 질량의 가중된 상대 포지션의 합이 0(zero)이 되는 지점인 질량 중심(CM)을 갖는다. 로봇(10)은 로봇(10)에 의해 취해지는 특정 자세(attitude) 또는 스탠스(stance)를 규정하기 위해 수직 중력 축(Vg)(즉, 중력에 대한 고정 기준계(fixed reference frame))에 대한 CM에 기초하는 포즈(pose)(P)를 더 갖는다. 로봇(10)의 자세는 공간에서의 로봇(10)의 배향 또는 각도 포지션에 의해 규정될 수 있다. 몸체(11)에 대한 다리들(12)의 이동은 로봇(10)의 포즈(P)(즉, 로봇의 CM 포지션과 로봇(10)의 자세 또는 배향의 조합)를 변경한다.
[0038] 일부 구현예들에서, 로봇(10)은 몸체(11) 상에 배치되고 몸체(11)에 대해 이동하도록 구성된 관절식 팔(articulated arm)(20)과 같은 하나 이상의 부속물을 더 포함한다. 관절식 팔(20)은 5 이상의 자유도를 가질 수 있다. 더욱이, 관절식 팔(20)은 매니퓰레이터 아암(manipulator arm) 또는 단순히 부속물로 상호 교환 가능하게 지칭될 수 있다. 도시된 예에서, 관절식 팔(20)은 서로에 대해 그리고 또한 몸체(11)에 대해 회전 가능한 2 개의 부분들(22, 24)을 포함하지만; 관절식 팔(20)은 본 개시의 범위를 벗어남이 없이 보다 많거나 보다 적은 부분들을 포함할 수 있다. 제1 부분(22)은 관절식 팔 관절(26)에 의해 제2 부분(24)으로부터 분리될 수 있다. 매니퓰레이터 헤드(manipulator head)(28)로 상호 교환 가능하게 지칭될 수 있는 엔드 이펙터(end effector)(28)는 관절식 팔(20)의 제2 부분(24)의 원위 단부에 결합될 수 있고, 물체들을 잡거나/파지하기 위한 하나 이상의 액추에이터들(actuators)(29)을 포함할 수 있다.
[0039] 로봇(10)은 또한 적어도 하나의 이미징 센서(imaging sensor) 또는 카메라(31)를 갖는 비전 시스템(vision system)(30)을 포함하며, 각각의 센서 또는 카메라(31)는 시야각(32)으로 그리고 시야(34) 내에서 로봇(10)을 둘러싸는 환경(8)의 이미지 데이터 또는 센서 데이터(17)를 캡처한다. 비전 시스템(30)은 시야(34)를 임의의 방향으로 이동시키기 위해 카메라(31)를 (독립적으로 또는 로봇(10)을 통해) 패닝(panning) 및/또는 틸팅(tilting)함으로써, 또는 시야각(32)을 조정함으로써 시야(34)를 이동시키도록 구성될 수 있다. 대안적으로, 비전 시스템(30)은 비전 시스템(30)이 로봇(10) 주위의 대체로 360 도 시야를 캡처하도록 다수의 센서들 또는 카메라들(31)을 포함할 수 있다.
[0040] 일부 구현예들에서, 비전 시스템(30)의 카메라(들)(31)는 하나 이상의 스테레오 카메라들(예를 들어, 하나 이상의 RGBD 스테레오 카메라들)을 포함한다. 다른 예들에서, 비전 시스템(30)은 스캐닝 광-검출 및 거리 측정(light-detection and ranging; LIDAR) 센서 또는 스캐닝 레이저-검출 및 거리 측정(laser-detection and ranging; LADAR) 센서와 같은 하나 이상의 레이더 센서들, 광 스캐너, 비행시간 센서(time-of-flight sensor), 또는 임의의 다른 3차원(3D) 체적 이미지 센서(또는 임의의 그러한 센서들의 조합)를 포함한다. 일부 구현예들에서, 항행 시스템(100)은 센서 데이터(17)를 수신 및 처리하고 처리된 센서 데이터(17)를 중간 웨이포인트 생성기(120) 및 저수준 경로 생성기(low-level path generator)(130)에 전달하는 인식 시스템(102)을 포함한다.
[0041] 비전 시스템(30)은 카메라들 또는 센서들(31)에 의해 캡처된 이미지 데이터로부터 도출된 이미지 데이터 또는 센서 데이터(17)를 로봇(10)의 데이터 처리 하드웨어(36)에 제공한다. 데이터 처리 하드웨어(36)는 메모리 하드웨어(38)와 디지털 통신하고, 일부 구현예들에서는 원격 시스템일 수 있다. 원격 시스템은 단일 컴퓨터, 다중 컴퓨터들, 또는 확장 가능/탄력적 컴퓨팅 리소스들(scalable/elastic computing resources) 및/또는 스토리지 리소스들(storage resources)을 갖는 분산형 시스템(예를 들어, 클라우드 환경(cloud environment))일 수 있다. 로봇(10)의 항행 시스템(100)은 데이터 처리 하드웨어(36) 상에서 실행된다.
[0042] 도시된 예에서, 항행 시스템(100)은 맵 데이터(50)(즉, 로봇(10)이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타내는 고수준 항행 데이터)를 수신하고 로봇(10)의 현재 위치로부터 목표 목적지까지의 대형 및/또는 정적 장애물들 주위의 대략적 경로(coarse path)를 플로팅하는 항행 루트(112)에 대한 하나 이상의 고수준 웨이포인트들(210)(도 2a 및 도 2b)을 생성하는 고수준 웨이포인트 생성기(high-level path generator)(110)를 포함한다. 예를 들어, 고수준 웨이포인트 생성기(110)는 10 미터 초과의 스케일(예를 들어, 로봇(10)으로부터 10 미터 초과의 거리들)에 걸친 대략적 경로를 생성할 수 있다. 항행 시스템(100)은 또한 항행 루트(112) 및 비전 시스템(30)으로부터의 이미지 또는 센서 데이터(17)를 수신하는 중간 웨이포인트 생성기(120)를 포함하고, 중간 웨이포인트 생성기(120)를 포함한다. 센서 데이터(17)에 기초하여, 중간 웨이포인트 생성기(120)는 로봇(10)이 주행할 대략적 경로 또는 궤적을 형성하는 항행 루트(112)의 고수준 웨이포인트들(210)(도 2a, 도 2b 및 도 3)에 하나 이상의 중간 웨이포인트들(310)(도 3)을 추가할 수 있다. 항행 루트(112)의 고수준 웨이포인트들(210) 및 임의의 추가된 중간 웨이포인트들(310)은 저수준 경로 생성기(130)에 전달되고, 저수준 경로 생성기(130)는, 센서 데이터(17)와 조합하여, 로봇(10)의 현재 위치로부터 다음 웨이포인트(210, 310)로 항행하기 위해 로봇(10)의 각 개별 스텝을 플로팅하는 스텝 계획(142)을 생성한다. 스텝 계획(142)을 사용하여, 로봇(10)은 스텝 계획(142)에 의해 표시된 위치들에 있는 지표면(9) 상에 발들(19) 또는 다리(12)의 원위 단부들을 배치하여 스텝 계획(142)을 따름으로써 환경(8)을 통해 기동한다. 일부 구현예들에서, 저수준 경로 생성기(130)는 대략 4 미터 스케일에서 장애물들을 회피하기 위해 포텐셜 필드 방법(potential field method)을 사용함으로써 보다 낮은 수준의 장애물 회피를 제공한다. 포텐셜 필드 방법은 목표를 향한 속도와 장애물 회피 속도의 합을 적분(integrating)함으로써 장애물들로부터 로봇(10)을 "밀어낼" 수 있다.
[0043] 일부 구현예들에서, 항행 시스템(100)의 적어도 일부는 로봇(10)과 통신하는 원격 디바이스 상에서 실행된다. 예를 들어, 고수준 웨이포인트 생성기(110)는 원격 디바이스 상에서 실행되어 고수준 웨이포인트들(210) 중 하나 이상을 생성할 수 있고, 로봇(10) 상에서 실행되는 중간 웨이포인트 생성기(120)는 원격 디바이스로부터 고수준 웨이포인트들(210)을 수신할 수 있다. 선택적으로, 전체 항행 시스템(100)은 원격 디바이스 상에서 실행될 수 있고, 원격 디바이스는 스텝 계획(142)에 기초하여 환경(8)을 기동하도록 로봇(10)을 제어하고/로봇(10)에 명령할 수 있다.
[0044] 이제 도 2a 및 도 2b를 참조하면, 저수준 경로 생성기(130)(예를 들어, 포텐셜 필드 방법을 사용함)는 특정 형상 및/또는 볼록성의 장애물들을 항행할 때 문제들에 직면할 수 있다. 예를 들어, 저수준 경로 생성기(130)는, 대응하는 항행 루트(112)의 고수준 웨이포인트(210)로 항행하려고 시도하는 동안, 장애물 또는 표면(220) 아래로 슬라이딩하여 로컬 최소점(local minimum)(230)(도 2a)에 교착될 수 있다. 다른 예에서, 저수준 경로 생성기(130)는 로봇(10)을 선회시키는 것과 관련하여 필요한 콘텍스트(context) 또는 의사결정 능력이 부족할 수 있다. 즉, 저수준 경로 생성기(130)는 언제 "선회한 후에 구동할지" 대 "구동한 후에 선회할지"(도 2b)를 구별하는 데 어려움을 겪을 수 있다.
[0045] 이제 도 3을 참조하면, 항행 루트(112)에 추가 웨이포인트(즉, 중간 웨이포인트(310))를 추가하는 것은, 추가 웨이포인트(들)(310)가 궤적을 저수준 경로 생성기(130)에 볼록하게 나타나게 하여 저수준 경로 생성기가 장애물(220) 주위를 성공적으로 항행하게 할 수 있으므로, 저수준 경로 생성기(130)가 적절한 토폴로지 결정들(topological decisions)을 내리는 것을 돕는다. 중간 웨이포인트 생성기(120)는 항행 루트(112)에 추가되는 임의의 추가된 중간 웨이포인트들(310)이 맵 지터(map jitter)의 영향을 최소화하기 위해 로봇(10)으로부터 충분한 거리에 있는 것을 보장할 수 있다. 또한, 고수준 웨이포인트 생성기(110)가 중간 웨이포인트 생성기(120)에 이용할 수 없는 추가 맵 콘텍스트에 관여할 수 있고 고수준 웨이포인트(210)의 제거가 예측할 수 없는 결과들을 야기할 수 있으므로, 중간 웨이포인트 생성기(120)는 임의의 고수준 웨이포인트들(210)을 제거하거나 삭제하는 것이 억제될 수 있다.
[0046] 이제 도 4를 참조하면, 일부 구현예들에서, 중간 웨이포인트 생성기(120)는 희소 그래프 생성기(sparse graph generator)(410), 대략적 경로 플래너(coarse path planner)(420) 및 웨이포인트 배치기(waypoint placer)(430)를 포함한다. 희소 그래프 생성기(410)는 예를 들어 인식 시스템(102)으로부터 몸체 장애물 맵(body obstacle map)(412)을 수신한다. 몸체 장애물 맵(412)은 로봇(10)의 바로 부근(예를 들어, 4 미터 이내)에 있는 장애물들(예를 들어, 로봇(10)의 몸체(11)가 횡단할 수 없는 장애물들)의 맵이다. 몸체 장애물 맵(412)으로부터, 희소 그래프 생성기(410)는 희소 그래프(416S)를 생성한다. 하기에서 보다 상세하게 논의되는 바와 같이, 희소 그래프(416S)는 노드들(nodes)(812)(도 8a 내지 도 8e)과 에지들(edges)(810)(도 8a 내지 도 8e) 사이의 유효한 상호연결들의 리스트를 제공한다. 노드들(812) 및 에지들(810)은 로봇(10) 근처의 요 제한 구역들(yaw restricted zones)(즉, 기동하기 어렵거나 빠듯한 영역들)을 통한 유효한 잠재적 경로를 나타내며, 그에 따라 희소 그래프(416S)는 요 제한 구역들을 통한 로봇(10)에 대한 잠재적 경로를 결정하는 데 필요한 정보를 제공한다.
[0047] 희소 그래프 생성기(410)는 희소 그래프(416S)를 대략적 경로 플래너(420)에 전달한다. 대략적 경로 플래너(420)는 희소 그래프(416S)를 사용하여 시작 위치로부터 목표 목적지까지의 대략적 경로(1310)(도 13)를 플로팅한다. 일부 예들에서, 대략적 경로 플래너(420)는 희소 그래프(416S)(즉, 노드들(812)과 에지들(810) 사이의 상호연결들의 리스트)에 의해 표시된 유효한 잠재적 경로들의 가장 최적의 루트를 결정하기 위해 탐색 알고리즘(search algorithm)(예를 들어, A*)을 사용하여 대략적 경로(1310)를 플로팅한다. 대략적 경로 플래너(420)는 경로(1310)를 웨이포인트 배치기(430)에 전달할 수 있다. 웨이포인트 배치기(430)는, 로봇(10)의 현재 위치로부터, 경로(1310)를 따라갈 때 가시선(line-of-sight)이 상실된 위치를 결정하고, 해당 위치에 중간 웨이포인트(310)를 배치한다. 즉, 웨이포인트 배치기(430)는, 로봇(10)이 현재 위치로부터 대략적 경로(1310)를 따라 바라본 경우, (예를 들어, 장애물 때문에) 로봇(10)이 경로의 가시선을 상실하는 위치를 결정하고, 가시선이 상실된 경로(1310) 상의 위치에 중간 웨이포인트(310)를 배치한다. 중간 웨이포인트(310)는 저수준 경로 생성기(130)가 장애물을 성공적으로 항행할 수 있는 위치로 로봇(10)을 안내할 것이다. 중간 웨이포인트(들)(310)는 항행 루트(112)에 포함되고, 저수준 경로 생성기(130)에 전달된다.
[0048] 일부 구현예들에서, 희소 그래프 생성기(410)는 초기에, 수신된 몸체 장애물 맵(412)에 기초하여, 전체 구성 공간 맵(full configuration space map)(414)을 생성한다. 일부 예들에서, 전체 구성 공간 맵(414)은 요소들(510, 510a 내지 510n)의 2차원(2D) 그리드(grid) 또는 어레이(array)를 포함하며, 각각의 요소(510)는 장애물이 로봇(10)이 특정 요소(510)에 진입하는 것을 방해하는지 여부를 표시하는 환경(8)의 영역(예를 들어, 3 센티미터 × 3 센티미터의 정사각형 )을 나타낸다. 선택적으로, 전체 구성 공간 맵(414)은 128 개의 요소들 × 128 개의 요소들의 어레이이다. 일부 예들에서, 각각의 요소(510)는 다수의 각각의 요 구성들(512, 512a 내지 512n)(요 구성들(512, 512a 내지 512n)의 각각의 세트)과 연관될 수 있고, 전체 구성 공간 맵(414)은 각 요소(510)에 대한 각각의 요 구성들(512) 각각에 대한 상태를 표시할 수 있다. 예를 들어, 각각의 요소(510)는 64 개의 각각의 요 구성들과 연관될 수 있다. 이러한 예에서, 360 도(즉, 완전한 원)를 64(즉, 요 구성들의 수)로 나눈 것이 5.625 도와 동일하기 때문에, 각각의 요 구성은 이전 구성으로부터 5.625 도 회전될 것이다. 전체 구성 공간 맵(414)은, 각각의 요소(510)와 연관된 각각의 요 구성(512)에 대해, 로봇(10)의 선택 지점이 요소(510)에 의해 나타낸 공간을 점유하는 경우 각각의 요 구성(512)이 몸체 장애물과의 충돌을 야기할 것인지 여부를 표시할 수 있다. 즉, 전체 구성 공간 맵(414)은 각각의 요 구성(512)이 유효한지(즉, 해당 요 구성(512)에서 로봇(10)이 장애물과 충돌하지 않을 것인지) 또는 무효한지(즉, 해당 요 구성(512)에서 로봇(10)이 장애물과 충돌할 것인지)를 표시할 수 있다. 선택 지점은 예를 들어, 로봇(10)의 몸체(11)의 중심점(예를 들어, 각 다리(12)의 상단으로부터 등거리에 있음)을 포함할 수 있다.
[0049] 일부 구현예들에서, 희소 그래프 생성기(410)는 전체 구성 공간 맵(414)으로부터 압축된 구성 공간 맵(500)을 생성한다. 압축된 구성 공간 맵(500)은 각각의 요소를 다수의 요 구성들(512)과 연관시키는 대신에 구성 공간 맵(500)의 각 요소(510)를 분류할 수 있다. 예를 들어, 각각의 요소(510)는 몸체 장애물 요소(510A)(도 5), 요 충돌 요소(yaw collision element)(510B)(도 5), 요 자유 요소(yaw free element)(510C)(도 5), 또는 요 제약 요소(yaw constrained element)(510D)(도 5)로 분류될 수 있다. 즉, 전체 구성 공간 맵(414)으로부터의 요 구성들(512)은 압축된 구성 공간 맵(500)의 각 요소(510)를 분류하는 데 사용될 수 있다.
[0050] 이제 도 5를 참조하면, 예시적인 압축된 구성 공간 맵(500)이 도시되어 있다. 이러한 예에서, 압축된 구성 공간 맵(500)은 몸체 장애물 요소(510), 요 충돌 요소(510B), 요 자유 요소(510C), 또는 요 제약 요소(510D)로 각각 분류되는 128 × 128 요소들(510)의 그리드를 포함한다. 몸체 장애물 요소들(510A)은 로봇(10)이 횡단할 수 없는 장애물(즉, 몸체 장애물 맵(412)으로부터 수신된 장애물)에 의해 점유된 요소들을 나타낸다. 예를 들어, 로봇(10)이 회피해야 하는 의자, 상자 또는 벽은 몸체 장애물 요소(510A)로 분류될 수 있다. 요 충돌 요소들(510B)은 로봇(10)의 선택 지점(예를 들어, 몸체(11)의 중심)이 요소(510B)에 의해 나타낸 공간을 점유하는 경우에 로봇(10)에 대한 모든 요 구성들(512)(예를 들어, 모든 64 개의 요 구성들)이 몸체 장애물(즉, 몸체 장애물 요소(510A))과의 충돌을 야기하는 요소들이다. 예를 들어, 벽 바로 옆의 공간은, 실제로 벽을 포함하지 않음에도 불구하고, 로봇(10)이 벽과 충돌하지 않고 서 있기에는 벽과 너무 근접하여 있을 수 있다.
[0051] 요 자유 요소들(510C)은 요 구성들(512)이 몸체 장애물과의 충돌을 야기하지 않는다는 점에서 요 충돌 요소(510B)와 반대이다. 달리 말하면, 요 자유 요소(510C)는 로봇(10)이 몸체 장애물과 충돌하지 않고 모든 요 구성들(512)을 통해 회전(즉, 선택 지점에서 축을 중심으로 360 도 회전)할 수 있는 환경(8) 내의 영역을 나타낸다. 요 제약 요소들(510D)은 일부 요 구성들(512)이 안전하거나 유효하고(즉, 로봇(10)이 장애물과 충돌하지 않음) 일부 요 구성들(512)이 안전하지 않은(즉, 로봇(10)이 해당 요 구성들(512)에서 장애물과 충돌하는 무효한 요 구성들(512)) 요소들이다. 예를 들어, 로봇(10)은 벽 옆으로 벽과 평행하게 주행할 수 있지만, 90 도 선회는 벽과의 충돌을 유발할 수 있다. 이러한 예에서, 일부 요 구성들(512)(즉, 로봇(10)이 벽과 평행한 요 구성들(512))은 안전한 반면, 다른 요 구성들(즉, 로봇(10)이 벽과 수직인 요 구성들(512))은 안전하지 않다.
[0052] 일부 예들에서, 희소 그래프 생성기(410)는 압축된 구성 공간 맵(500)의 요 제약 구역들(510DZ)(즉, 요 제약 요소들(510D)의 구역)을 통한 유효한 경로들을 결정한다. 이제 도 6을 참조하면, 일부 구현예들에서, 희소 그래프 생성기(410)는 압축된 구성 공간 맵(500)을 복수의 보로노이 셀들(Voronoi cells)(610)과 오버레이(overlay)한다. 보로노이 셀들(610)은 요 충돌 요소들(510B)로 분류되는 적어도 2 개의 요소들(510)로부터 등거리에 있는 요 제약 구역들(510DZ) 및/또는 요 자유 구역들(510CZ) 내의 모든 요소들(510)을 포함한다. 달리 말하면, 보로노이 셀들(610)은 요 충돌 구역들(510BZ)로부터 가장 멀리 있는(따라서 몸체 장애물들로부터 가장 멀리 있는) 요소들(510)이다. 대안적으로, 보로노이 셀들(610)은 적어도 2 개의 몸체 장애물 요소들(510A)로부터 등거리에 있는 요 제약 구역들(510DZ) 및/또는 요 자유 구역들(510CZ) 내의 모든 요소들(510)을 포함한다. 도 6의 예에서, 셀들(610)은 요 충돌 구역들(510BZ) 사이의 요 자유 구역(510CZ) 및 요 제약 구역(510DZ)에 중심설정된다. 보로노이 셀들(610)은 로봇(10)이 이미 액세스할 수 있는 데이터(예를 들어, 부호있는 거리 필드(signed distance field))로부터 계산하기에 간단하다.
[0053] 보로노이 셀들(610)로서 마킹(marking)할 요소들(510)을 결정하기 위해, 희소 그래프 생성기(410)는 구성 공간 맵(500) 상의 장애물들(즉, 몸체 장애물 요소들(510A))로부터 등거리에 있는 (구성 공간 맵(500)의) 요소들(510)을 결정한다. 즉, 각각의 요소(510)는 본질적으로 가장 가까운 장애물 경계까지의 거리 및 방향을 갖는다. 도 7은 요 제약 구역(510DZ)에 의해 분리된 2 개의 요 충돌 구역들(510BZ)을 포함하는 구성 공간 맵(500)의 일부를 도시한다. 몇몇의 보로노이 셀들(610)은 요 제약 구역(510DZ)을 통해 그리고 요 충돌 구역들(510BZ) 사이로 연장된다. 일부 예들에서, 희소 그래프 생성기는 구성 공간 맵(500)의 각 요소(510)를 분석하여 요소(510)가 보로노이 셀들(610)로서 마킹되어야 하는지를 결정한다. 각각의 요소(510)를 분석하여 요소(510)가 보로노이 셀(610)인지를 결정하는 경우, 일부 구현예들에서, 희소 그래프 생성기(410)는 요소(510)(즉, 현재 분석되고 있는 요소(510))와 이웃하는 요소(510)가 가장 가까운 장애물 경계로서 실질적으로 상이한 위치들을 가리키는지를 결정한다. 즉, 구성 공간 맵(500) 내의 모든 요소(510)에 대해, 희소 그래프 생성기(410)는 각각의 요소에 대한 가장 가까운 장애물 경계, 각각의 요소의 하부 이웃의 가장 가까운 장애물 경계, 및 각각의 요소의 우측 이웃의 가장 가까운 장애물 경계를 찾을 수 있다. 3 개의 가장 가까운 장애물 경계들 중 임의의 2 개 사이의 거리가 임계 거리를 충족할 때마다, 요소(510)는 보로노이 셀(610)로서 마킹될 수 있다. 임계 거리는 임의의 수의 요소들(예를 들어, 1 개의 요소, 2 개의 요소들, 5 개의 요소들 등)로 표현될 수 있다.
[0054] 도시된 예에서, 희소 그래프 생성기(410)가 'A'로 라벨링된 요소(510)를 분석하는 경우, 희소 그래프 생성기(410)는 요소 'A'에 가장 가까운 요 충돌 요소(510B)(또는 몸체 장애물 요소(510A))가 요소(510a)라고 결정한다. 다음에, 희소 그래프 생성기(410)는 요소의 우측 이웃('B'로 라벨링됨)에 대한 가장 가까운 요 충돌 요소(510B)를 결정하며, 이는 본 경우에는 요소(510b)이다. 다음에, 희소 그래프 생성기(410)는 요소의 하부 이웃('C'로 라벨링됨) 및 가장 가까운 요 충돌 요소(510B)(본 경우에는, 또 다시 요소(510a)임)로부터의 거리를 결정할 수 있다. 희소 그래프 생성기(410)는 일부 예들에서 3 개의 가장 가까운 장애물 경계들 중 2 개(즉, 'A'와 'B' 사이, 'A'와 'C' 사이, 및 'B'와 'C' 사이의 거리들 3 개 중 2 개)가 임계 거리 이내로 이격되어 있는지를 결정한다. 요소가 동일한 거리로 이격된 2 개의 장애물 경계들을 갖는 경우, 희소 그래프 생성기(410)는 양 요소들 사이의 거리들을 결정할 수 있다.
[0055] 이러한 예에서, 'A'와 'B'의 가장 가까운 장애물 경계들 사이의 거리는 10 개의 요소들이고, 'A'와 'C'의 가장 가까운 장애물 경계 사이의 거리는 0 개의 요소이고(즉, 동일한 가장 가까운 장애물 경계를 공유함), 'B'와 'C'의 가장 가까운 장애물 경계들 사이의 거리는 또 다시 10 개의 요소들이다. 임계 거리가 10 개 미만의 요소들인 경우, 요소 'A'는 보로노이 셀(610)로서 마킹될 것이다.
[0056] 이전에 논의된 바와 같이, 희소 그래프 생성기(410)는 구성 공간 맵(500)의 각 요소에 대해 유사한 분석을 행할 수 있다. 계속해서 도 7을 참조하면, 요소 'D'의 우측 이웃('E') 및 하부 이웃('F')과의 3 개의 가장 가까운 장애물 거리들이 임계치(예를 들어, 3 개의 요소들)를 충족하지 않기 때문에, 희소 그래프 생성기(410)는 요소 'D'를 보로노이 셀(610)로서 마킹하지 않을 수 있다. 이것은 가장 가까운 장애물 경계들(즉, 요소들(510c, 510d)) 사이의 거리가 임계치를 충족하지 않을 수 있는 단 하나의 요소이기 때문이다.
[0057] 이제 도 8a 내지 도 8e를 참조하면, 일부 구현예들에서, 희소 그래프 생성기(410)는 보로노이 셀들(610)로부터 도출된 에지들(810) 및 노드들(812)을 결정한다. 도 8a는 요 제약 구역(510DZ) 내의 예시적인 보로노이 셀들(610)을 도시한다. 일부 구현예들에서, 희소 그래프 생성기는 보로노이 셀(610)로서 마킹된 임의의(즉, 랜덤 또는 거의 랜덤한) 요소(510ff)를 선택한다. 임의의 요소(510ff)로부터 시작하여, 희소 그래프 생성기는 플러드 필(flood fill)을 수행하고, 보로노이 셀(610)로서 마킹된 각각의 요소(510)로부터 임의로 선택된 요소(510ff)까지의 거리를 기록한다. 도시된 예에서 각각의 요소는 임의의 요소(510ff)로부터의 거리(요소 단위)로 라벨링된다. 플러드 필은 어레이 내의 주어진 노드에 연결된 영역을 결정하는 알고리즘이다. 본 경우에, 플러드 필은 모두 요소들에 거리가 할당될 때까지 보로노이 셀(610)로서 마킹된 모든 요소들(510)을 통해 계속 흐른다. 임의로 선택된 요소(510ff)는 완전히 랜덤하게 선택될 수 있지만, 임의의 오차로부터의 영향들을 최소화하기 위해 로봇(10) 부근 내의 요소들(510)로 선택을 제한하는 것이 유리할 수 있다.
[0058] 보로노이 셀(610)로서 마킹된 각각의 요소에 거리가 할당된 후에, 희소 그래프 생성기(410)는 일부 예들에서 보로노이 셀들(610)의 각 분기(branch)의 단부 또는 단부 노드(812)를 결정한다. 각 분기의 단부 노드(812)는 임의로 선택된 요소(510ff)로부터 국부적으로 가장 큰 거리를 가질 것이다. 분기의 단부 노드(812)로부터, 희소 그래프 생성기(410)는 일부 예들에서 선택된 요소(510ff)를 향해 다시 이동하는 동안에 각각의 요소(510)를 마킹한다. 희소 그래프 생성기(410)가 이미 이전에 마킹된 요소(510)를 만날 때마다, 생성기는 요소에 대한 조합에 고유한 라벨을 부착할 수 있다. 예를 들어, 도 8b에서, 희소 그래프 생성기(410)는 단부 노드(812a)에서 시작하고 선택된 요소(510ff)를 향해 다시 이동하여, 웨이(way)를 따라 각 요소를 마킹해서 에지(810a)를 형성한다. 즉, 단부 노드(812a)로부터 선택된 요소(510ff)까지의 보로노이 셀들(610)은 에지(810a)를 형성할 수 있다. 희소 그래프 생성기(410)는 모든 요소들이 마킹될 때까지 이러한 프로세스를 계속할 수 있다. 예를 들어, 도 8c에서, 희소 그래프 생성기(410)는 단부 노드(812b)로부터 요소(510ff)를 향해 이동하고 이전에 마킹된 요소(도 8b)와 812c에서 만날 때까지 각각의 요소를 마킹하여 다른 에지(810b)를 형성한다. 희소 그래프 생성기(410)는 812c에 있는 교차점 요소(즉, 첫 번째로 만나는 이전에 마킹된 요소)에 고유한 라벨을 할당할 수 있다. 희소 그래프 생성기(410)는 별도의 에지(810c)로서 이전에 마킹된 각각의 요소에 주목하면서, 선택된 요소(510ff)에 도달할 때까지 계속해서 다시 이동할 수 있다.
[0059] 이제 도 8d를 참조하면, 희소 그래프 생성기(410)는 단부 노드(812d)에서 시작하여 요소(510ff)로 다시 이동하여, 웨이를 따라 각각의 요소를 다시 마킹해서 다른 에지(810d)를 형성할 수 있다. 모든 요소들(510)이 마킹된 후에(그리고 에지(810)에 할당된 후에), 일부 구현예들에서, 희소 그래프 생성기(410)는 선택된 요소(510ff)가 2 개의 에지들(810)에만 접촉하는지(즉, 3 개 이상의 에지들 사이의 교차점이 아닌지)를 결정한다. 이러한 시나리오에서, 희소 그래프 생성기(410)는 2 개의 에지들을 하나의 에지로 조합할 수 있다. 예를 들어, 도 8d에 도시된 바와 같이, 선택된 요소(510ff)는 2 개의 다른 에지들(즉, 에지(810c) 및 에지(810d))에만 접촉하고, 도 8e에서, 에지(810c) 및 에지(810d)는 단일 에지(810)로 조합된다. 플러드 충전 및 요소 마킹의 최종 결과는 에지들(810)을 따른 요소들(510)의 정렬된 세트 및 노드 요소들(812)의 리스트를 희소 그래프 생성기(410)에 제공한다. 노드들 및 에지들의 리스트는 희소 그래프(416S)를 형성하고, 로봇(10)이 인근 환경의 제약된 공간들(즉, 압축된 구성 공간 맵(500)의 요 제약 구역들(510DZ))을 통해 주행할 수 있는 유효한 경로들을 나타낸다.
[0060] 도 9는 다수의 에지들(810) 및 노드들(812)로 분류된 보로노이 셀들(610)이 오버레이된 구성 공간 맵(500)을 도시하며, 각각의 에지(810)는 (노드(812)를 통해) 다른 에지(810) 또는 (또한 노드(812)를 통해) 요 자유 구역(510CZ)에 연결된다. 일부 구현예들에서, 요 자유 구역(510CZ)을 통한 경로가 나중 시점에 결정될 수 있기 때문에, 희소 그래프 생성기(410)는, 희소 그래프(416S)를 생성할 때, 요 제약 구역들(510DZ)에 위치된 보로노이 셀들(610)로서 마킹된 요소들(510)만을 고려한다. 희소 그래프 생성기(410)는, 도 8a 내지 도 8e와 관련하여 논의된 바와 같이, 보로노이 셀들(610)로서 마킹된 요소들을 개별 에지들(810) 및 노드들(812)로 분할할 수 있다. 일부 예들에서, 희소 그래프 생성기(410)는 에지들(810)이 요 자유 구역들(510CZ)에 연결되는 노드들(812)을 라벨링하거나 식별한다. 즉, 희소 그래프 생성기(410)는 요 자유 구역들(510CZ) 및 요 제약 구역들(510DZ)을 연결하는 노드들(812)(즉, 단부들 또는 에지들(810) 또는 에지들(810) 사이의 교차점들)을 보로노이 셀들(610)을 따라 식별한다. 희소 그래프 생성기(410)는 다수의 에지들(810)에 대한 교차점인 노드들(812)을 추가로 식별할 수 있다. 일부 예들에서, 희소 그래프 생성기(410)는 동일한 요 자유 구역(510CZ)에 연결된 모든 노드들(812)이 서로 연결되어 있다고 가정한다. 즉, 희소 그래프 생성기는 노드들(812) 사이의 경로가 존재하는 한(즉, 동일한 요 자유 구역(510CZ)에 연결됨) 요 자유 구역들(510CZ)을 통한 모션을 (적어도 일시적으로) 무시할 수 있다. 에지들(810) 및 노드들(812)이 구비된 희소 그래프 생성기(410)는 먼저, 항행적 중요성을 갖지 못하는 에지들(810)을 프루닝(pruning)함으로써, 보로노이 셀들(610)이 오버레이된 압축된 구성 공간 맵(500) 내의 이전에 결정된 에지들(810) 및 노드들(812)에 기초하여 최종 2D 구성 맵(1000)(도 10)을 생성할 수 있다. 예를 들어, 도 10은 최종 2D 구성 맵(1000)을 생성하도록 프루닝되는 다수의 중요하지 않은 에지들(1010)을 갖고 복수의 보로노이 셀들(610)이 오버레이된 압축된 구성 공간 맵(500)을 도시한다. 즉, 일부 구현예들에서, 희소 그래프 생성기(410)는 임계 길이보다 짧고 요 제약 구역(510DZ) 내에서 종단되거나 종료되는 중요하지 않은 에지들(1010)을 프루닝하며, 이는 이러한 경로들이 로봇(10)이 횡단하는 데 가치가 없을 가능성이 매우 높기 때문이다. 선택적으로, 임계 길이는 대략 로봇(10)의 반경일 수 있다. 일부 예들에서, 희소 그래프 생성기(410)는 프루닝 후에 교차점 노드(812)가 3 개 미만의 에지(810)에 연결되는 경우에 에지들(810)을 함께 조합한다.
[0061] 이제 도 11a 및 도 11b를 참조하면, 일부 구현예들에서, 희소 그래프 생성기(410)는 최종 2D 구성 맵(1000)(도 11a)을 맵의 SE2 표현(1100)(도 11b)으로 변환한다. SE2는 표준 데카르트 좌표들(standard Cartesian coordinates)과 함께 요를 포함하는 좌표계(즉, x 좌표, y 좌표 및 요)이다. 즉, SE2 맵(1100)은 최종 2D 구성 맵(1000)을 취하고, 요를 포함한다. 도 11b는 요가 높이인 SE2 맵(1100)을 도시한다. 로봇(10)이 임의의 수의 요 구성들(512)(예를 들어, 이전에 논의된 바와 같이 64 개)을 가질 수 있지만, SE2 맵(1100)은 2 개의 요 구성들 ― 전방 및 후방 ― 만을 고려함으로써 단순화될 수 있다. 즉, 일반적으로, 로봇(10)은 주행 경로와 정렬되는 요 구성(512)으로 주행할 것이고, 그에 따라 SE2 맵(1100)은 이러한 2 개의 요 구성들만을 고려함으로써 크게 단순화될 수 있다. 2D 맵(1000)의 각 에지(810)는 반대 접선들(즉, "전방" 및 "후방" 요 구성들)(1110a, 1110b)을 갖는 2 개의 SE2 에지들로 표현될 수 있다. 각각의 2D 노드(812)(도 11a)는 2D 맵(1000) 표현에서 노드(812)에 연결된 에지들(1110)(도 11b)의 수의 2배로 표현된다. 예를 들어, 도 11a는 SE2 맵(1100)에서 6 개의 노드들(1112)로 변환되는 단일 노드(812)에 연결된 3 개의 에지들(810)을 도시한다. 로봇(10)이 노드들(1112)에서 제자리에서 회전할 것이고 희소 그래프 생성기(410)가 전체 구성 공간 맵(414)으로부터의 유효한 요 구성들(512)에 기초하여 노드들(1112) 사이의 상호연결들을 결정할 수 있다는 것이 시사된다.
[0062] SE2 맵(1100)을 완성하기 위해, 일부 구현예들에서, 희소 그래프 생성기(410)는 로봇(10)에 대한 맵(1100)으로부터 진입 지점 및 진출 지점을 결정한다. 이제 도 12a 및 도 12b를 참조하면, 희소 그래프 생성기(410)는 맵(1100) 경계에 대한 직선을 따라 오프-맵 목표(off-map goal)(1210)(즉, 타겟 목적지)를 투영할 수 있다. 목표(1210)가 요 자유 구역(510CZ)에 설정되는 경우, 희소 그래프 생성기(410)는 목표(1210)와 연관된 각각의 요소를 사용할 수 있다. 그러나, 요 제약 구역(510DZ)에 있는 경우, 희소 그래프 생성기(410)는 요 자유 구역(510CZ) 경계 또는 (2D 맵(1000)으로부터) 보로노이 셀(610)로서 마킹된 가장 가까운 요소(510)를 따라 탐색할 수 있다. 가장 가까운 요소가 요 자유 구역(510CZ) 경계 상에 있는 경우, 희소 그래프 생성기(410)는 해당 요소를 목표로 설정할 수 있다. 가장 가까운 요소가 보로노이 셀(610)로서 마킹된 에지(810) 상에 있는 경우, 희소 그래프 생성기(410)는 각각의 가장 가까운 요소에 새로운 노드(1220)를 배치함으로써 에지(810)를 둘로 분할할 수 있다. 도 12a의 도시된 예에서, 목표(1210)는 요 제약 구역(510DZ)에 설정된다. 희소 그래프 생성기는 가장 가까운 원하는 요소가 보로노이 셀(610)이라고 결정한다. 희소 그래프 생성기(410)는 목표(1210)에 가장 가까운 요소에 새로운 노드(1220)를 생성하고, 이전 에지(810)를 2 개의 개별 에지들(810)로 분리한다. 일부 구현예들에서, 희소 그래프 생성기(410)는 2 개의 새로운 노드들(1220)을 생성하며, 하나의 노드(1220)는 전방 요 구성(512)을 나타내고, 하나의 노드(1220)는 후방 요 구성(512)을 나타낸다.
[0063] 새로운 노드들(1220)이 배치되면, 희소 그래프 생성기(410)는 로봇(10)의 시작 위치(예를 들어, 로봇의 현재 위치)가 전방 요 구성 노드(1220), 후방 요 구성 노드(1220), 또는 둘 모두에 연결되는지를 결정한다. 즉, 희소 그래프 생성기(410)는 로봇(10)이 각각의 요 구성을 갖는 노드들(1220)에 연결될 수 있는지를 결정한다. 일부 예들에서, 희소 그래프 생성기(410)는 새로운 노드(1220)를 따른 에지(810)의 2 개의 요 구성들(즉, 전방 및 후방)과 원래 또는 실제 목표(1210) 사이의 각도(1222)를 결정한다. 도 12b에 도시된 예에서, 각도가 임계치를 충족하는 경우(예를 들어, 각도가 구역(1230) 내에 있는 경우), 전방을 향하는 노드(1220)가 로봇의 위치에 연결된다. 각도가 제2 임계치를 충족하는 경우(예를 들어, 각도가 구역(1240) 내에 있는 경우), 후방을 향하는 노드(1220)가 로봇의 위치에 연결된다. 각도가 제3 임계치를 충족하는 경우(예를 들어, 각도가 구역들(1250) 내에 있는 경우), 전방을 향하는 노드(1220) 및 후방을 향하는 노드(1220) 둘 모두가 로봇의 시작 위치에 연결된다. 즉, 로봇(10)은 전방 또는 후방을 향하는 노드들(1220)의 위치로 주행할 수 있다.
[0064] 일부 예들에서, 희소 그래프 생성기(410)는 로봇(10)이 장애물과 충돌할 것임을 표시하는 노드들(812)을 연결한다. 예를 들어, 희소 그래프 생성기(410)는 항상, 로봇이 중심점으로부터 회전함으로써 선회한다고 가정할 수 있으며, 이는 일부 선회들을 불가능하게 할 수 있다. 그러나, 일부 상황들에서, 저수준 경로 생성기(130)는 로봇(10)의 중심에 있지 않은 피봇점 상에서 선회함으로써 여전히 경로를 항행 가능할 수 있으며, 이러한 상황들에서, 희소 그래프 생성기(410)는 생성기(120)가 그렇지 않으면 로봇이 횡단할 수 없다고 결정할 수 있는 노드들(812) 사이에 에지들(810)을 생성할 수 있다.
[0065] 다시 도 4를 참조하면, 중간 웨이포인트 생성기(120)는 또한 희소 그래프 생성기(410)로부터 희소 그래프(416S)를 수신하고 목표(1210), 즉 타겟 목적지에 대응하는 노드(1220)(도 12a)에 도달하기 위해 로봇(10)이 주행할 토폴로지적으로 올바른 경로(즉, 대략적 경로(1310))를 결정하도록 구성된 대략적 경로 플래너(420)를 포함한다. 일부 구현예들에서, 대략적 경로 플래너(420)는 또한 전체 구성 공간 맵(414) 및/또는 압축된 구성 공간 맵(500)을 수신한다. 이제 도 4 및 도 13을 참조하면, 맵(1100)은 요 자유 구역(510CZ) 내의 시작 지점(1320)으로부터 요 제약 구역(510DZ)을 통해 다른 요 자유 구역(510CZ)으로 항행하는 대략적 경로(1310)를 포함한다.
[0066] 경로(1310)를 생성하기 위해, 대략적 경로 플래너(420)는 탐색 알고리즘(예를 들어, A* 탐색 알고리즘)을 구현할 수 있다. 대략적 경로 플래너(420)는 탐색 알고리즘을 사용하여 2D 요 자유 구역들(510CZ)의 밀집 그리드 또는 그래프(dense grid or graph)(416D)를 탐색하여 경로(1310)를 플로팅할 수 있다. 희소 그래프 생성기(410)는 또한 밀집 그래프(416D)를 생성하며, 이를 희소 그래프(416S)와 조합하고 조합된 그래프를 대략적 경로 플래너(420)로 송신할 수 있다. 대안적으로, 대략적 경로 플래너는 해당 밀집 그래프(416D)를 생성할 수 있다. 밀집 그래프는 압축된 구성 공간 맵(500)으로부터 결정된 요 자유 구역들(510CZ)의 상호연결된 노드들의 리스트이다. 즉, 희소 그래프(416S)가 요 제약 구역(510DZ) 내의 요소들(510)의 상호연결된 노드들(812)의 리스트를 포함하는 것과 같이, 밀집 그래프(416D)는 요 자유 구역들(510CZ) 내의 요소들(510)의 상호연결된 노드들의 리스트들을 포함한다. 로봇(10)이 요 자유 구역들(510CZ)에서 자유롭게 회전할 수 있기 때문에 요 자유 공간은 배향(즉, 요) 정보가 필요하지 않으므로, 대략적 경로 플래너(420)는 밀집 그래프(416D)(희소 그래프(416S)에 대해 밀집됨)를 탐색할 수 있다. 대략적 경로 플래너(420)는 희소 그래프(416S)와 밀집 그래프(416D)를 조합하여 최종 그래프(416F)를 형성할 수 있다. 최종 그래프(416F)는 요 자유 구역들(510CZ) 및 요 제약 구역들(510DZ) 둘 모두 내에 모든 상호연결된 노드들을 포함한다. 대략적 경로 플래너(420)는 또한 탐색 알고리즘을 사용하여 요 자유 구역(510CZ)들 및 배향 정보가 포함된 요 제약 구역들(510DZ) 내의 보로노이 셀(610)에 대한 최종 그래프(416F)를 탐색할 수 있다. 대략적 경로 플래너(420)는 요 자유 구역(510CZ)을 요 제약 구역(510DZ)과 링크연결(linking)하고, 대략적 경로(1310)로 요 제약 구역(510DZ)을 횡단한다.
[0067] 밀집 그래프(416D)는 배향 정보가 부족하기 때문에(따라서 최종 그래프(416F)는 요 자유 구역들(510CZ) 내의 배향 정보가 부족함), 일부 구현예들에서, 대략적 경로 플래너(420)는 임의의 에지들(810)에 대한 임의의 배향(즉, 전방 또는 후방)이 반전되어야 하는지 여부를 결정한다. 선택적으로, 대략적 경로 플래너(420)는 에지(810)를 따라 전방을 향해 보행하도록 바이어싱(biasing)된다. 대략적 경로 플래너(420)는 요 배향이 반전될 수 있는 경로(1310)의 세그먼트들(segments)을 식별할 수 있다(즉, 전방 및 후방 배향들 모두가 유효함). 다음에, 대략적 경로 플래너(420)는 경로(1310)를 횡단하는 비용(즉, 요구 회전량)을 계산할 수 있다.
[0068] 예를 들어, 이제 도 14의 맵(1100)을 참조하면, 대략적 경로 플래너(420)는 시작 위치(1410)(각각의 화살표와 정렬되는 배향을 가짐)로부터 목표 위치(1420)(각각의 화살표와 정렬되는 배향을 가짐)까지의 경로(1430)를 계획하고 있다. 전방 바이어스로 인해, 탐색 알고리즘은 요 제약 구역(510DZ)을 통해 전방을 향하는 배향(경로 A-C)을 선택할 수 있다. 대략적 경로 플래너(420)는 선택적으로, 경로 A-C(전방을 향함) 및 경로 B-D(후방을 향함) 모두에 대한 비용을 계산한다. 주어진 예에서, 주어진 시작 및 목표 배향들이 후방을 향하기 때문에, B-D의 후방 경로는 전방을 향하는 경로 A-C보다 저렴하고(즉, 보다 적은 회전을 요구함), 대략적 경로 플래너(420)는 그에 따라 경로(1430)를 업데이트할 수 있다.
[0069] 다시 도 4를 참조하면, 일부 구현예들에서, 중간 웨이포인트 생성기(120)는 또한 웨이포인트 배치기(430)를 포함한다. 웨이포인트 배치기(430)는 대략적 경로 플래너(420)로부터 경로(1310)를 갖는 희소 그래프(416S) 및 전체 구성 공간 맵(414)을 수신한다. 웨이포인트 배치기(430)는 중간 웨이포인트들(310)을 배치하기에 적절한 위치들에 대한 경로(1310)를 처리한다. 일부 예들에서, 웨이포인트 배치기(430)는 (예를 들어, 장애물 때문에) 가시선이 최초로 상실될 때까지 경로(1310)를 따라 탐색하고 해당 위치에 웨이포인트(310)를 배치한다. 선택적으로, 웨이포인트 배치기(430)는 처리 시간을 감소시키기 위해 탐색 이전에 경로(1310)를 다운샘플링(downsampling)한다.
[0070] 이제 도 15a를 참조하면, 로봇(10)은 2 개의 몸체 장애물 구역들(510AZ) 사이에 놓인 요 제약 구역(510DZ)을 통한 경로(1310)를 따라 항행한다. 웨이포인트 배치기(430)는 로봇(10)의 현재 위치로부터 경로(1310)를 따른 다양한 지점들로 광선들(1510)을 드로잉한다. 광선들(1510) 중 하나가 몸체 장애물 구역(510AZ)의 일부와 교차하는 경우(또는, 대안적으로 로봇(10)의 폭을 고려하기 위해 몸체 장애물 구역(510AZ)의 임계 거리 내에서 교차하는 경우), 웨이포인트 배치기(430)는 가시선이 상실될 때 또는 그 직전에 광선(1510)이 경로(1310)와 교차하는 경로(1310) 상의 지점(1530)에 중간 웨이포인트(310)를 배치한다. 따라서, 가시선이 상실되는 위치를 결정하는 것은 데카르트 좌표들(즉, x 및 y 좌표들)에서 비교적 간단하다. 그러나, SE2 공간(즉, 요를 포함함)에서 가시선을 결정하는 것은 더 복잡하다.
[0071] 도 15b를 참조하면, 요를 포함하는 것을 해결하기 위해, 웨이포인트 배치기(430)는, 다운샘플링된 경로(1310)를 따른 각각의 지점에서, 포락선(envelope)(1550, 1550a 내지 1550n)을 생성하기 위해 최소 허용가능 요 및 최대 허용가능 요를 결정할 수 있다. 일부 예들에서, 웨이포인트 배치기(430)는 각각의 다운샘플링된 지점에서 최소(즉, 최내부) 포락선(1560, 1560a 내지 1560n)을 추적하고, 포락선 폭이 포락선 임계치 아래로 떨어지거나 경로(1310) 상의 지점(1530)에서 요구되는 요 구성이 포락선(1550) 외부에 있는 경우에 중간 웨이포인트(310)를 배치한다. 도시된 예에서, 포락선(1550c)의 요는 내부 포락선(1560c) 외부에 있고, 중간 웨이포인트(310)에 대한 후보가 된다.
[0072] 일부 예들에서, 웨이포인트 배치기(430)는 또한 배향이 임계 양(예를 들어, 60 도)보다 많이 변화하는 경우 요 자유 구역(510CZ)으로부터 요 제약 구역(510DZ)으로 이동할 때 중간 웨이포인트(310)를 추가한다. 선택적으로, 웨이포인트 배치기(430)는 목표에서의 배향(즉, 목표 포즈)이 현재 맵을 벗어나고(즉, 로봇의 현재 위치로부터 너무 멀리 떨어져 있음) 목표에 대한 가시선이 상실된 경우에 경로(1310)의 단부에 중간 웨이포인트(310)를 추가할 수 있다. 추가적으로, 웨이포인트 배치기(430)는 좁은 공간들에서의 교차점들로부터 멀리 웨이포인트를 시프팅(shifting)시킬 수 있다. 예를 들어, 중간 웨이포인트(310)는 교차점 주위의 임계 반경 외부까지 경로(1310) 아래로 투영될 수 있다.
[0073] 고수준 웨이포인트들(210)은 평면 상의 포지션을 표시하는 2 개의 좌표들(즉, x 및 y 좌표들), 요 값 및 시간 값을 포함할 수 있다. 시간 값은 로봇이 각각의 웨이포인트(310)를 항행하는 데 걸리는 시간의 추정 양을 표시할 수 있다. x, y 및 요 값들과 함께, 웨이포인트 배치기(430)는 유사하게 중간 웨이포인트들(310)에 추정 시간 값을 추가할 수 있다. 추정 시간 값은 수신된 임의의 속도 제한들을 사용하여 x, y 및 요에 있어서의 시작 위치로부터 웨이포인트까지의 시간의 최대량을 취함으로써 결정될 수 있다. 웨이포인트 배치기(430)는 중간 웨이포인트(310) 이후의 계획된 궤적에서 각각의 고수준 웨이포인트(210)에 대한 시간을 오프셋할 수 있다.
[0074] 다시 도 4를 참조하면, 웨이포인트 배치기(430)는 항행 루트(112)의 고수준 웨이포인트(210)에 임의의 중간 웨이포인트들(310)을 추가한다. 중간 웨이포인트 생성기는 항행 루트(112)를 저수준 경로 생성기(130)에 전달하여 각각의 웨이포인트(210, 310)로 항행하기 위한 스텝 계획(142)을 생성한다. 중간 웨이포인트 생성기(120)가 중간 웨이포인트(310)가 필요하지 않다고 결정하는(또는 적절한 위치를 찾는 데 실패하는) 시나리오들에서, 중간 웨이포인트 생성기(120)는 수신된 항행 루트(112)를 변경되지 않은 상태로 저수준 경로 생성기(130)에 전달할 수 있다.
[0075] 도 16은 로봇(10)에 대한 중간 웨이포인트들(310)을 생성하기 위한 방법(1600)에 대한 동작들의 예시적인 배열의 흐름도이다. 동작(1602)에서, 방법(1600)은, 로봇(10)의 데이터 처리 하드웨어(36)에서, 항행 루트(112)를 수신하는 단계를 포함한다. 항행 루트(112)는 시작 위치(113)에서 시작하고 목적지 위치(114)에서 종료되는 일련의 고수준 웨이포인트들(210)을 포함한다. 항행 루트(112)는 로봇(10)이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타내는 고수준 항행 데이터(50)에 기초한다.
[0076] 방법(1600)은, 동작(1604)에서, 데이터 처리 하드웨어(36)에서, 이미지 센서(31)로부터 로봇(10) 주위의 환경(8)의 이미지 데이터(17)를 수신하는 단계를 포함한다. 동작(1606)에서, 방법(1600)은, 데이터 처리 하드웨어(36)에 의해, 이미지 데이터(17)에 기초하여 적어도 하나의 중간 웨이포인트(310)를 생성하는 단계, 및 동작(1608)에서, 데이터 처리 하드웨어(36)에 의해, 적어도 하나의 중간 웨이포인트(310)를 항행 루트(112)의 일련의 고수준 웨이포인트들(210)에 추가하는 단계를 포함한다. 동작(1610)에서, 방법(1600)은, 데이터 처리 하드웨어(36)에 의해, 시작 위치(113)로부터 일련의 고수준 웨이포인트들(210) 및 적어도 하나의 중간 웨이포인트(310)를 따라 목적지 위치(114)를 향해 로봇(10)을 항행하는 단계를 포함한다.
[0077] 도 17은 본 명세서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(1700)(예를 들어, 데이터 처리 하드웨어(36) 및 메모리 하드웨어(20))의 개략도이다. 본원에 나타낸 구성요소들, 이들의 연결들 및 관계들, 및 이들의 기능들은 단지 예시적인 것이며, 본 명세서에서 설명 및/또는 청구된 발명들의 구현예들을 제한하려는 것은 아니다.
[0078] 컴퓨팅 디바이스(1700)는 프로세서(1710)(예를 들어, 데이터 처리 하드웨어(36)), 메모리(1720)(예를 들어, 메모리 하드웨어(38)), 저장 디바이스(1730), 메모리(1720) 및 고속 확장 포트들(1750)에 연결되는 고속 인터페이스/제어기(1740), 저속 버스(1770) 및 저장 디바이스(1730)에 연결되는 저속 인터페이스/제어기(1760)를 포함한다. 구성요소들(1710, 1720, 1730, 1740, 1750 및 1760) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 장착되거나 적절하게 다른 방식들로 장착될 수 있다. 프로세서(1710)(예를 들어, 데이터 처리 하드웨어)는, 고속 인터페이스(1740)에 연결된 디스플레이(1780)와 같은 외부 입/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 표시하기 위해, 메모리(1720) 또는 저장 디바이스(1730)에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(1700) 내에서 실행하기 위한 명령들을 처리할 수 있다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 메모리 유형들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(1700)이 연결될 수 있으며, 각각의 디바이스는 (예를 들어, 서버 뱅크(server bank), 블레이드 서버들의 그룹, 또는 다중 프로세서 시스템으로서) 필요한 동작들의 일부들을 제공한다. 프로세서(1710)는 도 1 및 도 4의 중간 웨이포인트 생성기(120)를 실행할 수 있다.
[0079] 메모리(1720)는 컴퓨팅 디바이스(1700) 내에 비일시적으로 정보를 저장한다. 메모리(1720)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(1720)는 컴퓨팅 디바이스(1700)에 의한 사용을 위해 임시적 또는 영구적으로 프로그램들(예를 들어, 명령들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(ROM)/프로그램 가능 판독 전용 메모리(PROM)/소거 가능한 프로그램 가능 판독 전용 메모리(EPROM)/전자적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어에 사용됨)를 포함하지만 이에 제한되지 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 상변화 메모리(PCM)뿐만 아니라, 디스크들 또는 테이프들을 포함하지만 이에 제한되지 않는다.
[0080] 저장 디바이스(1730)는 컴퓨팅 디바이스(1700)를 위한 대용량 스토리지를 제공할 수 있다. 일부 구현예들에서, 저장 디바이스(1730)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현예들에서, 저장 디바이스(1730)는, 스토리지 영역 네트워크(storage area network) 내의 디바이스들 또는 다른 구성들을 포함하는, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이일 수 있다. 추가 구현예들에서, 컴퓨터 프로그램 제품은 정보 캐리어(information carrier)에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(1720), 저장 디바이스(1730), 또는 프로세서(1710) 상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
[0081] 고속 제어기(1740)는 컴퓨팅 디바이스(1700)에 대한 대역폭 집약적 동작들(bandwidth-intensive operations)을 관리하는 한편, 저속 제어기(1760)는 보다 낮은 대역폭 집약적 동작들을 관리한다. 임무들(duties)의 그러한 할당은 단지 예시적인 것일 뿐이다. 일부 구현예들에서, 고속 제어기(1740)는 메모리(1720)에, 그리고 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(1750)에 연결된다. 일부 구현예들에서, 저속 제어기(1760)는 저장 디바이스(1730) 및 저속 확장 포트(1790)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(1790)는 하나 이상의 입/출력 디바이스들, 예컨대 키보드, 포인팅 디바이스, 스캐너, 또는, 예를 들어 네트워크 어댑터를 통해, 스위치 또는 라우터(router)와 같은 네트워킹 디바이스에 결합될 수 있다.
[0082] 본원에 설명된 시스템들 및 기술들의 다양한 구현예들은 디지털 전자 및/또는 광 회로, 집적 회로, 특수 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현예들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들로부터 데이터 및 명령들을 송신하도록 결합된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현예를 포함할 수 있다.
[0083] 이러한 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그램 가능한 프로세서에 대한 기계 명령들을 포함하고, 고급 절차 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에 사용된 바와 같이, 용어 "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"는 기계 판독 가능 신호로서 기계 명령들을 수신하는 기계 판독 가능 매체를 포함하는 프로그램 가능 프로세서에 기계 명령들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, 프로그램 가능 논리 디바이스들(PLDs))를 지칭한다. 용어 "기계 판독 가능 신호"는 기계 명령들 및/또는 데이터를 프로그램 가능한 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다.
[0084] 본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는, 데이터 처리 하드웨어로도 지칭되는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령들을 수행하기 위한 프로세서, 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어 자기 디스크들, 광자기 디스크들 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나, 또는 둘 모두를 수행하도록 작동적으로 결합된다. 그러나, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체들은, 예로서, 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
[0085] 다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 개시의 사상 및 범위로부터 벗어남이 없이 다양한 변형들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현예들은 하기의 청구범위의 범위 내에 있다.

Claims (28)

  1. 방법(1600)으로서,
    로봇(10)의 데이터 처리 하드웨어(data processing hardware)(36)에서, 항행 루트(navigation route)(112)를 수신하는 단계 ― 상기 항행 루트(112)는 시작 위치(113)에서 시작하고 목적지 위치(114)에서 종료되는 일련의 고수준 웨이포인트들(high-level waypoints)(210)을 포함하고, 상기 항행 루트(112)는 상기 로봇(10)이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타내는 고수준 항행 데이터(high-level navigation data)(50)에 기초함 ―;
    상기 데이터 처리 하드웨어(36)에서, 이미지 센서(31)로부터 상기 로봇(10) 주위의 환경(8)의 이미지 데이터(17)를 수신하는 단계;
    상기 데이터 처리 하드웨어(36)에 의해, 상기 이미지 데이터(17)에 기초하여 적어도 하나의 중간 웨이포인트(intermediate waypoint)(310)를 생성하는 단계;
    상기 데이터 처리 하드웨어(36)에 의해, 상기 적어도 하나의 중간 웨이포인트(310)를 상기 항행 루트(112)의 일련의 고수준 웨이포인트들(210)에 추가하는 단계; 및
    상기 데이터 처리 하드웨어(36)에 의해, 상기 시작 위치(113)로부터 상기 일련의 고수준 웨이포인트들(210) 및 상기 적어도 하나의 중간 웨이포인트(310)를 따라 상기 목적지 위치(114)를 향해 상기 로봇을 항행하는 단계를 포함하는,
    방법(1600).
  2. 제1 항에 있어서,
    각각의 고수준 웨이포인트(210) 및 각각의 중간 웨이포인트(310)는 평면 상의 포지션을 표시하는 2 개의 좌표들, 요 값(yaw value) 및 시간 값을 포함하고, 상기 시간 값은 상기 로봇(10)이 각각의 웨이포인트(210, 310)를 항행하는 데 걸리는 시간의 추정 양을 표시하는,
    방법(1600).
  3. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 데이터 처리 하드웨어(36)에 의해, 상기 항행 루트(112) 상의 일련의 고수준 웨이포인트들(210) 각각을 유지하는 단계를 더 포함하는,
    방법(1600).
  4. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 데이터 처리 하드웨어(36)에서, 몸체 장애물 맵(body obstacle map)(412)을 수신하는 단계를 더 포함하며, 상기 몸체 장애물 맵(412)은 상기 로봇(12)의 몸체(11)가 횡단할 수 없는 장애물들의 맵을 포함하고,
    상기 적어도 하나의 중간 웨이포인트(210)를 생성하는 단계는,
    상기 몸체 장애물 맵(412)에 기초하여 희소 그래프(sparse graph)(416S)를 생성하는 단계 ― 상기 희소 그래프(416S)는 노드들(nodes)(812) 및 에지들(edges)(810)의 리스트(list)를 포함하고, 상기 노드들(812) 및 에지들(810)은 상기 로봇(10)이 상기 환경(8)에서 주행할 수 있는 경로들을 나타냄 ―;
    상기 노드들(812)의 리스트로부터의 제1 노드(812)로부터 상기 노드들(812)의 리스트로부터의 제2 노드(812)까지의 대략적 경로(coarse path)(1310)를 계획하는 단계 ― 상기 제1 노드(812) 및 상기 제2 노드(812) 각각은 상기 환경(8) 내의 공간을 나타냄 ―;
    상기 이미지 센서(31)에 의한 가시선(line of sight)이 상실되는, 상기 대략적 경로(1310)를 따른 지점(1530)을 결정하는 단계; 및
    상기 가시선이 상실된 지점(1530)에 상기 적어도 하나의 중간 웨이포인트(310) 중 하나를 생성하는 단계를 포함하는,
    방법(1600).
  5. 제4 항에 있어서,
    상기 희소 그래프(416S)를 생성하는 단계는,
    상기 몸체 장애물 맵(412)에 기초하여 전체 구성 공간 맵(full configuration space map)(414)을 생성하는 단계 ― 상기 전체 구성 공간 맵(414)은 요소들(510)의 2차원 그리드(grid)를 포함하고, 상기 그리드의 각 요소(510)는 상기 환경(8)의 공간을 나타내고, 상기 전체 구성 공간 맵(414)의 각 요소(510)는 요 구성들(yaw configurations)(512)의 각 세트를 포함하고, 각각의 요 구성(512)은 유효하거나 무효한 것으로 분류되며, 유효한 요 구성(512)은 각각의 요소(510)와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전한 상기 로봇(10)의 요 구성(512)을 나타내고, 무효한 요 구성(512)은 각각의 요소(510)와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전하지 않은 상기 로봇(10)의 요 구성(512)을 나타냄 ―;
    상기 전체 구성 공간 맵(414)으로부터 압축된 구성 공간 맵(compressed configuration space map)(500)을 생성하는 단계 ― 상기 압축된 구성 공간 맵(500)은 요소들(510)의 제2 2차원 그리드를 포함하고, 상기 제2 그리드의 각 요소(510)는 상기 환경(8)의 공간을 나타내고, 상기 제2 그리드의 각 요소(510)는 (i) 요 충돌 구역(yaw collision zone)(510BZ), (ii) 요 자유 구역(yaw free zone)(510CZ), 또는 (iii) 요 제약 구역(yaw constrained zone)(510DZ) 중 하나로 분류됨 ―; 및
    상기 압축된 구성 공간 맵(500)으로부터 상기 희소 그래프(416S)를 생성하는 단계를 포함하는,
    방법(1600).
  6. 제5 항에 있어서,
    상기 제1 노드(812)로부터 상기 제2 노드(812)까지의 대략적 경로(1310)를 계획하는 단계는,
    상기 압축된 구성 공간 맵(500)으로부터 밀집 그래프(dense graph)(416D)를 생성하는 단계 ― 상기 밀집 그래프(416D)는 요 자유 구역(510CZ)으로 분류된 요소들(510)을 포함함 ―; 및
    상기 희소 그래프(416S)로부터의 에지들(810)을 상기 밀집 그래프(416D)로부터의 요소들(510)과 링크연결(linking)하는 단계를 포함하는,
    방법(1600).
  7. 제6 항에 있어서,
    상기 에지들(810)을 상기 밀집 그래프(416D)로부터의 요소들(510)과 링크연결하는 단계는,
    상기 희소 그래프(416S)와 상기 밀집 그래프(416D)를 조합하여 최종 그래프(416F)를 생성하는 단계; 및
    상기 최종 그래프(416F)에 대해 A* 탐색 알고리즘(A* search algorithm)을 실행하는 단계를 포함하는,
    방법(1600).
  8. 제5 항에 있어서,
    상기 희소 그래프(416S)를 생성하는 단계는 복수의 보로노이 셀들(Voronoi cells)(610)을 상기 압축된 구성 공간 맵(500) 상에 오버레이(overlay)하는 단계를 더 포함하며, 각각의 보로노이 셀(610)은 상기 희소 그래프(416S)에서 요 제약 구역(510DZ)으로 분류되고, 각각의 보로노이 셀(610)은 요 충돌 구역(510BZ)으로 분류된 적어도 2 개의 요소들(510)로부터 등거리에 있는,
    방법(1600).
  9. 제8 항에 있어서,
    상기 희소 그래프(416S)를 생성하는 단계는 각각의 보로노이 셀(610)을 에지(810) 또는 노드(812)로 분류하는 단계를 더 포함하는,
    방법(1600).
  10. 제9 항에 있어서,
    각각의 보로노이 셀(610)을 분류하는 단계는 플러드 충전 알고리즘(flood fill algorithm)을 실행하는 단계를 포함하는,
    방법(1600).
  11. 제5 항에 있어서,
    상기 제1 노드(812)로부터 상기 제2 노드(812)까지의 대략적 경로(1310)를 계획하는 단계는 에지들(810)을 프루닝(pruning)하는 단계를 포함하며, 각각의 프루닝된 에지(1010)는 임계 길이 미만의 요소들(510)을 포함하고, 요 충돌 구역(510BZ) 또는 요 제약 구역(510DZ)으로 분류되는,
    방법(1600).
  12. 제4 항에 있어서,
    상기 이미지 센서(31)에 의한 가시선이 상실되는, 상기 대략적 경로(1310)를 따른 지점(1530)을 결정하는 단계는,
    계획된 대략적 경로(1310)를 따른 각 요소(510)에서 최소 허용가능 요 및 최대 허용가능 요(1550)를 결정하는 단계;
    상기 최소 허용가능 요 및 상기 최대 허용가능 요(1550)에 기초하여 최소 포락선(envelope)(1560)을 결정하는 단계; 및
    상기 대략적 경로(1310) 상의 지점(1530)에서 요구되는 요가 상기 최소 포락선(1560) 외부에 있다고 결정하는 단계를 포함하는,
    방법(1600).
  13. 제1 항 내지 제12 항 중 어느 한 항에 있어서,
    상기 데이터 처리 하드웨어(36)에 의해, 상기 고수준 웨이포인트들(210) 및 상기 적어도 하나의 중간 웨이포인트(310)를 갖는 상기 항행 루트(112)를 저수준 경로 생성기(low-level generator)(130)로 송신하는 단계를 더 포함하는,
    방법(1600).
  14. 제13 항에 있어서,
    상기 데이터 처리 하드웨어(36)에 의해, 상기 적어도 하나의 중간 웨이포인트(310)를 상기 항행 루트(112)에 추가할지 여부를 결정하는 단계; 및
    상기 적어도 하나의 중간 웨이포인트(310)를 상기 항행 루트(112)에 추가하지 않는다고 결정하는 것에 응답하여, 상기 데이터 처리 하드웨어(36)에 의해, 상기 항행 루트(112)를 변경되지 않은 상태로 상기 저수준 경로 생성기(130)에 전달하는 단계를 더 포함하는,
    방법(1600).
  15. 로봇(10)으로서,
    몸체(11);
    상기 몸체(11)에 결합되고 환경(8)에 대해 상기 로봇(10)을 기동하도록 구성된 다리들(12);
    상기 다리들(12)과 통신하는 데이터 처리 하드웨어(36); 및
    상기 데이터 처리 하드웨어(36)와 통신하는 메모리 하드웨어(memory hardware)(38)를 포함하며, 상기 메모리 하드웨어(38)는, 상기 데이터 처리 하드웨어(36) 상에서 실행될 때, 상기 데이터 처리 하드웨어(36)가 동작들을 수행하게 하는 명령들을 저장하고, 상기 동작들은,
    항행 루트(112)를 수신하는 동작 ― 상기 항행 루트(112)는 시작 위치(113)에서 시작하고 목적지 위치(114)에서 종료되는 일련의 고수준 웨이포인트들(210)을 포함하고, 상기 항행 루트(112)는 상기 로봇(10)이 항행할 영역에 있어서의 정적 장애물들의 위치들을 나타내는 고수준 항행 데이터(50)에 기초함 ―;
    이미지 센서(31)로부터 상기 로봇(10) 주위의 환경(8)의 이미지 데이터(17)를 수신하는 동작;
    상기 이미지 데이터(17)에 기초하여 적어도 하나의 중간 웨이포인트(310)를 생성하는 동작;
    상기 적어도 하나의 중간 웨이포인트(310)를 상기 항행 루트(112)의 일련의 고수준 웨이포인트들(210)에 추가하는 동작; 및
    상기 시작 위치(113)로부터 상기 일련의 고수준 웨이포인트들(210) 및 상기 적어도 하나의 중간 웨이포인트(310)를 따라 상기 목적지 위치(114)를 향해 상기 로봇을 항행하는 동작을 포함하는,
    로봇(10).
  16. 제15 항에 있어서,
    각각의 고수준 웨이포인트(210) 및 각각의 중간 웨이포인트(310)는 평면 상의 포지션을 표시하는 2 개의 좌표들, 요 값 및 시간 값을 포함하고, 상기 시간 값은 상기 로봇(10)이 각각의 웨이포인트(210, 310)를 항행하는 데 걸리는 시간의 추정 양을 표시하는,
    로봇(10).
  17. 제15 항 또는 제16 항에 있어서,
    상기 항행 루트(112) 상의 일련의 고수준 웨이포인트들(210) 각각을 유지하는 동작을 더 포함하는,
    로봇(10).
  18. 제15 항 내지 제17 항 중 어느 한 항에 있어서,
    몸체 장애물 맵(412)을 수신하는 동작을 더 포함하며, 상기 몸체 장애물 맵(412)은 상기 로봇(12)의 몸체(11)가 횡단할 수 없는 장애물들의 맵을 포함하고,
    상기 적어도 하나의 중간 웨이포인트(210)를 생성하는 동작은,
    상기 몸체 장애물 맵(412)에 기초하여 희소 그래프(416S)를 생성하는 동작 ― 상기 희소 그래프(416S)는 노드들(812) 및 에지들(810)의 리스트를 포함하고, 상기 노드들(812) 및 에지들(810)은 상기 로봇(10)이 상기 환경(8)에서 주행할 수 있는 경로들을 나타냄 ―;
    상기 노드들(812)의 리스트로부터의 제1 노드(812)로부터 상기 노드들(812)의 리스트로부터의 제2 노드(812)까지의 대략적 경로(1310)를 계획하는 동작 ― 상기 제1 노드(812) 및 상기 제2 노드(812) 각각은 상기 환경(8) 내의 공간을 나타냄 ―;
    상기 이미지 센서(31)에 의한 가시선이 상실되는, 상기 대략적 경로(1310)를 따른 지점(1530)을 결정하는 동작; 및
    상기 가시선이 상실된 지점(1530)에 상기 적어도 하나의 중간 웨이포인트(310) 중 하나를 생성하는 동작을 포함하는,
    로봇(10).
  19. 제18 항에 있어서,
    상기 희소 그래프(416S)를 생성하는 동작은,
    상기 몸체 장애물 맵(412)에 기초하여 전체 구성 공간 맵(414)을 생성하는 동작 ― 상기 전체 구성 공간 맵(414)은 요소들(510)의 2차원 그리드를 포함하고, 상기 그리드의 각 요소(510)는 상기 환경(8)의 공간을 나타내고, 상기 전체 구성 공간 맵(414)의 각 요소(510)는 요 구성들(512)의 각 세트를 포함하고, 각각의 요 구성(512)은 유효하거나 무효한 것으로 분류되며, 유효한 요 구성(512)은 각각의 요소(510)와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전한 상기 로봇(10)의 요 구성(512)을 나타내고, 무효한 요 구성(512)은 각각의 요소(510)와 연관된 공간에서 장애물들과 접촉하는 것으로부터 안전하지 않은 상기 로봇(10)의 요 구성(512)을 나타냄 ―;
    상기 전체 구성 공간 맵(414)으로부터 압축된 구성 공간 맵(500)을 생성하는 동작 ― 상기 압축된 구성 공간 맵(500)은 요소들(510)의 제2 2차원 그리드를 포함하고, 상기 제2 그리드의 각 요소(510)는 상기 환경(8)의 공간을 나타내고, 상기 제2 그리드의 각 요소(510)는 (i) 요 충돌 구역(510BZ), (ii) 요 자유 구역(510CZ), 또는 (iii) 요 제약 구역(510DZ) 중 하나로 분류됨 ―; 및
    상기 압축된 구성 공간 맵(500)으로부터 상기 희소 그래프(416S)를 생성하는 동작을 포함하는,
    로봇(10).
  20. 제19 항에 있어서,
    상기 제1 노드(812)로부터 상기 제2 노드(812)까지의 대략적 경로(1310)를 계획하는 동작은,
    상기 압축된 구성 공간 맵(500)으로부터 밀집 그래프(416D)를 생성하는 동작 ― 상기 밀집 그래프(416D)는 요 자유 구역(510CZ)으로 분류된 요소들(510)을 포함함 ―; 및
    상기 희소 그래프(416S)로부터의 에지들(810)을 상기 밀집 그래프(416D)로부터의 요소들(510)과 링크연결하는 동작을 포함하는,
    로봇(10).
  21. 제20 항에 있어서,
    상기 에지들(810)을 상기 밀집 그래프(416D)로부터의 요소들(510)과 링크연결하는 동작은,
    상기 희소 그래프(416S)와 상기 밀집 그래프(416D)를 조합하여 최종 그래프(416F)를 생성하는 동작; 및
    상기 최종 그래프(416F)에 대해 A* 탐색 알고리즘을 실행하는 동작을 포함하는,
    로봇(10).
  22. 제19 항에 있어서,
    상기 희소 그래프(416S)를 생성하는 동작은 복수의 보로노이 셀들(610)을 상기 압축된 구성 공간 맵(500) 상에 오버레이하는 동작을 더 포함하며, 각각의 보로노이 셀(610)은 상기 희소 그래프(416S)에서 요 제약 구역(510DZ)으로 분류되고, 각각의 보로노이 셀(610)은 요 충돌 구역(510BZ)으로 분류된 적어도 2 개의 요소들(510)로부터 등거리에 있는,
    로봇(10).
  23. 제22 항에 있어서,
    상기 희소 그래프(416S)를 생성하는 동작은 각각의 보로노이 셀(610)을 에지(810) 또는 노드(812)로 분류하는 동작을 더 포함하는,
    로봇(10).
  24. 제23 항에 있어서,
    각각의 보로노이 셀(610)을 분류하는 동작은 플러드 충전 알고리즘을 실행하는 동작을 포함하는,
    로봇(10).
  25. 제19 항에 있어서,
    상기 제1 노드(812)로부터 상기 제2 노드(812)까지의 대략적 경로(1310)를 계획하는 동작은 에지들(810)을 프루닝하는 동작을 포함하며, 각각의 프루닝된 에지(1010)는 임계 길이 미만의 요소들(510)을 포함하고, 요 충돌 구역(510BZ) 또는 요 제약 구역(510DZ)으로 분류되는,
    로봇(10).
  26. 제18 항에 있어서,
    상기 이미지 센서(31)에 의한 가시선이 상실되는, 상기 대략적 경로(1310)를 따른 지점(1530)을 결정하는 동작은,
    계획된 대략적 경로(1310)를 따른 각 요소(510)에서 최소 허용가능 요 및 최대 허용가능 요(1550)를 결정하는 동작;
    상기 최소 허용가능 요 및 상기 최대 허용가능 요(1550)에 기초하여 최소 포락선(1560)을 결정하는 동작; 및
    상기 대략적 경로(1310) 상의 지점(1530)에서 요구되는 요가 상기 최소 포락선(1560) 외부에 있다고 결정하는 동작을 포함하는,
    로봇(10).
  27. 제15 항 내지 제26 항 중 어느 한 항에 있어서,
    상기 고수준 웨이포인트들(210) 및 상기 적어도 하나의 중간 웨이포인트(310)를 갖는 상기 항행 루트(112)를 저수준 경로 생성기(130)로 송신하는 동작을 더 포함하는,
    로봇(10).
  28. 제27 항에 있어서,
    상기 적어도 하나의 중간 웨이포인트(310)를 상기 항행 루트(112)에 추가할지 여부를 결정하는 동작; 및
    상기 적어도 하나의 중간 웨이포인트(310)를 상기 항행 루트(112)에 추가하지 않는다고 결정하는 것에 응답하여, 상기 항행 루트(112)를 변경되지 않은 상태로 상기 저수준 경로 생성기(130)에 전달하는 동작을 더 포함하는,
    로봇(10).
KR1020227007114A 2019-08-06 2019-09-13 중간 웨이포인트 생성기 KR20220078563A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962883438P 2019-08-06 2019-08-06
US62/883,438 2019-08-06
PCT/US2019/051092 WO2021025707A1 (en) 2019-08-06 2019-09-13 Intermediate waypoint generator
US16/569,885 US11268816B2 (en) 2019-08-06 2019-09-13 Intermediate waypoint generator
US16/569,885 2019-09-13

Publications (1)

Publication Number Publication Date
KR20220078563A true KR20220078563A (ko) 2022-06-10

Family

ID=74501887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227007114A KR20220078563A (ko) 2019-08-06 2019-09-13 중간 웨이포인트 생성기

Country Status (6)

Country Link
US (3) US11268816B2 (ko)
EP (1) EP4010659A1 (ko)
JP (1) JP7502409B2 (ko)
KR (1) KR20220078563A (ko)
CN (1) CN114174766A (ko)
WO (1) WO2021025707A1 (ko)

Families Citing this family (12)

* 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
US11548151B2 (en) * 2019-04-12 2023-01-10 Boston Dynamics, Inc. Robotically negotiating stairs
KR20220078563A (ko) 2019-08-06 2022-06-10 보스턴 다이나믹스, 인크. 중간 웨이포인트 생성기
US20230022637A1 (en) * 2019-11-28 2023-01-26 Sony Group Corporation Information processing apparatus, information processing method, and program
US11927961B2 (en) 2020-04-20 2024-03-12 Boston Dynamics, Inc. Constrained robot autonomy language
US11712802B2 (en) 2020-04-20 2023-08-01 Boston Dynamics, Inc. Construction constrained motion primitives from robot maps
US11720108B2 (en) * 2020-12-22 2023-08-08 Baidu Usa Llc Natural language based indoor autonomous navigation
US20220388170A1 (en) * 2021-06-04 2022-12-08 Boston Dynamics, Inc. Alternate Route Finding for Waypoint-based Navigation Maps
CN117795444A (zh) * 2021-06-04 2024-03-29 波士顿动力公司 动态环境中导航的定向探索
WO2023140928A1 (en) 2022-01-21 2023-07-27 Boston Dynamics, Inc. Systems and methods for recording robot missions
CN114577217B (zh) * 2022-05-05 2022-07-29 季华实验室 基于冯洛诺伊图的路径规划方法、装置、设备及存储介质
CN117724467A (zh) * 2022-09-08 2024-03-19 华为云计算技术有限公司 一种路径规划方法、相关装置及***

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111401A (en) * 1990-05-19 1992-05-05 The United States Of America As Represented By The Secretary Of The Navy Navigational control system for an autonomous vehicle
JP3467136B2 (ja) 1995-11-07 2003-11-17 富士重工業株式会社 自律走行車の走行制御装置
JP3994950B2 (ja) 2003-09-19 2007-10-24 ソニー株式会社 環境認識装置及び方法、経路計画装置及び方法、並びにロボット装置
US20050216182A1 (en) 2004-03-24 2005-09-29 Hussain Talib S Vehicle routing and path planning
JP4479372B2 (ja) 2004-06-25 2010-06-09 ソニー株式会社 環境地図作成方法、環境地図作成装置、及び移動型ロボット装置
US7444237B2 (en) 2005-01-26 2008-10-28 Fujitsu Limited Planning a journey that includes waypoints
JP2006239844A (ja) * 2005-03-04 2006-09-14 Sony Corp 障害物回避装置、障害物回避方法及び障害物回避プログラム並びに移動型ロボット装置
WO2007051972A1 (en) 2005-10-31 2007-05-10 Qinetiq Limited Navigation system
US20070282564A1 (en) * 2005-12-06 2007-12-06 Microvision, Inc. Spatially aware mobile projection
US8326469B2 (en) * 2006-07-14 2012-12-04 Irobot Corporation Autonomous behaviors for a remote vehicle
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 農用作業車
US8346391B1 (en) * 2006-12-28 2013-01-01 Science Applications International Corporation Methods and systems for an autonomous robotic platform
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 삼성전자주식회사 로봇 및 그 제어방법
IL200921A (en) * 2009-09-14 2016-05-31 Israel Aerospace Ind Ltd A robotic carry system for infantry and useful methods for the above purpose
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
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
WO2013074919A2 (en) * 2011-11-16 2013-05-23 Flextronics Ap , Llc Universal bus in the car
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
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 上海化学工业区公共管廊有限公司 机器人视频***
EP2933604B1 (en) 2014-04-14 2016-11-30 Softbank Robotics Europe A method for localizing a robot in a localization plane
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 深圳先进技术研究院 移动导航方法和***
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
US9586316B1 (en) * 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
WO2017090108A1 (ja) 2015-11-25 2017-06-01 株式会社日立製作所 棚配置システム、搬送ロボット及び棚配置方法
US20170165835A1 (en) 2015-12-09 2017-06-15 Qualcomm Incorporated Rapidly-exploring randomizing feedback-based motion planning
US9868210B1 (en) 2015-12-30 2018-01-16 Google Inc. Methods and systems for planning a body position of a robotic device
US10471611B2 (en) 2016-01-15 2019-11-12 Irobot Corporation Autonomous monitoring robot systems
JP6492024B2 (ja) * 2016-03-30 2019-03-27 株式会社豊田中央研究所 移動体
US10054447B2 (en) * 2016-08-17 2018-08-21 Sharp Laboratories Of America, Inc. Lazier graph-based path planning for autonomous navigation
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
JP6982999B2 (ja) * 2017-07-20 2021-12-17 株式会社Ihiエアロスペース 経路決定装置と経路決定方法
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
CN108052103B (zh) 2017-12-13 2020-12-04 中国矿业大学 基于深度惯性里程计的巡检机器人地下空间同时定位和地图构建方法
US10606269B2 (en) * 2017-12-19 2020-03-31 X Development Llc Semantic obstacle recognition for path planning
WO2019200053A1 (en) * 2018-04-12 2019-10-17 Uber Technologies, Inc. Autonomous vehicle control using service pools across different service entities
CN109029417B (zh) * 2018-05-21 2021-08-10 南京航空航天大学 基于混合视觉里程计和多尺度地图的无人机slam方法
CN108801269B (zh) * 2018-08-29 2021-11-12 山东大学 一种室内云机器人导航***及方法
US11747825B2 (en) 2018-10-12 2023-09-05 Boston Dynamics, Inc. Autonomous map traversal with waypoint matching
CN109540142B (zh) * 2018-11-27 2021-04-06 达闼科技(北京)有限公司 一种机器人定位导航的方法、装置、计算设备
KR20220078563A (ko) 2019-08-06 2022-06-10 보스턴 다이나믹스, 인크. 중간 웨이포인트 생성기
CN111604916B (zh) 2020-04-30 2024-04-02 杭州优云科技有限公司 一种机房it设备故障机柜u位定位***及方法
CN211956515U (zh) 2020-04-30 2020-11-17 上海允登信息科技有限公司 一种数据中心it设备智能资产盘点***
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
CN117795444A (zh) 2021-06-04 2024-03-29 波士顿动力公司 动态环境中导航的定向探索
US20220388170A1 (en) 2021-06-04 2022-12-08 Boston Dynamics, Inc. Alternate Route Finding for Waypoint-based Navigation Maps
CN113633219B (zh) 2021-07-23 2022-12-20 美智纵横科技有限责任公司 回充路径确定方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
EP4010659A1 (en) 2022-06-15
US20230400307A1 (en) 2023-12-14
WO2021025707A1 (en) 2021-02-11
US20220155078A1 (en) 2022-05-19
US20210041243A1 (en) 2021-02-11
US11268816B2 (en) 2022-03-08
JP7502409B2 (ja) 2024-06-18
JP2022542807A (ja) 2022-10-07
CN114174766A (zh) 2022-03-11
US11774247B2 (en) 2023-10-03

Similar Documents

Publication Publication Date Title
US11774247B2 (en) Intermediate waypoint generator
CN110262518B (zh) 基于轨迹拓扑地图和避障的车辆导航方法、***及介质
US10705528B2 (en) Autonomous visual navigation
Sadat et al. Feature-rich path planning for robust navigation of MAVs with mono-SLAM
Kolhatkar et al. Review of SLAM algorithms for indoor mobile robot with LIDAR and RGB-D camera technology
Jaspers et al. Multi-modal local terrain maps from vision and lidar
JP7450814B2 (ja) 駐車スペースのハイブリッド探索を用いた自律駐車
WO2003096054A2 (en) Real-time target tracking of an unpredictable target amid unknown obstacles
US20220388170A1 (en) Alternate Route Finding for Waypoint-based Navigation Maps
RU2740229C1 (ru) Способ локализации и построения навигационных карт мобильного сервисного робота
Karkowski et al. Real-time footstep planning using a geometric approach
Smith et al. Real-time egocentric navigation using 3d sensing
Fassbender et al. Landmark-based navigation in large-scale outdoor environments
Mäkelä Outdoor navigation of mobile robots
US20220196410A1 (en) Vehicle navigation
Shojaeipour et al. Motion planning for mobile robot navigation using combine quad-tree decomposition and voronoi diagrams
Piccinelli et al. Hybrid motion planner integrating global voronoi diagrams and local velocity obstacle method
Shoushtari et al. 3d indoor localization using 5g-based particle filtering and cad plans
Liang et al. Of-vo: Reliable navigation among pedestrians using commodity sensors
Aladem et al. Evaluation of a Stereo Visual Odometry Algorithm for Passenger Vehicle Navigation
Masehian et al. Mobile robot online motion planning using generalized Voronoi graphs
Gujarathi et al. Design and Development of Autonomous Delivery Robot
Gujarathi et al. Aman Jain, Navid Panchi under the guidance of Dr. Ashwin Dhabale and
Ferrin Autonomous Goal-Based Mapping and Navigation Using a Ground Robot
Rozman et al. Path planning and traversable area marking for stereo vision–based 3D map building