Patent Publication Number: US-11642786-B2

Title: Humanoid robot and its balance control method and computer readable storage medium

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The present disclosure claims priority to Chinese Patent Application No. 202010781984.7, filed Aug. 6, 2020, which is hereby incorporated by reference herein as if set forth in its entirety. 
     BACKGROUND 
     1. Technical Field 
     The present disclosure relates to robot control technology, and particularly to a humanoid robot and its balance control method and computer readable storage medium. 
     2. Description of Related Art 
     With the continuous development of science and technology, robotic technology has received extensive attentions from a various of industries because of its great research value and application value. In which, humanoid robot is an important research branch of the existing robotic technology. For a humanoid robot, the prerequisite for the humanoid robot to achieve own walking and operating capabilities is that they can maintain balance in a complex usage environment. Hence, the capability of the balance control of the humanoid robot is a key issue that will restrict the humanoid robot from becoming practical. A current balance control scheme is to divide an entire balance control task into a plurality of control subtasks (e.g., ground force control, momentum control, and whole body dynamics control) according to the structure of the robot system, and then each control subtask is controlled individually to perform the balance control of the robot by effecting the entirety through part. However, in this scheme, due to the coupling between a plurality of control subtasks, the control subtasks will often interfere with each other, which increases the complexity of the robot system. The effect of other control subtasks will usually be affected while only the effect of a certain control subtask will be improved. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       To describe the technical schemes in the embodiments of the present disclosure or in the prior art more clearly, the following briefly introduces the drawings required for describing the embodiments or the prior art. It should be understood that, the drawings in the following description merely show some embodiments. For those skilled in the art, other drawings can be obtained according to the drawings without creative efforts. 
         FIG.  1    is a schematic block diagram of a humanoid robot according to an embodiment of the present disclosure. 
         FIG.  2    is a flow chart of a balance control method according to an embodiment of the present disclosure. 
         FIG.  3    is a flow chart of example one of sub-steps in step S 220  of the method of  FIG.  2   . 
         FIG.  4    is a flow chart of example two of sub-steps in step S 220  of the method of  FIG.  2   . 
         FIG.  5    is a flow chart of an example of sub-steps in step S 230  of the method of  FIG.  2   . 
         FIG.  6    is a flow chart of an example of sub-steps in step S 231  of the method of  FIG.  5   . 
         FIG.  7    is a flow chart of an example of sub-steps in step S 232  of the method of  FIG.  5   . 
         FIG.  8    is a flow chart of an example of sub-steps in step S 233  of the method of  FIG.  5   . 
         FIG.  9    is a schematic block diagram of a balance control apparatus according to an embodiment of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     In order to make the objects, technical schemes and advantages of the present disclosure more clear, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the drawings. Apparently, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. The components in the embodiments that are described and shown in the drawings may generally be arranged and designed in various configurations. 
     Therefore, the following detailed description for the embodiments provided in the drawings is not intended to limit the scope of the present disclosure, but merely represents the embodiments of the present disclosure. All other embodiments obtained by those skilled in the art without creative efforts are within the scope of the present disclosure. 
     It should be noted that, similar reference numerals and letters indicate similar items in the following figures. Therefore, once an item is defined in one figure, it will not be further defined and explained in subsequent figures. 
     It should be noted that, in the present disclosure, relational terms such as first and second are only for distinguishing one entity/operation from another entity/operation, and do not necessarily require or imply any relationship or order between these entities/operations. Moreover, the terms “include”, “comprise” or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, object or apparatus including a series of elements not only includes the elements, but also includes other elements that are not explicitly listed or the elements inherent to the process, method, object or apparatus. The element defined by the sentence “including a . . . ” does not exclude other same elements in the process, method, object or apparatus if there is no specific restriction thereto. 
     The embodiments of the present disclosure will be described in detail with reference to the drawings. In the case of no conflict, the following embodiments and features therein can be combined with each other. 
       FIG.  1    is a schematic block diagram of a humanoid robot according to an embodiment of the present disclosure. As shown in  FIG.  1   , in this embodiment, a humanoid robot  10  is provided, which may be, for example, a biped robot having a body and two legs, and each of the legs has at least a joint with a servo driven by a motor, where the movement of the legs is realized by the motor rotating an output shaft of the servo which is connected to the leg. The humanoid robot  10  can avoid control interferences between three balance control parts of a sole (of a foot of the leg), a centroid, and a waist of the body during balance control, the effect of the balance control at each of the three balance control parts (i.e., the sole, the centroid, or the waist) can be realized simultaneously by adjusting the motion state of the joint(s) of the humanoid robot  10 , thereby reducing the difficulty of the balance control of the humanoid robot  10 . 
     In which, the humanoid robot  10  may include an upper body (e.g., a lower part of the above-mentioned body), a hip joint driving structure, and two mechanical leg structures. The two mechanical leg structures are located on two sides of the hip joint driving structure, respectively, to connect to the hip joint driving structure. The upper body is connected with the hip joint driving structure, and the position of the connection of the hip joint driving structure and the upper body is between the two mechanical leg structures. The position the hip joint driving structure that is connected to each mechanical leg structure may be provided with two mutually orthogonal rotatable driving structures, so as to realize the alternate positional change between the two mechanical leg structures, and a rotatable driving structure is provided at a knee joint of each mechanical leg structure for realizing the knee bending of the corresponding mechanical leg structure. 
     In this embodiment, the humanoid robot  10  further includes a balance control apparatus  100 , a storage  11 , a processor  12 , and a sensing unit  13 . The storage  11 , the processor  12 , and the sensing unit  13  are directly or indirectly electrically connected to each other to realize data transmission or interaction. For example, the storage  11 , the processor  12 , and the sensing unit  13  may be electrically connected through one or more communication buses or signal lines. 
     The storage  11  may be configured to store program(s), and the processor  12  can execute the program(s) accordingly upon receiving an execution instruction. In which, the storage  11  may be, but is not limited to, a random access memory (RAM), a read only memory (ROM), and a programmable read-only memory (PROM), an erasable programmable read-Only memory (EPROM), electric erasable programmable read-only memory (EEPROM), and the like. The storage  11  is further configured to specify an expected balance trajectory to the humanoid robot  10  for maintain balance when the humanoid robot  10  walks or steps in situ. When the motion state of the humanoid robot  10  is consistent with the motion state of the expected balance trajectory at a certain moment, it can be ensured that the humanoid robot  10  is currently in a balanced state. 
     The processor  12  may be an integrated circuit chip with signal processing capability. The processor  12  may be a general-purpose processor including a central processing unit (CPU) a network processor (NP), or the like. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, which may implement or execute the methods, steps, and logical block diagrams in the embodiments. 
     The sensing unit  13  may be configured to collect motion data of the humanoid robot  10 , for example, to monitor the real-time angular velocity of the humanoid robot  10  at each joint (including real joint and virtual joint), monitor the real-time angular displacement of the humanoid robot  10  at the joint, and monitor the motion pose (including position and posture) and motion speed of each part of the humanoid robot  10 . 
     In this embodiment, the balance control apparatus  100  may include at least one software functional module that can be stored in the storage  11  in the form of software or firmware or solidified in the operating system of the robotic arm  100 . The processor  12  may execute executable modules stored in the storage  11 , for example, software functional modules included in the balance control apparatus  100 , computer programs, and the like. The humanoid robot  10  focus on the parts of the humanoid robot  10  through the balance control apparatus  100 , which adjusts the motion state of each real joint which can simultaneously affect the effect of the balance control of each part (including the sole, the centroid, and the waist) of the humanoid robot  10 , so as to realize the overall balance effect of the humanoid robot  10 , thereby avoiding the control interferences between the sole control, the centroid control, and the waist control during the balance control, and at the same time meet the control needs of the humanoid robot  10  at the sole, the centroid and the waist so as to reduce the difficulty of balance control. 
     It can be understood that, the block diagram shown in  FIG.  1    is only a schematic diagram of the structure of the humanoid robot  10 , and the humanoid robot  10  may also include more or fewer components than those shown in  FIG.  1   , or it may have a different configuration from that shown in  FIG.  1   . The components shown in  FIG.  1    may be implemented through hardware, software or a combination thereof. 
     In this embodiment, in order to ensure that the humanoid robot  10  can meet the control requirements at the sole, the centroid, and the waist at the same time during the balance control, avoid the control interferences between the sole control, the centroid control, and the waist control, and reduce the difficulty of balance control, a balance control method for the above-mentioned humanoid robot  10  which implements the above-mentioned functions is provided. The provided balance control method will be described below. 
       FIG.  2    is a flow chart of an embodiment of a balance control method according to the present disclosure. In this embodiment, a balance control method for the above-mentioned humanoid robot  10  is provided. The method is a computer-implemented method executable for a processor. In one embodiment, the method may be implemented through the robot humanoid  10  of  FIG.  1    or a balance control apparatus shown in  FIG.  9   . As shown in  FIG.  1   , the method includes the following steps. 
     S 210 : obtaining an angular velocity and angular displacement of each joint of the humanoid robot and motion data of a sole of the humanoid robot, motion data of a centroid of the humanoid robot, and motion data of a waist of the humanoid robot. 
     In this embodiment, the current motion data of the humanoid robot  10  at the sole includes a motion speed and a motion pose of the sole, the current motion data of the humanoid robot  10  at the centroid includes a motion speed and a motion pose of the centroid, and the current motion data of the humanoid robot  10  at the waist includes a motion posture angle and a motion angular velocity of the waist. The humanoid robot  10  may monitor its own angular velocity of each joint (including an angular velocity of each real joint of the humanoid robot  10  and an angular velocity of each virtual joint for describing the pose of the space of the waist of the humanoid robot  10 ) and an angular displacement of each joint (including an angular displacement of each real joint of the humanoid robot  10  and an angular displacement of each virtual joint for describing the pose of the space of the waist of the humanoid robot  10 ) and collect the motion data of the sole, the centroid, and the waist in real time through the sensing unit  13 . 
     S 220 : obtaining an expected acceleration of the sole corresponding to a current expected balance trajectory, an expected acceleration of the centroid corresponding to the current expected balance trajectory, and an expected angular acceleration of the waist corresponding to the current expected balance trajectory, based on the motion data of the sole, the motion data of the centroid, and the motion data of the waist, respectively. 
     In this embodiment, when the humanoid robot  10  determines its current motion data of the sole, the centroid, and the waist, it will first determine its own expected balance trajectory at the current moment, and then determine a motion state difference between the motion data of the sole, the centroid, and the waist and that at the current expected balance trajectory, so as to determine the expected accelerations required for the sole and centroid to achieve the balance effect matching the current expected balance trajectory, and the expected angular acceleration required for the waist to achieve the balance effect matching the current balance desired trajectory. In which, the relevant calculations of the expected accelerations of the sole and the centroid and the expected angular acceleration of the waist can be performed by other electronic devices and send the related data to the humanoid robot  10 . The related calculations of the expected acceleration of the sole and the centroid and the expected angular acceleration of the waist can also be directly performed by the humanoid robot  10  itself. 
     Therefore, in order to ensure that the humanoid robot  10  can obtain the expected acceleration and the expected angular acceleration corresponding to the current motion data of the sole, the centroid, and the waist, sub-steps of step S 220  that are shown in  FIG.  3    and  FIG.  4    A is provided. 
       FIG.  3    is a flow chart of example one of sub-steps in step S 220  of the method of  FIG.  2   . As shown in  FIG.  3   , in this embodiment, the expected balance trajectory of the humanoid robot  10  includes preset balance trajectories corresponding to two balance control parts of the sole and the centroid, respectively, where the preset balance trajectory includes a reference acceleration, a reference pose, and a reference velocity of the corresponding balance control part. At this time, the obtaining the expected acceleration of the sole and the expected acceleration of the centroid corresponding to the current expected balance trajectory, based on the motion data of the sole and centroid of the humanoid robot  10 , respectively in step S 220  may include sub-steps S 221 , S 222 , and S 223 . 
     S 221 : for each balance control part corresponding to the sole and the centroid, subtracting the reference pose and the motion pose of the balance control part and subtracting the reference speed and the motion speed of the balance control part to obtain a corresponding pose difference and speed difference. 
     In this embodiment, for the two balance control parts of the sole and the centroid, the humanoid robot  10  will calculate the difference between the reference pose of each of the two balance control parts (i.e., the sole or the centroid) at the current moment and the obtained motion pose, and the difference between the reference speed of the two balance control part at the current moment and the obtained motion speed. That is, the reference pose of the balance control part at the current moment is subtracted from the obtained motion pose to obtain the corresponding pose difference, and the reference speed of the balance control part at the current time is subtracted from the obtained motion speed to obtain the corresponding speed difference. 
     At this time, for the sole, r Δ   Foot (k) can be used to represent the pose difference of the sole at the moment k, and v Δ   Foot (k) can be used to represent the speed difference of the sole at the moment k. In which, the formula for calculating the pose difference and the speed difference of the sole can be respectively expressed through equations of:
 
 r   Δ   Foot ( k )= r   ref   Foot ( k )− r   Foot ( k ); and
 
 v   Δ   Foot ( k )= v   vef   Foot ( k )− v   Foot ( k );
 
     where, r Δ   Foot (k) represents the reference pose of the sole at the moment k, r Foot (k) represents the motion pose of the sole with respect to the world coordinate system at the moment k, v ref   Foot (k) represents the reference speed of the sole at the moment k, and v Foot (k) represents the motion speed of the sole with respect to the world coordinate system at the moment k. 
     At this time, for the centroid, r Δ   COM  (k) can be used to represent the pose difference of the centroid at the moment k, and v Δ   COM (k) can be used to represent the speed difference of the centroid at the moment k. In which, the formula for calculating the pose difference and the speed difference of the centroid can be respectively expressed through equations of:
 
 r   Δ   COM ( k )= r   ref   COM ( k )− r   COM ( k ); and
 
 v   Δ   COM ( k )= v   vef   COM ( k )− v   COM ( k );
 
     where, r ref   COM (k) represents the reference pose of the centroid at the moment k, r COM (k) represents the motion pose of the centroid with respect to the world coordinate system at the moment k, v ref   COM (k) represents the reference speed of the centroid at the moment k, and v COM (k) represents the motion speed of the centroid with respect to the world coordinate system at the moment k. 
     S 222 : selecting a difference parameter matching a preset control function corresponding to the balance control part from the obtained pose difference and speed difference. 
     In this embodiment, the preset control function is for adjusting the motion state of the corresponding balance control part to an expected state. The principles of the control algorithms adopted by the preset control functions corresponding to different balance control parts can be the same or different. For example, the preset control function for the sole can use any one of PID control algorithm, PI control algorithm, PD control algorithm and P control algorithm, and the preset control function for the centroid can use any one of PID control algorithm, PI control algorithm, PD control algorithm and P control algorithm. In which, different preset control functions for the same balance control part may also use different parameters to perform related calculations of the expected acceleration due to different algorithm principles involved. Therefore, after the humanoid robot  10  determines the pose difference and the speed difference of the centroid or the sole at the current moment, the difference parameter involved in the currently selected preset control function will be selected from the determined pose difference and speed difference according to the selected preset control function. 
     In one embodiment, if the preset control function of the sole is implemented based on the PD control algorithm, the difference parameters involved in the preset control function include the pose difference and the speed difference, and the preset control function can be expressed as:
 
 a   d   Foot ( k )= a   ref   Foot ( k )+ K   pF   *r   Δ   Foot ( k )+ K   dF   *v   Δ   Foot ( k ).
 
     If the preset control function of the sole is implemented based on the PID control algorithm, the difference parameters involved in the preset control function include the pose difference and the speed difference, and the preset control function can be expressed as: 
     
       
         
           
             
               
                 
                   a 
                   d 
                   Foot 
                 
                 ⁡ 
                 
                   ( 
                   k 
                   ) 
                 
               
               = 
               
                 
                   
                     a 
                     
                       r 
                       ⁢ 
                       e 
                       ⁢ 
                       f 
                     
                     
                       F 
                       ⁢ 
                       o 
                       ⁢ 
                       o 
                       ⁢ 
                       t 
                     
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 + 
                 
                   
                     K 
                     
                       p 
                       ⁢ 
                       F 
                     
                   
                   * 
                   
                     
                       r 
                       Δ 
                       
                         F 
                         ⁢ 
                         o 
                         ⁢ 
                         o 
                         ⁢ 
                         t 
                       
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
                 + 
                 
                   
                     K 
                     iF 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         
                             
                         
                         
                           j 
                           = 
                           0 
                         
                       
                       k 
                     
                     ⁢ 
                     
                       
                         r 
                         Δ 
                         
                           F 
                           ⁢ 
                           o 
                           ⁢ 
                           o 
                           ⁢ 
                           t 
                         
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
                 + 
                 
                   
                     K 
                     
                       d 
                       ⁢ 
                       F 
                     
                   
                   * 
                   
                     
                       v 
                       Δ 
                       Foot 
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
               
             
             . 
           
         
       
     
     If the preset control function of the sole is implemented based on the PI control algorithm, the difference parameters involved in the preset control function include the pose difference, and the preset control function can be expressed as: 
     
       
         
           
             
               
                 
                   a 
                   d 
                   Foot 
                 
                 ⁡ 
                 
                   ( 
                   k 
                   ) 
                 
               
               = 
               
                 
                   
                     a 
                     ref 
                     Foot 
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 + 
                 
                   
                     K 
                     
                       p 
                       ⁢ 
                       F 
                     
                   
                   * 
                   
                     
                       r 
                       Δ 
                       Foot 
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
                 + 
                 
                   
                     K 
                     iF 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         0 
                       
                       k 
                     
                     ⁢ 
                     
                       
                         r 
                         Δ 
                         Foot 
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
               
             
             ; 
           
         
       
     
     If the preset control function of the sole is implemented based on the P control algorithm, the difference parameters involved in the preset control function include the pose difference, and the preset control function can be expressed as:
 
 a   d   Foot ( k )= a   ref   Foot ( k )+ K   pf   *r   Δ   Foot ( k );
 
     where, a d   Foot (k) represents the expected acceleration of the sole at the moment k, a ref   Foot (k) represents the reference acceleration of the sole at the moment k, r Δ   Foot (k) represents the pose difference of the sole at the moment k, v Δ   Foot (k) represents the speed difference of the sole at the moment k, K pF  is a control coefficient of the sole in proportional control, K iF  is a control coefficient of the sole in integral control, and K dF  is a control coefficient of the sole in differential control. 
     In another embodiment, if the preset control function of the centroid is implemented based on the PD control algorithm, the difference parameters involved in the preset control function include the pose difference and the speed difference, and the preset control function can be expressed as:
 
 a   d   COM ( k )= a   ref   COM ( k )+ K   pC   *r   Δ   COM ( k )+ K   dC   *v   Δ   COM ( k ).
 
     If the preset control function of the centroid is implemented based on the PID control algorithm, the difference parameters involved in the preset control function include the pose difference and the speed difference, and the preset control function can be expressed as: 
     
       
         
           
             
               
                 
                   a 
                   d 
                   COM 
                 
                 ⁡ 
                 
                   ( 
                   k 
                   ) 
                 
               
               = 
               
                 
                   
                     a 
                     
                       r 
                       ⁢ 
                       e 
                       ⁢ 
                       f 
                     
                     
                       C 
                       ⁢ 
                       O 
                       ⁢ 
                       M 
                     
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 + 
                 
                   
                     K 
                     pC 
                   
                   * 
                   
                     
                       r 
                       Δ 
                       
                         C 
                         ⁢ 
                         O 
                         ⁢ 
                         M 
                       
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
                 + 
                 
                   
                     K 
                     iC 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         0 
                       
                       k 
                     
                     ⁢ 
                     
                       
                         r 
                         Δ 
                         
                           C 
                           ⁢ 
                           O 
                           ⁢ 
                           M 
                         
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
                 + 
                 
                   
                     K 
                     dC 
                   
                   * 
                   
                     
                       v 
                       Δ 
                       
                         C 
                         ⁢ 
                         O 
                         ⁢ 
                         M 
                       
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
               
             
             . 
           
         
       
     
     If the preset control function of the centroid is implemented based on the PI control algorithm, the difference parameters involved in the preset control function include the pose difference, and the preset control function can be expressed as: 
     
       
         
           
             
               
                 a 
                 d 
                 
                   C 
                   ⁢ 
                   O 
                   ⁢ 
                   M 
                 
               
               ⁡ 
               
                 ( 
                 k 
                 ) 
               
             
             = 
             
               
                 
                   a 
                   
                     r 
                     ⁢ 
                     e 
                     ⁢ 
                     f 
                   
                   
                     C 
                     ⁢ 
                     O 
                     ⁢ 
                     M 
                   
                 
                 ⁡ 
                 
                   ( 
                   k 
                   ) 
                 
               
               + 
               
                 
                   K 
                   pC 
                 
                 * 
                 
                   
                     r 
                     Δ 
                     
                       C 
                       ⁢ 
                       O 
                       ⁢ 
                       M 
                     
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
               
               + 
               
                 
                   
                     K 
                     iC 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         0 
                       
                       k 
                     
                     ⁢ 
                     
                       
                         r 
                         Δ 
                         
                           C 
                           ⁢ 
                           O 
                           ⁢ 
                           M 
                         
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
                 . 
               
             
           
         
       
     
     If the preset control function of the centroid is implemented based on the P control algorithm, the difference parameters involved in the preset control function include the pose difference, and the preset control function can be expressed as:
 
 a   d   COM ( k )= a   ref   COM ( k )+ K   pC   *r   Δ   COM ( k );
 
     where, a d   COM (k) represents the expected acceleration of the centroid at the moment k, a ref   COM (k) represents the reference acceleration of the centroid at the moment k, r Δ   COM (k) represents the pose difference of the centroid at the moment k, v Δ   COM (k) represents the speed difference of the centroid at the moment k, K pC  is a control coefficient of the centroid in proportional control, K iC  is a control coefficient of the centroid in integral control, and K dC  is a control coefficient of the centroid in differential control. 
     S 223 : substituting the reference acceleration of the balance control part and the selected difference parameter into the corresponding preset control function to obtain the expected acceleration of the balance control part. 
     In this embodiment, after the humanoid robot  10  determines the difference parameter involved in the matching of the preset control function that corresponds to the centroid or the sole at the current moment, the reference acceleration of the corresponding balance control part and the selected difference parameter will be substituted into the corresponding preset control function for parameter calculation to obtain the expected acceleration of the balance control part. The preset control function can be designed with reference to the above-mentioned two embodiments. 
       FIG.  4    is a flow chart of example two of sub-steps in step S 220  of the method of  FIG.  2   . As shown in  FIG.  4   , in this embodiment, the expected balance trajectory of the humanoid robot  10  further includes a preset balance trajectory of the waist, where the preset balance trajectory of the waist includes a reference angular acceleration, a reference posture angle, and a reference angular velocity of the waist, and the obtaining the expected angular acceleration of the waist corresponding to the current expected balance trajectory, based on the motion data of the waist of the humanoid robot  10  in step S 220  may include sub-steps S 225 , S 226 , and S 227 . 
     S 225 : subtracting the reference posture angle and the motion posture angle of the waist and subtracting the reference angular velocity and the motion angular velocity of the waist to obtain a corresponding posture angle difference and angular velocity difference. 
     In this embodiment, for the balance control part of the waist, the humanoid robot  10  will calculate the difference between the reference posture angle of the balance control part (i.e., the waist) at the current moment and the obtained motion posture angle, and the difference between the reference angular velocity of the balance control part at the current moment and the obtained motion angular velocity. That is, the reference posture angle of the balance control part at the current moment is subtracted from the obtained motion posture angle to obtain the corresponding posture angle difference, and the reference angular velocity of the balance control part at the current time is subtracted from the obtained motion angular velocity to obtain the corresponding angular velocity difference. 
     At this time, for the waist, r Δ   Waist (k) can be used to represent the posture angle difference of the waist at the moment k, and v Δ   Waist (k) can be used to represent the angular velocity difference of the waist at the moment k. In which, the formula for calculating the posture angle difference and the angular velocity difference of the waist can be respectively expressed through equations of:
 
 r   Δ   Waist ( k )= r   ref   Waist ( k )− r   Waist ( k ); and
 
 v   Δ   Waist ( k )= v   vef   Waist ( k )− v   Waist ( k );
 
     where, r ref   Waist (k) represents the reference posture angle of the waist at the moment k, r Waist (k) represents the motion posture angle of the waist with respect to the world coordinate system at the moment k, v ref   Waist (k) represents the reference angular velocity of the waist at the moment k, and v Waist (k) represents the motion angular velocity of the waist with respect to the world coordinate system at the moment k. 
     S 226 : selecting a difference angle parameter matching a preset control function corresponding to the waist from the posture angle difference and the angular velocity difference. 
     In this embodiment, the preset control function corresponding to the waist may also adopt any one of PID control algorithm, PI control algorithm, PD control algorithm, and P control algorithm. After the humanoid robot  10  determines the posture angle difference and the angular velocity difference of the waist at the current moment, the difference angle parameter involved in the preset control function will be selected from the determined posture angle difference and the angular velocity difference according to the currently selected preset control function. 
     In one embodiment, if the preset control function of the waist is implemented based on the PD control algorithm, the difference parameters involved in the preset control function include the posture angle difference and the angular velocity difference, and the preset control function can be expressed as:
 
 a   d   Waist ( k )= a   ref   Waist ( k )+ K   pF   *r   Δ   Waist ( k )+ K   dF   *v   Δ   Waist ( k ).
 
     If the preset control function of the waist is implemented based on the PID control algorithm, the difference parameters involved in the preset control function include the posture angle difference and the angular velocity difference, and the preset control function can be expressed as: 
     
       
         
           
             
               
                 
                   a 
                   d 
                   Waist 
                 
                 ⁡ 
                 
                   ( 
                   k 
                   ) 
                 
               
               = 
               
                 
                   
                     a 
                     
                       r 
                       ⁢ 
                       e 
                       ⁢ 
                       f 
                     
                     Waist 
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 + 
                 
                   
                     K 
                     
                       p 
                       ⁢ 
                       W 
                     
                   
                   * 
                   
                     
                       r 
                       Δ 
                       Waist 
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
                 + 
                 
                   
                     K 
                     iW 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         0 
                       
                       k 
                     
                     ⁢ 
                     
                       
                         r 
                         Δ 
                         Waist 
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
                 + 
                 
                   
                     K 
                     dW 
                   
                   * 
                   
                     
                       v 
                       Δ 
                       Waist 
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
               
             
             . 
           
         
       
     
     If the preset control function of the waist is implemented based on the PI control algorithm, the difference parameters involved in the preset control function include the posture angle difference, and the preset control function can be expressed as: 
     
       
         
           
             
               
                 
                   a 
                   d 
                   Waist 
                 
                 ⁡ 
                 
                   ( 
                   k 
                   ) 
                 
               
               = 
               
                 
                   
                     a 
                     
                       r 
                       ⁢ 
                       e 
                       ⁢ 
                       f 
                     
                     
                       W 
                       ⁢ 
                       aist 
                     
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 + 
                 
                   
                     K 
                     
                       p 
                       ⁢ 
                       W 
                     
                   
                   * 
                   
                     
                       r 
                       Δ 
                       
                         W 
                         ⁢ 
                         a 
                         ⁢ 
                         i 
                         ⁢ 
                         s 
                         ⁢ 
                         t 
                       
                     
                     ⁡ 
                     
                       ( 
                       k 
                       ) 
                     
                   
                 
                 + 
                 
                   
                     K 
                     
                       i 
                       ⁢ 
                       W 
                     
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         0 
                       
                       k 
                     
                     ⁢ 
                     
                       
                         r 
                         Δ 
                         
                           W 
                           ⁢ 
                           a 
                           ⁢ 
                           i 
                           ⁢ 
                           s 
                           ⁢ 
                           t 
                         
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                 
               
             
             . 
           
         
       
     
     If the preset control function of the waist is implemented based on the P control algorithm, the difference parameters involved in the preset control function include the posture angle difference, and the preset control function can be expressed as:
 
 a   d   Waist ( k )= a   ref   Waist ( k )+ K   pF   *r   Δ   Waist ( k )
 
     where, a d   Waist (k) represents the expected angular acceleration of the waist at the moment k, a ref   Waist (k) represents the reference angular acceleration of the waist at the moment k, a Δ   Waist (k) represents the posture angle difference of the waist at the moment k, v Δ   Waist (k) represents the angular velocity difference of the waist at the moment k, K pW  is a control coefficient of the waist in proportional control, K iW  is a control coefficient of the waist in integral control, and K dW  is a control coefficient of the waist in differential control. 
     S 227 : substituting the reference angular acceleration of the waist and the selected difference angle parameter into the corresponding preset control function to obtain the expected angular acceleration of the waist. 
     In this embodiment, after the humanoid robot  10  determines the difference angle parameter involved in the matching of the preset control function that corresponds to the waist at the current moment, the reference angular acceleration of the corresponding balance control part and the selected difference angle parameter will be substituted into the corresponding preset control function for parameter calculation to obtain the expected angular acceleration of the balance control part. The preset control function can be designed with reference to the embodiment about the waist. 
     S 230 : calculating an expected angular acceleration of each joint meeting a control requirement of the sole, a control requirement of the centroid, and a control requirement of the waist while the humanoid robot corresponds to the current expected balance trajectory, based on the angular velocity of the joint, the expected angular acceleration of the waist, the expected acceleration of the sole, and the expected acceleration of the centroid. 
     As shown in  FIG.  2   , in this embodiment, after the humanoid robot  10  determines the current angular velocity of each joint, the expected angular accelerations of the waist, and the expected accelerations of the sole and the centroid, from the view of device control which affects the of the sole control effect, the centroid control effect, and the waist control effect at the same time, the motion state of each joint of the humanoid robot  10  is controlled so as to meet the needs of the sole, the centroid, and the waist for balance at the same time through the adjusted state of the joint, thereby avoiding the control interferences between the sole control, the centroid control, and the waist control during the balance control to reduce the difficulty of balance control. The following describes an example which introduces the concepts of null space and pseudo-inverse matrix to obtain the expected angular acceleration of each joint that corresponds to the current expected balance trajectory in detail. In which, the control requirement of the sole can be ensuring the sole of the humanoid robot  10  not leaving the ground, the control requirement of the centroid can be ensuring the humanoid robot  10  not turning over, and the control requirement of the waist control can be ensuring the humanoid robot  10  really recovering to the balance state. 
       FIG.  5    is a flow chart of an example of sub-steps in step S 230  of the method of  FIG.  2   . As shown in  FIG.  5   , step S 230  may include sub-steps S 231 , S 232 , and S 233 . 
     S 231 : calculating a first null space matrix for the sole, based on the angular velocity of each joint and the motion speed of the sole. 
     In this embodiment, the first null space matrix is for representing the condition of the null space of the mapping relationship between the motion speed of the sole and the angular velocity of each joint. The humanoid robot  10  may determine the mapping relationship between the current motion speed of the sole and the angular velocity of each joint, and then determine the corresponding first null space matrix based on the mapping relationship. 
       FIG.  6    is a flow chart of an example of sub-steps in step S 231  of the method of  FIG.  5   . As shown in  FIG.  6   , step S 231  may include sub-steps S 2311 , S 2312 , and S 2313 . 
     S 2311 : calculating a first relationship mapping matrix between the motion speed of the sole and the angular velocity of each joint. 
     S 2312 : perform a matrix pseudo-inverse operation on the first relationship mapping matrix to obtain a corresponding first pseudo-inverse matrix. 
     S 2313 : performing a matrix subtraction operation on an identity matrix and a matrix obtained by multiplying the first relationship mapping matrix and the first pseudo-inverse matrix to obtain the corresponding first null space matrix. 
     In this embodiment, the mapping relationship between the motion speed of the sole and the angular velocity of each joint can be expressed through an equation of:
 
 v   Foot   =J   Foot {dot over ( q )};
 
     where, v Foot  is a matrix of the motion speed of the sole in the world coordinate system, {dot over (q)} is a matrix of the angular velocity of each joint, and J Foot  represents the first relationship mapping matrix. The first relationship mapping matrix is a Jacobian matrix. 
     The formula for calculating the first pseudo-inverse matrix can be expressed through an equation of:
 
