-
Notifications
You must be signed in to change notification settings - Fork 76
Transforms
In order to integrate more easily with other ROS tools, the microstrain_inertial_driver
supports publishing several different transforms.
When publishing transforms, we will use a configurable set of frame ids. The table below lists the frame IDs, their defaults, and what they should represent. Each of these names can be found in the params.yml and can be modified by the user.
Frame ID | Default | Description |
---|---|---|
frame_id |
imu_link |
Represents the location of the sensor itself. All sensor and filter measurements will be published in this frame ID |
mount_frame_id |
base_link |
Represents the frame that the sensor is mounted on. We will never publish messages in this frame. It's main purpose it in conjunction with mount_to_frame_id_transform
|
map_frame_id |
map |
For more information, see the map section of REP 105 |
earth_frame_id |
earth |
For more information, see the earth section of REP 105 |
gnss1_frame_id |
gnss_1_antenna_link |
Represents the location of antenna 1. All GNSS measurements from antenna 1 will be reported in this frame ID |
gnss2_frame_id |
gnss_2_antenna_link |
Represents the location of antenna 2. All GNSS measurements from antenna 2 will be reported in this frame ID |
odometer_frame_id |
odometer_link |
Represents the location of the odometer attached to the device (GQ7 only right now). All measurements from the odometer will be reported in this frame ID |
target_frame_id |
base_link |
Should be set to whatever Frame ID you want to publish a transform to. For more information see Global and Relative |
The transforms we publish or do not publish is controlled by the tf_mode
parameter. Below are the different options.
The driver will operate in this mode when tf_mode: 0
.
In this mode, the driver will not publish any dynamic transforms. What this means is that transforms containing global or relative position information will not be published. However, see Independently Controlled Transforms for a list of transforms that may still be published in this mode.
The driver will operate in this mode when tf_mode: 1
In this mode, the driver will publish the following transforms:
-
earth_frame_id -> target_frame_id
-
Description:
- This transform will be the transform of
target_frame_id
with respect to the ECEF frame. - The rate at which this transform is published is controlled by the
filter_odometry_earth_data_rate
configuration option
- This transform will be the transform of
-
Description:
This mode has been added for those who want to operate in an entirely global context. Most standard ROS tools do not play nicely with this, and it is recommended to instead use relative mode if you wish to use tools such as rviz, nav2, move_base, etc.
The driver will operate in this mode when tf_mode: 2
In this mode, the driver will publish the following transforms:
-
earth_frame_id -> map_frame_id
-
Description:
- This transform will be the location of the local tangent plane in ECEF.
- This transform requires that the user has also configured relative position. See Relative Position Configuration for more information on how to do that.
-
Description:
-
map_frame_id -> target_frame_id
-
Description:
- This transform will be the location of
target_frame_id
with respect to the local tangent plane. - The rate at which this transform is published is controlled by the
filter_odometry_map_data_rate
configuration option
- This transform will be the location of
-
Description:
This mode has been added to allow for easy integration with tools such as rviz, nav2, move_base etc.
The following frames may be published regardless of tf_mode
.
See the list below for more information on the parameters to use to configure them and what they represent.
-
frame_id -> gnss1_frame_id
-
Configured With Parameter:
gnss1_antenna_offset
-
Description:
- This transform will be published if the device has at least 1 GNSS antenna, and will be the transform from the device to GNSS antenna 1.
- If the device supports streaming Multi Antenna Offset Correction, setting
mip_filter_multi_antenna_offset_correction_data_rate
to a non-zero value will cause this transform to be updated at that rate with corrections from the device
-
Configured With Parameter:
-
frame_id -> gnss2_frame_id
-
Configured With Parameter:
gnss2_antenna_offset
-
Description:
- This transform will be published if the device has at least 2 GNSS antennas, and will be the transform from the device to GNSS antenna 2.
- If the device supports streaming Multi Antenna Offset Correction, setting
mip_filter_multi_antenna_offset_correction_data_rate
to a non-zero value will cause this transform to be updated at that rate with corrections from the device
-
Configured With Parameter:
-
frame_id -> odometer_frame_id
-
Configured With Parameter:
filter_speed_lever_arm_offset
-
Description:
- This transform will be published if the device supports an external odometer, and will be the transform from the device to the odometer
-
Configured With Parameter:
-
mount_frame_id -> frame_id
-
Configured With Parameter:
mount_to_frame_id_transform
-
Description:
- This transform will be published if
publish_mount_to_frame_id_transform
is true and represents the transform between the sensor and wherever it is mounted. - In many cases this should be disabled as this transform will be published by something else, but it has been added as a convenience feature when first integrating.
- This transform will be published if
-
Configured With Parameter: