WO2012129250A2 - Humanoid robot push recovery on level and non-level ground - Google Patents

Humanoid robot push recovery on level and non-level ground Download PDF

Info

Publication number
WO2012129250A2
WO2012129250A2 PCT/US2012/029848 US2012029848W WO2012129250A2 WO 2012129250 A2 WO2012129250 A2 WO 2012129250A2 US 2012029848 W US2012029848 W US 2012029848W WO 2012129250 A2 WO2012129250 A2 WO 2012129250A2
Authority
WO
WIPO (PCT)
Prior art keywords
robot
determining
stepping
predicted
humanoid robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2012/029848
Other languages
French (fr)
Other versions
WO2012129250A3 (en
Inventor
Seungkook YUN
Ambarish Goswami
Sung-Hee Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2014501193A priority Critical patent/JP5845334B2/en
Publication of WO2012129250A2 publication Critical patent/WO2012129250A2/en
Anticipated expiration legal-status Critical
Publication of WO2012129250A3 publication Critical patent/WO2012129250A3/en
Ceased legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Definitions

  • the present invention relates to robotics and, more specifically, to a balance controller for controlling a humanoid robot.
  • a computer-implemented method controls a humanoid robot to maintain balance in response to an external disturbance.
  • a robot controller receives state information of the humanoid robot.
  • the robot controller determines a predicted stepping location of the robot based on the state information of the humanoid robot.
  • the predicted stepping location comprising a location such that the humanoid robot will maintain balance if it steps to the predicted stepping location. Responsi ve to the predicted stepping location falling within a predefined region, the robot controller controls the robot to make a postural change without stepping to maintain balance in response to the external disturbance.
  • the robot controller instead controls the robot to take a step to the predicted stepping location to maintain balance in response to the external disturbance.
  • the robot can beneficially maintain balance in response to an external disturbance by either making a postural adjustment or taking a step.
  • a computer-implemented method determines a stepping location on non-level ground for a humanoid robot to maintain balance in response to an external disturbance.
  • the humanoid robot is modeled as a rimless wheel model.
  • the rimless wheel model has a point mass corresponding to the center of mass of the humanoid robot, a first spoke corresponding to a first leg of the humanoid robot, and a second spoke corresponding to a second leg of the humanoid robot.
  • a pl ane on which the rimless wheel model resides is detemiined based on a direction of the humanoid robot's center of mass projected onto the non-level ground.
  • An anchor point for the rimless wheel model is determined based on the center of pressure of the humanoid robot.
  • a dynamic model is applied to model motion of the rimless wheel through the plane about the anchor point.
  • the robot controller selects which of a first section of the non- level ground and a second section of non-level ground to step to, where the first section of the non-level ground has a first slope and the second section of the non-level ground has a second slope.
  • the stepping location is determined based on the selected section of the non- level ground such that the point mass of the rimless wheel model will come to rest above the stepping location after executing the modeled motion.
  • FIG. 1A is a diagram illustrating a postural response of the robot to maintain balance following a forward push in accordance with an embodiment of the invention.
  • FIG. 1 B is a diagram illustra ting a stepping response of the robot to maintain balance following a forward push in accordance with an embodiment of the invention.
  • FIG. 2 illustrates a robot controller in accordance with an embodiment of the invention.
  • FIG. 3 is a flowchart illustrating a process for controlling a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 4 is a diagram illustrating a two spoke rimless wheel model of a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 5 is a diagram illustrating a rimless wheel model of a humanoid robot while executing a step in accordance with an embodiment of the invention.
  • FIG. 6 is a flowchart illustrating an embodiment of a process for calculating a stepping location of a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 7 is a diagram illustrating plane for determining a stepping location of a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 8 is a diagram illustrating a various stepping phases of a rimless wheel model of a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 9A is a diagram illustrating a rimless wheel model of a humanoid robot for a single support phase of a stepping motion in accordance with an embodiment of the invention.
  • FIG. 9B is a diagram illustrating a rimless wheel model of a humanoid robot for a collision phase of a stepping motion accordance with an embodiment of the invention.
  • FIG. 10 is a diagram illustrating balance recover ⁇ ' boundary conditions of a humanoid robot using a rimless wheel model accordance with an embodiment of the invention.
  • FIG. 11 A is a free body diagram illustrating external forces and moments on a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 1 I B is a free body diagram illustrating equivalent forces and moments on a center of mass of a humanoid robot in accordance with an embodiment of the invention.
  • FIG.12 is a flowchart illustrating a process for controlling a humanoid robot in accordance with an embodiment of the invention.
  • FIG. 13 is a free body diagram illustrating forces on feet of the robot in
  • FIG. 14 is a diagram illustrating a representation of forces applied to the feet of the robot in accordance with an embodiment of the invention.
  • FIG. 15 is a diagram illustrating example trajectories for a stepping motion in accordance with an embodiment of the invention.
  • FIG. 16A is a diagram illustrating a response of the robot to maintain balance following push from behind on uphill terrain in accordance with an embodiment of the invention.
  • FIG. 16B is a diagram illustrating a response of the robot to maintain balance following push from behind on downhill terrain in accordance with an embodiment of the invention.
  • Certain aspects of the embodiments include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the embodiments could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by a variety of operating systems. The embodiments can also be in a computer program product which can be executed on a computing system.
  • the embodiments also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the purposes, e.g., a specific computer, or it may comprise a general-purpose computer selectively activated or
  • Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits ( AS ICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • the memory/storage can be transitor or non-transitory.
  • Memory can include any of the above and/or other devices that can store information/data/programs.
  • the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
  • a robot controll er controls motion of a robot to maintain balance in response to external disturbances such as a push.
  • the robot controller can selectively encourage the robot to recover its balance either with or without taking a step.
  • FIGS. 1A-1B illustrate two different ways in which the robot can recover from a push.
  • the robot controller fully respects the linear momentum of the robot while compromising the angular momentum (if needed). This results in postural balance change in which the robot rotates its body in response to the push to maintain balance without stepping.
  • the robot instead respects the angular momentum while compromising linear momentum (if needed). This results in a stepping motion of the robot allowing it to maintain balance without changing its posture.
  • the robot controller determines winch balance control technique to employ, thereby enabling human-like balance recovery in response to an external perturbation.
  • FIG. 2 is a block diagram illustrating an embodiment of a robot controller 200 for controlling motion of a robot.
  • the robot is a humanoid biped robot having a human-like joint configuration (e.g., six degrees of freedom in each leg and a total mass of between 40 and 60 kgs).
  • the robot controller 200 receives state information of the robot. This state information can include both sensed information pertaining to the positions and/or velocities of different components of the robot and motion instructions (e.g., from an input controller) indicating how the robot should move.
  • the motion instructions may direct the robot to, for example, stay stationary, w r alk in a particular direction, move or rotate its limbs or trunk according to a particular motion, etc.
  • motion instructions may be irrespecti ve of balance considerations or other physical constraints on the robot. Such motion instructions may be inputted by a human through a control mechanism, or may be generated automatically by an artificial intelligence system that controls motion decisions of the robot.
  • the state information 202 is defined in terms of a motion of the feet (e.g., configuration and velocity), angular momentum about the robot's center of mass, center of mass position and velocity, and joint accelerations. In some situations, the motion instructions of the state information 202 can indicate that the robot should remain stationary (i.e., the desired angular momentum and center of mass velocity should ideally be zero).
  • the robot controller 200 Based on the state information 202, the robot controller 200 generates a control output 204 that controls joint actuators 250 which cause the robot to move. For example, the robot may rotate portions of its body or take a step in order to execute a motion as close as possible to the robot's motion instructions while still retaining balance.
  • the control output 204 comprises a vector of joint torques indicating the torques that the actuators will apply to each of the robot's joints. If the motion instructions would not result in the robot losing balance based on the sensed data, then the control output 204 controls the joint actuators 250 to carry out the received motion instructions.
  • the robot controller 200 determines that the motion instructions would cause the robot to lose its balance and topple over given the current state information 202, the robot controller 200 generates a control output 204 such that the resulting motion fan "admissible motion") is optimally close to the desired motion while still allowing the robot to maintain balance.
  • the robot controller 200 is able to control the robot to maintain its balance even when the robot is subjected to external perturbations (e.g., a push) or when the robot is standing or walking on a non-level and/or non-stationary surface.
  • the robot controller 200 may process the state information 202 and generate control output 204 periodically (e.g., once every millisecond) such that the robot continuously retains its balance even as its motion instructions change or when external forces acting on the robot change.
  • the robot controller 200 can be based on a human motion model in one embodiment, the resulting motion of the robot can be human-like, i.e., the robot moves to maintain its balance in a manner similar to a human.
  • the robot controller 200 comprises a processor 220 and a memory 210.
  • the processor 220 processes data signals and may comprise various computing architectures such as a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Although only a single processor 220 is shown in FIG. 2, multiple processors may be included.
  • the processor 220 comprises an arithmetic logic unit, a microprocessor, a general purpose computer, or some other information appliance equipped to transmit, receive and process electronic data signals from the memory 210 or from external inputs.
  • the memory 210 comprises a computer-readable storage medium that stores computer-executable instructions and computer-readable data.
  • the instructions may comprise code for performing any and/or all of the techniques described herein.
  • the memory 210 may furthermore temporarily or persistently store data inputted to the robot controller 200 (e.g., desired motion 202), data to be outputted by die robot controller 200 (e.g., control output 204 ), and any intermediate data used to carr out the process steps of the robot controller 200 described herein.
  • Memory 204 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device. Flash RAM (non-volatile storage), combinations of the above, or some other memory device known in the art.
  • the processor 220 loads the computer-executable instructions and/or data from the memory 210 to carry out the process steps described herein.
  • the memory 210 stores computer-executable instructions embodied as a high-level controller 216, a postural balance controller 212, and a step controller 214.
  • the high-level controller 116 determines whether motion of die robot is controlled by the postural balance controller 212 or the step controller 214.
  • the high-level controller 216 gives control to the postural balance controller 212 when the high- level controller 216 determines that the robot is not taking a step and does not need to take a step to maintain balance.
  • the high-level controller 216 generally gives control the step controller 216 when the robot is stepping or when it detects a trigger condition indicating that the robot cannot maintain balance without taking a step.
  • the robot controller 200 may include more or less components than those shown in FIG. 2 without departing from the scope of the present invention.
  • computer system 200 may include additional memory, such as, for example, a first or second level cache, or one or more application specific integrated circuits (ASICs), in other embodiments, the robot controller 200 may be implemented entirely in hardware.
  • ASICs application specific integrated circuits
  • FIG. 3 illustrates an embodiment of a high-level process performed by the robot controller 200 for controlling a robot.
  • the robot controller 200 receives 302 the robot state information (e.g., sensed data and current motion instructions), pertaining to the positions and/or velocities of different components of the robot.
  • the robot controller 200 determines 304 whether the robot is currently stepping (or about to take a step). If the robot is currently stepping, the step controller 214 is used 312 to determine and control motion of the robot. Alternatively, if the robot is not currently stepping already, the robot controller 200 periodically determines 306 a generalized foot placement estimator (GFPE) based on the current dynamic state of the robot (e.g., positions and/or velocities of its joints).
  • GFPE generalized foot placement estimator
  • the GFPE represents a point on the ground surface where the robot will be in a balanced position if its foot is placed there. Generally when the robot is balanced, the GFPE will already be under the robot's CoM and therefore the robot need not take any action to retain balance. However, if the robot becomes unstable (e.g., in response to an external disturbance), the G FPE: will move away from under the robot's CoM and the robot may need to take some action to retain balance, such as making a postural change (e.g., rotating about the trunk) or taking a step. Calculation of the GFPE is described in further detail below.
  • the robot controller 200 uses 310 the postural balance controller 212 to control the motion of the robot such that the robot will retain balance and carry out a motion based on its motion instructions. If, on the other hand, the robot controller 200 determines 308 that the GFPE falls outside the predefined region, the robot controller 200 instead uses 312 the step controller 214 to cause the robot to take a step to the determined GFPE location.
  • the predefined region comprises the area under the robot's support base (e.g., its feet). The robot controller 200 then controls 314 joint actuators of the robot to achie ve the determined motion provided by either the step controller 214 or the postural balance controller 212. Operation of the postural balance controller 212 and the step controller 214 are described in further detail below.
  • the GFPE comprises a predicted ground location such that the robot will be able to maintain balance if it steps to the predicted location.
  • the GFPE can exist on both level and non-level ground.
  • computation of the GFPE assumes that the ground either has a constant slope or has a single discontinuous slope change from where the robot is standing (see e.g., FIG. 9B).
  • the robot has knowledge of the ground layout (e.g., the slopes and location(s) of the slope change).
  • the ground layout can be automatically detected by the robot using, for example, its computer vision system or via other sensors.
  • the robot controller 200 determines the GFPE based on a simplified dynamic model of the humanoid robot comprising a rimless wheel with only two spokes.
  • the rimless wheel model is illustrated in FIG. 4.
  • the rimless wheel model has massless spokes 402, 404 of fixed length representing each of the legs of the robot.
  • the rimless wheel model also has a point mass 406 at the center of the wheel corresponding to the CoM of the robot.
  • the GFPE corresponds to the point on the ground where the rimless wheel model would come to a complete stop with its CoM directly above the stepping location.
  • FIG. 5 illustrates an example sequence of positions that the robot may take in response to a push and the corresponding rimless wheel mode! at each stage.
  • a robot in a first position 502 is subjected to a push from behind.
  • the robot takes a step in response to the push arriving at a second position 504 with its swing leg landing at the determined GFPE location 508.
  • the robot then takes a follow-up step to bring the robot back to a vertically upright position 506 with its CoM above the GFPE 508.
  • the GFPE can exist even on non- levei ground. Assuming that the robot knows the ground slopes, this GFPE exists in most cases unless stepping is physically not feasible due to the fixed length of the spokes or a steep slope.
  • FIG. 6 illustrates an embodiment of a process for determining the GFPE based on the rimless wheel model described above. Since the rimless wheel model is defined in two- dimensional space and the robot exists in three-dimensional space, the high-level controller 216 determines 602 a plane on which the simplified rimless model resides. This
  • the robot controller 200 estimates that the robot will move in the same direction as the velocity of the robot CoM, , just after a push. Consequently, the GFPE will be located on the line of projected on the ground.
  • the two- dimensional plane 702 for the rimless wheel is therefore defined by two vectors: and the vertical through the CoM.
  • the magnitude and direction of the push do not necessarily need to be known in order to compute the GFPE. Rather, in one embodiment, the selected plane is solely dependent on the states of the robot (i.e., joint angles and velocities) after the push.
  • P' is the actual CoP of the robot and P is the projected CoP located on the wheel plane about which the wheel rotates.
  • the region enclosed by the dotted black lines is the support, convex hull for the robot.
  • the two feet of the robot are drawn disproportionally large in FIG. 7 to clearly show the convex hull and the points.
  • an anchor point is determined 604 upon the two- dimensional plane where the rimless wheel touches the ground and rotates about. Setting an appropriate anchor point is important since the robot has extended feet while the rimless wheel model has a point, contact.
  • the location of the anchor point affects the GFPE location and the decision for taking a step.
  • the projected CoP P is used as the anchor point, as shown in FIG. 7.
  • the CoP P' of the robot is projected on the two- dimensional plane and it is approximated that the rimless wheel rotates about the projected CoP, P, For several reasons, the projected CoP may make a better anchor point than another possible choice, the ground projection of the CoM.
  • the CoP better represents the state of the robot for the purpose of push recovery, in part because its computation includes acceleration. For example, just after a push from behind, the CoP will be ahead of the CoM as in FIG. 7. If the projected CoM is instead used as the anchor point, even a small push may result in a big step which may not be necessary at all. For instance, if the robot is pushed from behind and the projected CoM is used as the anchor point, the push may make the CoM of the rimless wheel pass over the vertical. This would imply that the robot would topple forward and stepping would become necessary.
  • the projected CoP P is used as the anchor point and is ahead of the projected CoM, the kinetic energy from a small push would be dissipated before the CoM rotates and passes over the vertical line through the projected CoP P. This implies that no step is necessary since the robot would not topple forward from that small push.
  • a dynamic model is then applied 606 to model motion of the rimless wheel based on the determined plane and anchor point.
  • the rotational inertia of the rimless wheel model is equal to the rotational inertia of the robot about the anchor point P.
  • FIG. 8 illustrates four stages of motion of a rimless wheel model modeling a push from behind. Although FIG. 8 illustrates a case where the ground is flat, the described model is also valid for general non- level ground.
  • the CoM is behind the anchor point but will pass over the anchor point since the robot has enough kinetic energy.
  • the robot takes a step.
  • the robot stops with the CoM above the foot contact.
  • the fourth phase 808 models a follow-up step of the robot in which the swing spoke takes a step at the same step location of the support spoke.
  • the first phase 802 and third phase 806 can be modeled as an inverted pendulum model.
  • the second phase 804 is modeled as an instantaneous phase of collision where the wheel energy is lost.
  • FIG.9A illustrates an inverted pendulum model modeling the first phase 802 and third phase 806 where only one of the support legs is in contact with the ground.
  • the equation for motion is given by:
  • is the angle made by the support spoke and the vertical
  • P is the rotational inertia of the rimless wheel about P
  • m is mass
  • g is the acceleration due to gravity
  • / is the length of the support leg.
  • the GFPE is next determined for non-level ground, i?. Whether to step on the next slope
  • the robot determines 608 if it should take a step on the first slope or the second slope .
  • Eqs. (6) and (7) together are the conditions for the robot to take a step on the second slope.
  • the robot next determines 610 where to step. In the case of non-level ground where the conditions given by Eqs. (6) and (7) are satisfied, the robot takes a step on the second slope. In this case, the robot controller 100 determines the leg angle . which will stop the robot at the vertically upright configuration at the end of the stepping.
  • FIGS. 10A-B The robot controller 200 first checks the geometrically possible range of a given the initial configuration. This detemiination is illustrated in FIGS. 10A-B.
  • FIG. 1 OA shows a first limiting case.
  • the robot based on the rimless wheel model
  • camiot physically step between the two points P 2 and P3 in FIG 10A which are the points of intersection of the /- radius circle centered at ⁇ and the second slope.
  • FIG. 10B shows a second limiting case.
  • the distance from O to the stepping point, P 2 in FIG. 9B can be computed as:
  • is given as:
  • the duration of stepping is an important parameter.
  • One of the benefits from using the GFPE is that the robot can estimate the time during which the robot can take a step because the robot has dynamics and the stepping motion takes a certain amount of time.
  • the duration of stepping is important also for the robot controller 200. If the estimated duration of step is too short for the robot to physically take a step, the robot controller 200 may switch to an emergency protocol such as fall-avoidance or damage minimization from fall, instead of trying to take a step. Since the robot is modeled as a two-dimensional inverted pendulum, an incomplete elliptic integral of the first kind is used to obtain the stepping duration.
  • GFPE is predictive. It yields a future stepping point and duration for the step. This contrasts with other foot placement estimators that are state-dependent, and therefore may result in the estimated point moving away by the time the robot takes the step, in addition, the GFPE exists on the non-level ground as long as the slopes change discretely. In contrast, prior foot placement estimators assume a flat ground and cannot make foot placement predictions for non-level ground.
  • a generalized balance control technique is now described for controlling motion of the robot.
  • These general principles can be used to implement both the postural balance controller 212 and the step controller 214.
  • the postural balance controller 212 balance parameters described below are configured such that the robot will attempt to preserve its desired linear momentum o ver angular momentum, and is therefore likely to respond to an external perturbation by making a postural change to maintain balance.
  • the step controller 214 different parameters are configured such that the robot will instead respond to the push by taking a step to the GFPE location.
  • the GFPE location therefore acts as an additional constraint on the robot's motion so that the robot will attempt to maintain its balance while stepping to the GFPE location.
  • YQ is the CoM location and p is the CoP location.
  • the spatial centroidal momentum, h may also be referred to as spatial momentum, or simply the momentum of the robot 1100.
  • FIG. 1 I B depicts the robot's rate of change of angular momentum about the CoM, k , and linear momentum, / , respectively.
  • the (spatial) momentum rate change has a one- to-one relationship with the GRF and CoP.
  • the external forces illustrated in FIG. 11 A are solely responsible for the centroidal momentum rate change illustrated in FIG. 1 I B.
  • I is completely determined by f and vice versa.
  • the centroidal angular momentum rate change k is determined by both GRF ' f and the CoP location p.
  • the CoP location p depends on both k and / . This implies that complete control of p requires control of both linear and angular momentum.
  • the robot controller 200 maintains balance of the robot by control ling both the linear and angular components of the spatial momentum.
  • behavior of the robot controller 200 is defined in terms of the desired momentum rate change.
  • the desired momentum rate change may not always be physically realizable due to several constraints on the foot-ground contact.
  • the CoP is constrained in that it cannot be located outside the robot's support base.
  • the support base In the single support case (i.e., the robot's feet are positioned such that they provide a single support), the support base is identical to the foot contact area, whereas in the double support case on level ground, the support base is equivalent to the convex hull of the support areas of the two feet.
  • the GRF must be unilateral in nature, and must not attract the robot towards the ground.
  • the GRF must satisfy the friction limit of the foot-ground surface, so as not to cause slip.
  • the robot controller 200 determines the admissible or physically realizable values of the momentum rate change that are as close as possible to the desired values while satisfying the above physical constraints. Subsequently, whole body joints are controlled to generate the admissible momentum rate change.
  • the robot controls the external forces.
  • the gravity force g cannot be manipulated, and the effect of T n is typically small. Therefore, the GRF J assumes substantial importance in momentum control, and its magnitude, line of action and the point of application (i.e., the CoP) have unique effect on the momentum.
  • the desired GRF and CoP Due to the one-to-one correspondence between momentum rate change and GRF-CoP pair, the desired GRF and CoP are directly determined from the desired spatial momentum rate change.
  • the desired GRF and CoP uniquely define the contact force and its location on the support foot. However, for double support, there can be infinitely many combinations of contact forces at the two feet that can create the desired momentum rate change.
  • the individual foot GRF and foot CoP are instead computed directly from the desired momentum rate change. Assuming planar contact between the ground and each foot, the foot GRF is the ground reaction force acting on an individual foot and foot CoP is the location where its line of action intersects the foot support plane. These are contrasted from the more traditional net GRF and the net CoP, which are applicable when the two feet are taken together during double support.
  • foot GRF and foot CoP are not only a choice of convenience, but a natural choice for balance control.
  • the foot GRF and foot CoP are directly obtained as sensor data, whereas net GRF and net CoP are computed only as a subsequent step.
  • ankle torques may be minimized while generating the desired momentum rate change. As will be described in further detail below, this may be achieved by solving two simple constrained linear least- squares problems. Minimizing ankle torque is important because typically the ankle torque is more constrained than others in that it should not cause foot tipping.
  • the robot controller 200 controls both angular and linear momentum of the robot for balance maintenance.
  • the control policy is defined in terms of the desired momentum, which allows for different control variations. Under different circumstances, the robot controller 200 can satisfy linear and angular momentum in different proportions as the situation demands.
  • the postural balance control ler 212 is configured to preserve linear momentum in favor of making angular momentum changes.
  • the step controller 214 is configured to preserve angular momentum in favor of changing linear momentum by executing a step to the GFPE location. Desired foot GRF and foot CoP are directly computed without requiring the robot controller 200 to compute the net G R F and net CoP.
  • the balance control framework is applicable to non-level ground at each foot without any special treatment.
  • the robot controller 200 computes foot GRFs and foot CoPs that minimize the ankle torques,
  • the robot controller 200 generates a control signal 204 that enables a single or double-supported robot to maintain balance when subjected to pushing various directions. Furthermore, the robot can maintain balance when two feet are on separate moving supports with different inclinations and velocities. Furthermore, the robot controller 200 can be used for stepping motions.
  • FIG. 12 is a flowchart illustrating the high-level process performed by the robot controller 200, details of which are described in further detail below. From the desired motion 202, the robot controller 200 determines 1202 desired angular momentum rate change
  • the desired linear momentum rate change * d may include the linear momentum rate change ' d for enabling the robot to step to the determined GFPE location.
  • the robot controller 200 determines 1204 admissible foot ground reaction forces (GRFs) and foot center of pressures (CoPs) from the desired momentum rate change.
  • GRFs foot ground reaction forces
  • CoPs foot center of pressures
  • the admissible foot GRF and foot CoPs are constrained based on balance constraints (e.g., the admissible CoP may be constrained to the area under the support base or the robot may topple over).
  • the admissible foot GRF and foot CoPs may not precisely result in the desired momentum rate change if the robot is not physically capable of producing the desired momentum rate change while still maintaining balance.
  • the admissible foot GRF and foot CoPs result in an admissible momentum rate change that is optimally close to the desired momentum rate change under the imposed constraints.
  • the admissible momentum rate change is determined 1206 from the admissible foot GRF and foot CoPs.
  • the robot controller 200 determines 1208 joint accelerations that will achieve the admissible momentum rate change based on the desired motion of joints and feet.
  • the robot controller 200 determines 1210 joint torques to achieve the joint accelerations and the admissible foot GRF.
  • a iR ⁇ denotes the base frame (trunk) configuration and n is the total number of joint DoFs.
  • the subscripts 0 and s denote the base frame and joints, respectively, with 5 implying "shape" associated with the joint angles in geometric dynamics.
  • the total DoFs of the robot is thus 6 + n, because the floating base has 6 DoFs.
  • ⁇ G K b denotes the generalized forces
  • H is the joint space inertia matrix
  • c includes Coriolis, centrifugal, and damping forces
  • T G is the gravity torque.
  • c is a vector representing external "constraint" forces from the ground, determined by foot GRFs and CoPs, and the Jacobian / transforms f c to the generalized forces.
  • the dimension of j c depends on the nature of constraint at the foot-ground contact. For example, for single support. f c is 6 x 1 (3 for force and 3 for torque) whereas for double support, when a non- slipping planar contact between the foot and the ground is maintained, it is 12 x 1.
  • (21) can be divided into two parts, one corresponding to the base, denoted by the subscript 0, and the other, subscripted with s, for the joints. Then (20) and (21) are rewritten as follows:
  • the postural balance controller 112 determines the control torques T s to control dynamics of the robot and maintain balance.
  • the postural balance controller 112 solves an optimization problem.
  • the computational cost of the optimization increases rapidly as the dimension of the search space increases.
  • the simplest optimization problem such as the least-squares problem has order O (n j ) time complexity. Therefore, for improved computational efficiency, a sequential approach may be used.
  • the balance control problem is divided into smaller sub-problems, which can be solved serially, Moreover, by computing f c and ⁇ first, an efficient linear-time algorithms for inverse dynamics can be used, without having to compute the joint space equations of motion (21) which has a quadratic time complexity.
  • the robot controller 200 determines 1202 the desired angular and linear momentum rate changes and
  • the desired rotational behavior may be defined in terms of the CoP instead of angular momentum.
  • the GRF-CoP combination has a one-to-one relationship with momentum rate changes, their significance regarding balance are ver different. Whereas the GRF and CoP charac terize the magnitude, direction and point of application of the external forces, the momentum rate changes describe the resulting motion of a robot.
  • the unilateral nature of robot-ground contact and friction limits impose important direct constraints on the range of GRF and CoP. These influence the achievable range of momentum rate change, but only indirectly.
  • the controller 200 uses momentum as control objectives and uses GRF and CoP as constraints.
  • the overall behavior of the robot against external perturbations is determined by the desired momentum rate change.
  • the robot controller 200 employs the following feedback control policy:
  • Id/m T 2 i (r G ⁇ r G ) + r c)
  • a " and are the desired rates of change of centroidal angular and Imear momentum, respectively, m is the mass of the robot, FQJ is the desired CoM position, k is the actual angular momentum of the robot, YQ is the actual CoM position of the robot, and f " G is the actual CoM velocity of the robot.
  • Y)j represents a 3 x 3 diagonal matrix of feedback gain parameters that may be experimentally determined.
  • the feedback parameters ⁇ /? ⁇ vary between the postural balance controller 212 and the step controller 214 to achieve the different push recover ⁇ ' behaviors.
  • a small value of 1 3 1 and large values of f 21, 1 22 will generate the motion shown in FIG. 1 A after a push from behind.
  • postural balance controller 212 tries to respect linear momentum with higher priority over angular momentum.
  • the desired angular momentum is set to zero to keep the robot upright, and the bending motion generates angular momentum which contributes to the error in k .
  • the generated angular momentum helps to pull the CoM backward and the small
  • ⁇ I makes the controller almost ignore the angular momentum error.
  • the step controller 214 applies a large Y n that causes the robot to respect angular momentum more strictly. When the desired angular momentum is zero, which is reasonable for stepping motion, the controller would move the robot CoM position rather than bend the upper body. The robot generates linear momentum by stepping to the
  • the step controller 214 uses gains
  • ⁇ 11 diag ⁇ 20, 20, 20 ⁇ , ⁇ 21 ::: diag ⁇ 2, 2, 5 ⁇ , and ⁇ 22 :::: diag ⁇ 3, 3, 8 ⁇ .
  • Various sensors may be used to directly measure k, YQ , and ⁇ c , or the controller
  • each joint of the robot has a position encoder which supplies joint position data (e.g., joint angle) to the controller 200.
  • the controller 200 may apply time differentiation to the joint position data to obtain joint velocities (e.g., angular velocities),
  • the robot's trunk may be equipped with an internal gyroscope and accelerometer. The gyroscope measures trunk angular velocity, which the controller 200 can integrate to obtain the trunk's angular position.
  • the accelerometer generates linear acceleration of the trunk, which the controller 200 can integrate to obtain the trunk's linear velocity, and twice integrate to obtain the trunk's linear position.
  • the controller 200 can compute k, YQ , and YQ from one or more the various types of sensed data, in alternative embodiments different types of sensors may be used to derive the measured quantities.
  • the robot may be equipped with force sensitive skin that can directly measure applied forces, and these measured forces can be used to determine k, TQ , and FQ .
  • the robot also has a force sensor in each foot.
  • Each force sensor measures the GRF, which includes three components of linear force and three components of torque.
  • the controller 200 can compute GRF indirectly through the observed dynamics.
  • the robot controller 200 determines 1204 admissible foot GRF and CoP such that the resulting momentum rate change (i.e., the admissible momentum rate change) is as close as possible to the desired values.
  • a desired momentum rate change may not be admissible, for example, because it would require a desired CoP, J? ⁇ , that is outside the robot's support base, and attempting to implement the desired momentum rate change would therefore cause the robot to topple over.
  • the GRF must be unilateral in nature, and must not attract the robot towards the ground.
  • the robot may not be able to achieve desired momentum rate changes, k d and I it that are outside the robot's physical capabilities (e.g., if the desired momentum rate changes, k d and l d would require an actuator to produce a torque greater than it is capable of producing or a limb would be required to demonstrate a motion outside its physical range).
  • the robot is constrained by its admissible CoP and its admissible GRF, which in turn may limit the desired momentum rate change to an admissible momentum rate change.
  • the robot controller 200 determines the optimal foot GRF and foot CoP that will create the admissible momentum rate change, as close as possible to the desired momentum rate change.
  • the robot controller 200 may strike a compromise and determine whether to attempt to preserve k or more strictly.
  • the desired CoP location, j3 ⁇ 4 is translated to the closest point of the support base resulting in an admissible CoP location, J?.
  • the magnitude and line of action of the desired GRF f j is unchanged in the resulting admissible GRF .
  • the linear momentum objective of the desired motion 202 is satisfied (i.e., the CoM remains stationary) but the angular momentum objective is somewhat compromised.
  • the robot may topple over because the desired CoP location p c i is outside the support base.
  • the behavior emerging from this solution is characterized by a trunk rotation (see e.g., FIG. 1 A). This strategy can be obsen'ed in the human when the trunk yields in the direction of the push to maintain balance.
  • the step controller 214 in addition to translating the desired CoP, P d , to the support base resulting in an admissible CoP, J?, as before, the direction of the desired GRF fj can be rotated resulting in the admissible GRF f.
  • the angular momentum objective is satisfied (i.e., the robot does not perform a trunk rotation), and the linear momentum is controlled to achieve a step to the GFPE location.
  • the robot moves linearly along the direction of the applied force due to the residual linear momentum and prevents falling by taking the step (see, e.g., FIG. I B).
  • ankle torques may be taken into account in determining foot GRFs.
  • f r and fi are the GRFs at the right and left foot, respectively, and T r , ⁇ /are the positions of the body frames of the foot, located at the respective ankle joints.
  • M i is the orientation of the foot
  • d is the foot CoP in body frame
  • FIG. 14 A diagram illustrating this representation is shown in FIG. 14.
  • the pressure from the ground to the right foot is representing using CoP, denoted by d r in the right foot frame ⁇ R ⁇ , a vertical moment T ' ⁇ - ; r and the GRF f r .
  • f r is represented with four basis vectors ⁇ r J( j
  • ankle torques are meaningful because they are limited more severely than other joint torques due to the unilateral nature of contact.
  • the ankle torques (k T ⁇ 0) f 00 t GRFs J r and J should create as close to the desired angular momentum rate change k,() as possible while satisfying * fl - . If k ⁇ ⁇ ⁇ & d > the ankle torques can vanish. If k ⁇ k d , the ankle torques are determined to account for the residual angular momentum rate change, d — k - ,
  • Each loot GRF is modeled using four basis vectors ⁇ ' ⁇ ⁇ '. ' /and their magnitudes ' ⁇ that approximate the friction cone (an inverted pyramid in FIG. 14) on the ground:
  • T r and Fi are detennined by the configuration of the robot; they are constants when solving this problem. Therefore becomes a linear equation of Pi when
  • [0117] (38) can be solved using a Non-Negative Least-Squares algorithm, which has the merit of not requiring parameter tuning.
  • I is chosen such that ⁇ 1 is zero, i.e., the line of action of J" , ⁇ intersects the ankle.
  • Eq, (43) may be sol ved using an appropriate method, such as, for example, the Levenberg-Marquardt method, or other known methods. Note that both the least squares problems have a small number of variables, so the optimization can be carried out quickly.
  • the robot controller 200 determines 1108 the joint accelerations that will generate the admissible momentum rate change as well as the foot contact constraints.
  • (47) is used because the balance controller defines its objectives in terms of centroidal momentum. Specifically, the robot controller 200 computes the output accelerations a such that they minimize the following objective function:
  • (48) can be viewed as an inverse kinematics problem with three task objectives: momentum rate change, style, and contact constraints.
  • (22) By treating (22) as a hard constraint, it has a higher priority over the others.
  • (48) is solved by converting it to a least- squares problem with linear equality constraints.
  • the feedforward torque input ⁇ ⁇ $ is computed from ⁇ « and the admissible external forces by performing inverse dynamics.
  • the hybrid system dynamics algorithms may be used, which is useful for performing inverse dynamics for floating base mechanisms. Since external forces are explicitly specified for all the links contacting the ground, the robot can be treated as an open loop system even when multiple links are in contact with the ground, thereby making it possible to use the inverse dynamics algorithm for open-loop systems.
  • the desired motion of the feet acts as an input to the balance controller.
  • the desired foot accelerations . are set such that each foot has the desired configuration c ⁇ Ei 3) and velocity v ⁇ ⁇ se ⁇ 3)_ Specifically, for each foot, zwe use for * k p and / are proportional and derivative feedback gains, respectively.
  • the ' * se l ⁇ j function computes the twist coordinates corresponding to a transformation matrix.
  • the configuration T and velocity v of a foot can be computed from the forward kinematics operation assuming that the robot can estimate the configuration and velocity of the trunk, e.g., from an accelerometer and a gyroscope.
  • the robot controller 200 controls a humanoid robot to maintain balance on non- level, non-continuous, and non-stationary grounds.
  • the robot controller 200 allows the robot to maintain balance under relatively large perturbations and respond to such perturbations with human-like balancing behavior.
  • the robot controller 200 can deal with different ground geometry and ground frictions at each foot.
  • each trajectory is a quadratic Bezier curve defined as:
  • planar CoM trajectory uses current CoM, FQ, pivot foot position 7 / and the half-
  • Tj is a pivot foot position
  • T r is a swing foot position
  • T t is a target stepping point for the swing foot.
  • the reason for using the center of the pivot foot is to achieve the CoP moving inside of the pivot foot print so that a robot can make a stable step.
  • the height of CoM trajectory can be designed by modeling a robot as a rimless wheel model on the slope.
  • velocities of the trajectories are parameterized so that it has zero velocity at the start and the end.
  • the duration of the trajectory comes from the duration of stepping multiplied by a safety factor (70%) considering the discrepancy between the simplified model and the real humanoid.
  • FIGS. 16A-16B illustrate motion of the robot when subjected to various perturbations and/or when standing on non-level or non- stationary supports.
  • the initial desired motion 202 of the robot is stationary, but the robot decides to take a step in response to a push.
  • FIG. 16A for example, the robot is subjected to a push from behind when standing in front of uphill sloping ground.
  • the robot determines a GFPE location 1602 indicated by the cross. Because the GFPE location 1602 is determined to be outside of the foot, the robot takes a step to maintain balance
  • FIG. 16B illustrates a similar situation for downhill sloping ground. Due to the downhill slope, the GFPE 1604 is further away from the robot, thereby causing the robot to take a bigger step.
  • the robot can maintain balance in response to external disturbances such as a push by selectively using momentum-based postural balance control and reactive stepping, By switching By switching between controllers for respecting linear momentum and angular momentum, a biped robot can choose to take a step or re-balance without stepping according to the magnitude of external disturbance,
  • the GFPE beneficially provides a stepping location for stepping on non-le vel ground. Desirable properties of the GFPE include: 1 ) The point is predictive so that the controller may start stepping early. 2) The point may exist on the non- level ground while many previously proposed reference points for stepping do not. 3) Computation of the point y ields both the time required for stepping as well as the location of the point itself.

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

