INS1000 Developer Manual

Welcome to the INS1000 Manual. This manual provides information on how to set up INS1000 RTK system including both Rover and Basestation. The manual also documents output message and protocol of the INS1000 system.

Social: Twitter | Medium

Set Up & Software Guide

1. Introduction

This guide shows how to set up and install the INS1000 rover, and use the GUI. Please read it carefully.

AceinnaNav Control Software (ACS) is a graphical user interface for the AceinnaNav integrated navigation system. It displays continuous position, velocity, attitude, and trajectory information from the system. Additionally, it also provides tools to configure the system and log output data from the system. AceinnaNav version 0.19.4.8, https://www.aceinna.com/userfiles/files/Software/Inertial-System/ACS.zip

2. Installation Guide

AceinnaNav Control Software runs on Java Runtime Environment (JRE) 9. For JRE 9 download and setup, please refer to Oracle official website. To run the software, double-click the AceinnaNav.jar file.

Some PCs may not recognize the USB of the AceinnaNav system. The user needs to install the usb driver according to the system of the PC. The drivers are provided in the For Linux/For Mac/For Windows folders with the control software.

3. Connection

Before connecting to the AceinnaNav system, make sure the system’s power is on. There will be a light indicating power. Check that the USB is plugged into the computer and the control software is installed in the computer.

To connect to the system, use the “Com Port Setting” dialog, shown in Figure 1. The user can reopen the dialog by choosing “System > Connect” menu if it is closed.

To choose a port, first click the [Refresh] button to get the list of available ports and then select a port from the drop-down list (shown in Figure 2). The baud rate is fixed as 230400 now. After all are set, click the [Connect] button. Please try another port if the message “Cannot open the port” shows up.

_images/Connection_dialog.png

Figure 1: Connection dialog

_images/Port_selection.png

Figure 2: Port selection

4. View

4.1. Subsystems Status

At the bottom-right corner of the interface, there are four indicators for the status of IMU, GNSS, PPS and NTRIP subsystems shown in Figure 3. A flashing green circle means the subsystem is on. Normally, IMU and GNSS turn on right after the power is supplied, and PPS turns on after the time is resolved with GNSS measurements. Users may be able to see the navigation data output with enough satellite data. NTRIP indicator will be on whenever the system receives information from the base station. The user can use these four indicators to see if the system is working properly or not.

_images/Subsystems_status_indicators.png

Figure 3: Subsystems status indicators

4.2. Product ID, Engine and Firmware Version

At the bottom-left corner of the interface, the user can see the product ID and the engine version of the system as shown in Figure 4.

_images/Product_ID_and_engine_version.png

Figure 4: Product ID and engine version

4.4. Satellites Signal Status

GNSS signal status dialog (shown in Figure 6) displays the satellite signal strength information obtained from the GNSS observables. For each satellite it shows the satellite system, unique satellite number, and the L1/L2 signal strength. For more details about the message, please refer to AceinnaNav Reference Manual. The user can reopen the dialog in “System -> SV Signal” menu if it’s closed.

_images/GNSS_signal_status.png

Figure 6: GNSS signal status

4.5. IMU data

IMU data dialog (show in Figure 7) displays the current acceleration and rotation rate in polyline graphs. If the IMU data doesn’t show up, the user can click the [Turn on IMU data] button to enable the output of the raw IMU data.

The direction of the axes of an IMU can be identified using the accelerometer signal. When an accelerometer is placed in upward direction on a level surface, its output should be approximately 9.8 m/s2. On the other hand, if it is place in downward direction, the output should be -9.8m/s2. Hence, for the plot in Figure 7, the positive z-axis is positing downward. The positive direction of all three axes of an IMU can be identified this way.

4.6. Trajectory

Trajectory view dialog (shown in Figure 8) displays the current trajectory. The software starts recording the trajectory when the dialog is open. When the dialog is closed, the trajectory will be cleared.

_images/IMU_data_graphs.png

Figure 7: IMU data graphs

_images/Trajectory_view_dialog.png

Figure 8: Trajectory view dialog

5. User Configuration

To get accurate navigation data, the user needs to configure several parameters in the navigation system. The control software provides a basic interface for necessary setup, and also an advanced interface for more detailed configuration.

5.1. Basic User Configuration

Basic user configuration dialog is used to set up the orientation of the navigation system relative to the vehicle and the position of the antennas. Once these are set up, the system can output correct position, velocity and attitude information of the vehicle.

Basic user configuration can be opened by choosing “System > Basic User Configuration”. The interface is shown in Figure 9.

_images/Set_up_the_orientation_of_the_navigation_system.png

Figure 9: Set up the orientation of the navigation system

The first step is to set up the orientation of the sensor relative to the vehicle. The user first chooses the direction of the IMU X-axis relative to the user body frame. And then choose the direction of the IMU Y and Z.

For a vehicle, the user body frame is defined in Figure 10. And IMU frame is marked on the case.

_images/User_body_frame_definition.png

Figure 10: User body frame definition

Next step is to setup the position of the antennas (shown in Figure 11). The user needs to measure the coordinates of the two antennas in the user body frame with the origin at the case top center. And then input the coordinates into the dialog. The user also needs to measure the distance between two antenna centers and input the measurement into the dialog.

_images/Set_up_the_position_of_the_two_antennas.png

Figure 11: Set up the position of the two antennas

The final step is to choose the max output rate and turn on/off output messages (shown in Figure 12). Max output rate is the output rate of the compact navigation message (message 13). The user can adjust the data rate of this message. The detailed definition and rate of all messages can be found in Aceinna Reference Manual.

_images/Choose_output_rate_and_output_messages.png

Figure 12: Choose output rate and output messages

5.2. Advanced User Configuration

Advanced user configuration dialog contains more detailed configurations of the system. To open the dialog, the user chooses “System > User Configure” from the menu (shown in Figure 13). The available configurations are shown below.

_images/User_configuration_menu.png

Figure 13: User configuration menu

5.2.1. Output Control

The user can do the followings in the navigation output control tab shown in Figure 14:

  • Specify the navigation output position. The user can choose from the center of the IMU or the cross-mark on top of the IMU housing.
  • If the static position pinning is enabled, the system will output a fixed position during a static period detected by the GNSS. Note that there is a chance that the system can miss the detection if the signal quality becomes weak.
  • Specify the smooth transition interval to RTK_FIXED.
  • Choose ICD messages for output. Pay specific attention when choosing high-rate outputs as outputting multiple high-rate messages can saturate the communication port.
  • Check the current output position offset and whether the static position pinning is enabled in the system with the [Query] button.
_images/Navigation_output_control_tab.png

Figure 14: Navigation output control tab

5.2.3. IMU Setup

In the “IMU” tab (shown in Figure 16), the user can do the followings :

  • Specify the matrix for the transformation from the IMU frame to the user body frame. Please refer to the detailed Transformation Matrix in reference manual.
  • Check the current transformation matrix of the system with the [Query IMU matrix] button.
_images/IMU_configuration_tab.png

