Swift Navigation Duro Inertial Is a Ruggedized Version

Supported Platforms
Platform Duro Inertial
Firmware ≥ 2.1.21

Overview

Duro Inertial is a ruggedized version of Swift Navigation’s Piksi® Multi dual-frequency Real real-time kinematics (RTK) GNSS receiver, including inertial sensor fusion algorithm, which combines GNSS and inertial measurements into an unified solution. The combination of GNSS and inertial measurements allows Duro Inertial to provide highly accurate, continuous position solutions during brief GNSS outages and to deliver robust precision navigation solutions in harsh GNSS environments.
This document describes Duro Inertial with firmware version 3.0. The INS settings and IMU sensors alignment process have significantly changed between firmware versions 2.4 and 3.0. For the older firmware, use Duro Inertial User Manual v1 (UM-110008-01).

About this Manual

Every effort has been taken to ensure the accuracy of the contents of this manual. This manual is based on Duro Inertial firmware version 3.0.11. In case of differences between the manual and the product, use the information from the product.

Prerequisites

This document describes the installation, configuration, and operation of features specific to Duro Inertial. Users should be familiar with the information contained in the Duro User Manual before following this guide.

System Architecture

Typical Duro Inertial system setup is shown on the diagram depicted below. The product is able to combine real time GNSS observables from a base and a rover as well as motion sensed by the MEMS IMU in the product into one Fused RTK GNSS + INS position, velocity, attitude, and time solution (PVAT).

Swift-Navigation -Duro-Inertial-Is-a -Ruggedized-Version-fig (1)

 

Installation

For proper Duro Inertial operation, it is essential to mount both the Duro Inertial and the GNSS antenna securely and firmly to the vehicle body. During operation, the antenna and Duro Inertial must remain in the same position relative to each other (i.e., both must be mounted on the same frame).

GNSS Antenna Mounting

For the best signal reception, mount the GNSS antenna on a stable structure located away from other antennas and devices.
The GNSS antenna should be mounted completely externally. Do not place the GNSS antenna inside, or partially inside, of a housing or vehicle.

The GNSS antenna should have the best achievable sky view, in all directions, down to the horizon. Do not shield orocclude any portion of the antenna. The GNSS antenna is sensitive to its environment. Since producing high-accuracy GNSS position solutions requires tracking carrier phase information from satellites, it is much more sensitive to obstructions than standard consumer GNSS receivers (like those found in smartphones and handhelds). All antenna offset measurements should be taken to the phase center of the GNSS antenna.

Duro Inertial Mounting

In order to properly detect motion, Duro Inertial must be securely and firmly mounted to the vehicle. Mounting Duro Inertial on the vehicle centerline is recommended.
To maximize sensor sensitivity, mounting Duro Inertial in an orientation orthogonal to the vehicle body is recommended. This means that Duro Inertial should be mounted with all three axes forming angles in multiples of 90° (0°, 90°, 180°, 270°), with respect to the primary direction of vehicle motion. For easier installation and setup, it is recommended to align the X axis direction of the Duro Inertial with the primary direction of vehicle motion.
Duro Inertial must be rigidly mounted to the body of the vehicle. Any vibration which is not directly related to vehicular motion will degrade the quality of the inertial data. Installing Duro Inertial on a flexible vehicle rooftop, engine cover, or fender – where the mounting surface can flex and vibrate independently of the vehicle body – should be avoided. Similarly, placing the sensor on plush seating of a vehicle with the antenna on the rigid part of the vehicle will yield poor results. Ensure that the Duro Inertial enclosure is on the same rigid body as the GNSS antenna. Some suspension systems may isolate the chassis from the cab and if the antenna moves when the Duro Inertial does not it will degrade results. When installing the device inside a vehicle, directly mounting it to the vehicle chassis is recommended. Ideally, Duro Inertial should be mounted rigidly to the vehicle’s inertial mass, directly above the center of rotation (i.e the pivot point).
A straightforward approach to installing Duro Inertial is to mount it on a rigid surface, located on the top of the vehicle, with the GNSS antenna attached to the receiver using an included bracket. This approach is demonstrated in Figure 2. Mounting the GNSS antenna directly on the top of the receiver improves performance and makes setup easier. In this configuration, there is no need to measure the antenna lever arm – the default antenna offset settings can be used.Swift-Navigation -Duro-Inertial-Is-a -Ruggedized-Version-fig (2)

If it is impractical to mount the entire Duro Inertial system on the top of a vehicle, mounting the Duro Inertial enclosure and GNSS antenna to the same rigid body, while minimizing the distance between them, is recommended. Ideally, the GNSS antenna should be mounted directly above Duro Inertial – with the antenna and enclosure both mounted on the vehicle centerline. On passenger vehicles, practical mount points for the Duro Inertial enclosure may include: the spare tire bay, the seat support rails, and the floor of the vehicle chassis.

Antenna Offset

After installing the GNSS antenna and Duro Inertial on the vehicle, the antenna offset needs to be measured. The antenna offset consists of X, Y, and Z components which should be measured along Duro Inertial’s X, Y, and Z axes (i.e. within the device frame) from Duro to the antenna. The “Device Frame” is the reference frame aligned with the markings on the Duro Inertial enclosure. These values will need to be provided to the device firmware settings during the configuration step.On Duro Inertial, the device frame reference point is the intersection of the reference mark from the top of the enclosure and the bottom surface of Duro Inertial (see Figure 3). The orientation of the device frame is shown in Figure 4. Note, the Z-axis is defined to be in the “down” direction.

Swift-Navigation -Duro-Inertial-Is-a -Ruggedized-Version-fig (3)Swift-Navigation -Duro-Inertial-Is-a -Ruggedized-Version-fig (4)

Distance value in the marked direction of the axis will have a positive sign. The value in the opposite direction will have a negative sign. Distances should be measured in meters, with 1 cm accuracy, from the Duro Inertial reference point to the phase center of the GNSS antenna.
The phase center of the GPS500 GNSS mini-survey antenna included in the Duro Inertial Starter Kit is located at the center of the antenna, 50 mm above the bottom of the antenna mount (middle point between L1 and L2 phase centers).Swift-Navigation -Duro-Inertial-Is-a -Ruggedized-Version-fig (5)

Use the Duro Inertial Vehicle Profile Worksheet provided in Appendix C to write down antenna offset measurements taken on the vehicle for future reference.

Vehicle Frame Orientation

In addition to the antenna offset, the vehicle frame orientation should be measured. Entering proper orientation to the Duro Inertial firmware settings is essential for a correct navigation output.\ To obtain yaw, pitch, and roll angles for the orthogonal mounting, refer to Appendix B – Duro Inertial Orientations, and use the values which match your installation. One way to think of the vehicle frame orientation is the rotations required to make the axis of the vehicle frame align with the axis marked on Duro. Use the Duro Inertial Vehicle Profile Worksheet provided in Appendix C to record vehicle frame orientation values for future reference. The vehicle frame, and the pitch roll and yaw orientation directions, are defined according to the diagram below, where z is defined into the page (down).Swift-Navigation -Duro-Inertial-Is-a -Ruggedized-Version-fig (6)

Configuration

For proper operation, and the best performance, Duro Inertial firmware needs to be configured correctly. Duro Inertial has all applicable settings for Piksi Multi and Duro in addition to the Duro Inertial specific settings in the “ins” (inertial navigation system) settings grouping. Follow the instructions below to setup Duro Inertial firmware.

Firmware Version