A robot controller controls a robot to maintain balance in response to an external disturbance (e.g., a push) on level or non-level ground. The robot controller determines a predicted stepping location for the robot such that the robot will be able to maintain a balanced upright position if it steps to that location. As long as the stepping location predicted stepping location remains within a predefined region (e.g., within the area under the robot's feet), the robot will maintain balance in response to the push via postural changes without taking a step, If the predicted stepping location moves outside the predefined region, the robot will take a step to the predicted location in order to maintain its balance.

Description

BACKGROUND
1. Field of the Invention
[0001] The present invention relates to robotics and, more specifically, to a balance controller for controlling a humanoid robot.
2. Description of the Related Arts
[0002] For humanoid robots to operate in the real world where they can work and/or live together with humans, the ability to recover from unexpected external disturbances such as a push is highly desirable. Without the ability to maintain balance, robots are highly susceptible to damage to themselves and to humans or objects around them. While some prior works attempt to provide a control framework to enable a robot to achieve balance control, these traditional models are often imprecise and fail to perform at the level desired. Furthermore, traditional balance controllers fail to control the robot's motions in a manner that is sufficiently human-like. Finally, traditional balance controllers are limited to flat ground, and are unable to achieve balance maintenance on ground that is non-level and/or non-stationary.
SUMMARY
[0003] In a first embodiment, a computer-implemented method controls a humanoid robot to maintain balance in response to an external disturbance. A robot controller receives state information of the humanoid robot. The robot controller determines a predicted stepping location of the robot based on the state information of the humanoid robot. The predicted stepping location comprising a location such that the humanoid robot will maintain balance if it steps to the predicted stepping location. Responsi ve to the predicted stepping location falling within a predefined region, the robot controller controls the robot to make a postural change without stepping to maintain balance in response to the external disturbance. Responsive to the predicted stepping location falling outside the predefined region, the robot controller instead controls the robot to take a step to the predicted stepping location to maintain balance in response to the external disturbance. Thus, the robot can beneficially maintain balance in response to an external disturbance by either making a postural adjustment or taking a step.
[0004] In a second embodiment, a computer-implemented method determines a stepping location on non-level ground for a humanoid robot to maintain balance in response to an external disturbance. The humanoid robot is modeled as a rimless wheel model. The rimless wheel model has a point mass corresponding to the center of mass of the humanoid robot, a first spoke corresponding to a first leg of the humanoid robot, and a second spoke corresponding to a second leg of the humanoid robot. A pl ane on which the rimless wheel model resides is detemiined based on a direction of the humanoid robot's center of mass projected onto the non-level ground. An anchor point for the rimless wheel model is determined based on the center of pressure of the humanoid robot. A dynamic model is applied to model motion of the rimless wheel through the plane about the anchor point. Based on the modeled motion, the robot controller selects which of a first section of the non- level ground and a second section of non-level ground to step to, where the first section of the non-level ground has a first slope and the second section of the non-level ground has a second slope. The stepping location is determined based on the selected section of the non- level ground such that the point mass of the rimless wheel model will come to rest above the stepping location after executing the modeled motion.
[0005] The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The teachings of the embodiments of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings.
[0007] Figure (FIG.) 1A is a diagram illustrating a postural response of the robot to maintain balance following a forward push in accordance with an embodiment of the invention.
[0008] FIG. 1 B is a diagram illustra ting a stepping response of the robot to maintain balance following a forward push in accordance with an embodiment of the invention.
[0009] FIG. 2 illustrates a robot controller in accordance with an embodiment of the invention.
[0010] FIG. 3 is a flowchart illustrating a process for controlling a humanoid robot in accordance with an embodiment of the invention.
[0011] FIG. 4 is a diagram illustrating a two spoke rimless wheel model of a humanoid robot in accordance with an embodiment of the invention.
[0012] FIG. 5 is a diagram illustrating a rimless wheel model of a humanoid robot while executing a step in accordance with an embodiment of the invention.
[0013] FIG. 6 is a flowchart illustrating an embodiment of a process for calculating a stepping location of a humanoid robot in accordance with an embodiment of the invention.
[0014] FIG. 7 is a diagram illustrating plane for determining a stepping location of a humanoid robot in accordance with an embodiment of the invention.
[0015] FIG. 8 is a diagram illustrating a various stepping phases of a rimless wheel model of a humanoid robot in accordance with an embodiment of the invention.
[0016] FIG. 9A is a diagram illustrating a rimless wheel model of a humanoid robot for a single support phase of a stepping motion in accordance with an embodiment of the invention.
[0017] FIG. 9B is a diagram illustrating a rimless wheel model of a humanoid robot for a collision phase of a stepping motion accordance with an embodiment of the invention.
[0018] FIG. 10 is a diagram illustrating balance recover}' boundary conditions of a humanoid robot using a rimless wheel model accordance with an embodiment of the invention.
[0019] FIG. 11 A is a free body diagram illustrating external forces and moments on a humanoid robot in accordance with an embodiment of the invention.
[0020] FIG. 1 I B is a free body diagram illustrating equivalent forces and moments on a center of mass of a humanoid robot in accordance with an embodiment of the invention.
[0021] FIG.12 is a flowchart illustrating a process for controlling a humanoid robot in accordance with an embodiment of the invention.
[0022] FIG. 13 is a free body diagram illustrating forces on feet of the robot in
accordance with an embodiment of the in vention.
[0023] FIG. 14 is a diagram illustrating a representation of forces applied to the feet of the robot in accordance with an embodiment of the invention.
[0024] FIG. 15 is a diagram illustrating example trajectories for a stepping motion in accordance with an embodiment of the invention.
[0025] FIG. 16A is a diagram illustrating a response of the robot to maintain balance following push from behind on uphill terrain in accordance with an embodiment of the invention.
[0026] FIG. 16B is a diagram illustrating a response of the robot to maintain balance following push from behind on downhill terrain in accordance with an embodiment of the invention.
DETAILED DESCRIPTION OF EMBODIMENTS
[0027] Embodiments are now described with reference to the figures where like reference numbers indicate identical or functionally similar elements. Also in the figures, the left most digit of each reference number corresponds to the figure in which the reference number is first used.
[0028] Reference in the specification to "one embodiment" or to "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment. The appearances of the phrase "in one embodiment" or "an embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
[0029] Some portions of the detailed description that fol lows are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art, An algorithm is here, and generally, conceived to be a self-consistent sequence of steps (instructions) leading to a desired result. The steps are those requiring physical manipulations of physical quantities, Usually, though not necessarily, these quantities take the form of electrical, magnetic or optical signals capable of being stored, transferred, combined, compared and otherwise manipulated, It is convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. Furthermore, it is also convenient at times, to refer to certain arrangements of steps requiring physical manipulations or transformation of physical quantities or representations of physical quantities as modules or code devices, without loss of generality.
[0030] However, all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or "determining" or the like, refer to the action and processes of a computer system, or similar electronic computing device (such as a specific computing machine), that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
[0031] Certain aspects of the embodiments include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the embodiments could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by a variety of operating systems. The embodiments can also be in a computer program product which can be executed on a computing system.
[0032] The embodiments also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the purposes, e.g., a specific computer, or it may comprise a general-purpose computer selectively activated or
reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits ( AS ICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. The memory/storage can be transitor or non-transitory. Memory can include any of the above and/or other devices that can store information/data/programs. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
[0033] The algorithms and displays presented herein are not inherently related to any- particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the method steps. The structure for a variety of these systems will appear from the description below. In addition, the embodiments are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the embodiments as described herein, and any references below to specific languages are provided for disclosure of enablement and best mode.
[0034] In addition, the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the embodiments are intended to be illustrative, but not limiting, of the scope of the embodiments, which are set forth in the claims.
OVERVIEW
[0035] A robot controll er controls motion of a robot to maintain balance in response to external disturbances such as a push. By regulating motion of the robot, the robot controller can selectively encourage the robot to recover its balance either with or without taking a step. FIGS. 1A-1B illustrate two different ways in which the robot can recover from a push. In FIG. IA, the robot controller fully respects the linear momentum of the robot while compromising the angular momentum (if needed). This results in postural balance change in which the robot rotates its body in response to the push to maintain balance without stepping. In FIG. I B, the robot instead respects the angular momentum while compromising linear momentum (if needed). This results in a stepping motion of the robot allowing it to maintain balance without changing its posture. Under different conditions, the robot controller determines winch balance control technique to employ, thereby enabling human-like balance recovery in response to an external perturbation.
SYSTEM ARCHITECTURE
[0036] FIG. 2 is a block diagram illustrating an embodiment of a robot controller 200 for controlling motion of a robot. In one embodiment, the robot is a humanoid biped robot having a human-like joint configuration (e.g., six degrees of freedom in each leg and a total mass of between 40 and 60 kgs). The robot controller 200 receives state information of the robot. This state information can include both sensed information pertaining to the positions and/or velocities of different components of the robot and motion instructions (e.g., from an input controller) indicating how the robot should move. For example, the motion instructions may direct the robot to, for example, stay stationary, wralk in a particular direction, move or rotate its limbs or trunk according to a particular motion, etc. These motion instructions may be irrespecti ve of balance considerations or other physical constraints on the robot. Such motion instructions may be inputted by a human through a control mechanism, or may be generated automatically by an artificial intelligence system that controls motion decisions of the robot. In one embodiment, the state information 202 is defined in terms of a motion of the feet (e.g., configuration and velocity), angular momentum about the robot's center of mass, center of mass position and velocity, and joint accelerations. In some situations, the motion instructions of the state information 202 can indicate that the robot should remain stationary (i.e., the desired angular momentum and center of mass velocity should ideally be zero).
[0037] Based on the state information 202, the robot controller 200 generates a control output 204 that controls joint actuators 250 which cause the robot to move. For example, the robot may rotate portions of its body or take a step in order to execute a motion as close as possible to the robot's motion instructions while still retaining balance. In one embodiment, the control output 204 comprises a vector of joint torques indicating the torques that the actuators will apply to each of the robot's joints. If the motion instructions would not result in the robot losing balance based on the sensed data, then the control output 204 controls the joint actuators 250 to carry out the received motion instructions. On the other hand, if the robot controller 200 determines that the motion instructions would cause the robot to lose its balance and topple over given the current state information 202, the robot controller 200 generates a control output 204 such that the resulting motion fan "admissible motion") is optimally close to the desired motion while still allowing the robot to maintain balance.
[0038] In one embodiment, the robot controller 200 is able to control the robot to maintain its balance even when the robot is subjected to external perturbations (e.g., a push) or when the robot is standing or walking on a non-level and/or non-stationary surface. The robot controller 200 may process the state information 202 and generate control output 204 periodically (e.g., once every millisecond) such that the robot continuously retains its balance even as its motion instructions change or when external forces acting on the robot change. Furthermore, because the robot controller 200 can be based on a human motion model in one embodiment, the resulting motion of the robot can be human-like, i.e., the robot moves to maintain its balance in a manner similar to a human.
[0039] In one embodiment, the robot controller 200 comprises a processor 220 and a memory 210. The processor 220 processes data signals and may comprise various computing architectures such as a complex instruction set computer (CISC) architecture, a reduced instruction set computer ( RISC) architecture, or an architecture implementing a combination of instruction sets. Although only a single processor 220 is shown in FIG. 2, multiple processors may be included. The processor 220 comprises an arithmetic logic unit, a microprocessor, a general purpose computer, or some other information appliance equipped to transmit, receive and process electronic data signals from the memory 210 or from external inputs.
[0040] The memory 210 comprises a computer-readable storage medium that stores computer-executable instructions and computer-readable data. The instructions may comprise code for performing any and/or all of the techniques described herein. The memory 210 may furthermore temporarily or persistently store data inputted to the robot controller 200 (e.g., desired motion 202), data to be outputted by die robot controller 200 (e.g., control output 204 ), and any intermediate data used to carr out the process steps of the robot controller 200 described herein. Memory 204 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device. Flash RAM (non-volatile storage), combinations of the above, or some other memory device known in the art. In operation, the processor 220 loads the computer-executable instructions and/or data from the memory 210 to carry out the process steps described herein.
[0041] In one embodiment, the memory 210 stores computer-executable instructions embodied as a high-level controller 216, a postural balance controller 212, and a step controller 214. The high-level controller 116 determines whether motion of die robot is controlled by the postural balance controller 212 or the step controller 214. Generally, the high-level controller 216 gives control to the postural balance controller 212 when the high- level controller 216 determines that the robot is not taking a step and does not need to take a step to maintain balance. The high-level controller 216 generally gives control the step controller 216 when the robot is stepping or when it detects a trigger condition indicating that the robot cannot maintain balance without taking a step.
[0042] The robot controller 200 may include more or less components than those shown in FIG. 2 without departing from the scope of the present invention. For example, computer system 200 may include additional memory, such as, for example, a first or second level cache, or one or more application specific integrated circuits (ASICs), in other embodiments, the robot controller 200 may be implemented entirely in hardware.
[0043] FIG. 3 illustrates an embodiment of a high-level process performed by the robot controller 200 for controlling a robot. The robot controller 200 receives 302 the robot state information (e.g., sensed data and current motion instructions), pertaining to the positions and/or velocities of different components of the robot. The robot controller 200 determines 304 whether the robot is currently stepping (or about to take a step). If the robot is currently stepping, the step controller 214 is used 312 to determine and control motion of the robot. Alternatively, if the robot is not currently stepping already, the robot controller 200 periodically determines 306 a generalized foot placement estimator (GFPE) based on the current dynamic state of the robot (e.g., positions and/or velocities of its joints). The GFPE represents a point on the ground surface where the robot will be in a balanced position if its foot is placed there. Generally when the robot is balanced, the GFPE will already be under the robot's CoM and therefore the robot need not take any action to retain balance. However, if the robot becomes unstable (e.g., in response to an external disturbance), the G FPE: will move away from under the robot's CoM and the robot may need to take some action to retain balance, such as making a postural change (e.g., rotating about the trunk) or taking a step. Calculation of the GFPE is described in further detail below.
[0044] If the robot determines 308 that the GFPE is within a predefined region, the robot controller 200 uses 310 the postural balance controller 212 to control the motion of the robot such that the robot will retain balance and carry out a motion based on its motion instructions. If, on the other hand, the robot controller 200 determines 308 that the GFPE falls outside the predefined region, the robot controller 200 instead uses 312 the step controller 214 to cause the robot to take a step to the determined GFPE location. In one embodiment, the predefined region comprises the area under the robot's support base (e.g., its feet). The robot controller 200 then controls 314 joint actuators of the robot to achie ve the determined motion provided by either the step controller 214 or the postural balance controller 212. Operation of the postural balance controller 212 and the step controller 214 are described in further detail below.
GFPE CALCULATION
[0045] The GFPE comprises a predicted ground location such that the robot will be able to maintain balance if it steps to the predicted location. The GFPE can exist on both level and non-level ground. In one embodiment, computation of the GFPE assumes that the ground either has a constant slope or has a single discontinuous slope change from where the robot is standing (see e.g., FIG. 9B). Furthermore, the robot has knowledge of the ground layout (e.g., the slopes and location(s) of the slope change). In one embodiment, the ground layout can be automatically detected by the robot using, for example, its computer vision system or via other sensors.
[0046] In one embodiment, the robot controller 200 determines the GFPE based on a simplified dynamic model of the humanoid robot comprising a rimless wheel with only two spokes. The rimless wheel model is illustrated in FIG. 4. The rimless wheel model has massless spokes 402, 404 of fixed length representing each of the legs of the robot. The rimless wheel model also has a point mass 406 at the center of the wheel corresponding to the CoM of the robot. In this model, the GFPE corresponds to the point on the ground where the rimless wheel model would come to a complete stop with its CoM directly above the stepping location.
[0047] FIG. 5 illustrates an example sequence of positions that the robot may take in response to a push and the corresponding rimless wheel mode! at each stage. A robot in a first position 502 is subjected to a push from behind. The robot takes a step in response to the push arriving at a second position 504 with its swing leg landing at the determined GFPE location 508. The robot then takes a follow-up step to bring the robot back to a vertically upright position 506 with its CoM above the GFPE 508. The GFPE can exist even on non- levei ground. Assuming that the robot knows the ground slopes, this GFPE exists in most cases unless stepping is physically not feasible due to the fixed length of the spokes or a steep slope.
[0048] FIG. 6 illustrates an embodiment of a process for determining the GFPE based on the rimless wheel model described above. Since the rimless wheel model is defined in two- dimensional space and the robot exists in three-dimensional space, the high-level controller 216 determines 602 a plane on which the simplified rimless model resides. This
determination is illustrated in FIG. 7. Generally, the robot controller 200 estimates that the robot will move in the same direction as the velocity of the robot CoM, , just after a push. Consequently, the GFPE will be located on the line of projected on the ground. The two- dimensional plane 702 for the rimless wheel is therefore defined by two vectors: and the vertical through the CoM. The magnitude and direction of the push do not necessarily need to be known in order to compute the GFPE. Rather, in one embodiment, the selected plane is solely dependent on the states of the robot (i.e., joint angles and velocities) after the push. In FIG. 7, P' is the actual CoP of the robot and P is the projected CoP located on the wheel plane about which the wheel rotates. The region enclosed by the dotted black lines is the support, convex hull for the robot. The two feet of the robot are drawn disproportionally large in FIG. 7 to clearly show the convex hull and the points.
[0049] Referring back to FIG. 6, an anchor point is determined 604 upon the two- dimensional plane where the rimless wheel touches the ground and rotates about. Setting an appropriate anchor point is important since the robot has extended feet while the rimless wheel model has a point, contact. The location of the anchor point affects the GFPE location and the decision for taking a step. In one embodiment, the projected CoP P is used as the anchor point, as shown in FIG. 7. The CoP P' of the robot is projected on the two- dimensional plane and it is approximated that the rimless wheel rotates about the projected CoP, P, For several reasons, the projected CoP may make a better anchor point than another possible choice, the ground projection of the CoM. First, the CoP better represents the state of the robot for the purpose of push recovery, in part because its computation includes acceleration. For example, just after a push from behind, the CoP will be ahead of the CoM as in FIG. 7. If the projected CoM is instead used as the anchor point, even a small push may result in a big step which may not be necessary at all. For instance, if the robot is pushed from behind and the projected CoM is used as the anchor point, the push may make the CoM of the rimless wheel pass over the vertical. This would imply that the robot would topple forward and stepping would become necessary. In contrast, if the projected CoP P is used as the anchor point and is ahead of the projected CoM, the kinetic energy from a small push would be dissipated before the CoM rotates and passes over the vertical line through the projected CoP P. This implies that no step is necessary since the robot would not topple forward from that small push.
A. Dynamics of rimless wheel model
[0050] A dynamic model is then applied 606 to model motion of the rimless wheel based on the determined plane and anchor point. The rotational inertia of the rimless wheel model is equal to the rotational inertia of the robot about the anchor point P. FIG. 8 illustrates four stages of motion of a rimless wheel model modeling a push from behind. Although FIG. 8 illustrates a case where the ground is flat, the described model is also valid for general non- level ground.
[0051] In the first phase 802, the CoM is behind the anchor point but will pass over the anchor point since the robot has enough kinetic energy. In the second phase 804, the robot takes a step. In the third phase 806, the robot stops with the CoM above the foot contact. The fourth phase 808 models a follow-up step of the robot in which the swing spoke takes a step at the same step location of the support spoke. The first phase 802 and third phase 806 can be modeled as an inverted pendulum model. The second phase 804 is modeled as an instantaneous phase of collision where the wheel energy is lost. These models are discussed in further detail below.
[0052] FIG.9A illustrates an inverted pendulum model modeling the first phase 802 and third phase 806 where only one of the support legs is in contact with the ground. The equation for motion is given by:
Figure imgf000013_0001
where Θ is the angle made by the support spoke and the vertical, ]P is the rotational inertia of the rimless wheel about P, m is mass, g is the acceleration due to gravity, and / is the length of the support leg. Until stepping of the swing leg, the total mechanical energy E of the rimless wheel is conserved.
[0053] At time t just before the touchdown collision of the second phase 804, the conservation of E leads to the followin relationship:
Figure imgf000014_0001
since Θ(ί ) = (1, where GL is the leg angle defined as the half-angle between the spokes. The sign of 9 t ) is decided by the initial condition. For example, in the convention of Fig. 9A, the sign is negative.
[0054] During the collision in the second phase 804 when the swing leg impacts the ground, the angular momentum hp is estimated as being conserved around the collision point. In other words,
Figure imgf000014_0002
where f is the time just after the collision. The collision results in an instantaneous loss of angular velocity. The angular velocity immediately after the collision is given by:
Figure imgf000014_0003
[0055] Based on this dynamic model, the GFPE is next determined for non-level ground, i?. Whether to step on the next slope
[0056] if the ground is non-level with discrete slope change as shown in Fig. 9B, the robot determines 608 if it should take a step on the first slope or the second slope .
Introducing the constants di = PiO and <¾ :;= OP 2 where O is the point of intersection of the slopes, Pi is the anchor point and P2 is the touch-down location of the swing spoke on the second slope, the leg angle CX0 for stepping on O is determined as follows:
21 sis. &0 = di .
(5)
[0057] The robot should take a step on the second slope if any of the two following conditions are satisfied: (1) After the step at time t+ , when the pivoting spoke just detached from the first slope, θ(ί+) = (X J\ is negative. This means that the CoM has already crossed the vertical line through O: (2) Upon stepping at O, the kinetic energy is large enough for the robot to topple forward.
[0058] The first condition is purely geometric and it implies that:
(6)
[0059] When y j < aa , the second condition is checked to see whether ^(O) is large enough for toppling. To satisfy the condition:
Figure imgf000015_0001
(7)
Eqs. (6) and (7) together are the conditions for the robot to take a step on the second slope.
[0060] In the simpler case, where the ground is flat, the robot need not explicitly make the determination in step 608, and this step can be omitted. However, the above equations can still be used where y j = J 2 = 0.
C. Where to step
[0061] The robot next determines 610 where to step. In the case of non-level ground where the conditions given by Eqs. (6) and (7) are satisfied, the robot takes a step on the second slope. In this case, the robot controller 100 determines the leg angle . which will stop the robot at the vertically upright configuration at the end of the stepping.
[0062] The robot controller 200 first checks the geometrically possible range of a given the initial configuration. This detemiination is illustrated in FIGS. 10A-B. FIG. 1 OA shows a first limiting case. Here, if the minimum distance from /¾ to the second slope is shorter than the spoke length /, the robot (based on the rimless wheel model) camiot physically step between the two points P2 and P3 in FIG 10A which are the points of intersection of the /- radius circle centered at β and the second slope. FIG. 10B shows a second limiting case.
Here, even assuming a 90-degree il, presumably the maximum leg angle, the robot still cannot stop toppling because of the steep ground slope. In most cases these limitations would not exist since the two cases imply an extreme situation such as when the slope is too steep or the robot has already fallen too much. [0063] For the sake of convenience, the remaining description excludes the cases illustrated in FIGs. 10A-B. When the robot steps on the second slope as shown in FIG. the angle Θ between the support spokes and the vertical line are:
Figure imgf000016_0001
The distance from O to the stepping point, P2 in FIG. 9B can be computed as:
(!:> =—di cos( i + 2} + sin — at sin. + 7
[0065] β is given as:
Figure imgf000016_0002
— l.| Sill "fj -†- SI1
S.1D O— ;
21 Sill Q: (10)
Note that d?. and /? are functions of a only.
[0067] After the step, the rimless wheel is expected to come to a complete stop. By virtue of consen'ation of energy between the third phase 806 and fourth phase 808 of FIG. 8, θ{ί ) can be obtained as follows:
Figure imgf000016_0003
il l) 0068] Combining Eqs. (4), (2) and (1 1), the following equation is obtained:
Figure imgf000016_0004
(12)
[0069] Solving this equation numerically gives the leg angle a and corresponding stepping point for the GFPE.
[0070] In the simpler case, where the ground is flat (J[ ~ J 2 ~ 0), the equation above yields a simpler fifth-order polynomial equation for cos 0£:
Figure imgf000017_0001
[0071] The physical limitation of a humanoid implies the boundary conditions for (X as:
Figure imgf000017_0002
[0072] Based on the description above, it can be shown that fX for the GFPE exists between Ct0 and π 4, To illustrate this, it is observed that Equation (12) is continuous in (X, For (l = &Q, the left terms of Equation (12) are strictly positive since Equation (7) holds. (Note that β ::: - γι when Ot :::: <¾»), For CI π I 4, the left term of Equation (12) is strictly negative. Therefore, at least one d between Ci0 and π / 4 satisfies Equation (12).
[0073] The above proof might seem counter-intuitive since one can ask if there is any case the robot topples again after taking the step because of large initial disturbance. The reason is that the rimless wheel model completely stops at the moment of the step where (X = π 14, which yields the zero angular velocity in Eq. (4) regardless of the magnitude ofE. This result comes from no slip condition and the inelastic collision model. In practice, if the initial disturbance is very large, a robot may experience slippage and the conservation of angular momentum during inelastic collision may not be realistic.
[0074] Furthermore, based on the description above, it can be shown that the solution to a is unique. To illustrate this, it can be shown that the total energy after the impact E+(CI) monotonically decreases with increasing CL Since the solution should satisfy Ef((Xj ) = mgL there should be only one (X for the energy. Given d\ and (¾ where ΐίι X j , let H (C j ) and be the total energies after the impact. The energy difference can be computed as following:
Figure imgf000017_0003
which is strictly negative when ¾2 > (X and fX £ [0, π / 4]. Extension of this proof to the non-level ground is trivial when a solution exists. D. Duration of step
[0075] In an urgent situation like reactive stepping, the duration of stepping is an important parameter. One of the benefits from using the GFPE is that the robot can estimate the time during which the robot can take a step because the robot has dynamics and the stepping motion takes a certain amount of time. In addition, the duration of stepping is important also for the robot controller 200. If the estimated duration of step is too short for the robot to physically take a step, the robot controller 200 may switch to an emergency protocol such as fall-avoidance or damage minimization from fall, instead of trying to take a step. Since the robot is modeled as a two-dimensional inverted pendulum, an incomplete elliptic integral of the first kind is used to obtain the stepping duration.
/: Benefits of GFPE
[0076] There are several benefits to estimating a stepping point using GFPE as described above. First, GFPE is predictive. It yields a future stepping point and duration for the step. This contrasts with other foot placement estimators that are state-dependent, and therefore may result in the estimated point moving away by the time the robot takes the step, in addition, the GFPE exists on the non-level ground as long as the slopes change discretely. In contrast, prior foot placement estimators assume a flat ground and cannot make foot placement predictions for non-level ground.
GENERALIZED BALANCE CONTROL
[0077] A generalized balance control technique is now described for controlling motion of the robot. These general principles can be used to implement both the postural balance controller 212 and the step controller 214. In the postural balance controller 212, balance parameters described below are configured such that the robot will attempt to preserve its desired linear momentum o ver angular momentum, and is therefore likely to respond to an external perturbation by making a postural change to maintain balance. In the step controller 214 , different parameters are configured such that the robot will instead respond to the push by taking a step to the GFPE location. In the step controller 214, the GFPE location therefore acts as an additional constraint on the robot's motion so that the robot will attempt to maintain its balance while stepping to the GFPE location.
[0078] FIG, 1 1 A is a free body diagram illustrating the external forces that act on a freely standing humanoid robot 1100. These include the ground reaction force (GRF) /, the
Ground Reaction Moment T„ normal to the ground, and the weight mg of the robot 1100, where m is the total robot mass and g is the acceleration due to gravity. The center of pressure (CoP) is located at a point p. According to D'Alembaxt's principle, the sum of external moments and external forces, respectively, are equivalent to the rates of changes of angular and linear momentum, respecti vely, of the robot 1 100. The mathematical expression for these relationships are given by (16) and ( 17):
k = (p - rG) x / + Tn (16)
I— rag + f
[0079] in the above equations, YQ is the CoM location and p is the CoP location.
Together k and I is a 6 x 1 vector called the spatial centroidal momentum h— [ k 1 ] .
As used herein, the spatial centroidal momentum, h, may also be referred to as spatial momentum, or simply the momentum of the robot 1100.
[0080] FIG. 1 I B depicts the robot's rate of change of angular momentum about the CoM, k , and linear momentum, / , respectively. The (spatial) momentum rate change has a one- to-one relationship with the GRF and CoP. As can be seen from (16) and (17), the external forces illustrated in FIG. 11 A are solely responsible for the centroidal momentum rate change illustrated in FIG. 1 I B. Specifically, I is completely determined by f and vice versa. Furthermore, the centroidal angular momentum rate change k is determined by both GRF' f and the CoP location p. Conversely, the CoP location p depends on both k and / . This implies that complete control of p requires control of both linear and angular momentum.
[0081] Using this fundamental mathematical relation, the robot controller 200 maintains balance of the robot by control ling both the linear and angular components of the spatial momentum. Specifically, in one embodiment, behavior of the robot controller 200 is defined in terms of the desired momentum rate change. Note that the desired momentum rate change may not always be physically realizable due to several constraints on the foot-ground contact. First, the CoP is constrained in that it cannot be located outside the robot's support base. In the single support case (i.e., the robot's feet are positioned such that they provide a single support), the support base is identical to the foot contact area, whereas in the double support case on level ground, the support base is equivalent to the convex hull of the support areas of the two feet. Second, the GRF must be unilateral in nature, and must not attract the robot towards the ground. Third, the GRF must satisfy the friction limit of the foot-ground surface, so as not to cause slip. Thus, the robot controller 200 determines the admissible or physically realizable values of the momentum rate change that are as close as possible to the desired values while satisfying the above physical constraints. Subsequently, whole body joints are controlled to generate the admissible momentum rate change.
Determination of GRF and CoP of individual Foot
[0082] In order to generate the admissible momentum, the robot controls the external forces. Out of the three external forces shown in FIG, 1 1 A, the gravity force g cannot be manipulated, and the effect of Tn is typically small. Therefore, the GRF J assumes substantial importance in momentum control, and its magnitude, line of action and the point of application (i.e., the CoP) have unique effect on the momentum. Due to the one-to-one correspondence between momentum rate change and GRF-CoP pair, the desired GRF and CoP are directly determined from the desired spatial momentum rate change. For single support, the desired GRF and CoP uniquely define the contact force and its location on the support foot. However, for double support, there can be infinitely many combinations of contact forces at the two feet that can create the desired momentum rate change.
[0083] One way to resolve this redundancy during double support would be to determine the GRF and CoP first, and then distribute them to each foot. However, this approach has important drawbacks. First, when the feet are located on non-level and non-continuous surfaces, the CoP may not be defined. To check the feasibility of the GRF heuristic virtual level plane may be defined or, more generally, the 3D convex hulls made by the contact points may be computed. With this approach, it is difficult to handle the case where foot/ground friction is different for the two feet.
[0084] To avoid this problem, in one embodiment, the individual foot GRF and foot CoP are instead computed directly from the desired momentum rate change. Assuming planar contact between the ground and each foot, the foot GRF is the ground reaction force acting on an individual foot and foot CoP is the location where its line of action intersects the foot support plane. These are contrasted from the more traditional net GRF and the net CoP, which are applicable when the two feet are taken together during double support.
[0085] For the present-day humanoids, which are equipped with individual foot force sensors, the use of foot GRF and foot CoP is not only a choice of convenience, but a natural choice for balance control. The foot GRF and foot CoP are directly obtained as sensor data, whereas net GRF and net CoP are computed only as a subsequent step.
[0086] The non-uniqueness of foot GRF' and foot CoP during double support allows for an additional optimality criterion in the solution, Specifically, the ankle torques may be minimized while generating the desired momentum rate change. As will be described in further detail below, this may be achieved by solving two simple constrained linear least- squares problems. Minimizing ankle torque is important because typically the ankle torque is more constrained than others in that it should not cause foot tipping.
[0087] The robot controller 200 controls both angular and linear momentum of the robot for balance maintenance. The control policy is defined in terms of the desired momentum, which allows for different control variations. Under different circumstances, the robot controller 200 can satisfy linear and angular momentum in different proportions as the situation demands. For example, using the same general control principles, the postural balance control ler 212 is configured to preserve linear momentum in favor of making angular momentum changes. In contrast, the step controller 214 is configured to preserve angular momentum in favor of changing linear momentum by executing a step to the GFPE location. Desired foot GRF and foot CoP are directly computed without requiring the robot controller 200 to compute the net G R F and net CoP. Thus, the balance control framework is applicable to non-level ground at each foot without any special treatment. For double support, the robot controller 200 computes foot GRFs and foot CoPs that minimize the ankle torques,
[0088] Beneficially, the robot controller 200 generates a control signal 204 that enables a single or double-supported robot to maintain balance when subjected to pushing various directions. Furthermore, the robot can maintain balance when two feet are on separate moving supports with different inclinations and velocities. Furthermore, the robot controller 200 can be used for stepping motions.
[0089] FIG. 12 is a flowchart illustrating the high-level process performed by the robot controller 200, details of which are described in further detail below. From the desired motion 202, the robot controller 200 determines 1202 desired angular momentum rate change
*, and cie.rred liner momentum rate chmge , (collectively referred to here™„ desired momentum rate change). In the case of the step control ler, the desired linear momentum rate change * d may include the linear momentum rate change ' d for enabling the robot to step to the determined GFPE location.
[0090] Next, the robot controller 200 determines 1204 admissible foot ground reaction forces (GRFs) and foot center of pressures (CoPs) from the desired momentum rate change. The admissible foot GRF and foot CoPs are constrained based on balance constraints (e.g., the admissible CoP may be constrained to the area under the support base or the robot may topple over). Thus, the admissible foot GRF and foot CoPs may not precisely result in the desired momentum rate change if the robot is not physically capable of producing the desired momentum rate change while still maintaining balance. Instead, the admissible foot GRF and foot CoPs result in an admissible momentum rate change that is optimally close to the desired momentum rate change under the imposed constraints. The admissible momentum rate change is determined 1206 from the admissible foot GRF and foot CoPs. The robot controller 200 determines 1208 joint accelerations that will achieve the admissible momentum rate change based on the desired motion of joints and feet. The robot controller 200 then determines 1210 joint torques to achieve the joint accelerations and the admissible foot GRF. Each of the process steps abo ve are now described in further detai l below .
A, Control Framework
[0091] The configuration of a bumanoid robot may be represented as
Q - (To, 0) e SE(3) x R" where To = (RQ I PQ) £
SO(3) A iR^ denotes the base frame (trunk) configuration and n is the total number of joint DoFs. The subscripts 0 and s denote the base frame and joints, respectively, with 5 implying "shape" associated with the joint angles in geometric dynamics. The total DoFs of the robot is thus 6 + n, because the floating base has 6 DoFs. The generalized velocity can be written as 9 ~ (ν0 · ^) € ° ' where v0 = Κω§ -> ν ) is the spatial velocity of the trunk with respect to the body fram expressed as:
Figure imgf000022_0001
T .
0 (19)
[0092] Then, the constraint equations due to ground contacts and the joint space equations of motion of the robot are as follows:
Figure imgf000022_0002
T - H(Q)q + c[Q, q) + rg {Q) - JTfc (21)
where τ G Kb ; denotes the generalized forces, H is the joint space inertia matrix, c includes Coriolis, centrifugal, and damping forces, and TG is the gravity torque. c is a vector representing external "constraint" forces from the ground, determined by foot GRFs and CoPs, and the Jacobian / transforms fc to the generalized forces. The dimension of j c depends on the nature of constraint at the foot-ground contact. For example, for single support. fc is 6 x 1 (3 for force and 3 for torque) whereas for double support, when a non- slipping planar contact between the foot and the ground is maintained, it is 12 x 1.
[0093] Since the robot base is free floating, the first six elements of rare zero, i.e.,
' lu ' .s J. Hence, (21) can be divided into two parts, one corresponding to the base, denoted by the subscript 0, and the other, subscripted with s, for the joints. Then (20) and (21) are rewritten as follows:
0 = Jq + Jq (22)
Hoq + Co 4- Tg ) ······ j(} f( (23)
Hsq + c8 + J (24) where ( 22) is the differentiation of (20). In view of the framework abo ve, the postural balance controller 112 determines the control torques Ts to control dynamics of the robot and maintain balance.
[0094] Due to the high DoFs of humanoid robots, one embodiment of the postural balance controller 112 solves an optimization problem. However, the computational cost of the optimization increases rapidly as the dimension of the search space increases. Even the simplest optimization problem such as the least-squares problem has order O (nj) time complexity. Therefore, for improved computational efficiency, a sequential approach may be used. In this approach, the balance control problem is divided into smaller sub-problems, which can be solved serially, Moreover, by computing fc and ^ first, an efficient linear-time algorithms for inverse dynamics can be used, without having to compute the joint space equations of motion (21) which has a quadratic time complexity.
B. Desired Momentum for Balance Controller
[0095] After receiving the desired motion 202, the robot controller 200 determines 1202 the desired angular and linear momentum rate changes and In various alternative embodiments, the desired rotational behavior may be defined in terms of the CoP instead of angular momentum. Although the GRF-CoP combination has a one-to-one relationship with momentum rate changes, their significance regarding balance are ver different. Whereas the GRF and CoP charac terize the magnitude, direction and point of application of the external forces, the momentum rate changes describe the resulting motion of a robot. The unilateral nature of robot-ground contact and friction limits impose important direct constraints on the range of GRF and CoP. These influence the achievable range of momentum rate change, but only indirectly. On the other hand, it is more natural to describe the aggregate motion of a robot in terms of momentum. Therefore, in the described embodiment, the controller 200 uses momentum as control objectives and uses GRF and CoP as constraints. The overall behavior of the robot against external perturbations is determined by the desired momentum rate change. In one embodiment, the robot controller 200 employs the following feedback control policy:
kd = rn (kd - k) (25)
Id/m = T2i (rG ~~ rG) +
Figure imgf000024_0001
rc)
(26) where A", and are the desired rates of change of centroidal angular and Imear momentum, respectively, m is the mass of the robot, FQJ is the desired CoM position, k is the actual angular momentum of the robot, YQ is the actual CoM position of the robot, and f" G is the actual CoM velocity of the robot. Y)j represents a 3 x 3 diagonal matrix of feedback gain parameters that may be experimentally determined.
[0096] The feedback parameters Γ/?· vary between the postural balance controller 212 and the step controller 214 to achieve the different push recover}' behaviors. For example, in the general framework described above, a small value of 1 3 1 and large values of f 21, 1 22 will generate the motion shown in FIG. 1 A after a push from behind. In this case, postural balance controller 212 tries to respect linear momentum with higher priority over angular momentum. Normally the desired angular momentum is set to zero to keep the robot upright, and the bending motion generates angular momentum which contributes to the error in k . However, the generated angular momentum helps to pull the CoM backward and the small
Γ{ I makes the controller almost ignore the angular momentum error. For example, in one embodiment the postural balance controller 212 uses gains Fn = diag{5, 5, 5}, Γ21 = diag{40, 20, 40}, and Γ22 = diag{8, 3, 8} . [0097] On the other hand, the step controller 214 applies a large Y n that causes the robot to respect angular momentum more strictly. When the desired angular momentum is zero, which is reasonable for stepping motion, the controller would move the robot CoM position rather than bend the upper body. The robot generates linear momentum by stepping to the
GFPE location which causes error for / . However the error is scaled do wn because of the small 2' l and Γ22, and the robot controller 200 prioritizes the desired angular momentum over the desired linear momentum. In one embodiment, the step controller 214 uses gains
Γ11 = diag{20, 20, 20}, Γ21 ::: diag{2, 2, 5}, and Γ22 ::: diag{3, 3, 8} .
[0098] Note that unlike the linear position feedback term in (26), there is no angular position feedback in (25). This is because a physically meaningful angular "position" cannot be defined corresponding to angular momentum. For postural balance maintenance experiments (i.e., the desired linear and angular momentum are zero and it is desired that the robot stands still), kd and ?G,d are set to zero and Q to the mid-point of the geometric centers of the two feet. For other cases where the robot is in motion, the desired motion 202 may include non-zero kd and ? c,d■
[0100] Various sensors may be used to directly measure k, YQ , and ^c , or the controller
200 may derive L rG , and i : from other measurable quantities and known robot parameters (e.g., the mass and geometry of each link). For example, in one embodiment, each joint of the robot has a position encoder which supplies joint position data (e.g., joint angle) to the controller 200. The controller 200 may apply time differentiation to the joint position data to obtain joint velocities (e.g., angular velocities), Additionally, the robot's trunk may be equipped with an internal gyroscope and accelerometer. The gyroscope measures trunk angular velocity, which the controller 200 can integrate to obtain the trunk's angular position. The accelerometer generates linear acceleration of the trunk, which the controller 200 can integrate to obtain the trunk's linear velocity, and twice integrate to obtain the trunk's linear position. The controller 200 can compute k, YQ , and YQ from one or more the various types of sensed data, in alternative embodiments different types of sensors may be used to derive the measured quantities. For example, in one embodiment, the robot may be equipped with force sensitive skin that can directly measure applied forces, and these measured forces can be used to determine k, TQ , and FQ .
[0101] In one embodiment, the robot also has a force sensor in each foot. Each force sensor measures the GRF, which includes three components of linear force and three components of torque. Alternatively, the controller 200 can compute GRF indirectly through the observed dynamics.
C. Admissible Foot GRF, Foot CoP, and Momentum Rate Change
[0102] Given the desired momentum rate changes, d an ^ , the robot controller 200 determines 1204 admissible foot GRF and CoP such that the resulting momentum rate change (i.e., the admissible momentum rate change) is as close as possible to the desired values. A desired momentum rate change may not be admissible, for example, because it would require a desired CoP, J?^, that is outside the robot's support base, and attempting to implement the desired momentum rate change would therefore cause the robot to topple over. Furthermore, the GRF must be unilateral in nature, and must not attract the robot towards the ground.
Furthermore, the robot may not be able to achieve desired momentum rate changes, kd and I it that are outside the robot's physical capabilities (e.g., if the desired momentum rate changes, kd and ld would require an actuator to produce a torque greater than it is capable of producing or a limb would be required to demonstrate a motion outside its physical range). Thus, the robot is constrained by its admissible CoP and its admissible GRF, which in turn may limit the desired momentum rate change to an admissible momentum rate change. The robot controller 200 determines the optimal foot GRF and foot CoP that will create the admissible momentum rate change, as close as possible to the desired momentum rate change.
1) Prioritization between Linear and Angular Momentum
[0103] If the desired foot GRF and foot CoP are not admissible, it is not physically possible to generate the desired momentum rate changes and still maintain balance. In this case, the robot controller 200 may strike a compromise and determine whether to attempt to preserve k or more strictly. When to postural balance controller 212 is used, the desired CoP location, j¾ is translated to the closest point of the support base resulting in an admissible CoP location, J?. The magnitude and line of action of the desired GRF f j is unchanged in the resulting admissible GRF . In this case the linear momentum objective of the desired motion 202 is satisfied (i.e., the CoM remains stationary) but the angular momentum objective is somewhat compromised. If the angular momentum was not compromised, the robot may topple over because the desired CoP location pci is outside the support base. The behavior emerging from this solution is characterized by a trunk rotation (see e.g., FIG. 1 A). This strategy can be obsen'ed in the human when the trunk yields in the direction of the push to maintain balance.
[0104] In contrast, when the step controller 214 is used, in addition to translating the desired CoP, Pd, to the support base resulting in an admissible CoP, J?, as before, the direction of the desired GRF fj can be rotated resulting in the admissible GRF f. Under this solution, the angular momentum objective is satisfied (i.e., the robot does not perform a trunk rotation), and the linear momentum is controlled to achieve a step to the GFPE location. In this case, the robot moves linearly along the direction of the applied force due to the residual linear momentum and prevents falling by taking the step (see, e.g., FIG. I B).
2) Single Support Case:
[0105] Dealing with single support case is straightforward because the foot G RF and CoP are uniquely determined from the desired momentum rate change, from (16) and (17) as follows: fd = Id - mg (27)
Pd,X — rG.X — ; ( fd.X Ta.y— k<LZ)
*·/. ·> — tn;} (28)
1
!>,< . / = VG . Z — -* i jd. y. ! '< ;. ) + >·',;. v )
'<!>' ™ ·' '', ·7 (29)
[0106] where the Y-axis is parallel to the direction of gravity vector, i.e., g= (0, g; 0). If J" j and Pd computed above are valid, these values are computed directly. Otherwise, as mentioned previously, the controller gives higher priority to linear momentum. If is outside the friction cone, is first projected onto the friction cone to prevent foot slipping. 3) Double Support Case:
[0107] Determining foot GRFs and foot CoPs for double support is more involved. (16) and (17) may be rewritten for the double support ease. Here, the GRF at each foot is expressed in terms of the forces and torques applied to the corresponding ankle. A free body diagram illustrating this concept is shown in FIG, 13. By representing the GRF applied to each foot with respect to the local frame of the foot located at the ankle, the moments r ' ^ applied to the ankle by the foot GRFs J r and f } can be factored out, F, and Fj are the positions of the ankles. The benefit of this representation is that the torques applied to the ankles may be explicitly expressed.
* * *
k = k f + kT p0} k f = ( rr - rG) x fr + (r* - rG) x f) 01 }
*
h" r * r -†- Ύ i ^
I - mg + f r + /, (33)
[0108] In (30), t is divided into two parts: I, due to the ankle force, and > , due to ankle torque. Thus, ankle torques may be taken into account in determining foot GRFs. f r and fi are the GRFs at the right and left foot, respectively, and Tr, Γ/are the positions of the body frames of the foot, located at the respective ankle joints. The ankle torques
^" i - ' · are ex ressed in terms of foot GRF and foot CoP as follows:
Figure imgf000028_0001
where M i is the orientation of the foot, d is the foot CoP in body frame,
and ,-'vi — (0j 0, T, i) § the normal torque in body frame.
[0109] A diagram illustrating this representation is shown in FIG. 14. The pressure from the ground to the right foot is representing using CoP, denoted by drin the right foot frame {R}, a vertical moment T'<-; r and the GRF fr. f r is represented with four basis vectors ^rJ( j
= 1...4) that approximate the friction cone of the ground, i.e., f r — · β;- i r i
'J J where Prj ( > {)) is the magnitude in the direction of Therefore, the ground pressure is defined by 7 parameters, i. fl » · · · > Pr -, d-rx , dry , mv,r } representation is compact, having only one more parameter than the minimum (3 for force and 3 for torque), and constraint can be expressed in a very simpl e form for a rectangular convex hull of the foot sole, i.e., Pj — 0
[0110] ii - - and ^ T l < P$r,z. μ is a friction coefficient and h is the height of foot frame from the foot sole.
[0111] Given k and I, solving for foot GRFs and foot CoPs is an underdetermined problem. Thus, additional optimality criteria may be prescribed to find a solution. By incorporating minimal ankle torques into the optimal condition, the objective function can be expressed as follows:
+ Wk \ \kd - Hfr f Tr , Ti )
? ( Ι Ι f A f ) u -T ( | |τγ T i )
s.t. f τ and Ti are admissible (2 where the first two terms aim to achieve the desired momentum rate change, the third term regularizes foot GRFs. and the last term tries to minimize ankle torques, w~s are weighting factors among the different objectives.
[0112] Due to the cross product form of j / and d[ in (34), minimizing (35) is a nonlinear problem. For improved computational efficiency, one solution is to convert this general nonlinear optimization problem to easier ones that can be solved using least-squares or quadratic programming methods. This can be achieved by expressing the foot GRF and foot CoP using the forces at sample contact points. However, a trade-off to this approach is that it increases the dimension of the search space significantly. For example, in one in one embodiment, GRF and CoP of one can be modeled using 16 variables to model the GRF and CoP of one foot, which is 10 more variables than the dimension of the unknowns.
[0113] Alternati vely, instead of increasing the search space to make the optimization problem easier, (35) can be approximated with two constrained least-squares problems, one for determining the foot GRFs, and the other for determining the foot CoPs. This way the number of variables is kept small. Additionally, the ankle torques may be minimized.
Minimizing ankle torques is meaningful because they are limited more severely than other joint torques due to the unilateral nature of contact. In order to minimize the ankle torques (kT→ 0) f00t GRFs J r and J should create as close to the desired angular momentum rate change k,() as possible while satisfying *fl- . If k <■ ~ &d > the ankle torques can vanish. If k ≠ kd , the ankle torques are determined to account for the residual angular momentum rate change, d — k - ,
a) Determination of Foot GRFs
[0114] The solution to the optimization problem below yields the foot GRFs, fr and fr:
[0115] where ϋ' t 6 -> are weighting factors for angular momentum and the magnitude of foot GRFs, respectively that may be experimentally determined. For example, in one embodiment, w- 0.1 and D \ = 0,01. Note that if kd = k y , the ankle torques become zero. Each loot GRF is modeled using four basis vectors ·' β~ '.'/and their magnitudes ' ΐ that approximate the friction cone (an inverted pyramid in FIG. 14) on the ground:
(37) where 04 = ~
Figure imgf000030_0001
■■■ t β~*.i.4i,
[0116] Note that Tr and Fi are detennined by the configuration of the robot; they are constants when solving this problem. Therefore becomes a linear equation of Pi when
(37) is substituted into (31). Rearranging into a matrix equation, the optimization problem (36) is turned into a linear least squares problem with non-negativity constraints where the only unknowns are the :
Figure imgf000030_0002
where:
Figure imgf000031_0001
[0117] (38) can be solved using a Non-Negative Least-Squares algorithm, which has the merit of not requiring parameter tuning.
b) Determination of Foot CoPs
[0118] Usually, the desired an ular momentum rate change cannot be generated only by f r and J i , so the residual
Figure imgf000031_0002
n' f , should he generated by the ankle torques. this end, local CoP ot each foot is determined such that they create k '- ϊ
To '' while minimizing each ankle torque. It is to be noted that, after fixing J , (19) can be written as a linear function of d; and t}■' :
Figure imgf000031_0003
so that the optimization problem can be expressed as a least squares problem with upper and lower constraints:
Figure imgf000031_0004
where
Figure imgf000031_0005
(45)
n>3 x 6
where the elements of the constant matrix * fc L^ are determined from (42).
r/ and r/ a r re determined from foot geometry, friction coefficient, and the normal component of foot GRF as illustrated in FIG. 5. I is chosen such that ^ 1 is zero, i.e., the line of action of J" , intersects the ankle. Eq, (43) may be sol ved using an appropriate method, such as, for example, the Levenberg-Marquardt method, or other known methods. Note that both the least squares problems have a small number of variables, so the optimization can be carried out quickly.
4) Admissible Momentum Rate Change:
[0119] After determining admissible foot GRF and foot CoP, the admissible momentum rate
L
change ' ^ is also computed using (16) and (17), or (30) and (33) for double support.
D, Determination of Joint Accelerations and Torques
[0120] After determining the admissible foot GRFs, foot CoPs, and momentum rate change, the robot controller 200 determines 1108 the joint accelerations that will generate the admissible momentum rate change as well as the foot contact constraints.
[0121] First, the desired joint accelerations ¾f are resolved for balance such that they satisfy
(22) and a variation of (23). The spatial centroidal momentum h '* ~ L i"f' * iT i"r can be expressed in terms of the generalized velocities:
h = A(Q)q m
Λ r~ Ώ> 6 x ί -i- n }
where Ά fe Λ ' is the centroidal momentum matrix that linearly maps the generalized velocities to the spatial momentum. Differentiating (46), derives:
h = . g + Aq
[0122] After replacing h with external forces using Newton's law (refer to (16) and (17)), the aggregate motion of the dynamic system due to the external forces is expressed, which is the same as what (23) represents (note that the joint torques are not included in (23)) .The only difference is the reference frame: (47) is expressed with respect to a frame at the CoM whereas (23) is written with respect to the base frame.
[0123] In this embodiment, (47) is used because the balance controller defines its objectives in terms of centroidal momentum. Specifically, the robot controller 200 computes the output accelerations a such that they minimize the following objective function:
w\ \ha — Aq— Aq\ \ + (1 — ιιή \ \θ^— s.t, q -†- Jq— a<i
[0124] where is the admissible momentum rate change and ^specifies the desired joint acceleration, which may describe the desired motions of the upper body. The parameter w controls the relative importance between the balance objective (the first term) and the prescribed motion objective associated with the kinematic task (the second term).
'a'(iV» 'd-l> is the desired accelerations of the right and left feet, which will be described in further detail below.
[0125] Overall, (48) can be viewed as an inverse kinematics problem with three task objectives: momentum rate change, style, and contact constraints. By treating (22) as a hard constraint, it has a higher priority over the others. (48) is solved by converting it to a least- squares problem with linear equality constraints.
[0126] Finally, the feedforward torque input ^ ^ $ is computed from ^« and the admissible external forces by performing inverse dynamics. In one embodiment, the hybrid system dynamics algorithms may be used, which is useful for performing inverse dynamics for floating base mechanisms. Since external forces are explicitly specified for all the links contacting the ground, the robot can be treated as an open loop system even when multiple links are in contact with the ground, thereby making it possible to use the inverse dynamics algorithm for open-loop systems.
[0127] Overall torque input is determined by adding feedback terms: $ =: Tff Tfb (49)
[0128] where ΓΡ ~ diag(¾ ) and Γ<* - <}* gi?<a) are proportional and derivative gains, respectively. Position and velocity commands θ , Θ are detemiined from the time integration of @a ,
E. Desired Motion of the Feet
[0129] As described above, the desired motion of the feet acts as an input to the balance controller. In one embodiment, the desired foot accelerations . are set such that each foot has the desired configuration c ^Ei 3) and velocity v< ^ se{ 3)_ Specifically, for each foot, zwe use
Figure imgf000033_0001
for *
Figure imgf000034_0001
kp and / are proportional and derivative feedback gains, respectively.
The ' * sel^j function computes the twist coordinates corresponding to a transformation matrix. The configuration T and velocity v of a foot can be computed from the forward kinematics operation assuming that the robot can estimate the configuration and velocity of the trunk, e.g., from an accelerometer and a gyroscope. For a stationary support foot, the values can be trivially set as v<*— 0 = 0 and Td. = T.
[0130] Thus, the robot controller 200 controls a humanoid robot to maintain balance on non- level, non-continuous, and non-stationary grounds. By controlling both linear and angular momentum of the robot, the robot controller 200 allows the robot to maintain balance under relatively large perturbations and respond to such perturbations with human-like balancing behavior. By determining the CoP and GR F at each support foot without using the traditional net CoP and net GRF of the robot, the robot controller 200 can deal with different ground geometry and ground frictions at each foot.
TRAJECTORIES FOR STEPPING CONTROL
When the step controller 214 controls the robot to take a step, trajectories are determined for the CoM and the swing foot given the determined GFPE. FIG. 15 illustrates example trajectories of the robot's CoM, TQ, and swing foot Tr. The CoM trajectory is a reference for the rate change of linear momentum (Eq. 17), and the swing foot trajectory is one of the optimization goals in the balance control technique described above. In one embodiment, each trajectory is a quadratic Bezier curve defined as:
T = (1 - i)2T® + 2(1 - i)iTi 4- £2 2. t€ f 11
(
51)
[0131] The planar CoM trajectory uses current CoM, FQ, pivot foot position 7/ and the half-
T, + T,
way between the pivot foot and the target stepping point ^ where Tj is a pivot foot position, Tr is a swing foot position, and Tt is a target stepping point for the swing foot. The reason for using the center of the pivot foot is to achieve the CoP moving inside of the pivot foot print so that a robot can make a stable step. The height of CoM trajectory can be designed by modeling a robot as a rimless wheel model on the slope. The swing foot
r, slightly lifted 1 r and i t. For smooth motion, velocities of the trajectories are parameterized so that it has zero velocity at the start and the end. The duration of the trajectory comes from the duration of stepping multiplied by a safety factor (70%) considering the discrepancy between the simplified model and the real humanoid.
APPLICATIONS OF THE BALANCE CONTROLLER
[0132] Applying the control framework above, the robot controller 200 is able to control the robot to maintain balance in response to a push. FIGS. 16A-16B illustrate motion of the robot when subjected to various perturbations and/or when standing on non-level or non- stationary supports. In each of these examples, the initial desired motion 202 of the robot is stationary, but the robot decides to take a step in response to a push. In FIG. 16A, for example, the robot is subjected to a push from behind when standing in front of uphill sloping ground. In response to the push, the robot determines a GFPE location 1602 indicated by the cross. Because the GFPE location 1602 is determined to be outside of the foot, the robot takes a step to maintain balance, FIG. 16B illustrates a similar situation for downhill sloping ground. Due to the downhill slope, the GFPE 1604 is further away from the robot, thereby causing the robot to take a bigger step.
ADDITIONAL ALTERNATIVE EMBODIMENTS
[0133] Using the unified framework for push recovery on level and non-level ground described abo ve, the robot can maintain balance in response to external disturbances such as a push by selectively using momentum-based postural balance control and reactive stepping, By switching By switching between controllers for respecting linear momentum and angular momentum, a biped robot can choose to take a step or re-balance without stepping according to the magnitude of external disturbance, The GFPE beneficially provides a stepping location for stepping on non-le vel ground. Desirable properties of the GFPE include: 1 ) The point is predictive so that the controller may start stepping early. 2) The point may exist on the non- level ground while many previously proposed reference points for stepping do not. 3) Computation of the point y ields both the time required for stepping as well as the location of the point itself.
[0134] Upon reading this discl osure, those of skill in the art will appreciate still additional alternative designs for a robot controller, a having the features described herein. Thus, while particular embodiments and applications of the presen t invention have been illustrated and described, it is to be understood that the invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the axt may be made in the arrangement, operation and details of the method and apparatus of the present invention disclosed herein without departing from the spirit and scope of the invention as defined in die appended claims.

