MIP_SDK  v3.0.0
MicroStrain Communications Library for embedded systems
Classes | Typedefs | Functions
(0x0C,0x32) Sensor 2 Vehicle Transform Quaternion

Set the sensor to vehicle frame transformation using unit length quaternion. More...

Classes

struct  mip::C::mip_3dm_sensor_2_vehicle_transform_quaternion_command
 
struct  mip::C::mip_3dm_sensor_2_vehicle_transform_quaternion_response
 

Typedefs

typedef struct mip_3dm_sensor_2_vehicle_transform_quaternion_command mip::C::mip_3dm_sensor_2_vehicle_transform_quaternion_command
 
typedef struct mip_3dm_sensor_2_vehicle_transform_quaternion_response mip::C::mip_3dm_sensor_2_vehicle_transform_quaternion_response
 

Functions

void mip::C::insert_mip_3dm_sensor_2_vehicle_transform_quaternion_command (microstrain_serializer *serializer, const mip_3dm_sensor_2_vehicle_transform_quaternion_command *self)
 
void mip::C::extract_mip_3dm_sensor_2_vehicle_transform_quaternion_command (microstrain_serializer *serializer, mip_3dm_sensor_2_vehicle_transform_quaternion_command *self)
 
void mip::C::insert_mip_3dm_sensor_2_vehicle_transform_quaternion_response (microstrain_serializer *serializer, const mip_3dm_sensor_2_vehicle_transform_quaternion_response *self)
 
void mip::C::extract_mip_3dm_sensor_2_vehicle_transform_quaternion_response (microstrain_serializer *serializer, mip_3dm_sensor_2_vehicle_transform_quaternion_response *self)
 
mip_cmd_result mip::C::mip_3dm_write_sensor_2_vehicle_transform_quaternion (mip_interface *device, const float *q)
 
mip_cmd_result mip::C::mip_3dm_read_sensor_2_vehicle_transform_quaternion (mip_interface *device, float *q_out)
 
mip_cmd_result mip::C::mip_3dm_save_sensor_2_vehicle_transform_quaternion (mip_interface *device)
 
mip_cmd_result mip::C::mip_3dm_load_sensor_2_vehicle_transform_quaternion (mip_interface *device)
 
mip_cmd_result mip::C::mip_3dm_default_sensor_2_vehicle_transform_quaternion (mip_interface *device)
 

Detailed Description

Set the sensor to vehicle frame transformation using unit length quaternion.

Note: This is the transformation, the inverse of the rotation.

This quaternion describes the transformation of vectors from the sensor body frame to the vehicle frame of reference, and satisfies the following relationship:

EQSTART p^{veh} = q^{-1} p^{sen} q EQEND

Where:
EQSTART q = (q_w, q_x, q_y, q_z) EQEND is the quaternion describing the transformation.
EQSTART p^{sen} = (0, v^{sen}_x, v^{sen}_y, v^{sen}_z) EQEND and EQSTART v^{sen} EQEND is a 3-element vector expressed in the sensor body frame.
EQSTART p^{veh} = (0, v^{veh}_x, v^{veh}_y, v^{veh}_z) EQEND and EQSTART v^{veh} EQEND is a 3-element vector expressed in the vehicle frame.

The transformation may be stored in the device as a matrix or a quaternion. When the quaternion is read back from the device, it may not be exactly equal to the quaternion used to set the transformation, but it is functionally equivalent.


This transformation affects the following output quantities:

IMU:
Scaled Acceleration
Scaled Gyro
Scaled Magnetometer
Delta Theta
Delta Velocity


Estimation Filter:
Estimated Orientation, Quaternion
Estimated Orientation, Matrix
Estimated Orientation, Euler Angles
Estimated Linear Acceleration
Estimated Angular Rate
Estimated Gravity Vector

Changing this setting will force all low-pass filters, the complementary filter, and the estimation filter to reset.

Typedef Documentation

◆ mip_3dm_sensor_2_vehicle_transform_quaternion_command

◆ mip_3dm_sensor_2_vehicle_transform_quaternion_response

Function Documentation

◆ extract_mip_3dm_sensor_2_vehicle_transform_quaternion_command()

void mip::C::extract_mip_3dm_sensor_2_vehicle_transform_quaternion_command ( microstrain_serializer serializer,
mip_3dm_sensor_2_vehicle_transform_quaternion_command self 
)

◆ extract_mip_3dm_sensor_2_vehicle_transform_quaternion_response()

void mip::C::extract_mip_3dm_sensor_2_vehicle_transform_quaternion_response ( microstrain_serializer serializer,
mip_3dm_sensor_2_vehicle_transform_quaternion_response self 
)

◆ insert_mip_3dm_sensor_2_vehicle_transform_quaternion_command()

void mip::C::insert_mip_3dm_sensor_2_vehicle_transform_quaternion_command ( microstrain_serializer serializer,
const mip_3dm_sensor_2_vehicle_transform_quaternion_command self 
)

◆ insert_mip_3dm_sensor_2_vehicle_transform_quaternion_response()

void mip::C::insert_mip_3dm_sensor_2_vehicle_transform_quaternion_response ( microstrain_serializer serializer,
const mip_3dm_sensor_2_vehicle_transform_quaternion_response self 
)

◆ mip_3dm_default_sensor_2_vehicle_transform_quaternion()

mip_cmd_result mip::C::mip_3dm_default_sensor_2_vehicle_transform_quaternion ( mip_interface device)

◆ mip_3dm_load_sensor_2_vehicle_transform_quaternion()

mip_cmd_result mip::C::mip_3dm_load_sensor_2_vehicle_transform_quaternion ( mip_interface device)

◆ mip_3dm_read_sensor_2_vehicle_transform_quaternion()

mip_cmd_result mip::C::mip_3dm_read_sensor_2_vehicle_transform_quaternion ( mip_interface device,
float *  q_out 
)

◆ mip_3dm_save_sensor_2_vehicle_transform_quaternion()

mip_cmd_result mip::C::mip_3dm_save_sensor_2_vehicle_transform_quaternion ( mip_interface device)

◆ mip_3dm_write_sensor_2_vehicle_transform_quaternion()

mip_cmd_result mip::C::mip_3dm_write_sensor_2_vehicle_transform_quaternion ( mip_interface device,
const float *  q 
)