KR102385257B1 - 비용 결정면에서 최적의 상호 충돌 방지를 사용하는 동적 윈도우 접근법 - Google Patents

비용 결정면에서 최적의 상호 충돌 방지를 사용하는 동적 윈도우 접근법 Download PDF

Info

Publication number
KR102385257B1
KR102385257B1 KR1020207010892A KR20207010892A KR102385257B1 KR 102385257 B1 KR102385257 B1 KR 102385257B1 KR 1020207010892 A KR1020207010892 A KR 1020207010892A KR 20207010892 A KR20207010892 A KR 20207010892A KR 102385257 B1 KR102385257 B1 KR 102385257B1
Authority
KR
South Korea
Prior art keywords
robot
velocity
candidate
pose
preferred
Prior art date
Application number
KR1020207010892A
Other languages
English (en)
Other versions
KR20200089654A (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 KR20200089654A publication Critical patent/KR20200089654A/ko
Application granted granted Critical
Publication of KR102385257B1 publication Critical patent/KR102385257B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • 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/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • 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/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • 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/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • 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/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/0278Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
    • 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
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/164Centralised systems, e.g. external to vehicles
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/166Anti-collision systems for active traffic, e.g. moving vehicles, pedestrians, bikes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Electromagnetism (AREA)

Abstract

장애물을 피하면서 목표 경로를 따라 로봇을 내비게이션시키는 방법 및 시스템이 개시된다. 이 방법은 하나 이상의 로봇에 대한 목표 포즈를 수신하는 단계 및 수신된 장애물 맵의 이동 및 고정된 장애물을 피하면서 제 1 로봇에 대한 목표 경로를 결정하는 단계를 포함한다. 제 1 목적 함수는 생성된 후보 속도들의 세트로부터 선호 속도를 선택하기 위해 평가되며, 이 선택은 하나 이상의 가중 비용 함수에 기반하고 있다. 하나 이상의 로봇의 포즈 및 선호 속도에 기반하여 생성된 속도 장애물들의 세트는 다음 시간 사이클에서 로봇의 움직임을 결정하기 위해 제 2 목적 함수를 평가하는 데 사용된다. 속도 장애물들의 세트를 생성하는 것은 선호 속도를 비 홀로노믹에서 홀로노믹 속도로 변환하는 것을 포함한다.

Description

비용 결정면에서 최적의 상호 충돌 방지를 사용하는 동적 윈도우 접근법
본 출원은 2017년 9월 22일 출원된 "출입 금지 구역과의 다중 해상도 스캔 매칭(Multi-Resolution Scan Matching With Exclusion Zones)"이라는 명칭의 미국 출원 번호 제15/712,222호와 관련되는 2017년 9월 22일에 출원된 미국 출원 번호 제15/712,256호의 우선일의 이점을 주장하며, 이는 본원에 참고로 포함된다.
본원에 기술된 발명은 일반적으로 이동 및 정지 장애물이 존재하는 경우에 목표 경로를 따라 타겟 위치로 향하는 로봇의 내비게이션에 관한 것이다. 구체적으로, 본 발명은 목표 경로에 따른 진행을 최대화하면서 장애물과의 충돌을 피하는 로봇의 증분 이동의 궤도를 결정하는 개선된 방법이다.
많은 애플리케이션에서, 로봇은 인간을 대신하여 기능을 수행하거나 생산성 및 효율성을 높이기 위해 인간을 지원하는 데 사용된다. 이러한 하나의 애플리케이션은 전형적으로 가정 배달(home delivery)을 위해 인터넷을 통해 주문한 고객에게 배송할 제품으로 채워진 대형 창고에서 수행되는 주문 풀필먼트(order fulfillment)이다. 적시에, 정확하고 효율적인 방식으로 그러한 주문을 이행(fulfilling)하는 것은 줄잡아 말하더라도 논리적으로 어렵다.
온라인 인터넷 쇼핑 애플리케이션에서, 예를 들어, 가상 쇼핑 카트(virtual shopping cart)의 "체크 아웃" 버튼을 클릭하면 "주문"이 생성된다. 주문은 특정 주소로 배송될 품목 목록을 포함한다. "풀필먼트(fulfillment)"의 프로세스는 대형 창고에서 이러한 품목을 물리적으로 가져 오거나 "피킹(picking)"하고, 이를 포장(packing)하고, 그리고 이를 지정된 주소로 배송(shipping)하는 과정을 포함한다.
따라서, 주문 풀필먼트 프로세스의 중요한 목표는 가능한 한 짧은 시간 내에 많은 품목을 배송하는 것이다. 주문을 접수하고, 그 풀필먼트를 계획하고, 보관 선반이나 빈을 찾고, 제품을 피킹하고, 그리고 주문된 각각의 품목에 대한 프로세스를 반복한 다음 그 주문을 배송 스테이션에 전달하는 프로세스는 반복적이고 노동 집약적이다. 재고가 빠르게 회전되고 있는 수천 또는 수만 개의 품목이 비축되어 있는 창고에서, 로봇은 적시의 효율적인 주문 풀필먼트를 보장하는 데 중요한 역할을 하고 있다. 또한, 궁극적으로 가장 먼저 배송될 제품이 창고에 입고되고 창고 전체에 걸쳐 보관 빈(storage bins)에 순차적인 방식(orderly fashion)으로 보관되거나 "배치"되어야 하며, 따라서 그 제품들은 배송을 위해 쉽게 회수될 수 있다.
로봇을 사용하여 피킹(picking) 및 배치(placing) 기능을 수행하는 것은 로봇 단독에 의해 수행될 수 있거나 또는 인간 조작자의 지원과 함께 수행될 수 있다. 인간과의 상호 작용으로 수행되든 아니든 간에, 피킹 및 배치 또는 보관 기능을 위해서는 로봇이 현재 위치에서 타겟 제품 보관소 또는 "빈" 위치로 내비게이션할 것이 요구된다. 현재 위치에서 제품 보관소 또는 빈으로의 로봇의 목표 경로를 따르는 과정에서, 로봇은 일반적으로 벽, 선반, 지지 구조물, 인간 및 기타 로봇과 같은 정지해 있거나 이동중인 장애물과 조우하게 된다. 또한, 새로운 제품이 비축되고 고갈됨에 따라, 새로운 선반과 빈이 추가되고 제거되며, 그리고 다양한 물체들이 공유된 인간-로봇 공간(shared human-robot space)에 도입됨에 따라, 주문 풀필먼트 창고(order fulfillment warehouse)의 동적인 특성에는 창고 및 그의 내용물에 대한 정보를 지속적으로 업데이트하는 것이 요구되고 있다.
로봇의 목표 경로로 내비게이션하면서 장애물을 회피하는 것은 근처의 고정 및 이동 장애물에 대한 정보를 사용하여 일련의 증분 이동(a series of increment movements)을 계산하는 것을 포함하고 있다. 증분 이동은 로봇을 고정되거나 이동중인 장애물에게로 내몰아서는 안되며, 로봇이 주행하는 이동 궤도는 고정된 사이클 시간 내에 계산되어야 한다. 그러나, 알려진 로봇 내비게이션 방법은 고정 장애물에 내비게이션하는 것에 더 적합한 접근법과 이동중인 장애물, 즉 로봇에 내비게이션하는 것에 더 적합한 접근법 중에서 선택되고 있다. 이동 및 고정 장애물을 모두 고려하여 로봇 내비게이션을 위한 계산적으로 효율적인 방법이 필요하며, 이를 통해 로봇이 각 증분 이동 동안 할당된 사이클 시간 내에 타겟 위치를 향해 진행하는 능력을 향상시킨다.
본 발명의 이익 및 장점은 본 발명의 개요 및 후속되는 상세한 설명으로부터 쉽게 알 수 있을 것이다. 본 기술 분야의 기술자는 본 교시가 아래에 요약되거나 개시된 것 이외의 실시예와 함께 실시될 수 있음을 이해할 것이다.
제 1 양태에서, 장애물을 피하면서 목표 경로를 따라 로봇을 내비게이션시키는 방법이 제공된다. 상기 방법은 제 1 로봇에 대한 목표 포즈(goal pose)를 수신하는 단계, 상기 제 1 로봇에 대한 목표 경로(goal path)를 결정하는 단계, 장애물 맵(obstacle map)을 수신하는 단계, 상기 제 1 로봇의 포즈를 수신하는 단계, 하나 이상의 다른 로봇의 포즈를 수신하는 단계, 상기 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 단계, 제 1 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하는 단계, 상기 제 1 목적 함수에 기반하여 상기 제 1 로봇의 제 1 선호 속도를 선택하는 단계, 상기 하나 이상의 다른 로봇의 포즈 및 상기 제 1 로봇의 제 1 선호 속도에 기반하여 속도 장애물들의 세트를 생성하는 단계; 제 2 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하는 단계, 상기 제 2 목적 함수에 기반하여 상기 제 1 로봇에 대한 제 2 선호 속도를 선택하는 단계, 및 상기 제 2 선호 속도에 기반하여 상기 제 1 로봇을 이동시키는 단계를 포함한다.
일 실시예에서, 상기 목표 경로는 상기 제 1 로봇의 현재 포즈로부터 상기 제 1 로봇의 목표 포즈까지의 경로일 수 있다. 로봇의 목표 포즈는 주문 풀필먼트 창고 애플리케이션에서 기준 관련 제품 빈의 포즈일 수 있다.
일부 실시예에서, 제 1 로봇의 포즈는 다 대 다 다중 해상도 스캔 매칭(many-to-many multiresolution scan matching)(M3RSM), 적응형 몬테 카를로 로컬화(adaptive monte carlo localization)(AMCL), 지오 포지셔닝 위성(geo-positioning satellite)(GPS), 기준 정보(fiducial information), 및 로봇 센서 기반의 주행 거리계(odometry-based on robot sensors) 중 하나 이상에 의해 결정될 수 있다.
바람직한 실시예에서, 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 단계는 하나 이상의 시간 스텝(time steps)에 걸쳐 모션, 장애물 및 관성 제약을 적용함으로써 후보 속도를 추정하여 허용 가능한 궤도를 갖는 후보 속도들만을 생성하는 단계를 포함한다.
다른 실시예에서, 제 1 목적 함수는 G(v, ω)=α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω) 형태의 하나 이상의 비용 함수(cost function)로 구성되며, 여기서 G(v, ω)는 목적 함수이고, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리("간격")이며; 그리고 velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도(forward velocity)이다. 제 1 목적 함수는 목표 경로로부터 후보 속도가 얼마나 발산할 것인지를 점수화하는 경로 비용 함수; 장애물에 대한 근접성을 점수화하는 장애물 비용 함수; 또는 이전 선호 속도로부터 회전 속도의 변화에 더 높은 비용을 할당하는 진동 비용 함수 중 하나 이상을 더 포함할 수 있다. 제 1 목적 함수의 비용 함수는 가장 높은 비용 점수를 후보 속도에 할당함으로써 그 후보 속도를 무효화할 수 있다.
또 다른 실시예에서, 속도 장애물들의 세트를 생성하는 단계는 선호 속도를 비 홀로노믹(non-holonomic)에서 홀로노믹(holonomic) 속도로 변환하는 단계를 포함한다. 선호 속도를 홀로노믹 속도로 변환하는 단계는 선호 궤도와 직선 궤도 사이의 최대 거리만큼 하나 이상의 다른 로봇의 반경을 증가시키는 단계를 포함할 수 있다.
바람직한 실시예에서, 제 2 목적 함수는 ORCA/DWA=C DWA + α ORCA * C ORCA 형태의 하나 이상의 비용 함수로 구성되며, 여기서, C DWA C DWA = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω)로 정의되며, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리이며; velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도이며, 그리고 C ORCA C ORCA = αv(V t - V pref ) + penalty + αd * d(P, v t )로 정의되며, 여기서 αd 및 αv는 가중치이며; v t 는 평가중인 후보 속도이며; v pref 는 선호 속도이며; P는 VO들의 결합(union)에 의해 형성된 다각형이고; d(P, v t )는 후보 속도가 VO들을 얼마나 위반하는지의 척도이고; 그리고 penalty는 후보 속도 v t 가 VO를 위반할 때 부과되는 페널티 비용이다. 또한, 비용 함수 d(P, vt)는 다각형 P의 둘레로부터 후보 속도 vt에 의해 도달된 궤도 t에 의해 정의된 포인트까지의 최소 거리의 함수이다.
본 발명의 제 2 양태에서, 장애물을 피하면서 목표 경로를 따라 로봇을 내비게이션하기 위한 로봇 시스템이 제공되며, 이 로봇 시스템은 트랜시버, 데이터 저장 디바이스, 및 데이터 프로세서를 포함하고, 상기 데이터 저장 디바이스는 상기 데이터 프로세서에 의한 실행을 위한 명령어를 저장하고 있다. 상기 저장된 명령어는 상기 로봇 시스템에게, 제 1 로봇에 대한 목표 포즈를 수신하고, 상기 제 1 로봇에 대한 목표 경로를 결정하고, 장애물 맵을 수신하고, 상기 제 1 로봇의 포즈를 수신하고, 하나 이상의 다른 로봇의 포즈를 수신하고, 상기 제 1 로봇에 대한 후보 속도들의 세트를 생성하고, 제 1 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하고, 상기 제 1 목적 함수에 기반하여 상기 제 1 로봇의 제 1 선호 속도를 선택하고, 상기 하나 이상의 다른 로봇의 포즈 및 상기 제 1 로봇의 제 1 선호 속도에 기반하여 속도 장애물들의 세트를 생성하고, 제 2 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하고, 상기 제 2 목적 함수에 기반하여 상기 제 1 로봇에 대한 제 2 선호 속도를 선택하고, 그리고 상기 제 2 선호 속도에 기반하여 상기 제 1 로봇을 이동시킬 것을 명령한다.
제 2 양태의 일 실시예에서, 상기 목표 경로는 상기 제 1 로봇의 현재 포즈로부터 상기 제 1 로봇의 목표 포즈까지의 경로일 수 있다. 로봇의 목표 포즈는 주문 풀필먼트 창고 애플리케이션에서 기준 관련 제품 빈의 포즈일 수 있다.
바람직한 실시예에서, 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 것은 하나 이상의 시간 스텝(time steps)에 걸쳐 모션, 장애물 및 관성 제약을 적용함으로써 후보 속도를 추정하여 허용 가능한 궤도를 갖는 후보 속도들만을 생성하는 것을 포함한다.
다른 실시예에서, 제 1 목적 함수는 G(v, ω)=α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω) 형태의 하나 이상의 비용 함수(cost function)로 구성되며, 여기서 G(v, ω)는 목적 함수이고, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리("간격")이며; 그리고 velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도(forward velocity)이다. 제 1 목적 함수는 목표 경로로부터 후보 속도가 얼마나 발산할 것인지를 점수화하는 경로 비용 함수; 장애물에 대한 근접성을 점수화하는 장애물 비용 함수; 또는 이전 선호 속도로부터 회전 속도의 변화에 더 높은 비용을 할당하는 진동 비용 함수 중 하나 이상을 더 포함할 수 있다. 제 1 목적 함수의 비용 함수는 가장 높은 비용 점수를 후보 속도에 할당함으로써 그 후보 속도를 무효화할 수 있다.
또 다른 실시예에서, 속도 장애물들의 세트를 생성하는 것은 선호 속도를 비 홀로노믹(non-holonomic)에서 홀로노믹(holonomic) 속도로 변환하는 것을 포함한다. 선호 속도를 홀로노믹 속도로 변환하는 것은 선호 궤도와 직선 궤도 사이의 최대 거리만큼 하나 이상의 다른 로봇의 반경을 증가시키는 것을 포함할 수 있다.
바람직한 실시예에서, 제 2 목적 함수는 ORCA/DWA=C DWA + α ORCA * C ORCA 형태의 하나 이상의 비용 함수로 구성되며, 여기서, C DWA C DWA = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω)로 정의되며, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리이며; velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도이며, 그리고 C ORCA C ORCA = αv (V t - V pref ) + penalty + αd * d(P, v t )로 정의되며, 여기서 αd 및 αv는 가중치이며; v t 는 평가중인 후보 속도이며; v pref 는 선호 속도이며; P는 VO들의 결합에 의해 형성된 다각형이고; d(P, v t )는 후보 속도가 VO들을 얼마나 위반하는지의 척도이고; 그리고 penalty는 후보 속도 v t 가 VO를 위반할 때 부과되는 페널티 비용이다. 또한, 비용 함수 d(P, vt)는 다각형 P의 둘레로부터 후보 속도 vt에 의해 도달된 궤도 t에 의해 정의된 포인트까지의 최소 거리의 함수이다.
본 발명의 제 3 양태에서, 감시 시스템(supervisory system)의 감시하에 제 1 양태의 방법을 수행하기 위한 복수의 로봇을 포함하는 로봇 시스템이 제공된다.
본 발명의 실시예는 이제 첨부된 도면을 참조하여 예로서만 기술될 것이다.
도 1은 주문 풀필먼트(order-fulfillment) 창고의 평면도이다.
도 2a는 도 1에 도시된 창고에서 사용되는 로봇들 중 하나의 베이스(base)의 정면도이다.
도 2b는 도 1에 도시된 창고에서 사용되는 로봇들 중 하나의 베이스의 사시도이다.
도 3은 뼈대가 장착되고 도 1에 도시된 선반(shelf) 앞에 파킹된 도 2a 및 도 2b의 로봇의 사시도이다.
도 4는 로봇 상의 레이저 레이더를 사용하여 생성된 도 1의 창고의 부분 맵이다.
도 5는 창고 전체에 분산된 기준 마커(fiducial markers)를 찾고 기준 마커 포즈(fiducial marker poses)를 저장하는 프로세스를 도시한 흐름도이다.
도 6은 기준 식별자 대 포즈 매핑(fiducial identification to pose mapping)의 테이블이다.
도 7은 빈 위치 대 기준 식별자 매핑(bin location to fiducial identification mapping)의 테이블이다.
도 8은 제품 SKU 대 포즈 매핑의 프로세스를 도시한 흐름도이다.
도 9는 본 발명의 방법 및 시스템과 함께 사용하기 위한 로봇 시스템의 일 실시예를 도시한 도면이다.
도 10은 공간 맵에 의해 표현된 환경을 통해 현재 위치로부터 타겟 위치로의 일반화된 로봇의 내비게이션을 도시한 도면이다.
도 11은 본 발명의 일 양태에 따른 도 10의 환경의 SLAM 맵과 관련한 로봇의 내비게이션을 도시한 도면이다.
도 12는 장애물 및 다른 로봇들에 근접하여 내비게이션하는 로봇의 내비게이션 및 증분 이동을 도시한 도면이다.
도 13은 본 발명에 따른 목표 경로를 따라 로봇을 내비게이션하기 위한 실시예를 도시한 흐름도이다.
도 14는 본 발명에 따른 ORCA/DWA를 수행하는 실시예의 흐름도이다.
도 15는 ORCA 속도 물체 분석에서 DWA 비 홀로노믹 선호 속도를 사용하기 위한 본 발명의 일 양태를 도시한 도면이다.
도 16a 내지 도 16c는 ORCA 비용 함수에서 사용하기 위한 ORCA 속도 공간에 대한 후보 속도에 적용하기 위한 거리 및 페널티 비용 함수를 결정하는 양태를 도시한 도면이다.
본원에 설명된 발명은 장애물 및 자유 공간을 포함하는 환경 내에서 "목표 경로"를 따라 현재 위치로부터 타겟 위치로의 로봇의 개선된 내비게이션을 위해 자율 또는 반 자율 로봇과 함께 사용하기 위한 방법 및 시스템에 관한 것이다. 구체적으로, 본 발명의 방법 및 시스템은 종래 기술에 비해, 제약 기반 장애물 회피 방법들의 조합을 사용하여 로봇의 추진 제어에 적용할 다음 순간 속도(next instantaneous velocity)를 정확하게 결정하기 위한 계산 효율적인 개선점을 제공한다.
본 개시 내용 및 그 다양한 특징들 및 유리한 세부 사항들은 첨부 도면에서 설명되고/되거나 예시되고 아래의 설명에서 상세히 설명되는 비 제한적인 실시예 및 예를 참조하여 보다 완전하게 설명된다. 주목해야 하는 것은 도면에 예시된 특징들은 반드시 축척대로 도시된 것은 아니며, 본 명세서에서 명시적으로 언급되지 않더라도, 본 기술 분야의 기술자가 인식할 수 있는 바와 같이, 일 실시예의 특징들은 다른 실시예들과 함께 이용될 수 있다는 것이다. 더욱이, 주목되는 것은 유사한 참조 번호는 도면들의 여러 도면에 걸쳐 유사한 부분을 나타낸다는 것이다.
널리 알려진 컴포넌트 및 처리 기술에 대한 설명은 본 개시의 실시예를 불필요하게 모호하게 하지 않도록 생략될 수 있다. 본 명세서에서 사용된 예는 단지 본 개시 내용이 실시될 수 있는 방식의 이해를 용이하게 하고, 추가로 본 기술 분야의 기술자가 본 개시 내용의 실시예를 실시할 수 있게 하기 위한 것이다. 따라서, 본 명세서의 예 및 실시예는 본 개시 내용의 범위를 제한하는 것으로 해석되어서는 안된다.
본 기술 분야의 기술자는 본 교시가 개시된 것 이외의 실시예와 함께 실시될 수 있음을 이해할 것이다. 여기에 제공된 설명은 고객에게 배송하기 위한 주문을 이행하기 위해 창고의 빈 위치(bin locations)에서 품목을 피킹(picking)하는 데 중점을 두고 있지만, 이 시스템은 창고로 입고된 품목을 나중의 회수 및 고객으로의 배송을 위해, 창고 전체의 빈 위치에 보관 또는 배치하는 데에 동일하게 적용될 수 있다. 본 발명은 또한 제품의 통합, 계수, 검증, 검사 및 정화(clean-up)와 같은 창고 시스템과 관련된 재고 관리 작업에도 적용 가능하다.
본 발명의 방법 및 시스템은 또한 다른 타입의 장애물이 있는 다른 타입의 환경에서 다른 타입의 애플리케이션에도 적용될 수 있다. 고정식 또는 동적인 임의의 물리적 물체 또는 구조물은 본 발명의 출원에서 "장애물"로 간주될 수 있다. 장애물은 환경 내에서 동작하는 인간 및 다른 로봇을 더 포함할 수 있고, 인간 및 다른 로봇의 위치는 협력적인 작업의 수행에서 현재 위치 또는 타겟 위치일 수 있다. 타겟 위치는 작업 또는 일련의 작업들에서 수행하거나 인간을 지원할 하나 이상의 로봇들을 포지셔닝하기 위한 환경 내 하나 이상의 위치들을 포함할 수 있다.
이들 및 다른 이익 및 장점은 아래에 설명된 예 및 예시로부터 쉽게 알 수 있을 것이다.
도 1을 참조하면, 전형적인 주문 풀필먼트 창고(order fulfillment warehouse)(10)는 주문(16)에 포함될 수 있는 다양한 품목으로 채워진 선반(12)을 포함한다. 동작시, 창고 관리 서버(warehouse management server)(15)로부터의 주문(16)은 주문 서버(order-server)(14)에 도달한다. 주문 서버(14)는 주문(16)을 창고(10)를 로밍하는 복수의 로봇으로부터 선택된 로봇(18)에 통신한다. 또한, 충전 구역(19)이 도시되며, 이 구역에는 본 발명의 일 양태에 따른 하나 이상의 전기 충전 스테이션이 위치할 수 있다.
바람직한 실시예에서, 도 2a 및 도 2b에 도시된 로봇(18)은 레이저 레이더(22)를 갖는 자율 휠 베이스(autonomous wheeled base)(20)를 포함한다. 베이스(20)는 또한 로봇(18)이 주문 서버(14) 및 한 쌍의 디지털 광학 카메라(24a 및 24b)로부터 명령어를 수신할 수 있게 하는 트랜시버(미도시)를 특징으로 하고 있다. 로봇 베이스는 또한 자율 휠 베이스(20)에 전력을 공급하는 배터리를 재충전하기 위한 전기 충전 포트를 포함한다. 베이스(20)는 또한 로봇의 환경을 나타내는 정보를 캡처하기 위해 레이저 레이더(22) 및 카메라(24a 및 24b)로부터 데이터를 수신하는 프로세서(미도시)를 특징으로 하고 있다. 도 3에 도시된 바와 같이, 창고(10) 내에서의 내비게이션과 관련된 다양한 작업을 수행하고, 선반(12) 상에 배치된 기준 마커(fiducial marker)(30)로 내비게이션하도록 프로세서와 함께 동작하는 메모리(미도시)가 존재한다. 기준 마커(30)(예를 들어, 2 차원 바코드)는 주문된 품목의 빈(bin)/위치(location)에 대응한다. 본 발명의 내비게이션 접근법은 도 4 내지 도 8과 관련하여 아래에서 상세하게 설명된다. 기준 마커는 또한 본 발명의 일 양태에 따른 전기 충전 스테이션을 식별하는 데 사용되며, 이러한 전기 충전 스테이션 기준 마커로의 내비게이션은 주문된 품목의 빈/위치로의 내비게이션과 동일하다. 로봇이 전기 충전 스테이션으로 내비게이션하면, 로봇을 전기 충전 스테이션에 도킹시키는 데 보다 정확한 내비게이션 접근법이 사용되며, 이러한 내비게이션 접근법은 아래에 설명되고 있다.
다시 도 2b를 참조하면, 베이스(20)는 품목을 운반하기 위한 토트(tote) 또는 빈(bin)이 보관될 수 있는 상부 표면(32)을 포함한다. 또한, 복수의 교환 가능한 뼈대(40) 중 어느 하나와 맞물리는 커플링(34)이 도시되어 있으며, 이러한 뼈대 중 하나가 도 3에 도시되어 있다. 도 3의 특정 뼈대(40)는 품목을 수용하는 토트(44)를 운반하기 위한 토트 홀더(tote-holder)(42)(이 경우, 선반), 및 태블릿(48)을 지지하기 위한 태블릿 홀더(tablet holder)(46)(또는 랩탑/다른 사용자 입력 디바이스)를 특징으로 하고 있다. 일부 실시예에서, 뼈대(40)는 품목을 운반하기 위한 하나 이상의 토트를 지지한다. 다른 실시예에서, 베이스(20)는 수용된 품목을 운반하기 위한 하나 이상의 토트를 지지한다. 본원에 사용된 용어 "토트"는 화물(cargo) 홀더, 빈(bins), 케이지(cages), 선반(shelves), 품목이 매달릴 수 있는 막대(rod), 캐디(caddies), 상자(crates), 랙(racks), 스탠드(stands), 가대(trestle), 컨테이너(containers), 박스(boxes), 캐니스터(canisters), 베슬(vessels), 및 리포지토리(repositories)를 제한 없이 포함한다.
로봇(18)이 현재의 로봇 기술을 사용하여 창고(10) 주위를 이동하는 데에는 우수하지만, 물체에 대한 로봇 조작과 관련된 기술적 어려움으로 인해 선반으로부터 품목을 피킹하고 그 품목을 토트(44)에 배치하는 것을 빠르고 효율적으로 수행하는 데에는 그다지 능숙하지가 않다. 품목을 피킹하는 보다 효율적인 방식은, 선반(12)으로부터 주문된 품목을 물리적으로 제거하고, 그것을 로봇(18) 상에, 예를 들어, 토트(44)에 배치하는 작업을 수행하기 위해, 통상 인간인 로컬 조작자(50)를 이용하는 것이다. 로봇(18)은, 로컬 조작자(50)가 판독할 수 있는 태블릿(48)(또는 랩탑/다른 사용자 입력 디바이스)을 통해, 또는 로컬 조작자(50)가 사용하는 핸드헬드 디바이스에 주문을 전송함으로써, 로컬 조작자(50)에게 주문을 전달한다.
주문 서버(14)로부터 주문(16)을 수신하면, 로봇(18)은, 예를 들어, 도 3에 도시된 바와 같이, 제 1 창고 위치로 진행한다. 그것은 메모리에 저장되고 프로세서에 의해 수행되는 내비게이션 소프트웨어에 기반하여 수행된다. 내비게이션 소프트웨어는 레이저 레이더(22)에 의해 수집된 바와 같은 환경에 관한 데이터, 특정 품목이 발견될 수 있는 창고(10)의 위치에 대응하는 기준 마커(30)의 기준 식별자("ID")를 식별하는 메모리 내의 내부 테이블, 및 내비게이션하는 카메라(24a 및 24b)에 의존하고 있다.
정확한 위치에 도달하면, 로봇(18)은 물품이 보관되어 있는 선반(12) 앞에 스스로 파킹하고, 로컬 조작자(50)가 선반(12)으로부터 물품을 회수하여 토트(44)에 배치하기를 기다린다. 로봇(18)이 회수할 다른 품목을 갖는 경우, 로봇은 그 위치로 진행한다. 로봇(18)에 의해 회수된 품목(들)은 그 후 포장 스테이션(100)(도 1)으로 배달되고, 그곳에서 품목들이 포장되어 배송된다.
본 기술 분야의 기술자는 각각의 로봇이 하나 이상의 주문을 이행할 수 있고 각각의 주문은 하나 이상의 품목으로 구성될 수 있음을 이해할 것이다. 전형적으로, 효율성을 증가시키기 위해 어떤 형태의 경로 최적화 소프트웨어가 포함될 수 있을 것이지만, 이것은 본 발명의 범위를 벗어나므로 여기서 설명되지는 않는다.
본 발명의 설명을 단순화하기 위해, 단일 로봇(18) 및 조작자(50)가 설명된다. 그러나, 도 1로부터 명백한 바와 같이, 전형적인 풀필먼트 동작은 연속적인 주문 흐름을 채우기 위해 창고에서 서로 작업하는 많은 로봇 및 조작자를 포함한다.
본 발명의 내비게이션 접근법뿐만 아니라, 품목이 위치한 창고에서 기준 마커와 관련된 기준 ID/포즈에 대한 회수될 품목의 SKU의 시맨틱 매핑이 도 4 내지 도 8과 관련하여 아래에서 상세하게 설명된다. 전술한 바와 같이, 로봇이 배터리를 재충전하기 위해 전기 충전 스테이션으로 내비게이션하는 것을 가능하게 하는 데 동일한 내비게이션 접근법이 사용될 수 있다.
하나 이상의 로봇(18)을 사용하여, 창고 전체에 분산된 다양한 기준 마커의 위치뿐만 아니라, 정적 및 동적인 물체의 위치를 결정하기 위해, 창고(10)의 맵이 생성되고 동적으로 업데이트되어야 한다. 이를 수행하기 위해, 로봇(18) 중 하나는 레이저 레이더(22) 및 SLAM(simultaneous localization and mapping)을 이용하여, 창고를 내비게이션하고 맵(10a)(도 4)을 구축/업데이트하며, 상기 SLAM은 알려지지 않은 환경의 맵을 구성 또는 업데이트하는 계산적인 방법이다. SLAM 근사화 솔루션 방법은 포즈 그래프(pose graph), 입자 필터(particle filter) 및 확장된 칼만 필터(extended Kalman filter)를 포함한다. SLAM GMapping 방식이 선호되는 방식이지만, 임의의 적합한 SLAM 방식이 사용될 수 있다. SLAM에 대한 설명은 Frese, U., Wagner, R., Roefer, T.에 의한 "사용자 관점에서의 SLAM 개요(A SLAM overview from a user's perspective)"(Kuenstliche Intelligenz 24(3), 191-198 (2010))에서 찾을 수 있으며, 이는 본원에 참고로 포함된다.
주문 풀필먼트(Order Fulfillment)
로봇(18)은, 로봇(18)이 공간 전체를 이동하면서, 자신의 레이저 레이더(22)가 환경을 스캔함에 따라 수신하게 되는 반사에 기반하여, 개방 공간(112), 벽(114), 물체(116), 및 공간 내의 선반(12a)과 같은 다른 정적 장애물을 식별하므로, 레이저 레이더(22)를 이용하여 창고(10)의 맵(10a)을 생성/업데이트한다.
맵(10a)을 구성하는 동안 또는 그 이후에, 하나 이상의 로봇(18)은 환경을 스캔하는 카메라(24a 및 24b)를 사용하여 창고(10)를 내비게이션하여, 창고 전체에 걸쳐 분산되어 있으며 품목들이 보관되어 있는 빈(예컨대, 32 및 34)(도 3)에 인접한 선반 상의 기준 마커(2 차원 바코드)를 찾는다. 로봇(18)은 알려진 참조 포인트 또는 참조를 위한 원점, 예컨대, 원점(110)을 사용한다. 기준 마커, 예컨대, 기준 마커(30)(도 3 및 도 4)가 카메라(24a 및 24b)를 사용하는 로봇(18)에 의해 탐색되면, 원점(110)에 대한 창고 내의 위치가 결정된다. 도 2a에 도시된 바와 같이, 로봇 베이스의 양측에 하나씩인 두 개의 카메라를 사용함으로써, 로봇(18)은 로봇의 양 측면으로부터 확장되는 비교적 넓은 시야를 가질 수 있다. 이를 통해, 로봇은 선반의 통로를 따라 위아래로 이동할 때 통로의 양쪽에 있는 기준 마커를 볼 수 있다.
휠 인코더(wheel encoders) 및 헤딩 센서(heading sensors)를 사용함으로써, 벡터(120), 및 창고(10) 내에서의 로봇의 포지션(position)이 결정될 수 있다. 기준 마커/2 차원 바코드의 캡처된 이미지 및 그것의 알려진 크기를 사용하여, 로봇(18)은 로봇으로부터 기준 마커/2 차원 바코드에 대한 방향 및 거리, 즉 벡터(130)를 결정할 수 있다. 벡터들(120 및 130)이 알려지면, 원점(110)과 기준 마커(30) 간의 벡터(140)가 결정될 수 있다. 벡터(140) 및 로봇(18)에 대한 기준 마커/2 차원 바코드의 결정된 방향으로부터, 원점(110)에 대한 x, y, z 좌표에 의해 그리고 기준 마커(30)에 대한 4원수(x, y, z, ω)에 의해 정의된 포즈(위치 및 방향)가 결정될 수 있다. 4원수를 사용하여 방향을 나타내고 반영하는 설명은 Berthold K. P. Horn에 의한 "단위 4원수를 사용한 절대 방향의 클로즈된 형태의 솔루션(Closed-form solution of absolute orientation using unit quaternions)"(미국 광학 학회지, 4(4), 1987년 4 월, 629-642 페이지)에서 찾을 수 있으며, 이는 본원에 참고로 포함된다. 본 기술 분야의 기술자는, 기준 마커 위치 및 방향을 결정하기 위한 다른 좌표 시스템 및 기술이 사용될 수 있으며, 포즈는 임의의 원점으로부터 절대 또는 상대적인 위치 및/또는 방향을 결정할 수 있음을 인식할 것이다.
기준 마커 위치 프로세스를 설명하는 흐름도(200)(도 5)가 설명된다. 이것은 초기 매핑 모드에서 그리고 로봇(18)이 피킹, 배치, 및/또는 다른 작업을 수행하는 동안 창고에서 새로운 기준 마커를 만나게 되면 수행된다. 단계(202)에서, 로봇(18)은 카메라(24a 및 24b)를 사용하여 이미지를 캡처하고, 단계(204)에서 캡처된 이미지 내의 기준 마커를 검색한다. 기준 마커가 이미지에서 발견되면(단계 204), 단계(206)에서, 기준 마커가 로봇(18)의 메모리에 위치한 기준 테이블(300)(도 6)에 이미 저장되어 있는지가 결정된다. 기준 정보가 이미 메모리에 저장되어 있으면, 흐름도는 다른 이미지를 캡처하기 위해 단계(202)로 리턴한다. 기준 정보가 메모리에 있지 않으면, 전술한 프로세스에 따라 포즈가 결정되고, 단계(208)에서 기준 대 포즈 룩업 테이블(fiducial-to-pose lookup table)(300)에 추가된다.
각 로봇의 메모리에 저장될 수 있는 룩업 테이블(300)에는 각 기준 마커마다, 기준 식별자(1, 2, 3, 등), 및 각각의 기준 식별자와 연관된 기준 마커/바코드에 대한 포즈가 포함된다. 포즈는 방향과 함께 원점(110)에 대한 창고 내의 x, y, z 좌표, 즉, 4원수(x, y, z, ω)로 구성된다.
각각의 로봇의 메모리에 또한 저장될 수 있는 다른 룩업 테이블(400)(도 7)에는 특정 기준 ID(404)의, 예를 들어, 번호 "11"과 상관 관계에 있는 창고(10) 내의 빈 위치(bin locations)(예를 들어, 402a-f)의 목록이 존재한다. 이 예에서, 빈 위치는 7 개의 영숫자의 문자로 구성된다. 처음 6 개의 문자(예컨대, L01001)는 창고 내 선반 위치와 관련되며 마지막 문자(예컨대, A-F)는 선반 위치에서의 특정 빈을 식별한다. 이 예에서는 기준 ID "11"과 연관된 6 개의 상이한 빈 위치가 존재한다. 각 기준 ID/마커와 연관된 하나 이상의 빈이 있을 수 있다. 충전 구역(19)(도 1)에 위치한 전기 충전 스테이션은 또한 테이블(400)에 저장될 수 있고 기준 ID와 상관될 수 있다. 기준 ID들로부터, 전기 충전 스테이션의 포즈는 테이블(300)(도 6)에서 발견될 수 있다.
영숫자의 빈 위치는 인간(예를 들어, 조작자(50)(도 3)에게는 품목이 보관되는 창고(10)의 물리적 위치에 대응하는 것으로 이해될 수 있다. 그러나, 이러한 빈 위치는 로봇(8)에는 의미가 없다. 위치를 기준 ID에 매핑함으로써, 로봇(18)은 테이블(300)(도 6) 내의 정보를 사용하여 기준 ID의 포즈를 결정할 수 있고, 그 후 본원에 설명된 바와 같이 포즈에 내비게이션할 수 있다.
본 발명에 따른 주문 풀필먼트 프로세스는 흐름도(500)(도 8)에 도시되어 있다. 단계(502)에서, 창고 관리 시스템(WMS)(15)(도 1)은 회수될 하나 이상의 품목으로 구성될 수 있는 주문을 획득한다. 단계(504)에서, 품목의 SKU 번호(들)는 창고 관리 시스템(15)에 의해 결정되며, 그리고 단계(506)에서 SKU 번호(들)로부터 빈 위치(들)가 결정된다. 그 후 주문에 대한 빈 위치의 목록이 로봇(18)으로 전송된다. 단계(508)에서, 로봇(18)은 빈 위치를 기준 ID에 상관시키고, 단계(510)에서 기준 ID로부터 각각의 기준 ID의 포즈가 획득된다. 단계(512)에서, 로봇(18)은 도 3에 도시된 바와 같은 포즈에 내비게이션하고, 여기서, 조작자는 적합한 빈으로부터 회수될 품목을 피킹하여 로봇 상에 배치할 수 있다.
창고 관리 시스템(15)에 의해 획득되는 품목 특정 정보, 예컨대, SKU 번호 및 빈 위치는 로봇(18) 상의 태블릿(48)으로 전송될 수 있고, 그에 따라 로봇(50)이 각각의 기준 마커 위치에 도달할 때 회수될 특정 품목이 조작자(50)에게 통지될 수 있다.
SLAM 맵과 기준 ID의 포즈가 알려지면, 로봇(18)은 다양한 로봇 내비게이션 기술을 사용하여 기준 ID 중 임의의 하나에게로 쉽게 내비게이션할 수 있다. 바람직한 접근법은 창고(10) 내의 개방 공간(112) 및 벽(114), 선반(예컨대, 선반(12)), 및 다른 장애물(116)에 대한 지식이 주어지면, 기준 마커 포즈로의 초기 경로를 설정하는 것을 포함한다. 로봇이 레이저 레이더(22)를 사용하여 창고를 가로 지르기 시작함에 따라, 로봇은 자신의 경로 내에 고정 또는 동적인 임의의 장애물, 예컨대, 다른 로봇(18) 및/또는 조작자(50)가 있는지를 결정하고, 기준 마커의 포즈로의 자신의 경로를 반복적으로 업데이트한다. 로봇은 약 50 밀리초마다 한 번씩 자신의 경로를 재계획하며(re-plans), 장애물을 피하면서 가장 효율적이고 효과적인 경로를 지속적으로 검색한다.
일반적으로, 창고(10) 내의 로봇의 로컬화는 SLAM 맵 상에서 동작되는 다 대 다 다중 해상도 스캔 매칭(many-to-many multiresolution scan matching)(M3RSM)에 의해 달성된다. 무작위 대입(brute force) 방법에 비해, M3RSM은 로봇이 로봇의 현재 포즈를 결정하기 위한 스캔 매칭(scan matching)을 수행하는 계산 시간을 획기적으로 감소시킨다. M3RSM에 대한 설명은 Edwin Olson에 의한 "M3RSM: 다 대 다 다중 해상도 스캔 매칭(M3RSM: Many-to-many multi-resolution scan matching)"(2015년 6월의 IEEE 국제 로봇 및 자동화 회의(International Conference on Robotics and Automation)(ICRA)의 회보)에서 찾을 수 있으며, 이는 본원에 참고로 포함된다. 로봇 로컬화는 관련 미국 특허 출원 제15/712,222호에 개시된 방법에 따라 M3RSM 검색 공간을 최소화함으로써 추가로 개선되며, 이는 본원 참고로 포함된다.
본 명세서에서 모두 기술되는, SLAM 내비게이션 기술과 결합된 제품 SKU/기준 ID 대 기준 포즈 매핑 기술로 인해, 로봇(18)은 창고 내 위치를 결정하기 위한 그리드 라인 및 중간 기준 마커를 전형적으로 포함하는 보다 복잡한 내비게이션 접근법을 사용할 필요 없이, 창고 공간에 매우 효율적이고 효과적으로 내비게이션할 수가 있다.
일반적으로, 창고 내에 다른 로봇 및 이동중인 장애물이 존재하는 경우의 내비게이션은 동적 윈도우 접근법(dynamic window approach)(DWA) 및 최적의 상호 충돌 방지(optimal reciprocal collision avoidance)(ORCA)를 포함한 충돌 방지 방법에 의해 달성된다. DWA는 실행 가능한 로봇 모션 궤도 중에서 장애물과의 충돌을 방지하고 타겟 기준 마커에 대한 원하는 경로를 선호하는 증분 이동(incremental movement)을 계산한다. ORCA는 다른 로봇(들)과 통신할 필요없이 다른 이동중인 로봇과의 충돌을 최적으로 방지한다. 내비게이션은 대략 50ms 업데이트 간격으로 계산된 궤도에 따른 일련의 증분 이동으로서 진행된다. 충돌 방지는 본원에 설명된 기술에 의해 더 개선될 수 있다.
로봇 시스템
도 9는 전술한 주문 풀필먼트 창고 애플리케이션에 사용하기 위한 로봇(18)의 일 실시예의 시스템 도면을 도시한다. 로봇 시스템(600)은 데이터 프로세서(620), 데이터 스토리지(630), 프로세싱 모듈(640), 및 센서 지원 모듈(660)을 포함한다. 프로세싱 모듈(640)은 경로 계획 모듈(path planning module)(642), 구동 제어 모듈(drive control module)(644), 맵 프로세싱 모듈(map processing module)(646), 로컬화 모듈(localization module)(648), 및 상태 평가 모듈(state estimation module)(650)을 포함할 수 있다. 센서 지원 모듈(660)은 거리 센서 모듈(range sensor module)(662), 구동 트레인(drive train)/휠 인코더 모듈(wheel encoder module)(664), 및 관성 센서 모듈(inertial sensor module)(668)을 포함할 수 있다.
데이터 프로세서(620), 프로세싱 모듈(640) 및 센서 지원 모듈(660)은 로봇 시스템(600)을 위해 도시되거나 설명된 컴포넌트, 디바이스 또는 모듈 중 임의의 것과 통신할 수 있다. 트랜시버 모듈(670)은 데이터를 송신하고 수신하기 위해 포함될 수 있다. 트랜시버 모듈(670)은 감시 시스템 또는 하나 또는 다른 로봇들과 데이터 및 정보를 송신하고 수신할 수 있다. 송신 및 수신 데이터는 맵 데이터, 경로 데이터, 검색 데이터, 센서 데이터, 위치 및 방향 데이터, 속도 데이터, 및 프로세싱 모듈 명령어 또는 코드, 로봇 파라미터 및 환경 설정, 및 로봇 시스템(600)의 동작에 필요한 기타 데이터를 포함할 수 있다.
일부 실시예에서, 거리 센서 모듈(662)은 스캐닝 레이저 레이더, 레이저 거리 측정기, 거리 측정기, 초음파 장애물 검출기, 스테레오 비전 시스템, 단안 비전 시스템, 카메라, 및 이미징 유닛 중 하나 이상을 포함할 수 있다. 거리 센서 모듈(662)은 로봇 주위 환경을 스캔하여 로봇에 대한 하나 이상의 장애물의 위치를 결정할 수 있다. 바람직한 실시예에서, 구동 트레인/휠 인코더(664)는 휠 포지션을 인코딩하기 위한 하나 이상의 센서 및 하나 이상의 휠(예를 들어, 지면과 맞물리는 휠)의 포지션을 제어하기 위한 액추에이터를 포함한다. 로봇 시스템(600)은 또한 속도계 또는 레이더 기반 센서 또는 회전 속도 센서를 포함하는 지면 속도 센서를 포함할 수 있다. 회전 속도 센서는 가속도계와 적분기의 조합을 포함할 수 있다. 회전 속도 센서는 관측된 회전 속도를 데이터 프로세서(620) 또는 그 임의의 모듈에 제공할 수 있다.
일부 실시예에서, 센서 지원 모듈(660)은 시간 경과에 따른, 속도 데이터, 병진(translation) 데이터, 포지션 데이터, 회전 데이터, 레벨 데이터, 헤딩 데이터, 및 관성 데이터에 대한 순간 척도의 이력 데이터를 포함하여, 병진 데이터, 포지션 데이터, 회전 데이터, 레벨 데이터, 관성 데이터, 및 헤딩 데이터를 제공할 수 있다. 병진 속도 또는 회전 속도는 로봇 환경에서 하나 이상의 고정된 참조 포인트 또는 정지된 물체를 참조하여 검출될 수 있다. 병진 속도는 방향에서의 절대 속도로 또는 시간에 대한 로봇 포지션의 1 차 미분으로 표현될 수 있다. 회전 속도는 각도 단위의 속도로 또는 시간에 대한 각도 포지션의 1 차 미분으로 표현될 수 있다. 병진 속도 및 회전 속도는 절대 또는 상대 좌표계에 대한 0 도를 포함하는 원점 0,0(예를 들어, 도 4의 110)에 대해 표현될 수 있다. 프로세싱 모듈(640)은 검출된 회전 속도와 결합되는 관측된 병진 속도(또는 위치 대 시간 측정치)를 사용하여 로봇의 관측된 회전 속도를 평가할 수 있다.
일부 실시예에서, 로봇 시스템(600)은 GPS 수신기, 차동 보정을 갖는 GPS 수신기, 또는 무선 신호를 송신하는 위성 또는 지상 비컨에 대한 로봇의 위치를 결정하기 위한 다른 수신기를 포함할 수 있다. 바람직하게는, 전술한 창고 애플리케이션과 같은 또는 위성 수신이 신뢰될 수 없는 실내 애플리케이션에서, 로봇 시스템(600)은 전술한 바와 같은 비-GPS 센서 및 본원에 기술된 기술을 사용하여, 절대 위치 정보가 글로벌 또는 로컬 센서 또는 시스템에 의해 신뢰성있게 제공되지 않는 경우의 위치를 개선한다.
다른 실시예에서, 도 9에 도시되지 않은 모듈은 조향 시스템, 제동 시스템, 및 추진 시스템을 포함할 수 있다. 제동 시스템은 유압식 제동 시스템, 전기 유압식 제동 시스템, 전기 기계식 제동 시스템, 전기 기계식 액추에이터, 전기식 제동 시스템, 브레이크 바이 와이어(brake-by-wire) 제동 시스템, 또는 구동 제어 모듈(644)과 통신하는 다른 제동 시스템을 포함할 수 있다. 추진 시스템은 전기 모터, 구동 모터, 교류 모터, 유도 모터, 영구 자석 모터, 직류 모터, 또는 로봇을 추진시키기 위한 다른 적합한 모터를 포함할 수 있다. 추진 시스템은 전기 모터의 모터 샤프트의 회전 속도, 회전 토크, 및 회전 방향 중 적어도 하나를 제어하기 위한 모터 컨트롤러(예를 들어, 인버터, 초퍼, 파형 생성기, 다상 컨트롤러, 가변 주파수 발진기, 가변 전류 공급, 또는 가변 전압 공급)를 포함할 수 있다. 바람직하게, 구동 제어 모듈(644) 및 추진 시스템(미도시)은 차동 구동(DD) 제어 및 추진 시스템이다. DD 제어 시스템에서, 로봇 제어는 비 홀로노믹(non-holonomic)(NH)이며, 원하는 선속도 및 각속도를 감안할 때 달성 가능한 증분 경로에 대한 제약을 특징으로 하고 있다. 추진 시스템과 통신하는 구동 제어 모듈(644)은 경로 계획 모듈(642) 또는 데이터 프로세서(620)에 의해 결정된 하나 이상의 순간 속도를 변환함으로써 로봇의 증분 이동을 액추에이터할 수 있다.
본 기술 분야의 기술자는 로봇 프로세싱, 데이터 저장, 감지, 제어 및 추진을 위한 다른 시스템 및 기술이 본원에 설명된 본 발명의 적용성의 상실없이 이용될 수 있음을 인식할 것이다.
내비게이션
자율 또는 반 자율 로봇에 의한 내비게이션은 로봇 환경의 일부 형태의 공간 모델을 필요로 하고 있다. 공간 모델은 비트 맵, 객체 맵, 랜드 마크 맵, 및 다른 형태의 2 차원 및 3 차원 디지털 표현으로 표현될 수 있다. 예를 들어, 도 10에 도시된 바와 같이, 창고 시설의 공간 모델은 창고 및 내부 장애물, 가령, 벽, 천장, 지붕 지지대, 창문 및 문, 선반 및 보관 빔을 나타낼 수 있다. 장애물은, 예를 들어, 창고 내에서 동작하는 다른 로봇 또는 기계류와 같이 정지되거나 이동될 수 있거나, 또는 비교적 고정되지만 창고 품목이 비축, 피킹 및 보충될 때 임시 파티션, 팔레트, 선반 및 빈과 같이 변경될 수 있다.
창고 시설의 공간 모델은 또한 로봇이 제품을 피킹하거나 다른 작업을 수행하도록 지향될 수 있거나 임시 유지 위치 또는 충전 스테이션의 위치로 지향될 수 있는 기준이 마킹된 선반 또는 빈과 같은 타겟 위치를 나타낼 수 있다. 예를 들어, 도 10은 경로(712, 714, 716)를 따라 시작 위치(702)로부터 중간 위치(704, 706)를 거쳐 목적지 또는 타겟 위치(708)로의 로봇(18)의 내비게이션을 도시한다. 여기서, 공간 모델은 선반 또는 빈 또는 로봇 충전기 스테이션일 수 있는 목적지(718)에서의 구조물의 특징을 포함하여 로봇이 내비게이션해야 하는 환경의 특징을 캡처한다.
로봇 내비게이션을 위해 가장 일반적으로 사용되는 공간 모델은 구역 또는 시설의 비트맵이다. 도 11은, 예를 들어, 도 10에 도시된 공간 모델의 2 차원 비트맵을 도시한다. 맵(720)은 블랙 또는 화이트를 나타내는 이진 범위 0, 1의 픽셀 값을 갖는 비트맵에 의해, 또는 블랙(0) 내지 화이트(255)의 그레이 스케일 범위를 나타내는, 예컨대, 0-255의 픽셀 값의 범위에 의해, 또는 컬러 범위에 의해 표현될 수 있으며, 그 범위는 픽셀 값으로 표시되는 위치에 특징이 존재하는지의 불확실성을 나타낼 수 있다. 맵(720)의 스케일 및 입도는 환경의 범위 및 세부 사항에 적합한 임의의 스케일 및 치수일 수 있다. 예를 들어, 본 발명의 동일한 실시예에서, 맵 내의 각각의 픽셀은 5 제곱 센티미터(cm2)를 나타낼 수 있다. 다른 실시예에서, 각각의 픽셀은 1 cm2 내지 5 cm2의 범위를 나타낼 수 있다. 그러나, 본 발명과 함께 사용하기 위한 맵의 공간 해상도는 방법의 적용에 대한 일반성 또는 이익의 상실없이 더 크거나 작을 수 있다.
도 11에 도시된 바와 같이, 맵(720)은 로봇에 의해, 환경 내에서의 위치 및 방향을 결정하고 장애물(블랙으로 도시됨)을 피하면서 경로(712, 714, 716)를 따라 이동을 계획 및 제어하는 데 사용될 수 있다. 이러한 맵은 로봇 또는 타겟 위치의 바로 근처의 공간 특징을 나타내는 "로컬 맵"일 수 있거나, 또는 하나 이상의 로봇의 동작 범위를 포함하는 구역 또는 시설의 특징을 나타내는 "글로벌 맵"일 수 있다. 하나 이상의 로봇이 공유 환경을 협력적으로 매핑할 수 있으며, 결과적인 맵은 로봇들이 환경에 대한 정보를 내비게이션, 수집 및 공유함에 따라 더욱 향상될 수 있다. 맵은 감시 시스템으로부터 로봇에게 제공될 수 있거나, 또는 로봇은 온보드 거리 측정 및 위치 센서를 사용하여 자신의 맵을 구성할 수 있다.
일부 실시예에서, 감시 시스템은 제조 창고 또는 다른 시설에서 복수의 로봇들의 감시를 수행하는 중앙 서버를 포함할 수 있거나, 또는 감시 시스템은, 본원에 기술된 방법 및 시스템의 적용에서 일반성을 상실하지 않고, 시설 내에서 또는 시설없이 완전히 원격으로 또는 부분적으로 동작하는 하나 이상의 서버로 구성된 분산된 감시 시스템을 포함할 수 있다. 감시 시스템은 감시 시스템을 실행하기 위한 적어도 하나의 컴퓨터 프로세서 및 메모리를 갖는 서버 또는 서버들을 포함할 수 있고, 창고 또는 다른 시설에서 동작하는 하나 이상의 로봇에게 정보를 전달하는 하나 이상의 트랜시버를 더 포함할 수 있다. 감시 시스템들은 컴퓨터 서버들 상에서 호스팅될 수 있거나, 또는 클라우드에서 호스팅되고 인터넷을 포함한 유선 및/또는 무선 통신 매체를 통해 로봇 및 감시 시스템과 메시지를 송신 및 수신하도록 구성된 로컬 트랜시버를 통해 로컬 로봇들과 통신할 수 있다.
본 기술 분야의 기술자는 본 발명의 목적을 위한 로봇 매핑이 일반성의 상실없이 당해 기술 분야에 공지된 방법을 사용하여 수행될 수 있음을 인식할 것이다. 로봇 매핑 방법에 대한 추가적인 설명은 Sebastian Thrun에 의한 "Robotic Mapping: A Survey"(2002년 2월 Cnegie-Mellon University, CMU-CS-02-111)에서 찾을 수 있으며, 이는 본원에 참고로 포함된다.
장애물 회피
동적 장애물이 있는 상태에서 목표 경로를 성공적으로 내비게이션하고 타겟 제품 빈에 도달하려면 로봇은 자신의 궤도를 지속적으로 재조정해야 한다. 각각의 재조정시, 로봇을 목표 경로를 따라 한 번의 증분 이동으로 진행시키는 데 순간 속도(instantaneous velocity)가 사용된다. 예를 들어, 도 12에 도시된 바와 같이, 로봇(18)은 경로(714)(라인 내의 각각의 파선은 과장된 증분 이동을 나타냄)를 따라 타겟 목표 포즈(708)로 이동한다. 경로(714)를 따라 로봇은 장애물(722)과 조우하게 된다. 또한 경로(714)를 따라, 로봇(18)은 장애물(724)에 근접하여 경로(726)를 따라 이동중인 로봇(20)과 조우하게 된다. 장애물(722 및 724)을 피하고 로봇(20)과의 충돌을 피하면서, 로봇(18)은 결국 포즈(706)에 도달하고 경로(716)를 따라 목표 포즈(708)로 향해 지속적으로 이동하게 된다. 유사하게, 또한 자율적으로 동작하는 로봇(20)은 장애물(724) 및 로봇(18)을 피하고, 경로(726)를 따라 내비게이션하여 자신의 목표 경로를 따라 로봇(20)의 목표 포즈(도시되지 않음)로 이동하게 된다.
다른 로봇과 충돌하는 궤도 상에서 로봇의 증분 이동은 최적의 상호 충돌 방지(ORCA)와 같은 방법에 의해 방지될 수 있다. ORCA는 각 로봇이 ORCA를 사용하여 자신의 다음 증분 이동을 계산중이라는 것을 추정함으로써 한 로봇이 다른 로봇과 충돌하지 않을 것이라는 것을 보장하고 있다. 이러한 방식으로, 로봇들은 각각에 대해 최적의 충돌없는 경로를 보장하면서 완전히 자율적으로 내비게이션할 수 있다. ORCA에 대한 설명은 Jur van den Berg, Stephen J. Guy, Ming Lin 및 Dinesh Manocha에 의한 "상호 n-보디 충돌 방지(Reciprocal n-body conflict avoidance)"(Robotics Research: The 14th International Symposium ISRR, Cedric Pradalier, Roland Siegwart, and Gerhard Hirzinger (eds.), Springer Tracts in Advanced Robotics, Vol. 70, Springer-Verlag, May 2011, pp. 3-19)에 기술되어 있으며, 이는 본원에 참고로 포함된다.
또한 장애물 회피와 관련하여 본 기술 분야에서 알려진 것은 동적 윈도우 접근법(Dynamic Window Approach)(DWA)이다. DWA는 목표 경로를 따라 로봇의 증분 이동을 위한 N 개의 가능한 순간 속도들의 세트를 고려한다. DWA는 그 후 하나 이상의 시간 스텝에 걸쳐 취한 각 순간 속도에 따른 증분 이동을 추정하여 로봇이 취한 궤도를 점수화한다. 각각의 궤도는 로봇 이외의 장애물과 기타 요인을 고려한 목적 함수에 따라 점수화된다. 예를 들어, 각각의 궤도는 장애물에 근접하는 것을 피하는 것에 대해 가중치화되면서 목표 경로에 대한 준수도에 따라 점수화될 수 있다. 추가의 예에 의해, 로봇들 사이에서 일하는 인간이 존재하는 경우 로봇의 거동(behavior)을 조정하는 것이 바람직할 수 있다. DWA에 대한 설명은 D. Fox, W. Burgard 및 S. Thrun에 의한 "충돌 방지에 대한 동적 윈도우 접근법(The Dynamic Window Approach to Collision Avoidance)"(Robotics & Automation Magazine, IEEE, vol. 4, no. 1 (March 1997), pp 23-33)에 제공되며, 이는 본원에 참고로 포함된다.
DWA는 로봇의 거동을 제어하는 것에 대한 유연한 접근법을 제공하지만, ORCA 구동 로봇과 조우하게 될 때 최적의 응답을 희생하면서 로봇의 거동을 제어한다. 마찬가지로, ORCA는 로봇의 다음 순간 속도에 대해 입증가능하게 최적의 계산 효율적인 결정을 제공하지만, ORCA는 로봇이 목표 경로를 따라 목표 위치로 내비게이션할 때 로봇의 거동을 최적화하는 데 중요한 로봇 이외의 장애물 및 기타 요인을 고려하지는 않는다.
ORCA/DWA
도 13은 로봇을 목표 경로를 따라 타겟 위치 또는 "목표 포즈"로 이동시키는 방법으로서 본 발명의 실시예를 도시한다. 흐름도는 도 12의 로봇(18, 20, 22, 및 24)을 참조하여 설명되며, 각각의 로봇은 도 9를 참조하여 전술한 바와 같은 로봇 시스템(600)을 포함한다. "다른" 로봇들은 일부 실시예에서 로봇 시스템(600)의 변형으로 구현될 수 있고, 일부 실시예는 비-ORCA-구동 로봇을 포함할 수 있으며, 여기서 일부 다른 장애물 회피 방법은 ORCA 기반 방법을 사용하는 하나 이상의 로봇을 갖는 로봇들의 시스템에 본 발명을 적용하는 것에 대한 일반성을 잃지 않고 사용될 수 있다.
단계(802)에서 시작하여, 로봇 시스템(600)은 데이터 스토리지(630)에 저장될 수도 있는 장애물 맵을 트랜시버 모듈(670)을 통해 수신한다. 장애물 맵은 SLAM 맵일 수 있거나 또는 장애물과 중첩된 비용 맵과 같은 다른 맵일 수 있다. 대안적으로, 장애물 맵은 로봇 환경 내에서 고정된 장애물을 나타낼 수 있는 임의의 공간 모델일 수 있다. 장애물 맵은 데이터 프로세서(620) 또는 맵 프로세싱 모듈(646) 또는 경로 계획 모듈(642)에 의해 데이터 스토리지(630)에 저장될 수 있고 이후 데이터 스토리지(630)로부터 리트리빙(retrieving)될 수 있다.
단계(806)에서, 로봇 시스템(600)은 목표 포즈를 수신하고, 그 후, 단계(808)에서 경로 계획 모듈(646)을 사용하여 타겟 포즈에 대한 목표 경로를 생성한다. 경로 계획 모듈(642)은 A* 및 D* 경로 찾기 알고리즘을 포함하여 본 기술 분야의 기술자에게 공지된 다양한 기술에 의해 현재 포즈로부터 목표 포즈로의 목표 경로를 생성할 수 있다. 대안적으로, 로봇은 트랜시버 모듈(670)을 통해 목표 경로를 수신할 수 있거나 데이터 스토리지(630)로부터 목표 경로를 리트리빙할 수 있다. 장애물 맵을 수신하고 목표 경로를 생성한 후, 로봇 시스템(600)은 다음과 같이 로봇을 목표 경로를 따라 증분식으로 이동시키도록 진행한다.
단계(810)에서, 로봇 시스템(600)은 구역 내의 모든 로봇들의 현재 포지션 및 속도를 수신한다. 로봇은 자신의 포즈에 대한 다른 모든 로봇의 포즈를 알면, 자신의 동작 구역에서 멀리 떨어진 로봇을 무시할 수 있다. 대안적으로, 로봇은 단계(810)의 일반성을 상실하지 않고 로봇에 근접하여 동작하는 로봇의 포즈만을 수신할 수 있다. 예를 들어, 다시 도 12를 참조하면, 로봇(18)은 포지션(704)에서 로봇(20, 22, 및 24)의 현재 포지션 및 속도를 수신할 수 있다. 대안적으로, 로봇(18)은, 예를 들어, 포즈(720)에 근접할 때에만 또는 장애물(724) 근처의 로봇(20)에 접근할 때에만 로봇(20)의 포지션 및 속도를 수신할 수 있다.
추가적으로, 단계(810)에서, 로봇은 자신의 포즈를 수신한다. 바람직하게, 포즈를 포함한 로봇의 상태는 로봇 자체로부터의 주행 거리계(odometry), 구동/트레인 휠 인코더(664) 및/또는 관성 센서(668) 또는 다른 센서 모듈(660)을 사용하는 로봇 시스템에 의해, 또는 다른 센서들 또는 수신된 정보에 대해 동작하는 프로세싱 모듈(640)에 의해 결정될 수 있다. 로봇의 포즈는 전술한 입력들의 융합에 의해 및/또는 다 대 다 다중 해상도 스캔 매칭(M3RSM), 적응형 몬테 카를로 로컬화(AMCL), 지오 포지셔닝 위성(GPS), 기준 정보에 의해 결정될 수 있거나, 또는 로봇의 포즈는 트랜시버 모듈(670)을 통해 감시 시스템으로부터 수신될 수 있다.
단계(812)에서, 프로세스(800)는 특히 아래에 그리고 도 14와 관련하여 설명된 바와 같이 ORCA/DWA를 수행함으로써, 목표 경로를 따른 로봇의 다음 증분 이동을 구동하기 위한 컨트롤로서 적용할 다음 속도를 찾는 것을 지속한다. 단계(816)에서, 로봇은 자신의 목표 포즈에 도달할 때까지 목표 경로를 따라 증분식으로 이동한다. 단계(818)에서 목표 포즈에 도달하지 않으면, 로봇 시스템(600)은 다음 시간 사이클(단계(820))에서의, 전술한 바와 같이 다른 로봇들의 포즈를 수신하고(단계(810)), ORCA/DWA를 수행하고(단계(812)), 그리고 로봇을 이동시키는 것(단계(816))을 목표 포즈에 도달할 때까지(단계(818)) 다음 시간 사이클에서 반복할 수 있다. 각각의 증분 이동에 이어서, 로봇 시스템(600)은 전술한 바와 같이 자신의 포즈를 결정하고, 자신의 현재 포즈를 포함한 자신의 현재 상태를 트랜시버 모듈(670)을 통해 중앙 서버에 전송할 수 있다. 본원에 기술된 바와 같이 프로세스(800)에 의해 동작하는 도 9의 각각의 로봇(18, 20, 22, 및 24)은 모든 로봇의 포즈들이 다음 시간 사이클에서의 서로 다른 로봇에 의한 수신에 이용될 수 있게 한다.
도 14는 앞서 소개된 장애물 회피 알고리즘 DWA 및 ORCA의 원리의 새로운 조합을 이용하여 최적의 속도를 결정하기 위해 ORCA/DWA를 수행하는 프로세스 A(도 13의 단계(812))를 도시한다.
단계(852)에서 시작하여, 일 실시예에 따르면, 가능한 또는 "후보" 속도들의 세트는 DWA에 따라 생성된다. 후보 속도들은 속도 벡터(v, ω)에 의해 고유하게 결정된 궤도들 또는 "곡률들"의 세트로 표현될 수 있으며, 여기서, v는 로봇의 전진 또는 직선 모션이며, ω는 로봇의 회전 속도이다. 후보 속도들의 세트는 로봇의 현재 포즈로부터 로봇을 전진시키는 가능한 궤도들의 세트로부터 샘플링된 유한 속도들의 세트일 수 있거나, 또는 궤도들의 세트는 하나 이상의 다음 시간 간격들에 걸쳐 등속도(v, ω) 만큼 전진시키는 로봇의 이산 순간 이동에 의해 정의되는 곡률을 정의할 수 있다.
따라서, 단계(812)에서의 방법은 다음 시간 스텝에서 다음 이동에 대한 컨트롤로서 로봇이 채택할 N 개의 가능한 순간 속도들의 세트를 생성한다. 각각의 후보 속도들에 걸쳐 반복함으로써, 방법은 마치 로봇이 t 초의 증분치의 단위로 다음 T 초 동안 후보 속도로 진행하는 것처럼, 로봇의 종료 포즈(end pose)를 평가한다. 일반성을 상실하지 않고 본 발명을 설명하기 위해, T는 1.5 초일 수 있고 시간 증분치 t는 0.1 초일 수 있다. 따라서, 단지 예로서, 후보 속도가 0.25 미터/초의 선형 속도이고 0.785 rad/초의 회전 속도인 경우, 프로세스는 각각 0.1, 0.2, 0.3, . . . 1.5 초의 시간 스텝들에서 컨트롤로서 속도 벡터(V, ω)=(0.25, 0.785)를 적용함으로써 로봇이 도달할 포즈를 평가할 것이다. 각각의 시간 스텝들에서의 포즈들의 세트는 ORCA/DWA 목적 함수에 의해 점수화될 궤도를 구성하며, 이는 아래에서 추가적으로 기술될 것이다.
후보 속도들을 생성할 때 DWA에 의한 이산화(discretization)에 따라, 다음 연속 시간 스텝에서 로봇이 이동할 수 있는 무한 개수의 궤도들보다 적은 개수의 궤도가 어쩔 수 없이 선택된다. 후보 속도들의 세트는, 선택된 후보 속도로 지속되는 로봇을 추정할 때, 다음 시간 간격 또는 다음 n 개의 시간 간격에서 곡률이 장애물과 교차하는 속도를 그 세트로부터 제거함으로써 추가로 감소될 수 있다. 후보 속도들의 세트를 장애물과 충돌하지 않는, 허용 가능한 속도로 잘라 내면, 선호 속도를 결정하기 위한 검색 공간은 감소된다. 후보 속도들의 세트는 허용 가능한 속도들만으로 유지함으로써 추가로 감소될 수 있다. 허용 가능한 속도들은 로봇이 장애물과 충돌하기 전에 정지할 수 있게 될 속도들만을 포함할 수 있다. 허용 가능한 속도들은 로봇의 동적 윈도우 내 또는 로봇에 허용된 최대 안전 속도 내의 속도들만을 포함할 수 있다. 로봇의 동적 윈도우는 로봇의 제한된 가속도를 감안할 때 다음 시간 간격 내에 도달될 수 있는 속도들만을 포함할 수 있다. 대안적으로, 후보 속도들의 세트는 모델 예측 제어(model predictive control)(MPC) 또는 다른 제약 기반 알고리즘과 같은 다른 방법에 의해 생성되거나 잘려질 수 있다.
도 14로 돌아가서, 단계(854)에서, 후보 속도들의 세트에서 각 후보 속도(v, ω)는 목적 함수: G(v, ω) = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω)에 따라 평가되며, 여기서, G(v, ω)는 목적 함수이며, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며, dist(v, ω)는 가장 가까운 장애물까지의 거리("간격")이며, 그리고 velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도이다. DWA 하에서의 목적 함수 G(v, ω)의 평가에 대한 상세한 설명은 위에서 이전에 참고로 포함된 D. Fox 등에 의한 "충돌 회피에 대한 동적 윈도우 접근법(The Dynamic Window Approach to Collision Avoidance)"에서 찾을 수 있다. 본 기술 분야의 기술자는 목적 함수에 대한 변형이 본 발명의 일반성을 상실하지 않고 적용될 수 있음을 이해할 것이다.
각각의 후보 속도에 대한 목적 함수 G(v, ω)를 평가하는 것은 후보 속도들의 세트에서 각각의 후보 속도(v, ω)를 점수화함으로써 선호 속도 v pref 를 결정한다. 각 후보 속도(v, ω)는 위와 같이 궤도 또는 곡률과 연관된다. 바람직하게, 목적 함수 G(v, ω)는 하나 이상의 비용 결정면을 나타내는 가중치화된 컴포넌트 함수를 가진 비용 함수로 구현된다. 비용 결정면의 실시예에서, 선호 속도 v pref 는 도 14의 단계(856)에서 결정된 후보 속도들의 세트에 걸친 최소치 G(v, ω)가 된다. 따라서, 전술한 속도와 궤도의 관계로부터 볼 때, 선호 궤도 t pref 는 T 초의 기간 동안 각각의 다음 t 초에 걸쳐 속도 v pref 에서 로봇을 증분식으로 이동시키는 컨트롤로서 v pref 가 적용된다는 것을 추정할 때의 로봇의 궤도가 된다.
일부 실시예에서의 비용 결정면(cost critics)은 모든 로봇이 정적 장애물을 안전하게 통과하는 것을 보장하도록 장애물 맵에서 팽창된(예를 들어, 로봇의 반경 또는 직경만큼 팽창된) 장애물을 사용하는 dist(v, ω) 비용 함수를 포함할 수 있다. 비용 결정면은 회전의 크기 또는 방향의 변화에 더 높은 비용을 할당하는 진동 비용 함수를 포함할 수 있다. 비용 결정면은 바람직한 실시예에서, 목표 경로로부터의 로봇의 거리에 가중치를 부여하고 그리고/또는 로봇이 주어진 후보 속도에 대한 목표 경로로부터 얼마나 멀리 떨어져 있는지 또는 얼마나 많은 후보 속도가 로봇이 목표 경로로부터 발산되게 하는지에 가중치를 부여하는 경로 비용 결정면을 더 포함할 수 있다.
따라서, DWA 목적 함수 G(v, ω)를 적용함으로써 결정되는 선호 속도 v pref 는 모든 DWA 비용 결정면의 평가시 최소 비용 후보 속도가 된다. 본 기술 분야의 기술자는 위의 비용 함수 G(v, ω)에 대한 가중치 α, β, γ가 로봇의 거동에 대한 선호도에 따라 설정될 수 있음을 이해할 것이다. 목적 함수 G(v, ω)의 각각의 컴포넌트 함수는 자체 가중치를 가질 수 있거나 가중치가 없을 수 있다(가중치=1). 바람직하게, 하나 이상의 비용 결정면은 사전 결정된 기준을 위반하는 임의의 후보 속도 비용 함수 점수에 비교적 높은 페널티 값을 추가함으로써 후보 속도를 무효화하는 "비토권"을 갖는다.
위에서 설명한 바와 같이, 도 14의 단계(858)에서 DWA에 의해 결정되는 선호 궤도 t pref 는 연속적인 시간 간격에 걸쳐 로봇 제어에 적용되는 속도 벡터 (v, ω)에 의해 정의되는 곡률이다. 도 15는 v pref t pref 간의 관계를 도시한다. 도시된 바와 같이, 포즈 P a 에서 로봇(18)에 대한 선호 속도 v pref 는 속도 벡터(v, ω)가 된다. 선호 궤도 t pref v pref 에 의해 증분식으로 이동되는 로봇의 경로에 의해 정의되는 곡률이 된다. 속도 벡터 (v, ω)는 차동 구동(DD) 로봇 추진 시스템에서 발견되는 것과 같이 비 홀로노믹 로봇의 제어에 적용되어 곡률 P a -P b 를 따라 로봇(18)을 이동시킬 것이다.
로봇 시스템(600)이 다른 로봇들의 포즈를 도 13의 단계(810)에서 이미 수신한 것을 상기하면, 프로세스는 ORCA 속도 물체들(velocity objects)(또는 "VOs")을 생성함으로써 단계(858)에서 지속된다. 위에서 참고로 알려진 방법에 따르면, VOs는 로봇(18)의 선호 속도 v pref 에 기반하여 각기 다른 로봇(예를 들어, 20, 22, 24)과 관련하여 생성된다. 여기서, 로봇(18)에 대한 ORCA/DWA를 수행하기 위해, 로봇 시스템(600)은 ORCA VOs를 생성하는 단계(856)에서 결정된 선호 속도 v pref 를 사용한다.
그러나, 적어도 하나의 실시예에서, ORCA는 입력으로서 선호 속도 v pref 를 요구하며, 모든 속도 (v, ω)를 홀로노믹 벡터 (x, y)로 변환한다. 즉, ORCA는 로봇이 모든 방향 (x, y)으로 이동할 수 있다고 추정한다. 본 기술 분야의 기술자가 이해하듯이, ORCA는 분석에 홀로노믹 속도 벡터를 사용하지만 DWA에 의해 생성된 v pref 는 차동 구동 로봇에 대한 것과 마찬가지로 비 홀로노믹 로봇 제어를 추정한다. 따라서, 비 홀로노믹 선호 속도 v pref 를 ORCA VOs 생성에 사용하기 위한 홀로노믹 벡터 (x, y)로 변환할 때 약간의 오차에 대한 조정(accommodation)이 행해져야 한다.
도 15는 본 발명의 일 양태에 따른 이러한 조정을 예시한다. ORCA에서 비 홀로노믹 속도 v pref 의 사용에 대한 보정은 각각의 VO를 생성할 때 다른 로봇들의 크기를 팽창시킴으로써 조정된다. 도 15에 도시된 바와 같이, 각 로봇의 반경의 증가는 직선 벡터 (x, y)와 선호 궤도 t pref 사이의 최대 오차 거리 d와 대략 동일하게 이루어진다. 다른 로봇의 반경을 홀로노믹 궤도와 비 홀로노믹 궤도 간의 최대 오차 d 만큼 팽창시키면, 다른 로봇들에 근접한 로봇(18)의 충돌없는 이동이 보장된다. 본 기술 분야의 기술자는 당업자는 ORCA의 비 홀로노믹 버전을 포함한 ORCA의 변형이 본원의 방법의 적절한 변형으로 대체될 수 있음을 이해할 것이며, 예를 들어, ORCA-NH(비 홀로노믹)는 선호 궤도를 비 홀로노믹 속도 v pref 로 사용할 때에 조정을 요구하지 않는다.
본 기술 분야의 기술자에 의해 이해되듯이, VO들을 생성한 다음 이들 VO들을 결합하면 각각의 VO의 절반면(half-planes)의 교차점에 의해 정의되는 속도 공간에서 다각형이 형성된다. ORCA의 적용시 VO들을 생성하고 결합하는 것에 대한 설명은 위에서 이미 참고로 포함된 Jur van den Berg 등에 의한 "상호 n-보디 충돌 방지(Reciprocal n-body collision avoidance)"에서 찾을 수 있다. 예를 들어, 도 16a는 속도 물체들의 절반면들 VO a - VO e 의 결합에 의해 형성된 다각형 P를 도시한다. VO들의 각각은 본원에 설명된 방법에 따라 이동될 로봇에 포즈가 알려진 다른 로봇들 a-e에 대응한다. ORCA 하에서 VO들의 결합에 의해 형성된 다각형이 (포즈 공간이 아닌) 속도 공간 내에서의 충돌을 정의하는 것을 상기하면, 다각형 내에 있는 로봇의 임의의 속도는 안전한 것으로 간주되며, 다른 로봇들의 충돌 없는 회피를 보장하며; 다각형 외부에 있는 임의의 속도는 안전하지 않으며, 로봇이 다른 로봇들 중 하나 이상의 로봇과 충돌하게 할 수 있다.
전술한 것을 염두에 두고, 프로세스는 도 14의 단계(860)에서, 결합된 ORCA/DWA 목적 함수를 이용하여 DWA에 의해 생성된 후보 속도들을 평가하는 것을 지속한다. 결합된 ORCA/DWA 목적 함수는 다음과 같이, 가중치 α ORCA와 함께 비용 결정면 C ORCA 와 결합되는 비용 함수 C DWA 로 구성되며:
ORCA/DWA = C DWA + α ORCA * C ORCA
C DWA 는 다음과 같이 정의되며:
C DWA = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω),
여기서, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리이며; velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도이다. ORCA VO들의 생성을 위한 v pref 를 결정하기 위해 위에서 사용되는 바와 같은, C DWA 및 G(v, ω)는 동일한 가중치를 갖는 동일한 함수로 구현될 수 있거나, 또는 상이한 가중치를 갖는 상이한 함수로 구현될 수 있거나, 또는 본 발명의 적용시 일반성을 상실하지 않고 다른 비용 함수들의 조합에 의해 구현될 수 있다.
C ORCA 는 다음과 같이 정의되며:
C ORCA V(v t - v pref ) + penalty + αd * d(P, v t )
여기서, αd 및 αV는 가중치이며; v t 는 평가되는 후보 속도이고; v pref 는 선호 속도이며; P는 VO들의 결합에 의해 형성된 다각형이고; d(P, v t )는 후보 속도가 VO를 얼마나 위반하는지의 척도이고; penalty는 후보 속도 v t 가 VO를 위반할 때 부과되는 페널티 비용이다.
비용 결정면 C ORCA 의 평가시에, 모든 후보 속도 v t 는 선호 속도 v pref 와 얼마나 다른지의 척도로서 베이스 비용 αV(v t - v pref )를 입수하게 된다. 예를 들어, 도 16a에 도시된 바와 같이, 후보 속도가 v t 가 VO들로 형성된 다각형 P 내부에 있지만 v t 로부터 v pref 까지의 거리가 큰 경우, 비용 αV(v t - v pref )은 크지만 페널티는 추가되지 않는다. 도 16b에 도시된 바와 같이 후보 속도 v t 가 다각형 P 내부에 있고 v pref 까지의 거리가 작다면, 비용 αV(v t - v pref )는 작고, 또한 페널티가 추가되지 않는다. 그러나, 후보 속도 v t 가 적어도 하나의 속도 장애물을 위반하는 경우(즉, 후보 속도가 다각형 P 외부에 있으므로 "안전하지 않은" 경우), 페널티가 베이스 비용 항에 추가된다(αV(v t - v pref ) + penalty).
또한, 바람직한 실시예에서, 추가 페널티는 v t 로부터 다각형 P의 가장자리까지의 거리 d(P, v t )에 기반하여 v t 에 부과될 수 있다. 예를 들어, 도 16c에 도시된 바와 같이, 비용 함수 d(P, v t )는 다각형 P의 둘레로부터 후보 속도 v t 가 도달한 궤도 t에 의해 정의된 포인트까지의 최소 거리의 함수이다. 도시된 예에서, v t 는 제 1 페널티를 발생시키는 다각형 P 외부에 있으며, 보다 높은 비용 αV(v t - v pref )를 발생시키는, v pref 로부터 비교적 멀리 떨어져 있으며, 그리고 위반의 크기, 즉 v t 로부터 다각형 P까지의 거리에 기반하여 추가 페널티를 추가로 발생시킨다. 따라서, 이 예에 대한 C ORCA 의 평가시에, αV(v t - v pref ) + penalty + penalty * d(P, v t )는 조합된 ORCA/DWA 목적 함수에 추가될 때 v t 에 대해 높은 비용을 요구하게 된다.
ORCA 및 DWA 비용 결정면을 조합하고 최소 가중치화된 비용: min (C DWA + αORCA * C ORCA )을 적용하게 되면, 후보 속도들의 세트로부터 최적의 후보 속도로 리턴하게 된다. 도 13의 단계(816)로 돌아가서, 다음 제어는 조합된 ORCA/DWA 비용 함수에 의해 결정되는 최소 비용을 갖는 후보 속도와 연관된 순간 속도이다. 컨트롤을 로봇 구동 제어에 적용하면, 로봇은 목표 경로를 따라 증분식으로 이동하고(단계 818), 프로세스는 로봇이 목표 포즈에 도달할 때까지 반복된다(단계(820)).
전술한 본 발명의 설명은 통상의 기술자가 현재 최선의 모드라고 간주되는 것을 만들고 사용할 수 있게 하지만, 통상의 기술자는 본원의 특정 실시예 및 예의 변형, 조합 및 등가물의 존재를 이해하고 인식할 것이다. 본 발명의 전술한 실시예는 단지 예일 뿐이다. 본 발명의 범위를 벗어나지 않고 본 기술 분야의 기술자에 의해 특정 실시예에 대한 변경, 수정 및 변형이 이루어질 수 있으며, 본 발명의 범위는 본 명세서에 첨부된 청구범위에 의해서만 정의된다.
본 발명은 소프트웨어 및/또는 하드웨어로 구현될 수 있음을 이해해야 한다. 따라서, 본 발명의 양태는 완전한 하드웨어 실시예, (펌웨어, 상주 소프트웨어, 마이크로 코드 등을 포함하는) 완전한 소프트웨어 실시예 또는 소프트웨어 및 하드웨어 양태를 결합한 실시예의 형태를 취할 수 있으며, 이들 모두는 일반적으로 본원에서 "회로", "모듈" 또는 "시스템"으로 지칭될 수 있다. 본 기술 분야의 기술자라면 알 수 있는 바와 같이, 발명의 양태는 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다.
본 발명의 양태는 방법 및 장치(시스템)의 흐름도, 예시 및/또는 블록도를 참조하여 설명된다. 흐름도 및 블록도는 본 발명의 다양한 실시예에 따른 시스템 구조, 기능 또는 동작을 예시할 수 있다. 흐름도의 각 단계는 특정 기능(들)을 구현하기 위한 하나 이상의 실행 가능 명령어를 포함하는 모듈을 나타낼 수 있다. 일부 구현예에서, 연속적으로 도시된 단계들은 실제로 실질적으로 동시에 실행될 수 있다. 단계들은 지정된 기능이나 동작을 수행하는 특수 목적 하드웨어 기반 시스템에 의해 수행될 수 있거나, 또는 특수 목적 하드웨어와 컴퓨터 명령어의 조합에 의해 수행될 수 있다.
본 발명의 동작을 수행하는 프로세서에 의한 실행을 위한 컴퓨터 명령어는 C#, C++, Python, 또는 자바(Java) 프로그래밍 언어와 같은 객체 지향 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어로 작성될 수 있다. 본원에 설명된 흐름도 및/또는 시스템 블록도에 지정된 단계를 구현하는 실행 명령어를 포함하여, 로봇 시스템이 데이터 프로세서를 통해 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 프로그램 명령어가 컴퓨터 판독 가능 매체에 저장될 수 있다. 컴퓨터 판독 가능 저장 매체는 데이터 프로세서에 의해 사용되거나 그와 관련하여 사용하기 위한 명령어를 포함하거나 저장할 수 있는 임의의 유형적인 매체(tangible medium)일 수 있다. 컴퓨터 판독 가능 매체는 또한 컴퓨터 판독 가능 프로그램 코드가 내장된 전파되는 데이터 신호를 포함할 수 있다.
그러므로, 본 발명은 다음과 같이 청구되는 본 발명의 범주 및 사상 내에서 상술된 실시예 및 예, 실시예 및 적용례에 의해서는 제한되지 않는다.

