【基于Matlab mobile的GPS数据采集与可视化】保姆级教程 | Matlab mobile准备 | GPS数据集制作 | GPS数据可视化 | 全过程图文by.Akaxi

目录

一、【Matlab Mobile准备】

二、【GPS数据制作】

三、【GPS数据可视化】

四、【可视化测试】

更多细节


 最终效果:

------------------------全文4163字34图一步一步完成大约耗时1.5h------------------------

所需软件以及环境: 

Matlab Mobile手机版(用于采集GPS数据)

Matlab R2022a电脑版(用于可视化GPS数据)

 代码文档已开源在我的Gitee仓库:智能车辆定位与导航技术: 《智能车辆定位与导航技术》课程学习仓库 (gitee.com)

一、【Matlab Mobile准备】

首先在手机端下载Matlab Mobile软件,这里可能需要使用谷歌商店,链接:

https://play.google.com/store/apps/details?id=com.mathworks.matlabmobile

需要【科学上网】之后使用Matlab Mobile软件也需要哦~

下载完成后,可以在手机桌面看到:

点击Matlab Mobile,打开应用

选择登录

初次使用需要注册,输入电子邮箱,QQ邮箱即可,然后选择所在地,输入姓名等信息,确定注册。

然后会有一封验证电子邮件发在你的邮箱,去邮箱点击验证,随后回到Matlab Mobile(这里需要Matlab许可证,申请30天使用即可)~

回到Matlab Mobile主页,可以点击右上角的“+”号,新建一个文件夹,后面可以写m程序在里面。

点击左边这个选择栏

打开传感器,下滑到最后,看到位置选项,这就是我们需要的GPS功能啦,将其打开,并且给Matlab Mobile软件权限允许获取信息哈,还要记得打开手机的GPS喔。

将“位置”选项打开

这样我们就可以使用手机的GPS获取数据咯~~~

然后点击“流式传输至”,选择我们的传感器数据记录位置,我们选择“本地记录”

这里选择记录到本地

然后点击更多

把在后台获取数据选上~然后我们的Matlab Mobile准备工作就做好了,接下来需要拿着手机,世界这么大,我想去逛逛,一边行走一边收集GPS数据。

二、【GPS数据制作】

GPS数据收集启动!

这里我是骑小电驴绕仙桃两圈(内圈和外圈),一圈结束记得停止GPS收集喔~

将数据保存到MATLAB Drive/MobileSensorData文件夹下

可以看到我的两个mat日志文件,里面就是GPS数据:

点开Positon可以看到数据:

包括:时间、维度、经度、海拔、速度、航向、位置精度

---------------------------------------------------------------------------------------

至此,使用Matlab Mobile制作数据集成功,撒花~

补充:可以使用脚本采集数据,比较麻烦,不推荐,下面是GPS数据采集脚本:

clc,clear,close all;

m = mobiledev;
m.Logging = 1;
m.PositionSensorEnabled = 1;

% 实现长时间暂停的代码片段
total_pause_time = 600; % 目标暂停时间(秒)
step_pause_time = 1; % 每次暂停的时间
num_steps = total_pause_time / step_pause_time; % 循环次数

for i = 1:num_steps
    pause(step_pause_time); % 暂停指定时间
end

m.Logging = 0;

[lat, lon, speed, course, alt, horizacc] = poslog(m)

[log, timestamp] = accellog(m)

将此脚本写在Matlab Mobile中,运行即可自动开启GPS数据采集,结束保存mat日志

三、【GPS数据可视化】

接下来通过笔记本处理我们的GPS数据集,在网站Matlab Drive可以找到我们手机移动端制作的GPS数据:

Sign in to MATLAB Drive – MATLAB & Simulink – MathWorks

点击下载GPS数据集

保存到笔记本的文件夹下,我是在Akaxi_GPS文件夹里面

然后,在笔记本启动Matlab R2022a!(推荐)

或者使用Matlab online网页版本(和手机端是连接的,不推荐)MATLAB Login | MATLAB & Simulink

(Matlab online)

打开Matlab R2022a

可以看到我们内圈的GPS数据啦

接着我们编写matlab代码,实现GPS数据可视化啦!

下面是可视化代码:

clc;clear % 清空变量

load Wai_XianTao_GPS.mat  % 加载仙桃道路内外圈GPS数据

