ComputationallyRobust and Efficient Prioritized WholeBody Controller with Contact Constraints
Abstract
In this paper, we devise methods for the multiobjective control of humanoid robots, a.k.a. prioritized wholebody controllers, that achieve efficiency and robustness in the algorithmic computations. We use a form of wholebody controllers that is very general via incorporating centroidal momentum dynamics, operational task priorities, contact reaction forces, and internal force constraints. First, we achieve efficiency by solving a quadratic program that only involves the floating base dynamics and the reaction forces. Second, we achieve computational robustness by relaxing task accelerations such that they comply with friction cone constraints. Finally, we incorporate methods for smooth contact transitions to enhance the control of dynamic locomotion behaviors. The proposed methods are demonstrated both in simulation and in real experiments using a passiveankle bipedal robot.
I Introduction
During the DARPA Robotics Challenge in 2013 and 2015, various humanoid robots participating in the competition attempted to execute a variety of tasks using a class of controllers called wholebody controllers (WBC), which are easily reconfigurable to accomplish multiple control objectives under environmental constraints [1]. All WBCs for humanoid control share common features: accounting for system dynamics, addressing reaction forces to control the floating base, and using a mapping between the operational spaces and the configuration space. WBCs have become a standard method to control a multilimb system executing both manipulation and locomotion. There are various types of WBCs, but for convenience, we categorize them as follows: 1) quadratic programming (QP) based WBCs without task hierarchy [2, 3, 4, 5], 2) null space projection based WBCs [6, 7, 8], 3) hierarchical quadratic programming (HQP) [9, 10, 11], and 4) integrated quadratic programming and null space projection methods[12, 13].
A popular way to implement WBCs is using QPs to find the reaction forces and torque commands satisfying equality and inequality constraints. These methods have been widely adopted for realhardware experiments. Using these algorithms on a compliant humanoid robot, [3] demonstrated the ability to lift a heavy object, balance under external disturbances, and walk. With the integration of a foot stepping planner, [14] showed robust stepping over cinder blocks and accomplished fast exploration of the rough terrain. [5] showed stable locomotion on cinder blocks and rubble. By integrating the WBC method and advanced contact area estimation, [15] accomplished walking using only partial footholds. In recent times, WBCs have focused on leveraging early capabilities like task hierarchies, and increasing computational robustness and efficiency. Our methods shown here incorporate the latest features of WBCs while achieving higher computational efficiency than stateoftheart methods.
Among the various capabilities of WBCs, a task hierarchy is important because it provides a guarantee that higher priority tasks will not fail due to conflicts with lower priority tasks. Hierarchies are similar to a resource allocation problem in which some resources (i.e. robot appendages or parts) are more important than others while attempting to accomplish multiple goals. Null space projection based methods accomplish a strict task hierarchy by projecting the lower priority task into the null space of higher priority tasks. This method was discussed early on by [16] and was extended to wholebody dynamic control in [6]. One drawback of projectionbased methods is the inability to incorporate inequality constraints. This limitation becomes a concern when robot motions are highly dynamic causing the robot to break contact. Null space based methods assume that contact constraints are equalities which is physically incorrect.
HQPbased WBCs have been devised to enforce both task hierarchies and inequality constraints [17, 18, 9, 11]. [19] proposed prioritized taskspace control by iteratively solving optimizations. [9] proposed an enhanced HQP by introducing a new QP formulation and a new solver that accomplishes WBC via a single QP problem instead of having multiple QPs running iteratively. [11] proposed efficient ways to solve iterative QPs and showed experimental results with a torque controlled robot. HQPbased WBC is a generic formulation that can incorporate many types of constraints and tasks. However, the computational cost is high for realtime applications (although several experimental validations have achieved about 1 computational times in full humanoid robots).
After previous studies [20, 21], we have learned that the feedback control performance heavily depends on control loop times. Bandwidth differences are more noticeable when the motion is highly dynamic. For example, in the demonstration of pointfoot biped stabilization [20] using WBCs, increasing the update rate from 1 to 1.5 provided noticeably larger posture and foot position control bandwidth. Moreover, fast WBCs are also desirable when considering other problems that require heavy computations, such as modelpredictive control, trajectory optimizations, and machine learning for motion generation. In this paper, we integrate QPbased methods and null space projection WBC methods within a formulation that achieves higher computational efficiency than leading WBC methods.
The approach presented in [12] is similar to ours, but we decrease the computational cost by removing operational space computations and instead computing acceleration in the configuration space based on the desired task commands. Also, the QP formulation in [12] can actually become infeasible due to torque limits and constraints, and their proposed method does not guarantee a strict task hierarchy. In contrast, our algorithm relaxes commanded task accelerations to make sure that the solution is always feasible. Furthermore, the torque limits in [12] can be violated because the torque commands for posture control are separated from the optimization, and added to the optimization result afterward.
For computational efficiency, we simplify the formulation even further over the previous accelerationbased methods by removing the terms representing the time derivative of the prioritized task Jacobians. Besides our efforts to increase computational efficiency, our formulation also addresses internal constraints and contact force transitions. By adding internal constraints, the torque command complies with constraints that internally exist such as mechanically coupled joints or closed kinematic chains. Our contact force transition method smooths out the jerk induced by a contact constraint change.
In summary, our contributions are: 1) a new WBC formulation, dubbed wholebody dynamic control (WBDC), providing benefits in efficient computation and algorithmic robustness, 2) the addition of new functionalities (internal constraints, contact transitions), and 3) the validation of the proposed algorithm both in physicsbased simulations and in biped robot experiments.
Ii WholeBody Dynamic Control Formulation
We present an algorithm for wholebody control, dubbed WBDC, that improve over the stateoftheart on efficiency and computational robustness. Fig. 1 illustrates the overall process performed by WBDC. The details are explained below.
Iia Internal Constraints Inclusion
We prescribe constraints into two categories: 1) internal and 2) contact constraints. Internal constraints are holonomic and do not influence the floating base dynamics. Contact constraints involve reaction forces from the environment, and thus, exert forces on the floating base. Examples of internal constraints include bilateral constraints in coupled joints (e.g., hip yaw joints in the NAO [22] and waist joints in the Dreamer robot [23]) and closed chains in delta robots [24].
The first step in WBDC is projecting the multibody dynamics into the null space of the internal constraints to remove the term representing the internal forces incurred by the constraint.
(1) 
where , , and represent mass, coriolis/centrifugal, and gravitational forces, respectively. is a selection matrix to map actuated joint torques to the full configuration effort. and are internal and contact constraint Jacobians satisfying the conditions
(2) 
where represents either or . Before presenting the projected dynamics, we show two important terms. One is a dynamically consistent inverse,
(3) 
and the other one is a null space projection matrix,
(4) 
By using standard null space projection techniques, we obtain the following equation,
(5) 
where is the null space projection matrix derived from the internal constraints. Again, an important property of the internal constraints is that by definition they do not influence the floating base dynamics. Thus, the rows representing the floating base in are all zero. Using this property, does not appear in the equality constraint of our QP formulation described in the next section.
IiB Contact Reaction Forces Computation
Before finding reaction forces with QP, we need to address contact constraints. After computing the accelerations in the configuration space satisfying the contact constraints, the first task command is projected through the null space of the internal and contact constraints and added to the configuration space accelerations. Then, QP computes reaction forces satisfying unilateral and friction cone constraints. In the QP formulation, we add an upper bound on the reaction forces in the vertical direction to accomplish smooth contact force transitions.
IiB1 Contact Constraints and First Task
Similar to the internal constraints, contact constraints are also characterized by zero acceleration at the contact points. Therefore, all task commands need to be in the null space of the contact constraints so that resultant motions do not incur acceleration at contact points. This is achieved by inverting the projected contact Jacobian, , and from the condition in Eq. 2, we obtain
(6) 
Then, we add the desired accelerations for the first task projected through the null space of the constraints,
(7) 
where is a projection matrix of constraints and is the acceleration command for the first task. and represent the influence on the first task acceleration caused by the configuration velocity and the computed acceleration incorporating constraints, respectively. Eq. (7) is similar to the equations in [13], but [13] omitted the term representing the influence of the higher priority task command to the lower priority, which is in Eq. (7).
Note that the first task must span centroidal dynamics, which is equivalent to spanning the floating base dynamics. Thus, in our simulations and experiments, we assign the first task to be either full joint position control, centroidal momentum control, or CoM and floating base orientation control task. To verify the first task spans the floating base dynamics, we check that the rank of the projected mass matrix is zero,
(8) 
where is a selection matrix to select the configuration representing the floating base. In general cases, the matrix selects the first six rows of . is the null space projection matrix of the projected first task.
IiB2 Reaction Force Computation
After obtaining the joint acceleration accounting for the constraints and the first task, we are now ready to compute the reaction forces. We use an opensource QP solver and follow the method proposed in [25]. To ensure that the QP problem is feasible, we relax the first task command. The formulation of our QP problem is
(9) 
s.t.  
(first task execution)  
(floating base dyn.)  
(contact force constraints) 
where , , and are reaction forces, relaxation variables, and an augmented contact constraint matrix, respectively. When describing the floating base dynamics, we remove the terms and of Eq. (5), since internal constraints have all zero terms in the rows corresponding to the floating base dynamics:
(10) 
The contact force constraints in the QP shown in Eq. 9 include the friction cone inequalities to prevent slipping, and a reaction torque limit to prevent flipping or rolling the contacting link. In the case of a surface contact with a rectangular support area, the friction cone inequalities are
(11) 
and the noflip condition inequalities are
(12) 
where
(13) 
and represent the distance from the center of the rectangle to the vertex in the local contact frame. Note that, is the wrench representing resultant forces on the surface taken at the center of the rectangle in the local coordinate frame. [26] describes the closedform formula for the contact wrench cone . Then, the contact constraints for the th contact are compactly expressed as
(14) 
The final step is to include contact frame rotations and augment to multiple contact points. For example, the formulation for contact points is
(15) 
where
(16) 
Note that is SO(3) from the CoM frame to the local contact coordinate frame and allows contact constraints to be expressed locally.
When selecting the weight matrices and for the QP cost function in Eq. 9, we recommend weighting more heavily than . For example, if we relax the height control task, then the QP will adjust the task to allow the robot to fall below the commanded height to reduce the vertical directional reaction forces because these forces are the largest numbers among the optimization variables in general.
IiB3 Contact Constraint Transitions
WBDC also allows for optional smoothing of contact transitions by bounding the magnitude of reaction forces during the transition period. When using this functionality, we add the following inequality for the vertical directional reaction forces for each contact point:
(17) 
where . This constraint is included as an extra row in each matrix shown in Eq 15. During the transition period, users increase or decrease to avoid a sudden jump in the reaction forces when the contact is engaged or disengaged. Nonvertical reaction forces are bounded by the magnitude of the reaction force in the vertical direction, thus a single additional inequality constraint for each contact point is sufficient.
At this point the QP problem is fully specified. Running a solver will return the contact reaction forces and the relaxation variables . Plugging the latter back into the first task execution constraint in Eq. 9 will yield .
IiC Prioritized Task Executions
With , we can begin the process of iteratively projecting and applying the remaining prioritized tasks. Tasklevel controllers are computed in operational space as acceleration commands and converted to accelerations in configuration space using differential forward kinematics via
(18) 
where and represent the task’s operational coordinates and the robot configuration, respectively, and is the corresponding Jacobian matrix. The joint acceleration resulting from the second desired task acceleration, can be resolved as
(19)  
(20) 
where represents the Jacobian associated with the second task, , projected into the null space of the first task, . by definition is orthogonal to the Jacobian associated with the projected first task, . Eq. (19) can be extended to the general th task case, using the following hierarchy
(21) 
with
(22) 
where , . This task hierarchy is similar, but not identical to [16, 13]. Compared to those, our method is more concise, resulting in lower computation load for similar control specifications. In particular, we do not include the computation of time derivatives of prioritized Jacobians. Previous studies use rather than , which appears in Eq. (20). We use because it correctly addresses the influence of the velocity on the task space.
The last step of WBDC is to compute a torque command from the contact reaction forces () and the configuration space acceleration (). By plugging these two terms into Eq. 5, we obtain
(23) 
Since all terms on the right hand side are known, we can calculate the torque command by multiplying the right hand side by the inverse of . To enhance the computational efficiency, we reduce the matrix by removing all zero terms corresponding to the floating base.
Iii Simulation Results
To verify the proposed methods, we perform physicsbased simulations of Valkyrie, an adult size humanoid robot developed by NASA Johnson Space Center [27]. In our simulation, we reduced the number of DOFs of the robot by assuming that hand and wrist joints are fixed. Except for the reduced number of actuated joints, we built the Valkyrie simulation based on data provided by NASA. The simulations are designed to verify our claims: 1) execution of prioritized tasks, and 2) computational efficiency.
Iiia Multiple Task Execution
The proposed method is verified using complex whole body motions with double contact conditions as shown Fig. 2 and Fig. 3. In our simulation, Valkyrie has 28 actuated joints and the total dimensionality of the configuration space is including the virtual joints representing the floating base. The tasks used in the simulation are listed and the subscript indices indicate the priority of each task.

