Patent Description:
The invention generally relates to object processing systems, and relates in particular to shipping systems that accommodate orders from sending entities, and provide distribution and shipping services to destination entities.

Current object processing systems generally involve the processing of a large number of objects, where the objects are received in either organized or disorganized batches, and must be routed to desired destinations in accordance with a manifest or specific addresses on the objects (e.g., in a mailing system).

Current distribution center sorting systems, for example, generally assume an inflexible sequence of operations whereby a disorganized stream of input objects is first singulated into a single stream of isolated objects presented one at a time to a scanner that identifies the object. An induction element (e.g., a conveyor, a tilt tray, or manually movable bins) transport the objects to the desired destination or further processing station, which may be a bin, a chute, a bag or a conveyor etc..

In typical parcel sortation systems, human workers or automated systems typically retrieve parcels in an arrival order, and sort each parcel or object into a collection bin based on a set of given heuristics. For instance, all objects of like type might go to a collection bin, or all objects in a single customer order, or all objects destined for the same shipping destination, etc. The human workers or automated systems are required to receive objects and to move each to their assigned collection bin. If the number of different types of input (received) objects is large, a large number of collection bins is required.

Current state-of-the-art sortation systems rely on human labor to some extent. Most solutions rely on a worker that is performing sortation, by scanning an object from an induction area (chute, table, etc.) and placing the object in a staging location, conveyor, or collection bin. When a bin is full or the controlling software system determines that it needs to be emptied, another worker empties the bin into a bag, box, or other container, and sends that container on to the next processing step. Such a system has limits on throughput (i.e., how fast can human workers sort to or empty bins in this fashion) and on number of diverts (i.e., for a given bin size, only so many bins may be arranged to be within efficient reach of human workers).

Adding to these challenges are the conditions that some objects may have information about the object entered into the manifest or a shipping label incorrectly. For example, if a manifest in a distribution center includes a size or weight for an object that is not correct (e.g., because it was entered manually incorrectly), or if a shipping sender enters an incorrect size or weight on a shipping label, the processing system may reject the object as being unknown. Additionally, and with regard to incorrect information on a shipping label, the sender may have been undercharged due to the erroneous information, for example, if the size or weight was entered incorrectly by the sender.

There remains a need for a more efficient and more cost effective object processing systems that process objects of a variety of sizes and weights into appropriate collection bins or boxes, yet is efficient in handling objects of such varying sizes and weights.

In accordance with an embodiment, the invention provides a processing system for processing objects. The processing system includes a plurality of receiving stations for receiving a plurality of objects, each object being associated with prerecorded data, and a plurality of processing stations, each of which is in communication with at least one processing station. Each processing station includes perception means for perceiving data regarding an identity of any of an object or a bin of objects, and capture means for capturing characteristic data regarding an object to provide captured data. Each processing station further includes comparison means for comparing the captured data with the prerecorded data to provide comparison data, and a plurality of distribution stations, each of which is in communication with at least one processing station for receiving objects from the at least one processing station responsive to the comparison data.

In accordance with another embodiment, the invention provides a method of processing objects. The method includes the steps of receiving a plurality of objects, each object being associated with prerecorded data, providing a plurality of processing stations, each of which is in communication with at least one processing station, including perceiving data regarding an identity of any of an object or a bin of objects, and capturing characteristic data regarding an object to provide captured data, comparing the captured data with the prerecorded data to provide comparison data, and providing a plurality of distribution stations, each of which is in communication with at least one processing station for receiving objects from the at least one processing station responsive to the comparison data.

In accordance with a further embodiment, the invention provides an object processing verification system that includes a data repository for storing information about objects including: identifying information, object weight, object volume, and destination information, a first detection system that detects identifying information associated with the object, a second detection system that detects a volume associated with the object, a third detection system that detects a weight associated with the object, a computer processing system for comparing the detected identifying information, volume and weight with the volume and weight of the identified object that is stored in the data repository, and an object transportation system that routes an object to an advancement destination if the object's detected volume and weight match the stored volume and weight, and to an examination destination if the detected volume and weight do not closely enough match the stored volume and weight. <CIT> describes an end effector that senses the weight of a grasped object. <CIT> describes a vacuum gripper that senses the weight of a grasped object.

In accordance with an embodiment, the invention provides an object processing system that not only tracks objects (e.g., packages, envelopes, boxes etc.), but also detects data regarding the objects at numerous points during processing, e.g., for pick validation and placement validation. The detected data is checked against a reference set of prerecorded data as provided by a manifest (manually or automatically generated) or a shipping label, etc. While the detected data may represent estimated mass, weight, size or volume, if significant discrepancies are found, the object may be held until the discrepancy is resolved, or the object is re-routed to be returned to its original sender.

More specifically, the system may determine an object's identity, and access the previously recorded data regarding the object. The previously recorded data may be provided by a manifest that provides for each object, unique identity data, its mass or weight and its size or volume or density, as well as its distribution information, such as a delivery address or a destination location. Identifying indicia that is representative of the identity data, such as a barcode, QR code or RFID label, is applied to the object. The previously recorded data may also be provided by the sender, for example, if the sender (or shipping company personnel) provides data regarding the object's mass or weight or sized or volume, density, etc. The shipping company personnel may then assign unique identity data to the object, and apply identifying indicia such as a bar code, QR code or RFID label, that is representative of the identity data. The destination information such as an address or destination location, is then associated with the object's identity data.

