ICub Project Mechanical Documentation and Design Conventions

From Wiki for iCub and Friends
Jump to: navigation, search


The basis for the collaboration of the different groups involved in the design of the iCub platform and its extensions (e.g. the iKart holonomic mobile base) is the definition of common rules and tools for the design itself.

The present document defines the standard for the documentation of mechanical hardware components and assemblies.

.SVN Repository

It's here assumed that you are familiar with SVN and are able to check out the entire project. Shall you need further details, please consider this section

Repository conventions

For proper repository maintenance people committing files to the repository shall act in accordance with the following guidelines.

Important - All custom parts and assemblies file shall be stored in the folder:


Important - All 3D models of commercial parts, electronic boards, and other components shall be stored in the folder:


Documentation coding standard

This section describes the coding standard to be used in the design and development for the current project.

The use of the coding standard for each document shared in the community is mandatory to keep the traceability of the file. The same coding is also recommended as internal standard for each group involved in the iCub mechanical platform documentation.

The coding procedure assigns an alphanumeric code to each file produced in the design process from part files to assembly drawings. The same coding standard should also be used for the written documentation (eg. calculation report).

The codes assigned shall be in the following form:


The fields in the code are described hereinafter.

RC: common to all iCub (RobotCub) documentation;

ISSUER: the group author acronym:

Currently defined acronyms are listed below:

  • SSSA
  • IST
  • EPFL
  • TLR
  • EBRI
  • IIT

GROUP: numeric field unique for each different design or solution (this is the main assembly code – in case of design of several different mechanical group, as for instance several different shoulder assemblies, each design will have its code);

LETTER: The letter is a type identifier (explain what the file is):

A - Top Assembly (the top assembly is the higher assembly in the model tree)
G - Group (a group is a lower level assembly in the model tree)
P - Part
D - Documentation file (eg. doc or xls files)
LY - 2D layout file (eg. preliminary 2D design on Autocad)

NUMBER: Identification code in the current project (each part or group has its own identification code);

Following the described standard the first part designed by Telerobot will be:

Note: Space characters are not allowed in file names; use the underscore character “_” instead.
Note: Although not mandatory it is preferred to avoid codes with the same GROUP_LETTER_NUMBER and different ISSUER.

CAD data standard