( J   Foot ) + =( J   Foot ) T ( J   Foot ( J   Foot ) T ) −1 ;
 
     where, J Foot  represents the first relationship mapping matrix, and (J Foot ) +  represents the first pseudo-inverse matrix. 
     The formula for calculating the first null space matrix can be expressed through an equation of:
 
 N   1   =I −( J   Foot ) +   J   Foot ;
 
     where, N 1  represents the first null space matrix, I is an identity matrix, J Foot  represents the first relationship mapping matrix, and (J Foot ) +  represents the first pseudo-inverse matrix. 
     S 232 : calculating a second null space matrix for the sole and the centroid, based on the angular velocity of each joint, the first null space matrix and the motion speed of the centroid. 
     In this embodiment, the second null space matrix is for representing the condition of the null space of the mapping relationship between the motion speed of the centroid and the angular velocity of each joint which affects the control effect of sole in the null space corresponding to the first null space matrix. The humanoid robot  10  may determine the mapping relationship between the current motion speed of the centroid and the angular velocity of each joint, and then determine the corresponding second null space matrix based on the mapping relationship and the first null space matrix. 
       FIG.  7    is a flow chart of an example of sub-steps in step S 232  of the method of  FIG.  5   . As shown in  FIG.  7   , step S 231  may include sub-steps S 2321 , S 2322 , S 2323 , and S 2324 . 
     S 2321 : calculating a second relationship mapping matrix between the motion speed of the centroid and the angular velocity of each joint. 
     S 2322 : performing a matrix multiplication on the second relationship mapping matrix and the first null space matrix to obtain a corresponding first reference matrix. 
     S 2323 : performing a matrix pseudo-inverse operation on the first reference matrix to obtain a corresponding second pseudo-inverse matrix. 
     S 2324 : performing a matrix subtraction on an identity matrix and a matrix obtained by multiplying the first reference matrix and the second pseudo-inverse matrix to obtain the corresponding second null space matrix. 
     In this embodiment, the mapping relationship between the motion speed of the centroid and the angular velocity of each joint can be expressed through an equation of:
 
 v   COM   =J   COM   {dot over (q)};  
 
     where, v COM  is a matrix of the motion speed of the centroid in the world coordinate system, {dot over (q)} is a matrix of the angular velocity of each joint, and J COM  represents the second relationship mapping matrix. The second relationship mapping matrix is a Jacobian matrix. 
     The formula for calculating the second pseudo-inverse matrix can be expressed through an equation of:
 