During processing, the system will determine an object's identity data, and will then determine the object's mass, weight, size, volume, density, etc. The system will then compare the determined data (e.g., mass, weight, size or volume) with the previously recorded data associated with the object's identity. If a discrepancy (e.g., of more than e.g., <NUM>% - <NUM>%, or <NUM>%) is found, the object is internally re-routed to a holding station until the discrepancy is resolved. The discrepancy may be resolved by having the shipping network contact the sender via the shipping company to have the sender's billing account information either credited or debited the correct amount to accommodate the discrepancy. If the discrepancy is not resolved, the object may be returned to the sender, for example, by assigning the sender's address as the destination address associated with the object's identity data. In this case, the system may override the prerecorded data, and assign the sender's address to be the destination address for the object. This will provide that the object is then returned to the sender, and may further include an explanation of the reason for the return, for example, by including a stamp or adhesive label that reports the determined mass, weight, size or volume.

In accordance with certain embodiments, the system may update the manifest if it is determined that the captured data more accurately reflects characteristics of the object. For example, the system may record known sizes and weights of common objects, and after multiple encounters with an object, the system may know that the perceived data is more accurate than the original data in the manifest. For example, the system may employ learning, in the sense of improving over time. The performance of picking as a function of object, pick station and handling parameters may not be known a priori. Furthermore, objects that have not been picked before will periodically be encountered. It is likely, however, that new objects that are similar to previously picked objects will have similar performance characteristics. For example, object X may be a kind of shampoo in a <NUM> ounce bottle, and object Y may be conditioner in a <NUM> ounce bottle. If distributed by the same company, then the shape of the bottles may be the same. The system includes processes that use observations of past performance on similar objects to predict future performance, and learns what characteristics of the objects available to the system are reliable predictors of future performance. The learning is in particular a learning process that (a) extrapolates the performance of newly seen objects, and (b) is continually updating the data with which it learns to extrapolate so as to continually improve performance.

<FIG> shows a system <NUM> in accordance with an embodiment of the invention in which a sender <NUM> of a package, box or flat object fills out information regarding the package on a shipping form <NUM>, and pays for the shipping via a sender's billing account <NUM>. The information that is supplied may include the object's mass and/or weight and/or size and/or volume etc., as well as the object's shipping address or destination location. The package is then delivered to a shipping company <NUM>, where it is received and labeled with identifying indicia that is associated with the identity data of the object, which is in turn associated with the information supplied by the sender (the previously recorded data). The object is then provided to a shipping network <NUM> for processing and distribution.

