class mrpt::hwdrivers::CIMUIntersense
Overview
A class for interfacing Intersense Inertial Measuring Units (IMUs).
It connects to a InterSense inertiaCube 3 sensor and records inertial data. NOTE: This device provides:
Euler angles,
2 angular velocties (body-frame and navigation-frame)
X,Y,Z velocity
2 accelerations (body-frame and navigation-frame)
In order to record all this information within the ‘rawMeasurements’ vector in mrpt::obs::CObservationIMU, some of it had to be stored in positions which weren’t intended for the stored data (marked with *):
Euler angles –> rawMeasurements[IMU_YAW], rawMeasurements[IMU_PITCH], rawMeasurements[IMU_ROLL]
Body-frame angular velocity –> rawMeasurements[IMU_YAW_VEL], rawMeasurements[IMU_PITCH_VEL], rawMeasurements[IMU_ROLL_VEL]
* Nav-frame angular velocity –> rawMeasurements[IMU_MAG_X], rawMeasurements[IMU_MAG_Y], rawMeasurements[IMU_MAG_Z]
XYZ velocity –> rawMeasurements[IMU_X_VEL], rawMeasurements[IMU_Y_VEL], rawMeasurements[IMU_Z_VEL]
Body-frame acceleration –> rawMeasurements[IMU_X_ACC], rawMeasurements[IMU_Y_ACC], rawMeasurements[IMU_Z_ACC]
* Nav-frame acceleration –> rawMeasurements[IMU_X], rawMeasurements[IMU_Y], rawMeasurements[IMU_Z] Be careful with this when using the grabbed mrpt::obs::CObservationIMU data.
See also the application “rawlog-grabber” for a ready-to-use application to gather data from this sensor.
PARAMETERS IN THE ".INI"-LIKE CONFIGURATION STRINGS: ------------------------------------------------------- [supplied_section_name] driver = CIMUIntersense sensorLabel = <label> ; Label of the sensor pose_x = 0 ; [double] Sensor 3D position relative to the robot (meters) pose_y = 0 pose_z = 0 pose_yaw = 0 ; [double] Angles in degrees pose_pitch = 0 pose_roll = 0 sensitivity = 10 ; [int] Sensor sensitivity (see API documentation) enhancement = 2 ; [int] Enhancement mode (see API documentation) prediction = 0 ; [int] Prediction mode (see API documentation) useBuffer = 0 ; [bool] {0,1} (unused by now) Whether or not use a buffer for storing old data (see API documentation)
Class introduced in MRPT 1.3.1
#include <mrpt/hwdrivers/CIMUIntersense.h> class CIMUIntersense: public mrpt::hwdrivers::CGenericSensor { public: // construction CIMUIntersense(); // methods virtual void doProcess(); virtual void initialize(); };
Inherited Members
public: // methods CGenericSensor& operator = (const CGenericSensor&); virtual void doProcess() = 0;
Construction
CIMUIntersense()
Constructor.
Methods
virtual void doProcess()
This method will be invoked at a minimum rate of “process_rate” (Hz)
Parameters:
This |
method must throw an exception with a descriptive message if some critical error is found. |
virtual void initialize()
Turns on the iSense device and configure it for getting orientation data.