GPS、RTK、PPK三种定位技术的原理及应用

2023-05-16

一、GPS技术

1.原理
之前做过集成GPS功能的产品,对这种不以定位为主要功能的产品,精度是没有要求的,例如我只是用它来得到当前社区的位置,一般的GPS模块都能满足要求。理论上,超过四颗卫星就能实现定位。
在这里插入图片描述
我们的GPS产品,只要集成卫星接受芯片,就可以获取定位信息了

2.弊端
卫星定位存在以下误差:

  • 轨道误差,就是卫星告诉你的位置和其真实的位置有偏差。
  • 时钟误差,就是卫星告诉你的时间和标准时间有偏差。
  • 电离层延迟,就是卫星信号在从太空穿越大气层,经过电离层时其速度会变慢,而我们却不知道它慢了多少时间。
  • 对流层延迟,与电离层延迟相似。
  • 多径,就是卫星信号碰到一些反射物体,发射的信号会对实际信号有影响,让用户误判到底哪个才是真正想要的信号。
  • 接收机噪声,就是接收机自己在测量距离时也会带入自己的误判。

正是由于这一系列误差,GPS的定位精度只能达到米级

二、RTK技术

1.原理
RTK即差分定位(把误差分离出去),在GPS的基础上,架设一个地面基站,地面基站获取卫星定位与真实位置(由于基站固定,所以位置是绝对的)对比,计算出GPS的定位误差,并通过GPRS把当前误差发送给移动站,移动站会利用这个误差纠正从卫星获得的定位。
在这里插入图片描述
言简意赅,我们需要两个东西:GPRS和基站。GPRS需要一张SIM卡,通过三大运营商和基站连接;基站可以自己架设,有一点麻烦,但可控,也可以租赁,著名RTK基站服务商有千寻位置【https://passport.qxwz.com/login】等,目前很多RTK模块都支持以千寻为基站,且模块本身都是移动站基站两用的,流动站与基准站的距离不能超过10km-15km

2.产品选型介绍
目前市场上的RTK基本有三种类型的:

  • RTK模块 :集成了定位、GPRS、Radio功能,留有配置接口,利于二次开发(推荐
    中海达的一款RTK产品

  • RTK板卡 :一般只有定位功能,4g和电台等需要自己集成
    在这里插入图片描述

  • 手持RTK:方便测绘,不利于二次开发,淘宝一搜RTK全是那玩意
    在这里插入图片描述

3.硬件接口及解释

以中海达RTK模块为例,其他厂家大同小异,硬件上具有四个天线接口,分别为GNSS1、GNSS2、GPRS、Radio,还有两个COM口

(1)单频信号与双频信号(GNSS1、GNSS2)
GPS卫星信号分为L1和L2,频率分别为1575.42MHZ和1228MHZ。接受信号是单频还是双频却决于RTK模块,双频机通过接受两组不同频率的卫星信号,可以有效消除电离层的误差。双频机对比与单频机可以提供更为快速、更为精确、可靠的解算,但是价格相对昂贵。
在这里插入图片描述
(2)天线(GPS、GPRS)

  • 像天线这种东西,分类有很多种方法,但是任何东西,对于使用者最好是以功能分类。不同的天线的工作频率不一样,所以功能也不一样。像Wifi的工作频率分别在2.4G和5G,GPS天线的工作频率是在1.2-1.6G左右,4G天线的工作频段在1.7-2.7G之间,GPS天线有可能在4G的低频段可以工作,但是高频段的指标会很差。一般情况下是没办法共用的。所以不要看到天线就拿来用。
  • 主流定位天线:平面贴片天线、平面螺旋天线、四臂螺旋天线、蘑菇头天线
  • 定向天线:定向天线有区别于定位天线,有时需要同时使用,但对于移动物体,也可以软件处理两点的经纬度得到方向角

(3)电台
电台这功能没用过,等用了再来解释

(4)模式
目前的RTK模块大都支持多模卫星信号,即可同时从GPS、北斗、伽利略收星

(5)串口(COM1、COM2)
一般用于配置设备和数据读取

4.数据获取及二次开发

(1)串口输出报文
我们通常通过ttl或485串口连接GPS模块读取GPS报文,做相应的本地开发,大多数参数可以从【GPS报文】中读取,从而判断定位状态,格式如下:

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
  • 1

<1> UTC时间,hhmmss.sss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,4=固定解算,5=浮动解算,6=正在估算 ;当GPS状态达到4时,为最佳状态,5为次佳
<7> 正在使用解算位置的卫星数量(00~N)(前面的0也将被传输)
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)在这里插入图片描述
(2)4G输出
有的RTK设备支持数据报文回传至服务器,我们远程获得定位数据可以做相应的平台软件开发

