百度Apollo源码学习之定位系统介绍
什么是GNSS
GNSS的全称是全球导航卫星系统(Global Navigation Satellite System).
它是泛指所有的卫星导航系统,包括全球的、区域的和增强的,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等,还涵盖在建和以后要建设的其他卫星导航系统。
三边测量定位算法(Trilateration)
Trilateration(三边测量)是一种常用的定位算法:
已知三点位置 (x1, y1), (x2, y2), (x3, y3)
已知未知点 (x0, y0) 到三点距离 d1, d2, d3
以 d1, d2, d3 为半径作三个圆,根据毕达哥拉斯定理,得出交点即未知点的位置计算公式:
这样就可以算出来位置点的坐标.
在2维平面,一个固定点用已知的半径长确定一个圆,两个固定点用已知的半径确定两个点,三个固定点可以确定一个点。这个原理映射到3维,两个球相交确定一个圆,三个球相交确定两个点。远离地球的点舍弃,另一个点就是你的位置了。
但是实际上真正应用比这个复杂,首先就要想,原理上三颗卫星可以解决的问题问什么一定要4颗。因为前面的简单解释是已知卫星和接受机/使用GPS 的人)的距离。在实际应用中这距离是不知道的,这个距离需要去计算。就是常说的伪距(pseudorange)。
卫星定位的组成
卫星是有三个成分组成的分别是空间部分,控制部分和用户部分。
用户部分
只要能使用卫星定位的仪器都是用户部分,比如专业接收机,手机,智能手表等等能收到GNSS信号的都可以。
空间部分
最直接的就是天上的卫星了。这些卫星是在中轨道上运行,大概有20200km那么高。平均是6个平面,一个平面上有四个点,每个点上至少一个卫星,也就是说也许有多个。之前是是24颗卫星, 这种安排基本上全球大部分地区可以看到至少4颗卫星。
控制部分
这个分为三个,1个主要控制站,1个备用控制站,11个地面的天线,16个地面的监测站。主要用于跟踪,监测,接收和传输一些数据和命令。监测站的主要功能是当卫星从头顶飞过时,收集数据(载波和伪距)然后穿给控制站。
GPS
GPS是70年代规划,80年代实施,90年代运营,耗资300亿美元,仅次于阿波罗登月计划和航天飞机计划的美国第三大航天工程。其主要目的是为陆、海、空三大领域提供实时、 全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的。其次,也为民用、商用提供导航、定位、测速和授时等服务。1994年3月,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。
数据格式
GPS 上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:
$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x
每行开头的字符都是'$',接着是信息类型,后面是数据,以逗号分隔开。
GPS信息类型:
类型 | 解释 |
---|---|
GPGSV | 可见卫星信息 |
GPGLL | 地理定位信息 |
GPRMC | 推荐最小定位信息 |
GPVTG | 地面速度信息 |
GPGGA | GPS定位信息 |
GPGSA | 当前卫星信息 |
GPGSV 可视卫星状态
标准格式:
$GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)
含义为:
- (1)总的GSV语句电文数;2;
- (2)当前GSV语句号:1;
- (3)可视卫星总数:08;
- (4)PRN码(伪随机噪声码)也可以认为是卫星编号
- (5)仰角(00~90度):33度;
- (6)方位角(000~359度):240度;
- (7)信噪比(00~99dB):45dB(后面依次为第10,16,17号卫星的信息); *总和校验域hh 总和校验数:78; (CR)(LF)回车,换行。
注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:
(4)-卫星号,(5)-仰角,(6)-方位角,(7)-信噪比。
GPRMC 最小定位信息
标准格式:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
含义为:
- <1> UTC 时间,hhmmss(时分秒)格式
- <2> 定位状态,A=有效定位,V=无效定位
- <3>纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
- <4> 纬度半球N(北半球)或S(南半球)
- <5>经度dddmm.mmmm(度分)格式(前面的0也将被传输)
- <6> 经度半球E(东经)或W(西经)
- <7>地面速率(000.0~999.9节,前面的0也将被传输)
- <8>地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
- <9> UTC 日期,ddmmyy(日月年)格式
- <10>磁偏角(000.0~180.0度,前面的0也将被传输)
- <11> 磁偏角方向,E(东)或W(西)
- <12>模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
GPGGA GPS定位数据
标准格式:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>
含义为:
- <1> UTC 时间,格式为hhmmss.sss;
- <2> 纬度,格式为ddmm.mmmm(第一位是零也将传送);
- <3> 纬度半球,N 或S(北纬或南纬)
- <4> 经度,格式为dddmm.mmmm(第一位零也将传送);
- <5> 经度半球,E 或W(东经或西经)
- <6> 定位质量指示,0=定位无效,1=定位有效;
- <7>使用卫星数量,从00到12(第一个零也将传送)
- <8>水平精确度,0.5到99.9
- <9>天线离海平面的高度,-9999.9到9999.9米M指单位米
- <10>大地水准面高度,-9999.9到9999.9米M指单位米
- <11>差分GPS数据期限(RTCMSC-104),最后设立RTCM传送的秒数量
- <12>差分参考基站标号,从0000到1023(首位0也将传送)。
GPVTG 地面速度信息
标准格式:
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh
含义为:
- <1> 以正北为参考基准的地面航向(000~359度,前面的0也将被传输)
- <2> 以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)
- <3> 地面速率(000.0~999.9节,前面的0也将被传输)
- <4> 地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)
- <5> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效
GPGSA 当前卫星信息
标准格式:
$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A
北斗定位
参考
Trilateration三边测量定位算法GPS数据包格式+数据解析
http://www.taodudu.cc/news/show-5741320.html
相关文章:
- 苹果系统地图定位服务器,iOS 系统地图实现及定位
- 将lrc歌词整体提前或推迟
- android 读取歌词.qrc,Unity读取lrc歌词并显示出来
- Latex写作 图片或表格如何跨两栏排版
- Word双栏格式下图片表格一栏排版 自定义位置
- LATEX图片(子图)排版
- 成都拓嘉辰丰:拼多多草稿箱怎样删除商品,草稿箱在哪
- 拼多多搜索商品详情分析接口代码对接教程
- 弘辽科技:拼多多商家上传宝贝的步骤及注意事项
- 16S全长测序解密转基因玉米根瘤菌群落组成
- 16s之稀释曲线绘制
- SMURF-Science封面文章使用的16S新流程
- 使用R语言获得16S物种丰度
- 16S rRNA测序鉴定分析实验
- java fit 16s_16s分析之差异展示(热图)
- 影响因子14.65:16S全长测序+低丰度简化菌群,提供根腐病防控新视角
- C#爬虫selenium webdriver使用火狐浏览器截取全屏并转成pdf
- Python办公自动化之三,操作PDF
- 究竟是多牛的微服务深度原理实践进阶PDF,竟让阿里换下了Dubbo
- Java 处理PDF文档(一):页眉页脚、水印、背景、附件
- pdf文件的分割使用工具
- Ubuntu下命令行方式对PDF文件进行缩放、合并、拆分
- JavaScript设计模式与开发实践pdf
- 赋能 打造应对不确定性的敏捷团队 pdf_如何打造一支应对不确定的团队
- Django 实现HTML转PDF 用通用视图编写PDF 并且让PDF支持中文
- PDF Explained(翻译)第六章 文本和字体
- mlc颗粒的m.2固态有哪些(多款MLC企业级SSD性能实测)
- 组装电脑基础知识之固态硬盘
- 固态硬盘的选购
- SSD之颗粒
百度Apollo源码学习之定位系统介绍相关推荐
- 百度Apollo源码学习之Bazel编译介绍
image.png 什么是Bazel Bazel是一个类似于Make的编译工具,是Google为其内部软件开发的特点量身定制的工具,如今Google使用它来构建内部大多数的软件.(怪不得看起来很像An ...
- 百度apollo源码学习(二)apollo中的工厂模式
文章目录 一.什么是工厂 二. 简单工厂模式 UML类图 简单工厂模式结构 代码 一.定义抽象产品类AbstractProduct 二.定义具体产品类 三.定义工厂类和工厂方法 应用 扩展 一.扩展具 ...
- Apollo 5.5 源码学习笔记(五) | transform模块 | Apollo中的坐标系统详解
本系列博客旨在记录自己在学习百度无人驾驶开源框架Apollo的心得和体会,欢迎大家阅读和点赞,并提出宝贵意见,大家相互学习,如需转载,请注明出处,谢谢! 文章目录 1.前言 2.车辆传感器布局 3.传 ...
- Apollo源码剖析学习笔记2
Apollo 源码剖析学习笔记2 Talker-ListenerNode 目录中包含了 Node 对象.Reader 对象和 Writer 对象.Node 对象主要对应 Ros 中的 Node 节点, ...
- 【知其然,知其所以然】配置中心 Apollo源码剖析
第2章 Apollo源码剖析 能力目标 能够基于Git导入Apollo源码 能够基于IDEA实现DEBUG分析APP创建 掌握Namespace创建过程 掌握Item创建过程 掌握灰度发布创建过程 1 ...
- php 第三方认证中心 框架,仿百度钱包源码红色优享钱包网贷借款源码/接入第三方认证,去后门修复缺陷ThinkPHP开发...
源码说明 非常漂亮红色网贷借款源码,接入第三方认证,ThinkPHP框架,无加密,无授权,可封装APP 已集成支付.短信.查询借款,支持购买会员.签到,状态短信通知 看上去挺好看的这UI就发出来给大家 ...
- Spring源码深度分析一-Spring前世今生以及源码学习路线图
大家好,我是王老狮,今天开始开新坑.作为JAVA程序员,Spring基本上是必备的技能,也是面试经常考核的技能,特别是大厂,Spring源码基本是必问的题目.但是很多同学看到源码就头疼,根本不知道源码 ...
- Opencascade源码学习之模型算法_TKO模块文件介绍
Opencascade源码学习之模型数据_TKO模块文件介绍 1.TKO 1.BOPAlgo 2.BOPDS 3.BOPTools 4.BRepAlgoAPI 5.IntTools 1.TKO 1.B ...
- Opencascade源码学习之模型数据
Opencascade源码学习之模型数据 1.模型数据 2.几何工具 1.插值和拟合 1.分析一组点 2.基本插值和近似 3.2D 插值 4.3D 插值 5.2D 拟合 6.3D 拟合 7.曲面拟合 ...
最新文章
- MySQL遇到Deadlock found when trying to get lock,解决方案
- 数控技能大赛计算机程序设计员,2018全国技能大赛–第八届全国数控技能大赛通知...
- Mysql 查看、创建、更改 数据库和表
- es5如何实现promise_彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇)...
- Java LinkedList getFirst()方法与示例
- javascript Date对象
- phpstorm 的下载、安装与激活
- 高精度PSEnet文本检测在windows/linux运行教程
- Head First 设计模式 —— 装饰器模式与门面模式
- Writing udev rules
- Mujoco的关节与外力和驱动器
- 计算机进制算法在线,16进制计算(十六进制计算器在线)
- Solidworks 3D Onshape 3D 繪圖自學分享
- STM32Cube IDE环境安装
- 职业学校计算机教学总结报告,中职计算机教师教学工作总结(共6篇) .docx
- 生活不可能像你想的那么好,但也不会像你想的那么糟
- 拼多多怎么设置快捷回复
- 什么是操作系统虚拟机?
- html中怎样写渐变色代码,纯css简单几行代码实现颜色渐变效果 非常漂亮
- vscode多行注释,自定义按键多行注释