( J   COM   N   1 ) + =( J   COM   N   1 ) T ( J   COM   N   1 ( J   COM   N   1 ) T ) −1 ;
 
     where, J COM N 1  represents the first relationship mapping matrix, and (J COM N 1 ) +  represents the second pseudo-inverse matrix. 
     The formula for calculating the second null space matrix can be expressed through an equation of:
 
 N   2   =I −( J   COM   N   1 ) +   J   COM   N   1 ;
 
     where, N 2  represents the second null space matrix, I is an identity matrix, J COM N 1  represents the first relationship mapping matrix, (J COM N 1 ) +  and represents the second pseudo-inverse matrix. 
     S 233 : calculating the angular acceleration of each joint meeting the null space corresponding to the first null space matrix and the null space corresponding to the second null space matrix while the humanoid robot corresponds to the current expected balance trajectory to obtain the corresponding expected angular acceleration of the joint based on the angular velocity of the joint, the first null space matrix, the second null space matrix, the expected angular acceleration of the waist, the expected acceleration of the sole, and the expected acceleration of the centroid. 
     In this embodiment, after the humanoid robot  10  determines the first null space matrix and the second null space matrix, based on the influence relationship between the sole control, the centroid control, and the waist control, it can calculate the expected angular acceleration of each joint that effectively corresponds to the current expected balance trajectory in the null space corresponding to the first null space matrix and the null space corresponding to the second null space matrix for the purpose of eliminating the control interferences between the three controls. 
     In which, when the humanoid robot  10  alone regards the sole control as the most important first-level sub-control task in the balance control, the control relationship between the sole control and the angular acceleration of each joint can be expressed through an equation of:
 
 a   Foot   =J   Foot   {umlaut over (q)}+{dot over (J)}   Foot   {dot over (q)};  
 
     where, a Foot  is a matrix of the acceleration of the sole in the world coordinate system, J Foot  represents the first relationship mapping matrix, {dot over (J)} Foot  represents the derivative of the first relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, {umlaut over (q)} is a matrix of the angular acceleration of each joint. 
     At this time, when the humanoid robot  10  needs to adjust the sole control to ensure that the sole does not leave the ground, it needs to ensure that the null space corresponding to the first null space matrix meets {umlaut over (q)} in the above-mentioned equation, then the angular acceleration of each joint can be solved through an equation of:
 
 {umlaut over (q)} =( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} )+ N   1 ξ 1 .
 
     where, (J Foot ) +  represents the first pseudo-inverse matrix, a d   Foot  represents the expected acceleration of the sole, {dot over (J)} Foot  represents the derivative of the first relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, N 1  represents the first null space matrix, and ξ 1  may be any vector. 
     In which, when the humanoid robot  10  alone regards the centroid control as a secondary important second-level sub-control task in the balance control, the control relationship between the centroid control and the angular acceleration of each joint can be expressed through an equation of:
 
 a   COM   =J   COM   {umlaut over (q)}+{dot over (J)}   COM   {dot over (q)};  
 
     where, a COM  is a matrix of the acceleration of the centroid in the world coordinate system, J COM  represents the second relationship mapping matrix, {dot over (J)} COM  represents the derivative of the second relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, {umlaut over (q)} is a matrix of the angular acceleration of each joint. 
     At this time, when the humanoid robot  10  needs to adjust the centroid control to ensure that the robot does not turn over, it has to solve {umlaut over (q)} in the above-mentioned equation in the null space corresponding to the first null space matrix on the basis of ensuring that the sole control can make the sole not leaving the ground. In which, ξ 1  must be a certain vector so as to achieve the expected effects of the first-level sub-control tasks and the second-level sub-control tasks simultaneously. At this time, the value of ξ 1  can be solved through an equation of:
 