Claims (25)

  1. 장애물을 피하면서 목표 경로를 따라 로봇을 내비게이션시키는 방법에 있어서,
    제 1 로봇에 대한 목표 포즈(goal pose)를 수신하는 단계;
    상기 제 1 로봇에 대한 목표 경로(goal path)를 결정하는 단계;
    장애물 맵(obstacle map)을 수신하는 단계;
    상기 제 1 로봇의 포즈를 수신하는 단계;
    하나 이상의 다른 로봇의 포즈를 수신하는 단계;
    상기 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 단계;
    제 1 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하는 단계;
    상기 제 1 목적 함수에 기반하여 상기 제 1 로봇의 제 1 선호 속도를 상기 후보 속도들의 세트로부터 선택하는 단계;
    상기 하나 이상의 다른 로봇의 포즈 및 상기 제 1 로봇의 제 1 선호 속도에 기반하여 속도 장애물들의 세트를 생성하는 단계;
    상기 속도 장애물들 및 상기 제 1 선호 속도를 이용하는 제 2 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하는 단계;
    상기 제 2 목적 함수에 기반하여 상기 제 1 로봇에 대한 제 2 선호 속도를 상기 후보 속도들의 세트로부터 선택하는 단계; 및
    상기 제 2 선호 속도에 기반하여 상기 제 1 로봇을 이동시키는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 목표 경로는 상기 제 1 로봇의 현재 포즈로부터 상기 제 1 로봇의 목표 포즈까지의 경로를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 로봇의 목표 포즈는 주문 풀필먼트 창고 애플리케이션에서 기준 관련 제품 빈의 포즈인, 방법.
  4. 제1항에 있어서,
    상기 제 1 로봇의 포즈는 다 대 다 다중 해상도 스캔 매칭(many-to-many multiresolution scan matching)(M3RSM), 적응형 몬테 카를로 로컬화(adaptive monte carlo localization)(AMCL), 지오 포지셔닝 위성(geo-positioning satellite)(GPS), 기준 정보(fiducial information), 및 로봇 센서 기반의 주행 거리계(odometry-based on robot sensors) 중 하나 이상에 의해 결정되는, 방법.
  5. 제1항에 있어서,
    상기 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 단계는, 하나 이상의 시간 스텝(time steps)에 걸쳐 모션, 장애물 및 관성 제약을 적용함으로써 후보 속도를 추정하여 허용 가능한 궤도를 갖는 후보 속도들만을 생성하는, 방법.
  6. 제1항에 있어서,
    상기 제 1 목적 함수는 G(v, ω)=α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω) 형태의 하나 이상의 비용 함수로 구성되며,
    여기서 G(v, ω)는 목적 함수이고, α, β, γ는 가중치이며; heading(v, ω)는 상기 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리("간격")이며; 그리고 velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도(forward velocity)인, 방법.
  7. 제6항에 있어서,
    상기 제 1 목적 함수는,
    상기 목표 경로로부터 상기 후보 속도가 얼마나 발산할 것인지를 점수화하는 경로 비용 함수;
    장애물에 대한 근접성을 점수화하는 장애물 비용 함수; 및
    이전 선호 속도로부터 회전 속도의 변화에 더 높은 비용을 할당하는 진동 비용 함수 중 하나 이상을 더 포함하는, 방법.
  8. 제6항에 있어서,
    상기 하나 이상의 비용 함수는 가장 높은 비용 점수를 후보 속도에 할당함으로써 상기 후보 속도를 무효화시키는, 방법.
  9. 제1항에 있어서,
    상기 속도 장애물들의 세트를 생성하는 단계는, 선호 속도를 비 홀로노믹(non-holonomic)에서 홀로노믹(holonomic) 속도로 변환하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 선호 속도를 홀로노믹 속도로 변환하는 단계는, 선호 궤도와 직선 궤도 사이의 최대 거리만큼 하나 이상의 다른 로봇의 반경을 증가시키는 단계를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 제 2 목적 함수는 다음과 같은 형태의 하나 이상의 비용 함수로 구성되며:
    ORCA/DWA = C DWA + α ORCA * C ORCA
    여기서, C DWA 는 다음과 같이 정의되며:
    C DWA = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω),
    여기서, α, β, γ는 가중치이며; heading(v, ω)는 상기 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리이며; velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도이며; 그리고
    C ORCA 는 다음과 같이 정의되며:
    C ORCA V(v t - v pref ) + penalty + αd * d(P, v t )
    여기서, αd 및 αV는 가중치이며; v t 는 평가되는 후보 속도이고; v pref 는 상기 선호 속도이며; P는 VO들의 결합에 의해 형성된 다각형이고; d(P, v t )는 후보 속도가 VO들을 얼마나 위반하는지의 척도이고; penalty는 후보 속도 v t 가 VO를 위반할 때 부과되는 페널티 비용인, 방법.
  12. 제11항에 있어서,
    비용 함수 d(P, v t )는 다각형 P의 둘레로부터 후보 속도 v t 가 도달한 궤도 t에 의해 정의된 포인트까지의 최소 거리의 함수인, 방법.
  13. 장애물을 피하면서 목표 경로를 따라 로봇을 내비게이션시키는 로봇 시스템에 있어서,
    트랜시버;
    데이터 저장 디바이스; 및
    데이터 프로세서를 포함하고,
    상기 데이터 저장 디바이스는 상기 데이터 프로세서에 의한 실행을 위한 명령어를 저장하고 있으며,
    상기 저장된 명령어는:
    제 1 로봇에 대한 목표 포즈를 수신하는 것;
    상기 제 1 로봇에 대한 목표 경로를 결정하는 것;
    장애물 맵을 수신하는 것;
    상기 제 1 로봇의 포즈를 수신하는 것;
    하나 이상의 다른 로봇의 포즈를 수신하는 것;
    상기 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 것;
    제 1 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하는 것;
    상기 제 1 목적 함수에 기반하여 상기 제 1 로봇의 제 1 선호 속도를 상기 후보 속도들의 세트로부터 선택하는 것;
    상기 하나 이상의 다른 로봇의 포즈 및 상기 제 1 로봇의 제 1 선호 속도에 기반하여 속도 장애물들의 세트를 생성하는 것;
    상기 속도 장애물들 및 상기 제 1 선호 속도를 이용하는 제 2 목적 함수를 사용하여 상기 후보 속도들의 세트를 평가하는 것;
    상기 제 2 목적 함수에 기반하여 상기 제 1 로봇에 대한 제 2 선호 속도를 상기 후보 속도들의 세트로부터 선택하는 것; 및
    상기 제 2 선호 속도에 기반하여 상기 제 1 로봇을 이동시키는 것을 포함하는, 로봇 시스템.
  14. 제13항에 있어서,
    상기 목표 경로는 상기 제 1 로봇의 현재 포즈로부터 상기 제 1 로봇의 목표 포즈까지의 경로를 포함하는, 로봇 시스템.
  15. 제13항에 있어서,
    상기 로봇의 목표 포즈는 주문 풀필먼트 창고 애플리케이션에서 기준 관련 제품 빈의 포즈인, 로봇 시스템.
  16. 제13항에 있어서,
    상기 제 1 로봇의 포즈는 다 대 다 다중 해상도 스캔 매칭(M3RSM), 적응형 몬테 카를로 로컬화(AMCL), 지오 포지셔닝 위성(GPS), 기준 정보, 및 로봇 센서 기반의 주행 거리계 중 하나 이상에 의해 결정되는, 로봇 시스템.
  17. 제13항에 있어서,
    상기 제 1 로봇에 대한 후보 속도들의 세트를 생성하는 것은 하나 이상의 시간 스텝(time steps)에 걸쳐 모션, 장애물 및 관성 제약을 적용함으로써 후보 속도를 추정하여 허용 가능한 궤도를 갖는 후보 속도들만을 생성하는, 로봇 시스템.
  18. 제13항에 있어서,
    상기 제 1 목적 함수는 다음과 같은 형태의 하나 이상의 비용 함수로 구성되며:
    G(v, ω) = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω),
    여기서, G(v, ω)는 목적 함수이며, α, β, γ는 가중치이며; heading(v, ω)는 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리("간격")이며; velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도인, 로봇 시스템.
  19. 제18항에 있어서,
    상기 제 1 목적 함수는,
    상기 목표 경로로부터 상기 후보 속도가 얼마나 발산할 것인지를 점수화하는 경로 비용 함수;
    장애물에 대한 근접성을 점수화하는 장애물 비용 함수; 및
    이전 선호 속도로부터 회전 속도의 변화에 더 높은 비용을 할당하는 진동 비용 함수 중 하나 이상을 더 포함하는, 로봇 시스템.
  20. 제18항에 있어서,
    상기 하나 이상의 비용 함수는 가장 높은 비용 점수를 후보 속도에 할당함으로써 상기 후보 속도를 무효화시키는, 로봇 시스템.
  21. 제13항에 있어서,
    상기 속도 장애물들의 세트를 생성하는 것은, 선호 속도를 비 홀로노믹에서 홀로노믹 속도로 변환하는 것을 포함하는, 로봇 시스템.
  22. 제21항에 있어서,
    상기 선호 속도를 홀로노믹 속도로 변환하는 것은, 선호 궤도와 직선 궤도 사이의 최대 거리만큼 하나 이상의 다른 로봇의 반경을 증가시키는 것을 포함하는, 로봇 시스템.
  23. 제13항에 있어서,
    상기 제 2 목적 함수는 다음과 같은 형태의 하나 이상의 비용 함수로 구성되며:
    ORCA/DWA = C DWA + α ORCA * C ORCA
    여기서, C DWA 는 다음과 같이 정의되며:
    C DWA = α * heading(v, ω) + β * dist(v, ω) + γ * velocity(v, ω),
    여기서, α, β, γ는 가중치이며; heading(v, ω)는 상기 목표 경로를 따른 진행의 척도이며; dist(v, ω)는 가장 가까운 장애물까지의 거리이며; velocity(v, ω)는 주어진 후보 속도(v, ω)에 대한 로봇의 전진 속도이며; 그리고
    C ORCA 는 다음과 같이 정의되며:
    C ORCA V(v t - v pref ) + penalty + αd * d(P, v t )
    여기서, αd 및 αV는 가중치이며; v t 는 평가되는 후보 속도이고; v pref 는 상기 선호 속도이며; P는 VO들의 결합에 의해 형성된 다각형이고; d(P, v t )는 후보 속도가 VO들을 얼마나 위반하는지의 척도이고; penalty는 후보 속도 v t 가 VO를 위반할 때 부과되는 페널티 비용인, 로봇 시스템.
  24. 제23항에 있어서,
    비용 함수 d(P, v t )는 다각형 P의 둘레로부터 후보 속도 v t 가 도달한 궤도 t에 의해 정의된 포인트까지의 최소 거리의 함수인, 로봇 시스템.
  25. 복수의 로봇 및 감시 시스템을 포함하는 시스템에 있어서,
    상기 감시 시스템의 감시하의 하나 이상의 로봇은 제1항의 방법을 수행하는, 시스템.