Claims

1. A computer-implemented method for controlling a humanoid robot in response to an external disturbance, the method comprising:
receiving, by a robot controller, state information of a humanoid robot;
determining, by the robot controller, a predicted stepping location of the robot based on the state information of the humanoid robot, the predicted stepping location comprising a location such that the humanoid robot will maintain balance if it steps to the predicted stepping location;
responsive to the predicted stepping location falling within a predefined region, controlling the robot to make a postural change without stepping to maintain balance in response to the external disturbance; and
responsive to the predicted stepping location falling outside the predefined region, controlling the robot to take a step to the predicted stepping location to maintain balance in response to the external disturbance.
2. The computer-implemented method of claim 1 , wherein determining the predicted
stepping location comprises:
modeling the humanoid robot as a rimless wheel model representing a first leg and a second leg of a same length, the rimless wheel model having a point mass corresponding to the center of mass of the humanoid robot, a first spoke corresponding to the first l eg of the humanoid robot, and a second spoke corresponding to the second leg of the humanoid robot,
3. The computer-implemented method of claim 2, wherein determining the predicted
stepping location comprises:
determining a plane on which the rimless wheel model resides;
determining an anchor point for the rimless wheel model;
applying a dynamic model to model motion of the rimless wheel through the plane about the anchor point; and
determining, based on the modeled motion, the stepping location as a point on the ground surface where the rimless wheel model will come to a stop with the point mass above the stepping location.
4. The computer-implemented method of claim 1 , wherein determining the predicted
stepping location comprises: determining a location on non-level ground having at least a first section of ground with a first slope and a second section of ground with a second slope.
, The computer-implemented method of claim 4, wherein determining the predicted
stepping location comprises:
selecting which of the first section of ground and the second section of ground to step to; and
determining the stepping location based on the selected section of the ground.
, The computer-implemented method of claim 1, wherein controlling the humanoid robot to make a postural change comprises:
determining desired rates of change of linear and angular momentum of the robot based on the desired motion;
determining admissible rates of change of linear and angular momentum based on the desired rates of change and physical limitations of the humanoid robot for balance maintenance, wherein the desired rate of change of linear momentum is respected with preference over the desired rate of change of angular momentum;
generating, by the balance controller, a control output indicating joint torques for achieving the admissible rates of change of linear and angular momentum; and outputting, by the balance controller, the control output to joint actuators, the joint actuators causing the robot to move according to joint torques.
, The computer-implemented method of claim 1, wherein controlling the humanoid robot to take the step to the predicted stepping location comprises:
determining desired rates of change of linear and angular momentum of the robot based on the desired motion and to achieve a step to the predicted stepping location;
determining admissible rates of change of linear and angular momentum based on the desired rates of change and physical limitations of the humanoid robot for balance maintenance, wherein the desired rate of change of angular momentum is respected with preference over the desired rate of change of linear momentum;
generating, by the balance controller, a control output indicating joint torques for achieving the admissible rates of change of linear and angular momentum; and outputting, by the balance controller, the control output to joint actuators, the joint actuators causing the robot to move according to joint torques.
8. The computer-implemented method of claim 8, further comprising:
determining a trajectory of a center of mass of the humanoid robot; and
determining a trajectory for a swing foot of the robot executing the step to the
predicted stepping location,
9. A non-transitory com uter-readable storage medium for storing computer program
instructions for controlling a humanoid robot in response to an external disturbance, the program instructions when executed by a processor cause the processor to perform steps including:
receiving, by a robot controller, state information of the humanoid robot;
determining, by the robot controll er, a predicted stepping location of the robot based on the state information of the humanoid robot, the predicted stepping location comprising a location such that the humanoid robot will maintain balance if it steps to the predicted stepping location;
responsive to the predicted stepping location falling within a predefined region, controlling the robot to make a postural change without stepping to maintain balance in response to the external disturbance; and
responsive to the predicted stepping location falling outside the predefined region, controlling the robot to take a step to the predicted stepping location to maintain balance in response to the external disturbance.
10. The non-transitory computer-readable storage medium of claim 9, wherein determining the predicted stepping location comprises:
modeling the humanoid robot as a rimless wheel model representing a first leg and a second leg of a same length, the rimless wheel model having a point mass corresponding to the center of mass of the humanoid robot, a first spoke corresponding to the first leg of the humanoid robot, and a second spoke corresponding to the second leg of the humanoid robot,
11. The non-transitory computer-readable storage medium of claim 10, wherein determining the predicted stepping location comprises:
determining a plane on which the rimless wheel model resides;
determining an anchor point for the rimless wheel model;
applying a dynamic model to model motion of the rimless wheel through the plane about the anchor point; and determining, based on the modeled motion, the stepping location as a point on the ground surface where the rimless wheel model will come to a stop with the point mass above the stepping location.
12. The non-transitory computer-readable storage medium of claim 9, wherein determining the predicted stepping location comprises:
determining a location on non-level ground ha ving at least a first section of ground with a first slope and a second section of ground with a second slope.
13. The non-transitory computer-readable storage medium method of claim 12, wherein determining the predicted stepping location comprises:
selecting which of the first section of ground and the second section of ground to step to; and
determining the stepping location on the selected section of the ground.
14. The non-transitory computer-readable storage medium of claim 9, wherein controlling the humanoid robot to make a postural change comprises:
determining desired rates of change of linear and angular momentum of the robot based on the desired motion;
determining admissible rates of change of linear and angular momentum based on the desired rates of change and physical limitations of the humanoid robot for balance maintenance, wherein the desired rate of change of linear momentum is respected with preference over the desired rate of change of angular momentum;
generating, by the balance controller, a control output indicating joint torques for achieving the admissible rates of change of linear and angular momentum; and outputting, by the balance controller, the control output to joint actuators, the joint actuators causing the robot to move according to joint torques.
15. The non-transitory computer-readable storage medium of claim 9, wherein controlling the humanoid robot to take the step to the predicted stepping location comprises: determining desired rates of change of linear and angular momentum of the robot based on the desired motion and to achieve a step to the predicted stepping location;
determining admissibl e rates of change of linear and angular momen tum based on the desired rates of change and physical limitations of the humanoid robot for balance maintenance, wherein the desired rate of change of angular momentum is respected with preference over the desired rate of change of linear momentum ;
generating, by the balance controller, a control output indicating joint torques for achieving the admissible rates of change of linear and angular momentum: and outputting, by the balance controller, the control output to joint actuators, the joint actuators causing the robot to move according to joint torques.
The non-transitory computer-readable storage medium of claim 15, further comprising: determining a trajectory of a center of mass of the humanoid robot; and
determining a trajectory for a swing foot of the robot executing the step to the
predicted stepping location.
A computer-implemented method for determining a stepping location on non-level
ground for a humanoid robot in response to an external disturbance, the method comprising:
modeling the humanoid robot as a rimless wheel model, the rimless wheel model having a point mass corresponding to the center of mass of the humanoid robot, a first spoke corresponding to a first leg of the humanoid robot, and a second spoke corresponding to a second leg of the humanoid robot; determining a plane on which the rimless wheel model resides based on a direction of the humanoid robot's center of mass projected onto the non-level ground; determining an anchor point for the rimless wheel modei based on the center of
pressure of the humanoid robot;
applying a dynamic modei to model motion of the rimless wheel through the plane about the anchor point;
selecting, based on the modeled motion, which of a first section of the non-le vel ground and a second section of non-level ground to step to, the first section of the non-level ground having a first slope and the second section of the non- level ground having a second slope; and
determining the stepping location on the selected section of the non-level ground above which the point mass of the rimless wheel model will come to rest after executing the modeled motion.
The method of claim 17, wherein determining the stepping location comprises:
determining a possible range of stepping locations based on physical limitations of the robot; and
determining the stepping location within the possible range.
19. The method of claim 17, further comprising:
determining a leg angle of the humanoid robot to achieve a step to the stepping
location; and
determining a duration of time to complete the step to the stepping loca tion.
20. The method of claim 17, wherein applying the dynamic model comprises:
applying a first model to model a first phase of a stepping motion where the humanoid robot balances on a support leg while stepping with a swing leg, the first model modeling the humanoid robot as an inverted pendulum; and
appl ing a second model to model a second phase of the stepping motion where the swing leg impacts the non-level ground, the second model modeling an instantaneous collision between the swing leg and the non-level ground.
PCT/US2012/029848 2011-03-21 2012-03-20 Humanoid robot push recovery on level and non-level ground Ceased WO2012129250A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014501193A JP5845334B2 (en) 2011-03-21 2012-03-20 Robot control method and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161454933P 2011-03-21 2011-03-21
US61/454,933 2011-03-21

