Page 1
User Manual µINS, µAHRS, and µIMU Product User Manual 11/30/2017 Inertial Sense LLC 72 N 720 E Salem, UT 84653 801-610-6771 support@inertialsense.com www.inertialsense.com SUPPORT@INERTIALSENSE.COM WWW.INERTIALSENSE.COM...
User Manual Contents Overview ................................4 Description of differences between IMU, AHRS, INS ................... 4 Getting Started..............................5 Unpacking Your Unit ............................ 5 Downloading the EvalTool and SDK ......................5 EvalTool GUI ..............................5 Connecting To Your Unit ..........................5 System LED and Solution Status ........................
Page 3
User Manual 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 Typical Health Monitoring .......................... 22 Magnetometer Calibration ..........................24 Magnetometer Recalibration ........................24 8.1.1 External Recalibration ..........................24 8.1.2 Automatic Recalibration ........................
User Manual 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.
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.
User Manual 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...
User Manual $ 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.
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.
User Manual 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.
User Manual • Positive Z-axis aligns with the WGS84 Z-axis, which aligns with the IERS Reference Pole (IRP) that points towards the North Pole. • Positive Y-axis aligns with the WGS84 Y-axis, completing the right-handed system. 3.5 Translation Between Coordinate Frames This section is intended to be an example of how to rotate between frames using methods defined within the SDK.
User Manual 4 Hardware Integration 4.1 Noise Coupling To ensure that noise is not being coupled into the Inertial Sense sensor module designed into your product, it can be compared with a stock EVB demo unit to compare noise figures. This is done by using the following steps. If both steps pass, you can know there is no noise being coupled into the module.
User Manual 5 SDK Library This section describes the InertialSense Software Development Kit (SDK) used to communicate and interface with the Inertial Sense products. 5.1 Binary Protocol The Inertial Sense binary protocol provides the most efficient way to communicate with the µINS, µAHRS, and µIMU.
User Manual The format of the packet data is determined by the packet identifier. For a data packet (PID_DATA (4) or PID_SET_DATA (5)) the first 12 bytes are always the data identifier (4 byte int), the offset into the data (4 byte int), and the length of data (4 byte int, not including the 12 bytes or packet header / footer).
User Manual The packet checksum is an 8 bit integer and is calculated by calculating the exclusive OR of all bytes in between and not including the $ and * bytes. The packet checksum byte is converted to a 2 byte ASCII hex code, and left padded with 0 if necessary to ensure that it is always 2 bytes.
Page 15
User Manual $PDTV,lf,d,f,f,f,f,f,f,f *xx\r\n Field Units Description timeSinceBoot Time since system power up dTheta[0] Delta theta integral – pitch dTheta[1] Delta theta integral – roll dTheta[2] Delta theta integral – yaw dUVW[0] Delta velocity integral – X dUVW[1] Delta velocity integral – Y dUVW[2] Delta velocity integral –...
Page 16
User Manual Fields: timeOfWeek, weeks, roll, pitch, yaw, velocity u, velocity v, velocity w, latitude, longitude, altitude PGPSP – GPS position data. $PGPSP,d,d,d,lf,lf,lf,f,f,f,f*xx\r\n Field Units Description GPS week weeks Number of weeks since January 1 of 1980 in GMT timeMsOfWeek Milliseconds since Sunday morning in GMT status [7:0] number of satellites used in solution,...
User Manual GPGLL – NMEA geographic position, latitude / longitude and time (see NMEA GPGLL specification). $GPGLL,3751.65,S,14507.36,E*77 $GPGLL,4916.45,N,12311.12,W,225444,A Where: 4916.46,N Latitude 49 deg. 16.45 min. North 12311.12,W Longitude 123 deg. 11.12 min. West 225444 Fix taken at 22:54:44 UTC Data valid $GPGLL,5133.81,N,00042.25,W*75 Where: 5133.81...
User Manual typedefint(*pfnSerialPortOpen)(serial_port_t* s, constchar* port, intbaudRate, intallowPartialReads); typedefint(*pfnSerialPortRead)(serial_port_t* s, unsignedchar* buf, intlen, inttimeoutMilliseconds); typedefint(*pfnSerialPortWrite)(serial_port_t* s, constunsignedchar* buf, intlen); typedefint(*pfnSerialPortClose)(serial_port_t* s); typedefvoid(*pfnSerialPortSleep)(serial_port_t* s, intwaitMilliseconds); // Allows communicating over a serial port struct serial_port_t pfnSerialPortOpenpfnOpen; pfnSerialPortReadpfnRead; pfnSerialPortWritepfnWrite; pfnSerialPortClosepfnClose; pfnSerialPortSleeppfnSleep; 5.3.2 Communicating with the device Step-by-step instructions for implementing the Inertial Sense Com Manager and communicating with the µINS, µAHRS, or µIMU are found in the InertialSenseCLTool project file, main.cpp.
5.4 C++ Binding A higher level, C++ class is provided to simplify the process of communicating with the binary protocol, logging or updating firmware. Please reference InertialSense.h /.cpp in the InertialSenseSDK for more details. The InertialSenseCLTool is an example source code project that illustrates how to implement the InertialSenseSDK.
6 Binary Protocol Data Sets Data Sets in the form of C structures are available through binary protocol and provide access to system configuration and output data. The data sets are defined in SDK/src/data_sets.h of the InertialSense SDK. 6.1 Configuration 6.1.1 DID_FLASH_CONFIG...
User Manual 7 System Health and Status Flags Status flags described in this section that can be observed by bitwise ANDing any of the status flag bitmasks with the corresponding status flags variable. 7.1 Status Flags This section lists the commonly used status flags. A complete listing of status flags is available in data_sets.h. 7.1.1 insStatus –...
User Manual HDW_STATUS_ERR_TEMPERATURE Outside of operational range HDW_STATUS_FAULT_BOD_RESET Low Power Reset HDW_STATUS_FAULT_POR_RESET Software or Triggered Reset 7.1.3 Built-in test (BIT) Flags Built-in test (BIT) is enabled by setting DID_BIT.state = 2. BIT takes about 1 second to run, and is completed when DID_BIT.state == 1.
Page 23
User Manual Test Description insStatus & INS_STATUS_ATT_ALIGN_GOOD Attitude estimates are valid insStatus & INS_STATUS_VEL_ALIGN_GOOD Velocity estimates are valid insStatus & INS_STATUS_POS_ALIGN_GOOD Position estimates are valid 6. System Temperature System temperature is available at DID_SYS_SENSORS.temp. 7. Communications Errors HDW_STATUS_COM_PARSE_ERROR_COUNT(DID_SYS_SENSORS.hStatus) is the number of parsed packet errors encountered.
User Manual 8 Magnetometer Calibration The magnetometer is used to estimate heading when the system is in any of the following conditions: 1.) is in AHRS mode 2.) has no GPS fix 3.) has GPS fix and constant velocity (non-accelerating motion) To have accurate heading under these conditions, the magnetometer must be calibrated.
User Manual 8.1.2 Automatic Recalibration Automatic magnetometer recalibration is useful for systems where user intervention to start external calibration is not convenient or practical. In this mode, the solution will determine that the system needs to be recalibrated and will attempt to do so while in normal operation. In the period while the system is recalibrating, the uncalibrated magnetometer data is used to prevent the INS heading from drifting but it does not provide heading measurements to the state estimator.
User Manual 9 Data Logging Inertial Sense provides data loggers written in C++ , which can read and write data in various formats to file. These loggers are useful for storing, replaying, and analyzing data. SDK/src/ISLogger.h defines the logging interface. 9.1 Log File The data log file name has the format LOG_SNXXXXX_YYYYMMDD_HHMMSS_CNT.dat which contains the device serial number, date, time, and log file count.
User Manual 9.1.3 Chunk Data The Chunk data is defined for both the .dat and .sdat file types. DATA DATA DATA CHUNK Data DATA SET DATA SET DATA SET … (.dat file) Data Data Data Header Header Header Byte Size CHUNK DATA DATA...
Page 28
User Manual Manual Selection – allows the user to select the specific datasets to stream and their update rates by setting the checkbox and period (ms) in Manual Selection table. b. INS – log INS output (attitude, velocity, position) at 100 Hz. Post Process –...
User Manual 10 Plotting Log Files Three methods of plotting are distributed with the IS-SDK, including Matlab, Python, and Excel. Each method of plotting is only implemented to plot one specific file type. To plot with Matlab the data must be saved as *.dat file type.