Figure 16: IMU configuration tab

5.2.4. GNSS Setup

In the “GNSS” tab (shown in Figure 17), the user can do the followings :

  • Set the lever-arms of the GNSS antennas. Note that the lever-arms to be entered shall be in meters from the cross-mark on top of the IMU housing to the antennas phase center in the user body frame.
  • Set the separation between two GNSS antennas, which will aid the carrier-phase ambiguity resolution for the attitude determination.
  • Check the current antenna lever-arms of the system with the [Query lever-arm] button.
  • Check the antenna separation of the system with the [Query] button.
_images/GNSS_configuration_tab.png

Figure 17: GNSS configuration tab

6. NTRIP Client

The user can configure the NTRIP client settings using the NTRIP Client settings dialog (shown in Figure 18). To open the dialog, choose “System > NTRIP Client” from the menu shown in Figure 19. After all information is entered, press the [Set] button to configure the NTRIP client information. After seeing a message box with “Configuration finished”, restart the system to use the new NTRIP client settings. The user can also [Query] the current NTRIP client settings of the system. To get the settings, click the [Query] button in the NTRIP Client dialog and the information will show up.

If user use “rtk2go.com” as server, the default password is “BETATEST”.

Previous NTRIP settings will be stored in the table below. The user can reuse previous settings by double-clicking that particular setting.

_images/NTRIP_client_settings_dialog.png

Figure 18: NTRIP client settings dialog

_images/NTRIP_Client_menu.png

Figure 19: NTRIP Client menu

7. Firmware Update

_images/Firmware_update_menu.png

Figure 20: Firmware update menu

_images/Firmware_file_selection.png

Figure 21: Firmware file selection

8. Tools

The control software provides tools to log and decode output data from the system.

8.1. Log Data

The user can log binary data from the system using the Export dialog by choosing the “Tools > Export” menu.

Before logging, make sure that the software has opened the right port and the status of the subsystems IMU, GNSS, and PPS are on at the bottom-right hand corner.

To choose a folder to save the data, click the [Browse] button. To log the data, click [Start Export] button in Figure 22. To finish logging, click the [Stop Export] button then a message about the saved data file name will show up. The file name convention is yyyy_mm_dd_HH_MM_SS.dat, e.g. 2018_02_09_02_36_34.dat.

_images/Data_export_dialog.png

Figure 22: Data export dialog

8.2. Decode Data

The user can decode the logged data using the decoder provided by the control software. The decoder (shown in Figure 23) is available by choosing “Tools > Decode” menu. To decode a file, use the [Browse] button to find the file for decoding and then press the [Decode] button. Usually, the decode takes a few seconds to finish. For a large file, it may take up to a minute. Please wait until it is finished.

The decoded results will be stored in the same folder as the data files and consist of three files: kf.txt, *nav.txt and *.kml. The *kf.txt file stores Kalman Filter message. The *nav.txt file stores the high-rate compact navigation messages. Lastly,.kml file stores the trajectory that can be viewed in Google Earth software.

The user can choose to convert the attitude quaternion to roll, pitch, and heading using the “Attitude in roll, pitch, heading” check box. For more details about the conversion, please refer to the AceinnaNav Refence Manual.

The user can also set the output decimation rate to adjust the density of the points in the KML trajectory file. For example, entering “30” makes the decoder output to the KML file at every 30 points.

_images/Data_decode_dialog.png

Figure 23: Data decode dialog

8.3. Zero Velocity Update

The user can send Zero Velocity Update (ZUPT) messages when the vehicle is not moving. Specifically, this will improve the navigation system where the GNSS signal is degraded. The user can set and send this message using the Zero Velocity Update dialog at the “Tools > Zero Velocity Update” menu (shown in Figure 24). After setting the horizontal and vertical standard deviation, click [Activate] button to keep sending the message containing these two values. Click [Deactivate] button to stop sending. If both values are set to zero, the message cannot be sent.

_images/Zero_Velocity_Update_dialog.png

Figure 24: Zero Velocity Update dialog

8.4. Static Heading Event

The user can send a static heading event message to initialize the inertial navigator when the position is available from the GNSS receivers but the heading initialization has difficulties due to degraded GNSS signals. To send the message, the user can use the Static Heading Event dialog at the “Tools > Static Heading Event” menu (shown in Figure 25). After setting the heading, ZUPT RMS, and heading RMS, click [Activate] button to keep sending the message containing these values. Click [Deactivate] button to stop sending. If both of the ZUPT RMS, and heading RMS are set to zero, the message cannot be sent.

_images/Static_Heading_Event_dialog.png

Figure 25: Static Heading Event dialog

8.5. Static Geo-Pose Event

The user can send a static geo-pose event message to initialize or aid the inertial navigation system when GNSS signals are not available. The static geo-pose event can be opened by choosing “Tools > Static Geo-Pose Event” menu (shown in Figure 26).

The user needs to input the known position and attitude information. And then click [Activate] button to keep sending these values to aid the navigation system. Click [Deactivate] button to stop sending.

_images/Static_Geo_Pose_Event_Dialog.png

Figure 26 Static Geo-Pose Event Dialog

8.6. Heading Initialization using an External Sensor

The heading can be initialized using the NMEA message “$HEHDT” which could be generated by other sensors in the user’s vehicle. To use this initialization method, the output port of the user’s sensor needs to be connected to one of the input ports of the Aceinna-Nav system; either UART0 or Ethernet. To enforce this initialization method, please make sure to turn off the option initializing the heading from the GNSS velocity; see Figure 15.

9. Internal Data Download

The system internally stores the raw sensor data and navigation data, of which the naming convention is as follows:

  • Raw sensor data: raw_wwww_ssssss.dat
  • Navigation data: nav_wwww_ssssss.dat

Where “wwww” and “ssssss” corresponding to the GPS week number and seconds of the week at the start of the mission.

User can download the internal data using any FTP client, following the next steps:

  • Set the computer Ethernet IP address as 192.168.100.xxx where xxx could be any number from 2 to 254, except 97, because the address 192.168.100.97 used as the rover ip address.
    _images/ip_setting.png

    Figure 27: IP address setting

  • Power on the rover station system, then use a FTP client in PC side to connect the system following the configurations, Host name: 192.168.100.97,Port number: 2100,User name: ftp,Password: ftppw. After connection setup successfully, user could see the raw data and navigation data in the FTP client.

10. web application

The web application is composed of two parts, one part is python driver that log the data from serial port and upload to web application user interface, another part is the web application user interface. For the python driver,user could download it from github. https://github.com/Aceinna/python-ins1000

Flag Description
KFN Kalman Filter Navigation Message
CNM Compact Navigation Message (High Rate)
SSS Satellite Signal Strength
GSVM Repackaged GSV Message

The table above is data format of python drive, and could be found in json file(rover.json) located in the path python-ins1000-master->setting.

_images/python_serial_tool_usage.png

Figure 28: python serial tool usage

User could run the python script and then upload data to web application user interface, for the web application ui, https://developers.aceinna.com/maps

