Patent Description:
The present invention relates to order fulfillment systems, and relates in particular to systems for providing aggregation of objects (e.g., products, packages, bags, items, goods etc.) for preparation for shipment to destination locations, such as in Automated Storage and Retrieval Systems.

Order fulfillment systems typically involve the processing of a wide variety of objects for distribution to a large number of distribution locations, such as intermediate distribution stations, mail order stations, geographic group locations and address specific locations. Automated storage and retrieval systems (AS/RS) generally include computer controlled systems of automatically storing (placing) and retrieving items from defined storage locations. Traditional AS/RS typically employ totes (or bins), which are the smallest unit of load for the system. In these systems, the totes are brought to people who pick individual items out of the totes. When a person has picked the required number of items out of the tote, the tote is then re-inducted back into the AS/RS.

In these traditional systems, the totes are brought to a person, and the person may either remove an item from the tote or add an item to the tote. The tote is then returned to the storage location. Such systems, for example, may be used in libraries and warehouse storage facilities. The AS/RS involves no processing of the items in the tote, as a person processes the objects when the tote is brought to the person. This separation of jobs allows any automated transport system to do what it is good at - moving totes - and the person to do what the person is better at - picking items out of cluttered totes. It also means the person may stand in one place while the transport system brings the person totes, which increases the rate at which the person can pick goods.

There are limits however, on such conventional systems in terms of the time and resources required to move totes toward and then away from each person, as well as how quickly a person can process totes in this fashion in applications where each person may be required to process a large number of totes. There remains a need therefore, for an AS/RS that stores and retrieves objects more efficiently and cost effectively, yet also assists in the processing of a wide variety of objects.

<CIT> appears to disclose a storage retrieval and processing system for processing objects. The storage, retrieval and processing system includes a storage bin system for receiving a plurality of storage bins, a retrieval conveyance system, a programmable motion device including an end effector, and a destination bin system.

In accordance with an aspect, the invention provides a storage, retrieval and processing system for processing objects, said storage, retrieval and processing system comprising:.

In accordance with a further aspect, the invention provides a method of providing storage, retrieval and processing of objects including providing on a conveyance system a plurality of bins including objects to be distributed by the storage, retrieval and processing system, grasping and moving objects within at least one of the plurality of bins in an input area of the conveyance system using a programmable motion device that includes an end effector for grasping and moving any of the objects, providing perception data regarding a selected object that is presented to the perception system by the programmable motion device, routing the selected object in each of horizontal and vertical directions toward a destination container responsive to the perception data, said destination container being provided as one of a plurality of destination containers provided as a row on a destination conveyance system, and removing the row of destination containers as a set.

In accordance with an aspect, the invention provides an ASRS system <NUM> in which objects are provided in a plurality of bins <NUM> at an input area <NUM> of an input conveyance system <NUM>. Objects are processed at a processing station <NUM>, then routed via a routing conveyance system <NUM> to any of a plurality of destination containers at a destination area <NUM>. The processing station <NUM> may include a programmable motion device <NUM>, a bin perception unit <NUM> and an object perception unit <NUM>.

Generally, objects are provided to the input area <NUM> in bins <NUM>, are moved by a programmable motion device <NUM> to an object scanner <NUM>, fall to an object conveyance system <NUM>, and are routed to any of a plurality of destination containers in one or the other of a plurality vertically-coupled stacked rows of containers 44A, 44B. Empty containers are provided to each vertically-coupled stacked rows 44A, 44B, and completed containers are removed from each vertically-coupled stacked rows, by a container movement system adjacent either of output conveyors <NUM>, <NUM>. Each set of stacked rows may be vertically-coupled by an unloading helical conveyor <NUM>, <NUM>, as well as a loading helical conveyor <NUM>, <NUM>. With reference to <FIG>, the input conveyor <NUM> may include a plurality of detectors <NUM> that monitor movement of the conveyors, and may confirm the identity and positon of a conveyor at the input area <NUM> for processing at the processing station <NUM>.

