KR20210149091A - 상자들을 팔레타이징하기 위한 로봇 및 방법 - Google Patents

상자들을 팔레타이징하기 위한 로봇 및 방법 Download PDF

Info

Publication number
KR20210149091A
KR20210149091A KR1020217034566A KR20217034566A KR20210149091A KR 20210149091 A KR20210149091 A KR 20210149091A KR 1020217034566 A KR1020217034566 A KR 1020217034566A KR 20217034566 A KR20217034566 A KR 20217034566A KR 20210149091 A KR20210149091 A KR 20210149091A
Authority
KR
South Korea
Prior art keywords
box
robot
leg
alignment
target
Prior art date
Application number
KR1020217034566A
Other languages
English (en)
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 KR20210149091A publication Critical patent/KR20210149091A/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
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/0052Gripping heads and other end effectors multiple gripper units or multiple end effectors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/06Gripping heads and other end effectors with vacuum or magnetic holding means
    • B25J15/0616Gripping heads and other end effectors with vacuum or magnetic holding means with vacuum
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/0008Balancing devices
    • B25J19/002Balancing devices using counterweights
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0096Programme-controlled manipulators co-operating with a working support, e.g. work-table
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • 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/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
    • 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/08Stacking of articles by adding to the top of the stack articles being tilted or inverted prior to depositing
    • 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
    • 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
    • B65G57/24Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement the layers being transferred as a whole, e.g. on pallets
    • 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
    • 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/40006Placing, palletize, un palletize, paper roll placing, box stacking

Abstract

팔레타이징을 위한 방법(300)은 로봇(100)에 의해 파지된 상자(20)에 대한 목표 상자 위치(202)를 수신하는 단계를 포함한다. 상기 방법은 또한 목표 상자 위치에 인접한 초기 포지션(212)에 상자를 위치결정하는 단계, 및 지평면(12)에 대해 소정 각도로 상자를 경사지게 하는 단계를 포함한다. 상기 방법은 초기 포지션으로부터 제1 방향(D1)으로 임계 제1 정렬 거리(224, 224a)를 충족시키는 제1 정렬 포지션(222, 222a)까지 상자를 시프팅시키는 단계, 제1 정렬 포지션으로부터 제2 방향(D2)으로 임계 제2 정렬 거리(224, 224b)를 충족시키는 목표 상자 위치까지 시프팅시키는 단계, 및 로봇에 의해 잡혀진 상자를 해제하는 단계를 더 포함한다. 상자의 해제는 상자가 목표 상자 위치의 경계 에지(24)를 향해 피봇하게 한다.

Description

