# Patent

## Title
Universal balancing controller for lateral stabilization of bipedal robots in dynamic unstable environments

## Abstract

A robot, such as a bipedal robot, that includes three or more rigid links such as two legs and a pelvis. The robot includes joints pivotally connecting pairs of the rigid links and an actuator associated with each of the joints. The robot includes a universal balancing controller with an output feedback control module providing control signals to selectively drive the actuators to balance the robot on a support element which may be configured to provide a dynamic, unstable environment or to provide a static, stable environment. During use, the control signals are generated in response to processing of global robot data from sensors associated with the rigid links or the joints. The control signals are generated by the output feedback control module without any need for measurements of the support element or without any measurement of a dynamic environment.

## Background
BACKGROUND
1. Field of the Description
The present invention relates, in general, to improved techniques for controlling humanoid robots and other bipedal robots, and, more particularly, to control methods and controllers for bipedal robots that provide enhanced balancing especially when the robots are placed in dynamic and, oftentimes, unstable environments.
2. Relevant Background
Robots or robotic devices, including bipedal robots (which may be humanoid robots) are widely used in manufacturing, assembly, packing and packaging, earth and space exploration, surgery, laboratory research, and entertainment. Some robots may include a series of rigid links or bodies linked together by joints, and some or all of the links may be moved or pivoted about the joints by actuators. Actuators are like the muscles of a robot as they respond to control signals, such as from a control system or controller, to convert energy into movement. The majority of robots use electric motors (DC or AC motors) as actuators to spin a wheel or gear while some actuators are provided in the form of linear actuators or other types of actuators. A hand (or foot) of a robot may be referred to as an end effector while the arm (or leg) is referred to as a manipulator, and these systems or devices of the robot may be made up of a number of rigid links or members interconnected by joints with movement at the joints controlled by actuators.
An ongoing challenge for those in the field of robotics is how to best or better control a bipedal robot. Particularly, dynamic balancing of bipedal robots is one of the most fundamental yet challenging problems in robotics research. Research has generated a large body of literature and control theories in the areas of controlling bipedal robots including postural balancing, push recovery, and walking. Several bipedal robots have been built that exploit the passive dynamic stability in the sagittal plane. However, the majority of bipedal robotics research has focused on balancing and motion generation in the sagittal plane. Further, the controllers for these bipedal robots was written or generated with the underlying assumption that the environment properties are known, which allows the environment and the bipedal robot to be modeled and then control theory to be applied to provide a useful controller.
There remains a need for a controller for bipedal robots that is useful for providing robust lateral stabilization in many types of changing or varying environments and not just in known stable environments. In other words, a universal balancing controller is desired for using in controlling bipedal robots in dynamic environments that may also be unstable. For example, humans have the ability to successfully balance in both static and dynamic environments, and it would be useful to provide a robot controller (or control methods) that enables a bipedal robot to stabilize dynamic, unstable environments such as a bipedal robot positioned on a seesaw or a bongo board.
SUMMARY
Briefly, the following description teaches a universal balancing controller for use with bipedal robots in dynamic and/or unstable environments. The balancing controller is adapted to enable bipedal robots to stabilize the robot in dynamic, unstable environments such as, but not limited to, a seesaw and a bongo board and also to stabilize in static environments such as a curved floor and a non-level flat floor.
The controller is described in a way that presents and validates the following two hypotheses (which were identified by the inventors): (1) the environment data is not essential to stabilize a bipedal robot in dynamic and unstable environments and (2) a single balancing control strategy is sufficient to stabilize a bipedal robot in static and dynamic, unstable environments. The first hypothesis is validated by deriving output feedback controllers for a planar bipedal robot (e.g., the balancing controller is an output feedback controller) that successfully stabilizes seesaw and bongo board models using only the global robot data and without any information of the dynamic environment. For example, the description provided herein shows that global pelvic position, velocity, and link angle measurements are sufficient to allow the controller to stabilize the bipedal robot in both the seesaw model and the bongo board model.
The second hypothesis is validated by deriving a novel universal balancing controller as an output feedback controller. The output feedback controller presented by the inventors successfully stabilizes a planar bipedal robot in dynamic and unstable environments such as a seesaw, a bongo board, or a curved floor and also stabilizes the same planar bipedal robot when it is positioned in a static environment such as upon a flat floor (level or non-level).
It is useful to understand that the bipedal robot dynamics in these different environments have state spaces with different dimensions. The same controller, though, can be used to stabilize these different dynamic systems, which makes the robot controller a truly universal controller for the various environments in which a bipedal robot may be placed or used (and that are discussed in detail in the following description and figures). This is achieved, in part, by designing the universal controller as an output feedback controller. Additionally, the control inputs from the controller and the outputs that are fed back to the controller are kept the same for each of the different models (dynamic and static models).
More particularly, a robot is provided that includes three or more rigid links such as a bipedal robot. The robot also includes joints pivotally connecting pairs of the rigid links and an actuator associated with each of the joints. The robot also includes a universal balancing controller that includes an output feedback control module providing control signals to selectively drive the actuators to balance the robot on a support element (e.g., a board or planar surface such as a board or a flat or sloped floor). During use of the controller, the control signals are generated in response to processing of global robot data from sensors associated with the rigid links or the joints.
In some embodiments of the robot, the rigid links include at least two leg links and a pelvis link connecting ends of the two leg links. Then, the joints include a pair of ankle joints and a pair of hip joints, and the global robot data includes link angles and global pelvis measurements. In this regard, the global pelvis measurements may include measurements of a position and a velocity of the pelvis link.
Significantly, the control signals are generated by the output feedback control module without any need for measurements of the support element. Further, the support element may be configured to provide a static environment or a dynamic environment for supporting the balancing robot (e.g., the same controller may be used to balance a robot in both a static and a dynamic, unstable environment without need for a unique controller for each likely environment in which the robot may be used). In some embodiments, the dynamic environment is configured as a bongo board or a seesaw. In practice, the control signals that are generated by the controller stabilize a board of the bongo board or a board of the seesaw via controlled movement of the robot. In some cases, the static or stable environment is provided by a flat floor or by a flat and sloped floor.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a functional block diagram of an exemplary bipedal robot balancing on a support element (e.g., placed or positioned in a dynamic and unstable environment such as on a seesaw or bongo board) with a universal balancing controller of the present description used to provide control over the bipedal robot in a variety of environments or implementations;
FIGS. 2A-2D schematically illustrate a number of robots modeled to consider robust lateral stabilization with a universal balancing controller of the present description;
FIG. 3 illustrates the bongo board dynamic model of FIG. 2B with additional detail and labeling of parameters or characteristics used in modeling of a planar bipedal robot on a bongo board;
FIG. 4 is a graph plotting analysis results for seesaw and bongo board models with static output feedback;
FIGS. 5A and 5B provide graphs that plot global board and left link-1 angle trajectories for a seesaw and a bongo board, respectively, under disturbance as being stabilized with a universal balance controller of the present description;
FIG. 6 is a semi-logarithmic plot of maximum disturbance torque on a bongo board that can be rejected by the universal balancing controller described herein;
FIGS. 7A and 7B show semi-logarithmic and logarithmic plots of the minimum and maximum values of the stabilizable wheel radii, respectively, for the different controllers with varying wheel density;
FIGS. 8A and 8B illustrate angle and torque versus time plots showing the universal controller's successful effort in stabilizing a seesaw when subjected to a disturbance;
FIGS. 9A and 9B illustrate angle versus time plots showing the universal controller's successful effort in stabilizing a robot on moving floors (with FIG. 9A having a floor tilting to 20 degrees in 2 seconds and FIG. 9B having a floor rocking with an amplitude of 20 degrees at 1 Hertz);
FIGS. 10A-10L provide graphs or plots of wheel position, angle, and actuator torque values over time during a universal controller's successful effort in stabilizing bongo boards with four different wheel radii when subjected to four different board disturbances for a period of time;
FIGS. 11A-11H provide graphs or plots of angle and torque values over time during a universal controller's successful effort in stabilizing bongo boards with different wheel radii when subjected to four different disturbances for a like amount of time; and
FIGS. 12A-12H provide graphs or plots of angle and torque values over time during the use of the universal controller to stabilize bongo boards when subjected to four different disturbances over a set time period.