The operations of the system are coordinated with a central control system <NUM> as shown in <FIG> that communicates wirelessly with each of the conveyors and conveyor sensors, the programmable motion device <NUM>, the perception units <NUM>, <NUM>, as well as all elements of the routing conveyance system, container arrays, container movement systems, and output conveyance systems (all components and systems). The perception unit <NUM> aids in grasping objects from the bins <NUM> with an end effector of the programmable motion device. Once grasped by the programmable motion device, the object is dropped into the drop perception unit <NUM>, and the system thereby determines from symbol strings the UPC associated with the object, as well as the outbound destination for each object. The central control system <NUM> is comprised of one or more workstations or central processing units (CPUs). For example, the correspondence between UPCs or mailing labels, and outbound destinations is maintained by a central control system in a database called a manifest. The central control system maintains the manifest by communicating with a warehouse management system (WMS). The manifest provides the outbound destination for each in-bound object.

In particular, the system of an aspect includes a perception system <NUM> that is mounted above a bin of objects to be processed next to the articulated arm <NUM>, looking down into a bin <NUM>. The system <NUM>, for example and as shown in <FIG>, may be attached via a mount <NUM> to a perception unit stand <NUM>, and may include (on the underside thereof), a camera <NUM>, a depth sensor <NUM> and lights <NUM>. A combination of 2D and 3D (depth) data is acquired. The depth sensor <NUM> may provide depth information that may be used together with the camera image data to determine depth information regarding the various objects in view. The lights <NUM> may be used to remove shadows and to facilitate the identification of edges of objects, and may be all on during use, or may be illuminated in accordance with a desired sequence to assist in object identification. The system uses this imagery and a variety of algorithms to generate a set of candidate grasp locations for the objects in the bin as discussed in more detail below.

<FIG> shows an image view from the perception unit <NUM>. The image view shows a bin <NUM> in the input area <NUM> (a conveyor), and the bin <NUM> contains objects <NUM>, <NUM>, <NUM>, <NUM> and <NUM>. In the present embodiment, the objects are homogenous, and are intended for distribution to different break-pack packages. Superimposed on the objects <NUM>, <NUM>, <NUM>, <NUM>, <NUM> (for illustrative purposes) are anticipated grasp locations <NUM>, <NUM>, <NUM> and <NUM> of the objects. Note that while candidate grasp locations <NUM>, <NUM> and <NUM> appear to be good grasp locations, grasp locations <NUM>, <NUM> do not because each associated object is at least partially underneath another object. The system may also not even try to yet identify a grasp location for the object <NUM> because the object <NUM> is too obscured by other objects. Candidate grasp locations may be indicated using a 3D model of the robot end effector placed in the location where the actual end effector would go to use as a grasp location. Grasp locations may be considered good, for example, if they are close to the center of mass of the object to provide greater stability during grasp and transport, and/or if they avoid places on an object such as caps, seams etc. where a good vacuum seal might not be available.

With reference to <FIG>, the programmable motion device <NUM> includes an end effector <NUM> that is coupled via a hose mount <NUM> to a vacuum hose attached to a vacuum source. With further reference to <FIG> and <FIG>, the perception unit <NUM> includes a structure <NUM> having a top opening <NUM> and a bottom opening <NUM>, and the walls may be covered by an enclosing material <NUM> (e.g., a colored covering such as orange plastic, to protect humans from potentially dangerously bright lights within the perception unit <NUM>) as shown in <FIG> and <FIG>. The structure <NUM> includes a plurality of rows of sources (e.g., illumination sources such as LEDs) <NUM> as well as a plurality of image perception units (e.g., cameras) <NUM>. The sources <NUM> are provided in rows, and each is directed toward the center of the opening. The perception units <NUM> are also generally directed toward the opening, although some cameras are directed horizontally, while others are directed upward, and some are directed downward. The system also includes an entry source (e.g., infrared source) <NUM> as well as an entry detector (e.g., infrared detector) <NUM> for detecting when an object has entered the perception unit <NUM>. The LEDs and cameras therefore encircle the inside of the structure <NUM>, and the cameras are positioned to view the interior via windows that may include a glass or plastic covering (e.g., <NUM>).

An important aspect of systems of certain embodiments of the present invention, is the ability to identify via barcode or other visual markings of objects, unique indicia associated with the object by employing a perception system into which objects may be dropped. Automated scanning systems would be unable to see barcodes on objects that are presented in a way that their barcodes are not exposed or visible. The perception system may be used in certain embodiments, with a robotic system that may include a robotic arm equipped with sensors and computing, that when combined is assumed herein to exhibit the following capabilities: (a) it is able to pick objects up from a specified class of objects, and separate them from a stream of heterogeneous objects, whether they are jumbled in a bin, or are singulated on a motorized or gravity conveyor system; (b) it is able to move the object to arbitrary places within its workspace; (c) it is able to place objects in an outgoing bin or shelf location in its workspace; and, (d) it is able to generate a map of objects that it is able to pick, represented as a candidate set of grasp points in the workcell, and as a list of polytopes enclosing the object in space.

