Skip to content

Tactile Data Flow

Tactile Data Flow

Main Flow of Information

This picture below depicts the flow of the tactile data, starting from the physical sensors and moving up to the user applications and the GUIs.

The tactile sensor data are sent on YARP ports with names /icub/skin/part_name ("data ports" in the figure).

There is also one "rpc port" for each skin "data port", which is used to send a reset command to the skin microcontrollers. The skin data port can then be read either directly, or through the IAnalogSensor YARP interface.

The skinManager reads the raw tactile data and creates another set of YARP ports with names /icub/skin/part_name_comp, which stream the filtered data (after thermal drift compensation and high frequency noise filtering).

Moreover, the skinManager also creates one "event port" that outputs a skinContactList, that is a high-level representation of the contacts detected by the skin (i.e., it abstracts from the specific sensor configuration and it provides information such as contact center of pressure, contact force, contact link).

The iCubSkinGui is typically connected to the ports outputting the filtered tactile data.

Also, the skinManager has its own GUI, which allows the user to adjust the filtering parameters, to switch the visualization from continuous to binary (i.e., contact/noncontact), and to monitor the sensor state.


The picture below illustrates a scheme of a possible application that uses the tactile data.

In particular, the depicted application is the autonomous skin calibration, which is composed of two main modules:

  • Parallel Control: module controlling the robot to let it interact with the environment.
  • Skin Calibrator: module estimating online the 3D positions of the tactile sensors.

Note how the tactile data are displayed by both the iCubSkinGui and the iCubGui.