DETAILED DESCRIPTION
The following teaches a controller (control method) for bipedal robots that may be considered a universal balancing controller for robust lateral stabilization of such robots in dynamic, unstable environments and also in stable environments. The description analyzes the robustness of the derived universal balancing controller to disturbances and parameter uncertainties, and the description also demonstrates the universality and superiority of the universal balancing controller to the best tuned linear quadratic regulator (LQR) and H∞ controllers. The description also presents nonlinear simulation results of the universal controller's successful stabilization of a family of bongo board, curved floor, seesaw, and tilting and rocking floor models.
Significant efforts have been made to provide controllers for bipedal robot. These controllers typically require knowledge of the environment, require environmental inputs to adequately stabilize the robot in a dynamic environment, and/or have other limiting characteristics. For example, researchers have shown that, while walking, humans may exploit the passive dynamic properties in the legs in the sagittal plane, but they need to use significant active control to stabilize their lateral motions. Others have presented control strategies for stabilizing unstable lateral motions of 3D passive dynamic walkers while others teach stepping strategies that can successfully reject lateral disturbances during bipedal walking. Some controller research has been directed toward hierarchical control strategies to reject lateral disturbances on a robot, and other research derived controllers for balancing on tightropes and slack lines. Controllers have been generated that use momentum-based control strategies that actively control the ground reaction forces on each foot to stabilize humanoid robots on non-level and rocking floors. Researchers have presented controllers that enable bipedal robots to walk on a rolling ball while others presented approximate value function-based control approaches to stabilize humanoid robots on bongo boards. Further, research has also been completed and presented that shows an adaptive policy that mixes control strategies for stabilizing humanoid robots on a seesaw.
While providing useful control, these controllers had a number of limitations that do not allow these controllers to be used in any dynamic and unstable environment to provide robust lateral stabilization of a bipedal robot. Many of the controllers discussed above did not deal with or address stabilizing a robot in unstable environments like a bipedal robot supported upon a seesaw or a bongo board. Further, some of the control research work was restricted to motion in the sagittal plane. Other controllers were useful for demonstrating successful balancing on a seesaw. However, this controller research did not include any results of stabilizing the seesaw, and it dealt with designing different and specific controllers for balancing in each of number of different dynamic environments (e.g., one controller for a seesaw environment, one controller for a bongo board, and so on).
In contrast, the present description teaches a robot controller that may be used for robust lateral stabilization of bipedal robots in dynamic and unstable environments. The robot controller may include an output feedback controller (or output feedback control module) that may be derived or created for planar bipedal robots to successfully balance and stabilize dynamic, unstable environments such as a bipedal robot on a seesaw or a bongo board. Such stabilizing may be achieved using only link angles and global pelvis measurements or “global robot data.” As far as the inventors are aware, this teaching is the first conclusive proof that bipedal robots can successfully stabilize in dynamic and unstable environments with only global robot data and without any measurement of the dynamic environment.
The following description further presents algorithms that find output feedback controllers that maximize the family of bongo board, seesaw, curved floor, and flat floor models that can be stabilized by a robot controller implementing/utilizing one of these output feedback controllers. A first-of-its-kind universal balancing controller is derived as an output feedback controller, which successfully operates to stabilize planar bipedal robots in static environments like flat floors and also in dynamic and unstable environments like seesaws and bongo boards. In this way, the controller provides a control approach in which a single controller stabilizes different dynamic systems with state spaces of different dimensions. The inventors performed and describe herein a detailed analysis of the robustness of the derived universal controller to disturbances and parameter uncertainties. Further, the description demonstrates the universal controller's universality and superiority to the best tuned LQR and H∞ controllers. The description also presents nonlinear simulation results of the universal controller's successful stabilization of a family of modeled environments (e.g., bongo board, seesaw, curved floor, tilting floor, and rocking floor models).
FIG. 1 illustrates an embodiment of a humanoid or bipedal robot or, more generally, a rigid-body dynamical system 100 that is positioned upon or balancing upon a support element 118. The support element 118 may be thought of as the “environment” of the robot 100, and it may take a variety of forms to practice the present invention. For example, the support element 118 may be a seesaw, a bongo board, a curved floor, or the like to provide a dynamic and unstable environment or may be a flat floor/surface or a sloped flat surface to provide a static environment.
To allow robust balancing on or in the environment or on the support element 118, the bipedal robot includes a universal balancing controller 130 configured according to the present description. The robot 100 may be a 2D (planar) robot or a 3D robot and includes a plurality of rigid bodies or links 110 such as may be found in a walking humanoid robot and the like, and the links 110 may be linked together with joints 112. For example, the joints 112 may include a hip joints, knee joints, and an ankle joint connecting links 110 such as the foot to the lower leg, the lower leg to the upper leg, the upper leg to the hip joints, and the hip joints to the pelvis.
The robot or system 100 is actuated and, to this end, an actuator (e.g., a driver such as an AC or DC motor, a hydraulic or pneumatic actuator that may be rotary or linear, or the like) 114 is provided for each joint 112 that is actively moved or controlled (e.g., the knee may be “locked” in some embodiments as in some of the models discussed below) such that each actuated joint is active (while the knee or other joints may concurrently be passive). In other words, an actuator 114 may be provided for each degree of freedom (DOF) of the robot/system 100. Each of the actuators 114 is selectively operated by a drive controller 116, which may in the form of a motor controller or the like that causes the actuator to apply a particular torque on or at the joint 112.
The robot or system 100 is a constrained system as it includes (or operates upon or adjacent to) a support element(s) 118. For example, a floor, which is flat or sloped, may provide the support element 118 for the floating base(s) of a walking humanoid robot 100. The foot or lower-most link 110 may be placed on an upper surface of the support element 118, and the connection/attachment/interface 119 between the foot/lower-most link 110 may be designed or modeled such that the foot/link 118 does not slip on the support element during balancing control.
The robot or system 100 further may include sensors 120 that sense locations and/or movements of the rigid links 110 and/or joints 112 and provide these inputs/sensor readings 140 to the universal balancing controller 130 to allow location and movements of the links 110 and joints 112 to be determined in real time and a near instantaneous manner to allow control signals 150 to be generated in response. The sensors 120 do not need to provide information or data regarding the environment 118, and the dynamic system outputs 140 may be thought of as global robot data and may include link angles and global pelvis measurements (e.g., measured position and velocity of the robot's pelvis link 110).
Significantly, the robot or system 100 includes a universal balancing controller 130 that functions to provide control signals (e.g., torque values) 150 to each of the drive controllers 116 to control each of the actuators 114. As discussed throughout this description, the control signals 150 are generated to allow the bipedal robot 100 to balance on the support element 118 and to stabilize the often dynamic environment/element 118. This is achieved by configuring the controller 130 as an output feedback controller with output feedback control module 136 that processes the global robot data 140 from sensors 120 to determine the control signals 150.
To this end, the controller 130 includes a processor (or CPU) 132 that manages operation of input/output (I/O) devices 133 that act to receive signals 140 from the sensors 120 and to output control signals 150 to the drive controllers 116. The processor 132 also manages memory 134 so as to execute programs, software, or executable code in the form of and/or including the output feedback control module 136. The module 136 processes dynamic systems outputs/global robot data 140 to generate torque or other output useful for generating the control signals 150 to operate actuators 114 (e.g., apply a torque at a joint 112 related to the balancing of the robot 100 on support element).
FIGS. 2A-2D schematically illustrate a number of robots that the inventors modeled to consider robust lateral stabilization with a universal balancing controller of the present description on or in four different static and dynamic (and unstable) environments. Each of FIGS. 2A-2D shows a bipedal robot 210 that was modeled as a planar four-bar linkage. The bipedal robot 210 includes ankle joints 212, 232 and lower leg links 214, 230 connected to upper leg links 218, 226 via knee joints 216, 228 (which may be fixed/stationary in modeling). The robot 210 also includes hip joints 220, 224 connecting a pelvis link 222 to the upper leg links 218, 226. In practice, actuators (not shown) may be provided for ankle joints 212, 232 and hip joints 220, 224 and, in some cases, for knee joints 216, 228. Sensors (not shown) would be provided to collect global robot data including link angles and global pelvis measurements (e.g., position and velocity of pelvis link 222).
In FIG. 2A, the bipedal robot 210 is positioned upon a dynamic, unstable environment 240 in the form of a seesaw. The environment (or support element) 240 includes a support member/floor 242 upon which a pivot member 244 is provided in the form of a triangular cross section element (e.g., with a point or zero radius contact surface). A plank or planar board 246 is balanced on top of the pivot member 244, and the robot 210 is positioned to be in contact with an upper surface 247 of the board 246. During operations, the board 246 may pivot and move as shown with arrow 248 on the contact surface of the pivot member 244. The robot 210 is positioned with one foot and its associated ankle joint 212 on one side of the pivot member 244 and one foot and its associated ankle joint 232 on the second or other side of the pivot member 244. Typically, the modeling involves assuming there is no slip between each foot link and the surface 247.
In FIG. 2B, the robot 210 is positioned upon a dynamic, unstable environment 250 in the form of a bongo board. The environment/support element 250 includes support member/floor 252 upon which a ball or cylinder 254 is positioned. A plank or planar board 256 is placed upon the ball/cylinder 254 so as to pivot as shown with arrow 258. The robot 210 has one foot and associated ankle joint 212, 232 placed upon the upper surface 257 of the board 256 on either side of a pivot point or contact interface between the ball/cylinder 254 and the lower surface of the board 256.
In FIG. 2C, the robot 210 is positioned upon a dynamic environment 260 in the form of a static curved floor 262 (e.g., the shown semi-cylinder does not move). A plank or planar board 266 is placed upon the curved floor 262 so as to pivot as shown with arrow 268. The robot 210 has one foot and associated ankle joint 212, 232 placed upon the upper surface 267 of the board 266 on either side of a pivot point or contact interface between the curved floor 262 and the lower surface of the board 266. In FIG. 2D, the robot 210 is positioned upon a static environment 270 in the form of a sloped floor 272 with an upper, sloped surface 278, and the environment 270 is static as the support surface 272 does not move or pivot as do the environments 240, 250, 260.
At this point, it may be useful to provide background and explanation of static output feedback control prior to turning to discussion of robot and dynamic environment models (e.g., to discussion of the universal balancing controller of the present description that may be used to stabilize the robots 210 in the differing environments 240, 250, 260, and 270 of FIGS. 2A-2D). The universal balancing controller presented herein can be formulated as a static output feedback controller, and the following is a brief discussion of static output feedback control design.
Output feedback stabilization problems are often formulated as optimization problems with bilinear matrix inequalities (HMI). Since these problems are computationally hard to solve, they are transformed into problems with linear matrix inequalities (LMI), which are considered by many as easier to solve. However, the state-of-the-art LMI solvers often perform unreliably and can fail to find solutions even for low-dimensional systems. In fact, the inventors themselves had several unsuccessful attempts at designing/using output feedback controllers using several LMI formulations. This led the inventors to use of a convergent iterative algorithm, which worked reliably even for high-dimensional systems. One reason for this reliability is that instead of solving LMIs the convergent iterative algorithm may be chosen to reduce the necessary and sufficient conditions for static output feedback stabilizability to a set of Lyapunov equations and solves them iteratively to find static output feedback controllers. The following describes an example of such a convergent iterative algorithm.
Consider a continuous time-invariant system:

{dot over (x)}=Ax+Bu 

y=Cx  Eq. (1)

where xεn×1 is the state vector, uεm×1 is the control input vector and, yεp×1 is the output vector with p<n and rank (C)=p. Moreover, the expected value E[x(0)x(0)T]=X>0 where X is a positive definite matrix. The goal with static output feedback control is to find a time-invariant output feedback gain matrix Fεm×p such that u=−Fy stabilizes the system in Eq. 1.

For a given output feedback gain matrix, F εm×p, its resulting state feedback gain matrix is given by K=FC εm×n. Alternatively, given a state feedback gain matrix K εm×p that stabilizes the system in Eq. 1, one can derive an output feedback controller as:

F=KC†  Eq. (2)

where C†εn×p is the Moore-Penrose psuedoinverse of the output matrix Cεp×n. In order for the output feedback gain matrix in Eq. 2 to stabilize the system in Eq. 1, A-BFC must be stable. It is important to note that all stabilizing state feedback gains K do not result in stabilizing output feedback gains F given by Eq. 2.

Given below is an analysis of the closed-loop matrix A−BFC. The singular value decomposition of the output matrix C gives C=USVT, where Uεp×p, Vεn×n are unitary matrices such that UTU=UUT=Ip and VTV=VVT=In, and Sεp×n is a rectangular diagonal matrix containing the singular values of C. Here Ip, In are p×p and n×n identity matrices, respectively. Moreover, V=[V1 V2], V1εn×p(n−p) and V2εn×(n−p). Using this, we get:




  
    
      
        
          
            
              
                A
                -
                
                  B
                  ⁢
                  
                    
                  
                  ⁢
                  F
                  ⁢
                  
                    
                  
                  ⁢
                  C
                
              
              =
              
              ⁢
              
                A
                -
                
                  B
                  ⁢
                  
                    
                  
                  ⁢
                  K
                  ⁢
                  
                    
                  
                  ⁢
                  
                    C
                    †
                  
                  ⁢
                  C
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                A
                =
                
                  B
                  ⁢
                  
                    
                  
                  ⁢
                  K
                  ⁢
                  
                    
                  
                  ⁢
                  V
                  ⁢
                  
                    
                  
                  ⁢
                  
                    S
                    †
                  
                  ⁢
                  
                    U
                    T
                  
                  ⁢
                  U
                  ⁢
                  
                    
                  
                  ⁢
                  S
                  ⁢
                  
                    
                  
                  ⁢
                  
                    V
                    T
                  
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  V
                  ⁡
                  
                    (
                    
                      
                        
                          V
                          T
                        
                        ⁢
                        A
                        ⁢
                        
                          
                        
                        ⁢
                        V
                      
                      -
                      
                        
                          V
                          T
                        
                        ⁢
                        B
                        ⁢
                        
                          
                        
                        ⁢
                        K
                        ⁢
                        
                          
                        
                        ⁢
                        V
                        ⁢
                        
                          
                        
                        ⁢
                        
                          S
                          †
                        
                        ⁢
                        S
                      
                    
                    )
                  
                
                ⁢
                
                  V
                  T
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  V
                  ⁡
                  
                    (
                    
                      
                        A
                        ^
                      
                      -
                      
                        
                          
                            B
                            ^
                          
                          ⁡
                          
                            [
                            
                              
                                
                                  
                                    
                                      K
                                      ^
                                    
                                    1
                                  
                                
                                
                                  
                                    
                                      K
                                      ^
                                    
                                    2
                                  
                                
                              
                            
                            ]
                          
                        
                        ⁡
                        
                          [
                          
                            
                              
                                
                                  I
                                  p
                                
                              
                              
                                0
                              
                            
                            
                              
                                0
                              
                              
                                0
                              
                            
                          
                          ]
                        
                      
                    
                    )
                  
                
                ⁢
                
                  V
                  T
                
              
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          3
          )
        
      
    
  




