whole-body-estimators
March 4, 2024 ยท View on GitHub
YARP-based estimators for humanoid robots.
Overview
:orange_book: Implementation
The current implementations available in the devices folder include,
baseEstimatorV1includes a simple humanoid floating base estimation algorithm fusing legged odometry and IMU attitude estimation, aimed to be used along side walking controllers.

wholeBodyDynamicsprimarily implements external contact wrench and internal joint torques estimation using various sensor modalities of the robot. Please see the document Force Control on iCub for more details (This is ported from its original archived repository robotology-legacy/codyco-modules). It additionally includes supporting algorithms for gravity compensation torques estimation, and force-torque sensors calibration.
:page_facing_up: Dependencies
-
YCM extra CMake Modules for YARP and friends.
-
YARP: to handle the comunication with the robot;
-
ICUB: to use the utilities like low pass filters from the
ctrLiblibrary -
iDynTree: to setup the floating base estimation algorithm. Please compile iDynTree with CMake option IDYNTREE_USES_ICUB_MAIN ON (depends on ICUB).
-
Gazebo: for the simulation (tested Gazebo 8 and 9).
Optional Dependencies
- walking-controllers: to test the floating base estimation along side walking controllers
It must be noted that all of these dependencies can be directly installed together in one place using the robotology-superbuild, in particular enabling its Dynamics component.
:hammer: Installation
conda (recommended)
You can easily install whole-body-estimators with with conda using the following command
conda install -c conda-forge -c robotology whole-body-estimators
If you are not familiar with conda or conda-forge, you can read an introduction document in conda-forge overview.
robotology-superbuild (advanced)
If you are installing whole-body-estimators for use as part of iCub humanoid robot software installation, you may want to install whole-body-estimators through the robotology-superbuild, an easy way to download, compile and install the robotology software on multiple operating systems, using the CMake build system and its extension YCM. To get whole-body-estimators when using the robotology-superbuild, please enable the ROBOTOLOGY_ENABLE_DYNAMICS CMake option of the superbuild.
Build from source with pixi (advanced)
If you are just interesting in building the devices to check that the compilation is working fine and tests pass, you can use pixi:
git clone https://github.com/robotology/whole-body-estimators.git
cd whole-body-estimators
pixi run download_deps
pixi run install_deps
pixi run test
Build from source manually (advanced)
Linux
git clone https://github.com/robotology/whole-body-estimators.git
cd whole-body-estimators
mkdir build && cd build
cmake ../
make
[sudo] make install
Notice: sudo is not necessary if you specify the CMAKE_INSTALL_PREFIX. In this case it is necessary to add in the .bashrc or .bash_profile the following lines:
export WBDEstimator_INSTALL_DIR=/path/where/you/installed
export YARP_DATA_DIRS=${YARP_DATA_DIRS}:${WBDEstimator_INSTALL_DIR}/share/yarp
Note that this is not necessary if you install whole-body-estimators via the robotology-superbuild .
Usage
baseEstimatorV1Please follow the documentation available here to run the floating base estimator.wholeBodyDynamicsPlease follow the documentation for a description of features/parameters of the device and please follow the documentation in Force Control on iCub for running the whole body dynamics device.
Authors
Hosameldin Awadalla Omer Mohamed <hosameldin.mohamed@iit.it>
Francisco Javier Andrade Chavez <FranciscoJavier.AndradeChavez@iit.it>
Prashanth Ramadoss <prashanth.ramadoss@iit.it>
Giulio Romualdi <giulio.romualdi@iit.it>
Silvio Traversaro <silvio.traversaro@iit.it>
Daniele Pucci <daniele.pucci@iit.it>