Tactile, Light, Proximity and Encoder feedback

The ROS service /clopema_gripper/SkinInit is used to query the structure of the skin and other sensors. The service request doesn't have any data and the most important fields of the response are as follows:

  • sensors_count: total number of sensors
  • sensor_type_sensors_begin/end: when receiving responses, where does the responses of each sensor type palced.

The ROS topic /clopema_gripper/SkinDataPeriodic periodically provides sensor data in a SkinData message. The most important data in this message is sensor_responses which is a vector of all sensor responses.

In general, you would divide these responses based on their type (using sensor_type_sensors_begin/end from SkinInit), but in CloPeMa, these values are known:

In case of a single gripper, Tactile data is in [0, 16) and in case of both grippers connected, it is in [0, 32). The order of the tactile sensors and their positions can be summarized in the following image (for a single gripper):

-0.6  -0.4  -0.2    0    0.2   0.4   0.6
  |     |     |     |     |     |     |

                   14                    --- 1.05
             16          13              --- 0.70
       15          11          12        --- 0.35
  9          10           7           5  --- 0
        8           1           4        --- -0.35
             6            3              --- -0.70
                    2                    --- -1.05

In the case of double grippers, the order of the tactile sensors is the same, and they are placed first for the left (in [0, 16)) and then for the right gripper (in [16, 32)).

In either case, assuming N tactile sensors, the rest of the sensors are organized as follows:

  • Light in index N (left) and N+1 (right)
  • Proximity in index N+2 (left) and N+3 (right)
  • Encoder in index N+4 (left) and N+5 (right)
  • Cloth Detected (a true-false value indicating whether gripper is holding cloth) in index N+6 (left) and N+7 (right)