where, Â=VTAV, {circumflex over (B)}=VTB, {circumflex over (K)}1=KV1, {circumflex over (K)}2=KV2, and Ipεp×p is the identity matrix. From Eq. 3, one can observe that {circumflex over (K)}2 will be lost, and, in order to avoid this information loss, one needs to impose the constraint {circumflex over (K)}2=0, i.e., KV2, =0εm×(n−p).

Therefore, the static output feedback stabilization problem for the system in Eq. 1 can be formulated as the following constrained optimization problem of finding a state feedback gain K:

minimize E[∫0∞(xTQx+uTRu)dt], 

subject to KV2=0,

Q≧0, R>0,  Eq. (4)

where, u=−Kx, and Qεm×n and Rεm×m are positive-semidefinite and positive-definite matrices, respectively. Theorem 1 below presents the conditions satisfying which the stabilizing state feedback gain K forms the optimal solution to Eq. 4 and will result in a stabilizing output feedback gain F given by Eq. 2.

Theorem 1. Suppose the system in Eq. 1 is static output feedback stabilizable and detectable. There exists a static stabilizing output feedback gain F=KC†, if there exists a static stabilizing state feedback gain K that satisfies:

(A−BK)Y+Y(A−BK)T+X=0,  Eq. (5)

(A−BK)TP+P(A−BK)+KTRK+Q=0,  Eq. (6)

K−R−1BTP[I−V2(V2TY−1V2)−1V2TY−1]=0  Eq. (7)

where Yεn×n and Pεn×n are symmetric, positive-definite matrices, i.e., Y=YT>0, P=PT>0.

The following Algorithm 1 presents a useful iterative convergent algorithm (e.g., a known technique for providing an output feedback controller used by the inventors for the particular application described herein that can stabilize a flat board and also a wide range of bongo boards and other dynamic, unstable environments), which uses Eq. 5-7 to find the optimal state feedback gain K that solves the constrained optimization problem in Eq. 4. The algorithm solves the algebraic Riccati equation in Eq. 8 to get the initial stabilizing state feedback gain K0 (Step 3) that stabilizes the system in Eq. 1. At every iteration, the algorithm solves Lyapunov equations in Eq. 5 and 6 and uses Eq. 7 to update the state feedback gain such that Ki+1 in Eq. 9 stabilizes the system in Eq. 1 and Ki+1V2→0 as i→∞. The algorithm iterates until ∥Ki+1V2∥>ε (Step 5), and the norm can be either L2-norm or Frobenius norm. Intuitively, at each iteration i, Algorithm 1 finds a state feedback gain Ki that stabilizes the system in Eq. 1, and, as i→∞, it asymptotically tends to impose the constraint of KiV2=0 so that the corresponding output feedback gain Fi from Eq. 2 stabilizes the system in Eq. 1.










Algorithm 1: Convergent Algorithm, for Output Feedback Control Design















Input : System {A, B, C}


   Matrices Q, R, X


output : Output Feedback Control Gain F


function: F = Output Feedback (A, B, C, Q, R, X)


begin









Do singular value decomposition of C and obtain V2



[U, S, V]= svd(C)



V2 = V(:,p + 1 : n)



Solve algebraic Riccati equation and obtain the initial gain



ATN = NA − NBR−1BTN + Q = 0










KO = BTN
Eq. (8)



where Q ≧ 0, R > 0



i = 0



while ||KiV2|| ≧ ∈ do









Solve Lyapunov equations in Eq. 5 and 6 to get Yi and Pi



(A - BKi)Yi + Yi(A − BKi)T + X = 0



(A − BKi)T Pi + Pi(A − BKi) + KiT RKi + Q = 0



Get the gain increment from Eq. 7



 K′i = R−1BTP[1 − V2 (V2TY−1V2)−1V2TY−1]



 Δ Ki = K′i + Ki



 Update the gain










 Ki+1 = Ki + βi Δ Ki
Eq. (9)









 where βi > 0 is chosen such that A − BKi+1 is asymptotically



 stable



 i = i + 1









end



Get the output feedback gain F = KiC† (Eq. 2)







end









For all results presented in this description, in Step 5 of Algorithm 1, the Frobenius norm is used, and ε is chosen to be 10−5. The bounds on βi that guarantee both stability of the closed loop system and the convergence of Algorithm 1 along with proof of its convergence can be found in readily available literature. However, in the inventors' implementation, the parameter βi in Step 8 starts with a value of 0.1 for each iteration and is reduced by factors of 10 if the resulting closed-loop system is unstable. This is computationally cheap and allows Algorithm 1 to converge faster.
It is important to note that Algorithm 1 requires the number of outputs to be fewer than the number of states, i.e., p<n, and the output matrix Cεp×n must be of full row rank, i.e., rank(C)=p. Moreover, for all results presented herein, the matrices X, R are chosen to be identity matrices, i.e., X=In and R=Im. Therefore, for all the described results, the only free, tunable parameter in Algorithm 1 is the state gain matrix Qεn×n.
In this regard and significant to the present invention, the discussion of the universal balancing controller provided below presents an algorithm to automatically tune the Q matrix for ouput feedback control design. However, prior to turning to the universal controller, the following paragraphs describe a planar bipedal robot model utilized by the inventors in generating the controller. This discussion also teaches a derivation of equations of motion for this robot model while balancing in different dynamic and unstable environments such as when placed on or supported by a bongo board or a seesaw.
With regard to use of a planar bipedal robot, the inventors' work described herein focuses, at least in part, on lateral balancing tasks. Hence, the planar bipedal robot model is limited to the coronal plane of a bipedal robot. The planar bipedal robot is modeled as a four-bar linkage with four actuators corresponding to ankle and hip torques. This parallel mechanism (e.g., see FIGS. 2A-2D) has three constraints (two position constraints and one angle) constraint at the pelvis) and, hence, has only a single degree of freedom (DOF).
With regard to balancing a planar bipedal robot on a bongo board, the bongo board is modeled as a board on top of a rigid cylindrical wheel, and it has 2 DOF. The planar bipedal robot, which is modeled as a four-bar linkage, is assumed to be rigidly attached to the upper surface of the board such that the feet cannot slide or lose contact. In total, the model of the planar bipedal robot on the bongo board has 3 DOF. The model also assumes that there is no slip either between the wheel and the board or between the wheel and the floor. Moreover, the event of the board (e.g., its opposite ends) hitting the floor is ignored.
FIG. 3 illustrates a bongo board dynamic model 300 and includes components shown in FIG. 2B (with like numbering) along with additional labeling of features and characteristics of the model 300 to clarify the description of modeling techniques. FIG. 3 shows the configurations of the robot 210 on the bongo board 256, and the configuration vector is given by q=[αw, αb, θ1iθ1rθ2lθ2r]Tε6×1, where αw is the configuration of the wheel/cylinder, αb is the configuration of the board, θ1l, θ1r are the link-1 configurations of the left and right legs, respectively, and θ2l, θ2r are the link-2 configurations of the left and right legs, respectively. The equations of motion are derived using Euler-Lagrange equations and can be written in matrix form as follows:

M(q){umlaut over (q)}+C(q,{dot over (q)}){dot over (q)}+G(q)=sTτ+ψ(q)Tλ  Eq. (10)

where M(q)ε6×6 is the mass/inertia matrix, C(q,{dot over (q)})ε6×6 is the matrix of Coriolis and centrifugal forces, G(q)ε6×1 is the vector of gravitational forces, s=[04×2I4]ε4×6 is the input coupling matrix, I4ε4×4 is the identity matrix, τε4×1 is the vector of actuator inputs, ψ(q)ε3×6 is the constraint matrix, and λε3×1 is the vector of Lagrange mulitpliers. The constraints given by ψ(q){dot over (q)}=0ε3×1 are differentiated to get:

ψ(q){umlaut over (q)}+{dot over (ψ)}(q,{dot over (q)}){dot over (q)}=0ε3×1  Eq. (11)

The system matrices in Eq. 10 have long symbolic expressions and are not presented in this description.

In the rest of this description, the functional dependence of the terms on q and 4 are ignored for the ease of notation. Since the mass/inertia matrix M is always a symmetric, positive-definite matrix, it is always invertible. Therefore from Eq. 10:

{umlaut over (q)}=M−1(sTτ−C{dot over (q)}−G)+M−1ψTλ  Eq. (12)

Solving for λ from Eq. 11 and Eq. 12:

λ=−(ψM−1ψT)−1({dot over (ψ)}{dot over (q)}+ψM−1(sTτ−C{dot over (q)}+G))  Eq. (13)

