KR20200138076A - 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템 - Google Patents

오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템 Download PDF

Info

Publication number
KR20200138076A
KR20200138076A KR1020200065248A KR20200065248A KR20200138076A KR 20200138076 A KR20200138076 A KR 20200138076A KR 1020200065248 A KR1020200065248 A KR 1020200065248A KR 20200065248 A KR20200065248 A KR 20200065248A KR 20200138076 A KR20200138076 A KR 20200138076A
Authority
KR
South Korea
Prior art keywords
robotic system
placement
determining
location
errors
Prior art date
Application number
KR1020200065248A
Other languages
English (en)
Other versions
KR102408914B1 (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 KR20200138076A publication Critical patent/KR20200138076A/ko
Priority to KR1020220068061A priority Critical patent/KR20220080061A/ko
Application granted granted Critical
Publication of KR102408914B1 publication Critical patent/KR102408914B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B65/00Details peculiar to packaging machines and not otherwise provided for; Arrangements of such details
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/03Stacking of articles by adding to the top of the stack from above
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/16Stacking of articles of particular shape
    • B65G57/20Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical
    • B65G57/22Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G61/00Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2814/00Indexing codes relating to loading or unloading articles or bulk materials
    • B65G2814/03Loading or unloading means
    • B65G2814/0301General arrangements
    • B65G2814/0304Stacking devices
    • B65G2814/0305Adding to the top
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39391Visual servoing, track end effector with camera image feedback
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39393Camera detects projected image, compare with reference image, position end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40014Gripping workpiece to place it in another place
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45056Handling cases, boxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Stacking Of Articles And Auxiliary Devices (AREA)

Abstract

로봇 시스템을 동작시키는 방법은, 소스 센서 데이터에 기초하여 이산 객체 모델을 결정하는 단계; 이산 객체 모델을 패키지 계획 또는 마스터 데이터와 비교하는 단계; 목적지 센서 데이터에 기초하여 이산 플랫폼 모델을 결정하는 단계; 목적지 센서 데이터에 기초하여 높이 측정치를 결정하는 단계; 이산 플랫폼 모델 및/또는 높이 측정치를 예상 플랫폼 모델 및/또는 예상 높이 측정치와 비교하는 단계; 및 (i) (a) 이산 객체 모델 및 (b) 패키지 계획 또는 마스터 데이터 사이의 하나 이상의 디스페리티를 식별하여 적어도 하나의 소스 매칭 에러를 결정함으로써 하나 이상의 에러를 결정하거나, (ⅱ) (a) 이산 플랫폼 모델 또는 높이 측정치 및 (b) 예상 플랫폼 모델 또는 예상 높이 측정치 사이의 하나 이상의 디스페리티를 각각 식별하여 적어도 하나의 목적지 매칭 에러를 결정함으로써 하나 이상의 에러를 결정하는 단계를 포함한다.

Description

에러 검출 및 동적 패키지 메커니즘을 갖는 로봇 시스템{A ROBOTIC SYSTEM WITH ERROR DETECTION AND DYNAMIC PACKING MECHANISM}
관련 출원(들)에 대한 상호-참조
본 출원은 동시에 출원된 미국 특허 출원(발명자: Rosen N. Diankov 및 Denys Kanunikov, 발명의 명칭: "A ROBOTIC SYSTEM WITH PACKING MECHANISM")과 관련된 주제를 포함하고, 이는 무진사(Mujin, Inc.)에 양도되고, 대리인 문서 제131837-8005.US01호에 의해 식별되고, 전문이 참조에 의해 본 명세서에 원용된다.
본 출원은 동시에 출원된 미국 특허 출원(발명자: Rosen N. Diankov 및 Denys Kanunikov, 발명의 명칭: "A ROBOTIC SYSTEM WITH DYNAMIC PACKING MECHANISM")과 관련된 주제를 포함하고, 이는 무진사에 양도되고, 대리인 문서 제131837-8006.US01호에 의해 식별되고, 전문이 참조에 의해 본 명세서에 원용된다.
본 출원은 동시에 출원된 미국 특허 출원(발명자: Rosen N. Diankov 및 Denys Kanunikov, 발명의 명칭: "ROBOTIC SYSTEM FOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE")과 관련된 주제를 포함하고, 이는 무진사에 양도되고, 대리인 문서 제131837-8008.US01호에 의해 식별되고, 전문이 참조에 의해 본 명세서에 원용된다.
본 출원은 동시에 출원된 미국 특허 출원(발명자: Rosen N. Diankov 및 Denys Kanunikov, 발명의 명칭: "ROBOTIC SYSTEM FOR PALLETIZING PACKAGES USING REAL-TIME PLACEMENT SIMULATION")과 관련된 주제를 포함하고, 이는 무진사에 양도되고, 대리인 문서 제131837-8009.US01호에 의해 식별되고, 전문이 참조에 의해 본 명세서에 원용된다.
기술 분야
본 기술은 일반적으로 로봇 시스템, 더 구체적으로, 식별된 오류에 기초하여 물체를 동적으로 패킹하기 위한 시스템, 과정 및 기법에 관한 것이다.
성능이 계속해서 증가되고 비용이 낮춰짐에 따라, 많은 로봇(예를 들어, 물리적 행위를 자동으로/자율적으로 실행시키도록 구성된 기계)이 이제 많은 분야에서 광범위하게 사용된다. 로봇은 예를 들어, 제작 및/또는 조립, 패킹 및/또는 패키징, 수송 및/또는 배송 등에서 다양한 과업을 실행하도록(예를 들어, 물체를 공간을 통해 조작하거나 또는 이송하도록) 사용될 수 있다. 과업을 실행할 때, 로봇이 인간 행위를 복제할 수 있어서, 그렇지 않으면 위험하거나 반복적인 과업을 수행하도록 요구될 인간 수반을 교체하거나 또는 감소시킨다.
그러나, 기술적 진보에도 불구하고, 로봇은 종종 더 복잡한 과업을 실행하기 위해 필요한 인간 감성 및/또는 융통성을 복제하는데 필요한 정교화가 부족하다. 예를 들어, 로봇은 종종 다양한 현실 존재 인자로부터 발생할 수도 있는 편차, 오류 또는 불확실성을 설명하도록 실행된 행위에서 세분화된 제어 및 융통성이 부족하다. 따라서, 다양한 현실 존재 인자에도 불구하고 과업을 완료하도록 로봇의 다양한 양상을 제어하고 관리하기 위한 개선된 기법 및 시스템이 필요하다.
도 1은 동적 패킹 메커니즘을 구비한 로봇 시스템이 작동할 수도 있는 예시적인 환경의 도면.
도 2는 본 기술의 하나 이상의 실시형태에 따른, 로봇 시스템을 도시하는 블록도.
도 3A는 본 기술의 하나 이상의 실시형태에 따른, 이산화된 물체(discretized object)의 도면.
도 3B는 본 기술의 하나 이상의 실시형태에 따른, 이산화된 패킹 플랫폼의 도면.
도 4A는 본 기술의 하나 이상의 실시형태에 따른, 지원 계산의 도면.
도 4B는 본 기술의 하나 이상의 실시형태에 따른, 지원 메트릭의 도면.
도 5는 본 개시내용의 하나 이상의 실시형태에 따른, 로봇 시스템에 의해 실행된 예시적인 배치를 도시하는 평면도.
도 6A는 본 개시내용의 하나 이상의 실시형태에 따른, 제1 예시적인 방식을 도시하는 측면도.
도 6B는 본 개시내용의 하나 이상의 실시형태에 따른, 제2 예시적인 방식을 도시하는 측면도.
도 7은 본 개시내용의 하나 이상의 실시형태에 따른, 도 1의 로봇 시스템을 작동시키기 위한 흐름도.
도 8은 본 개시내용의 하나 이상의 실시형태에 따른, 도 1의 로봇 시스템을 작동시키기 위한 흐름도.
다양한 패키징 오류를 식별하고 물체(예를 들어, 패키지 및/또는 박스)를 동적으로 패킹하기 위한 시스템 및 방법이 본 명세서에 설명된다. 일부 실시형태에 따라 구성된 로봇 시스템(예를 들어, 하나 이상의 지정된 과업을 실행시키는 디바이스의 통합 시스템)은 물체에 대한 저장 위치를 동적으로 도출하고 물체를 이에 따라 적층함으로써 향상된 패킹 및 저장 효율을 제공한다.
종래의 시스템은 패킹 시퀀스/배열을 사전 결정하도록 오프라인 패킹 시뮬레이터를 사용한다. 종래의 패킹 시뮬레이터는 패킹 계획을 생성하도록 사전 결정된 또는 추정된 케이스의 세트에 대한 물체 정보(예를 들어, 케이스 형상/크기)를 처리한다. 일단 결정된다면, 패킹 계획은 목적지(예를 들어, 펠릿, 통, 케이지, 박스 등)에서 물체의 특정한 배치 위치(placement location)/자세, 배치를 위한 사전 획정된 시퀀스, 및/또는 사전 결정된 이동 계획을 지시하고/하거나 요구한다. 사전 결정된 패킹 계획으로부터, 종래의 패킹 시뮬레이터는 패킹 계획과 매칭되거나 또는 패킹 계획을 가능하게 하는 소스 필요조건(예를 들어, 물체에 대한 시퀀스 및/또는 배치)을 도출할 수도 있다.
패킹 계획이 종래의 시스템에서 오프라인에서 개발되기 때문에, 계획은 실제 패킹 작동/조건, 물체 도착 및/또는 다른 시스템 구현과 관계없다. 따라서, 전체 작동/구현은 수신된 패키지(예를 들어, 시작/픽업 위치에서)가 사전 결정된 패킹 계획과 매칭되는 고정된 시퀀스를 따를 것을 요구할 것이다. 이와 같이, 종래의 시스템은 수신된 패키지 내 실시간 상태 및/또는 편차(예를 들어, 상이한 시퀀스, 위치 및/또는 방향), 예상치 못한 오류(예를 들어, 충돌, 손실된 피스 및/또는 이질적인 패키징 상태), 실시간 패킹 필요조건(예를 들어, 수용된 순서), 및/또는 다른 실시간 인자에 대해 조정될 수 없다. 게다가, 종래의 시스템이 물체를 엄격한 사전 결정된 계획/시퀀스에 따라 분류하고 패킹하기 때문에, 종래의 시스템은 소스 위치에서의 모든 물체가 (1) 동일한 예상된 치수/유형을 갖고/갖거나 (2) 알려진 시퀀스에 따라 도착되길 요구한다. 예를 들어, 종래의 시스템은 물체가 고정된 시퀀스에 따라 픽업 위치에 (예를 들어, 컨베이어를 통해) 도착되길 요구할 것이다. 또한, 예를 들어, 종래의 시스템은 픽업 위치에서의 물체가 사전 결정된 자세에 따라 지정된 위치에 배치되길 요구할 것이다. 이와 같이, 종래의 시스템은 하나 이상의 작동이 물체를 사전 결정된 시퀀스/배열에 따라 소스에(즉, 패킹 작동 전에) 주문하고/하거나 배치하길 요구한다. 종종, 종래의 시스템은 백만달러 이상의 비용이 드는 시퀀스 버퍼가 물체를 사전 결정된 시퀀스/자세에 따라 소스에 주문하고/하거나 배치하길 요구한다.
종래의 시스템과 대조적으로, 본 명세서에 설명된 로봇 시스템은 (i) 수신된 패키지 내 실시간 상태 및/또는 편차 및/또는 다른 예상치 못한 오류를 식별할 수 있고 (ii) 동적으로(예를 들어, 하나 이상의 물체가 도착하거나 또는 식별될 때 및/또는 하나 이상의 작동, 예컨대, 패킹 작동을 처음에 시작한 후) 시스템 작동 동안 물체의 배치 위치를 도출할 수 있다. 일부 실시형태에서, 로봇 시스템은 트리거링 사건, 예컨대, 하나 이상의 패키징/조작 오류의 식별(예를 들어, 충돌 사건 또는 손실된 피스 사건)에 기초한 배치, 비인식된 물체(예를 들어, 소스에서 그리고/또는 목적지에서), 이미 배치된 패키지의 위치/방향의 변경, 및/또는 다른 동적 조건의 발생의 동적 도출을 개시/구현할 수 있다. 배치 위치를 동적으로 도출할 때, 로봇 시스템은 예를 들어, 입수 가능한/도착한 물체, 물체 특성 및/또는 필요조건, 배치 필요조건, 및/또는 다른 실시간 인자를 포함하는 다양한 실시간 상태(예를 들어, 현재 존재하는 또는 진행 중인 상태)을 활용할 수 있다.
로봇 시스템은 이산화 메커니즘(예를 들어, 과정, 회로, 함수 및/또는 루틴)에 기초하여 배치 위치를 도출할 수 있다. 예를 들어, 로봇 시스템은 이산화 단위(즉, 하나의 이산형 영역/공간)에 따라 물체의 물리적 크기/형상 및/또는 타깃 위치를 설명하도록 이산화 메커니즘을 사용할 수 있다. 로봇 시스템은 타깃 위치(예를 들어, 통/케이스/박스의 내부의 공간/하단면 및/또는 팔레트(pallet)의 상단부 상의 표면)를 설명하는 이산화된 목적지 프로파일 및/또는 예상된 물체를 설명하도록 이산화 단위를 사용하는 이산화된 물체 프로파일을 생성할 수 있다. 따라서, 로봇 시스템은 연속적인 현실에 존재하는 공간/영역을 컴퓨터-판독 가능 디지털 정보로 변형시킬 수 있다. 게다가, 이산화된 데이터는 패키지 풋프린트를 설명하고 다양한 패키지 배치를 비교하기 위한 계산 복잡도의 감소를 허용할 수 있다. 예를 들어, 패키지 치수는 이산화 단위의 정수에 대응할 수 있고, 이는 현실에 존재하는 십진수 대신에 더 쉬운 수학적 계산을 발생시킨다.
일부 실시형태에서, 로봇 시스템은 물체 배치 가능성을 결정하도록 배치 플랫폼을 위한 이산화된 셀을 점검할 수 있다. 예를 들어, 로봇 시스템은 배치 플랫폼 상의 배치된 물체의 깊이 측정값 또는 높이를 사용할 수 있다. 로봇 시스템이 깊이 측정값을 결정할 수 있어서 이산화된 셀에서/이산화된 셀에 따라 높이를 결정한다. 로봇 시스템은 배치를 위해 타깃된 물체에 대응하는 이산화된 셀의 분류에 따라 깊이 측정값을 구할 수 있다. 로봇 시스템은 배치 가능성을 평가하기 위한 분류에서 최대 높이를 결정할 수 있다. 즉, 로봇 시스템은 테스트된 배치 위치가 충분한 지지를 제공하여 배치된 물체가 비교적 평평하게(예를 들어, 사전 결정된 문턱값 및/또는 조건에 따라) 배치될 수 있는지를 결정할 수 있다. 동적 배치 도출에 관한 상세사항은 아래에 설명된다.
따라서, 로봇 시스템은 실시간 상태에 기초하여 물체 배치를 동적으로 도출하기 위한 효율, 속도, 및 정확도를 개선할 수 있다. 예를 들어, 본 명세서에 설명된 시스템은 현실에 존재하는 상태가 예상된 상태와 연관된 불확실성 및/또는 예상된 상태로부터의 편차를 나타낼 때 배치 위치를 도출할 수 있다. 게다가, 로봇 시스템은 하나 이상의 작동, 기계(예를 들어, 시퀀스 버퍼), 및/또는 물체를 소스에 그리고/또는 패킹 작동을 위해(예를 들어, 오류 처리를 위해) 주문하거나 배치하도록 종래의 시스템에서 필요한 인적 도움을 제거함으로써 전체 비용을 감소시킬 수 있다. 물체가 이용 가능하게 될 때(예를 들어, 물체 도착 및/또는 트리거링 사건에 기초하여) 배치 위치를 동적으로 도출함으로써, 로봇 시스템은 연관된 기계/인간 작동과 함께, 패키지를 재편성하거나 시퀀싱할 필요성을 제거한다.
물체 배치를 도출한 후, 로봇 시스템은 물체를 도출된 방식 계획에 따라 도출된 배치 위치에 배치할 수 있다. 일부 실시형태에서, 로봇 시스템은 도출된 배치 위치에서 물체의 배치가 정확하다고 검증할 수 있고/있거나 하나 이상의 다른 물체에 대한 배치 위치를 (예를 들어, 대응하는 배치 위치에서 물체의 이전의 배치에 기초하여) 동적으로 도출할 수 있다.
다음의 설명에서, 수많은 특정한 상세사항은 현재 개시된 기술의 완전한 이해를 제공하도록 제시된다. 다른 실시형태에서, 본 명세서에 도입된 기법은 이 특정한 상세사항 없이 실행될 수 있다. 다른 경우에, 잘 알려진 특징, 예컨대, 특정한 함수 또는 루틴은 본 개시내용을 불필요하게 모호하게 하는 것을 방지하도록 상세히 설명되지 않는다. "실시형태", "하나의 실시형태" 등에 대한 이 설명의 참조는 설명되는 특정한 특징, 구조, 재료 또는 특성이 본 개시내용의 적어도 하나의 실시형태에 포함된다는 것을 의미한다. 따라서, 이 명세서에서 이러한 어구의 출현은 동일한 실시형태를 반드시 전부 나타내는 것은 아니다. 반면에, 이러한 참조는 또한 반드시 서로 배타적인 것은 아니다. 게다가, 특정한 특징, 구조, 재료 또는 특성은 하나 이상의 실시형태에서 임의의 적합한 방식으로 조합될 수 있다. 도면에 도시된 다양한 실시형태는 단지 예시적인 표현이고 반드시 축척대로 도시되는 것이 아님이 이해된다.
잘 알려져 있고 로봇 시스템 및 하위 시스템과 종종 연관되지만, 개시된 기법의 일부 상당한 양상을 불필요하게 모호하게 할 수 있는 구조 또는 과정을 설명하는 수개의 상세사항이 명료성을 위해 다음의 설명에서 제시되지 않는다. 게다가, 다음의 개시내용이 본 기술의 상이한 양상의 수개의 실시형태를 제시하지만, 수개의 다른 실시형태는 이 부문에서 설명된 것과 상이한 구성 또는 상이한 컴포넌트를 가질 수 있다. 따라서, 개시된 기법은 부가적인 구성요소를 갖거나 또는 아래에 설명된 수개의 구성요소를 갖지 않는 다른 실시형태를 가질 수 있다.
아래에 설명된 본 개시내용의 많은 실시형태 또는 양상은 프로그램 가능한 컴퓨터 또는 프로세서에 의해 실행되는 루틴을 포함하는, 컴퓨터- 또는 프로세서-실행 가능 명령어의 형태를 취할 수 있다. 당업자는 개시된 기법이 아래에 도시되고 설명된 것과 다른 컴퓨터 또는 프로세서 시스템에서 실행될 수 있다는 것을 이해할 것이다. 본 명세서에 설명된 기법은 아래에 설명된 컴퓨터-실행 가능 명령어 중 하나 이상을 실행하도록 특별히 프로그래밍되고, 구성되거나 또는 구축되는 특수-목적 컴퓨터 또는 데이터 프로세서에서 구현될 수 있다. 따라서, 일반적으로 본 명세서에서 사용될 때 용어 "컴퓨터" 및 "프로세서"는 임의의 데이터 프로세서를 나타내고 인터넷 기기 및 핸드헬드 디바이스(초소형 컴퓨터, 착용 컴퓨터, 셀룰러 또는 모바일 폰, 멀티-프로세서 시스템, 프로세서-기반 또는 프로그램 가능한 가전 제품, 네트워크 컴퓨터, 미니 컴퓨터 등을 포함함)를 포함할 수 있다. 이 컴퓨터 및 프로세서에 의해 처리되는 정보는 액정 디스플레이(liquid crystal display: LCD)를 포함한, 임의의 적합한 디스플레이 매체에 제공될 수 있다. 컴퓨터- 또는 프로세서-실행 가능 과업을 실행하기 위한 명령어는 하드웨어, 펌웨어, 또는 하드웨어와 펌웨어의 조합을 포함하는, 임의의 적합한 컴퓨터-판독 가능 매체에 저장될 수 있다. 명령어는 예를 들어, 플래시 드라이브 및/또는 다른 적합한 매체를 포함하는, 임의의 적합한 메모리 디바이스에 포함될 수 있다.
용어 "결합된" 및 "연결된"은 이들의 파생어와 함께, 컴포넌트 간의 구조적 관계를 설명하도록 본 명세서에서 사용될 수 있다. 이 용어는 서로에 대해 동의어로서 의도되지 않음이 이해되어야 한다. 오히려, 특정한 실시형태에서, "연결된"은 2개 이상의 구성요소가 서로 직접적으로 접촉하는 것을 나타내도록 사용될 수 있다. 달리 문맥에서 분명히 나타내지 않는 한, 용어 "결합된"은 2개 이상의 구성요소가 서로 직접적으로 또는 간접적으로(다른 개재 구성요소가 구성요소 사이에 있음) 접촉하거나, 또는 2개 이상의 구성요소가 서로 협력하거나 또는 상호작용하는 것(예를 들어, 원인과 결과 관계와 같이, 예컨대, 신호 전송/수신을 위해 또는 함수 호출을 위해), 또는 둘 다를 나타내도록 사용될 수 있다.
적합한 환경
도 1은 동적 패킹 메커니즘을 구비한 로봇 시스템(100)이 작동할 수도 있는 예시적인 환경의 도면이다. 로봇 시스템(100)은 하나 이상의 과업을 실행하도록 구성된 하나 이상의 장치(예를 들어, 로봇)를 포함할 수 있고/있거나 하나 이상의 장치와 통신할 수 있다. 동적 패킹 메커니즘의 양상은 다양한 장치에 의해 실행 또는 구현될 수 있다.
도 1에 예시된 실시예에 대해, 로봇 시스템(100)은 창고 또는 유통/배송 허브에서 언로딩 장치(102), 이송 장치(104)(예를 들어, 팔레트화 로봇 및/또는 피스-피커 로봇), 수송 장치(106), 로딩 장치(108), 또는 이들의 조합을 포함할 수 있다. 로봇 시스템(100)에서 장치의 각각은 하나 이상의 과업을 실행하도록 구성될 수 있다. 과업은 목적을 달성하는 작동을 수행하도록, 예컨대, 물체를 트럭 또는 밴으로부터 내리고 물체를 창고에 저장하거나 또는 물체를 저장 위치로부터 내려서 물체를 배송을 위해 준비하도록 시퀀스대로 결합될 수 있다. 일부 실시형태에서, 과업은 물체를 타깃 위치에(예를 들어, 팔레트의 상단부에 그리고/또는 통/케이지/박스/케이스의 내부에) 배치하는 것을 포함할 수 있다. 아래에 상세히 설명되는 바와 같이, 로봇 시스템(100)은 개별적인 배치 위치/방향을 도출할 수 있고, 대응하는 이동 계획, 또는 물체를 놓고/놓거나 적층하기 위한 이들의 조합을 계산할 수 있다. 장치의 각각은 행위(예를 들어, 하나 이상의 컴포넌트를 작동시킴)를 실행하여 과업을 실행하도록 구성될 수 있다.
일부 실시형태에서, 과업은 시작/소스 위치(114)로부터 과업/목적지 위치(116)로 (예를 들어, 하나 이상의 센서, 예컨대, 하나 이상의 3차원(3D) 비전 카메라(122)에 의해 수집된 정보에 기초하여) 타깃 물체(112)(예를 들어, 과업의 실행에 대응하는 패키지, 박스, 케이스, 케이지, 팔레트 등 중 하나)의 조작(예를 들어, 이동 및/또는 방향 변경)을 포함할 수 있다. 예를 들어, 언로딩 장치(102)(예를 들어, 디배닝 로봇(devanning robot))는 타깃 물체(112)를 캐리어(예를 들어, 트럭) 내 위치로부터 컨베이어 벨트 상의 위치로 이송하도록 구성될 수 있다. 또한, 이송 장치(104)는 타깃 물체(112)를 하나의 위치(예를 들어, 컨베이어 벨트, 팔레트, 또는 통)로부터 또 다른 위치(예를 들어, 팔레트, 통 등)로 이송하도록 구성될 수 있다. 또 다른 예를 들면, 이송 장치(104)(예를 들어, 팔레트화 로봇)는 타깃 물체(112)를 소스 위치(예를 들어, 팔레트, 픽업 영역 및/또는 컨베이어)로부터 목적지 팔레트로 이송하도록 구성될 수 있다. 작동을 완료할 때, 수송 장치(106)는 타깃 물체(112)를 이송 장치(104)와 연관된 영역으로부터 로딩 장치(108)와 연관된 영역으로 이송할 수 있고, 로딩 장치(108)는 타깃 물체(112)를 (예를 들어, 타깃 물체(112)를 나르는 팔레트를 이동시킴으로써) 이송 장치(104) 로부터 저장 위치(예를 들어, 선반 상의 위치)로 이송할 수 있다. 과업 및 연관된 행위에 관한 상세사항은 아래에 설명된다.
실례가 되는 목적을 위해, 로봇 시스템(100)이 배송 센터의 맥락에서 설명되지만; 로봇 시스템(100)이 다른 환경에서/다른 목적을 위해, 예컨대, 제작, 조립, 패키징, 의료 및/또는 자동화의 다른 유형을 위해 과업을 실행하도록 구성될 수 있다는 것이 이해된다. 로봇 시스템(100)이 도 1에 도시되지 않은, 다른 장치, 예컨대, 조작기, 서비스 로봇, 모듈식 로봇 등을 포함할 수 있다는 것이 또한 이해된다. 예를 들어, 일부 실시형태에서, 로봇 시스템(100)은 물체를 케이지 카트 또는 팔레트로부터 컨베이어 또는 다른 팔레트로 이송하기 위한 팔레트화 해제 장치, 물체를 하나의 컨테이너로부터 또 다른 컨테이너로 이송하기 위한 컨테이터-전환 장치, 물체를 감싸기 위한 패키징 장치, 물체의 하나 이상의 특성에 따라 물체를 분류하기 위한 분류 장치, 물체의 하나 이상의 특성에 따라 상이하게 물체를 조작(예를 들어, 구분, 분류 및/또는 이송)하기 위한 피스-피킹 장치, 또는 이들의 조합을 포함할 수 있다.
적합한 시스템
도 2는 본 기술의 하나 이상의 실시형태에 따른, 로봇 시스템(100)을 도시하는 블록도이다. 일부 실시형태에서, 예를 들어, 로봇 시스템(100)(예를 들어, 위에서 설명된 장치 및/또는 로봇 중 하나 이상에서)은 전자/전기 디바이스, 예컨대, 하나 이상의 프로세서(202), 하나 이상의 저장 디바이스(204), 하나 이상의 통신 디바이스(206), 하나 이상의 입력-출력 디바이스(208), 하나 이상의 구동 디바이스(212), 하나 이상의 수송 모터(214), 하나 이상의 센서(216), 또는 이들의 조합을 포함할 수 있다. 다양한 디바이스는 유선 연결 및/또는 무선 연결을 통해 서로 결합될 수 있다. 예를 들어, 로봇 시스템(100)은 버스, 예컨대, 시스템 버스, 주변 컴포넌트 상호연결(Peripheral Component Interconnect: PCI) 버스 또는 PCI-익스프레스 버스, 하이퍼트랜스포트(HyperTransport) 또는 산업 표준 아키텍처(industry standard architecture: ISA) 버스, 소형 컴퓨터 시스템 인터페이스(small computer system interface: SCSI) 버스, 범용 직렬 버스(universal serial bus: USB), IIC(I2C) 버스, 또는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers: IEEE) 표준 1394 버스(또한 "파이어와이어(Firewire)"로서 지칭됨)를 포함할 수 있다. 또한, 예를 들어, 로봇 시스템(100)은 디바이스 간의 유선 연결을 제공하기 위한 브릿지, 어댑터, 프로세서, 또는 다른 신호-관련 디바이스를 포함할 수 있다. 무선 연결은 예를 들어, 셀룰러 통신 프로토콜(예를 들어, 3G, 4G, LTE, 5G 등), 무선 국부 영역 네트워크(local area network: LAN) 프로토콜(예를 들어, 와이파이(wireless fidelity: Wi-Fi)), 피어-대-피어 또는 디바이스-대-디바이스 통신 프로토콜(예를 들어, 블루투스, 근거리 통신(Near-Field communication: NFC) 등), 사물 인터넷(Internet of Things: IoT) 프로토콜(예를 들어, NB-IoT, LTE-M 등), 및/또는 다른 무선 통신 프로토콜에 기초할 수 있다.
프로세서(202)는 저장 디바이스(204)(예를 들어, 컴퓨터 메모리)에 저장된 명령어(예를 들어, 소프트웨어 명령어)를 실행하도록 구성된 데이터 프로세서(예를 들어, 중앙 처리 장치(central processing unit: CPU), 특수-목적 컴퓨터, 및/또는 온보드 서버)를 포함할 수 있다. 일부 실시형태에서, 프로세서(202)는 도 2에 예시된 다른 전자/전기 디바이스 및/또는 도 1에 예시된 로봇 장치에 작동 가능하게 결합되는 별개의/독립형 제어기에 포함될 수 있다. 프로세서(202)가 다른 디바이스를 제어하고/다른 디바이스와 인터페이스하도록 프로그램 명령어를 구현할 수 있어서, 로봇 시스템(100)이 행위, 과업, 및/또는 작동을 실행하게 한다.
저장 디바이스(204)는 프로그램 명령어(예를 들어, 소프트웨어)가 저장된 비일시적 컴퓨터-판독 가능 매체를 포함할 수 있다. 저장 디바이스(204)의 일부 예는 휘발성 메모리(예를 들어, 캐시 및/또는 랜덤-액세스 메모리(random-access memory: RAM)) 및/또는 비휘발성 메모리(예를 들어, 플래시 메모리 및/또는 자기 디스크 드라이브)를 포함할 수 있다. 저장 디바이스(204)의 다른 예는 휴대용 메모리 및/또는 클라우드 저장 디바이스를 포함할 수 있다.
일부 실시형태에서, 저장 디바이스(204)는 액세스를 처리 결과 및/또는 사전 결정된 데이터/문턱값에 더 저장하고 제공하도록 사용될 수 있다. 예를 들어, 저장 디바이스(204)는 로봇 시스템(100)에 의해 조작될 수도 있는 물체(예를 들어, 박스, 케이스 및/또는 제품)의 설명을 포함하는 마스터 데이터(252)를 저장할 수 있다. 하나 이상의 실시형태에서, 마스터 데이터(252)는 치수, 형상(예를 들어, 상이한 자세의 물체를 인지하기 위한 컴퓨터-생성된 모델 및/또는 잠재적인 자세를 위한 템플릿), 색 배합, 이미지, 식별 정보(예를 들어, 바코드, 신속 응답(quick response: QR) 코드, 로고 등, 및/또는 이들의 예상된 위치), 예상된 무게, 다른 물리적/시각적 특성, 또는 로봇 시스템(100)에 의해 조작되는 것으로 예상되는 물체에 대한 이들의 조합을 포함할 수 있다. 일부 실시형태에서, 마스터 데이터(252)는 물체에 관한 조작-관련된 정보, 예컨대, 물체의 각각의 질량 중심(center-of-mass: CoM) 위치, 하나 이상의 행위/조작에 대응하는 (예를 들어, 힘, 회전력, 압력 및/또는 접촉 측정에 대한) 예상된 센서 측정값, 또는 이들의 조합을 포함할 수 있다. 또한, 예를 들어, 저장 디바이스(204)는 물체 추적 데이터(254)를 저장할 수 있다. 일부 실시형태에서, 물체 추적 데이터(254)는 스캐닝된 또는 조작된 물체의 로그를 포함할 수 있다. 일부 실시형태에서, 물체 추적 데이터(254)는 하나 이상의 위치(예를 들어, 지정된 픽업 또는 드롭 위치 및/또는 컨베이어 벨트)에서 물체의 이미징 데이터(예를 들어, 사진, 포인트 클라우드, 라이브 비디오 피드 등)를 포함할 수 있다. 일부 실시형태에서, 물체 추적 데이터(254)는 하나 이상의 위치에서 물체의 위치 및/또는 방향을 포함할 수 있다.
통신 디바이스(206)는 네트워크를 통해 외부 또는 원격 디바이스와 통신하도록 구성된 회로를 포함할 수 있다. 예를 들어, 통신 디바이스(206)는 수신기, 전송기, 변조기/복조기(모뎀), 신호 검출기, 신호 인코더/디코더, 연결기 포트, 네트워크 카드 등을 포함할 수 있다. 통신 디바이스(206)는 하나 이상의 통신 프로토콜(예를 들어, 인터넷 프로토콜(Internet Protocol: IP), 무선 통신 프로토콜 등)에 따라 전기 신호를 전송, 수신 그리고/또는 처리하도록 구성될 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 정보를 로봇 시스템(100)의 장치 간에서 교환하고/하거나 정보(예를 들어, 보고, 데이터 수집, 분석 및/또는 고장 진단 목적을 위한)를 로봇 시스템(100)의 외부의 시스템 또는 디바이스와 교환하도록 통신 디바이스(206)를 사용할 수 있다.
입력-출력 디바이스(208)는 정보를 전달하고/하거나 정보를 인간 조작자로부터 수신하도록 구성된 사용자 인터페이스 디바이스를 포함할 수 있다. 예를 들어, 입력-출력 디바이스(208)는 정보를 인간 조작자에게 전달하기 위한 디스플레이(210) 및/또는 다른 출력 디바이스(예를 들어, 스피커, 촉각 회로 또는 촉각 피드백 디바이스 등)를 포함할 수 있다. 또한, 입력-출력 디바이스(208)는 제어 또는 수신 디바이스, 예컨대, 키보드, 마우스, 터치스크린, 마이크로폰, 사용자 인터페이스(UI) 센서(예를 들어, 이동 명령을 수신하기 위한 카메라), 착용 입력 디바이스 등을 포함할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 행위, 과업, 작동, 또는 이들의 조합을 실행할 때 인간 조작자와 상호작용하도록 입력-출력 디바이스(208)를 사용할 수 있다.
로봇 시스템(100)은 운동(예를 들어, 회전 및/또는 병진 변위)을 위한 이음부에서 연결되는 물리적 또는 구조적 부재(예를 들어, 로봇 조작기 암)를 포함할 수 있다. 구조적 부재 및 이음부는 로봇 시스템(100)의 사용/작동에 따라 하나 이상의 과업(예를 들어, 파지, 회전, 용접 등)을 실행하도록 구성된 엔드-이펙터(end-effector)(예를 들어, 그리퍼)를 조작하도록 구성된 운동 사슬을 형성할 수 있다. 로봇 시스템(100)은 대응하는 이음부 주변에서 또는 대응하는 이음부에서 구조적 부재를 구동 또는 조작(예를 들어, 변위 및/또는 방향 변경)하도록 구성된 구동 디바이스(212)(예를 들어, 모터, 액추에이터, 와이어, 인공 근육, 전기활성 폴리머 등)를 포함할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 대응하는 장치/섀시(chassis)를 하나의 장소로부터 다른 하나의 장소로 수송하도록 구성된 수송 모터(214)를 포함할 수 있다.
로봇 시스템(100)은 과업을 구현하도록, 예컨대, 구조적 부재를 조작하기 위해 그리고/또는 로봇 장치를 수송하기 위해 사용되는 정보를 획득하도록 구성된 센서(216)를 포함할 수 있다. 센서(216)는 로봇 시스템(100) 그리고/또는 주변 환경의 하나 이상의 물리적 특성(예를 들어, 하나 이상의 구조적 부재/부재의 이음부의 상태, 조건 및/또는 위치)을 검출 또는 측정하도록 구성된 디바이스를 포함할 수 있다. 센서(216)의 일부 예는 가속도계, 자이로스코프, 힘 센서, 변형계, 촉각 센서, 회전력 센서, 위치 인코더 등을 포함할 수 있다.
일부 실시형태에서, 예를 들어, 센서(216)는 주변 환경을 검출하도록 구성된 하나 이상의 이미징 디바이스(222)(예를 들어, 시각적 및/또는 적외선 카메라, 2차원(2D) 및/또는 3D 이미징 카메라, 거리 측정 디바이스, 예컨대, 라이다(lidar) 또는 레이더(radar) 등)를 포함할 수 있다. 이미징 디바이스(222)는 기계/컴퓨터 비전을 통해 (예를 들어, 자동 검사, 로봇 안내 또는 다른 로봇 적용을 위해) 처리될 수도 있는 디지털 이미지 및/또는 포인트 클라우드와 같은, 검출된 환경의 표현을 생성할 수 있다. 아래에 더 상세히 설명되는 바와 같이, 로봇 시스템(100)은 (예를 들어, 프로세서(202)를 통해) 도 1의 타깃 물체(112), 도 1의 시작 위치(114), 도 1의 과업 위치(116), 타깃 물체(112)의 자세, 시작 위치(114) 및/또는 자세에 관한 신뢰도 측정 또는 이들의 조합을 식별하도록 디지털 이미지 및/또는 포인트 클라우드를 처리할 수 있다.
타깃 물체(112)를 조작하기 위해, 로봇 시스템(100)은 (예를 들어, 위에서 설명된 다양한 회로/디바이스를 통해) 타깃 물체(112) 및 타깃 물체의 시작 위치(114)를 식별하도록 지정된 영역(예를 들어, 픽업 위치, 예컨대, 트럭의 내부 또는 컨베이어 벨트 상)의 이미지 데이터를 캡처할 수 있고 분석할 수 있다. 유사하게, 로봇 시스템(100)은 과업 위치(116)를 식별하도록 또 다른 지정된 영역(예를 들어, 물체를 컨베이어 상에 배치하기 위한 드롭 위치, 물체를 컨테이너의 내부에 배치하기 위한 위치, 또는 적층 목적을 위한 팔레트 상의 위치)의 이미지 데이터를 캡처할 수 있고 분석할 수 있다. 예를 들어, 이미징 디바이스(222)는 픽업 영역의 이미지 데이터를 생성하도록 구성된 하나 이상의 카메라 및/또는 과업 영역(예를 들어, 드롭 영역)의 이미지 데이터를 생성하도록 구성된 하나 이상의 카메라를 포함할 수 있다. 이미지 데이터에 기초하여, 아래에 설명된 바와 같이, 로봇 시스템(100)은 시작 위치(114), 과업 위치(116), 연관된 자세, 패킹/배치 위치, 및/또는 다른 처리 결과를 결정할 수 있다. 동적 패킹 알고리즘에 관한 상세사항이 아래에 설명된다.
일부 실시형태에서, 예를 들어, 센서(216)는 로봇 시스템(100)의 구조적 부재(예를 들어, 로봇 암 및/또는 엔드-이펙터) 및/또는 대응하는 이음부의 위치를 검출하도록 구성된 위치 센서(224)(예를 들어, 위치 인코더, 전위차계 등)를 포함할 수 있다. 로봇 시스템(100)은 과업의 실행 동안 구조적 부재 및/또는 이음부의 위치 및/또는 방향을 추적하도록 위치 센서(224)를 사용할 수 있다.
이산화 모델
도 3A 및 도 3B는 본 기술의 하나 이상의 실시형태에 따라 물체를 계획하고 패킹하도록 사용된 이산화된 데이터의 도면이다. 도 3A는 이산화된 물체를 도시하고 도 3B는 물체 패킹을 위한 이산화된 패킹 플랫폼을 도시한다.
일부 실시형태에서, 도 1의 로봇 시스템(100)은 도 2의 마스터 데이터(252)에 저장된 예상된 물체의 사전 결정된 이산화된 모델/표현을 포함할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 (예를 들어, 도 2의 프로세서(202)를 통해) 현실에 존재하는 물체(예를 들어, 패키지, 팔레트 및/또는 과업과 연관된 다른 물체)의 연속적인 표면/에지를 이산형 상대(예를 들어, 단위 길이 및/또는 단위 영역)에 맵핑함으로써 이산화된 모델을 동적으로 생성할 수 있다. 예를 들어, 로봇 시스템(100)은 도 2의 하나 이상의 이미징 디바이스(222)에 의해 캡처된 팔레트 상단면 및/또는 타깃 물체(112)의 이미지 데이터(예를 들어, 평면도 이미지 및/또는 포인트 클라우드 데이터)를 이산화할 수 있다. 즉, 로봇 시스템(100)은 도 1의 시작 위치(114), 컨베이어 상의 시작 위치(114) 전의 위치, 및/또는 도 1의 과업 위치(116)의 이미지 데이터를 이산화할 수 있다. 로봇 시스템(100)은 이미지 데이터에서 물체/팔레트의 외부 주변을 식별하고 이어서 단위 치수/영역에 따라 외부 주변 내 영역을 분할하는 것에 기초하여 이산화할 수 있다. 일부 실시형태에서, 단위 치수/영역은 좌표 구성 및/또는 사전 결정된 조정 인자/등식에 따라 이미징 디바이스(222)에 대한 물체/팔레트의 크기 및/또는 위치에 기초하여 이미지 데이터에 대해 스케일링 또는 맵핑될 수 있다.
도 3A에 예시된 바와 같이, 로봇 시스템(100)의 일부 실시형태는 물체(예를 들어, 타깃 물체(112))의 배치 위치를 계획/도출하도록 이산화된 물체 모델(302)을 사용할 수 있다. 이산화된 물체 모델(302)(점선을 사용하여 도시됨)은 이산화 단위(예를 들어, 단위 길이)에 따라 도착하거나 또는 들어오는 물체(예를 들어, 패키지, 박스, 케이스 등)에 대한 외부의 물리적 치수, 형상, 에지, 표면, 또는 이들의 조합(파선을 사용하여 도시됨)을 나타낼 수 있다. 이산화된 물체 모델(302)은 위에서 설명된 바와 같이 이미징되고 이산화되는, 예상된/알려진 물체 및/또는 예상되지 않은/알려지지 않은 물체를 나타낼 수 있다.
도 3B에 예시된 바와 같이, 로봇 시스템(100)의 일부 실시형태는 물체의 적층 배치를 계획/도출하도록 하나 이상의 이산화된 플랫폼 모델(304)(예를 들어, 도 1의 과업 위치(116)의 이산화된 표현)을 사용할 수 있다. 이산화된 플랫폼 모델(304)은 이산화 단위에 따라 배치 영역(340)(예를 들어, 물리적 치수, 형상 또는 과업 위치(116)의 이들의 조합, 예컨대, 과업 위치(116)의 상단면, 상부에 배치된 패키지의 상단면, 또는 이들의 조합)을 나타낼 수 있다. 하나 이상의 실시형태에서, 이산화된 플랫폼 모델(304)은 예컨대, 실시간 업데이트를 통해 배치 영역(340)의 실시간 상태를 나타낼 수 있다. 예를 들어, 평면도에 대해, 이산화된 플랫폼 모델(304)은 물체를 수용하고 물체와 직접적으로 접촉하는, 팔레트의 상단면, 통 또는 박스의 내부-하단면 등을 처음에 나타낼 수 있다. 로봇 시스템(100)이 물체를 배치할 때, 배치 영역(340)은 배치된 패키지의 상단면을 (예를 들어, 패키지를 적층하기 위해) 포함하도록 변화될 수 있고 이산화된 플랫폼 모델(304)은 변화를 반영하도록 업데이트될 수 있다.
일부 실시형태에서, 이산화된 플랫폼 모델(304)은 하나 이상의 표준 크기의 팔레트(예를 들어, 1.1m×1.1m 팔레트)의 평면도에 기초할 수 있다. 따라서, 이산화된 플랫폼 모델(304)은 로봇 시스템(100)에 의해 활용된 격자 시스템에 따라 수평면(예를 들어, x-y 평면)을 따른 배치 영역의 화소 처리된 2D 표현에 대응할 수 있다. 일부 실시형태에서, 이산화된 물체 모델(302)은 예상되거나 도착하는 물체의 평면도(예를 들어, x-y 평면)를 포함할 수 있다. 따라서, 이산화된 물체 모델(302)은 물체의 화소 처리된 2D 표현에 대응할 수 있다.
이산화된 모델을 생성하도록 사용되는, 이산화 단위는 시스템 조작자, 시스템 설계자, 사전 결정된 입력/설정, 주문, 또는 이들의 조합에 의해 설정되는 길이를 포함할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 타깃된 물체(예를 들어, 이산화된 물체 모델(302)를 통해) 및 로딩 플랫폼/표면(예를 들어, 이산화된 플랫폼 모델(304)을 통해)의 영역/표면을 설명하도록 단위 화소(310)(예를 들어, 이산화 단위에 따라 하나 이상의 치수를 가진, 다각형, 예컨대, 정사각형)를 사용할 수 있다. 따라서, 로봇 시스템(100)은 x-y축을 따라 2D로 물체 및 로딩 플랫폼을 화소 처리할 수 있다. 일부 실시형태에서, 단위 화소(310)(예를 들어, 이산화 단위)의 크기는 물체의 치수 및/또는 로딩 플랫폼의 치수에 따라 변화될 수 있다. 단위 화소(310)의 크기는 또한 필요한 자원(예를 들어, 계산 시간, 필요한 메모리 등)과 패킹 정확도의 균형을 맞추도록 (예를 들어, 미리 설정된 규칙/등식 및/또는 조작자 선택을 통해) 조정될 수 있다. 예를 들어, 단위 화소(310)의 크기가 감소될 때, 계산 시간 및 패킹 정확도가 감소될 수 있다. 따라서, 조정 가능한 단위 화소(310)를 사용하는 패킹 과업(예를 들어, 타깃 패키지 및 패킹 플랫폼)의 이산화는 패키지를 팔레트화하기 위해 증가된 융통성을 제공한다. 로봇 시스템(100)은 실시간 수요, 시나리오, 패턴 및/또는 환경에 따라 계산 자원/시간과 패킹 정확도 간의 균형을 제어할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 단위 화소(310)가 물체의 실제 주변 에지를 넘어 연장되도록, 물체와 단지 부분적으로 중첩하는 단위 화소(310)의 인스턴스(instance)를 이산화된 물체 모델(302)을 위해 포함할 수 있다. 다른 실시형태에서, 로봇 시스템(100)은 이산화된 물체 모델(302) 내 단위 화소(310)가 플랫폼 표면의 실제 주변 에지와 중첩되고/되거나 실제 주변 에지 내에 포함되도록 플랫폼 표면의 실제 치수를 넘어 이산화된 플랫폼 모델(304)로부터 단위 화소(310)의 인스턴스와 부분적으로 중첩하는 것을 배제할 수 있다.
실례가 되는 실시예로서, 도 3A는 타깃 물체(112)를 나타내는 이산화된 물체 모델의 제1 모델-방향(332) 및 제2 모델-방향(334)을 도시한다. 일부 실시형태에서, 로봇 시스템(100)은 이미징된 평면을 따라 사전 결정된 양만큼 이산화된 모델(즉, 제1 모델-방향(332)으로서 캡처/저장됨) 중 하나를 회전시킬 수 있다. 도 3A에 예시된 바와 같이, 로봇 시스템(100)은 수직축(도면의 평면에 대해 내외로 또는 수직으로 연장됨)을 중심으로 그리고 제2 모델-방향(334)에 대해 90도만큼 수평면(예를 들어, x축 및 y축을 따라 나타냄)을 따라 이산화된 물체 모델(302)을 회전시킬 수 있다. 로봇 시스템(100)은 물체의 대응하는 배치를 테스트/평가하도록 상이한 방향을 사용할 수 있다.
이산화된 데이터/표현에 기초하여, 로봇 시스템(100)은 타깃 물체(112)에 대한 배치 위치(350)를 동적으로 도출할 수 있다. 도 3B에 예시된 바와 같이, 로봇 시스템(100)은 하나 이상의 물체(예를 들어, 도 3B에서 대각선 충전된 물체로서 예시됨)가 배치 영역(340)에 배치된 후에도, 배치 위치(350)를 동적으로 도출할 수 있다. 또한, 배치 위치(350)의 동적 도출은 타깃 물체(112)가 언로딩되고/선반에서 제거되고, 등록되고, 스캐닝되고, 이미징되거나 또는 이들의 조합을 행한 후/동안 발생할 수 있다. 예를 들어, 로봇 시스템(100)은 타깃 물체(112)가 (예를 들어, 컨베이어를 통해) 수송될 때, 도 2의 이미징 디바이스(222)가 타깃 물체(112)의 이미지 데이터를 생성한 후, 또는 이들의 조합인 경우 배치 위치(350)를 동적으로 도출할 수 있다.
물체의 배치 위치(350)를 동적으로 도출하는 것은 배송/패키징 환경에 대한 증가된 융통성 및 감소된 인간 노동을 제공한다. 로봇 시스템(100)은 상이한 배치 위치 및/또는 방향을 테스트하고 평가하도록 물체와 팔레트(즉, 이미 배치된 물체를 포함함)의 이산화된 실시간 이미지/깊이 맵을 사용할 수 있다. 따라서, 로봇 시스템(100)은 심지어 물체가 (예를 들어, 새로운/예상되지 않은 물체 및/또는 컴퓨터 비전 오류에 대해) 인지 가능하지 않을 때, 물체의 도착 시퀀스/순서가 알려져 있지 않을 때, 그리고/또는 예상되지 않은 사건(예를 들어, 피스-손실 사건 및/또는 충돌 사건)이 발생하지 않을 때 임의의 인간 조작자의 간섭 없이 물체를 여전히 패킹할 수 있다.
실례가 되는 목적을 위해, 배치 위치(350)는 이미 배치된 물체와 인접한(즉, 동일한 수평 층/높이에 배치되는) 것으로, 예컨대, 팔레트 상에 바로 있고/팔레트와 접촉하는 것으로 도 3B에 도시된다. 그러나, 배치 위치(350)는 이미 배치된 물체의 상단부에 있을 수 있다는 것이 이해된다. 즉, 로봇 시스템(100)은 이미 팔레트 상의 하나 이상의 물체의 위에 그리고/또는 상단부에 타깃 물체(112)를 적층하기 위한 배치 위치(350)를 도출할 수 있다. 아래에 상세히 설명되는 바와 같이, 로봇 시스템(100)은 물체가 이미 배치된 물체의 상단부에 적층될 때 물체가 충분히 지지되는 것을 보장하도록 배치 위치(350)를 도출할 때 이미 배치된 물체의 높이를 구할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 배치 위치(350)를 도출할 때 물체 에지(362)를 식별할 수 있다. 물체 에지(362)는 팔레트 상에 이미 배치된 물체의 에지 및/또는 측면을 나타내는 이미지 데이터에서 라인을 포함할 수 있다. 일부 실시형태에서, 물체 에지(362)는 물체 에지가 과업 위치(116)에 배치된 물체(예를 들어, 물체의 층) 중 하나 또는 군의 주변을 획정하도록, 노출되는(예를 들어, 또 다른 물체/에지와 직접적으로 접촉하지 않는/인접하지 않은) 에지에 대응할 수 있다.
아래에 더 상세히 설명되는 바와 같이, 로봇 시스템(100)은 배치 규칙, 조건, 매개변수, 필요조건 등의 세트에 따라 배치 위치(350)를 도출할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 하나 이상의 후보 위치(360)의 평가/테스트에 기초하여 배치 위치(350)를 도출할 수 있다. 후보 위치(360)는 다양한 위치 및/또는 방향에서 이산화된 플랫폼 모델(304)의 상단부에서 오버레이된(overlaid) 이산화된 물체 모델(302)에 대응할 수 있다. 따라서, 후보 위치(360)는 물체 에지(362) 중 하나 이상의 물체 에지와 인접하게 타깃 물체(112)를 잠재적으로 배치하는 것 그리고/또는 이미 배치된 물체 중 하나 이상의 이미 배치된 물체 상에 타깃 물체(112)를 잠재적으로 적층하는 것을 포함할 수 있다. 로봇 시스템(100)은 지지 물체의 취약도 순위(예를 들어, 예컨대, 적층된 패키지에 대한, 최대 지지 중량), 공간/패킹 영향, 또는 이들의 조합과 비교할 때 다양한 매개변수/조건, 예컨대, 지지 측정값/조건, 지지 중량에 따라 후보 위치(360)의 각각을 평가할 수 있다. 로봇 시스템(100)은 하나 이상의 배치 규칙, 예컨대, 충돌 자유 필요조건, 스택 안정성, 고객-지정 규칙/우선도, 패키지 분리 필요조건 또는 이의 부재, 총 로딩된 패키지의 극대화, 또는 이들의 조합을 사용하여 후보 위치(360)를 더 평가할 수 있다.
실시간 배치 표면 업데이트
도 4A 및 도 4B는 본 기술의 하나 이상의 실시형태에 따른, 지원 계산 및 지원 메트릭의 다양한 양상을 예시한다. 일부 실시형태에서, 도 4A에 예시된 바와 같이, 도 1의 로봇 시스템(100)은 도 1의 과업 위치(116)의 이산화된 플랫폼 모델(304) 위에 도 1의 타깃 물체(112)의 도 3A의 이산화된 물체 모델(302)를 중첩하는 것에 기초하여 도 3B의 후보 위치(360)를 생성할 수 있다. 게다가, 로봇 시스템(100)은 후보 위치(360)를 생성할 때 이산화된 물체 모델(302)을 이산화된 플랫폼 모델(304)에 걸쳐 반복적으로 이동시킬 수 있다. 예를 들어, 로봇 시스템(100)은 이산화된 플랫폼 모델(304)의 사전 결정된 처음 위치(예를 들어, 코너)에서 하나 이상의 방향(예를 들어, 도 3A의 제1 모델-방향(332) 및/또는 도 3A의 제2 모델-방향(334))에 따라 대응하는 이산화된 물체 모델(302)을 배치함으로써 후보 위치(360)의 초기 인스턴스를 생성할 수 있다. 후보 위치(360)의 다음의 인스턴스에 대해, 로봇 시스템(100)은 또 다른/다음의 물체에 대응하는, 이산화된 물체 모델(302)을 사전 결정된 방향/패턴에 따라 사전 결정된 거리(예를 들어, 도 3B의 하나 이상의 단위 화소(310))만큼 이동시킬 수 있다.
후보 위치(360)가 과업 위치(116)에 이미 배치된 하나 이상의 물체와 중첩할 때, 로봇 시스템(100)은 이미 배치된 물체에 의해 제공된 지지 측정값을 계산할 수 있고 구할 수 있다. 지지 측정값을 계산하고 구하기 위해, 로봇 시스템(100)은 도 2의 이미징 디바이스(222) 중 하나 이상의 이미징 디바이스를 사용하여 실시간으로 도 3B의 배치 영역(340)에 대한 높이/윤곽을 결정할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 과업 위치(116) 위에 위치된 이미징 디바이스(222) 중 하나 이상의 이미징 디바이스로부터 깊이 측정값(예를 들어, 포인트 클라우드 값)을 사용할 수 있다. 지면 및/또는 플랫폼(예를 들어, 팔레트) 표면의 수직 위치(예를 들어, 시설 지표면 위의 플랫폼 표면의 높이)가 알려져 있기 때문에, 로봇 시스템(100)은 플랫폼의 노출된 상단면(들), 배치된 물체, 또는 이들의 조합의 높이/윤곽을 계산하도록 깊이 측정값을 사용할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 과업 위치(116)를 이미징할 수 있고 노출된 상단면(들)의 높이를 실시간으로, 예컨대, 물체를 플랫폼으로 수송하고/하거나 물체를 플랫폼 상에 배치한 후 업데이트할 수 있다.
일부 실시형태에서, 도 4A에 예시된 바와 같이, 로봇 시스템(100)은 높이 측정값(402)을 포함하도록 이산화된 플랫폼 모델(304)을 업데이트할 수 있다. 로봇 시스템(100)은 이산화된 플랫폼 모델(304) 내 이산화된 화소(예를 들어, 단위 화소(310))의 각각에 따라 높이 측정값(402)을 결정할 수 있다. 예를 들어, 로봇 시스템(100)은 대응하는 단위 화소(310)로 나타낸 배치 영역(340)의 표면부의 최대 높이로서 높이 측정값(402)을 결정할 수 있다.
이미 배치된 물체 중 하나 이상의 이미 배치된 물체와 중첩하는 후보 위치(360)의 각각에 대해, 로봇 시스템(100)은 높이 측정값(402)에 기초하여 배치 가능성을 평가할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 후보 위치(360)의 각각에서 중첩된 높이 측정값(402) 중 가장 높은 값을 식별하는 것에 기초하여 배치 가능성을 평가할 수 있다. 로봇 시스템(100)은 후보 위치(360)의 각각에 위치된 다른 높이 측정값(402)을 더 식별할 수 있고 높이 측정값(402)은 높이 측정값(402) 중 가장 높은 측정값에 비해 차분 문턱값의 한계 내에 있다. 셀/화소의 자격 부여는 적층된 물체가 본질적으로 평평한/수평면에 놓이도록 지지를 적층된 물체에 제공할 수 있는 위치를 나타낼 수 있다.
도 4A에 예시된 바와 같이, 후보 위치(360) 중 제1 후보 위치(이산화된 플랫폼 모델(304)의 상부 좌측 코너)에 대해, 가장 높은 높이 측정값은 0.3(즉, 300밀리미터(㎜) 높이)일 수 있다. 0.02(예를 들어, 20㎜를 나타냄)로서 사전 결정된 차분 문턱값에 대해, 로봇 시스템(100)은 차분 문턱값을 충족하는 것으로서 상단 4개의 이산화된 셀/화소를 식별할 수 있다. 로봇 시스템(100)은 지지 정도를 평가하도록/나타내도록 식별된/자격 부여된 셀/화소를 사용할 수 있다.
도 4B는 지원 계산의 추가의 실시예를 예시한다. 도 4B는 이산화된 플랫폼 모델(304)의 상부-좌측 코너에서 오버레이된 이산화된 물체 모델(302)(실선의 더 두꺼운 윤곽을 사용하여 도시됨)과 함께 도 3의 후보 위치(360) 중 하나의 후보 위치를 도시한다. 로봇 시스템(100)은 후보 위치(360)를 평가하도록 사용된 매개변수인, 다양한 지지 매개변수(410)를 계산/활용할 수 있다. 예를 들어, 지지 매개변수(410)는 이산화된 치수(412), 중첩된 영역(414), 높이 차분 문턱값(416), 지지 문턱값(418), 최대 높이(420), 높이 하한(422), 자격 부여 수(424), 지지 영역 윤곽(426)의 세트, 지지 영역 크기(428), 지지 비율(430), 질량 중심(CoM) 위치(432), 또는 이들의 조합을 포함할 수 있다.
이산화된 치수(412)는 도 3A의 단위 화소(310)에 따라 도 1의 타깃 물체(112)의 물리적 치수(예를 들어, 길이, 폭, 높이, 원주 등)를 설명할 수 있다. 예를 들어, 이산화된 치수(412)는 이산화된 물체 모델(302)의 주변 에지를 형성하는 단위 화소(310)의 수량을 포함할 수 있다. 중첩된 영역(414)은 유사하게 단위 화소(310)에 따라 나타날 수 있는, 타깃 물체(112)에 의해 점유된 영역(예를 들어, 수평면을 따른 풋프린트 크기)을 설명할 수 있다. 즉, 중첩된 영역(414)은 이산화된 물체 모델(302) 내 다수의 단위 화소(310)에 대응할 수 있다. 도 4B에 예시된 실시예에 대해, 타깃 물체(112)는 42개의 화소의 중첩된 영역(414)에 대응하는, 6개의 화소×7개의 화소의 이산화된 치수(412)를 가질 수 있다.
높이 차분 문턱값(416) 및 지지 문턱값(418)은 후보 위치(360)를 처리 및/또는 확인하도록 사용되는 한계에 대응할 수 있다. 조작자 및/또는 순서에 의해 사전 결정되고/되거나 조정될 수 있는, 높이 차분 문턱값(416)은 상단부에 배치된 패키지와 접촉하고/하거나 패키지를 지지하기 위한 또 다른 기준 높이(예를 들어, 이산화된 물체 모델(302)에 의해 중첩된 영역에서 높이 측정값(402)의 가장 높은 인스턴스에 대응하는 최대 높이(420))로부터 허용된 편차를 나타낼 수 있다. 즉, 높이 차분 문턱값(416)은 상단부에 배치된 패키지와 접촉하고/하거나 패키지를 지지할 수 있는 다양한 표면 높이를 획정하도록 사용될 수 있다. 이와 같이, 최대 높이(420)에 비해, 높이 하한(422)은 지지를 적층된 패키지에 제공할 수 있는 중첩된 영역(414) 내 높이에 대한 하한에 대응할 수 있다. 도 4B에 예시된 실시예에 대해, 높이 차분 문턱값(416)은 0.02일 수 있다. 최대 높이(420)가 0.2일 때, 높이 하한(422)은 0.18일 수 있다. 따라서, 타깃 물체(112)를 후보 위치(360)에 배치할 때, 로봇 시스템(100)은 0.18 초과의 높이를 가진 표면/화소가 타깃 물체(112)와 접촉하고/하거나 지지를 타깃 물체에 제공할 것을 추정할 수 있다.
따라서, 하나 이상의 실시형태에서, 로봇 시스템(100)은 높이 차분 문턱값(416)에 따라 중첩된 영역(414) 내 단위 화소(310)를 분류할 수 있다. 예를 들어, 로봇 시스템(100)은 지지 위치(442)(예를 들어, 음영 처리된 화소를 통해 도 4B에 나타낸 바와 같이, 상부에 적층된 물체를 가질 수 있는 표면을 나타내는 단위 화소(310)의 분류)로서 높이 차분 문턱값(416)(즉, 높이 하한(422) 이상의 값)을 충족하는 높이를 가진 단위 화소(310)를 분류할 수 있다. 로봇 시스템(100)은 다른 단위 화소(310)를 부적격 위치(444)(예를 들어, 높이 하한(422) 미만의 높이를 가진 화소)로서 분류할 수 있다.
지지 문턱값(418)은 지지 위치(442)의 충분함에 기초하여 후보 위치(360)를 평가하기 위한 한계를 나타낼 수 있다. 예를 들어, 지지 문턱값(418)은 지지 위치(442)와 연관된 양, 비, 영역, 위치, 또는 이들의 조합을 평가하기 위한 것일 수 있다. 일부 실시형태에서, 지지 문턱값(418)은 후보 위치(360)를 위한 자격 부여 수(424)(예를 들어, 지지 위치(442)의 양)가 타깃 물체(112)를 지지하기 위해 충분한지를 결정하도록 사용될 수 있다.
하나 이상의 실시형태에서, 지지 문턱값(418)은 지지 위치(442)와 연관된 지지된 영역(예를 들어, 높이 문턱값에 의해 결정될 수 있는 바와 같이, 지지를 상부에 적층된 물체에 제공할 수 있는 단위 화소(310))을 평가하도록 사용될 수 있다. 예를 들어, 로봇 시스템(100)은 지지 위치(442)의 최외측/주변 인스턴스의 코너를 연결하도록 부적격 위치(444)에 걸쳐 또는 주위에서 연장되는 라인을 결정하고/하거나 에지를 연장하는 것에 기초하여 지지 영역 윤곽(426)을 결정할 수 있다. 따라서, 지지 영역 윤곽(426)은 부적격 위치(444)를 배제할 수 있다. 따라서, 지지 영역 윤곽(426)은 지지 위치(442)의 주변 인스턴스에 기초하여 지지된 영역을 위한 주변을 획정할 수 있다. 지지 영역 윤곽(426)이 부적격 위치(444)에 걸쳐 연장될 수 있고/있거나 부적격 위치를 포함할 수 있기 때문에, 지지 영역 크기(428)(예를 들어, 지지된 영역 내 단위 화소(310)의 수)는 자격 부여 수(424) 초과일 수 있다. 이와 같이, 지지 영역 크기(428)는 지지가 제공되는 최외측 에지/코너 사이의 분리를 실질적으로 나타낸다. 더 넓은 지지부가 선호되기 때문에(예를 들어, 지지 영역 윤곽(426)의 부분이 오버행을 감소시키고/시키거나 안전성을 개선시키기 위해 물체의 중첩된 영역(414)보다 더 큼), 지지 문턱값(418)이 지지된 영역(예를 들어, 지지 영역 윤곽(426)을 평가하기 위함)에서 단위 화소(310)의 최소 수에 대응할 수 있어서, 이에 의해 지지가 제공되는 최외측 에지/코너 사이의 분리를 실질적으로 평가한다.
일부 실시형태에서, 지지 문턱값(418)은 자격 부여 수(424) 및/또는 지지 영역 크기(428)를 중첩된 영역(414)과 비교하는 것에 기초하여 계산될 수 있는, 지지 비율(430)을 평가하기 위한 것일 수 있다. 예를 들어, 지지 비율(430)은 수평 안전성, 지지 중량 농도, 또는 이들의 조합을 나타내기 위한, 자격 부여 수(424)와 중첩된 영역(414) 간의 비율을 포함할 수 있다. 또한, 지지 비율(430)은 타깃 물체(112) 아래의 지지 에지/코너 사이의 상대적인 폭을 나타내기 위한, 지지 영역 크기(428)와 중첩된 영역(414) 간의 비율을 포함할 수 있다.
게다가, 로봇 시스템(100)은 타깃 물체(112)의 CoM 위치(432)에 기초하여 후보 위치(360)를 더 평가할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 도 2의 마스터 데이터(252)로부터 타깃 물체(112)의 CoM 위치(432)에 액세스할 수 있고/있거나 타깃 물체(112)를 파지하고/하거나 리프팅하는 것에 기초하여 CoM 위치(432)를 동적으로 추정할 수 있다. 일단 액세스/추정된다면, 로봇 시스템(100)은 CoM 위치(432)를 지지 영역 윤곽(426)과 비교할 수 있다. 로봇 시스템(100)은 후보 위치(360)가 지지 영역 윤곽(426) 내 CoM 위치(432)를 포함하고 이러한 필요조건을 충족하는데 실패한 후보 위치(360)를 제거/자격 박탈하길 요구할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 CoM 위치(432)와 지지 영역 윤곽(426) 사이의 이격 거리(예를 들어, x축 및/또는 y축을 따름)에 기초하여 배치 스코어를 계산할 수 있고 구할 수 있다.
로봇 시스템(100)은 제약/필요조건을 평가하도록 지지 매개변수(410)를 사용할 수 있다. 예를 들어, 로봇 시스템(100)은 지지 문턱값(418), CoM 위치 문턱값(예를 들어, 지지 영역 윤곽(426) 내 CoM 위치(432)를 포함하기 위한 필요조건), 및/또는 다른 적층 규칙을 충족하지 않는 후보 위치를 제거/자격 박탈할 수 있다. 또한, 로봇 시스템(100)은 사전 결정된 중량 및/또는 등식에 따라 후보 위치(360)(예를 들어, 제약을 충족하는 위치)에 대한 배치 스코어를 계산하도록 지지 매개변수(410)를 사용할 수 있다. 아래에 상세히 설명되는 바와 같이, 로봇 시스템(100)은 사전 결정된 선호도(예를 들어, 중량/등식에 의해 반영된 바와 같음)에 따라 후보 위치(360)의 순위를 매기도록 계산된 배치 스코어를 사용할 수 있다.
물체 배치 작동
도 5는 본 개시내용의 하나 이상의 실시형태에 따른, 로봇 시스템(100)에 의해 실행된 예시적인 배치를 도시하는 평면도이다. 일부 실시형태에서, 로봇 시스템(100)은 타깃 물체(112)를 시작 위치(114)로부터 이송하고 타깃 물체를 과업 위치(116)에서 도출된 배치 위치(350)에 배치하도록 구성된 로봇 암(502)(예를 들어, 도 1의 이송 장치(104)의 부분, 예컨대, 팔레트화 로봇)을 포함할 수 있고/있거나 로봇 암과 통신할 수 있다. 예를 들어, 로봇 시스템(100)은 컨베이어 상의 지정된 위치/부분으로부터 타깃 물체(112)를 파지하고 픽업하고 타깃 물체(112)를 팔레트 상에 배치하도록 로봇 암(502)을 작동할 수 있다.
로봇 시스템(100)은 배치 위치(350)(예를 들어, 타깃 물체(112)가 시설에 그리고/또는 시작 위치(114)에 도착할 때 그리고/또는 하나 이상의 작동, 예컨대, 패킹 작동을 처음에 시작한 후)를 동적으로 도출할 수 있다. 로봇 시스템(100)은 하나 이상의 오류 또는 불확실성 인자, 예컨대, 패킹 계획(예를 들어, 과업 위치(116)에서, 타깃 물체(112)를 포함하는, 물체의 세트에 대해 도출된 배치 위치(350)를 나타내기 위한 계획)의 부재, 도착하는 물체의 오류(예를 들어, 물체가 예상된/알려진 물체 또는 시퀀스와 매칭되지 않을 때), 또는 이들의 조합에 기초하거나 또는 이것을 설명하도록 배치 위치(350)를 동적으로 도출할 수 있다. 로봇 시스템(100)은 또한 예상되지 않은 그리고/또는 변화된 배치 영역(340)(예를 들어, 과업 위치(116)에 대한 액세스가 부분적으로 모호할 때, 예컨대, 케이지 또는 차 트랙이 완전히 개방되지 않을 때)에 기인하여, 이전에 배치된 물체(508)(예를 들어, 이전에 배치된 물체(508) 중 하나 이상의 이전에 배치된 물체에서 팔레트 및/또는 시프트 상의 인지 불가능한 그리고/또는 예상되지 않은 패키지), 및/또는 충돌 사건(예를 들어, 로봇 암(502)과 이전에 배치된 물체(508) 사이)과 같은, 목적지에서의 하나 이상의 불확실성 또는 오류에 기초하여 또는 이것을 설명하도록 배치 위치(350)를 동적으로 도출할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 도 2의 센서(216)(예를 들어, 도 2의 이미징 디바이스(222)) 중 하나 이상의 센서를 통해 동적으로 수집된 데이터(예를 들어, 이미지 데이터 및/또는 측정 데이터)에 기초하여 배치 위치(350)를 동적으로 도출할 수 있다. 예를 들어, 로봇 시스템(100)은 시작 위치(114) 및/또는 진입 경로(예를 들어, 컨베이어) 위에 위치된 소스 센서(504)(예를 들어, 도 1의 3D 카메라(122) 중 하나)를 포함할 수 있고/있거나 소스 센서와 통신할 수 있다. 로봇 시스템(100)은 도 3A의 이산화된 물체 모델(302)을 생성하고/하거나 이산화된 물체 모델에 액세스하도록 소스 센서(504)로부터 데이터를 사용할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 소스 센서(504)를 사용하여 물체를 이미징할 수 있고/있거나 물체의 하나 이상의 치수를 측정할 수 있다. 로봇 시스템(100)은 들어오는 물체를 식별하도록 이미지 및/또는 측정값을 도 2의 마스터 데이터(252)와 비교할 수 있다. 식별에 기초하여, 로봇 시스템(100)은 물체와 연관된 이산화된 물체 모델(302)에 액세스할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 위에서 설명된 바와 같은 단위 화소(310)에 따라 이미지/치수를 분할하는 것에 기초하여 이산화된 물체 모델(302)을 동적으로 생성할 수 있다.
또한, 로봇 시스템(100)은 과업 위치(116) 위에 위치된 목적지 센서(506)(예를 들어, 도 1의 3D 카메라(122) 중 하나)를 포함할 수 있고/있거나 목적지 센서와 통신할 수 있다. 로봇 시스템(100)은 도 3B의 이산화된 플랫폼 모델(304)을 결정하고 동적으로 업데이트하도록 목적지 센서(506)로부터 데이터를 사용할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 배치 영역(340)(예를 들어, 과업 위치(116), 예컨대, 팔레트, 케이지 및/또는 차 트랙)의 하나 이상의 치수를 이미징할 수 있고/있거나 하나 이상의 치수를 측정할 수 있다. 로봇 시스템(100)은 이산화된 물체 모델(302)에 대해 설명된 바와 같이 유사하게, 이산화된 플랫폼 모델(304)을 식별하고, 액세스하고/하거나 생성하도록 이미지 및/또는 측정값을 사용할 수 있다. 게다가, 로봇 시스템(100)은 도 4A의 높이 측정값(402)을 결정하도록 목적지 센서(506)로부터 데이터(예를 들어, 깊이 맵)를 사용할 수 있다. 따라서, 로봇 시스템(100)은 배치 영역(340) 및 이산화된 플랫폼 모델(304)을 실시간으로 업데이트하도록 높이 측정값(402)을 사용할 수 있다. 예를 들어, 로봇 시스템(100)은 높이 측정값(402)을 이전에 배치된 물체(508)에 따라, 예컨대, 타깃 물체(112)를 배치 위치(350)에 배치한 후 업데이트할 수 있다.
로봇 시스템(100)은 타깃 물체(112)를 도 3B의 배치 위치(350) 및/또는 후보 위치(360)의 각각으로 이송하기 위한 진입로(510)를 도출할 수 있다. 진입로(510)는 타깃 물체(112)를 시작 위치(114)로부터 대응하는 후보 위치(360)로 공간에 걸쳐 조작/이송하기 위한 이동 계획에 대응할 수 있다. 진입로(510)는 수평 방향 및/또는 수직 방향에 걸쳐 연장되는 3D에 있을 수 있다.
타깃 물체(112)를 배치할 때, 로봇 시스템(100)은 타깃 물체(112)를 도출된 배치 위치에 배치하는 것이 위의 도 3 내지 도 6에서(예를 들어, 과업 위치(116)에서 조건의 상태가 변화되는 사건에서) 설명된 메트릭에 따라 타깃 물체(112)의 배치를 위해 안정적임을 검증할 수 있다. 물체를 배치한 후, 로봇 시스템(100)은 도출된 배치 위치에서 물체의 배치가 정확한지 그리고/또는 과업 위치(116)에서 조건의 상태가 변화되었는지를 검증할 수 있고 확인할 수 있다. 확인에 관한 정보에 적어도 부분적으로 기초하여, 로봇 시스템(100)은 과업 위치(116)에서(예를 들어, 하나 이상의 다른 물체에 대한 배치 위치를 동적으로 도출함으로써) 하나 이상의 다른 물체(예를 들어, 타깃 물체(112)의 부가적인/후속의 인스턴스)를 계속해서 패키징할 수 있다.
진입로 평가
도 6A 및 도 6B는 본 개시내용의 하나 이상의 실시형태에 따른, 도 1의 타깃 물체(112)를 배치하기 위한 예시적인 방식을 예시하는 측면도이다. 도 6A 및 도 6B는 과업 위치(116)(예를 들어, 팔레트) 상의 이전에 배치된 물체(508) 중 하나 이상의 이전에 배치된 물체 위의 도 3B의 대응하는 후보 위치(360)에 타깃 물체(112)를 배치하기 위한 도 5의 진입로(510)를 예시한다.
도 1의 로봇 시스템(100)은 F-1 내지 F-5의 파선 박스로서 예시되는, 접근 증분(approach increment)(602)에 기초하여 진입로(510)를 도출할 수 있다. 접근 증분(602)은 대응하는 진입로(510)를 따라 3D 공간에서 타깃 물체(112)의 순차적인 위치를 포함할 수 있다. 즉, 접근 증분(602)은 대응하는 진입로(510)를 따르기 위한 타깃 물체(112)의 샘플링된 위치에 대응할 수 있다. 접근 증분(602)은 대응하는 진입로(510)의 경로 부분(604)에 따라 정렬될 수 있다. 경로 부분(604)은 진입로(510) 내 선형 부분/방향에 대응할 수 있다. 경로 부분(604)은 타깃 물체(112)를 대응하는 후보 위치(360)에 배치하기 위한 최종 부분(606)을 포함할 수 있다. 최종 부분(606)은 수직(예를 들어, 하향) 방향을 포함할 수 있다.
진입로(510)를 도출하기 위해, 로봇 시스템(100)은 잠재적으로 장애물(610)(예를 들어, 타깃 물체(112)를 후보 위치(360)에 배치할 때 잠재적인 장애물과 같음)이 될 수도 있는 이전에 배치된 물체(508) 중 임의의 것을 식별할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 잠재적인 장애물(들)(610)을 시작 위치(114)와 대응하는 후보 위치(360)를 연결하는 수평선(611)(예를 들어, x-y 평면을 따른 직선)과 중첩하는 이전에 배치된 물체(508)의 인스턴스(들)로서 식별할 수 있다. 로봇 시스템(100)은 잠재적인 장애물(들)(610)을 타깃 물체(112)의 하나 이상의 치수(예를 들어, 폭, 길이 및/또는 높이)에 기초하여 폭을 갖고 수평선과 평행하고 수평선과 중첩하는 길을 도출하는 것에 기초하여, 수평선(611)의 주위에서 도출된 길(613)과 중첩하는 이전에 배치된 물체(508)의 인스턴스(들)로서 더 식별할 수 있다. 도 6A 및 도 6B에 예시된 바와 같이, 시작 위치(114)는 후보 위치(360)의 우측에 있을 수 있다. 따라서, 로봇 시스템(100)은 이전에 배치된 물체를 잠재적인 장애물(610)로서 우측에서 식별할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 도 4A의 높이 측정값(402)에 기초하여 잠재적인 장애물(610)을 확인할 수 있다. 예를 들어, 로봇 시스템(100)은 잠재적인 장애물(610)로서 후보 위치(360)의 높이 측정값 이상인 높이 측정값(402) 중 하나 이상의 높이 측정값에 의해 잠재적인 장애물(610)을 확인/식별할 수 있다. 로봇 시스템(100)은 후보 위치(360)의 높이 측정값 미만인 높이 측정값(402)을 가진 이전에 배치된 물체(508)를 제거할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 후보 위치(360)의 높이 및/또는 잠재적인 장애물(610)의 높이와 연관된 모호성에 기초하여 잠재적인 장애물(610)을 식별/제거할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 진입로(510)를 후보 위치(360)로부터 시작해서 도 5의 시작 위치(114)에서 종료되는 것과 같이, 역순으로 도출할 수 있다. 따라서, 로봇 시스템(100)은 잠재적인 장애물(610)을 회피하도록 최종 부분(606)을 먼저(예를 들어, 다른 부분 전에) 도출할 수 있다. 예를 들어, 로봇 시스템(100)은 사전 결정된 거리만큼 접근 증분(602)의 높이를 반복적으로 증가시키는 것에 기초하여 접근 증분(602)(예를 들어, 먼저 'F-1', 이어서 'F-2' 등)을 결정할 수 있다. 각각의 반복에 대해, 로봇 시스템(100)은 결정된 접근 증분(602)(예를 들어, 하단면/에지)과 잠재적인 장애물(610)(예를 들어, 상단면/에지) 간의 벡터(612)를 계산할 수 있고 분석할 수 있다. 로봇 시스템(100)은 벡터(612)가 결정된 접근 증분(602)이 잠재적인 장애물(610) 위에 있고/있거나 간격 문턱값(614)(예를 들어, 타깃 물체(112)와 잠재적인 장애물(610) 간의 접촉 또는 충돌을 방지하도록 잠재적인 장애물(610)의 가장 높은 포인트 위의 타깃 물체(112)를 위한 최소 수직 이격거리에 대한 필요조건)에 의해 잠재적인 장애물(610)을 제거하는 것을 나타낼 때까지 접근 증분(602)의 높이를 계속해서 증가시킬 수 있다. 결정된 접근 증분이 간격 문턱값(614)을 충족시킬 때 또는 다음의 반복에 대해, 로봇 시스템(100)은 사전 결정된 거리만큼 수평 방향을 따라(예를 들어, 시작 위치(114)를 향하여) 대응하는 접근 증분(602)을 조정할 수 있다. 따라서, 로봇 시스템(100)은 진입로(510)를 도출하도록 간격 문턱값(614)을 충족하는 접근 증분(602) 및 후보 위치(360)에 기초하여 최종 부분(606) 및/또는 후속의 경로 부분(604)을 도출할 수 있다.
일단 도출된다면, 로봇 시스템(100)은 대응하는 후보 위치(360)를 평가하도록 진입로(510)를 사용할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 진입로(510)에 따라 배치 스코어를 계산할 수 있다. 예를 들어, 로봇 시스템(100)은 최종/수직 부분(606)에 대한 더 짧은 길이/거리에 대한 선호도에 따라(예를 들어, 사전 결정된 배치 선호도에 대응하는 하나 이상의 중량에 따라) 배치 스코어를 계산할 수 있다. 따라서, 도 6A 및 도 6B의 진입로(510)를 비교할 때, 로봇 시스템(100)은 최종/수직 부분(606)의 더 짧은 길이를 가진, 도 6B에 예시된 경로를 선호할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 후보 위치(360)를 제거하거나 또는 자격 박탈하도록 사용되는 진입로(510)(예를 들어, 최종/수직 부분(606)에 대한)와 연관된, 제약, 예컨대, 최대 한계를 포함할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 다른 충돌/방해 관련된 매개변수에 따라 대응하는 후보 위치(360)를 더 평가할 수 있다. 예를 들어, 로봇 시스템(100)은 후보 위치(360)와 이전에 배치된 물체(508) 중 하나 이상의 이전에 배치된 물체 사이의 수평 이격거리(616)에 따라 후보 위치(360)를 평가할 수 있다. 수평 이격거리(616)의 각각은 대응하는 후보 위치(360)와 이전에 배치된 물체(508)의 인접한 인스턴스 사이에서 수평 방향(예를 들어, x-y 평면)을 따른 거리(예를 들어, 가장 짧은 거리)일 수 있다. 로봇 시스템(100)은 진입로(510)에 대해 위에서 설명된 바와 유사하게 수평 이격거리(616)에 기초하여 후보 위치(360)에 대한 배치 스코어를 계산할 수 있다. 또한, 로봇 시스템(100)은 수평 이격거리(616)가 최소 필요조건을 충족시키지 못할 때와 같이, 수평 이격거리(616)에 기초하여 후보 위치(360)를 제거할 수 있고 자격 박탈할 수 있다. 배치 스코어 계산 및/또는 후보 위치(360)를 제거하기 위한 제약에 관한 상세사항이 아래에서 논의된다.
작동 흐름
도 7은 본 개시내용의 하나 이상의 실시형태에 따른, 도 1의 로봇 시스템(100)을 작동시키는 방법(700)에 대한 흐름도이다. 방법(700)은 패키지(예를 들어, 케이스 및/또는 박스)를 플랫폼 (예를 들어, 팔레트) 상에 배치하고/하거나 이에 따라 패키지를 배치하기 위한 2D/3D 패킹 계획을 생성하기 위한 것일 수 있다. 방법(700)은 도 2의 프로세서(202) 중 하나 이상의 프로세서와 함께 도 2의 저장 디바이스(204) 중 하나 이상의 저장 디바이스에 저장된 명령어를 실행하는 것에 기초하여 구현될 수 있다.
블록(702)에서, 로봇 시스템(100)은 패키지 세트(예를 들어, 입수 가능한 패키지) 및 목적지(예를 들어, 도 1의 과업 위치(116), 예컨대, 패키지를 수용하기 위한 팔레트 및/또는 컨테이너)를 식별할 수 있다. 예를 들어, 로봇 시스템(100)은 패킹을 위해 이용 가능하고, 소스에 위치되고, 배치를 위해 지정되고/되거나 주문/요청/목록에 나열되는 패키지를 포함하는 입수 가능한 패키지를 나타내도록 패키지 세트를 식별할 수 있다. 또한, 로봇 시스템(100)은 패키지가 배치될 수 있는 과업 위치(116)의 영역(예를 들어, 팔레트, 예컨대, 도 3의 배치 팔레트(340)의 상단 로딩면)의 크기 또는 치수를 식별할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 팔레트에 대한 크기, 치수, 유형 또는 이들의 조합을 식별할 수 있다.
블록(704)에서, 로봇 시스템(100)은 입수 가능한 패키지 및/또는 과업 위치(116)를 나타내는 패키지 세트에 대응하는 이산화된 모델(예를 들어, 도 3A의 이산화된 물체 모델(302) 및/또는 도 3B의 이산화된 플랫폼 모델(304))을 생성할 수 있고/있거나 이산화된 모델에 액세스할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 물체 및/또는 플랫폼 영역(예를 들어, 도 3B의 단위 화소(310)에 따른 팔레트 상단면)의 물리적 치수를 분할하는 것에 기초하여 이산화된 모델을 (예를 들어, 실시간으로, 예컨대, 주문을 수신한 후 그리고/또는 패킹 작동을 시작하기 전, 또는 오프라인에서) 생성할 수 있다. 단위 화소(310)는 (예를 들어, 제작업자, 주문 고객 및/또는 조작자에 의해) 예컨대, 1밀리미터(㎜) 또는 1/16인치(in) 이상으로(예를 들어, 5㎜ 또는 20㎜로) 사전 결정될 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 저장 디바이스(204) 및/또는 또 다른 디바이스(예를 들어, 저장 디바이스, 데이터베이스 및/또는 도 2의 통신 디바이스(206)를 통해 액세스된 패키지 공급자의 서버)에 저장된 이산화된 모델에 액세스할 수 있다. 로봇 시스템(100)은 입수 가능한 패키지 및/또는 과업 위치(116)를 나타내는 사전 결정된 이산화된 모델에 액세스할 수 있다. 예를 들어, 로봇 시스템(100)은 입수 가능한 패키지 및 패키지의 대응하는 모델에 대한 도 2의 마스터 데이터(252)(예를 들어, 사전 결정된 테이블 또는 룩업 테이블)를 검색함으로써 입수 가능한 패키지에 대응하는 이산화된 물체 모델(302)에 액세스할 수 있다. 유사하게, 로봇 시스템(100)은 입수 가능한 패키지가 배치되는. 플랫폼, 예컨대, 식별된 팔레트를 나타내는 이산화된 플랫폼 모델(304)에 액세스할 수 있다.
블록(706)에서, 로봇 시스템(100)은 패키지 분류(예를 들어, 입수 가능한 패키지의 하위분류)를 결정할 수 있다. 로봇 시스템(100)은 입수 가능한 패키지를 식별된 플랫폼(예를 들어, 배치 팔레트(340)) 상에 배치하기 위해 입수 가능한 패키지에 기초하여 패키지 분류를 결정할 수 있다. 로봇 시스템(100)은 입수 가능한 패키지의 하나 이상의 특성 내 유사성 및/또는 패턴에 따라 패키지 분류를 결정할 수 있다. 일부 실시형태에서, 블록(721)에 예시된 바와 같이, 로봇 시스템(100)은 분류 조건/필요조건에 따라 입수 가능한 패키지를 분류함으로써 패키지 분류를 결정할 수 있다. 분류 조건/필요조건의 일부 예는 패키지 우선권(예를 들어, 하나 이상의 고객에 의해 명시된 바와 같음), 취도 등급(예를 들어, 패키지에 의해 지지 가능한 최대 중량), 중량, 패키지 치수(예를 들어, 패키지 높이), 패키지 유형, 또는 이들의 조합을 포함할 수 있다. 입수 가능한 패키지의 분류 시, 로봇 시스템(100)은 분류 조건/필요조건과 매칭되는 입수 가능한 패키지의 다양한 특성에 대한 마스터 데이터(252)를 검색할 수 있다.
블록(708)에서, 로봇 시스템(100)은 입수 가능한 패키지 및/또는 입수 가능한 패키지의 분류(즉, 패키지 분류)를 위한 처리 순서(예를 들어, 배치 위치를 고려/도출하기 위한 시퀀스)를 계산할 수 있다. 일부 실시형태에서, 블록(722)에서 예시된 바와 같이, 로봇 시스템(100)은 하나 이상의 시퀀싱 조건/필요조건에 따라 처리 순서를 계산할 수 있다. 예를 들어, 로봇 시스템(100)은 분류의 각각에서 복수의 패키지에 따라, 예컨대, 배치 계획에서 더 일찍 다수의 패키지를 가진 패키지 분류를 처리하기 위해, 패키지 분류의 배치 계획의 우선순위를 정할 수 있다. 또 다른 예를 들면, 로봇 시스템(100)은 각각의 군의 충전율에 따라, 예컨대, 다수의 더 작은 패키지를 가진 패키지 분류보다 배치 계획에서 더 일찍 소수의 더 큰 패키지를 가진 패키지 분류를 처리하기 위해, 패킷 분류의 배치 계획의 우선순위를 정할 수 있다. 일부 실시형태에서, 시퀀싱 조건은 예컨대, 중량 범위, 취약도 순위 등에 대한 분류 조건과 중첩할 수 있다. 예를 들어, 로봇 시스템(100)은 조기 처리를 위해 그리고/또는 하부층 내 배치를 위해 더 무겁고/무겁거나 덜 취약한 패키지의 처리의 우선순위를 정할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 결합된 수평 영역에 따라 배치 계획의 우선순위를 정할 수 있다. 로봇 시스템(100)은 마스터 데이터(252)에 명시된 정보를 사용하는 분류 시 패키지의 상단면의 표면적을 (예를 들어, 대응하는 폭과 길이를 곱하는 것을 통해) 계산할 수 있거나 또는 표면적에 액세스할 수 있다. 결합된 수평 영역을 계산할 때, 로봇 시스템(100)은 문턱값 범위 내에서 동일한 유형 및/또는 높이를 가진 패키지의 표면적을 추가할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 조기 처리를 위해 그리고/또는 하부층 내 배치를 위해 더 큰 결합된 수평 영역을 가진 분류의 배치 계획의 우선순위를 정할 수 있다.
하나 이상의 실시형태에 대해, 로봇 시스템(100)은 입수 가능한 패키지의 식별자 및/또는 수량을 가진 버퍼를 로딩할 수 있다. 로봇 시스템(100)은 분류에 따라 버퍼 내 식별자를 시퀀싱할 수 있다. 게다가, 로봇 시스템(100)은 처리 순서에 따라 버퍼 내 식별자를 시퀀싱할 수 있다. 따라서, 버퍼 내 시퀀싱된 값은 입수 가능한 패키지 및/또는 나머지 패키지에 대응할 수 있다.
블록(724)에서 예시된 바와 같이, 예를 들어, 로봇 시스템(100)은 대응하는 적층 계획을 구현하기 전에, 예컨대, 패키지 세트 내 임의의 패키지가 플랫폼 상에 배치되기 전에 입수 가능한 패키지의 초기 세트(예를 들어, 패키지 세트)에 대한 처리 순서를 계산할 수 있다. 일부 실시형태에서, 블록(726)에서 예시된 바와 같이, 로봇 시스템(100)은 대응하는 적층 계획을 개시한 후 또는 구현하는 동안 입수 가능한 패키지의 나머지 세트에 대한 처리 순서를 계산할 수 있다. 예를 들어, 블록(716)으로부터 피드백 루프로 예시된 바와 같이, 로봇 시스템(100)은 하나 이상의 트리거링 조건에 따라 나머지 세트(예를 들어, 플랫폼으로 이송되지 않고/않거나 소스 위치에 나머지 입수 가능한 패키지의 부분)에 대한 처리 순서를 계산할 수 있다. 예시적인 트리거링 조건은 적층 오류(예를 들어, 손실된 또는 떨어진 패키지), 충돌 사건, 사전 결정된 리트리거링 타이밍, 또는 이들의 조합을 포함할 수 있다.
블록(710)에서, 로봇 시스템(100)은 입수 가능한 패키지를 수평면을 따라 배치하기 위한 2D 계획을 생성할 수 있다. 예를 들어, 로봇 시스템(100)은 수평면을 따른 입수 가능한 패키지의 2D 맵핑을 나타내도록 배치 계획을 생성할 수 있다. 로봇 시스템(100)은 이산화된 모델에 기초하여 2개 이상의 배치 계획을 생성할 수 있다. 예를 들어, 로봇 시스템(100)은 이산화된 물체 모델(302)과 이산화된 플랫폼 모델(304)을 비교하는 것에 기초하여 배치 계획을 생성할 수 있다. 로봇 시스템(100)은 이산화된 물체 모델(302)의 상이한 배치/배열을 결정할 수 있고, 이산화된 물체 모델을 이산화된 플랫폼 모델(304)과 중첩/비교할 수 있고, 중첩될 때 이산화된 플랫폼 모델(304)의 경계 내에 있는 배열을 확인/유지할 수 있다. 로봇 시스템(100)은 또 다른 층(예를 들어, 배치 계획의 또 다른 인스턴스)에 대한 이산화된 플랫폼 모델(304)의 경계 내에 배치될 수 없는 패키지를 지정할 수 있다. 따라서, 로봇 시스템(100)은 패키지 세트 내 패키지의 각각이 배치 계획에서 위치에 할당될 때까지 적층 계획의 2D 층을 나타내는 배치 계획을 위한 배치 위치를 반복적으로 도출할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 패키지 분류에 기초하여 배치 계획을 생성할 수 있다. 예를 들어, 로봇 시스템(100)은 또 다른 분류에서 패키지의 배치를 고려하기 전에 하나의 패키지 분류에서 패키지를 위한 배열을 결정할 수 있다. 패키지 분류 내 패키지가 층을 넘어갈 때(즉, 패키지가 이산화된 플랫폼 모델(304)의 하나의 층 또는 하나의 인스턴스에 피팅될 수 없음) 그리고/또는 하나의 분류의 모든 패키지를 배치한 후, 로봇 시스템(100)은 다음의 분류에서 패키지를 위한 위치를 이산화된 플랫폼 모델(304) 내 임의의 나머지/점유되지 않은 영역에 할당할 수 있다. 로봇 시스템(100)은 미할당된 패키지 중 어느 것도 이산화된 플랫폼 모델(304)의 나머지 공간에 걸쳐 피팅될 수 없을 때까지 할당을 반복적으로 반복할 수 있다.
유사하게, 로봇 시스템(100)은 처리 순서에 기초하여(예를 들어, 처리 순서에 따른 패키지 분류에 기초하여) 배치 계획을 생성할 수 있다. 예를 들어, 로봇 시스템(100)은 처리 순서에 따라 패키지 및/또는 분류를 할당하는 것에 기초하여 테스트 배열을 결정할 수 있다. 로봇 시스템(100)은 가장 이른 시퀀싱된 패키지/분류를 테스트 배열을 위한 초기 배치에 할당할 수 있고, 이어서 처리 순서에 따라 후속의 패키지/분류를 테스트/할당할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 층에 걸쳐(예를 들어, 배치 계획의 인스턴스에 걸쳐) 패키지/분류를 위한 처리 순서를 유지할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 각각의 층이 충전된 후 처리 순서를 재계산 및 업데이트할 수 있다(도 7의 피드백 파선을 사용하여 예시됨).
일부 실시형태에서, 위에서 설명된 과정의 실례가 되는 실시예로서, 로봇 시스템(100)은 패키지 세트 내에서 상이한 패키지 유형을 식별함으로써 2D 계획을 생성할 수 있다. 즉, 블록(732)에서, 로봇 시스템(100)은 패키지 분류 및/또는 패키지 세트의 각각에서 고유 패키지(예를 들어, 패키지 유형으로 나타낸 바와 같음)를 식별할 수 있다.
블록(734)에서, 로봇 시스템(100)은 입수 가능한 패키지의 각각에 대한 배치 위치를 (예를 들어, 반복적으로) 도출할 수 있다. 블록(736)에서, 로봇 시스템(100)은 처리 순서에 따라 차례대로 먼저 고유 패키지에 대한 초기 배치 위치를 결정할 수 있다. 로봇 시스템(100)은 위에서 설명된 바와 같은 사전 결정된 패턴에 따라 초기 배치 위치를 결정할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 각각의 고유 패키지에 대한 초기 배치를 계산할 수 있다. 결과적으로 발생된 초기 배치는 각각 예컨대, 반복에 걸쳐 배치 계획(350)을 추적함으로써, 고유 배치 조합(예를 들어, 검색 트리의 인스턴스)으로 전개될 수 있다. 블록(738)에서, 로봇 시스템(100)은 위에서 설명된 바와 같은 처리 순서 및/또는 나머지 패키지에 따라 후속의 패키지에 대한 후보 배치 위치를 도출 및 추적할 수 있다. 따라서, 로봇 시스템(100)은 배치 조합을 반복적으로 도출할 수 있다.
배치 조합(예를 들어, 후보 배치 위치)을 도출할 때, 로봇 시스템(100)은 후보 적층 시나리오(예를 들어, 입수 가능한 패키지에 대한 고유 배치 위치의 잠재적인 조합)를 반복적으로 도출하고 평가하는 것에 기초하여 대응하는 패키지의 이산화된 물체 모델(302)의 위치를 테스트/평가할 수 있다. 후보 적층 시나리오 각각은 위에서 논의된 시퀀스에 따라 패키지에 대한 고유 잠재적인 위치를 (예를 들어, 배치 위치에 대한 사전 결정된 시퀀스/규칙에 따라) 식별하는 것에 기초하여 도출될 수 있다. 후보 적층 시나리오 및/또는 고유 배치 위치는 하나 이상의 배치 기준(예를 들어, 필요조건, 제약, 배치 비용 및/또는 휴리스틱 스코어(heuristic score))에 따라 평가될 수 있다. 예를 들어, 배치 기준은 이산화된 물체 모델(302)이 선택된 위치에 배치될 때 이산화된 플랫폼 모델(304)의 수평 경계 내에서 전부 피팅되는 것을 요구할 수 있다. 또한, 배치 기준은 이산화된 물체 모델(302)의 배치가 초기 배치 위치(예컨대, 수평 방향을 따른) 및/또는 예컨대, 인접한 배치 또는 분리 필요조건을 위한, 이전의 배치 위치에 대한 문턱값 거리 내에 또는 넘어 있는 것을 요구할 수 있다. 배치 기준의 다른 예는 하나 이상의 패키지 치수(예를 들어, 높이), 취약도 순위, 패키지 중량 범위, 또는 이들의 조합의 가장 작은 차(들)를 가진 패키지를 인접하게 배치하기 위한 선호도를 포함할 수 있다. 일부 실시형태에서, 배치 기준은 기준 위치(예를 들어, 팔레트화 로봇의 위치)에 대한 층 내 이전에 할당된 패키지의 위치 및/또는 특성(예를 들어, 높이)에 대응할 수 있는 충돌 확률을 포함할 수 있다. 따라서, 로봇 시스템(100)은 패키지 배치 위치의 다수의 고유 배치 조합(즉, 다수의 층을 각각 포함하는 후보 적층 시나리오 및/또는 각각의 층에 대한 후보 배치 계획)을 생성할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 배치 반복에 걸쳐 검색 트리를 생성하고 업데이트하는 것에 기초하여 조합의 배치를 추적할 수 있다.
블록(740)에서, 로봇 시스템(100)은 각각의 조합/패키지 배치에 대한 배치 스코어를 계산/업데이트할 수 있다. 로봇 시스템(100)은 배치 조건/선호도(예를 들어, 패키지 치수, 충돌 확률, 취약도 순위, 패키지 중량 범위, 분리 필요조건, 패키지 품질 조건) 중 하나 이상에 따라 배치 스코어를 계산할 수 있다. 예를 들어, 로봇 시스템(100)은 패키지 사이의 이격 거리, 인접한 패키지에 대한 패키지 치수/취약도 순위/패키지 중량의 차, 충돌 확률, 동일한 높이에서 연속적인/인접한 표면, 이들의 통계 결과(예를 들어, 평균, 최대, 최소, 표준 편차 등), 또는 이들의 조합에 대한 선호도를 설명하도록 선호도 인자(예를 들어, 승수 중량) 및/또는 등식을 사용할 수 있다. 각각의 조합은 시스템 제작업자, 주문 및/또는 시스템 조작자에 의해 사전 획정될 수도 있는 선호도 인자 및/또는 등식에 따라 스코어가 매겨질 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 전체 배치 반복의 끝에서 배치 스코어를 계산할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 각각의 배치 반복 후 우선권 큐에서 배치 조합의 시퀀스를 업데이트할 수 있다. 로봇 시스템(100)은 배치 스코어에 기초하여 시퀀스를 업데이트할 수 있다.
로봇 시스템(100)은 빈 소스 상태, 풀(full) 층 상태, 또는 변화되지 않은 스코어 상태를 결정하는 것에 기초하여 배치 반복을, 예컨대, 하나의 후보 배치 계획이 종료될 때 중단할 수 있다. 빈 소스 상태는 모든 입수 가능한 패키지가 배치된 것을 나타낼 수 있다. 풀 층 상태는 다른 패키지가 고려된 이산화된 플랫폼 모델(304)의 나머지 영역에 배치될 수 없다는 것을 나타낼 수 있다. 변화되지 않은 스코어 상태는 조합에 대한 배치 스코어가 하나 이상의 연속적인 배치 반복에 걸쳐 일정하게 남아 있다는 것을 나타낼 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 후보 적층 시나리오의 다른 인스턴스를 도출하도록 상이한 초기 배치 위치 및/또는 상이한 처리 순서를 사용하여(예를 들어, 시퀀싱 조건과 연관된 동일한 시퀀싱 값/스코어를 가진 군을 재정리하기 위해) 배치 반복을 반복할 수 있다. 즉, 로봇 시스템(100)은 다수의 2D 배치 계획을 생성할 수 있고, 각각의 2D 배치 계획은 3D 스택 내 층(예를 들어, 후보 적층 시나리오의 인스턴스)을 나타낼 수 있다. 다른 실시형태에서, 로봇 시스템(100)은 2D 배치 계획이 도출될 때 3D 효과를 반복적으로 고려할 수 있고 2D 배치 계획이 풀 상태가 될 때 다음의 반복으로서 다음의 층을 도출하기 시작할 수 있다.
블록(712)에서, 로봇 시스템(100)은 적층 계획을 생성할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 처리된 패키지의 배치 위치가 하나 이상의 이전에 배치된/처리된 패키지와 중첩할 때 적층 계획을 생성하기 시작할 수 있다.
적층 계획을 생성하고/하거나 2D 계획을 사정할 때, 로봇 시스템(100)은 블록(752)에 예시된 바와 같이 배치 조합 및/또는 배치 계획의 각각을 3D 상태로 전환할 수 있다. 예를 들어, 로봇 시스템(100)은 패키지에 대한 높이 값을 배치 조합에 할당할 수 있다. 즉, 로봇 시스템(100)은 패키지 높이를 배치 조합에 추가하는 것에 기초하여 윤곽 맵(깊이 맵의 추정)을 생성할 수 있다.
3D 상태에 대해, 로봇 시스템(100)은 하나 이상의 적층 규칙(예를 들어, 수평 오프셋 규칙, 지지 분리 규칙 및/또는 수직 오프셋 규칙)에 따라 배치 조합을 평가할 수 있다. 실례가 되는 실시예로서, 배치된 패키지가 하나 이상의 이전에 처리된 패키지 상에/위에 적층될 때, 로봇 시스템(100)은 중첩 필요조건, 오버행 필요조건, 수직 오프셋 규칙, CoM 오프셋 필요조건, 또는 이들의 조합을 위반하는 임의의 배치 조합을 제거할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 처리된 패키지 아래의 하나 이상의 패키지의 취약도 순위를 위반하는 임의의 배치 조합을 예컨대, 중첩된 패키지에서 지지 중량을 제거하고 이들을 대응하는 취약도 순위와 비교함으로써 제거할 수 있다.
나머지 배치 조합에 대해, 로봇 시스템(100)은 블록(754)에서 예시된 바와 같이, 3D 배치 스코어를 계산할 수 있거나 또는 배치 스코어를 업데이트할 수 있다. 로봇 시스템(100)은 3D 배치에 대한 배치 비용 및/또는 휴리스틱 값과 연관된 사전 결정된 선호도(예를 들어, 중량 및/또는 등식)를 사용할 수 있다. 사전 결정된 3D 선호도는 2D 선호도, 분류 선호도, 시퀀싱 조건, 또는 이들의 조합과 유사할 수 있다. 예를 들어, 3D 선호도는 3D 상태에 기초하여 충돌 확률을 계산하고 더 낮은 충돌 확률을 가진 배치 조합에 찬성하는 스코어를 계산하도록 구성될 수 있다. 또한, 로봇 시스템(100)은 나머지 패키지, 공통 높이를 가진 지지 영역의 크기, 3D 상태에서 패킹된 아이템의 수, 처리된 패키지의 높이 간의 차, 또는 이들의 조합에 기초하여 스코어를 계산할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 스코어에 따라 우선권 큐에서 배치 조합의 시퀀스를 업데이트할 수 있다.
3D 상태가 처리된 후, 로봇 시스템(100)은 블록(710)에서와 같이, 나머지 패키지에서 다음의 패키지를 위한 배치를 도출함으로써 2D 계획을 업데이트할 수 있다. 로봇 시스템(100)은 중단 상태까지, 예컨대, 모든 입수 가능한 패키지가 처리될 때(즉, 나머지 패키지에 대한 빈 값/세트) 그리고/또는 배치 조합이 개선될 수 없을 때(또한 미개선된 조합으로서 지칭됨) 위에서 설명된 과정을 반복할 수 있다. 미개선된 조합의 일부 예는 현재 처리된 배치가 하나 이상의 위반에 기인하여 우선권 큐에서 배치 조합의 마지막을 제거할 때 그리고/또는 배치 스코어가 반복의 문턱값 수에 걸쳐 선호된 조합에 대해 일정하게 유지될 때를 포함할 수 있다.
중단 상태가 검출될 때, 블록(756)에서와 같이, 로봇 시스템(100)은 배치 스코어(예를 들어, 2D 및/또는 3D 관련된 스코어)에 따라 도출된 배치 조합 중 하나를 선택할 수 있다. 따라서, 로봇 시스템(100)은 적층 계획(예를 들어, 배치 계획의 세트)으로서 선택된 배치 조합을 지정할 수 있다.
일부 실시형태에서, 실례가 되는 실시예로서, 로봇 시스템(100)은 블록(710 및 712)의 기능을 상이하게 구현할 수 있다. 예를 들어, 블록(710)에서, 로봇 시스템(100)은 위에서 설명된 바와 같이 하단층에 대한 2D 계획(예를 들어, 배치 계획(350)의 인스턴스)을 생성할 수 있다. 그렇게 함으로써, 로봇 시스템(100)은 패키지 높이와 매칭되기 위한 더 많은 선호도(예를 들어, 더 큰 매개변수 중량), 배치 및/또는 처리 순서를 고려할 때 패키지에 대한 더 무거운 패키지 중량 및/또는 더 큰 지지 가능한 중량을 배치하도록 구성될 수 있다. 로봇 시스템(100)은 블록(710)에 대해 위에서 설명된 바와 같이 기저층에 대한 제1의 2D 계획을 도출할 수 있다.
일단 제1의 2D 층이 위에서 설명된 바와 같이 완성되고/풀 상태여서, 기저층을 형성한다면, 로봇 시스템(100)은 블록(712/752)에 대해 설명된 바와 같이 배치 계획을 3D 상태로 전환할 수 있다. 3D 정보를 사용하여, 로봇 시스템(100)은 위에서 설명된 바와 같은 기저층의 하나 이상의 평면 부분/영역(예를 들어, 도 3B의 배치 표면(352 내지 356))을 식별할 수 있다. 평면 부분을 사용하여, 로봇 시스템(100)은 기저층 위의 다음의 층을 위한 패키지 배치를 반복적으로/되풀이하여 도출할 수 있다. 로봇 시스템(100)은 블록(710)에 대해 위에서 설명된 바와 같이 이산화된 플랫폼 모델(304)의 새로운 인스턴스로서 평면 부분의 각각을 고려할 수 있고 상이한 배치를 테스트/평가할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 배치 표면을 사용하여 2D 배치를 도출할 수 있지만 배치 팔레트(340)의 전부에 걸쳐 스코어를 계산할 수 있다. 따라서, 로봇 시스템(100)은 이전의 배치 영역으로 제한되는 일 없이 후속의 층에 대한 더 큰 배치 영역에 대한 선호도를 따르도록 구성될 수 있다.
일단 반복적인 배치 과정이 제2 층에 대해 중단된다면, 로봇 시스템(100)은 다음의 위의 층에 대한 나머지 패키지/분류의 2D 배치를 생성하도록 도출된 층에 대한 평면 부분(예를 들어, 문턱값 범위 내 높이를 가진 상단면)을 계산할 수 있다. 반복적인 층 형성 과정은 중단 조건이 위에서 설명된 바와 같이 충족될 때까지 계속될 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 블록(712)에서 2D 계획(예를 들어, 배치 계획 중 2개 이상의 배치 계획)을 별도로 생성할 수 있다. 로봇 시스템(100)은 2D 계획을 수직으로 결합하는 것(예를 들어, 수직 방향을 따라 2D 배치 계획을 배열/중첩하는 것)에 기초하여 적층 계획을 생성할 수 있다.
블록(714)에서, 로봇 시스템(100)은 적층 계획에 기초하여 패킹 시퀀스(예를 들어, 도 5B의 적층 시퀀스(530))를 계산할 수 있다. 실시예로서, 패킹 시퀀스는 입수 가능한 패키지의 주문의 식별을 위한 것일 수 있다. 일부 실시형태에서, 블록(762)에서 예시된 바와 같이, 로봇 시스템(100)은 패킹 시퀀스를 층 단위로 계산할 수 있다. 즉, 로봇 시스템(100)은 각각의 층에 대한 패킹 시퀀스를 계산할 수 있고 하단부로부터 상단부로 층의 순서/위치에 따라 시퀀스를 연결할 수 있다. 패킹 시퀀스를 계산할 때, 일부 실시형태에서, 로봇 시스템(100)은 블록(772)에서 예시된 바와 같이 배치 계획을 조정할 수 있다. 예를 들어, 로봇 시스템(100)은 하부층 배치 계획으로부터 상부층 배치 계획으로 패키지(예를 들어, 후속의 조작/이송에 대한 충돌 확률을 증가시키는 높이를 가진 패키지) 중 하나 이상의 패키지를 재할당함으로써 배치 계획을 조정할 수 있다. 재할당된 패키지에 의해 지지된 임의의 패키지는 또한 훨씬 더 높은 층에 재할당될 수 있다. 즉, 재할당된 패키지는 패키지가 도 5B에 예시된 바와 같이 나중에 배치될 수 있도록, 동일한 수평 배치에 남아 있을 수 있고 상부층과 연관될 수 있다. 블록(774)에서, 로봇 시스템(100)은 조정된 배치 계획에 기초하여, 예컨대, 하부층에 할당된 물체 뒤에 상부층에 할당되는 물체를 패킹/조작함으로써 패킹 시퀀스(예를 들어, 적층 시퀀스(530))를 계산할 수 있다.
다른 실시형태에서, 블록(764)에 예시된 바와 같이, 로봇 시스템(100)은 층 할당과 상관없이/관계없이 패킹 시퀀스를 계산할 수 있다. 즉, 로봇 시스템(100)은 하부층에 할당된 패키지가 상부층에 할당된 패키지 뒤에 배치될 수도 있도록 패킹 시퀀스를 계산할 수 있다.
패킹 시퀀스를 계산할 때, 층 내에서 또는 층에 걸쳐, 로봇 시스템(100)은 하나 이상의 패키지 치수(예를 들어, 높이), 관련 배치 위치, 또는 이들의 조합에 따라 적층 계획에서 패키지의 위치를 분석할 수 있다. 예를 들어, 로봇 시스템(100)은 할당된 패키지에 더 가까워지기 전에 단위/기준 위치(예를 들어, 팔레트화 로봇의 위치)로부터 더 이격되게 박스의 배치를 시퀀싱할 수 있다. 또한, 로봇 시스템(100)은 패키지의 할당된 위치가 배치 계획의 주변을 따르고 단위 위치로부터 이격될 때 더 긴/더 무거운 패키지를 더 일찍 배치할 수 있다.
블록(716)에서, 로봇 시스템(100)은 입수 가능한 패키지를 플랫폼 상에 배치하기 위한 적층 계획을 구현할 수 있다. 로봇 시스템(100)은 적층 계획에 따라 대응하는 디바이스/장치(예를 들어, 도 1의 이송 장치(104), 도 2의 구동 디바이스(212), 도 2의 센서(216) 등)에 대한 하나 이상의 이동 계획, 작동기 명령/설정, 또는 이들의 조합과 통신하는 것에 기초하여 적층 계획을 구현할 수 있다. 로봇 시스템(100)은 입수 가능한 패키지를 소스 위치로부터 목적지 플랫폼으로 이송하도록 전달된 정보를 디바이스/장치에서 실행시키는 것에 기초하여 적층 계획을 더 구현할 수 있다. 따라서, 로봇 시스템(100)은 3D 맵핑에 따라 입수 가능한 패키지를 배치할 수 있고, 입수 가능한 패키지 중 하나 이상의 입수 가능한 패키지는 입수 가능한 패키지를 층 단위로 배치하는 것과 같이, 다른 패키지의 상단부에 배치/적층된다. 게다가, 로봇 시스템(100)은 패킹 시퀀스에 따라 패키지를 조작/이송할 수 있다. 이와 같이, 로봇 시스템(100)은 패키지를 층 단위로 또는 위에 설명된 바와 같은 제한 없이 배치할 수 있다.
도 8은 본 기술의 하나 이상의 실시형태에 따른, 도 1의 로봇 시스템(100)을 작동시키는 방법(800)을 위한 흐름도이다. 방법(800)은 오류 및 잠재적인 충돌을 검출하고 적절한 응답을 결정하도록 사용될 수 있다. 예를 들어, 방법(800)은 도 1의 과업 위치(116)에서 도 3의 타깃 물체(112)에 대한 도 3B의 배치 위치(350)를 동적으로 도출하고/하거나 검출된 오류에 기인하여 기존의 패킹 계획(예를 들어, 목적지에서 물체의 세트의 특정한 배치 위치/자세에 관한 상세사항, 연관된 시퀀스 및/또는 이동 계획, 또는 이들의 조합)을 조정하도록 사용될 수 있다. 아래에 더 상세히 설명되는 바와 같이, 가능한 오류는 예상된 패키징 상태와 실시간 패키징 상태 간의 편차 또는 차이를 포함한다. 즉, 오류는 물체를 패킹 계획에 따라 과업 위치(116)에 배치하는 동안 발생할 수도 있는 예상되지 않은 사건(예를 들어, 충돌, 떨어진/손실된 물체, 이미 배치된 물체의 이동, 및/또는 과업 위치(116)에서의 폐쇄)에 대응할 수 있다. 이 실시형태 및 다른 실시형태에서, 예상되는 패키징 상태는 타깃 물체 및/또는 이전에 배치된 물체(508)를 배치하기 전, 동안 또는 후에 패키징 상태의 변화(예를 들어, 패킹 계획에 따른)에 적어도 부분적으로 기초할 수 있다. 이 실시형태 및 추가의 다른 실시형태에서, 방법(800)은 도 2의 하나 이상의 프로세서(202)와 함께 도 2의 하나 이상의 저장 디바이스(204)에 저장된 명령어를 실행시킴으로써 구현될 수 있다.
위에서 논의된 바와 같이, 도 7의 방법(700)은 패킹 계획을 도출 및/또는 구현하도록, 그리고 무진사에 할당되고, 대리인 문서 번호 제131837-8005.US01호에 의해 식별되고, 전문이 참조에 의해 본 명세서에 원용되는, 동시에 출원된 미국 특허 출원(발명자: Rosen N. Kiankov 및 Denys Kanunikov, 발명의 명칭: "A ROBOTIC SYSTEM WITH PACKING MECHANISM")에 더 상세히 설명된 바와 같이 구현될 수 있다.
3D 적층 계획 및/또는 패킹 시퀀스가 생성된 후, 로봇 시스템(100)은 블록(801)에 예시된 바와 같이 패킹 계획을 실행시키기 시작할 수 있다. 패킹 계획을 실행시키기 위해, 로봇 시스템(100)은 로봇 장치 중 하나 이상의 로봇 장치, 예컨대, 도 1에 예시된 언로딩 장치(102), 이송 장치(104), 수송 장치(106), 로딩 장치(108) 등을 (예를 들어, 대응하는 명령, 설정, 이동 계획 등을 생성, 전송, 구현하는 것을 통해) 작동시킬 수 있다. 로봇 시스템(100)은 3D 적층 계획에 따라 물체를 도 1의 시작 위치(114)로 수송하고 시작 위치(114)로부터의 물체를 (예를 들어, 이송 장치(104)를 통해) 조작하여 물체를 도 1의 과업 위치(116)(예를 들어, 팔레트, 케이지, 차 트랙 등)에 배치하도록 로봇 장치를 작동시킬 수 있다. 예를 들어, 로봇 시스템(100)은 패킹 시퀀스에 따라 물체를 시작 위치(114)로 (예를 들어, 수송 장치(106), 예컨대, 컨베이어를 통해) 수송할 수 있고 3D 패킹 계획에 따라 물체를 도 3B의 배치 영역(340)에 배치할 수 있다. 로봇 시스템(100)은 할당된 위치에 배치되는, 패킹 시퀀스 및/또는 3D 패킹 계획 내 물체를 식별하도록 패킹 계획을 실행시키는 동안 진행상황을 더 추적할 수 있다.
블록(802)에서, 로봇 시스템(100)은 실시간 패키징 상태를 식별할 수 있다. 패킹 계획을 구현하는 동안, 로봇 시스템(100)은 시작 위치(114) 및/또는 과업 위치(116)에서 또는 주변에서(예를 들어, 사전 결정된 거리 내에서) 실시간 패키징 상태를 식별할 수 있다. 예를 들어, 로봇 시스템(100)은 실시간으로 과업 위치(116)에서 들어오는 물체 및/또는 물체의 각각에 관한 정보(예를 들어, 도 2의 센서(216)로부터의 센서 데이터)를 수신할 수 있고 분석할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 시작 위치(114)에 있거나 또는 시작 위치에 다가가는, 타깃 물체(112)를 포함하는, 하나 이상의 물체를 나타내는 소스 센서 데이터를 (예를 들어, 도 5의 소스 센서(504)로부터) 수신할 수 있고 분석할 수 있다. 이 실시형태 및 다른 실시형태에서, 로봇 시스템(100)은 과업 위치(116) 및/또는 과업 위치 상의 도 5의 이전에 배치된 물체(508)와 연관된 배치 영역(예를 들어, 배치 영역(340))을 나타내는 목적지 센서 데이터를 (예를 들어, 도 5의 목적지 센서(506)로부터) 수신할 수 있고 분석할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 센서 데이터를 분석할 수 있다. 센서 데이터를 분석할 때, 로봇 시스템(100)은 에지를 식별/추정하도록 센서 데이터(예를 들어, 센서(216)로부터의 이미지 및/또는 깊이 맵)를 처리할 수 있다. 예를 들어, 로봇 시스템(100)은 타깃 물체(112)의 에지, 과업 위치(116), 이전에 배치된 물체(508), 또는 이들의 조합을 인지하도록 예컨대, 소벨 필터(Sobel filter)를 사용하여, 센서 데이터를 처리할 수 있다. 로봇 시스템(100)은 별개의 물체 및/또는 물체의 치수를 나타내는 영역을 식별하도록 에지를 사용할 수 있다. 이 실시형태 및 다른 실시형태에서, 로봇 시스템(100)은 센서 데이터(예를 들어, 소스 센서 데이터)에 기초하여 (예를 들어, 들어오는 물체의, 타깃 물체(112)의, 팔레트의, 케이지의, 등의) 감지된 물체의 하나 이상의 치수 또는 길이를 추정할 수 있다. 로봇 시스템(100)은 물체의 자세 및/또는 위치를 결정하도록 식별자 영역을 더 사용할 수 있다. 예를 들어, 로봇 시스템(100)은 물체의 방향 및/또는 위치를 결정하도록 기존의 격자 시스템에 에지를 맵핑할 수 있다.
블록(804)에서, 로봇 시스템(100)은 팔레트 및/또는 케이지와 같은, 들어오는 패키지(예를 들어, 타깃 물체(112)) 및/또는 과업 위치(116)를 나타내는 이산화된 모델(예를 들어, 도 3A의 이산화된 물체 모델(302) 및/또는 도 3B의 이산화된 플랫폼 모델(304))에 액세스할 수 있고/있거나 이산화된 모델을 생성할 수 있다. 로봇 시스템(100)은 실시간 센서 데이터(예를 들어, 소스 센서 데이터 및/또는 목적지 센서 데이터)에 기초하여 이산화된 모델(예를 들어, 이산화된 물체 모델(302) 및/또는 이산화된 플랫폼 모델(304))을 결정(예를 들어, 생성 및/또는 액세스)할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 소스 센서 데이터에 기초하여, 타깃 물체(112)에 대한 물체 유형(예를 들어, 들어오는 물체에 대한 식별 또는 범주)을 식별할 수 있다. 예를 들어, 로봇 시스템(100)은 매칭된 이산화된 모델을 찾고 액세스하도록 정보(예를 들어, 표면 이미지 및/또는 추정된 치수)의 식별을 사용하여 도 2의 저장 디바이스 및/또는 또 다른 디바이스(예를 들어, 저장 디바이스, 데이터베이스 및/또는 도 2의 통신 디바이스(206)를 통해 액세스된 패키지 공급자의 서버)에 저장된 마스터 데이터(252)를 검색할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 타깃 물체의 이산화된 모델을 실시간으로, 예컨대, 소스 센서 데이터를 수신하는 것에 응답하여 직접적으로 동적으로 생성할 수 있다. 이산화된 모델을 동적으로 생성하기 위해, 로봇 시스템(100)은 도 3B의 단위 화소(310)에 따라 센서 데이터 및/또는 (예를 들어, 들어오는 물체, 팔레트 상단면 등에 대한) 대응하는 물리적 치수를 분할할 수 있다. 즉, 로봇 시스템(100)은 대응하는 센서 데이터에 따라 타깃 물체(112) 및/또는 과업 위치(116)를 나타내는 영역 위에 단위 화소(310)를 오버레이하는 것에 기초하여 이산화된 모델을 생성할 수 있다. 단위 화소(310)는 예컨대, 1㎜ 또는 1/16인치(in) 이상으로(예를 들어, 5㎜ 또는 20㎜로) (예를 들어, 제작업자, 주문 고객 및/또는 조작자에 의해) 사전 결정될 수 있다. 일부 실시형태에서, 단위 화소(310)는 패키지 및/또는 플랫폼 중 하나 이상의 치수 또는 크기(예를 들어, 백분율 또는 비율)에 기초할 수 있다.
블록(806)에서, 로봇 시스템(100)은 하나 이상의 오류가 발생했는지를 검출 또는 결정할 수 있다. 예를 들어, 로봇 시스템(100)은 예상된 패키징 상태와 실시간 패키징 상태 간의 편차 또는 차이를 식별함으로써 오류가 발생했는지를 결정할 수 있다. 즉, 로봇 시스템(100)은 센서 데이터와 시작 위치(114)의 예상된 상태 및/또는 과업 위치(116)의 예상된 상태를 비교함으로써 오류가 발생했는지를 결정할 수 있다. 로봇 시스템(100)에 의해 식별된 가능한 오류의 예는 소스 매칭 오류(예를 들어, 마스터 데이터 오류, 예상되지 않은 물체 오류, 도착 시퀀스 오류 등), 목적지 매칭 오류(예를 들어, 배치 접근성 오류, 예상되지 않은 배치 오류, 배치 영역 오류 등), 및/또는 작동 상태 오류(예를 들어, 충돌 오류, 수송 오류, 시프트된 물체 오류 등)를 포함한다.
블록(832)에서, 로봇 시스템(100)은 소스 매칭 오류를 식별할 수 있다. 소스 매칭 오류를 식별하기 위해, 로봇 시스템(100)은 소스 센서 데이터와 시작 위치(114)에서 예상된 패키징 상태에 대응하는 데이터를 비교할 수 있다. 하나의 실시형태에서, 로봇 시스템(100)은 소스 센서 데이터와 로봇 시스템(100)에 사전에 등록되는 가능한 물체의, 속성 정보와 같은, 설명을 포함하는 마스터 데이터(예를 들어, 도 2의 마스터 데이터(252))를 비교함으로써 마스터 데이터 오류를 검출할 수 있다. 이 실시형태에서, 로봇 시스템(100)은 소스 센서 데이터에서 캡처된 타깃 물체(112)의 속성(예를 들어, 물리적 특성, 예컨대, 높이, 폭, 길이, 중량 및/또는 다른 속성)이 마스터 데이터(252)에 저장된 물체의 속성 정보와 매칭되는지를 결정할 수 있다. 소스 센서 데이터에서 캡처된 타깃 물체(112)의 속성이 마스터 데이터(252)에 저장된 물체의 속성 정보와 매칭되지 않는 경우에, 로봇 시스템(100)은 마스터 데이터 오류가 발생했다고 결정할 수 있다. 따라서, 로봇 시스템(100)은 비등록된 그리고/또는 비인식된 물체의 도착과 연관된 소스 매칭 오류를 식별할 수 있다.
이 실시형태 및 다른 실시형태에서, 로봇 시스템(100)은 소스 센서 데이터와 패킹 계획 및/또는 패킹 시퀀스에 대응하는 데이터를 비교함으로써 예상되지 않은 물체 오류 및/또는 도착 시퀀스 오류를 검출할 수 있다. 실시예를 계속하기 위해, 로봇 시스템(100)은 패킹 시퀀스 및 추적된 진행상황에 따라 타깃 물체(112)의 도출된 속성(예를 들어, 물리적 특성)과 시작 위치(114)에 도착하도록 예정된 물체의 예상된 속성을 비교할 수 있다. 타깃 물체(112)의 속성이 마스터 데이터(252)에 등록된 물체의 속성과 매칭되었다면, 로봇 시스템(100)은 패킹 시퀀스의 추적된 진행상황에 따라 매칭된 물체의 식별자/유형과 예상된 물체의 식별자/유형을 비교할 수 있다. 타깃 물체(112)가 예상된 물체와 매칭되지 않는 경우에, 로봇 시스템은 예상되지 않은 물체 오류가 발생했다고(예를 들어, 타깃 물체(112)가 예상된 물체가 아니고/아니거나 비순서적으로 도착했다고) 결정할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 패킹 시퀀스에 따라 타깃 물체(112)(예를 들어, 타깃 물체의 속성 및/또는 매칭된 식별자)와 시작 위치(114)에 도착하도록(예를 들어, 타깃 물체(112)에 후속하여 그리고/또는 타깃 물체에 대해 이전에) 예정된 하나 이상의 다른 물체를 비교하도록 진행될 수 있다. 예를 들어, 로봇 시스템(100)은 타깃 물체(112)와 패킹 시퀀스 내에서 예상된 물체에 선행하거나 또는 후속하는 사전 결정된 수의 물체를 비교할 수 있다. 타깃 물체(112)의 속성이 시작 위치(114)에 도착하도록 예정된 또 다른 물체의 예상된 속성과 매칭되는 경우에, 로봇 시스템(100)은 도착 시퀀스 오류가 발생했다(예를 들어, 타깃 물체(112)가 시작 위치(114)에 비순서적으로 도착했다)고 결정할 수 있고/있거나 하나 이상의 실시간 조정(예를 들어, 타깃 물체(112)를 임시의 보유 영역에 저장하고 이어서 다음의 예상된 순서/타이밍에 따라 타깃 물체에 액세스하는 것)을 실행하도록 타깃 물체(112)의 다음의 사건을 위해 타깃 물체(112)를 저장할 수 있다.
부가적으로 또는 대안적으로, 로봇 시스템(100)은 블록(834)에서 목적지 매칭 오류를 식별할 수 있다. 목적지 매칭 오류를 식별하기 위해, 로봇 시스템(100)은 목적지 센서 데이터와 과업 위치(116)에서 예상된 패키징 상태에 대응하는 데이터를 비교할 수 있다. 예를 들어, 로봇 시스템(100)은 배치되는 물체를 식별하는 것에 기초하여 3D 패킹 계획의 현재의 진행상황을 추적할 수 있다. 로봇 시스템(100)은 추적된 진행상황에 대응하는 예상된 형상 및/또는 예상된 표면 윤곽(예를 들어, 예상된 배치 표면에 대응하는 높이 추정의 세트)을 결정하도록 하나 이상의 컴퓨터 모델을 사용할 수 있다. 로봇 시스템(100)은 센서(216)를 사용하여 캡처된 과업 위치(116)의 현재의 상태(예를 들어, 과업 위치(116)의 이산화된 플랫폼 모델 및/또는 현재의 높이 측정값)를 나타내는 이미지, 깊이 맵 및/또는 다른 데이터와 예상된 형상 및/또는 예상된 표면 윤곽을 비교할 수 있다. 로봇 시스템(100)은 과업 위치(116)의 현재의 상태와 과업 위치(116)의 예상된 상태 간의 차이에 적어도 부분적으로 기초하여 목적지 매칭 오류를 결정할 수 있다.
실례가 되는 실시예로서, 로봇 시스템(100)은 과업 위치(116) 및/또는 이전에 배치된 물체(508)의 현재의 속성, 예컨대, 위치/자리, 자세/방향, 물리적 치수, 형상, 높이 측정값, 및/또는 다른 속성을 결정하도록 과업 위치(116)의(예를 들어, 과업 위치(116)에서 이전에 배치된 물체(508) 및/또는 배치 영역(340)의) 캡처된 이미지 및/또는 다른 데이터를 분석할 수 있다. 목적지 매칭 오류를 결정하기 위해, 로봇 시스템(100)은 임의의 미스매치 또는 차이를 식별하도록 이전에 배치된 물체(508) 및/또는 배치 영역(340)의, 과업 위치(116)의 현재의 속성 중 하나 이상의 현재의 속성과 과업 위치(116)의 하나 이상의 예상된 속성을 비교할 수 있다. 현재의 속성과 예상된 속성 간의 비교를 사용하여, 로봇 시스템(100)은 하나 이상의 오류(예를 들어, 배치 접근성 오류, 예상되지 않은 배치 오류, 및/또는 배치 영역 오류)가 발생했는지를 결정할 수 있다. 배치 접근성 오류(예를 들어, 배치 영역(340)의 속성은 예상되는 속성과 상이함)의 일부 예는 예컨대, 과업 위치(116)에 대해 잘못된 크기의 팔레트를 배치하는 것 또는 과업 위치(116)에 대한 컨테이너(예를 들어, 케이지 또는 차 트랙)의 벽이 완전히 개방되지 않은 것에 기인하여, 예상된 것과 상이한 크기 또는 형상을 가진 배치 영역(308)에 기초할 수 있다. 예상되지 않은 배치 오류의 일부 예는 예를 들어, 하나 이상의 이전에 배치된 물체(508)가 잘못된 위치 및/또는 방향으로 이동되고, 시프트되고, 그리고/또는 떨어지고/지거나 배치되는 것에 기인하여 예상되지 않은 위치/자세를 가진 이전에 배치된 물체(508) 중 하나 이상의 이전에 배치된 물체에 기초할 수 있다. 배치 영역 오류의 일부 예는 예상된 것과 상이한 배치 영역(340)의 높이 측정값에 대응할 수 있다. 이 실시형태 및 다른 실시형태에서, 로봇 시스템(100)은 이전에 배치된 물체(508) 중 하나 이상의 이전에 배치된 물체가 이전에 잘못 배치되었거나 또는 분실되고 그리고/또는 예상되지 않은 물체가 과업 위치(116)에 있다고 결정하도록 목적지 센서 데이터를 사용할 수 있다.
블록(836)에서, 로봇 시스템(100)은 오류의 다른 유형을 결정할 수 있다. 예를 들어, 로봇 시스템(100)은 작동 오류, 예컨대, 충돌 오류(예를 들어, 로봇 장치 및/또는 물체가 충돌됨), 및/또는 물체 이동 오류(예를 들어, 물체가 배치 동안 또는 배치 후 시프트됨)를 식별하도록 실시간 패키징 상태(예를 들어, 물체 소스/목적지에서 로봇 장치 및/또는 현재의 상태로부터의 피드백 데이터)를 분석할 수 있다. 또 다른 실시예로서, 로봇 시스템(100)은 예컨대, 이송 장치(104) 상의 그리퍼가 물체를 충분히 파지하지 못할 때 그리고/또는 물체가 수송/조작 동안 떨어질/손실될 때 수송 또는 조작 오류를 식별할 수 있다. 로봇 시스템(100)은 패킹 작동(블록(801)에 예시된 바와 같음)을 구현하는 동안 다양한 피드백 데이터, 예컨대, 위치, 속도, 상태(예를 들어, 외부 접촉 상태 및/또는 파지 상태), 힘 측정값(예를 들어, 외부에서 인가된 힘, 파지력 및/또는 그리퍼에서 측정된 중량/회전력), 또는 이들의 조합을 로봇 장치로부터 획득할 수 있다. 로봇 시스템(100)은 사건을 식별하도록 획득된 데이터와 작동 오류를 특징으로 하는 하나 이상의 사전 결정된 문턱값/템플릿을 비교할 수 있다.
블록(838)에서, 로봇 시스템(100)은 충돌의 위험을 제기하는 패키징 상태를 식별할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 하나 이상의 오류가 발생한다고 결정하는 것(블록(832 내지 836)에서)에 관계없이 또는 이에 응답하여 패키징 상태가 충돌의 위험을 제기하는지를 식별할 수 있다. 로봇 시스템(100)은 로봇 시스템(100)이 타깃 물체(112)를 계속해서 패키지/팔레트화한다면 로봇 장치 및/또는 물체 간의 충돌의 위험을 식별하도록 센서 데이터를 분석할 수 있다. 타깃 물체(112)가 패킹 시퀀스에 따라 예상된 물체라면, 로봇 시스템(100)은 3D 패킹 계획에 따라 타깃 물체(112)를 배치하기 위해 도 5의 진입로(510)를 재계산할 수 있고/있거나 진입로에 액세스할 수 있다. 현재의 상태가 결정된 오류에 기인하여 예상된 상태로부터 벗어나기 때문에, 로봇 시스템(100)은 충돌의 위험을 결정하도록 진입로(510)와 실시간 상태를 비교할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 로봇 시스템(100)이 명시된 우선권에 따라(예를 들어, 충돌 및/또는 오류의 위험의 규모를 감소할 때) 실시간 패키징 상태를 식별하도록 실시간 센서 데이터를 분석할 수 있다. 과업 위치(116)를 참조하면, 예를 들어, 로봇 시스템(100)은 로봇 시스템(100)이 다음의 순서로 진입로(510)를 방해할 수도 있는 실시간 패키징 상태를 식별하도록 목적지 센서 데이터를 분석할 수 있다: (a) 배치 접근성 오류의 맥락에서 과업 위치(116)에서의 컨테이너가 충돌의 위험(예를 들어, 컨테이너가 완전히 개방되지 않은 것에 기인함)을 제기하는지; (b) 예상되지 않은 배치 오류의 맥락에서 이동되고, 시프트되고, 그리고/또는 떨어진 하나 이상의 이전에 배치된 물체(508)가 충돌의 위험을 제기하는지; (c) 배치 영역 오류의 맥락에서 잘못된 위치 및/또는 방향에 배치되는 하나 이상의 이전에 배치된 물체(508)가 충돌의 위험을 제기하는지; 그리고/또는 (d) 배치 영역 오류의 맥락에서 팔레트화된 케이스 높이가 충돌의 위험(예를 들어, 위에서 설명된 바와 같이 배치 영역(340)의 예상된 높이 측정값과 실제 높이 측정값 간의 차이에 기인함)을 제기하는지.
로봇 시스템(100)이 오류가 발생하지 않았다고 결정하거나 또는 블록(832 내지 838)에서 충돌의 위험을 제기하는 오류 또는 패키징 상태를 식별하는데 실패한다면, 로봇 시스템(100)은 블록(801)으로 복귀하여 패킹 계획의 실행을 계속할 수 있다. 그렇지 않다면, 위에서 약술된 임의의 오류 및 잠재적인 충돌 시나리오에서, 패킹 계획의 계속된 실행은 아마 추가의 오류를 발생시킬 것이다. 예를 들어, 적층된 팔레트는 잘못된 아이템을 포함할 수도 있고/있거나 적층된 팔레트는 패킹 계획에 의해 의도된 것과 상이한 속성(예를 들어, 스택에서 하나 이상의 지지 물체에 대한 차 높이)을 가진 팔레트 또는 팔레트의 물체에 기인하여 불안정하게 될 수 있다. 부가적으로, 로봇 장치 및/또는 물체 간의 충돌의 위험은 물체 위치의 차이 및/또는 예상되지 않은 임피던스에 기인하여 증가할 수 있다.
이와 같이, 하나 이상의 오류를 결정하는 것 그리고/또는 충돌의 위험을 제기하는 하나 이상의 패키징 상태를 식별하는 것에 응답하여, 로봇 시스템(100)(블록(840)에서)은 블록(832 내지 838)에서 식별된 오류 및/또는 잠재적인 충돌에 대한 응답을 결정할 수 있다. 적절한 응답의 예는 다음 중 임의의 하나 이상을 포함할 수 있다: (a) 충돌의 위험을 제기하는 실시간 상태 및/또는 오류의 조작자 및/또는 또 다른 시스템에 경보를 발하는 것; (b) 타깃 물체(112)의 이산화된 모델을 동적으로 생성하도록 블록(804)으로 복귀하는 것; (c) 마스터 데이터(252)를 업데이트하는 것; (d) 과업 위치(116)에서 예상되지 않은 물체를 포함하고/하거나 과업 위치(116)에서 분실된 물체를 배제하도록 과업 위치(116)의 마스터 리스트를 업데이트하는 것; (e) 타깃 물체(112)를 과업 위치(116)와 다른 위치에 배치하는 것(예를 들어, 과업 위치(116)로의 나중의 수송/조작을 위해 타깃 물체(112)를 확보하고/하거나 타깃 물체(112)를 캐시 저장하는 것); (f) 하나 이상의 이전에 배치된 물체(508)를 재배치하는 것; (g) 진입로(510)를 동적으로 조정함으로써 패킹 계획을 구현하는 것; (h) 업데이트된 배치 위치를 동적으로 도출함으로써 패킹 계획을 변경 또는 조정하는 것; (i) 새로운 패킹 계획을 생성하는 것; 및/또는 (j) 패킹 계획을 폐기하고 물체가 도착할 때 배치 위치를 동적으로 도출하는 것.
일부 실시형태에서, 로봇 시스템(100)은 식별된 오류의 유형 또는 잠재적인 충돌에 기초하여 적절한 응답을 결정할 수 있다. 예를 들어, 마스터 데이터 오류의 맥락에서, 로봇 시스템(100)은 패킹 계획의 구현을 계속할 수도 있다. 이와 같이, 마스터 데이터 오류에 대한 적절한 응답은 타깃 물체(112)(즉, 마스터 데이터(252)와 매칭되지 않는 물체)를 임시의 위치에 배치하는 것, 후속의 물체를 물체의 지정된 위치에 또는 임시의 위치에(예컨대, 예를 들어, 배치가 타깃 물체(112)를 위해 처음에 의도된 진입로(510)를 차단할 때) 배치하는 것을 포함할 수 있다. 예상된 물체(즉, 타깃 물체(112)와 비교 시)가 시작 위치(114)에 도착할 때, 로봇 시스템(100)은 예상된 물체를 처음에 의도된 위치에 배치할 수 있다. 타깃 물체(112)를 임시의 위치에 캐시 저장하거나 또는 배치하는 것은 무진사에 할당되고, 대리인 문서 번호 제131837-8008.US01호에 의해 식별되고, 전문이 참조에 의해 본 명세서에 원용되는, 동시에 출원된 미국 특허 출원(발명자: Rosen N. Kiankov 및 Denys Kanunikov, 발명의 명칭: "ROBOTIC SYSTEM FOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE")에 더 상세히 설명된다. 예상된 물체(즉, 타깃 물체(112)와 동일한 유형/식별자)의 하나 이상의 후속의 인스턴스가 또한 마스터 데이터 오류를 유발할 때, 일부 실시형태에서, 로봇 시스템(100)은 타깃 물체(112)의 치수 및/또는 이산화된 모델과 예상된 물체의 치수 및/또는 이산화된 모델을 비교할 수 있다. 비교된 데이터가 사전 결정된 문턱값 범위와 매칭되거나 또는 사전 결정된 문턱값 범위 내에 있다면, 로봇 시스템(100)은 마스터 데이터를 업데이트한 후 조작자에게 통지할 수 있고/있거나 패킹 계획을 계속해서 구현할 수 있다. 예를 들어, 흐름은 타깃 물체(112)의 이산화된 모델을 실시간으로 동적으로 생성하고 마스터 데이터(252)를 업데이트하여 생성된 이산화된 모델을 포함하도록 블록(804)으로 복귀될 수 있다.
치수 및/또는 이산화된 데이터가 문턱값 범위를 초과하는 측정값과 매칭되지 않거나 또는 측정값만큼 상이하다면, 로봇 시스템(100)은 기존의 패킹 계획을 폐기할 수 있고 업데이트된 마스터 데이터 및 현재의 상태(예를 들어, 배치 표면의 초기 높이 및/또는 나머지 패키지)에 따라 패킹 계획을 재도출할 수 있다. 따라서, 로봇 시스템(100)은 방법(700) 또는 위에서 설명된 방법의 하나 이상의 부분을 구현할 수 있다. 일부 실시형태에서, 예를 들어, 로봇 시스템(100)은 나머지 물체에 따라 패키지 세트를 재식별할 수 있고(블록(706)) 다음의 작동 중 하나 이상의 작동을 구현할 수 있다(예를 들어, 블록(704 및 그 이상)에 예시된 바와 같음). 일부 실시형태에서, 로봇 시스템(100)은 현재의 상태에 따라(예를 들어, 이미 배치된 물체를 제거함으로써) 이전에 결정된 패키지 분류에 액세스할 수 있고 이전에 결정된 패키지 분류를 조정할 수 있고, 이전에 결정된 처리 순서를 유지할 수 있고, 이에 따라 2D 및 3D 배치 계획을 재도출할 수 있다. 예를 들어, 로봇 시스템(100)은 과업 위치(116)에서의 현재의 상태를 업데이트된 배치 표면(예를 들어, 이산화된 플랫폼 모델(304) 대신)으로서 사용할 수 있거나 또는 현재의 상태를 계획의 기존의 부분, 예컨대, 위에서 설명된 이전의 계획 반복의 결과로서 식별할 수 있다. 대안적으로, 나머지 수의 패키지가 문턱값 한계하에 있을 때, 로봇 시스템(100)은 아래에 상세히 설명된 바와 같이 배치 위치를 동적으로 도출할 수 있다.
또 다른 실시예로서, 과업 위치(116)에서의 컨테이너가 완전히 개방되지 않은 경우 배치 접근성 오류에 대해, 로봇 시스템(100)은 조작자 및/또는 또 다른 시스템에게 케이지 또는 차 트랙이 완전히 개방되지 않았다는 경보를 발할 수 있다. 부가적으로 또는 대안적으로, 로봇 시스템(100)은 패킹 계획이 컨테이너가 완전히 개방되지 않은 것에 의해 영향을 받는 정도를 결정할 수 있다. 예를 들어, 로봇 시스템(100)은 목적지 데이터(예를 들어, 이미지 및/또는 깊이 맵) 위에 3D 패킹 계획을 오버레이하는 것 및 케이지/차 트랙의 부분적으로-폐쇄된 벽 또는 덮개와 중첩하는 3D 패킹 계획 내 물체를 식별하고/세는 것에 기초하여 정도(예를 들어, 3D 패킹 계획 내 영향 받은 물체의 수 및/또는 상대적인 위치)를 결정할 수 있다. 또한, 로봇 시스템(100)은 3D 패킹 내 물체 중 하나 이상의 물체에 대한 진입로(510)와 케이지 차 트랙의 벽/에지를 비교함으로써 정도를 결정할 수 있고 벽/에지와 상호작용하는 경로를 식별할 수 있다. 로봇 시스템(100)은 영향 받은 물체에 의해 지지되는 다른 종속 물체를 식별하고(예를 들어, 사전 결정된 함수, 규칙, 모델 등에 따라) 처리하는 것(예컨대, 예를 들어, 영향 받은 물체 수를 증가시킴으로써)에 기초하여 정도를 조정할 수 있다. 이 실시형태에서, 영향 받은 물체의 위치/패턴이 하나 이상의 사전 결정된 템플릿과 매칭되고/되거나 영향 받은 물체의 품질이 문턱값 품질 미만일 때, 로봇 시스템(100)은 적절한 응답이, 로봇 시스템(100)이 컨테이너 및/또는 이전에 배치된 물체(508)와의 충돌을 방지하면서 타깃 물체(112)를 패킹 계획에 의해 지정된 과업 위치(116)의 위치에 배치하도록 진입로(510)를 동적으로 변경 또는 조정함으로써 패킹 계획을 구현하기 위한 것이라고 결정할 수 있다.
대안적으로, 로봇 시스템(100)은 예컨대, 복수의 영향 받은 물체가 과업 위치(116)의 큰 부분이 로봇 시스템(100)에 대해 액세스 불가능한 상태에 대응하는, 문턱값 품질을 초과할 때 컨테이너가 완전히 또는 상당히 폐쇄된다고 결정할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 배치 접근성 오류에 대한 적절한 응답이 물체가 시작 위치(114)에 도착할 때 타깃 물체(112) 및/또는 후속하여 도착하는 물체에 대한 배치 위치(350)를 동적으로 재도출/조정하는 것(블록(808 내지 816)에 대해 아래에 더 상세히 설명된 바와 같음)이라고 결정할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 배치 접근성 오류에 대한 적절한 응답이 로봇 시스템(100)에 액세스 가능한 과업 위치(116)를 최대한 활용하도록 새로운 패킹 계획을 생성하는 것이라고 결정할 수 있다. 예를 들어, 로봇 시스템(100)은 패킹 작동(블록(801))을 중단시킬 수 있고 분류 조건에 따라 입수 가능한 패키지(예를 들어, 타깃 물체(112), 아직 시작 위치(114)에 도착하지 않았지만 이전의 패킹 계획에 따라 도착하도록 예정된 패키지, 및/또는 이전에 배치된 물체(508))를 분류함으로써 새로운 패킹 계획에 대한 패키지 분류를 결정할 수 있다. 이어서 로봇 시스템(100)은 (i) 고유 아이템을 식별하고 배치 위치를 반복적으로 도출함으로써 2D 계획을 생성할 수 있고 (ii) 2D 계획을 3D 상태로 전환하고, 3D 스코어를 계산하고, 배치 스코어에 따라 배치 조합을 선택함으로써 새로운 패킹 계획을 생성할 수 있다. 이 실시형태 및 다른 실시형태에서, 로봇 시스템(100)은 (i) 이전의 패킹 계획에 의해 획정된 패킹 시퀀스를 조정하도록 시작 위치(114)에 도착한 타깃 물체(112) 및/또는 하나 이상의 다른 패키지를 캐시 저장할 수 있고/있거나 (ii) 하나 이상의 이전에 배치된 물체(508)를 재배치할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 식별된 오류 및/또는 잠재적인 충돌에 대한 적절한 응답이 타깃 물체(112) 및 후속의 물체에 대한 배치 위치(350)를 동적으로 도출하는 것이라고 결정할 수 있다. 예를 들어, 로봇 시스템(100)은 식별된 오류 및/또는 잠재적인 충돌이 사전 획정된 조건 또는 문턱값을 충족하거나 초과할 때 배치 위치(350)를 동적으로 도출할 수 있다. 특정한 실시예로서, 로봇 시스템(100)은 위에서 설명된 바와 같은 예상되지 않은 배치 오류(예를 들어, 하나 이상의 이전에 배치된 물체(508)가 이동되고, 시프트되는 등)에 응답하여 배치 위치를 동적으로 도출할 수 있다.
타깃 물체(112)에 대한 배치 위치(350)를 동적으로 도출하기 위해, 로봇 시스템(100)은 블록(808)에서 타깃 물체(112)를 과업 위치(116)에/위에 배치하기 위한 후보 위치(예를 들어, 도 3B의 후보 위치(360))의 세트를 도출할 수 있다. 로봇 시스템(100)은 과업 위치(116)에서/위에서 대응하는 위치의 과업 위치(116)의 현재의 상태의 이산화된 플랫폼 모델(304) 위에 타깃 물체(112)의 이산화된 물체 모델(302)을 중첩하는 것에 기초하여 후보 위치(360)를 도출할 수 있다. 후보 위치(360)는 수평면을 따른 그리고 이산화된 플랫폼 모델(304) 위의/내의 이산화된 물체 모델(302)의 위치에 대응할 수 있다. 로봇 시스템(100)은 이전에 배치된 물체(508)와 중첩하고/하거나 인접한 후보 위치(360)를 도출할 수 있다.
일부 실시형태에서, 로봇 시스템(100)은 초기 배치 위치(예를 들어, 배치 영역의 지정된 코너와 같은, 후보 위치(360)의 인스턴스에 대한 사전 결정된 위치)를 결정하는 것에 기초하여 이산화된 물체 모델(302)의 위치를 반복적으로 결정할 수 있다. 로봇 시스템(100)은 다음의 후보 위치(360)를 도출하기 위한 사전 결정된 방향, 반복에 걸친 후보 위치(360) 간의 분리 필요조건, 배치를 좌우하는 규칙/조건, 후보 위치(360)의 총수에 관한 제한, 이들의 하나 이상의 패턴, 또는 이들의 조합에 따라 후속의 후보 위치(360)를 결정할 수 있다. 게다가, 로봇 시스템(100)은 이전에 배치된 물체(508)에 대한 후보 위치(360)를 결정하기 위해 선호도 및/또는 규칙의 세트를 포함할 수 있다. 예를 들어, 로봇 시스템(100)은 이산화된 물체 모델(302)이 이전에 배치된 물체(508)의 하나 이상의 에지 및/또는 배치 영역(340)의 주변 경계/에지와 인접하거나 또는 접하는 후보 위치(360)를 결정하는 것에 대한 선호도(예를 들어, 후보 위치(360)의 가장 다른 유형/범주보다 더 일찍 기능을 수행하기 위함)로 구성될 수 있다. 또한, 로봇 시스템(100)은 이산화된 물체 모델(302)이 이전에 배치된 물체(508) 위에 있고 물체 중 하나의 물체에 피팅되고/되거나 물체의 하나 이상의 에지와 중첩하는 후보 위치(360)를 결정하는 것에 대한 선호도로 구성될 수 있다.
로봇 시스템(100)은 사전 결정된 규칙, 패턴, 한계, 및/또는 이산화된 물체 모델(302)을 배치하기 위한 시퀀스에 따라 후보 위치(360)를 도출할 수 있다. 예를 들어, 로봇 시스템(100)은 예컨대, 이전에 배치된 물체(508)의 최외부 에지로부터 사전 결정된 거리 한계와 인접하고/하거나 사전 결정된 거리 한계 내에 있는, 물체 에지에 대한 선호도에 기초하여 후보 위치(360)를 도출할 수 있다. 또한, 로봇 시스템(100)은 예컨대, 이산화된 물체 모델(302)이 팔레트, 케이지 등의 경계/에지와 가장 가깝거나 또는 접하는, 배치 영역(340)에 대한 외부 에지/경계에 대한 선호도에 기초하여 후보 위치(360)를 도출할 수 있다. 또한, 로봇 시스템(100)은 이전에 배치된 물체(508)와 중첩하는 후보 위치(360)를 도출할 수 있다.
블록(810)에서, 로봇 시스템(100)은 예컨대, 3D 적층 평가를 위해, 도 3B의 배치 영역(340)의 실시간 상태를 결정/업데이트할 수 있다. 예를 들어, 로봇 시스템(100)은 도 4의 높이 측정값(402)을 결정하도록 목적지 센서 데이터를 사용할 수 있다. 로봇 시스템(100)은 목적지 센서 데이터로부터 도출된 깊이 측정값 및 과업 위치(116)의 알려진 높이 및/또는 과업 위치(116)에서 상단면(들)의 높이를 계산하기 위한 센서를 사용할 수 있다. 로봇 시스템(100)은 계산된 높이를 이산화된 플랫폼 모델(304) 내 단위 화소(310)에 매칭할 수 있고 단위 화소(310) 내 최대 계산된 높이를 대응하는 높이 측정값(402)으로서 할당할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 후보 위치(360) 내 이산화된 물체 모델(302)에 의해 중첩된 단위 화소(310)에 대한 높이 측정값(402)을 결정할 수 있다.
블록(812)에서, 로봇 시스템(100)은 후보 위치(360)를 평가할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 실시간 상태, 처리 결과, 사전 결정된 규칙 및/또는 매개변수, 또는 이들의 조합에 따라 후보 위치(360)를 평가할 수 있다. 예를 들어, 로봇 시스템(100)은 대응하는 배치 스코어를 계산하는 것, 후보 위치(360)를 확인/자격 부여하는 것, 또는 이들의 조합에 기초하여 후보 위치(360)를 평가할 수 있다.
블록(842)에서, 로봇 시스템(100)은 후보 위치(360)의 각각에 대한 배치 스코어를 계산할 수 있다. 로봇 시스템(100)은 배치 조건 중 하나 이상의 배치 조건에 따라 배치 스코어를 계산할 수 있다. 예를 들어, 로봇 시스템(100)은 패키지 사이의 이격 거리, 수평으로 인접한 패키지에 대한 패키지 치수/취약도 순위/패키지 중량의 차, 충돌 확률(예를 들어, 도 5의 진입로(510) 또는 진입로의 특성 및/또는 도 6의 수평 이격거리(616)에 기초함), 동일한 높이에서의 연속적인/인접한 표면, 이들의 통계 결과(예를 들어, 평균, 최대, 최소, 표준 편차 등), 또는 이들의 조합에 대한 선호도를 설명하도록 배치 선호도(예를 들어, 승수 중량을 통한) 및/또는 등식을 사용할 수 있다. 배치 선호도의 다른 예는 결과적으로 발생된 높이, 근접도 측정값, 에지-배치 상태, 최대 지지 가능한 중량, 물체 유형, 지지 중량 비, 또는 이들의 조합을 포함할 수 있다. 따라서, 일부 실시형태에서, 로봇 시스템(100)은 타깃 물체(112)를 이미 배치된 물체의 경계 또는 배치 플랫폼의 에지 인근에 배치하기 위해, 인접한 물체의 높이 및/또는 최대 지지 가능한 중량의 차를 최소화하기 위해, 타깃 물체(112)에 의해 중첩된 물체에 대한 지지 중량과 최대 지지 가능한 중량 간의 비를 감소시키기 위해, 인접한 물체에 대한 물체 유형을 매칭하기 위해, 또는 이들의 조합을 위해, 하부 최대 높이에 대한 선호도를 나타내는 처리 중량/승수를 포함할 수 있다. 각각의 배치 위치는 시스템 제작업자, 주문, 및/또는 시스템 조작자에 의해 사전 획정되는 선호도 인자 및/또는 등식에 따라 스코어가 매겨질 수 있다.
일부 실시형태에서, 예를 들어, 로봇 시스템(100)은 후보 위치(360)에 대한 지지 측정값에 기초하여 배치 스코어를 계산할 수 있다. 로봇 시스템(100)은 높이 측정값(402)에 적어도 부분적으로 기초하여 후보 위치(360) 중 하나 이상의 후보 위치에 대한 지지량(예를 들어, 물체를 적층할 때)을 계산할 수 있다. 실례가 되는 실시예로서, 로봇 시스템(100)은 후보 위치(360)의 각각에 대한 도 4B의 최대 높이(420)를 식별하는 것에 기초하여 지지량을 계산할 수 있다. 도 4B의 최대 높이(420) 및 높이 차분 문턱값(416)에 기초하여, 로봇 시스템(100)은 후보 위치(360)의 각각에 대한 도 4B의 높이 하한(422)을 계산할 수 있다. 로봇 시스템(100)은 후보 위치(360)의 각각에 대한 도 4B의 지지 위치(442)를 식별하도록 후보 위치(360)의 높이 측정값(402)과 대응하는 높이 하한(422)을 비교할 수 있다. 로봇 시스템(100)은 대응하는 지지 위치(442)의 도 4B의 자격 부여 수(424)에 기초하여 후보 위치(360)의 각각에 대한 배치 스코어를 계산할 수 있다.
하나 이상의 실시형태에서, 로봇 시스템(100)은 후보 위치(360)에 대한 도 4B의 지지 영역 윤곽(426)을 도출하는 것에 기초하여 배치 스코어를 계산할 수 있다. 위에서 설명된 바와 같이, 로봇 시스템(100)은 대응하는 위치에서 지지 위치(442)의 최외측/주변 인스턴스의 외부 에지 및/또는 연결 코너를 연장하는 것에 기초하여 후보 위치(360)의 각각에 대한 지지 영역 윤곽(426)의 세트를 도출할 수 있다. 지지 위치(442)에 기초하여, 로봇 시스템(100)은 배치 스코어를 계산하기 위해 도 4B의 지지 영역 크기(428) 및/또는 도 4B의 지지 비율(430)을 결정할 수 있다. 또한, 로봇 시스템(100)은 CoM 위치(432)와 지지 영역 윤곽(426) 간의 최저 이격 거리를 계산할 수 있다. 로봇 시스템(100)은 대응하는 후보 위치에 대한 배치 스코어를 계산하도록 지지 영역 크기(428), 지지 비율(430), 최저 이격 거리, 대응하는 선호도 중량, 또는 이들의 조합을 사용할 수 있다.
하나 이상의 실시형태에서, 로봇 시스템(100)은 위에서 설명된 바와 같이 후보 위치(360)에 대한 진입로(510)를 도출하는 것에 기초하여 배치 스코어를 계산할 수 있다. 로봇 시스템(100)은 도 6의 최종 부분(606)(예를 들어, 최종 부분의 길이), 도 6의 하나 이상의 경로 부분(604)의 품질/길이, 또는 이들의 조합에 따라 후보 위치(360)의 각각에 대한 배치 스코어를 계산할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 후보 위치(360)에 대한 도 6의 수평 이격거리(616)에 기초하여 배치 스코어를 계산할 수 있다.
일부 실시형태에서, 블록(844)에 예시된 바와 같이, 로봇 시스템(100)은 후보 위치(360)에 자격 부여할 수 있다. 로봇 시스템(100)은 하나 이상의 배치 제약에 따라 후보 위치(360)의 확인된 세트를 동적으로 도출하는 것에 기초하여 후보 위치(360)에 자격 부여할 수 있다. 확인된 세트를 도출할 때, 로봇 시스템(100)은 높이 측정값(402)과 적어도 부분적으로 연관되는 배치 제약 중 하나 이상의 배치 제약을 위반하거나 또는 충족하는데 실패한 후보 위치(360)의 인스턴스를 제거할 수 있거나 또는 자격 박탈할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 확인된 세트를 먼저 도출할 수 있고 이어서 확인된 세트에 대한 배치 스코어를 계산할 수 있다. 하나 이상의 실시형태에서, 로봇 시스템(100)은 배치 스코어를 계산하는 것과 동시에 확인된 세트를 도출할 수 있다.
하나 이상의 실시형태에서, 배치 제약은 자격 부여 수(424), 지지 영역 윤곽(426)의 세트, 지지 영역 크기(428), 지지 비율(430), CoM 위치(432), 진입로(510), 수평 이격거리(616), 또는 이들의 조합을 문턱값(예를 들어, 도 4B의 지지 문턱값(418)) 또는 필요조건과 비교하는 것과 연관될 수 있다. 예를 들어, 로봇 시스템(100)은 자격 부여 수(424), 지지 영역 크기(428) 및/또는 대응하는 문턱값을 충족/초과하는 지지 비율(430)을 가진 위치를 포함하도록 확인된 세트를 도출할 수 있다. 또한, 로봇 시스템(100)은 지지 영역 윤곽(426) 내에 있는/지지 영역 윤곽에 의해 둘러싸인 CoM 위치(432)를 갖고/갖거나 지지 영역 윤곽(426)으로부터 최소 이격 거리를 충족하는 위치를 포함하도록 확인된 세트를 도출할 수 있다. 또한, 로봇 시스템(100)은 최대 길이 문턱값을 충족하는 진입로(510)(예를 들어, 진입로 내 최종 부분(606))를 갖고/갖거나 최소 문턱값을 충족하는 수평 이격거리(616)를 가진 위치를 포함하도록 확인된 세트를 도출할 수 있다.
블록(814)에서, 로봇 시스템(100)은 타깃 물체(112)를 과업 위치(116) 위에/에 배치하기 위한 배치 위치(350)를 동적으로 도출할 수 있다. 로봇 시스템(100)은 배치 스코어에 따라 확인된 세트 내 위치 또는 후보 위치(360) 중 하나를 선택하는 것에 기초하여 배치 위치(350)를 동적으로 도출할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 더미 구조를 사용하여 후보 위치(360)를 추적할 수 있다. 따라서, 로봇 시스템(100)은 위치가 위에서 설명된 바와 같은 제약을 위반할 때 위치를 더미 구조로부터 제거할 수 있다. 게다가, 로봇 시스템(100)은 대응하는 배치 스코어에 따라 추적된 위치를 시퀀싱할 수 있거나 또는 순위 매길 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 배치 스코어 또는 스코어의 반복적인 업데이트가 산출될 때 추적된 위치를 연속적으로 시퀀싱할 수 있다. 그 결과, 로봇 시스템(100)은 스코어 계산이 끝날 때 더미 구조 내 지정된 위치(예를 들어, 제1 슬롯)에서의 위치를 배치 위치(350)로서 선택할 수 있다.
블록(816)에서, 로봇 시스템(100)은 타깃 물체(112)를 도출된 배치 위치(350)에 배치하기 위한 정보를 전달할 수 있다. 타깃 물체(112)를 배치 위치(350)에 배치하기 위한 정보를 전달할 때, 로봇 시스템(100)의 하나 이상의 컴포넌트/디바이스는 다른 컴포넌트/디바이스와 통신할 수 있고/있거나 다른 컴포넌트/디바이스를 작동시킬 수 있다. 예를 들어, 프로세서(202) 및/또는 독립형 제어기(예컨대, 예를 들어, 창고/배송 중앙 제어 디바이스) 중 하나 이상은 정보, 예컨대, 배치 위치(350), 대응하는 이동 계획, 도 2의 구동 디바이스(212) 및/또는 도 2의 수송 모터(214)를 작동시키기 위한 명령 및/또는 설정의 세트, 또는 이들의 조합을 다른 컴포넌트/디바이스로 전송할 수 있다. 다른 컴포넌트/디바이스, 예컨대, 프로세서(202)의 다른 인스턴스 및/또는 도 5의 로봇 암(502), 구동 디바이스(212), 수송 모터(214) 및/또는 다른 외부 디바이스/시스템은 정보를 수신할 수 있고 대응하는 기능을 실행할 수 있어서 타깃 물체(112)를 조작하고(예를 들어, 파지하고 픽업하고, 공간에 걸쳐 이송하고/하거나 방향 전환하고, 목적지에 배치하고, 그리고/또는 방출함) 타깃 물체를 배치 위치에 배치한다.
블록(818)에서, 로봇 시스템(100)은 도출된 배치 위치에서 타깃 물체(112)의 배치를 검증할 수 있다. 예를 들어, 로봇 시스템(100)은 로봇 시스템(100)이 블록(816)에서 전달된 정보에 응답하여, 타깃 물체(112)를 도출된 배치 위치에 배치했는지를 결정할 수 있고, 그러하다면, 로봇 시스템(100)은 목적지 센서 데이터를 분석함으로써 도출된 배치 위치와 비교하여 타깃 물체(112)의 배치의 정확도를 결정할 수 있다. 일부 실시형태에서, 로봇 시스템(100)은 타깃 물체(112)를 배치한 후 실시간 패키징 상태를 업데이트 또는 재식별할 수 있다. 즉, 블록(818) 후, 제어 흐름은 블록(801 및/또는 802)으로 이동될 수 있다. 따라서, 로봇 시스템(100)은 다음의 들어오는 물체를 타깃 물체(112)로서 업데이트/식별할 수 있다. 로봇 시스템(100)은 또한 최근에 배치된 물체를 포함하도록 배치 영역(340) 및/또는 배치 영역 상의 이전에 배치된 물체(508)에 대한 정보를 업데이트할 수 있다. 다른 실시형태에서, 로봇 시스템(100)은 패킹 계획을 재계산 또는 조정할 수 있고/있거나 타깃 물체(112)를 배치한 후 패킹 계획에 따라 재개될 수 있다(블록(801)).
위에서 설명된 2D/3D 층 형성 및 과업의 이산화는 패킹 물체에 대한 개선된 효율, 속도, 및 정확도를 제공한다. 따라서, 조작자 입력의 감소 및 정확도의 증가는 자동화된 패킹 과정에 대한 인간 노동을 더 감소시킬 수 있다. 일부 환경에서, 위에서 설명된 바와 같은 로봇 시스템(100)은 약 1백만 달러 또는 그 이상 비용이 들 수 있는, 시퀀싱 버퍼의 필요성을 제거할 수 있다.
게다가, 실시간 상태(예를 들어, 센서 데이터 및 다른 상태/데이터에 의해 나타낸 바와 같음)에 따른 배치 위치(350)의 동적 계산은 감소된 작동 오류를 제공한다. 위에서 설명된 바와 같이, 로봇 시스템은 인간 간섭을 필요로 하는 일 없이 예상되지 않은 상태/사건에 의해 도입된 오류 및/또는 잠재적인 충돌을 처리할 수 있고 해결할 수 있다. 게다가, 위에서 설명된 실시형태는 기존의 패킹 계획 없이 또는 예상되지 않은 상태/사건이 기존의 패킹 계획의 전부 또는 일부에 영향을 줄 때, 예컨대, 물체가 시작 위치(114)에 도착할 때 배치 위치(350)를 동적으로 도출함으로써 물체를 3D로 적층할 수 있다. 2D 동적 패킹(즉, 물체를 단일의 층으로서 플랫폼 상에 직접적으로 배치하는 것)으로 제한되는 종래의 시스템과 비교할 때, 높이의 고려는 위에서 설명된 실시형태가 물체를 서로 위에 적층하고 패킹 밀도를 증가시키게 할 수 있다. 이 방식으로, 로봇 시스템(100)은 오류 및/또는 잠재적인 충돌을 식별할 수 있고, 이에 응답하여, 이전의 패킹 계획의 구현을 계속하든, 이전의 패킹 계획의 부분을 회복하든, 새로운 패킹 계획을 생성하든 그리고/또는 시작 위치(114)에 도착하도록 후속하여 예정된 하나 이상의 패키지 및 타깃 물체(112)에 대한 배치 위치를 동적으로 도출하는 것이든, 적절한 조치를 결정할 수 있다.
결론
개시된 기술의 실시예의 위의 상세한 설명은 총망라하거나 또는 개시된 기술을 위에 개시된 정확한 형태로 제한하는 것으로 의도되지 않는다. 개시된 기술에 대한 특정한 실시예가 실례가 되는 목적을 위해 위에서 설명되지만, 다양한 등가의 변경이 관련 기술의 당업자가 인지할 바와 같이, 개시된 기술의 범위 내에서 가능하다. 예를 들어, 과정 또는 블록이 미리 결정된 순서로 제공되지만, 대안적인 구현예가 단계를 가진 루틴을 수행할 수도 있거나 또는 블록을 가진 시스템을 상이한 순서로 채용할 수도 있고, 일부 과정 또는 블록이 대안적인 조합 또는 하위 조합을 제공하도록 삭제, 이동, 추가, 하위분할, 결합 그리고/또는 변경될 수도 있다. 이 과정 또는 블록의 각각은 다양한 상이한 방식으로 구현될 수도 있다. 또한, 과정 또는 블록이 때로는 연속적으로 수행되는 것으로 도시되지만, 이 과정 또는 블록은 대신에 동시에 수행 또는 구현될 수도 있거나 또는 상이한 시간에 수행될 수도 있다. 게다가, 본 명세서에서 언급된 임의의 특정한 수는 단지 예이고; 대안적인 구현예는 상이한 값 또는 범위를 채용할 수도 있다.
이 변화 및 다른 변화는 위의 상세한 설명에 비추어 개시된 기술에 대해 이루어질 수 있다. 상세한 설명이 개시된 기술뿐만 아니라 고려되는 최상의 모드의 특정한 실시예를 설명하지만, 개시된 기술은 위의 설명이 본문에서 상세하게 나타날지라도, 많은 방식으로 실행될 수 있다. 시스템의 상세사항이 시스템의 특정한 구현예에서 상당히 변경될 수도 있지만, 여전히 본 명세서에 개시된 기술에 포함된다. 위에서 언급된 바와 같이, 개시된 기술의 특정한 특징 또는 양상을 설명할 때 사용되는 특정한 용어는 용어가 용어와 연관되는 개시된 기술의 임의의 특정한 특성, 특징, 또는 양상으로 제한되는 것으로 본 명세서에서 재정의되는 것을 암시하도록 취해져서는 안 된다. 따라서, 본 발명은 청구 범위에 의해서만을 제외하고 제한되지 않는다. 일반적으로, 다음의 청구항에서 사용되는 용어는 위의 상세한 설명 부분이 이러한 용어를 분명히 정의하지 않는 한, 개시된 기술을 본 명세서에 개시된 특정한 실시예로 제한하는 것으로 해석되지 않아야 한다. 본 명세서에서 사용될 때, "A 및/또는 B"에서와 같이 어구 "및/또는"은 A 단독, B 단독, A와 B 둘 다를 나타낸다.
본 발명의 특정한 양상이 특정한 청구항 형태로 아래에 제공되지만, 출원인은 본 발명의 다양한 양상을 임의의 수의 청구항 형태로 고려한다. 따라서, 출원인은 본 출원에서 또는 계속 출원에서, 이러한 추가의 청구항 형태를 추구하도록 본 출원을 출원한 후 추가의 청구항을 추구할 권리를 갖는다.

Claims (20)

  1. 로봇 시스템을 작동시키기 위한 방법으로서,
    시작 위치에 있거나 또는 상기 시작 위치에 다가가는 타깃 물체를 나타내는 소스 센서 데이터를 수신하는 단계;
    상기 소스 센서 데이터를 분석하는 단계로서,
    상기 소스 센서 데이터에 적어도 부분적으로 기초하여 이산화된 물체 모델(discretized object model)을 결정하는 것으로서, 상기 이산화된 물체 모델은 단위 화소에 따라 2차원(2D)으로 상기 타깃 물체의 물리적 치수 또는 형상 중 적어도 하나를 나타내는, 상기 소스 센서 데이터에 적어도 부분적으로 기초하여 이산화된 물체 모델를 결정하는 것, 및
    상기 이산화된 물체 모델과 패킹 계획 또는 마스터 데이터 중 적어도 하나를 비교하는 것으로서, 상기 패킹 계획은 상기 소스 센서 데이터를 수신하기 전에 도출되고, 상기 패킹 계획은 과업 위치 상의 물체의 배치 위치(placement location) 및 자세를 나타내고, 상기 마스터 데이터는 상기 로봇 시스템에 사전에 등록되어 가능한 물체의 설명을 포함하는, 상기 이산화된 물체 모델과 패킹 계획 또는 마스터 데이터 중 적어도 하나를 비교하는 것을 포함하는, 상기 소스 센서 데이터를 분석하는 단계;
    상기 과업 위치 또는 상기 과업 위치에 이전에 배치된 하나 이상의 물체 중 적어도 하나와 연관된 배치 영역을 나타내는 목적지 센서 데이터를 수신하는 단계;
    상기 목적지 센서 데이터를 분석하는 단계로서,
    상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 이산화된 플랫폼 모델을 결정하는 것으로서, 상기 이산화된 플랫폼 모델은 추가의 단위 화소에 따라 2D로 상기 과업 위치의 물리적 치수 또는 형상 중 적어도 하나를 나타내는, 상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 이산화된 플랫폼 모델을 결정하는 것,
    상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 높이 측정값을 결정하는 것으로서, 상기 높이 측정값은 추가의 단위 화소의 하나 이상의 세트에 대응하는 상기 배치 영역의 하나 이상의 부분 내 최대 높이를 나타내는, 상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 높이 측정값을 결정하는 것; 및
    상기 이산화된 플랫폼 모델 또는 상기 높이 측정값 중 적어도 하나와 상기 배치 영역의 예상된 플랫폼 모델 또는 예상된 높이 측정값 중 적어도 하나를 비교하는 것을 포함하는, 상기 목적지 센서 데이터를 분석하는 단계;
    하나 이상의 오류를 결정하는 단계로서,
    (i) (a) 상기 이산화된 물체 모델과 (b) 상기 패킹 계획 또는 상기 마스터 데이터 중 적어도 하나 간의 하나 이상의 차이를 식별함으로써 적어도 하나의 소스 매칭 오류를 결정하는 것; 또는
    (ii) (a) 상기 이산화된 플랫폼 모델 또는 상기 높이 측정값 중 적어도 하나와 (b) 상기 예상된 플랫폼 모델 또는 상기 예상된 높이 측정값 중 적어도 하나 간의 하나 이상의 차이를 식별함으로써 적어도 하나의 목적지 매칭 오류를 결정하는 것; 중 적어도 하나를 포함하는, 상기 하나 이상의 오류를 결정하는 단계; 및
    상기 하나 이상의 오류를 결정하는 것에 응답하여, 결정된 하나 이상의 오류에 적어도 부분적으로 기초하여 상기 타깃 물체 및/또는 하나 이상의 다른 물체에 대한 배치 위치를 조정하는 단계를 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  2. 제1항에 있어서,
    상기 소스 센서 데이터를 분석하는 단계는 상기 이산화된 물체 모델과 상기 마스터 데이터를 비교하는 것을 포함하고, 상기 하나 이상의 오류를 결정하는 단계는 상기 이산화된 물체 모델과 상기 마스터 데이터 간의 적어도 하나의 차이를 식별하는 것을 포함하고,
    상기 하나 이상의 오류는 상기 마스터 데이터가 잘못된 것을 나타내는 마스터 데이터 오류를 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  3. 제1항에 있어서,
    상기 패킹 계획은 상기 타깃 물체를 포함하는 물체가 상기 시작 위치에 도착하는 시퀀스를 명시하고;
    상기 소스 센서 데이터를 분석하는 단계는 상기 이산화된 물체 모델과 상기 시퀀스에 의해 명시된 이산화된 물체 모델을 비교함으로써 상기 이산화된 물체 모델과 상기 패킹 계획을 비교하는 것을 포함하고;
    상기 하나 이상의 오류를 결정하는 단계는 상기 이산화된 물체 모델과 상기 시퀀스에 의해 명시된 상기 이산화된 물체 모델 간의 적어도 하나의 차이를 식별하는 것을 포함하고;
    상기 하나 이상의 오류는 상기 타깃 물체가 상기 패킹 계획에 의해 명시된 상기 시퀀스를 벗어나서 상기 시작 위치에 도착하는 것을 나타내는 도착 시퀀스 오류를 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  4. 제1항에 있어서,
    상기 목적지 센서 데이터를 분석하는 단계는 상기 이산화된 플랫폼 모델과 상기 예상된 플랫폼 모델을 비교하는 것을 포함하고,
    상기 하나 이상의 오류를 결정하는 단계는 상기 이산화된 플랫폼 모델과 상기 예상된 플랫폼 모델 간의 적어도 하나의 차이를 식별하는 것을 포함하고,
    상기 하나 이상의 오류는 배치 접근성 오류, 예상되지 않은 배치 오류, 및/또는 상기 과업 위치와 연관된 상기 배치 영역이 상기 과업 위치와 연관된 예상된 배치 영역과 상이한 것을 나타내는 배치 영역 오류를 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 오류를 결정하는 단계는 충돌의 위험을 제기하는 실시간 패키징 상태를 식별하는 것을 더 포함하고,
    상기 실시간 패키징 상태를 식별하는 것은 상기 과업 위치와 연관된 상기 배치 영역의 전부 미만이 상기 로봇 시스템에 대해 액세스 가능하도록 상기 과업 위치에서 컨테이너, 케이지, 또는 차 트랙의 벽이 완전히 개방되지 않은 것을 나타내는 배치 접근성 오류를 결정하는 것을 포함하고,
    상기 충돌의 위험은 상기 로봇 시스템과 상기 컨테이너, 케이지, 또는 차 트랙 사이의 충돌의 위험인, 로봇 시스템을 작동시키기 위한 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 오류를 결정하는 단계는 (a) 상기 이산화된 플랫폼 모델 및/또는 상기 높이 측정값과 (b) 상기 예상된 플랫폼 모델 및/또는 상기 예상된 높이 측정값 간의 적어도 하나의 차이를 각각 식별하는 것을 포함하고,
    상기 하나 이상의 오류를 결정하는 단계는 충돌의 위험을 제기하는 실시간 패키징 상태를 식별하는 것을 더 포함하고,
    상기 실시간 패키징 상태를 식별하는 것은 과업 위치 상의 상기 이전에 배치된 물체 중 시프트되고, 떨어지고, 변위되거나 또는 이들의 조합을 행하는 물체를 나타내는 예상되지 않은 배치 오류를 결정하는 것을 포함하고,
    상기 충돌의 위험은, 상기 과업 위치 상의 상기 이전에 배치된 물체 중 상기 물체와 상기 로봇 시스템 사이의 충돌의 위험인, 로봇 시스템을 작동시키기 위한 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 오류를 결정하는 단계는 (a) 상기 이산화된 플랫폼 모델 및/또는 상기 높이 측정값과 (b) 상기 예상된 플랫폼 모델 및/또는 상기 예상된 높이 측정값 간의 적어도 하나의 차이를 각각 식별하는 것을 포함하고,
    상기 하나 이상의 오류를 결정하는 단계는 충돌의 위험을 제기하는 실시간 패키징 상태를 식별하는 것을 더 포함하고,
    상기 실시간 패키징 상태를 식별하는 것은 상기 과업 위치 상의 상기 이전에 배치된 물체 중 물체가 오배치된 것을 나타내는 배치 영역 오류를 결정하는 것을 포함하고,
    상기 충돌의 위험은 상기 과업 위치 상의 상기 이전에 배치된 물체 중 상기 물체와 상기 로봇 시스템 사이의 충돌의 위험인, 로봇 시스템을 작동시키기 위한 방법.
  8. 제1항에 있어서,
    상기 배치 영역의 상기 예상된 플랫폼 모델 및/또는 상기 예상된 높이 측정값은 상기 패킹 계획에 의해 명시되고,
    상기 하나 이상의 오류를 결정하는 단계는 (a) 상기 이산화된 플랫폼 모델 및/또는 상기 높이 측정값과 (b) 상기 예상된 플랫폼 모델 및/또는 상기 예상된 높이 측정값 간의 적어도 하나의 차이를 각각 식별하는 것을 포함하고,
    상기 하나 이상의 오류를 결정하는 단계는 충돌의 위험을 제기하는 실시간 패키징 상태를 식별하는 것을 더 포함하고,
    상기 실시간 패키징 상태를 식별하는 것은 상기 패킹 계획에 포함되지 않은 물체가 상기 과업 위치에 배치되는 것을 나타내는 배치 영역 오류를 결정하는 것을 포함하고,
    상기 충돌의 위험은 상기 로봇 시스템과 상기 패킹 계획에 포함되지 않은 상기 물체 사이의 충돌의 위험인, 로봇 시스템을 작동시키기 위한 방법.
  9. 제1항에 있어서,
    상기 하나 이상의 오류를 결정하는 단계는 충돌의 위험을 제기하는 실시간 패키징 상태를 식별하는 것을 더 포함하고,
    상기 실시간 패키징 상태를 식별하는 것은 다음의 순서로 오류를 결정하는 것을 포함하는, 로봇 시스템을 작동시키기 위한 방법:
    상기 과업 위치와 연관된 상기 배치 영역의 전부 미만이 상기 로봇 시스템에 대해 액세스 가능하고 상기 충돌의 위험이 상기 과업 위치에서 상기 컨테이너, 케이지, 또는 차 트랙과 상기 로봇 시스템 사이의 충돌의 위험이도록, 상기 과업 위치에서 컨테이너, 케이지, 또는 차 트랙의 벽이 완전히 개방되지 않는 것을 나타내는 배치 접근성 오류를 결정하는 것;
    상기 충돌의 위험이 상기 과업 위치 상의 상기 이전에 배치된 물체 중 제1 물체와 상기 로봇 시스템 사이의 충돌의 위험이도록, 상기 과업 위치 상의 상기 이전에 배치된 물체 중 시프트되고, 떨어지고, 변위되거나 또는 이들의 조합을 행하는 상기 제1 물체를 나타내는 예상되지 않은 배치 오류를 결정하는 것;
    상기 충돌의 위험이 상기 과업 위치 상의 상기 이전에 배치된 물체 중 제2 물체와 상기 로봇 시스템 사이의 충돌의 위험이도록, 상기 과업 위치 상의 상기 이전에 배치된 물체 중 상기 제2 물체가 오배치되는 것을 나타내는 배치 영역 오류를 결정하는 것; 및
    상기 충돌의 위험이 상기 높이 측정값과 상기 예상된 높이 측정값 간의 차이에 기여하는 물체와 상기 로봇 시스템 사이의 충돌의 위험이도록, 상기 높이 측정값과 상기 예상된 높이 측정값 간의 차이를 나타내는 배치 영역 오류를 결정하는 것, 상기 차이에 기여하는 상기 물체는 (a) 상기 이전에 배치된 물체 중 제3 물체, (b) 상기 컨테이너, 케이지, 또는 차 트랙, 및/또는 (c) 상기 패킹 계획에 포함되지 않지만 상기 과업 위치에 존재하는 물체를 포함함.
  10. 제1항에 있어서,
    상기 하나 이상의 오류를 결정하는 단계는 (a) 상기 이산화된 플랫폼 모델 및/또는 상기 높이 측정값과 (b) 상기 예상된 플랫폼 모델 및/또는 상기 예상된 높이 측정값 간의 적어도 하나의 차이를 각각 식별하는 것을 포함하고,
    상기 하나 이상의 오류는 상기 과업 위치 상의 상기 이전에 배치된 물체 중 물체가 상기 과업 위치에서 분실되는 것을 나타내는 배치 영역 오류를 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  11. 제10항에 있어서, 상기 하나 이상의 오류는 상기 물체를 상기 소스 위치로부터 상기 과업 위치로 수송하는 동안 상기 이전에 배치된 물체 중 상기 물체가 떨어지는 것을 나타내는 수송 또는 조작 오류를 더 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  12. 제1항에 있어서,
    상기 하나 이상의 오류를 결정하는 단계는 (a) 상기 이산화된 플랫폼 모델 및/또는 상기 높이 측정값과 (b) 상기 예상된 플랫폼 모델 및/또는 상기 예상된 높이 측정값 간의 적어도 하나의 차이를 각각 식별하는 것을 포함하고,
    상기 하나 이상의 오류는 상기 로봇 시스템의 로봇 장치, 상기 타깃 물체, 상기 이전에 배치된 물체, 상기 과업 위치에서의 컨테이너, 또는 상기 패킹 계획에 포함되지 않지만 상기 과업 위치에 존재하는 물체 중 적어도 2개 사이에서 충돌이 발생하는 것을 나타내는 충돌 오류를 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  13. 제1항에 있어서, 상기 타깃 물체를 상기 패킹 계획에 명시된 상기 타깃 물체에 대한 상기 배치 위치에 배치하기 전에 수행되는, 로봇 시스템을 작동시키기 위한 방법.
  14. 제1항에 있어서,
    상기 하나 이상의 오류를 결정하는 것에 응답하여,
    대응하는 위치에서 상기 이산화된 플랫폼 모델 위에 상기 이산화된 물체 모델을 중첩하는 것에 기초하여 하나 이상의 후보 위치를 도출하는 단계;
    상기 높이 측정값과 연관된 하나 이상의 배치 제약에 따라 상기 후보 위치의 확인된 세트를 동적으로 도출하는 단계;
    상기 확인된 세트 내 위치에 대한 배치 스코어를 계산하는 단계로서, 상기 배치 스코어는 하나 이상의 배치 선호도에 따라 계산되는, 상기 배치 스코어를 계산하는 단계; 및
    상기 배치 스코어에 따라 상기 확인된 세트 내 위치 중 하나의 위치를 선택하는 것에 기초하여 배치 위치를 동적으로 도출하는 단계로서, 상기 배치 위치는 상기 타깃 물체를 상기 과업 위치 위에 배치하기 위한 것인, 상기 배치 위치를 동적으로 도출하는 단계를 더 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  15. 제14항에 있어서, 상기 확인된 세트를 도출하는 것은,
    상기 타깃 물체를 상기 후보 위치에 배치하기 위한 진입로를 도출하는 것; 및
    상기 진입로에 기초하여 상기 확인된 세트를 도출하는 것을 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  16. 제14항에 있어서,
    상기 타깃 물체에 대한 상기 배치 위치를 조정하는 것은 상기 타깃 물체를 상기 배치 영역 위의 상기 배치 위치에 배치하기 위한 정보를 생성하는 것을 포함하고,
    상기 방법은 상기 타깃 물체를 상기 배치 영역 위의 상기 배치 위치에 배치하기 위한 생성된 정보를 전달하는 단계를 더 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  17. 제16항에 있어서,
    업데이트된 목적지 소스 데이터를 수신하는 단계; 및
    상기 업데이트된 목적지 소스 데이터에 적어도 부분적으로 기초하여, 상기 배치 위치에서 상기 타깃 물체의 배치 정확도를 검증하는 단계를 더 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  18. 제14항에 있어서,
    결정된 하나 이상의 오류 또는 상기 타깃 물체를 배치하기 위한 상기 배치 위치 중 적어도 하나에 적어도 부분적으로 기초하여 상기 패킹 계획을 업데이트하거나 또는 대체하는 단계를 더 포함하는, 로봇 시스템을 작동시키기 위한 방법.
  19. 로봇 시스템으로서,
    과업 위치 및/또는 상기 과업 위치 상의 이전에 배치된 물체와 연관된 배치 영역을 나타내는 목적지 센서 데이터를 캡처하도록 구성된 적어도 하나의 센서;
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 연결되고 상기 프로세서에 의해 실행 가능한 명령어가 저장된 적어도 하나의 메모리 디바이스를 포함하되, 상기 명령어는,
    시작 위치에 있거나 또는 상기 시작 위치에 다가가는 타깃 물체를 나타내는 소스 센서 데이터를 분석하기 위한 것이고, 상기 소스 센서 데이터를 분석하는 것은,
    상기 소스 센서 데이터에 적어도 부분적으로 기초하여 이산화된 물체 모델을 결정하는 것으로서, 상기 이산화된 물체 모델은 단위 화소에 따라 2차원(2D)으로 상기 타깃 물체의 물리적 치수 또는 형상 중 적어도 하나를 나타내는, 상기 소스 센서 데이터에 적어도 부분적으로 기초하여 이산화된 물체 모델을 결정하는 것, 및
    상기 이산화된 물체 모델과 패킹 계획 또는 마스터 데이터 중 적어도 하나를 비교하는 것으로서, 상기 패킹 계획은 상기 소스 센서 데이터를 수신하기 전에 도출되고, 상기 패킹 계획은 과업 위치 상의 물체의 배치 위치 및 자세를 나타내고, 상기 마스터 데이터는 상기 로봇 시스템에 사전에 등록되어 가능한 물체의 설명을 포함하는, 상기 이산화된 물체 모델과 패킹 계획 또는 마스터 데이터 중 적어도 하나를 비교하는 것을 포함하고;
    상기 과업 위치 또는 상기 과업 위치 상에 이전에 배치된 하나 이상의 물체 중 적어도 하나와 연관된 배치 영역을 나타내는 목적지 센서 데이터를 분석하기 위한 것이고, 상기 목적지 센서 데이터를 분석하는 것은,
    상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 이산화된 플랫폼 모델을 결정하는 것으로서, 상기 이산화된 플랫폼 모델은 추가의 단위 화소에 따라 2D로 과업 위치의 물리적 치수 또는 형상 중 적어도 하나를 나타내는, 상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 이산화된 플랫폼 모델을 결정하는 것,
    상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 높이 측정값을 결정하는 것으로서, 상기 높이 측정값은 상기 추가의 단위 화소의 하나 이상의 세트에 대응하는 상기 배치 영역의 하나 이상의 부분 내 최대 높이를 나타내는, 상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 높이 측정값을 결정하는 것, 및
    상기 이산화된 플랫폼 모델 또는 상기 높이 측정값 중 적어도 하나와 상기 배치 영역의 예상된 플랫폼 모델 또는 예상된 높이 측정값 중 적어도 하나를 비교하는 것을 포함하고;
    하나 이상의 오류를 결정하기 위한 것이고, 상기 하나 이상의 오류를 결정하는 것은,
    (i) (a) 상기 이산화된 물체 모델과 (b) 상기 패킹 계획 및/또는 상기 마스터 데이터 간의 하나 이상의 차이를 식별함으로써 적어도 하나의 소스 매칭 오류를 결정하는 것, 또는
    (ii) (a) 상기 이산화된 플랫폼 모델 또는 상기 높이 측정값 중 적어도 하나와 (b) 상기 예상된 플랫폼 모델 또는 상기 예상된 높이 측정값 중 적어도 하나 간의 하나 이상의 차이를 식별함으로써 적어도 하나의 목적지 매칭 오류를 결정하는 것 중 적어도 하나를 포함하고; 그리고
    결정된 하나 이상의 오류에 적어도 부분적으로 기초하여 상기 타깃 물체 및/또는 하나 이상의 다른 물체에 대한 배치 위치를 조정하기 위한 것인, 로봇 시스템.
  20. 하나 이상의 프로세서를 통해 로봇 시스템에 의해 실행될 때, 상기 로봇 시스템이 방법을 수행하게 하는, 프로세서 명령어가 저장된 유형의(tangible) 비일시적 컴퓨터-판독 가능 매체로서, 상기 명령어는,
    시작 위치에 있거나 또는 상기 시작 위치에 다가가는 타깃 물체를 나타내는 소스 센서 데이터를 수신하기 위한 명령어;
    상기 소스 센서 데이터를 분석하기 위한 명령어로서,
    상기 소스 센서 데이터에 적어도 부분적으로 기초하여 이산화된 물체 모델을 결정하기 위한 명령어로서, 상기 이산화된 물체 모델은 단위 화소에 따라 2차원(2D)으로 상기 타깃 물체의 물리적 치수 또는 형상 중 적어도 하나를 나타내는, 상기 소스 센서 데이터에 적어도 부분적으로 기초하여 이산화된 물체 모델을 결정하기 위한 명령어, 및
    상기 이산화된 물체 모델과 패킹 계획 또는 마스터 데이터 중 적어도 하나를 비교하기 위한 명령어로서, 상기 패킹 계획은 상기 소스 센서 데이터를 수신하기 전에 도출되고, 상기 패킹 계획은 과업 위치 상의 물체의 배치 위치 및 자세를 나타내고, 상기 마스터 데이터는 상기 로봇 시스템에 사전에 등록되어 가능한 물체의 설명을 포함하는, 상기 이산화된 물체 모델과 패킹 계획 또는 마스터 데이터 중 적어도 하나를 비교하기 위한 명령어를 포함하는, 상기 소스 센서 데이터를 분석하기 위한 명령어;
    상기 과업 위치 또는 상기 과업 위치에 이전에 배치된 하나 이상의 물체 중 적어도 하나와 연관된 배치 영역을 나타내는 목적지 센서 데이터를 수신하기 위한 명령어;
    상기 목적지 센서 데이터를 분석하기 위한 명령어로서,
    상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 이산화된 플랫폼 모델을 결정하기 위한 명령어로서, 상기 이산화된 플랫폼 모델은 추가의 단위 화소에 따라 2D로 상기 과업 위치의 물리적 치수 또는 형상 중 적어도 하나를 나타내는, 상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 이산화된 플랫폼 모델을 결정하기 위한 명령어,
    상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 높이 측정값을 결정하기 위한 명령어로서, 상기 높이 측정값은 추가의 단위 화소의 하나 이상의 세트에 대응하는 상기 배치 영역의 하나 이상의 부분 내 최대 높이를 나타내는, 상기 목적지 센서 데이터에 적어도 부분적으로 기초하여 높이 측정값을 결정하기 위한 명령어, 및
    상기 이산화된 플랫폼 모델 또는 상기 높이 측정값 중 적어도 하나와 상기 배치 영역의 예상된 플랫폼 모델 또는 예상된 높이 측정값 중 적어도 하나를 비교하기 위한 명령어를 포함하는, 상기 목적지 센서 데이터를 분석하기 위한 명령어;
    하나 이상의 오류를 결정하기 위한 명령어로서,
    (i) (a) 상기 이산화된 물체 모델과 (b) 상기 패킹 계획 또는 상기 마스터 데이터 중 적어도 하나 간의 하나 이상의 차이를 식별함으로써 적어도 하나의 소스 매칭 오류를 결정하기 위한 명령어, 또는
    (ii) (a) 상기 이산화된 플랫폼 모델 또는 상기 높이 측정값 중 적어도 하나와 (b) 상기 예상된 플랫폼 모델 또는 상기 예상된 높이 측정값 중 적어도 하나 간의 하나 이상의 차이를 식별함으로써 적어도 하나의 목적지 매칭 오류를 결정하기 위한 명령어 중 적어도 하나를 포함하는, 상기 하나 이상의 오류를 결정하기 위한 명령어; 및
    결정된 하나 이상의 오류에 적어도 부분적으로 기초하여 상기 타깃 물체 및/또는 하나 이상의 다른 물체에 대한 배치 위치를 조정하기 위한 명령어를 포함하는, 유형의 비일시적 컴퓨터-판독 가능 매체.
