Zyggie WBSN Platform
Zyggie is an innovative Wireless Body Sensor Network platform developed for the CominLabs BoWI project to validate concepts and algorithms provided by the researchers. Zyggie consists of a hardware platform associated with embedded and host software. The sensor node can be strapped to different part of a human body. Each node includes four IMU sensors (accelerometer, gyrometer, compass, and barometer), an embedded processor and a low-power radio module to communicate the sensed and processed data to a coordinator element. This coordinator element can be connected to a computer or a smartphone. One of the main innovations of the system is to gather sensor data and radio received signal power to improve the accuracy of 3D localization of the nodes and to avoid drift of IMU sensors. Sensor data and radio power are combined by Zyggie's distributed software to compute the position of each node and thus to determine the body postures or movements.
The platform was designed in early 2013, the first prototype received in spring, and the version released in Sept. 2013 (see Figures 1 to 3). From then, different performance and power characterizations have been performed and Zyggie is moreover used to support the researches on antenna design and on gesture and posture identification algorithms.
A second prototype was created in 2015 including new features (see Figures 4 to 6). Actually, a 32-bit microcontroller manages application, a custom MAC layer and processes quaternions based on IMU measures. On the other hand, we also added an UWB radio from DecaWave to measure distances between nodes with Time of Flight (ToF).
Fig. 1: Zyggie V1 Hardware Platform
ATmega256RFR2 Microcontroller With Zigbee RF
+ Low-cost IMU
Fig. 2: Zyggie V1 Case
Fig. 3: Zyggie V2 Case
Fig. 4: Zyggie V2 Hardware Platform (top)
EFM32WG330 + ATmega2564RFR2
+ UWB Frontend + IMU
Fig. 5: Zyggie V2 Hardware Platform (bottom)
Fig. 6: Zyggie V2 strapped on Wrist
Custom MAC layer
The 802.15.4 MAC layer was modified significantly to improve power consumption and get different kinds of information from the RF communications.
We implemented dynamic modifications of network topology. In the first phase, short frames (RSSI frames) are sent in broadcast and received by all nodes. This Full Mesh communication (Figure 7 left) is used to get a first distance indication with signal strengh. In a second phase, data are sent to the network coordinator by all nodes in their time slots. During this Star communication (Figure 7 right) a node can be selected (node 2 on figure 8) to process an UWB distance measurement toward other nodes. The custom MAC layer is detailed in Figure 8.
The 2.4GHz radio, UWB radio and microcontroller are also managed to spend a maximum time in sleeping mode.
Fig. 7: Network Topologies
Fig. 8: Custom MAC Layer
North calibration algorithm
For 3D tracking application this user can place Zyggie modules anyhow on his limbs. A calibration phase must be done to initialize orientations and find the magnetic north. Two postures are mandatory to resolve the equation system defined by the Wahba's problem.
Fig. 9: Zyggie Android Application Compass Tab
Fig. 10: Zyggie Android Application Calibration
Several geolocation algorithms were tested to convert distances measures into user 2D coordinates. Four or more Zyggie modules can be placed around a user to do extra-BAN distance measures with one of intra-BAN Zyggie node.
Fig. 11: Zyggie Matlab Application GeolocationTab
Fig. 12: Zyggie Android Application GeolocationTab
In collaboration with the M2S laboratory, an algorithm of 3D retargeting was developped. 3D retargeting is a necessary technique to have a faithful movement rendering from one user to a 3D avatar. User's morphology has to be taken into account to modify in real-time 3D joint orientations.
Fig. 13: Anthropometric data
Fig. 14: Zyggie Android Application Retargeting Tab
Two Graphical User Interfaces (GUI) were developped to control and get information from the Zyggie network. These interfaces allow users to visualize raw data like IMU data, RSSI values and UWB distances. Many calibration, tracking and geolocation algorithms were implemented to move a skeleton in a 3D environment.
The Matlab GUI interface also contains postures and movements reproducing applications.
First application is a Simon Game. User has to replicate the maximum number of postures during a given time to get the best score. Another application is movement recognization. Several movements have to be reproduced by the user to perform a functionnal rehabilitation of his arms. All these applications use motion data to apply classification algorithms. A posture library was built to recognize movements.
Fig. 15: Zyggie Matlab GUI Network Tab
Fig. 16: Zyggie Matlab GUI Tracking Tab
Zyggie can be connected to an Android tablet to perform 3D tracking and geolocation. A real time RF scan was added to determine Zigbee channel occupancy.
Fig. 17: Zyggie Android Application Network Tab
Fig. 18: Zyggie Android Application Tracking Tab
Experimentations with Zyggie V2
An experimentation was conducted in collaboration with the M2S laboratory using Zyggie and the Vicon system. Nine Zyggie sensors were placed on a body (Intra-BAN network) to measure UWB distances between nodes. The Vicon system is composed of 16 cameras placed around the subject at different heights. These cameras sense markers position sticked on each Zyggie card.
6 postures and 4 movements were selected to compare Zyggie measure quality with Vicon reference in different cases.
Fig. 19: Zyggie On-body Disposition
Fig. 20: Vicon/Zyggie Acquisitions
As shown on Figure 21, we calculated mean distance errors of each node across time. On average over all postures and movements, error is around 10-15cm. So, these distances could be merged to motion data for posture processing. The aim is to use less often motion sensors (gyroscope for example) to improve power consumption. For future work, UWB distances could be also used for Interactive Mesh 3D representation.
Fig. 21: Mean Distances Error For a Given Posture