The allowable objects are determined by the capabilities of the robotic system. Their size, weight and geometry are assumed to be such that the robotic system is able to pick, move and place them. These may be any kind of ordered goods, packages, parcels, or other articles that benefit from automated sorting. Each object is associated with unique indicia such as a unique code (e.g., barcode) or a unique destination (e.g., address) of the object.

The manner in which inbound objects arrive may be for example, in one of two configurations: (a) inbound objects arrive piled in bins of heterogeneous objects; or (b) inbound articles arrive by a moving conveyor. The collection of objects includes some that have exposed bar codes and other objects that do not have exposed bar codes. The robotic system is assumed to be able to pick items from the bin or conveyor. The stream of inbound objects is the sequence of objects as they are unloaded either from the bin or the conveyor. With reference to <FIG>, after an object has been dropped through the perception unit <NUM>, it is guided by a guide chute <NUM> onto the routing conveyance system <NUM>.

The manner in which outbound objects are organized is such that objects are placed in a bin, shelf location or container, into which all objects corresponding to a given order are consolidated. These outbound destinations may be arranged in vertical arrays, horizontal arrays, grids, or some other regular or irregular manner, but which arrangement is known to the system. The robotic pick and place system is assumed to be able to place objects into all of the outbound destinations, and the correct outbound destination is determined from unique identifying indicia (identify or destination, such as a bar code or a unique address), which identifies the object or is destination.

It is assumed that the objects are marked in one or more places on their exterior with a visually distinctive mark such as a barcode or radio-frequency identification (RFID) tag so that they may be identified with a scanner. The type of marking depends on the type of scanning system used, but may include 1D or 2D barcode symbologies. Multiple symbologies or labeling approaches may be employed. The types of scanners employed are assumed to be compatible with the marking approach. The marking, either by barcode, RFID tag, or other means, encodes a symbol string, which is typically a string of letters and numbers. The symbol string is uniquely associates the object with unique identifying indicia (identity or destination).

The operations of the systems described herein are coordinated by the central control system <NUM> as shown in <FIG>. This system determines from symbol strings the unique indicia associated with an object, as well as the outbound destination for the object. The central control system is comprised of one or more workstations or central processing units (CPUs). The correspondence between unique identifying indicia and outbound destinations is maintained by the central control system in a database called a manifest. The central control system maintains the manifest by communicating with a warehouse management system (WMS).

With reference to <FIG>, the routing conveyance system receives objects (e.g., a singulated stream of objects) from the object feed conveyor <NUM>. The routing conveyance system includes one or more routing conveyor units 38A, 38B, each of which includes an object conveyor <NUM> mounted on a frame <NUM>. Each frame <NUM> is movably coupled to a vertical rail system <NUM>, the upper and lower ends of each of which are movably coupled to a horizontal rail system <NUM> (also shown in <FIG>). In accordance with various aspects, the rail systems may be reversed, providing horizontal rail systems mounted to vertical rail systems.

Each routing conveyor unit 38A, 38B is adapted to receive a selected object on its object conveyor <NUM>, which is mounted on the frame <NUM> that travels along the track system <NUM>, <NUM> in both vertical and horizontal directions between the at least two vertically-coupled stacked rows 44A, 44B of destination containers <NUM> (e.g., bins, totes, boxes etc.). The selected object (e.g., <NUM>) is received by the object conveyor <NUM> from the object feed conveyor <NUM> of the conveyance system, and brings the object toward a selected destination container among the vertically-coupled stacked rows 44A, 44B. After routing the selected object to the selected destination location, the routing conveyor is returned to the object feed conveyor <NUM> to receive a new object. Routing conveyor units 38A, 38B are programmed to avoid each other, for example, by generally moving at different elevations when passing one another.

