Awesome
whole-body-estimators
YARP-based estimators for humanoid robots.
Overview
:orange_book: Implementation
The current implementations available in the devices
folder include,
baseEstimatorV1
includes a simple humanoid floating base estimation algorithm fusing legged odometry and IMU attitude estimation, aimed to be used along side walking controllers.
wholeBodyDynamics
primarily 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
ctrLib
library -
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
baseEstimatorV1
Please follow the documentation available here to run the floating base estimator.wholeBodyDynamics
Please 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>