@Article{escande:ijrr:2014, author = {Escande, Adrien and Mansard, Nicolas and Wieber, Pierre-Brice}, title = {Hierarchical Quadratic Programming: Fast Online Humanoid-Robot Motion Generation}, journal = {The International Journal of Robotics Research}, year = {2014}, volume = {33}, number = {7}, pages = {1006--1028}, month = {May}, doi = {https://doi.org/10.1177/0278364914521306}, url = {https://hal.archives-ouvertes.fr/file/index/docid/751924/filename/m.pdf}, keywords = {Inverse kinematics, redundancy, task hierarchy, humanoid robot}, abstract = {Hierarchical least-square optimization is often used in robotics to inverse a direct function when multiple incompatible objectives are involved. Typical examples are inverse kinematics or dynamics. The objectives can be given as equalities to be satisfied (e.g. point-to-point task) or as areas of satisfaction (e.g. the joint range). This two-part paper proposes a complete solution to resolve multiple least-square quadratic problems of both equality and inequality constraints ordered into a strict hierarchy. Our method is able to solve a hierarchy of only equalities ten time faster than the classical method and can consider inequalities at any level while running at the typical control frequency on whole-body size problems. This generic solver is used to resolve the redundancy of humanoid robots while generating complex movements in constrained environment. In this first part, we establish the mathematical bases underlying the hierarchical problem and propose a dedicated solver. When only equalities are involved, the solver amounts to the classical solution used to handle redundancy in inverse kinematics in a far more efficient way. It is able to handle inequalities at any priority levels into a single resolution scheme, which avoids the high number of iterations encountered with cascades of solvers. A simple example is given to illustrate the interest of our approach. The second part of the paper focuses on the implementation of the solver for inverse kinematics and its use to generate robot motions.}, publisher = {Sage Publications Ltd}, address = {1 Olivers Yard, 55 City Road, London EC1Y 1SP, England} }