Robotic systems have been disclosed to stack items, e.g., on a pallet, or load them into a truck or other container with rigid sides. For loading things like boxes or packages in an enclosed container, e.g., a truck or a cart with walls, the desired outcomes typically include one or more of optimal utilization of space, e.g., higher density, and stability or tightness to prevent packages from moving during transport.
A human operator loading boxes in an enclosed container ‘stacks’ and ‘packs’ the boxes. Typically, a human worker may be observed to place an item on a stack, and then push or press it into a position more snugly in contact with adjacent items and/or the container sides, for example. However, automating both these actions (i.e., stack and pack) to be performed together by a robot is challenging.
In prior approaches, robots have been used to stack boxes or other packages that are rigid and uniform, and therefore readily able to be stacked compactly, and/or robots have been used to stack items in used cases that allowed them to use smart structurally strategic placements and using the side walls of the enclosed container for support.
For example, a packing algorithm may be used to select a placement location for each box in an arriving sequence of boxes. A robotic arm with a suction type gripper, for example, may be used to grasp each box, e.g., at the top of the box, and place it as closely as possible in its intended location/orientation, as determined by the packing algorithm. However, the placement may not be exactly where/as intended, and gaps and misalignments may accumulate over time, resulting in lack of density and instability.
Techniques have been described previously to use computer vision to perform a first order (gross) placement and then use force control to snug a box or other item into place. However, instability and lack of density can occur, e.g., due to small errors in placement of each box (or a subset) that have a cumulative effect, such as lower than desired density, instability, etc.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
Techniques are disclosed to use a robot, such as a robotic arm, or two or more robots or a single robot with two or more robotic arms, cooperatively to “stack and pack” boxes or other items on a pallet or in a truck or other container. As in prior approaches, a packing algorithm may be used to select a placement location for each box. One or more robotic arms may be used to pick each box or other item from a source location and place it in the location and orientation determined by the packing algorithm (“stack”). In various embodiments, the packing algorithm is augmented or modified to include using the robotic arm or other robotically controlled instrumentality to push or pull on one or more boxes (or other items) to achieve or maintain packing density (“pack”).
In some embodiments, pushing/pulling to pack more densely may be done in response to a state estimation of the boxes/items stack on the pallet or in the truck/container indicating an unexpected and/or undesirable gap may exist, e.g., behind a box. Image data from one or more cameras in the workspace or mounted on the robotic arm may be used to detect a gap. For example, a camera mounted in the workspace may see a space, a robotic arm may move a robot-mounted camera into a position to see/better see space, image data may indicate box(es) not in an expected position/orientation, detect leaning towers, crushed box(es), or other instability, etc.
In various embodiments, a new placement strategy is implemented that not only leverages placements but also uses force feedback to push the boxes or other items to have more support and tightness by using not just the walls of the truck/container but other boxes as well. In various embodiments, this is achieved by creating a stack of stable boxes and applying direction forces to pack them such to maximize the number of surfaces a box is supported from In various embodiments, a vision system is used to estimate the direction and amount of push needed, and sensor feedback of forces experienced at the end-of-arm-tool (i.e., “end effector”) and the robot joints are used to apply the needed force and detect when an adjacent box or wall is reached.
In various embodiments, stacking and/or packing decisions are made not just for each box but for the entire wall/stack of boxes. A vision and state estimation system identifies gaps and determines the direction of packing to maximize a combination of pallet/stack density, stability, and box health. For example, the system may try to maximize the number of surfaces of boxes are in contact and supported by other boxes or a wall of the container.
The poses and shapes of the boxes the system stacks on the pallet or in truck/container may change as more boxes are added, e.g., due to deformation, or the desired or intended box pose may not be achieved on initial placement. This may provide opportunities to re-optimize the pallet/stack by pushing boxes into new poses and shapes.
For example, as boxes are added, new gaps may arise into which the system may determine to push previously placed boxes. This often happens when a tower of boxes starts leaning over further and further as boxes are added. If a box tower begins leaning away from the pallet/stack, the robot may be used to push the boxes against the lean to fill the gap created by the lean and better stabilize the tower, for example.
Example scenarios and responses, in various embodiments:
In the state shown in
In various embodiments, the control computer 106 may generate a plan to stack box 110 on top of box 116 and then, in a second action, push or drag the box 110 across the top of box 116 into a position that straddles both boxes 116 and 118, thereby achieving greater stability and density.
In some embodiments, image data from camera 108 may be used to detect the gap behind box 110, as initially placed (e.g., as shown in
At 204, a plan is determined/updated to pick/place the items, e.g., to stack them on or in a destination, as in the example shown in
At 208, it is determined whether any gaps and/or instability are detected. For example, image data may be used to estimate the state of the stack and/or items comprising the stack. If the perceived/estimated actual state is different from the expected state—e.g., the state that was expected to be achieved by implementing the plan determined/updated at 204—then a determination may be made at 208 that a gap and/or instability may exist. If a gap/instability is detected at 208 and it is determined at 210 that a strategy is available to use the robotic arm(s) to fill the gap, achieve greater density and/or stability etc., then at 212 the determined strategy is implemented to “pack” the items more densely and/or stably.
In various embodiments, a strategy to pack items more densely and/or stably may be learned by a robotic system as disclosed herein, e.g., via machine learning. In some embodiments, during a training phase a human operator may operate the robotic arm(s) to stack/pack with high density and/or stability and/or to address situations in which gaps and/or instability are present. The robotic system observes the operation of the robotic arm(s) by the human user and learns strategies to be applied in various contexts to achieve greater density and/or stability. In some embodiments, a system as disclosed herein may apply one or more heuristics to achieve greater density and/or stability, such as to push or pull items to fill perceived or otherwise detected gaps, to push items into place until a prescribed level of force opposing further movement is encountered, to stack an item (when possible) in a position that straddles two or more items, etc.
If there are no gaps or instability detected at 208 and/or if it is determined at 210 that a strategy to increase density and/or stability is not available, then the system continues perceiving items as they arrive and making/implementing plans to stack/pack them (202, 204, 206) until it is determined at 214 that no further items remain to be stacked, upon which the process 200 ends.
In the example shown in
In various embodiments, one or more cameras positioned in the workspace and/or mounted on the robotic arm or other robot generate image data (e.g., RGB image pixels and depth pixels/point clouds). A computer vision system uses the image/depth data to generate and update a three-dimensional view of the workspace. The vision system may be used to detect gaps, instability, deviations from expected state, etc., as described above in connection with
In various embodiments, the vision and state estimation system has the following inputs/outputs:
In various embodiments, a computer vision and/or state estimation module or subsystem as disclosed herein may be able to detect gaps that may be occluded/impossible to see directly with vision. For example, a box seen sticking out from stack further than expected may indicate a (possibly occluded) gap behind.
In various embodiments, a pallet/stack state prediction module (e.g., software module) predicts how different pack strategies will affect the future poses/shapes of boxes once they've been stacked. In various embodiments, the module predicts whether the arm/end effector can perform a strategy to pack the box(es) more densely, stably, etc. (e.g., do we have enough force capability? Have we been configured with or learned a strategy that might work in this observed condition?).
In various embodiments, the state prediction module predicts whether the boxes that forces are being applied to will be damaged by the applied forces; if so, different strategy sought/used, or less dense packing tolerated, or if needed human intervention prompted (e.g., potentially damaging instability for which system cannot determine a strategy to rectify.
In various embodiments, box/item may be pushed, pulled, slid left/right, etc. as needed to pack more densely. Ways to actuate the packing, in various embodiments, may include one or more of: Pushing in with the suction or other operative/engagement face of the end effector
In some cases, a box's pose may need to be adjusted, but the face you would need to push on nudge it in the right direction may be unreachable or blocked. For example, a box fallen too close to the rover (mobile chassis) to push from the side of the box. A box near the ceiling that needs to be nudged left or right could be pulled using front face suction.
In various embodiments, a suction gripper may be used to grasp the box/item from a surface that can be engaged (more readily), e.g., suction used to grasp from the front or side and use robotic arm to pull box/item into position, or slide it laterally into position, as in
In various embodiments, the first and second robotic arms may be mounted on a common chassis, as in the example shown in
The control computer 1002 uses the above-described modules/systems 1004, 1006, 1010, 1012 to generate commands 1014 to cause the onboard controller 1016 of the robotic arm to operate the robotic arm to implement the stack/pack plan.
In some embodiments and contexts, pallet (stack) state estimation may be imperfect, so the system may not have perfect knowledge of things like the size of gaps that cannot be seen directly with computer vision. In addition, the system may not be able to predict how much friction will be encountered when trying to slide boxes with respect to each other or whether a box may get caught on a protruding edge of another box.
In various embodiments, force feedback is used to detect when a box has been pushed/pulled as far as it can go, or if friction is too high to proceed. In various embodiments, force feedback and/or vision may be used to detect we are damaging a box by pushing on it too hard. For example, vision may be used to detect that a box is being severely deformed by pushing on it. For example, a large deformable box face may collapse in on itself, when pushed, if the box is wedged tight and cannot move easily. In various embodiments, deformation is detected using camera images (e.g., see deformation, see secondary effect of deformation, such as boxes above leaning), and in response to detecting the deformation the robotic system ceases pushing.
In various embodiments, an end-effector tool is provided to perform stack and pack operations as disclosed herein. For example, the end effector may be designed to include relatively level and/or flat surfaces that can used as pushing surfaces, potentially spanning multiple box faces. Suction surfaces that can used for pulling (e.g., suction grip at front or side), potentially spanning multiple box faces may be included. Force feedback (force sensors in end effector or wrist) may be used to detect box pushing back, e.g., reached another box or adjacent surface. May be a fixed-size gripper or may have deployable features to span multiple boxes, as in the example shown below, in which pusher elements are swept back (at left) when the suction gripper is being used, but deployed (at right) when there is a need to push multiple boxes simultaneously.
In some cases, a box's pose may need to be adjusted, but the face the robot would need to push on nudge it in the right direction may be unreachable or blocked. For example, a box that has fallen too close to the rover (mobile chassis) to use the robotic arm to push from the side of the box. A box near the ceiling that needs to be nudged left or right could be pulled using front face suction, e.g., as in the example shown in the lower part of
In various embodiments, techniques disclosed herein are used to achieve higher density, greater stability, etc. when stacking boxes or other items, e.g., on a pallet, and/or loading them into a truck or other container.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
This application claims priority to U.S. Provisional Patent Application No. 63/449,318 entitled USE OF ROBOTIC ARM TO ACHIEVE PACKING DENSITY filed Mar. 2, 2023 which is incorporated herein by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
63449318 | Mar 2023 | US |