视觉-惯导多传感器融合IMU 原始数据处理
Posted Techblog of HaoWANG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视觉-惯导多传感器融合IMU 原始数据处理相关的知识,希望对你有一定的参考价值。
目录
1. 数据采集
使用ROS工具‘rosbag’录制IMU数据至本地文件, ROS launch 文件:
<!--imu ros 驱动 & IMU topic 数据记录-->
<launch>
<arg name="record_zed" default="true" />
<arg name="record_imu" default="true" />
<!-- imu型号,默认 a9 -->
<arg name="imu_type" default="a9" doc="model type [a9, b9, b6 ,d6]"/>
<!-- imu 对应 python 文件 -->
<node pkg="handsfree_ros_imu" type="hfi_$(arg imu_type)_ros.py" name="imu" output="screen">
</node>
<!-- Launch rosbag to recore handsfree data -->
<node pkg="rosbag" type="record" name="rosbag_record_handsfree"
args="record -O /home/jetson/records/handsfree/ros_a9_imu_record /handsfree/imu"
if="$(arg record_imu)" />
<!-- Launch rosbag to recore ZED2 sensor data -->
<node pkg="rosbag" type="record" name="rosbag_record_zed2"
args="record -O /home/jetson/records/zed2/zed2_records /zed2/zed_node/imu/data"
if="$(arg record_zed)" />
</launch>
2. 数据回放
使用Plotjuggler回放.bag文件,绘制图像示例:
1. 三轴线加速度、
2.三轴角速度、
3.三轴角度:
3. 滤波去噪
将ros bag 文件格式转换成.csv格式或者excel格式,便于后续处理
rostopic echo -b ros_bag_records.bag - p/zed2/zed_node/imu/data > imu_data.csv
导出文件后使用MATLAB工具做快速的数据平滑处理与可视化:
clc;clear;
imu_raw = xlsread('imu_data20211117.xlsx');%读取excel数据,同目录下
linear_acc_x = imu_raw(:,1); %第1列为里程数据,单位m
linear_acc_y = imu_raw(:,2); %第1列为里程数据,单位m
linear_acc_z = imu_raw(:,3); %第1列为里程数据,单位m
% 中值滤波, 滑窗200
mdfilter_acc_x = medfilt1(linear_acc_x,200);
% 均值滤波,利用移动平均法做平滑处理
box_acc_x = smooth(linear_acc_x,200);
box_acc_y = smooth(linear_acc_y,200);
box_acc_z = smooth(linear_acc_z,200);
%利用lowess方法y做平滑处理
lowess_acc_x=smooth(linear_acc_x,100,'lowess');
figure;
hold on;
plot(box_acc_x,'-');
result = [box_acc_x, box_acc_y, box_acc_z];
xlswrite('acc_x_y_z.xlsx', result);
% plot(lowess_acc_x,'-');
% plot(mdfilter_acc_x,'-');
% plot(linear_acc_x,'-');
4. 绘制曲线
1. 原始带噪声数据:IMU样本数据点80,000个,采样率400Hz
2. 中值滤波去噪平滑:滑动窗口200
噪声去除明显,感兴趣的加速度波形已经初具规模,但是仍有一部分尖峰,且峰峰值较大
3. 均值滤波:滑窗200
数据有一定程度失真
4. 利用lowess方法y做平滑处理
加速度波形合理,失真较小
以上是关于视觉-惯导多传感器融合IMU 原始数据处理的主要内容,如果未能解决你的问题,请参考以下文章