KR102434212B1 - 2d 및 3d 경로 계획을 이용한 로봇 내비게이션 - Google Patents

2d 및 3d 경로 계획을 이용한 로봇 내비게이션 Download PDF

Info

Publication number
KR102434212B1
KR102434212B1 KR1020207033665A KR20207033665A KR102434212B1 KR 102434212 B1 KR102434212 B1 KR 102434212B1 KR 1020207033665 A KR1020207033665 A KR 1020207033665A KR 20207033665 A KR20207033665 A KR 20207033665A KR 102434212 B1 KR102434212 B1 KR 102434212B1
Authority
KR
South Korea
Prior art keywords
robot
space
path
dimensional shape
computers
Prior art date
Application number
KR1020207033665A
Other languages
English (en)
Other versions
KR20210002615A (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 엑스 디벨롭먼트 엘엘씨
Priority to KR1020227028206A priority Critical patent/KR102478975B1/ko
Publication of KR20210002615A publication Critical patent/KR20210002615A/ko
Application granted granted Critical
Publication of KR102434212B1 publication Critical patent/KR102434212B1/ko

Links

Images

Classifications

    • 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
    • B25J9/1666Avoiding collision or forbidden zones
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • 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
    • 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
    • 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/40476Collision, planning for collision free path
    • 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/40477Plan path independent from obstacles, then correction for obstacles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/06Communication with another machine
    • Y10S901/07Conveyor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/09Closed loop, sensor feedback controls arm movement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • Y10S901/47Optical

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

2D 및 3D 경로 계획을 이용한 로봇 내비게이션을 위한, 컴퓨터-판독가능 저장 디바이스들을 포함하는, 방법들, 시스템들, 및 장치. 개시된 방법에서, 로봇은 공간 내의 물체들의 2차원 레이아웃을 지시하는 맵 데이터에 액세스하고 로봇이 횡단하기 위한 후보 경로들을 평가한다. 후보 경로들이 로봇의 2차원 프로파일에 대해 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 것에 응답하여, 로봇은 공간 내의 물체의 3차원 형상에 관하여 로봇의 3차원 형상을 평가한다. 3차원 형상들의 평가에 기초하여, 로봇은 공간을 통해 횡단하기 위한 충돌 회피 경로를 결정한다.

Description

2D 및 3D 경로 계획을 이용한 로봇 내비게이션
본 개시내용은 일반적으로 로봇 내비게이션에 관한 것이다.
로봇들이 공간의 여기저기를 이동할 때, 그들은 그들의 환경 내의 장애물들 및 물체들 주위로 내비게이팅할 필요가 있을 수 있다.
로봇은 직면하는 조건들에 기초하여 2차원(2D) 경로 계획과 3차원(3D) 경로 계획 간에 동적으로 스위칭할 수 있다. 예를 들어, 로봇은 계산 효율을 위해 대부분의 시간 동안 2D 경로 플래너를 사용할 수 있다. 로봇의 2D 플래너는, 평면도(floor plan)와 유사한, 2D 점유 격자(occupancy grid)를 이용하여 공간 내의 물체들의 위치들을 매핑할 수 있다. 2D 플래너는 또한 로봇의 2D 프로파일, 예를 들어, 바닥의 평면 상으로의 로봇의 투영을 이용하여 공간 내의 물체들 주위에 로봇을 위한 충돌 회피 경로(collision-free path)가 존재하는지를 결정한다. 로봇이 2D 점유 격자를 이용하여 충돌 회피 경로를 식별하면, 로봇은 잠재적인 장애물들의 3D 분석의 더 높은 계산 요구들을 피하면서 2D 기법을 이용하여 안전하게 내비게이팅할 수 있다.
로봇이 2D 분석을 이용하여 충돌 회피 경로를 식별하지 못한다면, 로봇은 충돌 회피 경로가 존재하는지에 대한 더 섬세한 평가를 수행하기 위해 3D 경로 계획으로 일시적으로 스위칭할 수 있다. 3D 기법들은 더 많은 계산 리소스들을 사용하지만, 로봇이 한정된 공간들을 내비게이팅하는 그것의 능력을 더 정확하게 평가할 수 있게 한다. 로봇은 3D 경로 계획이 이용되는 특정 시나리오들 또는 경로 세그먼트들을 검출할 수 있다. 이는 로봇의 최대 2D 프로파일(예를 들어, 로봇의 최대 폭을 지시함)은 영역을 통과하기에 맞지 않지만, 로봇의 최소 2D 프로파일(예를 들어, 로봇의 최소 폭을 지시함)은 영역을 통과하기에 맞는 때를 검출하는 것을 포함한다. 이 분석은 잠재적인 경로가 존재할 때만 3D 경로 계획을 이용함으로써 전력 및 계산 리소스들을 보존할 수 있다. 로봇의 최소 치수들조차 영역을 통과하기에 맞지 않는다면, 2D 경로 계획이 가능한 경로가 존재하지 않음을 보여줄 때 3D 경로 계획에 대한 불필요한 계산이 회피된다.
상보적인 2D 및 3D 경로 계획의 사용은 효율을 유지하면서 복잡한 환경들을 내비게이팅하는 로봇의 능력을 증가시킨다. 예를 들어, 방 안의 둥근 테이블에 대해, 테이블 상부의 전체 영역은 2D 점유 격자에서 차단된 것으로 보여질 것이다. 그러나, 테이블의 기부는 테이블 상부보다 상당히 좁고, 로봇의 일부가 테이블 상부 아래로 또는 그 위로 약간 연장하면서 로봇이 옆을 지나갈 수 있을 정도로 충분히 좁을 수 있다. 3D 분석은 로봇의 수직 프로파일을 테이블의 수직 프로파일과 비교하여 로봇이 테이블과 충돌하지 않고 안전하게 통과할 수 있는지를 결정한다. 게다가, 3D 분석은 로봇의 포즈를 변경하는 방법, 예를 들어, 로봇 팔 또는 다른 컴포넌트를 들어 올리거나 내리고, 로봇의 수직 프로파일을 변경하고 좁은 공간에서 여유를 제공하는 방법을 또한 결정할 수 있다.
일부 구현들에서, 이 방법은 로봇에 의해 수행되고 (i) 상기 로봇에 의해, 공간 내의 물체들의 2D 레이아웃을 지시하는 맵 데이터에 액세스하는 단계; (ii) 상기 로봇에 의해, 상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계; (iii) 상기 로봇에 의해, 상기 후보 경로들이 상기 로봇의 2D 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계; (iv) 상기 결정에 응답하여, 상기 로봇에 의해, 상기 공간 내의 물체의 3D 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 단계; (v) 상기 로봇에 의해, 상기 공간 내의 물체의 상기 3D 형상에 관하여 상기 로봇의 3D 형상을 평가하는 것에 기초하여 경로를 결정하는 단계를 포함한다.
일부 구현들에서, 상기 로봇의 2D 프로파일은 상기 로봇의 최소 2D 프로파일이다.
일부 구현들에서, 이 방법은, 상기 로봇에 의해, 상기 공간 내의 물체의 위치 및 상기 물체에 의해 점유된 영역을 결정하고, 상기 로봇에 의해, 상기 로봇이 횡단하기 위한 경로 세그먼트를 생성함으로써, 상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계를 포함하고, 상기 경로 세그먼트는 상기 물체에 의해 점유된 영역과 교차하지 않는다. 일부 구현들에서, 상기 로봇은, (i) 상기 경로 세그먼트의 길이를 따라 상기 로봇의 2D 프로파일을 추적함으로써 상기 경로 세그먼트를 따른 2D 영역을 생성하고 (ii) 상기 경로 세그먼트를 따른 영역이 상기 물체에 의해 점유된 영역과 교차한다고 결정함으로써, 상기 후보 경로들이 상기 로봇의 2D 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정할 수 있다.
일부 구현들에서, 상기 로봇의 3D 형상은 상기 로봇의 제1 구성에 대응하는 제1 3D 형상이고, 상기 공간 내의 물체의 3D 형상에 관하여 상기 로봇의 3D 형상을 평가하는 것에 기초하여 경로를 결정하는 단계는 (i) 상기 공간 내의 물체의 3D 형상에 관하여 상기 로봇의 제1 3D 형상을 평가하는 것에 기초하여, 상기 로봇에 의해, 상기 로봇의 제1 3D 형상이 상기 물체의 3D 형상에 교차한다고 결정하는 단계, 및 (ii) 상기 결정에 응답하여, 상기 로봇에 의해, 상기 물체의 3D 형상에 관하여 상기 로봇의 제2 3D 형상을 평가하는 것에 기초하여 경로를 결정하는 단계 - 상기 로봇의 제2 3D 형상은 상기 로봇의 제2 구성에 대응함 - 를 포함한다.
일부 구현들에서, 상기 공간 내의 물체들의 2D 레이아웃을 지시하는 맵 데이터에 액세스하는 단계는, 상기 로봇에 의해, 통신 네트워크를 통해 서버로부터 맵 데이터를 수신하는 단계를 포함한다.
일부 구현들에서, 상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는, 상기 로봇에 의해, 상기 로봇이 상기 공간을 횡단하기 위한 둘 이상의 후보 경로를 평가하는 단계를 포함한다. 그러한 구현들에서, 상기 로봇은 상기 둘 이상의 후보 경로 중 어느 것도 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정함으로써 상기 후보 경로들이 상기 로봇의 2D 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정할 수 있다.
일부 구현들에서, 설명된 방법들 및 동작들은 로봇에 의해 수행될 수 있다. 일부 구현들에서, 하나 이상의 비-일시적인 컴퓨터-판독가능 매체는, 하나 이상의 컴퓨터에 의해 실행될 때, 하나 이상의 컴퓨터로 하여금 설명된 동작들을 수행하게 하는 명령어들을 저장할 수 있다.
개시된 시스템들 및 기법들의 특정 구현들은 특정 이점들을 가질 수 있다. 2D 및 3D 경로 계획을 페어링함으로써, 로봇은, 충돌 회피 경로가 존재한다면 이를 식별할 것임을 여전히 보장하면서 그것의 계산 부하를 감소시킬 수 있다. 계산 요구를 감소시키는 것은 배터리 전력을 보존하고 다른 작업들을 위한 처리 능력을 마련한다.
주로 2D 경로 계획을 이용하여 내비게이팅함으로써, 로봇은 열린 공간들을 내비게이팅할 때 2D 분석 기법들의 계산 효율을 활용할 수 있다. 추가적으로, 2D 분석의 효율은 로봇에 의한 높은 응답성 및 높은 리프레시 레이트들을 허용한다. 따라서, 2D 경로 계획 시스템은 장애물들의 변화하는 위치들에 대해 더 신속하게 조정하고 로봇의 코스를 더 신속하게 변경하는 분석 사이클들을 수행할 수 있다. 더 높은 응답성 및 더 신속한 계획으로, 로봇은 장애물들을 고려하여 그것의 경로를 동적으로 조정하면서 더 빠른 속도로 이동할 수 있다. 2D 계획에 의해 충돌 회피 경로가 식별되지 않을 때 3D 경로 계획으로 스위칭함으로써, 로봇은 한정된 공간들을 통해 내비게이팅하기 위해 3D 분석의 정확성을 활용할 수 있다. 3D 분석은 또한 내비게이션을 위한 옵션들의 범위를 증가시켜, 로봇이 2D 분석만으로는 차단된 것처럼 보였을 경로들을 계획할 수 있게 한다.
하나 이상의 구현의 세부 사항들이 첨부 도면들 및 아래의 설명에서 제시된다. 본 개시내용의 다른 잠재적인 특징들 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1은 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션을 위한 시스템의 예를 예시하는 도면이다.
도 2a 및 도 2b는 2D 경로 계획의 예를 예시하는 도면들이다.
도 2c는 3D 경로 계획의 예를 예시하는 도면이다.
도 2d는 3D 경로 계획을 이용한 로컬 로봇 내비게이션의 예를 예시하는 도면이다.
도 3a는 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션을 위한 프로세스의 예를 예시하는 흐름도이다.
도 3b는 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션의 예를 예시하는 도면이다.
도 4는 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션을 위한 방법의 예를 예시하는 흐름도이다.
다양한 도면들에서 유사한 참조 번호들 및 명칭들은 유사한 요소들을 지시한다.
도 1은 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션을 위한 시스템(100)의 예를 예시하는 도면이다. 시스템(100)은 경로 계획 모듈(140) 및 내비게이션 모듈(150)을 포함하는 로컬 내비게이션 시스템(130)을 갖는 로봇(110)을 포함한다. 로봇(110)은 센서들(160)을 또한 포함한다. 시스템(100)은 네트워크(105)를 통해 로봇(110)과 통신하는 서버(170)를 또한 포함한다. 도 1은 테이블(122) 및 식물(124)을 포함하는 방(120) 안의 로봇(110)을 도시한다. 이 예에서, 로봇(110)은 방(120)을 가로질러 내비게이팅하여, 테이블(122)과 식물(124) 사이의 경로를 찾으려고 시도한다.
일반적으로, 로봇은 컴퓨팅 디바이스 및 환경을 통해 이동하거나 환경 내의 물체들을 조작하는 능력을 포함하는 머신 또는 장치를 지칭한다. 로봇은 전형적으로, 로봇이 그것의 주변 환경을 통해 이동하는 것을 가능하게 하는, 동력화된 다리들, 바퀴들, 또는 트레드들과 같은, 운동 시스템을 갖는다. 로봇의 액션들 및 기능들은, 로봇이 인간 사용자로부터의 입력 없이, 또는 제한된 입력만으로, 내비게이션 및 운동을 포함하는, 액션들을 자율적으로 또는 반자율적으로 결정하고 수행하는 것을 가능하게 하는, 하나 이상의 프로그래밍 가능한 내장된 또는 외부 컴퓨팅 시스템에 의해 제어될 수 있다.
많은 애플리케이션들은 다양한 작업들 및 액션들을 수행하기 위해 로봇이 공간을 통해 이동할 것을 요구한다. 다양한 장애물들 또는 물체들을 포함하는 공간을 통한 내비게이팅은 로봇에 대한 충돌 회피 경로를 차팅하기 위해 글로벌 및 로컬 경로 계획 단계들 양쪽 모두를 수반하는 다단식 프로세스를 이용하여 수행될 수 있다. 많은 경우들에서, 글로벌 및 로컬 경로 계획은 상이한 레벨들의 특이성으로 정보를 이용하여 경로를 설정하는 것을 나타낸다. 예를 들어, 글로벌 경로 계획은 로봇이 이동하는 루트의 하이-레벨 기술(high-level description), 예를 들어, 출입구를 통해 하나의 방에서 다른 방으로 이동하는 계획을 나타낼 수 있다. 글로벌 경로 계획의 일부 또는 전부는 로봇이 그것의 센서들로 현재 관찰하지 않는 영역들에 대한 데이터에 기초하여 생성될 수 있다. 대조적으로, 로컬 경로 계획은 더 섬세한 방식으로, 예를 들어, 방 안의 특정 위치들 또는 중간 지점들을 안내하거나, 검출된 장애물들에 응답하도록 코스 정정들을 설정하는 방식으로 글로벌 계획을 구현할 수 있다. 이러한 방식으로, 로컬 경로 계획은 로봇이 직면하는 특정 조건들에 맞도록, 로봇이 이동함에 따라 글로벌 경로 계획을 구현하고 동적으로 리파인할 수 있다.
글로벌 경로 계획에서, 로봇은, 건물의 구조와 같이, 자주 변화하지 않는 정보에 기초하여 원하는 목적지로의 초기 선호 글로벌 경로를 결정한다. 시종일관 특정 위치에 있는 가구와 같은, 이전에 관찰된 물체들의 위치들이 이용될 수도 있다. 글로벌 경로 계획은 종종 로봇이 그것의 센서들로 현재 관찰하지 않는 영역들을 통해 일반적인 루트를 설정하는 것을 수반하고, 따라서 로봇은 해당 루트를 따라 특정 장애물들을 검증하지 못할 수 있다. 예를 들어, 로봇은 건물의 알려진 평면도를 이용하여 건물의 제1 층 상의 방으로부터, 복도를 통해, 엘리베이터 위로, 그리고 모서리를 돌아 건물의 제2 층 상의 방까지의 초기 선호 경로를 결정할 수 있다. 건물의 레이아웃은 알려져 있고 변하지 않기 때문에, 글로벌 경로 계획에서, 로봇은 이 정보를 이용하여, 벽들과 같은, 알려진 정적 장애물들을 회피하는 글로벌 경로를 차팅할 수 있다. 로봇은 다양한 기준들 중 임의의 것에 기초하여 선호 글로벌 경로를 선택할 수 있다(예를 들어, 최단 거리, 가장 빠른 예측 통과 시간을 갖는 경로, 또는 건물의 다른 거주자들을 방해할 가능성이 가장 적은 경로).
일부 구현들에서, 로봇(110)은 글로벌 경로를 결정하기 위해 2D 평면도 데이터를 이용할 수 있다. 일부 예들에서, 평면도 데이터는, 공간 내의 알려진 장애물들(예를 들어, 벽, 계단통, 엘리베이터, 가구)의 위치를 묘사하는, 2D 점유 격자에 매핑된다. 전형적인 글로벌 점유 격자는 대략 0.1 미터 내지 1 미터의 격자 간격을 가질 수 있는데, 여기서 장애물들 또는 물체들에 대응하는 격자 공간들은 점유되어 로봇이 지나갈 수 없는 것으로 간주된다. 전형적으로, 평면도 또는 점유 격자는 바닥의 평면 상으로의 장애물들 또는 물체들의 투영을 묘사한다. 그 결과, 격자는 바닥의 평면을 따라 물체의 가장 큰 폭(largest span)에 대응하는 영역을 점유한 것으로 보인다. 예를 들어, 점유 격자에 묘사된 테이블에 대해, 전체 테이블 상부에 대응하는 영역은 점유되어 로봇(110)이 지나갈 수 없는 것으로 지시될 것이다.
로봇(110)은 로봇의 현재 위치(예를 들어, 시작점)로부터 글로벌 점유 격자의 비점유 영역들을 통해 그것의 목적지까지의 루트를 차팅함으로써 선호 글로벌 경로를 결정한다. 글로벌 경로 계획에 대해, 로봇(110)의 어떤 부분도 알려진 장애물과 충돌하지 않는 것을 보장하기 위해, 로봇(110)은 2D 프로파일을 이용하여 로봇의 전체 풋프린트(예를 들어, 바닥의 평면 상으로의 로봇(110)의 형상의 투영)를 표현하고 로봇의 2D 프로파일이 어떠한 점유된 격자 공간과도 교차하지 않는 루트를 차팅할 수 있다.
로봇(110)은 루트로부터의 로봇의 위치에서의 편차들을 고려하여 선호 글로벌 경로를 주기적으로 업데이트할 수 있다. 글로벌 경로 계획에 사용되는 정보는 자주 변화하지 않기 때문에, 로봇의 글로벌 경로는 비교적 느린 시간 척도로, 예를 들어, 몇 초마다 한 번(몇 분의 1 Hz 내지 1 Hz 범위의 업데이트 레이트들에 대응) 또는 맵, 평면도, 또는 점유 격자의 변화에 응답하여 업데이트될 수 있다. 글로벌 경로 계획은 로봇(110)에 내장된 컴퓨터 시스템에 의해 또는 원격 컴퓨터 시스템에 의해, 예를 들어, 로봇(110)에 글로벌 경로 업데이트들을 주기적으로 전송하는 서버에 의해, 또는 로컬 및 원격 처리의 조합에 의해 수행될 수 있다.
글로벌 경로 계획은 현재가 아닐 수 있는 이전 관찰들 및/또는 평면도와 같은 정적인 정보를 이용하기 때문에, 선택된 글로벌 경로는 현재는 경로를 따라 위치해 있지만, 평면도가 작성되었을 때는 존재하지 않은 장애물들을 고려하지 않을 수 있다. 예를 들어, 평면도는 루트와 일치하는 위치로 옮겨진, 의자 또는 다른 가구 품목의 현재 위치를 지시하지 않을 수 있다. 평면도는 또한 루트를 따라 현재 서 있는 사람의 존재를 지시할 것 같지 않다.
글로벌 경로를 생성하기 위해 사용된 정보와 로봇의 환경의 현재 실제 상태 사이의 차이들을 고려하여, 로봇은 충돌들을 회피하기 위해 글로벌 루트를 수정하도록 로컬 경로 계획을 구현할 수 있다. 로컬 경로 계획에서, 로봇은 로봇의 센서들(예를 들어, 카메라들, LIDAR, 레이더)로부터의 현재 데이터를 이용하여 그것의 루트를 따라 장애물들을 검출하고 찾아낸다. 계획된 글로벌 경로를 따라 장애물이 검출되고 로봇이 루트를 따르는 것이 장애물과의 충돌을 야기할 수 있다고 예측한다면, 로봇은 충돌을 회피하기 위해 그것의 경로를 수정할 수 있다. 이러한 방식으로, 로컬 경로 계획은 로봇(110)이 계획된 글로벌 경로를 구현하는 것을 가능하게 하여, 로봇(110)이 직면하는 상황에 맞도록 계획된 글로벌 경로로부터의 편차들을 허용한다.
예를 들어, 로봇(110)은 글로벌 경로를 수 개의 경로 세그먼트들로 분할할 수 있다. 센서 데이터에 기초하여, 로봇(110)이 선호 글로벌 경로의 다음 경로 세그먼트가 의자에 의해 차단된다고 결정한다면, 로봇(110)은 충돌을 회피하기 위해 해당 경로 세그먼트를 의자 주위로 로봇(110)을 재라우팅하는 새로운 경로 세그먼트로 대체할 수 있다.
일반적으로, 로봇의 로컬 경로 계획은 글로벌 경로를 따르려고 시도하고, 그것이 충돌이 있을 수 있다고 결정하는 경우에만 루트를 수정한다. 로컬 경로 계획은, 전형적으로 인근의 환경 내의 물체들을 감지하는 것에 의존하기 때문에, 로봇(110)의 로컬 부근에 있는 경로 세그먼트들(예를 들어, 로봇(110)으로부터 수 미터 내의 경로 세그먼트들)에 대해 일반적으로 수행된다.
로봇(110)은, 그것의 경로를 따라 이동함에 따라, 각각의 후속 경로 세그먼트에 대한 로컬 경로 계획을 수행하여, 장애물들과의 잠재적인 충돌들을 검출하고, 충돌을 회피하기 위해, 필요하다면, 로봇의 루트의 특정 부분을 수정한다. 로봇이 이동함에 따라 로봇의 인근의 주변 환경이 변화하기 때문에, 로컬 경로 계획은 전형적으로, 글로벌 경로 업데이트들보다, 더 높은 레이트로(예를 들어, 대략 10 Hz 또는 그 이상) 반복되고, 더 낮은 레이턴시를 요구한다. 그 결과, 로컬 경로 계획은 전형적으로 로봇(110)의 일부로서 내장된 컴퓨터 시스템에서 구현된다.
잠재적인 충돌들을 검출하고 회피하기 위해, 로봇(110)은 2D 또는 3D 분석 기법들을 이용할 수 있다. 로컬 경로 계획에 이용되는 2D 분석 기법들은 글로벌 경로 계획에 이용되는 기법들과 유사할 수 있다. 예를 들어, 로봇(110)은 그것의 감지된 주변 환경에 기초하여 로컬 2D 점유 격자를 생성하고 로봇(110)의 풋프린트를 나타내는 2D 프로파일을 이용할 수 있다. 일부 경우들에서, 글로벌 경로 계획에 이용되는 동일한 점유 격자가 로컬 경로 계획에 이용될 수 있다. 다른 경우들에서, 로봇(110)은, 현재 센서 데이터를 이용하여 로컬 점유 격자를 생성 또는 업데이트하기 때문에, 그것은 글로벌 점유 격자보다 작은, 대략 수 센티미터의 격자 간격을 가질 수 있다. 제안된 경로 세그먼트를 따라 로봇(110) 프로파일을 이동시킬 때, 프로파일이 로컬 점유 격자의 차단된 공간과 교차한다면, 로봇은 잠재적인 충돌을 식별할 수 있다. 로봇(110)이 글로벌 경로의 세그먼트를 따른 잠재적인 충돌을 식별한다면, 그것은 장애물 주위로, 그러나 여전히 일반적으로 글로벌 경로의 방향으로 로봇(110)을 재라우팅하려고 시도할 수 있다.
위에 설명된 2D 기법들은 계산 효율적일 수 있지만, 일부 예들에서, 그것들은, 충돌 회피 경로가 존재하더라도, 충돌 회피 경로를 식별하지 못할 수 있다. 이는 2D 경로 계획에서 이용되는 근사치들로 인해, 특히 물체의 최대 치수들이 점유 격자 상에 투영되기 때문에 발생할 수 있다. 예를 들어, 글로벌 경로는 테이블과 식물 또는 다른 물체 사이를 통과하도록 로봇(110)을 안내할 수 있다. 로컬 점유 격자에서, 테이블 상부의 전체 영역뿐만 아니라, 식물의 가장 큰 범위가 점유된 것으로 보여질 것이다. 로봇의 가장 큰 직경을 나타내는 로봇(110)의 2D 프로파일을 이용한 2D 분석은 로봇(110)이 테이블과 식물 중 하나 또는 다른 하나와 접촉하지 않고 그들 사이의 공간을 통과할 수 없음을 지시할 수 있다. 따라서 2D 분석은 글로벌 경로를 따른 충돌 회피 루트가 없다고 결론을 내릴 것이다. 그러나, 전형적으로 그렇듯이, 테이블의 기부가 테이블 상부보다 상당히 좁다면, 로봇(110)은 그것의 일부를 테이블 상부 아래로 연장함으로써 테이블 옆을 지나갈 수 있다.
2D 기법들이 원하는 이동 방향에서 충돌 회피 경로가 없을 수 있음을 지시할 때, 로봇(110)은 로컬 경로 계획을 위해 3D 분석 기법들을 이용하는 것으로 스위칭할 수 있다. 3D 기법들은 검출된 물체들의 3D 형상들과 로봇(110)의 3D 형상을 비교하여 잠재적인 충돌을 검출함으로써 경로 세그먼트의 가능성에 대한 더 섬세한 평가를 수행한다. 3D 분석 기법들은 충돌이 발생할 것인지를 더 정확하게 예측하여, 로봇(110)의 전체 3D 형상들 또는 인근의 물체들을 고려하지 않은 2D 분석들에 의해 배제된 충돌 회피 경로들을 식별할 수 있다.
일부 예들에서, 3D 분석 기법들은, 로봇(110)이 상이한 구성들로(예를 들어, 그것의 팔들이 들어 올려지거나, 옆으로 돌려진 상태) 한정된 공간을 통해 내비게이팅하는 능력을 평가함으로써 로컬 경로 계획을 추가로 확장할 수 있다. 상이한 로봇 구성들을 평가함으로써, 3D 분석 기법들을 이용하여, 로봇(110)은 로봇(110)이 특정 구성으로 한정된 공간을 통과할 수 있다고 결정할 수 있어, 로봇(110)이 2D 기법들이 차단된 것으로 지시한 루트를 내비게이팅하는 것을 허용한다.
3D 분석 기법들이 더 정확하기는 하지만, 그것들은 2D 분석 기법들보다 상당히 더 많은 컴퓨팅 리소스들을 필요로 할 수 있다. 그 결과, 일부 예들에서, 로봇(110)은 일반적으로 2D 분석 기법들을 구현하고, 2D 기법들이 충돌 회피 루트를 식별하지 못할 때에만 3D 분석들로 스위칭한다. 그 다음, 3D 분석들이 완료된 후에(예를 들어, 충돌 회피 경로가 식별된 후에), 로봇(110)은 계산 효율을 위해 2D 기법들로 다시 스위칭할 수 있다.
로컬 내비게이션은, 위에 설명된 바와 같은, 로컬 경로 계획뿐만 아니라, 모터 명령 생성 및 추가의 섬세한 충돌 회피 분석들을 포함한다. 로컬 내비게이션을 수행하기 위해, 로봇(110)은 경로 계획 모듈(140) 및 내비게이션 모듈(150)을 구현하는 로컬 내비게이션 시스템(130)을 포함한다. 경로 계획 모듈(140)은 2D 및 3D 분석들을 이용하여 로봇(110)에 대한 충돌 회피 경로 세그먼트들을 결정하기 위해 로컬 경로 계획을 수행한다. 계획 모듈(140)이 경로를 결정하면, 내비게이션 모듈(150)은 모터 명령들을 발행하고 섬세한 충돌 회피를 위한 로컬 운동학적 인식 및 모델링을 제공한다. 로컬 경로 계획을 위해 2D 및 3D 분석 간에 스위칭함으로써, 로봇(110)은 컴퓨팅 리소스들 및 부하를 효율적으로 관리하면서 존재하는 충돌 회피 경로들이 식별되는 것을 보장할 수 있다.
여전히 도 1을 참조하면, 로봇(110)은 컴퓨팅 하드웨어뿐만 아니라, 동력화된 다리들, 바퀴들, 또는 트레드들과 같은, 운동 시스템을 포함하여, 그것이 공간을 통해 이동할 수 있게 한다. 로봇(110)의 액션들 및 기능들은, 그것이 내비게이션 및 운동을 포함하는, 액션들을 자율적으로 또는 반자율적으로 결정하고 수행하는 것을 가능하게 하는, 하나 이상의 내장된 컴퓨터 시스템에 의해 제어된다. 도 1의 예에서, 로봇(110)은, 테이블(122)과 식물(124)을 포함하는, 방(120) 안에 위치해 있고, 테이블(122)과 식물(124)은 그들 사이에 좁은 공간이 존재하도록 위치되어 있다.
일부 구현들에서, 로봇(110)은 서버(170)와 통신한다. 서버(170)는, 예를 들어, 하나 이상의 컴퓨터, 컴퓨터 시스템, 서버 시스템, 또는 다른 컴퓨팅 디바이스일 수 있다. 일부 구현들에서, 서버(170)는 클라우드 컴퓨팅 플랫폼이다.
도 1에서, 로봇(110)은, 유선 또는 무선 통신 링크들의 임의의 조합을 포함할 수 있는, 네트워크(105)를 통해 서버(170)와 통신한다. 예를 들어, 네트워크(105)는 LAN(local area network), WAN(wide area network), 이더넷, 셀룰러 데이터 네트워크, Wi-Fi 네트워크, 인터넷, 또는 데이터의 교환을 가능하게 하는 임의의 다른 네트워크 토폴로지를 포함할 수 있다.
시스템(100)에서, 서버(170)는 로봇(110)에 대한 글로벌 경로 계획을 수행하여, 로봇(110)에 대한 현재 작업에 기초하여 로봇에 대한 선호 글로벌 경로를 생성한다. 도 1의 예에서, 로봇의 작업은 방(120)의 뒤쪽 벽에 있는 창을 여는 것이다. 로봇의 작업에 기초하여, 서버(170)는, 로봇(110)이 방(120)의 앞쪽에 있는 그것의 현재 위치로부터 테이블(122)과 식물(124) 사이를 통과함으로써 방(120)의 뒤쪽 벽까지 이동할 것을 요구하는, 글로벌 경로(126)를 결정한다. 규칙적인 간격으로(예를 들어, 대략 1 Hz 레이트로) 또는 필요에 따라, 서버(170)는 로봇의 현재 위치에 기초하여 글로벌 경로(126)를 업데이트하고, 로봇(110)이 이동할 원하는 경로(126)를 기술하는, 업데이트된 글로벌 경로 데이터(172)를 로봇(110)에 제공한다.
수신된 글로벌 경로 데이터(172)에 기초하여, 로봇(110)은 그것의 로컬 내비게이션 시스템(130)을 이용하여 방(120)을 통해 내비게이팅한다. 로컬 내비게이션 시스템(130)은 로봇(110)이 공간 내의 다른 물체들과 충돌하지 않고 방(120)의 여기저기 이동하는 것을 가능하게 하는 로컬 경로 계획 및 운동과 관련된 다양한 동작들을 수행한다.
로컬 내비게이션 시스템(130)은 경로 계획 모듈(140) 및 내비게이션 모듈(150)을 포함한다. 계획 모듈(140)은 로봇(110)에 대한 로컬 경로 계획을 수행하여, 일반적으로 글로벌 경로를 따른 충돌 회피 경로 세그먼트들을 결정한다. 하나 이상의 충돌 회피 경로 세그먼트가 결정된 후에, 내비게이션 모듈(150)은 로봇 모션을 생성하기 위한 모터 명령들(152)을 생성하고, 모터 명령들(152)을 실행할 때 로봇(110)이 충돌들을 회피하는 것을 보장하기 위해 섬세한 운동학적 모델링 및 감지를 수행한다.
내비게이션 시스템(130)은 전형적으로 로봇(110)의 일부로서, 예를 들어, 로봇(110)의 컴퓨터 시스템의 일부로서 내장된다. 내비게이션 시스템(130)은, 하나 이상의 컴퓨터 프로그램, 범용 또는 특수 목적 CPU(central processing unit), FPGA(field-programmable gate array), ASIC(application-specific integrated circuit) 또는 다른 계산 방법들, 시스템들, 또는 디바이스들을 포함하여, 소프트웨어, 펌웨어, 및 하드웨어의 임의의 조합에서 구현될 수 있다.
경로 계획 모듈(140)은 2D 플래너(142), 3D 플래너(144), 및 모드 선택 모듈(146)을 포함한다. 모드 선택 모듈(146)은 로컬 경로 계획이 2D 또는 3D 분석 기법들을 이용하여(예를 들어, 각각, 2D 플래너(142) 또는 3D 플래너(144)에 의해) 달성될 것인지를 선택한다. 일부 예들에서, 컴퓨팅 리소스들을 보존하기 위해, 모드 선택 모듈(146)은 디폴트로 2D 플래너(142)를 선택한다.
로봇의 로컬 환경 내의 장애물들의 위치를 결정하기 위해, 계획 모듈(140)은 로봇(110)의 센서들(160)로부터 수신된 센서 데이터(162)를 이용한다. 예를 들어, 로봇(110)은, 하나 이상의 카메라, 레이더 시스템, LIDAR, 근접 센서, 또는 다른 검출기와 같은, 다양한 센서들(160)을 포함할 수 있다. 하나 이상의 카메라(160)는 모노비전 시스템들뿐만 아니라, RGB-D 디바이스들, 스테레오 카메라들, 또는 깊이 정보를 제공하는 다른 시스템들을 포함할 수 있다. 센서들(160)은 로봇의 로컬 환경 내의(예를 들어, 로봇으로부터 수 미터 내의) 물체들에 관한 정보를 제공하는 데이터(162)를 생성한다. 센서 데이터(162)는, 원시 또는 처리된 이미지 데이터, 비디오 데이터, LIDAR 신호, 레이더 반사(radar returns), 근접 데이터, 또는 로봇(110) 근처의 장애물들의 존재, 위치, 크기, 또는 형상에 관한 정보를 제공하는 다른 센서 데이터를 포함할 수 있다.
수신된 센서 데이터(162)에 기초하여, 2D 플래너(142)는 로봇의 로컬 환경 내의 장애물들 또는 물체들의 현재 위치를 지시하는 로컬 2D 점유 격자를 생성한다. 로컬 점유 격자는 글로벌 경로 계획에 이용되는 글로벌 점유 격자와 유사할 수 있지만, 더 작은 격자 간격(예를 들어, 0.1 내지 1 미터의 글로벌 격자 간격에 비해 수 센티미터의 로컬 격자 간격)을 가질 수 있어, 로봇(110)이 공간의 현재 점유를 더 정확하게 결정하는 것을 가능하게 한다. 글로벌 점유 격자와 유사하게, 로컬 점유 격자는 전형적으로 바닥의 평면 상으로의 물체 또는 장애물의 투영을 묘사한다. 그 결과, 로컬 점유 격자는 물체의 가장 큰 폭에 대응하는 영역을 점유한 것으로 보인다(예를 들어, 테이블에 대해, 격자의 점유된 영역은 테이블 상부의 영역에 대응한다).
일부 예들에서, 계획 모듈(140)은 또한 로봇의 로컬 환경 내의 물체들의 위치를 결정하기 위해 2D 평면도 데이터(174)를 이용할 수 있다. 평면도 데이터(174)는 서버(170)에 의해 제공될 수 있고 글로벌 경로 계획을 위해 서버(170)에 의해 사용되는 동일한 데이터일 수 있다. 일부 예들에서, 평면도 데이터(174)는 로봇(110)의 메모리 시스템에 저장될 수 있다. 예를 들어, 계획 모듈(140)은 센서 데이터(162)를 이용하여 평면도 데이터(174)를 업데이트 또는 수정하여 로봇의 로컬 환경 내의 장애물들의 현재 위치를 반영하는 로컬 점유 격자를 생성할 수 있다.
계획 모듈(140)은 또한 로봇(110)이 이동할 선호 경로를 기술하는 글로벌 경로 데이터(172)를 수신한다. 일부 예들에서, 글로벌 경로 데이터(172)는 로봇(110)에 의해 생성된다. 도 1의 예에서, 글로벌 경로 데이터(172)는 서버(170)에 의해 로봇(110)에 제공되고 테이블(122)과 식물(124) 사이를 이동함으로써 방(120)의 앞쪽으로부터 뒤쪽으로 이동하도록 로봇(110)을 안내하는 경로(126)를 지시한다.
계획 모듈(140)은 또한 로봇 데이터(136)에 액세스한다. 로봇 데이터(136)는 로봇(110)의 물리적 형상 및 크기를 기술하는 정보를 포함한다. 예를 들어, 로봇 데이터(136)는 로봇(110)의 하나 이상의 2D 프로파일을 포함할 수 있다. 2D 프로파일들은, 예를 들어, 바닥에 평행한 하나 이상의 수평 평면에서의 로봇(110)의 외부 치수들(예를 들어, 로봇(110)의 수평 단면들)일 수 있다. 일부 예들에서 로봇 데이터(136)는 최대 2D 프로파일 및 최소 2D 프로파일을 포함한다. 최대 2D 프로파일은 로봇(110)이 특정한 공간을 교묘하게 통과하기 위해 수용되어야 하는 로봇(110)의 최대 치수, 둘레, 또는 폭(span)을 나타낼 수 있다. 예를 들어, 최대 프로파일은, 로봇(110)의 가장 큰 풋프린트를 지시하는, 예를 들어, 로봇(110)의 높이를 따른 임의의 수평 평면에서의 로봇(110)의 최대 치수들을 반영하는 바닥에 평행한 평면 상으로의 로봇(110)의 외부 치수들의 투영일 수 있다. 도 1의 예에서, 최대 프로파일은 로봇(110)의 그것의 기부(111)를 가로지르는 단면에 대응한다. 최대 프로파일은 로봇(110)의 모든 잠재적인 포즈들 또는 구성들을 가로지르는 최대 치수를 나타낼 수 있는데, 예를 들어, 팔들이 그들의 최대 바깥쪽 연장에 있을 때의 팔들의 폭을 나타낼 수 있다. 대안적으로, 최대 프로파일은, 예를 들어, 팔들의 실제 현재 위치에 기초하여, 로봇의 현재 포즈 또는 구성에 대한 최대 치수들을 나타낼 수 있다. 로봇(110)이 로봇(110)으로부터 멀어지는 쪽으로 연장되는 물체를 운반하고 있다면, 운반되는 물체와의 충돌을 회피하기 위해 물체의 범위도 로봇(110)의 현재 최대 프로파일에 포함될 수 있다.
마찬가지로, 최소 2D 프로파일은 로봇(110)이 특정한 공간을 교묘하게 통과하기 위해 수용되어야 하는 로봇(110)의 최소 치수, 둘레, 또는 폭을 나타낼 수 있다. 예를 들어, 최소 프로파일은 가장 작은 면적 또는 가장 작은 치수들을 갖는 로봇(110)의 수평 단면에 대응할 수 있다. 도 1의 예에서, 최소 2D 프로파일은 로봇(110)의 그것의 몸통(112)을 가로지르는 단면에 대응한다.
로봇 데이터(136)는 로봇의 3D 형상을 기술하는 데이터를 또한 포함한다. 예를 들어, 로봇 데이터(136)는 로봇의 3D 모델, 다양한 방위들(예를 들어, 바닥에 평행하고 수직)에서의 2D 프로파일들 또는 단면들, 로봇의 치수들의 리스팅, 또는 3차원에서 로봇의 형상, 크기, 및 폭을 기술하는 다른 데이터를 포함할 수 있다. 일부 예들에서, 로봇 데이터(136)는 로봇(110)의 상이한 구성들과 관련된 2D 또는 3D 형상 데이터, 예를 들어, 그것의 팔들이 들어 올려져 있을 때 또는 그것이 상이한 방위로(예를 들어, 옆으로 돌려짐) 구성될 때의 로봇(110)의 형상 및 폭을 기술하는 데이터를 포함한다.
생성된 로컬 점유 격자 및 로봇 데이터(136)를 이용하여, 2D 플래너(142)는 글로벌 경로(126)를 따라 로봇(110)이 이동할 일련의 충돌 회피 경로 세그먼트들을 결정하려고 시도한다. 2D 플래너(142)는 글로벌 경로 데이터(172)에 의해 기술된 루트를 따라 로봇의 최대 2D 프로파일을 추적함으로써 잠재적인 충돌을 예측할 수 있다. 2D 플래너(142)는 최대 2D 프로파일의 임의의 부분이 로컬 점유 격자의 점유된 공간과 교차하는 위치에서 잠재적인 충돌을 검출한다.
예를 들어, 글로벌 경로 데이터(172)에 기초하여, 2D 플래너(142)는 로봇의 현재 위치 근처의 글로벌 경로의 부분을 더 짧은 경로 세그먼트들로 분할할 수 있다. 로봇(110)의 현재 위치에서 시작하여, 2D 플래너(142)는 로봇(110)이 다음 경로 세그먼트를 따라 이동한다면 잠재적인 충돌이 있을 것인지를 평가할 수 있다. 2D 플래너(142)가 다음 경로 세그먼트를 따른 잠재적인 충돌이 없다고 결정한다면, 그것은 충돌에 대해 후속 경로 세그먼트를 평가할 수 있다. 2D 플래너(142)는 미리 결정된 일련의 세그먼트들이 충돌 회피인 것으로 결정될 때까지 후속 경로 세그먼트들을 계속 평가할 수 있다. 2D 플래너(142)가 충돌 회피인 일련의 세그먼트들을 식별한 후에, 플래너(142)는 식별된 루트를 기술하는 경로 데이터(148)를 생성한다.
2D 플래너(142)가 경로 세그먼트가 잠재적인 충돌을 야기할 수 있다고 결정한다면, 그것은 장애물을 피하면서 로봇(110)을 일반적으로 글로벌 경로를 따라 이동시키는 대체의 충돌 회피 루트를 결정하려고 시도할 수 있다. 예를 들어, 2D 플래너(142)는 글로벌 경로(126)의 다음 경로 세그먼트는 로봇(110)이 테이블(122)과 충돌하는 것을 야기할 수 있다고 결정할 수 있다. 그러면 2D 플래너(142)는 방(120) 안의 임의의 다른 장애물을 피하면서 테이블(122) 주위로 로봇(110)을 내비게이팅하는 경로를 결정하려고 시도할 수 있다.
대체의 충돌 회피 루트를 결정하기 위해, 2D 플래너(142)는 일반적으로 글로벌 경로(126)를 따라 로봇(110)을 이동시키는 다수의 후보 경로 세그먼트들을 생성 및 평가할 수 있다. 예를 들어, 2D 플래너(142)는 특정 각도(예를 들어, 10도, 20도, 30도 등)만큼 글로벌 경로(126)에서 일탈하는 후보 세그먼트들을 생성할 수 있다. 각각의 후보 세그먼트에 대해, 2D 플래너(142)는 로봇(110)이 해당 세그먼트를 따라 이동한다면 잠재적인 충돌이 있을 것인지를 평가한다. 2D 플래너(142)가 충돌 회피인 것으로 결정하는 임의의 세그먼트에 대해, 플래너(142)는 프로세스를 반복하여, 제1 세그먼트의 종점에서 시작되고 글로벌 경로의 일반적인 방향으로 더 연장되는 새로운 후보 세그먼트들을 생성할 수 있다. 그 후 2D 플래너(142)는 충돌 회피인 세그먼트를 식별하기 위해 새로운 후보 세그먼트들을 평가한다. 2D 플래너(142)는 그것이 로봇의 로컬 환경에서 검출된 장애물들 주위의 하나 이상의 충돌 회피 경로를 결정할 때까지 이 프로세스를 반복할 수 있다.
일부 구현들에서, 충돌 회피 루트의 생성은, 2D 플래너(142)가 잠재적인 충돌을 야기하는 해당 루트들 또는 세그먼트들을 프루닝하는, 트리 구조와 유사하다. 둘 이상의 충돌 회피 루트가 식별된다면, 2D 플래너(142)는 다양한 기준들 중 임의의 것(예를 들어, 최단 거리, 글로벌 경로로부터의 최소 편차, 임의의 검출된 장애물 또는 물체로부터의 가장 많은 여유)에 기초하여 특정 충돌 회피 경로를 선택할 수 있다. 2D 플래너(142)가 충돌 회피 경로를 선택한 후에, 그것은 선택된 경로를 기술하는 경로 데이터(148)를 생성한다.
일부 예들에서, 2D 플래너(142)는 글로벌 경로(126)를 따라 충돌 회피 루트를 식별하지 못할 수 있다(예를 들어, 사람 또는 물체가 경로를 완전히 차단하도록 이동했다면). 그러나, 다른 예들에서, 2D 플래너(142)는 충돌 회피 경로가 존재하더라도 충돌 회피 루트를 식별하지 못할 수 있다(예를 들어, 로봇의 일부가 테이블 상부 아래로 연장되는 경우에만 로봇이 테이블 옆을 지나갈 수 있는 이전에 설명된 시나리오에서). 2D 플래너(142)가 존재하는 충돌 회피 경로를 식별하지 못한다면, 모드 선택 모듈(146)은 3D 플래너(144)로 스위칭하여, 충돌 회피 경로를 식별하기 위해 3D 분석 기법들을 구현할 수 있다.
3D 분석 기법들은 계산적으로 비쌀 수 있기 때문에, 계획 모듈(140)은 그것이 충돌 회피 경로가 존재할 가능성이 있다고 결정하는 경우에만 그것들을 구현하기를 선호할 수 있다. 계획 모듈(140)은 로봇의 최소 2D 프로파일을 이용하여 2D 분석 기법들을 수행함으로써 잠재적인 충돌 회피 경로가 존재하는지를 체크할 수 있다. 최대 프로파일을 이용하는 분석들과 유사하게, 2D 플래너(142)는 로컬 점유 격자의 어떠한 점유된 격자 공간들과도 교차하지 않고 최소 프로파일이 목적지에 도달하는 루트들을 검색함으로써 잠재적인 충돌 회피 경로를 식별할 수 있다.
최소 2D 프로파일은 보통 최대 2D 프로파일보다 작기 때문에, 2D 플래너(142)는 최소 프로파일을 이용할 때는 충돌 회피이지만, 최대 프로파일을 이용해서는 충돌 회피가 아닌 경로를 식별할 수 있다(예를 들어, 장애물들 사이의 공간이 최대 프로파일보다는 작지만, 최소 프로파일보다는 크다면). 2D 플래너(142)가 최소 프로파일을 이용하여 충돌 회피 경로 세그먼트를 식별한다면, 모드 선택 모듈(146)은 3D 플래너(144)로 스위칭한다. 일부 예들에서, 모드 선택 모듈(146)은 3D 플래너로 스위칭하기 전에 2D 플래너(142)가 다수의 후속 후보 경로 세그먼트들이 최소 프로파일을 이용하여 충돌 회피인 것으로 결정할 것을 요구할 수 있다.
3D 플래너(144)는 일반적으로 글로벌 경로(126)를 따라 있는 로봇(110)에 대한 충돌 회피 루트를 식별하기 위해 3D 기법들을 이용하여 더 섬세한 분석을 수행한다. 3D 플래너(144)에 의해 구현되는 3D 기법들은 후보 경로 세그먼트를 따른 충돌의 가능성을 더 정확하게 평가하기 위해 로봇(110)의 3D 형상(예를 들어, 로봇(110)의 높이를 따른 그것의 상이한 치수들을 고려함)뿐만 아니라, 로봇의 로컬 환경에서 검출된 장애물들의 3D 형상들을 고려한다.
3D 분석들을 수행하기 위해, 3D 플래너(144)는 로봇 데이터(136)에 기초하여 로봇(110)의 3D 프로파일을 생성할 수 있다. 3D 로봇 프로파일은, 예를 들어, 바닥으로부터 다수의 상이한 높이들에서의 로봇(110)의 폭 또는 둘레를 명시하거나 로봇(110)에 대한 3D 바운딩 박스를 식별할 수 있다. 3D 프로파일은 CAD 또는 로봇의 다른 모델에 기초할 수 있다. 일부 구현들에서, 3D 플래너(144)는, 예를 들어, 로봇(110)의 특정 구성(예를 들어, 그것의 팔들이 들어 올려지고, 옆으로 돌려진 상태)을 반영하도록 수정될 수 있는 3D 프로파일을 생성함으로써, 로봇(110)의 움직일 수 있는 컴포넌트들을 고려하는 3D 프로파일을 생성할 수 있다.
센서 데이터(162)에 기초하여, 3D 플래너(144)는 또한 후보 세그먼트의 방향으로 로봇(110) 근처의 하나 이상의 물체에 대한 3D 프로파일들을 생성할 수 있다. 3D 로봇 프로파일과 유사하게, 물체들의 3D 프로파일들은 바닥으로부터 다수의 상이한 높이들에서의 물체의 폭 또는 둘레를 명시하거나 물체에 대한 3D 바운딩 박스를 식별할 수 있다. 일부 예들에서, 3D 플래너(144)는 하나 이상의 물체의 외부 표면을 표현하는 포인트 클라우드(point cloud)를 생성할 수 있다. 일부 예들에서, 3D 플래너(144)는 물체의 유형과 관련된 데이터에 적어도 부분적으로 기초하여 물체의 3D 프로파일을 생성할 수 있다. 예를 들어, 로봇(110)은 특정 검출된 물체를 테이블로서 식별하고 데이터베이스로부터 테이블의 하나 이상의 CAD 모델을 이용하여 물체에 대한 3D 프로파일을 생성할 수 있다.
그 후 3D 플래너(144)는 임의의 검출된 장애물들의 3D 프로파일들에 관하여 로봇(110)의 3D 프로파일을 분석하여 후보 경로 세그먼트를 따른 로봇(110)의 움직임이 인근의 물체와의 잠재적인 충돌로 이어질 것인지를 결정할 수 있다. 예를 들어, 로봇(110)의 3D 프로파일의 일부가 세그먼트를 따른 임의의 위치에서 물체의 3D 프로파일의 일부와 교차한다면, 잠재적인 충돌이 지시될 것이다. 3D 플래너(144)가 로봇(110)이 장애물과 충돌하지 않고 경로 세그먼트를 따라 안전하게 이동할 수 있다고 결정하면, 계획 모듈(140)은 경로 세그먼트를 선택할 수 있고, 모드 선택 모듈(146)은 2D 플래너(142)로 다시 스위칭할 수 있고, 계획 모듈(140)은 2D 분석 기법들을 이용하여 다음 경로 세그먼트를 계획할 수 있다.
일부 예들에서, 3D 플래너(144)는 로봇(110)의 상이한 구성들(예를 들어, 로봇 팔들이 들어 올려지고, 로봇 몸체가 옆으로 돌려진 상태)에 대응하는 3D 프로파일들을 이용하여 분석을 반복할 수 있다. 예를 들어, 3D 플래너(144)가 로봇(110)이 그것의 전형적인 구성(예를 들어, 팔들이 그것의 측면에 있는)으로 검출된 물체 옆을 지나갈 수 없다고 결정하면, 플래너(144)는 로봇의 상이한 구성에 대응하는 3D 형상을 이용하여 3D 분석을 반복할 수 있다. 일부 예들에서, 3D 플래너(144)는 충돌 회피 구성이 식별될 때까지 또는 미리 결정된 구성 세트가 분석될 때까지 상이한 로봇 구성들에 대응하는 3D 프로파일들을 이용하여 3D 분석들을 반복한다.
일부 구현들에서, 계획 모듈(140)은 3D 분석 기법들을 이용하여 둘 이상의 순차적 세그먼트를 계획할 수 있다. 이들 예에서, 3D 플래너(144)는 2D 플래너(142)에 의해 구현되는 것과 유사한 방법을 이용하지만, 잠재적인 충돌들을 검출하기 위해 3D 분석 기법들을 이용하여 충돌 회피 경로를 식별할 수 있다. 간단히 말해서, 3D 플래너(144)는 글로벌 경로의 로컬 부분을 더 짧은 경로 세그먼트들로 분할한 다음 글로벌 경로(126)를 따라 로봇(110)을 일반적으로 이동시키는 후보 세그먼트를 생성할 수 있다. 위에 설명된 3D 분석 기법들을 이용하여, 3D 플래너(144)는 그 후 로봇(110)을 해당 세그먼트를 따라 이동시키는 것이 잠재적인 충돌을 야기할 것인지를 결정한다. 3D 플래너(144)가 특정 후보 세그먼트가 잠재적인 충돌을 야기할 것이라고 결정한다면, 3D 플래너(144)는, 아마도 세그먼트의 방향을 변경하는, 상이한 후보 세그먼트를 평가한다. 3D 플래너(144)는 또한 동일한 세그먼트를 평가하지만 상이한 로봇 구성(예를 들어, 팔들이 들어 올려진 상태) 또는 방위(예를 들어, 옆으로 돌려짐)로 평가할 수 있다. 3D 플래너(144)가 충돌 회피인 후보 세그먼트 및 로봇 방위를 식별할 때, 3D 플래너(142)는 제1 세그먼트의 종점에서 시작되는 후속 후보 세그먼트를 생성하고 평가할 수 있다.
2D 플래너와 마찬가지로, 3D 플래너(144)는 그것이 로봇의 로컬 환경 내의 하나 이상의 장애물 주위의 하나 이상의 충돌 회피 경로를 결정할 때까지 이 프로세스를 반복할 수 있다. 다수의 충돌 회피 경로들이 식별된다면, 3D 플래너(144)는 다양한 기준들 중 임의의 것(예를 들어, 최단 거리, 글로벌 경로로부터의 최소 편차, 임의의 검출된 장애물 또는 물체로부터의 가장 많은 여유, 최대 선호 로봇 구성)에 기초하여 하나의 경로를 선택할 수 있다.
일부 예들에서, 2D 플래너(142)(최대 또는 최소 프로파일들을 이용)도 3D 플래너(144)도 글로벌 경로(126)를 따라 충돌 회피 경로를 식별하지 않을 수 있다. 이들 예에서, 계획 모듈(140)은 충돌 회피 경로가 존재하지 않는다고 결정할 수 있다.
충돌 회피 경로가 식별되고 선택된 후에, 모듈(140)은 선택된 루트를 기술하는 경로 데이터(148)를 생성한다. 경로의 임의의 세그먼트를 선택하기 위해 3D 플래너(144)가 이용되었다면, 모듈(140)은 또한 충돌 없이 경로를 실행하는 데 필요한 로봇(110)의 특정 구성을 기술하는 구성 데이터(149)를 생성할 수 있다(예를 들어, 로봇(110)은 경로의 일부에 대해 그것의 팔들을 들어 올려야 한다).
계획 모듈(140)은 경로 데이터(148) 및 구성 데이터(149)를 내비게이션 모듈(150)에 제공한다. 그 후 내비게이션 모듈(150)은 경로 데이터(148)에 의해 기술된 경로를 따라 그리고 구성 데이터에 의해 기술된 구성으로 로봇(110)을 이동시키는 데 필요한 운동력들을 생성하기 위해 로봇의 모터 제어부(180)로 전송되는 모터 명령들(152)을 생성한다. 내비게이션 모듈(150)은 또한 센서 데이터(162) 및 다른 데이터를 이용하여 운동학적 모델링 또는 거의 실시간 충돌 회피를 수행하여, 로봇(110)이 결정된 경로를 따르도록 모터 명령들(152)을 실행할 때, 그것이 임의의 물체 또는 사람과 충돌하지 않는 것을 보장할 수 있다.
도 2a 내지 도 2d는 도 1의 로봇(110)에 대한 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션의 예를 예시하는 도면들이다. 도 2a 내지 도 2d에서, 로봇(110)은 테이블(122)과 식물(124) 사이를 이동함으로써 방의 앞쪽으로부터 방의 뒤쪽으로 이동하도록 로봇(110)을 안내하는 선호 글로벌 경로(126)를 지시하는 데이터를 수신한다. 테이블(122)의 상부와 식물(124) 사이의 갭이 로봇의 기부보다 좁은 데 반하여, 로봇(110)은 테이블 상부 아래로 그것의 로봇 기부를 연장하고 테이블 상부 위로 그것의 로봇 팔들을 들어 올림으로써 테이블(122) 또는 식물(124) 중 어느 쪽과도 충돌하지 않고 갭을 통해 이동할 수 있다.
도 2a는 최대 2D 로봇 프로파일을 이용하는 2D 경로 계획의 예(200a)를 예시하는 도면이다. 도 2a에서, 로봇(110)의 센서들로부터 수신된 센서 데이터에 기초하여, 2D 플래너는 로컬 2D 점유 격자를 생성한다. 로컬 점유 격자는 테이블(122)과 식물(124)에 의해 각각 "점유된" 것으로 표시되는 영역들(222 및 224)을 포함한다.
로봇 데이터에 기초하여, 2D 플래너는 로봇(110)의 최대 2D 프로파일(232a)을 생성한다. 최대 프로파일(232a)은 테이블(122)과 식물(124) 사이의 공간을 통과할 로봇(110)의 가장 넓은 폭, 예를 들어, 이 예에서 로봇(110)의 기부의 둘레에 대응한다.
2D 플래너는 또한, 테이블(122)과 식물(124) 사이를 이동하도록 로봇(110)을 안내하는, 선호 경로(126)를 기술하는 글로벌 경로 데이터를 수신한다. 최대 프로파일(232a)의 직경이 테이블(122)과 식물(124)에 의해 각각 점유된 영역들(222 및 224) 사이의 공간보다 크기 때문에, 2D 플래너는 충돌 회피 경로가 없다고 결정한다. 3D 경로 계획이 없다면, 선호 경로(126)를 로컬로 내비게이팅하려는 로봇의 시도는, 충돌 회피 경로가 존재하더라도, 충돌 회피 경로가 없다는 결정과 함께, 여기서 종료될 수 있다. 로봇(110)은 3D 경로 계획을 또한 구현하기 때문에, 그것은 충돌 회피 경로를 식별하기 위해 3D 분석 기법들을 이용하는 것으로 스위칭할 수 있다.
로봇(110)이 3D 분석 기법들을 이용하는 것으로 스위칭해야 하는지를 결정하기 위해, 로컬 내비게이션 시스템의 경로 계획 모듈은 먼저 최소 2D 프로파일을 이용하여 충돌 회피 경로가 잠재적으로 존재하는지를 평가한다. 모듈이 최소 2D 프로파일을 이용하여 충돌 회피 경로를 식별하지 않으면, 시스템은 글로벌 경로를 따라 가능한 충돌 회피 경로가 없다고 결정한다. 그러나, 모듈이 최소 프로파일을 이용하여 잠재적인 충돌 회피 경로를 식별한다면, 시스템은 3D 분석 기법들을 이용하는 것으로 스위칭한다.
도 2b의 예(200b)에서, 로봇(110)은 최소 2D 프로파일(232b)을 이용하여 2D 경로 계획을 수행한다. 로봇의 2D 플래너는 액세스된 로봇 데이터에 기초하여 로봇(110)의 최소 프로파일(232b)을 생성한다. 이 예에서, 최소 프로파일(232b)은 테이블(122)과 식물(124) 사이의 공간을 통과할 로봇(110)의 가장 좁은 폭(예를 들어, 로봇의 몸통의 둘레)에 대응한다.
2D 플래너는 최소 프로파일(232b)을 이용하여 원하는 글로벌 경로(126)를 평가하고, 최소 프로파일(232b)이 테이블(122)과 식물(224) 사이의 갭보다 작기 때문에, 글로벌 경로(126)를 따라 잠재적으로 충돌 회피 루트가 있다고 결정한다.
2D 플래너가 최소 프로파일(232b)을 이용하여 잠재적인 충돌 회피 경로가 존재한다고 결정했기 때문에, 로봇의 경로 계획 모듈은 충돌 회피 경로를 식별하기 위해 3D 분석 기법들(예를 들어, 3D 플래너)을 이용하는 것으로 스위칭한다. 도 2c는 3D 경로 계획의 예(200c)를 예시하는 도면이다. 예(200c)에서, 로봇의 3D 플래너는 액세스된 로봇 데이터에 기초하여 로봇(110)의 3D 프로파일(232c)을 생성한다. 3D 프로파일(232c)은 3차원에서 로봇(110)의 외부 범위를 지시하는 바운딩 박스를 포함한다. 도 2c의 예에서, 바운딩 박스는 로봇의 팔들을 포함하지 않는데, 그 이유는 그것들은 움직일 수 있고 필요에 따라 조정될 수 있기 때문이다.
3D 플래너는 또한 테이블(122)과 식물(124) 각각의 3D 프로파일들(222c, 224c)을 생성한다. 예를 들어, 3D 플래너는 로봇(110)의 하나 이상의 RGB-D 카메라로부터 수신된 이미지 및 깊이 데이터에 기초하여 프로파일들(222c 및 224c)을 생성할 수 있다.
3D 로봇 프로파일(232c)뿐만 아니라, 테이블(122)과 식물(124) 각각의 3D 프로파일들(222c 및 224c)을 분석하는 것에 기초하여, 3D 플래너는 로봇(110)이 그것의 팔들을 들어 올린다면 로봇(110)은 테이블(122)과 식물(124) 사이의 경로를 따라 어느 쪽과도 충돌하지 않고 이동할 수 있다고 결정한다.
2D 및 3D 경로 계획 분석들에 기초하여, 로봇의 경로 계획 모듈은 충돌 회피 경로를 선택하고, 해당 경로를 기술하는 데이터뿐만 아니라, 필요한 로봇 구성을 지시하는 데이터를 로봇의 내비게이션 모듈에 전송할 수 있다.
도 2d는 도 2a 내지 도 2c의 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션의 예(200d)를 예시하는 도면이다. 예(200d)에서, 경로 계획 모듈에 의해 결정된 선택된 경로 및 로봇 구성(즉, 로봇 팔들이 들어 올려짐)에 기초하여, 로봇(110)은 테이블(122)과 식물(124) 사이의 경로를 성공적으로 내비게이팅한다.
도 3a는 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션을 위한 프로세스(300a)의 예를 예시하는 흐름도이다. 프로세스(300a)에서, 로봇의 로컬 내비게이션 시스템은 먼저 로봇의 최대 2D 프로파일을 이용한 2D 분석들을 이용하여 선호 글로벌 경로를 따른 충돌 회피 루트를 결정하려고 시도한다. 시스템이 충돌 회피 경로를 식별할 수 없다면, 그것은 먼저 로봇의 최소 2D 프로파일을 이용한 2D 기법들을 이용하여 임의의 잠재적인 충돌 회피 경로가 존재하는지를 평가함으로써 3D 경로 분석들을 수행할지를 결정한다. 시스템이 최소 프로파일을 이용하여 충돌 회피 경로를 식별한다면, 시스템은 충돌 회피 경로를 식별하기 위해 3D 분석을 수행한다. 시스템이 3D 분석들을 이용하여 충돌 회피 경로를 식별한다면, 그것은 식별된 경로 세그먼트를 선택하고 경로 세그먼트 및 로봇 구성을 기술하는 데이터를 로봇의 모터 제어부에 전송한다.
프로세스(300a)에서, 선호 글로벌 경로에 기초하여, 로컬 내비게이션 시스템의 2D 플래너는 먼저 로봇에 대한 선호 경로를 따라 후보 경로 세그먼트들을 생성한다(302). 예를 들어, 로봇의 현재 위치에서 시작하여, 2D 플래너는 일반적으로 글로벌 경로의 방향으로 연장되지만 경로에 관하여 각도가 변화하는(예를 들어, 15도의 각도 스텝들만큼 변화하는) 다수의 후보 경로 세그먼트들을 생성할 수 있다. 후보 경로 세그먼트들의 길이들은 동일할 수 있거나 변화할 수 있지만, 전형적으로 로봇의 인근의 범위 내에(예를 들어, 수 미터 내에) 남아 있을 만큼 충분히 짧다.
그 후 2D 플래너는 로봇의 최대 2D 프로파일을 이용하여 후보 경로 세그먼트들을 평가하여 각각의 세그먼트가 잠재적인 충돌을 야기하는지를 결정한다(304). 2D 플래너는 로봇의 물리적 크기, 형상, 또는 치수들을 지시하는 저장된 로봇 데이터에 기초하여 최대 프로파일을 생성할 수 있다. 일부 구현들에서, 2D 플래너는 로봇의 로컬 부근에 있는 물체들의 위치를 지시하는 센서 데이터에 기초하여 로컬 2D 점유 격자를 생성한다. 주어진 후보 경로 세그먼트를 따라 로봇을 이동시킴으로 인해 최대 프로파일이 로컬 점유 격자의 점유된 공간과 교차하게 된다면 2D 플래너는 해당 세그먼트를 따른 잠재적인 충돌을 검출한다.
최대 프로파일 및 로컬 점유 격자를 이용하여, 2D 플래너는 후보 경로 세그먼트들을 평가하여 후보 경로 세그먼트들 중 임의의 것이 충돌 회피 경로를 야기하는지를 결정한다(306). 2D 플래너가 후보 경로 세그먼트들 중 하나 이상이 충돌 회피인 것으로 결정한다면, 2D 플래너는 충돌 회피 세그먼트들 중에서 경로 세그먼트를 선택(308)한 다음 후속 경로 세그먼트를 결정하기 위해 분석을 반복할 수 있다(단계 302로 돌아가서).
2D 플래너가 최대 프로파일을 이용하여 후보 경로 세그먼트들 중 어느 것도 충돌 회피가 아닌 것으로 결정하면, 시스템은 먼저 로봇의 최소 2D 프로파일을 이용하여 후보 경로 세그먼트들을 평가(310)함으로써 3D 분석들로 스위칭할지를 결정한다. 예를 들어, 2D 플래너는 저장된 로봇 데이터에 기초하여 로봇의 최소 프로파일을 생성할 수 있다. 그 후 2D 플래너는 생성된 로컬 점유 격자를 이용하여 로봇이 주어진 후보 경로 세그먼트를 따라 이동한다면 잠재적인 충돌이 발생할 수 있는지를 결정할 수 있다. 최대 프로파일을 이용하는 2D 분석들과 유사하게, 세그먼트를 따라 로봇을 이동시킴으로 인해 최소 프로파일이 로컬 점유 격자의 점유된 공간과 교차하게 된다면 잠재적인 충돌이 검출된다. 일부 구현들에서, 2D 플래너는 최소 2D 프로파일을 이용하여 평가할 새로운 후보 경로 세그먼트들(예를 들어, 최대 프로파일을 이용하여 평가된 것들과 상이한 후보 경로 세그먼트들)을 식별할 수 있다.
2D 플래너는 후보 경로 세그먼트들을 평가하여 최소 2D 프로파일을 이용한 충돌 회피 경로가 있는지를 결정한다(312). 2D 플래너가 후보 경로 세그먼트들 중 어느 것도 충돌 회피 루트를 야기하지 않는다고 결정한다면, 플래너는 선호 글로벌 경로를 따른 충돌 회피 루트가 없다고 결정한다(314). 이 경우, 내비게이션 시스템은 선호 글로벌 경로가 내비게이팅 가능하지 않다는 것을 지시하는 메시지를 글로벌 경로 계획 시스템에(예를 들어, 원격 서버에) 반환할 수 있다. 일부 예들에서, 2D 플래너는, 예를 들어, 글로벌 경로로부터 더 많이 벗어나는 대체의 후보 경로 세그먼트들을 생성 및 평가함으로써 대체의 루트를 결정하려고 시도할 수 있다.
그러나, 2D 플래너가 특정 후보 경로 세그먼트가 최소 프로파일을 이용하여 평가될 때 충돌 회피인 것으로 결정한다면, 로컬 내비게이션 시스템은 3D 경로 분석들로 스위칭한다. 3D 분석 기법들을 이용하여, 3D 플래너는 특정 후보 경로 세그먼트를 평가하여 해당 세그먼트가 실제로 충돌 회피인지를 결정한다(316). 예를 들어, 이전에 설명된 바와 같이, 로봇의 센서들(예를 들어, 카메라들, LIDAR, 레이더 등)로부터 수신된 센서 데이터에 기초하여, 3D 플래너는 로봇의 로컬 환경에서 검출된 물체들의 3D 프로파일들을 생성할 수 있다. 3D 플래너는 또한 하나 이상의 구성(예를 들어, 팔들이 들어 올려지고, 옆으로 돌려진 상태)으로 로봇의 3D 프로파일을 생성한다. 검출된 물체들 및 로봇의 3D 프로파일들에 기초하여, 3D 플래너는 로봇이 검출된 물체와 충돌하지 않고 특정 후보 경로 세그먼트를 따라 이동할 수 있는지를 결정한다.
3D 플래너가 특정 후보 경로 세그먼트가 충돌 회피인 것으로 결정한다면(318), 그것은 해당 경로 세그먼트를 선택하고(308) 그 후 다음 경로 세그먼트(예를 들어, 이전 세그먼트 종점에서 시작되는 경로 세그먼트)의 2D 경로 계획을 수행하기 위해 단계 302로 돌아감으로써 계속해서 루트를 계획한다.
일부 구현들에서, 3D 플래너가 특정 후보 경로 세그먼트가 잠재적인 충돌을 야기하다고 결정하면, 3D 플래너는 충돌 회피 경로가 검출될 때까지 또는 미리 결정된 구성 세트의 전부가 분석될 때까지 다양한 로봇 구성들에 대해 단계 316을 반복할 수 있다.
3D 플래너가 로봇이 물체와 잠재적으로 충돌하지 않고 후보 경로 세그먼트를 따라 이동할 수 없다고 결정한다면, 플래너는 글로벌 경로를 따른 충돌 회피 루트가 없다고 결정한다(314). 위와 같이, 이 경우, 내비게이션 시스템은 선호 글로벌 경로가 내비게이팅 가능하지 않다는 것을 지시하는 메시지를 글로벌 경로 계획 시스템(예를 들어, 원격 서버)에 반환하거나 또는 글로벌 경로로부터 더 많이 벗어나는 대체의 루트를 식별하기 위해 로컬 경로 계획을 이용할 수 있다.
위에 언급된 바와 같이, 충돌 회피 후보 경로 세그먼트가 선택되면(308), 로컬 내비게이션 시스템은 필요에 따라 단계 302 내지 단계 318을 반복함으로써 경로 계획을 계속할 수 있다. 미리 결정된 수의 경로 세그먼트들이 선택된 후에, 시스템은 선택된 경로를 기술하는 경로 데이터(348) 및 필요한 로봇 구성을 기술하는 로봇 구성 데이터(349)를 생성한다. 시스템은 경로 데이터(348) 및 구성 데이터(349)를 내비게이션 모듈(350)에 제공하고, 내비게이션 모듈(350)은 로봇이 식별된 충돌 회피 경로를 따라 이동하게 하기 위해 로봇의 모터 제어부(380)에 전송되는 모터 명령들(352)을 생성한다.
도 3b는 도 1 및 도 2a 내지 도 2d에서와 같이, 방 안의 테이블과 식물 사이의 선호 글로벌 경로를 따라 내비게이팅하는 로봇에 대한 도 3a의 2D 및 3D 경로 계획 프로세스(300a)를 이용하는 로컬 로봇 내비게이션의 예(300b)를 예시하는 도면이다.
도 3b에서 로봇의 로컬 내비게이션 시스템은 최대 2D 프로파일을 이용한 2D 경로 계획을 이용하여 시작점 "0"으로부터 중간점 "1"까지의 충돌 회피 경로 세그먼트를 이미 결정하였다. 다음 경로 세그먼트를 결정하기 위해, 단계 302'에서 2D 플래너는 로봇을 일반적으로 선호 글로벌 경로를 따라 이동시킬 후보 경로 세그먼트들을 생성한다. 예(300b)에서, 2D 플래너는, 패널(320)에 나타내어진 바와 같이, 점 "1"로부터 점 "2a", "2b", 및 "2c"로 각각 연장되는 3개의 후보 경로 세그먼트를 생성한다. 패널(320)은 테이블과 식물의 위치들을 또한 나타내는데, 여기서 영역들(322 및 324)은 로봇의 로컬 2D 점유 격자에서 점유된 것으로 지정된다.
단계 304'에서, 2D 플래너는 로봇의 최대 2D 프로파일(332a)을 이용하여 후보 경로 세그먼트들 중 임의의 것이 충돌 회피인지를 평가한다. 최대 프로파일(332a)은 후보 경로 세그먼트들 3개 모두에 대한 로컬 점유 격자의 점유된 공간과 교차하기 때문에, 2D 플래너는 후보 경로 세그먼트들 중 어느 것도 최대 프로파일(332a)을 이용하여 평가될 때 충돌 회피 경로가 아니라고 결정한다(306').
2D 플래너가 최대 프로파일을 이용하여 충돌 회피 경로를 식별하지 않았기 때문에(306'), 2D 플래너는 다음으로 최소 2D 프로파일(332b)을 이용하여 후보 경로 세그먼트들을 평가함으로써 잠재적인 충돌 회피 경로가 존재하는지를 결정한다(310'). 패널(330)에 나타내어진 바와 같이, 2D 플래너는 로컬 2D 점유 격자를 이용하여 3개의 후보 경로 각각을 평가하고 점 "1"로부터 점 "2b"로의 후보 세그먼트가 최소 프로파일(332b)을 이용하여 평가될 때 충돌 회피인 것으로 결정한다(312').
2D 플래너가 최소 2D 프로파일(332b)을 이용한 충돌 회피 경로 세그먼트가 있다고 결정하기 때문에, 로컬 내비게이션 시스템은 충돌 회피 경로를 식별하기 위해 3D 분석 기법들을 이용하는 것으로 스위칭한다(316'). 센서 데이터에 기초하여, 3D 플래너는 로봇의 로컬 환경 내의 물체들의 3D 프로파일들을 생성한다. 예(300b)에서, 3D 플래너는, 패널(340)에 나타내어진 바와 같이, 테이블과 식물 각각에 대한 3D 프로파일들(322c 및 324c)을 생성한다. 저장된 로봇 데이터에 기초하여, 3D 플래너는 로봇의 3D 형상에 대응하는 3D 로봇 프로파일(332c)을 생성한다.
3D 분석들을 이용하여, 3D 플래너는 후보 경로 세그먼트를 평가하여 해당 경로 세그먼트를 따른 충돌 회피 루트를 야기하는 로봇 구성이 있는지를 결정한다(316'). 예(300b)에서, 3D 플래너는 로봇이 그것의 팔들을 들어 올린다면 로봇이 점 "1"로부터 점 "2b"로의 세그먼트를 따라 충돌 없이 테이블과 식물 사이를 통과할 수 있다고 결정한다(318').
3D 플래너가 3D 분석들을 이용하여 충돌 회피 경로를 식별했기 때문에(318'), 내비게이션 시스템은 식별된 경로 세그먼트(점 "1"로부터 점 "2b"로)를 선택하고 최대 프로파일을 이용한 2D 분석들(302")로 되돌아감으로써 경로 계획을 계속한다. 2D 플래너는 단계 302를 반복하여, 점 "2b"로부터 점 "3a", "3b" 및 "3c"로 각각 3개의 새로운 후보 경로 세그먼트를 생성한다. 그 후 2D 플래너는 충돌 회피 루트가 식별될 수 있는지를 결정하기 위해 최대 2D 프로파일(332a)을 이용하여 새로운 후보 경로 세그먼트들 각각을 평가한다(304"). 패널(350)에 나타내어진 바와 같이, 2D 플래너는 세그먼트 "2b-3b"가 최대 2D 프로파일을 이용한 충돌 회피인 것으로 결정한다. 그 결과, 시스템은 경로 세그먼트 "2b-3b"를 선택한 다음, 프로세스(300a)에 따라, 계속해서 로봇 코스를 차팅하고, 다음 경로 세그먼트는 포인트 "3b"에서 시작된다.
도 3b의 패널(360)은 시스템에 의해 선택된 최종 경로를 나타내는데, 여기서 라인의 실선 부분들은 경로의 시작 및 종료 세그먼트들은 2D 경로 계획을 이용하여 결정된 것임을 지시하고, 라인의 점선 부분은 테이블과 식물 사이의 경로의 중간 세그먼트는 3D 경로 계획을 이용하여 결정된 것임을 지시한다.
도 4는 2D 및 3D 경로 계획을 이용한 로컬 로봇 내비게이션을 위한 방법(400)의 예를 예시하는 흐름도이다. 방법(400)은 하나 이상의 컴퓨터 시스템, 예를 들어, 로봇(110)의 컴퓨터 시스템에 의해 수행될 수 있다. 간략하게, 방법(400)은, 상기 로봇에 의해, 공간 내의 물체들의 2D 레이아웃을 지시하는 맵 데이터에 액세스하는 단계(402); 상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계(404); 상기 후보 경로들이 충돌 회피 경로를 포함하지 않는다고 결정하는 단계(406); 상기 결정에 응답하여, 상기 공간 내의 물체의 3D 형상에 관하여 상기 로봇의 3D 형상을 평가하는 단계(408); 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3D 형상을 평가하는 것에 기초하여 경로를 결정하는 단계(410)를 포함한다.
더 상세하게, 방법(400)은, 상기 로봇에 의해, 공간 내의 물체들의 2D 레이아웃을 지시하는 맵 데이터에 액세스하는 단계(402)를 포함한다. 상기 맵 데이터는, 예를 들어, 벽들, 장벽들, 바리케이드들, 가구들, 또는 로봇의 움직임을 방해할 수 있는 다른 물체들을 포함하는, 다양한 물체들 및/또는 장애물들의 위치를 지시하는 평면도(floor plan)를 포함할 수 있다. 일부 구현들에서, 상기 맵 데이터는 하나 이상의 점유 격자를 포함할 수 있는데, 여기서 상기 공간 내의 물체들 또는 장애물들에 대응하는 해당 격자 공간들이 지시된다. 일부 구현들에서, 상기 로봇은 원격 컴퓨터 시스템으로부터, 예를 들어, 통신 네트워크를 통해 서버로부터 상기 맵 데이터를 수신한다. 일부 구현들에서, 상기 로봇은 상기 로봇의 메모리 시스템으로부터 상기 맵 데이터를 검색함으로써 상기 맵 데이터에 액세스한다.
상기 방법은, 상기 로봇에 의해, 상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계(404)를 또한 포함한다. 예를 들어, 상기 로봇은 상기 로봇의 일반적인 방향 또는 목적지를 지시하는 글로벌 경로에 액세스할 수 있다. 상기 맵 데이터, 상기 로봇의 센서 데이터, 또는 다른 데이터에 기초하여, 상기 로봇은 상기 공간 내의 물체의 위치 및 상기 물체에 의해 점유된 2D 영역을 결정할 수 있다. 그 후 상기 로봇은 상기 로봇이 횡단하기 위한 경로 세그먼트를 생성할 수 있는데, 여기서 상기 경로 세그먼트는 일반적으로 상기 글로벌 경로를 따라 지향되고 상기 경로 세그먼트는 상기 물체에 의해 점유된 영역과 교차하지 않는다. 일부 구현들에서, 상기 로봇은 일반적으로 상기 글로벌 경로를 따라 지향되는 둘 이상의 후보 경로 세그먼트를 생성할 수 있다.
상기 방법은, 상기 로봇에 의해, 상기 후보 경로들이 상기 로봇의 2D 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계(406)를 추가로 포함한다. 예를 들어, 상기 로봇은 상기 로봇의 2D 프로파일을 지시하는 데이터에 액세스할 수 있는데, 여기서 상기 2D 프로파일은 상기 로봇의 2D 형상을 지시한다. 일부 구현들에서, 상기 2D 프로파일은 상기 로봇의 최소 2D 프로파일, 예를 들어, 특정 평면에서의 상기 로봇의 최소 폭 또는 둘레일 수 있다. 상기 로봇은 상기 세그먼트의 길이를 따라 상기 로봇의 2D 프로파일을 추적함으로써 상기 후보 경로 세그먼트를 따른 2D 영역을 생성할 수 있다. 상기 로봇은 상기 후보 세그먼트를 따른 영역이 물체에 의해 점유된 영역과 교차한다고 결정함으로써 상기 후보 경로 세그먼트가 충돌 회피가 아닌 것으로 추가로 결정할 수 있다. 상기 생성된 후보 경로 세그먼트들 중 어느 것도 충돌 회피 경로를 포함하지 않는다면, 상기 로봇은 상기 후보 경로들이 고려되는 상기 로봇의 특정 2D 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정할 수 있다.
상기 후보 경로들이 상기 로봇의 2D 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 것에 응답하여, 상기 로봇은 상기 공간 내의 물체의 3D 형상에 관하여 상기 로봇의 3D 형상을 평가할 수 있다(408). 예를 들어, 상기 로봇은 상기 로봇의 3D 형상을 지시하는 데이터에 액세스할 수 있는데, 여기서 상기 3D 형상은 바닥으로부터 다수의 상이한 높이들에서의 상기 로봇의 폭 또는 둘레를 포함할 수 있다. 일부 경우들에서, 3D 형상은 로봇에 대한 3D 바운딩 박스를 지시할 수 있거나, 로봇의 3D 모델(예를 들어, CAD 모델)에 기초할 수 있다. 3D 형상은 특정 로봇 구성(예를 들어, 그것의 팔들이 들어 올려지고, 옆으로 돌려진 상태)에 대응할 수 있다. 유사하게, 물체의 3D 형상은 바닥으로부터 다수의 상이한 높이에서의 물체의 폭들 또는 둘레들, 물체에 대한 3D 바운딩 박스를 포함하거나, 물체의 3D 모델에 기초할 수 있다. 일부 경우들에서, 로봇은 로봇의 하나 이상의 센서로부터의 데이터, 예를 들어, 하나 이상의 카메라, LIDAR 센서, 레이더 센서, 또는 다른 로봇 센서로부터의 데이터에 기초하여 물체의 3D 형상을 결정할 수 있다. 로봇은 생성된 경로 세그먼트가 충돌 회피인지를 결정하기 위해 물체의 3D 형상에 관하여 로봇의 3D 형상을 평가할 수 있다.
이 방법은, 로봇에 의해, 공간 내의 물체의 3D 형상에 관하여 로봇의 3D 형상을 평가하는 것에 기초하여 경로를 결정하는 단계(410)를 또한 포함한다. 예를 들어, 공간 내의 하나 이상의 물체의 3D 형상에 관하여 로봇의 3D 형상을 평가하는 것에 기초하여, 로봇이 특정 후보 경로가 충돌 회피인 것으로 결정하면, 그것은 로봇이 횡단하기 위한 해당 후보 경로를 선택할 수 있다.
일부 구현들에서, 로봇의 3D 형상은 로봇의 특정 구성(예를 들어, 로봇 팔들이 측면들에 있는 상태)에 대응할 수 있다. 공간 내의 물체의 3D 형상에 관하여 특정 로봇 구성에 대응하는 3D 형상을 평가하는 것에 기초하여, 로봇은 후보 경로가 로봇과 물체 간의 충돌을 야기할 것이라고 결정할 수 있다(예를 들어, 로봇의 3D 형상이 후보 경로를 따른 어떤 지점에서 물체의 3D 형상과 교차한다). 그 후 로봇은 충돌 회피 경로가 존재하는지를 결정하기 위해 로봇의 제2 3D 형상, 예를 들어, 제2의 상이한 로봇 구성(예를 들어, 로봇 팔들이 들어 올려진 상태)에 대응하는 3D 형상을 이용하여 3D 분석을 반복할 수 있다. 물체의 3D 형상에 관하여 로봇의 제2 3D 형상을 평가하는 것에 기초하여, 로봇은 로봇에 대한 충돌 회피 경로를 결정할 수 있다.
설명된 특징들은 디지털 전자 회로에서, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어에서, 또는 이들의 조합에서 구현될 수 있다. 이 기법들은 프로그래밍 가능한 프로세서에 의한 실행을 위해, 정보 캐리어에, 예를 들어, 머신-판독가능 저장 디바이스에 유형으로(tangibly) 구현된 컴퓨터 프로그램 제품에서 구현될 수 있다; 그리고 방법 단계들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 설명된 구현들의 기능들을 수행하기 위해 명령어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 머신-판독가능 저장 디바이스는 비-일시적인 머신-판독가능 저장 디바이스일 수 있다. 설명된 특징들은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고, 그것들에 데이터 및 명령어들을 송신하도록 결합된 적어도 하나의 프로그래밍 가능한 프로세서를 포함하는 프로그래밍 가능한 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램에서 유리하게 구현될 수 있다. 컴퓨터 프로그램은 특정 활동을 수행하거나 특정 결과를 야기하기 위해 컴퓨터에서 직접적으로 또는 간접적으로 이용될 수 있는 명령어들의 세트이다. 컴퓨터 프로그램은, 컴파일링된 또는 인터프리팅된 언어들을 포함하는, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 그것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 이용하기에 적합한 다른 유닛으로서 배포되는 것을 포함하여, 임의의 형태로 배포될 수 있다.
명령어들의 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 컴퓨터의 유일한 프로세서 또는 다수의 프로세서들 중 하나를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리이다. 일반적으로, 컴퓨터는 데이터 파일들을 저장하기 위한 하나 이상의 대용량 저장 디바이스를 또한 포함하거나, 그와 통신하도록 동작 가능하게 결합될 것이다; 그러한 디바이스들은 내부 하드 디스크들 및 이동식 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 광 디스크들을 포함한다. 컴퓨터 프로그램 명령어들 및 데이터를 유형으로 구현하기에 적합한 저장 디바이스들은 예로서 EPROM, EEPROM, 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들을 포함하는 모든 형태의 비휘발성 메모리; 내부 하드 디스크들 및 이동식 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함한다. 프로세서 및 메모리는 ASIC(application-specific integrated circuit)들에 의해 보완되거나 그에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 특징들은 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 터치스크린 및/또는 키보드 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 마우스 또는 트랙볼과 같은 포인팅 디바이스를 갖는 컴퓨터 상에 구현될 수 있다.
특징들은 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버 또는 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나, 그래픽 사용자 인터페이스 또는 인터넷 브라우저를 갖는 클라이언트 컴퓨터와 같은 프런트엔드 컴포넌트를 포함하거나, 또는 이들의 임의의 조합을 포함하는 컴퓨터 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 연결될 수 있다. 통신 네트워크들의 예들은, 예를 들어, LAN, WAN, 및 인터넷을 형성하는 컴퓨터들 및 네트워크들을 포함한다.
컴퓨터 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 원격에 있고 전형적으로 설명된 것과 같은 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들의 덕분으로 발생한다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 예를 들어, 외부 애플리케이션보다는 소셜 네트워킹 플랫폼이 고용 분석을 수행하고 고용 정보를 소셜 네트워킹 플랫폼의 사용자들에게 제공할 수 있다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 로봇에 의해 수행되는 방법으로서,
    상기 방법은:
    상기 로봇에 의해, 공간 내의 물체들의 2차원 레이아웃을 지시하는 맵 데이터에 액세스하는 단계;
    상기 로봇에 의해, 상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계;
    상기 로봇에 의해, 상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계;
    상기 결정에 응답하여, 상기 로봇에 의해, 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 단계; 및
    상기 로봇에 의해, 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 로봇의 2차원 프로파일은 상기 로봇의 최소 2차원 프로파일인, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는:
    상기 로봇에 의해, 상기 공간 내의 물체의 위치 및 상기 물체에 의해 점유된 영역을 결정하는 단계; 및
    상기 로봇에 의해, 상기 로봇이 횡단하기 위한 경로 세그먼트를 생성하는 단계 - 상기 경로 세그먼트는 상기 물체에 의해 점유된 영역과 교차하지 않음 - 를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계는:
    상기 로봇에 의해, 상기 경로 세그먼트의 길이를 따라 상기 로봇의 2차원 프로파일을 추적함으로써 상기 경로 세그먼트를 따른 2차원 영역을 생성하는 단계; 및
    상기 로봇에 의해, 상기 경로 세그먼트를 따른 영역이 상기 물체에 의해 점유된 영역과 교차한다고 결정하는 단계를 포함하는, 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 로봇의 3차원 형상은 상기 로봇의 제1 구성에 대응하는 제1 3차원 형상이고;
    상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계는:
    상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 제1 3차원 형상을 평가하는 것에 기초하여, 상기 로봇에 의해, 상기 로봇의 제1 3차원 형상이 상기 물체의 3차원 형상에 교차한다고 결정하는 단계; 및
    상기 결정에 응답하여, 상기 로봇에 의해, 상기 물체의 3차원 형상에 관하여 상기 로봇의 제2 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계 - 상기 로봇의 제2 3차원 형상은 상기 로봇의 제2 구성에 대응함 - 를 포함하는, 방법.
  6. 제1항 또는 제2항에 있어서,
    공간 내의 물체들의 2차원 레이아웃을 지시하는 맵 데이터에 액세스하는 단계는, 상기 로봇에 의해, 통신 네트워크를 통해 서버로부터 맵 데이터를 수신하는 단계를 포함하는, 방법.
  7. 제1항 또는 제2항에 있어서,
    상기 맵 데이터에 기초하여 상기 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는, 상기 로봇에 의해, 상기 로봇이 상기 공간을 횡단하기 위한 둘 이상의 후보 경로를 평가하는 단계를 포함하고;
    상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계는, 상기 로봇에 의해, 상기 둘 이상의 후보 경로 중 어느 것도 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계를 포함하는, 방법.
  8. 시스템으로서,
    하나 이상의 컴퓨터; 및
    명령어들을 저장하는 하나 이상의 컴퓨터-판독가능 매체를 포함하고, 상기 명령어들은, 상기 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금:
    상기 하나 이상의 컴퓨터에 의해, 공간 내의 물체들의 2차원 레이아웃을 지시하는 맵 데이터에 액세스하는 단계;
    상기 하나 이상의 컴퓨터에 의해, 상기 맵 데이터에 기초하여 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계;
    상기 하나 이상의 컴퓨터에 의해, 상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계;
    상기 결정에 응답하여, 상기 하나 이상의 컴퓨터에 의해, 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 단계; 및
    상기 하나 이상의 컴퓨터에 의해, 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계를 포함하는 동작들을 수행하게 하는, 시스템.
  9. 제8항에 있어서,
    상기 로봇의 2차원 프로파일은 상기 로봇의 최소 2차원 프로파일인, 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 맵 데이터에 기초하여 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는:
    상기 하나 이상의 컴퓨터에 의해, 상기 공간 내의 물체의 위치 및 상기 물체에 의해 점유된 영역을 결정하는 단계; 및
    상기 하나 이상의 컴퓨터에 의해, 상기 로봇이 횡단하기 위한 경로 세그먼트를 생성하는 단계 - 상기 경로 세그먼트는 상기 물체에 의해 점유된 영역과 교차하지 않음 - 를 포함하는, 시스템.
  11. 제10항에 있어서,
    상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계는:
    상기 하나 이상의 컴퓨터에 의해, 상기 경로 세그먼트의 길이를 따라 상기 로봇의 2차원 프로파일을 추적함으로써 상기 경로 세그먼트를 따른 2차원 영역을 생성하는 단계; 및
    상기 하나 이상의 컴퓨터에 의해, 상기 경로 세그먼트를 따른 영역이 상기 물체에 의해 점유된 영역과 교차한다고 결정하는 단계를 포함하는, 시스템.
  12. 제8항 또는 제9항에 있어서,
    상기 로봇의 3차원 형상은 상기 로봇의 제1 구성에 대응하는 제1 3차원 형상이고;
    상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계는:
    상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 제1 3차원 형상을 평가하는 것에 기초하여, 상기 하나 이상의 컴퓨터에 의해, 상기 로봇의 제1 3차원 형상이 상기 물체의 3차원 형상에 교차한다고 결정하는 단계; 및
    상기 결정에 응답하여, 상기 하나 이상의 컴퓨터에 의해, 상기 물체의 3차원 형상에 관하여 상기 로봇의 제2 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계 - 상기 로봇의 제2 3차원 형상은 상기 로봇의 제2 구성에 대응함 - 를 포함하는, 시스템.
  13. 제8항 또는 제9항에 있어서,
    공간 내의 물체들의 2차원 레이아웃을 지시하는 맵 데이터에 액세스하는 단계는, 상기 하나 이상의 컴퓨터에 의해, 통신 네트워크를 통해 서버로부터 맵 데이터를 수신하는 단계를 포함하는, 시스템.
  14. 제8항 또는 제9항에 있어서,
    상기 맵 데이터에 기초하여 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는, 상기 하나 이상의 컴퓨터에 의해, 상기 로봇이 상기 공간을 횡단하기 위한 둘 이상의 후보 경로를 평가하는 단계를 포함하고;
    상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계는, 상기 하나 이상의 컴퓨터에 의해, 상기 둘 이상의 후보 경로 중 어느 것도 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계를 포함하는, 시스템.
  15. 명령어들을 저장하는 하나 이상의 컴퓨터-판독가능 매체로서, 상기 명령어들은, 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금:
    상기 하나 이상의 컴퓨터에 의해, 공간 내의 물체들의 2차원 레이아웃을 지시하는 맵 데이터에 액세스하는 단계;
    상기 하나 이상의 컴퓨터에 의해, 상기 맵 데이터에 기초하여 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계;
    상기 하나 이상의 컴퓨터에 의해, 상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계;
    상기 결정에 응답하여, 상기 하나 이상의 컴퓨터에 의해, 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 단계; 및
    상기 하나 이상의 컴퓨터에 의해, 상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계를 포함하는 동작들을 수행하게 하는, 하나 이상의 컴퓨터-판독가능 매체.
  16. 제15항에 있어서,
    상기 로봇의 2차원 프로파일은 상기 로봇의 최소 2차원 프로파일인, 하나 이상의 컴퓨터-판독가능 매체.
  17. 제15항 또는 제16항에 있어서,
    상기 맵 데이터에 기초하여 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는:
    상기 하나 이상의 컴퓨터에 의해, 상기 공간 내의 물체의 위치 및 상기 물체에 의해 점유된 영역을 결정하는 단계;
    상기 하나 이상의 컴퓨터에 의해, 상기 로봇이 횡단하기 위한 경로 세그먼트를 생성하는 단계 - 상기 경로 세그먼트는 상기 물체에 의해 점유된 영역과 교차하지 않음 - 를 포함하는, 하나 이상의 컴퓨터-판독가능 매체.
  18. 제17항에 있어서,
    상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계는:
    상기 하나 이상의 컴퓨터에 의해, 상기 경로 세그먼트의 길이를 따라 상기 로봇의 2차원 프로파일을 추적함으로써 상기 경로 세그먼트를 따른 2차원 영역을 생성하는 단계; 및
    상기 하나 이상의 컴퓨터에 의해, 상기 경로 세그먼트를 따른 영역이 상기 물체에 의해 점유된 영역과 교차한다고 결정하는 단계를 포함하는, 하나 이상의 컴퓨터-판독가능 매체.
  19. 제15항 또는 제16항에 있어서,
    상기 로봇의 3차원 형상은 상기 로봇의 제1 구성에 대응하는 제1 3차원 형상이고;
    상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계는:
    상기 공간 내의 물체의 3차원 형상에 관하여 상기 로봇의 제1 3차원 형상을 평가하는 것에 기초하여, 상기 하나 이상의 컴퓨터에 의해, 상기 로봇의 제1 3차원 형상이 상기 물체의 3차원 형상에 교차한다고 결정하는 단계; 및
    상기 결정에 응답하여, 상기 하나 이상의 컴퓨터에 의해, 상기 물체의 3차원 형상에 관하여 상기 로봇의 제2 3차원 형상을 평가하는 것에 기초하여 경로를 결정하는 단계 - 상기 로봇의 제2 3차원 형상은 상기 로봇의 제2 구성에 대응함 - 를 포함하는, 하나 이상의 컴퓨터-판독가능 매체.
  20. 제15항 또는 제16항에 있어서,
    상기 맵 데이터에 기초하여 로봇이 상기 공간을 횡단하기 위한 후보 경로들을 평가하는 단계는, 상기 하나 이상의 컴퓨터에 의해, 상기 로봇이 상기 공간을 횡단하기 위한 둘 이상의 후보 경로를 평가하는 단계를 포함하고;
    상기 후보 경로들이 상기 로봇의 2차원 프로파일에 대해 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계는, 상기 하나 이상의 컴퓨터에 의해, 상기 둘 이상의 후보 경로 중 어느 것도 상기 공간을 가로지르는 충돌 회피 경로를 포함하지 않는다고 결정하는 단계를 포함하는, 하나 이상의 컴퓨터-판독가능 매체.
KR1020207033665A 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션 KR102434212B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227028206A KR102478975B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/967,805 2018-05-01
US15/967,805 US10899006B2 (en) 2018-05-01 2018-05-01 Robot navigation using 2D and 3D path planning
PCT/US2019/028868 WO2019212818A2 (en) 2018-05-01 2019-04-24 Robot navigation using 2d and 3d path planning

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227028206A Division KR102478975B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션

Publications (2)

Publication Number Publication Date
KR20210002615A KR20210002615A (ko) 2021-01-08
KR102434212B1 true KR102434212B1 (ko) 2022-08-19

Family

ID=66690955

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227028206A KR102478975B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션
KR1020207033665A KR102434212B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션
KR1020227043875A KR102530996B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227028206A KR102478975B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227043875A KR102530996B1 (ko) 2018-05-01 2019-04-24 2d 및 3d 경로 계획을 이용한 로봇 내비게이션

Country Status (5)

Country Link
US (3) US10899006B2 (ko)
EP (1) EP3768473A2 (ko)
KR (3) KR102478975B1 (ko)
CN (1) CN112074383A (ko)
WO (1) WO2019212818A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10899006B2 (en) 2018-05-01 2021-01-26 X Development Llc Robot navigation using 2D and 3D path planning
CA3102997A1 (en) * 2018-06-26 2020-01-02 Teradyne, Inc. System and method for robotic bin picking
US11465279B2 (en) * 2018-11-29 2022-10-11 X Development Llc Robot base position planning
JP7028151B2 (ja) * 2018-12-14 2022-03-02 トヨタ自動車株式会社 軌道生成装置
CN111015650A (zh) * 2019-11-18 2020-04-17 安徽机电职业技术学院 一种多点确定目标位置的工业机器人智能视觉系统及方法
US11493925B2 (en) * 2020-03-05 2022-11-08 Locus Robotics Corp. Robot obstacle collision prediction and avoidance
US20220193907A1 (en) * 2020-12-22 2022-06-23 X Development Llc Robot planning
CN112987724B (zh) * 2021-02-04 2023-05-02 京东科技信息技术有限公司 路径优化方法、装置、机器人及存储介质
CN112947453B (zh) * 2021-02-24 2024-04-30 湖北文理学院 一种混凝土平仓机行驶路径规划与实时调整方法
CN112947464A (zh) * 2021-03-05 2021-06-11 上海有个机器人有限公司 机器人通过狭窄空间方法、装置、终端及存储介质
JP2022136756A (ja) * 2021-03-08 2022-09-21 本田技研工業株式会社 自律走行システム
US11975451B2 (en) * 2021-03-27 2024-05-07 Mitsubishi Electric Research Laboratories, Inc. Simulation-in-the-loop tuning of robot parameters for system modeling and control
CN113524193B (zh) * 2021-08-05 2022-09-23 诺亚机器人科技(上海)有限公司 机器人运动空间标记方法、装置、机器人及可存储介质
CN115723121A (zh) * 2021-08-26 2023-03-03 富士能电子(昆山)有限公司 机械手臂避障方法及机械手臂避障系统
US20230110897A1 (en) * 2021-09-28 2023-04-13 Intrinsic Innovation Llc Online planning satisfying constraints
US11861959B2 (en) * 2022-01-06 2024-01-02 Johnson Controls Tyco IP Holdings LLP Methods and systems for integrating autonomous devices with an access control system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056506A (ja) * 2012-09-13 2014-03-27 Toyota Central R&D Labs Inc 障害物検出装置及びそれを備えた移動体

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4408982C1 (de) 1994-03-16 1995-05-18 Deutsche Forsch Luft Raumfahrt Autonomes Navigationssystem für einen mobilen Roboter oder Manipulator
US5835684A (en) * 1994-11-09 1998-11-10 Amada Company, Ltd. Method for planning/controlling robot motion
US7092862B2 (en) * 2002-12-05 2006-08-15 International Business Machines Corporation Apparatus and method for determining whether objects will collide
US7689321B2 (en) 2004-02-13 2010-03-30 Evolution Robotics, Inc. Robust sensor fusion for mapping and localization in a simultaneous localization and mapping (SLAM) system
DE112006002894B4 (de) * 2005-10-21 2021-11-11 Deere & Company Vernetztes Vielzweck-Roboterfahrzeug
US20070168309A1 (en) * 2005-12-01 2007-07-19 Exent Technologies, Ltd. System, method and computer program product for dynamically extracting and sharing event information from an executing software application
JP5112666B2 (ja) * 2006-09-11 2013-01-09 株式会社日立製作所 移動装置
JP4489800B2 (ja) * 2007-08-30 2010-06-23 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
JP2009258779A (ja) * 2008-04-11 2009-11-05 Toyota Motor Corp 移動ロボット及び足跡計画方法
US20120215380A1 (en) * 2011-02-23 2012-08-23 Microsoft Corporation Semi-autonomous robot that supports multiple modes of navigation
KR101876380B1 (ko) * 2011-07-06 2018-07-11 삼성전자주식회사 매니퓰레이터 및 그 경로 생성 방법
US9037396B2 (en) * 2013-05-23 2015-05-19 Irobot Corporation Simultaneous localization and mapping for a mobile robot
CN103984037B (zh) * 2014-04-30 2017-07-28 深圳市墨克瑞光电子研究院 基于视觉的移动机器人障碍物检测方法和装置
EP2952301B1 (en) * 2014-06-05 2019-12-25 Softbank Robotics Europe Humanoid robot with collision avoidance and trajectory recovery capabilities
US10350756B2 (en) * 2014-12-25 2019-07-16 Kawasaki Jukogyo Kabushiki Kaisha Method of automatically avoiding obstacle for arm robot and control device
KR101539270B1 (ko) * 2015-02-27 2015-07-24 군산대학교산학협력단 충돌회피 및 자율주행을 위한 센서융합 기반 하이브리드 반응 경로 계획 방법, 이를 수행하기 위한 기록 매체 및 이동로봇
US9933264B2 (en) * 2015-04-06 2018-04-03 Hrl Laboratories, Llc System and method for achieving fast and reliable time-to-contact estimation using vision and range sensor data for autonomous navigation
JP6559535B2 (ja) 2015-10-22 2019-08-14 株式会社東芝 障害物マップ生成装置、その方法、及び、そのプログラム
CN105437232B (zh) * 2016-01-11 2017-07-04 湖南拓视觉信息技术有限公司 一种控制多关节移动机器人避障的方法及装置
US20180267561A1 (en) * 2016-09-12 2018-09-20 Andrew Archer Trench Autonomous control of unmanned aircraft
CN106441275A (zh) * 2016-09-23 2017-02-22 深圳大学 一种机器人规划路径的更新方法及装置
CN110225736B (zh) * 2017-01-22 2021-12-31 四川金瑞麒智能科学技术有限公司 一种智能轮椅的环境信息收集与反馈系统及方法
CN107228673B (zh) * 2017-05-19 2020-02-18 北京旋极伏羲大数据技术有限公司 航路规划方法及装置
US10899006B2 (en) 2018-05-01 2021-01-26 X Development Llc Robot navigation using 2D and 3D path planning

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014056506A (ja) * 2012-09-13 2014-03-27 Toyota Central R&D Labs Inc 障害物検出装置及びそれを備えた移動体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kalin Gochev외 4명, Path Planning with Adaptive Dimensionality, Univ. of Pennsylvania, 2011.07.16.*

Also Published As

Publication number Publication date
WO2019212818A3 (en) 2019-12-19
US20230123298A1 (en) 2023-04-20
CN112074383A (zh) 2020-12-11
KR102530996B1 (ko) 2023-05-11
US10899006B2 (en) 2021-01-26
KR20210002615A (ko) 2021-01-08
KR102478975B1 (ko) 2022-12-19
US20210162599A1 (en) 2021-06-03
KR20230006591A (ko) 2023-01-10
US11554488B2 (en) 2023-01-17
US20190337154A1 (en) 2019-11-07
KR20220119519A (ko) 2022-08-29
US11878427B2 (en) 2024-01-23
EP3768473A2 (en) 2021-01-27
WO2019212818A2 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
KR102434212B1 (ko) 2d 및 3d 경로 계획을 이용한 로봇 내비게이션
CA3113669C (en) Dynamic probabilistic motion planning
US20210103286A1 (en) Systems and methods for adaptive path planning
JP6606442B2 (ja) 移動体の経路計画生成装置
JP2020509500A (ja) 自律移動ロボットの制御方法
Ratering et al. Robot navigation in a known environment with unknown moving obstacles
CN111433697A (zh) 用于自主移动机器人的运动规划
Claes et al. Multi robot collision avoidance in a shared workspace
CN106774347A (zh) 室内动态环境下的机器人路径规划方法、装置和机器人
CN113848893A (zh) 机器人导航方法、装置、设备及存储介质
Burgard et al. Introduction to mobile robotics
Sharma et al. A virtual bug planning technique for 2D robot path planning
Lunenburg et al. A representation method based on the probability of collision for safe robot navigation in domestic environments
JP6801243B2 (ja) 移動目標決定装置、及び、移動目標決定方法
Ali et al. Global mobile robot path planning using laser simulator
KR102384102B1 (ko) 자율주행 로봇 및 자율주행 로봇의 주행 방법
Hsu et al. A graph-based exploration strategy of indoor environments by an autonomous mobile robot
CN112859842B (zh) 一种路径跟随导航方法及其系统
WO2024111453A1 (en) Autonomous mapping by a mobile robot
Kumar et al. An evader-centric strategy against fast pursuer in an unknown environment with static obstacles
Muhammad et al. MeSA-DRL: Memory-Enhanced Deep Reinforcement Learning for Advanced Socially Aware Robot Navigation in Crowded Environments
Claes Decentralised Multi-Robot Systems: Towards Coordination in Real World Settings

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant