You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+54-56Lines changed: 54 additions & 56 deletions
Original file line number
Diff line number
Diff line change
@@ -23,68 +23,53 @@ If you use apt to install your dependencies or if you are install `icub-models`
23
23
24
24
If you want to build icub-models directly from source of from the repo, you can check the documentation in [`doc/build-from-source.md`](doc/build-from-source.md).
25
25
26
-
## Usage
27
-
28
-
The model in the repo can be used either directly from the repo, or by installing them.
26
+
## Model Details
29
27
30
-
While the files can be used directly by pointing your software to their location, they are
31
-
tipically used by software that uses either YARP, ROS or Gazebo. For this reason, the models
32
-
are installed as part of the `iCub` ROS package ([instructions](https://github.com/gerkey/ros1_external_use#installing-for-use-by-tools-like-roslaunch)) and following the [YARP guidelines on installing configuration files](http://www.yarp.it/yarp_data_dirs.html).
28
+
The model contained in `icub-models` are listed in the following table. Most model is identified by a name like `iCub<Something><Number>`, that we refer as `YARP_ROBOT_NAME` as historically on iCub robot setups the robot to use was identified by setting the `YARP_ROBOT_NAME` env variable to that name.
33
29
34
-
To make sure that this models are found by the software even when they are not installed in
35
-
system directories, tipically the [`YARP_DATA_DIRS`](http://www.yarp.it/yarp_data_dirs.html) for [YARP](https://github.com/robotology/yarp),
36
-
[`ROS_PACKAGE_PATH`](http://wiki.ros.org/ROS/EnvironmentVariables#ROS_PACKAGE_PATH) for [ROS1](https://www.ros.org/), [`AMENT_PREFIX_PATH`](http://design.ros2.org/articles/ament.html) for [ROS2](https://index.ros.org/doc/ros2/) and the [`GAZEBO_MODEL_PATH`](http://gazebosim.org/tutorials?tut=components#EnvironmentVariables) for [SDFormat](http://sdformat.org/) enviromental variables are modified appropriatly.
|`iCubGazeboV2_5`|`package://iCub/robots/iCubGazeboV2_5/model.urdf`| v2.5.5, joint damping, and inertias of some links increased in a non realistic way to run smoothly in Gazebo Classic (ODE). |
34
+
|`iCubGazeboV2_5_KIT_007`|`package://iCub/robots/iCubGazeboV2_5_KIT_007/model.urdf`| v2.5 + [KIT_007](https://icub-tech-iit.github.io/documentation/upgrade_kits/ankle_for_stairs/support/) with backpack, joint damping, and inertias of some links increased in a non realistic way to run smoothly in Gazebo Classic (ODE). |
35
+
|`iCubGazeboV2_6`|`package://iCub/robots/iCubGazeboV2_6/model.urdf`| v2.6 with joint damping, and inertias of some links increased in a non realistic way to run smoothly in Gazebo Classic (ODE). |
36
+
|`iCubGazeboV2_7`|`package://iCub/robots/iCubGazeboV2_7/model.urdf`| v2.7 with joint damping, and inertias of some links increased in a non realistic way to run smoothly in Gazebo Classic (ODE). |
37
+
|`iCubGazeboV3`|`package://iCub/robots/iCubGazeboV3/model.urdf`| v3 with joint damping, and inertias of some links increased in a non realistic way to run smoothly in Gazebo Classic (ODE). |
38
+
|`iCubGenova02`|`package://iCub/robots/iCubGenova02/model.urdf`| v2.5.5 + [KIT_007](https://icub-tech-iit.github.io/documentation/upgrade_kits/ankle_for_stairs/support/) with backpack |
39
+
|`iCubGenova03`|`package://iCub/robots/iCubGenova03/model.urdf`| v2 with legs v1 and feet v2.5 |
40
+
|`iCubLisboa01`|`package://iCub/robots/iCubLisboa01/model.urdf`| v1 with head v2 |
41
+
|`iCubNancy01`|`package://iCub/robots/iCubNancy01/model.urdf`| v2.5 with arms v1 and head v2 |
37
42
38
43
39
-
### From the source repo
40
-
41
-
In the case models are used from the repo, the first step is configure it with the following commands:
44
+
## Usage
42
45
43
-
```sh
44
-
mkdir build
45
-
cd build
46
-
cmake ..
47
-
```
46
+
### Use the models with ROS
48
47
49
-
If `<icub-models>` is the location of the repo, some folders need to be appended to the mentioned env variables. On *nix system, this can be achived by adding to the `.bashrc` or equivalent file the following three lines:
48
+
Models contained in `icub-models` can be used using the `package:/`-URI listed in previous table. This URI always follow the structure `package://iCub/robots/<name>/model.urdf`, where `<name>` is `iCubErzelli02`, `iCubGazeboV2_5` or a similar identifier.
Note that only the models that are known to work fine with the default physics engine settings of Classic Gazebo (the one that start with `iCubGazebo`)
53
+
are installed. If you want to make available in Gazebo all the models, enable the `ICUB_MODELS_INSTALL_ALL_GAZEBO_MODELS` CMake option.
57
54
58
-
To install the models instead, execute:
55
+
To include the model in a Classic Gazebo world, include it with the following SDF :
59
56
60
-
```sh
61
-
mkdir build
62
-
cd build
63
-
cmake -DCMAKE_INSTALL_PREFIX=<prefix> ..
64
-
cmake --build . --target install
65
-
```
57
+
~~~xml
58
+
<include>
59
+
<pose>0 0 0.5 0 -0.1 3.14</pose>
60
+
<uri>model://iCubGazeboV2_5</uri>
61
+
</include>
62
+
~~~
66
63
67
-
Once the models are installed into a given prefix, edit the env variables as follows:
In order to use these models in Gazebo, set up the simulation environment following the instructions provided in the [icub-gazebo](https://github.com/robotology/icub-gazebo) repository, and add the following line to your ``.bashrc``:
Note that only the models that are known to work fine with the default physics engine settings of Gazebo (`iCubGazeboV2_5` and `iCubGazeboV2_5_plus`)
80
-
are installed. If you want to make available in Gazebo all the models, enable the `ICUB_MODELS_INSTALL_ALL_GAZEBO_MODELS` CMake option.
64
+
the `model:/` used to include the model follow the structure `model://<name>`, where `<name>` is `iCubGazeboV2_5`, `iCubGazeboV2_7` or a similar identifier. Note that you can also use the structure `model://iCub/robots/<name>`.
81
65
82
66
### Use the models from C++ helper library
67
+
83
68
In order to use these models in `c++` application you can exploit the `icub-models` library.
84
69
`icub-models` provides native `CMake` support which allows the library to be easily used in `CMake` projects.
85
70
**icub-models** exports a CMake target called `icub-models::icub-models` which can be imported using the `find_package` CMake command and used by calling `target_link_libraries` as in the following example:
86
71
```cmake
87
-
cmake_minimum_required(VERSION 3.0)
72
+
cmake_minimum_required(VERSION 3.5)
88
73
project(myproject)
89
74
find_package(icub-models REQUIRED)
90
75
add_executable(example example.cpp)
@@ -112,17 +97,13 @@ int main()
112
97
113
98
***Note: The ABI and the API of the C++ helper library has breaking changes only at major releases of the `icub-models` package.***
114
99
115
-
### Use the models from Python helper library
116
-
In order to use these models in `python` application you can exploit the `icub-models` module.
117
-
`icub-models` provides a `python` package to called `icub_models`. You can install it via `cmake`
### Use the models from Python using resolve-robotics-uri-py
119
+
120
+
First of all, make sure that you installed [`resolve-robotics-uri-py`](https://github.com/ami-iit/resolve-robotics-uri-py) python library. Then, you can find the `icub-models` models using `package:/` or `model:/` URIs, as you would use with Gazebo or ROS:
The iCub robot `root frame` is defined as [`x-backward`][1], meaning that the x-axis points behind the robot. Nevertheless, in the robotics community, sometimes the root frame of a robot is defined as [`x-forward`][2]. As a consequence, to use the iCub models with software developed for the `x-forward` configuration (e.g. [IHMC-ORS][3]), might be necessary to quickly update the root frame orientation.
139
137
For this purpose, locate the joint `<joint name="base_fixed_joint" type="fixed">` in the `URDF` model and perform the following substitution in the `origin` section:
0 commit comments