KR1020200065248A 2019-05-31 2020-05-29 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템 KR102408914B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220068061A KR20220080061A (ko) 2019-05-31 2022-06-03 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/428,809 2019-05-31
US16/428,809 US10618172B1 (en) 2019-05-31 2019-05-31 Robotic system with error detection and dynamic packing mechanism

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220068061A Division KR20220080061A (ko) 2019-05-31 2022-06-03 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템

Publications (2)

Publication Number Publication Date
KR20200138076A true KR20200138076A (ko) 2020-12-09
KR102408914B1 KR102408914B1 (ko) 2022-06-14

Family

ID=70223719

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200065248A KR102408914B1 (ko) 2019-05-31 2020-05-29 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템
KR1020220068061A KR20220080061A (ko) 2019-05-31 2022-06-03 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220068061A KR20220080061A (ko) 2019-05-31 2022-06-03 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템

Country Status (5)

Country Link
US (4) US10618172B1 (ko)
JP (2) JP6729953B1 (ko)
KR (2) KR102408914B1 (ko)
CN (1) CN112009810A (ko)
DE (2) DE102019130043B4 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9233470B1 (en) * 2013-03-15 2016-01-12 Industrial Perception, Inc. Determining a virtual representation of an environment by projecting texture patterns
WO2018179257A1 (ja) * 2017-03-30 2018-10-04 株式会社Fuji 実装システム及び報知制御装置
US11046519B2 (en) 2019-02-25 2021-06-29 Rehrig Pacific Company Delivery system
US10766141B1 (en) * 2019-05-09 2020-09-08 Mujin, Inc. Robotic system with a coordinated transfer mechanism
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system
US10618172B1 (en) 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US10696493B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
US10647528B1 (en) 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
CN111559544B (zh) * 2019-05-31 2021-05-11 牧今科技 具有错误检测和动态打包机制的机器人系统
US10679379B1 (en) 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
WO2021025956A1 (en) 2019-08-02 2021-02-11 Dextrous Robotics, Inc. Robotic manipulators
US11138459B2 (en) * 2019-08-19 2021-10-05 International Business Machines Corporation Cognitive container content determination
US10906188B1 (en) 2019-10-25 2021-02-02 Dexterity, Inc. Singulation of arbitrary mixed items
US11701776B2 (en) * 2019-10-25 2023-07-18 Dexterity, Inc. Robotic kitting machine
US11305430B2 (en) * 2019-11-11 2022-04-19 Symbotic Llc Pallet building system with flexible sequencing
US11587302B2 (en) * 2019-12-17 2023-02-21 X Development Llc Shared dense network with robot task-specific heads
US11922253B2 (en) 2020-04-20 2024-03-05 Rehrig Pacific Company Camera enabled portal
EP3915738B1 (en) * 2020-05-26 2024-04-10 Tata Consultancy Services Limited Gripper apparatus for multi object grasping and stacking
US20220289501A1 (en) * 2021-03-15 2022-09-15 Dexterity, Inc. Singulation of arbitrary mixed items
WO2022265932A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Physics engine based evaluation of pallet stability
WO2022265931A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Simulated box placement for algorithm evaluation and refinement
US20230027984A1 (en) 2021-07-21 2023-01-26 Mujin, Inc. Robotic system with depth-based processing mechanism and methods for operating the same
US20230044858A1 (en) * 2021-08-05 2023-02-09 Zebra Technologies Corporation Container Fullness Tracking Method and Systems
WO2023023366A1 (en) 2021-08-19 2023-02-23 Rehrig Pacific Company Imaging system with unsupervised learning
EP4174787A3 (en) 2021-11-01 2023-05-10 Rehrig Pacific Company Delivery system
WO2023108112A1 (en) * 2021-12-10 2023-06-15 Symbotic Llc Material handling system and method therefor
WO2023146886A1 (en) * 2022-01-31 2023-08-03 Dexterity, Inc. Packing and planning for tight incollapsible loads
US20240104487A1 (en) * 2022-03-18 2024-03-28 Xpo Logistics, Inc. Intelligent shipment analysis and routing
WO2023205176A1 (en) 2022-04-18 2023-10-26 Dextrous Robotics, Inc. System and/or method for grasping objects
WO2024102775A1 (en) * 2022-11-09 2024-05-16 Van Doren Sales, Inc Tray insertion system and method
CN115965628B (zh) * 2023-03-16 2023-06-02 湖南大学 一种工件涂装质量在线动态检测方法及检测系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266422B1 (en) * 2004-04-09 2007-09-04 Fanuc Robotics America, Inc. Automated palletizing cases having mixed sizes and shapes
US20090138121A1 (en) * 2007-11-27 2009-05-28 Fki Logistex Inc. Object detection device
US20100222915A1 (en) * 2009-03-02 2010-09-02 Ralf Kuehnemann Method and device for automated loading of packages on a load carrier

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3586176A (en) 1969-04-09 1971-06-22 George C Devol Palletizing apparatus
US4641271A (en) 1983-11-09 1987-02-03 Hitachi, Ltd. Piling planning method and piling system of cargoes by palletizing robot
DE3406858A1 (de) 1984-02-25 1985-10-03 OSTMA Maschinenbau GmbH, 5352 Zülpich Verfahren u. vorrichtung zum transportieren von mit riesel- oder fliessfaehigem gut gefuellten flachbeuteln zu einer stapelstelle, insbes. einem verpackungsbehaelter
US4692876A (en) 1984-10-12 1987-09-08 Hitachi, Ltd. Automatic freight stacking system
JPS6219963A (ja) * 1985-07-19 1987-01-28 Hitachi Ltd 貨物自動積付装置の異常予報方式
US5079699A (en) 1987-11-27 1992-01-07 Picker International, Inc. Quick three-dimensional display
US5175692A (en) 1989-04-14 1992-12-29 University Of Cincinnati Method and apparatus for palletizing randomly arriving mixed size and content parcels
JPH03162320A (ja) 1989-11-21 1991-07-12 Mitsubishi Electric Corp パレタイズ装置
JP2508410B2 (ja) 1990-11-30 1996-06-19 三菱電機株式会社 パレタイズ装置
NL9100483A (nl) 1991-03-19 1992-10-16 Nederland Ptt Werkwijze voor het bepalen van vrije deelvlakken op een gedeeltelijk met rechthoekige voorwerpen bedekt vlak alsmede een werkwijze voor het bepalen van vrije ruimten in een gedeeltelijk met voorwerpen in de vorm van een rechthoekig parallelepipedum gevulde ruimte.
US5501571A (en) 1993-01-21 1996-03-26 International Business Machines Corporation Automated palletizing system
JPH08118274A (ja) * 1994-10-26 1996-05-14 Mitsubishi Electric Corp 産業用ロボット装置
US5908283A (en) 1996-11-26 1999-06-01 United Parcel Service Of Americia, Inc. Method and apparatus for palletizing packages of random size and weight
JPH11116056A (ja) 1997-10-14 1999-04-27 Okura Yusoki Co Ltd 積付パターン生成装置および積付装置
JPH11130263A (ja) 1997-10-27 1999-05-18 Yaskawa Electric Corp 積載パターン作成方法
JP3589880B2 (ja) 1998-12-08 2004-11-17 日本政策投資銀行 全自動混載積付方法及びそのシステム
US7062093B2 (en) 2000-09-27 2006-06-13 Mvtech Software Gmbh System and method for object recognition
JP2002154616A (ja) 2000-11-20 2002-05-28 Murata Mach Ltd デパレタイズシステム
JP3586639B2 (ja) 2000-11-20 2004-11-10 村田機械株式会社 配送センター
US20030110102A1 (en) 2001-05-29 2003-06-12 Chen-Fu Chien Method for goods arrangement and its system
JP2003104563A (ja) 2001-09-28 2003-04-09 Maki Mfg Co Ltd 入荷設備
KR100484163B1 (ko) 2002-09-14 2005-04-19 삼성전자주식회사 디지털 화질 개선 방법 및 장치
JP3969334B2 (ja) 2003-04-04 2007-09-05 株式会社ダイフク 物品の積付方法
JP4359108B2 (ja) 2003-09-17 2009-11-04 村田機械株式会社 ピッキング物品積上げ指示システム
DE10352279A1 (de) * 2003-11-08 2005-06-09 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Handhaben von Objekten
AU2004201709A1 (en) 2004-04-23 2005-11-10 Foodmach Pty Ltd Materials handling system
US20080030497A1 (en) 2005-12-08 2008-02-07 Yangqiu Hu Three dimensional modeling of objects
JP4784823B2 (ja) * 2005-12-28 2011-10-05 株式会社Ihi 物品の荷崩れ検出方法および装置
JP4838627B2 (ja) 2006-04-25 2011-12-14 株式会社神戸製鋼所 表面性状に優れた高Si含有鋼板およびその製造方法ならびにその製造用の素材の高Si含有鋼材
US20080131255A1 (en) 2006-11-30 2008-06-05 Transbotics Corporation Palletizing systems and methods
US7773811B2 (en) 2006-12-06 2010-08-10 D & S Consultants, Inc. Method and system for searching a database of graphical data
DE102007001263B4 (de) 2007-01-08 2015-07-23 Kuka Roboter Gmbh Robotersystem zur Beladung von Lademitteln mit Stückguteinheiten
DE102007016727B4 (de) 2007-04-07 2010-06-10 Dematic Gmbh & Co. Kg Verfahren zum mehrlagigen Bestapeln eines Trägers
JP4302160B2 (ja) 2007-09-12 2009-07-22 ファナック株式会社 ロボットによるパレタイジング作業のためのロボットプログラミング装置
CN101145051A (zh) 2007-09-20 2008-03-19 广东韶钢松山股份有限公司 板材生产线堆垛过程自动化控制技术
DE102009011294B4 (de) 2009-03-02 2020-12-24 Kuka Roboter Gmbh Palletieren von Paketen mittels eines Manipulators
DE102009011296B4 (de) 2009-03-02 2021-11-25 Kuka Roboter Gmbh Beladung eines Lademittels mit Paketen
JP2011022784A (ja) 2009-07-15 2011-02-03 Sony Corp 情報処理装置、ブロック検出方法およびプログラム
JP5402697B2 (ja) 2009-10-26 2014-01-29 株式会社安川電機 ロボット装置及びワーク取り出しシステム並びにワーク取り出し方法
JP5257335B2 (ja) 2009-11-24 2013-08-07 オムロン株式会社 3次元視覚センサにおける計測有効領域の表示方法および3次元視覚センサ
US8447423B2 (en) 2009-11-30 2013-05-21 Exxonmobil Research And Engineering Company Method and apparatus for optimizing a performance index of a bulk product blending and packaging plant
US20130163879A1 (en) * 2010-08-30 2013-06-27 Bk-Imaging Ltd. Method and system for extracting three-dimensional information
CN201804260U (zh) 2010-09-01 2011-04-20 江苏天奇物流系统工程股份有限公司 座椅托盘堆垛机构的自动控制系统
JP2012140139A (ja) 2010-12-28 2012-07-26 Asahi Glass Co Ltd ガラス板梱包容器及び該ガラス板梱包容器を用いた運搬方法
WO2012140770A1 (ja) 2011-04-14 2012-10-18 三菱電機株式会社 ロボット制御装置
WO2013059366A2 (en) 2011-10-17 2013-04-25 Symbotic Llc Pallet building system
US10216865B1 (en) * 2012-03-06 2019-02-26 Vecna Robotics, Inc. Monitoring one or more articles on a support surface
US9092698B2 (en) * 2012-06-21 2015-07-28 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9315344B1 (en) * 2012-07-20 2016-04-19 Amazon Technologies, Inc. Container stacking configurations
US20140180479A1 (en) 2012-12-20 2014-06-26 Wal-Mart Stores, Inc. Bagging With Robotic Arm
US9233470B1 (en) 2013-03-15 2016-01-12 Industrial Perception, Inc. Determining a virtual representation of an environment by projecting texture patterns
JP5616478B1 (ja) 2013-04-18 2014-10-29 ファナック株式会社 ワークを搬送するロボットを備えるロボットシステム
CN103350908A (zh) 2013-06-13 2013-10-16 周怡 自动包装码垛控制系统及码垛系统
US9682826B2 (en) 2013-06-23 2017-06-20 Top Tier, Llc Item infeed apparatus and method for a palletizer system
US9663309B2 (en) 2013-09-06 2017-05-30 Liquor Control Board Of Ontario (Lcbo) Automated palletization method, system and software
WO2015072002A1 (ja) * 2013-11-15 2015-05-21 株式会社日立製作所 移動ロボットシステム
CN103640729B (zh) 2013-11-25 2015-08-26 天津中财型材有限责任公司 一种塑钢异型材自动包装系统
US9393693B1 (en) 2014-07-10 2016-07-19 Google Inc. Methods and systems for determining and modeling admissible gripper forces for robotic devices
US9283678B2 (en) * 2014-07-16 2016-03-15 Google Inc. Virtual safety cages for robotic devices
US9205558B1 (en) * 2014-07-16 2015-12-08 Google Inc. Multiple suction cup control
US9272417B2 (en) * 2014-07-16 2016-03-01 Google Inc. Real-time determination of object metrics for trajectory planning
CN104154878B (zh) 2014-07-29 2016-09-28 暨南大学 一种使用单像素探测器的光学成像方法
US9424470B1 (en) * 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
US9457477B1 (en) * 2014-08-25 2016-10-04 Google Inc. Variable stiffness suction gripper
US9205562B1 (en) * 2014-08-29 2015-12-08 Google Inc. Integration of depth points into a height map
US9507995B2 (en) * 2014-08-29 2016-11-29 X Development Llc Combination of stereo and structured-light processing
US9866815B2 (en) * 2015-01-05 2018-01-09 Qualcomm Incorporated 3D object segmentation
US9688489B1 (en) * 2015-03-30 2017-06-27 X Development Llc Modular dock for facilities integration
US9694498B2 (en) * 2015-03-30 2017-07-04 X Development Llc Imager for detecting visual light and projected patterns
US9457970B1 (en) * 2015-03-30 2016-10-04 Google Inc. Modular cross-docking system
US9715639B2 (en) 2015-06-18 2017-07-25 The Boeing Company Method and apparatus for detecting targets
WO2017018113A1 (ja) 2015-07-29 2017-02-02 株式会社オートネットワーク技術研究所 対象物のハンドリングシミュレーション装置、対象物のハンドリングシミュレーションシステム、対象物のハンドリングをシミュレーションする方法、対象物の製造方法及び対象物のハンドリングシミュレーションプログラム
US9718188B2 (en) 2015-09-21 2017-08-01 Amazon Technologies, Inc. Networked robotic manipulators
US9926138B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Determination of removal strategies
DE102015220091A1 (de) 2015-10-15 2017-04-20 Jungheinrich Aktiengesellschaft Autonomes Kommissioniergerät
JP6267175B2 (ja) * 2015-11-20 2018-01-24 ファナック株式会社 物品を積む位置を設定する積み付けパターン計算装置
EP3405418B1 (en) 2015-11-30 2021-06-09 Sidel Canada Inc. Distribution conveying device and conveying process
US10124489B2 (en) 2016-02-26 2018-11-13 Kinema Systems Inc. Locating, separating, and picking boxes with a sensor-guided robot
JP6378232B2 (ja) 2016-03-17 2018-08-22 ファナック株式会社 複数の種類の物品を積み付けるための積み付けパターン計算装置および積み付け装置
CN105691717A (zh) 2016-03-25 2016-06-22 云南昆船电子设备有限公司 一种机器人抓取散状辅料包装置及寻包方法
US9965730B2 (en) 2016-08-23 2018-05-08 X Development Llc Autonomous condensing of pallets of items in a warehouse
JP6614075B2 (ja) 2016-09-07 2019-12-04 株式会社ダイフク 物品積載設備
JP6469061B2 (ja) 2016-09-29 2019-02-13 ファナック株式会社 積み付けパターン計算装置及び積み付けシステム
WO2018120210A1 (zh) 2016-12-30 2018-07-05 深圳配天智能技术研究院有限公司 确定码垛点位置信息的方法、装置及机器人
JP2018136896A (ja) * 2017-02-24 2018-08-30 キヤノン株式会社 情報処理装置、システム、情報処理方法、および物品の製造方法
JP7001354B2 (ja) 2017-03-29 2022-01-19 トーヨーカネツ株式会社 自動物流システム
US10328578B2 (en) 2017-04-21 2019-06-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
JP7116901B2 (ja) 2017-08-01 2022-08-12 オムロン株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP6549654B2 (ja) 2017-08-03 2019-07-24 ファナック株式会社 ロボットシステムのシミュレーション装置およびシミュレーション方法
JP6680732B2 (ja) 2017-08-23 2020-04-15 ファナック株式会社 物品積み付け装置及び機械学習装置
CN207374734U (zh) 2017-09-11 2018-05-18 宁波德克尔运输设备有限公司 一种打包码垛一体化装置
US10713547B2 (en) 2017-10-17 2020-07-14 Kyocera Document Solutions Inc. Systems, processes, interfaces, and computer program products for verification of image content in software development systems
JP6647266B2 (ja) 2017-11-06 2020-02-14 西部電機株式会社 出庫処理システム及び出庫処理方法
JP6613288B2 (ja) 2017-11-14 2019-11-27 ファナック株式会社 積み付けパターン計算装置及びロボット制御装置
US20190193956A1 (en) 2017-12-21 2019-06-27 Walmart Apollo, Llc System for dynamic pallet-build
JP2019117547A (ja) 2017-12-27 2019-07-18 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
CN108748136A (zh) 2018-04-10 2018-11-06 上海新时达机器人有限公司 机器人码垛程序生成方法、存储介质及示教器
CN108776879B (zh) 2018-06-04 2022-06-14 江苏楚门机器人科技有限公司 一种基于权重学习的垛形规划方法
CN109359739A (zh) 2018-09-13 2019-02-19 深圳市递四方信息科技有限公司 基于遗传算法的堆叠组合方法、装置、设备和存储介质
CN109132313A (zh) 2018-10-26 2019-01-04 北京旷视科技有限公司 物品移动系统、取货机器人、搬运机器人及方法
CN109353833B (zh) 2018-11-27 2021-06-29 深圳市汇川技术股份有限公司 机器人码垛点位生成方法、设备及计算机可读存储器
US10335947B1 (en) * 2019-01-18 2019-07-02 Mujin, Inc. Robotic system with piece-loss management mechanism
US10549928B1 (en) 2019-02-22 2020-02-04 Dexterity, Inc. Robotic multi-item type palletizing and depalletizing
US10647528B1 (en) 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US10679379B1 (en) * 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
US10696493B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
US10618172B1 (en) 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266422B1 (en) * 2004-04-09 2007-09-04 Fanuc Robotics America, Inc. Automated palletizing cases having mixed sizes and shapes
US20090138121A1 (en) * 2007-11-27 2009-05-28 Fki Logistex Inc. Object detection device
US20100222915A1 (en) * 2009-03-02 2010-09-02 Ralf Kuehnemann Method and device for automated loading of packages on a load carrier