During this processing, data regarding the package is obtained and recorded. If the data is incorrect (e.g., the package weighs much more than was initially recorded or has a greater volume than was initially recorded), the sender is notified (via the shipping company) and a further charge is applied to the sender's billing account <NUM>. The package is not initially returned in an embodiment, but is only provided to a delivery company <NUM> when the account <NUM> is paid in full (or credited if overpaid) and the discrepancy is remedied. The package is then provided by the delivery company <NUM> to a recipient <NUM>. If the discrepancy is not remedied (e.g., within <NUM> hours), the object is returned to the sender's address (e.g., by having the sender's address be assigned to the shipping address).

The shipping network may include a variety of distribution systems such as the distribution system <NUM> shown in <FIG>. The distribution system <NUM> includes a plurality of receiving stations <NUM> for receiving, for example, bins of objects from vehicles <NUM>, a plurality of processing stations <NUM> that may process objects from the bins of objects from the receiving station <NUM>, and a plurality of distribution stations <NUM> that may then provide processed objects in boxes to vehicles <NUM>. The system may be controlled by one or more computer processing systems <NUM>. The bins and boxes may be loaded into and out of the vehicles by providing racks in the vehicles (e.g., five levels of sets of three racks with rollers) and ramps from the vehicles to the receiving stations and from the distribution stations <NUM> to the vehicles. The receiving stations <NUM> and the distribution stations <NUM> also include racks for receiving and supporting the bins and boxes, as well as conveyors for moving the bins and boxes.

<FIG>, for example, shows a receiving station <NUM> that includes a plurality of storage racks <NUM> (which may be provided as conveyors) for receiving a plurality of bins <NUM> that contain objects to be processed. In accordance with an embodiment, the order of the bins on each conveyor may be know, and the contents of each bin may be known. The receiving station <NUM> also includes a plurality of source conveyors <NUM> that provide selected bins to the processing station <NUM> via a directional routing station <NUM> that routes bins between the levels of the receiving station <NUM> (e.g., by lifts or ramps) so that the bins may be provided to processing conveyors <NUM>. The source conveyors <NUM> may therefore each serve more than one row of bins. <FIG>, for example, shows three source conveyors <NUM> that serve two sets of two rows of bins <NUM>. Each set of the rows of bins also includes a bin displacement mechanism <NUM> that is adapted to travel along a set of two rows of bins and is adapted to selectively displace a bin onto the adjacent source conveyor <NUM>. In this way, selected bins are provided to the source conveyors <NUM> and to processing conveyors <NUM> via the directional routing station <NUM>.

With reference to <FIG>, the processing station <NUM> includes the processing conveyors <NUM> as well as a programmable motion device <NUM>. Bins from the receiving station <NUM> are provided to the programmable motion device <NUM>, and the programmable motion device <NUM> picks an object from a bin <NUM> and places it into a first carriage <NUM> that is mounted on an X-Y movable stage <NUM> of the distribution station <NUM>. The order of each of the boxes <NUM> on the racks or conveyors <NUM> is known. The first carriage <NUM> then moves to a selected floor level and a second carriage <NUM> at a processing end of a set of rows of boxes <NUM> (which are provided on conveyors <NUM> as shown). The destination station <NUM> also includes a plurality of output conveyors <NUM> for providing boxes from the sets of two rows of boxes to a distribution end <NUM> of the destination station <NUM>, again by using a displacement mechanism (e.g., as discussed above with reference to <FIG>) for selectively displacing a box onto an adjacent output conveyor <NUM>.

The programmable motion device <NUM> (e.g., a robotic articulated arm) of the processing station <NUM> includes an end effector <NUM> (e.g., a vacuum cup, grasping gripper, or other retention device) as well as a detection system <NUM> as shown in <FIG>. As further shown in <FIG>, the detection system may include lights <NUM> as well as one or more perception units <NUM> (e.g., scanners or cameras) for detecting any identifying indicia (e.g., barcode, QR code, RFID, labels etc.) on objects within the bin <NUM> and for guiding the programmable motion device <NUM> to grasp the object within the bin with the end effector <NUM> (shown in <FIG>). By this system, selected objects are acquired from the bin, and transported via the carrier <NUM> and then a carrier <NUM> to a desired box <NUM>.

Such robotic pickers are used in many different types of applications in material handling. In one case a robotic picker may be employed to pick a single object from a collection of the same types of objects, and then transfer the picked object to a container or conveyor or other destination location. In some cases the robotic picking technology uses cameras and 3D scanners to sense and analyze the pick face before it, automatically choosing the best place to pick an object based on a variety of criteria. Under certain circumstances, the robotic picking system can mistakenly pick two or more objects. This is an undesirable behavior, as this impacts the accounting of goods at the receiver, and results in a miscount of goods in the tracking of the number of remaining objects in inventory. What is desired are methods to sense whether the robot has picked more than one object, either before it is placed into the outgoing container or conveyor, so as to prevent the transfer of multiple objects, or after it has been placed, so that inventory counts can be updated. In certain further embodiments, again such as where the robotic picker is picking from a tote of homogenous objects, the system may, upon detecting a double-pick, route the double-pick to an output destination that is scheduled to receive two such objects.

The processing station <NUM> also includes a capture system <NUM> that includes scanning and receiving units <NUM>, <NUM>, as well as edge detection units <NUM> for capturing a variety of characteristics of a selected object of the whole bin. <FIG> shows a view from the capture system <NUM>, which in accordance with an embodiment, may include a set of similar or dis-similar objects <NUM>, <NUM>, <NUM>, <NUM>, <NUM>. The difference in volume between the scans shown in <FIG> is the estimated volume of the removed object <NUM>, V<NUM>. This volume is compared with recorded data regarding the object that is identified by the identifying indicia as provided by the detection system <NUM> or the recorded object data.

In particular, the contents of the bin are volumetrically scanned as shown in <FIG> prior to removing an object from the bin <NUM>, and are volumetrically scanned after removing an object <NUM> from the bin <NUM> as shown in <FIG>. The volumetric scanning may be done using scanning and receiving units <NUM>, <NUM> together with the processing system <NUM>, that send and receive signals, e.g., infrared signals. In accordance with an embodiment, the volume captured in <FIG> is subtracted from the volume captured in <FIG>, and the difference is assessed as the estimated volume of the object <NUM> (V<NUM>) that is removed. In accordance with other embodiments, the system, knowing that it will be acquiring object <NUM>, may capture volumetric data regarding the object <NUM> while the object <NUM> is still in the bin (as shown in <FIG>). This may be done in place of or in addition to the volumetric subtraction (between <FIG>) discussed above. In accordance with further embodiments, the scanning and receiving units <NUM>, <NUM> may also be employed to determine an object's density, D<NUM>, from knowing the object's mass and volume. The volumetric data may be obtained for example, using any of light detection and ranging (LIDAR) scanners, pulsed time of flight cameras, continuous wave time of flight cameras, structured light cameras, or passive stereo cameras.

In accordance with further embodiments, the system may additionally employ edge detection sensors <NUM> that are employed (again together with the processing system <NUM>), to detect edges of any objects in a bin, for example using data regarding any of intensity, shadow detection, or echo detection etc., and may be employed for example, to determine any of size, shape and/or contours as shown in <FIG>. The system may also alter illumination source locations to aid in edge detection by, for example, cycling through lights <NUM> on detection system <NUM> to highlight different edges, or measure depth or surface discontinuities using volumetric or surface scanning.

If the captured data (e.g., volume, density, size etc.), is confirmed therefore within a reliable tolerance, then the object continues to be processed in accordance with a manifest or a shipping label. If not, however, the object may be directed to a holding location (e.g., a box that is assigned as a holding location), where it may remain until the discrepancy is resolved. For example, in certain embodiments, weight measuring may be provided by certified postal weights, which would have a high reliability value, and could be trusted for rerouting decisions for measurements near the tolerance threshold. On the other hand, for similar measurements near a tolerance threshold using less reliable weight measuring, such as measurements made with machines that may not be certified postal calibrated, objects would have to be re-routed for manual verification of weight (and appropriate further expense charging).

With reference again to <FIG>, objects are placed into the carriage <NUM> and delivered to any of the carriages <NUM> by moving the carriage <NUM> along the X-Y movable stage <NUM> and then tipping the carriage <NUM> to drop the object into the carriage <NUM>.

In accordance with further embodiments, the system may estimate a volume of an object while the object is being held by the end effector. Although with certain types of object processing systems (e.g., package sortation for shipping/mailing) volume may not be as helpful (for example when handling deformable plastic bags), in other systems such as store replenishment or e-commerce applications, volumetric scanning would be very valuable. In particular, the system may estimate a volume of picked object (or objects) while being held by the end effector, and compare the estimated volume with a known volume. To capture the estimated volume, one or more perception units (e.g. cameras or 3D scanners) are placed around a scanning volume in an embodiment to capture volume data.

With reference to <FIG>, one or more perception units <NUM>, <NUM>, <NUM>, <NUM> (e.g., cameras or 3D scanners) are placed around a scanning volume (including an end effector <NUM> and object <NUM>), each being positioned opposite an illumination source <NUM>, <NUM>, <NUM>, <NUM> and optionally including a diffusing screen <NUM>, <NUM>, <NUM>, <NUM>. As shown in <FIG>, an illumination source and perception unit pair (e.g., <NUM>, <NUM> and <NUM>) may be engaged at the same time. With further reference to <FIG>, opposite each perception unit is the illumination source <NUM>, <NUM>, <NUM>, <NUM> as well as the optional diffusing screen <NUM>, <NUM>, <NUM>, <NUM> in front of the respective illumination source.

As shown in <FIG>, perception data regarding the object <NUM> as backlit by the illumination source (e.g., <NUM>) and diffuser (e.g., <NUM>) will be captured by each perception unit (e.g., <NUM>). <FIG> shows the view of the object <NUM> from camera <NUM> showing the lower back end, <FIG> shows the view of the object from camera <NUM> showing the lower front end, <FIG> shows the view of the object from camera <NUM> showing the lower left side, and <FIG> shows the view of the object from camera <NUM> showing the lower right side. In accordance with various embodiments, three perception units may be used, spaced apart by <NUM> degrees, and in accordance with further embodiments, fewer perception units may be used (e.g., one or two), and the object may be rotated between data acquisition captures.

The scanning volume may be the volume above the area where the objects are picked from; or the scanning volume may be strategically placed in between the picking location and the placing location to minimize travel time. Within the scanning volume, the system takes a snapshot of the volume of objects held by the gripper. The volume could be estimated in a variety of ways depending on the sensor type as discussed above.

For example, if the sensors are cameras, then two or more cameras may be placed in a ring around the volume, directed slightly upward towards a backlighting screen (as discussed above) that may be in the shape of sections of a torus, where the gripped volume is held in between all the cameras and the brightly lit white screen. The brightly lit screen backlights the one or more held objects, so that the interior volume appears black. Each perception unit and associated illumination source may be activated in a sequence so that no two illumination sources are on at the same time. This allows easy segmentation of the held volume in the image.

The object may be illuminated with ambient lighting, may be provided as a particular wavelength that is not present in the room, may be modulated and detectors may demodulate the received perception data so that only illumination from the associated source is provided. The black region once projected back into space, becomes a frustum and the objects are known to lie within a solid frustum. Each camera generates a separate frustum, with the property that the volume of the objects is a subset of all of the frustums. The intersection of all the frustums yields an upper bound on the volume of the obect(s). The addition of a camera improves the accuracy of the volume estimate. The gripper may be visible within the cameras, and because its positionand size are known, its volume can be subtracted out of the frustum or volume estimate.

If instead, 3D scanners that obtain 3D images of the scanning volume are obtained, then the volume estimates are obtained in a similar way by fusing together the point clouds received from each sensor, but without the need for segmenting the images from the background using backlighting. Each 3D scanner returns a 3D image, which for each pixel in the image returns a depth.

In accordance with other embodiments, 3D scanners may be used that obtain 3D images of the scanning volume, then the volume estimates are obtained in a similar way by fusing together the point clouds received from each sensor, but without the need for segmenting the images from the background using backlighting. Each 3D scanner returns a 3D image, which for each pixel in the image returns a depth, and again, may use any of light detection and ranging (LIDAR) scanners, pulsed time of flight cameras, continuous wave time of flight cameras, structured light cameras, or passive stereo cameras, etc..

The system may therefore compare the object volume to the difference in volumes of the picking area before and after pick. Another approach is to analyze either or both of the picking or placing volumes using a 3D scanner, and then to estimate the amount of additional or subtracted volume observed in the perceived areas. For example, first, the picking area is scanned with a 3D scanner that recovers a 3D point cloud of the area. Second, the robot picker picks an object with the aim of picking a single object. Third, the picking area is re-scanned, and an estimate is formed of how much volume was taken away from the picking area. Fourth, using that volume estimate, as above, a decision is made in accordance with one or more defined thresholds as to whether that volume difference is believed to exceed the volume of a single quantity of the object by a predetermined threshold.

In accordance with further embodiments, the system may scan the picking volume before and after picking, and compare estimated volumes. In this case, the volume of the picking or placing area might be estimated in the following way. The 3D scanner is assumed to be looking approximately down at the picking area, or at a slight angle. The 3D scanner provides an image of the area and for every pixel in the image it provides a range to the geometry in the direction of the pixel. With this array of range measurements a point cloud may be formed. This point cloud represents points in three dimensional space that are estimated to be on the top surface of the pick face, where the pick face is the topmost surface of the objects to be picked. The area of the pick face can be discretized into a grid of vertical columns, and for each vertical column, an estimate of the height of the geometry within the vertical column can be obtained by taking the maximum, mean, median, minimum, or some other robust statistic of the heights of the points that lie within the column. Then, the volume of the picking area is the sum of the values of the height values estimated for each vertical column.

For various reasons, such as resolution, reflections, or transparency, some vertical columns may not have any point cloud points, in which case the resolution may be changed adaptively so that vertical columns are wide enough that none are empty of point cloud points. Statistics of various kinds may be obtained to determine a bound for the volume, such as employing the variance of the heights of the points within the columns to obtain an overall variance for the pick area volume. In this way, an estimate of the differential volume can be obtained in either the picking area, where the volume of the area would decrease by a single pick if a single object were indeed picked; or, where the volume of the area would increase by a single pick if a single object were indeed placed; or, both a differential volume of picking and placing may be estimated and combined to combat noise and errors in estimation.

<FIG>, for example, shows a structured-light 3D scanner <NUM> that projects a grid <NUM> onto a field of view. The 3D scanner <NUM> may be used in a system <NUM> as shown in <FIG> together with one, two, or three other 3D scanners (two others are shown at <NUM>, <NUM>). The 3D scanners are directed toward a common volume in which the object <NUM> is positioned while attached to the end effector <NUM>. With three such 3D scanners, the scanners may be positioned one hundred twenty degrees apart (ninety degrees apart if four are used, and opposing each other if only two are used). <FIG> show a system <NUM> having upper perception units 183a, 185a, 187a above and lower perception units 183b, 185b, 187b below an object <NUM> held by end effector <NUM> to provide further perspective and greater reliability of volume estimates provided to the system. As shown in <FIG>, the upper perception units and lower perception units are provided at different angles to capture more data points with respect to the held items. <FIG> illustrates the vertical separation and different perspectives of upper perception unit 183a and lower perception unit 187b. While the system <NUM> is shown with <NUM> perception units, a single perception unit, or a single upper and single lower perception unit, can be used if rotated around the object to see all sides.

With reference to <FIG>, each 3D scanner (e.g., <NUM>) captures 3D data regarding the object. As the grid is displayed over the object, the lines become distorted when viewed from various perspectives. The distorted views can then be used for geometric reconstruction to determine the surface profile of the object. The volume of the end effector may be removed from the captured data once it is identified during reconstruction. The displayed grid or other line pattern can be provided as coherent laser light or incoherent light, and with stationary or dynamic patterning.

In either or any approach to obtaining a volume estimate, the volume estimate is then compared to the known volume of the object. Because the sensor data may be noisy, and because the various algorithms for estimating volume may result in small errors, the thresholds for deciding whether more than one pick has occurred are tuned to balance the number of false positives (picks estimated to contain more than one object, but in actuality only one is held) and false negatives (picks estimated to contain a single object, but in actuality contain more than one), depending on the application. The tuned threshold may also depend on the object in question, and each object may have its own threshold. If it is determined that the threshold has been exceeded, the objects may be placed back into the area from which they were picked so that the robot may try again to pick a single object.

In accordance with further embodiments, the system may detect multiple picks by automatically perceiving leaks from flow or pressure data. With reference to <FIG>, the system may use an end effector <NUM> that includes a sensor <NUM> such as a flow sensor or pressure sensor. For example, the system may detect a much greater flow (or an increase in vacuum pressure) than anticipated for an object <NUM>, which may be because two objects (<NUM>, <NUM>) were grasped, causing a substantial amount of air to be drawn into the end effector <NUM> from between the two objects.

The system may therefore detect multiple picks by automatically perceiving leaks from flow or pressure data. Another approach is to compute from observations of flow and pressure while holding an object statistics with which to compare to statistics collected when the same object was collected before. In further embodiments, the system may compute from time series data of flow and/or pressure, while holding the object, the variance and other statistics with which to compare statistics from when the same object or similar object was previously gripped. In further embodiments, the system may compare the obtained values, and if the difference lies above a certain threshold, then rule it as an instance of picking more than one of the object. In further embodiments, the system may employ a linear classifier, support vector machine, or other machine learning-based classifier to discriminate between single or multiple picks using flow or pressure data. Additionally, the system may combine any subsets of the above approaches. The system may also use performance models of any of the above, where the system knows the probability of a single or multiple pick given the output of a detection, and may then combine any or all of the approaches above.

In certain applications, such as when picking from a homogenous tote of objects, the system may identify active orders (e.g., from a manifest) that require two such objects (and do not yet have the total number of such objects, requiring at least two more). The system may then route an identified double pick to the identified location, noting that two such objects have been delivered to the identified location. Such a system however, must maintain active monitoring of the grasp, and may learn over time which types of objects may be more likely to result in a multi-pick and which such multi-picks may be reliably delivered by the end effector, and further may be processed together further in the processing system. In particular, if a shuttle carriage is used, the system must know that two such objects will fit into the carriage at the same time. The presence of the two such object pick will be confirmed if the shuttle carriage includes weight sensing as discussed here with reference to <FIG>. As the system may learn not only the types of objects that may be processed as a multi-pick, the system may also learn the types of grasps that may be reliably processed as multi-picks (e.g., double-picks).

In accordance with further embodiments, the system may compare held or transferred weight with known object weight. In such a system, the approach is to measure the weight of the picked objects, and compare the measured weight to the a priori known weight of the object. The weighing of the object might be implemented in any of a number of ways, including at the gripper, by force or load sensing mechanisms in the gripper, at the pick or place area, or where the underlying pick area container or conveyor is continually weighed by a scale to measure the change in weight before and after picking or placing, or on a supplemental transfer mechanism such as a shuttle that transports singulated and picked objects to other locations, or on a temporary weighing mechanism within the workspace of the robot pick cell, where the robot places the one or more objects on a holding tray, where they are then weighed and the robot re-picks them.

<FIG> show a carriage <NUM> (e.g., any of carriages <NUM>, <NUM>) in accordance with an embodiment of the present invention that include a generally V-shaped body <NUM> for containing an object, as well as beam break transmitter and receiver pairs <NUM>, <NUM> (e.g., infrared transmitters and receivers) for detecting when an object enters or leaves the body <NUM>. With reference to <FIG>, the carriage also includes a support frame <NUM> for supporting the body <NUM>, as well as actuation means for moving the carriage along a rail and for selectively causing the carriage to be tipped to drop the contents of the carriage into another carriage, a box, or other container. The actuation may be any of a pneumatic or electric control system <NUM>, and communication to and from the carriage may be by wireless communication from an electronic processing system <NUM> (shown in <FIG>).

The carriage also includes a pair of load cells <NUM>, <NUM> that are coupled to the frame <NUM>, and the carriage body <NUM> is mounted to (and is suspended by) the load cells. By locating the load cells on the body of the carriage close to object(s) held therein, a highly reliable weight measurements may be obtained. Once an object is detected, for example by the beam-break transmitter and receiver pair <NUM>, <NUM>, the system will determine the weight of the object. In accordance with an embodiment, the system will add the weight value of the two load cells (W<NUM>, W<NUM>) together, and subtract the weight of the body <NUM>. In this way, weight of objects may also be obtained and checked (within a tolerance range of, for example <NUM>%) to <NUM>%) with a manifest or shipping information. In accordance with other embodiments, the load cells themselves may register a change, indicating that the carriage has received or expelled an object.