ξ 1 =( J   COM   N   1 ) + ( a   d   COM   −{dot over (J)}   COM   {dot over (q)}−J   COM ( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} ))+ N   2 ξ 2 ;
 
     where, J COM  represents the second relationship mapping matrix, (J COM   N   1 ) +  represents the second pseudo-inverse matrix, a d   COM  represents the expected acceleration of the centroid, {dot over (J)} COM  represents the derivative of the second relationship mapping matrix, N 2  represents the second null space matrix, (J Foot ) +  represents the first pseudo-inverse matrix, a d   Foot  represents the expected acceleration of the sole, {dot over (J)} Foot  represents the derivative of the first relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, N 1  represents the first null space matrix, and ξ 2  may be any vector. 
     In which, when the humanoid robot  10  alone regards the waist control as the least important third-level sub-control task in the balance control, the control relationship between the waist control and the angular acceleration of each joint can be expressed through an equation of:
 
 a   Waist   =J   Waist   {umlaut over (q)}+{dot over (J)}   Waist   {dot over (q)};  
 
     where, a d   Waist  is a matrix of the acceleration of the waist in the world coordinate system, J Waist  represents the third relationship mapping matrix for representing the mapping relationship between the motion angular velocity of the waist and the angular velocity of each joint, {dot over (J)} waist  represents the derivative of the third relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, {umlaut over (q)} is a matrix of the angular acceleration of each joint. 
     At this time, when the humanoid robot  10  needs to adjust the waist control to ensure that the robot is in a balanced state, it has to solve {umlaut over (q)} in the above-mentioned equation in the null space corresponding to the second null space matrix on the basis of ensuring that the expected effects of the first-level sub-control tasks and the second-level sub-control tasks are achieved simultaneously. In which, ξ 2  must be a certain vector. At this time, the value of ξ 2  can be solved through an equation of:
 
