Contents
Overview
This package implements MIP protocol used by Microstrain 3DM-GX3-45 sensor which is inertial device fusing IMU and GPS. It contains implementation of driver and ROS node. The driver has been written from scratch using Boost ASIO library.
Installation
Download and compile (rosbuild-based) package.
Supported Hardware
Driver has been tested only with Microstrain 3DM-GX3-45, under ROS Groovy.
API Stability
Driver, node and their API are in experimental phase.
ROS API
imu_driver
imu_driver is a driver for the device. On different topics it provides raw GPS data, AHRS data and fused data. Any topic is advertised only if it's enabled. If enabled and someone is subscribed, node publishes data on that particular topic.Published Topics
~imu/data (sensor_msgs/Imu)- Orientation, angular velocity, linear acceleration and corresponding covariances.
- Orientation from IMU in form of PoseStamped which can be for instance easily visualized in RVIZ.
- Raw GPS data.
- Raw GPS data in form of Odometry (can be used as input for robot_pose_ekf).
- Orientation from fused data.
Services
~reset_kf (std_srvs/Empty)- Reset of Kalman filter used in device for sensor fusion.
Parameters
~port (string, default: /dev/ttyACM0)- The port the imu is running on.
- Baud rate of the sensor.
- Magnetic declination for given area.
- Odometry data will be published with this child_frame_id.
- Sets if ~imu/pose should be advertised or not.
- Sets if ~imu/data should be advertised or not.
- Sets if ~gps/fix should be advertised or not.
- Sets if ~gps/odom should be advertised or not.
- Sets if ~nav/odom should be advertised or not.
- Sets if ~nav/pose should be advertised or not.
- Sets if ~nav/fix should be advertised or not.
- Standard deviation of linear acceleration. This value is used to calculate covariance matrix.
- Standard deviation of orientation. This value is used to calculate covariance matrix.
- Standard deviation of angular velocity. This value is used to calculate covariance matrix.