Also Published As

Publication number Publication date
US20240109199A1 (en) 2024-04-04
US10953549B2 (en) 2021-03-23
JP2020196127A (ja) 2020-12-10
JP2020196117A (ja) 2020-12-10
DE102019009189B4 (de) 2022-07-28
KR20220080061A (ko) 2022-06-14
DE102019130043B4 (de) 2020-12-17
DE102019009189A1 (de) 2020-12-03
CN112009810A (zh) 2020-12-01
DE102019130043A1 (de) 2020-12-03
US20200376670A1 (en) 2020-12-03
US10618172B1 (en) 2020-04-14
KR102408914B1 (ko) 2022-06-14
JP6729953B1 (ja) 2020-07-29
US20210237274A1 (en) 2021-08-05
US11794346B2 (en) 2023-10-24

Similar Documents

Publication Publication Date Title
KR102408914B1 (ko) 오류 검출 및 동적 패킹 메커니즘을 구비한 로봇 시스템
KR102325417B1 (ko) 패킹 메커니즘을 구비한 로봇 시스템
KR102424718B1 (ko) 동적 패킹 메커니즘을 구비한 로봇 시스템
US10647528B1 (en) Robotic system for palletizing packages using real-time placement simulation
JP6771799B1 (ja) 壁に基づくパッキング機構を有するロボットシステム及びその動作方法
KR102400028B1 (ko) 비순서적으로 도착하는 패키지를 처리하기 위한 로봇 시스템
CN111605938B (zh) 用于使用实时放置模拟来码垛包裹的机器人系统
CN111498212B (zh) 用于处理失序到达的包裹的机器人系统
CN111498213B (zh) 具有动态打包机制的机器人系统
CN111559544B (zh) 具有错误检测和动态打包机制的机器人系统
CN111498214B (zh) 具有打包机制的机器人系统

Legal Events

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