ξ 2 =( J   Waist   N   1   N   2 ) + [ a   d   Waist   −{dot over (J)}   Waist   {dot over (q)}−J   Waist ( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} )− J   Waist   N   1 ( J   COM   N   1 ) + ( a   d   COM   −{dot over (J)}   COM   {dot over (q)}−J   COM ( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} ))];
 
     where, J Foot  represents the first relationship mapping matrix, (J Foot ) +  represents the first pseudo-inverse matrix, a d   Foot  represents the expected acceleration of the sole, {dot over (J)} Foot  represents the derivative of the first relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, N 1  represents the first null space matrix, J COM  represents the second relationship mapping matrix, (J COM N 1 ) +  represents the second pseudo-inverse matrix, a d   COM  represents the expected acceleration of the centroid, {dot over (J)} COM  represents the derivative of the second relationship mapping matrix, N 2  represents the second null space matrix, J Waist  represents the third relationship mapping matrix, (J Waist N 1 N 2 ) +  represents the third pseudo-inverse matrix that is obtained by performing pseudo-inverse operation on the second reference matrix calculated by performing matrix multiplication on the third relation mapping matrix, the first zero-space matrix, and the second zero-space matrix, a d   Waist  represents the expected angular acceleration of the waist, and {dot over (J)} Waist  represents the derivative of the third relationship mapping matrix. 
     Therefore, to achieve a real balance control effect of the humanoid robot  10 , it must simultaneously meet the expected effects of the above-mentioned three levels of sub-control tasks, that is, simultaneously meet the needs of sole control, the centroid control, and the waist control. For this reason, it must be required that the above-mentioned ξ 1  is a specific vector and ξ 2  is also a specific vector, so as to ensure that the obtained angular acceleration {umlaut over (q)} of each joint is the expected angular acceleration of each joint that can achieve the eventual balance effect. At this time, ξ 1  can be used to indicate a first influence parameter of the humanoid robot  10  that is for eliminating a control interference of the centroid control demand to the sole control demand in the null space corresponding to the first null space matrix, ξ 2  can be used to indicate a second influence parameter of the humanoid robot  10  that is for eliminating a control interference of a waist control demand to a sole control demand and a centroid control demand in the null space corresponding to the second null space matrix. The humanoid robot  10  can calculate the above-mentioned two influencing parameters and then substitute them into the equation for calculating the angular acceleration of each joint so as to calculate the currently matched expected angular acceleration of each joint. 
       FIG.  8    is a flow chart of an example of sub-steps in step S 233  of the method of  FIG.  5   . As shown in  FIG.  8   , step S 233  may include sub-steps S 23331 , S 23332 , S 23333 , S 23334 , S 23335 , and S 23336 . 
     S 23331 : calculating a third relationship mapping matrix between the motion angular velocity of the waist and the angular velocity of each joint. 
     S 23332 : performing a matrix multiplication on the third relationship mapping matrix, the first null space matrix, and the second null space matrix to obtain a corresponding second reference matrix. 
     S 23333 : performing a matrix pseudo-inverse operation on the second reference matrix to obtain a corresponding third pseudo-inverse matrix. 
     S 23334 : calculating a second influence parameter of the humanoid robot for eliminating a control interference of a waist control demand to a sole control demand and a centroid control demand in the null space corresponding to the second null space matrix, based on the first null space matrix, the first relationship mapping matrix, the first pseudo-inverse matrix, the expected acceleration of the sole, the second pseudo-inverse matrix, the expected acceleration of the centroid, the second relationship mapping matrix, the expected angular acceleration of the waist, and the third relationship mapping matrix, the third pseudo-inverse matrix, and the angular velocity of each joint. 
     S 23335 : calculating a first influence parameter of the humanoid robot for eliminating a control interference of the centroid control demand to the sole control demand in the null space corresponding to the first null space matrix, based on the second pseudo-inverse matrix, the expected acceleration of the centroid, the second relationship mapping matrix, the first pseudo-inverse matrix, the expected acceleration of the sole, the first relationship mapping matrix, the second null space matrix, the angular velocity of each joint, and the second influence parameter of the humanoid robot in the null space corresponding to the second null space matrix. 
     S 23336 : calculating an expected angular acceleration of each joint while the humanoid robot corresponds to the current expected balance trajectory, based on the first pseudo-inverse matrix, the expected acceleration of the sole, the first relationship mapping matrix, the first null space matrix, the angular velocity of each joint, and the first influence parameter of the humanoid robot in the null space corresponding to the first null space matrix. 
     In this embodiment, the mapping relationship between the angular acceleration of the waist and the angular velocity of each joint can be expressed through an equation of:
 
 v   Waist   =J   Waist   {dot over (q)};  
 
     where, v Waist  is a matrix of the motion angular velocity of the waist in the world coordinate system, {dot over (q)} is a matrix of the angular velocity of each joint, and J Waist  represents the third relationship mapping matrix. The third relationship mapping matrix is a Jacobian matrix. 
     The formula for calculating the third pseudo-inverse matrix can be expressed as:
 
