Patent Publication Number: US-2018050451-A1

Title: Picking system and method for controlling picking robot

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. JP2016-159901, filed Aug. 17, 2016. The contents of this application are incorporated herein by reference in their entirety. 
     BACKGROUND 
     Field of the Invention 
     The embodiments disclosed herein relate to a picking system and to a method for controlling a picking robot. 
     Discussion of the Background 
     Japanese Unexamined Patent Application Publication No. 2015-205368 discloses a robot that performs a picking operation by causing a hand of the robot to hold an object, such as a part and a component. 
     SUMMARY 
     According to one aspect of the present disclosure, a picking system includes a shape obtainer, a weight estimator, a picking robot, and a controller. The shape obtainer is configured to obtain shape information of an object. The weight estimator is configured to estimate a weight of the object based on the shape information obtained by the shape obtainer. The picking robot is configured to hold the object. The processor is configured to control the picking robot to hold the object based on the weight estimated by the weight estimator. 
     According to another aspect of the present disclosure, a picking system includes a picking robot, a shape obtainer, and circuitry. The picking robot is configured to hold an object. The shape obtainer is configured to obtain shape information of the object. The circuitry is configured to estimate a weight of the object based on the shape information obtained by the shape obtainer; and control the picking robot to hold the object based on the weight estimated by the weight estimator. 
     According to further aspect of the present disclosure, a method for controlling a picking robot, includes: obtaining shape information of an object; estimating a weight of the object based on the shape information; and controlling the picking robot to hold the object based on the weight. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A more complete appreciation of the present disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein: 
         FIG. 1  is a diagram illustrating an exemplary system block configuration of a picking system according to an embodiment; 
         FIG. 2  illustrates a comparison made adjacent to a gripper between weight-sensor attached state and weight-sensor detached state; 
         FIG. 3  illustrates an example of image information obtained by a camera, the image information being a top view of a container in which a large number of food products are stored; 
         FIG. 4  is a side phantom view of the container illustrating the large number of food products stored in the container; 
         FIG. 5  is a top view of the container with those food individuals which are holdable and whose weight can be estimated being identified on the image information illustrated in  FIG. 3 , 
         FIG. 6  is a top view of the container illustrating an example of estimated weight information indicating estimated weight of each of the identified food individuals; 
         FIG. 7  illustrates an exemplary artificial neural network applied to a weight estimator; 
         FIG. 8  is a flowchart of a procedure for processing in learning mode performed by CPU of an upper-level controller; 
         FIG. 9  illustrates an example of an allotting work plan set up by a work planner; 
         FIG. 10  is a flowchart of a procedure for processing in execution mode performed by the CPU of the upper-level controller; 
         FIG. 11  illustrates an example of how three-dimensional cameras obtain image information of a food individual; 
         FIG. 12  illustrates an exemplary artificial neural network applied to the weight estimator when a weight value is estimated based on two pieces of shape information; and 
         FIG. 13  is a system block diagram of a hardware configuration of the upper-level controller. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     The embodiments will now be described with reference to the accompanying drawings, wherein like reference numerals designate corresponding or identical elements throughout the various drawings. 
     Configuration of Picking System 
       FIG. 1  is a diagram illustrating an exemplary system block configuration of a picking system  1  according to this embodiment. The picking system  1  picks a food from among a large number of food products overlapping each other in a container and allots the food to one of a plurality of target containers. As illustrated in  FIG. 1 , the picking system  1  includes a camera  2 , an upper-level controller  3 , a robot controller  4 , and a picking robot  5 . 
     In this embodiment, the camera  2  is an imaging device to optically obtain two-dimensional image information. The camera  2  is disposed over a container  6  (which is a non-limiting example of the predetermined container recited in the appended claims) and capable of picking up an image of an entirety of a large number of food products F (which are non-limiting example of the objects and which are deep-fried chicken in this embodiment) overlapping each other in the container  6 . 
     The upper-level controller  3 , based on image information obtained by the camera  2 , performs processing associated with the picking operation of the picking robot  5  and outputs a work command to the robot controller  4 . The upper-level controller  3  includes an individual identifier  31 , a weight estimator  32 , and a work planner  33 . 
     The individual identifier  31  performs image recognition with respect to the image information obtained by the camera  2  so as to identify individual foods, from among the plurality of food products F overlapping each other in the container  6  as of the time of the image recognition, that the picking robot  5  is able to pick (such individual food will be hereinafter occasionally referred to as individual food product F). Then, the individual identifier  31  outputs shape information of each of the pickable individual food products F to the weight estimator  32  and the work planner  33 , and outputs arrangement information of each of the pickable individual food products F to the work planner  33  (detailed later). 
     Based on the shape information of each pickable individual food product F input from the individual identifier  31 , the weight estimator  32  estimates the weight of each pickable individual food product F, and outputs the obtained estimated weight information to the work planner  33 . In this embodiment, the weight estimator  32  performs machine learning using an artificial neural network to perform weight estimation processing that is based on the shape information of each pickable individual food product F (detailed later). 
     Based on the arrangement information and the shape information input from the individual identifier  31  and based on the estimated weight information input from the weight estimator  32 , the work planner  33  plans details of work for the picking robot  5  to perform, generates a work command based on the details of work, and outputs the work command to the robot controller  4 . 
     In another possible embodiment, the processings performed by the individual identifier  31 , the weight estimator  32 , and the work planner  33  may be performed by a smaller number of processing elements (for example, a single processing element) or by a larger number of processing elements. In still another possible embodiment, the functions of the upper-level controller  3  may be implemented by programs executed by a CPU  901  (described later by referring to  FIG. 13 ) or may be partially or entirely implemented by a tangible device or devices such as an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and other electric circuit. 
     The robot controller  4 , based on the work command input from the work planner  33  of the upper-level controller  3 , controls a drive signal to be output to the motor (not illustrated) to drive each axis of the picking robot  5 . 
     In this embodiment, the picking robot  5  is an aim manipulator of six-axis control and includes a gripper  5   b  (which is a non-limiting example of the holder recited in the appended claims). The gripper  5   b  is disposed at the leading end,  5   a,  of the aim of the picking robot  5  and is capable of holding a food product F. With this configuration, the picking robot  5  has a function to pick one food product F in the container  6  at a time and convey the food product F to another container in the vicinity of the container  6 . As illustrated in  FIG. 2 , a weight sensor  7  (which is a non-limiting example of the weight detector recited in the appended claims) is attachable and detachable to and from a position between the gripper  5   b  and the leading end  5   a  of the aim of the picking robot  5 . When the weight sensor  7  is in attached state, the weight sensor  7  measures the weight of the food product F held by the gripper  5   b,  excluding the weight of the gripper  5   b,  and outputs the measured weight (measured weight information) to the weight estimator  32 . The measured weight information is used by the weight estimator  32  in learning mode, described later, and can also be used to determine a food product F as non-standard in terms of weight (detailed later). 
     Features of this Embodiment 
     In this embodiment, the food products F are deep-fried chicken. In many instances, deep-fried chicken is soft and varies in shape and weight from food product F to food product F. Conventionally, it was believed to be difficult for a picking robot to perform a picking operation on such food product F, such as automatically holding, raising, conveying, and placing the food product F. One difficulty is the adjustment of the holding force. Specifically, even if the holding direction and the holding angle are optimized for the shape of each individual food product F, an insufficient holding force can undermine holding reliability, whereas an excessively large holding force can damage the food product F. In view of this situation, a possible way is to accurately estimate the weight of an individual food product F before holding the individual food product F and to use the estimated weight as a basis for setting an optimal holding force to hold the individual food product F. 
     In some cases, it is necessary to actually hold an individual food product F so as to measure its weight. Having to hold the individual food product F can greatly undermine the efficiency with which the individual food product F is allotted to a container, such as a lunchbox. Further, the addition of a weight sensor to measure the weight of the individual food product F can increase the production cost of the picking system  1  as a whole. 
     In view of this situation, in this embodiment, the camera  2  obtains shape information of each individual food product F by optical imaging and image recognition, and the weight estimator  32  estimates the weight of each individual food product F based on the shape information. This configuration ensures quickness in estimating the weight of a stationary food product F waiting to be held. Based on the estimated weight, the work planner  33  optimizes the holding force of the gripper  5   b.    
     For the picking system  1  to be able to hold a food product F, optical devices such as a camera and a laser scanner are necessary for detecting the position, shape, and posture of the food product F. Image information obtained by the optical devices undergoes software processing. In this manner, the weight estimator  32  is implemented. This configuration eliminates the need for attaching the weight sensor  7  at the time of the actual picking operation. This configuration, as a result, eliminates or minimizes increase in production cost. Also, this embodiment eliminates the need for physically holding and raising the individual food product F in estimating the weight of the individual food product F. Instead, this embodiment uses the above-described optical sensing to estimate the weight of the individual food product F. This configuration ensures quickness in estimating the weight of the individual food product F and improves the efficiency with which the individual food product F is allotted to a container. These functions of the elements of the picking system  1  are implemented by processings described in detail below. 
     Individual Identification Processing 
       FIG. 3  is a top view of the container  6  in which a large number of food products F are stored.  FIG. 4  is a side phantom view of the container  6  illustrating the large number of food products F stored in the container  6 . The image illustrated in  FIG. 3  is image information obtained by the camera  2  and is subjected to matching with operation coordinates of the picking robot  5  (XYZ coordinates illustrated in  FIG. 3 ). 
     In order to save the working space of the picking system  1 , the deep-fried chicken food products F are not conveyed on a belt conveyor but are supplied in the container  6  in which the food products F overlap each other. In this case, for those food products F hidden under other food products F, it can be difficult to obtain accurate shape information by the above-described optical sensing and to estimate the weight. In view of this situation, in this embodiment, when the individual identifier  31  has determined that some food products F among the plurality of food products F overlapping each other are able to undergo the picking operation of the picking robot  5  (that is, able to be held and conveyed by the picking robot  5 ), the individual identifier  31  regards the some food products F as being exposed enough to enable the optical sensing of the camera  2  to obtain the entire shape of each of the some food products F and to enable the weight estimation. Thus, the individual identifier  31  selectively identifies some food products F.  FIG. 5  is a top view of the container with those food products F which are holdable and whose weight can be estimated being identified on the image information illustrated in  FIG. 3  and colored in black. In the embodiment illustrated in  FIG. 5, 18  food products F are identified and colored in black. 
     The individual identifier  31  generates arrangement information of each of the identified food products F. The arrangement information indicates the position and posture of the identified food product F (that is, the arrangement of the identified food product F) in the coordinate system. The individual identifier  31  also generates shape information about the shape, including the size, of each identified food product F. The individual identification processing of the individual identifier  31  can be implemented by conventional image recognition technology, and will not be elaborated here. In the embodiment illustrated in  FIG. 5 , the shape information is in the form of image information (a two-dimensional array of binary pixels) of the identified food products F colored in black. 
     Weight Estimation Processing 
     As illustrated in  FIG. 6 , the weight estimator  32  estimates the weight of each of the identified individual food products F. In this embodiment, each identified food product F is assigned identification number ( 1  through  18 ) and, according to the estimated weight, classified as belonging to one of five weight ranges A to E. The five weight ranges A to E are weight range A for  70  grams (g) per food product F, weight range B for 60 g to 70 g per food product F, weight range C for 50 g to 60 g per food product F, weight range D for 40 g to 59 g per food product F, and weight range E for less than 40 g per food product F. 
     As described above, the weight estimator  32  performs machine learning using an artificial neural network to perform weight estimation processing based on the shape information of each individual food product F. A non-limiting example of the artificial neural network is illustrated in  FIG. 7 . The model illustrated in  FIG. 7  shows that the shape information of the individual food product F is input in the form of image information indicating a two-dimensional array of binary pixels, and the image information undergoes clustering to determine the range, among the five weight ranges A to E, to which the weight of the individual food product F belongs. 
     Such artificial neural network can be implemented through learning of a relationship between the input shape information of the estimation target (food product F, which is deep-fried chicken in this embodiment) and the weight range to be output. The learning is performed when the weight estimator  32  is in learning mode, in which the weight sensor  7  is in attached state. The learning mode is different from execution mode, in which the weight estimator  32  actually performs weight estimation, as detailed later. In the learning mode, the weight estimator  32  adjusts weight coefficients of the edges connecting the nodes of the artificial neural network. Specifically, the weight estimator  32  adjusts the weight coefficients based on teaching data. The teaching data is a combination of input data and output data. The input data is the shape information of the identified food product F. The output data is the range, among the weight ranges A through E, to which the weight of the identified food product F belongs when the weight is measured by the weight sensor  7  while the identified food product F is being subjected to the picking operation of the picking robot  5 . This configuration enables the weight estimator  32  to, using the artificial neural network, learn a feature quantity indicating a correlation between the shape information of the individual food product F and the weight range. 
       FIG. 8  is a flowchart of a procedure for processing performed by CPU  901  (see  FIG. 13 , described later) of the upper-level controller  3  in the learning mode. The processing illustrated in  FIG. 8  starts upon input of a command for the learning mode from, for example, an operating device, not illustrated, with the weight sensor  7  attached to the picking robot  5 . 
     At step S 5 , the CPU  901  obtains image information from the camera  2 . 
     At step S 10 , the CPU  901  performs image recognition of the image information obtained at step S 5  to delimit each of the individual food products F. 
     At step S 15 , the CPU  901  identifies, from among the individual food products F delimited at step S 10 , those individual food products F that can be held by the gripper  5   b.  Specifically, the individual food products F identified as holdable are not covered by any other individual food products F, that is, the holdable individual food products F are so exposed that the entire shape of each individual food product F can be recognized and the weight of each individual food product F can be estimated. 
     At step S 20 , the CPU  901  generates shape information of each of the individual food products F identified at step S 15 . The camera  2  and steps S 5  through S 20  are non-limiting examples of the shape obtainer recited in the appended claims. 
     At step S 25 , the CPU  901  outputs a work command to the robot controller  4  to cause the robot controller  4  to hold and raise one of the individual food products F identified as holdable at step S 15 . The work command will be described in detail later. 
     At step S 30 , the CPU  901  obtains measured weight information indicating the actual weight of the one individual food product F measured by the weight sensor  7  with the one individual food product F held and raised at step S 25 . 
     At step S 35 , the CPU  901  causes the one individual food product F that is being held to be placed at a predetermined position (not illustrated). 
     At step S 40 , the CPU  901  determines whether the measured weight information of all the individual food products F identified as holdable at step S 15  has been obtained. When there is an individual food product F whose measured weight information is not obtained yet, the determination is “NO”, and the procedure returns to step S 25 , where the processing starting from step S 25  is performed again. 
     When the measured weight information of all the individual food products F identified as holdable at step S 15  has been obtained, the determination is “YES”, and the procedure proceeds to step S 45 . 
     At step S 45 , the CPU  901  implements learning by adjusting the weight coefficients in the artificial neural network based on teaching data that combines the shape information generated at step S 20  with the measured weight information obtained at step S 30 . 
     At step S 50 , the CPU  901  determines whether the learning has ended, that is, whether teaching data of all the individual food products F stored in the container  6  has been obtained. When there is an individual food product F left in the container  6 , the determination is “NO”, and the procedure returns to step  5 , where the processing starting from step S 5  is performed again. 
     When there is no individual food product F left in the container  6 , the determination is “YES”, and the procedure ends. 
     Work Planning Processing 
     When the learning of the weight estimator  32  is completed, the weight estimator  32  turns into the execution mode, in which the weight estimator  32  performs the picking operation. In the picking operation, the weight estimator  32  allots the individual food products F stored in the container  6  to a plurality of target containers. In the execution mode, the weight sensor  7  is kept detached from the picking robot  5 . In this state, the individual identifier  31  and the weight estimator  32  pedal n individual recognition of the individual food products F based solely on the image information from the camera  2 , obtaining arrangement information, shape information, and estimated weight information of each individual food product F. Then, the individual identifier  31  and the weight estimator  32  output the arrangement information, the shape information, and the estimated weight information to the work planner  33 . 
     A non-limiting example of allotting work is illustrated in  FIG. 9 . As illustrated in  FIG. 9 , two target containers I and II and a non-standard object container IR are arranged adjacent to the container  6 . In the embodiment illustrated in  FIG. 9 , each of the target containers I and II is part of a lunchbox and shaded to indicate the place for the individual food products F. The work planner  33  sets up such an allotting work plan that individual food products F are conveyed from the container  6 , and four or five individual food products F are placed in each of the target containers I and II with the total weight of each target container kept within the range of 210 g to 290 g. Specifically, the allotting work plan for the target container I specifies that the target container I be allotted the individual food products F identified as number  3 , number  4 , number  6 , and number  7 , which belong to the weight range C, and the individual food product F identified as number  9 , which belongs to the weight range D. The allotting work plan for the target container II specifies that the target container II be allotted the individual food product F identified as number  1 , which belongs to the weight range B, and the individual food products F identified as number  8 , number  10 , and number  11 , which belong to the weight range C. The allotting work plan set up by the work planner  33  (which can also be referred to as distribution plan for each target container), which will not be further elaborated here, can be implemented by any weight distribution uniformizing technique. 
     The individual food products F identified as number  5  and number  17 , which belong to the weight range A, are determined as overweight and non-standard, and conveyed to the non-standard object container IR. The individual food products F identified as number  2  and number  12 , which belong to the weight range E, are determined as underweight and non-standard, and conveyed to the non-standard object container IR. This configuration ensures that individual food products F determined as non-standard in terms of weight can be used in other applications. 
     Then, based on the arrangement information, the shape information, and the estimated weight information of each of the individual food products F to be conveyed, the work planner  33  calculates a position, a direction, and a holding force for the gripper  5   b  to hold each individual food product F. The work planner  33  also calculates, based on the allotting work plan, the trajectory of the gripper  5   b  and the timing of the holding operation. These calculations, which will not be further elaborated here, can be implemented by any technique known in the art, such as shape analysis, stability analysis, and holding position posture search. In the execution mode, the work planner  33  performs these calculations to generate a time-series work command and outputs the work command to the robot controller  4  so as to cause the picking robot  5  to perform the allotting work. 
       FIG. 10  is a flowchart of a procedure for processing in the execution mode performed by the CPU  901  of the upper-level controller  3  (see  FIG. 13 , described later). The processing illustrated in  FIG. 10  starts upon input of a command for the execution mode from, for example, an operating device, not illustrated, with the weight sensor  7  detached from the picking robot  5 . 
     At step S 105 , the CPU  901  obtains image information from the camera  2 . 
     At step S 110 , the CPU  901  performs image recognition of the image information obtained at step S 105  to delimit each of the individual food products F. 
     At step S 115 , the CPU  901  identifies, from among the individual food products F delimited at step S 10 , those individual food products F that can be held by the gripper  5   b.  Specifically, the individual food products F identified as holdable are not covered by any other individual food products F, that is, the holdable individual food products F are so exposed that the entire shape of each individual food product F can be recognized and the weight of each individual food product F can be estimated. The CPU  901  also generates arrangement information of each individual food product F. 
     At step S 120 , the CPU  901  generates shape information of each of the individual food products F identified at step S 115 . The camera  2  and steps S 105  through S 120  are non-limiting examples of the shape obtainer recited in the appended claims. 
     At step S 125 , based on the shape information generated at step S 120 , the CPU  901  estimates the weights of all the individual food products F identified as holdable at step S 115 . Specifically, the CPU  901  inputs the shape information of each individual food product F into the artificial neural network, causing a weight range based on the shape information to be output. Then, the CPU  901  generates estimated weight information based on the weight range. The processing at step S 125  is a non-limiting example of the weight estimator  32  recited in the appended claims (see  FIG. 1 ). 
     At step S 130 , the CPU  901  generates a work command for the robot controller  4  based on the arrangement information generated at step S 115 , the shape information generated at step S 120 , and the estimated weight information generated at step S 125 . Specifically, the CPU  901  sets up an allotting work plan for the target containers I and II, calculates a position, a direction, and a holding force for the gripper  5   b  to perform the holding operation, and calculates the trajectory of the gripper  5   b  and the timing of the holding operation. Based on these calculations, the CPU  901  generates a time-series work command. 
     At step S 135 , the CPU  901  outputs to the robot controller  4  a work command for each individual food product F so as to cause the picking robot  5  to perform the picking operation. 
     At step S 140 , the CPU  901  determines whether the picking operation has been performed on all the individual food products F identified as holdable at step S 115 . When there is an individual food product F that has not undergone the picking operation yet, the determination is “NO”, and the procedure returns to step S 135 , where the processing starting from step S 135  is performed again. 
     When all the individual food products F identified as holdable at step S 115  have undergone the picking operation, the determination is “YES”, and the procedure proceeds to step S 145 . The processing at steps S 130  through S 140  is a non-limiting example of the controller recited in the appended claims. 
     At step S 145 , the CPU  901  determines whether all the individual food products F stored in the container  6  have undergone the picking operation. When there is an individual food product F left in the container  6 , the determination is “NO”, and the procedure returns to step  105 , where the processing starting from step S 105  is performed again. 
     When there is no individual food product F left in the container  6 , the determination is “YES”, and the procedure ends. 
     Advantageous Effects of the Embodiment 
     As has been described hereinbefore, the picking system  1  according to this embodiment optically obtains shape information of a picking target food product F, and estimates the weight of the food product F based on the shape information. This configuration ensures quickness in estimating the weight of a stationary food product F waiting to be held. Based on the estimated weight, the work planner  33  optimizes the holding force of the gripper  5   b.  Also in this embodiment, the weight sensor  7  is not necessary in the execution mode. This configuration eliminates or minimizes increase in the production cost of the picking system  1  as a whole. Also, this embodiment eliminates the need for physically holding and raising the food product F in estimating the weight of the food product F. Instead, this embodiment uses the above-described optical sensing to estimate the weight of the food product F. This configuration ensures quickness in estimating the weight of the food product F and improves the efficiency with which the food product F is allotted to a container. This configuration, as a result, provides an improvement to the picking function to accommodate to objects whose shape and weight vary from object to object. 
     Also in this embodiment, the weight estimator  32  performs machine learning to learn a relationship between the input shape information and the weight of the object to be output, and estimates the weight of the object by the machine learning. This configuration ensures highly accurate weight estimation processing of the weight estimator  32  without design and adjustment of a processing algorithm for the weight estimation processing. The machine learning performed by the weight estimator  32  will not be limited to an artificial neural network (deep learning). Various other methods of machine learning can be used, a non-limiting example being data mining implemented by a Bayesian network or a support vector machine. 
     Also in this embodiment, the weight sensor  7  is attachable and detachable to and from the picking robot  5 , and the weight estimator  32  performs machine learning based on teaching data (using, for example, an artificial neural network). The teaching data is a combination of input data and output data. The input data is the shape information of a food product F. The output data is the actual weight of the food product F measured by the weight sensor  7 . Thus, the teaching data specifies how to implement the learning mode, in which the weight estimator  32  performs machine learning. The weight sensor  7  may be attached to the picking robot  5  in the learning mode and may be kept detached from the picking robot  5  in the execution mode, in which the weight estimator  32  performs weight estimation. The details obtained in the machine learning (such as adjusted internal parameters) can be copied into the weight estimator  32  of another picking system  1  in which no weight sensor  7  is provided. 
     While in the above-described embodiment the weight sensor  7  is kept detached from the picking robot  5  in the execution mode, the weight sensor  7  may not necessarily be kept detached from the picking robot  5  in the execution mode. For example, it is common that some of the deep-fried chicken food products F are abnormal with no meat under the coating. The actual weight of such abnormal food product may be much smaller than the estimated weight of the abnormal food product estimated based on its shape information. In view of this situation, the weight sensor  7  may be attached to the picking robot  5  in the execution mode as well so that the weight sensor  7  measures the weight of a food product F, and the measured weight is compared with the estimated weight of the food product F estimated by the weight estimator  32 . When the error between the measured weight and the estimated weight is equivalent to or greater than a predetermined value, the food product F may be determined as non-standard, thus being distinguished from the food products F determined as standard. This configuration provides the picking robot  5  with greater functionality of picking operation. In order to eliminate or minimize waste of resources, objects classified as non-standard can be used for purposes different from the purposes for which the objects classified as standard are used. In another possible embodiment, the shape information of an object may be color image information so that the coating and the meat are recognized in different colors. When the difference in color indicates an excess or deficiency of the coating, the object may be determined as non-standard. In this manner, standard deep-fried chicken products can be distinguished from non-standard deep-fried chicken products. In this case, the deep-fried chicken products are determined as standard or non-standard based on machine learning of an abnormality determiner (not illustrated) different from the weight estimator  32 . 
     Also in this embodiment, the picking robot  5  includes the gripper  5   b.  The gripper  5   b  holds a food product F as a picking operation. The work planner  33  uses the estimated weight information of the food product F estimated by the weight estimator  32  as a basis for setting a holding force for the gripper  5   b  to hold the food product F. Holding the food product F makes the picking operation of the picking robot  5  more reliable. Setting the holding force of the gripper  5   b  based on the estimated weight information generated by the weight estimator  32  makes the holding force suitable for the weight of the food product F. For example, when a food product F has a relatively large weight, the holding force set for the food product F is great enough to enable the picking robot  5  to lift the food product F under its weight. Also, when a food product F has a relatively small weight, the holding force set for the food product F is small enough to keep the shape of the food product F from being distorted. Thus, the holding force of the gripper  5   b  is optimized for the weight of the food product F. 
     Also in this embodiment, the obtained shape information is shape information of individual food products F, among a plurality of food products F overlapping each other in the container  6 , on which the picking robot  5  is able to perform the picking operation. Thus, food products F whose weights can be estimated are identified from among the plurality of food products F overlapping each other. This configuration improves the accuracy of weight estimation. 
     Also in this embodiment, the work planner  33  controls the picking robot  5  to perform the picking operation on a food product F whose weight is within a weight range set in advance in the estimated weight information generated by the weight estimator  32 . This configuration uniformizes the weights of the food products F in allotting the food products F to the target containers I and II, which are lunchboxes in this embodiment. 
     Also in this embodiment, the work planner  33  selects food products F that are within a capacity range (four or five food products F in this embodiment) set in advance for each of the target containers I and II, which are lunchboxes in this embodiment, and that are within a total weight range (250 g to 260 g in this embodiment) set in advance for each of the target containers I and II based on the capacity range. Then, the work planner  33  controls the picking robot  5  to perform the picking operation on the selected food products F. This configuration uniformizes the number and total of weight of food products F to be allotted to the target containers I and II, which are lunchboxes in this embodiment. 
     Modifications 
     In the above-described embodiment, the imaging device that obtains image information of food products F is the camera  2 . In another possible embodiment, another optical sensing means may be used such as three-dimensional cameras and a laser scanner, so that a food product F is identified and subjected to weight estimation based on image information obtained by the three-dimensional cameras or the laser scanner. 
     As illustrated in  FIG. 11 , a three-dimensional camera  43  includes two cameras  41  and  42 . The two cameras  41  and  42 , which have overlapping imaging regions, obtain two pieces of image information of a food product F. Specifically, as illustrated in the left half of  FIG. 12 , the two pieces (two-dimensional pixel arrays) of image information provide a parallax of a single food product F, and used as two pieces of shape information of the food product F independently input into the artificial neural network of the weight estimator  32 . Based on the two pieces of shape information, the weight of the food product F is estimated. The use of three-dimensional image information improves the accuracy with which the weight of the food product F is estimated. 
     The value of the weight of the food product F output from the artificial neural network illustrated in  FIG. 12  is a continuous value. Specifically, the output layer of the artificial neural network has an output node from which a continuous value of the sum of the set of inputs is output as estimated weight information, without a comparison based on an activation function. Another possible embodiment (not illustrated) of the manner in which the weight value is output is that a plurality of output nodes are provided as output layers to output two weight values obtained through a comparison using an activation function and that the two weight values are combined into a weight value expressed in binary number. In another possible embodiment (not illustrated), the artificial neural network may be designed to estimate the weight value by regression (not illustrated). 
     In another possible embodiment (not illustrated), the individual identifier  31  may generate three-dimensional model data (such as three-dimensional CAD data, which is in the form of vector data) of a food product F based on two pieces of image information each made up of a two-dimensional pixel array, and input the three-dimensional model data as shape information into the artificial neural network of the weight estimator  32 . In another possible embodiment (not illustrated), the individual identifier  31  may calculate the volume of a food product F based on two pieces of image information, and the weight estimator  32  may estimate the weight of the food product F based on the obtained volume information. 
     In another possible embodiment (not illustrated), a laser scanner may be used as the optical sensing means for obtaining image information of a food product F. Specifically, the laser scanner runs a scanning line of light across the surface of the food product F to measure distances between points on the surface, thus obtaining a collection of distance data as image information. Then, the individual identifier  31  may connect together the distance data constituting the image information to generate and output three-dimensional shape information (such as the above-described three-dimensional model data) of the food product F. 
     Hardware Configuration of Upper-level Controller 
     By referring to  FIG. 13 , description will be made with regard to a hardware configuration of the upper-level controller  3  in implementing the processings at the elements such as the individual identifier  31 , the weight estimator  32 , and the work planner  33  performed by the programs executed at the CPU  901 . 
     As illustrated in  FIG. 13 , the upper-level controller  3  includes the CPU  901 , a ROM  903 , a RAM  905 , an application specific integrated circuit  907 , an input device  913 , an output device  915 , a recording device  917 , a drive  919 , a connection port  921 , and a communication device  923 . Examples of the application specific integrated circuit  907  include, but are not limited to, an application specific integrated circuit (ASIC) and a field-programmable gate array (FPGA). These configurations are connected to each other through a bus  909  and an input-output interface  911  so that signals are transmittable to and from the configurations. 
     The programs may be stored in, for example, the ROM  903 , the RAM  905 , or the recording device  917 . 
     In another possible embodiment, the programs may be stored in a removable recording medium  925  temporarily or permanently. Examples of the recording medium  925  include, but are not limited to, a magnetic disc such as a flexible disc; an optical disc such as a compact disc (CD), a magneto-optical (MO) disc, and a digital video disc (DVD); and a semiconductor memory. The recording medium  925  may be provided in the faun of what is called packaged software. In this case, the programs stored in the recording medium  925  may be read by the drive  919  and stored in the recording device  917  through devices such as the input-output interface  911  and the bus  909 . 
     In another possible embodiment, the programs may be stored in a download site or any other recording device such as a computer (not illustrated). In this case, the programs are transmitted to the communication device  923  through a network NW. Examples of the network NW include, but are not limited to, a local area network (LAN) and the Internet. Then, the programs received by the communication device  923  are stored in the recording device  917  through devices such as the input-output interface  911  and the bus  909 . 
     In another possible embodiment, the programs may be stored in an external connection device  927 . In this case, the programs are transmitted through the connection port  921  and stored in the recording device  917  through devices such as the input-output interface  911  and the bus  909 . 
     Then, the CPU  901  performs various processings based on the programs stored in the recording device  917  so as to implement the processings performed at the elements such as the individual identifier  31 , the weight estimator  32 , and the work planner  33 . In executing the programs, the CPU  901  may read the programs directly from the recording device  917  or may temporarily load the programs in the RAM  905 . When the CPU  901  receives the programs through devices such as the communication device  923 , the drive  919 , and the connection port  921 , the CPU  901  may execute the programs without storing the programs in the recording device  917 . 
     As necessary, the CPU  901  may perform the various processings based on signals or information input through the input device  913 , such as a mouse, a keyboard, and a microphone (not illustrated). 
     Then, the CPU  901  may output results of the processings from the output device  915 , such as a display device and aa sound output device. As necessary, the CPU  901  may send results of the processings through the communication device  923  and the connection port  921  and store the results of the processings in the recording device  917  and/or the recording medium  925 . 
     As used herein, the terms “perpendicular”, “parallel”, and “plane” may not necessarily mean “perpendicular”, “parallel”, and “plane”, respectively, in a strict sense. Specifically, the terms “perpendicular”, “parallel”, and “plane” mean “approximately perpendicular”, “approximately parallel”, and “approximately plane”, respectively, with design-related and production-related tolerance and error taken into consideration. 
     Also, when the terms “identical”, “same”, “equivalent”, and “different” are used in the context of dimensions, magnitudes, sizes, or positions, these terms may not necessarily mean “identical”, “same”, “equivalent”, and “different”, respectively, in a strict sense. Specifically, the terms “identical”, “same”, “equivalent”, and “different” mean “approximately identical”, “approximately same”, “approximately equivalent”, and “approximately different”, respectively, with design-related and production-related tolerance and error taken into consideration. 
     Otherwise, the embodiments and modifications may be combined in any manner deemed suitable. 
     Obviously, numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the present disclosure may be practiced otherwise than as specifically described herein.