1 完美的导航实验平台——智能手机
平时要做一次导航实验实在是太难,即使实验室有设备,也有繁杂的准备工作。最近几次试验都是前一天晚上计划,第二天上午准备,中午装车,下午开始试验,收工后晚上检查数据,发现问题,第二天早上我开始调试程序,其他人进行准备,接着试验。
在高校一般也只有高年级的研究生才能完成试验,导航方向的本科生估计很少有机会接触到导航试验。
但是对于简单的导航试验,智能手机就是一个很不错的试验平台,不光有陀螺仪、加速度计这两个基本的传感器,还有磁强计、气压计、GNSS。有了这些,自己采集一点数据,导出到matlab里边就可以尝试各种导航算法。手机还自带电源、文件管理系统,还有网络通讯功能,有的手机还支持GNSS原始测量数据输出,虽然比不了实验室的高精度接收机,但是也能玩出不少花样。
下图是Google提供的GNSS Analysis工具,光着界面就挺吸引人的。
希望后边有时间,可以做个针对惯性导航的简单工具。
2 手机数据采集App
之前写了一个简单的实时AHRS系统,后来又做了一个集成多传感器数据采集与INS/GNSS组合导航解算的App,功能目前都实现了,但是界面有点丑,这几天在修改UI。
在这个App的基础上又简化出了一个单纯数据采集的App,数据会存成二进制,导入matlab后按二进制读取就可以得到数据,完成导航解算与数据分析。 这是App下载地址:
二进制导入的Matlab代码(需要psins工具箱):
% 从bin文件中导出数据
fp = fopen('PSINS_20211024_161058.bin','rb');
data = fread(fp,'double','ieee-be');
fclose(fp);
len = fix(length(data)/29);
data = reshape(data(1:len*29), 29, len)';
% data2trj
glvs;
ts = 0.01;
imu = [data(:,1:3).*glv.dps.*ts data(:,4:6).*ts data(:,end)];
mag = [data(:,7:9) data(:,end)];
bar = data(:,[10 end]);
gps = data(:,[16:18 12:15 11]);
nmea = [data(:,27:28) data(:,20:21) data(:,25)+data(:,26) data(:,[24 19 29])];
nmea(:,3:4) = floor(nmea(:,3:4)/100)+mod(nmea(:,3:4),100)*60;
trj.ts = ts;
trj.imu = imu;
trj.mag = mag;
trj.bar = bar;
trj.gps = gps;
trj.nmea = nmea;
t1 = 9.4e4;
trj.imu = trj.imu(1:t1,:);
trj.mag = trj.mag(1:t1,:);
trj.bar = trj.bar(1:t1,:);
trj.gps = trj.gps(1:t1,:);
trj.nmea = trj.nmea(1:t1,:);
save trj_mi10_vehicle.mat trj;
imuplot(imu);
有任何问题都可以给我反馈。
3 车载导航试验
10月24日西安难得有个好天气,抓住机会做一次跑车试验,采集一点数据,后边不知道还有没有好天气,赶上今年气候异常,有几个试验估计得拖到十一月了。 先欣赏一下长安校区的美景:
跑车的时候,手机就直接用双面胶固定在试验台上,尽量靠外,怕影响GNSS信号。