In particular, with reference to <FIG>, while routing conveyor unit 38B approaches the object feed conveyor <NUM> from an elevation below the object feed conveyor <NUM>, routing conveyor unit 38B may be destined for or located at a container at relatively high elevation. Once the routing conveyor unit 38B receives the object <NUM> (as shown in <FIG>), the system will begin to move the object toward its destination container (e.g., as assigned by a WMS system). If the destination container is located at a higher elevation, the routing conveyor unit 38B will begin to rise and move away from the object feed conveyor <NUM>, while also moving the routing conveyor uit 38A downward and toward the object feed conveyor <NUM> (as shown in <FIG>). When the routing conveyor unit 38B reaches the selected destination container, the routing conveyor unit 38A approaches the object fee conveyor from below (as shown in <FIG>). If the assigned destination container is relatively low in on or the other of the vertically-coupled stacked rows 44A, 44B, the returning routing conveyor unit will travel a relatively high path back to the object feed conveyor. Each routing conveyor unit 38A, 38B is coupled via vertical and horizontal rails to one of the two vertically stacked arrays of rows, but they avoid colliding by having the returning unit follow a vertically opposite path than a path to be taken by the other routing conveyor unit in bringing a new object to a selected destination bin. Each routing conveyor unit 38A, 38B may move an object into a destination bin located in either vertically-coupled stacked rows 44A, 44B (to either side if the routing conveyor unit 38A, 38B).

With reference to <FIG>, when a newly loaded routing conveyor unit (e.g., 38B) carrying an object <NUM> is assigned a selected destination container, the system determines whether the selected destination container is located at an upper elevation or a lower elevation (all locations are assigned to be one or the other). If the destination location is located at an upper elevation, the returning routing conveyor unit 38A moves at a lower elevation back to the object feed conveyor <NUM> (as shown in <FIG>). If, on the other hand, the destination location is located at a lower elevation, the returning routing conveyor unit 38A moves at an upper elevation back to the object feed conveyor <NUM> (as shown in <FIG>).

The system therefore provides objects to either of two adjacent vertically stacked rows of rows of destination containers, wherein at least two routing conveyor units are used to move objects from a loading location (at conveyor <NUM>) to any destination container in either of the vertically coupled stacked rows <NUM>. The routing conveyor units are moved such that one returns to the loading location while the other is delivering an object, and the returning unit moves vertically opposite the delivering unit. For example, if the delivering unit is moving to a location in the upper half of either of the vertically coupled stacked rows <NUM>, then the returning unit is moved in the lower half of the area between the vertically coupled stacked rows. Conversely if the delivering unit is moving to a location in the lower half of either of the vertically coupled stacked rows <NUM>, then the returning unit is moved in the upper half of the area between the vertically coupled stacked rows. In this way, the routing conveyor units 38A, 38B avoid colliding. Each of the objects is therefore moved vertically and horizontally by a routing conveyor unit, and then moved in a third direction by the container conveyor wherein the third direction is generally orthogonal to the first and second directions. The container may later be removed from the open storage location also along the third direction when completed as discussed in more detail below.

<FIG> shows the routing conveyor unit 38B at a destination position with a selected object <NUM> on its object conveyor <NUM>. If the selected destination container is within the vertically-coupled stacked row 44B, the conveyor <NUM> moves to urge the object into the destination container therein (as shown in <FIG>), and of the selected destination container is within the vertically-coupled stacked rows 44A, the conveyor <NUM> moves to urge the object into the destination container therein (as shown in <FIG>). Each routing conveyor unit 38A, 38B may thereby provide an object thereon to any destination container within either vertically-coupled stacked rows 44A, 44B. Destination containers <NUM> in the vertically-coupled stacked rows 44A, 44B of destination containers are thereby populated with objects from the input bins <NUM> via the processing station <NUM> and the routing conveyance system at a destination area <NUM>.

