US20110066283A1 - Whole-body humanoid control from upper-body task specifications - Google Patents

Whole-body humanoid control from upper-body task specifications Download PDF

Info

Publication number
US20110066283A1
US20110066283A1 US12/881,129 US88112910A US2011066283A1 US 20110066283 A1 US20110066283 A1 US 20110066283A1 US 88112910 A US88112910 A US 88112910A US 2011066283 A1 US2011066283 A1 US 2011066283A1
Authority
US
United States
Prior art keywords
motion
zmp
modified
dynamically
force
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.)
Granted
Application number
US12/881,129
Other versions
US8924015B2 (en
Inventor
Ghassan Bin Hammam
David E. Orin
Behzad Dariush
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 US12/881,129 priority Critical patent/US8924015B2/en
Assigned to HONDA MOTOR CO., LTD. reassignment HONDA MOTOR CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DARIUSH, BEHZAD
Publication of US20110066283A1 publication Critical patent/US20110066283A1/en
Application granted granted Critical
Publication of US8924015B2 publication Critical patent/US8924015B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

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

Definitions

  • the disclosure generally relates to the field of controlling motion of a system, and more specifically to generating dynamically feasible motion of a system.
  • One aspect of the present invention provides a method (and corresponding system and computer program product) for generating dynamically feasible whole-body motion of a humanoid robot while realizing specified upper-body task motion.
  • the method generates kinematically feasible upper-body motion based on the specified upper-body motion, computes a series of zero-moment points (ZMP) for the generated motion, and determines whether such motion is dynamically feasible. If the motion is not dynamically feasible, then the method modifies the torso acceleration to make the motion dynamically feasible, and otherwise synchronizes the torso acceleration as needed.
  • the method then computes a series of modified ZMP based on the modified torso acceleration and distributes the resultant net ground reaction force and moment to the two feet.
  • Another aspect of the present invention provides a method (and corresponding system and computer program product) for determining a ZMP for a system.
  • the method determines a joint motion for the system along with a first derivative and a second derivative of the joint motion, and applies a Recursive Newton-Euler algorithm to determining a torque for the system based on the joint motion, the first derivative, and the second derivative.
  • the method determines a resultant ground reaction force for the system based on the determined torque, and computes the ZMP for the system based on the resultant ground reaction force.
  • Another aspect of the present invention provides a method (and corresponding system and computer program product) for modifying a motion of a system having a plurality of links connected through a plurality of joints.
  • the method modifies a ZMP of the system performing the motion, and determines a modified net force and moment for the system based on the modified ZMP.
  • the method determines a bias force for one of the plurality of links based on the modified net force and moment, determines a bias acceleration for said link based on the determined bias force, and determines a modified motion of the system based on the determined bias acceleration.
  • FIG. 1 is a block diagram illustrating a whole-body motion generation system in accordance with one embodiment of the invention.
  • FIG. 2 is a flow diagram illustrating a process of the whole-body motion generation system shown in FIG. 1 in accordance with one embodiment of the invention.
  • FIGS. 3A and 3B are diagrams illustrating force transformation to compute a zero-moment point (ZMP) in accordance with one embodiment of the invention.
  • FIG. 4 is a flow diagram illustrating another process of the whole-body motion generation system shown in FIG. 1 in accordance with one embodiment of the invention.
  • FIG. 5 is a diagram illustrating several steps of the process shown in FIG. 4 in accordance with one embodiment of the invention.
  • FIGS. 6A-6D are diagrams showing a result of the whole-body motion generation system for generating dynamically feasible whole-body motion of Hyundai's humanoid robot ASIMO based on a specified upper-body task motion in accordance with one embodiment of the invention.
  • the present invention provides a system (and corresponding method and computer program product) for generating dynamically feasible (e.g., balanced) whole-body motion of a humanoid robot (or a human model) while realizing specified upper-body task motion (also called the “reference motion”).
  • the system computes a zero moment point (ZMP) of the humanoid robot based on the upper-body task specifications, and determines whether the reference motion is dynamically feasible based on whether the computed ZMP falls within the support.
  • ZMP zero moment point
  • the system determines a feasible modification of a commanded torso acceleration to produce a modified ZMP which is inside the support, and distributes a resultant ground reaction force between the two feet of the humanoid robot by minimizing the ankle roll and pitch torques. Once the computed ZMP for the reference motion again falls within the support, the system synchronizes the feasible modified motion to the reference motion.
  • FIG. 1 is a block diagram illustrating a whole-body motion generation system 100 for generating dynamically feasible (e.g., balanced) whole-body motion of a humanoid robot (or human model) while realizing specified upper-body task motion according to one embodiment.
  • a humanoid robot is in double support stance and commanded to execute an upper-body motion expressed by Cartesian (or task) variables.
  • the whole-body motion generation system 100 includes a constrained closed loop inverse kinematics (CCLIK) module 110 , an acceleration modification module 120 , an original ZMP computation module 125 , a resolved acceleration module 130 , a modified ZMP computation module 140 , a force distribution module 150 , an inverse dynamics (ID) module 160 , and a humanoid robot dynamic model module 170 .
  • CCLIK constrained closed loop inverse kinematics
  • ID inverse dynamics
  • the inputs of the whole-body motion generation system 100 include Cartesian variables representing the desired upper body orientation and position task descriptors denoted by ( ⁇ , p) UB . Additional information regarding how the task descriptors are generated is available at U.S. patent application Ser. No. 12/455,257, the content of which is incorporated by reference herein in its entirety.
  • the CCLIK module 110 applies kinematic inversion of the task motion specified by the task descriptors to joint motion commands subject to kinematic constraints (e.g., joint limit constraints, joint velocity constraints, and self collision constraints) using an online constrained closed loop inverse kinematics (CCLIK) algorithm, and outputs a kinematically feasible (e.g., collision free) upper-body joint acceleration vector, ⁇ umlaut over (q) ⁇ UB , and a desired torso acceleration vector, a t,d .
  • a kinematically feasible motion/accelerations are also called desired motion/accelerations. Additional information regarding the CCLIK algorithm is available at C.
  • the original ZMP computation module 125 computes a series of ZMP for the humanoid robot performing the desired motion based on the outputs of the CCLIK module 110 .
  • the acceleration modification module 120 filters the dynamic effects of the desired upper-body motion by analyzing the computed ZMP and making adjustments to the torso acceleration as needed.
  • the resolved acceleration module 130 takes the modified torso acceleration ⁇ a t and the desired upper-body accelerations a t,d as inputs, and uses position and velocity feedback to compute a resolved acceleration vector a in terms of joint variables. Once subsequent desired upper-body motion becomes dynamically feasible, the resolved acceleration module 130 synchronizes the modified torso acceleration with the desired torso acceleration (e.g., the modified torso acceleration gradually becomes the desired torso acceleration) during a synchronization period.
  • the modified ZMP computation module 140 computes a modified ZMP p zmp and a net ground reaction force and moment f net for the humanoid robot based on the resolved acceleration vector ⁇ .
  • the force distribution module 150 distributes f net between the two feet, denoted by f R and f L , respectively.
  • the ID module 160 produces the torque commands, denoted by T, to generate dynamically feasible whole-body motion including the desired upper-body motion.
  • the humanoid robot dynamic model module 170 takes the torque commands to calculate the resultant joint position q and velocity ⁇ dot over (q) ⁇ , and provides the results to other components of the whole-body motion generation system 100 .
  • the tracking control based on acceleration modification is referred to as modified resolved acceleration control (MRAC).
  • FIG. 2 is a flow diagram illustrating a process 200 for the whole-body motion generation system 100 to generate dynamically feasible whole-body motion while realizing specified upper-body task motion according to one embodiment.
  • the whole-body motion generation system 100 generates 210 kinematically feasible (e.g., collision free) upper-body motion (also called “desired motion”) based on task descriptors representing specified upper-body orientation and position.
  • the whole-body motion generation system 100 computes 220 a series of ZMP based on the kinematically feasible upper-body motion and determines 230 whether such motion is dynamically feasible (e.g., balanced).
  • the whole-body motion generation system 100 modifies 240 the desired torso acceleration to make the motion dynamically feasible, and otherwise synchronizes 250 the torso acceleration with the desired torso acceleration if needed (e.g., previously modified).
  • the whole-body motion generation system 100 then computes 260 a modified ZMP based on the modified torso acceleration and distributes 270 the resultant net ground reaction force and moment to the two feet.
  • the whole-body motion generation system 100 models a humanoid robot (or human model) as a set of N+1 links interconnected by N joints, of up to six degrees of freedom (DOF) each, forming a tree-structure topology.
  • the motion of the links are referenced to a fixed base (inertial frame) which is labeled 0 while the links are labeled from 1 through N.
  • the inertial frame is attached to the ground.
  • ⁇ i , v i , ⁇ dot over ( ⁇ ) ⁇ i , and ⁇ dot over (v) ⁇ i are the angular velocity, the linear velocity, the angular acceleration, and the linear acceleration of link i, respectively, as referenced to the link coordinate frame.
  • one of the links is modeled as a floating base (typically the torso) and numbered as link 1 .
  • a fictitious six DOF joint is inserted between the floating base and the fixed base.
  • n i is the moment about the origin of the link coordinate frame
  • f i is the translational force referenced to the link coordinate frame
  • the spatial coordinate transformation matrix i X j may be composed from the position vector j p i from the origin of coordinate frame j to the origin of i, and a 3 ⁇ 3 rotation matrix i R j , which transforms 3D vectors from coordinate frame j to i:
  • This transformation matrix can be used to transform spatial quantities from one frame to another as follows:
  • q, ⁇ dot over (q) ⁇ , ⁇ umlaut over (q) ⁇ , and ⁇ denote n-dimensional generalized vectors of joint position, velocity, acceleration and force variables, respectively.
  • H(q) is an (n ⁇ n) joint-space inertia matrix.
  • C is an (n ⁇ n) matrix such that C ⁇ dot over (q) ⁇ is the vector of Coriolis and centrifugal terms.
  • ⁇ g is the vector of gravity terms.
  • J is a Jacobian matrix
  • f e is the external spatial force acting on the system. When the feet are the only contacts for the subject with the environment, the external force includes the foot spatial contact forces (ground reaction force/moment),
  • the joint torques ⁇ are computed using Equation 8, where the torques can be computed as a function of the joint motion q, its first and second derivatives ⁇ dot over (q) ⁇ , ⁇ umlaut over (q) ⁇ , and the left and right foot spatial contact forces f L and f R :
  • ⁇ UB , ⁇ R , and ⁇ L are the joint torques for the upper body, right leg, and left leg, respectively.
  • f t is the force on the torso (the floating-base link), and it will be zero if the external (foot) forces are consistent with the given system acceleration since the torso is not actuated.
  • the very efficient O(n) Recursive Newton-Euler Algorithm is applied to calculate the quantities.
  • the RNEA is efficient because it calculates most of the quantities in local link coordinates and it includes the effects of gravity in an efficient manner.
  • Whole-body humanoid robot (or human model) control requires information about the dynamic feasibility of the desired upper-body motion to be performed.
  • Computing the Zero-Moment Point (ZMP) for a given motion can help predicting the dynamic feasibility of the motion, e.g., the balance of the humanoid robot performing the motion.
  • An efficient algorithm for the original ZMP computation module 125 and/or the modified ZMP computation module 140 to compute the ZMP for a given whole-body motion according to one embodiment is described in this section.
  • the ZMP is defined as the point on the support base at which the resultant reaction forces are acting. See M. Vukobratovic et al., “Contributions to the synthesis of biped gait,” IEEE Transactions on Biomedical Engineering (1969), vol. 17, no. 1, pp. 25-36, and M. Vukobratovic et al., “Zero-moment point—thirty five years of its life,” International Journal of Humanoid Robotics (2004), vol. 1, no. 1, pp. 157-173, the content of both are incorporated by reference herein in their entirety.
  • the algorithm for computing the ZMP is based on determining the resultant foot force (force and moment) for a given system acceleration.
  • the resultant spatial force on the system (the torso in the case of RNEA) can be computed as illustrated in FIG. 3 a .
  • this spatial force can be applied to any body of the system. Therefore, if the spatial force is transformed into the inertial frame (ground), the resultant ground reaction force (resultant foot force) will be obtained (see FIG. 3 b ) and then the ZMP position is computed.
  • the algorithm is summarized in the table below. Note that the resulting algorithm is efficient because the main computation is the RNEA for inverse dynamics for the kinematic trees of the humanoid robot dynamic model.
  • the whole-body motion generation system 100 applies a resolved acceleration control (RAC) process to filter the dynamic effects of the desired upper-body motion by appropriately modifying and synchronizing the desired torso acceleration.
  • the method allows coordination of the legs to give the desired motion of the torso, and coupled with the force distribution method described below, provides for control of the individual foot forces.
  • the RAC process is described in detail in subsection A below.
  • the RAC process requires dynamically feasible motion to track. Therefore, a mechanism for motion modification is necessary for the RAC process when the motion is dynamically infeasible (e.g., not balanced).
  • Subsection B describes an example method for the acceleration modification module 120 to modify the system acceleration (e.g., the torso acceleration) so that the motion is feasible.
  • the modified motion needs to be quickly and smoothly moved to the desired motion when the desired motion is again dynamically feasible.
  • a method to synchronize the modified motion with the desired motion is described in subsection C below.
  • the output of the RAC process along with the foot forces from the force distribution module 150 are used to compute the lower-body joint torques required to produce the modified motion of the torso using Inverse Dynamics (ID) as illustrated in Equation 10.
  • ID Inverse Dynamics
  • ⁇ t and p t denote the torso orientation (described by Euler angles) and position, respectively.
  • the task-descriptor vector x t [ ⁇ t T p t Y ] T is related to the spatial velocity of the torso v t via an equation of the form
  • E is a 6 ⁇ 6 transformation matrix that depends on the Euler sequence used.
  • torso acceleration a t is computed as
  • v t is the current torso spatial velocity and a t,d is the desired torso spatial acceleration from the original motion.
  • e t is the position and orientation error computed as:
  • K p,t and K v,t are matrices of proportional and derivative gains for torso control.
  • Equation 17 and 18 the right and left leg accelerations ( ⁇ umlaut over (q) ⁇ R and ⁇ umlaut over (q) ⁇ L ) can be computed using the following equations:
  • J ⁇ denotes the pseudo-inverse of J.
  • the pseudo-inverse J ⁇ can simply be replaced by the inverse J ⁇ 1 .
  • a R and/or a L 0.
  • the control law is the same as Equation 8 after replacing ⁇ umlaut over (q) ⁇ with ⁇ .
  • the upper-body accelerations for the arms are set by using computed-torque control specified in the following equation:
  • ⁇ UB ⁇ dot over (q) ⁇ UB,d ⁇ dot over (q) ⁇ UB . (23)
  • the RAC process tracks a dynamically feasible motion. Therefore, when the computed ZMP is outside the support base, the humanoid robot can become dynamically unstable and the RAC process will fail. To prevent this failure from happening, the acceleration modification module 120 applies a method 400 to modify the desired torso acceleration so that the motion is feasible, balanced, and controllable, as illustrated in the flow diagram in FIG. 4 .
  • the method 400 filters the dynamic effects of the motion that cause the ZMP to leave the support base through the following steps:
  • the computed ZMP is modified 410 to be brought back inside the area of support.
  • the computed ZMP is projected inside the support area with an appropriate safety margin.
  • the new ZMP is designated as the modified ZMP 0 p zmp,m .
  • the modified net force f net,m and moment n net,m z at the modified ZMP are determined 420 .
  • the net force at 0 p zmp,m is derived from the net force f net so that the modified force has the same normal component as the net force, and the same moment about the torso origin.
  • the bias torso force ⁇ f t is the bias force on the torso due to the net force change and is calculated using the following equation:
  • FIG. 5 is a diagram that illustrates steps 1-3 according to one embodiment.
  • the bias torso acceleration (change in acceleration) is determined 440 .
  • the acceleration change caused by ⁇ f t may be computed with the dynamic equation for the torso using the following equation:
  • I(q) is the operational-space inertia matrix as seen at the torso which is approximated here by the articulated-body inertia for the tree-structure system at the torso.
  • the torso acceleration is modified by ⁇ a t .
  • the new modified motion is determined 450 based on the change of torso acceleration as follows:
  • the humanoid robot does not track the desired motion, and instead tracks the modified motion that brings the ZMP back to inside the support.
  • the whole-body motion generation system 100 resumes tracking the desired motion (both position and velocity), thus allowing the humanoid robot to continue tracking the desired motion.
  • the computed ZMP reenters the support area
  • the modified and the desired original motion states may be significantly different. Therefore, trying to track the desired motion immediately might cause instability due to the large acceleration injected into the system. Even worse, the large feedback error (see e.g., Equation 14) might cause the computed ZMP to be outside the support area, thereby causing the humanoid robot to be unbalanced.
  • the resolved acceleration module 130 synchronizes the modified motion using a bang-bang solution which results in the minimum acceleration required over a brief synchronization period. Additional information about the bang-bang solution is available at L. M. Sonneborn et al., “The bang-bang principle for linear control systems” (Series A, On control, 1964), Journal of the Society for Industrial and Applied Mathematics , vol. 2, no. 2, pp. 151-159, the content of which is incorporated by reference herein in its entirety.
  • the synchronization period is chosen so that the synchronization acceleration ⁇ umlaut over (x) ⁇ s does not introduce additional significant dynamic effects that might cause the ZMP to go outside the support area.
  • the original motion is modified as follows:
  • ⁇ ⁇ ⁇ x . j ⁇ ( t ) - sgn ⁇ ( ⁇ ⁇ ⁇ x . j ⁇ ( t ) ) ⁇ 2 ⁇ ⁇ x ⁇ s j ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ x j ⁇ ( t ) ⁇ ,
  • x j (t) is the jth component of x at time t.
  • Equation 10 the right and left foot spatial contact forces (f R and f L ) need to be computed (see e.g., Equation 10), in addition to the desired joint accelerations ( ⁇ ).
  • the ZMP algorithm described above computes the net force f net but not the individual foot forces (or ZMPs). Therefore, this force should be distributed between the two feet to set the individual foot forces. This is an under-specified problem. Therefore, in one embodiment extra constraints are introduced to solve the problem.
  • each foot force is set to a percentage ⁇ of the net force. This percentage is based on the distance from the foot ZMP (local ZMP) to the computed ZMP:
  • n net x and n net y are zero at the ZMP.
  • (A, k) is a coordinate system that is aligned with ankle k's joint axes and its origin is at the ankle joint origin. This local force has the following moment about the ankle's center:
  • n A,k A,k p zmp,k ⁇ A,k f zmp,k + A,kR 0 0 n zmp,k , (37)
  • A,k p zmp,k is the position of the ZMP for foot k as represented in the ankle's frame, and it can be computed as:
  • A,k p zmp,k A,k R 0 ( 0 p zmp,k ⁇ 0 p A,k ). (38)
  • the force distribution module 150 searches for a solution that minimizes the roll and pitch ankle torques, to minimize ankle energy.
  • This problem can be formulated as an optimization problem in which minimizing the roll (n A,k x ) and pitch (n A,k y ) ankle torques is the objective criteria (function).
  • the first constraints are the foot boundaries. Satisfaction of the moment balance equations in the support plane about the line connecting the foot ZMPs, enforces an additional constraint that the foot ZMPs and overall ZMP be on a line, as illustrated in the following equation:
  • One embodiment of the disclosed whole-body motion generation system 100 is tested using a model of the Hyundai humanoid robot ASIMO (also called the “ASIMO model”).
  • ASIMO model also called the “ASIMO model”.
  • the whole-body motion generation system 100 controls the ASIMO model to simulate a highly dynamic upper-body reference motion using RobotBuilder, which is a 3D graphical dynamics simulation package based on the DynaMechs library.
  • RobotBuilder is a 3D graphical dynamics simulation package based on the DynaMechs library. See S. McMillan et al., “DynaMechs: an object oriented software package for efficient dynamic simulation of underwater robotic vehicles” in “Underwater Robotic Vehicles Design and Control”, TSI Press (1995), pp. 73-98, the content of which is incorporated by reference herein in its entirety.
  • An approximately 45-second upper-body “reaching” motion from the CMU motion database is chosen as an input to the proposed control algorithm. This motion is chosen because it is non-periodic, complex, and a somewhat fast motion. For this motion, it is assumed that the feet are always in double support and their positions are chosen to be side by side with a hip-width distance between them.
  • FIG. 6A is a diagram showing the computed ZMP for the entire motion at the original speed (solid line) and the modified ZMP (dotted line).
  • the computed ZMP is outside the support for certain periods.
  • the motion was dynamically infeasible and the RAC failed to track it.
  • the modified ZMP is inside the support for the entire period and overlaps with the computed ZMP when the latter also falls inside the support. Accordingly, using the MRAC, the motion was tractable and balanced.
  • FIG. 6C illustrates the foot ZMPs for a portion of the motion. As shown, each foot ZMP is located near the roll axis of the ankle. This is because the vertical (normal) component f net z of the net force f net is the dominant force as shown in FIG. 6D .
  • the described embodiments provide a very efficient and effective dynamics filter which is applicable for general upper-body motion when a humanoid robot is standing in place.
  • the dynamics filter is based on efficient inverse dynamics calculations. It involves modification of the motion of the torso so as to constrain the commanded motion to produce a ZMP which is inside the support.
  • the feasible, commanded motion is synchronized to the desired reference motion when the computed ZMP for the reference motion again falls within the support.
  • Resolved Acceleration Control is developed for a humanoid to track the desired/modified motion.
  • the described embodiments produce a feasible motion that satisfies the foot constraints for highly dynamic upper-body task specifications. It may be extended to handle the situations when the projection of a center of mass (COM) drifts outside the support due to the desired upper-body motion. This can be achieved by adding the COM as a task-descriptor and constraining its projection to be inside the support. If the task is unreachable or cannot be executed, a step can be triggered.
  • COM center of mass
  • Certain aspects of the present invention 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 present invention 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 invention can also be in a computer program product which can be executed on a computing system.
  • the present invention also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • 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 (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • 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.

Abstract

A system, method, and computer program product for generating dynamically feasible whole-body motion of a humanoid robot while realizing specified upper-body task motion are described. A kinematically feasible upper-body motion is generated based on the specified upper-body motion. A series of zero-moment points (ZMP) are computed for the generated motion and used to determine whether such motion is dynamically feasible. If the motion is not dynamically feasible, then the torso acceleration is modified to make the motion dynamically feasible, and otherwise synchronized as needed. A series of modified ZMP is determined based on the modified torso acceleration and used to distribute the resultant net ground reaction force and moment to the two feet.

Description

    RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Application No. 61/242,272, filed Sep. 14, 2009, the content of which is incorporated by reference herein in its entirety.
  • BACKGROUND
  • 1. Field of Disclosure
  • The disclosure generally relates to the field of controlling motion of a system, and more specifically to generating dynamically feasible motion of a system.
  • 2. Description of the Related Art
  • The emergence of the field of humanoid robotics in the last decade is largely attributed to the expectation that humanoid robots will eventually become an integral part of our everyday lives, serving as caretakers for the elderly and disabled, providing assistance in homes and offices, and assisting in surgery and physical therapy. From a control perspective, much effort has been aimed at addressing various aspects of humanoid robot control, such as motion execution, safety, constraint handling, multi-contact control, balance control, and obstacle avoidance. See C. Kemp et al., “Springer Handbook of Robotics” (Chapter 56: Humanoids) (2008), B. Siciliano and O. Khatib, Eds., the content of which is incorporated by reference herein in its entirety. Although the utility of robots operating in human environments rests, to a large extent, on execution of upper-body motion and manipulation tasks, the ability to sustain dynamic balance in response to upper-body motion is an important problem that is unique to humanoid robotics research.
  • Whole-body motion from upper-body task specifications has been examined by several research groups and significant advances have been reported. Given that the hardware platform of many humanoid robots is designed for position control, the majority of past and present developments in whole-body motion control have been centered around kinematic and inverse kinematic control techniques. For example, one approach considered the problem of off-line motion editing when transferring pre-recorded motion from a human to a humanoid robot under the assumption of a single support stance. See N. Naksuk et al., “Whole-body human-to-humanoid motion transfer”, IEEE/RAS International Conference on Humanoid Robots (2005), pp. 104-109, the content of which is incorporated by reference herein in its entirety. The proposed scheme yielded a balanced humanoid motion with minimal angular momentum at the center of mass. Another approach generates whole-body motion from upper-body human motion capture using a marker system. See C. Ott et al., “Motion capture based human motion recognition and imitation by direct marker control,” IEEE/RAS International Conference on Humanoid Robots (2008), pp. 399-405, the content of which is incorporated by reference herein in its entirety. However, these approaches do not handle highly dynamic motion since they use a constant center of mass/gravity position centered inside the support polygon in their balance controllers.
  • Another approach utilizes a full-body dynamic filter developed to convert a physically infeasible reference motion into a feasible one. See K. Yamane et al., “Dynamics filter—concept and implementation of online motion generator for human figures,” IEEE Transactions on Robotics and Automation, vol. 19, no. 3, pp. 421-432, (June 2003), the content of which is incorporated by reference herein in its entirety. However, this approach alters all input motion, including the specified upper-body motion, and is not applicable where upper-body task specifications must be preserved. Furthermore, this approach requires careful parameter tuning (feedback gains and weights for pseudo-inverses) for each behavior.
  • Hence, there is lacking, inter alia, a system and method for generating dynamically feasible whole-body motion of a humanoid robot while realizing specified upper-body motion.
  • SUMMARY
  • One aspect of the present invention provides a method (and corresponding system and computer program product) for generating dynamically feasible whole-body motion of a humanoid robot while realizing specified upper-body task motion. The method generates kinematically feasible upper-body motion based on the specified upper-body motion, computes a series of zero-moment points (ZMP) for the generated motion, and determines whether such motion is dynamically feasible. If the motion is not dynamically feasible, then the method modifies the torso acceleration to make the motion dynamically feasible, and otherwise synchronizes the torso acceleration as needed. The method then computes a series of modified ZMP based on the modified torso acceleration and distributes the resultant net ground reaction force and moment to the two feet.
  • Another aspect of the present invention provides a method (and corresponding system and computer program product) for determining a ZMP for a system. The method determines a joint motion for the system along with a first derivative and a second derivative of the joint motion, and applies a Recursive Newton-Euler algorithm to determining a torque for the system based on the joint motion, the first derivative, and the second derivative. The method determines a resultant ground reaction force for the system based on the determined torque, and computes the ZMP for the system based on the resultant ground reaction force.
  • Another aspect of the present invention provides a method (and corresponding system and computer program product) for modifying a motion of a system having a plurality of links connected through a plurality of joints. The method modifies a ZMP of the system performing the motion, and determines a modified net force and moment for the system based on the modified ZMP. The method determines a bias force for one of the plurality of links based on the modified net force and moment, determines a bias acceleration for said link based on the determined bias force, and determines a modified motion of the system based on the determined bias acceleration.
  • 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 disclosed subject matter.
  • BRIEF DESCRIPTION OF DRAWINGS
  • FIG. 1 is a block diagram illustrating a whole-body motion generation system in accordance with one embodiment of the invention.
  • FIG. 2 is a flow diagram illustrating a process of the whole-body motion generation system shown in FIG. 1 in accordance with one embodiment of the invention.
  • FIGS. 3A and 3B are diagrams illustrating force transformation to compute a zero-moment point (ZMP) in accordance with one embodiment of the invention.
  • FIG. 4 is a flow diagram illustrating another process of the whole-body motion generation system shown in FIG. 1 in accordance with one embodiment of the invention.
  • FIG. 5 is a diagram illustrating several steps of the process shown in FIG. 4 in accordance with one embodiment of the invention.
  • FIGS. 6A-6D are diagrams showing a result of the whole-body motion generation system for generating dynamically feasible whole-body motion of Honda's humanoid robot ASIMO based on a specified upper-body task motion in accordance with one embodiment of the invention.
  • DETAILED DESCRIPTION
  • The present invention provides a system (and corresponding method and computer program product) for generating dynamically feasible (e.g., balanced) whole-body motion of a humanoid robot (or a human model) while realizing specified upper-body task motion (also called the “reference motion”). The system computes a zero moment point (ZMP) of the humanoid robot based on the upper-body task specifications, and determines whether the reference motion is dynamically feasible based on whether the computed ZMP falls within the support. If the reference motion is not dynamically feasible, the system determines a feasible modification of a commanded torso acceleration to produce a modified ZMP which is inside the support, and distributes a resultant ground reaction force between the two feet of the humanoid robot by minimizing the ankle roll and pitch torques. Once the computed ZMP for the reference motion again falls within the support, the system synchronizes the feasible modified motion to the reference motion.
  • The Figures (FIGS.) and the following description relate to embodiments of the present invention by way of illustration only. Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
  • OVERVIEW
  • FIG. 1 is a block diagram illustrating a whole-body motion generation system 100 for generating dynamically feasible (e.g., balanced) whole-body motion of a humanoid robot (or human model) while realizing specified upper-body task motion according to one embodiment. In the following description it is assumed that a humanoid robot is in double support stance and commanded to execute an upper-body motion expressed by Cartesian (or task) variables. As shown, the whole-body motion generation system 100 includes a constrained closed loop inverse kinematics (CCLIK) module 110, an acceleration modification module 120, an original ZMP computation module 125, a resolved acceleration module 130, a modified ZMP computation module 140, a force distribution module 150, an inverse dynamics (ID) module 160, and a humanoid robot dynamic model module 170.
  • The inputs of the whole-body motion generation system 100 include Cartesian variables representing the desired upper body orientation and position task descriptors denoted by (ψ, p)UB. Additional information regarding how the task descriptors are generated is available at U.S. patent application Ser. No. 12/455,257, the content of which is incorporated by reference herein in its entirety. The CCLIK module 110 applies kinematic inversion of the task motion specified by the task descriptors to joint motion commands subject to kinematic constraints (e.g., joint limit constraints, joint velocity constraints, and self collision constraints) using an online constrained closed loop inverse kinematics (CCLIK) algorithm, and outputs a kinematically feasible (e.g., collision free) upper-body joint acceleration vector, {umlaut over (q)}UB, and a desired torso acceleration vector, at,d. The kinematically feasible motion/accelerations are also called desired motion/accelerations. Additional information regarding the CCLIK algorithm is available at C. Ott et al., “Motion capture based human motion recognition and imitation by direct marker control,” Proceedings of the IEEE/RAS International Conference on Humanoid Robots, (December 2008), pp. 399-405, and U.S. patent application Ser. No. 12/455,257, the content of both are incorporated by reference herein in their entirety.
  • The original ZMP computation module 125 computes a series of ZMP for the humanoid robot performing the desired motion based on the outputs of the CCLIK module 110. The acceleration modification module 120 filters the dynamic effects of the desired upper-body motion by analyzing the computed ZMP and making adjustments to the torso acceleration as needed. The resolved acceleration module 130 takes the modified torso acceleration Δat and the desired upper-body accelerations at,d as inputs, and uses position and velocity feedback to compute a resolved acceleration vector a in terms of joint variables. Once subsequent desired upper-body motion becomes dynamically feasible, the resolved acceleration module 130 synchronizes the modified torso acceleration with the desired torso acceleration (e.g., the modified torso acceleration gradually becomes the desired torso acceleration) during a synchronization period.
  • Because the humanoid robot is in double support stance, the modified ZMP computation module 140 computes a modified ZMP pzmp and a net ground reaction force and moment fnet for the humanoid robot based on the resolved acceleration vector α. The force distribution module 150 distributes fnet between the two feet, denoted by fR and fL, respectively. The ID module 160 produces the torque commands, denoted by T, to generate dynamically feasible whole-body motion including the desired upper-body motion. The humanoid robot dynamic model module 170 takes the torque commands to calculate the resultant joint position q and velocity {dot over (q)}, and provides the results to other components of the whole-body motion generation system 100. The tracking control based on acceleration modification is referred to as modified resolved acceleration control (MRAC).
  • FIG. 2 is a flow diagram illustrating a process 200 for the whole-body motion generation system 100 to generate dynamically feasible whole-body motion while realizing specified upper-body task motion according to one embodiment. Other embodiments can include different and/or additional steps than the ones described herein. As shown, the whole-body motion generation system 100 generates 210 kinematically feasible (e.g., collision free) upper-body motion (also called “desired motion”) based on task descriptors representing specified upper-body orientation and position. The whole-body motion generation system 100 computes 220 a series of ZMP based on the kinematically feasible upper-body motion and determines 230 whether such motion is dynamically feasible (e.g., balanced). If the desired upper-body motion is not dynamically feasible, then the whole-body motion generation system 100 modifies 240 the desired torso acceleration to make the motion dynamically feasible, and otherwise synchronizes 250 the torso acceleration with the desired torso acceleration if needed (e.g., previously modified). The whole-body motion generation system 100 then computes 260 a modified ZMP based on the modified torso acceleration and distributes 270 the resultant net ground reaction force and moment to the two feet.
  • Humanoid Robot Dynamic Model Module
  • According to one embodiment, the whole-body motion generation system 100 models a humanoid robot (or human model) as a set of N+1 links interconnected by N joints, of up to six degrees of freedom (DOF) each, forming a tree-structure topology. The motion of the links are referenced to a fixed base (inertial frame) which is labeled 0 while the links are labeled from 1 through N. The inertial frame is attached to the ground.
  • The spatial velocity and acceleration of link i are represented as:
  • v i = [ ω i v i ] , ( 1 ) a i = [ ω . i v . i ] , ( 2 )
  • where ωi, vi, {dot over (ω)}i, and {dot over (v)}i are the angular velocity, the linear velocity, the angular acceleration, and the linear acceleration of link i, respectively, as referenced to the link coordinate frame.
  • In order to model a humanoid robot on the fly, one of the links is modeled as a floating base (typically the torso) and numbered as link 1. A fictitious six DOF joint is inserted between the floating base and the fixed base. The total number of DOF in the humanoid is n where n=Σni, and ni is the number of DOF for joint i which connects link i to its predecessor. Note that n includes the six DOFs for the floating base.
  • The spatial force acting on link i from its predecessor is represented as:
  • f i = [ n i f i ] , ( 3 )
  • where ni is the moment about the origin of the link coordinate frame, and fi is the translational force referenced to the link coordinate frame.
  • The spatial coordinate transformation matrix iXj may be composed from the position vector jpi from the origin of coordinate frame j to the origin of i, and a 3×3 rotation matrix iRj, which transforms 3D vectors from coordinate frame j to i:
  • X j i = [ R j i 0 3 × 3 R j i S ( p i j ) T R j i ] . ( 4 )
  • The quantity S(p) is the skew-symmetric matrix that satisfies S(p)ω=p×ω for any 3D vector ω. This transformation matrix can be used to transform spatial quantities from one frame to another as follows:

  • v=jXivi,  (5)

  • aj=jXiai,  (6)

  • fj=jXi −Tfi.  (7)
  • The equations of motion of a robotic mechanism in joint-space can be written as:

  • τ=H(q){umlaut over (q)}+C(q,{dot over (q)}){dot over (q)}+τ g(q)+J T f e,  (8)
  • where q, {dot over (q)}, {umlaut over (q)}, and τ denote n-dimensional generalized vectors of joint position, velocity, acceleration and force variables, respectively. H(q) is an (n×n) joint-space inertia matrix. C is an (n×n) matrix such that C{dot over (q)} is the vector of Coriolis and centrifugal terms. τg is the vector of gravity terms. J is a Jacobian matrix, and fe is the external spatial force acting on the system. When the feet are the only contacts for the subject with the environment, the external force includes the foot spatial contact forces (ground reaction force/moment),
  • f e = [ f R f L ] , ( 9 )
  • where fR and fL are the right and left foot spatial contact forces, respectively. Friction and disturbance inputs can easily be added to these equations as well.
  • In the Inverse Dynamics (ID) problem, given the desired joint accelerations, the joint torques τ are computed using Equation 8, where the torques can be computed as a function of the joint motion q, its first and second derivatives {dot over (q)}, {umlaut over (q)}, and the left and right foot spatial contact forces fL and fR:

  • τ=ID(q,{dot over (q)},{umlaut over (q)},f R ,f L),  (10)

  • and

  • τ=[τUB Tft TτR TτL T]T,  (11)
  • where τUB, τR, and τL are the joint torques for the upper body, right leg, and left leg, respectively. ft is the force on the torso (the floating-base link), and it will be zero if the external (foot) forces are consistent with the given system acceleration since the torso is not actuated. In one embodiment, the very efficient O(n) Recursive Newton-Euler Algorithm (RNEA) is applied to calculate the quantities. The RNEA is efficient because it calculates most of the quantities in local link coordinates and it includes the effects of gravity in an efficient manner.
  • Algorithm for Computing ZMP
  • Whole-body humanoid robot (or human model) control requires information about the dynamic feasibility of the desired upper-body motion to be performed. Computing the Zero-Moment Point (ZMP) for a given motion can help predicting the dynamic feasibility of the motion, e.g., the balance of the humanoid robot performing the motion. An efficient algorithm for the original ZMP computation module 125 and/or the modified ZMP computation module 140 to compute the ZMP for a given whole-body motion according to one embodiment is described in this section.
  • The ZMP is defined as the point on the support base at which the resultant reaction forces are acting. See M. Vukobratovic et al., “Contributions to the synthesis of biped gait,” IEEE Transactions on Biomedical Engineering (1969), vol. 17, no. 1, pp. 25-36, and M. Vukobratovic et al., “Zero-moment point—thirty five years of its life,” International Journal of Humanoid Robotics (2004), vol. 1, no. 1, pp. 157-173, the content of both are incorporated by reference herein in their entirety. The support base (also called the “support”, “support convex”, and “base of support”) is the region bounded by body parts (e.g., feet) in contact with a support surface or surfaces that exerts a counterforce against the body's applied force (e.g., the ground). Therefore, if the resultant (net) spatial force fnet=[nnet Tfnet T]T is known as in FIG. 3 b, then the ZMP position may be computed as 0pzmp x=−nnet y/fnet z, and 0pzmp y=nnet x/fnet z.
  • The algorithm for computing the ZMP is based on determining the resultant foot force (force and moment) for a given system acceleration. By solving the inverse dynamics problem using the RNEA for a given system acceleration while applying zero foot forces (free-space inverse dynamics), the resultant spatial force on the system (the torso in the case of RNEA) can be computed as illustrated in FIG. 3 a. According to Newton's laws of motion, this spatial force can be applied to any body of the system. Therefore, if the spatial force is transformed into the inertial frame (ground), the resultant ground reaction force (resultant foot force) will be obtained (see FIG. 3 b) and then the ZMP position is computed. The algorithm is summarized in the table below. Note that the resulting algorithm is efficient because the main computation is the RNEA for inverse dynamics for the kinematic trees of the humanoid robot dynamic model.
  • Input: model, q , {dot over (q)} , {umlaut over (q)}
    Output: 0 pzmp
    Begin
    τ = ID(q, {dot over (q)}, {umlaut over (q)}, 0, 0) ;
    fnet=0Xt −T ft ;
    0 pzmp z = 0 ;
    0 pzmp x = −nnet y / fnet z ;
    0 pzmp y = nnet x / fnet z ;
    End
  • Modified Resolved Acceleration
  • In order to realize the desired upper-body motion while maintaining balance of the humanoid robot, the whole-body motion generation system 100 applies a resolved acceleration control (RAC) process to filter the dynamic effects of the desired upper-body motion by appropriately modifying and synchronizing the desired torso acceleration. The method allows coordination of the legs to give the desired motion of the torso, and coupled with the force distribution method described below, provides for control of the individual foot forces. The RAC process is described in detail in subsection A below.
  • The RAC process requires dynamically feasible motion to track. Therefore, a mechanism for motion modification is necessary for the RAC process when the motion is dynamically infeasible (e.g., not balanced). Subsection B describes an example method for the acceleration modification module 120 to modify the system acceleration (e.g., the torso acceleration) so that the motion is feasible. In addition, to track the desired motion of the torso from the upper-body task specifications, the modified motion needs to be quickly and smoothly moved to the desired motion when the desired motion is again dynamically feasible. A method to synchronize the modified motion with the desired motion is described in subsection C below.
  • A. Resolved Acceleration Control
  • The output of the RAC process along with the foot forces from the force distribution module 150 are used to compute the lower-body joint torques required to produce the modified motion of the torso using Inverse Dynamics (ID) as illustrated in Equation 10.
  • Let ψt and pt denote the torso orientation (described by Euler angles) and position, respectively. The task-descriptor vector xt=[ψt Tpt Y]T is related to the spatial velocity of the torso vt via an equation of the form

  • {dot over (x)} t =E(x t)v t  (12)
  • where E is a 6×6 transformation matrix that depends on the Euler sequence used. The resolved acceleration is set by α={umlaut over (q)} where

  • {umlaut over (q)}=[{umlaut over (q)}UB Tat T{umlaut over (q)}R T{umlaut over (q)}L T]T  (13)
  • is the commanded whole-body acceleration (system acceleration) which includes compensation for feedback errors. The torso acceleration at is computed as

  • a t =a t,m +K v,t(v t,m −v t)+K p,t e t,  (14)

  • where

  • a t,m =a t,d +Δa t.  (15)
  • vt, and at,m are the modified torso spatial velocity and acceleration, respectively, and will be discussed in further detail in subsection B below. vt is the current torso spatial velocity and at,d is the desired torso spatial acceleration from the original motion. et is the position and orientation error computed as:
  • e t = [ 0.5 ( j = 1 3 c j × c j , m ) p t , m 0 - p t 0 ] , ( 16 )
  • where 0pt,m and 0pt are the modified and current torso positions, and cj and cj,m are jth columns of the current orientation 0Rt, and the modified orientation 0Rt,m matrices, respectively. Kp,t and Kv,t are matrices of proportional and derivative gains for torso control.
  • For a tree-structure the right and left foot velocities (vR, vL) can be computed from the following equations:

  • v R =J R {dot over (q)} R+R X t v t,  (17)

  • v L =J L {dot over (q)} L+L X t v t,  (18)
  • where JR, JL, {dot over (q)}R, {dot over (q)}L, denote the right and left leg Jacobian matrices, and the right and left leg velocities, respectively. Note that RXtvt represents the velocity of the torso at a point which instantaneously coincides with the right foot position, and LXtvt represents the velocity of the torso at a point which instantaneously coincides with the left foot position. By taking the derivative of Equations 17 and 18 and then re-ordering the resulting equations, the right and left leg accelerations ({umlaut over (q)}R and {umlaut over (q)}L) can be computed using the following equations:

  • {umlaut over (q)} R =J R (a RR X t a t −{dot over (J)} R {dot over (q)} R),  (19)

  • {umlaut over (q)} L =J L (a LL X t a t −{dot over (J)} L {dot over (q)} L),  (20)
  • where J denotes the pseudo-inverse of J. For the case when each leg has 6 DOF, as in many humanoids including Honda's humanoid robot ASIMO, the pseudo-inverse J\ can simply be replaced by the inverse J−1. For the case of constrained feet (as in single or double support cases), aR and/or aL=0. The control law is the same as Equation 8 after replacing {umlaut over (q)} with α.
  • The upper-body accelerations for the arms are set by using computed-torque control specified in the following equation:

  • {umlaut over (q)} UB ={umlaut over (q)} UB,d +K v,UB ė UB +K p,UB e UB  (21)

  • where

  • e UB =q UB,d −q UB,  (2)

  • ė UB ={dot over (q)} UB,d −{dot over (q)} UB.  (23)
  • Additional information about computed-torque control is available at W. Chung et al., “Springer Handbook of Robotics” (Chapter 6: Motion control) (2008), B. Siciliano and O. Khatib, Eds., the content of which is incorporated by reference herein in its entirety.
  • B. Acceleration Modification
  • The RAC process tracks a dynamically feasible motion. Therefore, when the computed ZMP is outside the support base, the humanoid robot can become dynamically unstable and the RAC process will fail. To prevent this failure from happening, the acceleration modification module 120 applies a method 400 to modify the desired torso acceleration so that the motion is feasible, balanced, and controllable, as illustrated in the flow diagram in FIG. 4. The method 400 filters the dynamic effects of the motion that cause the ZMP to leave the support base through the following steps:
  • Firstly, the computed ZMP is modified 410 to be brought back inside the area of support. The computed ZMP is projected inside the support area with an appropriate safety margin. The new ZMP is designated as the modified ZMP 0pzmp,m.
  • Secondly, the modified net force fnet,m and moment nnet,m z at the modified ZMP are determined 420. The net force at 0pzmp,m is derived from the net force fnet so that the modified force has the same normal component as the net force, and the same moment about the torso origin. In particular,
  • f net , m z = f net z , ( 24 ) p zmp , m t × f net , m + [ 0 0 n net , m z ] = p zmp t × f net + [ 0 0 n net z ] . ( 25 )
  • Thirdly, the bias torso force is determined 430. The bias torso force Δft is the bias force on the torso due to the net force change and is calculated using the following equation:

  • Δf t=1 X 0 −T(f net,m −f net).  (26)
  • The force is chosen to be applied to the torso since it is the most massive link of the system. As a result, the dynamic effect of the force is significant. FIG. 5 is a diagram that illustrates steps 1-3 according to one embodiment.
  • Fourthly, the bias torso acceleration (change in acceleration) is determined 440. The acceleration change caused by Δft may be computed with the dynamic equation for the torso using the following equation:

  • Δf t =I(qa t,  (27)
  • where I(q) is the operational-space inertia matrix as seen at the torso which is approximated here by the articulated-body inertia for the tree-structure system at the torso. The torso acceleration is modified by Δat.
  • Fifthly, the new modified motion is determined 450 based on the change of torso acceleration as follows:

  • {umlaut over (x)} t,m(t)={umlaut over (x)} t,d(t)+Δ{umlaut over (x)} t(t),  (28)

  • where

  • {umlaut over (x)}(t)=Ė(x)v t(t)+E(xa t(t).  (29)
  • Note that whenever the computed ZMP for the motion is outside the support area, the humanoid robot does not track the desired motion, and instead tracks the modified motion that brings the ZMP back to inside the support.
  • C. Synchronization of Modified Trajectory
  • Once the computed ZMP is inside the support area after the motion has been modified, the whole-body motion generation system 100 resumes tracking the desired motion (both position and velocity), thus allowing the humanoid robot to continue tracking the desired motion. However, when the computed ZMP reenters the support area, the modified and the desired original motion states may be significantly different. Therefore, trying to track the desired motion immediately might cause instability due to the large acceleration injected into the system. Even worse, the large feedback error (see e.g., Equation 14) might cause the computed ZMP to be outside the support area, thereby causing the humanoid robot to be unbalanced.
  • In one embodiment, the resolved acceleration module 130 synchronizes the modified motion using a bang-bang solution which results in the minimum acceleration required over a brief synchronization period. Additional information about the bang-bang solution is available at L. M. Sonneborn et al., “The bang-bang principle for linear control systems” (Series A, On control, 1964), Journal of the Society for Industrial and Applied Mathematics, vol. 2, no. 2, pp. 151-159, the content of which is incorporated by reference herein in its entirety. The synchronization period is chosen so that the synchronization acceleration {umlaut over (x)}s does not introduce additional significant dynamic effects that might cause the ZMP to go outside the support area. The original motion is modified as follows:

  • {umlaut over (x)} t,m(t)={umlaut over (x)} t,d(t{umlaut over (x)} s.  (30)
  • The switching point for this bang-bang solution (tsw) is found from tsw=t when
  • Δ x . j ( t ) = - sgn ( Δ x . j ( t ) ) 2 x ¨ s j Δ x j ( t ) ,
  • where xj(t) is the jth component of x at time t.
  • Force Distribution
  • When the feet are in double support, in order to compute the joint torques that are required to track the commanded motion, the right and left foot spatial contact forces (fR and fL) need to be computed (see e.g., Equation 10), in addition to the desired joint accelerations (α). The ZMP algorithm described above computes the net force fnet but not the individual foot forces (or ZMPs). Therefore, this force should be distributed between the two feet to set the individual foot forces. This is an under-specified problem. Therefore, in one embodiment extra constraints are introduced to solve the problem.
  • Firstly, in order to minimize the interaction forces between the feet that might cause slippage, it is assumed that the foot forces are parallel to the net force. That is, each foot force is set to a percentage η of the net force. This percentage is based on the distance from the foot ZMP (local ZMP) to the computed ZMP:
  • f zmp , k 0 = η k f net , ( 31 ) n zmp , k z 0 = η k n net z , for k { R , L } ( 32 ) η R = ( L R + d L ) and ( 33 ) η L = ( R R + d L ) = 1 - η R , where ( 34 ) d k = p zmp , k 0 - p zmp 0 . ( 35 )
  • Note that nnet x and nnet y are zero at the ZMP. This force, as represented in the ankle's frame, is computed as:

  • A,kfzmp,k=A,kR0 0fzmp,k,  (36)
  • where (A, k) is a coordinate system that is aligned with ankle k's joint axes and its origin is at the ankle joint origin. This local force has the following moment about the ankle's center:

  • n A,k=A,k p zmp,k×A,k f zmp,k+A,kR 0 0 n zmp,k,  (37)
  • where A,kpzmp,k is the position of the ZMP for foot k as represented in the ankle's frame, and it can be computed as:

  • A,k p zmp,k=A,k R 0(0 p zmp,k0 p A,k).  (38)
  • Secondly, the force distribution module 150 searches for a solution that minimizes the roll and pitch ankle torques, to minimize ankle energy. This problem can be formulated as an optimization problem in which minimizing the roll (nA,k x) and pitch (nA,k y) ankle torques is the objective criteria (function). The first constraints are the foot boundaries. Satisfaction of the moment balance equations in the support plane about the line connecting the foot ZMPs, enforces an additional constraint that the foot ZMPs and overall ZMP be on a line, as illustrated in the following equation:

  • (0 p zmp,R0 p zmp)×(0 p zmp,L0 p zmp)=0.  (39)
  • See K. Waldron, “Force and motion management in legged locomotion,” IEEE Journal of Robotics and Automation (1986), vol. RA-2, no. 4, pp. 214-220, the content of which is incorporated by reference herein in its entirety.
  • The above solution can be summarized as:

  • minimize(norm[n A,R x n A,R y]+norm[n A,L x n A,L y]) subject to:
  • 1) 0pzmp,R is within the right foot boundaries,
    2) 0pzmp,L is within the left foot boundaries, and
    3) 0pzmp,R and 0pzmp,L satisfy the ZMP line constraint.
  • The above formulation provides a general solution for the force distribution problem. A simple geometric solution for the common case in which the feet are side by side can be computed by eliminating the roll ankle torque only. The solution is based on having each foot force vector intersect with its roll axis. Further, the line that connects the foot ZMPs and the overall ZMP is set parallel to the line between the ankle centers. The resulting equations are:
  • p zmp , k x 0 = p zmp x 0 , ( 39 ) p zmp , k y 0 = - p A , k z 0 f net y f net z + p A , k y 0 . ( 39 )
  • EXAMPLES
  • One embodiment of the disclosed whole-body motion generation system 100 is tested using a model of the Honda humanoid robot ASIMO (also called the “ASIMO model”). During the test, the whole-body motion generation system 100 controls the ASIMO model to simulate a highly dynamic upper-body reference motion using RobotBuilder, which is a 3D graphical dynamics simulation package based on the DynaMechs library. See S. McMillan et al., “DynaMechs: an object oriented software package for efficient dynamic simulation of underwater robotic vehicles” in “Underwater Robotic Vehicles Design and Control”, TSI Press (1995), pp. 73-98, the content of which is incorporated by reference herein in its entirety. An approximately 45-second upper-body “reaching” motion from the CMU motion database is chosen as an input to the proposed control algorithm. This motion is chosen because it is non-periodic, complex, and a somewhat fast motion. For this motion, it is assumed that the feet are always in double support and their positions are chosen to be side by side with a hip-width distance between them.
  • FIG. 6A is a diagram showing the computed ZMP for the entire motion at the original speed (solid line) and the modified ZMP (dotted line). As shown, the computed ZMP is outside the support for certain periods. Thus the motion was dynamically infeasible and the RAC failed to track it. In comparison, the modified ZMP is inside the support for the entire period and overlaps with the computed ZMP when the latter also falls inside the support. Accordingly, using the MRAC, the motion was tractable and balanced. FIG. 6B shows how MRAC modified the torso position, as an example. The motion has been modified just after the 26th second when the computed ZMP was outside the support and the synchronization starts as soon as the computed ZMP returned to the support at t=26.5 sec. It has been observed during the test that similar results were obtained for different (faster and slower) speeds. FIG. 6C illustrates the foot ZMPs for a portion of the motion. As shown, each foot ZMP is located near the roll axis of the ankle. This is because the vertical (normal) component fnet z of the net force fnet is the dominant force as shown in FIG. 6D.
  • SUMMARY
  • The described embodiments provide a very efficient and effective dynamics filter which is applicable for general upper-body motion when a humanoid robot is standing in place. The dynamics filter is based on efficient inverse dynamics calculations. It involves modification of the motion of the torso so as to constrain the commanded motion to produce a ZMP which is inside the support. The feasible, commanded motion is synchronized to the desired reference motion when the computed ZMP for the reference motion again falls within the support. Resolved Acceleration Control is developed for a humanoid to track the desired/modified motion.
  • The described embodiments produce a feasible motion that satisfies the foot constraints for highly dynamic upper-body task specifications. It may be extended to handle the situations when the projection of a center of mass (COM) drifts outside the support due to the desired upper-body motion. This can be achieved by adding the COM as a task-descriptor and constraining its projection to be inside the support. If the task is unreachable or cannot be executed, a step can be triggered.
  • Some portions of above description describe the embodiments in terms of algorithmic processes or operations, for example, the processes and operations as described with FIGS. 1, 2, and 4.
  • One embodiment of the present invention is described above 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.
  • 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 of the invention. 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.
  • Some portions of the detailed description 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 of physical quantities as modules or code devices, without loss of generality.
  • 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, 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.
  • Certain aspects of the present invention 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 present invention 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 invention can also be in a computer program product which can be executed on a computing system.
  • The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the purposes, 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 (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. 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.
  • 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 present invention is 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 present invention as described herein, and any references below to specific languages are provided for disclosure of enablement and best mode of the present invention.
  • 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 present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the claims.

Claims (20)

What is claimed is:
1. A computer based method for generating dynamically feasible whole-body motion of a system while realizing specified upper-body task motion, the system comprising an upper-body connected with a lower-body, the method comprising:
computing a series of zero-moment points (ZMP) for the system performing the specified upper-body task motion;
determining whether the specified upper-body task motion is dynamically feasible based on the computed ZMP; and
responsive to a determination that the specified upper-body task motion is dynamically infeasible, modifying the motion by modifying an acceleration of a body segment of the system such that the modified motion is dynamically feasible.
2. The method of claim 1, wherein determining whether the specified upper-body task motion is dynamically feasible comprises:
determining whether any of the computed ZMP is outside a support base of the system;
responsive to a determination that at least one of the computed ZMP is outside the support base, determining that the specified upper-body task motion is dynamically infeasible; and
responsive to a determination that all of the computed ZMP are within the support base, determining that the specified upper-body task motion is dynamically feasible.
3. The method of claim 1, wherein the system comprises a humanoid robot or a human model, and the body segment comprises a torso.
4. The method of claim 1, further comprising:
distributing a resultant force to two feet of the system.
5. The method of claim 4, wherein distributing the resultant force to the two feet of the system comprises:
distributing the resultant force to the two feet such that roll and pitch ankle torques of the system are minimized.
6. The method of claim 1, further comprising generating a kinematically feasible upper-body motion based on the specified upper-body task motion, and wherein the series of ZMP comprises a series of ZMP for the kinematically feasible upper-body motion.
7. The method of claim 1, further comprising:
responsive to a determination that the specified upper-body task motion is dynamically feasible, synchronizing the modified motion with the specified upper-body task motion within a synchronization period.
8. The method of claim 7, wherein the synchronization period is determined such that the synchronizing step does not introduce additional significant dynamic effects causing the resulting motion to be dynamically infeasible.
9. The method of claim 7, wherein synchronizing the modified motion comprises:
synchronizing the modified motion using a bang-bang solution which results in the minimum acceleration required over a synchronization period.
10. A computer based method for computing a zero-moment point (ZMP) for a system, the method comprising:
determining a joint motion for the system along with a first derivative and a second derivative of the joint motion;
applying a Recursive Newton-Euler algorithm to determining a torque for the system based on the joint motion, the first derivative, and the second derivative;
determining a resultant ground reaction force for the system based on the determined torque; and
computing, based on the resultant ground reaction force, the ZMP for the system on a support base.
11. The method of claim 10, wherein the support base comprises a region bounded by one or more body parts of the system in contact with a support surface that exerts a counterforce.
12. The method of claim 11, wherein the system comprises a human model or a humanoid robot, the one or more body parts comprises two feet, the support surface comprises the ground, and the counterforce comprises the ground reaction force.
13. A computer based method for modifying an original motion of a system having a plurality of links connected through a plurality of joints, the method comprising:
modifying a zero-moment point (ZMP) of the original motion as performed by the system;
determining a modified net force and moment for the system based on the modified ZMP;
determining a bias force for one of the plurality of links based on the modified net force and moment;
determining a bias acceleration for said link based on the determined bias force; and
determining a modified motion of the system based on the determined bias acceleration.
14. The method of claim 13, wherein the system comprises a human model or a humanoid robot, and said link comprises a torso.
15. The method of claim 13, wherein the original motion is dynamically infeasible and the modified motion is dynamically feasible.
16. The method of claim 13, wherein modifying the ZMP of the original motion comprises modifying the ZMP to be inside a support base for the system.
17. The method of claim 16, wherein the support base comprises a region bounded by one or more links of the system in contact with a support surface that exerts a counterforce.
18. The method of claim 17, wherein the system comprises a human model or a humanoid robot, the one or more links comprises two feet, the support surface comprises the ground, and the counterforce comprises the ground reaction force.
19. The method of claim 13, wherein the modified net force has a same normal component as an original net force and a same moment about said link.
20. The method of claim 13, wherein the system comprises an upper-body connected with a lower-body, the original motion comprises an upper-body motion, and the modified motion comprises a whole-body motion.
US12/881,129 2009-09-14 2010-09-13 Whole-body humanoid control from upper-body task specifications Expired - Fee Related US8924015B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/881,129 US8924015B2 (en) 2009-09-14 2010-09-13 Whole-body humanoid control from upper-body task specifications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24227209P 2009-09-14 2009-09-14
US12/881,129 US8924015B2 (en) 2009-09-14 2010-09-13 Whole-body humanoid control from upper-body task specifications

Publications (2)

Publication Number Publication Date
US20110066283A1 true US20110066283A1 (en) 2011-03-17
US8924015B2 US8924015B2 (en) 2014-12-30

Family

ID=43731335

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/881,129 Expired - Fee Related US8924015B2 (en) 2009-09-14 2010-09-13 Whole-body humanoid control from upper-body task specifications

Country Status (1)

Country Link
US (1) US8924015B2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120143374A1 (en) * 2010-12-03 2012-06-07 Disney Enterprises, Inc. Robot action based on human demonstration
US20120143376A1 (en) * 2010-12-02 2012-06-07 Samsung Electronics Co.. Ltd. Walking robot and method for controlling posture thereof
US9440353B1 (en) 2014-12-29 2016-09-13 Google Inc. Offline determination of robot behavior
US9517561B2 (en) 2014-08-25 2016-12-13 Google Inc. Natural pitch and roll
JP2017213319A (en) * 2016-06-02 2017-12-07 株式会社ブリヂストン Joint torque measurement method, inverse dynamics calculation system, and joint torque measurement program
US20180029226A1 (en) * 2016-07-26 2018-02-01 University Of Connecticut Skill transfer from a person to a robot
US9987745B1 (en) 2016-04-01 2018-06-05 Boston Dynamics, Inc. Execution of robotic tasks
WO2018111653A1 (en) * 2016-12-13 2018-06-21 Boston Dynamics, Inc. Whole body manipulation on a legged robot using dynamic balance
CN113305844A (en) * 2021-05-28 2021-08-27 深圳市优必选科技股份有限公司 Humanoid robot balance control method and device and humanoid robot
US11179855B2 (en) * 2018-12-30 2021-11-23 Ubtech Robotics Corp Ltd Acceleration compensation method for humanoid robot and apparatus and humanoid robot using the same
US20220324106A1 (en) * 2021-03-31 2022-10-13 Ubtech Robotics Corp Ltd Motion control method, robot controller and computer readable storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357433A (en) * 1992-05-22 1994-10-18 Honda Giken Kogyo Kabushiki Kaisha Gait generation system for a legged mobile robot
US6289265B1 (en) * 1998-04-20 2001-09-11 Honda Giken Kogyo Kabushiki Kaisha Controller for legged mobile robot
US20030229419A1 (en) * 1999-11-25 2003-12-11 Sony Corporation Legged mobile robot and method and apparatus for controlling the operation thereof
US20050126833A1 (en) * 2002-04-26 2005-06-16 Toru Takenaka Self-position estimating device for leg type movable robots
US20050234593A1 (en) * 2004-03-31 2005-10-20 Ambarish Goswami Systems and methods for controlling a legged robot based on rate of change of angular momentum
US20070016329A1 (en) * 2005-03-31 2007-01-18 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics
US20090252423A1 (en) * 2007-12-21 2009-10-08 Honda Motor Co. Ltd. Controlled human pose estimation from depth image streams

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357433A (en) * 1992-05-22 1994-10-18 Honda Giken Kogyo Kabushiki Kaisha Gait generation system for a legged mobile robot
US6289265B1 (en) * 1998-04-20 2001-09-11 Honda Giken Kogyo Kabushiki Kaisha Controller for legged mobile robot
US20030229419A1 (en) * 1999-11-25 2003-12-11 Sony Corporation Legged mobile robot and method and apparatus for controlling the operation thereof
US20050126833A1 (en) * 2002-04-26 2005-06-16 Toru Takenaka Self-position estimating device for leg type movable robots
US7145305B2 (en) * 2002-04-26 2006-12-05 Honda Giken Kogyo Kabushiki Kaisha System for estimating attitude of leg type moving robot itself
US20050234593A1 (en) * 2004-03-31 2005-10-20 Ambarish Goswami Systems and methods for controlling a legged robot based on rate of change of angular momentum
US20070016329A1 (en) * 2005-03-31 2007-01-18 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics
US20090252423A1 (en) * 2007-12-21 2009-10-08 Honda Motor Co. Ltd. Controlled human pose estimation from depth image streams

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120143376A1 (en) * 2010-12-02 2012-06-07 Samsung Electronics Co.. Ltd. Walking robot and method for controlling posture thereof
US9043029B2 (en) * 2010-12-02 2015-05-26 Samsung Electronics Co., Ltd. Walking robot and method for controlling posture thereof
US20120143374A1 (en) * 2010-12-03 2012-06-07 Disney Enterprises, Inc. Robot action based on human demonstration
US9162720B2 (en) * 2010-12-03 2015-10-20 Disney Enterprises, Inc. Robot action based on human demonstration
US10105850B2 (en) 2014-08-25 2018-10-23 Boston Dynamics, Inc. Natural pitch and roll
US9517561B2 (en) 2014-08-25 2016-12-13 Google Inc. Natural pitch and roll
US9662792B2 (en) 2014-08-25 2017-05-30 Google Inc. Natural pitch and roll
US11911916B2 (en) * 2014-08-25 2024-02-27 Boston Dynamics, Inc. Natural pitch and roll
US20230008096A1 (en) * 2014-08-25 2023-01-12 Boston Dynamics, Inc. Natural pitch and roll
US11426875B2 (en) 2014-08-25 2022-08-30 Boston Dynamics, Inc. Natural pitch and roll
US10654168B2 (en) 2014-08-25 2020-05-19 Boston Dynamics, Inc. Natural pitch and roll
US9440353B1 (en) 2014-12-29 2016-09-13 Google Inc. Offline determination of robot behavior
US11865715B2 (en) 2014-12-29 2024-01-09 Boston Dynamics, Inc. Offline optimization to robot behavior
US10093019B1 (en) 2014-12-29 2018-10-09 Boston Dynamics, Inc. Determination of robot behavior
US11084167B1 (en) 2014-12-29 2021-08-10 Boston Dynamics, Inc. Offline optimization to robot behavior
US9987745B1 (en) 2016-04-01 2018-06-05 Boston Dynamics, Inc. Execution of robotic tasks
JP2017213319A (en) * 2016-06-02 2017-12-07 株式会社ブリヂストン Joint torque measurement method, inverse dynamics calculation system, and joint torque measurement program
US10807233B2 (en) * 2016-07-26 2020-10-20 The University Of Connecticut Skill transfer from a person to a robot
US20180029226A1 (en) * 2016-07-26 2018-02-01 University Of Connecticut Skill transfer from a person to a robot
EP3875229A1 (en) * 2016-12-13 2021-09-08 Boston Dynamics, Inc. Whole body manipulation on a legged robot using dynamic balance
CN110035872A (en) * 2016-12-13 2019-07-19 波士顿动力公司 Use whole manipulation of the dynamic equilibrium on legged robot
US10351189B2 (en) 2016-12-13 2019-07-16 Boston Dynamics, Inc. Whole body manipulation on a legged robot using dynamic balance
US11667343B2 (en) 2016-12-13 2023-06-06 Boston Dynamics, Inc. Whole body manipulation on a legged robot using dynamic balance
WO2018111653A1 (en) * 2016-12-13 2018-06-21 Boston Dynamics, Inc. Whole body manipulation on a legged robot using dynamic balance
US11179855B2 (en) * 2018-12-30 2021-11-23 Ubtech Robotics Corp Ltd Acceleration compensation method for humanoid robot and apparatus and humanoid robot using the same
US20220324106A1 (en) * 2021-03-31 2022-10-13 Ubtech Robotics Corp Ltd Motion control method, robot controller and computer readable storage medium
US11938635B2 (en) * 2021-03-31 2024-03-26 Ubtech Robotics Corp Ltd Motion control method, robot controller and computer readable storage medium
CN113305844A (en) * 2021-05-28 2021-08-27 深圳市优必选科技股份有限公司 Humanoid robot balance control method and device and humanoid robot

Also Published As

Publication number Publication date
US8924015B2 (en) 2014-12-30

Similar Documents

Publication Publication Date Title
US8924015B2 (en) Whole-body humanoid control from upper-body task specifications
Sugihara et al. Real-time humanoid motion generation through ZMP manipulation based on inverted pendulum control
US9334002B2 (en) Balance control apparatus of robot and control method thereof
Dekker Zero-moment point method for stable biped walking
US7112938B2 (en) Attitude control device of mobile robot
US6876903B2 (en) Gait pattern generating device for legged mobile robot
US8965582B2 (en) Inverse kinematics
Yoshida et al. Humanoid motion planning for dynamic tasks
US20040254679A1 (en) Robot movement control system
Nakanishi et al. Comparative experiments on task space control with redundancy resolution
US20100250001A1 (en) Systems and methods for tracking and balancing robots for imitating motion capture data
Saab et al. Generation of dynamic motion for anthropomorphic systems under prioritized equality and inequality constraints
Dini et al. An MPC-based two-dimensional push recovery of a quadruped robot in trotting gait using its reduced virtual model
Buschmann et al. Biped walking control based on hybrid position/force control
Chung et al. Posture stabilization strategy for a trotting point-foot quadruped robot
Cisneros et al. Robust humanoid control using a QP solver with integral gains
US20230234222A1 (en) Humanoid robot balance control method, humanoid robot, and storage medium
Nakanishi et al. Inverse dynamics control with floating base and constraints
Arcos-Legarda et al. Robust compound control of dynamic bipedal robots
Anderson et al. Adaptive torque-based control of a humanoid robot on an unstable platform
Azevedo et al. Bipedal walking: from gait design to experimental analysis
Hammam et al. Whole-body humanoid control from upper-body task specifications
Ramirez-Alpizar et al. Motion generation for pulling a fire hose by a humanoid robot
Mistry et al. Task space control with prioritization for balance and locomotion
Cisneros et al. Partial yaw moment compensation using an optimization-based multi-objective motion solver

Legal Events

Date Code Title Description
AS Assignment

Owner name: HONDA MOTOR CO., LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DARIUSH, BEHZAD;REEL/FRAME:024986/0660

Effective date: 20100910

CC Certificate of correction
FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Expired due to failure to pay maintenance fee

Effective date: 20181230