and combining Eq. 12 and Eq. 13, {umlaut over (q)} can be written as:





  
    
      
        
          
            
              
                
                  q
                   ̈
                
                =
                
                ⁢
                
                  
                    M
                    
                      -
                      1
                    
                  
                  ⁡
                  
                    (
                    
                      
                        
                          N
                          2
                        
                        ⁡
                        
                          (
                          
                            
                              
                                s
                                T
                              
                              ⁢
                              τ
                            
                            -
                            
                              C
                              ⁢
                              
                                q
                                .
                              
                            
                            -
                            G
                          
                          )
                        
                      
                      -
                      
                        
                          N
                          1
                        
                        ⁢
                        
                          ψ
                          .
                        
                        ⁢
                        
                          q
                          .
                        
                      
                    
                    )
                  
                
              
              ,
            
          
        
        
          
            
              =
              
              ⁢
              
                Φ
                ⁡
                
                  (
                  
                    q
                    ,
                    
                      q
                      .
                    
                    ,
                    τ
                  
                  )
                
              
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          14
          )
        
      
    
  




where N1=ψT(ψM−1ψT)−1, N2=(I6−N1ψM−1), and I6ε6×6 is the identity matrix.

The state vector of the system is given by x=[qT, {dot over (q)}T]Tε12×1, and the linear state space matrices about its unstable equilibrium can be derived from Eq. 14 as follows:




  
    
      
        
          A
          =
          
            
              [
              
                
                  
                    
                      0
                      
                        6
                        ×
                        6
                      
                    
                  
                  
                    
                      I
                      6
                    
                  
                
                
                  
                    
                      
                        ∂
                        Φ
                      
                      
                        ∂
                        q
                      
                    
                  
                  
                    
                      
                        ∂
                        Φ
                      
                      
                        ∂
                        q
                      
                    
                  
                
              
              ]
            
            ⁢
            
              ❘
              
                
                  x
                  =
                  0
                
                ,
                
                  τ
                  =
                  0
                
              
            
            ⁢
            
              ∈
              
                R
                
                  12
                  ×
                  12
                
              
            
          
        
        ,
        
          

        
        ⁢
        
          B
          =
          
            
              [
              
                
                  
                    
                      0
                      
                        6
                        ×
                        4
                      
                    
                  
                
                
                  
                    
                      
                        ∂
                        Φ
                      
                      
                        ∂
                        τ
                      
                    
                  
                
              
              ]
            
            ⁢
            
              ❘
              
                
                  x
                  =
                  0
                
                ,
                τ
                ,
                
                  τ
                  =
                  0
                
              
            
            ⁢
            
              ∈
              
                R
                
                  12
                  ×
                  4
                
              
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          15
          )
        
      
    
  




However, the pair (A, B) in Eq. 15 is not controllable because it is not in its minimal realization. Given an output matrix Cεp×12, where rank(C)=p, the state space realization {A, B, C}can be converted into its minimal realization {Am, Bm, Cm} using Kalman decomposition, which provides an orthonormal state transformation matrix Umε6×12 such that:

Am=UmAUmTε6×6,

Bm=UmBε6×4,

Cm=CUmTεp×6  Eq. (16)

Here, six out of twelve states corresponding to the three constraints have been removed to obtain the minimal system with six states shown in Eq. 16. The nominal system parameters for the bongo board model used in the examples provided herein are provided in the following Table 1.








TABLE I







Nominal System Parameters for the Bongo Board Model











Parameter
Symbol
Value
















Wheel Density
ρω
200
kg · m−3



Wheel Radius
rω
0.1
m



Wheel Mass
mω
6.28
kg



Wheel Moment of Inertia
Iω
0.035
kg · m2



Board Mass
mb
2
kg



Board Moment of Inertia
Ib
0.1067
kg · m2



Board Length
lb
0.8
m



Link-1 Mass
m1
15
kg



Link-1 Moment of Inertia
I1
1
kg · m2



Link-1 Length
l1
1
m



Link-1 Half Mass
m2
15
kg



Link-2 Half Moment of Inertia
I2
2
kg · m2



Link-2 Half Length
l2
0.1
m










With regard to a planar bipedal robot on a seesaw, the model of the planar bipedal robot on a seesaw (as shown in FIG. 2A) has only 2 DOF, one each for the planar bipedal robot and the seesaw (dynamic, unstable environment of this model). The derivation of the seesaw model is similar to that of the bongo board model, with the wheel configuration αw being omitted and the board being attached to the floor at its center via a hinge joint. The seesaw model also may be designed to assume that the robot's feet are rigidly attached to the board (upper surface of the seesaw plank or planar board) such that they do not slide or lose contact.
With regard to a planar bipedal robot in static environments, the model of the planar bipedal robot balancing on a flat, non-level floor (see FIG. 2D) can be derived as a special case of the seesaw model with a non-zero board angle αb and a board with a large mass mb and moment of inertia Ib. Similarly, the model of the planar bipedal robot on the board balancing on a curved floor can be derived as a special case of the bongo board model with a large wheel radius rw, mass mw, and moment of inertia Iw. The model of the planar bipedal robot on a flat, non-level floor has 1 DOF, while that on a curved floor (see FIG. 2C) has 2 DOF.
It is important to understand that with the inventors' universal balancing controller that environment data is not essential for achieving balance. The following discussion validates this hypothesis, i.e., that environment data is not essential to stabilize bipedal robots in dynamic and unstable environments like a seesaw and a bongo board. Particularly, it will be shown that the balancing controller does not need measurements and/or estimations of what is under the robot's feet, e.g., the wheel angle αω and the board angle αb, for a successful balancing operation as long as global robot data is available.
More specifically, Algorithm 1 is used to design a static output feedback controller that uses just three sensor outputs (three pieces of global robot data) to successfully stabilize both the seesaw and bongo board models. The first two outputs are chosen to be the global position and velocity of the pelvis, which may be calculated using the left link-1 and link-2 angles and angular velocities, respectively. The third output is chosen to be the robot's right link-1 angle. The output matrix Cε3×12 for the bongo board model can then be written as:

C=[C1C2],  Eq. (17)

where,





  
    
      
        
          C
          1
        
        =
        
          [
          
            
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                  -
                  
                    2
                    ⁢
                    
                      r
                      w
                    
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
              
                
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                1
              
              
                0
              
              
                0
              
            
          
          ]
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          18
          )
        
      
    
  
  
    
      
        
          C
          2
        
        =
        
          [
          
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
            
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                  -
                  
                    2
                    ⁢
                    
                      r
                      w
                    
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
              
                
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
          
          ]
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          19
          )
        
      
    
  




where the system parameters are provided in Table I. It is assumed that the global position and velocity of the pelvis are obtained using an inertial measurement unit at the pelvis. The output matrix for the seesaw model Cε3×10 can be similarly derived. It is important to note that though the bongo board and seesaw models have different dimensional state spaces, i.e., twelve and ten, respectively, their respective chosen outputs are the same both in number, i.e., three, and in what they represent.

FIG. 4 provides a graph 400 showing a semi-logarithmic plot of the convergence of the Frobenius norm ∥KV2∥F to zero for seesaw and bongo board models, with lines 410, 420, provided with a static output feedback control based on Algorithm 1. The plot 400 of the Frobenius norm ∥KV2∥F is generated using increasing iterations of the Algorithm 1 for both the bongo board model (line 410) and the seesaw model (line 420) with three outputs (sensor outputs from the modeled robot). It can be seen that ∥KV2∥F converges to zero for both the models indicating the existence of output feedback controllers that can stabilize both the bongo board and seesaw models with only three outputs as shown in Eq. 17-19. It is useful to note that at iteration i of Algorithm 1, the state feedback gain Ki stabilizes the system in Eq. 1. Further, as i→∞, KiV2→0 and the state feedback gain Ki takes the structure of output feedback. Hence, the final output feedback gain F given by Eq. 2 successfully stabilizes the system in Eq. 1. Although the invention has been described and illustrated with a certain degree of particularity, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the combination and arrangement of parts can be resorted to by those skilled in the art without departing from the spirit and scope of the invention, as hereinafter claimed.
FIGS. 5A and 5B show graphs 510, 520 for control of a bipedal planar robot modeled in a seesaw environment and a bongo board environment, respectively (with rw equal to 0.1 meters), showing global board angle trajectories (with lines 514 and 524) and link-1 angle trajectories (with lines 518 and 528). The graphs 510, 520 plot these trajectories when the controlled models have their nonlinear equations of motion simulated under the action of the output feedback controller (derived as shown above) while subjected to a disturbance, i.e., 70 nm on the board for 0.1 seconds. It is interesting to note from FIG. 5A that the output feedback controller successfully stabilizes the seesaw but has a steady state error, whereas the corresponding output feedback controller for the bongo board model successfully stabilizes the system to zero board angle as shown in FIG. 5B.
At this point in the description, it may be useful to turn to a more detailed and full discussion of an exemplary universal balancing controller (or more simply “universal controller) for use in stabilizing and/or balancing a bipedal robot on a variety of differing supports or environments. The prior discussion was useful for showing that the bongo board model has 3 DOF (6 minimal states), while the seesaw and curved floor models have 2 DOF (4 minimal states) and the flat floor model has 1 DOF (2 minimal states). Although these models have state spaces with different dimensions, the dimensions of their input spaces are the same, i.e., four actuators at hip and ankle joints. In order to design a single, universal controller that stabilizes the robot in these different dynamic and static environments, the universal controller should be adapted to map the same entities to the same control inputs of the robot. Since the state space for each case is of a different dimension, the universal controller cannot be a state feedback controller. The following discussion, therefore, proposes a design for a universal controller as or as including an output feedback controller, which maps the same outputs from each of these cases to the same control inputs of the robot.
The above discussion also showed that the bongo board and seesaw models are output feedback stabilizable and further that three outputs are sufficient to stabilize the system via output feedback. However, the larger the number of independent outputs the better is the control authority, and, hence, the universal controller described herein uses (in some embodiments) five outputs (from sensors on the robot) for feedback. The first two outputs are chosen to be the global position and velocity of the pelvis measured using the left link-1 and link-2 angles and angular velocities, respectively. The next three outputs are chosen to be the right link-1 angle, angular velocity, and the global foot angle. It is useful to note that the outputs do not include direct measurements of the wheel angle αw and board angle αb. The global foot angle and global position and velocity of the pelvis can be measured using an inertial measurement unit (IMU) at the pelvis. The output matrix Cε5×12 for the bongo board model can be written as:

C=[C1C2]  Eq. (20)

where,





  
    
      
        
          C
          1
        
        =
        
          [
          
            
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                  -
                  
                    2
                    ⁢
                    
                      r
                      w
                    
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
              
                
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                1
              
              
                0
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
            
              
                1
              
              
                1
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
          
          ]
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          21
          )
        
      
    
  
  
    
      
        
          C
          2
        
        =
        
          
        
        ⁢
        
          [
          
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
            
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                  -
                  
                    2
                    ⁢
                    
                      r
                      w
                    
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                
                  
                    -
                    
                      l
                      1
                    
                  
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
              
                
                  -
                  
                    l
                    2
                  
                
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                1
              
              
                0
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
              
                0
              
            
          
          ]
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          22
          )
        
      
    
  




