KR102502325B1 - 컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진 - Google Patents
컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진 Download PDFInfo
- Publication number
- KR102502325B1 KR102502325B1 KR1020217011385A KR20217011385A KR102502325B1 KR 102502325 B1 KR102502325 B1 KR 102502325B1 KR 1020217011385 A KR1020217011385 A KR 1020217011385A KR 20217011385 A KR20217011385 A KR 20217011385A KR 102502325 B1 KR102502325 B1 KR 102502325B1
- Authority
- KR
- South Korea
- Prior art keywords
- zone
- space
- rule
- robots
- robot
- Prior art date
Links
- 230000003190 augmentative effect Effects 0.000 title description 5
- 239000003550 marker Substances 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000013507 mapping Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims description 18
- 230000000875 corresponding effect Effects 0.000 claims description 17
- 230000033001 locomotion Effects 0.000 claims description 12
- 230000006399 behavior Effects 0.000 claims description 7
- 230000002596 correlated effect Effects 0.000 claims description 7
- 230000000051 modifying effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 17
- 238000013459 approach Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 15
- 239000000047 product Substances 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000026058 directional locomotion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 102000010410 Nogo Proteins Human genes 0.000 description 1
- 108010077641 Nogo Proteins Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0234—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control 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/0291—Fleet control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control 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/0291—Fleet control
- G05D1/0297—Fleet control by controlling means in a control room
-
- G05D2201/0216—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
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)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Game Theory and Decision Science (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Electromagnetism (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
공간 내에서의 로봇 내비게이션을 조절하기 위해 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템 및 방법은, 공간 내에 배치되는 적어도 하나의 기준 마커에 의해, 공간 내에서 구역을 정의하는 것, 규칙 - 규칙은 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 구역과 연관시키는 것, 및 규칙과 일치하는 구역 내의 하나 이상의 로봇을 동작시키는 것을 포함한다.
Description
본 출원은 2018년 9월 19일자로 출원된 미국 특허 출원 일련 번호 제16/135,329호에 대한 우선권의 이점을 주장하는데, 이 특허 문헌은 참조에 의해 본원에 통합된다.
본 발명은 로봇 내비게이션(robot navigation)을 조절하는 것에 관한 것으로, 더욱 상세하게는, 로봇 내비게이션을 조절하기 위한 컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진(zone engine)에 관한 것이다.
택배 배달(home delivery)을 위해 인터넷을 통해 제품을 주문하는 것은 매우 인기있는 쇼핑의 방식이다. 그러한 주문을 시의 적절하고 정확하며 효율적인 방식으로 이행하는 것은, 최소한으로 말하더라도, 논리적으로 도전 과제이다. 가상 쇼핑 카트에서 "계산(check out)" 버튼을 클릭하는 것은 "주문"을 생성한다. 주문은 특정한 주소로 발송될 아이템(item)의 목록을 포함한다. "이행"의 프로세스는, 대형 창고(warehouse)에서 이들 아이템을 물리적으로 취하거나 또는 "피킹하고(picking)", 그들을 포장하고, 그들을 지정된 주소로 출하하는 것을 수반한다. 따라서, 주문 이행 프로세스의 중요한 목표는, 가능한 한 짧은 시간 내에 많은 아이템을 출하하는 것이다.
주문 이행 프로세스는, 통상적으로, 주문에서 열거되는 것들을 비롯한, 많은 제품을 포함하는 대형 창고에서 이루어진다. 따라서, 주문 이행의 작업 중에는, 주문에서 열거된 다양한 아이템을 찾아서 수집하기 위해 창고를 횡단하는 것이 있다. 또한, 궁극적으로 출하될 제품은, 그들이 출하를 위해 쉽게 회수될(retrieved) 수 있도록, 먼저 창고에서 수령되어 창고 전체에 걸쳐 정돈된 양식으로 보관 용기(storage bin)에 보관 또는 "배치"될 필요가 있다.
대형 창고에서는, 배달 및 주문되고 있는 상품(goods)은 창고에서 서로로부터 매우 멀리 떨어져 보관될 수 있고 많은 수의 다른 상품 사이에서 산재될 수 있다. 주문 이행 프로세스에서, 상품을 배치하고 피킹하기 위해 사람 오퍼레이터만을 사용하는 것은, 오퍼레이터가 많이 걷는 것을 필요로 하고 비효율적이고 시간 소모적일 수 있다. 이행 프로세스의 효율성이 단위 시간당 출하되는 아이템의 수의 함수이기 때문에, 시간이 증가하는 것은 효율성을 감소시킨다.
효율성을 증가시키기 위해, 로봇이 인간의 기능을 수행하도록 사용될 수도 있거나 또는 그들이 인간의 활동을 보완하도록 사용될 수도 있다. 예를 들면, 로봇은 창고 전체에 걸쳐 산재된 다양한 위치에 다수의 아이템을 "배치"하도록 또는 포장 및 출하를 위해 다양한 위치로부터 아이템을 "피킹(pick)"하도록 지정될 수도 있다. 피킹 및 배치는 로봇 단독으로 또는 인간 오퍼레이터의 지원을 받아 이루어질 수도 있다. 예를 들면, 피킹 동작의 경우, 인간 오퍼레이터는 선반(shelf)으로부터 아이템을 피킹하여 그들을 로봇 상에 배치할 것이거나, 또는, 배치 동작의 경우, 인간 오퍼레이터는 로봇으로부터 아이템을 피킹하여 그들을 선반 상에 배치할 것이다.
로봇이 오퍼레이터 및 다른 로봇 둘 모두와 나란히 창고 공간을 동시에 내비게이팅하는 한, 다양한 사이즈의 공간 및 교통 부하에서, 순간적인 로봇 위치에 따라 충돌 위험성이 증가되거나 또는 감소될 수 있다. 예를 들면, 주문 이행 동작 동안, 로봇은 충돌 위험성이 최소인 크고 트래픽이 낮은 공간과 충돌 위험성이 높은 좁고 트래픽이 높은 공간 사이를 내비게이팅할 수도 있다. 추가적으로, 건설, 유지 보수, 내비게이팅 불가능한 장애물, 변위된 제품, 팔레트, 용기(bin), 또는 선반, 또는 다른 그러한 일시적 또는 영구적 장애가 창고 환경에 도입되는 경우, 로봇 내비게이션이 영향을 받을 수도 있다.
본원에서는, 로봇 내비게이션을 조절하기 위한 컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진용 시스템 및 방법이 제공된다.
하나의 양태에서, 공간 내에서의 로봇 내비게이션을 조절하기 위해 공간 내의 구역을 상황에 맞게(contextually) 매핑하기 위한 방법이 제공된다. 방법은, 공간 내에 배치되는 적어도 하나의 기준 마커(fiducial marker)에 의해, 공간 내에서 구역을 정의하는 것을 포함한다. 방법은 또한 규칙을 구역과 관련시키는 것을 포함하는데, 규칙은 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시한다. 방법은 또한 규칙과 일치하는 구역 내의 하나 이상의 로봇을 동작시키는 것을 포함한다.
몇몇 실시형태에서, 규칙은 구역이 개방되어 있는지 또는 폐쇄되어 있는지의 여부, 구역의 타입, 구역의 최대 점유율, 구역의 최대 속도, 구역의 트래픽 흐름 방향성, 구역에 진입하거나 또는 빠져나갈 때의 정지 및 대기 거동, 구역의 정의가 동적으로 업데이트되었는지의 여부, 구역의 만료, 또는 이들의 조합 중 적어도 하나를 지시한다. 몇몇 실시형태에서, 관련시키는 단계는, 구역을 적어도 하나의 기준 마커 및 규칙과 상관시키는 룩업 테이블을 생성하는 것을 더 포함한다. 몇몇 실시형태에서, 방법은 또한 하나 이상의 추가적인 규칙을 구역과 관련시키는 것을 포함하는데, 추가적인 규칙은 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시한다. 몇몇 실시형태에서, 방법은 또한 추가적인 규칙과 일치하는 구역 내의 하나 이상의 로봇을 동작시키는 것을 포함한다. 몇몇 실시형태에서, 추가적인 규칙은, 구역이 개방되어 있는지 또는 폐쇄되어 있는지의 여부, 구역의 타입, 구역의 최대 점유율, 구역의 최대 속도, 구역의 트래픽 흐름 방향성, 구역에 진입하거나 또는 빠져나갈 때의 정지 및 대기 거동, 구역의 정의가 동적으로 업데이트되었는지의 여부, 구역의 만료, 또는 이들의 조합 중 적어도 하나를 지시한다.
몇몇 실시형태에서, 하나 이상의 추가적인 규칙을 관련시키는 단계는, 구역을 적어도 하나의 기준 마커, 규칙, 및 추가적인 규칙과 상관시키는 룩업 테이블을 생성하는 것을 더 포함한다. 몇몇 실시형태에서, 방법은 또한 제2 구역에 대한 구역의 중첩 또는 인접성 중 적어도 하나를 검출하는 것을 포함한다. 몇몇 실시형태에서, 방법은 또한 규칙의 값과 제2 구역의 대응하는 규칙의 대응하는 값 사이의 충돌을 식별하는 것을 포함한다. 몇몇 실시형태에서, 방법은 또한 구역 및 제2 구역에 공통인 하나 이상의 공유된 기준 마커에 의해 정의되는 중첩 구역과의 관련화를 위한 충돌 해결 규칙(conflict-resolved rule)을 생성하는 것을 포함한다. 몇몇 실시형태에서, 충돌 해결 규칙을 생성하는 단계는 또한 값 및 대응하는 값 중 더 높은 것 또는 더 낮은 것을 선택하는 것을 포함한다. 몇몇 실시형태에서, 충돌 해결 규칙을 생성하는 단계는 또한 값과 대응하는 값 사이의 목표 값을 정의하는 것을 포함한다. 몇몇 실시형태에서, 충돌 해결 규칙을 생성하는 단계는 또한, 수반되는 값 공차(accompanying value tolerance)가 값 및 대응하는 값 둘 모두를 포괄하도록 목표 값을 수반되는 값 공차와 관련시키는 것을 포함한다.
몇몇 실시형태에서, 방법은 또한 적어도 하나의 기준 마커의 검출된 재배치 및/또는 재배향에 응답하여 공간 내의 구역을 자동적으로 재정의하는 것을 포함한다. 몇몇 실시형태에서, 방법은 또한, 로봇, 창고 관리 시스템, 유저, 또는 외부 데이터 소스 중 하나 이상으로부터 수신되는 데이터에 응답하여 규칙을 자동적으로 수정하는 것 또는 추가적인 규칙을 자동적으로 추가하는 것 중 적어도 하나를 포함한다. 몇몇 실시형태에서, 공간 내에서의 적어도 하나의 기준 마커의 위치는 공간에 의해 정의되는 좌표 시스템의 좌표의 세트에 의해 표현된다. 몇몇 실시형태에서, 공간 내의 적어도 하나의 기준 마커는 기준 마커에 대한 상대적 위치를 갖는 포즈(pose)와 상관되는데, 상대적 위치는 공간에 의해 정의되는 좌표 시스템의 좌표의 세트에 의해 표현된다. 몇몇 실시형태에서, 구역의 경계는 포즈에 의해 적어도 부분적으로 정의된다.
몇몇 실시형태에서, 동작시키는 단계는, 공간 내의 하나 이상의 로봇의 위치를, 하나 이상의 로봇으로부터 중앙 컨트롤러로, 주기적으로 보고하는 것을 더 포함한다. 몇몇 실시형태에서, 동작시키는 단계는, 구역 내의 하나 이상의 로봇의 보고된 위치에 응답하여, 중앙 컨트롤러에 의해, 하나 이상의 로봇에게 규칙에 의해 지시되는 대로 동작할 것을 지시하는 것을 더 포함한다. 몇몇 실시형태에서, 공간 내의 하나 이상의 로봇의 위치는 적어도 하나의 기준 마커를 판독하는 것에 의해 결정되지 않는다. 몇몇 실시형태에서, 동작시키는 단계는, 하나 이상의 로봇의 각기 각각의 로봇에 의해, 공간 내의 로봇의 위치를 주기적으로 검출하는 것을 더 포함한다. 몇몇 실시형태에서, 동작시키는 단계는, 구역 내의 로봇의 위치를 검출하는 것에 응답하여, 규칙에 의해 지시되는 대로 로봇을 동작시키는 것을 더 포함한다. 몇몇 실시형태에서, 공간 내의 하나 이상의 로봇의 위치는 적어도 하나의 기준 마커를 판독하는 것에 의해 결정되지 않는다.
다른 양태에서, 공간 내에서의 로봇 내비게이션을 조절하기 위해 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템이 제공된다. 시스템은 프로세서를 포함한다. 시스템은 또한, 프로세서에 의해 실행될 때, 시스템으로 하여금, 공간 내에 위치되는 적어도 하나의 기준 마커에 의해, 공간 내에서 구역을 정의하게 하고, 규칙 - 규칙은 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 구역과 관련시키게 하고, 규칙과 일치하는 구역 내의 하나 이상의 로봇을 동작시키게 하는 명령어를 저장하는 메모리를 포함한다.
몇몇 실시형태에서, 메모리는, 프로세서에 의해 실행될 때, 시스템으로 하여금, 구역을 적어도 하나의 기준 마커 및 규칙과 상관시키는 룩업 테이블을, 메모리에서, 생성하게 하는 명령어를 추가로 저장한다. 몇몇 실시형태에서, 메모리는, 프로세서에 의해 실행될 때, 시스템으로 하여금, 하나 이상의 추가적인 규칙 - 추가적인 규칙은 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 구역과 관련시키게 하고, 추가적인 규칙과 일치하는 구역 내의 하나 이상의 로봇을 동작시키게 하는 명령어를 추가로 저장한다. 몇몇 실시형태에서, 메모리는, 프로세서에 의해 실행될 때, 시스템으로 하여금, 구역을 적어도 하나의 기준 마커, 규칙, 및 추가적인 규칙과 상관시키는 룩업 테이블을, 메모리에서, 생성하게 하는 명령어를 추가로 저장한다. 몇몇 실시형태에서, 메모리는, 프로세서에 의해 실행될 때, 시스템으로 하여금, 적어도 하나의 기준 마커의 검출된 재배치 및/또는 재배향에 응답하여, 공간 내의 구역을 자동적으로 재정의하게 하는 명령어를 추가로 저장한다. 몇몇 실시형태에서, 메모리는 프로세서에 의해 실행될 때, 시스템으로 하여금, 로봇, 창고 관리 시스템, 유저, 또는 외부 데이터 소스 중 하나 이상으로부터 수신되는 데이터에 응답하여, 규칙을 자동적으로 수정하는 것 또는 추가적인 규칙을 자동적으로 추가하는 것 중 적어도 하나를 하게 하는 명령어를 추가로 저장한다. 몇몇 실시형태에서, 공간 내의 하나 이상의 로봇의 위치는 적어도 하나의 기준 마커를 판독하는 것에 의해 결정되지 않는다. 하나의 양태에서, 본 발명은 방법을 특징으로 한다.
본 발명의 이들 및 다른 피쳐는 다음의 상세한 설명 및 첨부의 도면으로부터 명백해질 것인데, 첨부의 도면에서:
도 1은 주문 이행 창고의 상부 평면도(top plan view)이다;
도 2a는 도 1에서 도시되는 창고에서 사용되는 로봇 중 하나의 베이스의 정면 입면도(front elevational view)이다;
도 2b는 도 1에서 도시되는 창고에서 사용되는 로봇 중 하나의 베이스의 사시도이다;
도 3은, 틀(armature)로 외장된(outfitted) 그리고 도 1에서 도시되는 선반의 전방에 주차된 도 2a 및 도 2b의 로봇의 사시도이다;
도 4는 로봇 상의 레이저 레이더를 사용하여 생성되는 도 1의 창고의 부분적인 맵이다;
도 5는 창고 전체에 걸쳐 산재되어 있는 기준 마커를 위치 결정하기 위한 그리고 기준 마커 포즈를 저장하기 위한 프로세스를 묘사하는 플로우차트이다;
도 6은 기준 식별 대 포즈 매핑의 테이블이다;
도 7은 용기 위치(bin location) 대 기준 식별 매핑의 테이블이다;
도 8은 제품 SKU 대 포즈 매핑 프로세스를 묘사하는 플로우차트이다;
도 9는 복수의 구역을 갖는 주문 이행 창고의 상부 평면도이다;
도 10은 대응하는 구역 속성을 갖는 구역 ID 대 기준 ID 매핑의 테이블이다;
도 11은 중첩 구역 사이의 충돌 해결을 위한 방법을 묘사하는 플로우차트이다;
도 12는 예시적인 컴퓨팅 시스템의 블록도이다; 그리고
도 13은 예시적인 분산 네트워크의 네트워크 다이어그램이다.
도 2a는 도 1에서 도시되는 창고에서 사용되는 로봇 중 하나의 베이스의 정면 입면도(front elevational view)이다;
도 2b는 도 1에서 도시되는 창고에서 사용되는 로봇 중 하나의 베이스의 사시도이다;
도 3은, 틀(armature)로 외장된(outfitted) 그리고 도 1에서 도시되는 선반의 전방에 주차된 도 2a 및 도 2b의 로봇의 사시도이다;
도 4는 로봇 상의 레이저 레이더를 사용하여 생성되는 도 1의 창고의 부분적인 맵이다;
도 5는 창고 전체에 걸쳐 산재되어 있는 기준 마커를 위치 결정하기 위한 그리고 기준 마커 포즈를 저장하기 위한 프로세스를 묘사하는 플로우차트이다;
도 6은 기준 식별 대 포즈 매핑의 테이블이다;
도 7은 용기 위치(bin location) 대 기준 식별 매핑의 테이블이다;
도 8은 제품 SKU 대 포즈 매핑 프로세스를 묘사하는 플로우차트이다;
도 9는 복수의 구역을 갖는 주문 이행 창고의 상부 평면도이다;
도 10은 대응하는 구역 속성을 갖는 구역 ID 대 기준 ID 매핑의 테이블이다;
도 11은 중첩 구역 사이의 충돌 해결을 위한 방법을 묘사하는 플로우차트이다;
도 12는 예시적인 컴퓨팅 시스템의 블록도이다; 그리고
도 13은 예시적인 분산 네트워크의 네트워크 다이어그램이다.
본 개시 및 그 다양한 피쳐 및 유리한 세부 사항은, 첨부의 도면에서 설명되고 및/또는 예시되며 다음의 설명에서 상세하게 설명되는 비제한적인 실시형태 및 예를 참조하여 더욱 완전하게 설명된다. 도면에서 예시되는 피쳐는 반드시 일정한 비율로 묘화되는 것은 아니며, 하나의 실시형태의 피쳐는, 비록 본원에서 명시적으로 언급하지 않더라도, 숙련된 기술자가 인식할 바와 같이, 다른 실시형태와 함께 활용될 수도 있다는 것을 유의해야 한다. 널리 공지된 컴포넌트 및 프로세싱 기술의 설명은 본 개시의 실시형태를 불필요하게 모호하게 하지 않도록 생략될 수도 있다. 본원에서 사용되는 예는, 본 개시가 실시될 수도 있는 방식의 이해를 용이하게 하도록 그리고 기술 분야의 숙련된 자가 본 개시의 실시형태를 실시하는 것을 추가로 가능하게 하도록 의도되는 것에 불과하다. 따라서, 본원의 예 및 실시형태는 본 개시의 범위를 제한하는 것으로 해석되어서는 안된다. 또한, 동일한 참조 번호는 도면 중 여러 가지 도면 전체에 걸쳐 유사한 부분을 나타낸다는 것을 유의한다.
본 발명은 로봇 내비게이션을 조절하기 위한 컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진에 관한 것이다. 임의의 특정한 로봇 애플리케이션으로 제한되는 것은 아니지만, 본 발명이 사용될 수도 있는 하나의 적절한 애플리케이션은 주문 이행이다. 구역 엔진에 대한 컨텍스트를 제공하기 위해, 이 애플리케이션에서의 로봇의 사용이 설명될 것이지만, 그러나 그 애플리케이션으로 제한되지는 않는다.
도 1을 참조하면, 통상적인 주문 이행 창고(10)는, 주문에서 포함될 수 있는 다양한 아이템으로 채워진 선반(12)을 포함한다. 동작에서, 창고 관리 서버(15)로부터의 주문(16)의 착신 스트림이 주문 서버(14)에 도달한다. 주문 서버(14)는, 다른 것들 중에서도, 유도 프로세스(induction process) 동안 로봇(18)에 대한 할당을 위해, 주문을 우선 순위화하고 그룹화할 수도 있다. 로봇이 오퍼레이터에 의해 유도됨에 따라, 프로세싱 스테이션(예를 들면, 스테이션(100))에서, 주문(16)은 실행을 위해 로봇(18)에게 무선으로 할당되고 전달된다. 주문 서버(14)는, 창고 관리 시스템 서버(15) 및 창고 관리 소프트웨어와 상호 운용하도록 구성되는 별개의 소프트웨어 시스템을 갖는 별개의 서버일 수도 있거나 또는 주문 서버 기능성은 창고 관리 소프트웨어로 통합될 수도 있고 창고 관리 서버(15) 상에서 실행될 수도 있다는 것이 기술 분야의 숙련된 자에 의해 이해될 것이다.
바람직한 실시형태에서, 도 2a 및 도 2b에서 도시되는 로봇(18)은 레이저 레이더(22)를 구비하는 자율형 바퀴식 베이스(autonomous wheeled base)(20)를 포함한다. 베이스(20)는 또한, 로봇(18)이 주문 서버(14) 및/또는 다른 로봇으로부터 명령어를 수신하는 것 및 그들로 데이터를 송신하는 것을 가능하게 하는 트랜스시버(도시되지 않음), 및 디지털 광학 카메라(24a 및 24b)의 쌍을 특징으로 한다. 로봇 베이스는 또한, 자율형 바퀴식 베이스(20)에 전력을 공급하는 배터리를 재충전하기 위한 전기 충전 포트(26)를 포함한다. 베이스(20)는 또한, 로봇의 환경을 나타내는 정보를 캡쳐하기 위해 레이저 레이더 및 카메라(24a 및 24b)로부터 데이터를 수신하는 프로세서(도시되지 않음)를 특징으로 한다. 도 3에서 도시되는 바와 같이, 창고(10) 내의 내비게이션과 관련되는 다양한 작업을 실행하기 위해, 뿐만 아니라, 선반(12) 상에 배치되는 기준 마커(30)로 내비게이팅하기 위해, 프로세서와 함께 동작하는 메모리(도시되지 않음)가 존재한다. 기준 마커(30)(예를 들면, 이차원 바코드)는 주문되는 아이템의 용기/위치에 대응한다. 본 발명의 내비게이션 접근법은 도 4 내지 도 8과 관련하여 이하에서 상세하게 설명된다. 기준 마커는 또한 본 발명의 양태에 따라 충전 스테이션을 식별하기 위해 사용되며, 그러한 충전 스테이션 기준 마커에 대한 내비게이션은 주문되는 아이템의 용기/위치로의 내비게이션과 동일하다. 일단 로봇이 충전 스테이션으로 이동하면, 로봇을 충전 스테이션과 도킹시키기 위해 정확한 내비게이션 접근법이 사용되며 그러한 내비게이션 접근법은 하기에서 설명된다.
다시 도 2b를 참조하면, 베이스(20)는 아이템을 운반하기 위해 토트(tote) 또는 용기가 보관될 수 있는 상부 표면(32)을 포함한다. 또한, 복수의 교환 가능한 틀(40) 중 임의의 하나와 맞물리는 커플링(34)이 도시되는데, 틀(40) 중 하나는 도 3에서 도시된다. 도 3의 특정한 틀(40)은, 아이템을 수용하는 토트(44)를 운반하기 위한 토트 홀더(42)(이 경우 선반), 및 태블릿(48)을 지지하기 위한 태블릿 홀더(46)(또는 랩탑/다른 유저 입력 디바이스)를 특징으로 한다. 몇몇 실시형태에서, 틀(40)은 아이템을 운반하기 위한 하나 이상의 토트를 지지한다. 다른 실시형태에서, 베이스(20)는 수용된 아이템을 운반하기 위한 하나 이상의 토트를 지지한다. 본원에서 사용될 때, 용어 "토트"는, 화물 홀더, 용기(bin), 케이지, 선반(shelve), 아이템이 매달릴 수 있는 막대, 캐디(caddy), 상자(crate), 받침대(rack), 스탠드, 트레슬(trestle), 컨테이너, 박스, 캐니스터(canister), 용기(vessel), 및 저장소(repository)를 포함하지만, 그러나 이들로 제한되지는 않는다.
로봇(18)이, 현재의 로봇 기술로, 창고(10) 주위를 움직이는 데 탁월하지만, 오브젝트의 로봇 조작과 관련되는 기술적인 어려움에 기인하여, 선반으로부터 아이템을 신속하고 효율적으로 피킹하고 그들을 토트(44)에 배치하는 것은 잘 하지 못한다. 아이템을 피킹하는 더욱 효율적인 방식은, 통상적으로 사람인 로컬 오퍼레이터(50)를 사용하여 주문된 아이템을 선반(12)으로부터 물리적으로 제거하고 그것을 로봇(18) 상에, 예를 들면, 토트(44) 내에 배치하는 작업을 실행하는 것이다. 로봇(18)은, 로컬 오퍼레이터(50)가 판독할 수 있는 태블릿(48)(또는 랩탑/다른 유저 입력 디바이스)을 통해, 또는 로컬 오퍼레이터(50)에 의해 사용되는 핸드헬드 디바이스로 주문을 송신하는 것에 의해, 로컬 오퍼레이터(50)에게 주문을 전달한다.
주문 서버(14)로부터 주문(16)을 수신하면, 로봇(18)은, 예를 들면, 도 3에서 도시되는 바와 같이, 제1 창고 위치로 진행한다. 그것은, 메모리에 저장되어 있는 그리고 프로세서(32)에 의해 실행되는 내비게이션 소프트웨어에 기초하여 그렇게 한다. 내비게이션 소프트웨어는, 레이저 레이더(22)에 의해 수집되는 바와 같은, 환경에 관한 데이터, 특정한 아이템이 발견될 수 있는 창고(10) 내의 한 위치에 대응하는 기준 마커(30)의 기준 식별자(identification: "ID")를 식별하는 메모리(34) 내의 내부 테이블, 및 내비게이팅할 카메라(24a 및 24b)에 의존한다.
올바른 위치(포즈)에 도달하면, 로봇(18)은 아이템이 보관되어 있는 선반(12)의 전방에 그 자신을 주차하고, 로컬 오퍼레이터(50)가 선반(12)으로부터 그 아이템을 회수하여 그것을 토트(44)에 배치할 때까지 대기한다. 로봇(18)이 회수할 다른 아이템을 갖는다면, 로봇(18)은 그들 위치로 진행한다. 그 다음, 로봇(18)에 의해 회수되는 아이템(들)은, 그들이 포장되어 출하되는 도 1의 프로세싱 스테이션(100)으로 전달된다. 프로세싱 스테이션(100)이 이 도면과 관련하여 아이템을 유도 및 하역(unloading)/포장할 수 있는 것으로 설명되었지만, 그것은, 아이템이 스테이션에서 유도되도록 또는 하역/포장되도록, 구성될 수도 있다, 즉, 그들은 단일의 기능을 수행하도록 제한될 수도 있다.
기술 분야의 숙련된 자는 각각의 로봇이 하나 이상의 주문을 이행하고 있을 수도 있고 각각의 주문은 하나 이상의 아이템으로 구성될 수도 있다는 것을 이해할 것이다. 통상적으로, 몇몇 형태의 경로 최적화 소프트웨어가 효율성을 증가시키기 위해 포함될 것이지만, 그러나 이것은 본 발명의 범위를 벗어나며 따라서 본원에서는 설명되지 않는다.
본 발명의 설명을 단순화하기 위해, 단일의 로봇(18) 및 인간 오퍼레이터(50)가 설명된다. 그러나, 도 1로부터 명백한 바와 같이, 통상적인 이행 동작은, 주문의 연속하는 스트림을 채우기 위해 많은 로봇 및 오퍼레이터가 창고 내에서 서로의 사이에서 작업하는 것을 포함한다.
본 발명의 기준선 내비게이션 접근법(baseline navigation approach) 뿐만 아니라, 아이템이 위치되는 창고 내의 기준 마커와 관련되는 기준 ID/포즈에 대한 회수될 아이템의 SKU의 의미론적 매핑이, 도 4 내지 도 8과 관련하여 하기에서 상세하게 설명된다.
하나 이상의 로봇(18)을 사용하여, 창고(10)의 맵이 생성되어야만 하고 창고 전체에 걸쳐 산재되는 다양한 기준 마커의 위치가 결정되어야만 한다. 이것을 행하기 위해, 로봇(18) 중 하나 이상은, 그들이 창고를 내비게이팅함에 따라, 미지의 환경의 맵을 구성하거나 또는 업데이트하는 것의 계산 상의 문제인 동시적 위치 인식 및 매핑(simultaneous localization and mapping; SLAM) 및 자신의 레이저 레이더(22)를 활용하여, 맵(10a)(도 4)을 구축하고/업데이트한다. 널리 사용되는 SLAM 근사 해법은, 입자 필터 및 확장된 칼만(Kalman) 필터를 포함한다. SLAM GMapping 접근법이 바람직한 접근법이지만, 그러나, 임의의 적절한 SLAM 접근법이 사용될 수 있다.
로봇(18)은, 레이저 레이더가 환경을 스캔할 때 자신이 수신하는 반사에 기초하여, 로봇(18)이 공간 전체에 걸쳐 주행할 때, 자신의 레이저 레이더(22)를 활용하여, 개방된 공간(112), 벽(114), 오브젝트(116), 및 공간 내의 다른 정적인 장애물, 예컨대 선반(12)을 식별하는, 창고(10)의 맵(10a)을 생성한다.
맵(10a)을 구성하는 동안(또는 그 이후 업데이트하는 동안), 하나 이상의 로봇(18)은 카메라(26)를 사용하여 창고(10)를 통해 내비게이팅하여 환경을 스캔하여, 내부에 아이템이 보관되는, 32 및 34(도 3)와 같은 용기 근처의 선반 상의, 창고 전반에 걸쳐 산재되어 있는 기준 마커(이차원 바코드)의 위치를 결정한다. 로봇(18)은 원점(110)과 같은, 참조를 위한 원점 또는 공지된 시작 지점을 사용한다. 로봇(18)이 자신의 카메라(26)를 사용하는 것에 의해 기준 마커(30), 예컨대 기준 마커(30)(도 3 및 도 4)의 위치가 결정되면, 원점(110)에 대한 창고 내에서의 위치가 결정된다.
휠 인코더 및 헤딩 센서의 사용에 의해, 벡터(120) 및 창고(10) 내에서의 로봇의 위치가 결정될 수 있다. 기준 마커/이차원 바코드의 캡쳐된 이미지 및 그것의 공지된 사이즈를 사용하여, 로봇(18)은 기준 마커/이차원 바코드에 대한 방위 및 그로부터의 거리, 즉 벡터(130)를 결정할 수 있다. 벡터(120 및 130)가 공지되면, 원점(110)과 기준 마커(30) 사이의 벡터(140)가 결정될 수 있다. 벡터(140) 및 로봇(18)에 대한 기준 마커/이차원 바코드의 결정된 방위로부터, 기준 마커(30)에 대한 사원수(quaternion)(x, y, z, ω)에 의해 정의되는 포즈(위치 및 방위)가 결정될 수 있다.
기준 마커 위치 결정 프로세스를 설명하는 플로우차트(200)(도 5)가 설명된다. 이것은, 초기 매핑 모드에서 그리고 로봇(18)이 피킹, 배치 및/또는 다른 작업을 수행하는 동안 창고에서 새로운 기준 마커를 조우할 때, 수행된다. 단계(202)에서, 로봇(18)은 카메라(26)를 사용하여 이미지를 캡쳐하고 단계(204)에서 캡쳐된 이미지 내에서 기준 마커를 검색한다. 단계(206)에서, 기준 마커가 이미지에서 발견되면(단계(204)), 로봇(18)의 메모리(34) 내에 위치되는 기준 테이블(300)(도 6) 내에 기준 마커가 이미 저장되어 있는지가 결정된다. 기준 정보가 이미 메모리에 저장되어 있는 경우, 플로우차트는 단계(202)로 복귀하여 다른 이미지를 캡쳐한다. 그것이 메모리 내에 없다면, 상기에서 설명되는 프로세스에 따라 포즈가 결정되고, 단계(208)에서, 그것은 기준 포즈 룩업 테이블(300)에 추가된다.
각각의 로봇의 메모리에 저장될 수도 있는 룩업 테이블(300)에서는, 각각의 기준 마커에 대한, 기준 식별자 1, 2, 3, 등등, 및 각각의 기준 식별자와 관련되는 기준 마커/바코드에 대한 포즈가 포함된다. 포즈는, 방위 또는 사원수(x, y, z, ω)와 함께 창고 내에서의 x, y, z 좌표로 구성된다.
각각의 로봇의 메모리 내에 또한 저장될 수도 있는 다른 룩업 테이블(400)(도 7)은, 특정한 기준 ID(404), 예를 들면 번호 "11"에 상관되는, 창고(10) 내의 용기 위치(예를 들면, 402a-f)의 목록이다. 이 예에서 용기 위치는 일곱 개의 영숫자 문자로 구성된다. 처음 여섯 개의 문자(예를 들면, L01001)는 창고 내의 선반 위치와 관련이 있고 마지막 문자(예를 들면, A-F)는 선반 위치에서의 특정한 용기를 식별한다. 이 예에서는, 기준 ID "11"과 관련되는 여섯 개의 상이한 용기 위치가 존재한다. 각각의 기준 ID/마커와 관련되는 하나 이상의 용기가 존재할 수도 있다.
영숫자 용기 위치는, 아이템이 보관되어 있는 창고(10) 내의 물리적 위치에 대응하는 것으로, 사람, 예를 들면, 오퍼레이터(50)(도 3)가 이해 가능하다. 그러나, 그들은 로봇(18)에게는 의미가 없다. 위치를 기준 ID에 매핑하는 것에 의해, 로봇(18)은 테이블(300)(도 6) 내의 정보를 사용하여 기준 ID의 포즈를 결정할 수 있고, 그 다음, 본원에서 설명되는 바와 같이 포즈로 내비게이팅할 수 있다.
본 발명에 따른 주문 이행 프로세스는 플로우차트(500)(도 8)에서 묘사된다. 단계(502)에서, 창고 관리 시스템(15)으로부터, 주문 서버(14)는, 회수될 하나 이상의 아이템으로 구성될 수도 있는 주문을 획득한다. 주문 할당 프로세스는 상당히 복잡하며 본 개시의 범위를 벗어난다는 것을 유의해야 한다. 하나의 그러한 주문 할당 프로세스는, 2016년 9월 1일자로 출원된 발명의 명칭이 "Order Grouping in Warehouse Order Fulfillment Operations"인 공동 소유된 미국 특허 출원 일련 번호 제15/807,672호에서 설명되는데, 이 특허 출원은 그 전체가 참조에 의해 본원에 통합된다. 로봇은, 단일의 로봇이, 용기 또는 구획당 하나씩, 다수의 주문을 실행하는 것을 허용하는 토트 어레이를 구비할 수도 있다는 것을 또한 유의해야 한다. 그러한 토트 어레이의 예는 2016년 9월 1일자로 출원된 발명의 명칭이 "Item Storage Array for Mobile Base in Robot Assisted Order-Fulfillment Operations"인 미국 특허 출원 일련 번호 제15/254,321호에서 설명되는데, 이 특허 문헌은 그 전체가 참조에 의해 본원에 통합된다.
도 8을 계속 참조하면, 단계(504)에서, 아이템의 SKU 번호(들)는, 창고 관리 시스템(15)에 의해 결정되고, SKU 번호(들)로부터, 용기 위치(들)가 단계(506)에서 결정된다. 그 다음, 주문에 대한 용기 위치의 목록이 로봇(18)으로 송신된다. 단계(508)에서, 로봇(18)은 용기 위치를 기준 ID에 상관시키고, 기준 ID로부터, 단계(510)에서, 각각의 기준 ID의 포즈가 획득된다. 단계(512)에서, 로봇(18)은 도 3에서 도시되는 바와 같이 포즈로 내비게이팅하는데, 여기서 오퍼레이터는 적절한 용기로부터 회수될 아이템을 피킹하고 그것을 로봇 상에 배치할 수 있다.
창고 관리 시스템(15)/주문 서버(14)에 의해 획득되는, SKU 번호 및 용기 위치와 같은 아이템 고유의 정보가 로봇(18) 상의 태블릿(48)으로 송신될 수 있고, 그 결과, 로봇이 각각의 기준 마커 위치에 도착할 때, 오퍼레이터(50)는 회수될 특정한 아이템을 통지받을 수 있다.
SLAM 맵과 기준 ID의 포즈가 공지되면, 로봇(18)은 다양한 로봇 내비게이션 기술을 사용하여 기준 ID 중 임의의 하나로 쉽게 내비게이팅할 수 있다. 바람직한 접근법은, 창고(10) 내의 개방된 공간(112) 및 벽(114), 선반(예컨대 선반(12)) 및 다른 장애물(116)의 지식이 주어지면, 기준 마커 포즈에 대한 초기 경로를 설정하는 것을 수반한다. 로봇이 자신의 레이저 레이더(26)를 사용하여 창고를 순회하기(traverse) 시작함에 따라, 그것은, 고정된 것이든 또는 동적이든 간에, 자신의 경로 내에 임의의 다른 장애물, 예컨대 다른 로봇(18) 및/또는 오퍼레이터(50)가 존재하는지를 결정하고, 기준 마커의 포즈까지의 자신의 경로를 반복적으로 업데이트한다. 로봇은 약 50 밀리초마다 한 번씩 자신의 경로를 다시 계획하여, 장애물을 회피하면서 가장 효율적이고 효과적인 경로를 지속적으로 검색한다.
SLAM 내비게이션 기술과 조합한 제품 SKU/기준 ID 대 기준 포즈 매핑 기술 - 이들 둘 모두 본원에서 설명됨 - 을 통해, 로봇(18)은, 창고 내에서의 위치를 결정하기 위해 그리드 라인 및 중간 기준 마커를 수반하는 통상적으로 사용되는 더욱 복잡한 내비게이션 접근법을 사용할 필요 없이, 창고 공간을 아주 효율적으로 그리고 효과적으로 내비게이팅할 수 있다.
상기에서 설명되는 바와 같이, 사람, 기기, 및 다른 장애물과 함께 공간 내의 다양한 구역을 내비게이팅하는 다수의 로봇에서 발생할 수 있는 문제는 충돌 및/또는 교통 체증의 위험성을 제시할 수 있다. 로봇 내비게이션의 동적인 구역 기반의 규정은, 구역 엔진에 의해 제공되는 컨텍스트 증강 맵 계층에 의해 영향을 받을 수 있다. 구역 엔진은, 몇몇 실시형태에서, 창고 관리 시스템(15) 또는 주문 서버(14)의 모듈일 수 있거나, 또는, 몇몇 실시형태에서, 독립형 구역 서버 또는 시스템에서 구현될 수 있다. 구역 엔진은 SLAM 맵에 대응하는 컨텍스트 증강 맵 계층(context-augmented map layer; CAML)을 제공하기 위해 사용되며 내비게이션 공간을 순회함에 있어서의 사용을 위해 로봇(18)의 메모리 내에 저장된다. CAML은 동적으로 정의 가능한 복수의 구역을 포함할 수 있는데, 각각은 각각의 구역 내의 임의의 로봇에 의한 관찰을 위해 하나 이상의 내비게이션 규칙과 관련된다. 가장 높은 레벨에서, 하기에서 더 상세하게 설명되는 바와 같이, 내비게이션 규칙은 두 가지 카테고리에서 정의될 수 있다: 1) 로봇(18)이 진입 및 순회하도록 허용되는 "개방" 또는 내비게이팅 가능한 구역 및 2) 로봇(18)이 순회 또는 진입하도록 허용되지 않는 "폐쇄된" 또는 "출입금지(nogo)" 구역. 각각의 구역에 대응하는 다른 규정 및 제약은, 예를 들면, 속도 제한, 속도 최소치, 이동 방향에 대한 제한, 최대 점유율 제한, 정지 및 대기 요건, 또는 내비게이션 공간(예를 들면, 창고(10)) 내에서의 로봇 내비게이션 및 주행에 대한 임의의 다른 규정 또는 제한을 포함할 수 있다. 추가적으로, 구역은 규정/제한의 커스텀 구성 세트(custom configured set)를 제공받을 수 있거나 또는 구역은, 예를 들면, 출입금지 구역, 통로 구역, 일방 통행 구역(one-way zone), 도킹 구역, 대기행렬 구역(queueing zone), 포즈 구역과 같은 하나 이상의 미리 구성된 카테고리, 또는 임의의 다른 적절한 미리 구성된 카테고리로 할당될 수 있다. 더구나, 구역은 영구적일 수 있거나(예를 들면, 구역은 유저가 그것을 CAML로부터 삭제할 때까지 확립된 상태로 유지될 것임) 또는 일시적일 수 있다(예를 들면, 구역은 미리 결정된 시간 이후 또는 명시된 영역으로부터의 하나 이상의 기준 또는 오브젝트의 재배시 또는 제거시 만료될 것임).
더 일반적으로, CAML의 목적은 상기에서 설명되는 로봇(18)에 의해 사용되는 내비게이션 (SLAM) 맵에 유연한 계층의 메타 정보를 추가하는 것이다. 그러한 동적인 구역 기반의 내비게이션 규정을 통합하는 것에 의해, 로봇(18)은 그들의 위치의 맥락에 기초하여 적절하게 동작할 수 있다. 몇몇 실시형태에서, 이것은, 구역의 정의된 경계 내의 로봇의 거동에 영향을 끼치는 속성과 관련되는 구역 또는 영역을 사용하여 CAML이 맵을 효과적으로 "마크업" 하기 때문에, 달성된다.
일반적으로, 경계 지점을 둘러싸는 구역 경계는, 각각의 경계 지점의 위치 및 그들과 관련되는 임의의 버퍼 구역(예를 들면, 기준 마커와 그들과 관련되는 포즈 사이의 간격)을 결합하는 것에 의해 계산될 수 있다. 그 다음, 필요에 따라, 팽창, 수축, 또는 스큐잉(skewing) 속성이 계산된 경계 기하학적 형상에 적용될 수 있다. 몇몇 실시형태에서, 기준 마커가 사이트 '점유 그리드' (SLAM) 맵 상에 이미 위치되는 경우, 일반적으로 선반 또는 용기와 같은 어떤 속이 꽉 찬 그리고 통과 불가능한 장애물인 기준의 '전방의'(즉, 기준이 보이는 곳으로부터의) 영역 및 기준 뒤쪽의 영역의 방향성을 결정하기 위해, 기준 마커를 둘러싸는 영역은 분석될 수 있다. 몇몇 실시형태에서, 구역을 정의함에 있어서의 단순화를 위해 그리고 자동화를 용이하게 하기 위해, 구역을 정의하는 경계 지점을 제공하기 위해 기준의 세트가 사용될 때, 경계 지점 기준이 서로 '대면하는(facing)' 경우, 경계는 기준 사이의 공간을 둘러싸도록 묘화될 수 있고, 따라서, 정의된 구역으로서 빈 공간(clear-space) '통로(aisle)'를 캡쳐할 수 있다. 경계 지점 기준이 서로 등지는 경우, 경계는, 대신, 정의된 출입금지 구역으로서 기준이 장착되는 물리적 구조체(예를 들면, 선반, 용기, 등등)를 둘러쌀 수 있다. 몇몇 실시형태에서, 기준의 방위 및 그들의 개개의 구역에서의 물리적 구조체의 존재가 더 복잡한 기하학적 형상을 필요로 하는 경우 더 복잡한 경계가 생성될 수 있다. 예를 들면, 몇몇 실시형태에서, 다수의 통로에 걸쳐 있는 구역은 관련된 비어 있는(clear) 및 점유된 공간 구역으로 자동적으로 분해될 수 있다. 몇몇 실시형태에서, 그러한 분해는 로봇 시스템에 대해 내부적으로 따라서 구역을 정의하는 것을 담당하는 유저 또는 프로그래머에게 투명하게 수행될 수 있다.
일반적으로, 구역 엔진 시스템은, 궁극적으로 더 큰 그리드 맵 상의 데카르트 기준 프레임으로 매핑되지만, 경계 지점 기준 마커의 위치 결정에 기초하여 더 높은 레벨에서 정의되는 구역 정의를 사용하여 컨텍스트 증강 맵 계층을 제공할 수 있다. 유리하게는, 그러한 더 높은 레벨의 구역 정의를 제공하는 것에 의해, 몇몇 실시형태에서, 구역 경계는 필요에 따라 자동적으로 재계산될 수 있다. 따라서, 후속하는 맵 또는 맵 업데이트에 대해, 기준 경계 지점 위치가 변경된 경우, 그러면, 어떠한 유저 개입도 없이, 구역을 자동적으로 재배치하고 그들의 치수를 변경하는 것이 가능하다. 이것은, 예를 들면, 경계에 대한 사소한 변경으로부터, 기준(들)이 인접한 통로로 이동된 경우, 공간 내의 경계의 완전한 재배치까지의 범위에 걸칠 수도 있다. 특히, 그러한 배열은, 경계 지점 기준 마커에 따라 구역을 정의하는 것을 넘어서는 인간 상호 작용을 요구하지 않으면서, 구역의 자동 재구성 및 수정을 허용한다. 이것은, 구역이 데카르트 기준 프레임에서 유저 레벨에서 정의되는 경우보다 훨씬 더 유연하고 동적인 시스템을 허용한다.
몇몇 실시형태에서, 특정한 사이트 맵에 대한 원점에 기초하여 고정된 데카르트 좌표를 사용하여 구역이 적어도 부분적으로 정의될 수 있다는 것이 본 개시의 관점에서 명백할 것이다. 그러나, 이러한 접근법은 경계 지점 기준 마커를 사용하는 것보다 덜 유연하며, 어떠한 기준 마커도 이용 가능하지 않은 경우 및/또는 구역이 사이트의 물리적 인프라에 강하게 결부되고 따라서 시간이 지남에 따라 이동할 것으로 예상되지 않는 경우에만 적당하다.
도 9는 하나 이상의 구역(901, 903, 905, 907)을 갖는 샘플 내비게이션 공간(900)(예를 들면, 창고(10))을 예시한다. 각각의 구역은 하나 이상의 경계 지점(901a-b, 903a-d, 905a, 및 907a-d)에 의해 정의될 수 있는데, 각각의 경계 지점은 내비게이션 공간(900) 내의 기준 마커(30) 중 하나에 대응한다. 특히, 각각의 구역(901, 903, 905, 907)은 0 내지 n 개의 경계 지점(901a-b, 903a-d, 905a, 및 907a-d)의 세트에 의해 정의될 수 있다.
경계 지점(901a-b, 903a-d, 905a, 및 907a-d) 각각은 창고 내에 존재하는 기준 마커(30) 및/또는 상관된 포즈 위치에 대응하고, 그에 의해, 구역의 기하학적 형상을 적어도 부분적으로 정의한다. 특히, 상기에서 설명되는 바와 같이, 각각의 기준 마커(30)는 포즈와 상관될 수 있는데, 포즈는, 포즈와 관련되는 기준 마커(30)에 대한 내비게이션 공간(900) 내의 위치 및 방위를 포함할 수 있다. 게다가 상기에서 설명되는 바와 같이, 기준 마커(30)와 포즈 사이의 상관은 내비게이션 공간(900)을 통한 로봇(18)의 내비게이션을 돕고, 피킹, 충전 또는 다른 로봇(18) 활동을 용이하게 한다. 따라서, 유리하게는 기준 마커(30) 및/또는 포즈와 함께 경계 지점(901a-b, 903a-d, 905a, 및 907a-d)의 각각에 대응하는 것은, 상기에서 논의되는 바와 같이, 예를 들면, 기준 마커(30)의 움직임 및/또는 포즈에 응답하여, 구역의 자동적인, 동적인, 유연한 재구성을 제공한다. 더구나, 경계 지점(901a-b, 903a-d, 905a, 및 907a-d) 및 포즈가 기준 마커(30)에 상관되기 때문에, 세 개의 위치 및 방위 데이터 세트 모두는 이미 설명되고 내비게이션 시스템에 내장되어 동적으로 서로에 대해 업데이트할 것이다. 따라서, 임의의 변경(예를 들면, 기준 마커(30)의 재배치)은, 세 개 모두의 데이터 세트(기준 마커, 포즈 및 경계 지점)를 개별적으로 업데이트하는 비효율적이고 오류가 발생하기 쉬운 프로세스를 요구하기 보다는, 시스템 전체에 걸친 업데이트를 자동적으로 푸시할 수 있다.
일단 구역 경계 지점(901a-b, 903a-d, 905a, 및 907a-d)이 결정되면, 그러면, 최종 구역 기하학적 형상은 그들 경계 지점(901a-b, 903a-d, 905a, 및 907a-d)에 대한 기하학적 제약을 부여하는 것에 의해 영향을 받을 수 있다. 일반적으로 구역 기하학적 형상은 임의의 적절한 방식으로 결정될 수 있다. 예를 들면, 구역은 두 개 이상의 경계 지점에 의해 형성되는 에지로부터 하나 이상의 방향에서 확장될 수 있고, 단일의 경계 지점을 둘러싸도록 바깥쪽으로 확장하여 원형 또는 다각형 구역을 정의할 수 있고, 세 개 이상의 경계 지점에 의해 정의되는 둘레(perimeter) 내에서 구역을 형성할 수 있고, 및/또는 세 개 이상의 경계 지점에 의해 정의되는 둘레의 적어도 일부로부터 바깥쪽으로 확장될 수 있다. 각각의 경우에, 예를 들면, 구역이 지점 또는 에지로부터 확장되는 거리, 특정한 구역의 형상(예를 들면, 원형 또는 다각형), 및/또는 하나 이상의 에지의 형상(예를 들면, 볼록, 오목, 직선)과 같은 추가적인 정의가 제공될 수 있다.
예를 들면, 도 9에서 도시되는 바와 같이, 프리웨이 구역(freeway zone; 901)은 경계 지점(901a-b) 사이에서 형성되는 에지(902)로부터 창고(10)의 벽(또는 다른 영구적 구조체)을 향해 확장된다. 도 9에서 도시되는 바와 같이, 프리웨이 구역(901)은 실제 피킹 및 보관 선반(12) 외부의 상대적으로 넓은 노선(roadway)을 따라 확립된다. 프리웨이 구역(901)에는 충분한 공간이 있고 사람 및 로봇 트래픽이 적을 가능성이 있기 때문에, 프리웨이 구역(901) 내의 로봇(18)이 전속력으로 동작하면서 양방향 이동에 참가하는 것이 합리적일 수도 있다.
도 9에서 추가로 도시되는 바와 같이, 몇몇 실시형태에서, 일방 통행 구역(903)이 제공될 수 있다. 도 9에서 도시되는 바와 같이, 일방 통행 구역은, 예를 들면, (예를 들면, 경계 지점(903a-d) 사이에서 형성되는 구역(903)에서와 같이) 코너 경계 지점에 의해 정의되는 둘레 내부에 있을 수 있다. 일방 통행 구역(903)은, 예를 들면, 두 개의 밀접하게 배치된 선반(12) 사이의 좁은 통로와 같은 상대적으로 좁고 및/또는 더 높은 트래픽 영역일 수 있는데, 여기서 양방향 로봇 트래픽은 과도한 충돌 위험성 없이는 실현 불가능하다. 따라서, 도 9에서 도시되는 바와 같이, 일방 통행 구역(903)은, 로봇(18)이 경계 지점(903a 및 903b) 사이에서 확장되는 제1 에지(904a)에서 진입하고 경계 지점(903c 및 903d) 사이에서 확장되는 제2 에지(904b)에서 빠져나가는 것에 의해서만 구역을 순회할 수 있도록, CAML에서 제한될 수 있다. 추가적으로, 예를 들면, 일방 통행 구역(903)과 같은 좁고 붐비는 구역은 감소된 속도 제한을 추가로 부과하여, 인간 피커(picker) 및 로봇(18)이 같이 이탈(swerving) 또는 정지와 같은 충돌 회피 활동에 참가할 추가적인 시간을 제공할 수도 있다. 몇몇 실시형태에서, 일방 통행 구역(903)은 구역(903) 내의 혼잡을 완화하기 위해 최대 점유율 제한을 포함할 수 있다.
또한 도 9에서 도시되는 바와 같이, 충전 구역(905)은 하나 이상의 충전 스테이션을 둘러싸는 원형 구역 형상을 형성하기 위해 단일의 경계 지점(905a)으로부터 확장되는 미리 결정된 반경을 명시할 수 있다. 대안적으로, 몇몇 실시형태에서, 구역 형상은, 예를 들면, 직사각형, 정사각형, 임의의 다른 다각형, 타원, 또는 임의의 다른 적절한 형상, 또는 이들의 조합과 같은 경계 지점(905a)을 둘러싸는 임의의 적절한 형상으로서 지시될 수 있다. 로봇(18)이 주기적으로 재충전될 필요가 있기 때문에, 충전 스테이션의 뱅크는 통상적으로 높은 로봇 트래픽을 경험할 수 있다. 따라서, 충전 구역(905)은 상대적으로 낮은 속도 제한을 포함할 수도 있다. 더구나, 상기에서 설명되는 바와 같이, 몇몇 실시형태에서, 로봇(18)이 충전 스테이션에 접근함에 따라, 로봇을 충전 스테이션과 도킹하는 데 필요한 더욱 정밀한 위치 조정을 제공하기 위해 더욱 정확한 내비게이션 접근이 활성화될 수도 있다. 예를 들면, 몇몇 실시형태에서, 충전 구역(905) 내에서, 고정밀 기동(maneuver)(예를 들면, 로봇(18)과 충전 스테이션 사이의 도킹)을 위해 사용되는 로컬(x, y, z, ω) 좌표가 일반적인 내비게이션을 위해 사용되는 것보다 로봇(18)의 더 미세한 위치 조정을 제공하도록, 더욱 세분화된 로컬 좌표 시스템이 제공될 수 있다.
장애물 회피 구역(907)은, 도 9에서 도시되는 바와 같이, 몇몇 실시형태에서, 경계 지점(907a-d)에 의해 정의되는 둘레 내에서 점유되고 폐쇄된 것으로 정의될 수 있다. 몇몇 실시형태(도시되지 않음)에서, 장애물 회피 구역은 또한, 둘레를 적어도 부분적으로 둘러싸는 우회 경로를 정의할 수 있는데, 우회 경로는 둘레의 하나 이상의 에지로부터 바깥쪽으로 확장된다. 그러한 실시형태에서, 장애물 회피 구역은, 둘레 내에서 로봇 내비게이션을 금지하고 우회 경로를 따라 둘레를 순회할 것을 요구하는 내비게이션 규칙을 포함할 수 있다.
이제 도 10을 참조하면, 구역 속성 룩업 테이블(950)이 각각의 로봇(18)의 메모리에 저장될 수 있는데, 룩업 테이블(950)은 창고(10)와 같은 내비게이션 공간(900) 내의 각각의 구역(901, 903, 905, 및 907)의 목록을 포함한다. 각각의 구역(901, 903, 905, 및 907)은, 테이블에서, 그 각각의 구역(901, 903, 905, 및 907)과 관련되는 경계 지점(901a-b, 903a-d, 905a, 및 907a-d)으로서 식별되는 특정한 기준 ID(4-14)에 상관된다.
상기에서 설명되는 바와 같이, 다수의 속성 및/또는 내비게이션 규정/제약은 정의된 구역과 관련될 수 있는데, 그 중 일부는 필수일 수 있고 그 중 일부는 옵션 사항일 수 있다. 일반적으로, 필수이든 또는 옵션 사항이든 간에, 구역은 상호 배타적인 속성을 적용하지 않도록 정의되어야 한다. 예를 들면, 구역은 개방되는 것 및 폐쇄되는 것 둘 모두가 될 수 없다. 모든 구역에 할당 가능한 필수 속성의 예는, 구역 타입, 최대 점유율, 및 최대 속도 제한을 포함할 수 있다. 옵션 사항의 구역 속성의 예는 트래픽 흐름(예를 들면, 일방향 또는 양방향 트래픽, 진입 지점 및 종료 지점), 정지 및 대기, 동적 업데이트, 및 만료를 포함할 수 있다. 일반적으로, 타입은 정의되고 있는 구역의 카테고리 또는 타입(예를 들면, 개방, 폐쇄, 출입금지, 통로, 대기열, 도크, 또는 커스텀)을 식별한다. 각각의 타입은, 고정될 수도 있는 또는 유저에 의해 부분적으로 또는 전체적으로 편집 가능할 수도 있는 디폴트 속성 설정의 특정한 세트를 포함할 수도 있다. 추가적으로, 각각의 타입은 필수적인 및/또는 옵션 사항의 속성의 상이한 세트를 포함할 수도 있다.
다시 도 10의 구역 속성 룩업 테이블(950)을 참조하면, 테이블(950)은 속성 구역 ID, 경계 지점 ID, 개방/폐쇄, 구역 타입, 최대 점유율, 최대 속도, 트래픽 흐름, 정지 및 대기, 동적 업데이트 및 만료를 포함한다. 도 10에서 도시되는 바와 같이, 모든 구역 타입이 모든 속성을 포함하는 것은 아니다. 예를 들면, 일방 통행 구역만이 트래픽 흐름 속성의 값을 포함한다. 이들 속성은 하기에서 더 상세하게 설명된다.
개방/폐쇄 속성은 특정한 구역이 내비게이팅 가능한지 또는 로봇 진입에 대해 폐쇄되어 있는지를 지시한다. 더구나, 구역이 폐쇄되는 것으로 정의되는 경우, 물리적 장벽 때문에 구역이 닫혀 있는지 또는 원칙적으로 여전히 내비게이팅 가능한지의 여부를 나타내기 위해, 추가적인 "점유" 속성이 설정되어야만 한다. 물리적 장벽과 가상의 장벽 사이를 구별하는 것에 의해, 시스템은 비상 대응의 이벤트에서 적절한 지침을 제공할 수 있다. 예를 들면, 로봇이 폐쇄 구역에 배치될 수도 있거나 또는 우연히 폐쇄 구역 안으로 내비게이팅할 수도 있다. 그러한 시나리오에서, 로봇(18)은, 출입금지를 위반하지 않기 위해 구역을 벗어나려고 시도할지, 또는 제자리에 머물며 잠재적인 위험성을 피할지의 여부에 관한 지침을 제공받을 필요가 있다. 그러한 결정은, 로봇이 가능한 한 빠르고 효율적으로 점유되지 않은 폐쇄 구역을 떠날 수 있고, 반면 로봇이 장애물 또는 위험을 방지하기 위해 점유된 폐쇄 구역 내에서 정지 상태를 유지할 수 있도록, 점유 속성을 참조하여 이루어질 수 있다.
최대 점유 속성은 로봇(18)의 최대 수, 또는 대안적으로, 임의의 한 번에 구역에서 허용되는 로봇 및 인간의 최대 결합된 수를 지시한다. 충돌 및 혼잡 감소에 더하여, 최대 점유율 제한을 갖는 구역은 계획을 위한 더 높은 레벨의 안내를 제공할 수 있고, 그 결과, 경로 계획 및/또는 최적화 시스템이 다른 위치로 이동하는 도중에 그러한 구역을 통해 이동하는 로봇(18)을 선호하지 않는다. 따라서, 시스템은, 통상적으로 사용률이 높은 구역(예를 들면, 구역 내에서 아이템이 빈번하게 피크됨(picked))일 것 내에서 혼잡을 생성하는 이동 중인 로봇의 클러스터를 회피할 수 있다.
최대 속도 속성은 구역 내에서 동작하는 로봇(18)에 대한 최대 허용 가능한 속도를 지시한다. 예를 들면, 더 민감한 구역 타입(예를 들면, 대기열 또는 도크)에서, 또는 더 많은 보행량(foot traffic), 더 조밀한 공간을 갖는, 또는 그렇지 않으면 고속 동작에 적절하지 않은 영역에서 속도를 감소시키기 위해, 최대 로봇 동작 속도가 제한될 수 있다. 대안적으로, 로봇이 더 높은 속도가 달성될 수 있고 유지될 수 있는 '프리웨이' 구역을 사용하는 것을 허용하기 위해, 최대 속도가 또한 매우 높게 설정될 수 있다. 몇몇 실시형태에서, 프리웨이 구역은 별개의 구역 타입으로서 구성될 수 있다. 그러나, 몇몇 실시형태에서, 프리웨이 구역은, 별개의 타입이기 보다는, 대신, 높은 최대 허용 가능한 속도에 의해 암시될 수 있다는 것이 본 개시의 관점에서 명백할 것이다. 그러한 프리웨이 구역은, 예를 들면, 픽(pick)이 상당한 이동 거리만큼 이격되는 그리고 마지막에 그 거리의 일부가 직선의 넓은 통로를 따라 이어질 수 있는 더 큰 사이트에서 유리하다. 마찬가지로, 피킹 작업으로부터 하역 대기열, 유도 대기열, 또는 충전 도크까지 이동하는 것은, 상당한 이동 거리를 필요로 할 수 있으며 프리웨이 구역의 사용에 의해 촉진될 수도 있다.
트래픽 흐름 속성은 구역 내에서의 이동의 방향성을 지시할 수 있다. 흐름 속성은, 몇몇 실시형태에서, 도 10의 테이블에서 도시되는 바와 같이, 구역과 관련되는 에지 ID 목록의 쌍을 식별하는 것에 의해 확립될 수 있다. 일반적으로, 제1 에지 ID 목록은 구역에 대한 허용 가능한 '진입 에지'를 명시할 수 있고 제2 에지 ID 목록은 허용 가능한 '출구 에지'를 명시할 수 있다. 일단 소망되는 진입 에지 및 대응하는 출구 에지가 로봇(18)에 의해 선택되면, 예를 들면, 에지 둘 모두의 중심을 연결하는 것에 의해, 방향 벡터가 결정될 수 있다.
몇몇 실시형태에서, 흐름은 방향 속성 및 수반되는 공차 속성 값에 의해 결정될 수 있다. 방향 속성은 구역의 전역적 방위에 대한 로봇 이동 벡터(robot travel vector)의 목표 각도로서 표현될 수 있다. 수반되는 공차 속성 값은, 목표 방향 속성으로부터 허용 가능한 각도 편차를 나타낼 수 있다. 수반되는 공차 속성 값을 방향 속성과 결합하는 것에 의해, 허용 가능한 구역 내 이동 각도의 범위가 결정할 수 있다. 예를 들면, +/- 5°의 수반되는 공차 속성 값을 갖는 -90°의 방향 속성 값의 경우, 구역 내에서의 허용 가능한 로봇 이동 벡터는 -85°와 -95° 사이의 범위에 걸칠 수 있다.
정지 및 대기 속성은, 구역에 진입하거나 또는 빠져나가기 위해 에지를 횡단하기 이전에 특정한 구역의 하나 이상의 에지에서 로봇에 의한 정지 및 대기 거동을 지시할 수 있다. 정지 속성 그 자체는, 몇몇 실시형태에서, 정지의 지속 기간, 또는 진행(progress)이 재개될 수 있기 이전에 충족되어야만 하는 진행 조건(go condition)과 같은 관련된 속성을 포함할 수도 있다. 예를 들면, 정지 속성은, 주 통로와 선반 통로(shelving aisle) 사이의 교차로에서 사용될 수 있다. 그러한 실시형태에서, 로봇(18)은 교차하는 에지에서 정지할 것을 그리고 로봇에 대한 규정된 근접 범위 내에 다가오는 로봇 또는 사람의 트래픽이 없다는 것을 검증하기 위해 스캔을 수행할 것을 요구받을 것이다. 스캔이 클리어하면, 그러면 로봇(18)은 진행할 수 있고, 스캔이 다가오는 트래픽을 검출하는 경우, 로봇은, 교차로가 비어 있을 때까지, 시간의 규정된 기간을 대기하고, 그 다음, 다시 스캔해야만 한다.
동적 업데이트 속성은, 구역의 현재 위치, 사이즈 및 형상이 원래의 유저 정의 구역과 일치하는지의 여부 또는 구역이 시스템에 의해 동적으로 업데이트되었는지를 식별한다. 예를 들면, 구역과 관련되는 기준 마커 경계 지점 중 하나 이상이 창고 내의 새로운 물리적 위치로 이동되는 경우, 그 새로운 위치는 SLAM 맵 업데이트 동안 검출될 것이고, 따라서, 기준 마커 경계 지점의 위치를 자동적으로 업데이트할 것이고 구역의 사이즈, 형상, 및 위치에 대한 대응하는 업데이트로 귀결될 것이다. 따라서 동적 업데이트 속성은, 유저가 그러한 변경을 통지받을 수 있도록 또는 그러한 변경을 조회할 수 있도록, 유저 정의 구역이 업데이트되었는지 또는 업데이트되지 않았는지의 여부를 추적한다.
만료 속성은, 이 구역이 구역 서버에 의해 자동적으로 제거되거나 또는 재구성될 때까지 남은 시간을 지시한다. 예를 들면, 스케줄링된 유지 보수를 위해 차단되는 통로는, 스케줄링된 유지 보수가 완료될 때까지 시간의 규정된 기간 동안에만 차단될 것으로 예상될 수도 있다. 그러한 실시형태에서, 유지 보수 구역은 폐쇄 구역으로서 일시적으로 정의될 수 있고, 지정된 시간 기간이 만료된 이후, 구역은 다시 개방될 수 있다. 규정된 시간은, 몇몇 실시형태에서, 창고 관리 시스템에 저장되는 유지 보수 스케줄과 같은 다른 시스템 지식/이벤트에 기초할 수도 있다. 다른 예에서, 액체 유출(spill)에 기인하여 미끄러운 영역은, 규정된 시간 내에 청소될 것으로 예상될 수도 있다. 몇몇 실시형태에서, 만료 속성은, 예를 들면, 하나 이상의 로봇(18), 창고 관리 시스템, 유저, 또는 다른 데이터 소스(예를 들면, 액체 유출이 아직 청소되지 않았다는 것을 나타내는 로봇)에 의해 제공되는 데이터에 응답하여, 동적으로 업데이트될 수 있거나 또는 재설정될 수 있다.
몇몇 실시형태에서, 특정한 구역과 관련되는 임의의 추가적인 제약 및/또는 규정을 설명하기 위해, 추가적인 속성이 추가될 수 있다는 것이 본 개시의 관점에서 명백할 것이다. 또한, 하나 이상의 로봇(18), 창고 관리 시스템, 유저, 또는, 예를 들면, 인터넷, 공급 업체 데이터베이스, 고객 데이터베이스, 또는 임의의 다른 적절한 데이터 소스와 같은 다른 데이터 소스에 의해 제공되는 데이터에 응답하여, 임의의 속성이 동적으로 업데이트될 수 있다는 것이 본 개시의 관점에서 또한 명백할 것이다. 예를 들면, 몇몇 실시형태에서, 폐쇄 구역은 피킹 가능한(pickable) 재고 아이템을 포함하는 선반에 의해 점유될 수 있다. 그러한 구역은, 스톡 그 자체에 연결되는 데이터를 추적하기 위한 속성을 포함할 수 있는데, 여기서 그러한 데이터는 로봇 거동에 영향을 끼칠 것으로 예상된다. 예를 들면, 재고 아이템이 빠르게 이동하는지 또는 느리게 이동하는지(높은 수요인지 또는 낮은 수요인지)는, 아이템에 액세스하기 위해 로봇에 의해 사용되는 인접한 개방 구역에 영향을 끼칠 수도 있다. 따라서, 특정한 구역 내의 평균 재고가 빠르게 이동하는 경우, 구역의 최대 점유율은, 더 높은 로봇 스루풋을 제공하기 위해, 자동적으로 증가될 수도 있다. 증가된 로봇 및 인간 피커 트래픽의 결과로서, 개방 구역은, 충돌 및 혼잡 위험성을 감소시키기 위해 일방 통행 구역이 되도록, 또한 업데이트될 수 있다.
예를 들면, 다수의 선반 및 통로를 포괄하는 피킹 구역이 다수의 개방(통로) 및 폐쇄(선반) 구역으로 세분되는 경우와 같은, 임의의 구역이 부모 구역(parent zone) 및 하위 구역으로서 관련되는 경우, 각각의 구역 내에 포함되는 임의의 하위 구역 또는 각각의 구역이 속하는 부모 구역에 대한 각각의 구역의 관계를 포착하기 위해, 부모 참조 속성이 포함될 수 있다.
하나 이상의 구역이 교차하는 몇몇 실시형태에서, 쉽게 식별 가능한 부모-자식 관계가 없을 수도 있다. 그럼에도 불구하고, 속성의 교차하는 '중첩'은, 유효하고 충돌하지 않는 규칙을 가지도록 교차에 대해 해결되어야만 한다. 그러한 상황은 동일한 타입의 구역이 중첩되거나 또는 인접할 때 가장 자주 활동하기 시작한다. 그러나, 교차/중첩은 일반적으로 두 개 이상의 타입 사이에서 또는 전역적 속성의 특수한 로컬화된 버전을 갖는 구역에서 발생할 수 있다. 따라서, 구역 엔진 시스템은, 타입에 관계없이 그리고 교차로가 별개의 구역으로서 지정되는지 또는 그렇지 않은지의 여부에 관계없이, 교차 영역에 대한 속성의 단일의 유효한 세트를 생성하도록 구성될 수 있다.
몇몇 실시형태에서, 교차 속성을 결정하는 것은 도 11의 플로우차트에서 설명되는 바와 같은 2 단계 프로세스를 포함할 수 있다. 첫째, 구역 엔진 시스템이 두 개 이상의 중첩 구역의 속성 값 사이에서 하나 이상의 충돌을 식별할 수 있다(1201). 최초, 시스템은 중첩 구역 속성을 집성할 수 있다. 집성 동안, 각각의 중첩 구역과 관련되는 관련 속성은 비교되어 필터링될 수 있다. 예를 들면, 몇몇 실시형태에서, 중첩 구역 중 단지 하나에만 고유한 것으로 식별되는, 또는 교차로로부터 미리 결정된 거리보다 더 멀리 배치되는 임의의 경계 지점은 무관한 것으로 무시될 수 있다. 몇몇 실시형태에서, 중첩 구역 중 단지 하나에만 고유한 것으로 식별되는 임의의 속성은, 그들이 상호 배타적이지 않거나 또는 다른 그러한 속성과 충돌하지 않는 한, 교차 영역의 속성으로서 유지될 수 있거나 또는 적용 불가능한 것으로 일괄로 폐기될 수 있다. 대안적으로, 하나 이상의 미리 정의된 규칙에 따라, 선택된 고유의 속성만이 유지될 수 있다. 교차 영역의 모든 중첩 구역에 대해 동일하고 적용 가능한 것으로 식별되는 임의의 속성은, 그들이 상호 배타적이거나 또는 다른 그러한 속성과 충돌하지 않는 한, 교차 영역 내에서 적용 가능한 것으로 유지될 수 있다. 중첩 구역 중 적어도 두 개가 동일한 속성 또는 속성들에 대해 상이한 또는 상충되는 값을 포함하는 경우, 그들 값은 식별될 수 있고(1201) 충돌 해결의 제2 단계를 위해 추가로 프로세싱될 수 있다.
여전히 도 11을 참조하면, 충돌 해결은, 중첩 구역이 상이한 값을 할당받는 속성에 대한 충돌이 해결된 단일의 값을 평가하기 위해 사용될 수 있고, 그 다음 그것을 생성할 수 있다(1203). 일반적으로, 단일의 값은 원래의 구역 값과 호환되어야 한다. 그러한 속성은, 예를 들면, 속도 제한 및 점유율 제한을 포함할 수 있는데, 이들은 통상적으로 각각의 구역에 대해 구체적으로 할당되고 교차하는 상이한 정의를 가질 가능성이 있다. 그러한 속성은, 특히, 일방 통행 구역, 양방향 통행 구역, 및/또는 출입금지 구역이 교차하는 경우의 이동의 방향성을 또한 포함할 수 있다.
속도 제한 또는 점유율 제한과 같은 수량 값과 관련하여, 충돌 해결은 통상적으로 '캐치 올(catch-all)' 접근법을 통해 달성될 수 있다. 다시 도 11을 참조하면, 하나의 그러한 접근법은, 중첩 구역의 충돌하는 속성 값 중 최고치 또는 최저치를 선택하는 것(1205)을 포함할 수 있다. 예를 들면, 보수적인 전략은 최저 값 속성(예를 들면, 가장 낮은 최대 속도 또는 가장 낮은 최대 점유율)을 교차 구역에 적용할 수 있다. 보수적인 접근법은 로봇 사이의 사고/충돌의 위험성을 감소시킬 가능성이 있지만, 그러나 또한, 피킹 속도를 늦추고 피킹 효율성을 감소시킬 가능성이 있을 것이다. 대안적으로, 덜 보수적인 접근법은 (제공되는 값이 본질적으로 위험성한 조건을 생성하지 않는 한) 구역에 대해 가장 높은 속성 값을 디폴트로 할 수 있는데, 이것은 로봇 사이의 사고/충돌의 위험성을 약간 증가시킬 수도 있지만 그러나 더 빠르고 더 효율적인 피킹을 허용한다.
방향성 값과 같은 더 복잡한 충돌 해결과 관련하여, 속성 값에서의 공차는 성공적인 해결에 도움이 될 수 있다. 특히, 공차는, 허용 가능한 속성 값의 범위를 제공하는 것에 의해, 충돌하는 속성 값 범위 사이의 부분적인 중첩 - 그렇지 않으면 충돌이 해결 불가능할 것임 - 을 허용할 수 있다. 따라서, 도 11에서와 같이, 수반되는 값 공차가 중첩 구역의 속성 값을 포괄하도록 중첩 구역의 속성 값과 수반되는 값 공차 사이의 목표 값을 정의하는 것(1207)에 의해 충돌 해결이 달성될 수 있다. 예를 들면, 일방 통행 구역을 교차하는 경우, 방향성 값 범위의 중첩이 없는 한(예를 들면, 반대 방향 트래픽 흐름 방향성을 갖는 일방 통행 구역이 출구 에지를 공유하는 경우), 해결은 불가능하다. 그러한 해결 불가능한 충돌의 경우, 충돌은 구역 엔진에 의해 식별되어야만 하고 중첩 구역의 하나 이상의 속성을 수정하는 것에 의해 또는 유저에게 구역 맵을 재구성할 필요성을 경고하는 것에 의해 자동적으로 해결될 수 있다.
다른 구역의 경우, 그러한 공차는 하나의 구역으로부터 다음 번 구역으로의 로봇의 순회를 허용하도록 구성될 수 있다. 예를 들면, 두 개의 교차하는 일방 통행 구역을 갖는 실시형태에서, 하나는 90°(동쪽)의 방향 속성 값을 갖고 다른 하나는 방향 속성 값 135°(남동쪽)의 방향 속성 값을 갖는다. 공차 범위가 없으면, 이들 방향 값은 호환되지 않는다. 그러나, 각각의 구역 내에서 로봇의 최대 내비게이션 유연성을 촉진하기 위해, 공차 값은 안전하게 합리적인 한 높게 설정될 수 있다. 따라서, 일방 통행 구역에서, 로봇을 "올바른" 방향으로 계속해서 이동시키는 것과 관련되는 최대 공차 값이 사용될 수 있다. 그 목적을 위해, 그러한 공차 값은 목표 방향 속성 값에 대해 +/- 89°로 설정될 수 있다. 상기에서 설명되는 예를 참조하면, 그러한 공차는, 90°의 방향 속성 값을 갖는 제1 구역에 대해, 1° 내지 179° 사이의 방향성 운동의 범위, 그리고 135°의 방향 속성 값을 갖는 제2 구역에 대해, 46° 내지 224° 사이의 방향성 운동의 범위를 허용할 것이다. 이들 범위 사이의 중첩은 46° 내지 179°인데, 이것은 방향 속성 값 = 112.5° 및 공차 값 = +/- 66.5°의 해결된 속성으로서 교차 영역에 할당될 수 있다.
방향 제한 구역이 진입 및 출구 에지를 사용하여 정의되는 실시형태에서, 그들 교차 구역의 공유 에지 또는 공유 에지 부분에 대한 충돌 해결은 구역 정의의 구역 엔진 프로세싱의 일부로서 수행될 것이다. 예를 들면, 교차 구역에 대한 에지 정의가 차단 효과를 야기한다(예를 들면, 일방 통행 하위 구역에 대한 입구 에지가 통로의 중앙에 위치되고 부모 구역에 의해 동일한 통로 내에서 정의되는 출구 에지와 충돌함(또는 그 반대의 경우)). 그러한 경우, 구역 엔진은, 그러한 에지 속성이 존재하면, 충돌하지 않는 에지 속성에 대해 해결하려고 시도할 것이다. 어떠한 솔루션도 이용 가능하지 않는 경우, 유저는, 구역 맵이 재구성될 필요가 있다는 것을 통지받을 것이다.
몇몇 실시형태에서, 심지어 교차하지도 않고 부모-자식 관계도 갖지 않는 구역조차도 관련된 구역의 속성 수정을 요구하는 방식으로 서로 영향을 끼칠 수도 있다. 그러한 관계는 통상적으로 구역 근접성 및 그 근접 성질에 의해 영향을 받는 속성의 존재에 의해 정의된다. 몇몇 실시형태에서, 그러한 관계는, '폐쇄된'(예를 들면, 출입금지) 구역의 속성이 인접한 "개방" 구역의 속성에 영향을 끼치는 경우 발생할 수 있다. 예를 들면, 통로가 점유되지 않은 폐쇄 구역으로 지정되는 경우, 구역 엔진은, 출입금지 구역 주위를 순회하는 추가적인 로봇을 수용하기 위해, 출입금지 통로에 인접한 "개방" 통로 또는 통로들의 최대 점유율을 (자동적으로 또는 유저 지시에 응답하여) 수정할 수 있다. 더구나, 제품이 출입금지 구역으로부터 여전히 피킹되는 한, 출입 금지 구역 근처의 줄서서 대기하는 로봇을 수용하기 위해, 인접한 "개방" 통로 또는 통로들의 최대 점유율은 증가될 수 있다.
유사하게, 선반 구조체 또는 다른 아이템 재고 위치가 점유된 폐쇄 구역으로서 지정되고, 그 선반 구조체/재고 위치 상에 보관되는 하나 이상의 아이템이 수요가 높을 것이다는 것을, 구역 엔진이 픽 목록(pick-list) 분석을 통해 자동적으로 또는 유저 입력을 통해 결정하는 경우(예를 들면, 각각의 구매와 함께 제공될 무료 선물이 보관되는 경우 또는 높은 초기 판매가 예상되는 유행을 따르는 새로운 제품이 보관되는 경우), 구역 엔진은, 점유된 폐쇄 구역 주위를 순회하며 그 근처에서 줄서서 대기하는 추가적인 로봇을 수용하기 위해 선반 구조체/재고 위치에 인접한 "개방" 통로 또는 통로들의 최대 점유율을 (자동적으로 또는 유저 지시에 응답하여) 수정할 수 있다.
본 개시를 고려할 때, 예시적인 구역은 단지 예시 목적을 위해서만 상기에서 설명된다는 것 및 임의의 수의 기준 마커에 의해 정의되는, 그리고 임의의 수 또는 타입의 속성, 내비게이션 규정, 다른 구역에 대한 관계, 또는 제약을 갖는 임의의 사이즈 및 형상의 임의의 다른 구역이 다양한 실시형태에 따라 구현될 수 있다는 것이 본 개시의 관점에서 명백할 것이다.
비제한적인 예시적 컴퓨팅 디바이스
도 12는, 도 1 내지 도 11을 참조하여 상기에서 설명되는 바와 같은 다양한 실시형태에 따른, 사용될 수 있는 바와 같은 예시적인 컴퓨팅 디바이스(1010), 또는 그 일부의 블록도이다. 컴퓨팅 디바이스(1010)는 예시적인 실시형태를 구현하기 위한 하나 이상의 컴퓨터 실행 가능 명령어 또는 소프트웨어를 저장하기 위한 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함한다. 비일시적 컴퓨터 판독 가능 매체는, 하나 이상의 타입의 하드웨어 메모리, 비일시적인 유형의(tangible) 매체(예를 들면, 하나 이상의 자기 저장 디스크, 하나 이상의 광학 디스크, 하나 이상의 플래시 드라이브), 및 등등을 포함할 수 있지만, 그러나 이들로 제한되지는 않는다. 예를 들면, 컴퓨팅 디바이스(1010)에 포함되는 메모리(1016)는 본원에서 개시되는 동작을 수행하기 위한 컴퓨터 판독 가능 및 컴퓨터 실행 가능 명령어 또는 소프트웨어를 저장할 수 있다. 예를 들면, 메모리는 도 1 내지 도 11과 관련하여 논의되는 바와 같이 다양한 개시된 동작을 수행하도록 프로그래밍되는 소프트웨어 애플리케이션(1040)을 저장할 수 있다. 컴퓨팅 디바이스(1010)는, 메모리(1016)에 저장되는 컴퓨터 판독 가능 및 컴퓨터 실행 가능 명령어 또는 소프트웨어를 실행하기 위한, 구성 가능한 및/또는 프로그래밍 가능한 프로세서(1012) 및 관련된 코어(1014), 및 옵션 사항으로, 하나 이상의 추가적인 구성 가능한 및/또는 프로그래밍 가능한 프로세싱 디바이스, 예를 들면, 프로세서(들)(1012') 및 관련된 코어(들)(1014')(예를 들면, 다수의 프로세서/코어를 갖는 계산 디바이스(computational device)의 경우) 및 시스템 하드웨어를 제어하기 위한 다른 프로그램을 또한 포함할 수 있다. 프로세서(1012) 및 프로세서(들)(1012') 각각은 단일의 코어 프로세서 또는 다중 코어(1014 및 1014') 프로세서일 수 있다.
컴퓨팅 디바이스의 인프라 및 리소스가 동적으로 공유될 수 있도록 컴퓨팅 디바이스(1010)에서 가상화가 활용될 수 있다. 다수의 프로세서 상에서 실행되는 프로세스를 핸들링하기 위해 가상 머신(1024)이 제공될 수 있고, 그 결과, 프로세스는, 다수의 컴퓨팅 리소스보다는, 단지 하나의 컴퓨팅 리소스만을 사용하고 있는 것으로 보인다. 하나의 프로세서와 함께 다수의 가상 머신이 또한 사용될 수 있다.
메모리(1016)는 DRAM, SRAM, EDO RAM, 및 등등과 같은, 그러나 이들로 제한되지는 않는 계산 디바이스 메모리 또는 랜덤 액세스 메모리를 포함할 수 있다. 메모리(1016)는 다른 타입의 메모리를 또한 포함할 수 있거나, 또는 이들의 조합을 포함할 수 있다.
유저는, 예시적인 실시형태에 따라 제공될 수 있는 하나 이상의 유저 인터페이스(1002)를 디스플레이할 수 있는 컴퓨터 모니터와 같은 시각적 디스플레이 디바이스(1001, 111A-D)를 통해 컴퓨팅 디바이스(1010)와 상호 작용할 수 있다. 컴퓨팅 디바이스(1010)는 유저로부터 입력을 수신하기 위한 다른 I/O 디바이스, 예를 들면, 키보드 또는 임의의 적절한 다지점 터치 인터페이스(1018), 포인팅 디바이스(1020)(예를 들면, 마우스)를 포함할 수 있다. 키보드(1018) 및 포인팅 디바이스(1020)는 시각적 디스플레이 디바이스(1001)에 커플링될 수 있다. 컴퓨팅 디바이스(1010)는 다른 적절한 종래의 I/O 주변장치를 포함할 수 있다.
컴퓨팅 디바이스(1010)는, 본원에서 개시되는 동작을 수행하는 컴퓨터 판독 가능 명령어 및/또는 소프트웨어 및 데이터를 저장하기 위한, 하드 드라이브, CD-ROM, 또는 다른 컴퓨터 판독 가능 매체와 같은 그러나 이들로 제한되지는 않는 하나 이상의 스토리지 디바이스(1034)를 또한 포함할 수 있다. 예시적인 스토리지 디바이스(1034)는, 예시적인 실시형태를 구현하는 데 필요한 임의의 적절한 정보를 저장하기 위한 하나 이상의 데이터베이스를 또한 저장할 수 있다. 데이터베이스는 데이터베이스에서 하나 이상의 아이템을 추가하기 위해, 삭제하기 위해, 및/또는 업데이트하기 위해 임의의 적절한 시간에 자동적으로 또는 수동으로 업데이트될 수 있다.
컴퓨팅 디바이스(1010)는, 표준 전화 회선, LAN 또는 WAN 링크(예를 들면, 802.11, T1, T3, 56kb, X.25), 광대역 연결(예를 들면, ISDN, 프레임 릴레이, ATM), 무선 연결, 컨트롤러 영역 네트워크(controller area network; CAN), 또는 상기한 것 중 임의의 것 또는 모두의 어떤 조합을 포함하는, 그러나 이들로 제한되지는 않는 다양한 연결을 통해, 하나 이상의 네트워크, 예를 들면, 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 인터넷과, 하나 이상의 네트워크 디바이스(1032)를 통해 인터페이싱하도록 구성되는 네트워크 인터페이스(1022)를 포함할 수 있다. 네트워크 인터페이스(1022)는 내장형 네트워크 어댑터, 네트워크 인터페이스 카드, PCMCIA 네트워크 카드, 카드 버스 네트워크 어댑터, 무선 네트워크 어댑터, USB 네트워크 어댑터, 모뎀 또는, 본원에서 설명되는 동작을 수행할 수 있으며 통신할 수 있는 임의의 타입의 네트워크에 컴퓨팅 디바이스(1010)를 인터페이싱하는 데 적절한 임의의 다른 디바이스를 포함할 수 있다. 또한, 컴퓨팅 디바이스(1010)는, 워크스테이션, 데스크탑 컴퓨터, 서버, 랩탑, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 또는 통신할 수 있는 그리고 본원에서 설명되는 동작을 수행하기 위해 충분한 프로세서 파워 및 메모리 용량을 갖는 다른 형태의 컴퓨팅 또는 원격 통신 디바이스와 같은 임의의 계산 디바이스일 수 있다.
컴퓨팅 디바이스(1010)는 Microsoft® Windows®(마이크로소프트 윈도우즈) 운영 체제(미국 워싱턴주 레드몬드(Redmond) 소재의 마이크로소프트)의 버전 중 임의의 것, Unix(유닉스) 및 Linux(리눅스) 운영 체제의 상이한 배포판, 매킨토시(Macintosh) 컴퓨터용의 MAC OS®(미국 캘리포니아주 쿠퍼티노(Cupertino) 소재의 애플(Apple) 인코포레이티드) 운영 체제의 임의의 버전, 임의의 임베딩형 운영 체제, 임의의 실시간 운영 체제, 임의의 오픈 소스 운영 체제, 임의의 독점적(proprietary) 운영 체제, 또는 컴퓨팅 디바이스 상에서 실행될 수 있고 본원에서 설명되는 동작을 수행할 수 있는 임의의 다른 운영 체제와 같은, 임의의 운영 체제(1026)를 실행할 수 있다. 예시적인 실시형태에서, 운영 체제(1026)는 네이티브 모드 또는 에뮬레이팅된 모드에서 실행될 수 있다. 예시적인 실시형태에서, 운영 체제(1026)는 하나 이상의 클라우드 머신 인스턴스 상에서 실행될 수 있다.
도 13은 소정의 분산된 실시형태의 예시적인 계산 디바이스 블록도이다. 도 1 내지 도 11, 및 상기의 예시적인 논의의 일부가, 개개의 또는 공통 컴퓨팅 디바이스 상에서 각각 동작하는 창고 관리 시스템(15), 주문 서버(14), 및 구역 서버를 참조하지만, 창고 관리 시스템(15), 주문 서버(14), 및/또는 구역 서버 중 임의의 하나는, 대신, 네트워크(1105)를 통해, 별개의 서버 시스템(1101a-d) 및 어쩌면 키오스크, 데스크탑 컴퓨터 디바이스(1102), 또는 모바일 컴퓨터 디바이스(1103)와 같은 유저 시스템에서 분산될 수도 있다는 것이 인식될 것이다. 예를 들면, 주문 서버(14) 및/또는 구역 서버는 로봇(18)의 태블릿(48) 사이에 분산될 수도 있다. 몇몇 분산 시스템에서, 창고 관리 시스템 소프트웨어, 주문 서버 소프트웨어, 및 구역 엔진 중 임의의 하나 이상의 모듈은 서버 시스템(1101a-d) 상에 별개로 위치될 수 있고 네트워크(1105)를 통해 서로 통신할 수 있다.
본 발명의 전술한 설명이 통상의 지식을 가진 자가 본 발명의 현재의 최상의 모드인 것으로 고려되는 것을 만들고 사용하는 것을 가능하게 하지만, 통상의 지식을 가진 자는 본원의 특정한 실시형태 및 예의 변형예, 조합예, 및 등가예의 존재를 이해하고 인식할 것이다. 본 발명의 상기에서 설명된 실시형태는 단지 예인 것으로 의도되는 것에 불과하다. 본원에 첨부되는 청구범위에 의해서만 전적으로 정의되는 본 발명의 범위를 벗어나지 않으면서, 기술 분야의 숙련된 자에 의해, 특정한 실시형태에 대한 변경, 수정 및 변화가 실행될 수도 있다. 따라서, 본 발명은 상기 설명된 실시형태 및 예에 의해 제한되지는 않는다.
본 발명 및 본 발명의 바람직한 실시형태를 설명하였지만, 신규한 것으로 청구되는 것 및 특허증(letters patent)에 의해 확보되는 것은 다음의 것이다:
Claims (25)
- 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게(contextually) 매핑하기 위한 방법에 있어서,
상기 공간 내에 위치되는 복수의 기준 마커(fiducial marker)들에 의해, 상기 공간 내의 구역을 정의하는 단계;
규칙 - 상기 규칙은 상기 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 상기 구역과 연관시키는 단계;
상기 규칙과 일치하는 상기 구역 내의 상기 하나 이상의 로봇을 동작시키는 단계 - 상기 공간 내의 상기 복수의 기준 마커들 각각은 상기 기준 마커에 대한 상대적인 위치를 갖는 포즈와 상관되고, 상기 상대적인 위치는 상기 공간에 의해 정의되는 좌표 시스템의 좌표의 세트에 의해 표현되며, 상기 구역의 경계는 각각의 기준 마커와 연관된 상기 포즈를 교차함 - ; 및
상기 복수의 기준 마커들 중 적어도 하나의 기준 마커의 재배치 및 재배향 중 적어도 하나의 검출에 응답하여, 상기 재배치 및 재배향 중 적어도 하나가 된 적어도 하나의 기준 마커와 연관된 상기 포즈를 자동적으로 업데이트하고, 상기 재배치 및 재배향 중 적어도 하나가 된 적어도 하나의 기준 마커의 상기 업데이트된 포즈를 상기 경계가 교차하도록, 상기 업데이트된 포즈에 기초하여 상기 공간 내의 상기 구역의 상기 경계를 자동적으로 재정의하는 단계
를 포함하는, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
상기 규칙은, 상기 구역이 개방되어 있는지 또는 폐쇄되어 있는지의 여부, 상기 구역의 타입, 상기 구역의 최대 점유율, 상기 구역의 최대 속도, 상기 구역의 트래픽 흐름 방향성, 상기 구역에 진입하거나 또는 빠져나갈 때의 정지 및 대기 거동, 상기 구역의 정의가 동적으로 업데이트되었는지의 여부, 상기 구역의 만료, 또는 이들의 조합 중 적어도 하나를 지시하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
상기 연관시키는 단계는, 상기 구역을 상기 복수의 기준 마커들 및 상기 규칙과 상관시키는 룩업 테이블을 생성하는 단계를 더 포함하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
하나 이상의 추가적인 규칙 - 상기 추가적인 규칙은 상기 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 상기 구역과 연관시키는 단계; 및
상기 추가적인 규칙과 일치하는 상기 구역 내의 상기 하나 이상의 로봇을 동작시키는 단계
를 더 포함하는, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제4항에 있어서,
상기 추가적인 규칙은, 상기 구역이 개방되어 있는지 또는 폐쇄되어 있는지의 여부, 상기 구역의 타입, 상기 구역의 최대 점유율, 상기 구역의 최대 속도, 상기 구역의 트래픽 흐름 방향성, 상기 구역에 진입하거나 또는 빠져나갈 때의 정지 및 대기 거동, 상기 구역의 정의가 동적으로 업데이트되었는지의 여부, 상기 구역의 만료, 또는 이들의 조합 중 적어도 하나를 지시하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제4항에 있어서,
상기 하나 이상의 추가적인 규칙을 연관시키는 단계는, 상기 구역을 상기 복수의 기준 마커들, 상기 규칙, 및 상기 추가적인 규칙과 상관시키는 룩업 테이블을 생성하는 단계를 더 포함하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
제2 구역에 대한 상기 구역의 중첩 또는 인접성 중 적어도 하나를 검출하는 단계;
상기 규칙의 값과 상기 제2 구역의 대응하는 규칙의 대응하는 값 사이의 충돌을 식별하는 단계; 및
상기 구역 및 상기 제2 구역에 공통인 하나 이상의 공유된 기준 마커에 의해 정의되는 중첩 구역과의 연관을 위한 충돌 해결 규칙(conflict-resolved rule)을 생성하는 단계
를 더 포함하는, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제7항에 있어서,
상기 충돌 해결 규칙을 생성하는 단계는 상기 값 및 상기 대응하는 값 중 더 높은 것 또는 더 낮은 것을 선택하는 단계를 더 포함하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제7항에 있어서,
상기 충돌 해결 규칙을 생성하는 단계는:
상기 값과 상기 대응하는 값 사이의 목표 값을 정의하는 단계; 및
수반되는 값 공차(accompanying value tolerance)가 상기 값 및 상기 대응하는 값 둘 모두를 포괄하도록 상기 목표 값을 상기 수반되는 값 공차와 연관시키는 단계
를 더 포함하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
상기 로봇, 창고 관리 시스템, 유저, 또는 외부 데이터 소스 중 하나 이상으로부터 수신되는 데이터에 응답하여 상기 규칙을 자동적으로 수정하는 단계 또는 추가적인 규칙을 자동적으로 추가하는 단계 중 적어도 하나를 더 포함하는, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
상기 동작시키는 단계는:
상기 공간 내의 상기 하나 이상의 로봇의 위치를, 상기 하나 이상의 로봇으로부터 중앙 컨트롤러로 주기적으로 보고하는 단계; 및
상기 구역 내의 상기 하나 이상의 로봇의 보고된 위치에 응답하여, 상기 중앙 컨트롤러에 의해, 상기 하나 이상의 로봇에게 상기 규칙에 의해 지시되는 대로 동작할 것을 지시하는 단계
를 더 포함하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
상기 공간 내의 상기 하나 이상의 로봇의 위치는 상기 적어도 하나의 기준 마커를 판독하는 것에 의해 결정되지 않는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제1항에 있어서,
상기 동작시키는 단계는:
상기 하나 이상의 로봇의 각각의 개개의 로봇에 의해, 상기 공간 내의 상기 로봇의 위치를 주기적으로 검출하는 단계; 및
상기 구역 내의 상기 로봇의 위치를 검출하는 것에 응답하여, 상기 규칙에 의해 지시되는 대로 상기 로봇을 동작시키는 단계
를 더 포함하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 제13항에 있어서,
상기 공간 내의 상기 하나 이상의 로봇의 위치는 상기 복수의 기준 마커들 중 임의의 기준 마커를 판독하는 것에 의해 결정되지 않는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 방법. - 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템에 있어서,
프로세서; 및
명령어를 저장하는 메모리
를 포함하며, 상기 명령어는, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
상기 공간 내에 위치되는 복수의 기준 마커들에 의해, 상기 공간 내에서 구역을 정의하고;
규칙 - 상기 규칙은 상기 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 상기 구역과 연관시키고;
상기 규칙과 일치하는 상기 구역 내의 상기 하나 이상의 로봇을 동작시키고 - 상기 공간 내의 상기 복수의 기준 마커들 각각은 상기 기준 마커에 대한 상대적인 위치를 갖는 포즈와 상관되고, 상기 상대적인 위치는 상기 공간에 의해 정의되는 좌표 시스템의 좌표의 세트에 의해 표현되며, 상기 구역의 경계는 각각의 기준 마커와 연관된 상기 포즈를 교차함 - ;
상기 복수의 기준 마커들 중 적어도 하나의 기준 마커의 재배치 및 재배향 중 적어도 하나의 검출에 응답하여, 상기 재배치 및 재배향 중 적어도 하나가 된 적어도 하나의 기준 마커와 연관된 상기 포즈를 자동적으로 업데이트하고, 상기 재배치 및 재배향 중 적어도 하나가 된 적어도 하나의 기준 마커의 상기 업데이트된 포즈를 상기 경계가 교차하도록, 상기 업데이트된 포즈에 기초하여 상기 공간 내의 상기 구역의 상기 경계를 자동적으로 재정의하게
하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템. - 제15항에 있어서,
상기 메모리는, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
상기 메모리에서 상기 구역을 상기 복수의 기준 마커들 및 상기 규칙과 상관시키는 룩업 테이블을 생성하게 하는
명령어를 더 저장하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템. - 제15항에 있어서,
상기 메모리는, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
하나 이상의 추가적인 규칙 - 상기 추가적인 규칙은 상기 구역 내의 하나 이상의 로봇의 동작을 적어도 부분적으로 지시함 - 을 상기 구역과 연관시키고;
상기 추가적인 규칙과 일치하는 상기 구역 내의 상기 하나 이상의 로봇을 동작시키게 하는
명령어를 더 저장하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템. - 제17항에 있어서,
상기 메모리는, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
상기 메모리에서, 상기 구역을 상기 복수의 기준 마커들, 상기 규칙, 및 상기 추가적인 규칙과 상관시키는 룩업 테이블을 생성하게 하는
명령어를 더 저장하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템. - 제15항에 있어서,
상기 메모리는, 상기 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
상기 로봇, 창고 관리 시스템, 유저, 또는 외부 데이터 소스 중 하나 이상으로부터 수신되는 데이터에 응답하여, 상기 규칙을 자동적으로 수정하는 것 또는 추가적인 규칙을 자동적으로 추가하는 것 중 적어도 하나를 수행하게 하는
명령어를 더 저장하는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템. - 제15항에 있어서,
상기 공간 내의 상기 하나 이상의 로봇의 위치는 상기 복수의 기준 마커들 중 임의의 기준 마커를 판독하는 것에 의해 결정되지 않는 것인, 공간 내에서의 로봇 내비게이션을 조절하기 위해 상기 공간 내의 구역을 상황에 맞게 매핑하기 위한 시스템. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/135,329 US11256259B2 (en) | 2018-09-19 | 2018-09-19 | Zone engine for providing context-augmented map layer |
US16/135,329 | 2018-09-19 | ||
PCT/US2019/051826 WO2020061250A1 (en) | 2018-09-19 | 2019-09-19 | Zone engine for providing context-augmented map layer |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210057172A KR20210057172A (ko) | 2021-05-20 |
KR102502325B1 true KR102502325B1 (ko) | 2023-02-21 |
Family
ID=68104796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217011385A KR102502325B1 (ko) | 2018-09-19 | 2019-09-19 | 컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11256259B2 (ko) |
EP (1) | EP3837592A1 (ko) |
JP (1) | JP7161040B2 (ko) |
KR (1) | KR102502325B1 (ko) |
CN (1) | CN112805646B (ko) |
CA (1) | CA3113099C (ko) |
WO (1) | WO2020061250A1 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020101698A1 (en) * | 2018-11-16 | 2020-05-22 | Hewlett-Packard Development Company, L.P. | Telepresence session initiation locations |
US11724395B2 (en) * | 2019-02-01 | 2023-08-15 | Locus Robotics Corp. | Robot congestion management |
CN111947673B (zh) * | 2019-05-17 | 2022-09-06 | 北京京东振世信息技术有限公司 | 无人车路径控制方法、装置和系统 |
WO2021152470A1 (en) * | 2020-01-29 | 2021-08-05 | Everseen Limited | System and method for direct store distribution |
KR102337531B1 (ko) * | 2020-07-08 | 2021-12-09 | 네이버랩스 주식회사 | 로봇의 경로 계획을 위한 노드 지정 방법 및 시스템 |
CN112114587B (zh) * | 2020-11-23 | 2021-02-05 | 炬星科技(深圳)有限公司 | 一种分布式拥堵控制方法和机器人 |
US11960282B2 (en) | 2021-01-05 | 2024-04-16 | Abb Schweiz Ag | Systems and methods for servicing a data center using autonomous vehicle |
US20220266867A1 (en) * | 2021-02-22 | 2022-08-25 | Argo AI, LLC | Indoor Localization of Autonomous Vehicles |
US11897706B2 (en) * | 2021-03-30 | 2024-02-13 | Dexterity, Inc. | Robotic system with zone-based control |
US11981517B2 (en) | 2021-03-30 | 2024-05-14 | Dexterity, Inc. | Robotic line kitting system safety features |
JP7375791B2 (ja) * | 2021-05-19 | 2023-11-08 | 村田機械株式会社 | 走行車システム |
CN113776537B (zh) * | 2021-09-07 | 2024-01-19 | 山东大学 | 无标记复杂场景中的去中心化多智能体导航方法及系统 |
EP4307231A1 (en) * | 2022-07-15 | 2024-01-17 | Captron Electronic GmbH | System and method for localizing articles in an intralogistics environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014069897A (ja) * | 2012-09-27 | 2014-04-21 | Sankyu Inc | 荷役装置の走行エリア識別システム |
US20170029213A1 (en) * | 2015-07-31 | 2017-02-02 | Scenic Technology Corporation | Robotic navigation utilizing semantic mapping |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050238465A1 (en) | 2004-04-27 | 2005-10-27 | Razumov Sergey N | Robotic retail facility |
JP4411248B2 (ja) | 2005-06-15 | 2010-02-10 | セコム株式会社 | 移動監視ロボット |
DE102006041485A1 (de) * | 2006-09-02 | 2008-03-13 | Inmach Intelligente Maschinen Gmbh | Baukasten zum Aufbau einer Infrastruktur für eine Steuerung eines Flächenbearbeitungsgeräts |
TWI344439B (en) | 2008-01-29 | 2011-07-01 | Univ Da Yeh | Automatic load system and operation method of the same |
US20110200420A1 (en) | 2010-02-17 | 2011-08-18 | Velociti Alliance North America, Inc. | Warehouse dynamic picking slots |
EP3246775B1 (en) | 2011-06-24 | 2018-12-26 | Seegrid Corporation | Automatic guided vehicle for order picking |
CA3155221A1 (en) | 2012-05-28 | 2013-11-28 | Tulip.Io Inc. | Order processing systems using picking robots |
EP2903787B1 (en) | 2012-10-05 | 2019-05-15 | iRobot Corporation | Robot management systems for determining docking station pose including mobile robots and methods using same |
US8965561B2 (en) * | 2013-03-15 | 2015-02-24 | Cybernet Systems Corporation | Automated warehousing using robotic forklifts |
US9463927B1 (en) | 2013-09-23 | 2016-10-11 | Vecna Technologies, Inc. | Transporting and/or sorting items with mobile robot(s) |
US9574883B2 (en) | 2015-03-24 | 2017-02-21 | X Development Llc | Associating semantic location data with automated environment mapping |
US9864377B2 (en) | 2016-04-01 | 2018-01-09 | Locus Robotics Corporation | Navigation using planned robot travel paths |
US10037029B1 (en) * | 2016-08-08 | 2018-07-31 | X Development Llc | Roadmap segmentation for robotic device coordination |
US10217232B2 (en) * | 2017-02-08 | 2019-02-26 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods for locally aligning map data |
US10012996B1 (en) * | 2017-09-15 | 2018-07-03 | Savioke, Inc. | Route planning for a mobile robot using configuration-based preferences |
-
2018
- 2018-09-19 US US16/135,329 patent/US11256259B2/en active Active
-
2019
- 2019-09-19 CA CA3113099A patent/CA3113099C/en active Active
- 2019-09-19 JP JP2021515212A patent/JP7161040B2/ja active Active
- 2019-09-19 EP EP19780106.1A patent/EP3837592A1/en active Pending
- 2019-09-19 WO PCT/US2019/051826 patent/WO2020061250A1/en unknown
- 2019-09-19 KR KR1020217011385A patent/KR102502325B1/ko active IP Right Grant
- 2019-09-19 CN CN201980061736.0A patent/CN112805646B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014069897A (ja) * | 2012-09-27 | 2014-04-21 | Sankyu Inc | 荷役装置の走行エリア識別システム |
US20170029213A1 (en) * | 2015-07-31 | 2017-02-02 | Scenic Technology Corporation | Robotic navigation utilizing semantic mapping |
Also Published As
Publication number | Publication date |
---|---|
US11256259B2 (en) | 2022-02-22 |
CN112805646B (zh) | 2024-05-28 |
CN112805646A (zh) | 2021-05-14 |
KR20210057172A (ko) | 2021-05-20 |
JP2022501715A (ja) | 2022-01-06 |
CA3113099A1 (en) | 2020-03-26 |
CA3113099C (en) | 2024-04-16 |
EP3837592A1 (en) | 2021-06-23 |
WO2020061250A1 (en) | 2020-03-26 |
JP7161040B2 (ja) | 2022-10-25 |
US20200089237A1 (en) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102502325B1 (ko) | 컨텍스트 증강 맵 계층을 제공하기 위한 구역 엔진 | |
KR102360581B1 (ko) | 주문 이행 동작에서의 로봇 큐잉 | |
CN110998620B (zh) | 排队完成订单操作的机器人 | |
KR102580084B1 (ko) | 로봇 혼잡 관리 | |
KR102533453B1 (ko) | 로봇 지원 인원 라우팅 | |
CN113646789A (zh) | 仓库订单执行操作中机器人停留时间最小化 | |
JP2023541405A (ja) | 注文の物品に対して機能を実行する順序の調整 | |
KR102580082B1 (ko) | 근접 로봇 물체 검출 및 회피 | |
AU2021339659B2 (en) | Robot navigation management between zones in an environment |
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 |