_images/web_application_usage.png

Figure 29: web application usage

Press the button(Live Time Plot) on the web application ui, the image of live path of the rover station is shown on the screen. Meanwhile, the data will be logged synchronously in folder: python-ins1000-master->data.

_images/real_time_path_demo.png

Figure 30: real time path demo

Basestation Guide

1. Introduction

The INS1000 GNSS Base Station is a ruggedized dual-frequency (L1/L2) multi-constellation GNSS (GPS, QZSS, GLONASS, Beidou, Galileo) reference station which can be easily configured as a local base station to broadcast real-time RTCM corrections for any RTK-capable rover systems. User-friendly GUI is available to setup a base station quickly by either connecting to the rover through local radio link or NTRIP caster/client (network RTK). The system can also record all tracked dual frequency multi-constellation measurements for post- processing.

2. Setting Up the Base Station

_images/base_connectors.png

To properly operate the Base Station the following ports must be connected in the correct locations. See the picture above.

  • Antenna to antenna port
  • COM-PORT1 Cable to PC
  • Power/Ethernet Cable to Power.

The antenna should be mounted to an outdoor location such as roof with clear sky view.

Note

The Power/Ethernet cable connector has a red mark on it. Match the red dot to the red mark on the mating connector shell. To remove the cable just pull back lightly on the connector shell.

3. Configuration

This section give you insight on configuring the INS1000 Base Station Software. The first steps provide calibration information, real-time calculations, and different viewing options. It will go over all the settings, viewing options, and tools in the software. It also includes exporting information for further data analysis. For the Set Up to run smoothly, please read carefully and follow along the User Guide.

3.1 Configure

Locate the GNSS basestation software. Application pGnssBase, https://www.aceinna.com/userfiles/files/Software/Inertial-System/ACS.zip

  • Run “pGnssBase.jar” software.

  • Open “Com Port Settings” Window.

    • Click [Refresh] button
    • Select the corresponding COMPORT from the drop-down tab.
    • Click [Connect] button.
_images/connect.png
  • Click [Surveying] Tab
  • Check/Click [Average Position]
  • Wait until the count reaches the desired Avg. time (recommend at least 300 counts ~= 5min)
  • Unclick/Uncheck [Average Position]
  • Click [Copy to ref Position] Button
_images/config.png
  • On Settings window, switch to [Ref Position] tab, previous surveying position will show up here.
  • Click [Set] button to send the position to base station receiver.
  • Click [Query] button to double check or check the current position stored inside the base station receiver.
_images/setposition.png
  • On Settings window, switch to [Output] tab,

  • Click [Set] once to setup broadcast correct message format for RTK rover.

    • This step only need to be done once when the base station is first setup or the format has to be changed
_images/setoutput.png
  • On Settings window, switch to “NTRIP Caster” tab.
  • After filling in the server host information, Click [Set] button.
  • You can also Click [Query] button to check the currentserver host information stored inside the base station receiver through the Ethernet/Modem
_images/ntrip.png

Note

When the base station has successfully connected to the server and started to stream the correction message, the red spot next to the “Mount Point” will turn into green color.

3.2 Sky View

Sky View shows the distribution of satellites in real time based on the elevation and azimuth.

To view Satellite details:

  1. Double Click one satellite and it shows the elevation and azimuth information.
  2. Click that satellite and it the elevation and azimuth information will disappear.
_images/skyview.png

3.3 Position View

Shows the current position after opening the Position View.

  1. After clicking the [Average Position] checkbox in [Settings] -> [Surveying] Position View also shows the average position in real time.
  2. Average Position is represented with a yellow square within the graph.
_images/positionview.png

3.4 Export data

Export data allows you to save a log file of the Base Station.

  1. Choose a directory to save the log file of Base Station and then click [Start Export].
  2. Then Click [Stop Export] to finish the completed Export.
_images/export.png

Reference Manual

1. Introduction

INS1000 is an integrated navigation system consisting of an inertial measurement unit (IMU) and other sensors. Thus it can output continuously the position, velocity and attitude information of the vehicle. A dual-antenna GNSS receiver is used as the primary aiding sensor. Also supported is a distance measurement indicator (DMI) which can be attached to a wheel of the vehicle/robot to measure the rotation rate of the wheel. Integration of a DMI would give an improved solution in challenging environments: urban canyons, tunnels or indoor. This document explains how to use the system.

2. The IMU Frame and the Body Frame

The IMU frame is the frame in which the IMU’s measurement output is generated. The direction of the axes of an IMU can be identified using the accelerometer signal. When an accelerometer is placed in upward direction on a level surface, its output should be approximately 9.8 \(m/s^{2}\).On the other hand, if it is place in downward direction, the output should be -9.8 \(m/s^{2}\). The positive direction of all three axes of an IMU can be identified this way.

The body frame is the frame in which the inertial navigation solution is generated. The center of the IMU frame coincides with that of the body frame. However, there can be differences in the attitude between the two frames due to physical limitations in the installation of the IMU. For a vehicle, the forward-right-down is typically the body frame of choice. Thus, there will be a rotation matrix \(C_{IMU}^{b}\) to transform the IMU measurements to the body frame and, for the example below, it is written as

\[\begin{split}C_{IMU}^{b} = \begin{bmatrix} c_{11}& c_{12} & c_{13} \\ c_{21}& c_{22} & c_{23}\\ c_{31}& c_{32} & c_{33} \end{bmatrix}=\begin{bmatrix} 1 & 0 & 0\\ 0 & -1 & 0 \\ 0 & 0 & -1 \end{bmatrix}\end{split}\]
_images/The_IMU_frame_and_the_body_frame.png

Figure 1: The IMU frame and the body frame

IMU X IMU Y IMU Z Transformation Matrix
Forward Right Down [1,0,0; 0,1,0; 0,0,1]
Forward Left Up [1,0,0; 0,-1,0; 0,0,-1]
Forward Down Left [1,0,0; 0,0,-1; 0,1,0]
Forward Up Right [1,0,0; 0,0,1; 0,-1,0]
Backward Left Down [-1,0,0; 0,-1,0; 0,0,1]
Backward Right Up [-1,0,0; 0,1,0; 0,0,-1]
Backward Up Left [-1,0,0; 0,0,-1; 0,-1,0]
Backward Down Right [-1,0,0; 0,0,1; 0,1,0]
Right Backward Down [0,-1,0; 1,0,0; 0,0,1]
Right Forward Up [0,1,0; 1,0,0; 0,0,-1]
Right Up Backward [0,0,-1; 1,0,0; 0,-1,0]
Right Down Forward [0,0,1; 1,0,0; 0,1,0]
Left Forward Down [0,1,0; -1,0,0; 0,0,1]
Left Backward Up [0,-1,0; -1,0,0; 0,0,-1]
Left Up Forward [0,0,1; -1,0,0; 0,-1,0]
Left Down Backward [0,0,-1; -1,0,0; 0,1,0]
Up Forward Left [0,1,0; 0,0,-1; -1,0,0]
Up Backward Right [0,-1,0; 0,0,1; -1,0,0]
Up Right Forward [0,0,1; 0,1,0; -1,0,0]
Up Left Backward [0,0,-1; 0,-1,0; -1,0,0]
Down Forward Right [0,1,0; 0,0,1; 1,0,0]
Down Backward Left [0,-1,0; 0,0,-1; 1,0,0]
Down Left Forward [0,0,1; 0,-1,0; 1,0,0]
Down Right Backward [0,0,-1; 0,1,0; 1,0,0]
Table 1: List of IMU to body frame transformation matrices