The output matrix for the seesaw model Cε5×10 can be similarly derived.

The reader may wonder why the inventors picked five outputs and not more. One reason has to do with the applicability of Algorithm 1, in which the number of outputs is less than the number of minimal states. The bongo board model is the most generic model among those discussed herein, and it has six minimal states. Therefore, Algorithm 1 limits analysis to use of five outputs. The prior discussion also derived individual output feedback controllers for the seesaw and bongo board models using Algorithm 1. However, in order to derive a universal controller, the following discussion derives an output feedback controller for the bongo board model, and, since this is the most generic model, the same controller also will stabilize the other models discussed in this description.
With regard to optimizing the range of universality, the inventors understood that the seesaw model can be represented as a bongo board model with zero wheel radius, i.e., rw=0. Then, by keeping the density of the wheel of the bongo board model constant, the curved floor model can be represented as a bongo board model with large wheel radius and, thereby, large wheel mass and moment of inertia. The flat floor model can be represented as a bongo board model with infinite wheel radius, i.e., rw=∞. Therefore, the bongo board model can be considered as a generic model that in the linear range of wheel radius rw=[0, ∞] can represent seesaw, family of bongo board, curved floor, and flat floor models.
The user-defined matrices that affect the output feedback controller design using Algorithm 1 are Q, R, and X. The matrices R and X are chosen to be identity matrices, and, hence, only the elements of Q affect the output feedback controller from Algorithm 1. The following discussion presents an optimization algorithm that optimizes for the elements of the Q matrix such that the resulting output feedback controller stabilizes the seesaw and flat floor models and also stabilizes the largest family of bongo board models, i.e., the largest range of wheel radii.
Particularly, Qε12×12 for the bongo board model is chosen to be a diagonal matrix, with equal weights for the configurations of the left and right legs. Therefore, the matrix Qε12×12 is parameterized by eight parameters as follows:

Q=diag([a1,a2,a3,a3,a4,a4,a5,a7,a7,a8,a8]T)  Eq. (23)

and the matrix Qmε6×6 corresponding to the minimal system {Am, Bm, Cm} in Eq. 16 is obtained as Qm=UmQUmT. As mentioned earlier, the user-defined matrices include Rm=I4 and Xm=I6. It should be noted that the planar robot model discussed above has four inputs, and the output feedback controller feeds back five outputs as shown in Eq. 20. For a given Qm, the output feedback control gain Fε4×5 is obtained using OutputFeedback(Am, Bm, Cm, Qm, Rm, Xm) in Algorithm 1. It is also important to note that the output feedback control gain Fε4×5 can be used for output feedback control of the different dynamic systems considered herein since they all have the same five outputs.

The problem of finding the universal controller can be formulated as an optimization problem of finding the eight parameters {ai} of Q in Eq. 23 such that the resulting output feedback controller stabilizes the seesaw and flat floor models. The controller also stabilizes the largest family of bongo board models, i.e., the largest range of wheel radii. The optimization problem is formulated as follows:




  
    
      
        
          
            minimize
            
              {
              
                a
                i
              
              }
            
          
          ⁢
          
            
          
          ⁢
          J
        
        =
        
          
            
              w
              1
            
            ⁢
            
              J
              1
            
          
          +
          
            
              w
              2
            
            ⁢
            
              J
              2
            
          
          +
          
            
              w
              3
            
            ⁢
            
              J
              3
            
          
          +
          
            
              w
              4
            
            ⁢
            
              J
              4
            
          
          +
          
            
              w
              5
            
            ⁢
            
              J
              5
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          24
          )
        
      
    
  
  
    
      
        where
        ,
        
          
            w
            
              1
              -
            
          
          ⁢
          
            w
            5
          
          ⁢
          
            
          
          ⁢
          are
          ⁢
          
            
          
          ⁢
          user
          ⁢
          
            -
          
          ⁢
          defined
          ⁢
          
            
          
          ⁢
          weights
        
        ,
        
          

        
        ⁢
        
          
            J
            1
          
          =
          
            {
            
              
                
                  1
                
                
                  
                    when
                    ⁢
                    
                      
                    
                    ⁢
                    F
                    ⁢
                    
                      
                    
                    ⁢
                    fails
                    ⁢
                    
                      
                    
                    ⁢
                    on
                    ⁢
                    
                      
                    
                    ⁢
                    flat
                    ⁢
                    
                      
                    
                    ⁢
                    floor
                    ⁢
                    
                      
                    
                    ⁢
                    model
                  
                
              
              
                
                  0
                
                
                  
                    when
                    ⁢
                    
                      
                    
                    ⁢
                    F
                    ⁢
                    
                      
                    
                    ⁢
                    stabilizes
                    ⁢
                    
                      
                    
                    ⁢
                    flat
                    ⁢
                    
                      
                    
                    ⁢
                    floor
                    ⁢
                    
                      
                    
                    ⁢
                    model
                  
                
              
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          25
          )
        
      
    
  
  
    
      
        
          J
          2
        
        =
        
          {
          
            
              
                1
              
              
                
                  when
                  ⁢
                  
                    
                  
                  ⁢
                  F
                  ⁢
                  
                    
                  
                  ⁢
                  fails
                  ⁢
                  
                    
                  
                  ⁢
                  on
                  ⁢
                  
                    
                  
                  ⁢
                  seesaw
                  ⁢
                  
                    
                  
                  ⁢
                  model
                
              
            
            
              
                0
              
              
                
                  when
                  ⁢
                  
                    
                  
                  ⁢
                  F
                  ⁢
                  
                    
                  
                  ⁢
                  stabilizes
                  ⁢
                  
                    
                  
                  ⁢
                  seesaw
                  ⁢
                  
                    
                  
                  ⁢
                  model
                
              
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          26
          )
        
      
    
  
  
    
      
        
          
            J
            3
          
          =
          
            
              r
              low
            
            
              r
              min
            
          
        
        ,
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          27
          )
        
      
    
  
  
    
      
        
          
            J
            4
          
          =
          
            
              r
              max
            
            
              r
              up
            
          
        
        ,
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          28
          )
        
      
    
  
  
    
      
        
          J
          5
        
        =
        
          
            
            
              G
              d
            
            
          
          ∞
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          29
          )
        
      
    
  




where F is the output feedback gain derived for the nominal bongo board model using Algorithm 1 with the chosen Q at each iteration, rlow,rup are the lower and upper bounds, respectively, of the range of stabilizable wheel radii for the bongo board models, rmin,rmax are the minimum and maximum bounds, respectively, of the range of wheel radii for which the output feedback gain F is evaluated, and Gd is the transfer function from the disturbance torque on the board to the outputs of the nominal closed loop system with output feedback gain F.

The term J5 in Eq. 29 is used to ensure that the disturbance rejection of the nominal closed loop system with the output feedback controller is not compromised in an attempt at enlarging the range of stabilizable wheel radii. Large values are chosen for the weights w1 and w2 in order to drive the optimization towards finding output feedback gains that stabilize the seesaw and flat floor models. The w3-w5 determine the relative weightage between the lower and upper bounds of stabilizable wheel radii and the H∞ norm of the controller's ability to reject disturbances.










Algorithm 2: Optimizing Output Feedback Gain


















input
 Initial Parameters {ai}0




 Weights w1, w2, w3, w4, w5 




 Nominal Radius rnom




 Bounds rmin, rmax



output
 Optimized Parameters {ai}*




 Optimal output feedback gain F*



function
 [{ai}*, F*] = OptimizeOutputFeedback({ai}0)









begin











Get the state space matrices for the nominal system




 [A, B, C] = StatespaceBongoboard (rnom)




Get the minimal realization of the nominal system




 [Am, Bm, Cm, Um] = MinimalRealization (A, B, C)




Choose matices Rm, Xm for the minimal system




 Rm = I4, Xm = I6




Initialize the parameters of Q




 {ai} = {ai}0 









repeat











Get the new Q and Qm matrices




 Q({ai}) (Eq. 23)




 Qm = UmQUmT




Get the output feedback gain for the nominal system




 F = OutputFeedback (Am, Bm, Cm, Qm, Rm, Xm)




Evaluate stability of flat floor and seesaw models




 J1, J2 (Eqs. 25-26)




Get the range of stabilizable wheel radii (Algorithm 3)




 [rlow,rup] = StabilizableRadii(F, rnom, rmin, rmax)



 




 



  
    
      J
      3
    
    =
    
      
        r
        low
      
      
        r
        min
      
    
  
  ,
  
    
      J
      4
    
    =
    
      
        
          r
          max
        
        
          r
          up
        
      
      ⁢
      
        
      
      ⁢
      
        (
        
          
            Eqs
            .
            
              
            
            ⁢
            27
          
          ⁢
          
            -
          
          ⁢
          28
        
        )
      
    
  







 




Get the disturbance ∞ − norm for the nominal closed 




loop system




 J5 = ∥Gd∥∞ (from Eq. 32)




Get the overall cost function




 ΔJ = w1J1 + w2J2 + w3J3 + w4J4 + w5J5 − J




 J = J + ΔJ




Update the parameters of Q




 Δ{ai} = OptimizerUpdate (J, {ai})




 {ai} = {ai} + Δ{ai} 




until ΔJ < εJ or Δ{ai} < εa




Get the optimal parameters of Q and the optimal output 




feedback gain




 {ai}* = {ai}




 F* = F









end










The overall optimization algorithm is presented in preceding Algorithm 2. At each iteration, the algorithm computes Qm for the chosen parameters (Step 7) and computes the corresponding output feedback gain F (Step 8). The different cost functions J1-J5 whose weighted sum constitutes the overall cost function as shown in Eq. 24 are computed for this output feedback gain F (Steps 9-12), and the parameters of the Q matrix are updated accordingly (Step 13). This process continues until the desired convergence is achieved, and the optimal parameters {ai}* of the Q matrix and the corresponding optimal output feedback gain F* is obtained (Step 15).
The following sections describe how terms from Eq. 27-29 (Steps 10-11 of Algorithm 2) are derived at each iteration of the optimization. First, with regard to finding the range of stabilizable wheel radii, Algorithm 3 (following this paragraph) uses a bisection algorithm to find the range of stabilizable wheel radii. At each iteration i, the linear state space matrices for the bongo board model with radius ri are computed (Steps 5 and 17) and their corresponding minimal system matrices are obtained using Kalman decomposition (Steps 6 and 18). Then, the closed loop stability of the linear minimal system with the output feedback gain F derived for the nominal system is evaluated, and the bounds are updated accordingly (Steps 7-12 and 19-24).