상자들을 팔레타이징하기 위한 로봇 및 방법
[0001] 본 개시는 상자들의 팔레타이징(palletizing)에 관한 것이다.
[0002] 로봇은 일반적으로 작업들의 수행을 위한 프로그래밍된 가변 모션들을 통해 재료, 부품들, 도구들 또는 특수 디바이스들을 이동시키도록 설계된 재프로그램 가능한 다기능 매니퓰레이터(manipulator)로서 정의된다. 로봇들은 물리적으로 고정된 매니퓰레이터들(예를 들어, 산업용 로봇 아암들), 환경 전체에 걸쳐 이동하는 이동 로봇들(예를 들어, 레그들(legs), 휠들(wheels) 또는 트랙션 기반 메커니즘들(traction based mechanisms)을 사용함), 또는 매니퓰레이터와 이동 로봇의 일부 조합일 수 있다. 로봇들은 예를 들어 제조, 수송, 위험한 환경들, 탐사 및 의료를 포함하는 다양한 산업들에서 이용되고 있다. 이들 산업들 각각은 어느 정도의 물류 및/또는 포장 상품들과의 상호 작용을 포함하거나 그에 의존한다. 이와 같이, 상자들을 팔레타이징하는 능력은 로봇의 기능을 향상시키고, 이들 산업들에 추가적인 이점들을 제공할 수 있다.
[0003] 본 개시의 일 양태는 상자를 팔레타이징하기 위한 방법을 제공한다. 상기 방법은 로봇의 데이터 처리 하드웨어에서, 로봇에 의해 잡혀진 상자에 대한 목표 상자 위치를 수신하는 단계를 포함한다. 상자는 상단면, 하단면 및 측면들을 갖는다. 상기 방법은 또한, 로봇에 의해, 목표 상자 위치에 인접한 초기 포지션에 상자를 위치결정하는 단계, 및 로봇에 의해, 지평면에 대해 소정 각도로 상자를 경사지게 하는 단계를 포함하며, 각도는 지평면과 상자의 하단면 사이에 형성된다. 상기 방법은, 로봇에 의해, 초기 포지션으로부터 제1 방향으로 임계 제1 정렬 거리를 충족시키는 제1 정렬 포지션까지 상자를 시프팅시키는 단계, 및 로봇에 의해, 제1 정렬 포지션으로부터 제2 방향으로 임계 제2 정렬 거리를 충족시키는 목표 상자 위치까지 상자를 시프팅시키는 단계를 더 포함한다. 상기 방법은, 로봇에 의해, 로봇으로부터 상자를 해제하는 단계를 포함하며, 상자의 해제는 상자가 목표 상자 위치의 경계 에지를 향해 피봇하게 한다.
[0004] 본 개시의 구현예들은 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 구현예들에서, 초기 포지션은 목표 상자 위치로부터 제1 방향 및 제2 방향으로의 오프셋을 포함한다. 여기서, 상기 방법은, 데이터 처리 하드웨어에서, 로봇의 비전 시스템으로부터 센서 데이터를 수신하는 단계, 및 데이터 처리 하드웨어에 의해, 제1 방향으로의 제1 보상 거리 및 제2 방향으로의 제2 보상 거리를 결정하는 단계를 포함하며, 제1 보상 거리 및 제2 보상 거리는 센서 데이터에 기초하여 상자의 실제 포지션 및 상자의 지각된 포지션 사이의 차이를 보상한다. 비전 시스템으로부터 센서 데이터를 수신할 때, 초기 포지션은, 제1 보상 거리에 기초하는 목표 상자 위치로부터 제1 방향으로의 제1 오프셋, 및 제2 보상 거리에 기초하는 목표 상자 위치로부터 제2 방향으로의 제2 오프셋을 포함한다.
[0005] 일부 예들에서, 초기 포지션으로부터 제1 방향으로 제1 정렬 포지션까지 상자를 시프팅시키는 단계는, 임계 제1 정렬 거리를 충족시키기 전에, 상자가 임계 접촉력 또는 임계 속도를 경험한다고 결정하는 단계를 포함하며, 제1 정렬 포지션으로부터 제2 방향으로 목표 상자 위치까지 상자를 시프팅시키는 단계는, 임계 제2 정렬 거리를 충족시키기 전에, 상자가 임계 접촉력 또는 임계 속도를 경험한다고 결정하는 단계를 포함한다. 임계 제1 정렬 거리 또는 임계 제2 정렬 거리를 충족시키기 전에, 상기 방법은 상자가 임계 기간 동안에 제1 방향 또는 제2 방향 중 대응하는 하나의 방향으로 이동했다고 결정하는 단계를 포함할 수 있다.
[0006] 일부 구성들에서, 초기 포지션에 상자를 위치결정하는 단계는 인접한 상자와의 접촉 없이 목표 상자 위치 위에 상자를 유지하는 단계를 포함한다. 로봇으로부터 상자를 해제하는 단계는 상자가 하나 이상의 인접한 상자들에 접하게 할 수 있다. 목표 상자 위치는 복수의 상자들을 지지하도록 구성된 팔레트 상에 위치될 수 있다. 로봇은 상자를 파지하도록 구성된 엔드-이펙터를 갖는 매니퓰레이터 아암을 포함할 수 있다. 여기서, 엔드-이펙터는 상자를 파지하기 위한 흡입력을 인가하도록 구성된 복수의 흡입 컵들을 포함할 수 있다.
[0007] 일부 구현예들에서, 로봇은, 제1 단부 부분, 제2 단부 부분 및 복수의 조인트들을 갖는 역진자 본체, 복수의 조인트들 중 제1 조인트에서 역진자 본체에 결합되고, 상자를 파지하도록 구성된 엔드-이펙터를 포함하는 아암, 제1 및 제2 단부들을 갖는 적어도 하나의 레그 ― 제1 단부는 복수의 조인트들 중 제2 조인트에서 역진자 본체에 결합됨 ―, 및 적어도 하나의 레그의 제2 단부에 회전 가능하게 결합되고, 지평면과의 롤링 접촉에 따라 로봇을 이동시키도록 구성된 구동 휠을 포함한다. 적어도 하나의 레그는 제1 및 제2 단부들을 갖는 우측 레그를 포함할 수 있으며, 우측 레그의 제1 단부는 역진자 본체의 제2 단부 부분에 프리즘식으로 결합되고, 우측 레그는 우측 레그의 제2 단부에 회전 가능하게 결합된 우측 구동 휠을 갖는다. 적어도 하나의 레그는 제1 및 제2 단부들을 갖는 좌측 레그를 포함할 수 있으며, 좌측 레그의 제1 단부는 역진자 본체의 제2 단부 부분에 프리즘식으로 결합되고, 좌측 레그는 좌측 레그의 제2 단부에 회전 가능하게 결합된 좌측 구동 휠을 갖는다. 로봇은 역진자 본체 상에 배치되고 역진자 본체에 대해 이동하도록 구성된 카운터-밸런스 본체를 포함할 수 있다.
[0008] 본 개시의 다른 양태는 상자들을 팔레타이징하기 위한 로봇을 제공한다. 로봇은, 하나 이상의 조인트들을 포함하는 본체, 및 하나 이상의 조인트들 중 제1 조인트에서 본체에 결합되고 엔드-이펙터를 포함하는 아암을 포함한다. 로봇은 또한, 데이터 처리 하드웨어, 및 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는, 데이터 처리 하드웨어 상에서 실행될 때, 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령들을 저장한다. 동작들은, 엔드-이펙터에 의해 파지된 상자에 대한 목표 상자 위치를 수신하는 동작을 포함하며, 상자는 상단면, 하단면 및 측면들을 갖는다. 동작들은 또한, 목표 상자 위치에 인접한 초기 포지션에 상자를 위치결정하도록 로봇에 명령하는 동작, 및 지평면에 대해 소정 각도로 상자를 경사지게 하도록 로봇에 명령하는 동작을 포함하며, 각도는 지평면과 상자의 하단면 사이에 형성된다. 동작들은, 초기 포지션으로부터 제1 방향으로 임계 제1 정렬 거리를 충족시키는 제1 정렬 포지션까지 상자를 시프팅시키도록 로봇에 명령하는 동작, 제1 정렬 포지션으로부터 제2 방향으로 임계 제2 정렬 거리를 충족시키는 목표 상자 위치까지 상자를 시프팅시키도록 로봇에 명령하는 동작, 및 엔드-이펙터로부터 상자를 해제하도록 로봇에 명령하는 동작을 포함하며, 상자의 해제는 상자가 목표 상자 위치의 경계 에지를 향해 피봇하게 한다.
[0009] 이러한 양태는 하기의 선택적인 특징들 중 하나 이상을 포함할 수 있다. 일부 예들에서, 제2 방향은 제1 방향에 수직이다. 초기 포지션은 목표 상자 위치로부터 제1 방향 및 제2 방향으로의 오프셋을 포함할 수 있다. 동작들은, 로봇의 비전 시스템으로부터 센서 데이터를 수신하는 동작, 및 제1 방향으로의 제1 보상 거리 및 제2 방향으로의 제2 보상 거리를 결정하는 동작을 포함할 수 있으며, 제1 보상 거리 및 제2 보상 거리는 센서 데이터에 기초하여 상자의 실제 포지션 및 상자의 지각된 포지션 사이의 차이를 보상한다. 여기서, 초기 포지션은, 제1 보상 거리에 기초하는 목표 상자 위치로부터 제1 방향으로의 제1 오프셋, 및 제2 보상 거리에 기초하는 목표 상자 위치로부터 제2 방향으로의 제2 오프셋을 포함한다.
[0010] 일부 구성들에서, 초기 포지션으로부터 제1 방향으로 제1 정렬 포지션까지 상자를 시프팅시키는 동작은, 임계 제1 정렬 거리를 충족시키기 전에, 상자가 임계 접촉력 또는 임계 속도를 경험한다고 결정하는 동작을 포함하며, 제1 정렬 포지션으로부터 제2 방향으로 목표 상자 위치까지 상자를 시프팅시키는 동작은, 임계 제2 정렬 거리를 충족시키기 전에, 상자가 임계 접촉력 또는 임계 속도를 경험한다고 결정하는 동작을 포함한다. 임계 제1 정렬 거리 또는 임계 제2 정렬 거리를 충족시키기 전에, 동작들은 상자가 임계 기간 동안에 제1 방향 또는 제2 방향 중 대응하는 하나의 방향으로 이동했다고 결정하는 동작을 포함한다.
[0011] 일부 구현예들에서, 초기 포지션에 상자를 위치결정하는 동작은 인접한 상자와의 접촉 없이 목표 상자 위치 위에 상자를 유지하는 동작을 포함한다. 로봇으로부터 상자를 해제하는 동작은 상자가 하나 이상의 인접한 상자들에 접하게 할 수 있다. 목표 상자 위치는 복수의 상자들을 지지하도록 구성된 팔레트 상에 위치될 수 있다. 엔드-이펙터는 상자를 파지하기 위한 흡입력을 인가하도록 구성된 복수의 흡입 컵들을 포함할 수 있다.
[0012] 일부 예들에서, 로봇은, 제1 및 제2 단부들을 갖는 적어도 하나의 레그 ― 제1 단부는 복수의 조인트들 중 제2 조인트에서 본체에 결합됨 ―, 및 적어도 하나의 레그의 제2 단부에 회전 가능하게 결합되고, 지평면과의 롤링 접촉에 따라 로봇을 이동시키도록 구성된 구동 휠을 포함한다. 적어도 하나의 레그는 제1 및 제2 단부들을 갖는 우측 레그와, 제1 및 제2 단부들을 갖는 좌측 레그를 포함한다. 우측 레그의 제1 단부는 본체에 프리즘식으로 결합되고, 우측 레그는 우측 레그의 제2 단부에 회전 가능하게 결합된 우측 구동 휠을 갖는다. 좌측 레그의 제1 단부는 본체에 프리즘식으로 결합되고, 좌측 레그는 좌측 레그의 제2 단부에 회전 가능하게 결합된 좌측 구동 휠을 갖는다.
[0013] 본 개시의 하나 이상의 구현예들의 세부사항들은 첨부 도면들 및 하기의 설명에 기재되어 있다. 다른 양태들, 특징들 및 이점들은 이 설명 및 도면들, 그리고 청구범위로부터 명백할 것이다.
[0014] 도 1a는 환경 내에서 상자를 파지하는 로봇의 일 예의 사시도이다.
[0015] 도 1b는 로봇의 일 예의 사시도이다.
[0016] 도 1c는 도 1b의 로봇의 시스템들의 예시적인 배열의 개략도이다.
[0017] 도 2a는 도 1a의 로봇을 위한 예시적인 팔레타이저의 개략도이다.
[0018] 도 2b는 팔레트 상의 상자들의 스택에 파지된 상자를 위치결정하는 도 1a의 로봇의 일 예의 평면도이다.
[0019] 도 2c는 팔레트 상의 상자들의 스택에 파지된 상자를 위치결정하는 도 1a의 로봇의 일 예의 정면도이다.
[0020] 도 2d는 팔레트 상의 상자들의 스택에 파지된 상자를 위치결정하는 도 1a의 로봇의 일 예의 측면도이다.
[0021] 도 2e는 팔레트 상의 상자들의 스택에 대해 파지된 상자를 제1 방향으로 이동시키는 도 1a의 로봇의 일 예의 평면도이다.
[0022] 도 2f는 팔레트 상의 상자들의 스택에 대해 파지된 상자를 제1 방향으로 이동시키는 도 1a의 로봇의 일 예의 정면도이다.
[0023] 도 2g는 팔레트 상의 상자들의 스택에 대해 파지된 상자를 제1 방향으로 이동시키는 도 1a의 로봇의 일 예의 측면도이다.
[0024] 도 2h는 팔레트 상의 상자들의 스택에 대해 파지된 상자를 제2 방향으로 이동시키는 도 1a의 로봇의 일 예의 평면도이다.
[0025] 도 2i는 팔레트 상의 상자들의 스택에 대해 파지된 상자를 제2 방향으로 이동시키는 도 1a의 로봇의 일 예의 정면도이다.
[0026] 도 2j는 팔레트 상의 상자들의 스택에 대해 파지된 상자를 제2 방향으로 이동시키는 도 1a의 로봇의 일 예의 측면도이다.
[0027] 도 2k는 팔레트 상의 상자들의 스택이 있는 포지션으로 파지된 상자를 해제하는 도 1a의 로봇의 일 예의 평면도이다.
[0028] 도 2l은 팔레트 상의 상자들의 스택이 있는 포지션으로 파지된 상자를 해제하는 도 1a의 로봇의 일 예의 정면도이다.
[0029] 도 2m은 팔레트 상의 상자들의 스택이 있는 포지션으로 파지된 상자를 해제하는 도 1a의 로봇의 일 예의 측면도이다.
[0030] 도 3은 로봇이 환경 내에서 상자들을 팔레타이징하기 위한 동작들의 예시적인 배열이다.
[0031] 도 4는 본원에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
[0032] 다양한 도면들에서 유사한 참조 부호들은 유사한 요소들을 나타낸다.
[0033] 물류는 모든 형상들 및 크기들의 상품들을 포장 및/또는 배송하도록 진화했다. 이러한 진화에 따라, 점점 더 많은 상자들과 같은 포장 상품들이 다양한 물류 채널들을 이동한다. 특히, 최근 수십 년간, 그 중에서도, 온라인 쇼핑의 증가로 인해, 포장 상품들에 대한 소비자 수요가 현저하게 증가했다. 오늘날, 대형 운송 회사들은 매일 수백만 개의 포장물들(packages)을 배송하는 것으로 추정된다. 배송 물류의 일부로서, 카운팅(counting), 분류(sorting), 운반(transporting), 팔레타이징(palletizing) 등과 같은 상자들과 관련된 특정 작업들을 수행하는 것이 종종 필요하다. 이들 작업들은 다양한 비즈니스들(businesses), 창고들(warehouses), 주문처리 센터들(fulfillment centers) 등을 위한 입고 및/또는 출고 시설들 모두에서 필요할 수 있다. 현재, 포장 상품들의 상자들과 관련된 작업들은 수많은 양들의 인간 노동력 및 시간을 사용한다. 또한, 속도 및 정확성이 중요할 수 있지만, 이들 작업들은 종종 단조롭고 지루하고 시간 소모적이며, 그리고/또는 힘들 수 있다.
[0034] 인간의 피로의 고유한 특성 및 인간의 정확성에 대한 해로운 영향으로 인해, 이들 작업들은 일반적으로 로봇에 보다 적합하다. 로봇은 피로를 겪지 않고, 반복 가능하고 그리고/또는 신뢰성있는 방식으로 상자-관련 작업들을 수행할 수 있다. 유리하게도, 배송 물류의 일부 양태들은 이미 기계류 및/또는 기계 처리를 포함한다. 예를 들어, 배송 환경들은 전형적으로 컴퓨터들, 스캐너들, 저울들(scales), 컨베이어들 또는 지게차들과 같은 장비를 포함한다. 로봇을 사용하여 상자들에 대한 작업들을 수행함으로써, 로봇은 이러한 장비의 역할들을 통합하도록 기능할 수 있다. 일부 경우들에서, 로봇은 이러한 장비 및/또는 관련 물류 시스템들과 보다 용이하게 통합될 수 있다. 이들 및 다른 이점들에 기초하여, 작업 환경 내에서 상자들을 정확하고 효율적으로 팔레타이징할 수 있는 로봇은 진화하는 물류 분야에 크게 유익할 수 있다.
[0035] 도 1a는 적어도 하나의 상자(20)를 포함하는 작업 환경(10) 내에서 작동하는 로봇(100)의 예이다. 여기서, 작업 환경(10)은 지면(12) 상에 놓인 팔레트(pallet)(30) 상에 적층된 복수의 상자들(20, 20a 내지 20n)을 포함한다. 일반적으로, 상자들(20)은 보호, 운반 용이성, 적층성 등을 위해 상품들을 포장하는 데 사용된다. 상자(20)는 전형적으로 직각 프리즘(rectangular prism) 또는 직육면체와 유사한 구조를 갖는다. 상자(20)는 면(26)의 에지들(24)이 교차하는 코너들(22)을 포함한다. 직각 프리즘으로서, 상자(20)는 6 개의 면들(26)(상자(20)의 표면들 또는 상자(20)의 측면들로도 지칭됨)을 포함하며, 각각의 면(26)은 4 개의 에지들(24)의 경계에 의해 형성된 직사각형이다. 각각의 면(26)은 공간 평면 내의 표면에 대응하며, 2 개의 평면들의 교차부가 에지(24)를 형성한다. 코너(22)는 적어도 2 개의 에지들(24)(예를 들어, 2차원 코너에서는 2 개의 에지들 또는 3차원 코너에서는 3 개의 에지들)이 일반적으로 90 도 각도(즉, 직각)로 교차하는 점 또는 꼭지점을 지칭한다. 상자(20)는 8 개의 코너들(22)(즉, 꼭지점들) 및 12 개의 에지들(24)을 갖는다. 물류에서, 상자(20)는 종종 상자(20) 내에 수용된 상품에 대한 재고 관리 단위(stock keeping unit; SKU)(예를 들어, 바코드 형태)를 포함한다. 팔레타이징될 때(즉, 팔레트(30) 상에 적층될 때), SKU 또는 바코드가 노출된 상자(20)의 면(26) 상에 위치되는 것이 일반적이다.
[0036] 작업 환경(10)은, 예를 들어 보관 시설, 유통 센터, 또는 주문처리 센터를 포함할 수 있다. 로봇(100)은 작업 환경(10) 내에서 상자들(20)을 검출 및/또는 조작(예를 들어, 팔레타이징)하기 위해 지면(12)을 가로질러 이동(예를 들어, 구동)할 수 있다. 예를 들어, 팔레트(30)는 로봇(100)이 싣는 배달 트럭에 대응한다. 로봇(100)은 로봇(100)이 물류 주문처리 또는 재고 관리를 위해 상자들(20)을 팔레타이징하는 물류의 배송 및/또는 수취 단계와 연관될 수 있다.
[0037] 팔레트(30)는 전형적으로 상품들을 지지하고 상품들이 유닛(또는 유닛 화물)으로서 운반될 수 있게 하는 편평한 플랫폼 구조체(flat platform structure)(즉, 데크(deck))를 지칭한다. 팔레트들(30)은 재킹 디바이스(jacking device)(예를 들어, 지게차, 스키드 스티어(skid steer), 뮬(mule), 팔레트 잭(pallet jack), 프론트 로더(front loader) 등)가 운반 및 이동의 용이성을 위해 팔레트(30)를 들어올릴 수 있게 하는 진입 지점들을 포함한다. 팔레트(30)의 에지들은 상품들이 팔레트(30)에 의해 지지되는 경계를 형성한다. 팔레트(30) 상의 상품들은 전형적으로 팔레트(30)의 상부에 스택을 형성하는 상자들(20) 내에 포장된다. 팔레트들(30)은 모든 형상들 및 크기들의 임의의 개수의 상자들(20)을 수용할 수 있다. 공간을 효율적으로 이용하기 위해, 팔레트(30)는 종종 층들(L)(또는 행들)에 의해 규정된 상자들(20)의 적층된 구조를 포함할 수 있다. 층들(L)의 개수 또는 층(L)을 구성하는 상자들(20)의 개수는 상자들(20)의 크기 및/또는 형상에 따라 달라질 수 있다. 일부 구성들에서, 팔레트(30)의 크기는 허용 가능한 높이(팔레트(30)의 데크의 상단으로부터 상단 층 상자(20)의 상단까지) 및/또는 운반을 위한 허용 가능한 중량에 기초하고 있다. 이것은 팔레트(30)의 상자들(20) 내에 수용된 상품들의 유형에 따라 달라질 수 있다. 단순화를 위해, 도 2b 내지 도 2m은 종종 2 개의 층들(L, L1, L2)을 갖는 팔레트(30)를 도시하며, 여기서 각각의 층(L)은 4 개의 상자들(20, 20a 내지 20d)을 포함한다. 종종, 층(L) 상의 상자들(20) 또는 층들(L) 사이의 상자들(20)은 운반 동안에 팔레트(30)의 안정성을 돕기 위해 인터로킹(interlocking)될 것이다. 따라서, 팔레트(30)는 상자들(20)을 지지하는 물리적 구조체 및 상자들(20)의 유닛을 모두 지칭할 수 있다. 팔레트들(30)은 구조에 의해 지칭되거나(예를 들어, 블록 팔레트들(block pallets), 스트링거 팔레트들(stringer pallets), 날개형 팔레트들(winged pallets), 플러시 팔레트(flush pallet), 양면사용 팔레트(reversible pallet), 단면사용 팔레트(non-reversible pallet) 등), 재료에 의해 지칭되거나(예를 들어, 스키드 팔레트들(skid pallets), 금속 팔레트들, 목재 팔레트들, 종이 팔레트들 등), 또는 진입 점들에 의해 지칭될 수 있다(예를 들어, 양방향 팔레트 또는 4방향 팔레트).
[0038] 역사적으로, 용어 팔레타이징하다(palletize)는 팔레트(30) 상에 상품들의 상자들(20)을 배치하거나 적층하는 것을 의미한다. 그러나, 팔레트(30)가 종종 운반 목적들로 상자들(20)을 적층하기에 편리한 표면이라고 하더라도, 팔레타이징은 보다 일반적으로 집합적 유닛을 형성하기 위해 임의의 표면 상에 상품들의 상자들(20)을 배치하거나 적층하는 것을 지칭하는 것으로 진화되었다. 팔레타이징의 목표는 상자들(20)의 단단히 묶인 스택을 생성하는 것이다. 상자들(20)의 단단히 묶인 스택은 상자들 사이의 공간이 최소이거나 전혀 없으며, 그에 따라 스택 내의 상자들(20)의 공간적 관계는 운반 동안의 보호 및/또는 이동 감소(예를 들어, 접한 상자들의 표면들 사이의 마찰력들을 이용함)의 수단으로서 기능한다. 또한, 상자들(20) 사이에 갭이 거의 또는 전혀 없는 경우, 상자들(20)은 운반 동안에 상대적 모션에 저항할 가능성이 큰 질량을 갖는 집합적 유닛을 형성할 수 있다. 다시 말해서, 상자들(20)의 집합적 질량은 스택 내의 상자들(20)을 손상시키거나, 넘어뜨리거나, 일반적으로 분리할 수 있는 운동량을 생성하기 위해서는 보다 큰 힘들을 필요로 할 것이다. 상자들(20) 사이에 공간 또는 갭이 없이 상자들(20)을 적층함으로써, 팔레타이징은 갭들이 팔레트(30)의 운반 동안에 상자(20)가 이동하거나 요동하게 하는 것을 방지한다. 로봇(100)의 시스템들은 단순화를 위해 팔레트(30) 상에 상자들(20)을 팔레타이징하는 것과 관련하여 도시되어 있지만, 로봇(100)은 상자들(20)을 임의의 표면 상에 함께 팔레타이징(즉, 배치/위치결정)하도록 구성될 수 있다.
[0039] 상자들(20)의 팔레타이징은 로봇에 대한 이상적인 작업인 것으로 보일 수 있지만, 로봇들은 종종 이러한 작업에 곤란을 겪는다. 우선, 로봇들은 작업들을 신속하게 수행하고, 그리고/또는 평균적인 인간의 힘을 넘어서는 힘을 요구하는 작업들을 수행하기 위해 상당량의 힘을 갖도록 설계될 수 있다. 이러한 힘에 의해, 로봇은 상자들(20)을 함께 적층하고자 할 때 상자들(20)을 용이하게 밀거나, 슬라이딩시키거나, 넘어뜨릴 수 있다. 로봇 힘의 문제들을 절충시키기 위해, 로봇들은 명령들, 및 명령들의 실행으로부터의 피드백에 따라 기능할 수 있다. 여기서, 로봇이 상자(20)에 강한 힘을 가하여 다른 상자(20)와의 충돌을 유발하는 경우, 로봇은 다른 상자(20)를 원치 않는 위치로 이동시키기 전에 충격을 보상할 장비가 제대로 갖추어져 있지 않다. 다른 상자(20)를 원치 않는 위치로 이동시킴으로써, 로봇은 적층된 상자들(20)의 유닛의 완전성(integrity)을 손상시킬 수 있다(예를 들어, 상자들을 넘어뜨리거나, 서로 사이에 너무 많은 공간을 갖고서 상자들을 적층함). 로봇들의 다른 문제는, 상자들(20)을 조작할 때, 로봇의 시스템들과 상자들(20)의 스택의 실제 위치 사이의 부정확성들 및/또는 허용오차들이 이웃하는 상자들(20) 사이에 갭 또는 공간을 갖고서 상자(20)를 배치하게 할 수 있다는 것이다. 로봇이 상자(20)를 공간적으로 유지하고 있다고 지각하는 곳과 실제로 상자(20)를 유지하고 있는 곳 사이에서 유사한 효과가 발생할 수 있다. 예를 들어, 로봇이 지각된 들어올림 포지션과 몇 인치 상이하게 실제로 상자(20)를 들어올렸다면, 상자를 내려놓을 때, 상자(20)는 몇 인치의 차이를 상자(20)에 대한 터치다운 포지션(touchdown position)으로 전가하여, 배치된 상자(20)와 다른 상자들(20) 사이에 몇 인치의 잠재적인 갭을 야기한다. 이러한 문제들은 상자들(20)이 상이한 중량들 또는 중량 분포들을 갖는 상품들을 수용하는 경우에 더욱 복잡해질 수 있다. 예를 들어, 로봇이 상자(20)를 너무 빨리 배치하면, 상자(20)의 배치가 인접한 상자(20)와의 충돌을 유발하지 않더라도, 배치된 상자(20) 내의 상품들은 상자(20)의 배치 동안 로봇에 의한 이동으로 인한 운동량을 가져서 인접한 상자(20)와의 충돌을 유발할 수 있다. 이러한 문제들의 경우, 이러한 문제들에 대한 조정 없이, 상자들(20)의 스택 내의 목표 포지션으로 상자(20)를 단순히 이동시키는 것은 불량한 팔레타이징을 야기한다. 이것은 팔레타이징 동안의 로봇에 의한 상자들(20)의 수 차례 배치들 동안에 이러한 문제들 중 어느 하나 또는 조합이 반복적으로 일어나는 경우에 특히 그렇다. 다시 말해서, 팔레트(30)가 각 층(L)에 대해 4 개의 상자들(20)을 갖는 2 개의 층들(L1, L2)을 포함하는 경우, 로봇은 불행하게도 팔레트 유닛의 완전성을 손상시키는 8 가지의 가능성들을 갖는다. 여기서, 이러한 문제들을 해결하기 위해, 도 1a 내지 도 1c에 도시된 바와 같은 로봇(100)은 상자들(20)을 신뢰성있고 반복적으로 팔레타이징하기 위한 시스템들을 포함한다.
[0040] 도 1b를 참조하면, 로봇(100)은 중력 방향을 따르는 중력 수직 축(Vg), 및 로봇(100)이 제로섬 질량 분포(zero-sum distribution of mass)를 갖는 지점인 질량 중심(CM)을 갖는다. 로봇(100)은 로봇(100)에 의해 취해지는 특정 자세 또는 스탠스(stance)를 규정하기 위해 중력 수직 축(Vg)에 대한 CM에 기초하는 포즈(pose)(P)를 더 갖는다. 로봇(100)의 자세는 공간에서의 물체의 배향 또는 각도 포지션에 의해 규정될 수 있다.
[0041] 로봇(100)은 일반적으로 본체(110) 및 하나 이상의 레그들(120)을 포함한다. 로봇(100)의 본체(110)는 작업 환경(10)에서 수행될 작업들에 따라 일체 구조 또는 보다 복잡한 디자인일 수 있다. 본체(110)는 로봇(100)이 균형을 잡게 하거나, 작업 환경(10)을 감지하거나, 로봇(100)에 전력을 공급하거나, 작업 환경(10) 내의 작업들을 지원하거나, 로봇(100)의 다른 구성요소들을 지지하도록 할 수 있다. 일부 예들에서, 로봇(100)은 2-부분 본체(110)를 포함한다. 예를 들어, 로봇(100)은 역진자 본체(inverted pendulum body; IPB)(110, 110a)(즉, 로봇(100)의 몸통(torso)(110a)으로 지칭됨), 및 IPB(110a)에 배치된 카운터-밸런스 본체(counter-balance body; CBB)(110, 110b)(즉, 로봇(100)의 테일(tail)(110b)로 지칭됨)를 포함한다.
[0042] 본체(110)(예를 들어, IPB(110a) 또는 CBB(110b))는 제1 단부 부분(112) 및 제2 단부 부분(114)을 갖는다. 예를 들어, IPB(110a)는 제1 단부 부분(112a) 및 제2 단부 부분(114a)을 갖는 한편, CBB(110b)는 제1 단부 부분(112b) 및 제2 단부 부분(114b)을 갖는다. 일부 구현예들에서, CBB(110b)는 IPB(110a)의 제2 단부 부분(114a) 상에 배치되고, IPB(110a)에 대해 이동하도록 구성된다. 일부 예들에서, 카운터-밸런스 본체(110b)는 로봇(100)에 전력을 공급하는 역할을 하는 배터리를 포함한다. 백 조인트들(back joints)(JB)은 CBB(110b)가 IPB(110a)에 대해 회전할 수 있게 하도록 IPB(110a)의 제2 단부 부분(114a)에 CBB(110b)를 회전 가능하게 결합할 수 있다. 백 조인트(JB)는 피치 조인트(pitch joint)로 지칭될 수 있다. 도시된 예에서, 백 조인트(JB)는 로봇(100)의 전후 축(x-축) 및 중력 수직 축(Vg)에 수직으로 연장되는 횡축(y-축)을 중심으로 CBB(110b)가 이동/피칭(pitching)할 수 있게 하도록 CBB(110b)를 지지한다. 로봇(100)의 전후 축(x-축)은 현재 로봇(100)의 주행 방향을 나타낼 수 있다. IPB(110a)에 대한 CBB(110b)에 의한 이동은 중력 수직 축(Vg)에 대해 로봇(100)의 CM을 이동시킴으로써 로봇(100)의 포즈(P)를 변경한다. 회전 액추에이터 또는 백 조인트 액추에이터(A, AB)(예를 들어, 테일 액추에이터 또는 카운터-밸런스 본체 액추에이터)는 횡축(y-축)을 중심으로 한 CBB(110b)(예를 들어, 테일)에 의한 이동을 제어하도록 백 조인트(JB)에 또는 그 근처에 위치결정될 수 있다. 회전 액추에이터(AB)는 전기 모터, 전기-유압 서보, 압전 액추에이터, 솔레노이드 액추에이터, 공압 액추에이터, 또는 IPB(110a)에 대한 CBB(110b)에 의한 이동을 정확하게 실행하기에 적합한 다른 액추에이터 기술을 포함할 수 있다.
[0043] IPB(110a)에 대한 CBB(110b)에 의한 회전 이동은 로봇(100)을 직립 포지션에서 균형을 잡고 유지하기 위해 로봇(100)의 포즈(P)를 변경한다. 예를 들어, 종래의 역진자 플라이휠(inverted pendulum flywheel)에서 플라이휠에 의한 회전과 유사하게, 중력 수직 축(Vg)에 대한 CBB(110b)에 의한 회전은 로봇(100)의 포즈(P)를 변경하기 위해 백 조인트(JB)에 모멘트(MCBB)를 생성/부여한다. IPB(110a)에 대해 CBB(110b)를 이동시켜서 로봇(100)의 포즈(P)를 변경함으로써, 로봇(100)의 CM은 로봇(100)이 화물(load)을 이동 및/또는 운반할 때의 시나리오들에 있어서 로봇(100)을 직립 포지션에서 균형을 잡고 유지하도록 중력 수직 축(Vg)에 대해 이동한다. 그러나, 모멘트점에 중심설정된 질량을 갖는 종래의 역진자 플라이휠의 플라이휠 부분과는 대조적으로, CBB(110b)는 백 조인트(JB)에 부여되는 모멘트로부터 오프셋된 대응하는 질량을 포함한다. 일부 구성들에서, 로봇(100)을 직립 포지션에서 균형을 잡고 유지하도록 모멘트(회전력)를 부여하고 회전시키기 위해 CBB(110b) 대신에 백 조인트(JB)에 배치된 자이로스코프가 사용될 수 있다.
[0044] CBB(110b)는 진동(예를 들어, 상하 흔들림(wagging)) 이동을 생성하기 위해 백 조인트(JB)를 중심으로 시계 방향 및 반시계 방향 모두로(예를 들어, y-축을 중심으로 "피치 방향"으로) 회전(예를 들어, 피칭)할 수 있다. 포지션들 사이에서의 IPB(110a)에 대한 CBB(110b)에 의한 이동은 로봇(100)의 CM이 시프팅(shifting)되게 한다(예를 들어, 지면(12)을 향해 보다 낮게, 또는 지면(12)으로부터 멀리 보다 높게 시프팅됨). CBB(110b)는 이동들 사이에서 진동하여 상하 흔들림 이동을 생성할 수 있다. IPB(110a)에 대해 이동할 때 CBB(110b)의 회전 속도는, 로봇(100)의 동적 균형을 잡기 위해 로봇(100)의 포즈(P)가 얼마나 빨리 변경될 필요가 있는지에 따라, 일정하거나 변경(가속 또는 감속)될 수 있다.
[0045] 레그들(120)은 작업 환경(10)에 대해 로봇(100)을 이동시키도록 구성된 로코모션-기반 구조체들(locomotion-based structures)(예를 들어, 레그들 및/또는 휠들)이다. 로봇(100)은 임의의 수의 레그들(120)을 가질 수 있다(예를 들어, 4 개의 레그들을 갖는 4족, 2 개의 레그들을 갖는 2족 , 6 개의 레그들을 갖는 6족, 8 개의 레그들을 갖는 거미류 로봇 등). 예를 들어, 로봇(100)은 로코모션 기반 구조체로서 기능하는 단일 베이스 또는 레그(120)를 가질 수 있으며, 하나 이상의 휠들이 작업 환경(10)에 대해 로봇(100)을 이동시키기 위해 표면과 접촉하도록 베이스로부터 연장된다. 여기서, 단순화를 위해, 로봇(100)은 일반적으로 2 개의 레그들(120, 120a 및 120b)을 갖는 것으로 도시 및 설명된다.
[0046] 2족 로봇(100)으로서, 로봇은 제1 레그(120, 120a) 및 제2 레그(120, 120b)를 포함한다. 일부 예들에서, 각각의 레그(120)는 제1 단부(122) 및 제2 단부(124)를 포함한다. 제2 단부(124)는 로봇(100)이 작업 환경(10)을 횡단할 수 있도록 표면(예를 들어, 지면)과 접촉하는 로봇(100)의 부재와 접촉하거나 그에 인접한 레그(120)의 단부에 대응한다. 예를 들어, 제2 단부(124)는 보행 패턴에 따라 이동하는 로봇(100)의 푸트(foot)에 대응한다. 일부 구현예들에서, 로봇(100)은 롤링 모션(rolling motion)에 따라 이동하고, 그에 따라 로봇(100)은 구동 휠(130)을 포함한다. 구동 휠(130)은 로봇(100)의 푸트형 부재에 추가되거나 이를 대신할 수 있다. 예를 들어, 로봇(100)은 보행 모션 및/또는 롤링 모션에 따라 이동할 수 있다. 여기서, 도 1b에 도시된 로봇(100)은 (예를 들어, IPB(110a)에서) 본체(110)에 결합된 제1 단부(122)를 도시하는 한편, 제2 단부(124)는 구동 휠(130)에 결합된다. 구동 휠(130)을 레그(120)의 제2 단부(124)에 결합함으로써, 구동 휠(130)은 결합 축을 중심으로 회전하여 작업 환경(10)에 대해 로봇(100)을 이동시킬 수 있다.
[0047] 본체(110)의 각 측면에 있는 히프 조인트들(hip joints)(JH)(예를 들어, 로봇(100)의 시상면(PS)에 대해 대칭인 제1 히프 조인트(JH, JHa) 및 제2 히프 조인트(JH, JHb))은 레그(120)의 적어도 일부가 본체(110)에 대해 횡축(y-축)을 중심으로 이동/피칭할 수 있게 하도록 레그(120)의 제1 단부(122)를 본체(110)의 제2 단부(114)에 회전 가능하게 결합할 수 있다. 예를 들어, 레그(120)(예를 들어, 제1 레그(120a) 또는 제2 레그(120b))의 제1 단부(122)는 레그(120)의 적어도 일부가 IPB(110a)에 대해 횡축(y-축)을 중심으로 이동/피칭할 수 있게 하도록 히프 조인트(JH)에서 IPB(110a)의 제2 단부(114a)에 결합된다.
[0048] 레그 액추에이터(A, AL)는 각각의 히프 조인트(JH)(예를 들어, 제1 레그 액추에이터(AL, ALa) 및 제2 레그 액추에이터(AL, ALb))와 연관될 수 있다. 히프 조인트(JH)와 연관된 레그 액추에이터(AL)는 레그(120)(예를 들어, 제1 레그(120a) 또는 제2 레그(120b))의 상부 부분(126)이 본체(110)(예를 들어, IPB(110a))에 대해 횡축(y-축)을 중심으로 이동/피칭하게 할 수 있다. 일부 구성들에서, 각각의 레그(120)는 대응하는 상부 부분(126) 및 대응하는 하부 부분(128)을 포함한다. 상부 부분(126)은 제1 단부(122)에 있는 히프 조인트(JH)로부터 대응하는 니 조인트(knee joint)(JK)까지 연장될 수 있고, 하부 부분(128)은 니 조인트(JK)로부터 제2 단부(124)까지 연장될 수 있다. 니 조인트(JK)와 연관된 니 액추에이터(A, AK)는 레그(120)의 하부 부분(128)이 레그(120)의 상부 부분(126)에 대해 횡축(y-축)을 중심으로 이동/피칭하게 할 수 있다.
[0049] 각각의 레그(120)는 구동 휠(130)을 레그(120)의 제2 단부(124)에 회전 가능하게 결합하도록 구성된 대응하는 앵클 조인트(ankle joint)(JA)를 포함할 수 있다. 예를 들어, 제1 레그(120a)는 제1 앵클 조인트(JA, JAa)를 포함하고, 제2 레그(120b)는 제2 앵클 조인트(JA, JAb)를 포함한다. 여기서, 앵클 조인트(JA)는 구동 휠(130)과 공통 회전하도록 결합되고 횡축(y-축)에 실질적으로 평행하게 연장되는 휠 액슬(wheel axle)과 연관될 수 있다. 구동 휠(130)은 전후 축(x-축)을 따라 지면(12)(상호 교환 가능하게 작업 표면(12) 또는 지평면(12)으로 지칭될 수 있음)을 가로질러 구동 휠(130)을 이동시키기 위해 앵클 조인트(JA)를 중심으로 구동 휠(130)을 회전시키기 위한 대응하는 액슬 토크를 인가하도록 구성된 대응하는 토크 액추에이터(구동 모터)(A, AT)를 포함할 수 있다. 예를 들어, 액슬 토크는 구동 휠(130)이 전후 축(x-축)을 따라 로봇(100)을 전방 방향으로 이동시키기 위한 방향으로 회전하게 하고, 그리고/또는 구동 휠(130)이 전후 축(x-축)을 따라 로봇(100)을 후방 방향으로 이동시키기 위한 반대 방향으로 회전하게 할 수 있다.
[0050] 일부 구현예들에서, 레그들(120)은 각각의 레그(120)의 길이가 히프 조인트(JH)에 근접한 대응하는 액추에이터(예를 들어, 레그 액추에이터들(AL)), 히프 조인트(JH) 및 니 조인트(JK)에 근접하게 배치된 한 쌍의 풀리들(pulley)(도시되지 않음), 및 풀리들의 회전을 동기화시키는 타이밍 벨트(timing belt)(도시되지 않음)를 통해 확장 및 수축될 수 있도록 본체(110)(예를 들어, IPB(110a))에 프리즘식으로 결합된다. 각각의 레그 액추에이터(AL)는 선형 액추에이터 또는 회전 액추에이터를 포함할 수 있다. 여기서, 제어기(142)를 갖는 제어 시스템(140)(예를 들어, 도 1c에 도시됨)은 각각의 레그(120)와 연관된 액추에이터를 작동시켜, 시계 방향 또는 반시계 방향 중 하나의 방향으로 본체(110)(예를 들어, IPB(110a))에 대해 대응하는 상부 부분(126)을 회전시켜서, 대응하는 하부 부분(128)이 시계 방향 또는 반시계 방향 중 다른 방향으로 상부 부분(126)에 대해 대응하는 니 조인트(JK)를 중심으로 회전하게 함으로써 레그(120)의 길이를 프리즘식으로 연장/확장시킬 수 있다. 선택적으로, 2-링크 레그 대신에, 적어도 하나의 레그(120)는 레그(120)의 제2 단부(124)가 선형 레일을 따라 본체(110)(예를 들어, IPB(110a))를 향해/그로부터 멀리 프리즘식으로 이동하도록 선형으로 프리즘식으로 연장/수축되는 단일 링크를 포함할 수 있다. 다른 구성들에서, 니 조인트(JK)는 한 쌍의 동기화된 풀리들 대신에, 상부 부분(126)에 대해 하부 부분(128)을 회전시키기 위한 니 액추에이터(AK)로서 대응하는 회전 액추에이터를 사용할 수 있다.
[0051] 구동 휠들(130) 각각(예를 들어, 제1 레그(120a)와 연관된 제1 구동 휠(130, 130a) 및 제2 레그(120b)와 연관된 제2 구동 휠(130, 130b))에 인가되는 대응하는 액슬 토크는 지면(12)을 가로질러 로봇(100)을 조종하도록 변할 수 있다. 예를 들어, 제2 구동 휠(130b)에 인가되는 액슬 토크보다 큰 제1 구동 휠(130a)에 인가되는 액슬 토크는 로봇(100)이 좌측으로 회전하게 할 수 있는 한편, 제1 구동 휠(130)보다 제2 구동 휠(130b)에 더 큰 액슬 토크를 인가함으로써, 로봇(100)이 우측으로 회전하게 할 수 있다. 유사하게, 구동 휠(130) 각각에 실질적으로 동일한 크기의 액슬 토크를 인가함으로써, 로봇(100)이 전방 방향 또는 역방향으로 지면(12)을 가로질러 실질적으로 직선으로 이동하게 할 수 있다. 구동 휠들(130) 각각에 인가되는 액슬 토크의 크기는 전후 축(x-축)을 따라 로봇(100)의 속도를 제어한다. 선택적으로, 구동 휠들(130)은 로봇(100)이 지면(12) 상에서 선회함으로써 배향을 변경할 수 있게 하도록 반대 방향들로 회전할 수 있다. 따라서, 각각의 액슬 토크는 다른 구동 휠(130)에 인가되는 액슬 토크(존재한다면)와 독립적으로 대응하는 구동 휠(130)에 인가될 수 있다.
[0052] 일부 예들에서, 본체(110)는 (예를 들어, CBB(110b)에서) 또한 적어도 하나의 비구동 휠(도시되지 않음)을 포함한다. 비구동 휠은 일반적으로 수동적이며(예를 들어, 수동 캐스터 휠(passive caster wheel)), 그에 따라 비구동 휠의 이동은 로봇(100)과 연관된 로코모션 또는 다른 구동 휠들에 의해 좌우된다. 예를 들어, 비구동 휠은 본체(110)(예를 들어, CBB(110b))가 지면(12)에 의해 지지되는 포즈(P)로 본체(110)가 이동하지 않는 한 지면(12)과 접촉하지 않는다.
[0053] 일부 구현예들에서, 로봇(100)은 본체(110)(예를 들어, IPB(110a)) 상에 배치되고 본체(110)에 대해 이동하도록 구성된 관절식 아암(150)(아암 또는 매니퓰레이터 아암으로도 지칭됨)과 같은 하나 이상의 부속물들을 더 포함한다. 관절식 아암(150)은 하나 이상의 자유도들(예를 들어, 상대적으로 고정된 것으로부터 작업 환경(10)에서 광범위한 작업들을 수행할 수 있는 것까지의 범위)을 가질 수 있다. 여기서, 도 1b에 도시된 관절식 아암(150)은 5-자유도들을 갖는다. 도 1b는 (예를 들어, IPB(110a)에서) 본체(110)의 제1 단부 부분(112) 상에 배치된 관절식 아암(150)을 도시하지만, 관절식 아암(150)은 다른 구성들에서 본체(110)의 임의의 부분 상에 배치될 수 있다. 예를 들어, 관절식 아암(150)은 CBB(110b) 또는 IPB(110a)의 제2 단부 부분(114a) 상에 배치된다.
[0054] 관절식 아암(150)은 근위 제1 단부(152)와 원위 제2 단부(154) 사이에서 연장된다. 아암(150)은 제1 단부(152)와 제2 단부(154) 사이에 하나 이상의 아암 조인트들(JA)을 포함할 수 있으며, 각각의 아암 조인트(JA)는 아암(150)이 작업 환경(10)에서 관절 운동할 수 있게 하도록 구성된다. 이들 아암 조인트들(JA)은 아암(150)의 아암 부재(156)를 본체(110)에 결합하거나, 2 개 이상의 아암 부재들(156)을 함께 결합할 수 있다. 예를 들어, 제1 단부(152)는 제1 관절식 아암 조인트(JA1)(예를 들어, 숄더 조인트(shoulder joint)와 유사함)에서 본체(110)(예를 들어, IPB(110a))에 연결된다. 일부 구성들에서, 제1 관절식 아암 조인트(JA1)는 히프 조인트들(JH) 사이에 배치된다(예를 들어, 본체(110)의 중심에서 로봇(100)의 시상면(PS)을 따라 정렬됨). 일부 예들에서, 제1 관절식 아암 조인트(JA1)는 아암(150)의 근위 제1 단부(152)를 본체(110)(예를 들어, IPB(110a))에 회전 가능하게 결합하여, 아암(150)이 본체(110)(예를 들어, IPB(110a))에 대해 회전할 수 있게 한다. 예를 들어, 아암(150)은 본체(110)에 대해 횡축(y-축)을 중심으로 이동/피칭할 수 있다.
[0055] 도 1b와 같은 일부 구현예들에서, 아암(150)은 제2 아암 조인트(JA2)(예를 들어, 엘보 조인트(elbow joint)와 유사함) 및 제3 아암 조인트(JA3)(예를 들어, 리스트 조인트(wrist joint)와 유사함)를 포함한다. 제2 아암 조인트(JA2)는 제1 아암 부재(156a)를 제2 아암 부재(156b)에 결합하여, 이들 부재들(156a, 156b)이 서로에 대해 그리고 또한 본체(110)(예를 들어, IPB(110))에 대해 회전 가능하게 한다. 아암(150)의 길이에 따라, 아암(150)의 제2 단부(154)는 아암 부재(156)의 단부와 일치한다. 예를 들어, 아암(150)은 임의의 수의 아암 부재들(156)을 가질 수 있지만, 도 1b는 제2 아암 부재(156b)의 단부가 아암(150)의 제2 단부(154)와 일치하도록 2 개의 아암 부재들(156a, 156b)을 갖는 아암(150)을 도시한다. 여기서, 아암(150)의 제2 단부(154)에서, 아암(150)은 작업 환경(10) 내에서 작업을 수행하도록 구성된 엔드-이펙터(end-effector)(160)를 포함한다. 엔드-이펙터(160)는 작동 동안에 엔드-이펙터(160)가 다수의 자유도들을 가질 수 있게 하기 위해 아암 조인트(JA)(예를 들어, 제3 아암 조인트(JA3))에서 아암(150)의 제2 단부(154) 상에 배치될 수 있다. 엔드-이펙터(160)는 물체들을 잡거나/파지하기 위한 하나 이상의 엔드-이펙터 액추에이터들(A, AEE)을 포함할 수 있다. 예를 들어, 엔드-이펙터(160)는 엔드-이펙터(160)와 목표 물체, 예를 들어 목표 상자 사이에 진공 시일을 제공함으로써 물체들을 파지하거나 잡기 위한 엔드-이펙터 액추에이터들(AEE)로서 하나 이상의 흡입 컵들(suction cups)을 포함한다.
[0056] 관절식 아암(150)은 본체(110)(예를 들어, IPB(110a))에 대해 횡축(y-축)을 중심으로 이동/피칭할 수 있다. 예를 들어, 관절식 아암(150)은 회전 조작들을 실행하는 동안에 로봇(100)의 CM을 낮추기 위해 중력 방향으로 본체(110)에 대한 횡축(y-축)을 중심으로 회전할 수 있다. CBB(110b)는 또한 로봇(100)의 CM을 낮추는 것을 보조하기 위해 중력 방향으로 IPB(110)에 대해 횡축(y-축)을 중심으로 동시에 회전할 수 있다. 여기서, 관절식 아암(150) 및 CBB(110b)는, 여전히 로봇(100)의 CM이 지면(12)에 보다 근접하게 하향으로 시프팅되게 하면서, 전후 축(x-축)을 따라 전방 또는 후방 방향으로의 로봇(100)의 CM의 임의의 시프팅을 상쇄시킬 수 있다.
[0057] 도 1c를 참조하면, 로봇(100)은 로봇(100)의 작동을 모니터링 및 제어하도록 구성된 제어 시스템(140)을 포함한다. 일부 구현예들에서, 로봇(100)은 자율적으로 및/또는 반자율적으로 작동하도록 구성된다. 그러나, 사용자는 또한 로봇(100)에 명령들/지시들을 제공함으로써 로봇(100)을 작동시킬 수 있다. 도시된 예에서, 제어 시스템(140)은 제어기(142)(예를 들어, 데이터 처리 하드웨어) 및 메모리 하드웨어(144)를 포함한다. 제어기(142)는 자체 메모리 하드웨어를 포함하거나, 제어 시스템(140)의 메모리 하드웨어(144)를 이용할 수 있다. 일부 예들에서, 제어 시스템(140)(예를 들어, 제어기(142)를 가짐)은 로봇(100)이 작업 환경(10)에 대해 이동할 수 있게 하기 위해 액추에이터들(A)(예를 들어, 백 액추에이터(들)(AB), 레그 액추에이터(들)(AL), 니 액추에이터(들)(AK), 구동 벨트 액추에이터(들), 회전 액추에이터(들), 엔드-이펙터 액추에이터(들)(AEE) 등)과 통신하도록(예를 들어, 모션을 명령하도록) 구성된다. 제어 시스템(140)은 도시된 구성요소들에 제한되지 않으며, 본 발명의 범위로부터 벗어남이 없이 추가 구성요소들(예를 들어, 전원) 또는 보다 적은 구성요소들을 포함할 수 있다. 구성요소들은 무선 또는 유선 연결들을 통해 통신할 수 있으며, 로봇(100)의 다중 위치들에 걸쳐 분산될 수 있다. 일부 구성들에서, 제어 시스템(140)은 원격 컴퓨팅 디바이스 및/또는 사용자와 인터페이싱한다. 예를 들어, 제어 시스템(140)은 조이스틱, 버튼들, 송신기들/수신기들, 유선 통신 포트들, 및/또는 원격 컴퓨팅 디바이스 및/또는 사용자로부터 입력들을 수신하고 원격 컴퓨팅 디바이스 및/또는 사용자에게 피드백을 제공하기 위한 무선 통신 포트들과 같은, 로봇(100)과 통신하기 위한 다양한 구성요소들을 포함할 수 있다.
[0058] 제어기(142)는 하나 이상의 범용 프로세서들, 디지털 신호 프로세서들, 및/또는 주문형 집적 회로들(ASICs)을 포함할 수 있는 데이터 처리 하드웨어에 대응한다. 일부 구현예들에서, 제어기(142)는 로봇(100)의 하나 이상의 서브시스템들과 함께 특정 동작들을 수행하도록 구성된 특수 제작된 내장형 디바이스(purpose-built embedded device)이다. 메모리 하드웨어(144)는 제어기(142)와 통신하고, 휘발성 및/또는 비휘발성 저장 구성요소들과 같은 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체들을 포함할 수 있다. 예를 들어, 메모리 하드웨어(144)는 서로 통신하는 하나 이상의 물리적 디바이스들과 연관될 수 있고, 광학, 자기, 유기, 또는 다른 유형들의 메모리 또는 스토리지(storage)를 포함할 수 있다. 메모리 하드웨어(144)는, 그 중에서도, 제어기(142)에 의해 실행될 때, 제어기(142)가 균형을 유지하기 위한 로봇(100)의 포즈(P)를 변경하는 동작, 로봇(100)을 조종하는 동작, 물체들을 검출하는 동작, 물체들을 운반하는 동작, 및/또는 작업 환경(10) 내에서 다른 작업들을 수행하는 동작과 같은 수많은 동작들을 수행하게 하는 명령들(예를 들어, 컴퓨터 판독 가능 프로그램 명령들)을 저장하도록 구성된다. 제어기(142)는 센서 시스템(170)과의 직접적 또는 간접적인 상호 작용들에 기초하여 동작들을 수행할 수 있다.
[0059] 센서 시스템(170)은 하나 이상의 센서들(172, 172a 내지 172n)을 포함한다. 센서들(172)은 이미지 센서들(예를 들어, 비전 센서들 또는 지각 센서들), 관성 센서들(예를 들어, 관성 측정 유닛(inertial measurement unit; IMU)), 및/또는 운동학적 센서들을 포함할 수 있다. 이미지 센서들(172)의 일부 예들은 단안 카메라 또는 스테레오 카메라와 같은 카메라, 비행시간(time of flight; TOF) 깊이 센서, 스캐닝 광-검출 및 거리 측정(light-detection and ranging; LIDAR) 센서, 또는 스캐닝 레이저-검출 및 거리 측정(laser-detection and ranging; LADAR) 센서를 포함한다. 보다 일반적으로, 센서들(172)은 힘 센서들, 토크 센서들, 속도 센서들, 가속도 센서들, 포지션 센서들(선형 및/또는 회전 포지션 센서들), 모션 센서들, 위치 센서들, 부하 센서들, 온도 센서들, 터치 센서들, 깊이 센서들, 초음파 범위 센서들, 적외선 센서들, 및/또는 물체 센서들 중 하나 이상을 포함할 수 있다. 일부 예들에서, 센서(172)는 센서(172)에 대응하는 감지 범위 또는 영역을 규정하는 대응하는 시야(들)를 갖는다. 각각의 센서(172)는 센서(172)가, 예를 들어 하나 이상의 축(예를 들어, 지면(12)과 관련하여 x-축, y-축, 또는 z-축)을 중심으로 시야를 변경할 수 있도록 피봇 가능 및/또는 회전 가능할 수 있다. 일부 구현예들에서, 로봇(100)의 본체(110)는 로봇(100) 주위의 모든 방향들에서 센서 데이터(174)를 수집하기 위해 본체 주위에 다수의 센서들(172)을 갖는 센서 시스템(170)을 포함한다. 추가적으로 또는 대안적으로, 센서 시스템(170)의 센서들(172)은 (예를 들어, 본체(110) 상에 장착된 하나 이상의 센서들(172)과 함께) 로봇(100)의 아암(150) 상에 장착될 수 있다. 로봇(100)은 로봇(100) 주위의 작업 환경(10)에 대한 센서 데이터(172)를 생성하기 위해 센서 시스템(170)의 일부로서 임의의 수의 센서들(172)을 포함할 수 있다. 예를 들어, 로봇(100)이 작업 환경(10)에 대해 조종중일 때, 센서 시스템(170)은 관성 측정 데이터(예를 들어, IMU에 의해 측정됨)를 포함하는 로봇(100)에 대한 포즈 데이터를 수집한다. 일부 예들에서, 포즈 데이터는 로봇(100)에 대한 운동학적 데이터 및/또는 배향 데이터를 포함한다.
[0060] 센서(172)로 시야를 조사할 때, 센서 시스템(170)은 시야에 대응하는 센서 데이터(174)(이미지 데이터(174)로도 지칭됨)를 생성한다. 이미지 센서들(172)의 경우, 센서들(172)은 센서 데이터(174)가 시간 간격으로 시야에 대응하는 프레임들(F)을 포함하도록 특정 주파수로 센서 데이터(174)로서 이미지들(176)을 캡처할 수 있다. 센서 시스템(170)이 다수의 이미지 센서들(172)을 포함하는 구성들에서, 센서 시스템(170)은 상이한 유형들의 이미지 데이터(174)가 이미지 처리에 함께 사용될 수 있게 하기 위해 이미지 센서(172)에 대응하는 하나 초과의 시야가 중첩되도록 각각의 센서(172)의 방향(예를 들어, 시야)을 제어하도록 구성될 수 있다. 일부 예들에서, 센서 시스템(170)은 제1 센서(172, 172a)로서 적어도 하나의 단안 카메라, 및 제2 센서(172, 172b)로서 적어도 하나의 깊이 센서(예를 들어, 스테레오 카메라, LIDAR, TOF 등)를 포함한다. 센서들(172a, 172b)은 시야들이 중첩될 수 있다. 시야들을 중첩함으로써, 센서들(172a, 172b)은 작업 환경(10)의 동일한 시야(또는 센서 장착 배치에 따라 거의 동일한 시야)에 대해 동일한 시간 인스턴스(instance)에서, 단안 이미지(즉, 2차원) 및 깊이 이미지(즉, 3차원)를 캡처한다.
[0061] 환경(10)과 관련된 이미지 데이터, 포즈 데이터, 관성 데이터, 운동학적 데이터 등과 같은 센서 시스템(170)에 의해 수집된 센서 데이터(174)는 로봇(100)의 제어 시스템(140)(예를 들어, 제어기(142) 및/또는 메모리 하드웨어(144))에 전달될 수 있다. 일부 예들에서, 센서 시스템(170)은 (예를 들어, 메모리 하드웨어(144), 또는 로봇(100)과 통신하는 원격 리소스들과 관련된 메모리 하드웨어에서) 센서 데이터(174)를 수집 및 저장한다. 다른 예들에서, 센서 시스템(170)은 센서 데이터(174)를 실시간으로 수집하고, 원시(즉, 처리되지 않은) 센서 데이터(174)를 저장하지 않고, 센서 데이터(174)를 처리한다. 또 다른 예들에서, 제어기 시스템(140) 및/또는 원격 리소스들은 처리된 센서 데이터(174) 및 원시 센서 데이터(174) 모두를 저장한다. 센서(172)로부터의 센서 데이터(174)는 로봇(100)의 시스템들이 로봇(100) 주위의 상태들을 검출 및/또는 분석하게 할 수 있다. 예를 들어, 센서 데이터(174)는 제어 시스템(140)이 로봇(100)을 조종하고, 로봇(100)의 포즈(P)를 변경하고, 및/또는 로봇(100)의 기계적 구성요소들을 이동/회전시키기 위한 다양한 액추에이터들(A)을 작동하게 할 수 있다.
[0062] 도 1c와 같은 일부 예들에서, 센서 시스템(170)은 아암(150)의 리스트 조인트(JA3)에 장착되거나 결합된 하나 이상의 센서들(172)을 포함한다. 예를 들어, 리스트 센서(172)는 6축 힘/토크 센서(172)이다. 여기서, 센서(172)는 로봇(100)이 잡고 있는 상자(20)에 대한 힘(들)을 감지한다. 팔레타이저(palletizer)(200)는 로봇(100)이 잡고 있는 상자(20)에 대한 이러한 힘을 사용하여 로봇(100)이 잡고 있는 상자(20)와 하나 이상의 다른 상자들(20) 사이의 상호 작용을 간접적으로 검출한다. 일부 구현예들에서, 팔레타이저(200)는 로봇(100)의 조인트들(J)에 기초하여 로봇(100)이 잡고 있는 상자(20)에 대한 속도를 결정한다(또는 로봇(100)의 다른 시스템들로부터 수신함). 다시 말해서, 센서 시스템(170)에 의해, 로봇(100)은 각 조인트(J) 및 구동 휠(들)(130)에 대응하는 속도를 결정할 수 있다. 이러한 속도들에 기초하여, 로봇(100)은 엔드-이펙터(160)가 상자(20)와 함께 얼마나 빨리 이동하고 있는지를 결정하고, 이것을 사용하여 상자(20)의 속도를 도출한다.
[0063] 일부 구성들에서, 로봇(100)은 힘 감지를 위해 유사한 접근방식을 사용한다. 보다 구체적으로, 로봇(100)은 로봇(100)의 운동학과 하나 이상의 조인트들(J)에 대한 힘들의 조합에 기초하여 엔드-이펙터(160)에서의 힘을 결정할 수 있다. 이러한 접근방식은 로봇(100)의 설계가 속도 및/또는 정밀도를 중시하는 경우에 어려운 것으로 판명될 수 있다. 예를 들어, 숄더 조인트(JA1)와 같은 리스트 조인트(JA3) 이외의 조인트(J)에 기초하여 힘을 결정하는 경우, 엔드-이펙터(160)의 가속은 로봇(100)이 관성 질량의 관성력(예를 들어, 숄더 조인트(JA1)의 경우에, 아암(150)의 관성력) 및 엔드-이펙터(160)에서의 힘을 모두 감지하게 할 것이다. 따라서, 로봇(100)이 계산 리소스들을 최소화하고, 그리고/또는 잠재적인 부정확성들을 방지하고자 하는 경우, 로봇(100)은 엔드-이펙터(160)에 가장 근접한 포지션(예를 들어, 리스트 조인트(JA3))에서 엔드-이펙터(160)에 대한 힘을 감지한다.
[0064] 일부 예들에서, 로봇(100)은 조인트 힘 피드백 제어(joint force feedback control) 및 엔드-이펙터 임피던스 제어(end-effector impedance control)를 사용하여 엔드-이펙터(160) 모션을 순응하게 한다. 예를 들어, 임피던스 제어는 리스트 조인트(JA3)에 장착되거나 연결된 리스트 센서(172)(예를 들어, 엔드-이펙터(160)를 감지함)로부터의 힘 피드백에 따라 증대된다. 여기서, 임피던스 제어는 원하는 엔드-이펙터 포지션 및 측정된 엔드-이펙터 포지션을 입력들로서 포함한다. 선택적으로, 임피던스 제어의 다른 입력들은 원하는 엔드-이펙터 속도 및/또는 가속도뿐만 아니라 측정된 엔드-이펙터 속도 및/또는 가속도를 포함할 수 있다. 이러한 입력들이 주어지면, 임피던스 제어는 원하는 엔드-이펙터 힘을 출력한다. 일부 구현예들에서, 임피던스 제어는 이러한 입력들과 출력들 사이의 관계가 강성(stiffness), 감쇠(dampening) 또는 관성과 같은 스프링-유사 특성들에 대응하도록 구성된다.
[0065] 밀착 패킹 방식으로 상자들(20)의 스택들을 구축하기 위해, 로봇(100)은 로봇(100)이 무언가가 위치된다고 생각하는 곳과 실제로 위치되는 곳 사이의 오차들(즉, 지각 오차들)을 극복해야 한다. 예를 들어, 로봇(100)이 비전 시스템(즉, 비전 기반 센서들(172))을 사용하여 로봇(100)이 잡고 있는 상자(20)의 위치를 식별하거나 팔레트(30) 상에 배치될 상자(20)에 대한 목표 포지션(예를 들어, 목표 상자 위치(202)(도 2a))을 식별하는 경우, 이러한 위치들 모두는 어느 정도의 오차를 겪는다. 로봇(100)의 이러한 지각들에만 의존하는 것은 이러한 오차들을 팔레타이징 동안의 배치 오차들로 전이시킬 것이다. 로봇(100)의 지각에 대한 불확실성들에 대처하기 위해, 로봇(100)은 잡고 있는 상자(20)의 이동들 중 하나 이상을 사용하여 상자(20)에 대한 목표 포지션으로 신중히 나아가도록 구성된다. 대조적으로, 전통적으로 로봇들은 상자(20)가 가야 할 곳에 프로그래밍되고, 로봇은 상자(20)를 해당 포지션에 완고하게 이동시키는 경향이 있다. 이러한 전통적인 접근방식은 로봇(100)이 근처에 있는 다른 상자들을 교란 및/또는 혼란시키기 쉽게 한다.
[0066] 로봇(100)이 잡고 있는 상자(20)는 "파지된 상자(grasped box)(20G)"로 지칭된다. 로봇(100)이 아암(150)의 엔드-이펙터(160)를 사용하여 자체가 상자(20)에 결합할 때, 상자(20)는 로봇(100)에 의해 파지된다. 도 1a에 도시된 바와 같이, 로봇(100)은 파지된 상자(20G)의 상단면(26, 26T)에서 아암(150)의 엔드-이펙터(160)(예를 들어, 엔드-이펙터 액추에이터(AEE))로 상자(20)를 파지한다. 예를 들어, 엔드-이펙터(160)는 엔드-이펙터 액추에이터(AEE)로서의 흡입 컵들에 의한 흡입력을 사용하여 상자(20)를 파지한다. 다른 예들에서, 로봇(100)은 하나 초과의 아암(150)을 가지며, 상자(20)의 측면들(즉, 면들(26))에 대해 서로를 향해 아암(150)을 압착함으로써 적어도 2 개의 아암들(150)로 집합적으로 상자(20)를 파지한다. 파지 접근방식에 관계없이, 팔레타이저(200)는 파지된 상자(20G)를 목표 상자 위치(202)에 배치하여 스택의 상자들(20) 사이의 공간이 최소이거나 전혀 없는 상자들(20)의 스택을 형성하도록 구성된다(예를 들어, 인접한 상자들이 효과적으로 접하거나 정합함).
[0067] 도 2a를 참조하면, 팔레타이저(200)는 포지셔너(positioner)(210) 및 얼라이너(aligner)(220)를 포함한다. 팔레타이저(200)는 파지된 상자(20G)를 배치할 곳의 위치를 식별하는 파지된 상자(20G)에 대한 목표 상자 위치(202)를 수신하도록 구성된다. 목표 상자 위치(202)는 (예를 들어, 팔레트(30) 상의) 상자들(20)의 기존 스택 내에 있거나 상자들(20)의 스택을 시작하기 위한 것일 수 있다. 이상적인 세계에서, 이러한 로봇(100)은 이러한 목표 상자 위치(202)에 파지된 상자(20G)를 배치할 것이고, 이 위치에서의 상자들(20)의 스택은 혼란되지 않을 것이다. 그러나, 지각 오차들, 제어 허용오차들 및/또는 상자 변동으로 인해, 파지된 상자(20G)를 목표 상자 위치(202)로 이동시키는 것은 다른 상자들(20)을 교란시킬 가능성이 있다. 대신에, 팔레타이저(200)는 파지된 상자(20G)가 이웃하는 상자들(20)과 허용 가능한 공간적 관계를 갖는 포지션을 달성하는 때를 체계적으로 자각하려고 시도한다. 일부 예들에서, 팔레타이저(200)는 이웃하는 상자들(20) 사이의 공간이 최소이거나 전혀 없는 것을 허용 가능한 공간적 관계로서 간주한다.
[0068] 포지셔너(210)는 파지된 상자(20G)를 목표 상자 위치(202)에 인접한 초기 포지션(212)에 배치하도록 구성된다. 초기 포지션(212)은 다른 물체(예를 들어, 다른 상자(20))에 의해 점유되지 않은 공간인 것으로 의도된다. 예를 들어, 초기 포지션(212)은 로봇(100)이 파지된 상자(20G)가 다른 상자(20)와 마주칠 때를 정확하게 감지할 수 있도록 점유되지 않은 포지션으로부터 팔레타이징 프로세스를 시작하기 위해 목표 상자 위치(202)로부터 오프셋되어 있다.
[0069] 도 2b 내지 도 2d는 초기 포지션(212)에 있는 파지된 상자(20G)의 예들이다. 일부 구현예들에서, 도 2b에 도시된 바와 같이, 초기 포지션(212)은 제1 방향(예를 들어, y-방향)으로의 오프셋(214) 및 제2 방향(예를 들어, x-방향)으로의 오프셋(214)을 포함한다. 일부 예들에서, 도 2a의 팔레타이저(200)와 같은 로봇(100)의 시스템은 센서 시스템(170)으로부터의 센서 데이터(174)에 기초하여 오프셋들(214)을 결정한다. 센서 데이터(174)에 의해, 로봇(100)은 오프셋(214)이 제1 방향(예를 들어, x-방향)으로의 제1 보상 거리 및 제2 방향(예를 들어, y-방향)으로의 제2 보상 거리라고 결정한다. 여기서, 오프셋들(214)은 로봇(100)의 지각 오차들(예를 들어, 센서 데이터(174)에 기초하는 상자(20)의 지각된 포지션과 상자(20)의 실제 포지션 사이의 차이)을 보상한다. 로봇(100)은 오프셋들(214)을 생성하기 위해 이러한 오차들에 대한 전형적인 값을 결정하도록 구성될 수 있다. 일부 예들에서, 오프셋들(214)은 엔드-이펙터(160)의 포지션, 엔드-이펙터(160)에 대한 상자(20)의 포지션, 및/또는 로봇(100)에 대한 상자들(20)의 스택에 대응하는 상자들(20)의 포지션과 같은 오차들을 고려한다. 로봇(100)이 오차의 양(예를 들어, 오차의 평균 양)에 기초하여 제1 보상 거리 및 제2 보상 거리를 결정하는 경우, 초기 포지션(212)은 제1 방향(예를 들어, x-방향)으로의 제1 오프셋(214, 214a) 및 제2 방향(예를 들어, y-방향)으로의 제2 오프셋(214, 214b)을 포함한다. 각각의 오프셋(214)은 초기 포지션(212)이 점유되지 않는 것을 보장하기 위한 허용오차를 추가로 포함할 수 있다. 다시 말해서, 오프셋들(214)이 각 방향에서의 평균 오차와 전적으로 동일하다면, 초기 포지션(212)은 점유되거나 부분적으로 점유될 수 있다. 예를 들어, 전형적인 오차가 3 ㎝인 경우, 오프셋들(214)은 2 ㎝의 추가 허용오차를 포함하도록 총 5 ㎝일 수 있다.
[0070] 도 2c 및 도 2d를 참조하면, 일부 구성들에서, 포지셔너(210)는 인접한 상자(20)와의 접촉 없이 (z-방향에 대해) 목표 상자 위치(202) 위에 파지된 상자(20G)를 위치결정한다. 파지된 상자(20G)를 목표 상자 위치(202) 위에 호버링 상태(hovering state)로 위치결정함으로써, 팔레타이저(200)는 파지된 상자(20G)가 목표 상자 위치(202)로 이동할 때 파지된 상자(20G)와 다른 상자들(20) 사이의 마찰을 제거할 수 있다. 마찰이 없으면, 로봇(100)은 파지된 상자(20G)와 다른 상자들(20) 사이의 접촉력들을 보다 용이하게 감지할 수 있다. 파지된 상자(20G)는 일정 높이에서 목표 상자 위치(202) 위에 유지될 수 있기 때문에, 얼라이너(220)는 파지된 상자(20G)를 해제하기 전에 파지된 상자(20G)를 하강시킬 수 있다. 얼라이너(220)가 파지된 상자(20G)를 해제하기 전에 파지된 상자(20G)를 하강시키는 양은 (로봇(100)이 파지된 상자(20G)를 들어올리거나/운반하는 동안에 센서들(172)에 기초하여 결정되거나 알려진 경우) 호버링 상태에서의 파지된 상자(20G)의 높이, 로봇(100)의 작동 속도 및/또는 파지된 상자(20G)의 내용물들과 같은 변수들에 따라 달라질 수 있다.
[0071] 계속해서 도 2a 및 도 2c를 참조하면, 포지셔너(210)는 지면(12)(또는 지평면)에 대해 소정 각도로 파지된 상자(20G)를 경사지게 하도록 구성된다. 다시 말해서, 파지된 상자(20G)의 하단면(26, 26B)(즉, 하면(26))은 지면(12)과 각도를 형성한다. 일부 예들에서, 파지된 상자(20G)는 인접한 상자(20)를 향해 상향으로 경사진다. 여기서, 파지된 상자(20G)가 로봇(100)에 의해 해제되었을(R(도 2l)) 때, 이제 해제된 상자(20)는 인접한 상자(20)를 향하여 피봇할 것이며, 그에 따라 피봇하는 상자(20)의 에지(24) 및 면(26)은 (예를 들어, 도 2k 내지 도 2m에 도시된 바와 같이) 인접한 상자(20)의 에지(24) 및 면(26)과 접하여 상자들(20) 사이에 갭을 거의 또는 전혀 야기하지 않을 것이다. 다시 말해서, 로봇(100)이 해제하는 상자(20)의 에지(24)(예를 들어, 도 2i에 도시된 바와 같은 에지(24G))는 인접한 상자(20)의 면(26)을 가이드로서 사용하여, 경사(예를 들어, 해제된 상자(20)와 인접한 상자(20)의 대향하는 면들(26) 사이의 정합 관계)로 인해 목표 상자 위치(202)를 달성할 수 있다. 도 2c 및 도 2d에서와 같은 일부 예들에서, 포지셔너(210)는 파지된 상자(20G)가 초기 포지션(212)에 있거나 초기 포지션(212)에 있기 전에 파지된 상자(20G)를 경사지게 할 수 있다. 다른 예들에서, 포지셔너(210)는 얼라이너(220)가 초기 포지션(212)으로부터 파지된 상자(20G)를 이동할 때 파지된 상자(20G)를 경사지게 한다.
[0072] 계속해서 도 2a를 참조하면, 팔레타이저(200)의 얼라이너(220)는 파지된 상자(20G)를 초기 포지션(212)으로부터 목표 상자 위치(202)로 이동시키도록 구성된다. 파지된 상자(20G)가 목표 상자 위치(202)로 이동하거나 다른 상자들(20)이 허용하는 한 목표 상자 위치(202)에 근접하게 이동했을 때, 얼라이너(220)는 (예를 들어, 도 2k 내지 도 2m에 도시된 바와 같이) 파지된 상자(20G)를 해제하여 파지된 상자(20G)를 제자리에 안착시킨다. 일부 예들에서, 얼라이너(220)는 목표 상자 위치(202) 근처에서 또는 목표 상자 위치(202)에서 정렬 포지션(222)을 달성하기 위해 2 개의 별개의 모션들로 파지된 상자(20G)를 이동시킨다. 예를 들어, 도 2e 내지 도 2g는 파지된 상자(20G)를 제1 방향(D1)으로(예를 들어, y-방향을 따라) 시프팅시키는 얼라이너(220)를 도시하는 한편, 도 2h 내지 도 2j는 파지된 상자(20G)를 제2 방향(D2)(예를 들어, x-방향)으로 시프팅시키는 얼라이너(220)를 도시한다. 일부 예들에서, 제1 방향(D1)은 제2 방향(D2)에 수직이다. 일부 구현예들에서, 얼라이너(220)는 제1 방향의 성분 및 제2 방향의 성분을 갖는 이동 벡터를 따라 파지된 상자(20G)를 이동시킨다(예를 들어, 얼라이너(220)는 파지된 상자(20G)를 x-y 평면에서 소정 각도로 이동시킴). 추가적으로 또는 대안적으로, 작업 환경(10)은 3차원 공간이기 때문에, 이동 벡터는 제3 방향을 포함할 수 있다(예를 들어, 이동 벡터는 z-방향의 성분을 포함함). 따라서, 도 2b 내지 도 2j는 얼라이너(220)가 각 방향으로 순차적으로 이동할 수 있음을 나타낸다고 하더라도, 얼라이너(220)는 파지된 상자(20G)를 방향들의 임의의 순서로, 그리고/또는 3차원 공간의 모든 방향들로 동시에 시프팅시키도록 구성될 수 있다. 얼라이너(220)가 파지된 상자(20G)를 주어진 방향으로 이동시킬 때, 팔레타이저(200) 및/또는 얼라이너(220)가 이동 동안에 모니터링하는 몇 개의 조건들이 있다.
[0073] 일부 예들에서, 얼라이너(220)는 파지된 상자(20G)가 정렬 포지션(222)에 도달할 때까지 파지된 상자(20G)를 이동시킨다. 예시하기 위해, 도 2b 내지 도 2d로부터 도 2e 내지 도 2g까지, 얼라이너(220)는 파지된 상자(20G)를 초기 포지션(212)(도 2b)으로부터 제1 정렬 포지션(222a)(도 2e 내지 도 2g)까지 이동시켰다. 일부 예들에서, 얼라이너(220)가 파지된 상자(20G)를 초기 포지션(212)으로부터 제1 방향(D1)으로 제1 정렬 포지션(222, 222a)까지 시프팅시킬 때, 얼라이너(220)는 제1 정렬 포지션(222a)이 임계 제1 정렬 거리(224, 224a)(예를 들어, 도 2e에 도시됨)를 충족시키는지 여부를 결정한다. 임계 제1 정렬 거리(224a)는 얼라이너(220)가 파지된 상자(20G)를 주어진 방향으로 이동시킬 수 있는 유한한 거리에 대응한다. 유한한 거리에 의해, 팔레타이저(200)는 파지된 상자(20G)가 목표 상자 위치(202)로부터 너무 멀리 벗어나는 것을 방지한다. 예를 들어, 유한한 거리가 없으면, 로봇(100)은 접촉력 또는 특정 속도가 파지된 상자(20G)의 이동을 정지시키기를 기다리는 동안 파지된 상자(20G)를 완전히 상자들(20)의 스택 밖으로 이동시킬 수 있다. 유한한 거리는 또한 파지된 상자(20G)를 이동시킬 때 얼라이너(220)가 오정렬을 악화시키는 것을 방지할 수 있다. 예를 들어, 상자들(20)의 스택 상의 상자(20)는 이상적인 위치로부터의 큰 오프셋을 가질 수 있다. 얼라이너(220)가 큰 오프셋으로 포지션을 벗어난 상자(20)와 접하도록 파지된 상자(20G)를 이동시킨다면, 파지된 상자(20G)도 오정렬을 공유할 것이다. 일부 예들에서, 임계 정렬 거리(224)는 얼라이너(220)가 파지된 상자(20G)를 이동시키도록 허용되는 최대 이동 거리에 대응한다.
[0074] 도 2h 내지 도 2j를 참조하면, 얼라이너(220)는 파지된 상자(20G)를 제1 정렬 포지션(222a)(도 2e 내지 도 2g에 도시됨)으로부터 제2 방향(D2)으로 목표 상자 위치(202)까지(또는 허용되는 경우 목표 상자 위치(202) 근처로) 시프팅시킨다. 얼라이너(220)가 파지된 상자(20G)를 제1 정렬 포지션(222)으로부터 제2 방향(D2)으로 목표 상자 위치(202)까지 시프팅시킬 때, 얼라이너(220)는 목표 상자 위치(202)까지의 이동이 임계 제2 정렬 거리(224, 224b)(예를 들어, 도 2h에 도시됨)를 충족시키는지 여부를 결정한다. 일부 예들에서, 임계 제2 정렬 거리(224b)는 임계 제1 정렬 거리(224a)와 동일한 크기를 갖는다. 다른 예들에서, 이러한 임계 정렬 거리들(224)은 상자(20)의 형상으로 인해 상이하다. 예를 들어, 각각의 상자(20)는 세장형의 직각 프리즘일 수 있으며, 그에 따라 직각 프리즘의 길이를 따른 임계 정렬 거리(224)는 직각 프리즘의 폭에 대응하는 임계 정렬 거리(224)보다 크다.
[0075] 얼라이너(220)에 의한 이동 동안, 파지된 상자(20G)는 임계 정렬 거리(224)가 발생하기 전에 다른 조건들을 달성할 수 있다. 예를 들어, 팔레타이저(200)는 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)로 인해 파지된 상자(20G)가 이동을 정지시켜야 한다는 것(즉, 제1 정렬 포지션(222) 또는 목표 상자 위치(202)를 달성함)을 감지할 수 있다. 다시 말해서, 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)는 파지된 상자(20G)가 인접한 상자(20)에 의해 유발된 저항을 만났음을 나타낸다. 여기서, 팔레타이저(200)는 파지된 상자(20G)와 인접한 상자(20)가 상자들(20)을 적층하기 위한 허용 가능한 공간적 관계를 형성하도록(예를 들어, 파지된 상자(20G)가 인접한 상자(20)를 제 포지션으로부터 벗어나게 하지 않고, 그리고/또는 운반에 유해한 갭들이 없음) 비파괴적인 완전 비탄성 충돌을 이상적으로 유발하기를 원한다. 이와 같이, 임계 접촉력(Fthresh)은 파지된 상자(20G)가 팔레타이징 동안 적어도 하나의 인접한 상자(20)와 접촉을 개시했지만 힘의 크기가 적어도 하나의 인접한 상자(20)를 크게 교란시키지 않았다는 것(예를 들어, 정지 마찰력을 극복할 정도로 충분한 크기가 아님)을 나타내는 힘의 크기를 지칭한다. 유사한 관점에서, 임계 속도(vthresh)는 로봇(100)이 (예를 들어, 엔드-이펙터(160)에 의해) 이동력을 발생하지만, 파지된 상자(20G)가 인접한 상자(20)에 의해 유발된 저항으로 인해 더 이상 이동하지 않는다는 것을 나타내는 속도를 지칭한다. 예를 들어, 임계 속도(vthresh)는 파지된 상자(20G)에 의한 이동의 결여를 나타내도록 0(zero)으로 설정된다. 일부 예들에서, 임계 접촉력(Fthresh) 및/또는 임계 속도(vthresh)는 벡터들로서 표현된다. 벡터들로서, 팔레타이저(200)는 (예를 들어, 3차원 작업 환경에서의) 이러한 벡터들의 총 크기, 또는 이러한 벡터들의 성분(예를 들어, 얼라이너(220)가 파지된 상자(20G)를 현재 이동시키고 있는 방향의 성분)을 사용하여 이러한 임계치들이 충족되는지 여부를 결정할 수 있다.
[0076] 일부 예들에서, 임계 접촉력(Fthresh)의 크기는 작업 특정적이다. 예를 들어, 로봇(100)은 함께 적층된 상자들(20) 및 이러한 상자들(20)에 관한 정보를 나타내는 명령들을 수신한다. 여기서, 정보는 각 상자(20)의 중량을 포함할 수 있다. 다른 유형들의 정보는 로봇(100)이 팔레타이징 동안 상자들(20) 사이의 마찰 계수들을 고려할 수 있도록 상자 자체에 대한 재료 유형(예를 들어, 표준 골판지 상자 또는 표면 코팅 상자)을 포함한다. 정보에 기초하여, 로봇(100)은 임계 접촉력(Fthresh)을 설정할 수 있다. 예를 들어, 팔레타이저(200)는 이전에 배치된 상자들(20)을 이동시킬 것으로 예상되는 힘(F)보다 작은, 로봇(100)이 상자(20)에 가할 수 있는 최대 힘에 대응하도록 임계 접촉력(Fthresh)을 설정한다. 일부 구현예들에서, 로봇(100)의 센서들(172)은 이전에 배치된 각 상자(20)의 중량을 결정하고, 결정된 중량을 사용하여 임계 접촉력(Fthresh)을 설정한다. 일부 예들에서, 팔레타이저(200)는 임피던스 제어 및 힘 피드백 제어의 조합을 사용하여 로봇(100)이 상자(20)에 가하는 힘들을 능동적으로 제한한다(즉, 임계 접촉력(Fthresh)을 설정함). 예를 들어, 로봇(100)은 임피던스 제어로부터의 원하는 엔드-이펙터 힘을 이전에 배치된 상자들(20)을 이동시킬 것으로 예상되는 힘(예를 들어, 질량, 마찰 계수들 등과 같은 이전에 배치된 상자들(20)의 물리적 특성들을 고려함)보다 작게 제한한다. 원하는 엔드-이펙터 힘을 제한함으로써, 임피던스 제어는 로봇(100)이 파지된 상자(20G)에 가하는 힘의 양을 제한하고, 따라서 파지된 상자(20G)가 인접한 상자(20)와 접촉할 때 파지된 상자(20G)가 전달할 수 있는 힘을 제한한다. 다른 접근방식들에서, 팔레타이저(200)는 팔레트(30) 상에 배치된 상자들(20) 또는 기존의 상자들(20)에 부여된 에너지의 양이 배치된 상자들(20)을 이동시키지 않거나 배치된 상자들(20)을 허용 가능한 거리만큼만 이동시킬 수 있도록 엔드-이펙터(160) 및 파지된 상자(20G)의 운동 에너지를 제한한다. 이러한 조건은 로봇(100)이 파지된 상자(20G)와 다른 상자(20) 사이의 접촉을 검출하지 못한 경우일 수 있다. 여기서, 허용 가능한 거리는 또한 마찰에 의해 소산될 에너지의 양을 고려할 수 있다(예를 들어, 로봇(100)은 상자 재료 및/또는 상자들(20) 사이의 마찰 계수를 인식하고 있음).
[0077] 일부 예들에서, 팔레타이저(200)는 얼라이너(220)가 파지된 상자(20G)를 이동시킬 때 접촉 검출 동안에 이전에 배치된 상자들(20)을 고려하도록 구성된다. 이전에 배치된 상자들(20)을 고려함으로써, 팔레타이저(200)는 잠재적으로 접촉 감도를 증가시킬 수 있다. 다시 말해서, 팔레타이저(200)는 파지된 상자(20G)와 다른 상자들(20) 사이의 알려진 근접성들을 이용할 수 있다. 팔레타이저(200)는 파지된 상자(20G)에 의해 경험되는 힘(예를 들어, 엔드-이펙터(160)에 대한 리스트 조인트(JA3)에서 경험됨) 및/또는 로봇(100)이 이전에 배치된 상자들(20)에 대해 갖는 지식에 기초하여 파지된 상자(20G)의 속도에 가중치를 적용함으로써 증가된 감도를 달성할 수 있다. 예를 들어, 접촉이 예상되는 경우, 팔레타이저(200)는 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)를 특정 가중치만큼 변경할 수 있다. 일부 예들에서, 특정 가중치는 팔레타이저(200)에 대한 접촉 신뢰도를 나타내는 확률 분포에 대응할 수 있다.
[0078] 일부 예들에서, 팔레타이저(200)는 얼라이너(220)가 파지된 상자(20G)를 주어진 방향으로 이동시키는 임계 기간(Tthresh)을 포함한다. 여기서, 이러한 조건은 얼라이너(220)가 파지된 상자(20G)를 임계 정렬 거리(224)를 충족시킬 정도로 충분히 이동시키지 않을 뿐만 아니라, 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)를 경험하지 않는다는 사실을 고려할 수 있다. 이러한 시나리오에서, 얼라이너(220)는 상자들(20) 사이의 잠재적인 교란들을 최소화하기 위해 파지된 상자(20G)의 이동을 정지시키도록 구성된다. 이러한 임계 기간(Tthresh)은 팔레타이저(200)가 센서(172)에서 약간의 노이즈를 경험하거나 그렇지 않으면 다른 상자(20)와의 접촉을 검출하지 못하는 경우에 유리할 수 있다. 이것이 일어나는 경우, 임계 기간(Tthresh)은 접촉이 임계 기간(Tthresh) 동안에만 존재하기 때문에 검출 결여에 의해 유발되는 문제들을 최소화하기 위한 설정 시간이다.
[0079] 도 3은 상자들(20)을 팔레타이징하기 위한 방법(300)의 일 예이다. 동작(302)에서, 방법(300)은 로봇에 의해 잡혀진 상자(20G)에 대한 목표 상자 위치(202)를 수신한다. 상자(20G)는 상단면(26T), 하단면(26B) 및 측면들(26)을 갖는다. 동작(304)에서, 방법(300)은 목표 상자 위치(202)에 인접한 초기 포지션(212)에 상자(20G)를 위치결정한다. 동작(306)에서, 방법(300)은 지평면(12)에 대해 소정 각도로 상자(20G)를 경사지게 한다. 여기서, 각도는 지평면(12)과 상자(20G)의 하단면(26B) 사이에 형성된다. 동작(308)에서, 방법(300)은 초기 포지션(212)으로부터 제1 방향(D1)으로 임계 제1 정렬 거리(224a)를 충족시키는 제1 정렬 포지션(222a)까지 상자(20)를 시프팅시킨다. 동작(310)에서, 방법(300)은 제1 정렬 포지션(222a)으로부터 제2 방향(D2)으로 임계 제2 정렬 거리(224b)를 충족시키는 목표 상자 위치(202)까지 상자(20G)를 시프팅시킨다. 동작(312)에서, 방법(300)은 로봇(100)으로부터 상자(20G)를 해제한다. 여기서, 상자(20G)의 해제는 상자(20G)가 목표 상자 위치(202)의 경계 에지를 향해 피봇하게 한다.
[0080] 일부 구현예들에서, 상자(20G)를 초기 포지션(212)으로부터 제1 방향(D1)으로 제1 정렬 포지션(222a)까지 시프팅시키는 것은, 제1 정렬 거리(224a)를 충족시키기 전에, 상자(20G)가 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)를 경험한다고 결정하는 것을 포함한다. 이러한 구현예들에서, 상자(20G)를 제1 정렬 포지션(222a)으로부터 제2 방향(D2)으로 목표 상자 위치(202)까지 시프팅시키는 것은 또한, 임계 제2 정렬 거리(224b)를 충족시키기 전에, 상자(20G)가 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)를 경험한다고 결정하는 것을 포함한다. 일부 예들에서, 임계 제1 정렬 거리(224a) 또는 임계 제2 정렬 거리(224b)를 충족시키기 전에, 방법(300)은 상자(20G)가 임계 기간(Tthresh) 동안 제1 방향(D1) 또는 제2 방향(D2) 중 대응하는 하나의 방향으로 이동했다고 결정한다.
[0081] 도 4는 본 명세서에 설명된 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 디바이스(400)의 개략도이다. 컴퓨팅 디바이스(400)는 랩탑들, 데스크탑들, 워크스테이션들, 개인용 정보 단말기들, 서버들, 블레이드 서버들(blade servers), 메인프레임들(mainframes) 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 본원에 나타낸 구성요소들, 이들의 연결들 및 관계들, 및 이들의 기능들은 단지 예시적인 것이며, 본 명세서에서 설명 및/또는 청구된 발명들의 구현예들을 제한하려는 것은 아니다.
[0082] 컴퓨팅 디바이스(400)는 프로세서(410)(예를 들어, 데이터 처리 하드웨어), 메모리(420)(예를 들어, 메모리 하드웨어), 저장 디바이스(430), 메모리(420) 및 고속 확장 포트들(450)에 연결되는 고속 인터페이스/제어기(440), 저속 버스(470) 및 저장 디바이스(430)에 연결되는 저속 인터페이스/제어기(460)를 포함한다. 구성요소들(410, 420, 430, 440, 450 및 460) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 장착되거나 적절하게 다른 방식들로 장착될 수 있다. 프로세서(410)는, 고속 인터페이스(440)에 연결된 디스플레이(480)와 같은 외부 입/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 표시하기 위해, 메모리(420) 또는 저장 디바이스(430)에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(400) 내에서 실행하기 위한 명령들을 처리할 수 있다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 메모리 유형들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(400)이 연결될 수 있으며, 각각의 디바이스는 (예를 들어, 서버 뱅크(server bank), 블레이드 서버들의 그룹, 또는 다중 프로세서 시스템으로서) 필요한 동작들의 일부들을 제공한다.
[0083] 메모리(420)는 컴퓨팅 디바이스(400) 내에 비일시적으로 정보를 저장한다. 메모리(420)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비휘발성 메모리 유닛(들)일 수 있다. 비일시적 메모리(420)는 컴퓨팅 디바이스(400)에 의한 사용을 위해 임시적 또는 영구적으로 프로그램들(예를 들어, 명령들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(ROM)/프로그램 가능 판독 전용 메모리(PROM)/소거 가능한 프로그램 가능 판독 전용 메모리(EPROM)/전자적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어에 사용됨)를 포함하지만 이에 제한되지 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 상변화 메모리(PCM)뿐만 아니라, 디스크들 또는 테이프들을 포함하지만 이에 제한되지 않는다.
[0084] 저장 디바이스(430)는 컴퓨팅 디바이스(400)를 위한 대용량 스토리지를 제공할 수 있다. 일부 구현예들에서, 저장 디바이스(430)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현예들에서, 저장 디바이스(430)는, 스토리지 영역 네트워크(storage area network) 내의 디바이스들 또는 다른 구성들을 포함하는, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이일 수 있다. 추가 구현예들에서, 컴퓨터 프로그램 제품은 정보 캐리어(information carrier)에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(420), 저장 디바이스(430), 또는 프로세서(410) 상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
[0085] 고속 제어기(440)는 컴퓨팅 디바이스(400)에 대한 대역폭 집약적 동작들(bandwidth-intensive operations)을 관리하는 한편, 저속 제어기(460)는 보다 낮은 대역폭 집약적 동작들을 관리한다. 임무들(duties)의 그러한 할당은 단지 예시적인 것일 뿐이다. 일부 구현예들에서, 고속 제어기(440)는 메모리(420)에, (예를 들어, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(480)에, 그리고 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(450)에 연결된다. 일부 구현예들에서, 저속 제어기(460)는 저장 디바이스(430) 및 저속 확장 포트(490)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(490)는 하나 이상의 입/출력 디바이스들, 예컨대 키보드, 포인팅 디바이스, 스캐너, 또는, 예를 들어 네트워크 어댑터를 통해, 스위치 또는 라우터(router)와 같은 네트워킹 디바이스에 결합될 수 있다.
[0086] 컴퓨팅 디바이스(400)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(400)는 표준 서버(400a)로서 또는 그러한 서버들(400a)의 그룹에 여러 번 구현되거나, 랩톱 컴퓨터(400b)로서, 또는 랙 서버 시스템(rack server system)(400c)의 일부로서 구현될 수 있다.
[0087] 본원에 설명된 시스템들 및 기술들의 다양한 구현예들은 디지털 전자 및/또는 광 회로, 집적 회로, 특수 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현예들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들로부터 데이터 및 명령들을 송신하도록 결합된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현예를 포함할 수 있다.
[0088] 이러한 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그램 가능한 프로세서에 대한 기계 명령들을 포함하고, 고급 절차 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에 사용된 바와 같이, 용어 "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"는 기계 판독 가능 신호로서 기계 명령들을 수신하는 기계 판독 가능 매체를 포함하는 프로그램 가능 프로세서에 기계 명령들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 비일시적 컴퓨터 판독 가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광 디스크들, 메모리, 프로그램 가능 논리 디바이스들(PLDs))를 지칭한다. 용어 "기계 판독 가능 신호"는 기계 명령들 및/또는 데이터를 프로그램 가능한 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다.
[0089] 본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령들을 수행하기 위한 프로세서, 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어 자기 디스크들, 광자기 디스크들 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나, 또는 둘 모두를 수행하도록 작동적으로 결합된다. 그러나, 컴퓨터가 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체들은, 예로서, 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
[0090] 사용자와의 상호 작용을 제공하기 위해, 본 개시의 하나 이상의 양태들은 디스플레이 디바이스, 예를 들어, CRT(cathode ray tube), LCD(liquid crystal display) 모니터, 또는 정보를 사용자에게 표시하기 위한 터치 스크린, 및 선택적으로, 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼(trackball)을 갖는 컴퓨터에서 구현될 수 있다. 사용자와 상호 작용을 또한 제공하기 위해 다른 종류들의 디바이스들이 사용될 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각적 피드백, 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성(speech) 또는 촉각 입력을 포함하여, 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자가 사용하는 디바이스로 문서들을 전송하고 디바이스로부터 문서를 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 사용자와 상호 작용할 수 있다.
[0091] 다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 개시의 사상 및 범위로부터 벗어남이 없이 다양한 변형들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현예들은 하기의 청구범위의 범위 내에 있다.