3. Measuring Lever Arm

The lever-arm is the relative position of other sensors from the center of the IMU. To make the measurement process easier, we make a cross-mark on top of the IMU housing and publishes the vector from the center of the IMU to the mark, \(l_{I}^{IMU}\), which is called the internal lever-arm. Thus users can measure the relative position from the cross-mark to other sensors which is referred to as the external lever-arm in the body frame, \(l_{E}^{b}\). Therefore, the total lever-arm vector is computed as follows:

\[C_{IMU}^{b}l_{I}^{IMU}+l_{E}^{b}\]

The following methods can be used to precisely measure the lever-arms:

  • Computer Aided Design (CAD) Software
  • Close-range Photogrammetry
  • Precision Surveying using total stations or theodolites together with GNSS

4. NTRIP Client

A base station can send out RTCM messages to support the RTK, which enables cm-level positioning accuracy. Networked Transport of RTCM via Internet Protocol (NTRIP) is a protocol to stream the RTCM data over the internet. The user can configure the NTRIP client settings using the control software.

5. User ICD Messages

As shown in Figure 2, all ICD messages are composed of header, payload and checksum parts. The header’s size is 6 bytes containing 2 sync bytes, message ID, message sub-ID and payload length.

Header (6 bytes) Payload CheckSum (2 bytes)
Figure 2: Message structure

The checksum shall be computed over the payload part using the Fletcher-16 algorithm as below sample code. Note that all multi-byte entries are written in little-endian format.

1
2
3
4
5
6
checksum_A = checksum_B = 0;
for (i = 0; i < payload_length; ++i)
{
    checksum_A += payload[i];
    checksum_B += checksum_A;
}

5.1. Kalman Filter Navigation Message (1 Hz)

This message is an output of the navigation message at the center of the IMU in 1 Hz synchronized with the GNSS measurements. If the inertial navigator is not running, however, this message contains GNSS-only solutions of the primary GNSS antenna.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x01
5 uint16_t Payload length 91
6 double System time seconds
7 double GPS time; see Note 1 seconds
8 double Latitude radians
9 double Longitude radians
10 double Ellipsoidal height m
11 double Velocity in north m/s
12 double Velocity in east m/s
13 double Velocity in down m/s
14 double Roll, rotation about the x-axis radians
15 double Pitch, rotation about the y-axis radians
16 double Heading, rotation about the z-axis radians
17 uint8_t Position mode See Note 2
18 uint8_t Velocity mode See Note 2
19 uint8_t Attitude status 0: Invalid, 1: Coarse, 2: Fine
20 uint8_t Checksum A  
21 uint8_t Checksum B  

Note

  1. GPS seconds since starting week; thus this will not rollover after 604800.
  2. Position and velocity mode are defined as follows:
    • 0: Invalid,
    • 1: Dead-reckoning (navigating with inertial measurements only),
    • 2: Stand-alone (autonomous or single point positioning),
    • 3: Precise point positioning (using precise ephemeris data)
    • 4: Code differential (using code-corrections from base stations or SBAS)
    • 5: RTK float
    • 6: RTK fixed
    • 7: User aiding (aiding by the user input)

5.2. Satellite Signal Strength

This message delivers the satellite signal strength information obtained from the GNSS observable.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x02
5 uint16_t Payload length 19 + N_SV * 10
6 double System time seconds
7 double GPS time  
8 uint8_t Receiver ID  
9 uint8_t Antenna ID  
10 uint8_t Number of satellites (N_SV)  
11 uint8_t SV system; see Note 1
First satellite data
12 uint8_t SVID; see Note 2
13 float L1 C/N0 (dB-Hz)
14 float L2 C/N0 (dB-Hz)
15 uint8_t SV system
Second satellite data
16 uint8_t SVID
17 float L1 C/N0 (dB-Hz)
18 float L2 C/N0 (dB-Hz)
     
  uint8_t Checksum A  
  uint8_t Checksum B  

Note

  1. 0: GPS, 1: GLONASS, 2: Galileo, 3: QZSS, 4: Beidou, 5: SBAS
  2. SVID is the unique satellite number used in each satellite system; for GPS it is the PRN number and for GLONASS it is the SLOT number.

5.3. SV Visibility

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x03
5 uint16_t Payload length 18 + N_SV * 10
6 double System time seconds
7 double GPS time seconds
8 uint8_t Receiver number  
9 uint8_t N_SV Number of SV data
10 uint8_t SV system
First satellite data
11 uint8_t SVID
12 float Azimuth (deg)
13 float Elevation (deg)
14 uint8_t SV system
Second satellite data
15 uint8_t SVID
16 float Azimuth (deg)
17 float Elevation (deg)
     
  uint8_t Checksum A  
  uint8_t Checksum B  

5.4. Install Parameters

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x04
5 uint16_t Payload length 72+N_ANT*32
6 double[3][3] IMU axes transformation matrix  
7 uint8_t N_ANT Number of antennas
8 double[3] Lever-arm vector of 1st antenna m
9 double Lever-arm variance of 1st antenna \(m^{2}\)
10 double[3] Lever-arm vector of 2nd antenna m
11 double Lever-arm variance of 2nd antenna \(m^{2}\)
     
  uint8_t Checksum A  
  uint8_t Checksum B  

5.6. Product ID Message

This message contains the identification number of the product. To receive this message send the message defined in Section 8.1.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x06
5 uint16_t Payload length 2
6 uint16_t Product ID  
7 uint8_t Checksum A  
8 uint8_t Checksum B  

5.8. Scaled Raw IMU Data

This message contains scaled raw IMU data. The reference frame of this data is the IMU frame.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x08
5 uint16_t Payload length 56
6 double System time seconds
7 double[3] Acceleration \(m/s^{2}\)
8 double[3] Rotation rate degrees/s
9 uint8_t Checksum A  
10 uint8_t Checksum B  

5.9. Solution Status (1 Hz)

This message shows the Kalman filter solution status. The RMS of the position, velocity and attitude is the squre-root of the diagonal elements of the covariance matrix of the Kalman filter.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x09
5 uint16_t Payload length 92
6 double System time seconds
7 uint8_t Number of SVs used  
8 uint8_t Processing mode  
9 uint16_t GPS week number; if 0 time is not synced to GPS  
10 double GPS time of week seconds
11 double[3] Position RMS (NED) m
12 double[3] Velocity RMS (NED) m/s
13 double[3] Attitude RMS (NED) deg
14 uint8_t Checksum A  
15 uint8_t Checksum B  