(3)端点续传
4G信号是有可能比较差,数据无法回传,如果对实时性要求比较高,需要增加断点续传功能,即存储定位信息,等信号恢复后重新发送

5.主要厂家
RTK产品做的比较成熟的厂家,国外主要是天宝,国内主要是中海达、司南、华测和芯星通

6.注意事项
RTK模块定位质量受诸多因素影响,若未达到最佳解算状态或精度不理想,可以尝试以下手段:

  • 检查4G天线和GPS天线是否匹配、是否松动
  • 检查SIM卡是否欠费或松动
  • 查看报文中的收星数,在空旷位置测试获得更多收星,室内GPS是无法定位的,手机之所以可以在室内定位是因为结合了Wifi定位等技术
  • 查看基站服务是否过期

二、PPK技术

1.原理
PPK即动态后处理技术,是对RTK技术的补充
利用进行同步观测的一台基准站接收机和至少一台流动接收机对卫星的载波相位观测量;事后在计算机中利用GPS处理软件进行线性组合,形成虚拟的载波相位观测量值,确定接收机之间厘米级的相对位置;然后进行坐标转换得到流动站在地方坐标系中的坐标。
一般用在无人机上,用于调整飞行姿态的。

2.应用
目前还没用到,据说天宝的rtk加上ppk可以达到mm级

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPS、RTK、PPK三种定位技术的原理及应用 的相关文章

  • GPS定位无服务

    我是一名新开发人员 有一个简单的问题 我已经四处搜索 但尚未找到明确的答案 简而言之 我正在开发一个需要能够使用 GPS 的应用程序 然而 诀窍是我想使用 GPS 来获取手机的位置 即使它们没有运营商服务 话虽如此 我有两个问题 是否可以通
  • 在带有校准点的地图上将经度和纬度转换为 X Y

    如果我有一张尺寸为 sizeX sizeY 的 jpeg 地图 以及地图上的一些校准点 X Y 经度 纬度 使用给定的经度 纬度对计算地图中相应 XY 点的算法是什么 这对我有用 没有那么多废话 int x int MAP WIDTH 36
  • 根据 GPS 坐标计算平均速度的最佳实践

    我这里有一个可以给我 GPS 坐标的设备 我可以定义的时间间隔 我想用它来计算驾驶或驾车旅行时的平均速度 实际上 我使用了正交公式来计算两点之间的距离 然后将其除以给定的时间间隔 通过我遵循的实施这个词 http de wikipedia
  • 从 GPS 点绘制线

    我有大约 100 个 GPS 坐标列表 我想画出每个列表所构成的线 使用散点图绘制的列表之一 看起来有点像这样 显然那里有一条线 我尝试了几种方法来对 GPS 位置进行排序并绘制它们 lats lngs with open filename
  • C# - LINQ - GPS 纬度和经度的最短距离

    我有数据库 其中有带有 GPS 坐标的一流酒店 我想获得距离我选择的坐标最近的地方 我认为它应该看起来像这样 我在这里找到了很多示例代码 就像这样 var coord new GeoCoordinate latitude longitude
  • 如何将timestamp_t转换为实际时间?

    我见过很多使用 time t 的例子 但 timestamp t 让我感到困惑 我正在做一个作业 我们需要打印出 GPS 数据 并且 GPS 设备返回一个类型 timestamp t 来表示它的时间戳和纪元时间 我尝试过使用 gmtime
  • 如何从 Android 手机获取 GPS 数据?

    有没有办法将 Android 手机的 GPS 数据连接 USB 有线 到 PC 我目前正在使用基于 gpsd 项目的 GPSTether 应用程序 我正在寻找比该应用程序提供更多控制且错误更少的替代方案 另外 是否有另一种方法可以在不使用任
  • 如何知道jar文件是否已经在运行?

    经过谷歌研究后 我找到了很好的答案 例如 1 using jps or jps l让 jars 在 JVM 下运行 这个答案可以 但是如果用户根本没有安装java并且我使用例如 bat文件和带有java JRE的文件夹运行我的jar 另外
  • 谷歌地图定位是如何工作的?

    我的问题是谷歌地图或移动 GPS 如何找到我的当前位置 读完本文后我的高层次理解article http www physics org article questions asp id 55就是 GPS接收器通过这些卫星获取位置坐标 该位
  • Fused Location Provider 是不错的选择吗?

    我正在开发一个应用程序 我想在其中使用融合位置提供程序 但我有一些疑问 还有几个问题 当 GPS 关闭并且我将优先级设置为 HIGH 时 是否意味着 GPS 会自动打开 我可以根据需要将 UpdateLocation 设置为具有高优先级的
  • Ruby on Rails:如何使用 TCP 套接字连接 GPS 设备

    ruby 2 3 0p0 2015 12 25 修订版 53290 x86 64 linux 轨道 4 2 4 我正在使用 cloud9 IDE 和 webrick 服务器 我的项目是实时跟踪GPS 我想使用TCP连接与GPS跟踪设备进行通
  • python:查找围绕某个 GPS 位置的圆的 GPS 坐标的优雅方法

    我有一组以十进制表示的 GPS 坐标 并且我正在寻找一种方法来查找每个位置周围半径可变的圆中的坐标 这是一个例子 http green and energy com downloads test circle html我需要什么 这是一个圆
  • 在android API 23中获取用户的位置

    我可以编写获取用户位置的代码 并且在 API 更多细节 我手动启用设备的 GPS 第一次运行应用程序请求权限并且没有日志返回 在下次运行应用程序时 返回我准备好的 Toast 检查您的提供商 这是我写的代码 public class Mai
  • 如何在Android中获取当前位置[重复]

    这个问题在这里已经有答案了 我在使用 Android 定位系统的网络提供程序获取当前位置坐标时遇到麻烦 已经阅读了大量教程并在我的项目中实现了 4 或 5 个现有类 所有这些类都给了我最后的坐标 但不是当前的坐标 我很确定这个问题是我所缺少
  • 如何在从另一个活动调用一个活动时延迟一些?

    我有一个应用程序 其中我正在接收包含他的位置的短信 收到短信后 它会调用另一个活动来启动并将该位置传递给该活动以将其绘制在地图上 在调用第二个活动之前 它会显示一个类似于通知的吐司在屏幕上 但由于调用第二个活动 吐司没有出现 我的问题是我们
  • 我可以使用手机信号塔的信息在没有 GPS 服务的 j2me 中获取移动设备的位置吗

    我可以通过 j2me 编程获取未安装 GPS 装置的移动设备的位置吗 我可以使用手机信号塔信息获取位置吗 我听说过三角测量 https stackoverflow com a 9820133 839601 method 并且经历了http
  • 当前位置 GoogleMap 失败

    我想检查 GPS 是否打开 是否应该显示当前位置 如果没有 它应该要求将其打开 如果用户点击取消或不转动坐标将被设置为基本坐标 不幸的是总是选择基本款 即使 GPS 已关闭 我没有收到打开 GPS 的消息 Override public v
  • Android 7.0+ 屏幕关闭时前台服务无法接收位置更新

    我正在尝试创建一个 Android 应用程序 在设备屏幕关闭时连续实时记录设备位置数据 我的代码可以在 Android 6 0 及更早版本中正常运行 但 Android 7 0 似乎会破坏我的应用程序 我已经实现了一个 Android 前台
  • GPSTracker 类不工作

    我尝试在我的应用程序中使用我在网上找到的 GPSTracker 类 并且我之前让它工作过 但现在似乎莫名其妙地不起作用 public class GPSTracker extends Service implements LocationL
  • 查找附近应用程序的用户(iPhone 和 Android)

    我正在开发一个有 iPhone 版本和 Android 版本的应用程序 我的目标是 显示我的应用程序的附近用户列表 iPhone 应用程序用户和 Android 应用程序用户 假设列出当前在 1 英里或 2 英里半径内并且当前正在使用我的应