Algorithm 3: Find Range of Stabilizable Wheel Radii
















input 
  Output Feedback Gain F



  Nominal Radius rnom



  Bounds rmin,rmax


output
  Stabilize Range rlow, rup


function
[rlowrup] = StabilizableRadii(F, rnomrminrmax)


begin




rmid = rnom



while (rmid−rmin) > εr do



 Update the lower bound


 



  



  r
  
    low
    =
    
      
        1
        2
      
      ⁢
      
        (
        
          
            r
            min
          
          +
          
            r
            mid
          
        
        )
      
    
  






 



 Get the new state space matrices



  [A, B, C] = StatespaceBongoboard(rlow)



 Get the minimal system



  [Am,Bm,Cm] = MinimalRealization(A, B, C)



 Get the set of unstable closed loops using output feedback.



  punstab = {λi|λi ε λ(Am − BmFCm) >= 0}



 if punstab ≠ ∅ then



   rmin = rlow



 else



   rmid = rlow



 end



end



rmid = rnom



while (rmax − rmid) > εr do



 Update the outer bound


 



  



  
    r
    up
  
  =
  
    
      1
      2
    
    ⁢
    
      (
      
        
          r
          mid
        
        +
        
          r
          max
        
      
      )
    
  






 



 Get the new state space matrices



  [A, B, C] = StatespaceBongoboard (rup)



 Get the minimal system



  [Am,Bm,Cm = MinimalRealization(A, B, C)



 Get the set of unstable closed loops using output feedback



   punstab = {λi|λi ε λ(Am − BmFCm) >= 0}



 if punstab ≠ ∅ then



  rmax = rup



 else



  rmid = rup



 end



end


end









The work described herein assumes that the density of the wheel of the bongo board remains constant, and, hence, with changing wheel radii, the mass and moment of inertia of the wheel also changes. It also assumes that the wheel is a solid cylinder of unit length, and its mass and moment of inertia are given by:

mw=πrw2ρw,

Iw=1⁄2πrw4ρw,  Eq. (30)

Also, in this description, the minimum rmin and maximum rmax allowable wheel radii values for the bisection algorithm in Algorithm 3 are set to 0.001 meters and 122.7108 meters, respectively. With a constant wheel density of 200 kg·m−3 (Table I), the minimum radium rmin=0.001 meters results in a wheel of mass 6.28×10−1 kilograms and moment of inertia 3.24×10−10 kg·m2, and the maximum radius rmax=122.7108 meters results in a wheel of mass 9.46×106 kilograms and moment of inertia of 7.12×1010 kg·m2. In this description, the maximum radius is restricted to 122.7108 meters because, beyond this value, the reciprocal of the condition number of the mass/inertia matrix of the system becomes less than 10−12, and, hence, the mass/inertia matrix becomes too close to singular. As listed in Table I, the nominal radius for the bongo board model is rnom=0.1 meters and the resulting mass is 6.28 kilograms and moment of inertia is 0.0314 kg·m2.
From Eq. 30, one can see that with a constant wheel density ρw, a linear growth in the wheel radius rw, results in a quadratic growth in the wheel mass mw and a quartic growth in the wheel moment of inertia Iw. Therefore, with sufficiently large radius, the mass and moment of inertia of the wheel are large enough that the wheel does not move and the system reduces to the robot balancing on a board on top of a curved floor. The wheel radii range of 0.001 meters to 122.7108 meters is sufficient to evaluate the stabilizable range of an output feedback controller, and any controller that can stabilize this wide family of bongo boards and curved floors (and also the seesaw and flat floor models) is worth enough to be called a universal controller.
Now, with regard to finding the H∞ norm for disturbance, in an attempt at increasing the range of stabilizable wheel radii for the universal controller, the controller's robustness to disturbances should not be compromised. Therefore, the objective function in Eq. 24 included a term J5 for the H∞ norm of the transfer function of the closed loop system from the disturbance on the bongo board to the outputs of the system. This description focuses only on the disturbance torque subjected to the board for the nominal system.
Given the nominal system {A, B, C} and the output feedback gain F, the linear state space matrices of the closed loop system used for disturbance rejection analysis are as follows:




  
    
      
        
          
            A
            d
          
          =
          
            
              A
              -
              
                B
                ⁢
                
                  
                
                ⁢
                F
                ⁢
                
                  
                
                ⁢
                C
              
            
            ∈
            
              R
              
                12
                ×
                12
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              B
              d
            
            =
            
              
                [
                
                  
                    
                      
                        0
                        
                          6
                          ×
                          4
                        
                      
                    
                  
                  
                    
                      
                        
                          N
                          2
                        
                        ⁢
                        
                          s
                          d
                          T
                        
                      
                    
                  
                
                ]
              
              ⁢
              
                ❘
                
                  q
                  =
                  0
                
              
              ⁢
              
                ∈
                
                  R
                  
                    12
                    ×
                    4
                  
                
              
            
          
          ,
          
            

          
          ⁢
          
            
              C
              d
            
            =
            
              C
              ∈
              
                R
                
                  5
                  ×
                  12
                
              
            
          
          ,
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          31
          )
        
      
    
  




where N2=M−1(I6−N1ΨM−1), N1=ΨT(ΨM−1ΨT)−1, sd=[0, 1, 0, 0, 0, 0]. Here the input is the disturbance torque to the board, and the outputs remain the same five outputs as that of the original nominal system in Eq. 20. The transfer function from the disturbance to the outputs can be written in matrix form as:





  
    
      
        
          
            G
            d
          
          ⁡
          
            [
            
              
                
                  
                    A
                    m
                    d
                  
                
                
                  
                    B
                    m
                    d
                  
                
              
              
                
                  
                    C
                    m
                    d
                  
                
                
                  
                    0
                    
                      5
                      ×
                      1
                    
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          32
          )
        
      
    
  




where {Amd, Bmd Cmd} is the minimal realization of AdBdCd in Eq. 31. Algorithm 2 uses the H∞ norm of Gd in Eq. 32 for computing J5 (Step 11 of Algorithm 2).

The norm ∥Gd∥∞ represents the sensitivity of the outputs of the closed loop system in Eq. 31 to the disturbance on the board. The lower the norm, the lower is the sensitivity and the more robust is the output feedback controller to the bongo board's disturbances. Hence, it is desirable to reduce J5=∥Gd∥∞ in the optimization in Algorithm 2.
At this point, it may be useful to provide a performance comparison and analysis for the universal controller. The following discussion presents a detailed analysis of the universal controller derived using Algorithm 2 and compares its performance and robustness with other controller like linear quadratic (LQR) and H∞ controllers. Particularly, with regard to the controllers under comparison, the discussion that follows presents the universal controller, the LQR controller, and the H∞ controller for comparison.
First, with regard to the universal controller, the optimal output feedback gain Fε4×5 obtained using Algorithm 2 for the system with nominal parameters shown in Table I and the output matrix Cε5×12 shown in Eq. 20 is given below.




  
    
      
        F
        =
        
          
            10
            6
          
          ×
          
            [
            
              
                
                  
                    -
                    2.7167
                  
                
                
                  
                    -
                    1.1894
                  
                
                
                  0.9536
                
                
                  0.0101
                
                
                  0.7685
                
              
              
                
                  
                    -
                    2.7167
                  
                
                
                  
                    -
                    1.1894
                  
                
                
                  0.9536
                
                
                  0.0101
                
                
                  0.7685
                
              
              
                
                  2.7167
                
                
                  1.1894
                
                
                  
                    -
                    0.9536
                  
                
                
                  
                    -
                    0.0101
                  
                
                
                  
                    -
                    0.7685
                  
                
              
              
                
                  2.7167
                
                
                  1.1894
                
                
                  
                    -
                    0.9536
                  
                
                
                  
                    -
                    0.0101
                  
                
                
                  
                    -
                    0.7685
                  
                
              
            
            ]
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          33
          )
        
      
    
  




It can be seen from Eq. 33 that since the robot is a parallel mechanism with only one DOF, the actuation at the ankle and hip joints are duplicated. The left and right ankle torques are the same, while the left and right hip torques are equal in magnitude but opposite in sign to that of the ankle torques.
Second, with regard to the LQR controller, the LQR controller compared here is obtained by optimizing for the elements of its Q matrix using an algorithm similar to Algorithm 2 such that the objective function in Eq. 24 is minimized, and its R matrix is fixed to be an identity matrix. Just like Algorithm 2, the algorithm employed here is optimized for the elements of the Q matrix such that the range of stabilizable wheel radii for the resulting LQR controller is maximized. However, this algorithm ignored cost functions J1 (Eq. 25) and J2 (Eq. 26) since the state feedback LQR controller for the bongo board model cannot be used to stabilize flat floor and seesaw models with state spaces of different dimensions. Note, in the spirit of brevity, the elements of the derived LQR gain matrix are not provided here.
Third, with regard to the H∞ controller, a brief description of the structure of the H∞ controller with output feedback compared here is presented below. The linear, minimal state space equations used for H∞ control design are as follows:

{dot over (x)}m=Amxm+Bmdud+Bmu, 

{tilde over (y)}={tilde over (C)}xm+{tilde over (D)}ud,

ym=Cmxm  Eq. (34)

where {Am, Bm, Cm} is the linear, minimal statespace realization of the nominal bongo board model shown in Eq. 16, Bmdε6×1 is the minimal input transfer matrix corresponding to the disturbance input ud on the board as shown in Eq. 32, and





  
    
      
        
          
            C
            _
          
          =
          
            
              [
              
                
                  
                    
                      
                        
                          U
                          m
                        
                        ⁢
                        
                          QU
                          m
                          T
                        
                      
                    
                  
                
                
                  
                    
                      0
                      
                        4
                        ×
                        6
                      
                    
                  
                
              
              ]
            
            ∈
            
              R
              
                10
                ×
                6
              
            
          
        
        ,
        
          

        
        ⁢
        
          
            D
            ~
          
          =
          
            
              [
              
                
                  
                    
                      0
                      
                        6
                        ×
                        4
                      
                    
                  
                
                
                  
                    
                      R
                    
                  
                
              
              ]
            
            ∈
            
              R
              
                10
                ×
                4
              
            
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          35
          )
        
      
    
  




where √{square root over ((•))} refers to the Cholesky factor of the corresponding matrix. The H∞ controller K∞ is a state space model with six states, five inputs (ym) and four outputs (u), and is designed such that the H∞ norm of the transfer function from disturbance input ud to output {tilde over (y)}, i.e., ∥Tÿud∥∞, is minimized. It can be seen from Eq. 34 and 35 that the matrix Q affects the output {tilde over (y)} of the system, which in turn affects the H∞ controller. Here, similar to the universal and LQR controllers, the elements of the Q matrix are optimized using an algorithm similar to Algorithm 2 such that the objective function in Eq. 24 is minimized.