Publications (2)

Publication Number Publication Date
WO2012129250A2 true WO2012129250A2 (en) 2012-09-27
WO2012129250A3 WO2012129250A3 (en) 2014-05-01

Family

ID=46878014

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/029848 Ceased WO2012129250A2 (en) 2011-03-21 2012-03-20 Humanoid robot push recovery on level and non-level ground

Country Status (3)

Country Link
US (1) US8849454B2 (en)
JP (1) JP5845334B2 (en)
WO (1) WO2012129250A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019096A (en) * 2012-11-23 2013-04-03 北京理工大学 Humanoid robot inverse dynamics controller based on acceleration optimization
CN113093780A (en) * 2021-04-06 2021-07-09 中山大学 Robot balance control method and device based on reduced pole allocation method
CN119200606A (en) * 2024-09-23 2024-12-27 哈尔滨工业大学 A method, device, terminal and storage medium for controlling the stepping time of a bipedal humanoid robot

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130063230A (en) * 2011-12-06 2013-06-14 삼성전자주식회사 Walking robot and control method for thereof
US9156159B2 (en) * 2012-03-08 2015-10-13 Disney Enterprises Inc. Robot cyclic locomotion using a dynamic object
US9193403B2 (en) 2013-03-20 2015-11-24 Honda Motor Co., Ltd Humanoid fall damage reduction
US9044859B2 (en) 2013-10-31 2015-06-02 Disney Enterprises, Inc. Method for gait generation and tracking control for a bipedal walking robot
US10081098B1 (en) 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9517561B2 (en) * 2014-08-25 2016-12-13 Google Inc. Natural pitch and roll
US9387588B1 (en) 2014-08-25 2016-07-12 Google Inc. Handling gait disturbances with asynchronous timing
US9618937B1 (en) 2014-08-25 2017-04-11 Google Inc. Slip detection using robotic limbs
US9446518B1 (en) * 2014-11-11 2016-09-20 Google Inc. Leg collision avoidance in a robotic device
US9499218B1 (en) 2014-12-30 2016-11-22 Google Inc. Mechanically-timed footsteps for a robotic device
US9594377B1 (en) 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US9586316B1 (en) 2015-09-15 2017-03-07 Google Inc. Determination of robotic step path
US9821461B1 (en) * 2015-10-09 2017-11-21 X Development Llc Determining a trajectory for a walking robot to prevent motor overheating
US10017218B1 (en) 2015-11-11 2018-07-10 Boston Dynamics, Inc. Achieving a target gait behavior in a legged robot
US9925667B1 (en) 2016-01-25 2018-03-27 Boston Dynamics, Inc. Continuous slip recovery
US9789919B1 (en) 2016-03-22 2017-10-17 Google Inc. Mitigating sensor noise in legged robots
US10977274B2 (en) * 2017-10-05 2021-04-13 Sungard Availability Services, Lp Unified replication and recovery
CN110053039B (en) * 2018-01-17 2021-10-29 深圳市优必选科技有限公司 Gravity compensation method and device in robot walking and robot
US20200306998A1 (en) * 2019-03-25 2020-10-01 Boston Dynamics, Inc. Multi-Body Controller
CN113119102B (en) * 2019-12-31 2022-09-20 深圳市优必选科技股份有限公司 Humanoid robot modeling method and device based on floating-base flywheel inverted pendulum
CN112256030B (en) * 2020-10-20 2021-06-15 乐聚(深圳)机器人技术有限公司 Robot footprint generation method, device, robot and medium
CN113031639B (en) * 2021-03-22 2024-03-12 深圳市优必选科技股份有限公司 Robot step length processing method, device, robot control equipment and storage medium
CN113305839B (en) * 2021-05-26 2022-08-19 深圳市优必选科技股份有限公司 Admittance control method and admittance control system of robot and robot
CN113359800B (en) * 2021-06-30 2024-08-09 深圳市优必选科技股份有限公司 Robot walking control method, robot walking control device, robot control equipment and storage medium
US12097619B2 (en) * 2022-09-26 2024-09-24 Fanuc Corporation Predictive control method for torque-rate control and vibration suppression
CN115686012B (en) * 2022-10-31 2024-04-12 北京小米机器人技术有限公司 Robot anti-disturbance method, device, equipment and medium
KR102810916B1 (en) * 2022-11-14 2025-05-22 주식회사 레인보우로보틱스 Robot having a plurality of legs and method for determining touchdown position thereof
CN117950317B (en) * 2024-01-02 2024-11-26 南开大学 A robot trajectory restoration control method based on online planning and adjustment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06170757A (en) * 1992-04-28 1994-06-21 Honda Motor Co Ltd Link type mobile robot controller
JP3132156B2 (en) 1992-05-22 2001-02-05 本田技研工業株式会社 Gait generator for legged mobile robot
JP3555107B2 (en) * 1999-11-24 2004-08-18 ソニー株式会社 Legged mobile robot and operation control method for legged mobile robot
JP4971977B2 (en) 2004-03-31 2012-07-11 本田技研工業株式会社 A method for controlling a legged robot based on the rate of change of angular momentum
WO2006040868A1 (en) 2004-10-15 2006-04-20 Honda Motor Co., Ltd. Gait generator of legged mobile robot
JP2006116672A (en) * 2004-10-22 2006-05-11 Tohoku Univ Biped robot walking control device and walking control system
US7313463B2 (en) * 2005-03-31 2007-12-25 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics
US7949430B2 (en) * 2006-11-29 2011-05-24 Honda Motor Co., Ltd. Determination of foot placement for humanoid push recovery
WO2009067458A1 (en) * 2007-11-21 2009-05-28 Honda Motor Co., Ltd. Learning capture points for humanoid push recovery
JP2009184034A (en) * 2008-02-04 2009-08-20 Toyota Motor Corp Legged robot and control method thereof
KR20100001567A (en) 2008-06-27 2010-01-06 삼성전자주식회사 Walking robot and method of controlling the same
US8369991B2 (en) * 2008-12-19 2013-02-05 Honda Motor Co., Ltd. Humanoid fall direction change among multiple objects
US8352077B2 (en) * 2008-12-19 2013-01-08 Honda Motor Co., Ltd. Inertia shaping for humanoid fall direction change
US8554370B2 (en) * 2009-05-15 2013-10-08 Honda Motor Co., Ltd Machine learning approach for predicting humanoid robot fall

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019096A (en) * 2012-11-23 2013-04-03 北京理工大学 Humanoid robot inverse dynamics controller based on acceleration optimization
CN113093780A (en) * 2021-04-06 2021-07-09 中山大学 Robot balance control method and device based on reduced pole allocation method
CN119200606A (en) * 2024-09-23 2024-12-27 哈尔滨工业大学 A method, device, terminal and storage medium for controlling the stepping time of a bipedal humanoid robot

