Silvereye is an IMU based motion capture system for the lower limbs, based on Bosch's BNO055 IMU.
In order to capture kinematic data, the main segments of the lower limbs (seven in total) are equipped with an inertial module. This information is then transmitted wirelessly to a PC, which processes it to perform gait analysis.
See a short YouTube video of the system in action:
Silverapp was developed as a proof of concept, in order to display some capabilities of the physical Silvereye system. However, the signals provided by the sensors should allow the extraction of several other gait parameters. Silverapp's current release includes:
- A basic calibration procedure that aligns the coordinate systems between sensors and segments.
- A live display of the lower limb's joint angles on the sagittal plane (flexion/extension).
- A live, 3D display of the user's movements.
- Recording capabilities for both the raw and the processed signals.
The development version of Silvereye depends on three main components:
- Bosch's BNO055 (Breakout board by Adafruit)
- Microchip's ARM® Cortex®-M0+ ATSAMD21G18 (Breakout board by Adafruit)
- Nordic Semiconductor's nRF24L01
These components are assambled into so called "inertial modules", which are attached to the lower limbs via body straps. The schematics needed to physically build the inertial modules can be found under /PCB/. The modules can then be programmed with the code found in /arduino/.
Silvereye was initially developed as Juan Manuel Luna's bachelor thesis. This document (written in Spanish) is avaliable under /thesis/, and gives a detailed description of the system's workings.
The development of this system was only possible thanks to TMRH20's excellent library for the NRF24L01. Thanks for your hard work!
Silverapp was developed in C++ using the Qt framework. The 3D avatar was created in MakeHuman and rendered via the OGRE engine, and the joint angles are displayed thanks to QCustomPlot.