Table of Contents

Bno055DataFrame

3D-orientation data produced by a Bosch Bno55 9-axis inertial measurement unit (IMU).

The physical interpretation of the orientation measurements contained within a Bno055DataFrame depends on the sensor fusion mode that is enabled and the axis configuration that is chosen (see page. 26 of the datasheet) . If the chip is in NDOF mode and is calibrated, orientation measurements (Quaternion, Euler Angles, and Gravity Vector) are absolute ("allocentric") and referenced to the gravity vector and Earth's magnetic field. Specifically, if the chip's axes are oriented such that Y points towords magnetic north, X points towards magnetic east, and Z points opposite the gravity vector, the orientation reading will be null (i.e. Quaternion: X = 0, Y = 0, Z = 0, W = 1; Euler Angles: Yaw = 0, Pitch = 0, and Roll = 0 degrees; Gravity: X = 0, Y = 0, Z = 9.8 m/s^2). Linear acceleration readings are always taken relative to the chip's axis definitions (they are "egocentric").

Properties

Property Type Description
Acceleration Vector3

Gets the linear acceleration vector in units of m / s^2.

Calibration Bno055CalibrationFlags

Gets MEMS subsystem and sensor fusion calibration status.

None = 0
MagnetometerLow = 1
MagnetometerMed = 2
MagnetometerFull = MagnetometerLow | MagnetometerMed
AccelerometerLow = 4
AccelerometerMed = 8
AccelerometerFull = AccelerometerLow | AccelerometerMed
GyroscopeLow = 16
GyroscopeMed = 32
GyroscopeFull = GyroscopeLow | GyroscopeMed
SystemLow = 64
SystemMed = 128
SystemFull = SystemLow | SystemMed
EulerAngle Vector3

Gets the 3D orientation in Euler angle format with units of degrees.

The Tait-Bryan formalism is used:

  • Yaw: 0 to 360 degrees.
  • Roll: -180 to 180 degrees
  • Pitch: -90 to 90 degrees
Gravity Vector3

Gets the gravity acceleration vector in units of m / s^2.

Quaternion Quaternion

Gets the 3D orientation represented as a Quaternion.

Temperature int

Gets the chip temperature in Celsius.

Clock ulong

Gets the acquisition clock count.

Acquisition clock count that is synchronous for all frames collected within an ONI context created using CreateContext. The acquisition clock rate is given by AcquisitionClockHz. This clock value provides a common, synchronized time base for all data collected with an single ONI context.

HubClock ulong

Gets the hub clock count.

Local, potentially asynchronous, clock count. Aside from the synchronous Clock value, data frames also contain a local clock count produced within the oni.Hub that the data was actually produced within. For instance, a headstage may contain an onboard controller for controlling devices and arbitrating data stream that runs asynchronously from the AcquisitionClockHz. This value is therefore the most precise way to compare the sample time of data collected within a given oni.Hub. However, the delay between time of data collection and synchronous time stamping by Clock is very small (sub-microsecond) and this value can therefore be disregarded in most scenarios in favor of Clock.