This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).

This paper presents a compression method for inertial and magnetic sensor data, where the compressed data are used to estimate some states. When sensor data are bounded, the proposed compression method guarantees that the compression error is smaller than a prescribed bound. The manner in which this error bound affects the bit rate and the estimation error is investigated. Through the simulation, it is shown that the estimation error is improved by 18.81% over a test set of 12 cases compared with a filter that does not use the compression error bound.

Largely because of the MEMS technology, inertial sensors (accelerometers and gyroscopes) are becoming smaller and cheaper [

In some applications such as body motion trackers (for example, the product ‘Moven’ by XSENS), inertial sensors are used to track body movement. As the number of inertial sensors increases, the size of sensor data increases accordingly. The sensor data is transmitted to the microprocessor board through wired or wireless communication channels. In a wireless communication channel, the transmission speed is relatively low compared with a wired communication channel. The size of the sensor data needs to be reduced if it exceeds the capacity of the communication channel. For example, the transmission rate of raw sensor data for one MTx (commercial inertial and magnetic sensor) could be as high as 72 Kbps: 9 sensor outputs (3 accelerometers, 3 gyroscopes, and 3 magnetic sensors) × 500 Hz (maximum sampling rate) × 16 bits (16 bit A/D conversion for each sensor). If four MTx are used, the size of the sensor data exceeds the capacity of Zigbee (maximum rate is 250 Kbps [

One way to reduce the size of the sensor data is to compress the sensor data before transmission and decompress the received data in the microprocessor board. Data compression has been extensively studied in many areas [

The performance indices of data compression are the bit rate and the quality of compressed data. In voice data compression, the quality of compressed data is evaluated by listening to the compressed-and-then-decompressed voice data. This rather subjective evaluation makes sense since the final destination of compressed data is the human ear. On the other hand, the final destination of compressed inertial sensor data is usually a filter (such as a Kalman filter), where orientation is estimated. Thus the quality of compression should be judged by how the compression affects the estimation error.

In this paper, a modified ADPCM method is proposed, where the absolute maximum error bound is explicitly given. Also, we investigate how this error affects the estimation error. A part of this paper was presented in [

The overall process of compression and estimation is given in

Since the objective is to find a good estimator of

Note that _{error}

The ideal compression algorithm minimizes both _{error}_{error}_{error}

The ADPCM block scheme is given in _{y}

Let the quantization size

The sensor data

The adaptive predictor uses the same pole-zero configuration as that in CCITT G.726 ADPCM, which is an ADPCM speech compressor/decompressor protocol proposed in 1990 [_{max}_{max}_{max}_{max}

The adaptive algorithm in the G.726 protocol is used to adjust _{i}_{i}

The compression error _{c}

Standard ADPCM algorithms [

Now _{c}^{ys(k)}_{s}_{c}_{s}

The quantization index

If _{d}_{s}^{nd−1}) satisfies

Coefficients _{i}_{i}

In this paper, _{i}_{d}

The scaling adaptation factor _{s}_{s}_{s}_{c}_{s}

The decompressed signal

The error _{c}_{i}

Given _{max}_{s}_{s}_{max}_{max}

From (8), ^{ys(k)}

To ensure the maximum error condition (7), we introduce a uniform quantizer when the mode is 1. An example is given in ^{ys(k)}^{ys(k)}] interval and the mode is 1. The upper and lower intervals of the mode 1 interval (the mode 0 interval is the shaded area) are quantized with a uniform quantizer (quantization size is 2_{max}_{length}_{length}_{level}_{length}

The index

The decomposed signal

Since a uniform quantizer is used, the compression error _{c}

Note that the number of bits for the index _{i}_{d}_{i}

In Section 3, a compression method is proposed, where the maximum compression error is _{max}

We assume that ^{n}^{p}

In the standard Kalman filter, _{c}_{c}_{c,i}_{c}_{c}

Since the compression error is compensated in the estimation algorithm, we can expect a smaller estimation error, which is verified through the simulations in Section 5. When a Kalman filter is used for (17), the estimation error covariance _{max}_{max,i}

A similar idea is used in [

We compared three data sets using the proposed compression algorithm. Original data is 1600 bits/s for each sensor : 16 bit A/D converted data (i.e., _{y}_{b}_{max}_{max}_{s}

Bit rates for the three compressed data sets are given in

The bit rates of data set 3 is the largest because the change of data is the most abrupt. In particular, when the shoe contacts the floor, there is a large change in the accelerometer and gyroscope outputs, and consequently the compression algorithm becomes

To see how the compression error affects the estimation error, a simple one dimensional attitude estimation problem is considered. An attitude (_{i}_{g}_{i}_{g}

An indirect Kalman filter ([_{i}_{g}_{i}_{δ}_{δ}_{i}_{δ.}

By discretizing (22) with the sampling period

Now the proposed compression algorithm is used to compress _{i}_{g}_{max,i}_{max}_{i}_{max,g}_{max}_{g}_{max}_{max}_{i}_{g}

From _{max,i}_{max,g}_{i}_{d}_{max}^{ys(k)}

The _{i}_{g}_{max,i}_{max,g}_{max,g}

The effects of changes in _{max}

The relationship between bit rates and estimation error is presented in _{error}_{max,i}_{max,g}_{i}_{g}_{i}_{g}_{i}_{g}

It is not surprising that the _{error}_{i}_{g}_{error}_{i}_{g}

In this paper, we have proposed a compression method for inertial and magnetic sensor data. The proposed compression method guarantees that the compression error is bounded by a prescribed _{max}_{max}_{max}

This work was supported by the Korea Research Foundation(KRF) grant funded by the Korea government(MEST) (No. 2009-0074773).

Overview of inertial and magnetic sensor data compression and estimation.

Encoder and decoder block scheme.

If ^{ys(k)}

Relationship between _{max}

Inclinometer output, decompressed data, and error.

Gyroscope output, decompressed data, and error.

Predicted estimation error (

Estimation error

Bit rates and _{error}

_{i}_{d}

_{0} |
_{1} |
_{2} |
_{3} |
_{4} |

0 | 0.0237 | 0.0503 | 0.0799 | 0.1131 |

_{5} |
_{6} |
_{7} |
_{8} |
_{9} |

0.1501 | 0.1915 | 0.2379 | 0.2899 | 0.3479 |

_{10} |
_{11} |
_{12} |
_{13} |
_{14} |

0.4129 | 0.4855 | 0.5667 | 0.6575 | 0.7593 |

_{15} |
_{16} |
|||

0.8729 | 1.0000 |

Bit rates for 3 inertial and magnetic sensor data sets.

accelerometers | gyroscopes | magnetic sensors | |
---|---|---|---|

| |||

data set 1 | 643.2 | 641.6 | 617.6 |

648.0 | 632.0 | 622.4 | |

656.0 | 628.8 | 614.4 | |

| |||

data set 2 | 659.2 | 660.8 | 617.6 |

662.4 | 640.0 | 622.4 | |

668.8 | 638.4 | 619.2 | |

| |||

data set 3 | 771,2 | 715.2 | 638.4 |

798.4 | 696.0 | 633.6 | |

694.4 | 686.4 | 627.2 |

Bit rates and estimation error of 3 filters: (a) a standard Kalman filter with uncompressed data, (b) the proposed method with _{i}_{g}_{i}_{g}

experiment | Bit rate | _{error} |
% improvement ((c) - (b)) / (c) | |||
---|---|---|---|---|---|---|

_{g} |
_{i} |
(a) | (b) | (c) | ||

1 | 684.8 | 620.3 | 0.318 | 0.437 | 0.452 | 3.32 |

2 | 654.4 | 623.3 | 0.173 | 0.361 | 0.492 | 26.62 |

3 | 640.0 | 621.3 | 0.138 | 0.345 | 0.402 | 14.19 |

4 | 645.7 | 622.2 | 0.139 | 0.312 | 0.455 | 31.39 |

5 | 631.2 | 625.7 | 0.161 | 0.382 | 0.447 | 14.50 |

6 | 633.6 | 621.6 | 0.121 | 0.310 | 0.422 | 26.55 |

7 | 692.7 | 692.7 | 0.308 | 0.427 | 0.445 | 3.96 |

8 | 640.8 | 622.2 | 0.120 | 0.280 | 0.317 | 11.77 |

9 | 634.4 | 618.6 | 0.134 | 0.295 | 0.537 | 45.15 |

10 | 696.1 | 618.8 | 0.423 | 0.487 | 0.503 | 3.14 |

11 | 638.4 | 632.9 | 0.191 | 0.394 | 0.464 | 14.99 |

12 | 638.4 | 621.5 | 0.136 | 0.292 | 0.417 | 30.13 |

average | 652.5 | 628.4 | 0.197 | 0.360 | 0.446 | 18.81 |