Package Summary
The ros_mscl package provides a driver for the LORD/Microstrain inertial products.
- Maintainer status: developed
- Maintainer: Rob Fisher <rob.fisher AT parker DOT com>, Melissa Gill <melissa.gill AT parker DOT com>
- Author: Brian Bingham, Parker Hannifin Corp
- License: MIT
- External website: https://github.com/LORD-MicroStrain/microstrain_inertial
- Source: git https://github.com/LORD-MicroStrain/microstrain_inertial.git (branch: ros)
Package Summary
The ros_mscl package provides a driver for the LORD/Microstrain inertial products.
- Maintainer status: developed
- Maintainer: Rob Fisher <rob.fisher AT parker DOT com>, Melissa Gill <melissa.gill AT parker DOT com>
- Author: Brian Bingham, Parker Hannifin Corp
- License: MIT
- External website: https://github.com/LORD-MicroStrain/microstrain_inertial
- Source: git https://github.com/LORD-MicroStrain/microstrain_inertial.git (branch: ros)
Contents
Overview
ROS driver for all of Microstrain's current G and C series products.
The interface makes use of MSCL (Microstrain Communication Library) from Microstrain to communicate with the device. Includes the following applications:
Supported Devices
Resources
Installation
Docker
The microstrain_inertial_driver is distributed as a docker image. More information on how to use the image can be found on DockerHub.
Buildfarm
This package is being built and distributed by the ROS build farm. If you do not need to modify the source, it is recommended to install directly from the buildfarm by running the following commands where ROS_DISTRO is the version of ROS you are using such as melodic or noetic:
Driver:
sudo apt-get update && sudo apt-get install ros-ROS_DISTRO-microstrain-inertial-driver
Source:
For more info on source code and how to build from source, visit the Source section of our README.md on our microstrain_inertial GitHub page.
For more information on the ROS distros and platforms we support, please see our index.ros.org page.
Usage
Configure Parameters
This node uses a params.yml file for ease of use. This file contains all available parameters for the node, so please refer to that file for more information on the available parameters and how to use them.
Override Parameters for ROS
1. Copy and paste the line(s) you desire to change from params.yml into a new .yml file. We will call it /home/user/my_params.yml for this example. This new .yml file will override the default params.yml and if there are multiple lines of the same parameter, the last instance of the parameter will take precedence.
2. Launch the driver and specify the new params file:
roslaunch microstrain_inertial_driver microstrain.launch params_file:=/home/user/my_params.yml
Override Parameters for ROS2
1. Copy the file empty.yml to a new .yml file. For this example we will call the new file /home/user/my_params.yml. This new .yml file will override the default params.yml and if there are multiple lines of the same parameter, the last instance of the parameter will take precedence.
2. Copy and paste the line(s) you desire to change from params.yml into /home/user/my_params.yml.
3. Launch the driver and specify the new params file:
ros2 launch microstrain_inertial_driver microstrain_launch.py params_file:=/home/user/my_params.yml
Messages Publishing
Standard ROS Messages
/imu/data sensor_msgs/Imu
nav/filtered_imu/data sensor_msgs/Imu
gnss1/fix sensor_msgs/NavSatFix
gnss2/fix sensor_msgs/NavSatFix
gnss1/time_ref sensor_msgs/TimeReference
gnss2/time_ref sensor_msgs/TimeReference
nav/odom nav_msgs/Odometry
nav/relative_pos/odom nav_msgs/Odometry
gnss1/odom nav_msgs/Odometry
gnss2/odom nav_msgs/Odometry
Custom Messages
MicroStrain Inertial provides additional functionality through many custom messages, built on our MIP protocol.
gps_corr microstrain_inertial_msgs/GPSCorrelationTimestampStamped
gnss1/aiding_status microstrain_inertial_msgs/GNSSAidingStatus
gnss2/aiding_status microstrain_inertial_msgs/GNSSAidingStatus
gnss1/fix_info microstrain_inertial_msgs/GNSSFixInfo
gnss2/fix_info microstrain_inertial_msgs/GNSSFixInfo
rtk/status microstrain_inertial_msgs/RTKStatus
nav/status microstrain_inertial_msgs/FilterStatus
nav/heading microstrain_inertial_msgs/FilterHeading
nav/heading_state microstrain_inertial_msgs/FilterHeadingState
nav/dual_antenna_status microstrain_inertial_msgs/GNSSDualAntennaStatus
Services
get_basic_status std_srvs/Trigger
get_diagnostic_report std_srvs/Trigger
device_report std_srvs/Trigger
set_tare_orientation microstrain_inertial_msgs/SetTareOrientation
set_complementary_filter microstrain_inertial_msgs/SetComplementaryFilter
get_complementary_filter microstrain_inertial_msgs/GetComplementaryFilter
set_sensor2vehicle_rotation microstrain_inertial_msgs/SetSensor2VehicleRotation
get_sensor2vehicle_rotation microstrain_inertial_msgs/GetSensor2VehicleRotation
set_sensor2vehicle_offset microstrain_inertial_msgs/SetSensor2VehicleOffset
get_sensor2vehicle_offset microstrain_inertial_msgs/GetSensor2VehicleOffset
get_sensor2vehicle_transformation microstrain_inertial_msgs/GetSensor2VehicleTransformation
set_accel_bias microstrain_inertial_msgs/SetAccelBias
get_accel_bias microstrain_inertial_msgs/GetAccelBias
set_gyro_bias microstrain_inertial_msgs/SetGyroBias
get_gyro_bias microstrain_inertial_msgs/GetGyroBias
gyro_bias_capture std_srvs/Trigger
set_hard_iron_values microstrain_inertial_msgs/SetHardIronValues
get_hard_iron_values microstrain_inertial_msgs/GetHardIronValues
set_soft_iron_matrix microstrain_inertial_msgs/SetSoftIronMatrix
get_soft_iron_matrix microstrain_inertial_msgs/GetSoftIronMatrix
set_coning_sculling_comp microstrain_inertial_msgs/SetConingScullingComp
get_coning_sculling_comp microstrain_inertial_msgs/GetConingScullingComp
reset_kf std_srvs/Empty
set_estimation_control_flags microstrain_inertial_msgs/SetEstimationControlFlags
get_estimation_control_flags microstrain_inertial_msgs/GetEstimationControlFlags
init_filter_heading microstrain_inertial_msgs/InitFilterHeading
set_heading_source microstrain_inertial_msgs/SetHeadingSource
get_heading_source microstrain_inertial_msgs/GetHeadingSource
commanded_vel_zupt std_srvs/Trigger
commanded_ang_rate_zupt std_srvs/Trigger
set_accel_noise microstrain_inertial_msgs/SetAccelNoise
get_accel_noise microstrain_inertial_msgs/GetAccelNoise
set_gyro_noise microstrain_inertial_msgs/SetGyroNoise
get_gyro_noise microstrain_inertial_msgs/GetGyroNoise
set_mag_noise microstrain_inertial_msgs/SetMagNoise
get_mag_noise microstrain_inertial_msgs/GetMagNoise
set_accel_bias_model microstrain_inertial_msgs/SetAccelBiasModel
get_accel_bias_model microstrain_inertial_msgs/GetAccelBiasModel
set_gyro_bias_model microstrain_inertial_msgs/SetGyroBiasModel
get_gyro_bias_model microstrain_inertial_msgs/GetGyroBiasModel
set_mag_adaptive_vals microstrain_inertial_msgs/SetMagAdaptiveVals
get_mag_adaptive_vals microstrain_inertial_msgs/GetMagAdaptiveVals
set_mag_dip_adaptive_vals microstrain_inertial_msgs/SetMagDipAdaptiveVals
get_mag_dip_adaptive_vals microstrain_inertial_msgs/GetMagDipAdaptiveVals
set_gravity_adaptive_vals microstrain_inertial_msgs/SetGravityAdaptiveVals
get_gravity_adaptive_vals microstrain_inertial_msgs/GetGravityAdaptiveVals
set_zero_angle_update_threshold microstrain_inertial_msgs/SetZeroAngleUpdateThreshold
get_zero_angle_update_threshold microstrain_inertial_msgs/GetZeroAngleUpdateThreshold
set_zero_velocity_update_threshold microstrain_inertial_msgs/SetZeroVelocityUpdateThreshold
get_zero_velocity_update_threshold microstrain_inertial_msgs/GetZeroVelocityUpdateThreshold
set_reference_position microstrain_inertial_msgs/SetReferencePosition
get_reference_position microstrain_inertial_msgs/GetReferencePosition
set_dynamics_mode microstrain_inertial_msgs/SetDynamicsMode
get_dynamics_mode microstrain_inertial_msgs/GetDynamicsMode
device_settings microstrain_inertial_msgs/DeviceSettings
external_heading microstrain_inertial_msgs/ExternalHeadingUpdate
set_relative_position_reference microstrain_inertial_msgs/SetRelativePositionReference
set_filter_speed_lever_arm microstrain_inertial_msgs/SetFilterSpeedLeverArm