Also Published As

Publication number Publication date
US20120245734A1 (en) 2012-09-27
US8849454B2 (en) 2014-09-30
JP5845334B2 (en) 2016-01-20
JP2014518774A (en) 2014-08-07
WO2012129250A3 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
WO2012129250A2 (en) Humanoid robot push recovery on level and non-level ground
US9367795B2 (en) Momentum-based balance controller for humanoid robots on non-level and non-stationary ground
US8798793B2 (en) Apparatus and method for stabilizing humanoid robot
US8195332B2 (en) Learning capture points for humanoid push recovery
Stephens et al. Dynamic balance force control for compliant humanoid robots
US9389598B2 (en) Systems and methods for tracking and balancing robots for imitating motion capture data
Stephens et al. Push recovery by stepping for humanoid robots with force controlled joints
Hopkins et al. Compliant locomotion using whole-body control and divergent component of motion tracking
EP2933069B1 (en) Omnidirectional wheeled humanoid robot based on a linear predictive position and velocity controller
EP0965416B1 (en) Attitude controller of legged moving robot
US7949430B2 (en) Determination of foot placement for humanoid push recovery
US11253993B2 (en) Method for modeling robot simplified for stable walking control of bipedal robot
US9193403B2 (en) Humanoid fall damage reduction
Kuehn et al. System design and testing of the hominid robot charlie
WO2012129259A1 (en) Damage reduction control for humanoid robot fall
Yi et al. Online learning of a full body push recovery controller for omnidirectional walking
Stephens et al. Modeling and control of periodic humanoid balance using the linear biped model
EP4112234B1 (en) Legged robot and method for controlling legged robot
Whitman et al. Torso rotation for push recovery using a simple change of variables
Lim et al. Control design to achieve dynamic walking on a bipedal robot with compliance
Senthilkumar et al. Model-based Controller Design for Automatic Two Wheeled Self Balancing Robot
Jalgha et al. A hybrid ankle/hip preemptive falling scheme for humanoid robots
Han et al. Implementing torque control-based biped walking of humanoid robots with high reduction gear and no joint torque feedback
Jaberi et al. Analysis of 3D Passive Walking Including Turning Motions for the Finite-width Rimless Wheel
Koolen Force control for a humanoid robot using momentum and instantaneous capture point dynamics

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12760438

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2014501193

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 12760438

Country of ref document: EP

Kind code of ref document: A2