5.10. Repackaged GSV Message

This is a repackaged NMEA GSV message generated by the receiver.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x0A
5 uint16_t Payload length length 12 + N_SV * 5
6 double System time seconds
7 uint8_t Receiver number  
8 uint8_t Antenna ID  
9 uint8_t SV system  
10 uint8_t N_SV  
11 uint8_t SVID SVID of 1st SV
12 uint8_t Elevation deg
13 uint16_t Azimuth deg
14 uint8_t SNR db-Hz
15 uint8_t SVID SVID of 2nd SV
16 uint8_t Elevation deg
17 uint16_t Azimuth deg
18 uint8_t SNR db-Hz
     
  uint8_t Checksum A  
  uint8_t Checksum B  

5.11. Vehicle Dynamics Message

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x0B
5 uint16_t Payload length 67
6 double System time seconds
7 double GPS time of week seconds
8 double[3] Acceleration in body frame. See Note 2 in Section 5.13  
9 double[3] Rotation rate in body frame. See Note 3 in Section 5.13  
10 uint16_t GPS week number  
11 uint8_t Alignment mode  
12 uint8_t Checksum A  
13 uint8_t Checksum B  

5.12. Distance Measurement Indicator Data12

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x0C
5 uint16_t Payload length 13
6 double System time seconds
7 int32_t Pulse count  
8 uint8_t DMI ID  
9 uint8_t Checksum A  
10 uint8_t Checksum B  

5.13. Compact Navigation Message (High Rate)

This message is a high-rate real-time navigation output at the position defined by the user.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x0D
5 uint16_t Payload length 119
6 double System time if week = 0, otherwise GPS timeof week seconds
7 double Latitude degrees
8 double Longitude degrees
9 float Ellipsoidal height m
10 float[3] Velocity in North, East, Down m/s
11 float[4] Attitude quaternion; see Note 1 Scalar, X, Y, Z
12 float[3] Acceleration in body frame; see Note 2 m/s2
13 float[3] Rotation rate in body frame; see Note 3 degrees/s
14 float[3] Position RMS in NED m
15 float[3] Velocity RMS in NED m/s
16 float[3] Attitude RMS in NED degrees
17 uint16_t GPS week number If 0 time is not synced to GPS
18 uint8_t Alignment status 0: Invalid, 1: Coarse, 2: Fine
19 uint8_t Checksum A  
20 uint8_t Checksum B  

Note

  1. Attitude quaternion for the transformation from the body frame to the NED frame, \(q_{b}^{n}\). Note that the quaternion in ROS is defined as (X, Y, Z, scalar). The DCM corresponding to \(q_{b}^{n}\) can be computed as follows:
\[\begin{split}C_{b}^{n} = \begin{bmatrix} q_{0}^{2}+ q_{1}^{2}- q_{2}^{2}- q_{3}^{2} & 2(q_{1}q_{2}-q_{0}q_{3}) & 2(q_{1}q_{3}+q_{0}q_{2}) \\ 2(q_{1}q_{2}+q_{0}q_{3})& q_{0}^{2}- q_{1}^{2}+q_{2}^{2}- q_{3}^{2} & 2(q_{2}q_{3}-q_{0}q_{1})\\ 2(q_{1}q_{3}-q_{0}q_{2}) & 2(q_{2}q_{3}+q_{0}q_{1}) & q_{0}^{2}-q_{1}^{2}- q_{2}^{2}+ q_{3}^{2} \end{bmatrix}\end{split}\]

where \(q_{i}\) are elements of \(q_{b}^{n}\). Let \(C_{b}^{n} = \begin{Bmatrix}c_{ij}\end{Bmatrix}\) then if \(\begin{vmatrix}c_{31}\end{vmatrix}< 0.9999\) the Euler angles can be computed as follows:

\[\phi =atan2(c_{32},c_{33})\]
\[\Theta = atan\begin{pmatrix}-c_{31}/\sqrt{c_{32}^{2}+c_{33}^{2}}\end{pmatrix}\]
\[\psi = atan2(c_{21},c_{11})\]

where \(\phi\), \(\Theta\) and \(\psi\) are the roll, pitch and heading, respectively.

  1. Acceleration output is corrected for the gravity, Coriolis force and the estimated accelerometer biases: \(f^{b}-b_{a}+C_{e}^{b}(g^{e}-2w_{ie}^{e}\times v^{e} )\) where \(f^{b}\) is the specific force measurement from the IMU, \(b_{a}\) estimated accelerometer bias, \(C_{e}^{b}\) the DCM for the transformation from the ECEF to the body frame, \(g^{e}\) the gravity vector computed from the model, \(w_{ie}^{e}\) the earth’s rotation rate vector, and \(v^{e}\) the velocity vector.
  2. Rotation rate output is corrected for the earth rotation rate and the estimated gyro biases, i.e., \(w_{ie}^{e}\).

5.14. NMEA PECNM Message

This message is NMEA style text message corresponding to the message in Section 5.13.

5.15. NMEA GPRMC Message

This is the NMEA GPRMC message generated by the primary GNSS receiver.

5.16. Time Sync Message

This message contains the time sync message between the system time and GPS time. It gets generated at every PPS event. The GPS time corresponding to the system time can be obtained by

GPS time = System computer time - Bias
Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x10
5 uint16_t Payload length 16
6 double System computer time seconds
7 double Bias with respect to GPS time seconds
8 uint8_t Checksum A  
9 uint8_t Checksum B  

5.17. Raw GNSS Data Message

This message contains raw data generated by the GNSS receivers.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x11
5 uint16_t Payload length 10+N
6 double System computer time seconds
7 uint8_t Receiver number  
8 uint8_t Receiver type  
9 uint8_t[N] Raw GNSS data  
10 uint8_t Checksum A  
11 uint8_t Checksum B  

5.18. Engine Version Message

This message shows the engine version of the system. To receive this message the user needs to send an 8-byte binary message “0xAF 0x02 0x06 0x0B 0x01 0x02 0x02 0x02” to the system.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x12
5 uint16_t Payload length N
6 char[N] Engine version string  
7 uint8_t Checksum A  
8 uint8_t Checksum B  

5.19. GNSS Receiver Acknowledge Message

This message shows the acknowledge response from a GNSS receiver.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x13
5 uint16_t Payload length 2
6 uint8_t Receiver number  
7 uint8_t Receiver type  
8 uint8_t Checksum A  
9 uint8_t Checksum B  

5.20. GNSS Antenna Lever-Arm Calibration Data

Although it is recommended to accurately measure the lever-arms, sometimes it is very difficult to measure them. In this case the user can let the system calibrate the lever-arm vector. The calibration, however, must be done in an open-sky area with RTK enabled. For the primary antenna, the trajectory must include frequent turns, up-hill or down-hill driving for a considerably long time (one hour or more). Thus it would be the best to measure precisely with other instruments. Also the dual-antenna solution cannot be used in the solution during the calibration mode. So the INS initialization must be done with GNSS velocity.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x14
5 uint16_t Payload length 57
6 double Internal computer time seconds
7 double[3] Lever arm vector in body frame  
8 double[3] Variance m2
9 uint8_t Antenna indicator; see Note 1 0: pri, 1: sec-pri
10 uint8_t Checksum A  
11 uint8_t Checksum B  

