Experimental Surface Roughness Testing
This page outlins some tests undertaken to characterise the prefomance of mobile phone sensors.
In all cases
- phone: Samsung Galaxy S3
- sensor: STMicroelectronics LSM330DLC 3-axis digital accelerometer
- bike: Thorn Audax
- wheels: 700c
- tyres: Schwalbe Marathon Plus 28 mm inflated to 90 psi
- mounting: the phone was mounted 'flat on its back' on a rear luggage rack
Freefall - Zero g
Onto a Cushion (188.8.131.52)
The phone was dropped from a height of about 25 cm onto a soft cushion.
The above graph shows the vertical acceleration (m/s^2) experienced by the phone against time (milliseconds).
Before being dropped the phone is subject to gravity (g ~ 9.81 m/s^2). The phone then falls freely for about 0.2 seconds. During this time it is weightless - experiencing zero acceleration. When it hits the cushion it experiences a deceleration of close to 20 m/s^2 (almost 2g) before bouncing and settling down.
Onto Concrete (26.15.20.00)
The above graph (x - time milliseconds: y - acceleration m/s^2) shows the result of dropping the phone from about 3 cm onto concrete. The phone was held horizontally and dropped onto its back.
It seems that the phone hits the ground at around 250 msec, bounces and strikes it again at 300 msec.
What is odd is that at no time does the acceleration go much above 9.8 m/s^2 - which it would have to to stop the phone. Clearly the system is unable to measure very large shocks accurately.
Variation of RMS Acceleration with Speed
Calculation, and practical experience, shows that the vertical acceleration experienced will vary with speed.
To investigate the nature of the relationship a range of surfaces were ridden at speeds between 6 to 20 mph.
The adjacent graph shows the measurements (joined with thick lines). These appear to show an approximate linear relationship between RMS acceleration and speed. The thin lines superimposed are of the form
(a - 0.5) = k * (s - 2.0)
- a is the RMS acceleration (m/s^2)
- s is the speed (m/s) and
- k is a constant (the slope) which depends on the nature of the surface.
This suggests that measurements can be 'normalised' to a standard speed (say 10 mph; 4.47 m/s). The precise values are not too critical as the steps between each of the proposed 'roughness' levels is a factor of two in RMS acceleration.
Nevertheless it is best if all measurements are made as close as possible to the standard speed. Thus the 'normalised RMS acceleration is given by
a10 = (am - 0.5) / (sm - 2.0) * 2.47 + 0.5
- a10 is the RMS acceleration normalised to 10 mph
- am is the RMS acceleration measured
- sm is the speed at which measurements are made
Sensor Sampling Rates
Android offers the following sensor sampling rates
- SENSOR_DELAY_FASTEST : get sensor data as fast as possible
- SENSOR_DELAY_GAME : rate suitable for games
- SENSOR_DELAY_NORMAL : rate (default) suitable for screen orientation changes
- SENSOR_DELAY_UI : rate suitable for the user interface
On the Samsung Galaxy S3 data appears to be collected at around 98Hz regadless of which setting is chosen.
The Galaxy implementation of the STMicroelectronics LSM330DLC 3-axis digital accelerometer sensor reports a range of 19.6133 m/s^2 which is 2g (= 2 * 9.80665). It has a claimed resolution of 0.009576807 m/s^2 (or 0.5%).
Thus acceleration is measured in 2048 discrete steps (19.6133/0.009576807). This is equivalent to 11 bits. The spec sheet indicates that a 16-bit output is available from this device Clearly a number of bits are lost in this implementation.