- Author/Maintainer: Konstantinos Chatzilygeroudis (costashatz@gmail.com)
- Generic tasks
- Generic constraints
- Generic QP solvers
- Inverse Dynamics QP Solver
- Support for floating base
- Inverse Kinemarics QP Solver
- Operate in velocities (i.e., integrate to find positions)
- Using DART to get the dynamics equations
- Benchmarking of QP solvers
- Unit tests
whc depends on DART physics engine. We recommend installing DART from source:
cd /path/to/tmp/folder
git clone git://github.com/dartsim/dart.git
cd dart
git checkout v6.10.1
mkdir build
cd build
cmake -DDART_ENABLE_SIMD=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
sudo make install
If you want to use the OSQP solver, please follow the installation instructions of OsqpEigen and OSQP. If you want native flags (i.e., march=native
) to be enabled (for performance), either do export CXX_FLAGS="march=native -faligned-new"
before the cmake command for osqp installation or use our fork of OsqpEigen (simd
branch) and the -DENABLE_SIMD=ON
cmake option.
For building and running the examples, robot_dart is required. Follow the installation instructions provided by the developers.
./waf configure --prefix=/path/to/installation (--prefix is optional, default is /usr/local)
./waf
./waf install (you might need sudo depending on the installation directory)
whc is being actively developed and the API is not stable. Please see CONTRIBUTING for more on how to help.
UNDER CONSTRUCTION