Note

  1. When antenna indicator is ‘1’ the message outputs the vector from the primary to the secondary antenna in the body frame. To get the lever-arm of the secondary antenna, the primary lever-arm vector must be added. Shown in Figure is a plot of this message for a lever-arm of the secondary antenna with respect to the primary antenna. It is recommended to take the mean values after the convergence.
_images/Example_of_a_lever-arm_calibration.png

Figure 4: The IMU frame and the body frame

5.21. DMI Lever-Arm Calibration Data

TBD.

5.22. Geoid Height

This message outputs the Geoid height, which is the height of Geoid above the ellipsoid. The height above Geoid, treated normally as the height above mean sea level (MSL), can be computed as follows:

Height above MSL = Height above ellipsoid - Geoid height
Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x16
5 uint16_t Payload length 12
6 double GPS time seconds
7 float Geoid height m
8 uint8_t Checksum A  
9 uint8_t Checksum B  

5.23. Corrected IMU Data

This message contains IMU data corrected for the sensor biases estimated by the fusion algorithm. Note that the effect of the gravity and the Earth’s rotation rate is still included in the sensor data. The reference frame of this data is the user body frame and thus the rotation from the IMU frame to the user body frame is applied.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x17
5 uint16_t Payload length 58
6 double GPS time of week seconds
7 double[3] Acceleration m/s2
8 double[3] Rotation rate degrees/s
9 uint16_t GPS week number  
10 uint8_t Checksum A  
11 uint8_t Checksum B  

5.24. GPS-UTC Time Offset

This message contains the offset between the GPS time and the UTC. Note that GPS time is ahead of the UTC, which is called the leap seconds.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x05
4 uint8_t Message sub-ID 0x18
5 uint16_t Payload length 1
6 uint8_t GPS - UTC time offset seconds
7 uint8_t Checksum A  
8 uint8_t Checksum B  

5.25. NMEA GGA Message

This is the NMEA GGA message generated by the primary GNSS receiver.

6. System Diagnostic Messages

6.1. Text Message

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x07
4 uint8_t Message sub-ID 0x00
5 uint16_t Payload length N
6 char[N] Text  
7 uint8_t Checksum A  
8 uint8_t Checksum B  

6.2. Sensor Message Count

This message indicates the activity of each sub-system thus it can be used to monitor the system.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x07
4 uint8_t Message sub-ID 0x01
5 uint16_t Payload length 16
6 uint16_t IMU message count  
7 uint16_t GNSS message count  
8 uint16_t PPS count  
9 uint16_t[5] Reserved  
10 uint8_t Checksum A  
11 uint8_t Checksum B  

7. External Event Messages

This section defines messages that users can send to the system to improve the navigation performance.

7.1. Zero Velocity Update Event

The user can send zero velocity update (ZUPT) messages when the vehicle is not moving. Especially, this will improve the navigation system where the GNSS signal is degraded. For the ZUPT message to be effective, it shall be sent at a rate higher than 2 Hz (recommended rate is 3 Hz).

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x09
4 uint8_t Message sub-ID 0x01
5 uint16_t Payload length 4
6 uint16_t Horizontal Standard Deviation mm/s (0: Invalid)
7 uint16_t Vertical Standard Deviation mm/s (0: Invalid)
8 uint8_t Checksum A  
9 uint8_t Checksum B  

7.2. Static Heading Event

This message can be used to initialize the inertial navigator when the position is available from the GNSS receivers but the heading initialization has difficulties due to degraded GNSS signals. For this message to be effective, it shall be sent at a rate higher than 2 Hz (recommended rate is 3 Hz).

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x09
4 uint8_t Message sub-ID 0x02
5 uint16_t Payload length 5
6 int16_t Heading 0.01 degrees
7 uint16_t ZUPT RMS mm/s (0: Invalid)
8 uint8_t Heading RMS 0.1 deg (0: Invalid)
9 uint8_t Checksum A  
10 uint8_t Checksum B  

7.3. Static Geo-Pose Event

This message can be used to initialize or aid the inertial navigation system when GNSS signals are not available. For this message to be effective, it shall be sent at a rate higher than 2 Hz (recommended rate is 3 Hz).

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x09
4 uint8_t Message sub-ID 0x03
5 uint16_t Payload length 32
6 double Latitude deg
7 double Longitude deg
8 float Ellipsoidal height m
9 int16_t Roll 0.01 degrees
10 int16_t Pitch 0.01 degrees
11 int16_t Heading 0.01 degrees
12 uint16_t Position RMS cm (0: Invalid position)
13 uint16_t ZUPT RMS mm/s (0: Invalid)
14 uint8_t Heading RMS 0.1 deg (0: Invalid)
15 uint8_t Flags See Note 1
16 uint8_t Checksum A  
17 uint8_t Checksum B  

Note

  1. The first LSB (0x01) is used to denote the validity of the roll and pitch; the second LSB (0x02) is used to disable GNSS measurements.

7.4. Wheel Speed Event

Users can input a wheel speed of their vehicle to improve the navigation performance. For this message to be effective, it shall be sent at a rate higher than 2 Hz.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x09
4 uint8_t Message sub-ID 0x04
5 uint16_t Payload length 15
6 double Time seconds
7 float Speed m/s
8 uint16_t Speed RMS mm/s (0: Invalid speed)
9 uint8_t Flags See Note 1
10 uint8_t Checksum A  
11 uint8_t Checksum B  

Note

  1. Usage of flags.
_images/Usage_of_flags.png

8. System Configuration Messages

This chapter describes the messages to get the information about the system or to configure the system without using the control software.

8.1. Antenna Separation

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x06
5 uint16_t Payload length 04
6 uint8_t Message type of the request  
7 uint8_t Message sub-ID of the request  
8 uint8_t Response 1: ACK, 2: NACK
9 uint8_t Reserved  
10 uint8_t Checksum A  
11 uint8_t Checksum B  

8.2. User Configuration Setup

Send the following message to request the product ID.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x0B
5 uint16_t Payload length 0x01
6 uint8_t Topic 0x01
7 uint8_t Checksum A  
8 uint8_t Checksum B  

8.3. Antenna Separation

This message sets the separation between two antennas, which will aid the ambiguity resolution for the attitude determination.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x0D
5 uint16_t Payload length 8
6 uint8_t Topic 0x07
7 uint8_t Antenna ID 1 0x00
8 uint8_t Antenna ID 2 0x01
9 uint8_t Reserved  
10 float Separation m
11 uint8_t Checksum A  
12 uint8_t Checksum B  

8.4. User Configuration Setup

