通过IMU获得的是odom坐标系下的坐标,sensor_msgs/Imu
消息:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# 保存IMU的数据
# 加速度单位 m/s^2 (not in g's), 角速度单位 rad/sec
#
# If the covariance of the measurement is known, it should be filled in (if all you know is the
# variance of each measurement, e.g. from the datasheet, just put those along the diagonal)
# 如果协方差矩阵元素全是0,那么认为是未知协方差。
# If you have no estimate for one of the data elements (e.g. your IMU doesn't produce an orientation
# estimate), please set element 0 of the associated covariance matrix to -1
# If you are interpreting this message, please check for a value of -1 in the first element of each
# covariance matrix, and disregard the associated estimate.
Header header
geometry_msgs/Quaternion orientation # IMU的当前姿态,4元数的形式表示
float64[9] orientation_covariance # 姿态的协方差
geometry_msgs/Vector3 angular_velocity # IMU的3轴角速度
float64[9] angular_velocity_covariance
geometry_msgs/Vector3 linear_acceleration # IMU的3轴加速度
float64[9] linear_acceleration_covariance
滤波工具
ROS官方提供了滤波工具,可以直接安装:sudo apt-get install ros-kinetic-imu-tools
,包括两个package和一个rviz插件:
imu_filter_madgwick: 将IMU设备读取的角速度、加速度和磁力计融合成方位信息
imu_complementary_filter: 一种基于强制融合的新方法将IMU设备读取的角速度、加速度和磁力计融合成方位信息。
rviz_imu_plugin:显示sensor_msgs::Imu的rviz插件
两种滤波器都是订阅IMU节点发布的imu/data_raw
话题,经过滤波处理后,再发布imu/data
话题。但是我用两种滤波器处理IMU数据后,没有发现明显的改善,也许是设备的原因,本来数据浮动就不大
参考:imu_tools