Temperature Compensation

Pressure reading are affected by the temperature of the sensor. The factory calibration coefficients on the device are designed for the diaphragm's performance in air, not cast under rubber (which has a different coefficient of thermal expansion).

This page explains work to date on how to compensate this, and will be updated as work progresses.

Background

Quoting from this paper


A highly linear correlation was found over the range of 20-26 degrees Celsius. The manufacture provides a temperature compensation algorithm using the on-board temperature sensor, but it is not accurate for sensors cast in rubber, probably due to the differences in thermal expansion coefficients.

TakkTile_TemperatureDrift.jpg

Variation in pressure output (shown as the mean of the values) as a function of temperature for different rubber thicknesses, and values from a calibrated sensor without rubber for reference. Lines are best fits (r2 > 0.99)


In Practice

To enable temperature reporting on the Arduino interface, set line 52 in the takktile_arduino.ino file to 'true'

boolean flagShowTemperature=true;

Takkfast reports temperature in the standard get data raw command, and the ros drivers publish it as a field in the 'raw' stream

The most significant drift takes place during the initial powering of the sensors, and can last a few minutes. Therefore, it is suggested to let the sensors "warm up" before sampling the data.

To compensate for the drift a few approaches can be taken:
a) Recalibrate before use.
The sensor output is quite stable in the course of minutes. Therefore, it is possible to recalibrate the values when it is relevant. For example, if the sensors are embedded in a robotic hand, calibrate the values of the tactile sensors each time before operating the hand.

b) Correlate with other sensors
If a number of sensors are embedded in an array, then they drift quite systematically. An algorithm can be developed to average the sensors output and as such recalibrate during the operation.

c) Compensation algorithm
The sensor output variation is linear with respect to temperatures in between 20-26 deg Celcius. Therefore it should be possible to record the sensor values over a range of temperatures at a given pressure, and perform a linear fit to create a compensation algorithm.

These approaches are currently being developed and their efficiency is being assessed. Please let us know if you have implemented any of the above, and we will be happy to verify its performance, and spread the word about it !

Questions ?

Contact us: here

wordpress com stats

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial 3.0 License