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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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¶

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.

- 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

- 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.

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

- 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

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:
- Double Click one satellite and it shows the elevation and azimuth information.
- Click that satellite and it the elevation and azimuth information will disappear.

3.3 Position View¶
Shows the current position after opening the Position View.
- After clicking the [Average Position] checkbox in [Settings] -> [Surveying] Position View also shows the average position in real time.
- Average Position is represented with a yellow square within the graph.

3.4 Export data¶
Export data allows you to save a log file of the Base Station.
- Choose a directory to save the log file of Base Station and then click [Start Export].
- Then Click [Stop Export] to finish the completed Export.

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
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:
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.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 |
|
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 |
|
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
- 0: GPS, 1: GLONASS, 2: Galileo, 3: QZSS, 4: Beidou, 5: SBAS
- 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 |
|
11 | uint8_t | SVID | |
12 | float | Azimuth (deg) | |
13 | float | Elevation (deg) | |
14 | uint8_t | SV system |
|
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.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
- 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.
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
- 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 |
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
- Aiding sensor indicators:
Bits | Usage |
---|---|
1-2 | Number of GNSS antennas (nA) |
3 | DMI exists |
4-8 | Reserved |
- 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 |
- 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 |
- 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.
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.
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.
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.
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.
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.
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).
- 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).
- 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).
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).
7. Interface Cable Pin Definition¶
The table below is the cable pin definition. Figure 12 is the sectional view of 19 position wiring cable.