KR102531488B1 - 동적 확률 모션 계획 - Google Patents

동적 확률 모션 계획 Download PDF

Info

Publication number
KR102531488B1
KR102531488B1 KR1020217009716A KR20217009716A KR102531488B1 KR 102531488 B1 KR102531488 B1 KR 102531488B1 KR 1020217009716 A KR1020217009716 A KR 1020217009716A KR 20217009716 A KR20217009716 A KR 20217009716A KR 102531488 B1 KR102531488 B1 KR 102531488B1
Authority
KR
South Korea
Prior art keywords
edges
subset
robot
map
path
Prior art date
Application number
KR1020217009716A
Other languages
English (en)
Other versions
KR20210053323A (ko
Inventor
장-프랑소와 두푸이스
키건 고
마이클 헤머
Original Assignee
인트린식 이노베이션 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인트린식 이노베이션 엘엘씨 filed Critical 인트린식 이노베이션 엘엘씨
Publication of KR20210053323A publication Critical patent/KR20210053323A/ko
Application granted granted Critical
Publication of KR102531488B1 publication Critical patent/KR102531488B1/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
    • B25J9/1666Avoiding collision or forbidden zones
    • 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/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
    • 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/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0289Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling with means for avoiding collisions between vehicles
    • 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/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • 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/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • 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/60Intended control result
    • G05D1/69Coordinated control of the position or course of two or more vehicles
    • G05D1/693Coordinated control of the position or course of two or more vehicles for avoiding collisions between vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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
    • 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/40506Self motion topology knowledge, configuration mapping
    • G05D2201/0216

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

로봇에 대한 모션 계획의 다양한 양태들을 개선하기 위해 PRM과 연관하여 캐시되는 스윕된 볼륨 프로파일 데이터를 사용하는 기술들 및 시스템들이 개시된다. 일부 구현들에서, 물리 구역 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 맵이 발생된다. 제1 맵 내의 로봇에 대한 초기 경로가 결정된다. 물리 구역 내의 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵을 표시하는 데이터가 획득된다. 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물이 검출된다. 그 다음, 제1 맵 내의 로봇에 대한 조정된 경로는 잠재적 방해물에 기초하여 결정된다.

Description

동적 확률 모션 계획
본 명세서는 일반적으로 로보틱스, 및 특히 모션 계획 시스템들에 관한 기술을 설명한다.
로봇 기술에 대한 모션 계획 시스템들은 충돌들을 회피하는 동안 로봇의 시작 지점과 로봇의 종료 지점 사이의 경로를 결정하기 위해 확률 로드맵(probabilistic roadmap)(PRM)을 사용할 수 있다. 예를 들어, 모션 계획 시스템은 로봇의 공간으로부터 랜덤 샘플들을 취하고 그들을 테스트하여 샘플링된 위치들이 자유(예를 들어, 방해받지 않은) 공간에 있는지를 결정하기 위해 PRM을 사용할 수 있다. PRM은 공간 내에 지정된 좌표들을 표현하는 노드들 및 2개의 노드 사이에 로봇에 의한 이동을 표현하기 위해 이러한 노드들을 연결하는 에지들을 지정할 수 있다.
확률 로드맵(PRM)을 사용하는 모션 계획은 종종 구성 위상 및 질의 위상을 수반한다. 구성 위상에서, 로드맵(또는 그래프)은 환경 내에 이루어질 수 있는 모션들을 근사시키기 위해 발생된다. 본원에 사용되는 바와 같이, PRM은 구성 위상 동안 발생되는 로드맵 또는 그래프를 지칭한다. 랜덤 노드는 초기에 생성되고 그 다음 이웃 노드들, 예를 들어, 미리 결정된 거리 내의 가장 가까운 이웃들에 연결된다. 그 다음, 노드들 및 에지들은 로드맵이 공간 내의 상이한 모션 경로들을 표현하기에 충분히 밀집될 때까지 그래프에 추가된다. 예를 들어, 맵 발생기는 로봇이 이동할 수 있는 공간으로부터 랜덤 샘플들을 취하고, 샘플들을 테스트하여 로봇이 점유할 수 있는 영역들을 그들이 표현하는지를 결정할 수 있다. 그 다음, 맵 발생기는 그래프에서 에지들을 생성하기 위해 샘플링된 지점들 또는 노드들을 연결할 수 있다. 질의 위상에서, 시작 및 종료 지점들은 그래프에 연결되고, 경로는 로봇에 대해 식별된다. 예를 들어, 그래프 검색 알고리즘은 시작 지점에서 종료 지점까지 로봇을 취하는 경로(예를 들어, 일련의 에지들)를 결정하기 위해, 맵에 의해 표현되는 그래프에 적용될 수 있다.
일부 구현들에서, 시스템은 로봇에 대한 모션 계획의 다양한 양태들을 개선하기 위해 맵(예를 들어, PRM 또는 다른 맵)과 연관하여 캐시되는 스윕된 볼륨 프로파일 데이터를 사용할 수 있다. 계획된 모션은 물리 구역과 같은, 공간 내위 전이들을 표현할 수 있다. 일부 구현들에서, 스윕된 볼륨은 로봇이 맵(예를 들어, PRM)에 정의되는 에지를 따라 주행하는 동안 로봇(또는 아암 또는 부속물과 같은, 로봇의 구성요소)이 통과하거나 점유할 공간을 표현한다. 예를 들어, 에지에 대한 스윕된 볼륨은 에지를 따라 주행하는 로봇에 의해 추적될 볼륨을 표현하는 3차원 볼륨일 수 있다. 스윕된 볼륨 프로파일 데이터는 맵 내의 각각의 에지에 대해 로봇에 의한 예측된 모션의 스윕된 볼륨을 식별하여, 시스템은 더 계산적으로 효율적인 방식으로 그리고 더 적은 지연으로 경로들을 계산하고 조정할 수 있다. 예를 들어, 초기 계산 스테이지 후에, 시스템이 로봇에 대한 모션 경로를 구성하는 것을 수반하는 질의를 수신하면, 시스템은 질의를 수신한 후에 스윕된 볼륨들을 즉시 추정해야 하는 대신에 경로를 구성하기 위해 스윕된 볼륨 프로파일 데이터에 이미 지정되는 캐시된 정보를 사용할 수 있다. 이러한 방식으로, 초기 맵 계산 스테이지 동안 계산되는 스윕된 볼륨 프로파일 데이터는 각각 수신된 질의에 사용되도록 이미 이용가능하고, 시스템은 스윕된 볼륨들을 질의별 기초로 계산하는 지연들 또는 비효율들을 발생시키지 않는다. 다른 예로서, 시스템은 경로가 조정될 때마다 충돌들을 체크하기 위해 캐시된 스윕된 볼륨 정보를 사용할 수 있으므로, 시스템은 충돌 검출 처리의 속도를 개선하기 위해 캐시된 정보를 사용할 수 있으며, 이는 각각의 경로 조정을 위한 스윕된 볼륨 정보를 재계산할 필요를 방지한다. 이러한 접근법의 효율 및 속도 개선들은 특히 공통 구역 내의 다수의 로봇의 이동을 조정하는 시스템들에서, 매우 중요할 수 있다.
시스템은 또한 충돌 검출과 관련됨에 따라 경로 조정 프로세스와 연관되는 계산 복잡성을 추가로 감소시키기 위해 캐시된 스윕된 볼륨 프로파일 데이터를 사용할 수 있다. 예를 들어, 시스템이 초기 경로를 따라 잠재적 충돌을 검출하면, 전체 경로를 재계산하는 대신에, 시스템은 잠재적 충돌에 근접해 있는 경로의 영향받은 노드들 또는 에지들을 식별하고 그들 주위에 경로 지정할 수 있다. 시스템은 잠재적 충돌에 영향을 받는 에지들에 대한 캐시된 스윕된 볼륨 정보에 기초하여 초기 경로의 부분들을 조정할 수 있다. 이러한 상황에서, 시스템은 스윕된 볼륨 프로파일 데이터가 에지 특정 캐시된 스윕된 볼륨 정보, 즉, 맵 내에 지정되는 개별 에지들에 대한 스윕된 볼륨 정보를 포함하므로, 잠재적 충돌에 영향을 받을 가능성이 있는 것으로 결정되는 초기 경로의 그러한 부분들만을 조정할 수 있다(예를 들어, 시스템은 초기 경로의 영향받지 않은 부분들을 재계산하고 변경하는 것을 회피할 수 있음).
도처에 설명되는 바와 같이, "로봇"은 액션들을 자동적으로 수행할 수 있는 머신을 지칭하며, 그러한 액션들은 컴퓨터에 의해 프로그램가능하다. 예를 들어, 로봇은 주어진 환경에서 이동할 수 있는 것일 수 있다. 이동 로봇은 물리 또는 전자-기계 안내 디바이스들에 대한 요구 없이 환경을 내비게이션가능할 수 있다. 이동 로봇은 일부 사례들에서, 상대적으로 제어된 공간 내의 미리 정의된 내비게이션 루트를 주행하는 것을 허용하는 안내 디바이스들에 의존할 수 있다. 다른 예로서, 로봇은 고정 표면에 부착되는 산업 로봇일 수 있다. 산업 로봇은 워크셀 내에 작업들을 실행하고 동일한 워크셀에서 동작하는 다른 산업 로봇들(예를 들어, 공장에서 자동차를 용접하는 다수의 로봇)과의 충돌들을 회피하도록 구성된다. 산업 로봇은 다른 것들 중에서, 관절 연결 아암(예를 들어, 다중 연결 조작기), 그리퍼 조립체(예를 들어, 엔드 이펙터), 또는 로봇 아암에 부착되는 툴/엔드 이펙터일 수 있다.
아래에 추가로 논의되는 바와 같이, "스윕된 볼륨"은 시간 기간에 걸친 객체의 모션에 기초한 일부 시간에, 로봇과 같은, 객체에 의해 점유될 모든 지점들을 포함하는 볼륨을 지칭한다. 예를 들어, 경로를 따라 이동하는 객체에 대해, 스윕된 볼륨은 - 객체에 의해 점유되는 초기 볼륨, 객체에 의해 점유되는 종료 볼륨, 및 객체가 그들 사이에서 통과했던 모든 지점들을 포함하는, 객체가 경로를 따라 주행하는 동안 점유하는 공간 내의 지점들을 표현할 수 있다. 객체에 대한 맵의 에지와 연관되는 스윕된 볼륨은 객체가 에지에 의해 표현되는 경로를 따라 이동할 때 객체(예를 들어, 로봇)가 통과하기 위해 계산되는 전체 볼륨을 표현한다. 아래에 상세히 설명되는 바와 같이, 일부 사례들에서, 객체에 대한 스윕된 볼륨은 스윕된 볼륨의 2차원 표현을 표현하는 픽셀들을 포함하는 이미지를 사용하여 표현될 수 있다. 다른 사례들에서, 객체에 대한 스윕된 볼륨은 물리 구역 내의 객체에 의해 점유될 수 있는 공간에 일치하는 복셀들로서 표현될 수 있다. 스윕된 볼륨들 및 다른 데이터 구조들의 다른 표현들이 유사하게 사용될 수 있다.
하나의 일반적 양태에서, 컴퓨터에 의해 구현되는 방법은 하나 이상의 컴퓨터에 의해, 물리 구역 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 맵을 발생시키는 단계 - 제1 맵은 (i) 제1 맵 내의 노드들을 각각 연결하는 제1 복수의 에지, 및 (ii) 제1 복수의 에지에 포함되는 각각의 에지에 대한 로봇의 스윕된 볼륨 프로파일을 포함함 - ; 하나 이상의 컴퓨터에 의해, 제1 맵 내의 로봇에 대한 초기 경로를 결정하는 단계 - 초기 경로는 제1 복수의 에지 중에서 에지들의 서브세트를 지정함 - ; 하나 이상의 컴퓨터에 의해, 물리 구역 내의 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵을 표시하는 데이터를 획득하는 단계 - 제2 맵은 (i) 제2 맵 내의 노드들을 각각 연결하는 제2 복수의 에지, 및 (ii) 제2 복수의 에지에 포함되는 각각의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일을 포함함 - ; 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들 및 제2 복수의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일들에 기초하여, 하나 이상의 컴퓨터에 의해, 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 단계; 및 잠재적 방해물의 검출에 기초하여, 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계 - 조정된 경로는 복수의 에지 중에서 에지들의 상이한 서브세트를 지정함 - 를 포함한다.
하나 이상의 구현은 이하의 임의적 특징들을 포함할 수 있다. 예를 들어, 일부 구현들에서, 물리 구역 내의 이동가능 객체에 의해 주행되는 경로는 제2 맵 내의 에지들의 제2 서브세트를 지정한다. 부가적으로, 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 단계는 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 에지들의 제2 서브세트와 연관되는 이동가능의 스윕된 볼륨 프로파일들을 비교하는 단계; 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 에지들의 제2 서브세트와 연관되는 이동가능의 스윕된 볼륨 프로파일들의 비교에 기초하여, 에지들의 제1 서브세트 내의 하나 이상의 에지 및 에지들의 제2 서브세트 내의 하나 이상의 에지가 물리 구역 내의 중첩 영역에 대응하는 것을 결정하는 단계; 및 에지들의 제1 서브세트 내의 하나 이상의 에지 및 에지들의 제2 서브세트 내의 하나 이상의 에지가 물리 구역 내의 중첩 영역에 대응한다는 결정에 기초하여, 에지들의 제1 서브세트에 포함되는 하나 이상의 에지가 잠재적 방해물과 연관되는 것을 결정하는 단계를 포함한다.
일부 구현들에서, 제1 맵은 제1 확률 로드맵이고 제2 맵은 제2 확률 로드맵이다.
일부 구현들에서, 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 복수의 에지 중에서 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 구역을 지정한다.
일부 구현들에서, 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 복수의 에지 중에서 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 볼륨을 표현하는 복셀들의 한 세트를 지정한다.
일부 구현들에서, 이동가능 객체는 물리 구역 내에서 주행하는 제2 로봇을 포함한다.
일부 구현들에서, 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계는 초기 경로에 대응하는 복수의 대안 경로를 식별하는 단계를 포함한다. 그러한 구현들에서, 복수의 대안 경로 내의 각각의 대안 경로는 (i) 초기 경로의 시작 지점을 표현하는 제1 에지 및 (ii) 초기 경로의 종료 지점을 표현하는 제2 에지를 포함하고, 각각의 대안 경로는 제1 에지와 제2 에지 사이의 중간 에지들의 상이한 세트를 포함하고; 복수의 대안 경로 중에서 특정 대안 경로를 조정된 경로로서 선택하는 단계를 포함한다.
일부 구현들에서, 복수의 대안 경로 중에서 특정 대안 경로를 조정된 경로로서 선택하는 단계는 복수의 대안 경로 내의 각각의 대안 경로에 대해, 특정 대안 경로를 따라 검출된 방해물의 확률을 표현하는 스코어를 계산하는 단계; 및 대안 경로들을 따라 검출된 방해물의 확률들을 표현하는 스코어들에 기초하여 복수의 대안 경로 중에서 특정 대안 경로를 조정된 경로로서 선택하는 단계를 포함한다.
일부 구현들에서, 방법은 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 미리 결정된 임계치를 충족시키는 것을 결정하는 단계를 더 포함한다. 부가적으로, 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계는 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 미리 결정된 임계치를 충족시킨다는 결정에 기초하여 초기 경로를 무효화하는 단계; 및 제1 맵 내의 로봇에 대한 새로운 초기 경로를 재계산하는 단계를 포함한다.
일부 구현들에서, 새로운 초기 경로는 복수의 에지 중에서 에지들의 새로운 서브세트를 지정한다. 부가적으로, 에지들의 새로운 서브세트는 에지들의 서브세트에 포함되지 않았던 에지들을 포함하고, 에지들의 서브세트에 포함되지 않았던 에지들의 수는 임계 값을 초과한다.
하나 이상의 구현의 상세들은 아래의 첨부 도면들 및 설명에 제시된다. 다른 잠재적 특징들 및 장점들은 설명, 도면들, 및 청구항들로부터 분명해질 것이다.
도 1은 스윕된 볼륨 프로파일 데이터를 사용하여 모션 계획을 수행할 수 있는 시스템의 일 예를 예시한다.
도 2a 내지 도 2b는 확률 로드맵 내의 로봇에 대한 동적 경로 조정의 일 예를 예시한다.
도 3은 스윕된 볼륨 프로파일 데이터를 발생시키는 일 예를 예시한다.
도 4는 2개의 로봇의 계획된 경로들 사이에서 잠재적 충돌을 검출하기 위한 기술의 일 예를 예시한다.
도 5는 로봇에 대한 계획된 경로를 동적으로 조정하기 위한 프로세스의 일 예를 예시한다.
도 6은 본원에 설명되는 컴퓨터에 의해 구현되는 방법들 중 어느 것과 연관하여 설명되는 동작들을 수행하기 위해 사용될 수 있는 컴퓨터 시스템의 일 예를 예시한다.
도면들에서, 유사한 참조 번호들은 도처에서 대응하는 부분들을 나타낸다.
도 1은 로봇 디바이스(120)에 대한 충돌 검출 및 경로 조정을 위한 스윕된 볼륨 프로파일 데이터를 사용할 수 있는 모션 계획 시스템(100)의 일 예를 예시한다. 시스템(100)은 로드맵 발생기(112), 경로 프로세서(114), 충돌 검출기(116), 및 출력 프로세서(118)를 포함한다. 경로 프로세서(114)는 경로 발생기(114A) 및 경로 조정기(114B)를 포함한다.
도 1에 도시된 예에서, 시스템(100)은 2개의 위상 - (1) 구성 위상 및 (2) 질의 위상에서 로봇 디바이스(120)에 대한 모션을 계획한다. 구성 위상 동안, 로드맵 발생기(112)는 로봇 디바이스(120)가 도처에 이동하는 공간에 대한 구성 데이터(112A)를 처리한다. 구성 데이터(112A)는 공간에 대한 정보, 예컨대 또한 공간 내에서 이동할 다른 로봇들, 공간 내의 공지된 객체들, 예컨대 고정 또는 이동 객체들, 공간의 물리 구역을 정의하는 경계들, 또는 공간에 의해 표현되는 물리 구역의 타입을 포함할 수 있다. 공간은 로봇 디바이스(120)가 작업들을 수행하기 위해 전개되는 상이한 타입들의 환경들을 표현할 수 있다. 예를 들어, 공간은 공장 내의 구역 또는 구성 사이트 상의 구역과 같은, 산업 환경 내에 있을 수 있다. 그러한 예들에서, 로봇 디바이스(120)는 다른 것들 중에서, 공간의 상이한 구역들 사이에서 구성요소들을 수송하는 것, 조립 절차 동안 구성요소들을 조작하는 것과 같은, 작업들을 수행하기 위해 전개될 수 있다. 다른 예들에서, 공간은 상업 환경, 예컨대 사무실 빌딩 내의 구역 내에 있거나, 거주 환경, 예컨대 개인 재산 내의 구역 내에 있을 수 있다.
로드맵 발생기(112)는 구성 데이터(112A)에 기초하여 로봇 디바이스(120)에 대한 맵(104)을 발생시킨다. 맵(104)은 맵일 수 있다. 맵(104)은 로봇 디바이스(120) 공간 내에서 이루어지는 모션을 근사시키고 로봇 디바이스(120)가 공간 내에서 취할 수 있는 가능한 모션 경로들의 한 세트를 식별한다. 예를 들어, 도 2a 내지 도 2b에 도시된 바와 같이, 맵(104)은 공간 내의 로봇 디바이스(120)의 모션을 특징화하는 노드들 및 에지들의 한 세트를 식별한다. 로드맵 발생기(112)는 공간 내의 지점들의 랜덤 샘플들을 취하고, 그들을 테스트하여 그들이 자유 공간 내에 있는지, 즉 객체 또는 방해물에 의해 점유되지 않는지를 결정하고, 그 다음 지점들을 자유 공간 내의 다른 인근 지점들에 연결함으로써 맵(104)을 발생시킬 수 있다. 로드맵 발생기(112)는 로봇 디바이스(120)에 대한 공간 내에서 가능한 방해물없는 모션 경로들의 한 세트를 식별하기 위해 이러한 샘플링 기술을 사용할 수 있다. 다른 예로서, 로드맵 발생기(112)는 구성 데이터(112A) 내의 공지된 방해물들이 자유 공간 내의 지점들을 식별하기 위해 샘플링 기술에 사용되는 경우 방해 기반 접근법을 사용할 수 있다.
맵(104)이 발생되었다면, 로드맵 발생기(112)는 맵(104)과 연관하여 캐시될 스윕된 볼륨 프로파일 데이터(116B)를 발생시킨다. 스윕된 볼륨 프로파일 데이터(116B)는 맵(104)에서 식별되는 각각의 에지에 대한 스윕된 프로파일을 포함한다(도 3에 상세히 도시됨). 각각의 스윕된 볼륨 프로파일은 맵(104)으로부터의 특정 에지와 연관하여 물리 공간 내의 로봇 디바이스(120)에 의한 최대 횡단가능 이동을 식별한다. 스윕된 볼륨 프로파일들은 경로 조정의 복잡성 및 충돌 검출 및/또는 경로 조정에 수반되는 정밀도에 따라, 로봇 디바이스(120)의 이동을 표현할 수 있다. 예를 들어, 일부 사례들에서, 스윕된 볼륨 프로파일들은 물리 공간 내의 로봇 디바이스(120)에 의한 최대 횡단가능 구역을 표현하는 2차원 스윕된 볼륨 이미지들의 한 세트로서 저장된다. 다른 사례들에서, 스윕된 볼륨 프로파일들은 물리 공간 내의 로봇 디바이스에 의한 최대 횡단가능 볼륨을 표현하는 3차원 스윕된 볼륨 복셀들의 한 세트로서 저장된다.
로드맵 발생기(112)는 로봇 디바이스(120)가 작업을 수행하기 위한 질의(102)을 시스템(100)이 수신하기 전에 맵(104)과 연관하여 스윕된 볼륨 프로파일 데이터(116B)를 캐시한다. 이러한 의미에서, 맵(104) 및 스윕된 볼륨 프로파일 데이터(116B)는 모션 계획의 질의 위상 전에 발생된다. 로드맵 발생기(112)는 모션 계획의 질의 위상 동안, 충돌 검출기(116)가 경로 결정과 연관되는 스윕된 볼륨들을 계산해야 하는 것 없이 충돌 검출을 수행할 수 있도록 맵(104) 및 스윕된 볼륨 프로파일 데이터(116B)를 캐시한다. 더욱이, 일부 사례들에서, 스윕된 볼륨 프로파일 데이터(116B)는 시스템(100)이 맵(104)의 상이한 에지들에 대한 스윕된 볼륨 프로파일들을 재계산해야 하는 것 없이 다수의 가능한 경로를 평가하기 위해 스윕된 볼륨 프로파일 데이터(116B)를 사용하도록 맵(104)의 각각의 에지에 대한 스윕된 볼륨 프로파일들을 지정한다. 이러한 방식으로, 스윕된 볼륨 프로파일 데이터(116B)의 캐싱은 모션 계획의 질의 스테이지 동안 수행되는 충돌 검출의 복잡성 및/또는 계산 부담을 감소시킨다.
일부 구현들에서, 시스템(100)은 공간 내에서 이동하는 다수의 로봇의 모션 코레오그래피를 개선하기 위해 맵(104) 및 캐시된 스윕된 볼륨 프로파일 데이터(116B)를 사용할 수 있다. 예를 들어, 다수의 로봇은 중첩 시간 기간들 동안 공간 내에서 이동할 수 있으며, 이는 로봇들에 의한 작업들의 실행 동안 충돌의 가능성을 증가시킬 수 있다. 그러한 구현들에서, 구성 위상 동안, 시스템(100)은 공간 내에서 이동하는 각각의 로봇에 대한 각각의 맵(예를 들어, PRM) 및 연관된 스윕된 볼륨 프로파일 데이터를 발생시키고 캐시한다. 각각의 맵 및 스윕된 볼륨 프로파일 데이터는 구역 내에서 대응하는 로봇의 모션을 고유하게 특징화하고, 따라서 충돌들을 감소시키기 위해 다수의 로봇의 모션들을 계획하는 데 사용될 수 있다.
예를 들어, 질의 위상 동안, 시스템(100)은 로봇들 사이의 충돌의 가능성을 평가하기 위해 2개의 로봇에 대한 캐시된 스윕된 볼륨 프로파일 데이터를 사용할 수 있다(도 4에 도시됨). 이러한 예에서, 시스템은 스윕된 볼륨들에서 중첩을 식별하기 위해 동일한 시간 간격과 일치하는 2개의 로봇에 대한 맵들(예를 들어, PRM들) 내의 에지들에 대한 스윕된 볼륨 프로파일들을 비교하며, 이는 발생하는 충돌의 가능성을 표현한다. 위에 논의된 바와 같이, 스윕된 볼륨 프로파일들이 구성 위상 동안 캐시되기 때문에, 시스템(100)은 2개의 로봇의 스윕된 볼륨들을 계산해야 하는 것 없이 질의 위상 동안 이러한 비교들을 수행할 수 있다.
일부 구현들에서, 시스템(100)은 공간 내에서 다수의 로봇에 의한 이동들의 시간 동기화를 개선하기 위해 캐시된 스윕된 볼륨 프로파일 데이터를 사용할 수 있다. 예를 들어, 시스템(100)이 시점들(T1 내지 T2) 사이에서 2개의 로봇에 대한 경로들을 계획하고 있으면, 시스템(100)은 동일한 시간들에 대응하는 에지들을 식별하기 위해 경로들을 평가하고, 충돌이 발생할지를 결정하기 위해 연관된 스윕된 볼륨 프로파일들을 비교할 수 있다. 예를 들어, 시스템(100)은 동일한 시간 간격과 일치하는 에지들에 대한 2개의 로봇의 스윕된 볼륨 프로파일들이 중첩을 나타내지 않으면 2개의 로봇이 공간의 상이한 구역들을 점유할 것을 결정할 수 있다. 대안적으로, 시스템(100)은 동일한 시간 간격과 일치하는 에지들에 대한 스윕된 볼륨 프로파일들이 중첩을 나타내면 충돌이 발생할 수 있는 것을 결정할 수 있다. 이러한 시나리오에서, 시스템(100)은 이용되는 경로 조정 기술에 따라, 로봇들 중 하나, 또는 둘 다의 경로들을 조정하기 위해 검출된 충돌을 사용한다.
이제 질의 위상을 참조하면, 스윕된 볼륨 정보를 갖는 맵(104)이 구역 내에서 작업하고 있을 로봇 디바이스(120) 및 다른 로봇 디바이스들에 대해 발생된 후에, 시스템(100)은 충돌없는 경로들을 발생시키기 위해 맵들(예를 들어, PRM들)을 사용한다. 시스템(100)은 로봇 디바이스(120)가 작업을 수행하기 위한 질의(102)를 수신한다. 질의(102)는 로봇 모션에 대한 시작 지점, 로봇 모션에 대한 종료 지점, 및 시작 지점에서 종료 지점까지 로봇 디바이스(120)의 시간 제약들과 연관되는 모션을 지정한다. 다른 예로서, 다른 시스템 또는 디바이스로부터 질의(102)를 수신하는 것보다는 오히려, 시스템(100)은 시작 지점에서 종료 지점까지 로봇 디바이스(120)의 원하는 이동을 다른 방식들로 식별할 수 있다. 예를 들어, 시스템(100)은 수행될 작업들에 관한 정보에 액세스하고, 다양한 로봇들 중에 작업들을 할당하고, 로봇들에 의해 주행되는 경로들의 시퀀스들로서 작업들을 계획할 수 있다.
경로 발생기(114A)는 질의(102) 내에 지정된 바와 같이 시작 지점과 종료 지점 사이에서 주행하기 위해 로봇에 대한 초기 경로(106A)를 식별한다. 초기 경로(106A)는 시작 지점 및 종료 지점을 연결하는 맵(104) 내의 노드들 및 에지들의 한 세트로 구성된다. 많은 경우들에서, 초기 경로(106A)는 시작 지점과 종료 지점 사이의 가장 짧거나 가장 직접적인 경로일 수 있다. 경로들의 예들은 도 2a 및 도 2b에 예시된다.
충돌 검출기(116)는 초기 경로(106A)가 고정 객체 또는 이동 객체와의 충돌을 야기할지(또는 충돌의 위험을 너무 높이 제시할지)를 결정한다. 충돌 검출기(116)는 초기 경로(106A) 내의 에지들에 대한 이전에 계산된 스윕된 볼륨 정보를 고정 객체들 및 이동 객체들에 관한 볼륨 정보와 비교함으로써 이러한 결정을 효율적으로 할 수 있다. 특히, 로봇들의 동적 이동으로부터 발생할 수 있는 충돌들을 검출하기 위해 상이한 로봇들의 맵들(예를 들어, PRM들) 및 계획된 경로들을 사용하는 것은 매우 용이하다. 예를 들어, 스윕된 볼륨들이 미리 계산되고 각각의 로봇에 대한 맵들(예를 들어, PRM들)에 저장되기 때문에, 상이한 로봇들의 계획된 경로들의 에지들이 충돌하는지를 계산하는 것은 간단하다. 예를 들어, 2개의 로봇이 경로 중첩에 대해 초기 계획된 경로 및 스윕된 볼륨들을 각각 가지면, 경로들을 따르는 이동은 동시에 실행될 수 없다. 게다가, (예를 들어, 각각의 개별 에지에 대한) 스윕된 볼륨 정보의 파인 그레인드 성질(fine-grained nature)은 에지들이 충돌할지(예를 들어, 에지들이 중첩 스윕된 볼륨들을 가질지)를 충돌 검출기(116)가 효율적으로 식별하는 것을 허용하며, 이는 효율적인 재계획이 충돌 에지들을 회피하는 것을 허용한다.
충돌 검출기(116)는 초기 경로(106A) 내에서 충돌의 가능성을 결정할 시에 영역 데이터(116A)를 처리한다. 영역 데이터(116A)는 예를 들어, 맵(104)과 연관되는 물리 영역 내의 객체들, 또는 로봇 디바이스(120)가 또한 초기 경로(106A)를 따라 이동하는 것으로 예상되는 물리 영역 내의 다른 이동가능 객체들의 모션을 표현하는 다른 맵들(예를 들어, PRM들)을 식별한다. 방해물과 같은, 고정 객체를 수반하는 예에서, 충돌 검출기(116)는 고정 객체와 연관되는 맵(104) 내의 좌표들을 식별하고 초기 경로(106A)의 노드들의 좌표들로부터 그들의 거리를 비교한다. 다른 로봇 디바이스와 같은, 동적 객체를 수반하는 다른 예에서, 충돌 검출기(116)는 초기 경로(106A)에 의해 지정되는 모션에 대한 동적 모션의 모션을 식별하기 위해 동적 객체의 맵(예를 들어, PRM)에 액세스할 수 있다.
충돌 검출기(116)는 또한 위에 논의된 바와 같이, 구성 위상에서 맵(104)에 대해 발생되는 캐시된 스윕된 볼륨 프로파일 데이터(116B)를 처리한다. 스윕된 볼륨 프로파일 데이터(116B)는 맵(104) 내에 지정되는 각각의 에지에 대한 스윕된 프로파일을 포함한다(도 3에 상세히 도시됨). 각각의 스윕된 볼륨 프로파일은 맵(104)으로부터의 특정 에지와 연관하여 물리 공간 내의 로봇 디바이스(120)에 의한 최대 횡단가능 이동을 식별한다.
충돌 검출기(116)는 충돌 데이터(108)를 경로 발생기(114A)에 제공한다. 충돌 데이터(108)는 (1) 로봇 디바이스(120)가 초기 경로(106A)를 따라 주행함에 따라 충돌이 발생할 가능성이 있는지를 식별하고, 그렇다면, (2) 예측된 충돌과 연관되는 맵(104)의 에지들을 식별한다. 예를 들어, 충돌 데이터(108)는 로봇 디바이스(120)가 객체와 충돌하는 것으로 예측되는 경우 초기 경로(106A)에 포함되는 특정 에지들을 식별할 수 있다.
경로 조정기(114B)는 충돌의 가능성을 회피하거나 감소시키는 대안 경로들(113)의 한 세트를 식별하기 위해 로봇 디바이스(120)에 대한 맵(104) 및 충돌 데이터(108)를 처리한다. 예를 들어, 도 2b에 도시된 바와 같이, 대안 경로들(113)의 세트에 포함되는 각각의 경로는 질의(102)에 의해 지정되는 시작 지점 및 종료 지점을 포함하지만 충돌 데이터(108)가 충돌을 야기할 가능성이 있는 것으로 표시하는 맵(104)의 영역을 회피하는 노드들 또는 에지들의 상이한 세트들을 지정한다. 도 1에 도시된 예에서, 경로 조정기(114B)는 조정된 경로(106B)로서 질의(102)에 지정되는 시작 지점 및 종료 지점으로부터 가장 짧은 충돌없는 경로를 표현하는 대안 경로들(113)의 세트 중에서 경로를 선택하고, 조정된 경로(106B)를 출력 프로세서(118)에 제공한다.
출력 프로세서(118)는 조정된 경로(106B)에 대한 경로 정보를 갖는 명령어(122)를 발생시키고 명령어(122)를 로봇 디바이스(120)에 제공한다. 명령어(122)는 로봇 디바이스(120)가 경로를 실행하기 위해 사용하는, 경로에 포함되는 노드들의 순서화된 리스트를 지정할 수 있다. 일부 사례들에서, 로봇 디바이스(120)는 출력 프로세서(118)로부터 명령어를 수신한 후에 그리고 그것이 구역 내에서 관련 작업들을 수행하기 위해 다른 명령어들을 축적하는 동안 명령어(122)를 저장한다. 예를 들어, 로봇 디바이스(120)는 나중의 시점에 작업들의 배치(batch)를 수행하기 위해 명령어들의 시퀀스 내에서 명령어(122)를 수신할 수 있다. 이러한 예에서, 로봇 디바이스(120)는 모든 명령어들이 수행되었다면 질의(102)에 의해 그리고 명령어(122)에 따라 지정되는 작업을 실행한다. 일부 다른 사례들에서, 로봇 디바이스(120)는 초기 경로(106A) 대신에 조정된 경로(106B)를 따라 모션을 추종함으로써 명령어(122)를 수신할 시에 질의(102)에 의해 지정되는 작업을 실행한다. 이것은 로봇 디바이스(120)가 작업을 실행하는 동안 충돌을 경험하는 확률이 감소되는 것을 보장한다.
일부 구현들에서, 경로 조정기(114B)는 위에 논의된 바와 같이, 초기 경로(106A)를 무효화하고 조정된 경로(106B)를 발생시키기 위해 초기 경로(206A)의 일부를 조정하는 대신에 새로운 경로를 전적으로 발생시킬 수 있다. 그러한 구현들에서, 경로 프로세서(114)는 잠재적 충돌에 영향을 받은 초기 경로(106A)의 에지들의 수를 식별하고 영향받은 에지들의 수가 미리 결정된 임계치를 충족시키는 것, 예를 들어, 초기 경로(106A)의 모든 에지들 중에서 50% 영향받은 에지들보다 더 큰 것을 결정할 수 있다. 경로 조정기(114B)는 결정에 기초하여 초기 경로(106A)를 무효화하고 맵(104) 내의 로봇 디바이스(120)에 대한 새로운 경로를 재계산한다. 예를 들어, 경로 조정기(114B)는 새로운 경로 및 초기 경로가 중간 노드들의 대부분, 예를 들어, 도 2b에 도시된 바와 같은 경로들(206A 및 206C)을 공유하지 않도록 질의(102)의 시작 지점과 종료 지점 사이에서 전적으로 새로운 경로를 식별할 수 있다.
경로 조정기(114B)가 새로운 경로를 재계산하는 일부 사례들에서, 경로 조정기(114B)는 그것이 초기 경로(106A)와 상이한 경로를 실제로 표현하는지를 결정하기 위해 새로운 경로를 평가할 수 있다. 예를 들어, 경로 조정기(114B)는 초기 경로(106A)에 의해 지정되지 않았던 새로운 경로에 의해 지정되는 에지들을 식별하고 새로운 에지들의 수를 임계 값과 비교할 수 있다. 새로운 에지들의 수가 임계 값을 초과하면, 예를 들어, 새로운 경로의 에지들 중에서 50% 새로운 에지들보다 더 크면, 이때 경로 조정기(114B)는 새롭게 계산된 경로가 초기 경로(106A)로부터 새롭고, 상이하고, 별개의 경로를 실제로 표현하는 것을 결정한다.
도 2a 내지 도 2b는 PRM 내의 로봇에 대한 동적 경로 조정의 일 예를 예시한다. 도시되는 예에서, 맵(201)은 물리 구역 내에서, 로봇 디바이스, 예를 들어, 로봇 디바이스(120)의 잠재적 이동과 연관되는 노드들을 표시한다. 맵(201)은 확률 로드맵(PRM)일 수 있다. 맵(201)은 또한 맵(201) 내에 2개 이상의 노드를 연결하는 에지들을 표시한다. 맵(201)은 또한 물리 구역 내에서 로봇 디바이스의 이동을 제한하는 방해물들(202A 및 202B)을 표시한다.
예는 시스템(100)이 시작 지점(204A)과 종료 지점(204B) 사이에 주행하는 것으로 예상되는 로봇 디바이스에 대해 결정하는 맵(201) 내의 경로(206)를 나타낸다. 이러한 예에서, 경로(206)는 9개의 노드(시작 지점 및 종료 지점을 표현하는 2개의 노드를 포함함) 및 경로(206)를 따라 노드들을 연결하는 8개의 에지에 의해 정의된다. 도 2a에 도시된 바와 같이, 경로(206)는 맵(201) 내의 노드들의 배열 및 방해물들(202A 및 202B)의 존재에 기초하여 식별된다.
이제 도 2b를 참조하면, 충돌 검출은 맵(201) 내의 경로(206)와 연관하여 임의의 잠재적 충돌들을 식별하기 위해 경로(206)에 대해 수행된다. 예는 경로(206)를 따라 주행하는 로봇 디바이스가 다른 객체와 충돌할 가능성이 있는 물리 구역을 표현하는 충돌 영역(208)에 의해 표현되는 잠재적 충돌이 식별되었던 것을 나타낸다. 충돌 영역(208)은 맵(예를 들어, PRM) 내의 에지들의 스윕된 볼륨들과 하나 이상의 장애물의 볼륨, 예를 들어, 고정 장애물의 고정 볼륨 또는 이동 장애물의 경로를 따르는 스윕된 볼륨 사이의 중첩 또는 다른 충돌의 영역들을 표현한다.
도 1을 참조하여 위에 논의된 바와 같이, 시스템(100)은 대응하는 에지들에 대한 스윕된 볼륨 프로파일이 이동가능 객체 또는 공간 내에서 이동하는 다른 로봇의 스윕된 볼륨 프로파일과 중첩하는 것을 결정하는 것에 기초하여 잠재적 충돌 및 충돌 영역(208)을 식별한다. 예를 들어, 충돌 영역(208)을 정의하는 구역은 공간 내에서 이동하는 2개의 로봇에 대한 맵들(예를 들어, PRM들) 내의 대응하는 에지들의 스윕된 볼륨 프로파일들 사이에서 중첩의 양을 표현할 수 있다.
그 다음, 시스템(100)은 충돌 영역(208)에 기초하여 경로(206)의 영향받은 노드들 및/또는 또는 에지들을 식별한다. 도 2b에 도시된 예에서, 영향받은 노드들은 충돌 영역(208) 내에 있는 경로(206)의 노드들이고 영향받은 에지들은 영향받은 노드들과 연결되는 경로(206)의 에지들이다. 다른 예들에서, 충돌 영역(208)이 임의의 노드들을 포함하지 않는 경우, 시스템(100)은 경로(206)의 영향받은 에지들을 식별하며, 이는 충돌 영역(208)과 중첩하는 경로(206)의 에지들을 표현한다. 일부 다른 예들에서, 영향받은 노드들은 또한 충돌 영역(208)의 경계로부터 임계치 거리 내에, 예를 들어, 경계로부터 1 미터 내에 있는 노드들일 수 있다. 영향받은 노드들과 연관되는 에지들은 또한 충돌 영역(208)을 회피하도록 경로(206)에 이루어질 조정들을 결정하기 위해 식별된다. 도 2b에 도시된 바와 같이, 2개의 노드 및 7개의 연관된 에지는 충돌 영역(208)에 영향을 받는 것으로 식별된다.
도 2b에 도시된 예에서, 시스템(100)은 표(212)에 나타낸 바와 같이, 맵(201) 내의 경로(206)에 대한 대안 경로들을 식별하고 경로(206B)가 최상의 대안적 충돌없는 경로를 표현하는 것을 결정한다. 이러한 예에서, 시스템(100)은 경로(206B)가 시작 지점(204A)에서 종료 지점(204B)까지의 가장 짧은 경로이기 때문에 대안 경로들(206B 및 206C)에 대한 최상의 경로인 것을 결정한다. 경로들(206A 내지 206C)은 경로(206)에 대한 대안 경로들, 즉, 물리 구역 내의 시작 지점과 종료 지점 사이의 상이한 경로들을 표현한다. 도 2b에 도시된 바와 같이, 시스템(100)은 그들이 충돌 영역(208)을 회피하는 모션을 지정하고 그것에 의해 로봇 디바이스가 특정 경로를 따라 시작 지점과 종료 지점 사이에서 주행함에 따라 가능한 충돌의 가능성을 감소시키기 때문에 경로들(206A 내지 206C)을 식별한다.
시스템(100)은 경로(206)에 대한 가장 적절한 대안으로서 선택하기 위한 경로를 결정하기 위해 경로들(206A 내지 206C) 각각을 평가한다. 도 2b에 도시된 예에서, 경로 평가의 결과들은 표(212) 내에 지정되는 경로 스코어들에 의해 표현된다. 이러한 예에서, 경로 스코어는 각각의 경로의 상대 평가를 표현한다. 예를 들어, 더 높은 경로 스코어는 대응하는 경로가 다른 대안 경로들과 비교하여 경로(206)에 대한 더 강한 대안 경로인 것을 표시할 수 있다.
도 2b에 도시된 예에서, 경로(206B)는 "0.87"의 가장 높은 경로 스코어를 갖는 것으로 식별되며, 이는 그 다음 경로(206)에 대한 대안으로서 경로(206B)를 선택하기 위해 사용된다. 이러한 예에서, 경로(206B)는 충돌 영역(208)을 회피하는 시작 지점과 종료 지점 사이의 가장 짧은 대안 경로이므로 가장 높은 경로 스코어를 갖기 위해 결정된다. 다른 사례들에서, 다른 타입들의 평가 기준들은 경로 스코어들을 계산하고 다수의 대안 경로 중에서 특정 대안 경로를 선택하기 위해 사용될 수 있다. 예들로서, 그러한 평가 기준들은 다른 것들 중에서, 경로에 포함되는 에지들의 수, 경로를 따라 주행하는 것과 연관되는 모션 복잡성, 또는 충돌 영역들에 에지들 또는 노드들의 근접을 포함할 수 있다.
도 2b가 3개의 대안 경로(206A 내지 206C)를 식별하는 시스템(100)을 도시하지만, 일부 구현들에서, 시스템(100)은 다수의 가능한 대안을 식별하는 것 없이 원래 경로(206)에 대한 차선의 대안을 간단히 식별한다. 그러한 구현들에서, 시스템(100)은 충돌 영역(208)에 영향을 받은 원래 경로(206)의 일부를 식별하고 새로운 대안 경로들을 재계산하는 것 없이 경로의 그러한 일부를 조정한다. 예를 들어, 시스템(100)은 충돌 영역(208)과 상호작용하는 것으로 예측되는 원래 경로(205)의 부분들을 조정하고, 경로(206B)를 형성하기 위해 경로를 경로 재지정한다. 이러한 예에서, 시스템(100)은 효율을 개선하고/하거나 경로 조정과 연관되는 계산 부담을 감소시키기 위해 대안 경로들(206A 및 206C)을 계산하거나 식별하는 것 없이 대안 경로(206B)를 선택함에 따라 식별한다.
도 3은 스윕된 볼륨 프로파일 데이터(116B)를 발생시키는 일 예를 예시한다. 위에 논의된 바와 같이, 로드맵 발생기(112)는 로봇 디바이스가 작업을 수행하기 위한 질의를 수신하기 전에 모션 계획 프로세스의 구성 위상 동안 스윕된 볼륨 프로파일 데이터(116B)를 발생시킨다. 일부 사례들에서, 로드맵 발생기(112)는 로봇 디바이스가 주행할 수 있는 물리 구역에 대해 노드들 및 에지들이 식별됨에 따라 맵(예를 들어, PRM) 발생 프로세스 동안 스윕된 볼륨 프로파일 데이터(116B)를 발생시킨다. 다른 사례들에서, 스윕된 볼륨 프로파일 데이터(116B)는 맵(예를 들어, PRM) 발생 프로세스 후이지만 도 1을 참조하여 위에 설명된 경로 조정 기술들 전에 발생된다. 예를 들어, 맵(예를 들어, PRM)이 발생되었다면, 로드맵 발생기(112)는 아래에 논의되는 바와 같이, 로봇 디바이스의 모션 속성들을 표현하는 데이터를 수신할 수 있으며, 이는 맵의 각각의 에지와 연관되는 예측된 모션에 대한 스윕된 볼륨 프로파일들을 식별하기 위해 이때 맵에 매핑되거나 투영된다.
도 3에 도시된 예에서, 로드맵 발생기(112)는 베이스라인 맵(302)을 입력으로서 수신한다. 맵(302)은 확률 로드맵일 수 있다. 로드맵 발생기(112)는 맵(302) 내의 노드들, 예를 들어, "A", "B", "C", 및 "D", 및 식별된 노드들과 연관되는 에지들, 예를 들어, "AB", "AC", "CB", "CD", "BD"를 식별한다.
로드맵 발생기(112)는 맵(302) 내의 각각 식별된 에지에 대한 스윕된 볼륨 프로파일을 결정한다. 예에서, 로드맵 발생기(112)는 에지 "AB"에 대한 스윕된 볼륨 프로파일(306), 에지 "AC"에 대한 스윕된 볼륨 프로파일(308), 에지 "BD"에 대한 스윕된 볼륨 프로파일(312), 에지 "CB"에 대한 스윕된 볼륨 프로파일(314), 및 에지 "CD"에 대한 스윕된 볼륨 프로파일(316)을 식별한다. 로드맵 발생기(112)는 공간 내의 로봇의 모션에 영향을 주는 다양한 인자들을 고려함으로써 스윕된 볼륨 프로파일들(306, 308, 312, 314, 316)을 발생시킨다. 예를 들어, 로드맵 발생기(112)는 공간 내에서 주행함에 따라 로봇 디바이스의 크기 및 형상, 및 로봇의 상이한 구성들(포즈들)을 고려할 수 있다.
로드맵 발생기(112)는 대응하는 에지를 따라 로봇의 모션을 투영함으로써 스윕된 볼륨 프로파일들(306, 308, 312, 314, 316) 각각을 발생시킨다. 예들로서, 로드맵 발생기(112)는 각각의 에지를 따라 로봇의 3차원 모션 프로파일을 결정하고, 맵(302) 내의 에지를 따라 이동하는 동안 그러한 프로파일의 정도를 계산하고/하거나 이동 로봇 프로파일이 통과할 모든 복셀들을 결정할 수 있다.
발생되면, 스윕된 볼륨 프로파일들(306, 308, 312, 314, 316)은 계산되는 스윕된 프로파일의 타입에 기초하여 상이한 데이터 포맷들로 저장될 수 있다. 일부 구현들에서, 스윕된 볼륨 프로파일들은 특정 에지를 따라 로봇의 3차원 모션 프로파일을 표현하는 복셀들의 한 세트로서 저장된다. 일부 다른 구현들에서, 스윕된 볼륨 프로파일들은 로봇에 의해 잠재적으로 점유되는 것으로 간주되는 공간의 전체 수직 구역을 갖는 간소화된 2차원 위치들로서 저장된다. 도 2d에 도시되는 스윕된 볼륨 프로파일들의 2차원 예시들은 명료성을 위해 의도되지만, 시스템(100)은 실제 3차원 위치 데이터를 표현하기 위해 스윕된 볼륨 프로파일들을 저장한다.
특정 에지에 대한 에지 특정 스윕된 볼륨 프로파일은 로봇 디바이스가 특정 에지를 따라 주행하는 동안 통과할 전체 볼륨을 표현할 수 있다. 예를 들어, 시스템은 로봇 디바이스의 3D 프로파일을 결정하고, 그 다음 특정 에지를 따라 이동함에 따라 임의의 지점에서 3D 프로파일에 의해 터치되거나 3D 프로파일 내에 포함될 복셀들의 합으로서 스윕된 볼륨을 결정할 수 있다. 스윕된 볼륨은 다른 것들 중에서, 컨벡스 발생기들, 다면체 근사, 궤적을 따르는 모션 샘플링, 차원 변환 매트릭스들을 수반하는 것들을 포함하는, 다양한 모션 평가 기술들을 사용하여 식별될 수 있다.
로드맵 발생기(112)는 각각의 에지를 그의 대응하는 스윕된 볼륨 프로파일에 매핑하기 위해 표(318)를 발생시킨다. 표(318)는 또한 로봇 디바이스가 에지를 따라 주행하기 위한 추정된 지속기간과 같은, 각각의 에지를 따르는 모션과 연관되는 타이밍 정보를 포함한다. 다른 예들로서, 표(318)는 또한 추정된 지속기간, 그러한 로봇 사양들, 예를 들어, 로봇 포즈 조인트 구성들, 로봇에 의해 사용되는 모션의 타입, 에지 거리와 연관되는 측정치들, 속도 추정치들, 또는 공간 정보, 예를 들어, 표면 타입, 마찰 계수들 등을 예측하기 위해 사용되는 데이터를 소싱할 수 있다. 표(318)는 도 1을 참조하여 위에 논의된 바와 같이, 스윕된 볼륨 프로파일 데이터(116B)에 저장되고 예를 들어, 충돌 검출 및 경로 조정 프로세스 동안 충돌 검출기(116) 및 경로 조정기(114B)에 의해 각각 액세스될 수 있다.
도 4는 2개의 로봇의 계획된 경로들 사이에서 잠재적 충돌을 검출하기 위한 기술의 일 예를 예시한다. 이러한 예에서, 충돌 검출기(116)는 중첩 시간 기간 동안 동일한 물리 구역 내에서 주행하는 2개의 로봇 디바이스의 맵들(예를 들어, PRM들)을 평가한다. 충돌 검출기(116)는 도 1을 참조하여 위에 논의된 바와 같은 평가에 기초하여 충돌이 로봇 디바이스들 사이에서 발생할 가능성이 있는지를 결정한다.
도 4에 도시된 예에서, 충돌 검출기(116)는 로봇 디바이스(120A)에 대한 맵(402A)(예를 들어, PRM), 스윕된 볼륨 프로파일 데이터(404A), 및 경로(406A), 및 로봇 디바이스(120B)에 대한 맵(402B)(예를 들어, PRM), 스윕된 볼륨 프로파일 데이터(404B), 및 경로(406B)를 수신한다. 이러한 예에서, 충돌 검출기(116)는 로봇 디바이스들이 그들의 각각의 경로들(406A 및 406B)을 따라 주행함에 따라 충돌이 로봇 디바이스들(120A 및 120B) 사이에서 발생할 가능성이 있는지를 결정하기 위해 충돌 검출을 수행한다.
도 4에 도시된 바와 같이, 충돌 검출기(116)는 즉, 중첩 시간 프레임들에 대응하는 경로들(406A 및 406B)의 에지들을 비교함으로써 에지별 기초로 충돌 검출을 수행한다. 예를 들어, 단계(412)에서, 충돌 검출기(116)는 시점들(T1 및 T2) 사이에서 로봇 디바이스들(120A 및 120B)의 모션을 비교하기 위해 경로(406A)로부터의 에지(1A)를 경로(406B)로부터의 에지(1B)와 비교한다. 이러한 사례에서, 충돌 검출기(116)는 에지들(1A 및 1B)의 스윕된 볼륨 프로파일들 사이에 어떠한 중첩도 없으므로 충돌이 발생하지 않을 것을 결정한다.
단계(414)에서, 충돌 검출기(116)는 시점들(T2 및 T3) 사이에서 로봇 디바이스들(120A 및 120B)의 모션을 비교하기 위해 경로(406A)로부터의 에지(2A)를 경로(406B)로부터의 에지(1B)와 비교한다. 이러한 사례에서, 에지(2A)는 로봇 디바이스(120B)가 에지(1B)를 횡단하기 위한 시간이 로봇 디바이스(120A)가 에지들(1A 및 2A) 둘 다를 횡단하기 위한 시간과 대략 동일한 것을 경로들(406A 및 406B)과 연관되는 타이밍 데이터가 표시하므로 에지(1B)와 비교된다. 이와 관련하여, 충돌 검출기(116)는 충돌 검출을 위해 비교되어야 하는 경로들 사이에서 대응하는 에지들을 결정할 시에 경로와 연관되는 속도를 고려할 수 있다.
도 4에 도시된 바와 같이, 단계(414)에서, 충돌 검출기(116)는 에지들(2A 및 1B)의 스윕된 볼륨 프로파일들 사이에 중첩이 있으므로 충돌이 발생할 가능성이 있는 것을 결정한다. 충돌 검출기(116)는 경로 조정이 경로(406A)에 요구될 가능성이 있는 것을 결정하고 경로(406A) 내의 에지(2A)에 대한 경로 조정이 발생할 때까지 단계(416)에서 추가 에지 비교들을 정지한다. 그 다음, 충돌 검출기(116)는 경로 조정 표시를 경로 프로세서(114)에 제공하며, 이는 도 2a 내지 도 2b를 참조하여 위에 논의된 바와 같이 경로 조정을 수행한다.
일부 구현들에서, 충돌 검출기(116)는 경로가 조정된 후에 도 4에 도시된 충돌 검출 절차를 반복한다. 예를 들어, 충돌 검출기(116)는 경로(406A)가 단계(414)에서 식별되는 가능한 충돌을 회피하기 위해 조정된 후에 에지들을 재평가하기 위해 신호를 발생시킬 수 있다. 그러한 구현들에서, 충돌 검출기(116)는 조정된 경로(406A)가 가능한 충돌을 수반하지 않는 것을 확인하기 위해 조정된 경로(406A)와 경로(406B) 사이의 에지 대 에지 비교들을 재귀적으로 실행한다. 예를 들어, 충돌 검출기(116)는 충돌이 더 이상 발생할 가능성이 없는 것을 확인하기 위해 시점들(T2 및 T3) 동안 조정된 에지에서 단계(414)를 반복할 수 있다. 일부 사례들에서, 다수의 대안이 경로 조정에 이용가능한 경우, 충돌 검출기(116)는 만약에 있다면, 대안 경로들 중 어느 것이 충돌을 수반할 가능성이 있는지를 결정하기 위해 각각의 대안에 대한 비교 기술들을 수행할 수 있다.
경로 프로세서(114)는 2개 이상의 맵(예를 들어, PRM들)에 의해 지정되는 경로들의 비교에 기초하여 경로들을 조정하기 위해 다양한 기술들을 사용할 수 있다. 일부 사례들에서, 경로 프로세서(114)는 다른 맵에 비해 맵에 의해 지정되는 하나의 경로만을 조정한다. 도 4에 도시된 예에서, 경로 프로세서(114)는 로봇 디바이스들(120A 및 120B) 사이에서 발생하는 충돌의 가능성을 방지할 시에 경로(406A)를 조정하지만 경로(406B)를 있는 그대로 남길 수 있다. 다른 사례들에서, 경로 프로세서(114)는 검출된 충돌을 방지하기에 충분한 만큼 다수의 경로를 조정할 수 있다. 도 4에 도시된 예에서, 경로 프로세서(114)는 충돌을 회피하기 위해 단일 경로만을 조정하도록 요구될 수 있는 것보다 더 작은 양만큼 경로들(406A 및 406B) 둘 다를 조정할 수 있다.
일부 구현들에서, 경로 프로세서(114)는 어느 경로를 조정할지 및/또는 경로가 조정되어야 하는 정도를 결정할 수 있게 하는 우선순위화 스킴을 이용할 수 있다. 우선순위화 스킴은 더 높은 우선순위화 경로들이 충돌 방지 동안 조정되지 않는 것을 보장하기 위해 사용될 수 있다. 예를 들어, 로봇 디바이스(120A)가 로봇 디바이스(120B)보다 더 높은 우선순위 객체로서 식별되면, 이때 경로 조정 동안, 경로 프로세서(114)는 경로(406A)를 그의 더 높은 우선순위화로 인해 변경하지 않은 채로 유지하지만 단계(414)에서 검출되는 잠재적인 충돌이 방지되도록 경로(406B)만을 조정할 수 있다.
도 5는 로봇에 대한 계획된 경로를 동적으로 조정하기 위한 프로세스(500)의 일 예를 예시한다. 간단히, 프로세스(500)는 물리 구역(510) 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 확률 로드맵을 발생시키는 동작, 제1 확률 로드맵(520) 내의 로봇에 대한 초기 경로를 결정하는 동작, 물리 구역(530) 내의 이동가능 객체에 의해 주행될 경로를 표현하는 제2 확률 로드맵을 표시하는 데이터를 획득하는 동작, 로봇(540)에 대한 초기 경로의 에지들과 연관되는 잠재적 충돌을 검출하는 동작, 및 확률 로드맵(550) 내의 로봇에 대한 조정된 경로를 결정하는 동작을 포함할 수 있다.
일반적으로, 프로세스(500)는 시스템(100)을 참조하여 설명되지만, 다른 타입들의 모션 계획 시스템들은 프로세스(500)의 동작들을 실행하도록 구성될 수 있다. 예를 들어, 일부 구현들에서, 프로세스(500)의 동작들은 2개 이상의 맵(예를 들어, PRM들)의 개별 에지들의 스윕된 볼륨 프로파일들을 비교하기 위해 확률 모션 계획을 사용하는 시스템에 의해 수행된다. 부가적으로, 프로세스(500)의 동작들은 시스템(100)의 상이한 구성요소들에 의해 수행될 수 있으며, 이는 하나 이상의 컴퓨팅 디바이스 상에 구현될 수 있다. 다른 구현들에서, 시스템(100)이 원격 서버 시스템 상에 구현되는 경우, 프로세스(500)의 동작들은 원격 서버 시스템에 의해 실행될 수 있다.
보다 상세히, 프로세스(500)는 물리 구역(510) 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 확률 로드맵을 발생시키는 동작을 포함한다. 예를 들어, 로드맵 발생기(112)는 물리 구역 내의 로봇 디바이스(120)에 의해 주행될 가능한 경로들을 표현하는 맵(104)을 발생시킨다. 맵(104)은 맵(104)의 노드들을 각각 연결하는 에지들의 한 세트를 지정할 수 있다. 맵(104)은 그의 에지들 각각에 대한 스윕된 볼륨 프로파일들과 연관될 수 있다. 예를 들어, 도 3에 도시된 예에서, 에지들("AB", "AC", "CB", "CD", 및 "BD")은 스윕된 볼륨 프로파일들(306, 308, 314, 316, 및 312)과 각각 연관된다.
위에 논의된 바와 같이, 스윕된 볼륨 프로파일 데이터(116B)는 PRM 내의 개별 에지와 연관하여 물리 공간 내의 로봇 디바이스(120)에 의한 최대 횡단가능 이동을 표현하는 에지 특정 스윕된 볼륨 프로파일들을 포함한다. 일부 사례들에서, 스윕된 볼륨 프로파일들은 물리 공간 내의 로봇 디바이스(120)에 의한 최대 횡단가능 구역을 표현하는 2차원 스윕된 볼륨 이미지들의 한 세트로서 저장된다. 다른 사례들에서, 스윕된 볼륨 프로파일들은 물리 공간 내의 로봇 디바이스에 의한 최대 횡단가능 볼륨을 표현하는 3차원 스윕된 볼륨 복셀들의 한 세트로서 저장된다. 모션 계획을 위해 요구되는 복잡성에 따라, 시스템(100)은 스윕된 볼륨 프로파일들을 표현하는 2차원 이미지들을 사용하여 충돌 검출을 수행하거나(도 4에 도시된 바와 같음), 대안적으로, 스윕된 볼륨 프로파일들을 표현하는 3차원 복셀들을 사용하여 보다 정밀하고, 아직 계산적으로 요구되는 충돌 검출을 수행할 수 있다.
프로세스(500)는 제1 맵(예를 들어, PRM)(520) 내의 로봇에 대한 초기 경로를 결정하는 동작을 포함한다. 예를 들어, 경로 발생기(114A)는 맵(104) 내의 로봇 디바이스(120)에 대한 초기 경로(106A)를 결정할 수 있다. 초기 경로(106A)는 질의(102)에 지정되는 시작 지점 및 종료 지점으로부터 로봇 디바이스(120)의 모션을 표현하는 맵(104) 내의 에지들 중에서 에지들의 서브세트를 지정할 수 있다. 예를 들어, 도 2a에 도시된 예에서, 경로(206)는 시작 지점(204A)에서 종료 지점(204B)까지 8개의 연결된 에지를 지정한다.
프로세스(500)는 물리 구역(530) 내에 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵(예를 들어, PRM)을 표시하는 데이터를 획득하는 동작을 포함한다. 예를 들어, 충돌 검출기(116)는 물리 구역 내에 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵을 표시하는 영역 데이터(116A)를 획득할 수 있다. 제2 맵은 제2 맵 내의 노드들을 연결하는 에지들의 제2 세트 및 에지들의 제2 세트에 포함되는 각각의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일을 포함할 수 있다. 이동가능 객체는 로봇 디바이스(120)가 동일한 물리 구역 내에서 주행하도록 계획되는 시간 기간 동안 물리 구역 내에서 주행하는 것으로 예상되는 다른 로봇 디바이스를 표현할 수 있다. 예를 들어, 도 4에 도시된 예에서, 충돌 검출기(116)는 로봇 디바이스(120A)의 맵(402A) 및 스윕된 볼륨 프로파일 데이터(404A)와 비교하여 로봇 디바이스(120B)의 맵(402B) 및 스윕된 볼륨 프로파일 데이터(404B)를 평가한다.
프로세스(500)는 로봇(540)에 대한 초기 경로의 에지들과 연관되는 잠재적 충돌을 검출하는 동작을 포함한다. 예를 들어, 충돌 검출기(116)는 초기 경로(206A)의 일부에서 검출되는 잠재적 충돌을 표시하는 충돌 데이터(108)를 발생시킬 수 있다. 잠재적 충돌은 로봇 디바이스(120) 및 이동가능 객체들의 스윕된 볼륨 프로파일 데이터를 비교하고 중첩을 식별하는 것에 기초하여 검출될 수 있다. 도 4를 참조하여 위에 논의된 바와 같이, 중첩은 로봇 디바이스(120) 및 이동가능 객체들이 동일한 시점 주위의 물리 구역의 동일한 영역으로 횡단할 가능성을 표시한다. 도 4에 도시된 예에서, 충돌 검출기(116)는 맵(402A) 내의 에지(2A)가 맵(402B) 내의 에지(1B)의 스윕된 볼륨 프로파일과 중첩하는 스윕된 볼륨 프로파일을 갖는 것을 결정하는 것에 기초하여 단계(414)에서 잠재적 충돌을 검출한다.
프로세스(500)는 맵(550) 내의 로봇에 대한 조정된 경로를 결정하는 동작을 포함한다. 예를 들어, 경로 조정기(114B)는 맵(104) 내의 로봇 디바이스(120)에 대한 조정된 경로(106B)를 결정한다. 조정된 경로(106B)는 단계(540)에서 검출되는 잠재적 충돌을 회피하는 초기 경로(106A)와 상이한 에지들의 서브세트를 지정할 수 있다. 예를 들어, 도 2a 내지 도 2b에 도시된 예에서, 조정된 경로(206B)는 충돌 영역(208)에 영향을 받는 것으로 식별되는 초기 경로(206A)의 에지들을 포함하지 않는다. 이러한 예에서, 조정된 경로(206B)는 또한 시작 지점(204A)을 중간 노드에 연결하는 에지, 및 중간 노드를 종료 지점(204B)에 연결하는 에지와 같은, 특정 에지들을 공유한다. 이와 관련하여, 경로 조정기(115B)는 전적으로 새로운 경로를 재계산해야 하는 것 없이 초기 경로(206A)의 일부를 조정한다.
일부 구현들에서, 경로 조정기(114B)는 다수의 대안 경로(113)의 한 세트 중에서 대안 경로를 선택하는 것에 기초하여 조정된 경로(106B)를 결정한다. 예를 들어, 도 2b에 도시된 예에서, 조정된 경로는 3개의 대안 경로(206A, 206B, 및 206C) 중에서 조정된 경로(206B)를 선택함으로써 결정되며, 이는 경로(206)에 대한 대안 경로들로서 식별된다. 이러한 예에서, 경로(206B)는 경로(206B)가 3개의 대안 경로 중에서 가장 짧은 경로인 것을 표시하는 경로 스코어에 기초하여 조정된 경로로서 선택된다. 도 2b에 도시된 바와 같이, 경로들(206A 내지 206C) 각각은 동일한 시작 지점(204A) 및 종료 지점(204B)을 경로(206)로서 공유하지만, 잠재적 수집을 회피하는 대안적 횡단 경로들을 표현하는 중간 노드들 및 에지들의 상이한 세트를 포함한다.
일부 구현들에서, 경로 조정기(114B)는 위에 논의된 바와 같이, 초기 경로(106A)를 무효화하고 조정된 경로(106B)를 발생시키기 위해 초기 경로(206A)의 일부를 조정하는 대신에 새로운 경로를 전적으로 발생시킬 수 있다. 그러한 구현들에서, 경로 프로세서(114)는 잠재적 충돌에 영향을 받는 초기 경로(106A)의 에지들의 수를 식별하고 영향받은 에지들의 수가 미리 결정된 임계치를 충족시키는 것, 예를 들어, 초기 경로(106A)의 모든 에지들 중에서 50% 영향받은 에지들보다 더 큰 것을 결정할 수 있다. 경로 조정기(114B)는 결정에 기초하여 초기 경로(106A)를 무효화하고 맵(104) 내의 로봇 디바이스(120)에 대한 새로운 경로를 재계산한다. 예를 들어, 경로 조정기(114B)는 새로운 경로 및 초기 경로가 중간 노드들의 대부분, 예를 들어, 도 2b에 도시된 바와 같은 경로들(206A 및 206C)을 공유하지 않도록 질의(102)의 시작 지점과 종료 지점 사이에서 전적으로 새로운 경로를 식별할 수 있다.
경로 조정기(114B)가 새로운 경로를 재계산하는 일부 사례들에서, 경로 조정기(114B)는 초기 경로(106A)와 상이한 경로를 실제로 표현하는지를 결정하기 위해 새로운 경로를 평가할 수 있다. 예를 들어, 경로 조정기(114B)는 초기 경로(106A)에 의해 지정되지 않았던 새로운 경로에 의해 지정되는 에지들을 식별하고 새로운 에지들의 수를 임계 값과 비교할 수 있다. 새로운 에지들의 수가 임계 값을 초과하면, 예를 들어, 새로운 경로의 에지들 중에서 50% 새로운 에지들보다 더 크면, 이때 경로 조정기(114B)는 새롭게 계산된 경로가 초기 경로(106A)로부터 새롭고, 상이하고, 별개의 경로를 실제로 표현하는 것을 결정한다.
도 6은 시스템(600)의 개략도이다. 시스템(600)은 일부 구현들에 따라, 이전에 설명된 컴퓨터에 의해 구현되는 방법들 중 어느 것과 연관하여 설명되는 동작들을 수행하기 위해 사용될 수 있다. 일부 구현들에서, 이러한 명세서에 설명되는 컴퓨팅 시스템들 및 디바이스들 및 기능 동작들은 디지털 전자 회로에서, 유형으로 구체화된 컴퓨터 소프트웨어 또는 펌웨어에서, 이러한 명세서에 개시되는 구조들(예를 들어, 시스템(600)) 및 그들의 구조적 균등물들을 포함하는, 컴퓨터 하드웨어에서, 또는 그들 중 하나 이상의 조합들에서 구현될 수 있다. 시스템(600)은 모듈러 비히클들의 베이스 유닛들 또는 포드 유닛들 상에 설치되는 비히클들을 포함하는, 랩톱들, 데스크톱들, 워크스테이션들, 개인 정보 단말기들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은, 다양한 형태들의 디지털 컴퓨터들을 포함하도록 의도된다. 시스템(600)은 또한 개인 정보 단말기들, 휴대 전화들, 스마트폰들, 및 다른 유사한 컴퓨팅 디바이스들과 같은, 이동 디바이스들을 포함할 수 있다. 부가적으로, 시스템은 범용 직렬 버스(Universal Serial Bus)(USB) 플래시 드라이브들과 같은, 휴대용 저장 매체들을 포함할 수 있다. 예를 들어, USB 플래시 드라이브들은 운영 시스템들 및 다른 애플리케이션들을 저장할 수 있다. USB 플래시 드라이브들은 다른 컴퓨팅 디바이스의 USB 포트 내로 삽입될 수 있는 무선 송신기 또는 USB 커넥터와 같은, 입력/출력 구성요소들을 포함할 수 있다.
시스템(600)은 프로세서(610), 메모리(620), 저장 디바이스(630), 및 입력/출력 디바이스(640)를 포함한다. 프로세서(610), 메모리(620), 저장 디바이스(630), 및 입력/출력 디바이스(640) 각각은 시스템 버스(650)를 사용하여 상호연결된다. 프로세서(610)는 시스템(600) 내에 실행을 위한 명령어들을 처리할 수 있다. 프로세서는 다수의 아키텍처 중 어느 것을 사용하여 디자인될 수 있다. 예를 들어, 프로세서(610)는 복합 명령 집합 컴퓨터(Complex Instruction Set Computer)(CISC) 프로세서, 축소 명령 집합 컴퓨터(Reduced Instruction Set Computer)(RISC) 프로세서, 또는 최소 명령 집합 컴퓨터(Minimal Instruction Set Computer)(MISC) 프로세서일 수 있다.
일 구현에서, 프로세서(610)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(610)는 멀티 스레드 프로세서이다. 프로세서(610)는 입력/출력 디바이스(640) 상에 사용자 인터페이스에 대한 그래픽 정보를 디스플레이하기 위해 메모리(620) 내에 저장되거나 저장 디바이스(630) 상에 저장되는 명령어들을 처리할 수 있다.
메모리(620)는 시스템(600) 내에 정보를 저장한다. 일 구현에서, 메모리(620)는 컴퓨터 판독가능 매체이다. 일 구현에서, 메모리(620)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(620)는 비휘발성 메모리 유닛이다.
저장 디바이스(630)는 시스템(600)을 위한 대량 저장을 제공할 수 있다. 일 구현에서, 저장 디바이스(630)는 컴퓨터 판독가능 매체이다. 다양한 상이한 구현들에서, 저장 디바이스(630)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스일 수 있다.
입력/출력 디바이스(640)는 시스템(600)을 위한 입력/출력 동작들을 제공한다. 일 구현에서, 입력/출력 디바이스(640)는 키보드 및/또는 포인팅 디바이스를 포함한다. 다른 구현에서, 입력/출력 디바이스(640)는 그래픽 사용자 인터페이스들을 디스플레이하기 위한 디스플레이 유닛을 포함한다.
설명되는 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 그들의 조합들에서 구현될 수 있다. 장치는 프로그램가능 프로세서에 의한 실행을 위해 정보 캐리어, 예를 들어 머신 판독가능 저장 디바이스에 유형으로 구체화되는 컴퓨터 프로그램 제품으로 구현될 수 있고; 방법 단계들은 입력 데이터를 조작하고 출력을 발생시킴으로써 설명된 구현들의 기능들을 수행하기 위해 명령어들의 프로그램을 실행하는 프로그램가능 프로세서에 의해 수행될 수 있다. 설명된 특징들은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고, 데이터 및 명령어들을 그들에 송신하도록 결합되는 적어도 하나의 프로그램가능 프로세서를 포함하는 프로그램가능 시스템 상에 실행가능한 하나 이상의 컴퓨터 프로그램에서 유리하게 구현될 수 있다. 컴퓨터 프로그램은 특정 활동을 수행하거나 특정 결과를 초래하기 위해 컴퓨터에서, 직접 또는 간접적으로 사용될 수 있는 명령어들의 한 세트이다. 컴퓨터 프로그램은 컴파일형 또는 해석형 언어들을 포함하는, 임의의 형태의 프로그래밍 언어로 기입될 수 있고, 독립형 프로그램으로서 또는 컴퓨팅 환경에서의 사용에 적절한 모듈, 구성요소, 서브루틴, 또는 다른 유닛으로서 포함하는, 임의의 형태로 전개될 수 있다.
명령어들의 프로그램의 실행을 위한 적절한 프로세서들은 예로서, 일반 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 컴퓨터의 단독 프로세서 또는 다수의 프로세서 중 하나를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 실행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리이다. 일반적으로, 컴퓨터는 또한 데이터 파일들을 저장하기 위한 하나 이상의 대량 저장 디바이스를 포함하거나, 이 저장 디바이스와 통신하도록 동작적으로 결합될 것이고; 그러한 디바이스들은 자기 디스크들, 예컨대 내부 하드 디스크들 및 이동식 디스크들; 자기-광 디스크들; 및 광 디스크들을 포함한다. 컴퓨터 프로그램 명령어들 및 데이터를 유형으로 구체화하는 데 적절한 저장 디바이스들은 예로서 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들을 포함하는, 모든 형태들의 비휘발성 메모리; 자기 디스크들 예컨대 내부 하드 디스크들 및 이동식 디스크들; 자기-광 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함한다. 프로세서 및 메모리는 주문형 집적 회로들(application-specific integrated circuits)(ASICs)에 의해 보충되거나, 이 집적 회로들에 포함될 수 있다.
사용자와의 상호작용을 제공하기 위해, 특징들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스 예컨대 음극선관(cathode ray tube)(CRT) 또는 액정 디스플레이(liquid crystal display)(LCD) 모니터 및 사용자가 입력을 컴퓨터에 제공할 수 있는 키보드 및 포인팅 디바이스 예컨대 마우스 또는 트랙볼을 갖는 컴퓨터 상에 구현될 수 있다. 부가적으로, 그러한 활동들은 터치스크린 평판 디스플레이들 및 다른 적절한 메커니즘들을 통해 구현될 수 있다.
특징들은 데이터 서버와 같은, 백 엔드 구성요소를 포함하거나, 애플리케이션 서버 또는 인터넷 서버와 같은, 미들웨어 구성요소를 포함하거나, 그래픽 사용자 인터페이스 또는 인터넷 브라우저, 또는 그들의 임의의 조합을 갖는 클라이언트 컴퓨터와 같은, 프런트 엔드 구성요소를 포함하는 컴퓨터 시스템 내에서 구현될 수 있다. 시스템의 구성요소들은 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 연결될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크(local area network)("LAN"), 광역 네트워크(wide area network)("WAN"), 피어 투 피어 네트워크들(애드 혹 또는 고정 멤버들을 가짐), 그리드 컴퓨팅 인프라스트럭처들, 및 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이고 전형적으로 설명된 것과 같은, 네트워크를 통해 상호작용한다. 클라이언트 및 서버의 관계는 각각의 컴퓨터들 상에 실행하고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
이러한 명세서가 많은 특정 구현 상세를 포함하지만, 이들은 임의의 발명들 또는 청구되는 것의 범위에 관한 제한들로서 해석되는 것이 아니라, 오히려 특정 발명들의 특정 구현들에 특정한 특징들의 설명들로서 해석되어야 한다. 개별 구현들의 맥락에서 이러한 명세서에 설명되는 특정 특징들은 또한 단일 구현에서 조합으로 구현될 수 있다. 역으로, 단일 구현의 맥락에서 설명되는 다양한 특징들은 또한 다수의 구현에서 개별적으로 또는 임의의 적절한 서브조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들에서 역할을 하는 것으로서 위에 설명되고 심지어 초기에 그와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 서브조합 또는 서브조합의 변형으로 지향될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되지만, 이것은 그러한 동작들이 도시되는 특정 순서 또는 순차적 순서로 수행되거나, 모든 예시된 동작들이 수행되어, 바람직한 결과들을 달성하는 것을 필요로 하는 것으로서 이해되지 않아야 한다. 특정 상황들에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 위에 설명된 구현들에서의 다양한 시스템 구성요소들의 분리는 모든 구현들에서 그러한 분리를 필요로 하는 것으로서 이해되지 않아야 하고, 설명된 프로그램 구성요소들 및 시스템들은 일반적으로 단일 소프트웨어 제품에서 함께 통합되거나 다수의 소프트웨어 제품 내로 패키징될 수 있다는 점이 이해되어야 한다.
다수의 실시예가 설명되었다. 그럼에도 불구하고, 다양한 수정들은 본 발명의 사상 및 범위로부터 벗어나는 것 없이 이루어질 수 있다는 점이 이해될 것이다. 게다가, 도면들에 도시된 로직 흐름들은 바람직한 결과들을 달성하기 위해, 도시되는 특정 순서, 또는 순차적 순서를 필요로 하지 않는다. 게다가, 다른 단계들이 설명된 흐름들로부터 제공될 수 있거나, 단계들이 설명된 흐름들로부터 제거될 수 있고, 다른 구성요소들은 설명된 시스템들에 추가되거나, 이 시스템들로부터 제거될 수 있다. 따라서, 다른 실시예들은 이하의 청구항들의 범위 내에 있다.

Claims (23)

  1. 하나 이상의 컴퓨터에 의해 수행되는 방법으로서,
    상기 하나 이상의 컴퓨터에 의해, 물리 구역 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 맵을 발생시키는 단계 - 상기 제1 맵은 (i) 상기 제1 맵 내의 노드들을 각각 연결하는 제1 복수의 에지, 및 (ii) 상기 제1 복수의 에지에 포함되는 각각의 에지에 대한 로봇의 스윕된 볼륨 프로파일을 포함함 - ;
    상기 하나 이상의 컴퓨터에 의해, 상기 제1 맵 내의 로봇에 대한 초기 경로를 결정하는 단계 - 상기 초기 경로는 상기 제1 복수의 에지 중에서 에지들의 서브세트를 지정함 - ;
    상기 하나 이상의 컴퓨터에 의해, 상기 물리 구역 내의 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵을 표시하는 데이터를 획득하는 단계 - 상기 제2 맵은 (i) 상기 제2 맵 내의 노드들을 각각 연결하는 제2 복수의 에지, 및 (ii) 상기 제2 복수의 에지에 포함되는 각각의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일을 포함함 - ;
    상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들 및 상기 제2 복수의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일들에 기초하여, 상기 하나 이상의 컴퓨터에 의해, 상기 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 단계;
    상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 미리 결정된 임계치를 충족시키는지를 결정하는 단계; 및
    상기 잠재적 방해물의 검출에 기초하여, 상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계 - 상기 조정된 경로는 상기 복수의 에지 중에서 에지들의 상이한 서브세트를 지정함 -
    를 포함하고,
    상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계는, 상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 상기 미리 결정된 임계치를 충족시키는지의 결정에 기초하여, 상기 초기 경로 대신 새로운 초기 경로를 생성하거나 상기 초기 경로의 일부분을 조정할지를 결정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 물리 구역 내의 이동가능 객체에 의해 주행되는 경로는 상기 제2 맵 내의 에지들의 제2 서브세트를 지정하고;
    상기 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 단계는,
    상기 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 상기 에지들의 제2 서브세트와 연관되는 이동가능 객체의 스윕된 볼륨 프로파일들을 비교하는 단계;
    상기 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 상기 에지들의 제2 서브세트와 연관되는 이동가능 객체의 스윕된 볼륨 프로파일들의 비교에 기초하여, 상기 에지들의 제1 서브세트 내의 하나 이상의 에지 및 상기 에지들의 제2 서브세트 내의 하나 이상의 에지가 상기 물리 구역 내의 중첩 영역에 대응하는 것을 결정하는 단계; 및
    상기 에지들의 제1 서브세트 내의 하나 이상의 에지 및 상기 에지들의 제2 서브세트 내의 하나 이상의 에지가 상기 물리 구역 내의 중첩 영역에 대응한다는 결정에 기초하여, 상기 에지들의 제1 서브세트에 포함되는 하나 이상의 에지가 잠재적 방해물과 연관되는 것을 결정하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 상기 복수의 에지 중에서 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 구역을 지정하는, 방법.
  4. 제3항에 있어서, 상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 상기 복수의 에지 중에서 상기 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 볼륨을 표현하는 복셀들의 한 세트를 지정하는, 방법.
  5. 제1항 또는 제2항에 있어서, 상기 이동가능 객체는 상기 물리 구역 내에서 주행하는 제2 로봇을 포함하는, 방법.
  6. 제1항 또는 제2항에 있어서, 상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계는,
    상기 초기 경로에 대응하는 복수의 대안 경로를 식별하는 단계 -
    상기 복수의 대안 경로 내의 각각의 대안 경로는 (i) 상기 초기 경로의 시작 지점을 표현하는 제1 에지 및 (ii) 상기 초기 경로의 종료 지점을 표현하는 제2 에지를 포함하고,
    각각의 대안 경로는 상기 제1 에지와 상기 제2 에지 사이의 중간 에지들의 상이한 세트를 포함함 - ; 및
    상기 복수의 대안 경로 중에서 특정 대안 경로를 상기 조정된 경로로서 선택하는 단계를 포함하는, 방법
  7. 제6항에 있어서, 상기 복수의 대안 경로 중에서 특정 대안 경로를 상기 조정된 경로로서 선택하는 단계는,
    상기 복수의 대안 경로 내의 각각의 대안 경로에 대해, 특정 대안 경로를 따라 검출된 방해물의 확률을 표현하는 스코어를 계산하는 단계; 및
    상기 대안 경로들을 따라 검출된 방해물의 확률들을 표현하는 스코어들에 기초하여 상기 복수의 대안 경로 중에서 상기 특정 대안 경로를 상기 조정된 경로로서 선택하는 단계를 포함하는, 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 단계는,
    상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 상기 미리 결정된 임계치를 충족시킨다는 결정에 기초하여 상기 초기 경로를 무효화하는 단계; 및
    상기 제1 맵 내의 로봇에 대한 새로운 초기 경로를 재계산하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 새로운 초기 경로는 상기 복수의 에지 중에서 에지들의 새로운 서브세트를 지정하고;
    상기 에지들의 새로운 서브세트는 상기 에지들의 서브세트에 포함되지 않았던 에지들을 포함하고;
    상기 에지들의 서브세트에 포함되지 않았던 에지들의 수는 임계 값을 초과하는, 방법.
  10. 제1항 또는 제2항에 있어서, 상기 제1 맵은 제1 확률 로드맵이고, 상기 제2 맵은 제2 확률 로드맵인, 방법.
  11. 시스템으로서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터에 의해 실행될 때, 하나 이상의 컴퓨터로 하여금 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 저장 디바이스를 포함하고, 상기 동작들은,
    상기 하나 이상의 컴퓨터에 의해, 물리 구역 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 맵을 발생시키는 동작 - 상기 제1 맵은 (i) 상기 제1 맵 내의 노드들을 각각 연결하는 제1 복수의 에지, 및 (ii) 상기 제1 복수의 에지에 포함되는 각각의 에지에 대한 로봇의 스윕된 볼륨 프로파일을 포함함 - ;
    상기 하나 이상의 컴퓨터에 의해, 상기 제1 맵 내의 로봇에 대한 초기 경로를 결정하는 동작 - 상기 초기 경로는 상기 제1 복수의 에지 중에서 에지들의 서브세트를 지정함 - ;
    상기 하나 이상의 컴퓨터에 의해, 상기 물리 구역 내의 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵을 표시하는 데이터를 획득하는 동작 - 상기 제2 맵은 (i) 상기 제2 맵 내의 노드들을 각각 연결하는 제2 복수의 에지, 및 (ii) 상기 제2 복수의 에지에 포함되는 각각의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일을 포함함 - ;
    상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들 및 상기 제2 복수의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일들에 기초하여, 상기 하나 이상의 컴퓨터에 의해, 상기 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 동작;
    상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 미리 결정된 임계치를 충족시키는지를 결정하는 동작; 및
    상기 잠재적 방해물의 검출에 기초하여, 상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 동작 - 상기 조정된 경로는 상기 복수의 에지 중에서 에지들의 상이한 서브세트를 지정함 -
    을 포함하고,
    상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 동작은, 상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 상기 미리 결정된 임계치를 충족시키는지의 결정에 기초하여, 상기 초기 경로 대신 새로운 초기 경로를 생성하거나 상기 초기 경로의 일부분을 조정할지를 결정하는 동작을 포함하는, 시스템.
  12. 제11항에 있어서,
    상기 물리 구역 내의 이동가능 객체에 의해 주행되는 경로는 상기 제2 맵 내의 에지들의 제2 서브세트를 지정하고;
    상기 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 동작은,
    상기 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 상기 에지들의 제2 서브세트와 연관되는 이동가능 객체의 스윕된 볼륨 프로파일들을 비교하는 동작;
    상기 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 상기 에지들의 제2 서브세트와 연관되는 이동가능 객체의 스윕된 볼륨 프로파일들의 비교에 기초하여, 상기 에지들의 제1 서브세트 내의 하나 이상의 에지 및 상기 에지들의 제2 서브세트 내의 하나 이상의 에지가 상기 물리 구역 내의 중첩 영역에 대응하는 것을 결정하는 동작; 및
    상기 에지들의 제1 서브세트 내의 하나 이상의 에지 및 상기 에지들의 제2 서브세트 내의 하나 이상의 에지가 상기 물리 구역 내의 중첩 영역에 대응한다는 결정에 기초하여, 상기 에지들의 제1 서브세트에 포함되는 하나 이상의 에지가 잠재적 방해물과 연관되는 것을 결정하는 동작을 포함하는, 시스템.
  13. 제11항 또는 제12항에 있어서, 상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 상기 복수의 에지 중에서 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 구역을 지정하는, 시스템.
  14. 제13항에 있어서, 상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 상기 복수의 에지 중에서 상기 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 볼륨을 표현하는 복셀들의 한 세트를 지정하는, 시스템.
  15. 제11항 또는 제12항에 있어서, 상기 이동가능 객체는 상기 물리 구역 내에서 주행하는 제2 로봇을 포함하는, 시스템.
  16. 제11항 또는 제12항에 있어서, 상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 동작은,
    상기 초기 경로에 대응하는 복수의 대안 경로를 식별하는 동작 -
    상기 복수의 대안 경로 내의 각각의 대안 경로는 (i) 상기 초기 경로의 시작 지점을 표현하는 제1 에지 및 (ii) 상기 초기 경로의 종료 지점을 표현하는 제2 에지를 포함하고,
    각각의 대안 경로는 상기 제1 에지와 상기 제2 에지 사이의 중간 에지들의 상이한 세트를 포함함 - ; 및
    상기 복수의 대안 경로 중에서 특정 대안 경로를 상기 조정된 경로로서 선택하는 동작을 포함하는, 시스템.
  17. 제11항 또는 제12항에 있어서, 상기 제1 맵은 제1 확률 로드맵이고, 상기 제2 맵은 제2 확률 로드맵인, 시스템.
  18. 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 동작들을 수행하게 하는 컴퓨터 프로그램 명령어들로 인코딩되는 하나 이상의 컴퓨터 판독가능 저장 디바이스로서, 상기 동작들은,
    상기 하나 이상의 컴퓨터에 의해, 물리 구역 내의 로봇에 의해 주행될 가능한 경로들을 표현하는 제1 맵을 발생시키는 동작 - 상기 제1 맵은 (i) 상기 제1 맵 내의 노드들을 각각 연결하는 제1 복수의 에지, 및 (ii) 상기 제1 복수의 에지에 포함되는 각각의 에지에 대한 로봇의 스윕된 볼륨 프로파일을 포함함 - ;
    상기 하나 이상의 컴퓨터에 의해, 상기 제1 맵 내의 로봇에 대한 초기 경로를 결정하는 동작 - 상기 초기 경로는 상기 제1 복수의 에지 중에서 에지들의 서브세트를 지정함 - ;
    상기 하나 이상의 컴퓨터에 의해, 상기 물리 구역 내의 이동가능 객체에 의해 주행될 경로를 표현하는 제2 맵을 표시하는 데이터를 획득하는 동작 - 상기 제2 맵은 (i) 상기 제2 맵 내의 노드들을 각각 연결하는 제2 복수의 에지, 및 (ii) 상기 제2 복수의 에지에 포함되는 각각의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일을 포함함 - ;
    상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들 및 상기 제2 복수의 에지에 대한 이동가능 객체의 스윕된 볼륨 프로파일들에 기초하여, 상기 하나 이상의 컴퓨터에 의해, 상기 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 동작;
    상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 미리 결정된 임계치를 충족시키는지를 결정하는 동작; 및
    상기 잠재적 방해물의 검출에 기초하여, 상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 동작 - 상기 조정된 경로는 상기 복수의 에지 중에서 에지들의 상이한 서브세트를 지정함 -
    을 포함하고,
    상기 제1 맵 내의 로봇에 대한 조정된 경로를 결정하는 동작은, 상기 검출된 방해물과 연관되는 에지들의 서브세트에 포함되는 에지들의 수가 상기 미리 결정된 임계치를 충족시키는지의 결정에 기초하여, 상기 초기 경로 대신 새로운 초기 경로를 생성하거나 상기 초기 경로의 일부분을 조정할지를 결정하는 동작을 포함하는, 하나 이상의 컴퓨터 판독가능 저장 디바이스.
  19. 제18항에 있어서, 상기 물리 구역 내의 이동가능 객체에 의해 주행되는 경로는 상기 제2 맵 내의 에지들의 제2 서브세트를 지정하고;
    상기 에지들의 서브세트에 포함되는 하나 이상의 에지와 연관되는 잠재적 방해물을 검출하는 동작은,
    상기 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 상기 에지들의 제2 서브세트와 연관되는 이동가능 객체의 스윕된 볼륨 프로파일들을 비교하는 동작;
    상기 초기 경로에 의해 지정되는 에지들의 서브세트와 연관되는 로봇의 스윕된 볼륨 프로파일들 및 상기 에지들의 제2 서브세트와 연관되는 이동가능 객체의 스윕된 볼륨 프로파일들의 비교에 기초하여, 상기 에지들의 제1 서브세트 내의 하나 이상의 에지 및 상기 에지들의 제2 서브세트 내의 하나 이상의 에지가 상기 물리 구역 내의 중첩 영역에 대응하는 것을 결정하는 동작; 및
    상기 에지들의 제1 서브세트 내의 하나 이상의 에지 및 상기 에지들의 제2 서브세트 내의 하나 이상의 에지가 상기 물리 구역 내의 중첩 영역에 대응한다는 결정에 기초하여, 상기 에지들의 제1 서브세트에 포함되는 하나 이상의 에지가 잠재적 방해물과 연관되는 것을 결정하는 동작을 포함하는, 하나 이상의 컴퓨터 판독가능 저장 디바이스.
  20. 제18항 또는 제19항에 있어서, 상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 상기 복수의 에지 중에서 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 구역을 지정하는, 하나 이상의 컴퓨터 판독가능 저장 디바이스.
  21. 제20항에 있어서, 상기 제1 복수의 에지에 대한 로봇의 스윕된 볼륨 프로파일들에 포함되는 각각의 스윕된 볼륨 프로파일은 상기 복수의 에지 중에서 상기 특정 에지와 연관하여 물리 공간 내의 로봇에 의한 최대 횡단가능 볼륨을 표현하는 복셀들의 한 세트를 지정하는, 하나 이상의 컴퓨터 판독가능 저장 디바이스.
  22. 제18항 또는 제19항에 있어서, 상기 이동가능 객체는 상기 물리 구역 내에서 주행하는 제2 로봇을 포함하는, 하나 이상의 컴퓨터 판독가능 저장 디바이스.
  23. 제18항 또는 제19항에 있어서, 상기 제1 맵은 제1 확률 로드맵이고, 상기 제2 맵은 제2 확률 로드맵인, 하나 이상의 컴퓨터 판독가능 저장 디바이스.
KR1020217009716A 2018-12-21 2019-12-20 동적 확률 모션 계획 KR102531488B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/229,484 2018-12-21
US16/229,484 US11911908B2 (en) 2018-12-21 2018-12-21 Dynamic probabilistic motion planning
PCT/US2019/067728 WO2020132386A1 (en) 2018-12-21 2019-12-20 Dynamic probabilistic motion planning

Publications (2)

Publication Number Publication Date
KR20210053323A KR20210053323A (ko) 2021-05-11
KR102531488B1 true KR102531488B1 (ko) 2023-05-10

Family

ID=69374360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009716A KR102531488B1 (ko) 2018-12-21 2019-12-20 동적 확률 모션 계획

Country Status (8)

Country Link
US (1) US11911908B2 (ko)
EP (1) EP3843955B1 (ko)
JP (1) JP7219811B2 (ko)
KR (1) KR102531488B1 (ko)
CN (1) CN112823084B (ko)
BR (1) BR112021006276A2 (ko)
CA (1) CA3113669C (ko)
WO (1) WO2020132386A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406312B (zh) * 2016-10-14 2017-12-26 平安科技(深圳)有限公司 导览机器人及其移动区域标定方法
US11269336B2 (en) * 2018-09-21 2022-03-08 Tata Consultancy Services Limited Method and system for free space detection in a cluttered environment
JP6508691B1 (ja) 2018-10-15 2019-05-08 株式会社Mujin 制御装置、作業ロボット、プログラム、及び、制御方法
EP3725472A1 (de) * 2019-04-16 2020-10-21 Siemens Aktiengesellschaft Verfahren zum ermitteln einer trajektorie eines roboters
JP7441047B2 (ja) * 2020-01-10 2024-02-29 三菱重工業株式会社 経路生成装置、制御装置、検査システム、経路生成方法およびプログラム
EP3866074B1 (en) * 2020-02-14 2022-11-30 Robert Bosch GmbH Method and device for controlling a robot
US11724396B2 (en) * 2020-04-23 2023-08-15 Flexiv Ltd. Goal-oriented control of a robotic arm
WO2022140152A1 (en) * 2020-12-21 2022-06-30 Boston Dynamics, Inc. Automated return of teleoperated vehicles
US11720108B2 (en) * 2020-12-22 2023-08-08 Baidu Usa Llc Natural language based indoor autonomous navigation
CN116745074A (zh) * 2021-01-12 2023-09-12 川崎重工业株式会社 路径生成装置、路径生成方法以及路径生成程序
CN117203821A (zh) 2021-04-23 2023-12-08 株式会社Lg新能源 二次电池制造方法
CN218963042U (zh) 2021-04-23 2023-05-05 株式会社Lg新能源 电极涂布模具、电极涂布装置、电极及其组件、二次电池
US20220390950A1 (en) * 2021-06-04 2022-12-08 Boston Dynamics, Inc. Directed exploration for navigation in dynamic environments
CN113449058B (zh) * 2021-06-25 2023-06-02 安克创新科技股份有限公司 一种地图数据传输方法、清洁机器人及存储介质
US20230080768A1 (en) * 2021-09-10 2023-03-16 Honda Motor Co., Ltd. Object manipulation
US20230083586A1 (en) * 2021-09-16 2023-03-16 Volvo Autonomous Solutions AB Method and device for visualizing multiple vehicle trajectories
WO2023063149A1 (ja) * 2021-10-12 2023-04-20 ソニーグループ株式会社 情報処理装置、情報処理方法およびプログラム
JP2023063149A (ja) * 2021-10-22 2023-05-09 株式会社東芝 処理装置、移動ロボット、移動制御システム、処理方法及びプログラム
US20230294287A1 (en) * 2022-03-15 2023-09-21 Fanuc Corporation Swept volume deformation
US20230367463A1 (en) * 2022-05-11 2023-11-16 Supercell Oy Randomized movement control
JP2024034216A (ja) * 2022-08-31 2024-03-13 オムロン株式会社 ロボットの動作経路を生成する装置、方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280213A (ja) * 2003-03-13 2004-10-07 Japan Science & Technology Agency 分散型経路計画装置及び方法、分散型経路計画プログラム
US20160221186A1 (en) 2006-02-27 2016-08-04 Paul J. Perrone General purpose robotics operating system with unmanned and autonomous vehicle extensions
US20170028559A1 (en) 2015-07-27 2017-02-02 Dror Davidi Anti-collision management of overlapping robotic movements
WO2017214581A1 (en) * 2016-06-10 2017-12-14 Duke University Motion planning for autonomous vehicles and reconfigurable motion planning processors

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085694B2 (en) 2001-10-22 2006-08-01 Sandia Corporation Apparatus and method for interaction phenomena with world modules in data-flow-based simulation
US8712679B1 (en) * 2010-10-29 2014-04-29 Stc.Unm System and methods for obstacle mapping and navigation
US20140368504A1 (en) * 2013-06-12 2014-12-18 Microsoft Corporation Scalable volumetric 3d reconstruction
CN103278164B (zh) 2013-06-13 2015-11-18 北京大学深圳研究生院 一种复杂动态场景下机器人仿生路径规划方法及仿真平台
JP6598090B2 (ja) * 2015-01-26 2019-10-30 デューク・ユニバーシティ 記憶媒体、ロボット動作を計画する方法、ロボット動作を計画するハードウェア、及びロボット
JP6539125B2 (ja) * 2015-06-22 2019-07-03 株式会社日立製作所 移動ロボットシステム及び移動ロボットの制御方法
KR101748632B1 (ko) * 2015-10-29 2017-06-20 한국과학기술연구원 로봇의 구동 경로를 계획하기 위한 로봇 제어 시스템 및 로봇 구동 경로 계획방법
JP6576255B2 (ja) 2016-01-25 2019-09-18 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
US10725462B2 (en) * 2016-04-25 2020-07-28 Invia Robotics, Inc. Optimizing robotic movements based on an autonomous coordination of resources amongst robots
US10108193B2 (en) 2016-05-27 2018-10-23 Glen C Wernersbach Mover system
US11020860B2 (en) * 2016-06-15 2021-06-01 Irobot Corporation Systems and methods to control an autonomous mobile robot
US10919153B2 (en) 2017-03-06 2021-02-16 Canon Kabushiki Kaisha Teaching method for teaching operations to a plurality of robots and teaching system used therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280213A (ja) * 2003-03-13 2004-10-07 Japan Science & Technology Agency 分散型経路計画装置及び方法、分散型経路計画プログラム
US20160221186A1 (en) 2006-02-27 2016-08-04 Paul J. Perrone General purpose robotics operating system with unmanned and autonomous vehicle extensions
US20170028559A1 (en) 2015-07-27 2017-02-02 Dror Davidi Anti-collision management of overlapping robotic movements
WO2017214581A1 (en) * 2016-06-10 2017-12-14 Duke University Motion planning for autonomous vehicles and reconfigurable motion planning processors

Also Published As

Publication number Publication date
KR20210053323A (ko) 2021-05-11
BR112021006276A2 (pt) 2021-07-06
CA3113669C (en) 2023-09-26
EP3843955A1 (en) 2021-07-07
EP3843955B1 (en) 2023-05-31
CN112823084A (zh) 2021-05-18
CN112823084B (zh) 2024-08-13
JP7219811B2 (ja) 2023-02-08
JP2022511322A (ja) 2022-01-31
US11911908B2 (en) 2024-02-27
US20200198140A1 (en) 2020-06-25
CA3113669A1 (en) 2020-06-25
WO2020132386A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
KR102531488B1 (ko) 동적 확률 모션 계획
US11650591B1 (en) Trajectory planning for mobile robots
US20210109537A1 (en) Autonomous exploration framework for indoor mobile robotics using reduced approximated generalized voronoi graph
US11878427B2 (en) Robot navigation using 2D and 3D path planning
JP6606442B2 (ja) 移動体の経路計画生成装置
US20210041871A1 (en) Along-edge Walking Control Method for Autonomous Mobile Robot
Ström et al. Robust exploration and homing for autonomous robots
CN111328386A (zh) 通过自主移动机器人对未知环境的探察
CN108415420B (zh) 一种用于移动机器人搜索路径的方法及设备
US20070271011A1 (en) Indoor map building apparatus, method, and medium for mobile robot
US20240192702A1 (en) Navigation method of robot, chip and robot
JP2018120482A (ja) ロボットおよびその制御方法
CN115993817A (zh) 张量场驱动分层路径规划的自主探索方法、装置及介质
CN111897336B (zh) 一种机器人沿边行为结束的判断方法、芯片及机器人
WO2023103713A1 (zh) 充电座的搜索方法、系统、自移动机器人和存储介质
CN116449816A (zh) 一种搜寻充电座信号的运动控制方法、芯片及机器人
Mesbah et al. Individual localization and tracking in multi-robot settings with dynamic landmarks
Shukla Simultaneous Planning Localization and Mapping
JP2022168665A (ja) 位置推定システム及び位置推定方法
CN118565503A (zh) 路径优化方法、装置及可读存储介质
CN116069006A (zh) 地图优化方法、装置、电子设备和存储介质
CN117873079A (zh) 机器人业务执行方法、装置、机器人传感系统及机器人
CN112859842A (zh) 一种路径跟随导航方法及其系统

Legal Events

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