Duro Inertial requires Piksi Multi firmware v2.1.21 or newer. The latest firmwa re can be downloaded from the Carnegie Robotics Support portal (https://carnegierobotics.com/support).

Default Configuration

By default, Duro Inertial is configured to be used with the Swift GNSS mini-survey antenna mounted directly to the DuroInertial enclosure and with X axis pointing forward. However, the INS fusion output is disabled by default to avoid outputting position solutions from a possibly incorrectly configured system.

To view IMU and INS configuration:

  • Connect to Duro Inertial via Swift Console
  • Select the Settings tab
  • Locate the IMU and INS settings group

Firmware Settings

There are a number of firmware settings which directly affect the behavior of Duro Inertial. These are detailed in the tables below. Device settings can be configured via Swift Console on the Settings tab or directly via SBP messages.

IMU Settings

IMU settings control range and output rate from inertial sensors.

Settings Group: IMU
Name Units Accepted Values Default Value Description
acc_range g 2, 4, 8, 16 8 Acceleration sensor range
gyro_range deg/s 125, 250, 500, 1000, 2000 125 Angular rate sensor (gyroscope) range
imu_rate Hz 25, 50, 100, 200 100 IMU raw output data rate
imu_rate_output n/a True, False False Enable/Disable IMU raw data output

Notes

  • Gyroscope and Accelerometer ranges (acc_range, gyro_range) should be adjusted for the dynamics of your application. In order to maintain the highest resolution of measurements, choose the smallest range which encompasses the dynamics of your application. However, keep in mind that your application may involve sudden, maximum dynamic changes which may not be typical or anticipated. These maximums should be used when selecting a scale for both accelerometer and gyroscope ranges.
  • Duro Inertial does not use the magnetometer sensor and therefore, the mag_raw_output and mag_rate parameters do not need to be set.
  • In order to use inertial navigation, imu_raw_output must be enabled and imu_rate must be set to 100 Hz.
  • Remember to click the Save on Device button on the Swift Console Settings tab to store new values on the device.

INS Settings

INS settings control inertial navigation sub-system operation.

Settings Group: INS
Name Units Accepted Values Default Value Description
 

antenna_offset_x

 

m

   

0

Distance along Duro Inertial X-axis from the reference point to the antenna phase center
 

antenna_offset_y

 

m

   

0

Distance along Duro Inertial Y-axis from the reference point to the antenna phase center
 

antenna_offset_z

 

m

   

-0.127

Distance along Duro Inertial Z-axis from the reference point to the antenna phase center
 

antenna_offset_deviation

 

m

 

> 0

 

0.05

Standard deviation of antenna lever arm measurement. Must be greater than 0. This value should overestimate the actual expected error.
Settings Group: INS
Name Units Accepted Values Default Value Description
dr_duration_max s >= 0 600 Sets the maximum duration for which the inertial system will dead reckon
 

dr_timeout_pos_stddev

 

m

 

> 0

 

20

Maximum estimated standard deviation of the INS position for which the inertial system will dead reckon
 

fused_soln_freq

 

Hz

 

1, 2, 5, 10, 20

 

10

Fusion engine output data rate. This value can be different from the GNSS output rate (soln_freq).
 

output_mode

   

Disabled, Loosely Coupled

 

Disabled

Sets the operation mode of the inertial navigation system. Use “Loosely Coupled” mode to enable INS operation.
 

vehicle_frame_pitch

 

deg

 

-180 .. 180

 

0

Pitch angel representing rotation from vehicle frame to device frame. Rotations are performed extrinsically in the order roll, pitch, then yaw.
 

vehicle_frame_roll

 

deg

 

-180 .. 180

 

0

Roll angle representing rotation from vehicle frame to device frame. Rotations are performed extrinsically in the order roll, pitch, then yaw.
 

vehicle_frame_yaw

 

deg

 

-180 .. 180

 

0

Yaw angle representing rotation from vehicle frame to device frame. Rotations are performed extrinsically in the order roll, pitch, then yaw.
 

vehicle_frame_deviation

 

deg

 

> 0

 

1.0

Standard deviation of misalignment measurement. Must be greater than 0. This value should overestimate the actual expected error.

Notes:

  • Enter antenna_offset_x/y/z and vehicle_frame_yaw/pitch/roll as they were measured after installation. The worksheet in Appendix C is a useful tool for determining these values.
  • It is required to restart the device after changing INS output_mode (Click the Save on Device button on the Swift Console Settings tab to store new value before restarting).
  • In addition to the basic settings described above, the INS group contains several advanced settings that can be used to tune the INS solution for the specific application.
  • The INS settings have significantly changed between firmware v2.4 and 3.0. For the older firmware use Duro Inertial User Manual v1 (UM-110008-01).
  • Remember to click the Save on Device button on the Swift Console Settings tab to store new values on the device.

Other Settings

All other Duro Inertial settings (like ports, protocols, rates, etc.) are the same as a standard Duro GNSS-only receiver. Refer to the Duro User Manual for details about configuring data ports, protocols, message rates, etc.

RTK Corrections

For the most precise and accurate position output, Duro Inertial should operate in RTK mode. Select and configure an RTK correction source in the same manner as a GNSS-only Duro. Refer to the Duro User Manual and support articles onthe Carnegie Robotics Support Portal (https://carnegierobotics.com/support) for details.

Operation

With the INS system enabled, Duro Inertial will provide enhanced position output, including Dead Reckoning (DR) mode. Additionally, the contents of several messages will include status information about the INS. Duro Inertial requires a valid GNSS solution to initialize (align) the inertial subsystem. After the first valid GNSS solution, Duro Inertial needs to be driven forward to perform the IMU alignment before it’s able to aid GNSS in precise positioning through challenging environments (like tree foliage and urban canyons) and to provide navigation solutions during brief GNSS outages (such as overpasses and short tunnels). Since the inertial sensors output drifts over time, resulting in decreased position accuracy, the DR mode operation is time-limited by the dr_duration_max and dr_timeout_pos_stddev setting (see settings in the section above).

Alignment Process

The Duro Inertial needs to perform an alignment procedure before it can provide positioning assistance to the system. The alignment process will begin once the following conditions are met:

  1. The position standard deviation reported by the GNSS Engine is less than 30 m
  2. The velocity standard deviation reported by the GNSS Engine is less than 1 m/s
  3. Straight-line forward movement occurs at a speed above 5 m/s (18 km/h, or 12 MPH) Alignment should typically complete within a distance of 20 to 50 m if the sky visibility remains good during the initialization phase.

Notes:

  • The alignment and calibration constants are not retained through power cycles. Alignment process is required after each device power up or reset.
  • The v3.0 firmware requires alignment to be performed while driving forward. The INS fusion will produce an incorrect output if alignment is done while driving in reverse direction.
  • The minimum alignment speed is configurable by the alignment_cog_min_speed_meters_per_second setting. Lowering the value decreases alignment accuracy so it should be kept as high as possible.

LED Indicators

Duro Inertial uses front panel LEDs to indicate when the INS is operational and the output position is computed using both GNSS and inertial subsystem. Purple lights for the POS LED indicate that INS is in use. Refer to the LED description table below for detailed information.

Note: After power up, POS, LINK, and MODE LEDs will blink white, indicating the boot-up process has completed.

Device Data Output

Duro Inertial is capable of providing output in Swift Binary Protocol (SBP) and industry standard NMEA 0183 protocol over UART and Ethernet ports. When INS is enabled, messages in both protocols will provide additional data described below.

SBP Messages

The subset of Swift Binary Protocol messages directly related to Duro Inertial operation are highlighted in the tables below. When using Duro Inertial, you may need to adjust the enabled_sbp_messages setting for the interfaces you use to communicate with the device. This setting is a comma-separated list of message IDs (in decimal) that will be emitted on each interface. By default, the enabled_sbp_messages setting does not include any of the inertial-specific messages. The following position mode values are reported in the “Fix Mode” field in the Status Flags (refer to the SBP protocol specification for more information):

  • 0 No fix
  • 1 Single Point Position (SPP)
  • 2 Differential GNSS (DGNSS)
  • 3 Float RTK
  • 4 Fixed RTK
  • 5 Dead Reckoning
  • 6 SBAS

Additionally, the “Inertial Navigation Mode” field will contain INS status:

  • 0 INS was not used to compute position
  • 1 INS was used to compute position
Position Messages
Message Message ID Notes
SBP_MSG_POS_LLH 522  
SBP_MSG_POS_LLH_COV 529 Message is not enabled by default.
SBP_MSG_POS_ECEF 521 Message is not enabled by default.
SBP_MSG_POS_ECEF_COV 532 Message is not enabled by default.
SBP_MSG_POS_LLH_ACC 536 Message is not enabled by default.
Velocity Messages
Message Message ID Notes
SBP_MSG_VEL_NED 526  
SBP_MSG_VEL_NED_COV 530 Message is not enabled by default.
SBP_MSG_VEL_ECEF 525 Message is not enabled by default.
SBP_MSG_PVEL_ECEF_COV 533 Message is not enabled by default.
Orientation Messages
Message Message ID Notes
SBP_MSG_ORIENT_EULER 545 Message is not enabled by default. Only produced when INS is enabled.

Status Messages
Message Message ID Notes
SBP_MSG_INT_STATUS 65283 Message is not enabled by default. Only produced when INS is enabled.

Refer to the SBP protocol specification for message content details.

NMEA Messages

Following NMEA 0183 messages contain Dead Reckoning status information. NMEA messages do not contain orientation nor other INS specific information.

NMEA 0183 Messages
Message Notes
 

 

GGA

Quality Indicator:

0  – No fix

1- Single Point Position (SPP) 2 – DGNSS or SBAS

4 – Fixed RTK 5 – Float RTK

6 – Dead Reckoning

 

GLL RMC VTG

Mode Indicator:

N – No fix

A – Autonomous fix D – DGNSS or SBAS

E – Dead Reckoning (Estimated) F – Float RTK

R – Fixed RTK

Known Issues

  • Position Valid (PV, pin 17 on the AUX connector) does not go high during Dead Reckoning.

Appendix A – Identifying Duro Inertial

Duro Inertial receivers can be identified in following ways:

  1. Duro Inertial has a product name and part number located on the bottom of the enclosure.
    Product Duro® Inertial Duro®
    Part Number 00759-01 and 00759-02 00522-01
    product_id “Duro Inertial” “Duro”
  2. The product_id read-only setting reflects the product ID. This setting exists in the system_info group in the settings interface that can be accessed via the Swift Binary Protocol API or the Swift Console program

Appendix B – Duro Inertial Orientations

Use the pictures below to determine Duro Inertial orientation angles in your vehicle installation. Angles are in degrees.

Appendix C – Duro Inertial Installation Worksheet

Print and use this form to record Duro Inertial installation details and measurements. Antenna offset and vehicle frame rotation need to be entered to firmware settings for proper system operation.

General
Date  
Vehicle Name  
Duro Inertial S/N  

Antenna Offset (measured along X/Y/Z axis of Duro after installation, from Duro to antenna)
X Degrees  
Y Degrees  
Z Degrees  
Deviation Degrees  

 

Vehicle Frame Rotation
Yaw (Z) Degrees  
Pitch (Y) Degrees  
Roll (X) Degrees  
Deviation Degrees  

Appendix D – Device and Vehicle Frames

The three Euler-angle settings for configuring the Device frame orientation with respect to the vehicle frame orientation represent three extrinsic rotations in the order roll, pitch, and yaw. For example, a rotation matrix that can be used to rotate a vector from the device frame (i.e a velocity in the Duro Inertial frame X-direction) to the Vehicle Frame, can be represented as follows:

Extrinsic rotations are defined as rotations about the body where the body does not move. Similarly, the Quaternion and Euler angle output from the device describe the orientation of the Vehicle Body Frame with respect to the Navigation frame in real time. The euler rotations should be applied intrinsically in the order yaw, pitch, and roll in order to rotate from a frame aligned with the local-level NED frame to the vehicle body frame. Mathematically, it can be shown that this description of the real time Euler angles is equivalent to an Extrinsic rotation in the order roll, pitch, yaw to rotate the vehicle frame into the local level NED frame. The equations below can be used to relate the Euler angles reported in MSG_ORIENT_EULER to the Body velocities reported in MSG_VEL_BODY, to the Navigation velocities reported in MSG_VEL_NED. The vehicle body frame is defined according to Figure 6.

Glossary
Term Description
Antenna Offset Three-dimensional distance between Duro Inertial and GNSS Antenna
Device Frame The reference frame aligned with the XYZ axis markings on Duro Inertial
DR Dead Reckoning
Dead Reckoning Position computation method where the current position is computed based on a prior known position and an estimated movement
Firmware Embedded software running on electronic device
Fix Valid position
DGPS, DGNSS Differential GPS/GNSS
GNSS Global Navigation Satellite System mainly including GPS, GLONASS, BeiDou (BDS), and Galileo satellite systems
IMU Inertial Measurement Unit
INS Inertial Navigation System
Lever Arm Three-dimensional distance between Duro Inertial reference point and GNSS antenna phase center
Loosely Coupled Navigation technique that takes GNSS position data and combines it with inertial sensor measurements for a unified output
MPH Miles Per Hour
Phase Center Point inside the GNSS antenna for which position is calculated
Piksi Multi Swift Navigation RTK GNSS receiver module included in Duro Inertial
RTK Real Time Kinematic
SBAS Satellite-Based Augmentation System
SBP Swift Binary Protocol – Swift Navigation’s proprietary protocol
SPP Single Point Position
 

Swift Console

Graphic User Interface (GUI) program providing visual representation of what’s happening inside GNSS receivers. Console displays information and allows the user to adjust the settings on the hardware. Available for Windows, MacOS, and Linux
Tracking Receiving signals from GNSS satellites
Vehicle Frame The reference frame is aligned with the XYZ axis of the vehicle. X-axis is usually facing forward, Y to the right, and Z down.

 

Additional References
Name / Link Notes
Swift Binary Protocol The fundamental API and communication interface of Swift receivers is SBP
Swift Console The Swift Console has helpful desktop software for evaluation and configuration of the receiver
Duro User Manual & Duro Specifications The features of the Duro Inertial Enclosure (dimensions, drawings, connectors, interfaces) are shared with the Duro and are documented in the Duro User Manual.

FAQ

  • Q: Can I use the Duro Inertial with older firmware versions?
    • A: For firmware versions prior to 3.0, refer to the older user manual v1 (UM-110008-01) for correct INS settings and IMU sensors alignment process.

Documents / Resources

Swift Navigation Duro Inertial Is a Ruggedized Version [pdf] User Manual
Duro Inertial, Duro Inertial Is a Ruggedized Version, Duro Inertial, Is a Ruggedized Version, Ruggedized Version, Version

References

Leave a comment

Your email address will not be published. Required fields are marked *