( J   Waist   N   1   N   2 ) + =( J   Waist   N   1   N   2 ) T ( J   Waist   N   1   N   2 ( J   Waist   N   1   N   2 ) T ) −1 ;
 
     where, J Waist N 1 N 2  represents the second reference matrix, and (J Waist N 1 N 2 ) +  represents the third pseudo-inverse matrix. 
     The second influence parameter of the humanoid robot  10  in the null space corresponding to the second null space matrix, the first influence parameter of the humanoid robot  10  in the null space corresponding to the first null space matrix, and the expected angular acceleration of each joint of the humanoid robot  10  are respectively calculated through an equation of:
 
ξ 2 =( J   Waist   N   1   N   2 ) + [ a   d   Waist   −{dot over (J)}   Waist   {dot over (q)}−J   Waist ( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} )− J   Waist   N   1 ( J   COM   N   1 ) + ( a   d   COM   −{dot over (J)}   COM   {dot over (q)}−J   COM ( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} ))];
 
ξ 1 =( J   COM   N   1 ) + ( a   d   COM   −{dot over (J)}   COM   {dot over (q)}−J   COM ( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} ))+ N   2 ξ 2 ; and
 
 {umlaut over (q)} =( J   Foot ) + ( a   d   Foot   −{dot over (J)}   Foot   {dot over (q)} )+ N   1 ξ 1 ;
 
     where, ξ 2  is the second influence parameter of the humanoid robot  10  in the null space corresponding to the second null space matrix, ξ 1  is the first influence parameter of the humanoid robot  10  in the null space corresponding to the first null space matrix, {umlaut over (q)} is a matrix of the expected angular acceleration of each joint, J Foot  is the first relationship mapping matrix, (J Foot ) +  is the first pseudo-inverse matrix, a d   Foot  is the expected acceleration of the sole, {dot over (J)} Foot  is the derivative of the first relationship mapping matrix, {dot over (q)} is a matrix of the angular velocity of each joint, N 1  is the first null space matrix, J COM  is the second relationship mapping matrix, (J COM N 1 ) +  is the second pseudo-inverse matrix, a d   COM  is the expected acceleration of the centroid, {dot over (J)} COM  is the derivative of the second relationship mapping matrix, N 2  is the second null space matrix, J Waist  is the third relationship mapping matrix, (J Waist N 1 N 2 ) +  is the third pseudo-inverse matrix, a d   Waist  is the expected angular acceleration of the waist, and {dot over (J)} Waist  is the derivative of the third relationship mapping matrix. 
     S 240 : controlling each joint of the humanoid robot to move at the obtained expected angular acceleration of the joint based on the angular displacement of the joint, so that the humanoid robot maintains balance according to the current expected balance trajectory. 
     In this embodiment, after the humanoid robot  10  determines the expected angular acceleration of each joint that can simultaneously meet the needs of the sole control, the centroid control, and the waist control, it can integrate the expected angular acceleration of each joint to obtain the corresponding content of the expected angular velocity of each joint, then integrate the matched expected angular velocity of the joint on the basis of the obtained angular displacement of the joint to obtain the expected angular displacement of the joint that can directly control the joint through instructions. At this time, the humanoid robot  10  will extract the expected angular displacement corresponding to each real joint from the calculated expected angular displacement of the joint (including the expected angular displacement corresponding to each real joint and the expected angular displacement corresponding to each virtual joint), and send the extracted expected angular displacement of each real joint to the driving motor of the corresponding real joint, so that the humanoid robot  10  controls each corresponding real joint to move according to the expected angular displacement of the real joint so as to ensure the humanoid robot  10  realizes the eventual balance effect by adjusting the motion state of each real joint that simultaneously affects the effect of the balance control of each part (including the sole, the centroid, and the waist), thereby avoiding the control interferences between the sole control, the centroid control, and the waist control during the balance control, and at the same time meet the control needs of the humanoid robot  10  at the sole, the centroid and the waist so as to reduce the difficulty of balance control. In which, the above-mentioned integration can adopt bilinear transformation, forward difference, backward difference, and the like. 
     In this embodiment, in order to ensure that the balance control apparatus  100  included in the humanoid robot  10  can be implemented normally, its functions are implemented by dividing the balance control apparatus  100  into functional modules. The compositions of the balance control apparatus  100  will be described below. 
       FIG.  9    is a schematic block diagram of a balance control apparatus according to an embodiment of the present disclosure. As shown in  FIG.  9   , in this embodiment, a balance control apparatus  100  for the humanoid robot  10  is provided. The balance control apparatus  100  includes a motion data obtaining module  110 , a balance expectation obtaining module  120 , a joint expectation calculating module  130 , and a joint balance controlling module  140 . In other embodiments, the balance control apparatus  100  can be the humanoid robot  10  itself. 
     The motion data obtaining module  110  is configured to obtain an angular velocity and angular displacement of each joint of the humanoid robot and motion data of a sole of the humanoid robot, motion data of a centroid of the humanoid robot, and motion data of a waist of the humanoid robot. 
     The balance expectation obtaining module  120  is configured to obtain an expected acceleration of the sole corresponding to a current expected balance trajectory, an expected acceleration of the centroid corresponding to the current expected balance trajectory, and an expected angular acceleration of the waist corresponding to the current expected balance trajectory, based on the motion data of the sole, the motion data of the centroid, and the motion data of the waist, respectively. 
     The joint expectation calculating module  130  is configured to calculate an expected angular acceleration of each joint meeting a control requirement of the sole, a control requirement of the centroid, and a control requirement of the waist while the humanoid robot corresponds to the current expected balance trajectory, based on the angular velocity of the joint, the expected angular acceleration of the waist, the expected acceleration of the sole, and the expected acceleration of the centroid. 
     The joint balance controlling module  140  is configured to control each joint of the humanoid robot to move at the obtained expected angular acceleration of the joint based on the angular displacement of the joint, so that the humanoid robot maintains balance according to the current expected balance trajectory. 
     It should be noted that, the basic principles and technical effects of the balance control apparatus  100  are the same as the above-mentioned balance control method. For a brief description, for the parts not mentioned in this embodiment, please refer to the forgoing description of the balance control method. 
     In the embodiments of the present disclosure, it should be noted that the disclosed apparatus (device) and method may also be implemented in other manners. The apparatus embodiment described above is merely illustrative. For example, the flowcharts and block diagrams in the drawings show the architectures, functions, and operations possible to implement on the apparatus, methods, and computer program products according to the embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a part of a module, a program segment, or codes, where the part of the module, the program segment, or the codes contain one or more executable instructions for realizing the specified logic function. It should also be noted that, in some alternative implementations, the functions marked in the block may also occur in a different order from the order marked in the drawings. For example, two consecutive blocks can actually be executed in parallel, or they can sometimes be executed in the reverse order, which depends on the functions involved. It should also be noted that, each block in the block diagram and/or flowchart, and the combination of the blocks in the block diagram and/or flowchart, can be implemented by a dedicated hardware-based system that performs the specified functions or actions, or can be implemented through a combination of dedicated hardware and computer instructions. 
     In addition, the functional modules in the various embodiments of the present disclosure may be integrated together to form an independent part, or each module may exist alone, or two or more modules may be integrated to form an independent part. 
     The functions (e.g., the balance control method of  FIG.  2   ) can be stored in a non-transitory computer readable storage medium if it is implemented in the form of a software functional module and sold or utilized as a separate product. Based on this understanding, the technical solution of the present disclosure, either essentially or in part, contributes to the prior art, or a part of the technical solution can be embodied in the form of a software product. The software product is stored in a storage medium (e.g., the storage  11  of the humanoid robot  10  of  FIG.  1   ), which includes a number of instructions for enabling a computer device (which can be a personal computer, a server, a network device, etc.) to execute all or a part of the steps of the methods described in each of the embodiments of the present disclosure. The above-mentioned storage medium includes a variety of media such as a USB disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, and an optical disk which is capable of storing program codes. 
     In summary, in the humanoid robot and its balance control method and computer readable storage medium, by obtaining a current angular velocity and angular displacement of each joint of the humanoid robot and motion data of a sole of the humanoid robot, motion data of a centroid of the humanoid robot, and motion data of a waist of the humanoid robot first, and obtaining an expected acceleration of the sole, an expected acceleration of the centroid corresponding to a current expected balance trajectory, and an expected angular acceleration of the waist corresponding to the current expected balance trajectory, based on the obtained motion data of the sole, the motion data of the centroid, and the motion data of the waist, respectively, then calculating an expected angular acceleration of each joint meeting a control requirement of the sole, a control requirement of the centroid, and a control requirement of the waist while the humanoid robot corresponds to the current expected balance trajectory, based on the angular velocity of the joint, the expected angular acceleration of the waist, the expected acceleration of the sole, and the expected acceleration of the centroid, and then controlling each joint of the humanoid robot to move at the obtained expected angular acceleration of the joint based on the angular displacement of the joint, the balance controls at the sole, the centroid, and the waist can be realized simultaneously by adjusting the motion state of the real joints, thereby avoiding the control interferences between the sole, the centroid, and the waist and reducing the difficulty of balance control. 
     The forgoing is only the various embodiment of the present disclosure, while the scope of the present disclosure is not limited thereto. For those skilled in the art, various modifications or replacements that can be easily conceived within the technical scope of the present disclosure should be included within the scope of the present disclosure. Therefore, the scope of the present disclosure should be determined in accordance with the scope of the claims.