Robot system with transfer structure
By using a forward-backward conveyor and a side-to-side sliding arm for the object loader, the problems of insufficient baggage support and orientation in traditional baggage loading tools are solved, achieving more efficient baggage loading and container packaging.
Patent Information
- Application Number
- CN202580002320.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-05-17
- Filing Date
- 2025-05-16
- Publication Date
- 2026-01-20
AI Technical Summary
Traditional baggage loading tools lack the ability to support and orient baggage, making it easy for baggage to fall during transport. They also make it difficult to efficiently and flexibly place baggage in shipping containers, affecting the packaging density and loading time of shipping containers.
The object loader, employing a forward-to-back conveyor and side-to-side sliding arm, provides better object support and orientation capabilities, improving loading efficiency and packaging tightness within containers.
The improved object loader enhances the capacity and speed of baggage placement within shipping containers, reduces the risk of baggage falling out, and increases the packaging density and loading efficiency of shipping containers.
Smart Images

Figure CN121368516A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims priority to U.S. Provisional Application No. 63 / 648,679, filed May 17, 2024. TECHNICAL FIELD
[0003] The present technology is generally related to robotic systems, and more specifically to systems, processes, and techniques for transferring and loading objects. BACKGROUND
[0004] With ever increasing performance and ever decreasing cost, many robots (e.g., machines configured to perform physical actions automatically / autonomously) are now widely used in a variety of different fields. For example, robots can be used to perform various tasks (e.g., manipulating or transferring objects through space) in manufacturing and / or assembly, packaging and / or kitting, transportation and / or shipping, etc. In performing tasks, robots can perform physical actions, thereby replacing or reducing the human involvement that would otherwise be required to perform dangerous or repetitive tasks.
[0005] However, despite technological advances, robots often lack the precision necessary to replicate the human interaction required to perform larger and / or more complex tasks. Accordingly, there remains a need for improved techniques and systems for managing operations and / or interactions between robots. BRIEF DESCRIPTION OF DRAWINGS
[0006] Figure 1 is an illustration of an example environment in which a robotic system with coordinated transfer mechanisms can operate.
[0007] Figure 2 is a block diagram illustrating a robotic system in accordance with one or more embodiments of the present technology.
[0008] Figures 3A-3D is an illustration of a robotic object loading system in accordance with the embodiments disclosed herein.
[0009] Figure 4A -D illustrates an object loader in accordance with the embodiments disclosed herein.
[0010] Figures 5A-5C illustrates an object loader in accordance with the embodiments disclosed herein.
[0011] Figures 6A-6F illustrates aspects of an object transfer system in accordance with the embodiments disclosed herein.
[0012] Figure 7 is a flowchart illustrating an object loading process in accordance with the embodiments disclosed herein.
[0013] Figures 8A-8K is a flowchart illustrating an object loading process according to embodiments disclosed herein.
[0014] Figure 9 is a flowchart illustrating a throw decision process according to embodiments disclosed herein.
[0015] Figures 10A-10C Aspects of object loading throws according to embodiments disclosed herein are illustrated.
[0016] Figures 11A-11C Aspects of object loading throws according to embodiments disclosed herein are illustrated.
[0017] Figures 12A-12C Aspects of object loading throws according to embodiments disclosed herein are illustrated.
[0018] Figures 13A-13C Aspects of object loading throws according to embodiments disclosed herein are illustrated.
[0019] Figures 14A-14D Aspects of object loading throws according to embodiments disclosed herein are illustrated.
[0020] Figures 15A-15B Aspects of object loading throws according to embodiments disclosed herein are illustrated.
[0021] Figures 16A-16C Aspects of object loading throws according to embodiments disclosed herein are illustrated. DETAILED DESCRIPTION
[0022] Systems and methods for robotic systems with coordinated delivery mechanisms are described herein. Robotic systems configured according to some embodiments (e.g., integrated systems of devices each performing one or more designated tasks) autonomously perform integrated tasks by coordinating the operation of multiple units (e.g., robots).
[0023] In the following description, numerous specific details are set forth to provide a thorough understanding of the presently disclosed technology. In other implementations, the technology described herein can be practiced without some or all of these specific details. In other instances, well known features have not been described in detail so as not to unnecessarily obscure the present disclosure. References in the specification to "an embodiment," "one embodiment," etc. indicate that the described feature, structure, material, or characteristic is included in at least one embodiment of the disclosure. Therefore, such phrases in various places throughout this specification do not necessarily all refer to the same embodiment. On the other hand, in the
[0024] For the sake of clarity, the description below does not set forth details of structures or processes that are well known and that would obscure the understanding of the presently disclosed technology. Moreover, although the following disclosure describes several embodiments of different aspects of the present technology, several other embodiments can have different configurations or different components than those described in this section. Therefore, the present technology can have other embodiments that are not specifically described below.
[0025] Many embodiments or aspects of the present disclosure described below can take the form of computer- or controller-executable instructions, including routines executed by a programmable computer or controller. Those skilled in the relevant art will appreciate that the technology disclosed can be practiced on computer / controller systems other than those shown and described below. The technology described herein can be embodied in a special-purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions described below. Accordingly, the terms "computer," "controller," and / or "control circuitry" as generally used herein refer to any data processor and can include internet appliances and hand-held devices (including palmtop computers, wearable computers, cellular or mobile phones, multi-processor systems, processor-based or programmable consumer electronics, network computers, mini-computers, etc.). Information handled by these computers and controllers can be presented on any suitable display medium, including liquid crystal displays (LCDs). Instructions for performing the computer- or controller-executable tasks can be stored or carried on any suitable computer-readable medium, including hardware, firmware, or a combination of hardware and firmware. The instructions can be contained in any suitable memory device, including, for example, flash drives, USB devices, and / or other suitable media.
[0026] The terms "coupled" and "connected," along with their derivatives, can be used herein to describe structural relationships between components. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, "connected" can be used to indicate that two or more elements are in direct contact with one another. Unless otherwise stated, the term "coupled" can be used to indicate that two or more elements are in either direct or indirect (with other intermediate elements between them) contact with one another, or that the two or more elements co-operate or interact with one another (for example, as in a cause an effect relationship, such as in a signal transmission / reception or in a function call), or both.
[0027] The present disclosure provides examples of robotic systems capable of transferring objects from a first location to a second location. In particular, the robotic systems described herein are configured to receive objects at a loading or picking location and transfer the objects to a container in which the objects can be stacked with other objects. In particular examples, the robotic systems described herein can facilitate loading of an aircraft luggage container by receiving objects (e.g., luggage) at a picking location (e.g., a conveyor belt) and transferring the objects to a luggage container in which the objects can be stacked with other objects internally.
[0028] Transferring luggage to a luggage container can present several particular challenges. Conventional luggage loading tools include a single conveyor belt without side support. This design can present several challenges. First, luggage can fall during transfer as it can not be well supported. Second, the ability to place luggage in any location within an air shipment container can be impacted as a single conveyor belt can only operate in a forward or backward direction. Some shipment containers include walls and openings, which exacerbate this challenge as it is difficult to place luggage in locations behind the walls. Conventional luggage loaders lack flexibility, which can result in lower packing density of the shipment container and more loading time as the robotic system attempts to place each piece of luggage. Further, conventional systems lack the ability to properly orient a piece of luggage before loading it onto a conveyor loader. This can result in dropped items during transfer and / or can increase the difficulty of accurately placing these objects. The object loaders and methods of using the same as described herein address these and other challenges.
[0029] An object loader as described herein can include a forwards-backwards conveyor and a side-to-side swiper arm. These features allow for better support of objects during transfer, faster packing of containers, better alignment of objects prior to release, tighter packing of objects within containers, and more flexibility in placing objects within shipping containers. Other aspects of the object loader described herein can provide for a smaller overall object loader, which can increase object placement capacity. These and other advantages are described in more detail below.
[0030] Figure 1 is an illustration of an example environment in which a robotic system 100 with a coordinated transfer mechanism can operate. The robotic system 100 can include and / or be in communication with one or more cells (e.g., robots) configured to perform one or more tasks. Aspects of the coordinated transfer mechanism can be practiced or implemented by the individual cells.
[0031] For Figure 1 For the example illustrated in FIG. 1, the robotic system 100 can include a loading cell 102, a transfer cell 104 (e.g., which can include a repositioning robot), a transport cell 106, an unloading cell 108, or a combination thereof in a warehouse or distribution / shipment center. Each of the cells in the robotic system 100 can be configured to perform one or more tasks. These tasks can be combined in sequence to perform operations that achieve a goal, such as loading objects stored in a warehouse into a truck, van, or container, or loading objects from a storage location and preparing them for shipment. In some embodiments, the tasks can include placing an object on or in a target location (e.g., on top of a pallet and / or within a bin / cage / carton / box). As described in detail below, the robotic system 100 can derive an individual placement location / orientation, compute a corresponding motion plan, or a combination thereof, for placing and / or stacking objects. Each of the cells can be configured to perform a series of actions (e.g., operating one or more components thereof) to perform a task.
[0032] In some embodiments, a task can include manipulating (e.g., moving and / or reorienting) a target object 112 (e.g., one of a package, box, bin, cage, pallet, etc. corresponding to a task being performed) from a start / source location 116 to a task / destination location 114. For example, a loading unit 102 (e.g., a packaging robot) can be configured to transfer a target object 112 from a transfer location 110 (e.g., from a conveyor) to a location in a vehicle (e.g., a truck). A transfer unit 104 can be configured to transfer a target object 112 from one location (e.g., a conveyor, a pallet, a bin, etc.) to another location (e.g., a conveyor, a pallet, a bin, etc.). For another example, a transfer unit 104 (e.g., a palletizing robot) can be configured to transfer a target object 112 from a source location (e.g., a pallet, a pick area, and / or a conveyor) to a destination pallet. A transport unit 106 (e.g., a conveyor, an automated guided vehicle (AGV), a rack transport robot, etc.) can transfer a target object 112 from an area associated with an unloading unit 108 to an area associated with the transfer unit 104, and the unloading unit 108 can transfer a target object 112 from a storage location (e.g., a location on a rack) to the transfer unit 104 (by, e.g., moving a pallet or tray carrying the target object 112). Details regarding tasks and associated actions are described below.
[0033] For illustrative purposes, the robotic system 100 is described in the context of a packaging and / or shipping center; however, it should be understood that the robotic system 100 can be configured to perform tasks in other environments / purposes, such as for manufacturing, assembly, storage / inventory, healthcare, and / or other types of automation. It can also be understood that the robotic system 100 can include other units not shown in FIG. 1, such as manipulators, service robots, modular robots, etc. For example, in some embodiments, the robotic system 100 can include a de-palletizing unit for transferring objects from a cage car or pallet to a conveyor or other pallet, a container switching unit for transferring objects from one container to another, a packaging unit for wrapping / boxing objects, a sorting unit for grouping objects according to one or more characteristics of the objects, a picking unit for manipulating (e.g., for sorting, grouping, and / or transferring) objects differently according to one or more characteristics of the objects, or a combination thereof. Figure 1
[0034] Figure 2 This is a block diagram illustrating a robot system 100 according to one or more embodiments of the present invention. For example, in some embodiments, the robot system 100 (e.g., at one or more units and / or robots described above) may include electronic / electrical devices such as one or more processors 202, one or more storage devices 204, one or more communication devices 206, one or more input-output devices 208, one or more actuators 212, one or more transport motors 214, one or more sensors 216, or combinations thereof. Various devices may be coupled to each other via wired and / or wireless connections. For example, the robot system 100 may include buses such as a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, an UltraTransport or Industry Standard Architecture (ISA) bus, a Small Computer System Interface (SCSI) bus, a Universal Serial Bus (USB), an IIC (I2C) bus, or an IEEE Standard 1394 bus (also known as "FireWire"). Furthermore, for example, the robot system 100 may include bridges, adapters, processors, or other signal-dependent devices for providing wired connections between devices. Wireless connectivity can be based on, for example, cellular communication protocols (e.g., 3G, 4G, LTE, 5G, etc.), wireless local area network (LAN) protocols (e.g., Wi-Fi), peer-to-peer or device-to-device communication protocols (e.g., Bluetooth, Near Field Communication (NFC), etc.), Internet of Things (IoT) protocols (e.g., NB-IoT, LTE-M, etc.), and / or other wireless communication protocols.
[0035] Processor 202 may include a data processor (e.g., a central processing unit (CPU), a dedicated computer, and / or an onboard server) configured to execute instructions (e.g., software instructions) stored on storage device 204 (e.g., computer memory). In some embodiments, processor 202 may be included in a separate / independent controller operatively coupled to... Figure 2 Other electronic / electrical devices and / or shown in Figure 1 The robot unit shown in the image. The processor 202 can implement program instructions to control / interact with other devices, thereby enabling the robot system 100 to perform actions, tasks and / or operations.
[0036] Storage device 204 may include a non-transitory computer-readable medium on which program instructions (e.g., software) are stored. Some examples of storage device 204 may include volatile memory (e.g., cache and / or random access memory (RAM)) and / or non-volatile memory (e.g., flash memory and / or disk drives). Other examples of storage device 204 may include portable storage devices and / or cloud storage devices.
[0037] In some embodiments, the storage device 204 can be used to further store and provide access to processing results and / or predetermined data / thresholds. For example, the storage device 204 can store master data 252 including descriptions of objects (e.g., boxes, cases, and / or products) that can be manipulated by the robotic system 100. In one or more embodiments, the master data 252 can include dimensions, shapes (e.g., templates for potential poses and / or computer-generated models for identifying objects in different poses), color schemes, images, identification information (e.g., barcodes, quick response (QR) codes, logos, etc., and / or their expected locations), expected weights, other physical / visual characteristics, or combinations thereof, of objects intended to be manipulated by the robotic system 100. In some embodiments, the master data 252 can include manipulation-related information about the objects, such as center of mass (CoM) locations on each of the objects, expected sensor measurements (e.g., force, torque, pressure, and / or contact measurements) corresponding to one or more actions / maneuvers, or combinations thereof.
[0038] The communication device 206 can include circuitry configured to communicate with external or remote devices over a network. For example, the communication device 206 can include a receiver, a transmitter, a modulator / demodulator (modem), a signal detector, a signal encoder / decoder, a connector port, a network card, etc. The communication device 206 can be configured to send, receive, and / or process electrical signals in accordance with one or more communication protocols (e.g., Internet Protocol (IP), wireless communication protocols, etc.). In some embodiments, the robotic system 100 can use the communication device 206 to exchange information between units of the robotic system 100 and / or with systems or devices external to the robotic system 100 (e.g., for reporting, data collection, analysis, and / or troubleshooting purposes).
[0039] The input-output device 208 can include user interface devices configured to convey information to and / or receive information from a human operator. For example, the input-output device 208 can include a display 210 and / or other output devices (e.g., a speaker, haptic circuitry or haptic feedback devices, etc.) for conveying information to a human operator. In addition, the input-output device 208 can include control or receiving devices, such as a keyboard, a mouse, a touch screen, a microphone, user interface (UI) sensors (e.g., a camera for receiving motion commands), wearable input devices, etc. In some embodiments, the robotic system 100 can use the input-output device 208 to interact with a human operator when performing actions, tasks, operations, or combinations thereof.
[0040] The robotic system 100 can include physical or structural members (e.g., robotic manipulation arms) that are connected at joints for movement (e.g., rotational and / or translational displacement). The structural members and joints can form kinematic chains that are configured to manipulate an end effector (e.g., a gripper or a loader) that is configured to perform one or more tasks (e.g., gripping, rotating, welding, etc.) in accordance with the use / operation of the robotic system 100. The robotic system 100 can include actuation devices 212 (e.g., motors, actuators, wires, artificial muscles, electroactive polymers, etc.) that are configured to drive or manipulate (e.g., displace and / or reorient) the structural members about or at corresponding joints. In some embodiments, the robotic system 100 can include transport motors 214 that are configured to transport corresponding units / chassis from one place to another.
[0041] The robotic system 100 can include sensors 216 that are configured to obtain information for implementing tasks (e.g., for manipulating the structural members and / or for transporting the robotic units). The sensors 216 can include devices that are configured to detect or measure one or more physical properties of the robotic system 100 and / or the surrounding environment (e.g., the state, condition, and / or position of one or more structural members / joints of the robotic system). Some examples of the sensors 216 can include accelerometers, gyroscopes, force sensors, strain gauges, tactile sensors, torque sensors, position encoders, etc.
[0042] For example, in embodiments, the sensors 216 can include one or more imaging devices 222 (e.g., visual and / or infrared cameras, 2D and / or 3D imaging cameras, ranging devices such as lidar or radar, etc.) that are configured to detect the surrounding environment. The imaging devices 222 can generate representations of the detected environment, such as digital images and / or point clouds, that can be processed through machine / computer vision (e.g., for automated inspection, robotic guidance, or other robotic applications). As described in further detail below, the robotic system 100 (e.g., through the processor 202) can process the digital images and / or point clouds to identify Figure 1 target objects 112, Figure 1 start positions 114, Figure 1the pose of the target object 112, a confidence measure with respect to the start location 114 and / or pose, or a combination thereof. The imaging device 222 associated with the robotic system 100 can be positioned and / or located at any suitable location to perform the imaging / sensing discussed herein. In embodiments, the imaging device 222 can be located directly on a movable robotic system, such as on the object loader 500 and / or on any of the moving components of the workpiece repositioning device 600. In further embodiments, the imaging device 222 can be located at a suitably selected stationary location to perform the necessary described sensing and / or imaging. Although specific locations and positions of the imaging device 222 can be discussed in some embodiments, these are provided merely as examples. Any suitable positioning of the imaging device 222 can be used to perform or implement the operations, methods, processes, and systems described herein.
[0043] To manipulate the target object 112, the robotic system 100 (e.g., through the various circuits / devices described above) can capture and analyze image data of a specified area (e.g., a pick location on a truck interior or a conveyor belt) to identify the target object 112 and its start location 114. Similarly, the robotic system 100 can capture and analyze image data of another specified area (e.g., a drop location for placing objects on a conveyor, a location for placing objects within a container, or a location on a pallet for stacking purposes) to identify the task location 116. For example, the imaging device 222 can include one or more cameras configured to generate image data of a pick area and / or one or more cameras configured to generate image data of a task area (e.g., a drop area). Based on the image data, the robotic system 100 can determine the start location 114, the task location 116, the associated pose, the packing / placement location, and / or other processing results, as described below. Details regarding the dynamic packing algorithm are described below.
[0044] For example, in some embodiments, the sensors 216 can include a position sensor 224 (e.g., a position encoder, a potentiometer, etc.) configured to detect a position of a structural member (e.g., a robotic arm and / or an end effector) and / or a corresponding joint of the robotic system 100. The robotic system 100 can use the position sensor 224 to track a position and / or an orientation of the structural member and / or joint during task execution.
[0045] Figures 3A-3D An overall overview of a portion of an embodiment of the robotic system 100 is depicted. Figure 3A And 3B The system is shown in its entirety, Figure 3C And 3DVarious aspects of the system are illustrated. This example portion of the robot system 100 includes a feed conveyor 105, a pre-transfer conveyor 106, a transfer location 110, a robot system 400, and a container 300. In this example, conveyor 111 serves as an embodiment of transfer location 110. Conveyor 111 is configured to transfer objects, such as workpieces, in this example, luggage W, from a storage location. As used herein, "workpiece" refers to an object or target object with which the robot system can work, such as for transfer, loading, storage, positioning, etc. Robot system 400 is configured to transfer luggage W from conveyor 111 to container 300 (in this example, an air freight container). The container is an embodiment of the aforementioned means of transport, and luggage W is an instance of a target object. In other embodiments, other objects may be used as both means of transport and target objects.
[0046] The robotic system 400 includes a robot base 410, a robot arm 420, an end-effector tool 430, and a robot slide 440. The robot base 410, robot arm 420, end-effector tool 430, and robot slide 440 are configured to work collaboratively to transport baggage W from transfer location 110 to a container. Further description of these operations is provided below.
[0047] In this example, container 300 is an air cargo container. These types of containers are typically configured with rigid sides and mounted inside the aircraft fuselage. Figure 3C The container 300 includes a top wall 312, side walls 314, sloping wall sections 316, a bottom wall 318, a rear wall 320, and a front wall 322. These walls typically form a rigid structure for storing various items such as luggage W. The container 300 may also have a container opening 310 through which luggage W can be loaded manually or by means of a robotic system 400 for storage within the container 300.
[0048] like Figure 3C As depicted, an embodiment of the end-effector 430 may be an object loader 500. The object loader 500 may also be referred to as a gripper. The object loader 500 is configured to assist the robotic system 400 in transferring target objects 112, such as luggage W, from conveyor 111 to container 300. The end-effector 430 may be other types of grippers or tools (e.g., claws, pliers, shovels, rods, vacuum heads, etc.) depending on the desired target object 112 to be transferred. Additionally, the robotic system 400 may be configured to adapt the end-effector 430 during the loading process of container 300 to better suit the specific target object 112 to be transferred.
[0049] Figure 3DOne embodiment of a type of container into which a target object 112 can be loaded is depicted. In this particular embodiment, the container 300 is an airline container, such as a suitcase, into which items will be loaded. The container 300 can include a container opening 310 located at a front portion thereof. The container opening 310 can open in a direction perpendicular to the ground and can or can not be disposed along an entire front portion of the container 300. The container 300 can also include a container top wall 312. The container top wall 312 can be positioned toward a top portion of the container 300 and can or can not be disposed along an entire top portion of the container 300. The container 300 can also include a container side wall 314. The container side wall 314 can generally be disposed along a side of the container 300 and can or can not be disposed along an entire side of the container 300. The container 300 can also include a container bevel wall portion 316. The container bevel wall portion 316 can generally be positioned toward a side of the container 300 and can or can not be disposed along an entire side of the container 300. The container can also include a container back wall 320. The container back wall 320 can be disposed toward a back portion of the container 300 and can or can not be disposed along an entire back portion of the container 300. The container 300 can include a container front wall 322. The container front wall 322 can be disposed toward a front portion of the container 300 and can or can not be disposed along an entire front portion of the container 300.
[0050] The container into which or onto which a workpiece or object is loaded is not limited to the container described above. Any suitable container can be utilized and can depend on the workpiece to be loaded and / or the method of transportation in which the container is moved. For example, a suitable container can be one in which the bottom wall, front wall, back wall, and side walls are solid and continuous, with an opening disposed only at a top portion thereof. As another example, the container can have a hinged top surface and an opening along a side thereof. However, the side can be temporarily closed, thereby limiting access thereto. As still another example, all of the surfaces of the container can be solid and continuous. However, at least a portion of one or more surfaces can be hinged or temporarily accessible in order to provide an opening into which a workpiece can be placed.
[0051] As described in the present disclosure, various embodiments of an arm end tool or effector can be used as an object loader for loading a workpiece or object into a container. Referring to Figures 4A-4D Embodiments of an arm end tool are described. Figure 4A is a top view of an object loader 500 consistent with embodiments thereof. Figure 4B is a perspective view of an object loader 500 consistent with embodiments thereof. Figure 4C is a slider arm consistent with embodiments thereof. Figure 4DA drive system of an object loader consistent with embodiments thereof is demonstrated. In embodiments, the object loader 500 (also referred to as a tape gripper) generally includes a loader chassis 510, a loader conveyor 520, a loader slider system 530, a loader assembly housing 540, a loader connector 550, and a loader cable management system 570. Optionally, the object loader 500 can include a loader vision system 560. In further embodiments, the robotic system 400 can operate in conjunction with a vision system located remotely, for example at a location remote from the robotic arm 420 or the object loader 500. Such vision system can be stationary and / or can be disposed on a separate robotic arm or robotic mechanism.
[0052] In embodiments, the loader chassis 510 can generally be configured to support other components of the object loader 500. The loader chassis 510 can be made of any suitable material such as aluminum, stainless steel, rigid plastic, etc.
[0053] In embodiments, the object loader 500 can include a loader conveyor 520. The loader conveyor 520 can be configured to move a workpiece loaded onto the object loader 500 in at least one degree of freedom. For example, the loader conveyor 520 can be configured to move the workpiece in a forward and backward (e.g., longitudinal) direction relative to the object loader 500. As used herein, directions “relative” to the object loader can include a longitudinal direction (forward-backward), a lateral direction (left-right), and a normal direction (up-down). These directions are orthogonal to each other. Forward and backward refer to directions away from and toward, respectively, a mounting point of the object loader to a robotic arm. Lateral refers to a direction orthogonal to the mounting point. The normal direction refers to a direction perpendicular to a plane of the loader conveyor 520. The directions provided and used in discussion in this specification are provided for ease of understanding and are not limiting. For example, in embodiments, the longitudinal, lateral, and normal can be understood relative to a direction of travel (longitudinal) of the loader conveyor in embodiments where the loader conveyor is unidirectional. An embodiment of such a system is a tape conveyor, an example of which will be described in greater detail below. In embodiments, the loader conveyor 520 is capable of moving the workpiece in two degrees of freedom, for example in both the forward-backward direction and the left-right direction. This can be accomplished using a multi-directional or omnidirectional transfer table of a wheeled conveyor system.
[0054] In embodiments, the object loader 500 can include a loader slider system 530. The loader slider system 530 can be used to move the workpiece in a lateral direction (e.g., left-to-right) relative to the object loader 500. For example, a slider arm 532 can be actuated to impart a lateral or transverse force to the object. The loader slider system 530 can be configured such that the slider arm 532 is disposed at the left side of the object loader 500, the right side of the object loader 500, or any positioning therebetween. The slider arm 532 can be moved by any suitable method. In an embodiment, the slider arm 532 is moved by a slider actuator 534 driven by a slider motor 533. In further embodiments, the slider actuator 534 can be driven by other types of actuators, including, for example, pneumatic devices, hydraulic devices, solenoids, linkages, spring actuators, etc.
[0055] In embodiments, the object loader 500 can include a loader assembly housing 540. The loader assembly housing 540 can be provided separately or can be part of the object loader 500 itself. The loader assembly housing 540 can be part of the object loader 500 and is generally supported by the loader chassis 510. The loader assembly housing 540 can be positioned at a suitable location, such as toward the back of the object loader 500. The loader assembly housing 540 can generally be used to house and protect various components of the object loader 500.
[0056] In embodiments, the object loader 500 can include a loader connector 550. The loader connector 550 can be used to connect the object loader 500 to another component of the system. For example, the loader connector 550 can be used to connect the object loader 500 to the robotic arm 420. The loader connector 550 can have sufficient structure to provide sufficient support for both the object loader 500 and the components placed thereon. As shown, for example, in FIG. 4, the loader connector 550 can be located Figure 4B
[0057] In embodiments, the object loader 500 can include a loader vision system 560. The loader vision system 560 is optionally attached to one or more portions of the object loader 500, or can be located remotely, such as away from the object loader 500 or the robotic system 400. The loader vision system 560 can be used to collect various image data. The loader vision system 560 can include a single camera (or array of cameras) for capturing 2D and / or 3D image data. As shown, for example, in FIG. 4, the loader vision system 560 can be located Figure 4B As shown, the loader vision system 560 can be positioned on a top surface of the loader assembly housing 540. This location can be advantageous to reduce the chance of the loader vision system 560 being damaged during operation / movement of the object loader 500. Depending on the image data collected by the loader vision system 560, the loader vision system 560 can include additional image capture components and / or can be positioned at other areas of the object loader 500. In embodiments, the vision system 560 can be angled upward from the top surface of the object loader 500. This can reduce the chance of the field of view of the loader vision system 560 being affected or blocked by the object loader 500 itself. In some embodiments, the vision system 560 can be used to obtain image data regarding the current loading state of the container.
[0058] In embodiments, the object loader 500 can include a loader cable management system 570. The loader cable management system 570 can be used to manage cables, wires, tubes, etc. used to actuate various components of the object loader 500. For example, the loader cable management system 570 can be used to route cables towards the loader assembly housing 540 and / or the loader vision system 560. The loader cable management system 570 can be configured to reduce strain on cables, wires, tubes, etc. passing therethrough, while additionally reducing the likelihood that the cables, wires, tubes, etc. will be damaged or cause interference when the loader is moved / operated.
[0059] In embodiments, the object loader 500 can include a loader workpiece sensor system 580. The loader workpiece sensor system 580 can be configured to sense workpieces on the object loader 500 and / or to sense one or more parameters of the object loader 500. Sensing a workpiece or object on the object loader 500 can include sensing the position, presence, size and shape, and / or weight of the object or workpiece. For example, the loader workpiece sensor system 580 can be configured to sense the position of a workpiece on the object loader 500. As another example, the loader workpiece sensor system 580 can be used to sense the proximity of a workpiece to the back wall of the object loader 500. As an example of an object loader parameter to be sensed, the loader workpiece sensor system 580 can be used to sense the position of the slider arm 532. In some embodiments, the loader workpiece sensor system 580 can be located behind the back wall of the object loader 500, which can also correspond to the front wall of the loader assembly housing 540. Thus, the loader workpiece sensor system 580 can be located within the loader assembly housing 540. In further embodiments, the loader workpiece sensor system 580 can be located elsewhere in the object loader 500 and / or can have components distributed throughout the object loader 500. Depending on the type of workpiece and / or the position of the workpiece to be detected, the loader workpiece sensor system 580 can be located at different positions of the object loader 500.
[0060] In embodiments, the loader workpiece sensor system 580 can include various sensing components and appropriate hardware and software to operate these components. Sensing components consistent with embodiments thereof can include, for example, cameras, motion sensors, weight sensors, proximity sensors, laser rangefinders, radar-based rangefinders, and any other appropriate technology. The loader workpiece sensor system 580 can include one or more control circuits or processors dedicated thereto, and / or can include electrical connections to one or more control circuits or processors associated with the object loader 500 and / or the robotic system 400.
[0061] Figure 4C Embodiments of the loader slider system 530 are illustrated. In embodiments of the loader slider system 530, the slider arm 532 can be used to apply a lateral force to a workpiece or target object to secure, displace, and / or launch the workpiece. The slider arm 532 can have sufficient height to secure a workpiece as the object loader 500 is tilted and / or as the object loader 500 is moved. For example, the slider arm 532 can be approximately the same height as the upper portion of the loader assembly housing 540. In embodiments, the slider arm can have a height selected relative to the thickness (or height when laid flat) of an average suitcase. For example, the height of the slider arm can be between two inches and twelve inches. The slider arm 532 can also be configured to have sufficient height to allow it to apply a lateral force to a workpiece or target object while also reducing the likelihood that the slider arm 532 will travel underneath the workpiece as it attempts to apply a force to the workpiece. The slider arm 532 can also be configured to minimize its height. For example, the slider arm 532 can be configured such that the slider arm 532 will reduce the chance that it will interfere (e.g., by contacting the container front wall 322 or the container top wall 312) with the object loader 500’s opportunity to enter the container 300 (e.g., through the container opening 310) and unload workpieces. The proximal side of the slider arm 532 can be disposed within the loader assembly housing 540 and can be disposed toward the rearward side of the object loader 500. The distal side of the slider arm 532 can extend out of the loader assembly housing 540 and extend toward the forward side of the object loader 500. The slider arm 532 can extend over or above substantially the entire length (in the forward-rearward direction) of the loader conveyor 520.
[0062] In some embodiments of the object loader 500, the loader slider system 530 can include a slider motor 533. The slider motor 533 can be any type of suitable rotary or linear motor and can be configured to move the slider arm 532 in the lateral direction of the object loader 500. The slider motor 533 is configured with sufficient power and torque to move the slider arm 532 and workpieces seated on the loader conveyor 520. The slider motor 533 can be seated substantially or entirely within the loader assembly housing 540. The slider motor 533 can be supported (e.g., attached to the side walls of the loader assembly housing 540) by the loader chassis 510 and / or the loader assembly housing 540.
[0063] In some embodiments of the object loader 500, the loader slider system 530 can include a slider actuator 534. The slider actuator 534 can be configured to move the slider arm 532 in the lateral direction. The slider actuator 534 can be configured to receive rotational force (motion) from the slider motor 533 and convert it to linear force (motion) for the slider arm. The slider actuator 534 can include an actuator nut 535, an actuator gear 536, and an actuator rod 537. The actuator nut 535 can be physically attached to the slider arm 532 and can be configured to move integrally with the slider arm 532. The actuator nut 535 can be internally threaded. The actuator gear 536 can be physically and rotationally attached to the loader chassis 510 and / or the loader assembly housing 540. The actuator gear 536 can be configured to remain linearly stationary as the slider arm 532 moves laterally. The actuator rod 537 can be physically attached to the actuator gear 536 and configured to rotate integrally with the actuator gear 536. The actuator rod 537 can be threaded and configured to mesh with and rotate within the actuator nut 535. The actuator rod 537 can be physically supported at a distal end by the loader chassis and / or the loader assembly housing 540 via a bearing. The actuating slider motor 533 can cause the actuator gear 536 to rotate. Because the actuator rod 537 is physically connected to the actuator gear 536, rotation of the actuator gear 536 causes the actuator rod 537 to rotate. Because the actuator rod 537 can be threaded, rotation of the actuator rod 537 can cause the actuator nut 535 to move in a linear direction (e.g., along the length of the actuator rod 537). In further embodiments, the slider arm 532 can be driven by any other suitable type of actuator, including linear motors, one or more solenoids, magnetic systems, hydraulic and / or pneumatic systems, etc.
[0064] In some embodiments of the belt loader, the loader slider system 530 can include one or more slider guides 538 and one or more slider guide rails 539. In some embodiments, the slider guides 538 can be physically attached to the slider arm 532 and configured to move integrally with the slider arm 532. The slider guides 538 can be configured to be seated within the slider guide rails 539. The slider guide rails 539 can be physically attached to the loader chassis 510 and / or the loader assembly housing 540. The slider guide rails 539 can be configured to remain linearly stationary as the slider arm 532 moves laterally.Figure 4C In particular, a pair of slider guides 538 are shown. The slider guides 538 can be physically attached to an upper surface of the slider arm 532. As the slider arm 532 moves in the lateral direction, the slider guides 538 are each configured to travel along a slider rail (not shown). The slider guides 538 are configured to support, stabilize, and guide the slider arm 532 as it moves in the lateral direction. The slider guides 538 can be configured to move within the loader assembly housing 540 throughout the movement of the slider arm 532. Figure 4C A single slider guide rail 539 is also depicted. The slider guide rail 539 can be physically connected to the loader chassis 510 and / or the loader assembly housing 540. The slider guide rail 539 can be configured to support, stabilize, and guide the slider arm 532 as it moves in the lateral direction. For example, the slider guide rail 539 can engage with a slider guide (not shown) that is physically connected to a proximal side of the slider arm 532. The slider guides 538 can include any suitable type of linear bearing or bearing surface to facilitate linear motion and lateral translation of the slider arm 532.
[0065] Figure 4D Embodiments of a loader conveyor 520 of the object loader 500 are shown. The loader conveyor 520 can be configured to move a workpiece disposed thereon in a front-rear (forward-rearward) direction of the object loader 500. The object loader 500 can include a loader belt 521. The loader belt 521 can be a conveyor belt for transferring front-rear forces to the workpiece. The loader belt 521 can have sufficient surface friction to allow for proper movement of the workpiece.
[0066] In embodiments, the loader conveyor 520 can include one or more curved pulleys 522 and one or more reverse curved pulleys 523. The curved pulleys 522 and reverse curved pulleys 523 can be used to modify the direction of the loader belt 521. For example, Figure 4D The curved pulleys 522 and reverse curved pulleys 523 depicted in particular are configured to direct the loader belt 521 around a conveyor drive motor 525. The curved pulleys 522 and reverse curved pulleys 523 can be disposed within the loader assembly housing and can be supported by the loader chassis 510 and / or the loader assembly housing 540.
[0067] In embodiments, the loader conveyor 520 can include a drive pulley 524. The drive pulley 524 can be configured to drive the loader belt 521. The drive pulley 524 can be disposed within the loader assembly housing 540 and supported by the loader chassis 510 and / or the loader assembly housing 540. The drive pulley 524 can be disposed toward a rearward side of the object loader 500.
[0068] In embodiments, the loader conveyor 520 can include a conveyor drive motor 525. The conveyor drive motor 525 can be positioned within the loader assembly housing 540 and directly or indirectly supported by the loader chassis 510 and / or the loader assembly housing 540. The conveyor drive motor 525 can be positioned between loops formed by the loader belt 521. A curved pulley 522 and a reverse curved pulley 523 can be used to guide the loader belt 521 around the conveyor drive motor 525. The conveyor drive motor can be configured to provide a driving force for moving the loader belt 521 through a drive pulley 524. For example, operating the conveyor drive motor 525 can cause the drive pulley 524 to rotate, which in turn operates the loader belt 521. As an example, a belt drive 526 can be used to transfer the force of the conveyor drive motor 525 towards the drive pulley 522. The belt drive 526 can help secure the conveyor drive motor 525 relative to the loader assembly housing 540. The belt drive 526 can have a drive wheel configured to drive a drive belt 527. The drive belt 527 can transfer the rotational movement of the wheel of the belt drive 526 to a receiver wheel of a belt receiver 528. The belt receiver 528 can be connected to the drive pulley 522 such that the receiver wheel of the belt receiver 528 and the drive pulley 522 rotate integrally.
[0069] In embodiments, the loader conveyor 520 can include a belt tensioner 529. The belt tensioner 529 can be connected to the belt drive 526. Operating the belt tensioner 529 can cause the drive belt 527 to have an increased or decreased tension. The belt tensioner can include a structure, such as a screw or bolt, that can be adjusted by increasing or decreasing the distance between the belt drive 526 and the drive pulley 524 to increase or decrease the tension of the drive belt 527.
[0070] Figures 5A-5C Another embodiment of an object loader is shown. Figures 5A-5C The object loader of FIG. 7 can include all of the features of the object loader 500, except where specifically described as different. The object loader 700 can have a smaller profile than the previously described object loader 500. Similar to the previously described object loader 500, this embodiment of the object loader 700 can include any or all of the loader chassis 710, the loader conveyor 720, the loader slider system 730, the loader assembly housing 740, the loader connector 750, the loader vision system 760, the loader cable management structure 770, and the loader workpiece sensor system 780. This embodiment of the belt loader can further include a slider sensor system 790. As these components can have similar functionality and / or structure as the previously described components, the details of each component can not be fully described.
[0071] In embodiments, the object loader 700 can include a loader conveyor 720. The loader conveyor 720 can include a loader belt 721, a drive pulley 724, a conveyor drive motor 725, a belt drive 726, a drive belt 727, a belt receiver 728, and a belt tensioner 729. A key difference between the object loader 500 and the object loader 700 is the positioning of the conveyor drive motor 725. The conveyor drive motor 725 of the loader conveyor 720 can be positioned outside of the loop created by the loader belt 721. For example, the conveyor drive motor 725 can be positioned above the drive pulley 724. This arrangement serves to reduce the number of pulleys used to guide the loader belt 721, as no pulley is needed to guide the loader belt 721 around the conveyor drive motor 725. This arrangement can further reduce the amount of space occupied by the loader conveyor 720. As a result, the overall size of the object loader 700 can be reduced. The reduction in size of the object loader 700 can allow the object loader 700 to be used in smaller or tighter spaces. Additionally, the reduction in the number of moving parts (e.g., curved pulleys) serves to simplify the design, making it more robust.
[0072] In embodiments, the object loader 700 can include a loader slider system 730. The loader slider system 730 can include any or all of a slider arm 732, a slider motor 733, a slider actuator 734, an actuator nut (not shown), an actuator gear 736, an actuator rod 737, and a slider guide 738. In this embodiment of the loader slider system 730, the slider guide 738 can be positioned above the slider motor 733 and the actuator rod 737. As a result, the overall length of the loader slider system 730 can be reduced, which in turn allows the overall length of the object loader 700 to be reduced.
[0073] In embodiments, the object loader 700 can include a loader assembly housing 740. The loader assembly housing 740 can include a front wall opening cover 742. The front wall opening cover 742 can be configured in various ways, such as a stationary or movable flat band, a brush, etc. The front wall opening cover 742 can be configured to close or obstruct an opening in the loader assembly housing 740 through which the slider arm 732 passes and travels along. The front wall of the loader assembly housing 740 can also have openings for the loader workpiece sensor system 780 and the slider sensor system 790 to emit and receive signals. The loader workpiece sensor system 780 can be configured to sense the positioning of a workpiece. The slider sensor system 790 can be configured to sense the positioning of the slider arm 732.
[0074] As discussed above, the robotic delivery system 100 can include a delivery unit 104. The delivery unit 104 is configured to receive a target object 112 (e.g., workpiece) from a transport unit 106 or other source and prepare the target object 112 for picking up or receiving by the robotic loader system 400. In embodiments, the delivery unit 104 can include a workpiece repositioning device 600. The workpiece repositioning device 600 can be configured to reposition a target object or workpiece W. For example, the workpiece W can be repositioned to better align with various components of the delivery unit 104 and / or can be repositioned to facilitate loading onto the object loader 500 / 700. As an example, the workpiece repositioning device 600 can reposition the workpiece W in a yaw direction such that it better aligns with the conveyor 111. As used herein, a "yaw direction" refers to a rotational movement in a horizontal (or lateral) or transverse plane. Repositioning in the yaw direction can be used to better orient a target object on the delivery unit 104, for example, such that a pair of sides of the target object extend parallel to a direction of movement of the delivery unit 104 and / or the object loader 500 onto which the target object will be loaded. The workpiece repositioning device 600 can also adjust the position of the workpiece on the conveyor 111. The workpiece repositioning device 600 can adjust the position and / or rotation of the workpiece W prior to the workpiece being loaded onto the loader.
[0075] Figures 6A-6F An embodiment of a workpiece repositioning device 600 is depicted. The embodiment can generally be described as a repositioning tool supported by a gantry and movable relative to the gantry. The workpiece repositioning device 600 can include a gantry frame 610, a repositioning device conveyor 620, a repositioning blade assembly 631 including one or more repositioning surfaces 630, a gantry actuator 640, a rotation actuator 650, and a linear actuator 660.
[0076] In embodiments, the workpiece repositioning device 600 can include a gantry frame 610. The gantry frame 610 can be used to support one or more components of the workpiece repositioning device 600. For example, the gantry frame 610 can be formed as a generally boxed shaped bridging structure. The gantry frame 610 can be of sufficient size to allow a workpiece to pass under and between different portions of the gantry frame 610.
[0077] In embodiments, the workpiece repositioning device 600 can include a repositioning device conveyor 620. The repositioning device conveyor 620 can pass between and underneath the gantry frame 610. The repositioning device conveyor 620 can be configured to support a workpiece thereon and convey the workpiece in a linear direction underneath the gantry frame 610. The repositioning device conveyor 620 can include a repositioning device conveyor belt 622 and / or any other suitable linear motion structure (rollers, etc.). The repositioning device conveyor 620 can further include one or more conveyor sensors 625. In some embodiments, the conveyor sensors can be used to determine the position or size of a workpiece seated on the repositioning device conveyor belt 622. Such conveyor sensors 625 can be configured as laser sensors, photodiode sensors, optical sensors, cameras, or any other suitable sensors.
[0078] In embodiments, the workpiece repositioning device 600 can include a repositioning blade assembly 631 having one or more repositioning surfaces 630. Figure 6C An embodiment of a repositioning surface 630 is shown in FIG. 6. In Figure 6C In FIG. 6, two repositioning surfaces 630 are provided. The repositioning surfaces 630 can each include a repositioning blade 632. The repositioning blade 632 can have a length and width sufficient to contact a workpiece or target object and move the workpiece in a linear and / or rotational direction. The repositioning blade 632 can have a blade surface 634. The blade surface 634 can be configured to contact a workpiece while minimizing damage to the workpiece.
[0079] The repositioning blade assembly 631 and repositioning surfaces 630 can be suspended on the gantry frame 610 and driven by a series of actuators, each configured to cause translational or rotational movement of the repositioning surfaces. One or more linear actuators 660 can be configured to linearly translate, e.g., provide linear motion to the repositioning surfaces 630. Rotational actuators 650 can be configured to rotationally translate, e.g., provide rotational motion to the repositioning blade assembly 631. Additionally, a gantry actuator 640 can be configured to provide translational motion to the repositioning blade assembly 631. Operation of these actuators will be described in greater detail below. The repositioning blade assembly 631 and actuators (linear actuators 660, rotational actuators 650, and gantry actuator 640) can be referred to herein as a repositioning gantry.
[0080] The repositioning blades 632 can be attached to the linear actuators 660 through blade supports 636. The repositioning blades 632 each extend from the respective blade supports 636 in a substantially orthogonal direction. Each blade support 636 is connected to a linear actuator 660. The blade supports 636 can have sufficient strength and be designed to transfer linear force from the linear actuators 660 to the repositioning blades 632 and to support movement of both the repositioning blades 632 and the workpiece along the repositioning device conveyor belt 622. The linear actuators 660 can be, for example, a motor and lead screw, a solenoid, one or more pneumatic or hydraulic devices, a rack and pinion device, and / or any other suitable structure for generating linear motion.
[0081] In embodiments, the workpiece repositioning device 600 can include a gantry actuator 640. Figure 6D An embodiment of the gantry actuator 640 is shown in FIG. 6. The gantry actuator 640 can be used to, for example, position a workpiece disposed on the repositioning device conveyor 620 at different locations on the repositioning device conveyor 620 by contacting one or more of the repositioning blades 632. For example, the gantry actuator 640 can be configured to move various components of the workpiece repositioning device 600, such as the rotation actuator 650, the linear actuators 660, and the repositioning blade assembly 631. The gantry actuator 640 can move these components in a left-right direction relative to the repositioning device conveyor 620, which in turn can cause the workpiece to be repositioned in the left-right direction of the repositioning device conveyor 620. The gantry actuator 640 can include a motor (not shown) to cause movement in the linear direction. In some embodiments, the gantry actuator 640 can include a mounting plate 641 and a linear opening 642. The mounting plate 641 can be configured to have the rotation actuator 650 mounted thereto. The linear opening 642 can be an opening through which the mounting plate 641 can move in the linear direction. The gantry actuator 640 can be mounted on the gantry frame 610 using one or more gantry motor supports 644. The gantry motor supports 644 can have sufficient structure and design to support various components of the workpiece repositioning device 600, such as the gantry actuator 640, the rotation actuator 650, the linear actuators 660, and the repositioning surface 630. In embodiments, the gantry actuator 640 can also include one or more cable management conduits 646. Each cable management conduit 646 can be configured to manage cables that run to different parts of the workpiece repositioning device 600. For example, one cable management conduit 646 can be used to manage cables that extend to the rotation actuator 650. Such cable management conduits 646 can prevent cables that extend to the rotation actuator 650 from being damaged, for example, by the gantry actuator 640 during linear movement of the rotation actuator 650.
[0082] In embodiments, the workpiece repositioning device 600 can include a rotation actuator 650. Figure 6F Embodiments of the rotation actuator 650 are shown in FIG. 6. The rotation actuator 650 can be used to change the attitude of the workpiece. For example, the rotation actuator 650 can rotate the workpiece about a yaw axis of the workpiece (e.g., a vertical rotation axis). The rotation actuator 650 can be used to rotate the workpiece relative to the loader conveyor 520. The rotation actuator 650 can be physically connected to and moved by the gantry actuator 640. For example, the rotation actuator 650 can include a rotation motor frame 651. The rotation motor frame 651 can provide a support system for components of the rotation actuator 650. The rotation motor frame 651 can include a mounting plate 652. The mounting plate 652 can be configured to mount to the gantry actuator 640. A cable management plate 653 can be attached to the mounting plate 652. The cable management plate 653 can be used to route cables to operate at least a rotation motor 654. The cable management plate 653 can also be attached to the cable management conduit 646. In some embodiments, the cable management plate 653 is able to move the cable management conduit 646 as the gantry actuator 640 actuates. For example, as the rotation actuator 650 is moved by the gantry actuator 640, the cable management plate 653 can cause different positions of the cable management conduit to be folded.
[0083] In embodiments, the rotation actuator 650 can include a rotation motor 654. The rotation motor 654 can be a force source that causes the rotation actuator 650 to apply a rotational force to the positioning device vane assembly 631. The rotation motor 654 can be mounted on the rotation motor frame 651. Cables supported by the cable management plate 653 and / or the cable management conduit 646 can provide power and control to the rotation motor 654.
[0084] In embodiments, the rotation actuator 650 can include a gear box 655. The gear box 655 can be configured to transmit and / or convert rotational movement of the rotation motor 654. For example, the gear box 655 can be configured as a reduction gear. For example, the gear box 655 can convert rotational speed of the rotation motor 654 to increased torque, such as by using a sun gear system. This has the benefit of increasing the torque that can be applied to the workpiece during workpiece rotational movement.
[0085] In embodiments, the rotary actuator 650 can include a drive wheel 656, a power transmission belt 657, and a driven wheel 658. This assembly system can be used to transmit power from the motor to the linear actuator 660 to rotate and reposition the blade assembly 631. For example, the drive wheel 656 can be connected to the output shaft of the gear box 655. The power transmission belt 657 can be connected to the drive wheel 656 and the driven wheel 658. The power transmission belt 657 can be configured to transmit power from the drive wheel 656 to the driven wheel 658. The driven wheel 658 can be configured to be connected to the linear actuator 660. Thus, power can be transmitted from the rotary motor 654 to the linear actuator 660.
[0086] In embodiments, the rotary actuator 650 can include a belt tensioner 659. The belt tensioner 659 can be disposed on the rotary actuator frame 651. The belt tensioner 659 can include one or more screws or bolts and can be configured to tighten or loosen the power transmission belt 657.
[0087] In embodiments, the workpiece repositioning device 600 can include a linear actuator 660. Figure 6E An embodiment of the linear actuator 660 is depicted. The linear actuator 660 can include one or more motors or other actuators (not shown) to cause linear movement. The linear actuator 660 can be configured to move one or more repositioning surfaces 630 in a linear direction. For example, the linear actuator 660 can be used to move the repositioning surfaces 630 in a left- direction relative to the repositioning device conveyor 620. The linear actuator 660 can be connected to and supported by the rotary actuator 650, for example, through a connector 664. For example, in some embodiments, the connector 664 of the linear actuator 660 can include a mounting ring 665 and one or more mounting pins 667. The mounting ring 665 and mounting pins 667 can be configured to engage the rotary actuator 650. For example, the mounting ring 665 and mounting pins 667 can engage a portion of the driven wheel 658 of the rotary actuator 650. When rotated by the rotary actuator 650, the linear actuator 660 can be configured to move the repositioning surfaces 630 in any lateral direction relative to the repositioning device conveyor 620.
[0088] In embodiments, the linear actuator 660 can include one or more mounting plates 661 and one or more linear openings 662. The mounting plates 661 can be configured to have the repositioning surface 630 attached thereto. The mounting plates 661 can be configured to move within the linear openings 662 of the linear actuator 660. By moving the mounting plates 661 linearly, the linear actuator 660 can be configured to linearly position the repositioning surface 630. If the linear actuator includes two mounting plates 661, the repositioning surface 630 can be attached to each of the mounting plates 661. The mounting plates 661 can be moved independently by the linear actuator 660, thereby causing the distance between the repositioning surfaces 630 to increase or decrease. Thus, the linear actuator 660 can be used to apply a clamping force to the workpiece.
[0089] In embodiments, the linear actuator 660 can include a cable opening 668. The cable opening can be positioned within the connector 664 and can be configured to allow a cable for operating the linear actuator 660 to pass therethrough. The cable opening 668 can receive the cable through the cable management conduit 646, the cable management plate 653, through the interior of the driven wheel 658, or any combination thereof. In some embodiments, a sliding surface contact style connector can be provided to apply signals and power to the linear actuator 660. By providing this type of connector, the repositioning surface 630 can be free to rotate without creating strain on the cable and without the need to reset the orientation of the repositioning surface 630 between repositioning of the workpiece. This also allows the repositioning surface 630 to rotate the workpiece 180 degrees to better orient the workpiece for loading into a container.
[0090] Figure 7 An example embodiment of an overall workpiece loading process is provided. The example process includes a plurality of sub-processes that can be performed simultaneously in various orders, or by omitting various sub-processes, as indicated by the workpiece to be loaded. In an embodiment, the sub-processes of the workpiece loading process 2000 include obtaining workpiece information sub-process S2100, repositioning the workpiece sub-process S2200, positioning the workpiece on a loader sub-process S2300, conveying the workpiece toward a destination sub-process S2400, determining workpiece placement sub-process S2500, displacing the workpiece sub-process S2600, and returning the loader sub-process S2700.
[0091] Any and all aspects of the workpiece loading process 2000 can be performed by the robotic system 100 and / or any subpart of the robotic system 100 or any robotic system discussed herein. The workpiece loading process 2000 and all sub-processes can be understood as computer-implemented processes performed by software instructions controlling the various hardware and sensor systems described herein. In embodiments, the one or more control units / processors 202 interfacing with the one or more storage devices 204, the one or more communication devices 206, and the one or more input / output devices 208 can be operated to execute software instructions to control the various robotic hardware and sensor systems described herein (e.g., the transport units 106, the transfer units 104, the robotic system 400) to perform the various steps and processes discussed below with respect to the workpiece loading process 2000. In the discussion below of the workpiece loading process 2000 and its various sub-processes, a number of determining and / or decision steps are discussed. In various embodiments discussed below, these decision steps can be performed by the one or more control units / processors 202 executing software instructions. In some cases, such decisions are based on information, e.g., computer-readable data collected by various sensors and cameras, as discussed below and throughout. Such decisions can be understood as steps in a computer-implemented control system process. In the context of the described processes, “system” refers to a system having one or more features in common with the robotic system 100 and configured to control one or more robotic systems described herein.
[0092] As indicated previously, these sub-processes S2100-S2700 do not necessarily need to be performed in a particular order. In certain cases, some of the sub-processes can be omitted to further improve efficiency. As an example of a different ordering of the sub-processes, the determining workpiece placement sub-process S2500 can be performed immediately after the obtaining workpiece information sub-process S2100 has completed. As another example of an ordering of the determining workpiece placement sub-process S2500, this sub-process S2500 can be performed immediately before the conveying workpiece toward destination sub-process S2400 has been performed. As an example of a sub-process that can be omitted in certain cases, the repositioning workpiece sub-process S2200 can not be necessary in certain scenarios. As an example of sub-processes that can occur simultaneously, the positioning workpiece on loader S2300 and the conveying workpiece toward destination sub-process S2400 can occur together. Additionally, the determining workpiece placement sub-process S2500 can occur with these sub-processes S2300, S2400. Other different simultaneous combinations, orderings, etc. can be performed as appropriate.
[0093] Reference is made to Figure 8AEmbodiments of an obtain workpiece information sub-process S2100 are described. The obtain workpiece information sub-process S2100 can be configured to allow the system to obtain object information (also referred to as workpiece information) of an object (e.g., target object, workpiece, etc.) to be loaded. The obtain workpiece information sub-process S2100 can include a step S2102 of determining whether workpiece information is available. For example, the workpiece information can have been previously determined in a previous step or by some other system or device. For example, the system for obtaining workpiece information can be in place to determine and store workpiece information prior to the workpiece W being temporarily stored within the unloading unit 108. Alternatively, the workpiece information can be obtained while the workpiece W is being transferred by the transport unit 106. As another example, the workpiece information can be included in a master list, e.g., if there is only a single or limited number of workpieces to be loaded.
[0094] The workpiece information can include information regarding one or more aspects of the workpiece W. The workpiece information can include, for example, object parameter information indicative of inherent characteristics of the workpiece / object. Inherent characteristics refer to characteristics of the object that do not change or vary as a result of movement and positioning of the object. For example, the object parameter information can include the weight and dimensions of the workpiece or object. The object parameter information can also include more detailed characteristics of the workpiece. For example, the detailed characteristics can include information regarding the hardness of the workpiece, the material from which the workpiece is made in part or in whole, accessories attached to the workpiece, unique components of the workpiece (e.g., handle, strap, wheels, etc.). The workpiece information can further include situation information regarding the object, which can vary as a result of movement and positioning. Such situation information can include, for example, the orientation of the workpiece (e.g., pitch, roll, yaw). The situation information can include the position of the workpiece, e.g., the position or location within a structure (e.g., unloading unit 108, transport unit 106) in which the workpiece is disposed. Other workpiece or object information can be included as desired and based on the type of workpiece to be loaded.
[0095] If the workpiece information is determined to be available in step S2102, the workpiece information can be obtained (e.g., accessed from a data store) and / or forwarded to the processor and / or stored in memory (e.g., as in step S2104). This information can then be used at a later time for the obtain workpiece information sub-process S2100. The obtained workpiece information can include information about only a single workpiece, or can include information for a group or batch of workpieces. If the workpiece information is not available, the obtain workpiece information sub-process S2100 can attempt to obtain such information. For example, various sensors can be used to determine the desired workpiece information. For example, the workpiece W can be weighed (step S2106) to determine the weight of the workpiece W. The workpiece W can also have determined characteristics (step S2108). Various sensors can be used to determine these detailed characteristics. For example, (2D / 3D) cameras, scanners, laser sensors, etc. can be used to obtain images and / or other data about the workpiece. This information can then be communicated to the processor for detection and determination of one or more characteristics of the workpiece.
[0096] The obtain workpiece information sub-process can also include a step of determining the dimensions of the workpiece (step S2110). The dimensions of the workpiece can include one or more of length, width, depth, diameter, etc. Various sensors such as (2D / 3D) cameras, scanners, etc. can be used to determine the dimensions of the workpiece.
[0097] The obtain workpiece information sub-process can also include a step of determining the position and / or orientation information of the workpiece (step S2112). This information can be absolute or relative. For example, as an embodiment of relative information, the position and / or orientation of the workpiece can be determined relative to the task location 114. More specifically, the position and / or orientation information of the workpiece can be relative to the staging area or conveyor of the task location 114. The position information can describe the 2D or 3D positioning of the workpiece relative to the staging area or conveyor of the task location 114. Sensors can also be used to determine the orientation of the workpiece. For example, sensors can be used to determine at least one of the pitch, yaw, or roll of the workpiece. This orientation can be relative to the desired orientation of the workpiece and / or relative to the desired orientation on the staging area or conveyor of the task location. Various sensors such as (2D / 3D) cameras, scanners, etc. can be used to determine the orientation of the workpiece.
[0098] The obtain workpiece information sub-process can also include a step of moving the workpiece to a repositioning location (step S2114). This can be done by a conveyor, a robotic arm, an autonomous vehicle, or any other suitable means. The repositioning location can include, for example, a location on the transfer unit 104 on which the workpiece repositioning device 600 can exert an action on the transfer unit.
[0099] The order of the steps of the obtain workpiece information sub-process S2100 is not limited to the order mentioned above. The steps can be performed in any suitable order, combined with other steps, including in other sub-processes, or combined with steps in other sub-processes. For example, the determine workpiece characteristics step S2108, the determine workpiece size step S2110, and the determine workpiece position and / or orientation step S2112 can occur in any order, or can be combined into a single step using, for example, a single instance of obtaining workpiece image data. As another example, these steps can be included in a reposition workpiece sub-process S2200, embodiments of which are described below, or in steps that determine whether repositioning is needed. Further, in some embodiments, some or all of the steps of the obtain workpiece information sub-process S2100 can be omitted. For example, it can not be necessary to determine characteristics of the workpiece (step S2108).
[0100] In embodiments, the workpiece loading process 2000 can include a reposition workpiece sub-process, embodiments of which are shown as Figure 8BThe repositioning workpiece sub-process S2200 can be configured to reposition an object or workpiece prior to receiving the object or workpiece at the object loader. In embodiments, the object or workpiece can be repositioned by the workpiece repositioning device 600 in the transfer unit 104 prior to being received by the object loader 500 / 700. The repositioning workpiece sub-process S2200 can include a step of determining whether the workpiece should be repositioned (step S2202). If it is determined that no repositioning is needed, the workpiece loading process 2000 can continue without repositioning the workpiece. However, if it is determined that the workpiece should be repositioned, the repositioning workpiece sub-process S2200 can continue such that the workpiece is repositioned. This repositioning determination can be made based on the object information (either or both of the case information and / or the object parameter information) obtained in the obtaining workpiece information sub-process S2100 and / or previously obtained information. Alternatively or additionally, the repositioning determination can be made based on real-time processing of sensor data representative of the workpiece (e.g., as collected by 2D / 3D cameras associated with the object loader 500, the workpiece repositioning device 600, and / or the entire system 100) or based on determining workpiece information prior to or during determining whether to reposition the workpiece. The workpiece information can be compared to a threshold orientation requirement, e.g., requiring the orientation to be within 1%, 5%, or 10% of an angular threshold along each of the three rotational axes (pitch, roll, yaw). Similarly, each of the alignment and realignment steps S2210-S2242 requiring an alignment determination can be based on a comparison between the workpiece information obtained as described above and an appropriate angular threshold value. Each alignment determination step can require reacquiring the workpiece information prior to making the determination. In embodiments, the workpiece information can be continuously or repeatedly monitored and / or updated during the orientation and / or position adjustment.
[0101] The reposition workpiece sub-process S2200 can include a step of determining whether the yaw of the workpiece is aligned (step S2210). If it is determined that the yaw is not properly aligned, the reposition workpiece sub-process S2200 can provide instructions for aligning the yaw (step S2212). In one embodiment, a workpiece can not be properly aligned in its yaw if it is misaligned with the task location 114. For example, the lengthwise direction of the workpiece can not be aligned within some angular threshold (e.g., within 10%, within 5%, within 1%) of the direction of movement of the conveyor of the task location 114. As an example of yaw alignment, the processor can determine how the workpiece should be aligned in its yaw, and process instructions for causing the yaw alignment to occur. The repositioning gantry of the workpiece repositioning device can operate to move the workpiece about the yaw axis of the workpiece. Alternatively, the repositioning gantry can move the workpiece in the yaw direction, rather than simply along a single axis. In embodiments, the task location 114 can be the transfer cell 104, and the conveyor can be the repositioning device conveyor 620. In embodiments, yaw alignment can be performed by the workpiece repositioning device 600 using the repositioning surface 630 in conjunction with various actuators associated therewith.
[0102] The reposition workpiece sub-process S2200 can include a step of determining whether the pitch of the workpiece is aligned (step S2220). If it is determined that the pitch is not properly aligned, the reposition workpiece sub-process S2200 can provide instructions for aligning the pitch (S2222). As an example of pitch misalignment, a workpiece can not be properly aligned with the task location 114. For example, the lengthwise direction of the workpiece can not be within some angular threshold (e.g., within 10%, within 5%, within 1%) of the direction parallel to the direction of movement of the conveyor of the task location. As an example of pitch alignment, the processor can determine how the workpiece should align its pitch, and process instructions for causing the pitch alignment to occur. For example, the processor can process and send instructions to the repositioning gantry. The repositioning gantry can move the workpiece about the pitch axis of the workpiece. Alternatively, the repositioning gantry can move the workpiece in the pitch direction, rather than along a single axis. In embodiments, the task location 114 can be the transfer cell 104, and the conveyor can be the repositioning device conveyor 620. In embodiments, pitch alignment can be performed by the workpiece repositioning device 600 using the repositioning surface 630 in conjunction with various actuators associated therewith.
[0103] The reposition workpiece sub-process S2200 can include a step of determining whether the roll of the workpiece is aligned (step S2230). If it is determined that the roll is not properly aligned, the reposition workpiece sub-process S2200 can provide instructions for aligning the roll (step S2232). As an example of a roll misalignment, the workpiece can not be properly aligned with the task location 114. For example, the normal vector of the bottom surface of the workpiece can not be within some angular threshold (e.g., within 10%, within 5%, within 1%) of intersecting the surface plane of the conveyor of the task location. As an example of a roll alignment, the processor can determine that the workpiece should have its roll aligned, and process instructions to cause roll alignment to occur. For example, the processor can process and send instructions to the repositioning gantry. The repositioning gantry can move the workpiece about the roll axis of the workpiece. Alternatively, the repositioning gantry can move the workpiece in the roll direction without moving along a single axis. In embodiments, the task location 114 can be the transfer unit 104, and the conveyor can be the repositioning device conveyor 620. In embodiments, roll alignment can be performed by the workpiece repositioning device 600 using the repositioning surface 630 in conjunction with various actuators associated therewith.
[0104] The reposition workpiece sub-process S2200 can include a step of determining whether the yaw of the workpiece has become misaligned (step S2240, similar to step S2210), e.g., due to problems with pitch and / or roll alignment. If it is determined that the yaw is not properly aligned, the reposition sub-process S2200 can provide instructions for aligning the yaw (S2242). Yaw alignment S2242 can be performed in a similar manner as previously described yaw alignment S2212.
[0105] The reposition workpiece sub-process S2200 can include a step of determining whether the position of the workpiece is suitable (S2250). If the position is determined to be unsuitable, the reposition workpiece sub-process S2200 can provide instructions for adjusting the position of the workpiece (step S2252). As an example of an unsuitable position, the workpiece can not be located in the correct position relative to the task location 114. For example, the center point of the workpiece can not be within a threshold of the center of the conveyor in the width direction of the task location. As another example, a side edge of the workpiece can not be within a threshold of a side edge of the conveyor. As an example of a position adjustment, the processor can determine that the workpiece should adjust its position and process instructions to cause the position adjustment to occur. For example, the processor can process and send instructions to the repositioning gantry. The repositioning gantry can adjust the position of the workpiece relative to the conveyor of the task area. In embodiments, the task location 114 can be the transfer unit 104 and the conveyor can be the repositioning device conveyor 620. In embodiments, object position adjustments can be performed by the workpiece repositioning device 600 using the repositioning surface 630 in conjunction with various actuators associated therewith.
[0106] The order of the steps of the reposition workpiece sub-process S2200 is not limited to the order mentioned above. The steps can be performed in any suitable order, combined with another step, including in other sub-processes, or combined with steps in other sub-processes. For example, the position and yaw of the workpiece can both be adjusted in a single step. Further, in some embodiments, some or all of the steps of the reposition workpiece sub-process S2200 can be omitted or repeated as desired. For example, it can not be necessary to determine and / or cause the pitch and roll of the workpiece to be aligned (steps S2220-S2232).
[0107] Figure 8C Another embodiment of the reposition workpiece sub-process S2200 is depicted. In embodiments, the reposition workpiece sub-process S2200 can include a step of accessing workpiece information S2260. For example, this workpiece information can have been obtained in the obtain workpiece information sub-process S2100 and / or accessed from the memory of the system. In some embodiments, less than all of the workpiece information is accessed during the access workpiece information S2260 step. For example, only the position and orientation of the workpiece can be accessed. As another example, the size of the workpiece can also be obtained. Reducing the amount of information to be accessed during the access workpiece information S2260 step can assist in improving performance and reducing the processing power required. As yet another embodiment, the workpiece information can be obtained by a camera, such as a camera attached to the repositioning device or attached to a camera mount positioned in front of the workpiece in the direction in which the workpiece is moved toward the loader.
[0108] In embodiments, the repositioning workpiece sub-process S2200 can include a step of laterally moving the repositioning surface S2262 based on the accessed workpiece information. In some embodiments, laterally moving the repositioning surface is based on the accessed workpiece information S2262 step, and the system assists in moving the repositioning surface of the repositioning device, such as the repositioning surface 630 of the workpiece repositioning device 600, to better engage the workpiece. For example, by moving the repositioning surface of the repositioning device, the risk of damaging the workpiece can be reduced. In some embodiments, the repositioning surface of the repositioning device can laterally move the repositioning surface such that a reference point, such as a center point between two repositioning surfaces, is located at or near a determined location of the workpiece (e.g., determined in step S2112). The repositioning surface can be moved by one or more motors, such as the linear gantry actuator 640 of the workpiece repositioning device 600.
[0109] In embodiments, the repositioning workpiece sub-process S2200 can include a step of rotationally moving the repositioning surface S2264 based on the accessed workpiece information. In some embodiments, this step can assist in better aligning the workpiece for loading onto the loader while reducing potential damage to the workpiece during repositioning. In various embodiments, the accessed workpiece information can be an orientation of the workpiece (e.g., as determined in step S2112). Based on the accessed information, the system can cause one or more repositioning surfaces of the repositioning device (e.g., the repositioning surface 630 of the workpiece repositioning device 600) to rotate. For example, the repositioning surface can rotate to correspond to the orientation of the workpiece. The repositioning surface can be rotated by a rotational motor, such as the rotational actuator of the workpiece repositioning device 600.
[0110] In embodiments, the repositioning sub-process S2200 can include a step of reducing the distance between the repositioning surface and the workpiece S2266, e.g., based on the accessed workpiece information. In some embodiments, this step can assist in ensuring better clamping of the workpiece and / or reducing the likelihood of damaging the workpiece during repositioning and / or increasing the likelihood of successful repositioning. In various embodiments, the step of reducing the distance between the repositioning surface and the workpiece S2266 can be accomplished by moving the workpiece or the repositioning surface. For example, one or more of the repositioning surfaces can be moved by a linear motor to move the repositioning surface closer to the workpiece. For example, the linear actuators 660 of the workpiece repositioning device 600 can be used to move one or both of the repositioning surfaces. In determining the extent to which to move the repositioning surface, the system can take into account various factors. For example, if only a single repositioning surface is used, the system can move the repositioning surface to be located at a pre-defined position. If two repositioning surfaces are used, the distance between the two surfaces can be reduced until the surfaces are located near the workpiece or in contact with the workpiece. Determining the distance to move the surface can be based on various types of data such as proximity data, image data, etc.
[0111] In embodiments, the repositioning sub-process S2200 can include a step of laterally and / or rotationally repositioning the workpiece S2268. In some embodiments, this step can be used to better align the workpiece for loading onto the object loader 500 and / or to better load the workpiece into the container. In various embodiments, the step of laterally and / or rotationally repositioning the workpiece S2268 can be accomplished by laterally and / or rotationally moving the repositioning surface. For example, linear and / or rotational motors can be moved to laterally / rotationally move the repositioning surface. For example, the workpiece repositioning surface 630 of the workpiece repositioning device 600 can be moved by any combination of the gantry actuator 640, the rotational actuator 650, and / or the linear actuator 660. The relative linear / rotational orientation of the repositioning surface after movement can be pre-determined. For example, the repositioning surface can be moved such that a reference plane coplanar with the repositioning surface is aligned in a certain pre-determined orientation. As another example, a reference line between, parallel to, and passing through the workpiece travel direction is aligned in a certain direction.
[0112] In embodiments, the repositioning workpiece sub-process S2200 can include a step of increasing the distance between the repositioning surface and the workpiece S2270. In some embodiments, this step can serve to allow the workpiece to travel more freely after repositioning. In some embodiments, this step can serve to reduce the likelihood that the workpiece becomes misaligned after having been repositioned. In some embodiments, the step of increasing the distance between the repositioning surface and the workpiece S2270 step can be accomplished by actuating the linear motor to move the repositioning surface away from the workpiece, similar to the step S2266 described above.
[0113] In embodiments, the repositioning workpiece sub-process S2200 can include a step of updating workpiece information S2272. In some embodiments, this step can serve to ensure that the system has a more accurate record of the current information for the workpiece. For example, the updated workpiece information can include the position and / or orientation of the workpiece. For example, if the system is configured to position and align the workpiece to a particular position / orientation, this workpiece information can be updated with the pre-determined information. As another example, the workpiece information can be updated based on sensed data (e.g., imaging data) regarding the repositioned workpiece, such as based on image data.
[0114] It should be noted that the various steps of the repositioning workpiece sub-process S2200 described above can be combined, omitted, or rearranged as desired. For example, moving the repositioning surface laterally and rotationally can occur simultaneously. As another example, laterally and / or rotationally repositioning the workpiece can occur simultaneously with decreasing the distance between the repositioning surface and the workpiece. As a further example, the step of increasing the distance between the repositioning surface and the workpiece can not be performed. This can occur, for example, when the distance between the workpiece and the repositioning surface is large enough to allow the workpiece to freely pass over the repositioning surface after the workpiece has been repositioned.
[0115] Reference Figure 8DEmbodiments of the position workpiece on loader sub-process S2300 are described with respect to embodiments of the position workpiece on loader sub-process S2300. The sub-process S2300 can be performed to transfer a workpiece or target object from the transfer unit 104 (or other suitable location) to an object loader, such as the object loader 500 / 700. Although the various steps of the position workpiece on loader sub-process S2300 can be performed in any suitable order, including some optional or omitted steps, the sub-process can obtain various positioning information that indicates how the workpiece W, which can have been repositioned by previously described sub-processes, is to be moved toward and / or placed into the container. For example, if the obtained positioning information indicates how the workpiece W is to be moved toward the container, the positioning information can include various characteristics of the workpiece W (both object parameters and situational information). For example, the positioning information can include information about any one of position, orientation, weight, center of mass, precision, etc. The positioning information can additionally or alternatively include information about movement characteristics, such as any one of velocity, acceleration, path, collision avoidance, confidence, etc. Such positioning information can be obtained, for example, by accessing a data store, and / or can be obtained during the positioning sub-process by using sensors such as 2D / 3D cameras, weight sensors, etc.
[0116] The positioning information can indicate how the workpiece W is to be placed within the container (e.g., a target loading position), and can include obtained information that indicates a current state of the container. The container state information can be obtained, for example, by one or more imaging devices such as 2D and 3D cameras. From such a state, the system can determine an initial target loading position S2302. As an example, based on obtained 2D and / or 3D data that indicates a current state of the container (e.g., any one of the position, orientation, weight, precision, etc. of objects within the container), the system can determine a suitable position, orientation, pose, etc. of the workpiece W. The determine initial target loading position S2302 step can also take into account various characteristics of objects that have been placed within the container, such as top surface topology, precision, etc. The determine initial target loading position S2302 can be at least partially replaced by or delayed until completion of the determine workpiece placement sub-process S2500. Accordingly, further embodiments can be realized in review of the later described determine workpiece placement sub-process S2500.
[0117] In embodiments, the positioning information of how the workpiece W will be placed within the container can additionally / alternatively indicate a direction in which the workpiece W will be loaded into the container. For example, embodiments of the workpiece positioning on loader sub-process S2300 can include a step of determining an initial throw S2304. As used herein, the term "throw" refers to the manner in which the workpiece is delivered from the object loader 500, e.g., into the container. Various embodiments of different ways in which the workpiece W can be thrown will be described in greater detail below. In the determining initial throw S2304 step, various throw information can be considered. For example, a target loading location, e.g., the result of the determining initial target loading location S2302 step can be a parameter considered in determining the initial throw information. The throw information can include information describing the direction and manner in which the object or workpiece is released from the object loader. This can be particularly important in certain situations, such as when the size of the opening of the container is limited and / or the current state of the container indicates that the container is about to reach full capacity. In such situations, movement of the loader into and / or within the container can be limited. Other considerations can include object information (e.g., weight, delicacy, surface friction, rigidity, etc.) regarding the workpiece W. Various alternatives and / or additional considerations and processes for determining a throw, as well as various aspects of the throw information, can be discussed further below, which can apply in part or in whole here.
[0118] In embodiments, the workpiece positioning on loader sub-process can include a step of determining whether to reposition the side walls of the loader S2306. The loader slider system 530 described previously is an embodiment of the side walls of the loader. When determining where to position the side walls of the loader, various information can be considered. For example, the information can include throw information resulting from the determining initial throw S2304 step. More specifically, depending on the type and / or direction of throw specified by the throw information, the side walls of the loader can be positioned to facilitate such a throw. For example, if it has been initially determined that the workpiece will be thrown in a leftward direction, the side walls can be positioned to the right of the workpiece W. As another example, the information can include object information regarding the workpiece W. For example, the information can relate to the size, shape, delicacy, etc. of the workpiece W. As yet another example, the information can be based on the location of the workpiece W relative to the delivery conveyor, e.g., the repositioning device conveyor 620.
[0119] If it is determined that the side wall of the loader should be repositioned (S2306: YES), the system can perform the step of repositioning the side wall S2308. This can be accomplished, for example, by providing instructions to cause the side wall of the loader to be repositioned, such as by actuating the slider actuator 534, which is operably connected to the slider arm 532, as previously disclosed. In repositioning the side wall of the loader in step S2308, the side wall can optionally be positioned toward the first side of the loader or the second side of the loader opposite the first side. Alternatively, the side wall of the loader can be positioned at any position between the first side and the second side as determined by the system to be appropriate.
[0120] Embodiments of the sub-process of positioning a workpiece on a loader S2300 can also include the step of moving the workpiece toward the loader S2310. For example, the workpiece W can be moved to an end edge of the conveyor system to be positioned for loading onto the loader. For example, the repositioning device conveyor 620 of the repositioning device 600 previously described can be used to move the workpiece W to an end edge of the repositioning device conveyor 620. As an alternative example, an additional conveyor system can be positioned after the repositioning device conveyor 620 of the repositioning device 600 in the direction of movement of the workpiece W toward the loader. The additional conveyor system can be operated to move the workpiece toward an end edge thereof.
[0121] Embodiments of the sub-process of positioning a workpiece on a loader S2300 can also include the step of determining whether the loader should be repositioned S2312. The loader can be determined to be repositioned to achieve any number of benefits. For example, the loader can be repositioned to facilitate transfer of the workpiece from the conveyor system used to move the workpiece to the loader. The loader can additionally or alternatively be determined to be repositioned to facilitate securing the workpiece on the loader. The loader can additionally or alternatively be determined to be repositioned based on the initial target loading position or initial throw determination. The loader can additionally or alternatively be determined to be repositioned based on information about the workpiece itself (e.g., fragility, weight, detected features, etc.). As can be appreciated from the considerations described above, one will recognize that the data used to make the repositioning determination (in step S2312) can come from a variety of different sources, such as the storage system of the system, cameras, sensors, etc. If it is determined that the loader should be repositioned (S2312: YES), the system will cause the loader to be appropriately repositioned in step S2314.
[0122] In embodiments, the system can be designed such that the step of determining whether the loader should be repositioned S2312 is unnecessary. For example, the initial or original positioning of the loader can be considered to be a suitable positioning for loading the workpiece onto the loader. For example, the initial / original positioning can be such that the top surface of the loader is positioned in substantially the same plane as the top surface of the conveyance system used to move the workpiece toward the loader, and can be positioned such that the edges of the loader are adjacent to the end edges of the conveyance system. In such cases, the system can be designed to avoid including the step of determining whether the loader should be repositioned S2312. When the workpiece is moved toward the loader or just before the workpiece is to be loaded onto the loader, it can be determined that the loader will always be in a suitable positioning, thereby making the repositioning determination unnecessary.
[0123] As previously discussed, not all embodiments include every step of the workpiece loading process 2000. In embodiments, at least a portion of the repositioning workpiece sub-process S2200 can be omitted. Omitting this step can raise issues that can be addressed in other steps of the process that occur later. For example, if the workpiece is not repositioned in the repositioning workpiece sub-process S2200, it can still be desirable to properly position the workpiece on the loader and / or to position the workpiece such that it can be adequately loaded into the container. In some embodiments, this can be accomplished by repositioning the loader to load the workpiece thereon. As an example, the system can determine (e.g., based on camera or other sensor data) the pose or orientation of the workpiece as it is moved toward the loader (e.g., during step S2310). Based on this imaging data, the system can determine the relative position of the workpiece on the conveyance system that is moving the workpiece toward the loader, and can determine the skew angle of the workpiece about the yaw axis. Based on the determined position and / or skew angle, the loader can be repositioned to accommodate or match the non-ideal positioning of the workpiece on the conveyance system. For example, if the workpiece is positioned in the middle of the conveyance system, but has a skew angle of 45 degrees, the loader can be positioned toward the middle of the conveyance system, but rotated relatively at a 45 degree skew angle in order to receive the workpiece. The repositioned loader can facilitate proper alignment and support by the loader on the top surface of the loader as the workpiece is moved onto the loader. In other examples, other rotational alignment or positional aspects can be corrected during transfer of the workpiece or object onto the object loader (e.g., by positioning of the object loader), or after the workpiece or object is received onto the object loader (e.g., by action of the slider arm system 530 of the object loader 500).
[0124] Embodiments of the sub-process S2300 of positioning the workpiece on the loader can include a step of moving the workpiece onto the loader S2316. This can be done in any number of ways. For example, the workpiece can be pushed or slid onto the loader by using a pusher to move the workpiece. As another example, a conveyor system for conveying the workpiece toward the loader (e.g., the repositioning device conveyor 620) can also be used to move the workpiece onto the loader. More specifically, the conveyor system can be used to slide the workpiece over the top surface of the loader so as to position it on the loader. As a further example, the conveyor system and the conveyor of the loader can work in conjunction to move the workpiece from the conveyor system to the conveyor of the loader. More specifically, the conveyor system and the conveyor of the loader can operate at the same or near the same speed so that the workpiece is transferred onto the loader. The amount, length of time, or strength of the pushing, conveying, or joint conveying can be determined based on various factors. For example, one of the factors can be the coefficient of friction of at least one of the workpiece and / or the surface of the conveyor system or the loader. For example, if the workpiece is to be pushed onto the loader, the force with which the workpiece is pushed can be based on the relative friction between the workpiece and the surface of the conveyor system and / or the surface of the loader. Another example of a factor can be at least one physical dimension of the workpiece, such as length. If the workpiece is to be pushed, the length of the push can be adjusted so that an end of the workpiece is positioned at or near a particular location of the loader, such as a back wall. If the workpiece is to be (jointly) conveyed, the length of time that the conveyor is operated can be adjusted based on the length of the workpiece so that an end of the workpiece is positioned at or near a particular location. In some cases, it can be considered appropriate for the workpiece to be positioned on the loader so that the loader directly supports less than the entire workpiece surface. For example, the workpiece can be moved onto the loader so that a portion of the workpiece hangs over a side of the loader.
[0125] In embodiments, during the step of moving the workpiece onto the loader S2316, the loader can be moved / repositioned while the workpiece is moved on the loader. In addition to being moved / repositioned, the loader can also actuate one or more components thereon to facilitate achieving the intended purpose. In embodiments, the synchronized movement can assist in facilitating improving the orientation / posture of the workpiece on the loader. For example, the synchronized movement / actuation can be used to rotate the workpiece in a certain direction. For example, the distal end of the loader can be positioned towards the middle (in the vertical direction) or the top third of the workpiece, and simultaneously contact the workpiece. As the workpiece is pushed or conveyed towards the loader, the loader can move towards the workpiece so as to change the relative movement force vector on the workpiece from a horizontal direction to a diagonal direction. This can cause the workpiece to flip onto its adjacent major surface, e.g., rotate the workpiece 90 degrees along the pitch direction. As another example, the loader can be positioned below the plane of the top surface that includes the conveyance system for moving the workpiece towards the loader. As the workpiece is conveyed onto the lower positioned loader, the workpiece can be flipped onto its adjacent major surface, thereby rotating the workpiece 90 degrees along the pitch direction. Such flipping can be facilitated by additionally moving the loader and / or actuating the conveyors of the loader to move in such opposite direction as the workpiece is being conveyed. When flipped 90 degrees in the pitch direction, the workpiece can be rotated another 90 degrees in the pitch direction. In some embodiments, this can be done by moving the loader or moving the conveyors of the loader in the opposite direction as the workpiece is being conveyed towards the loader. Flipping the workpiece so that it is 90 or 180 degrees from the position on the conveyance system in the pitch direction can facilitate properly securing the workpiece on the loader, or facilitating or improving loading the workpiece into the container.
[0126] Figure 8E Embodiments of a workpiece loading process 2000 are shown that include a workpiece destination orientation sub-process S2400. In embodiments, the workpiece destination orientation sub-process S2400 can cause a workpiece positioned on top of a loader to be moved towards a destination at or near a container. While the steps of the workpiece destination orientation sub-process S2400 can occur in various orders, embodiments can begin with a step of determining a target loader destination S2402. In determining the target loader destination, the system can consider various factors. For example, the target loader destination can be based on a target loading location. For example, if the workpiece is placed near the top of a container, the loader can be positioned near the upper portion of the opening of the container. The target loader destination can additionally or alternatively be based on other factors, such as avoiding obstacles near the container. In other embodiments, the target loader destination can be predetermined.
[0127] In some embodiments, the transporting workpiece sub-process S2400 can include a step of determining a motion plan S2404. The motion plan can correspond to a planned movement of the loader through the physical space, and can include a series of motion plan parameters including at least a velocity, trajectory, and pose or orientation of the end effector. The motion plan can include a planned rotation and / or tilt (e.g., change in pose or orientation) of the end effector (e.g., of the object loader 500). The motion plan can have the target loader destination as a terminal point. The motion plan can take into account various considerations. For example, the motion plan trajectory can include avoiding obstacles within the movement path of the object loader. The motion plan trajectory can also take into account avoiding contact of other components of the robot arm with obstacles. The motion plan trajectory can also take into account movement of the robot base relative to the ground. The motion plan parameters can also take into account timing and / or velocity of movement. For example, the time required to move the workpiece from a position proximate to the transport system to the target loader destination can be minimized by selecting an appropriate motion plan. The velocity of movement of the loader can also be set in the motion plan. The velocity can be increased to ensure efficiency, or can be decreased to minimize the chance that the workpiece will fall during transport toward the target loader destination. The velocity can also be adjusted based on various characteristics of the workpiece, such as fragility, center of mass, etc. The velocity can also be adjusted based on a confidence parameter, such as the degree of certainty of the system that the loader is properly supporting the workpiece.
[0128] In embodiments, the transporting workpiece toward destination sub-process S2400 can include a step of determining whether to reposition the workpiece S2406. The determination can be based on one or more factors of repositioning information. The repositioning information can include, for example, determined information indicating whether the loader is adequately supporting the workpiece. The repositioning information can further include determined information indicating whether the workpiece is properly aligned with the side walls and / or back wall of the loader. The repositioning information can be based on one or more data sources. For example, the step of determining whether the workpiece should be repositioned S2406 can be based on image data of the workpiece on the object loader and / or sensor data from the loader. For example, the image data can be captured from a camera positioned above the object loader and / or above a top surface of a transport system used to move the workpiece toward the loader. Alternatively, the image data can be from a camera positioned on the loader itself. As another example of a data source, a proximity sensor can be positioned within a portion of the loader to determine how close the workpiece is to the proximity sensor. For example, if the proximity sensor is located in the back wall or side wall of the loader, the proximity sensor can provide data corresponding to the proximity of the workpiece to the back wall or side wall of the loader. If the workpiece is not close enough to the back wall or side wall, the system can determine that the workpiece needs to be repositioned on the loader. If it is determined that the workpiece needs to be repositioned (S2406: YES), the system can perform a repositioning workpiece on loader sub-process S2450, embodiments of which are described in greater detail below.
[0129] Some embodiments of the workpiece sub-process S2400 of transporting toward the destination can also include the step of tilting S2408 the object carrier. The tilting can occur about one or more axes, and can be performed to achieve a particular orientation or pose of the object carrier. Tilting the object carrier can have the benefit of allowing the object carrier to move faster toward the target carrier destination. More particularly, by tilting the object carrier, when the carrier is moving, the chances of the workpiece falling off the object carrier are reduced. For example, if the object carrier is arranged in a neutral orientation (e.g., the carrier conveyor is parallel to the ground), changes in direction of the object carrier during movement can cause the workpiece to shift laterally back and forth (e.g., in the horizontal dimension) due to momentum, as the workpiece is only supported against gravity by the conveyor surface. The object carrier can be tilted in a first direction away from the neutral orientation, such that the workpiece is supported against gravity by two surfaces (e.g., the conveyor surface and a back or side wall). In such an orientation, the back or side wall can form a "V" shape, in which the workpiece can rest. In this orientation, the cradle created by the V-shaped arms will prevent or reduce shifting of the workpiece on the object carrier in at least one horizontal dimension. The object carrier can be further tilted in a second direction away from the neutral orientation, such that the workpiece is supported against gravity by three surfaces (e.g., the conveyor surface, the back wall, and the side wall). In this orientation, the three surfaces create an inverted hollow pyramid shape. The sides of the inverted hollow will prevent or reduce shifting of the workpiece on the object carrier when the workpiece rests inside the inverted hollow. Thus, tilting the object carrier can help ensure adequate support of the workpiece by the object carrier. The amount and direction in which the carrier is tilted during the tilting S2408 step can be predetermined, or can be based on one or more factors. For example, factors that can be considered can be information about the workpiece, such as its surface friction and / or its center of mass, etc. and / or the friction of the support surfaces. Another factor can be the speed at which the object carrier is to be moved, such as the speed arranged by the determined motion plan. Another factor can be the positioning of the workpiece on the object carrier. For example, if the image or proximity data indicates that the workpiece is misaligned with the side and / or back walls of the object carrier, the object carrier can be tilted at a greater angle to cause the workpiece to slide along the top surface of the object carrier toward the side and / or back walls. This can help ensure that the workpiece is adequately supported by the side and / or back walls of the carrier during movement of the carrier toward the target carrier destination. As still another example, the amount of tilt of the object carrier can depend on the side on which the side wall of the object carrier is located and the motion required of the carrier. For example, in the case where the object carrier is moving from left to right, if the side wall supports the workpiece on the left side rather than on the right side, the object carrier can not need to be tilted (or tilted to a lesser degree). In such a case, the momentum of the workpiece will tend to push the workpiece back toward the side wall, as the side wall is "behind" the workpiece relative to the direction of movement of the object carrier.When the object carrier is moving from left to right, if the side wall is to the right of the workpiece, there is no horizontal support "behind" the workpiece without tilting the object carrier. Therefore, tilting the object carrier in this case causes the carrier conveyor portion of the object carrier to act as a stop for the workpiece against horizontal movement of the object carrier. If the object carrier is to be tilted more for alignment of the workpiece, the angle of tilt of the object carrier can be reduced to ensure that the carrier is not tilted too much as it moves toward the target carrier destination.
[0130] Some embodiments of the sub-process of conveying the workpiece toward the destination S2400 can include the step of moving the carrier to the target carrier destination S2410. The carrier can be moved in a tilted or non-tilted state. In some embodiments, the carrier is moved in a tilted state, which, as discussed above, has the benefit of allowing the carrier to move at a faster speed and reduces the chance of dropping the workpiece. In moving the carrier to the target carrier destination S2410, the carrier can be caused to move along the determined motion plan.
[0131] In embodiments, moving the carrier to the target carrier destination can include the steps of updating the motion plan S2412 and executing the updated motion plan S2414. These steps can be performed if the system determines that it is not appropriate to continue executing the previously determined motion plan. For example, while the carrier is in the process of moving to the target carrier destination, the system can detect that a collision has occurred or is likely to occur. In such a case, the motion plan can be updated S2412 and executed S2414 to avoid or bypass the collision. As another example, the system can determine that the workpiece is no longer adequately supported by the object carrier. For example, the workpiece can have shifted on the object carrier while the object carrier is moving to the target carrier destination. The motion plan can be updated S2412 and executed S2414 to cause the workpiece to be repositioned to prevent further shifting of the workpiece or to minimize problems caused by the workpiece having shifted.
[0132] Figure 8FAn embodiment of a sub-process S2450 to reposition the workpiece on the loader is illustrated. In an embodiment, in step S2452, the workpiece can be repositioned on the loader by operating at least one component of the loader. For example, if it is determined that the workpiece needs to be repositioned closer or further from the back wall of the loader (e.g., based on proximity and / or imaging data), the loader can be operated to move the workpiece toward the back wall. For example, the loader can be tilted along the pitch axis such that the workpiece slides toward the back wall. As another example, the loader can have a conveyor that can be operated to move the workpiece toward the back wall of the loader. In step S2454, the system can further perform the step of determining whether the workpiece is adjacent to the back wall of the loader. This can be determined based on various data, such as the proximity data mentioned previously or the image data mentioned previously. If the workpiece is determined to be adjacent to the back wall of the loader (S2454: YES), in step S2456, the system can determine whether the workpiece is suitably supported by the side wall of the loader. This determination can also be made based on various data, such as the proximity data and / or the image data. If the workpiece is determined to not be suitably supported by the side wall (S2456: NO), in step S2458, the system can adjust the support of the workpiece. In some embodiments, the support of the workpiece can be adjusted by operating the side wall of the loader. For example, the side wall of the loader can be moved to become adjacent to the workpiece. As another example, the loader can be tilted about the roll axis by a sufficient angle such that the workpiece slides toward the side wall of the loader. By performing at least some of the steps described above, the system can improve the positioning of the workpiece on the loader to allow for greater movement speed of the loader and reduce the chance that the workpiece will fall during movement of the loader.
[0133] Figure 8G An embodiment of a sub-process S2500 to determine workpiece placement is depicted. It should be noted that the steps of this sub-process can be performed in any suitable order, and not all steps are necessary. It should also be noted that this sub-process can be performed at another point within the workpiece loading process 2000, and / or concurrently with any other process in the workpiece loading process 2000. For example, the determine workpiece placement sub-process S2500 can be performed during the position workpiece on loader sub-process S2300, e.g., by replacing the determine initial target loading position S2302 step. As another example, the determine workpiece placement sub-process S2500 can be performed after a previous workpiece is removed from the loader and placed in the container. As yet another example, the determine workpiece placement sub-process S2500 can be performed in parallel with a sub-process to return the loader to the original or initial position. In an embodiment, this step can not be performed in every cycle of loading workpieces into the container.
[0134] In embodiments, determining workpiece placement sub-process S2500 can include a step of obtaining data representative of a current loading state of the container S2502, e.g., container state information. The container state information representative of a current loading state of the container can be from one or more sources. For example, the data can be image data from one or more cameras. For example, the data can be 2D image data representative of a front view of the container. Additionally or alternatively, the data can be 3D image data representative of a front view of the container. Additionally or alternatively, the data can be 2D and / or 3D image data representative of a top view of the container taken from inside or outside the container. Additionally or alternatively, the data can correspond to a 2D or 3D representation (e.g., digital twin) of the workpieces and / or the container. The data can also represent object information about workpieces that have been loaded. For example, the object information about workpieces that have been loaded can include, e.g., physical dimensions of one or more workpieces, fragility parameters of workpieces, current compression amounts of workpieces, weights of workpieces, physical characteristics of workpieces, unloading and / or loading priorities of workpieces, etc. In some embodiments, the image data can be obtained from a vision system positioned on the loader. The loader can be positioned and oriented to allow the vision system to obtain images of the current loading state of the container. For example, the loader can be positioned toward the front of the opening of the container. The vision system can be positioned toward the top or above the container, with the field of view of the vision system angled downward toward the opening of the container. This can allow the vision system to obtain image data about both the height loading state of the container and the top surface loading state of the container at the same time. In some embodiments, the image data can be obtained by a vision system positioned away from the object loader, on another robotic system, or fixedly positioned to provide a view of the container suitable for generating container state information.
[0135] In embodiments, container state information representative of a current loading state of the container is not obtained at every cycle. That is, the system can determine the current loading state of the container based on previously obtained images and / or based on information about previously loaded items.
[0136] In an embodiment, the determining workpiece placement sub-process S2500 can include a step of extrapolating a surface S2504 of the current load state of the container. Although any and all surfaces of the current load state of the container can be extrapolated, embodiments of extrapolation of the top surface will be discussed in greater detail for purposes of discussion. In an embodiment, the top surface of the current load state of the container can be extrapolated from 2D data representing a front view of the container. For example, the system can generally know (e.g., pre-stored in memory) information about the container, such as its internal dimensions. Using such information as a reference point, the system can determine, for example, based on image data, the relative position of previously placed items within the container, including the length, width, and depth of at least a portion of the items. Thus, the system can extrapolate the top surface of the current load state of the container based on the determined size and shape of the previously placed items, for example, based on the obtained image data. In another example, the system can extrapolate the surface of the current load state of the container based on a record keeping of the position, pose, and orientation of previously placed items within the container. For example, a 3D model (e.g., digital twin) can be generated to represent the stacked structure of the previously placed items. From the 3D model, the system can extrapolate the surface (e.g., top surface) of the current load state within the container. In another example, the system can extrapolate the top surface of the current load state of the container based on a combination of image and record keeping data, use one set of data to confirm extrapolation based on another set of data, or use both sets of data to extrapolate the top surface simultaneously.
[0137] In an embodiment, the determining workpiece placement sub-process S2500 can include a step of obtaining information (e.g., object information) S2506 about the workpiece to be placed within the container. This information can be obtained from any of a number of different sources. For example, object information about the workpiece to be placed can be accessed from a database containing known information about the workpiece. For example, the object information can include the physical dimensions of the workpiece. Based on the physical dimensions of the workpiece, the system can assign a weight to the workpiece, knowing that the workpiece can be within a certain weight range. Alternatively, the object information about the workpiece can be retrieved from the memory of the system. For example, if the obtaining workpiece information sub-process S2100 is performed, some or all of the object information can be accessed from the memory of the system. As another example, object information about the workpiece can be obtained or verified while the workpiece or object is on the object loader. For example, a vision system on or outside the object loader can be used to obtain image data from which the object information can be determined. The loader can additionally or alternatively include one or more force-torque sensors. Data from these sensors can be used to determine the weight, center of mass, etc. of the workpiece.
[0138] In embodiments, the determining workpiece placement sub-process S2500 can comprise a step of determining one or more candidate loading positions S2508. In the determining candidate loading positions S2508 step, the system can determine one or more suitable positions within the loader where a workpiece can be placed. As discussed below, each determined candidate loading position can provide a suitable position for the workpiece currently to be placed based on any combination of various factors. For example, the system can make said determination based on at least 2D and / or 3D image data representing the front face of the container. With 2D information, the system can determine a height at which a workpiece can be placed. The determining candidate loading positions S2508 step can additionally or alternatively be based on extrapolated surfaces of the loading state of the container, e.g. obtained at S2502. This information can be used to determine a position at which a workpiece can be placed in the depth and width directions of the container. For example, the system can determine whether there is sufficient space within a portion of the container to place a workpiece. As another example, the system can determine whether a previously placed workpiece has sufficient support based on a surface profile determined from the extrapolated surfaces of the loading state of the container. Another example of a parameter that the system can consider when determining candidate loading positions S2508 is information about the workpiece to be placed. For example, the system can determine whether the physical dimensions of the workpiece allow the workpiece to be placed at a certain position. Yet another example of a parameter that the system can consider when determining candidate loading positions S2508 is information about previously placed workpieces. As previously mentioned, this information can be based on current or recent sensor information (e.g. image data), or obtained by keeping a record of one or more pieces of information about previously placed workpieces. For example, the position of a previously placed workpiece can be (temporarily) stored. This stored data can represent at least the top surface of the current stack structure of previously placed workpieces within the container. Additionally or alternatively, the position of each previously placed workpiece can be stored as a 3D model (e.g. digital twin). Other information about previously placed workpieces can also be stored and used in determining candidate loading positions S2508. For example, information about any of the rigidity, fragility, compressibility, weight, physical characteristics, surface friction, etc. of a workpiece can also be taken into account. For example, a fragility parameter can be assigned to a workpiece that can be used in determining a suitable loading position. As another example, the weight of a workpiece can be included as a parameter about the workpiece to determine a suitable loading position.
[0139] In embodiments, the determining workpiece placement sub-process S2500 can include a step of selecting a load location S2510. This step can be used to select which of the determined candidate load locations (e.g., as determined in step S2508) is the most appropriate location to place the workpiece within the container. Alternatively, in embodiments, the determining candidate load locations S2508 can not be present, and selecting a load location S2510 for the workpiece can be performed without determining candidate load locations. In embodiments of selecting a load location S2510 for the workpiece, the system can consider various parameters. For example, the system can consider an extrapolated or sensed top surface of the current load state of the container. For example, the system can use this parameter to preferentially place workpieces on the sides or back of the container. The system can also use this parameter to ensure that the one or more portions of the stack structure do not become too tall relative to other areas, thereby reducing the likelihood of a portion of the stack structure collapsing. Another example of a parameter that the system can consider when selecting a load location S2510 for a workpiece is one or more pieces of information about previously placed workpieces. For example, the system can consider the fragility of previously placed workpieces. The system can ensure that the total weight of the items including the workpiece to be placed will not exceed a threshold determined based on the fragility of the previously placed items below. As another example, the system can consider the weight of the workpiece to be placed and the rigidity of one or more previously placed items below. This can help ensure that the items below have sufficient structural rigidity to support items placed on top of them. The weight of previously placed items can be considered to help ensure proper center of mass. The load location for a workpiece can be selected to encourage the center of mass of the loaded container to be towards the middle of the container and towards the bottom of the container. This helps improve stability of the container when being transported from one location to another. Another example of a parameter that the system can consider is the ability of the loader to reach a particular area within the container. For example, the structure of the system can make it difficult for the loader to reach the bottom corners of the container. Thus, items with appropriate physical dimensions can have their load location selected within such corners. Another example parameter that the system can consider is the throwing ability, e.g., the direction and distance that the object loader can throw a workpiece into the container. This can allow the system to select a load location based on the ability of the item to be successfully placed in the intended location. Additional parameters considered during load location selection can include object information and / or candidate load locations for subsequent workpieces (e.g., the next one to five workpieces) to be placed. In embodiments, the system can identify subsequent workpieces to be placed after the current workpiece. Some aspects of the workpiece loading process 2000 can be performed on the subsequent workpieces concurrently with aspects performed on the current workpiece. For example, obtaining workpiece information (S2100), determining an initial target load location (S2302), determining an initial throw (S2304), determining candidate load locations (S2508), and / or other related steps can be performed for the subsequent workpieces.In selecting a load position for the current workpiece from the candidate load positions, the system can take into account potential candidate load positions for subsequent workpieces. For example, if a subsequent workpiece is particularly large, the system can select a load position that ensures there is enough room to place the remainder of the subsequent workpiece. In embodiments, the system can pre-select several (e.g., two to five) load positions for a subsequent workpiece to obtain an improved packing density.
[0140] In embodiments, the determine workpiece placement sub-process S2500 can include a step of determining whether the workpiece can be loaded S2512. In some cases, the system can be unable to determine a candidate load position (step S2508) and / or can be unable to select a load position for the workpiece (step S2510). This can be due to the system being unable to find a suitable location within the container that can accommodate the physical dimensions of the workpiece, or the system determining that none of the candidate positions can adequately support the workpiece or would cause damage to previously placed items below. As another example, the current item to be placed within the container can have a fragility parameter that is below a threshold based on the relative height of the items stacked within the container. If the system determines that the workpiece cannot be loaded (S2512:NO), the system can proceed to the unplaceable sub-process S2550.
[0141] Figure 8H Embodiments of the unplaceable sub-process S2550 are illustrated. This sub-process can be used in a variety of situations, such as when the system determines that a workpiece currently on the loader cannot be loaded into the container. This can be due to any number of different situations. For example, the system can determine that the workpiece is not properly positioned on the loader, such as a side wall being on the incorrect side of the workpiece. Alternatively, the system can determine that the container is full, that previously placed items would not support the workpiece to be placed, or that the available space within the container cannot accommodate the workpiece to be placed. As another example, the system can determine that the loader will not fit within the container on which the workpiece is placed.
[0142] In embodiments, the unplaceable sub-process S2550 can include a step of repositioning the workpiece S2552. This step can be performed if the system has determined or needs to ensure that the workpiece is in proper position on the object loader in order to be transported to the unload location. For example, the workpiece can have shifted during movement of the loader from a position near the transport system to the target loader destination (e.g., movement of step S2410). As another example, the type of movement used to move the workpiece to the unload location can be determined to require a different type of workpiece support than was required to support the workpiece during movement from the transport system to the target loader destination. In performing the repositioning workpiece S2552 step, the system can obtain information about the current position of the workpiece on the loader. As previously mentioned, the system can obtain this information in a variety of ways (e.g., proximity sensors, camera data, etc.). Based on the current position of the workpiece, the loader (or a portion thereof) can be operated to move the workpiece toward a more desirable position, improving its security and / or support. Alternatively, the repositioning workpiece S2552 step can not utilize a step of determining the current position of the workpiece on the loader. Instead, the loader (or a portion thereof) can be operated to attempt to move the workpiece toward a more desirable position regardless of its current position, e.g., by operating a slider arm system, a loader conveyor, and / or an orientation adjustment.
[0143] In embodiments, the unplaceable sub-process S2550 can include a step of determining the unload location S2554. In embodiments, this step can not be needed, e.g., if the unload location is predetermined. For example, the unload location can be predetermined to be a certain real-world point or a point relative to the base of the robot arm or relative to the target loader destination. In embodiments, various factors can be used to determine the unload location. For example, the system can take into account any obstacles in the vicinity of the loader and / or the container. The obstacles can be other components, people, or previously unplaceable items. The presence of obstacles can be obtained in any suitable manner, such as by analyzing image or sensor data. The destination is not limited to a certain point, but can be more generally defined as a region. In some embodiments, more than one unload location can be determined to be possible. In such cases, the system can select the best of the multiple possible unload conditions. The selection can be based on the presence of previously unplaceable items and / or information about the previously unplaceable items. The unload location can be determined to improve the performance of the system, avoid damaging the workpiece to be placed or the previously unplaceable workpiece, facilitate future loading or unloading of the container, etc.
[0144] In embodiments, the unplaceable sub-process S2550 can include a step of moving the loader to an unload position S2556. Prior to physically moving the loader, in some embodiments, the system can first formulate a motion plan. The motion plan can correspond to a planned path along which the loader or a portion of the robotic arm travels from a position corresponding to the target loader position to the determined unload position. The system can cause the loader to move toward the unload position (e.g., by sending a movement signal to the robotic arm).
[0145] In embodiments, the unplaceable sub-process S2550 can include a step of unloading the workpiece S2558. This step can cause the workpiece to be transferred from the loader to the unload position. This can be accomplished in a number of different ways. For example, a conveyor of the loader can be operated to release or fling the workpiece. Additionally or alternatively, the loader can be moved and / or tilted in various directions to cause the workpiece to slide out of the loader. After the workpiece has been unloaded, a return loader sub-process can be run, embodiments of which will be described later.
[0146] Figure 8I Embodiments of a workpiece repositioning sub-process S2600 are depicted. In some embodiments, the workpiece repositioning sub-process S2600 can be run to cause the workpiece to be placed within a container. This can be accomplished in a number of different ways, and can depend in part on the type / structure of the container into which the workpiece is to be placed, and / or on the shape / type of the loader, and / or on the workpiece to be placed.
[0147] In embodiments, the workpiece repositioning sub-process S2600 can include a step of determining a fling S2602. In this step, the system can determine fling parameters that indicate how the workpiece is to be unloaded from the loader. As previously mentioned, this step is not necessary to perform at this relative point in the workpiece loading process 2000. Rather, this step can be performed earlier, such as prior to or during the workpiece positioning on loader sub-process S2300. For example, this step can replace the determine initial fling S2304 step of the workpiece positioning on loader sub-process S2300. Even if the determine fling S2602 step is performed earlier or in place of a previous step, the determine fling S2602 step can be performed again to confirm that the fling is still applicable or to further refine how the fling is actually performed.
[0148] In embodiments in which the determine fling S2602 is performed, the system can select the fling from a pre-determined set of possible flings. The following is directed to embodiments in which the set of possible flings is pre-determined. Figure 9-1Further discussion of potential throws is provided. In embodiments, parameters for performing a throw can be calculated based on a throw determined from a set of possible throws, or can be recalculated for each workpiece. In determining a throw S2602, the system can consider various factors. For example, the system can consider a selected loading location for the workpiece (e.g., as selected in step S2510). The system can additionally or alternatively consider positions, poses, and orientations that a loader can take near or within a container based on an empty container or based on a current loading state of the container. The system can additionally or alternatively consider information about the workpiece to be loaded, such as object information. For example, the system can consider the friction and / or weight of the workpiece to be loaded.
[0149] In determining a throw S2602, the system can determine various parameters for operating and / or moving the loader in performing the throw. For example, the system can determine how fast to operate a conveyor of the loader. This can ensure that the item is thrown with sufficient force to travel the necessary distance to reach and sit in the intended loading location. Additionally or alternatively, an edge of the loader can be tilted at a determined angle to further increase the distance that the workpiece can travel or to clear certain determined obstacles. The system can also determine a speed at which to operate a side wall of the loader. This can facilitate moving the workpiece out from a side of the loader when there is not enough room within the container for the loader to take a more advantageous pose. That is, the system can determine that a side throw can be appropriate in certain situations. In embodiments, the system can determine that the loader should perform a throw by tilting an edge of the loader down at a large enough angle that the workpiece can slide off of a surface of the loader. Additionally or alternatively, the loader can move in a lateral direction as the workpiece is being conveyed or slid out of the loader. This can allow the workpiece to be placed more gently on a previously placed stack of items. In embodiments, the system can determine that the workpiece should be thrown in a diagonal direction. Although a diagonal throw can be performed in a number of different ways, in one embodiment this can be accomplished by operating a conveyor and a side wall of the loader. By varying the relative speeds of the conveyor and the side wall, the angle of the diagonal throw can be varied. The system can alternatively determine that some combination of the movements described above can be performed to produce the determined throw.
[0150] In embodiments, the sub-process of displacing the workpiece S2600 can include a step of determining whether the workpiece is to be repositioned S2604. The system can determine that the workpiece should be repositioned for a variety of different reasons. For example, the system can determine that the workpiece has shifted during movement from the conveyor system to the target loader destination (e.g., during step S2410). Additionally or alternatively, the system can determine that the workpiece is not adequately supported by the loader to be moved into the container. Additionally or alternatively, the system can determine that the workpiece should be repositioned to enhance the throwing performance and / or reduce the chance of unsuccessful loading of the workpiece. For example, the system can determine that the workpiece should be aligned with the edge of the loader prior to performing the throw. As another example, the system can determine that the workpiece should be extended or overhanging from the edge of the loader. If the system determines that the workpiece should be repositioned (S2604: YES), the system can cause the loader to reposition the workpiece during step S2606. For example, the conveyor of the loader can be operated to cause the workpiece to move to a different location on the top of the loader. Additionally or alternatively, the sidewall of the loader can be operated to displace the workpiece to a different location on the top of the loader. Additionally or alternatively, the pose and / or orientation of the loader can be adjusted to cause the workpiece to slide along the surface of the loader to be positioned at another location on the top of the loader. In some embodiments, this step can be performed after repositioning the loader or as part of performing the throw.
[0151] In embodiments, the sub-process of displacing the workpiece S2600 can include a step of repositioning the loader S2608. While not always required, this step can cause the loader to move to a more suitable position for unloading the workpiece. In embodiments, this step can be omitted if the target loader destination is sufficient for the system to perform the unloading process. When repositioning the loader, the system can determine a suitable position based on the determined type of throw (e.g., as determined in step S2602). The system can also determine a suitable position to minimize potential damage to the workpiece to be placed and / or previously placed items.
[0152] In an embodiment, the workpiece relocation subprocess S2600 may include the step of performing a throw S2610. This step may cause the workpiece to exit the loader and be placed inside the container. For example, the loader may be operated based on one or more throw parameters to perform a determined throw (e.g., as determined in step S2602). Depending on the throw to be performed, one or more components of the system may be operated. For example, only the conveyor or the sidewall of the loader may be operated. Alternatively, both the conveyor and the sidewall may be operated in series or in coordination. As another example, the conveyor and / or the sidewall may be operated while the loader is moving. For example, the conveyor and / or the sidewall may be operated to move the workpiece over the front or side edge of the loader while the loader is moving in a relative direction. Further discussion of throw parameters and throw operations follows relative to the following discussion. Figure 9-1 0 provided.
[0153] In an embodiment, the workpiece relocation subprocess S2600 may include the step of repositioning the loader S2612. This step can be used to place the loader in a better position to obtain an updated loading status of the container. After or during the repositioning of the loader, the system may perform the step of obtaining information representing the updated loading status of the container S2614. For example, a camera attached to the loader may be used to obtain image data of the updated loading status of the container. More specifically, after the workpiece has been thrown or repositioned to its loading position, the camera may take a photograph of the current loading status of the container. As another example, the system may operate a sensor or camera positioned separately from the loader to obtain data on the updated loading status of the container. In this example, the loader may be repositioned to provide a clear line of sight for a separate camera or sensor. For example, 2D and / or 3D image data of the container may be captured from the front. In some embodiments, the 2D and / or 3D data, alone or compared with previous 2D / 3D data, may indicate the compression status of the items inside the container.
[0154] In embodiments, the system can perform the obtaining updated loading status information S2614 step after each throw is performed. In embodiments, the system can perform the obtaining updated loading status information S2614 step less frequently and / or dynamically. For example, the obtaining updated loading status information S2614 step can be performed after one or two layers of workpieces have been placed within the container. The system can dynamically determine whether to perform the step after one or two layers based on the type of container into which the workpieces are to be placed. As another example, the system can determine a frequency at which to perform the obtaining updated loading status information S2614 step based on the number of workpieces placed within the container, where the frequency increases as more workpieces have been placed. As another example, the system can increase the frequency as the height of the stack of items within the container increases. The system can adjust the frequency at which the obtaining updated loading status information S2614 step is performed based on the type of workpiece placed within the container. For example, if the current or previous workpiece placed within the container has a rigidity and / or compressibility parameter below a certain threshold, the system can increase the frequency, which can increase the likelihood of workpiece displacement. As discussed above, the obtaining updated loading status information of the container can be performed based on newly captured image data and / or based on a record of deposited workpieces. In embodiments, the loading status information can be updated from the record of placed workpieces, and after several such updates, updated based on newly captured image data, as the record of placed workpieces provides an accurate representation of the loading status information.
[0155] In embodiments, the workpiece displacement sub-process S2600 can include a step of determining whether the workpiece was successfully loaded S2616. This step can be used to determine whether the workpiece is correctly positioned at the loading location. This step can also be used to determine whether the workpiece has the correct orientation and pose within the container. As another example, the system can determine whether the workpiece is sticking out of the container or has fallen out of the container. In some embodiments, the system can not actually perform the determination of whether the loading was successful, or can perform it later. For example, the system can proceed with subsequent workpiece loading processes primarily based on the updated loading status information (e.g., through machine learning). In some embodiments, a determination that the loading was not successful (S2616:NO) can cause the system to perform a workpiece recovery sub-process S2650.
[0156] Figure 8JEmbodiments of a workpiece recovery sub-process S2650 are depicted. It should be noted that in some embodiments of the workpiece loading process 2000, the workpiece recovery sub-process S2650 can not be utilized. For example, the workpieces can be manually recovered. As another example, the system can not attempt to recover the workpieces, but rather adjust future cycles based on knowledge that items were placed incorrectly. The incorrectly placed items can simply be in a different location than intended, rather than preventing or limiting future loading.
[0157] In embodiments, the workpiece recovery sub-process S2650 can include a step of repositioning the loader S2652. The loader can be repositioned such that a portion of the loader contacts the workpiece to be recovered. For example, the loader can be positioned such that a distal end of the loader contacts the workpiece.
[0158] In embodiments, the workpiece recovery sub-process 2650 can include a step of moving and / or actuating the loader while in contact with the workpiece S2653. This step can be used to move the workpiece back onto the loader, or can be used to cause the workpiece to move without being loaded back onto the loader. For example, a conveyor belt of the loader can be operated to pull the workpiece back onto the loader, or the loader can scoop the workpiece from the tote. As another example, a portion of the conveyor belt of the loader can be operated to apply a force to the workpiece, causing the workpiece to rotate or move in a direction. As yet another example, the loader can be used to physically contact the workpiece to cause the workpiece to be pushed in a direction, or to collapse or be pressed down towards a previously placed item.
[0159] In embodiments, the workpiece recovery sub-process 2650 can include a step of repositioning the workpiece within the tote S2654. This process can not be needed if the workpiece has already been repositioned during the step of moving and / or actuating the item loader while in contact with the workpiece S2653. As an example of when the step of repositioning the workpiece S2654 can be used, the workpiece to be recovered can be positioned on top of the item loader. In such a case, the item loader can be operated to attempt to reposition the workpiece within the tote.
[0160] In embodiments, the workpiece recovery sub-process 2650 can include a step of secondary repositioning of the loader S2655. For example, the loader can be moved to a position from which updated loading status of the tote can be obtained, such as through a vision system or camera on or off the item loader. Depending on what means is used to obtain the updated information, the item loader can be moved to an appropriate position.
[0161] In embodiments, the workpiece recovery sub-process 2650 can include a step of obtaining further updated stowed state information S2657. This step can be used to obtain information about whether the recovery process was successful. For example, the object stower can be moved so that a vision system attached to it can obtain information about the stowed state of the container. As another example, a camera system can be used to obtain 2D and / or 3D images from the front of the container.
[0162] In embodiments, the workpiece recovery sub-process 2650 can include a step of determining whether the recovery was successful S2658. For example, the system can determine whether the updated stowed state information obtained corresponds to the state expected when the initial stow attempt was successful. A successful recovery can be understood as a recovery in which the workpiece was repositioned within the container in the expected manner.
[0163] If it is determined that the recovery was not successful (S2658:NO), the workpiece recovery sub-process S2650 can include a step of determining whether the unrecovered state is acceptable S2659. This step can be used to avoid situations in which the system continues to attempt to recover the workpiece. If it is determined that the unrecovered state from the recovery attempt is acceptable (S2659:YES), the system can continue the workpiece stow process 2000 to allow other items to be placed within the container. An acceptable unrecovered state can be a state in which the workpiece has been repositioned in an unexpected manner that does not prevent successful stow of the container. For example, during repositioning, the workpiece was not positioned as expected, but did not protrude from the container, was not arranged unstably, and was not arranged to occupy more space than necessary. If it is determined that the unrecovered state is not acceptable (S2659:NO), the workpiece can be placed on the stower, and the system can execute the unplaceable sub-process S2550.
[0164] Figure 8KAn embodiment of the return loader sub-process S2700 is depicted. It should be noted that in some embodiments of the workpiece loading process 2000, the return loader sub-process S2700 can not be necessary. If the return loader sub-process S2700 is to be included, the return loader sub-process S2700 can include a step of determining whether a newly presented workpiece is available S2702. For example, the system can determine whether there is another workpiece to be loaded into a container that has not yet been through the workpiece loading process (e.g., that has not yet been processed by the workpiece loading process 2000 or only a portion of the workpiece loading process 2000). If such a newly presented workpiece is available (S2702: YES), in step S2704, the loader can return to an initial / original position. As previously mentioned, embodiments of the initial / original position of the loader can be proximate to a conveyor system used to move workpieces toward the loader for loading. In other embodiments, the initial / original position can be another suitable location. In returning the loader to the initial / original position (step S2704), the system can perform a motion plan, for example, to maximize efficiency while avoiding obstacles. The system can iterate the workpiece loading process 2000 on the newly presented workpiece and continue to iterate until there are no additional newly presented available workpieces.
[0165] In embodiments, the system can determine that a newly presented workpiece is not available (S2702: NO). In embodiments, the lack of a newly presented workpiece can indicate that there are no additional workpieces (e.g., workpieces that have not yet been through the workpiece loading process 2000) available. However, in other embodiments, the lack of a newly presented workpiece can indicate that even if there are workpieces that have not been processed by the workpiece loading process 2000, there are no available containers with sufficient space to accommodate a newly presented workpiece. In either case, the return loader sub-process S2700 can include a step of determining whether an unplaceable workpiece is available S2706.
[0166] In some embodiments, the return loader sub-process S2700 can include a step of determining whether an unplaceable workpiece is available S2706. An unplaceable workpiece can correspond to an item that was previously determined to be unable to be loaded (e.g., step S2512: No) and / or processed by the unplaceable sub-process (e.g., S2550). As another example, an item placed in an unplaceable workpiece destination can be considered an unplaceable workpiece. In some cases, it can be useful to place items individually in areas corresponding to unplaceable workpiece destinations, such as placing items with higher fragility parameters or smaller sizes in such locations to better ensure that the items will be placed toward the top of the container. This can help reduce the likelihood of damaging the loaded items, and can help ensure greater filling of the container. If no unplaceable workpiece is available (S2706: No), the system can cause the loader to move to a rest position S2708. In some embodiments, the rest position of the loader can be a position in which the loader is less likely to cause interference with other processes to be completed. In some embodiments, the rest position can be a position in which components capable of moving the loader, such as a robotic arm, are in a compressed state and / or a state of reduced stress on its joints.
[0167] In embodiments, if the system determines that an unplaceable workpiece is available (S2706: Yes), the return loader sub-process S2700 can include a step of determining whether the unplaceable workpiece is loadable S2710. In some embodiments, this step can be used to determine whether the environment has changed such that a previously determined unplaceable item is now loadable. For example, an item can have been determined to be unplaceable because it has a lower fragility parameter than allowed based on the height of previously placed items stacked within the container. Once the stack reaches a sufficient height, the previously unplaceable fragile item can be determined to be loadable later. If the system determines that the unplaceable workpiece is loadable (S2710: Yes), the system can notify an operator that the unplaceable workpiece is now available for manual loading. Alternatively, the system can attempt to load the unplaceable item itself. If the system determines that the unplaceable workpiece is still unplaceable (S2710: No), the system can alert an operator that manual loading of the unplaceable workpiece should be attempted. Alternatively, the system can continue to move the loader to a rest position (e.g., step S2708).
[0168] In embodiments, the return loader sub-process S2700 can include a step of recovering and loading the unplaceable workpiece S2712. In various embodiments, this step allows the system to cause the unplaceable item to be recovered from a location (e.g., an unplaceable location) and placed within a suitable location within the container. In some embodiments, there can be more than one item in the unloading location. As a result, the system can be configured to detect which unplaceable item is to be recovered and operate to recover such unplaceable item. For example, the loader can be moved and / or operated to cause the unplaceable item to be placed thereon. The loader can then be moved to a suitable location for loading the unplaceable workpiece into the selected location within the container. In loading the unplaceable item into the container, the loader can be moved to an appropriate location, such as the initial / original or rest position.
[0169] Figure 9 FIG. 28 is a flowchart illustrating a throw determination sub-process S2800. The throw determination sub-process S2800 can be an instance of the step of determining a throw S2602 of the workpiece displacement sub-process S2600. The throw determination sub-process S2800 can include steps of obtaining loading locations S2802, identifying candidate throws S2804, and determining a selected throw S2806.
[0170] The throw determination sub-process S2800 can include a step of obtaining loading information S2802. The loading information can include selected loading locations (e.g., from step S2510), object information about the workpiece, and container state information.
[0171] The throw determination sub-process S2800 can include a step of identifying candidate throws S2804. A candidate throw can be defined by a series of throw parameters. Throw parameters can include, for example, throw type, conveyor movement, slider movement, object loader positioning, object loader orientation, object loader movement, travel distance, etc. In embodiments, the system can include a pre-defined library of throws, each throw having one or more default parameters. Identifying a candidate throw can include selecting one or more throws from the pre-defined library of throws, selecting and modifying parameters of one or more throws from the pre-defined library of throws, and / or selecting all parameters of a throw from scratch to generate a new throw. The different throw types discussed in FIGS. 10-16 represent different throws, e.g., the manner in which a workpiece can be released. In embodiments, the pre-defined library of throws can include one or more of each throw type. If more than one type of throw is stored in the library, each version can have different throw parameters and can be used to obtain different results. Identifying a candidate throw can be performed by taking into account parameters and information from the loading information, such as the selected loading location, object information about the workpiece, and container status information. Thus, a candidate throw can be identified based on information about the location where the workpiece is to be placed, the current status of the container, and the workpiece itself.
[0172] FIGS. 10-16 illustrate aspects of different throw types and will be discussed in more detail below. As discussed above, a throw can be defined by one or more throw parameters, including at least a throw type, a conveyor movement, a slider movement, an object loader positioning, an object loader orientation, an object loader movement, a travel distance, etc. A throw type can refer to a type or style of throw, some of which will be discussed below with respect to FIGS. 10-16. A conveyor movement can refer to a movement pattern of a loader conveyor of an object loader that is performed during a throw, and can include a movement direction, a movement speed, and a movement timing. The movement timing can refer to a timing of the loader conveyor movement, e.g., during a throw, the loader conveyor can change speed, change direction, and / or start or stop moving according to the movement timing. A slider movement can refer to a movement pattern of a slider arm of an object loader that is performed during a throw, and can include a slider movement direction, a slider movement speed, and a slider movement timing. The slider movement timing can refer to a timing of the slider movement, e.g., during a throw, the slider arm can change speed, change direction, and / or start or stop moving according to the movement timing. An object loader positioning can refer to a positioning of an object loader during a throw, and can be determined relative to a loading position and / or relative to an absolute term of a container. An object loader orientation can refer to an orientation or pose of an object loader during a throw, including, e.g., a multi-dimensional angle at which the object loader is oriented. An object loader movement can refer to a movement of an object loader prior to a throw (e.g., when approaching a container) and / or during a throw, including, e.g., a change in object loader positioning and a change in object loader orientation. The object loader movement can include parameters indicative of an object loader movement speed and an object loader movement timing. A travel distance can refer to a horizontal and / or vertical distance that a workpiece or object is expected or intended to travel during a throw. The throw types illustrated in FIGS. 10-16 are by way of example only. Other types of throws can be implemented by any suitable combination of the throw parameters discussed above.
[0173] Figures 10A-10C Aspects of a side release throw are illustrated. The side release throw is shown with respect to the object loader 500, and can likewise be performed by the object loader 700. Figure 10A A positioning of the workpiece W on the object loader 500 is shown during an object loader travel (e.g., the workpiece W is supported by both the back wall and the side wall). In the side release throw, the workpiece W is advanced to the front of the object loader 500 by action of the loader conveyor 520, as shown in Figure 10B In embodiments, the workpiece W can be advanced such that a portion of the workpiece extends off of the object loader 500. The slider arm 532 is then activated to push the workpiece W off of the loader conveyor 520 and into the container, as shown in Figure 10CA side release throw is shown. The side release throw can facilitate packaging a container that is obstructed by a front wall, for example, if the object is released from the object loader 500 in a forward direction, the space behind the front wall can be difficult to reach. In embodiments, the speed of the slider arm 532 and the orientation of the object loader 500 can be varied, for example, to adjust the distance the workpiece travels when released from the object loader 500. Although shown as releasing to the right side of the object loader 500, the slider arm 532 can be arranged on the opposite side of the workpiece W when the workpiece is loaded onto the object loader 500. This arrangement can allow the workpiece W to be released to the left side of the object loader.
[0174] Figures 11A-11C Aspects of a front release throw are shown. The front release throw is shown with respect to the object loader 500, and the front release throw can likewise be performed by the object loader 700. Figure 11A The positioning of the workpiece W on the object loader 500 during object loader travel is shown (e.g., the workpiece W is supported by both the back wall and the side wall). In the front release throw, the workpiece W is advanced to the side edge of the object loader 500 by action of the slider arm 532, as shown. In embodiments, the workpiece W can be advanced such that a portion of the workpiece extends off the side edge of the object loader 500. The loader conveyor 520 is then activated to push the workpiece W off the loader conveyor 520 and into the container, as shown. Figure 11B Figure 11C The front release throw can facilitate packaging containers with a relatively high stack height. The relatively high stack height can prevent the object loader 500 from entering into the container for a side release, thus requiring a front release throw. In embodiments, the speed of the loader conveyor 520 and the orientation of the object loader 500 can be varied, for example, to adjust the distance the workpiece travels when released from the object loader 500.
[0175] Figures 12A-12C Aspects of a front synchronous throw are shown. The front synchronous throw is shown with respect to the object loader 500, and the front synchronous throw can likewise be performed by the object loader 700. Figure 12A The positioning of the workpiece W on the object loader 500 during object loader travel is shown (e.g., the workpiece W is supported by both the back wall and the side wall). In the front synchronous throw, the workpiece W is advanced to the side edge of the object loader 500 by action of the slider arm 532, as shown. In embodiments, the workpiece W can be further advanced such that a portion of the workpiece extends off the front edge of the object loader 500. The loader conveyor 520 is then activated to push the workpiece W off the loader conveyor 520 and into the container, as shown. Figure 12B Figure 12C As shown, simultaneously or synchronously, the object loader 500 is pulled back in a direction opposite to the release direction of the workpiece W. Pre-synchronized release can facilitate a gentler release of the workpiece W. For example, if the object loader 500 is positioned above the loading position, synchronously advancing the workpiece W while pulling back the object loader 500 may cause the workpiece W to be lowered into the loading position rather than thrown. In embodiments, the speed of the loader conveyor 520 and the orientation of the object loader 500 can be varied, for example, to adjust the distance the workpiece travels when released from the object loader 500.
[0176] Figures 13A-13C The various aspects of a side-synchronized release throw are demonstrated. A side-synchronized release throw is shown relative to object loader 500, and the side-synchronized release throw can also be performed by object loader 700. Figure 13A This illustrates the positioning of workpiece W on object loader 500 during object loader travel (e.g., workpiece W is supported by both the rear and side walls). In a side-synchronized release throw, workpiece W advances to the front edge of object loader 500 via the movement of loader conveyor 520, as shown... Figure 13B As shown. In this embodiment, the workpiece W can be advanced further such that a portion of the workpiece extends away from the side edge of the object loader 500. The slider arm 532 is then activated to push the workpiece W away from the loader conveyor 520 and into the container, as shown. Figure 13C As shown, simultaneously or synchronously, the object loader 500 is moved laterally in a direction opposite to the release direction of the workpiece W. Laterally synchronized release can facilitate a gentler release of the workpiece W. For example, if the object loader 500 is positioned above the loading position, synchronously moving the workpiece W forward while simultaneously moving the object loader 500 away may cause the workpiece W to be lowered into the loading position rather than thrown. In embodiments, the speed of the slider arm 532 and the orientation of the object loader 500 can be varied, for example, to adjust the distance the workpiece travels when released from the object loader 500. Although shown as releasing to the right of the object loader 500, the slider arm 532 can be arranged on the opposite side of the workpiece W when the workpiece is loaded onto the object loader 500. This arrangement can allow the workpiece W to be released to the left side of the object loader.
[0177] Figures 14A-14D A front-release throw is demonstrated. A front-release throw is shown relative to object loader 500, and the front-release throw can also be performed by object loader 700. Figure 14A This illustrates the positioning of workpiece W on object loader 500 during object loader travel (e.g., workpiece W is supported by both the rear and side walls). During a front-release throw, workpiece W advances to the front edge of object loader 500 via the movement of loader conveyor 520, as shown...Figure 14B The workpiece W can further advance such that a portion of the workpiece extends off the side edge of the object loader 500, as shown. Figure 14C The loading conveyor 520 is then activated to push the workpiece W off the loader conveyor 520 and into the container, as shown. Figure 14D The object loader 500 is simultaneously or synchronously moved rearward in a direction opposite the release direction of the workpiece W at the same time. The front-side release throw can facilitate release of the workpiece W when the loading position of the workpiece W is partially obscured from the front. The front-side release throw can advantageously place the workpiece W behind another workpiece in the container stack. In embodiments, the speed of the loading conveyor 520 and the orientation of the object loader 500 can be varied, for example, to adjust the distance the workpiece travels when released from the object loader 500. Although shown as being released to the front side and right side of the object loader 500, the slider arms 532 can be arranged on opposite sides of the workpiece W when the workpiece is loaded onto the object loader 500. Such an arrangement can allow the workpiece W to be released to the front side and left side of the object loader.
[0178] Figures 15A-15B A rear-side release throw is shown. The rear-side release throw is shown with respect to the object loader 500 and can likewise be performed by the object loader 700. Figure 15A The positioning of the workpiece W on the object loader 500 during object loader travel is shown (e.g., the workpiece W is supported by both the back wall and the side wall). In the rear-side release throw, the workpiece W is advanced to the side edge of the object loader 500 by the action of the slider arms 532 and released from the side edge, as shown. Figure 15B In the side release throw, the workpiece W remains at the back wall during release. Variations of this throw can include movement of the object loader away from the workpiece release direction and / or the workpiece being partially positioned over the side edge prior to release. In embodiments, the speed of the slider arms 532 and the orientation of the object loader 500 can be varied, for example, to adjust the distance the workpiece travels when released from the object loader 500. Although shown as being released to the right side of the object loader 500, the slider arms 532 can be arranged on opposite sides of the workpiece W when the workpiece is loaded onto the object loader 500. Such an arrangement can allow the workpiece W to be released to the left side of the object loader.
[0179] Figures 16A-16C A variation of the object loader approach to the container is shown. The object loader approach is an example of an object loader movement parameter. Figure 16A An object loader approach that includes aligning the object loader 500 inside the container 300 is shown. As shown. Figure 16AAs shown, during loading, the container 300 can be oriented at an incline. By ensuring that the workpiece is biased towards the rear of the container, the incline can assist the loading process. As shown, the object loader 500 can approach the container 300 at an incline orientation that supports the workpiece W during movement. When inside the container 300, the object loader 500 can then adjust its orientation to align with the orientation of the container 300 before releasing the workpiece. By waiting until entering the container 300 to adjust the orientation of the object loader 500, the system can ensure that, if the orientation adjustment causes the workpiece to potentially fall off the object loader 500, this will occur inside the container 300. Figure 16A As shown, during loading, the container 300 can be oriented at an incline. By ensuring that the workpiece is biased towards the rear of the container, the incline can assist the loading process. As shown, the object loader 500 can approach the container 300 at an incline orientation that supports the workpiece W during movement. When inside the container 300, the object loader 500 can then adjust its orientation to align with the orientation of the container 300 before releasing the workpiece. By waiting until entering the container 300 to adjust the orientation of the object loader 500, the system can ensure that, if the orientation adjustment causes the workpiece to potentially fall off the object loader 500, this will occur inside the container 300.
[0180] Figure 16B An object loader approach is demonstrated that includes aligning the object loader 500 outside of the container 300. As shown, Figure 16B As shown, during loading, the container 300 can be oriented at an incline. By ensuring that the workpiece is biased towards the rear of the container, the incline can assist the loading process. As shown, the object loader 500 can approach the container 300 at an incline orientation that supports the workpiece W during movement. When inside the container 300, the object loader 500 can then adjust its orientation to align with the orientation of the container 300 before releasing the workpiece. By waiting until entering the container 300 to adjust the orientation of the object loader 500, the system can ensure that, if the orientation adjustment causes the workpiece to potentially fall off the object loader 500, this will occur inside the container 300. Figure 16B As shown, during loading, the container 300 can be oriented at an incline. By ensuring that the workpiece is biased towards the rear of the container, the incline can assist the loading process. As shown, the object loader 500 can approach the container 300 at an incline orientation that supports the workpiece W during movement. When inside the container 300, the object loader 500 can then adjust its orientation to align with the orientation of the container 300 before releasing the workpiece. By waiting until entering the container 300 to adjust the orientation of the object loader 500, the system can ensure that, if the orientation adjustment causes the workpiece to potentially fall off the object loader 500, this will occur inside the container 300.
[0181] Figure 16C An object loader approach is demonstrated that includes partially aligning the object loader 500 outside of the container 300 and partially aligning the object loader inside the container. As shown, Figure 16C As shown, during loading, the container 300 can be oriented at an incline. By ensuring that the workpiece is biased towards the rear of the container, the incline can assist the loading process. As shown, the object loader 500 can approach the container 300 at an incline orientation that supports the workpiece W during movement. When inside the container 300, the object loader 500 can then adjust its orientation to align with the orientation of the container 300 before releasing the workpiece. By waiting until entering the container 300 to adjust the orientation of the object loader 500, the system can ensure that, if the orientation adjustment causes the workpiece to potentially fall off the object loader 500, this will occur inside the container 300. Figure 16CAs shown, object loader 500 can approach container 300 in a tilted orientation that supports workpiece W during movement. While outside of container 300, object loader 500 can then adjust its orientation to partially align with the orientation of container 300 prior to releasing the workpiece. Object loader 500 can be adjusted so that it is substantially horizontal (e.g., within 5%). This orientation takes up less of the container profile than a fully tilted orientation, but more of the container profile than an orientation in which object loader 500 is substantially parallel to the floor of container 300. After entering container 300, object loader 500 can be adjusted so that it is substantially parallel to the floor of container 300 prior to releasing or launching workpiece W. If object loader 500 is tilted parallel to container 300, the partial alignment approach can be useful for workpieces W that can slip from the object loader. With the internal partial alignment and external partial alignment, the system can improve the ability of object loader 500 to enter a container while preventing workpieces from slipping from object loader 500 prior to entering loader 300.
[0182] Now returning to Figure 9The throw determination sub-process S2800 can include a step of determining a selected throw S2806. As discussed above, the identify candidate throws step S2804 can be performed to identify one or more candidate throws that would be able to successfully release the workpiece W to the loading location. The throw to be performed can be selected based on a priority among the candidate throws, such as the throw determined by step S2602 of sub-process S2600. The priority among the candidate throws can be predetermined, for example, according to the throw type. For example, a front sync throw can have the highest priority, followed by a front sync variation where the workpiece extends beyond the edge of the object loader. In another example, a front throw involving an object traveling a long distance after release (e.g., thrown from a distance away) can have a low priority. The priority among the candidate throws can also be based on additional factors, including any combination of throw parameters. In embodiments, the system can determine a success expectation for the combination of throw parameters in each identified candidate throw. For example, based on the travel distance parameter (or any other throw parameter), different throw types can have different success levels. For different types of throws, a larger travel distance parameter (horizontal and / or vertical) is more likely to result in a failure. Thus, the priority can be determined according to the identified candidate throw with the highest success potential. In further embodiments, the priority among the candidate throws can be determined according to a combination of throw parameters, object information, and / or loading location. For example, depending on the object size or loading location, different throw types or parameters can have a lower or higher success potential. For example, a long thin workpiece can be more likely to accidentally tumble or spin during a front release throw compared to a side release throw. In another example, a soft-sided workpiece can be more likely to roll over when thrown in a particular manner. This potential for success can be taken into account when selecting the candidate throw with the highest priority.
[0183] In some alternative embodiments, a loader different from the previously described loader embodiments can be used. For example, the loader need not have a conveyor. Instead, it can have a smooth surface on which the workpiece can slide. As another example, the loader can be a claw, a vacuum head, or other suitable gripper.
[0184] The above detailed description of examples of the technology disclosed is not intended to be exhaustive or to limit the technology disclosed to the precise form disclosed above. While specific examples of the technology disclosed were described above for illustrative purposes, various equivalent modifications are possible within the scope of the technology disclosed, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative implementations can perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks can be deleted, moved, added, subdivided, combined, and / or modified to provide alternative or subcombinations. Each of these processes or blocks can be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks can instead be performed in parallel, or performed at different times. Further, any specific numbers noted herein are simply examples; alternative implementations can employ differing values or ranges.
[0185] These and other variations of the technology disclosed can be made in light of the above detailed description. While the detailed description describes certain examples of the technology disclosed and the best mode contemplated, no matter how detailed the description appears, the technology disclosed can be practiced in many ways. Details of the system can vary considerably in its specific implementation, while still being encompassed by the technology disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the technology disclosed should not be taken to imply that the description is limited to the particular terminology. Accordingly, the application is not limited, except as by the appended claims. In general, the terminology used in the depending claims is intended to be related to the terminology in the specification, to the extent not otherwise defined in the Retailed Description section above.
[0186] While certain aspects of the application are presented in the following description with regard to certain claims, the Applicant considers each aspect of the application in any number of claim forms. Accordingly, the Applicant reserves the right to present additional claims in the form of amendments to the present application or continuing applications, following submission.
Claims
1. A system for loading an object, the system comprising: an object loader positioned on a robotic arm, the object loader including a slider arm configured to provide lateral movement to the object and a conveyor configured to provide longitudinal movement to the object; an object loader; and at least one control circuit configured to execute software instructions for: obtaining object information for the object to be loaded; positioning the object on the object loader according to the object information; conveying the object toward an object destination; determining a target position for the object; and shifting the object to the target position.
2. The system of claim 1, wherein obtaining object information further comprises: obtaining object parameter information.
3. The system of claim 2, wherein obtaining the object parameter information comprises accessing a data store containing the object parameter information.
4. The system of claim 2, wherein obtaining the object parameter information comprises determining object parameter information comprising one or more of: object weight, object characteristics, and object size.
5. The system of claim 2, wherein obtaining object information further comprises determining one or both of object position and object orientation.
6. The system of claim 1, further comprising: a transfer unit; and an object repositioning device comprising a repositioning stage and a repositioning surface; wherein the at least one control circuit configured to execute software instructions further comprises instructions for: repositioning, by the object repositioning device, according to the object information prior to receiving the object at the object loader.
7. The system of claim 6, wherein repositioning the object further comprises: identifying a misalignment of one or more of yaw, pitch, and roll; correcting the misalignment; identifying a misalignment of position; and correcting the misalignment.
8. The system of claim 6, wherein repositioning the object further comprises: laterally translating the repositioning surface according to the object information; decreasing a distance between the repositioning surface and the object; laterally repositioning the object by the repositioning surface; increasing the distance between the repositioning surface and the object; and updating the object information according to the repositioned pose of the object.
9. The system of claim 6, wherein repositioning the object further comprises: rotationally translating the repositioning surface according to the object information; decreasing a distance between the repositioning surface and the object; rotationally repositioning the object by the repositioning surface; increasing the distance between the repositioning surface and the object; and updating the object information according to the repositioned pose of the object.
10. The system of claim 1, wherein positioning the object on the object loader comprises: determining an initial target position; determining an initial throw operation; positioning the slider arm to accommodate the initial throw operation; and receiving the object on the object loader.
11. The system of claim 10, wherein positioning the object on the object loader further comprises: moving the object loader toward the object; and positioning the object loader to receive the object.
12. The system of claim 1, wherein transporting the object toward the object destination comprises: determining a target destination; determining a motion plan; and moving the object loader to the target destination.
13. The system of claim 12, wherein transporting the object toward the object destination comprises: repositioning the object on the object loader.
14. The system of claim 12, wherein transporting the object toward the object destination comprises: tilting the object loader.
15. The system of claim 12, wherein transporting the object toward the object destination comprises: determining an updated motion plan; and executing the updated motion plan.
16. The system of claim 13, wherein repositioning the object on the object loader comprises: operating the object loader to position the object at a back wall of the object loader; and operating the object loader to support the object with the slider arm of the object loader.
17. The system of claim 1, wherein determining the target location for the object comprises: obtaining loading status information for a target container; determining candidate target locations in the target container from the loading status information and the object information; and selecting the target location from the candidate target locations.
18. The system of claim 1, wherein determining the target location for the object comprises: obtaining loading status information for a target container; determining candidate target locations in the target container from the loading status information and the object information; and determining that the object cannot be loaded into any of the candidate target locations.
19. The system of claim 18, wherein determining the target location for the object further comprises: determining an offload location as the target location.
20. The system of claim 1, wherein displacing the object to the target location comprises: determining a throw operation; and executing the throw operation.
21. The system of claim 20, wherein determining the throw operation further comprises: selecting the throw operation from a predetermined set of throw operations, the predetermined set of throw operations comprising a side release throw, a front release throw, a front synchronous release throw, a side synchronous release throw, a front side release throw, and a back side release throw; and determining parameters of the throw operation from the object information and loading status information at the target location.
22. The system of claim 20, wherein displacing the object to the target location further comprises: repositioning the object on the object loader; and repositioning the object loader.
23. The system of claim 20, wherein displacing the object to the target location further comprises: obtaining updated loading status information; determining to perform an object recovery from the loading status information; and performing the object recovery.
24. The system of claim 1, wherein the slider arm is actuated by a motor and is configured to move laterally above the conveyor.
25. The system of claim 24, wherein: the slider arm comprises a slider guide, and the object loader comprises a slider rail configured to interface with the slider guide to support the slider arm.
26. The system of claim 1, wherein the robotic arm is configured to tilt the object loader about a longitudinal axis and about a lateral axis.
27. The system of claim 1, wherein the conveyor is a belt conveyor.
28. The system of claim 27, wherein: the belt conveyor is actuated by a drive motor connected to a rear roller of the belt conveyor by a drive belt, and the drive motor and the rear roller are configured in a vertical stack arrangement.
29. The system of claim 1, wherein the object loader further comprises a vision system comprising at least one camera.
30. The system of claim 1, wherein the object loader further comprises a sensor system configured to sense one or more of: presence of an object on the conveyor, position of an object on the conveyor, position of the slider arm.
31. The system of claim 6, wherein: the transfer unit comprises a transfer unit conveyor, the repositioning gantry is disposed above the transfer unit conveyor, the repositioning surface is disposed on a repositioning blade, and the repositioning blade is attached to the repositioning gantry and is configured to move laterally and / or rotationally relative to the transfer unit conveyor.