TABLE II







Performance comparison with other control approaches











Disturbance Rejection



Stabilizes
(Nominal System)













Stabilizes
on Flat
Stabilizable Bongo Wheel Radi

Maximum













Control
Seesaw
Floor
Minimum
Maximum

Disturbance


Design
(rw = 0 m)
(rw = ∞ m)
(rmin = 0.001 m)
(rmax = 122.7108 m)
||Gd||∞
Torque for 0.1 s





LQR Control
N/A
N/A
0.942 m
0.1257
0.6676
31.2


(state


feedback)


H∞ Control
No
No
0.0363
0.2798
0.2105
36.2


(output


feedback)


Universal
Yes
Yes
0.001 m
122.7108 m
0.4448
86.7


Control


(this


description)









With regard to universality and the range of stabilizable wheel radii, Table II (above) compares the performance of the different controllers described previously in stabilizing the flat floor, seesaw, and family of bongo board and curved floor models. The stabilizability guarantees were derived using linearized dynamics of the respective models about the unstable vertical equilibrium. As described earlier, the curved floor and flat floor models are derived as special cases of bongo board and seesaw models, respectively.
The LQR controller used in this comparison is a state feedback controller derived for the nominal bongo board model, and, hence, it cannot be used to stabilize the seesaw and flat floor models. However, since the H∞ controller presented is an output feedback controller, it can be used to stability the nominal seesaw and flat floor models. But, the best H∞ controller derived herein was unable to stabilize both these systems as shown in Table II. It is important to note that the universal controller was, in contrast, capable of stabilizing both the nominal seesaw and flat floor models.
For the family of bongo board and curved floor models, the range of stabilizable wheel radii for the LQR and H∞ controllers designed for the nominal bongo board model are evaluated using the bisection algorithm similar to Algorithm 3. It is also to be noted that the optimization algorithm similar to Algorithm 2 was used to tune the elements of the Q matrix for both these controllers, with R being fixed to an identity matrix. The best results of such optimization are reported in Table II. It is useful to note that the search space for stabilizable wheel radii (as noted above) was restricted to the range of 0.001 to 122.7108 meters for all the cases.
It can be seen from Table II that the universal controller presented herein, which was optimized using Algorithm 2, was able to stabilize the entire range of allowable wheel radii, i.e., 0.001 to 122.7108 meters, and was also able to successfully stabilize the planar robot on the nominal seesaw and flat floor models. This makes the output feedback controller a truly universal controller for the models considered in this description. However, the best range of stabilizable wheel radii that the optimized LQR controller could achieve was 0.0942 to 0.1257 meters, and the optimized H∞ controller with output feedback could stabilize a range of 0.0363 to 0.2798 meters. Hence, the H∞ controller performs significantly better than the LQR controller by stabilizing a wider range of wheel radii, but the universal controller performs orders of magnitude better than even the best performing H∞ controller.
With regard to disturbance rejection, Table II also compares the performance of the different controllers in rejecting the disturbance torques on the board. As discussed earlier, the H∞ norm of the transfer function given in Eq. 32 describes the sensitivity of the closed-loop system dynamics to the disturbance torque on the board. As shown in Table II, the best H∞ controller presented has a lower ∥Gd∥∞ than that of the universal controller, which in turn has a lower value than that of the LQR controller.
However, while testing the controllers on a nonlinear simulation of the nominal bongo board model with actuator limits of plus or minus 200 nanometers, the universal controller was able to handle a larger disturbance (86.7 nanometers for 0.1 seconds) on the board than that of the H, controller (36.2 nanometers for 0.1 seconds) and the LQR controller (31.1 nanometers for 0.1 seconds) as shown in Table II. FIG. 6 illustrates a semi-logarithmic plot 600 of the maximum disturbance torque that the universal controller was able to handle for 0.1 seconds while successfully stabilizing the family of bongo boards and curved floors for the entire range of stabilizable wheel radii of interest (e.g., from 0.01 to 122.7108 meters). As shown in FIG. 5, the maximum rejectable disturbance on the board for 0.1 seconds peaks to 353.4 nanometers for a wheel radius of 0.5 meters, then decreases and roughly plateaus to an average value of 125 nanometers after a wheel radius of 10 meters.







TABLE III







Performance comparison with other control approaches (range


of stabilizable system parameters with nominal wheel radius)









Stabilizable Parameter Range
















Nominal

H∞



Parameter
Symbol
Unit
Value
LQR Control
Control
Universal Control
















Wheel
ρω
kg · m−3
200
 [58.090, 2672.827]
 [51.966, 371.030]
 [0, ∞]


Wheel Mass
mω
kg
6.28
 [4.469, 122.990]
   [0, 14.342]
 [0, ∞]


Wheel Moment of Inertia
Iω
2 kg · m2
0.035
[0.016, 1.197]
   [0, 0.112]
 [0, ∞]


Board Mass
mb
kg
2
[1.466, 5.878]
[0.286, 3.812]
   [0, 6.618]


Board Moment of Inertia
Ib
kg · m2
0.1067
[0.010, 0.131]
[0.013, 0.189]
   [0, 2.848]


Link-1 Mass
m1
kg
15
[11.229, 36.434]
[13.360, 17.106]
 [4.399, 23.889]


Link-1 Moment of Inertia
I1
2 kg · m2
1
[14.685, 15.019]
   [0, 1.461]
   [0, 4.426]


Link-1 Length
l1
m
1
[0.9997, 1.079] 
[0.941, 1.038]
[0.778, 2.283]


Link -2 Half Mass
m2
kg
15
[14.685, 15.019]
 [8.405, 16.609]
[10.194, 31.391]


Link-2 Half
I2
kg · m2
2
[1.691, 2.219]
[1.953, 2.041]
[0.986, 3.370]


Moment of Inertia


Link-2 Half Length
l2
m
0.1
 [0.098, 0.1005]
[0.079, 0.117]
[0.055, ∞]  