The carriage body <NUM> is adapted to be rotatable about an axis <NUM> (to empty its contents), and the carriage body <NUM> is attached to a top portion <NUM> of the load cells <NUM>, <NUM> above the axis of rotation <NUM>. <FIG> shows a top view of the carriage and <FIG> shows an end view of the carriage opposite the side with the actuation system <NUM>. <FIG> shows the carriage being tipped (rotated about axis <NUM>) to empty its contents, which motion may continue until a stop plate <NUM> contacts stops <NUM> (shown in <FIG>).

The detection of weight is important for many industrial tasks. If an object in the carriage has a weight significantly different than that in a manifest or shipping label, the object may be held as discussed above until resolved (e.g., additional charges are processed). In accordance with other embodiments, a carriage may be used to transport multiple objects uniform weight objects. The uniform weight is known, the quantity of objects in the carriage may be determined by dividing the measured total weight by the known object weight.

<FIG> and <FIG> show a carriage <NUM>' in accordance with another embodiment of the invention similar to that shown in <FIG> (with similar views to <FIG> and <FIG>) having a body <NUM>' that includes a taller back wall <NUM> against which objects may be re-directed into the generally V-shaped body of the carriage. In particular, and with regard to carriages <NUM> in particular, the first carriage <NUM> may drop objects into the carriage having the body <NUM>' such that the first carriage <NUM> is located on the side of the carriage <NUM>' of <FIG> and <FIG> opposite the side with the taller back wall <NUM>.