This message is used to setup the user configuration which controls the behavior of the navigator. The system will respond with the message in Section 8.1. For this to take effect, the user needs to restart the system after sending this message.

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x0D
5 uint16_t Payload length \(93+12n_{A}+2n_{M} or 114+12n_{A}+2n_{M}\)
6 uint8_t Topic 0x0A
7 uint8_t Aiding sensor indicators See Note 1
8 uint8_t Flags See Note 2
9 uint8_t Number of User ICD messages to configure ( \(n_{M}\))  
10 uint8_t Minimum GNSS velocity for heading initialization m/s
11 uint16_t Maximum dead-reckon time; the system will stop outputting the navigation solution if the dead-reckoning time exceeds this limit. seconds
12 uint16_t Maximum Nav Output Rate 0.1 Hz
13 double[3][3] IMU to user-frame rotation matrix ( \(C_{IMU}^{b}\) ) In row-major order
14 int32_t[3] Output position offset 1.0e-4 m
15 int32_t[ \(n_{A}\)][3] GNSS antenna lever arm in the user body frame 1.0e-4 m
16 User ICD message configuration block; exists only if \(n_{M} > 0\) . See Note 3
17 DMI configuration block; exists only if the DMI bit is set in the aiding sensor indicators. See Note 4
18 uint8_t Checksum A  
19 uint8_t Checksum B  

Note

  1. Aiding sensor indicators:
Bits Usage
1-2 Number of GNSS antennas (nA)
3 DMI exists
4-8 Reserved
  1. Usage of flags:
Bits Usage
1 Initialize heading from GNSS velocity; to activate this option the x-axis of the user body frame must be aligned with the forward direction of the vehicle.
2 Enable static position pinning; the system will output a fixed position during a static period detected by the GNSS. Note that there is a chance that the system can miss the detection if the signal quality becomes bad.
3 If set the entered GNSS antenna lever-arm is w.r.t. the IMU housing mark; otherwise it is w.r.t. the center of the IMU.
4 If set the entered output position lever-arm is w.r.t. the IMU housing mark; otherwise it is w.r.t. the center of the IMU.
5 If set the entered DMI antenna lever-arm is w.r.t. the IMU housing mark; otherwise it is w.r.t. the center of the IMU.
6-8 Reserved
  1. User ICD message configuration block; care needs to be taken when choosing high-rate outputs as outputting multiple high-rate messages can saturate the communication port.
Field Type Description Content
1 uint8_t Sub-ID for message 1 See Section 5
2 uint8_t Port ID for message 1 See below for port ID definition
3    
4 uint8_t Sub-ID for message nM See Section 5
5 uint8_t Port ID for message nM See below for port ID definition
Port ID Definition
0x00 Invalid, the output is turned off
0x01 Ethernet
0x02 UART0
0x04 UART1
0x80 Internal Log
  1. DMI configuration block:
Field Type Description Content
1 uint8_t DMI ID 0: Invalid, otherwise valid
2 double DMI scale factor pulse/m
3 int32_t[3] DMI lever-arm 1.0e-4 m

8.5. User Configuration Query

The system will send the current configuration if it receives the following message:

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x0B
5 uint16_t Payload length 0x01
6 uint8_t Checksum A  
7 uint8_t Checksum B  

The format of the response will be the same as the one in Section 8.4 except that the message sub-ID is 0x0C. If it fails to read the stored configuration, it will respond with the message in Section 8.1 with NACK.

8.6. IP Address of the System

Users can query the IP address of the system by sending the following message:

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x0B
5 uint16_t Payload length 0x01
6 uint8_t Topic 0x0B
7 uint8_t Checksum A  
8 uint8_t Checksum B  

If the Ethernet port is connected, the system will respond with the following message:

Field Type Description Content
1 uint8_t Sync 1 0xAF
2 uint8_t Sync 2 0x20
3 uint8_t Message type 0x06
4 uint8_t Message sub-ID 0x0C
5 uint16_t Payload length 0x05
6 uint8_t Topic 0x0B
7 uint8_t[4] IP Address  
8 uint8_t Checksum A  
9 uint8_t Checksum B  

If the port is not connected the system will send out an NACK message in Section 8.1 with the ‘Reserved’ field 0x0B.

9. CANBUS Messages

Defined in this section are the messages to be sent through the CANBUS.

9.1 Message ID 0x001

This message contains the system time of the navigation data.

Field Type Description Content
1 uint32_t Seconds  
2 uint32_t Nano seconds  

9.2 Message ID 0x002

This message contains the GPS seconds of the week of the navigation message.

Field Type Description Content
1 uint32_t Seconds  
2 uint32_t Nano seconds  

9.3 Message ID 0x003

This message contains the horizontal position of the vehicle.

Field Type Description Content
1 int32_t Latitude \(10^{-7}\) deg/bit
2 int32_t Longitude \(10^{-7}\) deg/bit

9.4 Message ID 0x004

This message contains the horizontal velocity.

Field Type Description Content
1 int32_t Velocity in North \(10^{-4}\) m/s
2 int32_t Velocity in East \(10^{-4}\) m/s

9.5 Message ID 0x005

This message contains the vertical position and velocity.

Field Type Description Content
1 int32_t Ellipsoidal height \(10^{-4}\) m
2 int32_t Velocity in Down \(10^{-4}\) m/s

9.6 Message ID 0x006

This message contains the roll and pith of the vehicle.

Field Type Description Content
1 int32_t Roll \(10^{-6}\) deg
2 int32_t Pitch \(10^{-6}\) deg

9.7 Message ID 0x007

Field Type Description Content
1 int32_t Heading \(10^{-6}\) deg
2 uint16_t GPS week number  
3 uint8_t Alignment status 0: Invalid, 1: Coarse, 2: Fine
4 uint8_t Roll, pitch heading status 0: Invalid, 1: Valid

9.8 Message ID 0x008

This message contains x-components of the corrected IMU data.

Field Type Description Content
1 int32_t Acceleration X-axis \(10^{-6}\) m/s2/bit
2 int32_t Rotation rate in X-axis 1/360000 deg/bit

9.9 Message ID 0x009

This message contains y-components of the corrected IMU data.

Field Type Description Content
1 int32_t Acceleration Y-axis \(10^{-6}\) m/s2/bit
2 int32_t Rotation rate in Y-axis 1/360000 deg/bit

9.10 Message ID 0x00A

This message contains z-components of the corrected IMU data.

Field Type Description Content
1 int32_t Acceleration Z-axis \(10^{-6}\) m/s2/bit
2 int32_t Rotation rate in Z-axis 1/360000 deg/bit

9.11 Message ID 0x101

This message contains the system time of the raw IMU data.

Field Type Description Content
1 uint32_t seconds seconds
2 uint32_t Nano seconds  

9.12 Message ID 0x101

This message contains x-axis components of the raw IMU data.

Field Type Description Content
1 int32_t Acceleration X-axis \(10^{-6}\) m/s2/bit
2 int32_t Rotation rate in X-axis 1/360000 deg/bit

9.13 Message ID 0x0103

This message contains y-axis components of the raw IMU data.

