Skip to content
Snippets Groups Projects
Commit fddaa143 authored by stonneau's avatar stonneau Committed by GitHub
Browse files

Updated readme: new name, python documentation

parent 5e371d86
No related branches found
No related tags found
No related merge requests found
# RobustEquilibriumLib # CentroidalDynamicsLib
Utility classes to check the (robust) equilibrium of a system in contact with the environment. Utility classes to check the (robust) equilibrium of a system in contact with the environment. Comes with python bindings.
The main class that collects all the equilibrium-related algorithms is ```StaticEquilibrium```. The main class that collects all the equilibrium-related algorithms is ```Equilibrium```.
All the algorithms take as input: All the algorithms take as input:
* A list of contact points * A list of contact points
* A list of contact normals * A list of contact normals
...@@ -8,7 +8,7 @@ All the algorithms take as input: ...@@ -8,7 +8,7 @@ All the algorithms take as input:
* The number of generators used for the linear approximations of the friction cones * The number of generators used for the linear approximations of the friction cones
* The mass of the system * The mass of the system
Once these input parameters have been specified, the user has access to four algorithms implemented in the following four methods of the class ```StaticEquilibrium```: Once these input parameters have been specified, the user has access to four algorithms implemented in the following four methods of the class ```Equilibrium```:
* ```computeEquilibriumRobustness```: compute the robustness of the equilibrium of a given a CoM (center of mass) position (negative values mean the system can not be in equilibrium). * ```computeEquilibriumRobustness```: compute the robustness of the equilibrium of a given a CoM (center of mass) position (negative values mean the system can not be in equilibrium).
* ```checkRobustEquilibrium```: checks whether the system can be in equilibrium in a specified CoM position and with a specified robustness level. * ```checkRobustEquilibrium```: checks whether the system can be in equilibrium in a specified CoM position and with a specified robustness level.
* ```findExtremumOverLine```: Find the extremum com position that is in robust equilibrium along the specified line. * ```findExtremumOverLine```: Find the extremum com position that is in robust equilibrium along the specified line.
...@@ -26,7 +26,11 @@ The test ```test_LP_solvers``` tries to solve some LP problems using qpOases and ...@@ -26,7 +26,11 @@ The test ```test_LP_solvers``` tries to solve some LP problems using qpOases and
* [cdd lib](https://www.inf.ethz.ch/personal/fukudak/cdd_home/) * [cdd lib](https://www.inf.ethz.ch/personal/fukudak/cdd_home/)
* [qpOases (version >= 3.0beta)](https://projects.coin-or.org/qpOASES) * [qpOases (version >= 3.0beta)](https://projects.coin-or.org/qpOASES)
## Installation Steps for Ubuntu 12.04 ## Additional dependencies for python bindings
* [Boost.Python](http://www.boost.org/doc/libs/1_63_0/libs/python/doc/html/index.html)
* [eigenpy](https://github.com/stack-of-tasks/eigenpy)
## Installation Steps for Ubuntu 12.04, 14.04 and 16.04
You can install cdd lib with the following command: You can install cdd lib with the following command:
``` ```
sudo apt-get install libcdd-dev sudo apt-get install libcdd-dev
...@@ -59,8 +63,27 @@ cmake -DCMAKE_INSTALL_PREFIX=${DEVEL_DIR}/install .. ...@@ -59,8 +63,27 @@ cmake -DCMAKE_INSTALL_PREFIX=${DEVEL_DIR}/install ..
make install make install
``` ```
### Optional ### Optional: CLP installation
As an alternative to qpOases you can use [CLP](https://projects.coin-or.org/Clp) to solve linear programs. As an alternative to qpOases you can use [CLP](https://projects.coin-or.org/Clp) to solve linear programs.
However, we found qpOases to be faster (especially when solving a series of problems that are similar to each other, However, we found qpOases to be faster (especially when solving a series of problems that are similar to each other,
because it can exploit warm start) and more reliable, so we suggest you to stick with qpOases. because it can exploit warm start) and more reliable, so we suggest you to stick with qpOases.
In particular, we found that CLP sometimes fails to find the real optimum when using the DLP formulation. In particular, we found that CLP sometimes fails to find the real optimum when using the DLP formulation.
### Optional: Python bindings installation
To install the Python bindings, in the CMakeLists.txt file, first enable the BUILD_PYTHON_INTERFACE option:
```
OPTION (BUILD_PYTHON_INTERFACE "Build the python binding" ON)
```
Then rebuild the library:
```
cd $ROBUST_EQUI_LIB_DIR/build
cmake -DCMAKE_INSTALL_PREFIX=${DEVEL_DIR}/install ..
make install
```
The python bindings should then be accessible through the package centroidal_dynamics.
To see example of use, you can refer to the [test file](https://github.com/stonneau/centroidal-dynamics-lib/blob/master/python/test/binding_tests.py)
which is rather self explanatory:
In spite of an exhaustive documentation, please refer to the C++ documentation, which mostly applies
to python.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment