前言
该系列文章使用matlab对kitti数据集raw_data做一些数据处理,该节是kitti组合导航数据提取
一、kitti数据解释
二、matlab程序提取组合导航数据
clear
clc
%2023/02/23
%KITTI数据提取raw_data
%下载官网https://www.cvlibs.net/datasets/kitti/raw_data.php
%% 文件介绍
%——————calib为标定文件————————
%S_xx:1x2 矫正前的图像xx的大小
%K_xx:3x3 矫正前摄像机xx的校准矩阵
%D_xx:1x5 矫正前摄像头xx的失真向量
%R_xx:3x3 (外部)的旋转矩阵(从相机0到相机xx)
%T_xx:3x1 (外部)的平移矢量(从相机0到相机xx)
%S_rect_xx:1x2 矫正后的图像xx的大小
%R_rect_xx:3x3 纠正旋转矩阵(使图像平面共面)
%P_rect_xx:3x4 矫正后的投影矩阵(内参矩阵,前面第一行为前面四个数据,依次三行)
%——————————————————————
%extract的数据集为raw_data ,IMU频率为100HZ,但是没有进行相机去畸变
%sync数据集为去除相机畸变的数据集,但是IMU发布频率只有10Hz
%% oxts数据
%——————oxts数据格式————————
%1~3 纬经高(deg deg m)
%4~6 横滚俯仰航向角(rad)水平为0,右滚为正 水平为0,低头为正 东向为0,逆时针为正
%7~11 北东前左上速度(m/s)前左平行地面,上垂直地表
%12~17 x y z轴 前左上加速度(m/s^2)
%18~23 x y z轴 前左上角速率(rad/s)
%24~25 东北向位置速度精度(m,m/s)
%26~30 导航状态 主GPS接收机跟踪的卫星数 主GPS接收机的位置、速度、方向模式
%_______________________________________
%% 数据读取
str = '...\kitti\data\data_0001\2011_09_26_drive_0001_sync\2011_09_26\2011_09_26_drive_0001_sync\oxts\data\*.txt';
f=dir(str);
n_all=length(f);
for k=1:n_all
strnames{k,1} = ['...\kitti\data\data_0001\2011_09_26_drive_0001_sync\2011_09_26\2011_09_26_drive_0001_sync\oxts\data\',f(k).name];
end
data_all = [];
for k=1:n_all
dd = load(strnames{k});
data_all = [data_all; dd];
end
%对应的time文件
file_ref =fopen('...\kitti\data\data_0001\2011_09_26_drive_0001_sync\2011_09_26\2011_09_26_drive_0001_sync\oxts\timestamps.txt','r');
times=zeros(6000,1);kk_times=1;%定义矩阵存储IMU数据
for k=1:6000
tline=fgetl(file_ref);
if k>0 %数据前方存在无关数据,从某行开始读数
if ~ischar(tline), break, end %读到文本结束自动退出
idx=strfind(tline,':');
times(kk_times,1)=str2double(tline(idx(2)+1:end));
kk_times=kk_times+1;
end
end
fclose(file_ref);
times(kk_times:end,:) = []; %去除没有值的行
times=times-times(1);
% save('data_0001_10Hz','data_all','times')%存储提取出的原始数据
%%
% load data_0001