In accordance with a further aspect of the invention, the routing conveyance system includes one or more routing conveyor unit(s) <NUM> including mutually orthogonally disposed sets of rollers that engage a grid track system <NUM>, permitting the routing conveyor unit(s) <NUM> to access destination containers <NUM> as shown in <FIG>. Additionally, the unit(s) <NUM> may further include an additional set of mutually orthogonally disposed sets of rollers <NUM> for engaging a grid track system on the opposing side, such that each unit <NUM> may be supported by inside walls of both sets of vertically-coupled stacked rows 44A, 44B of destination containers. Each of the horizontal rollers may be engaged separately from and alternate to the vertical rollers to permit the unit <NUM> to move about the routing conveyance system <NUM>. Again, where more than one unit <NUM> is employed, the system may similarly provide avoidance routines to prevent the units from colliding. The movement of objects into destination containers at a first side of the destination containers, and having the completed destination containers removed as completed rows from an opposite second side, permits the object conveyance system to continue to operate while destination containers are being replenished. Further, the system may dynamically assign destination containers in a row such that each destination container in a row may have a similar expected frequency of container completeness factor or receive objects having a similar frequency of object arrival factor. For example, destination containers that are expected to be completed relatively quickly (those with a high expected frequency of container completeness factor or are assigned to receive objects having a high frequency of object arrival factor) may be assigned to spots on a common row, while those with a low expected frequency of container completeness factor or are assigned receive objects having a low frequency of object arrival factor, may be assigned spots on a different row. In this way, the efficiencies of removing one row of completed destination containers at a time may be well utilized. In accordance with further aspects, each row may include destination containers having other aspects in common, such as having all destination containers of a row be assigned to a common shipping destination.

When each destination container in a row destination containers is full or otherwise finished being processed, the system may discharge the row as follows. With reference to <FIG>, the system opens end gates <NUM> on the selected row, and aligns (opens half-way) end gates <NUM> in the rows below the selected row. The aligned gates <NUM> are designed to facilitate the destination containers moving down the un-load helical conveyor <NUM>. <FIG> shows a back view of the gates <NUM>, <NUM>, and shows the completed containers from the row being moved downward along the helical conveyor <NUM>. With further reference to <FIG>, when the completed containers are all provided to the output conveyor <NUM>, <NUM> (as determined, for example, by sensors <NUM>), the gates <NUM> are closed to as to prepare the empty row to receive a new set of destination containers.

With reference to <FIG>, a new set of empty destination containers is provided by first opening gates <NUM>, and monitoring (e.g., by sensors <NUM>) movement of empty containers along a container in-feed conveyor <NUM>, <NUM> (e.g., <NUM> as shown) toward a load helical conveyor (e.g., <NUM> as shown). In-feed gate <NUM> is opened on the row to be loaded with the empty containers, and the remaining in-feed gates <NUM> remain closed as shown in <FIG>. The empty containers are loaded onto the row (as shown in <FIG> and <FIG>), and registered as being complete with information from the sensors <NUM> as the containers come to rest against the closed end-stop gates <NUM>. The rollers on the conveyor sections <NUM>, <NUM> may be actively powered and coated with a friction providing surface such as urethane, polyurethane, vinyl, rubber etc., and each conveyor <NUM>, <NUM> may include a plurality of sensors for monitoring the location of each container on the conveyors <NUM>, <NUM>. Once loaded, the in-feed gate <NUM> associated with the row is closed. <FIG> shows a rear view of the system of <FIG> showing the un-load helical conveyor <NUM> and the load helical conveyor <NUM>.

Claim 1:
A storage, retrieval and processing system for processing objects, said storage, retrieval and processing system comprising:
a plurality of bins (<NUM>) including objects (<NUM>) to be distributed by the storage, retrieval and processing system, said plurality of bins (<NUM>) being provided on an input conveyance system (<NUM>);
a programmable motion device (<NUM>) that includes an end effector (<NUM>) for grasping and moving any of the objects (<NUM>), said programmable motion device (<NUM>) being capable of reaching any of the objects (<NUM>) within at least one of the plurality of bins (<NUM>) in an input area (<NUM>) of the conveyance system (<NUM>);
a perception system (<NUM>) for providing perception data regarding a selected object (<NUM>) that is presented to the perception system (<NUM>) by the programmable motion device (<NUM>); and
wherein the storage, retrieval and processing system is characterized in further comprising:
a routing conveyance system (<NUM>) including a routing conveyor (<NUM>) disposed between at least two vertically-coupled stacked rows of destination containers (44A, 44B) for receiving the selected object (<NUM>),
wherein the routing conveyor (<NUM>) moves between the at least two vertically-coupled stacked rows of destination containers (44A, 44B) in each of horizontal and vertical directions to convey the selected object (<NUM>) toward a destination container responsive to the perception data, said destination container being provided among a plurality of destination containers (<NUM>) in a row that are provided as a set in any of the at least two vertically-coupled stacked rows of destination containers (44A, 44B).