Claims (26)

  1. 방법으로서,
    로봇(100)의 데이터 처리 하드웨어(data processing hardware)(142)에서, 상기 로봇(100)에 의해 잡혀진 상자(20)에 대한 목표 상자 위치(202)를 수신하는 단계 ― 상기 상자(20)는 상단면(26, 26T), 하단면(26, 26B) 및 측면들(26)을 가짐 ―;
    상기 로봇(100)에 의해, 상기 목표 상자 위치(202)에 인접한 초기 포지션(212)에 상기 상자(20)를 위치결정하는 단계;
    상기 로봇(100)에 의해, 지평면(ground plane)(12)에 대해 소정 각도로 상기 상자(20)를 경사지게 하는 단계 ― 상기 각도는 상기 지평면(12)과 상기 상자(20)의 하단면 사이에 형성됨 ―;
    상기 로봇(100)에 의해, 상기 초기 포지션(212)으로부터 제1 방향(D1)으로 임계 제1 정렬 거리(224, 224a)를 충족시키는 제1 정렬 포지션(222, 222a)까지 상기 상자(20)를 시프팅시키는 단계;
    상기 로봇(100)에 의해, 상기 제1 정렬 포지션(222, 222a)으로부터 제2 방향(D2)으로 임계 제2 정렬 거리(224, 224b)를 충족시키는 상기 목표 상자 위치(202)까지 상기 상자(20)를 시프팅시키는 단계; 및
    상기 로봇(100)에 의해, 상기 로봇(100)으로부터 상기 상자(20)를 해제하는 단계 ― 상기 상자(20)의 해제는 상기 상자(20)가 상기 목표 상자 위치(202)의 경계 에지(24)를 향해 피봇하게 함 ―;를 포함하는,
    방법.
  2. 제1 항에 있어서,
    상기 제2 방향(D2)은 상기 제1 방향(D1)에 수직인,
    방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 초기 포지션(212)은 상기 목표 상자 위치(202)로부터 상기 제1 방향(D1) 및 상기 제2 방향(D2)으로의 오프셋(offset)(214)을 포함하는,
    방법.
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 데이터 처리 하드웨어(142)에서, 상기 로봇(100)의 비전 시스템(vision system)으로부터 센서 데이터(174)를 수신하는 단계; 및
    상기 데이터 처리 하드웨어(142)에 의해, 상기 제1 방향(D1)으로의 제1 보상 거리 및 상기 제2 방향(D2)으로의 제2 보상 거리를 결정하는 단계 ― 상기 제1 보상 거리 및 상기 제2 보상 거리는 상기 센서 데이터(174)에 기초하여 상기 상자(20)의 실제 포지션 및 상기 상자(20)의 지각된 포지션 사이의 차이를 보상하며, 상기 초기 포지션(212)은,
    상기 제1 보상 거리에 기초하는 상기 목표 상자 위치(202)로부터 상기 제1 방향(D1)으로의 제1 오프셋(214, 214a); 및
    상기 제2 보상 거리에 기초하는 상기 목표 상자 위치(202)로부터 상기 제2 방향(D2)으로의 제2 오프셋(214, 214b)을 포함함 ―;를 더 포함하는,
    방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 초기 포지션(212)으로부터 상기 제1 방향(D1)으로 상기 제1 정렬 포지션(222, 222a)까지 상기 상자(20)를 시프팅시키는 단계는, 상기 임계 제1 정렬 거리(224, 224a)를 충족시키기 전에, 상기 상자(20)가 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)를 경험한다고 결정하는 단계를 포함하며;
    상기 제1 정렬 포지션(222, 222a)으로부터 상기 제2 방향(D2)으로 상기 목표 상자 위치(202)까지 상기 상자(20)를 시프팅시키는 단계는, 상기 임계 제2 정렬 거리(224, 224b)를 충족시키기 전에, 상기 상자(20)가 상기 임계 접촉력(Fthresh) 또는 상기 임계 속도(vthresh)를 경험한다고 결정하는 단계를 포함하는,
    방법.
  6. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 임계 제1 정렬 거리(224, 224a) 또는 상기 임계 제2 정렬 거리(224, 224b)를 충족시키기 전에, 상기 상자(20)가 임계 기간(Tthresh) 동안에 상기 제1 방향(D1) 또는 상기 제2 방향(D2) 중 대응하는 하나의 방향으로 이동했다고 결정하는 단계를 포함하는,
    방법.
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 초기 포지션(212)에 상기 상자(20)를 위치결정하는 단계는, 인접한 상자(20)와의 접촉 없이 상기 목표 상자 위치(202) 위에 상기 상자(20)를 유지하는 단계를 포함하는,
    방법.
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 로봇(100)으로부터 상기 상자(20)를 해제하는 단계는, 상기 상자(20)가 하나 이상의 인접한 상자들(20)에 접하게 하는,
    방법.
  9. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    상기 목표 상자 위치(202)는 복수의 상자들(20)을 지지하도록 구성된 팔레트(pallet)(30) 상에 위치되는,
    방법.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 로봇(100)은 상기 상자(20)를 파지하도록 구성된 엔드-이펙터(end-effector)(160)를 갖는 매니퓰레이터 아암(manipulator arm)(150)을 포함하는,
    방법.
  11. 제10 항에 있어서,
    상기 엔드-이펙터(160)는 상기 상자(20)를 파지하기 위한 흡입력을 인가하도록 구성된 복수의 흡입 컵들(suction cups)을 포함하는,
    방법.
  12. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 로봇(100)은,
    제1 단부 부분(112), 제2 단부 부분(114) 및 복수의 조인트들(joints)(J)을 갖는 역진자 본체(inverted pendulum body)(110);
    상기 복수의 조인트들(J) 중 제1 조인트(J, JA1)에서 상기 역진자 본체(110)에 결합되고, 상기 상자(20)를 파지하도록 구성된 엔드-이펙터(160)를 포함하는 아암(arm)(150);
    제1 및 제2 단부들(122, 124)을 갖는 적어도 하나의 레그(leg)(120) ― 상기 제1 단부(122)는 상기 복수의 조인트들(J) 중 제2 조인트(J, JH)에서 상기 역진자 본체(110)에 결합됨 ―; 및
    상기 적어도 하나의 레그(120)의 제2 단부(124)에 회전 가능하게 결합되고, 상기 지평면(12)과의 롤링 접촉(rolling contact)에 따라 상기 로봇(100)을 이동시키도록 구성된 구동 휠(drive wheel)(130)을 포함하는,
    방법.
  13. 제12 항에 있어서,
    상기 적어도 하나의 레그(120)는,
    제1 및 제2 단부들(122, 124)을 갖는 우측 레그(120, 120a) ― 상기 우측 레그(120, 120a)의 제1 단부(122)는 상기 역진자 본체(110)의 제2 단부 부분(114)에 프리즘식으로 결합되고, 상기 우측 레그(120, 120a)는 상기 우측 레그(120, 120a)의 제2 단부(124)에 회전 가능하게 결합된 우측 구동 휠(130, 130a)을 가짐 ―; 및
    제1 및 제2 단부들(122, 124)을 갖는 좌측 레그(120, 120b) ― 상기 좌측 레그(120, 120b)의 제1 단부(122)는 상기 역진자 본체(110)의 제2 단부 부분(114)에 프리즘식으로 결합되고, 상기 좌측 레그(120, 120b)는 상기 좌측 레그(120, 120b)의 제2 단부(124)에 회전 가능하게 결합된 좌측 구동 휠(130, 130b)을 가짐 ―;를 포함하는,
    방법.
  14. 제12 항에 있어서,
    상기 로봇(100)은 상기 역진자 본체(110) 상에 배치되고 상기 역진자 본체(110)에 대해 이동하도록 구성된 카운터-밸런스 본체(counter-balance body)(110, 110b)를 더 포함하는,
    방법.
  15. 로봇(100)으로서,
    하나 이상의 조인트들(J)을 포함하는 본체(110);
    상기 하나 이상의 조인트들(J) 중 제1 조인트(J, JA1)에서 상기 본체(110)에 결합되고, 엔드-이펙터(160)를 포함하는 아암(150);
    데이터 처리 하드웨어(142); 및
    상기 데이터 처리 하드웨어(142)와 통신하는 메모리 하드웨어(memory hardware)(144)를 포함하며, 상기 메모리 하드웨어(144)는, 상기 데이터 처리 하드웨어(142) 상에서 실행될 때, 상기 데이터 처리 하드웨어(142)가 동작들을 수행하게 하는 명령들을 저장하고, 상기 동작들은,
    상기 로봇(100)에 의해 잡혀진 상자(20)에 대한 목표 상자 위치(202)를 수신하는 동작 ― 상기 상자(20)는 상단면(26, 26T), 하단면(26, 26B) 및 측면들(26)을 가짐 ―;
    상기 목표 상자 위치(202)에 인접한 초기 포지션(212)에 상기 상자(20)를 위치결정하도록 상기 로봇(100)에 명령하는 동작;
    지평면(12)에 대해 소정 각도로 상기 상자(20)를 경사지게 하도록 상기 로봇(100)에 명령하는 동작 ― 상기 각도는 상기 지평면(12)과 상기 상자(20)의 하단면 사이에 형성됨 ―;
    상기 초기 포지션(212)으로부터 제1 방향(D1)으로 임계 제1 정렬 거리(224, 224a)를 충족시키는 제1 정렬 포지션(222, 222a)까지 상기 상자(20)를 시프팅시키도록 상기 로봇(100)에 명령하는 동작;
    상기 제1 정렬 포지션(222, 222a)으로부터 제2 방향(D2)으로 임계 제2 정렬 거리(224, 224b)를 충족시키는 상기 목표 상자 위치(202)까지 상기 상자(20)를 시프팅시키도록 상기 로봇(100)에 명령하는 동작; 및
    상기 로봇(100)으로부터 상기 상자(20)를 해제하도록 상기 로봇(100)에 명령하는 동작 ― 상기 상자(20)의 해제는 상기 상자(20)가 상기 목표 상자 위치(202)의 경계 에지(24)를 향해 피봇하게 함 ―;을 포함하는,
    로봇.
  16. 제15 항에 있어서,
    상기 제2 방향(D2)은 상기 제1 방향(D1)에 수직인,
    로봇.
  17. 제15 항 또는 제16 항에 있어서,
    상기 초기 포지션(212)은 상기 목표 상자 위치(202)로부터 상기 제1 방향(D1) 및 상기 제2 방향(D2)으로의 오프셋(214)을 포함하는,
    로봇.
  18. 제15 항 내지 제17 항 중 어느 한 항에 있어서,
    상기 동작들은,
    상기 로봇(100)의 비전 시스템으로부터 센서 데이터(174)를 수신하는 동작; 및
    상기 제1 방향(D1)으로의 제1 보상 거리 및 상기 제2 방향(D2)으로의 제2 보상 거리를 결정하는 동작 ― 상기 제1 보상 거리 및 상기 제2 보상 거리는 상기 센서 데이터(174)에 기초하여 상기 상자(20)의 실제 포지션 및 상기 상자(20)의 지각된 포지션 사이의 차이를 보상하며, 상기 초기 포지션(212)은,
    상기 제1 보상 거리에 기초하는 상기 목표 상자 위치(202)로부터 상기 제1 방향(D1)으로의 제1 오프셋(214, 214a); 및
    상기 제2 보상 거리에 기초하는 상기 목표 상자 위치(202)로부터 상기 제2 방향(D2)으로의 제2 오프셋(214, 214b)을 포함함 ―;을 더 포함하는,
    로봇.
  19. 제15 항 내지 제18 항 중 어느 한 항에 있어서,
    상기 초기 포지션(212)으로부터 상기 제1 방향(D1)으로 상기 제1 정렬 포지션(222, 222a)까지 상기 상자(20)를 시프팅시키는 동작은, 상기 임계 제1 정렬 거리(224, 224a)를 충족시키기 전에, 상기 상자(20)가 임계 접촉력(Fthresh) 또는 임계 속도(vthresh)를 경험한다고 결정하는 동작을 포함하며;
    상기 제1 정렬 포지션(222, 222a)으로부터 상기 제2 방향(D2)으로 상기 목표 상자 위치(202)까지 상기 상자(20)를 시프팅시키는 동작은, 상기 임계 제2 정렬 거리(224, 224b)를 충족시키기 전에, 상기 상자(20)가 상기 임계 접촉력(Fthresh) 또는 상기 임계 속도(vthresh)를 경험한다고 결정하는 동작을 포함하는,
    로봇.
  20. 제15 항 내지 제18 항 중 어느 한 항에 있어서,
    상기 임계 제1 정렬 거리(224, 224a) 또는 상기 임계 제2 정렬 거리(224, 224b)를 충족시키기 전에, 상기 동작들은 상기 상자(20)가 임계 기간(Tthresh) 동안에 상기 제1 방향(D1) 또는 상기 제2 방향(D2) 중 대응하는 하나의 방향으로 이동했다고 결정하는 동작을 포함하는,
    로봇.
  21. 제15 항 내지 제20 항 중 어느 한 항에 있어서,
    상기 초기 포지션(212)에 상기 상자(20)를 위치결정하는 동작은 인접한 상자(20)와의 접촉 없이 상기 목표 상자 위치(202) 위에 상기 상자(20)를 유지하는 동작을 포함하는,
    로봇.
  22. 제15 항 내지 제21 항 중 어느 한 항에 있어서,
    상기 로봇(100)으로부터 상기 상자(20)를 해제하는 동작은 상기 상자(20)가 하나 이상의 인접한 상자들(20)에 접하게 하는,
    로봇.
  23. 제15 항 내지 제22 항 중 어느 한 항에 있어서,
    상기 목표 상자 위치(202)는 복수의 상자들(20)을 지지하도록 구성된 팔레트(pallet)(30) 상에 위치되는,
    로봇.
  24. 제15 항 내지 제23 항 중 어느 한 항에 있어서,
    상기 엔드-이펙터(160)는 상기 상자(20)를 파지하기 위한 흡입력을 인가하도록 구성된 복수의 흡입 컵들을 포함하는,
    로봇.
  25. 제15 항 내지 제24 항 중 어느 한 항에 있어서,
    상기 로봇(100)은,
    제1 및 제2 단부들(122, 124)을 갖는 적어도 하나의 레그(120) ― 상기 제1 단부(122)는 상기 복수의 조인트들(J) 중 제2 조인트(J, JH)에서 상기 본체(110)에 결합됨 ―; 및
    상기 적어도 하나의 레그(120)의 제2 단부(124)에 회전 가능하게 결합되고, 상기 지평면(12)과의 롤링 접촉에 따라 상기 로봇(100)을 이동시키도록 구성된 구동 휠(130)을 더 포함하는,
    로봇).
  26. 제25 항에 있어서,
    상기 적어도 하나의 레그(120)는,
    제1 및 제2 단부들(122, 124)을 갖는 우측 레그(120, 120a) ― 상기 우측 레그(120, 120a)의 제1 단부(122)는 상기 본체(110)의 제2 단부 부분(114)에 프리즘식으로 결합되고, 상기 우측 레그(120, 120a)는 상기 우측 레그(120, 120a)의 제2 단부(124)에 회전 가능하게 결합된 우측 구동 휠(130, 130a)을 가짐 ―; 및
    제1 및 제2 단부들(122, 124)을 갖는 좌측 레그(120, 120b) ― 상기 좌측 레그(120, 120b)의 제1 단부(122)는 상기 본체(110)의 제2 단부 부분(114)에 프리즘식으로 결합되고, 상기 좌측 레그(120, 120b)는 상기 좌측 레그(120, 120b)의 제2 단부(124)에 회전 가능하게 결합된 좌측 구동 휠(130, 130b)을 가짐 ―;를 포함하는,
    로봇.
