Header logo is

An {MPC} {Walking} {Framework} {With} {External} {Contact} {Forces}


Conference Paper



In this work, we present an extension to a linear Model Predictive Control (MPC) scheme that plans external contact forces for the robot when given multiple contact locations and their corresponding friction cone. To this end, we set up a two-step optimization problem. In the first optimization, we compute the Center of Mass (CoM) trajectory, foot step locations, and introduce slack variables to account for violating the imposed constraints on the Zero Moment Point (ZMP). We then use the slack variables to trigger the second optimization, in which we calculate the optimal external force that compensates for the ZMP tracking error. This optimization considers multiple contacts positions within the environment by formulating the problem as a Mixed Integer Quadratic Program (MIQP) that can be solved at a speed between 100-300 Hz. Once contact is created, the MIQP reduces to a single Quadratic Program (QP) that can be solved in real-time ({\textless}; 1kHz). Simulations show that the presented walking control scheme can withstand disturbances 2-3× larger with the additional force provided by a hand contact.

Author(s): Mason, Sean and Rotella, Nicholas and Schaal, Stefan and Righetti, Ludovic
Book Title: 2018 IEEE International Conference on Robotics and Automation (ICRA)
Pages: 1785--1790
Year: 2018
Month: May
Publisher: IEEE

Department(s): Autonomous Motion, Movement Generation and Control
Bibtex Type: Conference Paper (inproceedings)

DOI: 10.1109/ICRA.2018.8461236

Address: Brisbane, Australia
URL: https://arxiv.org/abs/1712.09308


  title = {An {MPC} {Walking} {Framework} {With} {External} {Contact} {Forces}},
  author = {Mason, Sean and Rotella, Nicholas and Schaal, Stefan and Righetti, Ludovic},
  booktitle = {2018 {IEEE} {International} {Conference} on {Robotics} and {Automation} ({ICRA})},
  pages = {1785--1790},
  publisher = {IEEE},
  address = {Brisbane, Australia},
  month = may,
  year = {2018},
  url = {https://arxiv.org/abs/1712.09308},
  month_numeric = {5}