The carriage <NUM>' is similarly mounted via load cells <NUM>, <NUM> on a frame <NUM>, and its motion along a rail and in tipping, is controlled by actuation system <NUM>. Communication and electronic controls are provided by electronic processing and communication system <NUM> (shown in <FIG>). Again, the load cells <NUM>, <NUM> may be used to determine the weight of the contents of the carriage as discussed above with reference to <FIG>. For example, once an object is detected by the beam-break transmitter and receiver pair <NUM>, <NUM>, the system in accordance with an embodiment, will add the weight value of the two load cells (W<NUM>, W<NUM>) togetherand subtract the weight of the body <NUM>'. In accordance with other embodiments, the load cells themselves may register a change, indicating that the carriage as received or expelled an object.

<FIG> show a carriage <NUM> in accordance with another embodiment of the present invention that includes a body <NUM> as well as a V-shaped plate <NUM> that is mounted on the body <NUM> by load cells <NUM> (shown in <FIG> with the V-shaped plate removed). The load cells <NUM> may each obtain weight data, e.g., W<NUM>, W<NUM>, W<NUM>, W<NUM>, as shown in <FIG>, and W<NUM>, W<NUM>, W<NUM>, W<NUM> by the other four load cells. <FIG> shows the carriage <NUM> with the body wall that is not shown in <FIG> also removed from <FIG>. The remaining portions of the carriage <NUM> are as discussed above, including the support frame for moving along a rail, as well as the actuation systems and electronic processing and communication system. Again, the load cells <NUM> may be used to determine the weight of the contents of the carriage as discussed above. For example, once an object is detected as having entered the carriage <NUM> (e.g., by a beam-break transmitter and receiver pair as discussed above), the system in accordance with an embodiment, will add the weight value of the eight load cells (W<NUM>, - W<NUM>) together and subtract the weight of the V-shaped plate <NUM>.