With regard to the robustness to parameter uncertainties, Table III (above) shows the range of parameter variations in the nominal bongo board model that the different controller can handle. For each parameter except the wheel density ρw listed in Table III, while the parameter is varied, the other parameters of the system were maintained at their nominal values. For the wheel density ρw, however, the mass mw and moment of inertia Iw varied according to Eq. 30. The stabilizable range of parameter values was obtained using a bisection algorithm similar to Algorithm 3. Table III shows that the universal controller outperforms both the H∞ and LQR controllers by stabilizing a significantly wider range of parameter variations for all parameters. In the above listed values, a stabilizable range written as (0, •] refers to a range whose lower bound is less than 10−4, and, similarly, a stabilizable range written as [•, ∞) refers to a range whose upper bound is greater than 106.
FIGS. 7A and 7B show semi-logarithmic and logarithmic plots 710 and 720 of the minimum and maximum values of the stabilizable wheel radii, respectively, for the different controllers with varying wheel density ρw. It should be noted that it was assumed that the model has constant wheel density for calculating the stabilizable wheel radii and, hence, with changing density, the mass and moment of inertia of the wheel also change as in Eq. 30. The range of density values considered was 0.1 to 105. The mass/inertia matrix is close to singularity for values outside this range and, hence, was ignored in this analysis.
For the entire range of density values considered, the universal controller was able to stabilize the entire range of wheel radii considered, i.e., 0.001 to 122.7108 meters. The H∞ controller was able to stabilize only a small range of wheel density values, i.e., 24.1 to 386.9 kg·m−3, and the corresponding stabilizable range of wheel radii was also small. However, the LQR controller successfully stabilizes the whole range of wheel density values but for a smaller range of wheel radii than that of the H∞ controller. The results in Table III and FIG. 6 show that the universal controller in Eq. 33 is completely robust to parameter uncertainties of the wheel.
The following discussion presents the nonlinear simulation results of the universal controller defined by Eq. 33 and demonstrates this controller's universality as proved using its linearized model in Table II. The constrained nonlinear dynamics of the seesaw and bongo board models were simulated in MATLAB using ode15s (a stiff numerical solver), and the actuator inputs were limited to plus/minus 200 nanometers. As described above, the curved floor and flat floor models are derived as special cases of the bongo board and seesaw models, respectively. It should also be noted that the planar bipedal robot considered here is a parallel mechanism with only one DOF, and, hence, the actuator torques at the hip and ankle joints are duplicated, with the hip torques being equal and opposite to the angle torques.
FIG. 8A shows with plot/graph 810 the trajectories of the seesaw's board and robot's link-1 angles resulting from the universal controller's successful effort in stabilizing the nominal system when the board was subjected to a disturbance of 120 nanometers for 0.1 seconds. The corresponding ankle and hip trajectories are shown in the plot/graph 820 in FIG. 8B. FIG. 9A provides a plot/graph 910 showing the floor and link-1 angle trajectories of the robot when the universal controller successfully stabilizes the system on a tilting floor that tilts to 20 degrees in 2 seconds. Similarly, the universal controller's ability to successfully stabilize the system on a rocking floor is shown in plot/graph 920 of FIG. 9B, with the floor rocking at 1 Hertz with an amplitude of 20 degrees.
FIGS. 10A-10L provide graphs or plots 1010, 1015, 1020, 1025, 1030, 1035, 1040, 1045, 1050, 1055, 1060, and 1065 of wheel position, angle, and actuator torque values over time during a universal controller's successful effort in stabilizing bongo boards with four different wheel radii when subjected to four different board disturbances for a period of time. Particularly, FIG. 10A shows with plot 1010 the wheel position trajectory of a bongo board model with wheel radius rw=0.01 meters that is controlled using the universal controller in Eq. 33 when subjected to a disturbance torque of 6.9 Nm for 0.1 seconds on the board. The resulting global board angle and link-1 angle trajectories are shown in the plot 1030 of FIG. 10E, and the corresponding equal and opposite ankle and hip torque trajectories are shown in the plot 1050 of FIG. 10I. Similarly, FIGS. 10B, 10F, 10J, FIGS. 10C, 10G, 10K, and FIGS. 10D, 10H, 10L shows plots 1015, 1035, 1055, plots 1020, 1040, 1060, and plots 1025, 1045, 1065 of the universal controller's successful attempt at stabilizing bongo board models with radii rw=0.05 meters, rw=0.1 meters, and rw=0.2 meters, respectively, when subjected to disturbance torques of 40 Nm, 86.7 Nm, and 186.3 Nm, respectively, for 0.1 seconds on the board.
FIGS. 11A-11H provide graphs or plots 1105, 1110, 1115, 1120, 1125, 1130, 1135, and 1140 of angle and torque values over time during the use of the universal controller to stabilize bongo boards when subjected to four different disturbances over a set time period. Particularly, the disturbance was applied for 0.1 seconds and plots 1105 and 1125 correspond to a disturbance of 353.4 Nm, plots 1110, 1130 correspond to a disturbance of 297.5 Nm, plots 1115, 1135 correspond to a disturbance of 246.3 Nm, and plots 1120, 1140 correspond to a disturbance of 162.3 Nm with wheel radii rw of 0.5 meters, 0.8 meters, 1 meter, and 2 meters, respectively. Similarly, FIGS. 12A-12H provide graphs or plots 1205, 1210, 1215, 1220, 1225, 1230, 1235, and 1240 of angle and torque values over time during the use of the universal controller to stabilize bongo boards when subjected to four different disturbances over a set time period. Particularly, the disturbance was applied for 0.1 seconds and plots 1205 and 1225 correspond to a disturbance of 131.5 Nm, plots 1210, 1230 correspond to a disturbance of 129.6 Nm, plots 1215, 1235 correspond to a disturbance of 119.5 Nm, and plots 1220, 1240 correspond to a disturbance of 123.6 Nm with wheel radii rw of 5 meters, 10 meters, 50 meters, and 100 meters, respectively.
FIGS. 11 and 12 show the universal controller's success in stabilizing the bongo board models with wheel radii ranging from 0.5 to 100 meters when subjected to different disturbance torques on the board for 0.1 seconds. All disturbance torques shown in FIGS. 10-12 were the maximum disturbances that the universal controller was able to handle for each particular wheel radius. The wheel position trajectories are ignored in FIGS. 11 and 12 since the wheel barely moves because of the large mass and moment of inertia of the wheel with increasing wheel radii. For wheel radius rw greater than 2, the mass and moment of inertia of the wheel are large enough, i.e., mw greater than 2513.3 kg, Iw greater than 5026.5 kg·m2, that the wheel does not move (less than 10−3 meters of movement). Hence, the system reduces to the robot balancing on a board on top of a curved floor. Moreover, with wheel radius rw greater than 20 meters, the surface of contact of the bongo board with the wheel is flat and, hence, the system reduces to the robot balancing on a board on top of a flat floor.
It is important to note that the robot is a parallel mechanism with only one DOF. Hence, its actuation is duplicated with the ankle and hip torques having equal and opposite values. Moreover, the ankle and hip torques are limited to plus/minus 200 Nm such that one can observe the torque trajectories saturating in the plots in the FIGS. 10-13. It should also be noted that the plots shown here are for the maximum disturbance torques that the universal controller can handle for the different wheel radii, and input saturations do not result for smaller disturbance torques.
FIGS. 8-12 are useful for verifying in simulation that the universal controller of Eq. 33 can indeed successfully stabilize the nonlinear dynamics of seesaw, flat floor, and a family of bongo board and curved floor models as demonstrated using their linearized dynamics of Table II. Thus, through detailed analysis and simulations, this description has shown that the output feedback controller in Eq. 33, which was derived using Algorithm 2, is truly a universal controller for the family of dynamic (and static) environments discussed herein.
The above description teaches a methodology or algorithm for deriving a universal balancing controller for providing control signals or stabilizing a bipedal robot in static environments (such as flat floors) and in dynamic environments (such as seesaw and bongo board type supports). Among the keys discussed that are useful in providing a universal balance controller are: (1) formulate the controller as an output feedback controller so that it can map the outputs of different dynamic systems like a seesaw and a bongo board to the control inputs of the robot including the ankle and hip torques (this formulation enables a single controller to stabilize different dynamic systems with state spaces of different dimensions) and (2) use the bongo board model as a generic model where different wheel radii can represent a wide range of environments including a seesaw and a bongo board as well as flat and curved floors/surface, where a zero radius corresponds to a seesaw and an infinite radius corresponds to a flat floor (the generic model allows the controller to handle different environments by changing the wheel radius continuously rather than dealing with multiple discrete models).
In this regard, an optimization algorithm is described herein that finds a set of output feedback gains that maximizes the range of wheel radii that the controller can stabilize. Also, in this description, it was assumed that the feet of the bipedal robot were always in flat contact with the upper surface of the bongo board without slipping. Prior to this universal balancing controller, there was no such universal control design in which a single controller stabilizes dynamic systems with different dimensional state spaces. Previous solutions, instead, included environment-specific controller designs, e.g., separate seesaw and bongo board balancing controllers.
The universal controller stabilizes different dynamic systems, which enables a bipedal robot with such a controller to have no knowledge of the environment in which it is balancing but yet still successfully balance and handle disturbances. This result eliminates the need to model dynamic environments (like a seesaw and a bongo board) and allows the same controller to be re-used in all environments or in multiple unstable platforms. Hence, a significant amount of time is saved that would otherwise have been spent in tuning controllers for specific environments.
Balancing robots controlled using this technique may have many uses such as in an entertainment setting (e.g., a robot-based attraction of a theme or amusement park or the like) or in an industrial or manufacturing setting. For example, one can readily imagine an implementation in which balancing robots perform entertaining tasks (e.g., a number of circus tasks) like balancing on a seesaw, on a bongo board, on a curved surface or floor, and the like. Moreover, in real time, a bipedal robot with the universal balancing controller can switch environments, which makes its performance much more interesting and exciting for observers or an audience.
This description shows conclusively that global pelvis position, velocity, and link angle measurements are sufficient to stabilize a planar bipedal robot in dynamic, unstable environments like seesaws and bongo boards. Output feedback control was proposed as an approach to design a single controller that stabilizes planar bipedal robots in different dynamic environments with state spaces of different dimensions. An algorithm that optimized output feedback controllers to maximize the range of stabilizable systems was also presented. A first of its kind universal balancing controller that stabilizes a family of bongo board, seesaw, and curved and flat floor models was derived and fully described.
The robustness of the derived universal controller to disturbances and parameter uncertainties was analyzed in the description and compared against LQR and H∞ controllers. Since the LQR controller derived for the bongo board model is a state feedback controller, it cannot be directly used for stabilizing the planar bipedal robot on a seesaw, a flat floor, or a curved floor model. Although the H∞ controller derived for the bongo board model being an output feedback controller can be used for stabilizing a bipedal robot in other dynamic environments, the optimization algorithm failed to find a H∞ controller that stabilized the seesaw and also the flat floor models. Moreover, it was shown in this description that the universal controller performed significantly better than the LQR and H∞ controllers in both disturbance rejection and also in robustness to parameter uncertainties. Several nonlinear simulation results were also presented that demonstrated the robustness and universality of the derived universal balancing controller.

## Claims

1. A robot, comprising:
three or more rigid links;
joints pivotally connecting pairs of the rigid links; and
an actuator associated with each of the joints; and
a universal balancing controller comprising an output feedback control module providing control signals to selectively drive the actuators to balance the robot on a support element,
wherein the control signals are generated in response to processing of global robot data from sensors associated with the rigid links or the joints,
wherein the universal balancing controller acts as a standalone controller that generates the controls signals so as to stabilize the robot in different stable and unstable environments,
wherein the support element comprises a dynamic, unstable environment such that the universal balancing controller stabilizes the robot in the dynamic, unstable environment,
wherein the dynamic environment comprises a bongo board, a seesaw, or a board balanced upon a curved, stable floor, and
wherein the robot is positioned and balancing on the bongo board, the seesaw, or the board balanced upon the curved, stable floor.

2. The robot of claim 1, wherein the rigid links comprise at least two leg links and a pelvis link connecting ends of the two leg links, wherein the joints comprise a pair of ankle joints and a pair of hip joints, and the global robot data comprises link angles and global pelvis measurements.

3. The robot of claim 2, wherein the global pelvis measurements comprise measurements of a position and a velocity of the pelvis link.

4. The robot of claim 1, wherein the control signals stabilize the bongo board, the seesaw, or the board balanced upon the curved, stable floor via controlled movement of the robot.

5. The robot of claim 1, wherein one of the different stable and unstable environments comprises a static environment that comprises a flat floor or a flat and sloped floor.

6. A bipedal robot with universal balancing control for use in a variety of environments, comprising:
a pair of legs each supported at a first end by a support assembly;
a pelvis interconnecting second ends of the legs via a pair of hip joints;
actuators driving operation of the hip joints and joints in the legs; and
an output feedback controller providing control signals to selectively drive the actuators to balance the robot on a support surface of the support assembly,
wherein the control signals are generated in response to processing of data from sensors associated with the legs or the pelvis,
wherein the control signals are generated without any measurement of parameters of the support assembly,
wherein the output feedback controller is configured to provide the control signals both when the support assembly defines a dynamic, unstable environment and when the support assembly defines a static, stable environment,
wherein the dynamic, unstable environment includes a seesaw, a bongo board, or a board balanced on a curved, stable floor, and
wherein the legs are supported by and are balancing on the bongo board, the seesaw or the board balanced on the curved stable floor.

7. The bipedal robot of claim 6, wherein the control signals are adapted to stabilize the seesaw or the bongo board with the robot balanced on a board of the seesaw, a board of the bongo board, or the board balanced on the curved, stable floor and after a disturbance is applied to a corresponding one of the boards.

8. The bipedal robot of claim 6, wherein the data comprises measurements or determinations of a position and a velocity of the pelvis.

9. The bipedal robot of claim 8, wherein the data further comprises at least one link angle associated with one of the legs.

10. A universal balancing control method, comprising:
from sensors on a robot balanced within a dynamic, unstable environment, receiving a set of global robot data;
without measurements of the dynamic, unstable environment, processing the set of global robot data to generate a torque associated with actuators of a set of joints of the robot;
providing balancing control signals based on the generated torques to controllers of the actuators, whereby the robot balances within the dynamic, unstable environment and concurrently attempts to stabilize the dynamic, unstable environment; and
repeating the receiving, the processing, and the providing steps,
wherein the dynamic, unstable environment comprises a bongo board, a seesaw, or a board balanced upon a curved, stable floor, and
wherein the robot is positioned and balancing on the bongo board, the seesaw, or the board balanced upon the curved, stable floor.

11. The method of claim 10, wherein the robot comprises a bipedal robot and the set of global robot data comprises link angles and global pelvis measurements.

12. The method claim 11, wherein the joints include two ankle joints and two hip joints.

13. The method of claim 11, wherein the global pelvis measurements include a global position of a pelvis of the robot and velocity of the pelvis.

14. The method of claim 10, wherein the repeating step is performed after each disturbance of the dynamic, unstable environment and wherein the dynamic, unstable environment is stabilized via the providing of the control signals within about 20 seconds.

15. The method of claim 1, wherein at least two of the links remain in contact with a surface of the support element.

16. The method of claim 1, wherein the processing of the global robot data is performed without using environment information including measurements pertaining to the support element.