KR1020217034566A 2019-03-27 2020-03-12 상자들을 팔레타이징하기 위한 로봇 및 방법 KR20210149091A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962824434P 2019-03-27 2019-03-27
US62/824,434 2019-03-27
PCT/US2020/022360 WO2020197784A1 (en) 2019-03-27 2020-03-12 Robot and method for palletizing boxes

Publications (1)

Publication Number Publication Date
KR20210149091A true KR20210149091A (ko) 2021-12-08

Family

ID=70471075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217034566A KR20210149091A (ko) 2019-03-27 2020-03-12 상자들을 팔레타이징하기 위한 로봇 및 방법

Country Status (6)

Country Link
US (3) US11407107B2 (ko)
EP (2) EP3946834B1 (ko)
JP (1) JP2022525291A (ko)
KR (1) KR20210149091A (ko)
CN (1) CN113784825A (ko)
WO (1) WO2020197784A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024054059A1 (ko) * 2022-09-07 2024-03-14 엘지전자 주식회사 로봇
WO2024080447A1 (ko) * 2022-10-14 2024-04-18 엘지전자 주식회사 로봇

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020197784A1 (en) 2019-03-27 2020-10-01 Boston Dynamics, Inc. Robot and method for palletizing boxes
WO2020244778A1 (en) * 2019-06-07 2020-12-10 Bystronic Laser Ag Sorting system, mobile robot, method for operating a sorting system, computer program product and computer-readable medium
US20210283783A1 (en) * 2019-12-18 2021-09-16 Carla R. Gillett Modular robotic service vehicle
CN113799116B (zh) * 2020-06-12 2022-07-29 深圳市优必选科技股份有限公司 直接力反馈控制方法、装置、控制器和机器人
IT202000025444A1 (it) * 2020-10-27 2022-04-27 Tod System S R L S Robot mobile a guida autonoma
US11911801B2 (en) * 2020-12-11 2024-02-27 Intelligrated Headquarters, Llc Methods, apparatuses, and systems for automatically performing sorting operations
DE102021104773B3 (de) * 2021-02-26 2022-03-17 IGZ Ingenieurgesellschaft für logistische Informationssysteme mbH Kommissionierroboter mit optimierter trajektorie und verfahren zum steuern eines kommissionierroboters
KR20230162961A (ko) * 2021-03-26 2023-11-29 보스턴 다이나믹스, 인크. 통합 모바일 조작기 로봇을 위한 동적 질량 추정 방법들
DE102021108906A1 (de) * 2021-04-09 2022-10-13 Linde Material Handling Gmbh Mobiler Kommissionierroboter
US11905115B2 (en) * 2021-04-30 2024-02-20 Dexterity, Inc. Robotic system for identifying items
DE102021114004A1 (de) * 2021-05-31 2022-12-01 Linde Material Handling Gmbh Verfahren und System zum Kommissionieren von Stückgütern
CN113843801B (zh) * 2021-10-18 2022-11-29 上海节卡机器人科技有限公司 复合机器人的控制方法、装置及系统
CN114601296B (zh) * 2022-03-31 2023-09-01 河南云迹智能技术有限公司 用于机器人执行上仓转移任务的目标上仓确定方法和装置
CN114770461B (zh) * 2022-04-14 2023-12-01 深圳技术大学 一种基于单目视觉的移动机器人及其自动抓取方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2724978C2 (de) 1977-06-02 1985-04-04 Schaefer Förderanlagen- und Maschinenbau GmbH, 8043 Unterföhring Vorrichtung zum Aufeinandersetzen von Kästen
JPS61152389A (ja) * 1984-12-25 1986-07-11 吉川 政能 多関節ロボツトにおける自動バランス装置
JP3277739B2 (ja) * 1995-01-27 2002-04-22 三菱電機株式会社 産業用ロボット
US7719222B2 (en) * 2006-03-30 2010-05-18 Vecna Technologies, Inc. Mobile extraction-assist robot
US20070280812A1 (en) * 2006-05-17 2007-12-06 Axium Inc. Tool and method for mixed palletizing/depalletizing
JP4418905B2 (ja) * 2007-05-02 2010-02-24 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット
JP5112115B2 (ja) * 2008-03-07 2013-01-09 オークラ輸送機株式会社 積付装置
JP5351946B2 (ja) * 2011-08-10 2013-11-27 株式会社安川電機 梱包装置
US10216865B1 (en) * 2012-03-06 2019-02-26 Vecna Robotics, Inc. Monitoring one or more articles on a support surface
WO2014076837A1 (ja) * 2012-11-19 2014-05-22 株式会社日立製作所 移動体
BR112016022556A2 (pt) * 2014-03-31 2017-08-15 Intelligrated Headquarters Llc Dispositivo autônomo de carga e descarga de caminhões
GB2577119A (en) * 2018-09-14 2020-03-18 Tbs Eng Ltd Battery plate loading mechanism
WO2020197784A1 (en) 2019-03-27 2020-10-01 Boston Dynamics, Inc. Robot and method for palletizing boxes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024054059A1 (ko) * 2022-09-07 2024-03-14 엘지전자 주식회사 로봇
WO2024080447A1 (ko) * 2022-10-14 2024-04-18 엘지전자 주식회사 로봇

