background image

  

 

User Manual 

 
 

 

© 2017 Inertial Sense, LLC 

13 

11/30/2017 

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

Packet footer (4 bytes) 
 

1 byte 

 checksum byte A (most significant byte) 

1 byte 

 checksum byte B (middle byte) 

1 byte 

 checksum byte C (least significant byte) 

1 byte 

 packet stop byte (0xFE) 

 
The packet checksum is a 24-bit integer (little-endian) that can be created as follows: 

-

 

Start the checksum value at 0x00AAAAAA and skip the packet start byte 

-

 

Exclusive OR the checksum with the packet header (identifier, counter, and packet flags) 

o

 

checksum ^= packetId 

o

 

checksum ^= (counter << 8) 

o

 

checksum ^= (packetFlags << 16) 

-

 

Exclusive OR the checksum with each data byte in packet, repeating the following three steps, until all 
data is included (i == dataLength). 

o

 

checksum ^= ( dataByte[i++] ) 

o

 

checksum ^= ( dataByte[i++] << 8 ) 

o

 

checksum ^= ( dataByte[i++] << 16 ) 

-

 

Decode encoded bytes (bytes prefixed by 0xFD) before calculating checksum for that byte. 

-

 

Perform any endianness byte swapping AFTER checksum is fully calculated. 

-

 

The checksum is stored in the packet footer in little endian format (see packet footer structure above). 

 
If your CPU architecture does not match the packet flags, you need to swap bytes appropriately. The SDK does this 
for you automatically. Bytes 0x0A, 0x24, 0xB5, 0xD3, 0xFD, 0xFE and 0xFF are reserved bytes, with 0xFD being a 
reserved byte prefix. When those bytes are written to a packet, they are prefixed with 0xFD and then written with 
all the bits inverted. The packet start and end byte are never encoded. When calculating a checksum, decode the 
byte if necessary first and then add the byte to the checksum calculation. 
 
A raw packet can never be more than 2048 bytes. A decoded packet will never be more than 1024 bytes. 
 
For a full example of encoding and decoding binary packets, please reference the following files in the SDK source:  
com_manager.c, com_manager.h, data_structures.c and data_structures.h, and in particular, the functions 
encodeBinaryPacket() and decodeBinaryPacket(). 
 

5.2

 

ASCII Protocol 

For simple use, the Inertial Sense device can communicate back and forth using plain ASCII text. This format is 
based on NMEA (

http://www.gpsinformation.org/dale/nmea.htm

). ASCII packets follow the NMEA 0183 structure 

and have the following format: 
 

1 byte  

 Start packet, always the $ byte (0x24) 

n bytes (usually 4 or 5) 

 packet identifier 

1 byte  

 a comma (0x2C) 

n bytes  

 comma separated list of data, i.e. 1,2,3,4,5,6 

1 byte  

 checksum marker, always the * byte (0x2A) 

2 bytes  

 checksum in hex format (i.e. f5), 0 padded if necessary 

2 bytes  

 End packet, always carriage return and line feed (\r\n or 0x0D, 0x0A) 

 

Содержание uAHRS

Страница 1: ...nual SUPPORT INERTIALSENSE COM WWW INERTIALSENSE COM 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 inertialsen...

Страница 2: ...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...

Страница 3: ...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 Chu...

Страница 4: ...e 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 baromet...

Страница 5: ...to 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...

Страница 6: ...L2_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 embedde...

Страница 7: ...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 No...

Страница 8: ...00 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 pas...

Страница 9: ...ans 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 Out...

Страница 10: ...s 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 be...

Страница 11: ...table for 5 seconds to be accurate Compare this figure between your integrated sensor module and EVB demo unit 2 Evaluate GPS sensitivity In clear view of the sky monitor the satellite signal strength...

Страница 12: ...owing packet formatting Figure 1 Packet Structure Packet Header 4 bytes 1 byte packet start byte 0xFF 1 byte packet identifier determines the format of packet data 1 byte packet counter for retries 1...

Страница 13: ...er structure above If your CPU architecture does not match the packet flags you need to swap bytes appropriately The SDK does this for you automatically Bytes 0x0A 0x24 0xB5 0xD3 0xFD 0xFE and 0xFF ar...

Страница 14: ...oadcast period for PDTV message INS1 ms Broadcast period for PINS1 message INS2 ms Broadcast period for PINS2 message GPSP ms Broadcast period for PGPSPOS message GPSV ms Broadcast period for PGPSVEL...

Страница 15: ...elocity in body frame Y UVW 2 m s Velocity in body frame Z LLA 0 deg WGS84 Latitude LLA 1 deg WGS84 Longitude LLA 2 m Hight above ellipsoid vertical elevation NED 0 m Offset from reference LLA North N...

Страница 16: ...ay morning in GMT Velocity north m s Velocity in local tangent plane North Velocity east m s Velocity in local tangent plane East Velocity down m s Velocity in local tangent plane Down s2D m s Ground...

Страница 17: ...ision VDOP 5 3 C Binding For pure C solutions such as embedded systems or situations where memory is limited the C binding is provided The C binding contains an interface for communicating with the de...

Страница 18: ...main cpp This file contains certain keywords that identify the specific function calls necessary to implement the SDK Use your search tool to find each of these steps and its corresponding description...

Страница 19: ...n addition once the progress reaches 100 there may be some clean up and final processing that will happen before the verify step begins The SDK supports two file types a hex Intel hex file or a bin In...

Страница 20: ...baud applied at startup InsRotation 3 float Roll pitch yaw rotation in radians from INS computational frame to INS output frame Order applied heading pitch roll InsOffset 3 float X Y Z offset to INS...

Страница 21: ...TATUS_SOLUTION_MASK 0 INS_INACTIVE The INS is not runnning 1 INS_ALIGNING The INS is aligning on startup 2 INS_ALIGNMENT_COMPLETE The INS has aligned but insufficient dynamics have been completed for...

Страница 22: ...bration BIT Flags Calibration BIT flags are contained in calBitStatus found in the DID_BIT message Bitmasks for the calBitStatus flags are defined in eCalBitStatusFlags in data_sets h Field Descriptio...

Страница 23: ...Status 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 t...

Страница 24: ...ity of the magnetometer calibration is not observable Such use cases would include AHRS operation extended periods without motion or no GNSS fix External magnetometer recalibration as the name suggest...

Страница 25: ...alibrations when data more data is collected across multiple axes of rotation However there are use cases where data collection beyond a single axis is impractical if not impossible To address this is...

Страница 26: ...ing data in a file A Chunk starts with a header which has a unique identifiable marker and ends with the data to be stored CHUNK CHUNK Header CHUNK Data Byte Size 40 9 1 2 Chunk Header The header foun...

Страница 27: ...2 U32 U32 9 2 Data Loggers The following two data loggers are provided by Inertial Sense Serial Logger Sorted Logger Description Stores data to file in the same serial order it was passed into the log...

Страница 28: ...at 100 Hz c Post Process used with beta testers and internal testing Includes IMU GPS INS and other messages 4 Press Start Log to begin logging data 5 Press Stop Log to stop logging data 6 The Open F...

Страница 29: ...using matlab open main m and push run A user interface will open asking you to Select Folder that contains desired dat log files to be read from Once you select the desired folder the data will be re...

Страница 30: ...UPTION OR LOSS OF INFORMATION ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT EVEN IF INERTIAL SENSE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES Inertial Sense makes no representation...

Отзывы: