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.
Applications
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
.