lat = cell2mat(table2cell(Position(:,'latitude')));   % 精度数据
lon = cell2mat(table2cell(Position(:,'longitude')));  % 维度数据
speed = cell2mat(table2cell(Position(:,'speed')));    % 速度数据

% 对速度值分bin以便使用离散数量的颜色来表示观测到的速度
nBins = 10;
binSpacing = (max(speed) - min(speed))/nBins; 
binRanges = min(speed):binSpacing:max(speed)-binSpacing; 
binRanges(end+1) = inf;
 
% 速度
[~, speedBins] = histc(speed, binRanges);

% 经纬度、速度转置
lat = lat';
lon = lon';
speedBins = speedBins';
 
% 创建地理形状向量,该向量将线段存储为要素
s = geoshape();
% 为每个速度 bin 创建一个不连续线段。将为每个线段分配一种颜色
% 处理每一个小段的速度函数
for k = 1:nBins
 
    latValid = nan(1, length(lat));
    latValid(speedBins==k) = lat(speedBins==k);
    
    lonValid = nan(1, length(lon));
    lonValid(speedBins==k) = lon(speedBins==k);    
    transitions = [diff(speedBins) 0];
    insertionInd = find(speedBins==k & transitions~=0) + 1;
    latSeg = zeros(1, length(latValid) + length(insertionInd));
    latSeg(insertionInd + (0:length(insertionInd)-1)) = lat(insertionInd);
    latSeg(~latSeg) = latValid;
    
    lonSeg = zeros(1, length(lonValid) + length(insertionInd));
    lonSeg(insertionInd + (0:length(insertionInd)-1)) = lon(insertionInd);
    lonSeg(~lonSeg) = lonValid;
 
    % 将纬度/纬度线段添加到地理形状矢量中
    s(k) = geoshape(latSeg, lonSeg);
    
end
% 使用 webmap 在浏览器中打开一个 Web 地图
wm = webmap('World Imagery'); % 世界地图
% 标记 位置
mwLat = 29.7430;  % 内外圈GPS维度
mwLon = 106.5516; % 内外圈GPS经度
name = 'Nei_my_GPS'; % 取名叫仙桃内圈GPS文件
iconDir = fullfile(matlabroot,'toolbox','matlab','icons');
iconFilename = fullfile(iconDir, 'matlabicon.gif'); % 水印图标
wmmarker(mwLat, mwLon, 'FeatureName', name, 'Icon', iconFilename);
% 使用 autumn 颜色图生成与速度 bin 对应的颜色列表。这将为每个 bin 创建一个具有 RGB 值的 [nBins x 3] 矩阵
colors = autumn(nBins);
wmline(s, 'Color', colors, 'Width', 5);
% 放大地图并聚焦于路线
wmzoom(17);

如果换成不同的GPS数据集,这里需要改的地方,有三处:

1.你的GPS数据集mat文件名称

load Wai_XianTao_GPS.mat  % 加载仙桃道路内外圈GPS数据

2.你的GPS数据集维度起点

mwLat = 29.7430;  % 内外圈GPS维度

3.你的GPS数据集经度起点

mwLon = 106.5516; % 内外圈GPS经度

四、【可视化测试】

首先我们选用内圈的GPS数据,运行程序:

可以看到内圈的GPS可视化轨迹和骑小电驴的轨迹基本一致,成功!且颜色越深代表速度越慢。

然后更改三处位置,可视化外圈看看:

可以看到外圈GPS可视化轨迹效果较好~

使用Matlab Mobile制作并可视化GPS轨迹完结撒花~~~~~

更多细节

关于GPS数据集

这里获取GPS数据集有三种方式,一种是通过手机的GPS获取数据,利用Matlab Mobile软件获取GPS数据;一种是通过nmeagen网站制作NMEA标准GPS文件;一种是直接利用开源的GPS数据集。

就获取难度来说:Matlab Mobile >nmeagen> 开源数据集

这里我们首先使用Matlab Mobile软件制作GPS数据集,再用nmeagen网站制作NMEA标准GPS文件,最后再直接利用开源GPS数据集。

【NMEA标准GPS数据生成器】NMEA Generator

----------------------------------------------------------------------------------------------------

相信读到这里的朋友,一定是坚持且优秀的

给博主一个免费的赞👍吧

扫描二维码进博主交流群,问题交流 | 吹吹水 | 一起变得更加优秀

2024.5.6

渝北仙桃数据谷

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Akaxi-1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值