Multi-Sensor and Radio Based Geolocation Algorithms
Application of Neural Network on RSSI and accelerations in a Wireless Body Sensor Network
Several applications based on body sensor network (BSN) such as Xsense and Promove3D have proposed motion tracking solutions to identify one’s posture and movement. Theoretically, a wireless body sensor network (WBSN) shares the same idea with the common BSN. However, WBSN usually has several experimental difficulties related to its accuracy and it requires much more energy consumption efficiency than common BSN. In our work, we propose a classification method based on neural network to solve this problem with a moderate energy consumption providing a high-level accuracy with classified postures compared to those solved by orientation’s methods.
Our sensors (called Zyggie) have been designed by our laboratory (Cairn Team Lannion). It consists of a ATmega256RFR2 microprocessor, an inertial mass unity MPU9150 and a narrowband antenna. The MPU9150 is a 9-axis device which is widely used for wearable sensors, smartphones and tablets. It features a user-programmable gyrometer with full-scale range of ±250, ±500, ±1000, and ±2000°/sec (dps), a user-programmable accelerometer with full-scale range of ±2g, ±4g, ±8g, and ±16g, and a compass with full scale range of ±1200µT. The antenna is used to transfer data between sensors using the 2.4GHz IEEE 802.15 standard designed for body area networks. Its signal power is indicated by Received Signal Strength Indicator.
The network is composed of 19 sensors. A procedure of accelerometer calibration is indispensable. Each sensor needs 6 static orientations to compensate for bias and scale errors on the 3 axis. A least square method is applied to deduce calibration parameters. In addition another spare sensor is used for receiving data from these 19 sensors and transmitting them to a PC by usb cable. Sensors can communicate with each other in order to establish a cooperative network thus giving a 19x19 RSSI measurement matrix. In terms of radio communication, the transmission frequency is user-programmable and can be chosen from 4, 8, 16, 32, 48Hz, but higher frequency is subject to the number of sensors in the network.
In our case, we test our algorithm in a simplified context so that high transmission frequency is allowed, where there are 9 sensors on the body. Sensors are placed on the left arm and right arm, and one on the body. In this case the transmission frequency can be up to 16Hz, which is sufficient to completely track a motion.
Deduction of the orientation of a 9-axis sensor is a classical problem with the development of SoC and smartphones. Solutions have been proposed, such as madgwick, mahony, or gauss-Newton algorithms that used both gravity, magnetic field and angular velocity. Usually, with orientation of sensors on each object of a body, we can reconstruct the skeleton of a human body with a certain posture or a movement.
However, measurements by 9-axis sensors are not always as accurate as expected. The accelerometer measures its proper acceleration as well as its gravity, and the gyrometer exhibits a bias after a few periods of time. Moreover, in the case of wireless sensors, the magnetometer may also be largely disturbed due to the sensor’s internal battery that is in contact with the magnetometer in a small sensor, thus changing the norm of local magnetic field. Another aspect for wireless sensors is energy consumption. Gyrometers are high energy-consumers and cost as much as 4.29mA at all frequencies, while accelerometers cost 93µA at 20Hz and magnetometers cost 310µA at 8Hz (with 2.5V voltage). Wireless sensors need to be low-powered for a long-lasting usage that’s why we search for a specific way to exclude the use of gyrometers and even magnetometers.
Apart from 9-axis, RSSI follows a log-distance model, providing theoretically relative distances between sensors. Postures can be reconstructed based on these distances, but RSSI is also subject to orientation of antennas, environment, and body shadowing. This is why RSSI can’t be taken into account for short-range localization. Thus, in view of previous research and in addition to RSSIs provided by the cooperative network, we select the accelerometers because they are the most accurate and they use the lowest power among the 3 measurements. To combine these two separate measurements into a problem of postures classification, we applied a neural network approach.
Construction of Neural Network
A neural network consists of neurons which can compute values by inputs. It is capable of machine learning as well as pattern recognition. Our method uses its pattern recognition functionality, considering a library of postures as classes, and RSSI measured by antennas and accelerations measured by accelerometers as elements for input. To do so, a collection of 11 gestures have been chosen for one arm (see below). Two arms generate 11x11=121 postures, numbered from 1 to 121, as classes in the neural network.
Measurements of RSSI and 3axis-acceleration are chosen as elements in the input vector. 9 sensors provide 9x8=72 RSSIs between each other, but only 36 of them are needed thanks to its symmetry. Meanwhile, each sensor has 3-axis accelerometer, giving 9x3=27 accelerations. Thus, the input vector contains in 36+27 = 63 elements in all. On the other hand, RSSIs are measured on a dBm scale. The output vector consists of 121 elements, where each element is zero except the Nst element corresponding to the number of each posture.
Training data have been measured in two different environments: in an office where there is a number of electric machines nearby, and in a large computer room where computers are located far from sensors. Each measurement contains the 121 postures in all, during about 10 seconds, with a transmission frequency of 16Hz. In order to extract as many data as possible, we make use of all frames in these two measurements. That is to say, not the measurement, but each timestamp of a measurement is considered as a training data. Due to the sensibility of RSSI, its average doesn’t represent its whole behavior, that’s why every timestamp should be taken into account. From this we get 51738 training data.
The test data has been measured in a different office room, with different Zyggie sensors. 11 postures (those numbered from 1 to 11) are measured for the test, with one arm always making the first gesture, and another arm making gestures 1 to 11 (just as in the previous figure). As previously, every frame is considered as test data. From this we get 2041 data.
The neural network is trained using 2 layers, with 100 neurons in hidden layers, and hyperbolic tangent sigmoid transfer function as the activation function. The success rate is shown in Table I below in the first row, around 80%.
The computing time for pattern recognition process for one input takes only 40 milliseconds. This result is relatively good compared with other posture recognition methods based on inertial sensors which gives around 85% for success rate with a small number of postures of library (11 instead of 121 in our work). This proves its potential to be applied to real motion tracking in a practical way. To justify the usage of RSSI and accelerations as inputs, we trained other networks by the same method but with only 36 RSSIs or only 27 accelerations as elements in the input. As shown in the table, the network with accelerations are under 70% which is less favorable, while the one with only RSSIs isn’t able to provide a satisfying result. The confusion matrix of these three networks for the test data are shown in the next Figure below.
Figure - Confusion matrix of pattern recognition with (upper left) only RSSI measures, (upper right) only acceleration measures and (lower) RSSIs and accelerations
This method can be exploited and developed by fuzzy control, or even a combination of neuron network and fuzzy control. Fuzzy control provides flexibility in the output (which don’t need to be exactly “1”) and can potentially recognize intermediate postures as a bunch of possible postures. There are many studies in distance measuring using fuzzy control offering feasible solutions to improve and generalize these results to postures not included in the pattern library.