Patent Publication Number: US-11654582-B2

Title: Optimization-based spring lattice deformation model for soft materials

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of co-pending U.S. patent application Ser. No. 15/934,498, filed Mar. 23, 2018. The aforementioned related patent application is herein incorporated by reference in its entirety. 
    
    
     BACKGROUND 
     The present description relates to robotic systems and, more specifically, to techniques for adaptively controlling industrial robotic systems through the use of a suction cup model. 
     Modern inventory systems, such as those in mail-order warehouses, supply chain distribution centers, and custom-order manufacturing facilities, face significant challenges in responding to requests for inventory items. As inventory systems grow, the challenges of simultaneously completing many packing, storing, and other inventory-related tasks become non-trivial. For instance, in product distribution centers (e.g., fulfillment centers), vast quantities of products are processed for shipment to consumers traditionally using manual labor and/or mechanical handling equipment. 
     Even in highly automated product distribution environments, an employee may be required to manually place a product onto a machine for automated packaging. While it can be advantageous to replace certain manual operations with an automated system (e.g., particular highly repetitive operations which can result in a repetitive use injury to the employee over a period of time), in many situations it is critical that any such automated system operate at a very high rate of success. For example, a robotic arm that retrieves an item from a bin and places the item on a conveyer belt may be unacceptable for use in a product distribution center, if the robotic arm has a high rate of failing to retrieve the item or a significant likelihood of dropping the item on the way to the conveyer belt, as such failures could significantly delay the workflow of the distribution center. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG.  1    illustrates an inventory system having multiple regions and mobile drive units that carry inventory holders about the regions, according to one embodiment described herein. 
         FIG.  2    illustrates a robotic picking environment within a fulfillment center, according to one embodiment described herein. 
         FIG.  3    is a block diagram illustrating a robotic control optimization system, according to one embodiment described herein. 
         FIG.  4    is a block diagram illustrating a workflow for ranking candidate contact points on an item through the use of a suction cup model, according to one embodiment described herein. 
         FIG.  5    illustrates a portion of a three-dimensional spring lattice for use in determining a deformed three-dimensional shape, according to one embodiment described herein. 
         FIG.  6    illustrates a deformed three-dimensional shape of a suction cup device in contact with an item surface, according to one embodiment described herein. 
         FIG.  7    is a flow diagram deformed three-dimensional shapes of a suction cup device in contact with a malleable item surface, according to one embodiment described herein. 
         FIG.  8    is an illustration of a simulation for calculating an estimated seal quality metric between a suction cup and an item, according to one embodiment described herein. 
         FIG.  9    is a graph illustrating a relationship between static pressure and leak pathway surface air for a seal between a suction device and an item, according to one embodiment described herein. 
         FIG.  10    illustrates a workflow for processing an item within a fulfillment center environment, according to one embodiment described herein. 
         FIG.  11    illustrates a workflow for generating an estimated seal quality metric for candidate contact points on an item within a fulfillment center, according to one embodiment described herein. 
         FIG.  12    illustrates a workflow for controlling a robotic picking arm to retrieve an item by holding the item at a selected contact point, according to one embodiment described herein, 
         FIG.  13    is a flow diagram illustrating a method for determining an expected seal quality metric for holding an item at a candidate contact point using a suction device, according to one embodiment described herein, 
         FIG.  14    is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item by holding the item at a candidate contact point, according to one embodiment described herein. 
         FIG.  15    is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item at a selected candidate contact point, according to one embodiment described herein. 
     
    
    
     DETAILED DESCRIPTION 
     Inventory systems are utilized by many entities for storing and managing inventory. For example, some retailers may utilize a warehouse of racks that store inventory items in various bins. When an order for a specific inventory item needs to be filled by the retailer, a worker typically retrieves the inventory item from the bin where the inventory item is stored. 
     Inventory systems according to one embodiment described herein utilize one or more mobile drive units to automatically retrieve inventory holders from warehouse storage. The inventory holders may be entire racks of shelves, with each shelf having bins for various inventory items. Mobile drive units may be self-powered robotic devices configured to move freely about the warehouse. Racks may be transported by mobile drive units to a pick station for performing inventory operations. The station may include a human operator and/or automated equipment to remove desired inventory items from the inventory holders and complete orders. In some operations, the items are removed from inventory holders and placed on order holders, which too can be maneuvered by the mobile drive units. Throughout this document, reference is made to inventory holders as the racks that are moved about by the mobile drive units. It is noted that inventory holders is used in the general sense as structures that hold inventory items, items that are part of an order, packaging elements for the orders, and essentially any other item or element that might be used by the inventory and fulfillment system. As such, inventory holders may also be referred to as holders, order holders, container holders, bins, and so forth. 
     Mobile drive units may move about the warehouse and/or retrieve inventory holders in response to commands and/or instructions received from an automated guidance system. For example, the mobile drive units could continuously move the inventory holders into and out from the pick stations to place the appropriate items near the pickers at the tight time, (“Pickers” are the human or autonomous operators that retrieve items from the inventory holders.) 
     Increasingly, automated systems are being used to replace highly repetitive manual operations traditionally performed by employees and which can cause harm (e.g., repetitive use injuries) to the employees over time. However, such automation is particularly challenging to implement in a product distribution center, which frequently process products of dramatically different shapes and sizes. As such, while a robotic tool can be trained to reliably perform a particular action for a particular size and shape of object relatively easily, it is significantly more challenging to implement a robotic tool that can reliably perform the particular action for objects of various shapes and sizes. For example, depending on an object&#39;s shape and size, factors such as how to pick-up the object (e.g., with a single suction device, with multiple suction devices, with a robotic claw that grasps the object, etc.), where to pick-up the object (e.g., in the middle of a dense, flat surface with a suction device, as opposed to on a non-rigid surface through which air can easily pass), and so on. As a result, training an automated system to operate in such an environment can be a very difficult task. 
     Generally, robotic picking devices may be configured with several different end effectors for use in performing picking operations, and may be configured with control logic that is capable of using each end effector in multiple different ways when attempting to pick up an item. For example, a robotic picking arm could be configured with a suction device end effector, and the control logic for the robotic picking arm could determine a plurality of different candidate contact points that are available on a particular item to be picked up using the suction device end effector. The control logic could then select one of the candidate contact points and could attempt to lift the item by creating a suction seal with the item using the suction device end effector. In the event that the picking operation fails (e.g., the robotic picking arm fails to lift the item, the robotic picking arm drops the item en route to the item&#39;s destination, etc.), the control logic could then select a different candidate contact point and attempt to lift the item again using the suction device end effector. The control logic could also change other parameters, such as the speed at which the robotic picking arm moves once the item has been lifted using the suction device end effector, and can even attempt to lift the item using other end effectors (e.g., a robotic claw that grasps the item). 
     While such a process may eventually produce a successful result (i.e., the robotic picking arm may eventually lift the item and transport the item to its intended destination), such an iterative process can consume a significant amount of time and in rare instances may damage the item (e.g., if a fragile item is dropped during transit). As many fulfillment centers operate at a rapid pace, the delays introduced by repeatedly attempting to pick up an item using different contact points and different end effectors can be problematic. However, conventional solutions do not provide an adequate way to determine which contact point on the item is optimal for a given picking operation. 
     As such, embodiments herein provide techniques for controlling a robotic picking arm with a suction device end effector to lift an item at a determined contact point. For example, embodiments can determine a plurality of candidate contact points for holding a first item using the suction device of the robotic picking arm, based on an estimated surface geometry of the first item. In one embodiment, the estimated surface geometry of the item can be determined by capturing one or more images of the item using one or more camera devices and using these images, together with positional information and a three-dimensional model of the item, to determine the item&#39;s estimated surface geometry. Of note, while some embodiments are described herein with reference to three-dimensional models, such examples are provided for illustrative purposes only and without limitation. More generally n-dimensional models (e.g., where n is greater than 2) can be used, consistent with the functionality described herein. 
     Embodiments can then calculate, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed three-dimensional shape of the suction device and a three-dimensional shape associated with the candidate contact point on the first item. For example, embodiments could determine the predicted deformed three-dimensional shape of the suction device by generating a three-dimensional spring lattice based on attributes of the suction device and by determining a three-dimensional shape of the spring lattice that minimizes a measure of potential energy within the spring lattice. Embodiments can then use the resulting three-dimensional shape to calculating an estimated seal quality metric for the seal between the suction device and the item at the candidate contact point. 
     Embodiments can select one of the plurality of candidate contact points, based on the calculated seal quality metrics (e.g., the candidate contact point having the strongest estimated seal). Embodiments could then control movement of the robotic picking arm to retrieve the first item by holding the first item at the selected candidate contact point. Advantageously, by evaluating the estimated seal quality metrics for the candidate contact points before attempting to lift the item using the robotic picking arm, embodiments can boost the effectiveness of the robotic picking arm and can also improve the robotic picking arm&#39;s efficiency by reducing failed picking attempts. 
       FIG.  1    illustrates an inventory system having multiple regions and mobile drive units that carry inventory holders about the regions. The inventory system  100  may be arranged in a facility or warehouse (e.g., distribution facility, fulfillment center, etc.) that is logically organized into areas or regions associated with various functions. In the illustrated example, the warehouse includes a storage region  102 , a pick station  104 , and an inventory pier  106 . In practice, depending upon the size of the inventory system  100 , the warehouse may hold more than one of the storage regions  102 , pick stations  104 , and inventory piers  106 , or the warehouse may be configured without the storage region  102 , or the pick station  104 , or the inventory pier  106 . 
     The inventory system  100  includes a management module  110 , multiple mobile drive units  112 , inventory holders  114  and a training system  150 . Only some of the inventory holders  114  are shown referenced with the number  114  for ease of illustration. The mobile drive units  112  are independent, self-powered robotic devices that may move freely about the warehouse, under their own direction or through coordination by the management module  110 . The mobile drive units  112  may be used at various times to transport the inventory holders  114  around the warehouse among the regions. For instance, the mobile drive units  112  may transport the inventory holders  114  between the storage region  102  and the pick station  104  or inventory pier  106 . 
     Each inventory holder  114  may be implemented as a physical structure to hold various inventory items. The inventory holder  114  has a physical length, width, and height that may be standardized or varied within the inventory system. As used herein, the inventory holders  114  may be configured to hold essentially any type or size of item or be used for any number of purposes, including, but not limited to, carrying pallets, storing shipping supplies, holding garbage, supporting empty boxes waiting for inventory, supporting filled boxes with items once orders are fulfilled, and so on. Furthermore, as used herein, inventory holders also include holders for other types of products or items and hence include order holders. 
     In one implementation, the inventory holder  114  may be formed as a rack having multiple shelves to support various types of inventory items. For instance, the inventory holders  114  may include multiple storage bins with each storage bin capable of holding a different type of inventory item. The inventory holders  114  are capable of being carried, rolled, or otherwise moved by the mobile drive units  112 . Each inventory holder  114  may have a plurality of faces, and each bin may be accessible through specific faces. The rack is free-standing when at rest, but can be lifted and moved by the mobile drive units  112 . The mobile drive units  112  may be configured to rotate inventory holders  114  at appropriate times to present particular faces of inventory holders  114  and the associated bins to an operator or other components of inventory system  10 . One example is described below in more detail with reference to  FIG.  2   . 
     One or more mobile drive units  112  are provided in the storage region  102  to shuffle inventory holders  114  among the storage locations  120  and to transport the inventory holders between the storage region and other regions in the warehouse. Two loaded drive units  112 ( 1 ) and  112 ( 2 ) are shown in the storage area  102  carrying associated inventory holders  114 ( 1 ) and  114 ( 2 ), respectively, down aisles between the sets of predefined storage locations  120 , An unloaded drive unit  112 ( 3 ) is also shown moving through an aisle between the predefined storage locations  120 . 
     The pick station region  104  is designed with multiple locations  122  and  124  to accommodate associated resting inventory holder  114 . In  FIG.  1   , the pick station  104  has five locations arranged in two linear rows. A first line of three pick locations  122  is mapped next to a picking area in which a robotic picking arm  128  picks inventory from the inventory holders  114  at the pick locations  122  and loads them into boxes or containers supported by another inventory holder  114 ( 4 ) mounted on a mobile drive unit  112 ( 4 ). In one embodiment, the robotic picking arm  128  can be configured with one or more suction device end effectors for use in picking up items from the inventory holders  114 . A second line of two staging locations  124  is mapped adjacent to, but spaced from, the first line of pick locations  122 . The staging locations  124  temporarily hold inventory holders  114  on the way to and from the pick locations  122  of the pick station  104 . It is noted that five locations are merely representative, and that pick stations  104  may be designed with more or fewer than five locations. 
     Order holders may, for example, be racks of shelving that are configured to hold boxes or containers that will be used to fill orders for inventory items. Each box or container may be associated with a particular order. For instance, an order holder may store a cardboard box that is to be used for shipping an order for several ink cartridges and several reams of paper. Order holders with orders needing such items may visit positions along the inventory pier corresponding to inventory holders storing inventory items needed by the orders. Operators may remove items from the inventory holders and place them into appropriate boxes or containers in the order holder. If necessary, the order holder may then be taken to an inventory station to fill items remaining on the orders in the boxes or containers of the order holder. 
     To illustrate, in the office supply example discussed above, paper may be a high volume inventory item and ink cartridges may be a highly popular item. Accordingly, a pallet of paper and an inventory holder storing various ink cartridges may be stationed at the inventory pier. An order for several packages of paper and an ink cartridge may be filled by moving an order holder a location along the inventory pier opposite to the pallet storing the paper where an operator may transfer the paper to the order holder. The order holder may then move to a location opposite the inventory holder storing the ink cartridges where the same or a different operator may transfer the ink cartridge to the order holder. If the requested printer is not already stored at the inventory pier, a mobile drive unit may transport the order holder to an inventory station, where another mobile drive unit may transport an inventory holder containing the printer so that the order can be filled. 
     In  FIG.  1   , the inventory pier  106  is shown with multiple designated pier locations  130  to accommodate the inventory holders  114 . Five pier locations  130  are illustrated to accommodate five corresponding holders  114 , although there may be more or fewer pier locations per inventory pier  106 . One mobile drive unit  112 ( 6 ) is shown at the inventory pier  106  to shuffle inventory holders  114  among the locations  130  according to the techniques described herein. Two loaded mobile drive units  112 ( 7 ) and  112 ( 8 ) are shown at rest next to a pier  132  and holding associated inventory holders  114 ( 7 ) and  114 ( 8 ) (or more specifically in this case, order holders) for access by a picker  134  (again, represented as a human although a mechanical device may be used). In this example, the inventory holders  114 ( 7 ) and  114 ( 7 ) may be holding packages or containers for order fulfillment, where the picker  134  removes selected items from the inventory holders  114  positioned in locations  130  and loads the items into order containers on the inventory holders  114 ( 7 ) and  114 ( 8 ). 
     In some implementations, multiple mobile drive units may be used to bring inventory holders to and from the pier locations  130  of the inventory pier  106 . Incoming inventory holders may be placed in temporary locations while a single mobile drive unit, such as unit  112 ( 6 ), removes an existing inventory holder that has been recently picked by the picker  134  from a pier location  130  and replaces it with a new inventory holder with new items of interest for the picker  134 . 
     In one implementation, the management module  110  orchestrates movement of the mobile drive units  112 , directing them to various regions within the warehouse. The management module  110  coordinates transport of the various inventory holders among the regions in the warehouse. Furthermore, the management module  110  may be used to instruct the mobile drive units to perform the shuffle processes within a particular region (e.g., storage region  102 , pick station  104 , inventory pier  106 , etc.). Generally, the shuffle process involves directing a mobile drive unit  112  to reposition a first inventory holder from its current location within the region to a temporary location within the region that is adjacent or proximal to the current location. The mobile drive unit  112  leaves the first inventory holder in the temporary location and subsequently positions a second inventory holder into the location vacated by the first inventory holder. The mobile drive unit  112  then lifts the first inventory unit to transport the first inventory holder away. 
     The management module  110  may use any form of communication to direct the mobile drive units. In one implementation, the management module  110  and the mobile drive units are configured to communicate using wireless technologies, such as a wireless local area network (WLAN). As one example, some embodiments of mobile drive unit  112  may communicate with management module  110  and/or with one another using Wi-Fi (IEEE 802.11), Bluetooth (IEEE 802.15), Infrared Data Association standards, or any other appropriate wireless communication protocol. As another example, in a tracked inventory, system  100 , tracks or other guidance element upon which mobile drive units  112  move may be wired to facilitate communication between mobile drive units  112  and the management module  110  and/or other components of inventory system  100 . 
     In addition to directing the mobile drive units, the management module  110  may receive and/or generate requests to initiate any of a number of particular operations involving the mobile drive units  112 , inventory holders  114 , or other elements of inventory system  100 . The management module  110  may select components of inventory system  100  to perform various operations and communicate commands, instructions, and/or other appropriate information to the selected components to facilitate completion of these operations. The management module  110  may receive orders for various inventory items and coordinate and administer various appropriate tasks to fill the orders. For example, an order may specify, particular inventory items that have been purchased by a customer and that are to be retrieved from inventory system  10  for shipment to the customer. The management module  110  may receive the orders from any appropriate system and generates task assignments based, in part, on the orders including requests for inventory items. Based on the orders, the management module  110  may identify particular operations to be completed involving inventory items stored or to be stored within inventory system  100 . 
     After generating one or more task assignments, the management module  110  selects appropriate components to complete particular tasks and transmits task assignments to selected components, such as the mobile drive units, to trigger completion of the relevant tasks. The relevant components then execute their assigned tasks. Each task assignment defines one or more tasks to be completed by a particular component. These tasks may relate to the retrieval, storage, replenishment, and counting of inventory items and/or the management of mobile drive units  112 , inventory holders  114 , or other components of inventory system  100 . Depending on the component and the task to be completed, a particular task assignment may identify locations, components, and/or actions associated with the corresponding task and/or any other appropriate information to be used by the relevant component in completing the assigned task. In one embodiment, the management module  110  is configured to control one or more robotic picking arms (e.g., at pick station  104 ) that retrieve specific items from a first location and place these items at a destination location. 
     In one embodiment, the robotic control optimization system  150  can capture one or more images of an item within a storage container to be retrieved using a robotic picking arm having a suction device. The robotic control optimization system  150  could then retrieve a three-dimensional surface model of the item, based on a unique identifier corresponding to the item. The robotic control optimization system  150  could determine a plurality of candidate contact points for holding the item using the suction device of the robotic picking arm, based on the captured one or more images of the item and the three-dimensional surface model of the item. For example, the robotic control optimization system  150  could determine a set of candidate contact points for the item and could determine which of those candidate contact points are currently accessible based on the item&#39;s pose and location within the storage container. 
     The robotic control optimization system  150  can determine an expected seal quality metric for a first one of the candidate contact points, by processing the three-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm. For example, the robotic control optimization system  150  could model deformation and contact between the suction device and the first candidate contact point, using at least one three-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point on the item, such that potential energy across the three-dimensional spring-lattice is minimized. The robotic control optimization system  150  could then calculate the expected seal quality metric, using the three-dimensional spring-lattice and a fluids model (e.g., a model relating fluid force and leak geometry or leak pathways). Once the expected seal quality metric is calculated, the robotic control optimization system  150  could determine, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm. 
       FIG.  2    illustrates a robotic picking environment within a fulfillment center, according to one embodiment described herein. As shown, the environment  200  includes a robotic picking arm  210 , stereo camera devices  220 ( 1 )-(A), light sources  230 ( 1 )-(B), and an item tote  240  that contains an item  250 . The stereo camera devices  220 ( 1 )-(A) generally represent camera devices that are oriented so as to capture digital images of the item  250 . These images can be used, for example, to validate that the item  250  is of the expected type and is actually present within the item tote  240 , to determine where within the item tote  240  the item  250  is located, to determine the orientation of the item  250  within the item tote  240 , and so on. Such information could then be used to control the robotic picking arm  210 , so as to retrieve the item from the item tote  250  and to carry the item to a specified destination. In one embodiment the stereo camera devices  220 ( 1 )-(A) operate in the visible light spectrum. The light sources  230 ( 1 )-(B) are positioned so as to illuminate the item  250  within the item tote  240 , in order to ensure the item  250  is clearly visible within the digital images captured by the stereo camera devices  220 ( 1 )-(A). 
     The robotic picking arm  210  is configured with a plurality of suction end effectors  215  and a robotic claw end effector  217 . For example, as shown, the plurality of suction end effectors  215  include a single suction device and a multi-head suction device. Generally, control logic for the robotic picking arm  210  can switch between the suction end effectors  215  and the robotic claw end effector  217 , depending on the type of the item  250 . For example, while the robotic claw mechanism may be ideal for retrieving some types of items, other items may be too small or too large for retrieval using such a mechanism. As another example, while the suction devices may be ideal for retrieving some items (e.g., a lightweight item with a substantially impermeable surface), but other items may be difficult to reliably retrieve using such a mechanism (e.g., a heavier item with a highly permeable surface). As such, the control logic for robotic picking arm  210  can be configured to select an optimal end effector to retrieve the item  250 , based on attributes of the item  250 . 
     Although not shown, the environment  200  can be configured a plurality of sensor devices that can collect data on the proximate physical environment (e.g., measures of temperature, humidity, etc.) and the robotic picking arm  210  itself (e.g., measures of vibration, measures of temperature, etc.). Control logic for the robotic picking arm  210  could capture one or more images of the item  250  using the stereo camera devices  220 ( 1 )-(A). The control logic could then analyze these images to, e.g., verify that the item  250  is located within the item tote  240 , identify a placement of the item  250  within the item tote  240 , determine an orientation of the item  250  within the item tote  240 , and so on. The control logic could then use such information to select an optimal picking mechanism  215  and to control the movement of the robotic picking arm  210  to retrieve the item  250 . 
     Of note, while  FIG.  2    illustrates an embodiment configured to capture images of an item being manipulated with the robotic picking arm  210  using stereo camera devices  220 ( 1 )-(N), more generally data on the appearance of the item can be captured using any number of different techniques and devices. For example, while in the depicted embodiment the stereo camera devices  220 ( 1 )-(N) could be used by a three-dimensional vision system to capture images of the item, in other embodiments time-of-flight cameras (e.g., cameras that measure the time-of-flight of a light signal between the camera and a surface of the item) could be used to generate data describing the physical appearance of the item. In various other embodiments, a Light Detection and Ranging (LIDAR) system, a structured lighting system (e.g., in conjunction with stereo cameras and a three-dimensional vision system), ultrasound arrays, x-ray imaging systems, millimeter wave scanners, and so on could be used to generate a three-dimensional model of the item (e.g., for determining the item&#39;s position and surface geometry, for use in controlling movement of the robotic picking arm  210 ). More generally, any systems capable of determining physical attributes of an item for use in controlling a robotic device can be used, consistent with the functionality described herein. 
     For example, the camera devices  220 ( 1 )-(A) could capture images of the item  250  within the storage container  240 , e.g., while the light sources  230 ( 1 )-(B) are emitting light to provide optimal lighting conditions for capturing images of the item  250 . The robotic control optimization system  150  could then retrieve a three-dimensional surface model of the item, based on a unique identifier corresponding to the item and could determine a plurality of candidate contact points for holding the item  250  using a suction end effector  215  of the robotic picking arm  210 , based on the captured one or more images of the item and the three-dimensional surface model of the item. 
     The robotic control optimization system  150  could then evaluate one or more of the candidate contact points to determine their suitability for use in picking up the item  250  using the suction end effector  215 . For example, the robotic control optimization system  150  could determine an expected seal quality metric for a first one of the candidate contact points, by processing the three-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm. In doing so, the robotic control optimization system  150  could model deformation and contact between the suction device and the first candidate contact point, using at least one three-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point on the item, such that potential energy across the three-dimensional spring-lattice is minimized. 
     The robotic control optimization system  150  could further calculate the expected seal quality metric, using the three-dimensional spring-lattice and a fluids model. The robotic control optimization system  150  could then determine, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction end effector  215  of the robotic picking arm  210 . Of note, while the depicted embodiment includes a suction end effector  215  mounted onto a robotic picking arm  210 , such an example is provided for illustrative purposes only and without limitation. More generally, embodiments described herein can be used to evaluate the expected seal quality for any type of suction device or suction end effector. 
       FIG.  3    is a block diagram illustrating a robotic control optimization system, according to one embodiment described herein. As shown, the system  300  includes a model generation system  150 , an object capture system  200 , sensor devices  368 , and a robotic arm controller  390  for controlling a robotic picking arm  210 , all connected via network  365 . The object capture system  200  includes stereo cameras  370 , an image processing component  375 , and light-emitting devices  380 . Generally, the image processing component  375  processes digital images captured by the stereo cameras  370 . For example, the image processing component  375  could perform a color balancing operation across all of the images of a particular item from the stereo cameras  370 . As another example, the image processing component  375  may apply one or more filters to the images. More generally, the image processing component  375  can perform any suitable processing on the captured images, according to embodiment described herein. The robotic picking arm  210  includes a plurality of suction end effectors  215 . 
     The robotic control optimization system  150  includes a processor  312 , memory  314 , storage  340 , I/O devices  355 , and a network interface  360 . Processor  312  is intended to be representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, and the like. The memory  314  is included to be representative of a random access memory. As shown, memory  314  includes the robotic control optimization component  315  and an operating system  335 . The robotic control optimization component  315  includes a robotic control component  320 , a deformation modeling component  325  and a seal quality estimation component  330 . Storage  340  includes item attribute data  345 , three-dimensional item models  350  and suction device attribute data  353 . The storage  340  may be a disk drive storage device. Although shown as a single unit, the storage  340  may be a combination of a fixed and/or removable storage, such as fixed disc drives, removable memory cards, optical storage, network attached storage (NAS), or storage-area-network (SAN). The network interface  360  may be any type of network communications allowing the robotic control optimization system  150  to communicate with other computers via a data communications network (e.g., network  365 ). 
     In one embodiment, the robotic control component  320  could receive instructions (e.g., from the management module  110 ) to retrieve a particular item from a specified location. The robotic control component  320  could retrieve a three-dimensional item model  350  corresponding to the particular item to be retrieved, and the robotic control component  320  could receive one or more captured one or more images of the retrieval location (e.g., a particular holder or tote within an automated product distribution center) from the object capture system  220 . 
     In one embodiment, the robotic control component  320  is given instructions to take an item from a particular location, but is not given any identifying information for the item. In such an embodiment, the robotic control component  320  could instruct the object capture system  220  to capture images of the item in the particular location and the robotic control component  320  could determine which of the three-dimensional item models  350  best matches the appearance of the item in the captured images. The robotic control component  320  could then retrieve the three-dimensional item model  350  that best matches the item, for use in retrieving the item. 
     Once the three-dimensional item model  350  is retrieved, the robotic control component  320  can then use the three-dimensional item model  350  for one or more object identification operations. For instance, the robotic control component  320  could analyze images captured of the retrieval location and determine whether the particular item is present within the retrieval location. As an example, the robotic control component  320  could determine whether any portion of the captured image(s) substantially matches an appearance of the three-dimensional item model  350  for the particular item from any viewpoint and from various distances (e.g., a predefined range of distances). If the robotic control component  320  determines a portion of the image substantially matches an appearance of the three-dimensional item model  350  for the particular item, the robotic control component  320  determines that the particular item is present at the retrieval location at a location corresponding to the matching portion of the image. 
     Additionally, in one embodiment, the robotic control component  320  determines an estimated surface geometry of the particular item at the designated location, using the three-dimensional item model  350 . For example, the robotic control component  320  could extrapolate the item&#39;s pose, based on calibration information specifying the relative three-space location of the camera capturing the image, as well as the viewpoint from which the three-dimensional item model  350  matched the portion of the captured image. The robotic control component  320  can then use the estimated pose of the particular item to determine the item&#39;s surface geometry and to further determine an optimal way to instruct the robotic arm controller  390  to control the robotic picking arm  392 , in order to best retrieve the particular item. For example, the robotic control component  320  could determine an angle of approach, an optimal surface for grasping the particular item, and so on, based on the object&#39;s estimated pose as well as object profile information for the particular item. For example, the object profile information could specify an optimal surface upon which to grasp the particular item using a suction end effector of the robotic picking arm  392 . The robotic control component  320  could determine a candidate contact point on the optimal surface, based on the particular item&#39;s current pose, and could instruct the robotic arm controller  390  to manipulate the robotic picking arm  392  to grasp the particular item by the optimal surface from a determined optimal angle. 
     In one embodiment, the robotic control component  320  determines an optimal manner to release a given object using a corresponding one of the three-dimensional item model  350 . For example, once the robotic control component  320  has picked up the object in an optimal manner, the robotic control component  320  could determine an optimal manner to release the object in the specified destination location (e.g., within a tote container within an automated product distribution center). In doing so, the robotic control component  320  can retrieve an object profile for the object that specifies an optimal resting surface for the object (e.g., a flat surface of the object on which the object can rest in a stable manner). The robotic control component  320  could then determine how to orient the object so that the optimal surface is downward-facing, using the corresponding three-dimensional item model  350 . 
     In one embodiment, the robotic control component  320  determines a plurality of candidate contact points for holding a first item using a suction device of a robotic picking arm, based on an estimated pose of the first item. For example, the robotic control component  320  could determine an optimal exposed surface of the item based on the item&#39;s pose and the object profile information, and the robotic control component  320  could determine a number of different candidate contact points on the surface geometry of the optimal exposed surface. For example, the robotic control component  320  could perform a real-time operation to acquire a point cloud (or depth map) describing the three-dimensional geometry of the item. That is, the robotic control component  320  could generate a three-dimensional surface representation corresponding to an exposed surface(s) of the item. 
     The robotic control optimization component  315  could then evaluate the different candidate contact points to determine whether any of the candidate contact points are acceptable for use in retrieving the item using a suction end effector and, if so, which of the candidate contact points is optimal for use in picking up the item using the suction end effector. 
     In doing so, the seal quality estimation component  330  could calculate, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed three-dimensional shape of the suction device generated by the deformation modeling component  325  and a three-dimensional shape associated with the candidate contact point on the first item. The robotic control component  320  could then select one of the plurality of candidate contact points, based on the calculated seal quality metrics. For example, the robotic control component  320  could determine a candidate contact point having the greatest seal quality metric (i.e., indicating the strongest seal) and could determine that the candidate contact point satisfies one or more predefined criteria (e.g., the seal quality metric for the candidate contact point exceeds a predefined threshold level of seal quality). The robotic control component  320  could then instruct the robotic arm controller  390  to control the movement of the robotic picking arm  210  to retrieve the item by holding the item at the selected candidate contact point. In one embodiment, if the robotic control component  320  determines that none of the candidate contact points satisfy the predefined criteria (e.g., none of the candidate contact points have an acceptable seal quality metric), the robotic control component  320  could facilitate the retrieval of the item through alternate methods. For example, the instruct the robotic arm controller  390  to retrieve the item using a robotic claw end effector picking mechanism, rather than a suction end effector  215 . As another example, the robotic control component  320  could automatically route the item to a different area within the fulfillment center, where the item can be processed manually. 
       FIG.  4    is a block diagram illustrating a workflow for ranking candidate contact points on an item through the use of a suction cup model, according to one embodiment described herein. As shown, the workflow  400  begins at block  410 , where the robotic control optimization component  315  retrieves a point cloud defining a three-dimensional shape of an item to be retrieved. Generally, the point cloud represents a set of data points in a coordinate system that collectively describe the three-dimensional shape of the item. For example, the point cloud could be generated automatically as part of new product intake procedures at the fulfillment system and stored within a database. In such an example, the robotic control optimization component  315  could then retrieve the point cloud from the database, by issuing a query specifying at least a unique identifier corresponding to the item to be retrieved. 
     The robotic control optimization component  315  then determines a number of candidate grasp points on the surface of the point cloud (block  420 ). For example, the robotic control optimization component  315  could determine that a particular surface(s) of the item is exposed, based on the item&#39;s surface geometry (e.g., determined by analyzing one or more images of the physical item), and the robotic control optimization component  315  could then select the candidate grasp points on the exposed surface(s) of the item. That is, the robotic control optimization component  315  could exclude from consideration any contact points that would not be adequately reachable using the suction end effector of the robotic picking arm, e.g., points on the surface on which the item is resting. The robotic control optimization component  315  could then generate a suction cup model (block  430 ) for use in evaluating the candidate contact points. 
     In the depicted example, the deformation modeling component  325  of the robotic control optimization component  315  generates a deformation and contact model that represents the surface of the suction end effector. For example, the deformation modeling component  325  could generate a spring lattice data model that represents the soft elastic material of the suction end effector using a number of simulated torsion and compression springs. Additionally, the deformation modeling component  325  could determine a shape of the spring lattice model that corresponds to a minimal energy pose of the spring lattice model. In other words, the deformation modeling component  325  could assume that there is a feasible, lower-energy state that the elastic material can assume, then the material is presumably not in its final resting state. Once the deformation modeling component  325  determines the three-dimensional shape of the spring lattice data model that minimizes the potential energy within the model, the deformation modeling component  325  can determine that the determined three-dimensional shape represents the deformed shape of the suction end effector when a seal is created. The seal quality estimation component  330  can then use the deformed shape to estimate a quality of the seal that would be formed between the suction end effector and the particular item in question. 
     As mentioned above, in one embodiment the soft elastic material is represented as a lattice of connected springs. Each connection point within the lattice can be represented as a node n, and a node can be indexed by the iterators i and j, representing the ordinal row and column position of the node within the lattice (i.e., n i,j ). For purposes of the following example, assume that x i,j  and y i,j  represent the continuous position of the indexed node. As such the state of the lattice X can be referred to as the assemblage of the continuous position of all the nodes into a single column vector, as shown below in Equation 1. 
     
       
         
           
             
               
                 
                   
                     X 
                     = 
                     
                       
                         [ 
                         
                           
                             
                               
                                 x 
                                 
                                   i 
                                   , 
                                   j 
                                 
                               
                             
                           
                           
                             
                               
                                 y 
                                 
                                   i 
                                   , 
                                   j 
                                 
                               
                             
                           
                         
                         ] 
                       
                       ⁢ 
                       
                         ∀ 
                         i 
                       
                     
                   
                   , 
                   j 
                 
               
               
                 
                   
                     Equation 
                     ⁢ 
                         
                     1 
                   
                   - 
                   
                     Lattice 
                     ⁢ 
                         
                     State 
                   
                 
               
             
           
         
       
     
     The deformation modeling component  325  could determine that a node is in a feasible position if the node does not lie within the boundary of the colliding object (e.g., the item being picked up using the suction end effector). That is, such a constraint can be imposed because the physical material of the suction device cannot penetrate the item being picked up. More specifically, this constraint may be represented as 0&lt;|r i,j |−| d i,j |∀i,j, where d represents the Euclidean vector originating at the object&#39;s center and terminating at the indexed node, and r represents the effective radius originating from the object&#39;s center, collinear with d, and terminating at the object&#39;s boundary. 
     The robotic control optimization component  315  could then determine a shape of the spring lattice that minimizes the potential energy E stored within the lattice. More specifically, the deformation modeling component  325  could solve the following Equation 2, where E represents the summed potential energy of each deformed spring in the lattice. 
     
       
         
           
             
               
                 
                   
                     X 
                     * 
                   
                   = 
                   
                     
                       min 
                       X 
                     
                     E 
                   
                 
               
               
                 
                   
                     Equation 
                     ⁢ 
                         
                     2 
                   
                   - 
                   
                     Deformed 
                     ⁢ 
                         
                     Lattice 
                     ⁢ 
                         
                     State 
                   
                 
               
             
           
         
       
     
       FIG.  5    illustrates a portion of a three-dimensional spring lattice for use in determining a deformed three-dimensional shape, according to one embodiment described herein. As shown, the illustration  500  depicts a portion of a spring layout within the lattice, where horizontal k h  and vertical k v  linear springs connect each node. Additionally, torsional springs k t  store energy as the linear springs rotate about the nodes. Generally, the deformation modeling component  325  can adjust the stiffness values for each of these linear and torsional strings based on the suction device attribute data  353 , e.g., data describing the malleability of the suction cup material. The lattice&#39;s total potential energy can be calculated for a given lattice state X, using the following procedure shown in Procedure  1 . 
     
       
         
           
             	                                    
             
               
                 
                   Procedure 
                   ⁢ 
                       
                   1 
                 
                 - 
                 
                   Total 
                   ⁢ 
                       
                   Potential 
                   ⁢ 
                       
                   Energy 
                   ⁢ 
                       
                   Calculation 
                 
               
               ⁢ 
               
 
               
                 
                   E 
                   = 
                   0. 
                 
               
               ⁢ 
               
 
               
                 
                   
                     for 
                   
                   
                     
                         
                       
                         
                           i 
                           = 
                           
                             1 
                             ⁢ 
                                 
                             … 
                             ⁢ 
                                 
                             I 
                           
                         
                       
                     
                   
                 
                 
                   
                     | 
                   
                   
                     
                       
                         
                           
                             
                               
                                 
                                   for 
                                 
                               
                               ⁢ 
                               
                                     
                               
                               
                                 j 
                               
                             
                             
                               = 
                             
                             
                               
                                 1 
                                 ⁢ 
                                     
                                 … 
                                 ⁢ 
                                     
                                 J 
                               
                             
                           
                         
                       
                       
                         
                           
                             | 
                             
                               
                                 
                                   
                                     E 
                                     = 
                                     
                                       E 
                                       + 
                                       
                                         
                                           1 
                                           2 
                                         
                                         ⁢ 
                                         
                                           
                                             
                                               k 
                                               v 
                                             
                                             ( 
                                             
                                               
                                                 
                                                   
                                                     
                                                       ( 
                                                       
                                                         
                                                           x 
                                                           
                                                             i 
                                                             , 
                                                             j 
                                                           
                                                         
                                                         - 
                                                         
                                                           x 
                                                           
                                                             
                                                             i 
                                                             - 
                                                             1 
                                                             
                                                             , 
                                                             j 
                                                           
                                                         
                                                       
                                                       ) 
                                                     
                                                     2 
                                                   
                                                   + 
                                                   
                                                     
                                                       ( 
                                                       
                                                         
                                                           y 
                                                           
                                                             i 
                                                             , 
                                                             j 
                                                           
                                                         
                                                         - 
                                                         
                                                           y 
                                                           
                                                             
                                                             i 
                                                             - 
                                                             1 
                                                             
                                                             , 
                                                             j 
                                                           
                                                         
                                                       
                                                       ) 
                                                     
                                                     2 
                                                   
                                                 
                                               
                                               - 
                                               
                                                 l 
                                                 v 
                                               
                                             
                                             ) 
                                           
                                           2 
                                         
                                         ⁢ 
                                         … 
                                       
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     
                                       + 
                                       
                                         1 
                                         2 
                                       
                                     
                                     ⁢ 
                                     
                                       
                                         
                                           k 
                                           h 
                                         
                                         ( 
                                         
                                           
                                             
                                               
                                                 
                                                   ( 
                                                   
                                                     
                                                       x 
                                                       
                                                         i 
                                                         , 
                                                         j 
                                                       
                                                     
                                                     - 
                                                     
                                                       x 
                                                       
                                                         i 
                                                         , 
                                                         
                                                           j 
                                                           + 
                                                           1 
                                                         
                                                       
                                                     
                                                   
                                                   ) 
                                                 
                                                 2 
                                               
                                               + 
                                               
                                                 
                                                   ( 
                                                   
                                                     
                                                       y 
                                                       
                                                         i 
                                                         , 
                                                         j 
                                                       
                                                     
                                                     - 
                                                     
                                                       y 
                                                       
                                                         i 
                                                         , 
                                                         
                                                           j 
                                                           + 
                                                           1 
                                                         
                                                       
                                                     
                                                   
                                                   ) 
                                                 
                                                 2 
                                               
                                             
                                           
                                           - 
                                           
                                             l 
                                             h 
                                           
                                         
                                         ) 
                                       
                                       2 
                                     
                                     ⁢ 
                                     … 
                                   
                                 
                               
                               
                                 
                                   
                                     
                                       
                                         + 
                                         
                                           1 
                                           2 
                                         
                                       
                                       ⁢ 
                                       
                                         k 
                                         
                                           t 
                                           ⁢ 
                                           1 
                                         
                                       
                                       ⁢ 
                                       
                                         θ 
                                         1 
                                       
                                     
                                     + 
                                     
                                       
                                         1 
                                         2 
                                       
                                       ⁢ 
                                       
                                         k 
                                         t 
                                       
                                       ⁢ 
                                       
                                         
                                           θ 
                                           2 
                                         
                                         . 
                                       
                                     
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
             
           
         
       
     
     The deformation modeling component  325  can then evaluate the nonlinear optimization problem of determining the shape of that lattice that minimizes the total potential energy within the lattice. For example, the deformation modeling component  325  can seek to find an optimal state X* that minimizes the potential energy in the lattice E, subject to the constraint that the lattice nodes do not lie within the interior of the colliding object (e.g., the item that is being picked up using the suction device). More formally, the optimal state can be expressed using Equation 2 discussed above, subject to the constraint 0&lt;|r i,j |−|d i,j |∀i,j. 
     Additionally, in solving for the optimal state of the lattice, the deformation modeling component  325  can provide a nonlinear solving component with analytical gradients relating changes in both the objective function E and the node position constraint to changes in X. For example, 
               ∂   E       ∂     x     i   ,   j               
could be one element of the gradient matrix, and could describe the change in potential energy due to a change in the x-coordinate position of node i,j. Such gradients can be calculated using any suitable symbolic math tools, consistent with the functionality described herein.
 
     In one embodiment, the deformation modeling component  325  can assume that the item being picked up using the suction end effector will remain relatively constant in shape despite the force exerted by the suction end effector. As such, the deformation modeling component  325  can model the contact between such an item and the suction end effector by using a static three-dimensional shape representing a portion of the item corresponding to the selected contact point.  FIG.  6    illustrates a deformed three-dimensional shape of a suction cup device in contact with an item surface, according to one embodiment described herein. As shown, the diagram  600  illustrates such an example. As shown, the deformed three-dimensional mesh  610  corresponds to the shape of the spring lattice with a minimal potential energy value, while the fixed three-dimensional shape  620  corresponds to the shape of the item corresponding to the contact point. Generally, such an embodiment may be preferable when the surface of the item being picked up is relatively rigid and deforms very little (if at all) when under the force exerted by the suction device. 
     Other items, however, may deform in shape significantly when under the force of the suction device. For example, while an item within relatively thick cardboard packaging may deform very little when under the force exerted by the suction device, a malleable item within relatively thin plastic packaging may deform significantly when the suction device exerts a force on the surface of the item&#39;s packaging. In such a situation, the deformation modeling component  325  can generate a second spring lattice representing the surface of the item, as illustrated in  FIG.  7   , which is a flow diagram deformed three-dimensional shapes of a suction cup device in contact with a malleable item surface, according to one embodiment described herein. In such an embodiment, the deformation modeling component  325  can adjust a stiffness value for the springs within the lattice (e.g., with each spring having a respective stiffness value), based on physical attributes of the item. For example, a more malleable item could have relatively lower stiffness values, whereas a relatively rigid item could have greater stiffness value. The deformation modeling component  325  could then determine the shape of the spring lattice representing the shape of the item under force that minimizes the potential energy across all of the springs of the lattice. As shown in  FIG.  7   , the illustration  700  includes a first deformed three-dimensional shape representing the shape of the suction device  710  under the force exerted by the suction seal between the item and the suction device, and a second deformed three-dimensional shape representing the shape of the item under the same force. 
     Once the deformation modeling component  325  has generated the deformed three-dimension shape representing the suction device under the force (and potentially the deformed three-dimensional shape representing the item under the force (as shown in  FIG.  7   ), the seal quality estimation component  330  can generate a seal quality metric that estimates the strength of the seal between the item and the suction cup device, based on the deformed three-dimensional shape of the suction cup device (i.e., the three-dimensional shape of the suction cup device under the force exerted by the suction seal between the suction cup device and the item) and the three-dimensional shape of the item (e.g., a fixed three-dimensional shape for a rigid item, a deformed three-dimensional shape representing the shape of the item under the force exerted by the suction cup seal, etc.). 
     In calculating the seal quality metric, the seal quality estimation component  330  can take into consideration a number of different factors. A non-exhaustive list of such factor could include, for example, the item&#39;s surface geometry, the item&#39;s pose, the item&#39;s inertia (e.g., while coming into contact with the suction cup device, while being carried by the suction cup device, etc.), as well as the suction cup&#39;s geometry and bulk modulus (e.g., a measure of how resistant to compressibility the material of the suction cup is). Additionally, the seal quality estimation component  330  could identify any leak pathways in the contact between the three-dimensional shapes of the suction cup and the item. The seal quality estimation component  330  could further take into account the suction pump&#39;s ability to generate static pressure (e.g., using a simple linear fluids model). 
     In one embodiment, the seal quality estimation component  330  can generate a model in which the suction cup device applies a force to the item via a spatial force. For example, this “suction force” can be represented as a vector that originates at a point on the item&#39;s surface that is closest to the suction cup&#39;s center. Moreover, such a vector can point to the suction cup&#39;s center. At each time step of the simulation, the seal quality estimation component  330  can update the direction and magnitude of the vector (i.e., the seal quality estimation component  330  can update the calculated measure of suction force). Of note, while the definition of the direction of the vector remains constant across the time steps of the simulation, the value of the vector can change, as the closest point on the item may change due to the item&#39;s movement over time. 
     Generally, the force&#39;s magnitude is proportional to any air leak pathways between the suction cup and the item surface. An example of such a magnitude is shown in  FIG.  9   , which is a graph illustrating a relationship between static pressure and leak pathway surface air for a seal between a suction device and an item, according to one embodiment described herein. As shown in the graph  900 , the static pressure value is highest (e.g., equal to the static pressure that the vacuum pump is capable of exerting) when the leak pathway surface air is at 0, i.e., when no leak pathways exist. As the value of the leak pathway surface air increases, the static pressure of the seal decreases, until the static pressure value reaches 0. At this point, no vacuum seal exists between the item and the suction device, and the static pressure value remains 0 for any further increases in the leak pathway surface air. 
     In one embodiment, the seal quality estimation component  330  is configured to perform a ray casting operations to effectively project a two-dimensional suction area onto the item&#39;s surface. This area is shown in  FIG.  8   , which is an illustration of a simulation for calculating an estimated seal quality metric between a suction cup and an item, according to one embodiment described herein. As shown, the illustration  800  depicts a virtual representation of a suction device  810  and a virtual representation of an item  820 . As shown, the seal quality estimation component  330  has projected a circular two-dimensional suction area  830  having a central point  840  onto the surface of the item  820 . Based on whether each ray hits the item  820  and, for the rays that hit the item  820 , the distance each ray travelled before intersecting with a respective point on the item  820 , the seal quality estimation component  330  can numerically integrate to estimate the three-dimensional surface through which air can flow between the suction device  810  and the item  820 . 
     In one embodiment, the seal quality estimation component  330  can use a piecewise linear model to relate the surface area to the static vacuum pressure developed between the suction device  810  and the item  820 . In such an embodiment, if the seal quality estimation component  330  determines that the surface area is above a predefined threshold level of surface area, the seal quality estimation component  330  can determine that fluid impedance is negligible and no static pressure is developed. On the other hand, where the surface area is equal to zero (i.e., when the surface of the item  820  includes the entirety of the surface of the suction device  810 ), fluid pressure reaches a defined maximum value (e.g., equal or substantially equal to the maximum static pressure produced by the vacuum pump). For all values in between these extremes, the seal quality estimation component  330  can calculate the fluid pressure as a value that is linearly proportional to the surface area. As such, the seal quality estimation component  330  can express the magnitude of the force as the product of fluid pressure and the two-dimensional suction area  830 . 
       FIG.  10    illustrates a workflow for processing an item within a fulfillment center environment, according to one embodiment described herein. As shown, the workflow  1000  begins at block  1010 , where one or more light-emitting devices  230  are used to illuminate the item  1005  within the storage container  1007 . For example, the robotic control optimization component  315  may instruct the image processing component  375  to estimate the item&#39;s  1005  surface geometry from these images, and the robotic control optimization component  315  may control level of illumination produces by the light emitting device(s)  230  to facilitate the capture of an optimal image(s) of the item  1005 . Of course, in some circumstances, the robotic control optimization component  315  may turn the light-emitting devices  230  off (or otherwise cause the light-emitting devices  230  to emit no light), e.g., when the ambient lighting of the physical environment is already adequate for optimal image capture. 
     The one or more camera devices  220  then capture an image(s) of the item  1005  (block  1015 ), and transmit the capture image(s) to the image processing component  375  to determine the surface geometry of the item (block  1020 ). Upon determining the item&#39;s estimate pose, the determined surface geometry information is transmitted to the robotic control optimization component  315  (block  1025 ). Of note, while the surface geometry estimation is shown in the workflow  1000  as being performed by the image processing component  375 , in other embodiments the robotic control optimization component  315  may perform the pose estimation analysis directly using the capture image(s). Returning to the depicted workflow  1000 , the robotic control optimization component  315  retrieves a three-dimensional model corresponding to the item  1005  from an item profile data store (block  1030 ). For example, the robotic control optimization component  315  could query the item profile data store using at least a unique identifier corresponding to the item  1005 . 
       FIG.  11    illustrates a workflow for generating an estimated seal quality metric for candidate contact points on an item within a fulfillment center, according to one embodiment described herein. As shown, the workflow  1100  depicts a plurality of candidate contact points  1105 ( 1 )-(N) on an exposed surface of the item  1005  within the storage container  1007 . As discussed above, the robotic control optimization component  315  could determine, based on the item&#39;s  1005  pose, one or more exposed surfaces of the item  1005 . Additionally, the robotic control optimization component  315  can take into account other objects surrounding the item  1005  when determining the exposed surfaces. For example, in the depicted embodiment, the robotic picking arm  210  may not have sufficient room to maneuver a suction end effector onto the side surfaces of the item  1005 , due to the storage container  1007  surrounding the item  1005 . As a result, in the depicted example, the robotic control optimization component  315  has selected the upwards-facing surface of the item  1005  as the only exposed surface and has selected a number of candidate contact points  1105 ( 1 )-(N) on the surface. 
     As shown, the robotic control component  315  receives the three-dimensional model from the item profile data store (block  1030 ) and the surface geometry information from the image processing component  375  (block  1025 ). The robotic control component  315  uses this information to determine the candidate contact points  1105 ( 1 )-(N) on the exposed surface of the item and transmits data identifying these candidate contact points to the deformation modeling component  325  (block  1110 ). The deformation modeling component  325  generates one or more three-dimensional shapes for the suction device, for each of the candidate contact points (block  1115 ). For example, as discussed above, the deformation modeling component  325  could generate a three-dimensional spring lattice corresponding to the suction device and could determine the three-dimensional shape as the shape of spring lattice where potential energy across all springs within the lattice is minimized. The seal quality estimation component  330  generates an estimated seal quality metric for each candidate contact point (block  1120 ). 
       FIG.  12    illustrates a workflow for controlling a robotic picking arm to retrieve an item by holding the item at a selected contact point, according to one embodiment described herein. As shown, the workflow  1200  illustrates the robotic control component  315  receiving the estimated seal quality metrics for the candidate contact points from the seal quality estimation component  330  (block  1120 ). The robotic control component  315  selects a candidate contact point having the greatest estimated seal quality metric and that satisfies one or more predefined criteria (block  1210 ). For example, the robotic control component  315  could identify a candidate contact point that has a seal quality metric that exceeds a predefined threshold level of seal quality and that is the greatest seal quality metric across all of the considered candidate contact points. 
     In a particular embodiment where none of the candidate contact points produced a seal quality metric that exceeds the predefined threshold level of seal quality, the robotic control component  315  could perform an alternate action to retrieve the item. For example, the robotic control component  315  could select additional candidate contact points and calculate estimated seal quality metrics for these additional contact points using the techniques described herein. As another example, where the robotic picking arm  210  is configured with multiple different types of end effectors, the robotic control component  315  could instruct the robotic arm controller  390  to control the movement of the robotic picking arm  210  to pick up the item using an alternate type of end effector (e.g., a robotic claw end effector). As yet another example, the robotic control component  315  could transmit an instruction to a control system for the fulfillment center, requesting to automatically reroute the item to a different area within the fulfillment center where the item can be manually processed. 
     Returning to the depicted embodiment, the robotic control component  315  determines that the selected candidate contact point having the greatest estimated seal quality does satisfy the predefined criteria, and the robotic control component  315  controls the robotic picking arm (e.g., by transmitting one or more instructions to the robotic arm controller  390 ) to retrieve the item  1005  at the selected contact point  1220  using the suction device (block  1215 ). 
       FIG.  13    is a flow diagram illustrating a method for determining an expected seal quality metric for holding an item at a candidate contact point using a suction device, according to one embodiment described herein. As shown, the method  1300  begins at block  1310 , where the object capture system  220  captures one or more images of an item within a storage container to be retrieved using a robotic picking arm having a suction device. The object capture system  220  could then transmit the captured image(s) to the robotic control optimization component  315 . The robotic control optimization component  315  retrieves a three-dimensional surface model of the item, based on a unique identifier corresponding to the item (block  1315 ). For example, the management module  110  could indicate to pick up an item having a particular unique item identifier, and the robotic control optimization component  315  could query a database containing three-dimensional item surface models (e.g., a point cloud) using the particular unique item identifier. 
     The robotic control optimization component  315  determines a plurality of candidate contact points for holding the item using the suction device of the robotic picking arm (block  1320 ). For example, the robotic control optimization component  315  could determine the item&#39;s surface geometry based on the captured one or more images of the item and the three-dimensional surface model for the item, and could select the candidate contact points from the surface geometry of the item. In doing so, the robotic control optimization component  315  can also consider objects around the item (e.g., a storage container in which the item is placed). That is, while a given surface of the item may be exposed in the sense that nothing is in direct contact with the surface, certain points on the given surface may still be unsuitable for contact with a suction device, as these points may be sufficiently close to a nearby object such that there is no path to maneuver the suction device to make optimal contact with these points. 
     The robotic control optimization component  315  then determines an expected seal quality metric for a first one of the candidate contact points, by processing the three-dimensional surface model of the item and physical properties of the suction device of the robotic picking arm as inputs (block  1325 ). In the depicted embodiment, as part of the robotic control optimization component  315  determining the expected seal quality metric, the deformation modeling component  325  models deformation and contact between the suction device and the first candidate contact point, using at least one three-dimensional spring-lattice to model deformation and contact between the suction device and the first candidate contact point on the item, such that potential energy across the three-dimensional spring-lattice is minimized (block  1330 ). Additionally, the seal quality estimation component  330  calculates the expected seal quality metric, using the three-dimensional spring-lattice and a fluids model relating fluid force and leak pathways (block  1335 ). The robotic control component  320  determines, based on the expected seal quality metric, whether to retrieve the item from the storage container by holding the item at the first candidate contact point using the suction device of the robotic picking arm (block  1340 ), and the method  1300  ends. 
       FIG.  14    is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item by holding the item at a candidate contact point, according to one embodiment described herein. As shown, the method  1400  begins at block  1410 , where the robotic control optimization component  315  determines a first candidate contact point for holding a first item using the suction device of the robotic picking arm, based on a surface geometry of the first item. The seal quality estimation component  330  estimates a seal quality metric for the first candidate contact point, based on a predicted deformed three-dimensional shape of the suction device and a three-dimensional shape associated with the first item (block  1415 ). Upon determining that the estimated seal quality metric for the first candidate contact point satisfies one or more predefined criteria, the robotic control component  320  controls the movement of the robotic picking arm to retrieve the first item by holding the first item at the first candidate contact point (block  1420 ), and the method  1400  ends. 
       FIG.  15    is a flow diagram illustrating a method for controlling movement of a robotic picking arm to retrieve an item at a selected candidate contact point, according to one embodiment described herein. As shown, the method  1500  begins at block  1510 , where the robotic control optimization component  315  determines a plurality of candidate contact points for holding a first item using a suction device of a robotic picking arm, based on an estimated surface geometry of the first item. The seal quality estimation component  330  calculates, for each of the plurality of candidate contact points, a respective seal quality metric, based on a predicted deformed three-dimensional shape of the suction device and a three-dimensional shape associated with the candidate contact point on the first item (block  1515 ). The robotic control component  320  selects one of the plurality of candidate contact points, based on the calculated seal quality metrics (block  1520 ). Additionally, the robotic control component  320  controls movement of the robotic picking arm to retrieve the first item by holding the first item at the selected candidate contact point (block  1525 ), and the method  1500  ends. 
     The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. 
     In the preceding, reference is made to embodiments presented in this disclosure. However, the scope of the present disclosure is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice contemplated embodiments. Furthermore, although embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the scope of the present disclosure. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s). 
     Aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” 
     The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. 
     The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire. 
     Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device. 
     Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention. 
     Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions. 
     These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks. 
     The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks. 
     The flowchart and block diagrams in the FIGS. illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the FIGS. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions. 
     Embodiments of the invention may be provided to end users through a cloud computing infrastructure. Cloud computing generally refers to the provision of scalable computing resources as a service over a network. More formally, cloud computing may be defined as a computing capability that provides an abstraction between the computing resource and its underlying technical architecture (e.g., servers, storage, networks), enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. Thus, cloud computing allows a user to access virtual computing resources (e.g., storage, data, applications, and even complete virtualized computing systems) in “the cloud,” without regard for the underlying physical systems (or locations of those systems) used to provide the computing resources. 
     Typically, cloud computing resources are provided to a user on a pay-per-use basis, where users are charged only for the computing resources actually used (e.g. an amount of storage space consumed by a user or a number of virtualized systems instantiated by the user). A user can access any of the resources that reside in the cloud at any time, and from anywhere across the Internet. In context of the present invention, the robotic control optimization component  315  could execute on a computing system in the cloud and could receive information specifying an item&#39;s pose within a fulfillment center. In such a case, the robotic control optimization component  315  could determine a candidate contact point on the item and could calculate an estimated seal quality metric corresponding to the candidate contact point, using a three-dimensional spring lattice to model deformation and contact between a suction device for a robotic picking arm within the fulfillment center and the candidate contact point of the item. The robotic control optimization component  315  could then transmit control instructions to a robotic picking arm within a fulfillment center, e.g., instructing the robotic picking arm to proceed with picking up the item by holding the item at the candidate contact point using the suction device. Doing so allows a user to access this information from any computing system attached to a network connected to the cloud (e.g., the Internet). 
     While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.