A sparse MPC solver for walking motion generation.

## Overview This package includes two small libraries. The main library is located in 'solver' subfolder, it implements a solver of quadratic optimization problems defined using sparse model predictive control formulation for walking motion generation. The second library ('WMG' subfolder) is necessary to perform walking simulation, it produces input for the solver on each simulation step. Tests and demos are placed in 'test' subfolder. ## Requirements: * GNU make * Eigen (for WMG) ## The libraries can be compiled in two ways: 1. (Recommended) Using cmake: * Compilation: `make cmake` * Toolchain can be specified in the folowing way: `make cmake TOOLCHAIN=< path to a toolchain >` 2. (Does not work on MAC) Using only GNU make: * compilation of the libraries: `make` * compilation of the libraries and tests: `make test` ## Further information The newest sources are available on GitHub: <https://github.com/asherikov/smpc_solver> The documentation generated by doxygen can be found here: <http://asherikov.github.io/smpc_solver>
Copyright (c) 20112012 Alexander Sherikov, Dimitar Dimitrov. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Walk of a robot can be controlled using the following scheme:
The smpc_solver library addresses the first step. The position of the CoM is determined using MPC scheme, where it is modeled using inverted pendulum in 3 dimensions. MPC implies, that we have to solve an optimization problem. The objective function is quadratic, additional constraints are imposed by position of the support foot/feet: we need to satisfy certain requrements to prevent robot from falling.
The WMG library contains functions, which are necessary to define footsteps, prepare parameters for the solver library, determine positions of the feet.
Terms and abbreviations:
For more information refer to the papers listed in 'References'. Also, the 'pProblemDef' section contains more detailed explanations.
Refer to the masters thesis available on the project webpage for detailed description.
Dimitar Nikolaev Dimitrov, Alexander Sherikov, and PierreBrice Wieber
A sparse model predictive control formulation for walking motion generation
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS),
September 2530, 2011, San Francisco, California