InertialSense µAHRS, µINS, µIMU User Manual

User Manual
SUPPORT@INERTIALSENSE.COM WWW.INERTIALSENSE.COM
µINS, µAHRS, and µIMU
User Manual
11/30/2017
Inertial Sense LLC
72 N 720 E
Salem, UT 84653
801-610-6771
support@inertialsense.com
www.inertialsense.com
User Manual
© 2017 Inertial Sense, LLC 2 11/30/2017
Contents
1 Overview ............................................................................................................................................................... 4
1.1 Description of differences between IMU, AHRS, INS ................................................................................... 4
2 Getting Started...................................................................................................................................................... 5
2.1 Unpacking Your Unit .................................................................................................................................... 5
2.2 Downloading the EvalTool and SDK ............................................................................................................. 5
2.3 EvalTool GUI ................................................................................................................................................. 5
2.4 Connecting To Your Unit .............................................................................................................................. 5
2.5 System LED and Solution Status ................................................................................................................... 6
2.6 Inertial Sense CLTool .................................................................................................................................... 6
2.6.1 Compiling in Linux/Mac ........................................................................................................................... 6
2.6.2 Compiling in Windows (MS Visual Studio) ............................................................................................... 7
2.6.3 Running CLTool ........................................................................................................................................ 7
2.7 Additional Development .............................................................................................................................. 8
3 Coordinate Frames ................................................................................................................................................ 9
3.1 Sensor Frame ............................................................................................................................................... 9
3.2 INS Output Frame......................................................................................................................................... 9
3.3 North-East-Down (NED) Frame .................................................................................................................... 9
3.4 Earth-Centered Earth-Fixed (ECEF) Frame ................................................................................................... 9
3.5 Translation Between Coordinate Frames ................................................................................................... 10
4 Hardware Integration ......................................................................................................................................... 11
4.1 Noise Coupling ........................................................................................................................................... 11
4.2 Vibration Isolation ...................................................................................................................................... 11
4.3 Sensitivity to Temperature Change ............................................................................................................ 11
5 SDK Library .......................................................................................................................................................... 12
5.1 Binary Protocol ........................................................................................................................................... 12
5.2 ASCII Protocol ............................................................................................................................................. 13
5.2.1 ASCII Messages ...................................................................................................................................... 14
5.3 C Binding .................................................................................................................................................... 17
5.3.1 Connecting to the Device ....................................................................................................................... 17
5.3.2 Communicating with the device ............................................................................................................ 18
5.3.3 Updating Firmware (Bootloader) ........................................................................................................... 18
5.4 C++ Binding ................................................................................................................................................ 19
6 Binary Protocol Data Sets ................................................................................................................................... 20
6.1 Configuration ............................................................................................................................................. 20
6.1.1 DID_FLASH_CONFIG ............................................................................................................................... 20
6.2 Using Com Manger to Write Data Set Parameter ...................................................................................... 20
7 System Health and Status Flags .......................................................................................................................... 21
7.1 Status Flags................................................................................................................................................. 21
User Manual
© 2017 Inertial Sense, LLC 3 11/30/2017
7.1.1 insStatus – INS Status Flags .................................................................................................................... 21
7.1.2 hdwStatus – Hardware Status Flags....................................................................................................... 21
7.1.3 Built-in test (BIT) Flags ........................................................................................................................... 22
7.2 Typical Health Monitoring .......................................................................................................................... 22
8 Magnetometer Calibration ................................................................................................................................. 24
8.1 Magnetometer Recalibration ..................................................................................................................... 24
8.1.1 External Recalibration ............................................................................................................................ 24
8.1.2 Automatic Recalibration ........................................................................................................................ 25
8.2 Magnetometer Continuous Calibration ..................................................................................................... 25
8.3 Magnetometer Calibration Settings ........................................................................................................... 25
9 Data Logging ....................................................................................................................................................... 26
9.1 Log File ....................................................................................................................................................... 26
9.1.1 Log Chunk .............................................................................................................................................. 26
9.1.2 Chunk Header ........................................................................................................................................ 26
9.1.3 Chunk Data ............................................................................................................................................ 27
9.1.4 Chunk Sub-Header ................................................................................................................................. 27
9.1.5 Data Set Header ..................................................................................................................................... 27
9.2 Data Loggers ............................................................................................................................................... 27
9.3 EvalTool Data Logging ................................................................................................................................ 27
10 Plotting Log Files ................................................................................................................................................. 29
10.1 Matlab (*.dat) ............................................................................................................................................ 29
10.2 Python (*.sdat) ........................................................................................................................................... 29
10.3 Excel (*.csv) ................................................................................................................................................ 29
11 Troubleshooting .................................................................................................................................................. 30
User Manual
© 2017 Inertial Sense, LLC 4 11/30/2017
1 Overview
The µINS GPS aided Inertial Navigation System, µAHRS Attitude Heading Reference System, and the µIMU Inertial Measurement Unit monitor many different types of measurements including rotation, acceleration, GPS position, magnetic flux density, pressure and velocity. The Inertial Sense SDK provides a software interface to allow communication with the device including setting configuration options, retrieving specific data, and listening for data broadcasts.
For example, you could configure the device to broadcast the current latitude, longitude, and altitude as well as the heading and velocity at up to 500Hz. This manual will cover the underlying protocol and message format (binary and ASCII) involved in communicating with the device, along with a C, C++ and C# binding.
1.1 Description of differences between IMU, AHRS, INS
The μIMU™ is a miniature calibrated sensor module consisting of an Inertial Measurement Unit (IMU), magnetometer, barometer, and L1 GPS (GNSS) receiver. Data out includes angular rate, linear acceleration, magnetic field, barometric altitude, and GPS WGS84 geo-position. All systems include a comprehensive sensor calibration for bias, scale-factor, and cross-axis alignment, minimizing manufacturing variation and maximizing system performance.
The μAHRS™ is an Attitude Heading Reference System (AHRS) that includes all functionality of the μIMU™ and fuses IMU and magnetometer data to estimate roll, pitch, and heading.
The μINS™ is a GPS (GNSS) aided inertial navigation system (GPS-INS) module that includes all functionality of the μIMU™ and provides orientation, velocity, and position. Sensor data from MEMs gyros, accelerometers, magnetometers, barometric pressure, and GPS/GNSS is fused to provide optimal measurement estimation.
User Manual
© 2017 Inertial Sense, LLC 5 11/30/2017
2 Getting Started
This section provides instructions on how to quickly set up the µINS, µAHRS, or µIMU and start collecting data.
2.1 Unpacking Your Unit
Most customers will choose to purchase the EVB (Evaluation Board) and Semi-Rugged Case with their µINS, µAHRS, or µIMU. The EVB allows for multiple types of serial connections to be made with the µINS, µAHRS, or µIMU including RS232, RS485, RS422, TTL, and USB. (Coming soon CAN bus, SPI and I2C.) A FTDI USB to serial converter on the EVB connects the EVB USB port to a serial port on the µINS, µAHRS, or µIMU.
2.2 Downloading the EvalTool and SDK
The EvalTool and CLTool (part of the SDK) are provided to help users quickly evaluate and integrate the µINS, µAHRS, and µIMU.
You can visit the Inertial Sense website’s Resources page at https://inertialsense.com/resources to get access to
the source code downloads (EvalTool and SDK). The EvalTool Windows installer comes with the SDK and firmware. The installer will automatically save the EvalTool in C:\Program Files\Inertial Sense, and a desktop shortcut will also be created. The SDK and firmware will be saved in C:\Users\UserName\Documents\Inertial Sense. The SDK and firmware can also be downloaded individually and saved into a directory of your choosing.
2.3 EvalTool GUI
The EvalTool is a graphical Windows-based desktop program that allows you to explore and test functionality of the Inertial Sense products in real-time. It has scrolling plots, 3D model representation, table views of all data, a data logger, and a firmware updating interface for the µINS, µAHRS, or µIMU. The EvalTool can simultaneously interface with multiple Inertial Sense devices.
In the EvalTool under the Settings tab, make sure to select the Auto Refresh check box next to the COM port connected to the µINS, µAHRS, or µIMU. Once the correct COM port is selected data will immediately begin to be received.
2.4 Connecting To Your Unit
A serial port is the standard interface on the µINS, µAHRS, and µIMU. The EVB provides an optional RS232 and USB interface to the serial ports. When the EVB USB port is connected to a PC, it will appear as a virtual com port to Ser1. Both the EvalTool and the InertialSenseCLTool project connect using a serial port. The baud rate can be configured by modifying the ser0BaudRate or ser1BaudRate fields of DID_FLASH_CONFIG, which can be accessed in the DataSets tab of the EvalTool.
Table 1 – Serial Communication Ports
Serial
Port
µINS, µAHRS,
µIMU Pins
Interface Type
EVB Pins
Interface Type
Ser 0 18,19 (Rx,Tx)
TTL
H4: 3,4 (Rx,Tx)
TTL, RS232,
USB (default)
Ser 1 6,7 (Rx,Tx)
TTL
H6: 4,5 (Rx,Tx)
TTL, RS232,
RS485/RS422, USB
EVB USB connection toggles between Ser0 and Ser1 by setting “USB” jumpers.
User Manual
© 2017 Inertial Sense, LLC 6 11/30/2017
2.5 System LED and Solution Status
Each unit is equipped with an RGB LED on the top face. This LED indicates the unit’s system and solution status and can pulse various combinations of the behaviors listed below.
LED Behavior
Status
Description
White
1
Solution Aligning
The solution is aligning on startup.
Cyan
2
Solution Alignment Complete
The solution has aligned but insufficient dynamics have been completed for the variance to reach nominal conditions.
Green
3
Solution Good – NAV
The solution is in Navigation mode and state estimate is good.
Blue
5
Solution Good – AHRS
The solution is in AHRS mode and state estimate is good. There is no valid position or velocity data from GPS or other aiding sensor. Only the attitude states are estimated.
Orange
4 6 Solution High Variance
The solution is in Navigation or AHRS mode but variance (uncertainty) is high. This may be caused by excessive
sensor noise such as vibration, magnetic interference, or poor GPS visibility or multipath errors. See DID_INL2_VARIANCE.
Purple
Magnetometer Recalibration
The system is collecting new magnetometer calibration data and requires rotation.
Purple fast blink
Firmware Upload
The bootloader is uploading the embedded firmware.
Orange fast blink
Firmware Verification
The bootloader is verifying the embedded firmware.
Red
Bootloader Failure
The bootloader has experienced a failure on startup.
Can combine with behaviors above
Red/purple pulse every 1s
RTK Base Data Received
The system is receiving RTK base station data.
Purple pulse every 1s
RTK Fix Status
The GPS has valid RTK fix and high precision positioning.
Red pulse every 1s
GPS PPS Sync
The system has received and synchronized local time to UTC time using the GPS PPS signal.
2.6 Inertial Sense CLTool
The Inertial Sense CLTool is a command line utility that can be used to read and display data, update firmware, and log data from Inertial Sense products. Additionally, CLTool serves as example source code that demonstrates integration of the Inertial Sense SDK into your own source code. The CLTool can be compiled in Linux, Mac, Windows and embedded platforms.
2.6.1 Compiling in Linux/Mac
1. Create build directory.
$ cd InertialSenseCLTool $ mkdir build
2. Run cmake from within build directory.
$ cd build
User Manual
© 2017 Inertial Sense, LLC 7 11/30/2017
$ cmake ..
3. Compile using make.
$ make
4. Add current user to the "dialout" group in order to read and write to the USB serial communication ports:
$ sudousermod -a -G dialout $USER $ sudousermod -a -G plugdev $USER
(reboot computer)
5. Run executable
$ ./bin/cltool
2.6.2 Compiling in Windows (MS Visual Studio)
1. Open Visual Studio solution file (<Path to SDK>/InertialSenseCLTool/VS_project/InertialSenseCLTool.sln).
2. Build (F7).
2.6.3 Running CLTool
The Windows executable is “cltool.exe” and the Linux/Mac executable is “cltool”.
2.6.3.1 Command Line Options
Run the CLTool with the “-h” option to display the command line options.
$ ./bin/cltool -h
DESCRIPTION Command line utility for communicating, logging, and updating firmware with Inertial Sense product line.
EXAMPLES cltool -c=/dev/ttyS2 # stream post processing data (PPD) with INS2 (default) cltool -c=/dev/ttyS2 -lon -lts=1 # logging to timestamp directory, stream PPD + INS2 data cltool -c=/dev/ttyS2 -lon -msgSol=3 # logging, stream PPD + INS3 data cltool -c=/dev/ttyS2 -baud=115200 -msgINS2 -msgGPS -msgBaro # stream multiple data sets at 115200 baud rate cltool -c=/dev/ttyS2 -msgSol=0 # disable solution stream cltool -rp=logs/20170117_222549 # replay log files from a folder cltool -c=/dev/ttyS2 -b= fw/IS_uINS-3.hex # bootload firmware cltool -c=* -baud=921600 # 921600 mbps baudrate on all serial ports
OPTIONS (General)
-h --help display this help menu
-c=COM_PORT select the serial port. Set COM_PORT to "*" for all ports and "*4" to use only the first four ports. Not specifying this parameter is same as -c=*
-baud=BAUDRATE set serial port baudrate. Options: 115200, 230400, 460800, 921600, 3000000 (default)
-b=FILEPATH bootload firmware using .hex file FILEPATH
-q quite mode, no display
-s scroll displayed messages to show history
-stats display statistics of data received
OPTIONS (Solution Streaming)
-msgSol[n] Post Process Data (PPD) = DID_GPS + DID_MAGNETOMETER1 + DID_MAGNETOMETER2 + DID_BAROMETER + DID_FLASH_CONFIG. Use -msgSol0 to disable solution streaming. n= 1: PPD + DID_DUAL_IMU + DID_INS1 n= 2: PPD + DID_DUAL_IMU + DID_INS2 (recommended default) n= 3: PPD + DID_DUAL_IMU + DID_INS3 n= 4: PPD + DID_DUAL_IMU + DID_INS4 n=11: PPD + DID_DELTA_THETA_VEL + DID_INS1 n=12: PPD + DID_DELTA_THETA_VEL + DID_INS2 n=13: PPD + DID_DELTA_THETA_VEL + DID_INS3 n=14: PPD + DID_DELTA_THETA_VEL + DID_INS4 INS output only without PPD n=21: DID_INS1, n=22: DID_INS2, n=23: DID_INS3, n=24: DID_INS4
OPTIONS (Message Streaming)
-msgINS[n] message DID_INS_[n], where [n] = 1, 2, 3 or 4 (without brackets)
-msgIMU[n] message DID_IMU_[n], where [n] = 1 or 2 (without brackets)
-msgDualIMU message DID_DUAL_IMU
-msgDThetaVel message DID_DELTA_THETA_VEL
-msgMag[n] message DID_MAGNETOMETER_[n], where [n] = 1 or 2 (without brackets)
-msgBaro message DID_BAROMETER
-msgGPS message DID_GPS
-msgSensors message DID_SYS_SENSORS
OPTIONS (Logging to file, disabled by default)
User Manual
© 2017 Inertial Sense, LLC 8 11/30/2017
-lon enable logging
-lp=PATH log data to path (default: IS_logs)
-lms=PERCENT log max space in percent of free space (default: 0.5)
-lmf=BYTES log max file size in bytes (default: 5242880)
-lmm=BYTES log max memory in bytes (default: 131072)
-lts=0 log sub folder, 0 or blank for none, 1 for timestamp, else use as is
-r replay data log from default path
-rp=PATH replay data log from PATH
-rs=SPEED replay data log at x SPEED
OPTIONS (Read or write flash configuration)
-flashConfig=. - read flash config and display.
-flashConfig=key=value|key=value - set key / value pairs in flash config.
OPTIONS (Client / server)
-svr=connectionInfo, used to retreive external data and send to the uINS. Examples: For retrieving RTCM3 data: -svr=RTCM3:192.168.1.100:7777:url:user:password - url, user and password optional. For retrieving SERIAL data: -svr=RTCM3:SERIAL:COM9:57600 (port, baud). For retrieving InertialSense data: -svr=IS:192.168.1.100:7777 - no url, user or password. For retrieving UBLOX data: -svr=UBLOX:192.168.1.100:7777 - no url, user or password.
-host=ipAndPort, used to host a tcp/ip InertialSense server. Example: -host=:7777 or -host=192.168.1.43:7777. The ip address part is optional.
2.6.3.2 Command Line Options in MS Visual Studio
When using MS Visual Studio IDE, command line arguments can be supplied by right clicking the project in the solution explorer and then selecting Configuration Properties -> Debugging -> Command Arguments (see image below).
2.7 Additional Development
The basic methods of interfacing with the µINS, µAHRS, and µIMU have been shown. Additional development, such as configuring the system, calibrating the magnetometer and logging data, can be taken and instructions constitute the remainder of this manual.
User Manual
© 2017 Inertial Sense, LLC 9 11/30/2017
3 Coordinate Frames
In this manual, coordinate frame systems are simply referred to as frames. This section is to assist the developer in choosing and implementing the appropriate coordinate frames for their respective application. It should be noted that the following frames are in relation to the uINS itself.
3.1 Sensor Frame
IMU, magnetometer, and INS velocity data are in the Sensor Coordinate Frame, or Sensor Frame, and are identified by the X, Y, and Z axes labeled on the hardware. The z-axis is positive down into the image.
3.2 INS Output Frame
The INS output data (DID_INS_1, DID_INS_2, DID_INS_3) is in the INS Output Frame. Translation from Sensor Frame to INS Output Frame is defined as:
1. Sensor Frame Intermediate Output Frame by rotation of DID_FLASH_CONFIG.insRotation euler angles
(in order of heading, pitch, roll angle) In radians.
2. Intermediate Output Frame INS Output Frame: Offset by DID_FLASH_CONFIG.insOffset in meters.
If DID_FLASH_CONFIG.insRotation and DID_FLASH_CONFIG.insOffset are zero, the Sensor Frame and the INS Output Frame are the same.
3.3 North-East-Down (NED) Frame
Position estimates can be output in the North-East-Down (NED) coordinate frame defined as follows:
Right-handed, Cartesian, non-inertial, geodetic frame with origin located at the surface of Earth (WGS84
ellipsoid).
Positive X-axis points towards North, tangent to WGS84 ellipsoid.
Positive Y-axis points towards East, tangent to WGS84 ellipsoid.
Positive Z-axis points down into the ground completing the right-handed system.
3.4 Earth-Centered Earth-Fixed (ECEF) Frame
The Earth-Centered Earth-Fixed (ECEF) frame is defined as follows:
Right-handed, Cartesian, non-inertial frame with origin located at the center of Earth.
Fixed to and rotates with Earth.
Positive X-axis aligns with the WGS84 X-axis, which aligns with the International Earth Rotation and
Reference Systems Service (IERS) Prime Meridian.
X
+Roll
Z
+Yaw
Y
+Pitch
X
+Roll
Z
+Yaw
Y
+Pitch
Loading...
+ 21 hidden pages