Distributed Inertial sensing

From Wiki for iCub and Friends
Revision as of 09:23, 29 March 2016 by Vvv (talk | contribs) (→‎CAN based iCub)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Warning: This documentation describe experimental features that are bound to change.

Distributed Inertial sensing

The skin system of the iCub has been updated for incorporating distributed inertial sensing (accelerometers and gyroscopes). Currently this features are available only on iCubGenova01, for more information on how to enable it on your iCub please contact icub-support.

Physical sensors

The skin system is equipped with two types of sensors:

Sensors distribution

This sensors are embedded in the skin system. Their distribution is different depending on wheter the iCub is working with the old CAN based low level electronics or with the new Ethernet based electronics.

An accelerometer is embedded in all the MTB boards used for reading the skin taxel output. For more information about MTB placements, please check Electrical wiring, in particular the "Logic and Harness iCub Skin" documents. The two MTB 1B7 and 2B7 placed in the palms are equipped with one accelerometer and one gyroscope.

For the location of the boards in the part, please check the following images



L upper arm mtb.JPG

Link l_upper_arm, top cover: 1B13, bottom cover from shoulder to elbow: 1B12 1B10 1B11 .


L forearm mtb.JPG

Link l_forearm, top cover: 1B8 , bottom cover: 1B9 .



R upper arm mtb.JPG

Link r_upper_arm, top cover: 2B13, bottom cover from shoulder to elbow: 2B12 2B10 2B11 .


R forearm mtb.JPG

Link r_forearm, top cover: 2B8 , bottom cover: 2B9 .



Link: chest, left to right (of the robot and image) : 9B10 9B9 9B8 9B7



Front upper leg mtbs.JPG

Link l_upper_leg, front cover, from up to down and from external to internal: 10B1 10B2 10B3 10B4 10B5

Link r_upper_leg, front cover, from up to down and from external to internal: 11B1 11B2 11B3 11B5 11B4


Back upper legs mtb.JPG

Link l_upper_leg, back cover, from external to internal: 10B6 10B7

Link r_upper_leg, back cover, from external to internal: 11B6 11B7


Lower leg mtbs.JPG

Link l_lower_leg, from external to internal: 10B10 10B8 10B9 10B11

Link r_lower_leg, from external to internal: 11B10 11B8 11B9 11B11



Link l_foot , from tip to heel : 10B12, 10B13

Link r_foot , from tip to heel : 11B12, 11B13

For CAN Robots with feet skin (i.e. iCubGenova01) the feet skin is mounted on the Skin Torso CAN network, so the address are different.

Reading the sensors

CAN based iCub

The sensors data are streamed on the CAN bus by the MTB boards.

Configuration and reading of the streamed data is done through the canBusInertialMTB device driver.

The documentation for the parameters used by this driver are available in http://wiki.icub.org/iCub_documentation/group__canbusinertialmtb.html .

The relevant configuration files loaded by the robotInterface can be found in the hardware/skin subfolder of your robot configuration file directory.

Currently the setup used in iCubGenova01 publish the reading of the sensors in these ports:

(Note: in the following table, under "Description of the values", you'll get the exact mapping of the publish data. The accelerometers raw outputs are published as a sequence of doubles on the CAN bus, without any status or ID flag in between)

Port Number of values Description of the values Header text
/icub/torso_accelerometers/analog:o 12 Raw outputs of the accelerometers on MTBs 9B7 9B8 9B9 9B10 All boards belong to the chest link
/icub/left_arm_accelerometers/analog:o 18 Raw outputs of the accelerometers on MTBs 1B13 1B12 1B10 1B11 1B8 1B9 1B13 1B12 1B10 1B11 belong to the l_upper_arm link, 1B8 1B9 to the l_forearm link
/icub/right_arm_accelerometers/analog:o 18 Raw outputs of the accelerometers on MTBs 2B13 2B12 2B10 2B11 2B8 2B9 2B13 2B12 2B10 2B11 belong to the r_upper_arm link, 2B8 2B9 to the r_forearm link
/icub/left_hand_inertial/analog:o 6 Raw outputs of the accelerometer and gyroscope on MTB 1B7 1B7 board belongs to the l_hand link
/icub/right_hand_inertial/analog:o 6 Raw outputs of the accelerometer and gyroscope on MTB 2B7 2B7 board belongs to the r_hand link
/icub/left_foot_inertial/analog:o 3 Raw outputs of the accelerometer on MTB 9B3 9B3 board belongs to the l_foot link
/icub/right_foot_inertial/analog:o 3 Raw outputs of the accelerometer on MTB 9B12 9B12 board belongs to the r_foot link

Ethernet based iCub


Conversion factors

Currently the sensors are streaming their raw outputs.

To convert the accelerometer measure in m/s^2 the conversion factor is (fullscale in m/s^2)/(fullscale in raw) = (2*g)/(2^15) ~= 5.9855e-04.

To convert the gyroscope measure in dps (deg/s) the conversion factor is (fullscale in dps)/(fullscale in raw) = (250)/(2^15) ~= 7.6274e-03.