KR1020207010892A 2017-09-22 2018-09-21 비용 결정면에서 최적의 상호 충돌 방지를 사용하는 동적 윈도우 접근법 KR102385257B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/712,256 2017-09-22
US15/712,256 US10429847B2 (en) 2017-09-22 2017-09-22 Dynamic window approach using optimal reciprocal collision avoidance cost-critic
PCT/US2018/052165 WO2019060679A1 (en) 2017-09-22 2018-09-21 DYNAMIC WINDOW APPROACH USING AN OPTIMUM RECIPROCAL COLLISION AVIATION COST CRITICAL

Publications (2)

Publication Number Publication Date
KR20200089654A KR20200089654A (ko) 2020-07-27
KR102385257B1 true KR102385257B1 (ko) 2022-04-11

Family

ID=64500438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207010892A KR102385257B1 (ko) 2017-09-22 2018-09-21 비용 결정면에서 최적의 상호 충돌 방지를 사용하는 동적 윈도우 접근법

Country Status (8)

Country Link
US (1) US10429847B2 (ko)
EP (1) EP3684664B1 (ko)
JP (1) JP6987226B2 (ko)
KR (1) KR102385257B1 (ko)
CN (1) CN111511620B (ko)
CA (1) CA3076498C (ko)
ES (1) ES2900495T3 (ko)
WO (1) WO2019060679A1 (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461912B2 (en) 2016-01-05 2022-10-04 California Institute Of Technology Gaussian mixture models for temporal depth fusion
WO2019070839A1 (en) * 2017-10-05 2019-04-11 California Institute Of Technology SIMULTANEOUS REPRESENTATION OF MOBILE AND STATIC OBSTACLES FOR AUTOMATICALLY CONTROLLED VEHICLES
US10831188B2 (en) * 2017-11-07 2020-11-10 Zoox, Inc. Redundant pose generation system
US10775790B2 (en) * 2018-02-09 2020-09-15 Baidu Usa Llc Methods and systems for model predictive control of autonomous driving vehicle
CN110941258A (zh) * 2018-09-21 2020-03-31 日本电产株式会社 移动体的控制方法及移动体的控制系统
US11724395B2 (en) 2019-02-01 2023-08-15 Locus Robotics Corp. Robot congestion management
JP7469850B2 (ja) * 2019-03-25 2024-04-17 本田技研工業株式会社 経路決定装置、ロボット及び経路決定方法
US11602857B2 (en) * 2019-04-05 2023-03-14 IAM Robotics, LLC Autonomous mobile robotic systems and methods for picking and put-away
CN110162063A (zh) * 2019-06-12 2019-08-23 北京洛必德科技有限公司 一种用于机器人自动充电的路径规划方法和装置
CN111813100B (zh) * 2019-07-04 2022-07-15 中国科学技术大学 一种局部路径规划算法及装置
CN110296698B (zh) * 2019-07-12 2023-04-28 贵州电网有限责任公司 一种以激光扫描为约束的无人机路径规划方法
CN110398964B (zh) * 2019-07-16 2022-02-01 浙江大学 一种低能量损耗机器人全覆盖路径规划方法及系统
CN110470306B (zh) * 2019-08-27 2023-03-10 中山大学 一种可保证连通性约束的基于深度强化学习的多机器人编队导航方法
CN110609559B (zh) * 2019-10-25 2020-08-25 江苏恒澄交科信息科技股份有限公司 用于无人船路径跟随和避障的改进dwa动态窗口法
CN113580155B (zh) * 2019-10-31 2023-07-18 灵动科技(北京)有限公司 自主移动装置及仓储物流系统
CN112744268B (zh) * 2019-10-31 2022-04-15 比亚迪股份有限公司 车辆的控制方法、装置和车辆
JP7450206B2 (ja) 2019-11-08 2024-03-15 三菱重工業株式会社 複数のビークルの移動制御方法、移動制御装置、移動制御システム、プログラム及び記録媒体
CN110727272B (zh) * 2019-11-11 2023-04-18 广州赛特智能科技有限公司 一种多台机器人的路径规划调度系统及方法
CN111060116B (zh) * 2019-12-04 2023-07-18 江西洪都航空工业集团有限责任公司 一种基于视觉的草场自主建图系统
CN111367283B (zh) * 2020-03-11 2023-04-14 郴州职业技术学院 一种基于障碍物构型重构的无人车避障方法及系统
CN111399506B (zh) * 2020-03-13 2023-04-25 大连海事大学 一种基于动力学约束的全局-局部混合无人船路径规划方法
CN111580518B (zh) * 2020-05-12 2022-08-02 哈尔滨工程大学 一种基于改进果蝇优化和动态窗口法的无人艇分层避障方法
CN111709633B (zh) * 2020-06-09 2022-09-06 吉林大学 一种碰撞危险度确定方法、装置、设备以及可存储介质
CN111665847A (zh) * 2020-06-24 2020-09-15 上海应用技术大学 一种基于模糊逻辑的动态窗口避障算法
CN113960995A (zh) * 2020-07-20 2022-01-21 炬星科技(深圳)有限公司 一种避障规划方法、系统及设备
CN111951552B (zh) * 2020-08-11 2021-10-15 腾讯科技(深圳)有限公司 一种自动驾驶中风险管理的方法以及相关装置
US11741564B2 (en) 2020-09-11 2023-08-29 Locus Robotics Corp. Sequence adjustment for executing functions on hems in an order
US20220083062A1 (en) 2020-09-11 2022-03-17 Locus Robotics Corp. Robot navigation management between zones in an environment
US11550827B2 (en) * 2020-09-22 2023-01-10 International Business Machines Corporation Graph enabled location optimization
CN112241171A (zh) * 2020-10-09 2021-01-19 国网江西省电力有限公司检修分公司 一种可绕障碍的轮式机器人直线轨迹跟踪方法
US11524846B2 (en) 2020-10-19 2022-12-13 Gideon Brothers d.o.o. Pose determination by autonomous robots in a facility context
CN112330959B (zh) * 2020-10-30 2022-02-22 东北大学 一种用于无人驾驶车辆的最优对等碰撞避免方法
CN112526991B (zh) * 2020-11-25 2022-05-24 中国科学技术大学 机器人运动方法、装置、电子设备及存储介质
CN112378408B (zh) * 2020-11-26 2023-07-25 重庆大学 一种实现轮式移动机器人实时避障的路径规划方法
CN112327885B (zh) * 2020-12-01 2024-04-09 大连海事大学 一种无人船自适应全局-局部混合路径规划的方法
CN112798304A (zh) * 2020-12-07 2021-05-14 北京云迹科技有限公司 一种机器人避让性能测试方法及装置
CN112486183B (zh) * 2020-12-09 2022-11-18 上海机器人产业技术研究院有限公司 一种室内移动机器人的路径规划算法
CN112506199B (zh) * 2020-12-12 2022-12-02 江西洪都航空工业集团有限责任公司 一种基于动态窗口法且适用于阿克曼模型机器人的局部路径规划方法
CN112612295B (zh) * 2020-12-23 2022-07-12 长光卫星技术股份有限公司 一种遥感卫星地面站测控和数传资源自动分配方法
CN113156933B (zh) * 2020-12-30 2022-05-03 徐宁 一种机器人行进控制系统和方法
RU2769710C1 (ru) * 2021-01-14 2022-04-05 Автономная некоммерческая образовательная организация высшего образования «Сколковский институт науки и технологий» Способ построения маршрута движения и управления движением мобильного сервисного робота в торговом помещении
CN113253717B (zh) * 2021-03-17 2022-10-11 武汉科技大学 一种基于动态障碍物的室内移动机器人局部路径规划方法
CN113050646B (zh) * 2021-03-22 2022-09-23 西安工业大学 一种用于室内移动机器人动态环境路径规划方法
JP2022157259A (ja) * 2021-03-31 2022-10-14 株式会社小松製作所 システム、方法および作業車両
WO2022232415A1 (en) * 2021-04-28 2022-11-03 Rutgers, The State University Of New Jersey Reactive collision avoidance for autonomous vehicles considering physical constraints
US20220363273A1 (en) * 2021-05-13 2022-11-17 Ford Global Technologies, Llc Scenario Discriminative Hybrid Motion Control for Mobile Robots
CN113295167B (zh) * 2021-05-14 2022-07-15 山东新一代信息产业技术研究院有限公司 一种室内机器人避障方法
CN113296521B (zh) * 2021-05-26 2021-11-05 紫清智行科技(北京)有限公司 一种基于动态窗口的障碍物局部避障方法
CN113341991B (zh) * 2021-06-18 2022-08-09 重庆大学 一种基于动态窗口和冗余节点过滤的路径优化方法
CN114019912B (zh) * 2021-10-15 2024-02-27 上海电机学院 一种群体机器人运动规划控制方法及系统
WO2023076242A1 (en) * 2021-10-29 2023-05-04 Rutgers, The State University Of New Jersey Collision-free dynamic window approach for moving obstacles
CN114200943A (zh) * 2021-12-13 2022-03-18 哈尔滨工业大学芜湖机器人产业技术研究院 一种动态避让方法及移动机器人
CN114237256B (zh) * 2021-12-20 2023-07-04 东北大学 一种适用于欠驱动机器人的三维路径规划与导航方法
CN114326720B (zh) * 2021-12-20 2023-08-22 上海大学 一种无人艇实时避障方法及系统
WO2023136020A1 (en) * 2022-01-13 2023-07-20 Nec Corporation Pathfinding apparatus, pathfinding method, and non-transitory computer-readable storage medium
GB2620909A (en) * 2022-07-04 2024-01-31 Opteran Tech Limited Method and system for determining the structure, connectivity and identity of a physical or logical space or attribute thereof
CN115345450A (zh) * 2022-07-27 2022-11-15 北京极智嘉科技股份有限公司 容器搬运任务的分配方法及装置
CN115016510A (zh) * 2022-08-08 2022-09-06 武汉工程大学 一种机器人导航避障方法、装置以及存储介质
EP4332712A1 (en) * 2022-08-29 2024-03-06 Nokia Technologies Oy Autonomous vehicle control
US20240135585A1 (en) * 2022-10-21 2024-04-25 Dexterity, Inc. Camera calibration process and interface
CN115542953B (zh) * 2022-12-05 2023-03-24 广东电网有限责任公司东莞供电局 一种基于无人机的巡检方法、装置、设备以及介质
CN116533236B (zh) * 2023-05-09 2024-04-12 北京航空航天大学 一种基于离散工作空间的服务机器人操作评估策略

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150284010A1 (en) * 2013-09-16 2015-10-08 Disney Enterprises, Inc. Shared control of semi-autonomous vehicles including collision avoidance in multi-agent scenarios
US20170029213A1 (en) * 2015-07-31 2017-02-02 Scenic Technology Corporation Robotic navigation utilizing semantic mapping

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5006988A (en) 1989-04-28 1991-04-09 University Of Michigan Obstacle-avoiding navigation system
KR100843085B1 (ko) 2006-06-20 2008-07-02 삼성전자주식회사 이동 로봇의 격자지도 작성 방법 및 장치와 이를 이용한영역 분리 방법 및 장치
JP5080333B2 (ja) 2007-04-06 2012-11-21 本田技研工業株式会社 自律移動体のための物体認識装置
US8060306B2 (en) 2007-10-04 2011-11-15 Deere & Company Method and system for obstacle avoidance for a vehicle
KR101362961B1 (ko) 2009-08-31 2014-02-12 니토 로보틱스 인코퍼레이티드 이동 로봇 환경의 실시간 위치 측정 및 매핑을 위한 방법 및 장치
US8209143B1 (en) 2009-09-15 2012-06-26 Google Inc. Accurate alignment of multiple laser scans using a template surface
DE102010012749A1 (de) 2010-03-25 2011-09-29 Kuka Laboratories Gmbh Verfahren zum Betreiben eines autonomen Flurförderfahrzeugs
US9067320B2 (en) 2010-06-09 2015-06-30 Disney Enterprises, Inc. Robotic texture
US8723872B2 (en) 2010-06-09 2014-05-13 Disney Enterprises, Inc. Display with robotic pixels
AU2011305154B2 (en) 2010-09-24 2015-02-05 Irobot Corporation Systems and methods for VSLAM optimization
US8688275B1 (en) 2012-01-25 2014-04-01 Adept Technology, Inc. Positive and negative obstacle avoidance system and method for a mobile robot
WO2014202258A1 (en) 2013-06-21 2014-12-24 National University Of Ireland, Maynooth A method for mapping an environment
US9329597B2 (en) * 2014-01-17 2016-05-03 Knightscope, Inc. Autonomous data machines and systems
KR101664582B1 (ko) 2014-11-12 2016-10-10 현대자동차주식회사 자율주행차량의 주행경로 생성장치 및 방법
JP2017004373A (ja) 2015-06-12 2017-01-05 株式会社リコー 情報処理装置、情報処理プログラム、および情報処理システム
FR3048517B1 (fr) * 2016-03-07 2022-07-22 Effidence Robot autonome motorise avec anticipation d'obstacle
US20170270466A1 (en) 2016-03-18 2017-09-21 Jusda International Logistics (TAIWAN) CO.,LTD Method and system using with automated guided vehicle
CN106156742A (zh) * 2016-07-06 2016-11-23 尚艳燕 一种平衡车障碍物规避方法和装置
US10108194B1 (en) 2016-09-02 2018-10-23 X Development Llc Object placement verification
US10650270B2 (en) 2017-04-21 2020-05-12 X Development Llc Methods and systems for simultaneous localization and calibration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150284010A1 (en) * 2013-09-16 2015-10-08 Disney Enterprises, Inc. Shared control of semi-autonomous vehicles including collision avoidance in multi-agent scenarios
US20170029213A1 (en) * 2015-07-31 2017-02-02 Scenic Technology Corporation Robotic navigation utilizing semantic mapping

Also Published As

Publication number Publication date
JP6987226B2 (ja) 2021-12-22
ES2900495T3 (es) 2022-03-17
CN111511620A (zh) 2020-08-07
WO2019060679A1 (en) 2019-03-28
EP3684664B1 (en) 2021-11-03
KR20200089654A (ko) 2020-07-27
US10429847B2 (en) 2019-10-01
JP2020534621A (ja) 2020-11-26
CA3076498C (en) 2022-10-18
CA3076498A1 (en) 2019-03-28
US20190094866A1 (en) 2019-03-28
EP3684664A1 (en) 2020-07-29
CN111511620B (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
KR102385257B1 (ko) 비용 결정면에서 최적의 상호 충돌 방지를 사용하는 동적 윈도우 접근법
KR102385253B1 (ko) 배제 구역과의 다중 해상도 스캔 매칭
KR102442241B1 (ko) 로봇 충전기 도킹 로컬화
KR102497430B1 (ko) 로봇 충전기 도킹 제어
US11493925B2 (en) Robot obstacle collision prediction and avoidance
NZ764668B2 (en) Robot charger docking control

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