<FIG> and <FIG> show a carriage <NUM> in accordance with another embodiment of the present invention that includes a body <NUM> as well as a mounting bracket <NUM> that is mounted to support frame <NUM> by load cells <NUM>. The load cells <NUM> may each obtain weight data, e.g., W<NUM>, W<NUM> as shown in <FIG>. <FIG> shows an enlarged view of the load cell <NUM> coupled between the carriage mounting bracket <NUM> and the support frame <NUM>. The remaining portions of the carriage <NUM> are as discussed above, including the remaining portions of the support frame for moving along a rail, as well as the actuation systems and electronic processing and communication system for selectively rotating the carriage body about an axis <NUM>. Again, the load cells <NUM> may be used to determine the weight of the contents of the carriage as discussed above. For example, once an object is detected as having entered the carriage <NUM> (e.g., by a beam-break transmitter and receiver pair as discussed above), the system in accordance with an embodiment, will add the weight value of the two load cells (W<NUM>, - W<NUM>) together, and subtract the combined weight of the body <NUM> and the two carriage mounting brackets <NUM>.

<FIG> shows a processing station <NUM>' in accordance with another embodiment of the present invention that includes a drop perception system <NUM> through which objects (e.g., <NUM>) may be dropped into the first carriage <NUM> that is mounted on the X-Y movable stage <NUM>. The object (<NUM>) is identified by perception devices (e.g., cameras or scanners) that detect any identifying indicia (e.g., barcode, QR code, RFID etc.) on the object. With further reference to <FIG>, the object then falls through the drop scanner <NUM> via guide <NUM>, and via a chute <NUM> lands in the first carriage <NUM>. As discussed above, the carriage <NUM> includes an object detection system such as load cells or a beam break detection system that detects when the object has been received by the carriage <NUM>, and the carriage <NUM> then moves to the appropriate row and carriage <NUM> based on the detected indicia.

