This document will define all reference frames, orientations, and offsets for Duro Inertial and future Swift Navigation products that include fused GNSS and inertial navigation.

Duro Device Frame

The "Device Frame" is the frame aligned with markings on the device in use and the frame in which all lever arms and offsets are measured.  On Duro, the origin is the intersection of the reference mark on top of Duro and the bottom surface of Duro.  It is oriented according to the markings on the device and in the diagram below (dimensions in millimeters).  Z-axis points to Duro’s down.

Duro bottom view

Antenna Offset

We define the "antenna offset" as the offset to antenna phase center in the device frame as shown in the diagram above.  Please note the it’s measured from the origin of the Duro Device frame which is on the BOTTOM surface of Duro.  The diagram shows the measurement from the top of Duro for visual clarity only.  It should be measured with 3 components, measured in meters in the device frame, x, y, & z. The settings below  store the configuration for the antenna reference point.

Antenna offset settings


antenna_offset_x    Meters in device frame on x direction

antenna_offset_y    Meters in device frame on y direction

antenna_offset_z    Meters in device frame on z direction

Vehicle Frame

The "vehicle frame" is defined by the user and should be coincident with a convenient point on the platform or vehicle that can easily be measured and identified or the required point from which to control the vehicle. The X-axis should be aligned with the primary direction of motion of the vehicle (forward).  If odometry or the no-side slip constraint are applied, the X-axis of the vehicle frame MUST be precisely aligned with the direction of motion. The device must be rigidly attached in the vehicle frame.

All position and velocity outputs from the device will be output in the Vehicle Frame.  It is suggested that the Vehicle Frame default to being coincident with the GNSS Antenna and aligning the X-axis of the vehicle frame with the direction of travel of the vehicle.  In this suggested default case, The “vehicle frame offset” and the “antenna offset” vectors would be configured to be identical via the settings interface.

In all releases of Duro Inertial thus far, the Vehicle Frame is internally translated to the antenna location so the vehicle frame offset settings are identical to the antenna offset and not adjustable by users.

The vehicle frame rotation describes the rotation that would be applied about the device frame to orient the device to the vehicle frame.  This is an Euler angle ordered rotation is applied around the z, y and x axis, in that order. Range 0 to 360 degrees.  

Vehicle frame rotation settings


vehicle_frame_rot_x    Euler angle to rotate device to align with vehicle about device frame x axis (3rd rotation)

vehicle_frame_rot_y    Euler angle to rotate device to align with vehicle about device frame y axis (2nd rotation)

vehicle_frame_rot_z    Euler angle to rotate device to align with vehicle about device frame z axis (1st rotation)

IMU Frame

It is coincident with the BMI160, rotated according to markings on the PCB.  This is the frame in which IMU raw messages are output. There is a positive 90 rotation about the z axis to rotate from IMU frame to the Device Frame on Duro Inertial. The diagram below describes the origin of the IMU frame with respect to the Duro Device frame reference point.  Please also note that if the BMI160 documents are referenced there is an additional rotation to rotate the output of the integrated circuit to align with the silkscreen markings on Piksi Multi.

Piksi Inertial Device Frame

The Piksi inertial device frame is coincident with the imaginary left hand corner of the piksi multi OEM board aligned with the markings on the device.  This frame is functionally equivalent to the Duro Inertial Device frame in the case that Piksi Inertial is embedded into a system rather than Duro Inertial.

BMI160 position and orientation WRT Duro Inertial Device Frame (Dimensions in milliimeters)

Raw IMU Orientation of Piksi Multi Inside Duro (cutaway Diagram)

Errata on BMM150 Magnetometer orientation

There is a 180 degree rotation about the Piksi Multi Z axis between the SBP raw magnetometer output and the markings on the Piksi Multi board for any firmware up to and including v2.3.  This may be fixed in a future firmware version.

The BMM150 axis orientations are notated on page 47 of its datasheet (https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BMM150-DS001.pdf (excerpt below).  

As shown from the picture of Piksi Multi below, the BMM150 chip is oriented like the third column from the datasheet.  This means that the Y axis of the BMM150 is pointed down, and the y axis of the chip is equivalent to the - x axis of PIksi Multi, while the x axis of the chip is equivalent to the  y axis of Piksi Multi.

In software for all releases up to and including v2.3 firmware, the following rotation is applied to the raw magnetometer signals.  This takes the raw magnetometer y axis, and sets it to the SBP output X axis, and the raw magnetometer x axis and sets it to the negative SBP y axis.  As such, there is a 180 degree rotation between the SBP output for the magnetometer.