Field Type Description Content
1 int32_t Acceleration Y-axis \(10^{-6}\) m/s2/bit
2 int32_t Rotation rate in Y-axis 1/360000 deg/bit

9.14 Message ID 0x0104

This message contains z-axis components of the raw IMU data.

Field Type Description Content
1 int32_t Acceleration Z-axis \(10^{-6}\) m/s2/bit
2 int32_t Rotation rate in Z-axis 1/360000 deg/bit

10. Tips for System Usage

If a laptop computer’s display is too close to a GNSS antenna, it can cause adverse effects on the navigation system due to jamming/interference.

_images/Laptop_computer_jamming_the_GNSS.png

Figure 5: Laptop computer jamming the GNSS

System Setup Guide

1. Introduction

INS1000 is an integrated navigation system consisting of an inertial measurement unit (IMU) and other sensors. Thus, it can continuously output the position, velocity and attitude information of the vehicle. This document explains how to connect the hardware, install, and configure the system.

2. Power

To power on the system, connect the power cable (shown in Figure 1) to a DC power. The voltage of the power should be between 12 to 24 V. When the system is up, the power light on the box (shown in 2) will be turned on.

_images/power_connector.png

Figure 1: Power connector

_images/power_light.png

Figure 2: Power light

3. Connection

3.1 Serial Connection

The INS1000 system supports serial communication: both the base station and rover station could connect with PC tool with serial cable respectively, however, a null modem adaper for Male-Famale head of serial line transfer is a requirement. To establish serial communication, use one Serial to USB cable to connect the COM-PORT of the data cable (shown in Figure 3) to computer.

_images/connect_the_serial_usb_to_computer.png

Figure 3: Connect the serial usb to computer

To find the serial port, for Windows computer, users can use the steps below. For linux or Mac computers, use the equivalent steps.

  • Disconnect the blue USB from your computer.
  • Open the Device Manager page on your computer
  • Connect the blue USB to your computer and check the Ports section to see which port is added.

The INS1000 system outputs multiple data messages. To control which messages are sent through serial connection, use the AceinnaNav Control Software (see section 5.1 in AceinnaNav Control Software User Manual), or send User Configuration Setup message to the system (see section 8.4 in INS1000 Reference Manual).

3.2 Ethernet Connection

The INS1000 system supports ethernet communication,the RTK signal of rover station is synchronized via the ethernet cable on the left side. To establish ethernet communication, there are two kinds of connection:

First, there is

  • Direct connection: Connect an ethernet cable between the white connector of the data cable (shown in Figure 4) and a computer or other data receiver.
_images/connect_an_ethernet_cable_between_the_ethernet_connector_and_a_computer.png

Figure 4: Connect an ethernet cable between the ethernet connector and a computer

Users need to set the IP address of the computer or data receiver to 192.168.100.XXX. XXX can be any number from 2 to 254, except 97. The system’s IP address is 192.168.100.97. Data port is 8888.

  • Connection with router: Connect an ethernet cable between the white connector of the data cable (shown in Figure 5) and a router, another cable between the router, and your computer (shown in Figure 6) or other data receiver.
_images/connect_an_ethernet_cable_between_the_ethernet_connector_and_a_router.png

Figure 5 Connect an ethernet cable between the ethernet connector and a router

_images/connect_an_ethernet_cable_between_the_router_and_a_computer.png

Figure 6 Connect an ethernet cable between the router and a computer

To set up ethernet communication, users need to turn on DHCP of the ethenet interface on the computer. Users also need to retrieve the IP address from the INS1000 system using System IP Address Query message. The system will send back a System IP address response (see section 8.6 in INS1000 Reference Manual for query and response format). The data port is 8888.

To control which messages are sent through ethernet cable, use the AceinnaNav Control Software (see section 5.1 in AceinnaNav Control Software User Manual), or send User Configuration Setup message to the system (see section 8.4 in INS1000 Reference Manual).

3.3 The Null Modem Adapter

Both base station and rover station have serial port, please pay special attention to the DB9 serial wire sequece: Make sure that the transmitting device’s Transmit (TX) signal is routed to the receiving device’s Receive (RX) line. Similarly, the receiving device’s transmission line is routed to the communicating device’s receiving line. That is, a null modem adapter should be a wire sequence converter between DB9 female to DB9 female or DB9 male to male connection. note: user should choose the null modem adapter below in the left, not the mini gender changer in the right. After finished the serial port connection(base/rover station), user should verify the connection work normally with a serial tool(serial tool could receive data from rover/base station),then change to GUI.

_images/db9_wire_conventer1.png

Figure 7: DB9 wire conventer

4. Data Format

All output data format are described in INS1000 Reference Manual.

The INS1000 system accepts input message through serial connection and Ethernet connection. All input data format can be found in section 7 and 8 in INS1000 Reference Manual.

5. RTK

The INS1000 system supports Real-Time Kinematic (RTK) positioning. To turn on RTK mode, users need to do the followings:

  • Connect the system to the Internet: Connect an ethernet cable between a router which can access the Internet, and the white connector of the data cable (shown in Figure 7).
_images/connect_the_system_to_a_router.png

Figure 8 Connect the system to a router

  • Configure NTRIP client of the system: Use NTRIP client setting dialog of the AceinnaNav Control Software to set the system to use an available RTK base station. See section 6 in AceinnaNav Control Software User Manual about how to use NTRIP client setting dialog.

6. System Status

Users can check the following to see if your system is working properly. The procedures below may need to use AceinnaNav Control Software to check the status of the system. To see system status in the software, users need to connect the blue USB to a computer, and then open the software and establish a serial connection. See section 2 and 3 in AceinnaNav Control Software User Manual about software installation and connection establishment.

  • Check if the system is powered: Check if the light on the box is turned on. If it isn’t turned on, the system isn’t powered.
  • Further check if subsystem is working: In the AceinnaNav Control Software, check if the IMU, GNSS, and PPS indicators blink green at the bottom-right corner (shown in Figure 8).
_images/subsystem_status_indicators.png

Figure 9 Subsystem status indicators

  • Check if attitude is coming: In the AceinnaNav Control Software, check if the Attitude Mode is fine in the Navigation Information dialog (shown in Figure 9).
_images/attitude_mode.png

Figure 10 Attitude Mode

If the Attitude Mode is invalid, place the system under open sky and check if satellite signal is enough with the signal panel of the software. Under open sky, there is usually 10 to 20 satellites for each antenna in the signal panel.

  • If you are using RTK, check if the system is on RTK mode: In the AceinnaNav Control Software, check if the Postion Mode is RTK_FLOAT or RTK_FIXED (shown in Figure 10). Check if NTRIP indicator blink at the bottom-right corner (shown in Figure 11).
_images/RTK_Mode.png

Figure 11 RTK Mode

_images/NTRIP_indicator.png

Figure 11 NTRIP indicator

7. Interface Cable Pin Definition

The table below is the cable pin definition. Figure 12 is the sectional view of 19 position wiring cable.

_images/connector.png
_images/cable.png

Figure 12 Sectional View of 19 Position Wiring Cable