Also Published As

Publication number Publication date
JP2022525291A (ja) 2022-05-12
US11738456B2 (en) 2023-08-29
US20200306964A1 (en) 2020-10-01
US20220347845A1 (en) 2022-11-03
CN113784825A (zh) 2021-12-10
WO2020197784A1 (en) 2020-10-01
EP3946834B1 (en) 2024-01-10
EP3946834A1 (en) 2022-02-09
US20230347513A1 (en) 2023-11-02
US11407107B2 (en) 2022-08-09
EP4321461A2 (en) 2024-02-14

Similar Documents

Publication Publication Date Title
EP3946834B1 (en) Robot and method for palletizing boxes
JP7362755B2 (ja) ロボットによる複数アイテムタイプのパレタイズおよびデパレタイズ
KR102625214B1 (ko) 상자들의 검출
EP3169489B1 (en) Real-time determination of object metrics for trajectory planning
JP7381595B2 (ja) マルチボディコントローラおよびロボット
KR20230162961A (ko) 통합 모바일 조작기 로봇을 위한 동적 질량 추정 방법들
CN117355392A (zh) 集成移动机械手机器人
US11084174B2 (en) Multiple degree of freedom force sensor
CA3235730A1 (en) Automated product unloading, handling, and distribution
WO2020040055A1 (ja) 食品箱詰装置及びその動作方法
JP7373156B2 (ja) 把持機構を備えたロボットシステム、及び関連するシステムと方法
US20230052763A1 (en) Robotic systems with gripping mechanisms, and related systems and methods

Legal Events

Date Code Title Description
E902 Notification of reason for refusal