随机推荐

  • 至今互联网上收集最全的精品教育资源【转载+补充】

    海慧为您奉上 xff01 xff01 xff01 操作指引 xff1a 第一步 xff1a 注册一个360云盘账号 xff0c 注册地址 xff1a yunpan 360 cn xff0c 拥有自己的账号和密码 第二步 xff1a 下载36
  • Linux Android 真机调试配置

    1 USB 链接手机 xff0c 打开USB调试 2 在终端中输入lsusb命令 xff0c 查看USB设备信息 xff0c 找到手机对应的USB信息 eg Bus 002 Device 003 ID 12d1 1035 Huawei Te
  • 【ROS2】类ROS1的rate定时器写法(c++&python例子)

    在ROS2官方教程里 xff0c 代码和ROS1例程有很大不同 xff0c 大部分节点都使用了类的写法 xff0c 并且用到了很多C 43 43 的新功能 其中 xff0c 发布消息是采用了一个定时器timer xff0c 并且注册一个回调
  • C++中STL常用容器的优点和缺点

    我们常用到的STL 容器 有vector list deque map multimap set和multiset xff0c 它们究竟有何区别 xff0c 各自的优缺点是什么 xff0c 为了更好的扬长避短 xff0c 提高程序性能 xf
  • APM飞控学习之路:5 串口概述与收发调试

    云中谁寄锦书来 xff0c 雁字回时 xff0c 月满西楼 当无人机在空中飞翔时 xff0c 从APM飞控到飞手之间有几条看不见的 风筝线 xff08 1 xff09 2 4GHz的遥控 xff1b xff08 2 xff09 433 91
  • 【Android车载系列】第3章 车载通讯CAN协议

    1 CAN总线的基本概念以及由来 1 1 简介 CAN 总线即控制器局域网总线 CAN xff0c Controller Area Network 是一种用于实时应用的串行通讯协议总线 xff0c 被公认为最有发展前景的现场总线之一 由 B
  • 经典面试题---linux启动流程

    linux启动流程 xff1a power on gt BIOS加电自检 xff0c 根据引导顺序启动 gt MBR gt grub stage2 gt boot grub grub conf gt 加载内核和ramfs文件系统 gt in
  • APM添加超声模块及定高程序分析

    给飞控添加新的模块 xff0c 通常的做法是写驱动文件 xff0c 然后用uORB订阅消息 xff0c 这种方法已经有文章介绍了 xff0c 下面介绍另一种更加简洁的方法 硬件连接 UARTD xff08 ttyS2 xff09 超声 Bo
  • 光流定点若干问题分析

    一 光流摄像头移动速度快慢对结果的影响 实际测试发现 xff0c 在一定高度水平慢速移动光流摄像头20个单位长度 xff0c 光流累加值为6 9 Pixel xff0c 水平快速移动光流摄像头20个单位长度 xff0c 光流累加值为50 6
  • 光流定点程序梳理

    本文主要分析飞控获取到光流数据之后 xff0c 如何实现定点 xff0c 至于光流算法 xff0c 不在本文讨论范围内 官网介绍的PX4 Flow采用STM32F4作为主控 xff0c 定点效果不错 xff0c 但价格稍贵 xff0c 而且
  • 关于SM2加密验签的操作

    对接银行的统一收单系统 xff0c 用到SM2加密验签流程 xff1a 1 xff1a 统一收单系统对接平台商户需要向CFCA申请复合证书 xff0c 一个用于商户签名 xff0c 另外一个用于报文加密 2 xff1a 平台商户入驻成功后
  • Vue脚手架运行报错multi-word-component-names

    问题描述 Vue脚手架运行的报错 error Component name Union should always be multi word vue multi word component names You may use speci
  • ucosIII学习总结

    看到以前写的ucos博客还有人看 xff0c 感到很欣慰 xff0c 写篇博客给刚学习ucos的同学一些建议 xff0c 希望对你们的学习有所帮助 写在前面 xff0c 当初学ucos完全是误打误撞 xff0c 从单片机一路走来 xff0c
  • Ubuntu 18.04 手动配置分区并安装

    环境说明 安装环境 xff1a VMWare WorkStations Pro 15 5 1 操作系统 xff1a ubuntu 18 04 4 desktop amd64 CPU xff1a 4 核 内存 xff1a 8 GB 磁盘 xf
  • Make 命令(持续更新)

    一 背景 Make是最常用的构建工具 xff0c 诞生于1977年 xff0c 主要用于C语言的项目 但是实际上 xff0c 任何只要某个文件有变化 xff0c 就要重新构建 的项目 xff0c 都可以用Make构建 make只是一个根据指
  • linux c++ 服务器端开发面试必看书籍

    摘自别人博客 xff0c 地址 xff1a http blog csdn net qianggezhishen article details 45951095 打算从这开始一本一本开始看 题外话 xff1a 推荐一个 github 上的
  • K8s网络实战分析之service调用

    在上一篇文章K8s网络实战分析之Calico ipip模式中 xff0c 我们通过Pod之间进行ping操作 xff0c 对基于Calico IPIP模式的K8s网络进行了实战学习与分析 单单进行Pod Pod的访问只是K8s的基础功能 x
  • RTK(Real - time kinematic,实时动态)载波相位差分技术

    GPS和RTK区别在于 xff1a 二者bai指代du不同 二者作用不同 二者原理不同 1 二者指代不同 xff1a RTK是载波dao相位差分技术 xff0c 是实时处理两个测量站载波相位观测量的差分方法 xff1b GPS是全球定位系统
  • RTK+GPS提高定位精度原理解析

    RTK 43 GPS提高定位精度原理解析 xff08 一个小白写给另一个小白系列 xff09 GPS定位原理回顾RTK基本概念RTK组成RTK传输差分示意RTK数据链接坐标转换RTK应用后记 我们在上一篇文章导航定位系统的原理解析 xff0
  • GPS、RTK、PPK三种定位技术的原理及应用

    一 GPS技术 1 原理 之前做过集成GPS功能的产品 xff0c 对这种不以定位为主要功能的产品 xff0c 精度是没有要求的 xff0c 例如我只是用它来得到当前社区的位置 xff0c 一般的GPS模块都能满足要求 理论上 xff0c