The CAD documentation shall be produced and maintained with PTC Creo Parametric 2.0 (the follower of proE in the family of parametric 3D modelers.

Standard part

The standard part for the iCub documentation is named “rc_start_part_wf4.prt”. This part must be used as the base for creating new ones (using the “Save as…” or the “New” file options commands). This file can be found in the “mechanics\config\standard_files” folder.

For common reference the standard part is the same for the entire consortium and must not be modified.

The parameters defined in each part file are listed below.


The parameters highlighted in GREEN are filled by the user.

  • DESCRIPTION:description of the part.
  • SUBDESCRIPTION:(if necessary) a sub-description for the part (i.e. the group in which this part will be assembled, etc.)
  • DESIGNED:the group acronym (see before for the documentation)
  • DRAWN:the name of the group designer
  • REV:Revision of the part (alphanumeric: A1, A2, A3, …)
  • TREATMENT:the treatment that will be applied to the part.
  • MATERIAL:the material assigned to the part. This parameter is filled in using the Pro/E command sequence Setup > Material > Assign.
Important - The description and sub-description fields are used for the preparation of the project BOM. It is of the utmost importance that the fields are filled properly and with meaningful content.

The parameter highlighted in RED :

  • MASS
  • TIPO

are filled by the system at the first regeneration of the part with the values found in the start part.

Note: The parameter TIPO defines the part category. This information is used in the production phase to sort out items depending on how they are to be acquired. By default it is left blank and is later filled by IIT staff members.

MASS is directly dependent for the MATERIAL parameter (using the density value reported in the material file).

Mirroring models

When designing it is often necessary to mirror parts or assemblies. Special care shall be taken in these cases.

The command to be used to speed up the creation of drawings the mirror part with the inclusion of feature data is:

File > Mirror Part > Include al feature data

Important – After mirroring models update the model description accordingly (e.g. if the description contains the string “left” change it to “right” and viceversa).
Important – Special care shall be taken when revising a mirrored part. If features need to be added to the model tree this shall be done by mirroring the base part and not by adding features directly in the mirrored model.

Standard assembly

The standard assembly the iCub documentation is named “rc_start_asm_wf4.asm”. This file must be used for creating new assemblies (using the “Save as…” or the “New” file options commands). This file can be found in the “mechanics\config\standard_files” folder.

As for the standard part for common reference the standard assembly is the same for the entire consortium and must not be modified.

The parameters defined in each assembly file are listed below.


As described before, the parameters highlighted in GREEN are defined by the user. The RED ones are defined by the system at the first regeneration.

Note: MASS parameter is automatically calculated by the system as a sum of all the parts mounted in the given assembly at every regeneration of the model.

Commercial components

Important - To avoid the duplication of database entries before adding commercial components to assemblies it is mandatory to check that the given component is new, and has not been used so far. This is to be done by checking the commercial folder.
Important - Whenever possible use family table commercial components. Adding a new component which is already represented in a family table shall be done by editing the family table. This is mandatory to avoid part duplication.

Revision management

Parts and assemblies shall be revised according to the revision management protocol.

The revision index is an alphanumeric code composed by a capital letter (A-Z) and a natural number from 1 to 9.

The revision index sequence will therefore be something like:

A1, A2, A3, ..., A9, B1, B2, ... etc.

Important – The revision index shall be compiled in the part or assembly parameters as this parameter is dynamically linked by the drawings.

Part revision

Whenever a part is modified special care shall be taken in order to properly track the evolution of the design.

Important – If the part is backwards compatible (i.e. if it can be directly replaced in the assembly that contains it) the revision index shall be incremented.
Important – If the part is not backwards compatible a new part code shall be assigned to the part
Important – After revising a part its drawing shall also be revised as described in section Revision Tables.

Assembly revision

Whenever an assembly is modified its revision index shall be incremented. It is in general preferred to avoid assigning new assembly codes, unless the changes in the assembly are very significant.


Drawing templates

The standard drawing format templates are:

Robot_cub_a0_mech - A0 format for mechanical drawings
Robot_cub_a0_ass - A0 format for assembly drawings
Robot_cub_a1_mech - A1 format for mechanical drawings
Robot_cub_a1_ass - A1 format for assembly drawings
Robot_cub_a2_mech - A2 format for mechanical drawings
Robot_cub_a2_ass - A2 format for assembly drawings
Robot_cub_a3_mech - A3 format for mechanical drawings
Robot_cub_a3_ass - A3 format for assembly drawings
Robot_cub_a4_mech - A4 format for mechanical drawings
Robot_cub_a4_ass - A4 format for assembly drawings

Mechanical drawings template

The main table reported in mechanical drawing formats is here described:


The values underlined in red are automatically filled in by the system:

MATERIAL:material assigned to the part (see before)

DWG_NAME:the name of the drawing file, that has to be the SAME of the reference 3D model

SCALE:scale value of the drawing

SHEET:sheet number (i.e. for two sheets of the same drawing: 1/2, 2/2, …)

DATE:drawing creation date

MASS:mass value (part parameter, see before)

The values underlined in green have are defined by the user if not already filled in the reference part:

TREATMENT: treatment assigned to the part (if filled in the part, the value will be reported in the table automatically)

UNDIM. ROUNDS:undimensioned rounds in the part

UNDIM CHAMFERS:undimensioned chamfers in the part

ISSUED:the company abbreviation in Robot-Cub (i.e. for Telerobot is TLR) (already fill in the part)

DRAWN:the name of the group designer

CHECKED:the name of the group checker

APPROVED:the name of the group designer

REV.:revision of the document (part parameter, see before)

DIMENSIONAL TOLERANCE CLASS:Dimensional tolerance class – see below for more details

GEOMETRIC TOLERANCE CLASS:Geometric tolerance class see below for more details

ROUGHNESS:Part roughness - see below for more details

ASSEMBLY REF.:assembly in which the part is mounted (assembly code) – the parameter name is “mounted on asm”

DESCRIPTION: Description and eventually sub-description of the part (already fill in the part)

When the user inserts a format in the drawing, automatically the system requires the TYPE of all the parameter which aren’t in the reference part (that is to say: UNDIM. ROUNDS, UNDIM CHAMFERS, CHECKED, APPROVED, REV., MOUNTED_ON_ASM, TOL_DIM_CLASS, TL_GEOM_CLASS). For all the parameter the type is “STRING”. After the type definition, the user has to fill the parameter value for every parameter requested.

Note: parameters can be easily modified with the “Edit > Value” command.

Tolerance classes and roughness

For Dimensional tolerance class parameter, the values that have to be used are the following, according to the table below reported:

  • f
  • m
  • c
  • v
Note: these values have to be written in LOWER case.


For Geometric tolerance class parameter, the values that have to be used are the following, according to the table below reported:

  • H
  • L
  • K
Note: these values have to be written in UPPER case.


The roughness reported in the drawing format is a symbol chosen among the options below reported:



Only No Removal:


No Removal, with 1 other machined roughness:


No Removal, with 2 other machined roughnesses:




Machined, with 1 other machined roughness:


Machined, with 2 other machined roughnesses:


In any case the symbol must be completed before its insertion with the “Var text” value.

For roughness symbol in the drawing, the Pro/ENGINEER standard symbol (“isosurftext.sym”) in the “System Sym” directory should be used.

Assembly drawings template

The main table reported in assembly drawing formats is here described:


It’s the same table of mechanical drawing, without the last 4 rows. The same instructions apply.

In case of assembly drawing, it might be necessary the insertion of a BOM (Bill Of Material) table. The “BOM_table” file can be used. This table will be automatically filled by the system, reading information reported in parts (or sub-assemblies) parameters.


“with qty” BOM balloon type can be used.

Hereafter an image of a BOM ballooned assembly:


Revision tables

In case of document revision, the rules below described will apply:

  • Insert the new revision table in the upper part of the drawing for A4


  • Insert the new revision table in the the upper-right corner for all other formats


Rev1_table: for the first revision on the document;

Rev2_table: for the second revision on the document;

Rev3_table: for the third revision on the document.

The required parameters are (always STRING type):

Reviewer - the group that creates the document revision
Description - revision description
Zone - the zone in the drawing where this revision is visible
Date - the revision date
Drawn - who draws the revision
Checked - who checks the revised document


The same instruction must be followed in case of second or third revision (the table with the previous revision has to be deleted).