: centroidal momentum (CM)

: right hand position (RHP)

: left hand position (LHP)

: full joint posture (JP)
In Fig. 2, the CoM is commanded to move up and down while maintaining constant hand positions and double support contact. As explained in previous sections, the contact constraints are given the highest priority and the accelerations at the contact points are assumed to be zero. The first task is the CM task and is subordinate to the contact constraints. The CM task was designed to minimize the centroidal angular momentum while following a planned CoM trajectory. The vertical directional CoM trajectory is a sinusoidal function with amplitude and frequency. Next, the hand position tasks are defined to maintain a constant position. The last task specification is the joint position task for all joints and the corresponding desired values are the initial joint positions.
Fig. 2 shows the simulation results for the set of tasks defined above. As shown in the snapshots and the upper graph of Fig. 2, the robot successfully moves up and down to track the desired trajectory while maintaining constant hand positions. Since the sum of the task dimensions is larger than the total DOF of the robot, some lower priority tasks cannot be completely executed. For this reason, the joint position task with the lowest priority has significant error (), compared with errors of other tasks () as shown in the second graph.
IiiB Computation Time Evaluation
Tasks  mean / SD () 

JPos  0.632 / 0.0948 
CM + JPos  0.612 / 0.0971 
CM + RHP + JP  0.609 / 0.0999 
CM + RHP + LHP + JP  0.636 / 0.0957 
CM + RHP + LHP + BO + HO + JP  0.637 / 0.0957 
To evaluate the computational performance of the proposed algorithm, we implemented five different simulation scenarios with varying numbers of tasks as shown in Fig. 3. All of the scenarios use joint position as the lowest priority task, and each scenario successively incorporates one or two more tasks relative to the previous setup. We then timed our algorithm running on a dualcore 3.0 GHz Intel i7 processor for each of the five scenarios. Table I and Fig. 4 show the measured computation time for iterations of the algorithm for each simulated scenario.
Overall, the average computation time was around . In the proposed algorithm, the majority of the time is used to solve the QP, so the computation time would probably scale most noticeably with the size of the constraint set and the cost function (which includes the first task). As shown in the Fig. 4, case (a) when the joint position task, which has the largest task dimension, is the first task incurs slightly more computational load than that of simulation case (b) when the CM task is the first task. Furthermore, since only the first task is included in the QP where most of the time is spent, the computation time does not increase significantly with respect to the number of hierarchical tasks from (b) to (e). Therefore, this algorithm works well even with a large number of prioritized tasks. In the current setup we did not incorporate the advanced decomposition algorithms used in [9, 11], so we believe that the computational efficiency could be improved by optimizing some of the matrix calculations.
Iv PassiveAnkle Biped Robot Experiments
Our robot, Mercury, is a biped robot that is 1.5 m tall and 23 kg in weight. The leg kinematics resemble simplified human kinematics and contain, in series, an adduction/abduction hip joint, a flexion/extension hip joint, and a flexion/extension knee joint, as shown in Fig. 5(a). The lack of ankle actuation allows the carbon fiber shank to be as lightweight as possible for quick foot movements. The series elastic actuators (SEAs) on all six joints are based on a sliding spring carriage connected to the output joint by steel cables. The deformation in the springs is directly measured within the carriage assembly. For fall safety, the robot is attached to a pulley system with a block and tackle that allows us to lift the robot off of the ground. Mercury is controlled with distributed digital signal processors connected by an EtherCAT network to a centralized PC running a RTPreempt Linux kernel. Each DSP controls a single actuator, and they do not communicate directly with each other. Power is delivered through a tether. The update frequencies for both WBDC and the torque feedback controllers are 1, and should be faster in the near future.
In the experiments, we use our disturbanceobserver (DOB) based torque feedback controller [28], which accomplishes both accurate torque tracking and large phase margin. Highfidelity joint torque control is important for successful implementations of WBC, especially for this robot since it can only obtain body posture control by exploiting dynamics (the lack of the ankle actuation does not allow the robot to stand statically).
Iva Body Pose Control Test
In the first experiment, we used a single task to control body orientation and CoM position. The purpose of this test was to verify that the reaction forces satisfy the contact constraints and that WBDC controls the operational space task as we intended. As mentioned in Section. IIB1, the first task needs to span the six floating base DOF (even though we know some of them are uncontrollable). We allocate small weights ( in Eq. (9)) for , , and body yaw control to emphasize the importance of CoM height, body roll, and body pitch in the QP. During the experiment, a person lightly holds the robot torso and constrains the horizontal movements. Mercury controls the other aspects of its motion, such as height, roll, and pitch. To test the robot’s compliance to horizontal disturbances, the experimenter moves the body left and right, and forward and backward (Fig. 5(a)).
The reaction forces presented in Fig. 5(b)(c) are commanded reaction forces since we cannot measure the reaction forces directly (the robot does not have force sensors at the feet). However, the commanded reaction forces satisfy the friction cone constraint as we can see in Fig. 5(b)(c). Fig. 5(e) presents the tracking performance of joint torque controller, and we can see the commanded and sensed torques almost overlap. The CoM position data in Fig. 5(d) shows that Mercury accurately maintains the commanded height. As we intended, the horizontal position is not restrained by the commanded position.
IvB Stepping Test
The purpose of this test is to show how the contact transition method (Section. IIB3) mitigates the jerk caused by a sudden change in the contact constraints while ensuring that our controller maintains the CoM height and body orientation during a stepping motion. Fig. 6(a) shows how we conducted the experiment. As we did in the body pose control experiment, a person gently holds the handles on the torso to constrain lateral movement. Stepping motion consists of three phases: double contact, transition, and swing. The duration of each phase was set to for transitions, for double contact, for swings.
Fig. 6(b) shows that the vertical reaction forces smoothly change from to during transition periods (blue box). Without the described transition smoothing, the reaction force commands will suddenly jump from to when contact constraints switch. The controlled position and orientation data are presented in Fig. 6(c). The and direction CoM and yaw orientation are not presented since they are uncontrolled dimensions. We use a quaternion for the body orientation description, so we show the and , which are and components of a quaternion , instead of roll and pitch, respectively. We can see that the body orientation stays close to the commanded orientation during the stepping motion. The experimental results show that the proposed WBDC stably and accurately control stepping motions, which is a promising foundation for the upcoming untethered walking tests.
V Conclusion
In this paper, we propose a new WBC formulation that is computational efficient, algorithmically robust, and technically sound. The proposed algorithm ensures internal and contact constraints are satisfied while conforming to a strict task hierarchy. It uses QP to compute reaction forces satisfying contact constraints and then addresses operational space tasks defined as desired accelerations. Since we utilize accelerationbased prioritized task execution instead of computing operational space dynamics, the whole projection process is concise and efficient. In our physicsbased simulation tests, WBDC computes torque commands for a 28DoF humanoid robot in and the computation time is constant even when the number of tasks increases. The proposed methods were successfully implemented in our biped robot and the experiments demonstrated body posture control and smooth stepping behavior.
We are currently working on untethered walking with the passive ankle biped, which requires a robust planning algorithm and highperformance feedback controllers. By integrating the new WBDC and DOBbased torque feedback controller with our robust walking planning algorithm, we are aiming to show 3D untethered walking soon.
Acknowledgments
The authors would like to thank the members of the Human Centered Robotics Laboratory at The University of Texas at Austin for their great help and support. This work was supported by the Office of Naval Research, ONR Grant [grant #N000141512507] and NASA Johnson Space Center, NSF/NASA NRI Grant [grant #NNX12AM03G].
References
 [1] K. Iagnemma and J. Overholt, Special Issue: DARPA Robotics Challenge (DRC), J. Wiley and Sons, Eds. Journal of Field Robotics, 2015, vol. 32, no. 2.
 [2] S. Kuindersma, F. Permenter, and R. Tedrake, “An efficiently solvable quadratic program for stabilizing dynamic locomotion,” in International Conference on Robotics and Automation (ICRA). IEEE, 2014, pp. 2589–2594.
 [3] B. J. Stephens and C. G. Atkeson, “Dynamic balance force control for compliant humanoid robots,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2010, pp. 1248–1255.
 [4] S. Feng, E. Whitman, X. Xinjilefu, and C. G. Atkeson, “Optimizationbased full body control for the darpa robotics challenge,” Journal of Field Robotics, vol. 32, no. 2, pp. 293–312, 2015.
 [5] T. Koolen, S. Bertrand, G. Thomas, T. De Boer, T. Wu, J. Smith, J. Englsberger, and J. Pratt, “Design of a MomentumBased Control Framework and Application to the Humanoid Robot Atlas,” International Journal of Humanoid Robotics, vol. 13, no. 01, pp. 1 650 007–35, Mar. 2016.
 [6] L. Sentis, “Synthesis and control of wholebody behaviors in humanoid systems,” Ph.D. dissertation, Stanford, 2007.
 [7] L. Sentis, J. Park, and O. Khatib, “Compliant control of multicontact and centerofmass behaviors in humanoid robots,” IEEE Transactions on robotics, vol. 26, no. 3, pp. 483–501, 2010.
 [8] Y. Lee, S. Hwang, and J. Park, “Balancing of humanoid robot using contact force/moment control by taskoriented whole body control framework,” Autonomous Robots, vol. 40, no. 3, pp. 457–472, Oct. 2015.
 [9] A. Escande, N. Mansard, and P.B. Wieber, “Hierarchical quadratic programming: Fast online humanoidrobot motion generation,” The International Journal of Robotics Research, vol. 33, no. 7, pp. 1006–1028, 2014.
 [10] L. Righetti and S. Schaal, “Quadratic programming for inverse dynamics with optimal distribution of contact forces,” in 12th International Conference on Humanoid Robots (Humanoids). IEEE, 2012, pp. 538–543.
 [11] A. Herzog, N. Rotella, S. Mason, F. Grimminger, S. Schaal, and L. Righetti, “Momentum control with hierarchical inverse dynamics on a torquecontrolled humanoid,” Autonomous Robots, vol. 40, no. 3, pp. 473–491, 2016.
 [12] B. Henze, M. A. Roa, and C. Ott, “Passivitybased wholebody balancing for torquecontrolled humanoid robots in multicontact scenarios,” The International Journal of Robotics Research, p. 0278364916653815, Jul. 2016.
 [13] L. Righetti and S. Schaal, “Quadratic programming for inverse dynamics with optimal distribution of contact forces,” in 12th IEEERAS International Conference on Humanoid Robots (Humanoids). IEEE, 2012, pp. 538–543.
 [14] S. Kuindersma, R. Deits, M. Fallon, and A. Valenzuela, “Optimizationbased locomotion planning, estimation, and control design for the atlas humanoid robot,” Autonomous Robots, vol. 40, no. 3, pp. 429–455, 2015.
 [15] G. Wiedebach, S. Bertrand, T. Wu, L. Fiorio, S. McCrory, R. Griffin, F. Nori, and J. Pratt, “Walking on Partial Footholds Including Line Contacts with the Humanoid Robot Atlas,” in International Conference on Humanoid Robots. Cancun: IEEE, Nov. 2016, pp. 1312–1319.
 [16] B. Siciliano and J.J. Slotine, “A general framework for managing multiple tasks in highly redundant robotic systems,” in 5th International Conference on Advanced Robotics (ICAR), ’Robots in Unstructured Environments’. IEEE, 1991, pp. 1211–1216.
 [17] O. Kanoun, F. Lamiraux, and P. B. Wieber, “Kinematic Control of Redundant Manipulators: Generalizing the TaskPriority Framework to Inequality Task,” Robotics, IEEE Transactions on, vol. 27, no. 4, pp. 785–792, 2011.
 [18] M. de Lasa, I. Mordatch, and A. Hertzmann, “Featurebased locomotion controllers,” ACM Transactions on Graphics (TOG), vol. 29, no. 4, p. 131, Jul. 2010.
 [19] P. M. Wensing and D. Orin, “Generation of dynamic humanoid behaviors through taskspace control with conic optimization,” Robotics and Automation (ICRA), pp. 3103–3109, 2013.
 [20] D. Kim, Y. Zhao, G. Thomas, B. R. Fernandez, and L. Sentis, “Stabilizing SeriesElastic PointFoot Bipeds Using WholeBody Operational Space Control,” IEEE Transactions on Robotics, vol. 32, no. 6, pp. 1362–1379, 2016.
 [21] Y. Zhao, N. Paine, and L. Sentis, “Feedback parameter selection for impedance control of series elastic actuators,” IEEERAS International Conference on Humanoid Robots, pp. 999–1006, 2014.
 [22] J. Strom, G. Slavov, and E. Chown, “Omnidirectional walking using zmp and preview control for the nao humanoid robot,” in Robot Soccer World Cup. Springer, 2009, pp. 378–389.
 [23] L. Sentis, J. Petersen, and R. Philippsen, “Implementation and stability analysis of prioritized wholebody compliant controllers on a wheeled humanoid robot in uneven terrains,” Autonomous Robots, vol. 35, no. 4, pp. 301–319, 2013.
 [24] F. Pierrot, C. Reynaud, and A. Fournier, “Delta: a simple and efficient parallel robot,” Robotica, vol. 8, no. 2, pp. 105–109, 1990.
 [25] D. Goldfarb and A. Idnani, “A numerically stable dual method for solving strictly convex quadratic programs,” Mathematical Programming, vol. 27, no. 1, pp. 1–33, Sep. 1983.
 [26] S. Caron, Q.C. Pham, and Y. Nakamura, “Stability of Surface Contacts for Humanoid Robots: ClosedForm Formulae of the Contact Wrench Cone for Rectangular Support Areas,” arXiv.org, Jan. 2015.
 [27] N. A. Radford, P. Strawser, K. Hambuchen, J. S. Mehling, W. K. Verdeyen, A. S. Donnan, J. Holley, J. Sanchez, and et al., “Valkyrie: NASA’s First Bipedal Humanoid Robot,” Journal of Field Robotics, vol. 32, no. 3, pp. 397–419, May 2015.
 [28] D. Kim, J. Ahn, O. Campbell, N. Paine, and L. Sentis, “Investigations of a Robotic Testbed with Viscoelastic Liquid Cooled Actuators,” arXiv.org, Nov. 2017.