The processing station <NUM>' also includes the capture system <NUM> that include scanning and receiving units <NUM>, <NUM>, as well as edge detection units <NUM> (as discussed above in reference to <FIG>) for capturing a variety of characteristics of a selected object or the whole bin. <FIG> shows a view from the volumetric detection system <NUM>, which in accordance with an embodiment, may include a set of similar or dis-similar objects <NUM>, <NUM>, <NUM>, <NUM>, <NUM>. The contents of the bin are volumetrically scanned scanning and receiving units <NUM>, <NUM> as shown in <FIG> prior to removing an object from the bin <NUM>, and are volumetrically scanned after removing an object <NUM> from the bin <NUM> as shown in <FIG>.

In accordance with an embodiment, the volume captured in <FIG> is subtracted from the volume captured in <FIG>, and the difference is assessed as the volume of the object <NUM> (V<NUM>) that is removed. In accordance with other embodiments, the system, knowing that it will be acquiring object <NUM>, may capture volumetric data regarding the object <NUM> while the object <NUM> is still in the bin (as shown in <FIG>). This may be done in place of or in addition to the volumetric subtraction (between <FIG>) discussed above. In accordance with further embodiments, the scanning and receiving units <NUM>, <NUM> may also be employed to determine an object's density, D<NUM>, from knowing the object's mass and volume.

The difference in volume between the scans shown in <FIG> is the volume of the removed object <NUM>, V<NUM>. This volume is compared with recorded data regarding the object that is identified by the identifying indicia as provided by the perception system <NUM> or the recorded data. If the volume is confirmed within a tolerance, then the object continues to be processed in accordance with a manifest or a shipping label. If not, however, the object may be directed to a holding location (e.g., a box that is assigned as a holding location), where it may remain until the discrepancy is resolved. As discussed above with reference again to <FIG>, objects are dropped into the carriage <NUM> and delivered to any of the carriages <NUM> by moving the carriage <NUM> along the X-Y movable stage <NUM> and then tipping the carriage <NUM> to drop the object into the carriage <NUM>.

In accordance with further embodiments and with reference to <FIG>, the system may additionally employ the edge detection sensors <NUM> that are employed (again together with the processing system <NUM>), to detect edges of any objects in a bin, for example using image any of intensity data, shadow detection, or echo detection etc. This information can be used to determine or verify any of the object's identity, location, orientation, size, shape and/or contours. For example, edge detection can be done either before or after volumetric scanning, and thereafter volumes can be calculated for each identified object within the bin.

<FIG> and <FIG> show the drop perception system <NUM> in more detail. In particular, the drop perception system <NUM> includes a structure <NUM> having a top opening <NUM> and a bottom opening <NUM>, and 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 secondary perception system. 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 are directed horizontally, while others are directed upward, and some are directed downward. 'ni,- system <NUM> also includes an entry source (e.g., infrared source) <NUM> as well as an entry detector (e.g., infrared beam-break detector) <NUM> for detecting when an object has entered the perception system <NUM>. The LEDs and cameras therefore encircle the inside of the structure <NUM>, and the perception units are positioned to view the interior via windows that may include a glass or plastic covering (e.g., <NUM>). The perception units may include cameras (e.g., 2D or 3D) or scanners (e.g., light reflectivity or radio frequency scanners), and the processing system <NUM> may include the associated software to process the perception data. The scanners look for a variety of codes such as indicia (e.g., barcodes, radio frequency tags, Stock Keeping Unit (SKU), Universal Product Code (UPC), Digimarc DWCode, etc.).

