Resources and programs to generate models (URDF, SDF) of the iCub robot. The models automatically generated by the software and the resources in this repository are available at https://github.com/robotology/icub-models .
Note: this repository is meant to streamline the process of producing iCub URDF/SDF models by iCub mantainers. It is not meant to be used directly by users of iCub. For offical info on the kinematic parameters of the iCub, please see the documentation in iCub's documentation.
To generate the models, first of all that you have pixi installed.
Then, clone the repo and generate and the models via the test_generated_models
pixi task:
cd ~
git clone https://github.com/robotology/icub-models-generator
cd icub-models-generator
pixi run test_generated_models
If you want to generate the models in a local clone of icub-models, set the ICUB_MODELS_SOURCE_DIR
environment variable to the location of the icub-models
local folder, and run the copy_models_to_icub_models
pixi task:
cd ~
git clone https://github.com/robotology/icub-models
export ICUB_MODELS_SOURCE_DIR=`pwd`/icub-models
cd icub-models-generator
pixi run copy_models_to_icub_models
For example, if you already have a icub-models copy as part of a robotology-superbuild installation located in /usr/local/src/robotology-superbuild
, to generate the models there you can do the following:
export ICUB_MODELS_SOURCE_DIR=/usr/local/src/robotology-superbuild/src/icub-models
cd icub-models-generator
pixi run copy_models_to_icub_models
Currently, it is possible to generate iCub models by means of two different pipelines.
-
The generation is achieved by using Denavit Hartenberg parametsrs based on robot-model hardcoded data in the iKin/iDyn source code, and meshes postprocessed by ISIR at UPMC, Paris, available in
dh
directory. -
The generation is achieved from CAD models converted to simmechanics file, as described in https://github.com/icub-tech-iit/cad-mechanics-public/wiki/Creo-mechanism-to-URDF, available in the
simmechanics
directory.
As the two pipeline process data from different sources, the link frames are not guaranteed to have the same orientation or location across different models. The only frames (that are represented in URDF as massless links) whose position is guaranteed to be consistent across different models are the one documented in https://icub-tech-iit.github.io/documentation/icub_kinematics/icub-model-naming-conventions/icub-model-naming-conventions/ .
Both generation pipelines are still in a work in progress
state, and several issues need to be properly solved, e.g.: