Prifina for Developers
  • Docs
  • Getting Data
  • Support
  • Slack
  • Blog
  • Prifina.com

Artificial Sensor BNO055 Data for Software Development

10/7/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Sensor BNO055 dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: RawSync, RawAsync

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

The BNO055 Sensor is a smart IMU (Inertial Measurement Unit) node developed by a German technology manufacturer Bosch Sensortec. The BNO055 Sensor uses a combination of different sensors to detect movements, and measure the intensity of movements in terms of acceleration and rotational speeds. This sensor makes use of an accelerometer, gyroscope and magnetometer to capture 9-degrees-of-freedom:
  • Direction of acceleration and its force
  • Rate of rotation and direction
  • Direction and force of magnetic field
The Sensor BNO055 is a great choice for devices where the context (awareness) of the device handling is needed: Augmented Reality, Immersive Gaming, Personal Health and Fitness, Indoor Navigation, Robotics, Tablets and Ultrabooks.

Here’s a useful video illustrating the utility of BNO055 Sensor (YouTube)

The data from the individual sensors (accelerometer, magnetometer, gyroscope) are captured, processed by the MCU (Microcontroller). This data can then be fused (sensor fusion) into either quaternion data or in Euler angles (roll, pitch, and yaw angle). If the data is not fused, then any combination of the raw sensor data can be exported (e.g., ACCONLY, MAGGYRO, etc.). To export and save the data, the sensor must live stream to an external device, like a mobile phone, so that the data is stored on that device. The space required for this data export is in the range 2MB - 18MB per hour. Once the data is successfully stored, the data can be analyzed to extrapolate additional information.

Approach used

A sample data export file was provided to us containing several hundreds of records of quaternion (fused sensor) data and accelerometer data in CSV format. One such record was converted into a JSON object and stored as the RawSync mockup file. A copy of this file was converted into an array of two strings, the first being the attribute names of the JSON object and the second string being the data of those attributes. The attributes are separated by ‘\t’. This file is stored as the RawAsync. These mockup files make up the sensor-bno055-data package.
RawSync
RawAsync
The sensor-bno055-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the RawSync object:
Static RawSync Object

    
​Artificial RawSync Object

    

Use case ideas

  • Detecting biometric data (such as physical activity and mobility) for Augmented Reality and Virtual Reality use-cases
  • Health & Fitness applications correlating data from Bosch Sensor BNO055 and other wearable sensors
  • Navigation-related applications (smart city, mobility, hiking, sports, etc.)

Ideas to combine with some other data sources

  • Combine Bosch Sensor BNO055 data with data from heart-Monitoring devices (e.g., Fitbit, Oura ring, Movesense, etc.)
  • Combine Bosch Sensor BNO055 data with other activity data sources (e.g., Strava, Fitbit, Oura ring, Garmin, etc.)
  • Combine Bosch Sensor BNO055 data with GPS data for speed during sections of routes
  • Combine Bosch Sensor BNO055 data with photography or floor layout data for various AR/VR applications

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements
  • Include many different combinations of data (both fused and non-fused), e.g. ACCONLY, Euler angles, ACCMAGGYRO, etc)
  • Data changes between records should be more sensible to reflect realistic changes
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

    Categories

    All
    23andme
    Ancestry
    Apple
    Dynamic Data
    Fitbit
    Google
    Ios
    Movesense
    Open Source
    Oura
    Peloton
    Polar
    Runkeeper
    Sensor BNO055
    Spotify
    Strava
    Twitch
    Uber
    Use Case
    Veri
    Whoop
    Withings

    RSS Feed

© 2023 PRIFINA INC. ​
Terms of Service
Privacy Policy
About Prifina
  • Docs
  • Getting Data
  • Support
  • Slack
  • Blog
  • Prifina.com