<FIG> show a representative set of two rows of output boxes <NUM> adjacent output conveyors <NUM> of the destination station <NUM>. In particular, each carriage <NUM> receives an object <NUM> from a first carriage <NUM> as discussed above and as shown in <FIG>, and each carriage <NUM> is reciprocally movable between the output boxes <NUM>. As further shown in <FIG>, each carriage <NUM> moves along a track <NUM>, and may be actuated to drop an object <NUM> into a desired output box <NUM> by tipping as shown.

The output boxes may be provided in a conveyor (e.g., rollers or belt), and may be biased (for example by gravity) to urge all destination bins toward one end <NUM> as shown. With reference to <FIG>, when an output box <NUM> is selected for removal (e.g., because the bin is full or otherwise ready for further processing), the system will urge the completed box onto an output conveyor <NUM> to be brought to a further processing or shipment station. This may be done, for example, using a displacement mechanism <NUM> as discussed above. The conveyor <NUM> may be biased (e.g., by gravity or power) to cause any bin on the conveyor to be brought to an output location at a second end <NUM> opposite the first end <NUM>. The destination bins may be provided as boxes or containers or any other type of device that may receive and hold an object, including the box tray assemblies.

Following displacement of the box onto the conveyor, each of the output boxes may be urged together, and the system will record the change in position of any of the boxes that moved. This way, a new empty box may be added to the end, and the system will record the correct location and identified processing particulars of each of the destination bins.

Each of the above detection systems for detecting or estimating any of weight, size, mass, volume, density etc. may be used with a variety of object processing systems. <FIG>, for example, shows a processing system <NUM> that includes a programmable motion system <NUM>. The programmable motion system <NUM> includes an articulated arm <NUM> and an end effector <NUM>. The system <NUM> may retrieve objects from bins <NUM> that are provided on conveyors <NUM>, and place the retrieved objects into a reciprocating carriage <NUM> that travels along a rail <NUM> between rows of boxes <NUM>. Completed boxes may be urged onto output conveyors <NUM>, which direct the completed boxes to a collected output conveyor <NUM>.

The system <NUM> includes a perception unit <NUM>, and with further reference to <FIG> and <FIG>, the perception unit <NUM> combines the functionalities of the detection system <NUM> and the capture system <NUM> discussed above, and includes lights <NUM> and perception units <NUM>, and scanning and receiving units <NUM>, <NUM> as well as edge detection unit <NUM>. Each perception unit <NUM> may therefore capture identifying indicia, and provide volumetric 3D scanning as discussed above.

The carriage <NUM> may be any of the carriages discussed above with reference to <FIG>, and may therefore determine an estimated weight or mass of an object (or more) in the carriage. The system may also check all of the detected/estimated data against a manifest or original shipping record, and process the object as discussed above, selecting the appropriate box <NUM> into which the deposit the object responsive to the data. As shown in <FIG>, the system may be scaled such that multiple programmable motion systems <NUM> may process object into multiple carriages <NUM> and output boxes <NUM>.

Further, <FIG> shows a processing system <NUM> that includes a programmable motion system <NUM>. The programmable motion system <NUM> includes an articulated arm <NUM> and an end effector <NUM>. <FIG> shows a top view of the system of <FIG>. The system <NUM> may retrieve objects from bins <NUM> that are provided on conveyors <NUM>, and place the retrieved objects into a reciprocating carriage <NUM> that travels along a rail <NUM> between rows of boxes <NUM> as shown in <FIG> (showing a similar view as <FIG>) and in <FIG> (showing a similar top view as <FIG>). The bins <NUM> may be provided by conveyors <NUM> and circulating conveyors <NUM> that provide the bins <NUM> using one or more diverters <NUM>. Completed boxes may be urged onto output conveyors <NUM>, which direct the completed boxes to a collected output conveyor <NUM>.

The system <NUM> includes a perception unit <NUM> that is the same as the perception unit <NUM> that combines the functionalities of the detection system <NUM> and the capture system <NUM> discussed above, and includes lights and perception units, and scanning and receiving units as well as edge detection units. Each perception unit <NUM> may therefore capture identifying indicia, and provide volumetric 3D scanning as discussed above.

Claim 1:
A method of processing objects, comprising:
receiving a plurality of objects in a bin (<NUM>) at a processing station (<NUM>), each object being associated with prerecorded data;
perceiving identity data regarding an identity of an object in the bin of objects at the processing station (<NUM>);
obtaining the prerecorded characteristic data associated with the identity of the object;
capturing characteristic data regarding the object received at the processing station;
comparing the captured characteristic data with the prerecorded characteristic data associated with the object to provide comparison data; and
transporting the object in a carriage to one of a distribution station (<NUM>) and a holding location in communication with the processing station responsive to the comparison data, characterized in that:
the carriage (<NUM>, <NUM>, <NUM>, <NUM>', <NUM>, <NUM>) includes a carriage body (<NUM>, <NUM>' <NUM>, <NUM>) mounted to a support frame (<NUM>, <NUM>) that moves the carriage body along a rail, and a plurality of load cells (<NUM>, <NUM>, <NUM>, <NUM>) mounted thereto, and
wherein capturing the characteristic data regarding the object includes determining a weight of the object held within the carriage body using the plurality of load cells mounted to the carriage.