QP Inverse Problem Solver

General description

The “QPInverseProblemSolver” is used to build and solve an inverse problem set by the combination of effector and actuator constraints. The method is based on the formulation of a quadratic program.

Methods description

Requirement: Real time inverse simulation method

Definition: Quadratic programming (QP) is a type of optimization problem. It is the problem of optimizing (minimizing or maximizing) a quadratic function of several variables subject to linear constraints:

 

minimize \tfrac{1}{2} \mathbf{x}^T Q\mathbf{x} + \mathbf{c}^T \mathbf{x}.
subject to  A \mathbf{x} \leq \mathbf{b}

Method:

To solve the QP problem, we use the solver provided by qpOASES library.

How to use the component

To learn how to create a SOFA scene, please refer to the tutorial provided by the SOFA Modeler.

The “QPInverseProblemSolver” has to be set in the beginning of the scene graph. You can display the QP system by setting the printLog variable to true. The component also provides an output data of the results.

An example is provided in the “examples” directory of the plugin.

Data field

Here are described the data fields corresponding to this particular component.

Input data

saveMatrices : If set to true, the component will save the current QP matrices in a file named “QPInverseProblemSolverMatrices.txt”. The file will be located in the current directory.

Output data

delta : Output geometrical actuations. For instance, displacement in the case of cable actuation or volume growth in the case of pressure actuation. The order in the vector corresponds to the order of the components in the scene.

lambda : Output efforts.

Bibliography

Comments are closed.