Abstract:
A robot control method and apparatus estimates an error based on information of an object obtained using a motor drive current sensor, a force sensor or a tactile sensor mounted at a robot hand and information of the object obtained using an optical sensor and compensates for the error. The robot control method and apparatus includes measuring information of an object using an optical sensor or calculating information of the object input by a user, moving a robot hand to the object based on the information of the object, controlling the thumb and fingers of the robot hand to contact the object based on the information of the object, determining whether the thumb and fingers have contacted the object through a motor drive current sensor, a force sensor or a tactile sensor, and grasping the object depending upon whether the thumb and the fingers have contacted the object.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of Korean Patent Application No. 2010-0114461, filed on Nov. 17, 2010 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference. 
       BACKGROUND 
       [0002]    1. Field 
         [0003]    Embodiments relate to a robot control method that measures a position information error of an object and grasps the object based on the error. 
         [0004]    2. Description of the Related Art 
         [0005]    An industrial robot or an intelligent service robot grasps an object using a manipulator and an end-effector. When an object is to be grasped, the position of the object as recognized by a robot may be different from the actual position thereof due to an optical information error or abrupt movement of the object, resulting in failure of stable grasping. 
         [0006]    In the related art, a force/torque sensor (hereinafter, referred to as an F/T sensor) is mounted at an end of a platform, i.e. a manipulator, and a sensor to sense force or touch is mounted at the thumb and at least one finger of a robot hand to achieve stable grasping. A position error is sensed and coped with using such sensor information. 
         [0007]    In the related art, operations are repeatedly performed until conditions are satisfied. During the operations, the palm, the thumb and the fingers are repeatedly moved, and grasping time increases. That is, a process of compensating for position and direction errors may be time consuming. 
       SUMMARY 
       [0008]    It is an aspect of an embodiment to provide a robot control method that estimates an error based on information of an object obtained using a motor drive current sensor, a force sensor or a tactile sensor mounted at a robot hand and information of the object obtained using an optical sensor of a robot and compensates for the error, thereby grasping the object on the first attempt. 
         [0009]    Additional aspects of embodiments will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention. 
         [0010]    In accordance with an aspect of an embodiment, a robot control method includes measuring information of an object to be grasped using an optical sensor of a robot or calculating information of the object input by a user, moving a robot hand to the object based on the information of the object, controlling the thumb and fingers of the robot hand to contact the object based on the information of the object, determining whether all of the thumb and the fingers have contacted the object through a motor drive current sensor, a force sensor or a tactile sensor provided at the thumb and the fingers, and grasping the object depending upon determination as to whether all of the thumb and the fingers have contacted the object. 
         [0011]    The thumb and the fingers may each have at least one internode, and the motor drive current sensor, the force sensor or the tactile sensor may be provided at an end internode of the thumb and each of the fingers. 
         [0012]    Grasping the object depending upon determination as to whether all of the thumb and the fingers have contacted the object may include adjusting angles of the end internodes of the thumb and the fingers to grasp the object depending upon determination as to whether the end internodes of the thumb and the fingers have contacted the object. 
         [0013]    Grasping the object depending upon determination as to whether the thumb and the fingers have contacted the object may include applying pressure of the thumb and the fingers to the object to grasp the object when all of the thumb and the fingers have contacted the object. 
         [0014]    Grasping the object depending upon determination as to whether the thumb and the fingers have contacted the object may include grasping the object depending upon determination as to whether an optimum grasping signal has been input by the user when all of the thumb and the fingers have not contacted the object. 
         [0015]    Grasping the object depending upon determination as to whether the optimum grasping signal has been input by the user may include, upon determining that the optimum grasping signal has been input by the user, obtaining an optimum grasping shape based on the information of the object measured by the optical sensor or input by the user and the information of the object measured by the motor drive current sensor, the force sensor or the tactile sensor and grasping the object according to the obtained optimum grasping shape. 
         [0016]    Grasping the object depending upon determination as to whether the optimum grasping signal has been input by the user may include, upon determining that the optimum grasping signal has not been input by the user, estimating a shape error based on the information of the object measured by the optical sensor or input by the user and the information of the object measured by the motor drive current sensor, the force sensor or the tactile sensor and determining whether the shape error has been compensated for to grasp the object. 
         [0017]    Determining whether the estimated shape error has been compensated for to grasp the object may include, when the estimated shape error is less than a predetermined value, applying pressure of the thumb and the fingers to the object to grasp the object without compensating for the estimated shape error. 
         [0018]    Determining whether the estimated shape error has been compensated for to grasp the object may include, when the estimated shape error is greater than the predetermined value, obtaining an optimum grasping shape based on the information of the object measured by the optical sensor or input by the user and the information of the object measured by the motor drive current sensor, the force sensor or the tactile sensor and grasping the object according to the obtained optimum grasping shape. 
         [0019]    Grasping the object according to the optimum grasping shape may include moving the robot hand according to the optimum grasping shape, waiting for the fingers or the thumb not contacting the object to contact the object while contact between the thumb or the fingers and the object is maintained, and applying pressure of the thumb and the fingers to the object to grasp the object when all of the thumb and the fingers have contacted the object. 
         [0020]    The information of the object to be grasped may include a position, size or shape of the object. 
         [0021]    In accordance with another aspect of the present invention, a method of controlling a robot having a robot hand including a palm, a thumb and fingers, the thumb and the fingers each having at least one internode, includes measuring the position, size or shape of an object to be grasped using an optical sensor of the robot or calculating the position, size or shape of the object input by a user, moving the robot hand to the object based on the position of the object, encircling the object while the size of a circle formed by the palm and the internodes is reduced so as to correspond to the size of the object, determining whether all of the palm and the internodes have contacted the object through a motor drive current sensor, a force sensor or a tactile sensor provided at the palm and the internodes, and grasping the object depending upon determination as to whether all of the palm and the internodes have contacted the object. 
         [0022]    Grasping the object depending upon determination as to whether the palm and the internodes have contacted the object may include applying pressure of the thumb and the fingers to the object to grasp the object when all of palm and the internodes have contacted the object. 
         [0023]    Grasping the object depending upon determination as to whether the palm and the internodes have contacted the object may include grasping the object depending upon determination as to whether an optimum grasping signal has been input by the user when all of the palm and the internodes have not contacted the object. 
         [0024]    Grasping the object depending upon determination as to whether the palm and the internodes have contacted the object may include, upon determining that the optimum grasping signal has been input by the user, obtaining an optimum grasping shape based on the position, size or shape of the object measured by the optical sensor or input by the user and the position, size or shape of the object measured by the motor drive current sensor, the force sensor or the tactile sensor and grasping the object according to the obtained optimum grasping shape. 
         [0025]    Grasping the object depending upon determination as to whether the palm and the internodes have contacted the object may include, upon determining that the optimum grasping signal has not been input by the user, estimating a shape error based on the position, size or shape of the object measured by the optical sensor or input by the user and the position, size or shape of the object measured by the motor drive current sensor, the force sensor or the tactile sensor and determining whether the shape error has been compensated for to grasp the object. 
         [0026]    Determining whether the estimated shape error has been compensated for to grasp the object may include, when the estimated shape error is less than a predetermined value, applying pressure of the thumb and the fingers to the object to grasp the object without compensating for the estimated shape error. 
         [0027]    Determining whether the estimated shape error has been compensated for to grasp the object may include, when the estimated shape error is greater than the predetermined value, obtaining an optimum grasping shape based on the position, size or shape of the object measured by the optical sensor or input by the user and the position, size or shape of the object measured by the motor drive current sensor, the force sensor or the tactile sensor and grasping the object according to the obtained optimum grasping shape. 
         [0028]    Grasping the object according to the optimum grasping shape may include moving the robot hand according to the optimum grasping shape, waiting for internodes not contacting the object to contact the object while contact between the internodes and the object is maintained, and applying pressure of the thumb and the fingers to the object to grasp the object when all of the internodes have contacted the object. 
         [0029]    Estimating the shape error may include estimating the shape error based on the size of a circle formed by the palm contacting the object and some of the internodes contacting the object and the size of the object measured by the optical sensor or input by the user. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]    These and/or other aspects of embodiments will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which: 
           [0031]      FIG. 1  is a schematic view illustrating a preshape of a robot hand according to an embodiment before grasping an object; 
           [0032]      FIG. 2  is a schematic view illustrating the robot hand compensating for a shape error generated during a robot control process according to an embodiment; 
           [0033]      FIG. 3  is a schematic view illustrating a preshape of a robot hand according to another embodiment before grasping an object; 
           [0034]      FIG. 4  is a schematic view illustrating the robot hand compensating for a shape error generated during a robot control process according to another embodiment; 
           [0035]      FIG. 5  is a flow chart illustrating a robot control process according to a further embodiment; and 
           [0036]      FIG. 6  is a schematic view illustrating a process in which a robot hand slowly encircles an object to be grasped during the robot control process according to an embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0037]    Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
         [0038]      FIG. 1  is a schematic view illustrating a preshape of a robot hand according to an embodiment before grasping an object using tips of the thumb and fingers of the robot hand. 
         [0039]    A robot control method according to an embodiment is to grasp an object using tips of the thumb and fingers of a robot hand  1 . The robot hand  1  grasps an object  5  in a state in which each finger and the thumb are opposite to each other, which is called pinching. 
         [0040]    During pinching, the robot hand is moved first into a preshape. An angle of an MPP internode  21  is adjusted, while an angle of a PIP internode  23  and an angle of a DIP internode  25  are uniformly maintained, so that the robot hand assumes a preshape. 
         [0041]    The preshape is assumed so that the distance between the thumb and each finger is greater than the maximum size W_max of an object that may be grasped through pinching and so that each finger and the thumb are approximately symmetrically disposed. 
         [0042]    Next, the robot hand  1  slowly encircles the object  5  (encircling motion). A position at which each finger and the thumb contact each other is set to a ‘target arrival point’ of each finger  20  and the thumb  30 . A Cartesian level trajectory is created from the preshape. 
         [0043]    When contact at the each finger  20  or the thumb  30  is sensed through contact sensing, the robot hand is stopped. 
         [0044]    Contact sensing determines whether each finger  20  and the thumb  30  have contacted the object using a motor drive current sensor ( 50 ), a force sensor ( 50 ) or a tactile sensor ( 50 ) or determines whether each finger  20  and the thumb  30  have contacted the object by estimating external force generated by contact between the each finger  20  and the thumb  30  and the object using feedback information of motor drive current. 
         [0045]    In various embodiments, computer  40  can be used to control the robot hand  1 . For example, the computer  40  can be used perform operations and/or calculations described herein to control and/or move a robot hand in as described herein. The computer  40  can be located on the robot hand  1 , in a robot which includes the robot hand  1 , or may be located somewhere other than the robot or the robot hand  1 . For example, the computer  40  may be located remotely from the robot or the robot hand  1 . Embodiments are not limited to the location of the computer  40 . 
         [0046]      FIG. 2  is a schematic view illustrating the robot hand compensating for a shape error generated during a robot control process according to an embodiment. 
         [0047]    When only the thumb  30  contacts the object or only each finger  20  contacts the object, an error in a longitudinal direction of the palm is generated. At this time, the actual position of the object  5  may be confirmed based on the size of the object measured by an optical sensor of the robot. 
         [0048]    A position h Finger  contacting the object  5  and a position h obj  of the object estimated based on the size of the object  5  are represented by the following mathematical expression. 
         [0000]        h   obj   =h   Finger −( w/ 2)
 
         [0049]    Where, w indicates the width of the object  5 . 
         [0050]    Also, a position error error Hand  of the object  5  is represented by the following mathematical expression. 
         [0000]      error Hand   =h   obj   −h   obj•desired    
         [0051]    Where, h obj•desired  indicates an original center point position  3  of the object  5  recognized through the optical sensor of the robot. 
         [0052]    Also, a distance d by which the robot hand  1  is to be moved so as to correspond to the position error error Hand  of the object  5  is equal to the position error error Hand  obtained above. 
         [0053]      FIG. 3  is a schematic view illustrating a preshape of a robot hand according to another embodiment before grasping an object 
         [0054]    A robot control method according to another embodiment is to grasp an object  7  while encircling the object  7  using inside pads of fingers  20  and the thumb  30  and the surface of the palm, which is called power grasping. 
         [0055]    During power grasping, the robot hand is moved first into a preshape. That is, the preshape is assumed so that the robot hand has the maximum radius R_max of an object  7  that may be grasped using internodes of each finger  20  and the thumb  30  based on the radius of the object  7  measured by an optical sensor of the robot. 
         [0056]    Next, the robot hand  1  slowly encircles the object  7  (encircling motion). In this case, a relationship between the radius of the object  7  and the internodes of each finger  20  and the thumb  30  is set in consideration of the shape in which the object  7  is encircled by the palm and the inside surfaces of the respective internodes of each finger  20  and the thumb  30 . 
         [0057]    That is, a circle having a radius greater than the radius of the object  7  to be grasped contacts the palm and the inside surfaces of the respective internodes of each finger  20  and the thumb  30 . 
         [0058]    A radius trajectory of the robot hand  1  is created so as to reach the minimum radius R_min of the object  7  to be grasped using the power grasping from the preshape. That is, the object  7  is encircled while the radius of the circle formed by a contact point of the palm and the respective internodes of each finger  20  and the thumb  30  is gradually decreased. 
         [0059]    In this case, the radius R of the circle formed by the robot hand and angles of the internodes of each finger  20  and the thumb  30  may be set through the following two mathematical expressions using the radius R obj  of the object. 
         [0000]        R=f ( T   current   ,T   duration   ,R   obj ,5 *R   obj ) 
         [0000]        f ( R )=[θ mpp ,θ pip ]
 
         [0060]    In the first mathematical expression, T current  indicates current time and T duration  indicates time during which the radius of the circle formed by the contact point of the palm and the respective internodes of each finger  20  and the thumb  30  is gradually decreased. 5*R obj  indicates a radius equivalent to five times the radius of the object  7 , which may be changed based on the radius R obj  of the object  7  to be grasped. That is, the radius R to be decreased has a trajectory approximate to the radius R obj  of the object  7  from a radius greater than the radius R obj  of the object  7  for time T duration  during which the radius of the circle is decreased. 
         [0061]    In the second mathematical expression, θ pip =3θ and θ dip =2θ. An angle of each internode of the robot hand  1  is decided based on the radius R of the trajectory decided by the first mathematical expression. 
         [0062]    In the same manner as in the pinching, when contact between the internodes of each finger  20  and the thumb  30  and the object is sensed through contact sensing, the robot hand is stopped. 
         [0063]      FIG. 4  is a schematic view illustrating the robot hand compensating for a shape error generated during a robot control process according to another embodiment. 
         [0064]    When only the thumb  30  contacts the object or only each finger  20  contacts the object, an error in a longitudinal direction of the palm is generated. 
         [0065]    In a case in which a shape error is not generated, the radius R formed by the palm  10  and the internodes of each finger  20  and the thumb  30  is changed from R_max to T_min through the encircling motion. As a result, each finger  20  and the thumb  30  contact the object near the radius (R≈R_obj) of the object, and therefore, resistance torque is generated from each internode. 
         [0066]    On the other hand, when only the thumb  30  or only each finger  20  contacts the object, an error in a longitudinal direction of the palm is generated. The encircling motion is ended in a state in which the radius R formed by the robot hand  1  is greater than the radius of the object (R&gt;&gt;R obj ), and therefore, resistance torque is generated at only the MPP internode  21  of each finger  20 . 
         [0067]    In this way, resistance is applied to the MPP internode  21  due to the position error or the shape error, and therefore, the radius R is changed, which is used inversely to confirm the actual position of the object  7  based on the size of the object  7  measured by the optical sensor of the robot and to estimate the shape error. 
         [0068]    In the above, the following expression representing a relationship between the angle of the MPP internode  21 , the radius R, the contact point position I 0 , and the length of the first internode I 1  is used. 
         [0000]    
       
         
           
             
               π 
               - 
               
                 θ 
                 mpp 
               
             
             = 
             
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                  
                 
                   ( 
                   
                     R 
                     
                       l 
                       o 
                     
                   
                   ) 
                 
               
               + 
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                  
                 
                   ( 
                   
                     R 
                     
                       
                         l 
                         1 
                       
                       / 
                       2 
                     
                   
                   ) 
                 
               
             
           
         
       
     
         [0069]    A portion which is changed according to the change of the actual position of the object  7  is the contact point position I 0  of the palm  10 . Consequently, the actual radius of the object is substituted into R and the angle of the MPP internode  21  which is currently contacting the object is substituted to obtain I 0, measured . 
         [0070]    Specifically, the following mathematical expressions are obtained from I 0, measured . 
         [0000]    
       
         
           
             
               π 
               - 
               
                 Ψ 
                 mpp 
               
             
             = 
             
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                  
                 
                   ( 
                   
                     R 
                     / 
                     
                       l 
                       
                         0 
                         , 
                         measured 
                       
                     
                   
                   ) 
                 
               
               + 
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                  
                 
                   ( 
                   
                     R 
                     / 
                     
                       ( 
                       
                         
                           I 
                           1 
                         
                         / 
                         2 
                       
                       ) 
                     
                   
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     ( 
                     
                       R 
                       / 
                       
                         I 
                         
                           0 
                           , 
                           measured 
                         
                       
                     
                     ) 
                   
                   = 
                     
                    
                   
                     tan 
                      
                     
                       [ 
                       
                         π 
                         - 
                         
                           Ψ 
                           mpp 
                         
                         - 
                         
                           
                             tan 
                             
                               - 
                               1 
                             
                           
                            
                           
                             ( 
                             
                               R 
                               / 
                               
                                 ( 
                                 
                                   
                                     I 
                                     1 
                                   
                                   / 
                                   2 
                                 
                                 ) 
                               
                             
                             ) 
                           
                         
                       
                       ] 
                     
                   
                 
               
             
             
               
                 
                   = 
                     
                    
                   
                     ( 
                     
                       R 
                       / 
                       
                         ( 
                         
                           tan 
                            
                           
                             [ 
                             
                               π 
                               - 
                               
                                 Ψ 
                                 mpp 
                               
                               - 
                               
                                 
                                   tan 
                                   
                                     - 
                                     1 
                                   
                                 
                                  
                                 
                                   ( 
                                   
                                     R 
                                     / 
                                     
                                       ( 
                                       
                                         
                                           I 
                                           1 
                                         
                                         / 
                                         2 
                                       
                                       ) 
                                     
                                   
                                   ) 
                                 
                               
                             
                             ] 
                           
                         
                         ) 
                       
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0071]    That is, I 0, measured  is obtained to know how much the actually measured position of the palm  10  of the robot hand deviates from the target position of the object  7 . I 0, measured  is generated when the thumb and each finger do not contact the object  7 . I 0, measured  may be obtained based on the angle ψ mpp  formed when the object  7  contacts the finger internode  21  and the radius R. 
         [0072]    The difference between the I 0  and I 0, measured  is estimated as a shape error amount error Hand , by as much as which the palm  10  is moved to grasp the object  7 . 
         [0073]    That is, the shape error amount error Hand  is represented by the following mathematical expression. 
         [0000]      error Hand   =d=h   obj   −h   obj.desired   =I   0   −I   0,measured    
         [0074]    When each finger  20  or the thumb  30  contacts the object  7  as previously described, it may be determined that there is an error between the position  3  of the object  7  measured by the optical sensor and the actual position of the object. The palm  10  is moved by the calculated distance d to compensate for the estimated position error and grasp the object. 
         [0075]    At the same time, each finger  20  continues to perform the encircling motion. With the movement of the palm  10 , the internode  21  is separated from the object  7 . Consequently, the tip of the each finger is moved from the current position based on the trajectory created in the encircling motion and the movement of the palm  10 . 
         [0076]    As a result, the internode  21 , contacting the object  7 , is not separated from the object  7  even upon movement of the palm  10 . The tip of the thumb  30 , not contacting the object, is moved according to the trajectory created in the encircling motion. Consequently, contact between the thumb  30  and the object  7  is achieved when the movement of the palm  10  is ended. 
         [0077]    In the position error compensation process, the movement of the palm  10  and the movement of each finger  20  and the thumb  30  are simultaneously performed, and therefore, grasping time is not greatly increased even when the position error is generated. 
         [0078]      FIG. 5  is a flow chart illustrating a robot control process according to a further embodiment. 
         [0079]    First, information regarding the object  5  to be grasped is measured by the optical sensor of the robot. Here, the information regarding the object  5  includes the position and size (shape) of the object  5 . The measured position and size (shape) of the object  5  serve as a reference in grasping the object  5  using the robot hand  1  ( 100 ). 
         [0080]    Subsequently, the robot hand  1  approaches the object  5  based on the measured information of the object  5  (in particular, the position of the object) ( 110 ). The palm  10  of the robot hand  1  is moved based on the information of the object  5 , and each finger  20  and the thumb  30  assume a preshape. Here, the preshape is a preliminary operation performed before grasping the object  5 , whereby the object  5  is stably grasped without damage thereto ( 120 ). 
         [0081]    Subsequently, the robot hand  1  is operated to slowly encircle the object  5 . There is a difference between the information of the object measured by the optical sensor of the rotor and the actual information of the object at the time of grasping due to an error of the information of the object measured by the optical sensor of the robot and abrupt movement of the object  5  (generation of a shape error). The movement of the robot hand  1  is controlled in consideration of such difference. That is, when grasping the object ignoring the shape error, the object may be brought down or damaged during grasping, or the object may be unstably grasped with the result that the object may be dropped, which is prevented by the encircling motion ( 130 ). 
         [0082]    Subsequently, pressure from each finger  20  and the thumb  30  is applied to the object  5  to securely grasp the object (a securely grasping operation), which is a process of stably grasping the object  5  ( 140 ). 
         [0083]    In a state in which the object  5  is securely grasped, the object  5  is slightly lifted ( 150 ). It is determined whether the securely grasped object  5  drops ( 160 ). When the object  5  does not drop, the grasping process is ended. When the object  5  drops, pressure from each finger  20  and the thumb  30  is reapplied to the object  5  to securely grasp the object (Operation  140 ). 
         [0084]      FIG. 6  is a schematic view illustrating a process in which the robot hand slowly encircles the object to be grasped during the robot control process according to an embodiment. 
         [0085]      FIG. 6  illustrates details of Operation  130  at which the robot hand  1  slowly encircles the object  5 . 
         [0086]    First, it is determined whether all of each finger  20  and the thumb  30  of the robot hand  1  contact the object  5  ( 131 ). When all of each finger  20  and the thumb  30  of the robot hand  1  contact the object  5 , pressure from each finger  20  and the thumb  30  is applied to the object  5  shown in  FIG. 5  to securely grasp the object  5  (Operation  140 ). 
         [0087]    When all of each finger  20  and the thumb  30  of the robot hand  1  do not contact the object  5 , it is determined whether an optimum grasping signal has been input by a user, by which it is determined whether grasping is to be performed although there is a minute shape error (for example, grasping time is reduced although grasping is incorrect) or optimum grasping is to be performed after such a minute shape error is compensated ( 132 ). 
         [0088]    When the optimum grasping signal has not been input by the user, a shape error is estimated based on the information of the object  5  measured by the optical sensor of the robot and the information of the object  5  measured by the motor drive current sensor ( 50 ), the force sensor ( 50 ) or the tactile sensor ( 50 ) provided at each finger  20  and the thumb  30  of the robot hand  1 . The information of the object  5  measured by the optical sensor of the robot includes the position and size (shape) of the object  5 , which is a target of the robot hand  1 . The information of the object  5  measured by the motor drive current sensor ( 50 ), the force sensor ( 50 ) or the tactile sensor ( 50 ) provided at each finger  20  and the thumb  30  of the robot hand  1  includes the actual position and size (shape) of the object  5 . That is, the actual position or size of the object  5  is changed due to an error of the optical sensor or other external environmental factors. Such a change is a shape error ( 133 ). 
         [0089]    It is determined whether the estimated shape error is greater than a predetermined value. As long as the object  5  is grasped, the estimated shape error may be ignored. That is, it may be determined whether the shape error is ignored in consideration of grasping time or properties of the object  5  to be grasped ( 134 ). 
         [0090]    When the estimated shape error is not greater than the predetermined value, Operation  140  of  FIG. 5  is performed. On the other hand, when the estimated shape error is greater than the predetermined value, an optimum grasping shape is calculated based on the estimated shape error ( 135 ). 
         [0091]    For example, when the shape error is not greater than 2 cm, it is determined that there is no obstacle in grasping the object  5 , and the grasping process is performed ignoring the shape error. When the shape error is greater than 2 cm, it is determined that there is an obstacle in grasping the object  5 , and the shape error is compensated to grasp the object. 
         [0092]    The robot hand  1  is moved according to the calculated optimum grasping shape. The position and size of the object  5  measured by the optical sensor of the robot are different from the actual position and size of the object measured by the contact sensor ( 50 ). Consequently, the robot hand  1  is moved based on the actual position and size of the object  5  ( 136 ). 
         [0093]    Although the robot hand  1  is moved, contact between each finger  20  and the object  5  is maintained. Specifically, the movement of the robot hand  1  is the movement of the palm  10  of the robot hand  1 . With the movement of the palm  10 , each finger  20  and the thumb  30  are also moved. In this case, each finger  20  contacts the object at a correct position, which is maintained. The thumb  30 , not contacting the object  5 , is moved according to the optimum grasping shape previously calculated for optimum grasping ( 137 ). 
         [0094]    The thumb  30 , not contacting the object  5 , comes into contact with the object  5 . Upon movement of the palm of the robot hand  1 , the thumb  30 , not contacting the object  5 , is also moved. When the thumb  30  moves and comes into contact with the object  5 , movement of the robot hand  1  is stopped ( 138 ). 
         [0095]    Consequently, all of each finger  20  and the thumb  30  contacts the object  5 , and Operation  140  of  FIG. 5  is performed. 
         [0096]    Operations  136 ,  137  and  138  are performed simultaneously. That is, the optimum grasping shape is calculated based on the shape error, the palm  10  of the robot hand  1  is moved according to the calculated optimum grasping shape, and, at the same time, the thumb  30 , not contacting the object  5 , comes into contact with the object  5 . 
         [0097]    As is apparent from the above description, the disclosed robot control method compensates a shape error of an object generated due to an error of the optical sensor of the robot or unexpected movement of the object using the measured by the motor drive current sensor, the force sensor or the tactile sensor provided at the robot hand, thereby improving grasping performance. 
         [0098]    Embodiments can be implemented in computing hardware and/or software, such as (in a non-limiting example) any computer that can store, retrieve, process and/or output data and/or communicate with other computers. A program/software implementing the embodiments may be recorded on non-transitory computer-readable media comprising computer-readable recording media. Examples of the computer-readable recording media include a magnetic recording apparatus, an optical disk, a magneto-optical disk, and/or a semiconductor memory (for example, RAM, ROM, etc.). Examples of the magnetic recording apparatus include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape (MT). Examples of the optical disk include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc-Read Only Memory), and a CD-R (Recordable)/RW. 
         [0099]    Although a few embodiments have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.