自动驾驶感知系统-全球卫星定位系统

卫星定位系统

车辆定位是让无人驾驶汽车获取自身确切位置的技术,在自动驾驶技术中定位担负着相当重要的职责。车辆自身定位信息获取的方式多样,涉及多种传感器类型与相关技术。自动驾驶汽车能够持续安全可靠运行的一个关键前提是车辆的定位系统必须实时稳定地输出足够高精度的位置和与位置相关的信息,这些信息包括车辆的经度、纬度、航向角、速度、加速度、俯视角、更新频率等。一旦这些信息无法及时精确地获取,车辆就无法确定自身位置,必须立即退出自动驾驶模式由驾驶员接管车辆。
自动驾驶汽车对定位系统性能的要求与车辆的行驶速度密切相关。相关标准和法规规定,乘用车行驶最高车速不得超过120km/h,客车最高涉及车速不应大于100km/h。基于目前得自动驾驶汽车整体技术水平和车辆限速要求,自动驾驶客车得最高车速不宜超过70km/h。一般情况下,人工驾驶控制车辆距道路一侧路牙石得安全距离约为25cm,自动驾驶汽车必须在行驶25cm的时间内更新一次定位信息且定位精度≤25cm,否则就有可能导致车辆超出道路边界发生事故。按照最高车速90km/h计算,根据公式t=s/v,车辆行驶25cm的时间是0.01s,根据公式f=1/t,则定位信息更新频率为100Hz。因此,定位信息更新频率需≥100Hz,定位精度须≤25cm才能保证车辆行驶安全。
目前常规的定位导航系统(包括无线电定位导航,惯性定位导航、卫星定位导航、移动基站定位导航等)都不能同时满足上述指标。例如,惯性定位导航系统存在定位误差随时间积累、长时间不能保证足够的导航精度的问题;卫星定位导航系统存在多路径、卫星信号遮挡和更新频率低(一般为10Hz)等问题。因此,要实现汽车上自动驾驶功能,必须采用高精定位导航技术。目前的高精定位技术路线主要有3种:基于卫星定位系统和捷联惯导系统的组合定位技术,基于激光雷达点云和高精顶图的匹配定位技术,以及基于计算机视觉里程算法的定位技术。

卫星定位技术

在任何驾驶条件下,自动驾驶车辆均依赖于2种信息:汽车位置和汽车行驶的速度,收集这些信息需要整合多种复杂技术,其中GNSS(Globla Navigation Satellite System,全球导航卫星系统)起到主要作用。当自动驾驶汽车拥有高精度位置信息之后,可以跟高精地图进行匹配,从而提供良好的导航功能。GNSS系统也能为车载传感器的时间同步或者导航提供最基础的时空信息。

卫星导航定位系统是星基无线电导航系统,以人造地球卫星作为导航台,为全球海陆空的各类军民载体提供全天候的、高精度的位置、速度和时间信息,因而又被称为天基定位、导航和授时系统。

1) 全球卫星导航系统

目前世界上著名的卫星导航系统又美国的全球定位系统(Global Positioning System, GPS)、俄罗斯的全球导航卫星系统(Global Navigation Satellite System, GLONASS)、中国的北斗卫星导航系统(Beidou Navigation Satellite System,BDS)以及欧盟伽利略(Galileo)系统。下面分别简要介绍

GPS
GPS是为了满足军事部门对高精度导航和定位的要求由美国国防部建立的,能向陆海空3大领域提供实时,全天候和全球性的导航服务,并且能够满足情报收集、核爆监测和应急通信等军事要求。
GPS提供具有全球覆盖、全天时、全天候、连续性等优点的三维导航和定位能力,作为先进的测量、定位、导航和授时手段、除了在军事上起着举足轻重的作用外,在国家安全、经济建设和民生发展的各个方面都扮演着重要的角色。
GPS由3部分构成,即空间卫星部分、地面监控部分和用户接收部分。空间卫星部分又称为空间段,21颗GPS工作卫星和3颗在轨备用卫星构成完整的21+3形式的GPS卫星工作星座。这种星座构型能满足在地球上任何地点任何时刻均能观测至少4颗几何关系较好的卫星来用于定位。地面控制部分又称为地面段,由分布在全球的一个主控站、3个注入站和若干个监测站组成。用户接收部分又称为用户段,接收来自作为基础设施的空间段和地面段提供的导航、定位和授时服务,这些服务已广泛应用于各个领域。
GLONASS
GLONASS是苏联建设的导航系统,同样能够为海陆空的民用和军用提供全球范围内的实时、全天候三维连续导航、定位和授时服务。GLONASS也由空间段、地面段、用户段3大部分组成,但与GPS相比,各部分的具体技术有较大的差异。空间段由24颗GLONASS卫星组成,其中21颗为正常工作卫星,3颗为备份卫星。如果GLONASS星座完整,则可以满足地球上任何时刻都能收到来自4颗卫星的信号,从而获取可靠的导航定位信息。地面监控部分包括系统控制中心和跟踪控制站网,这些跟踪控制站网分散在俄罗斯所有领土上。用户端能接收卫星发射的导航信号,进而获取需要的位置、速度和时间信息。
BDS
BDS北斗卫星导航系统是中国正在实施的自主研发、独立运行的全球卫星导航系统,于2012年12月27日启动区域性导航定位与授时正式服务。由16颗导航卫星组成的北斗2号系统已向我国乃至大部分亚太地区提供服务。截至2018年底,北斗3号基本系统星座部署完成。2018年12月27日开始,北斗开始提供全球范围的定位与授时服务。
除了与上述导航系统提供的导航、定位、授时功能等相投的服务外,北斗卫星导航系统还具有一项特殊的功能,那就是短报文通信。从北斗系统的组成结构来看,同样分为空间段、地面段和用户段。空间星座部分由5颗地球静止轨道(Geostationary Orbit,GEO)卫星和30颗非地球静止轨道(Nongeostationary Orbit,NON-GEO)卫星组成,后者包括中圆地球轨道(MEO)卫星和倾斜地球同步轨道(IGSO)卫星。GEO+NON-GEO+MEO+IGSO的星座构型是北斗卫星导航系统的完整布局,最大的优点是同样保证了在地球上任意地点时刻均能接收到来自4颗以上导航卫星发射的信号,观测条件良好的地区甚至可以接收到10余颗卫星的信号。地面段包括监测站、上行注入站、主控站。用户段组成及功能同前2者基本相同。
Galileo
Galileo卫星系统也是一个正在建设中的全球卫星导航系统,欧洲人的目的是摆脱对美国全球定位系统的依赖,打破其垄断。该系统的基本服务免费,但使用高精度定位服务需要付费。Galileo系统分为空间段、地面段、用户段3大部分。空间段时由分布在3个轨道上的30颗MEO卫星构成,其中27颗为工作星,3颗为备份星。地面段由两个地面操控站、29个伽利略传感器达到站以及5个S波段上行站和10个C波段上行站组成,传感器达到站及上行站均分布于全球。用户段则提供独立于其他卫星导航系统的5种基本服务。

卫星导航定位系统工作原理

GNSS定位主要解决2个问题:一是观测瞬间卫星的空间位置,二是测量站点卫星之间的距离。空间位置即GNSS卫星在某坐标系的坐标,为此首先要建立适当的坐标系来表征卫星的参考位置,而坐标又往往与时间联系在一起,因此,定位是基于坐标系统和时间系统来进行的。
1) 坐标系统和时间系统
卫星导航系统种,坐标系描述与研究卫星在其轨道上的运动、表达地面观测站的位置和处理GPS观测数据。根据应用场合的不同,选用的坐标系也不相同。坐标系大概分为以下几类:地理坐标系、惯性坐标系、地心坐标系和参心坐标系。常用的坐标系统有:WGS-84坐标系、Parametry Zemli 1990坐标系(PZ-90)、1954年北京坐标系(P54)、1980年国家大地坐标系(C80)、2000国家大地坐标系(CGS2000)。
时间系统在卫星导航种是最重要、最基本的物理量之一。首先,卫星发送的所有信号都是由高精度的原子钟控制的。其次,大多数卫星导航系统实际上都是通过精确测定信号传播时间来实现距离测量的。时间系统可分为世界时、力学时、原子时,儒略日、卫星导航时间系统等。其中GPS系统采用了一个独立的时间系统作为导航定位计算的依据,称为GPS时间系统(GPST)。GPS时间属于原子时系统,其秒长与原子时秒长相同。
2) 定位原理
GNSS定位系统利用基本三角定位原理,GNSS接收装置通过测量无线电信号的传输时间来测量距离。由每颗卫星的所在位置,和测量得到的每颗卫星与接收装置的距离,便可算出接收器所在位置的三维坐标值。使用者至少需收到3颗卫星的信号才可确定自身的位置。实际使用中GNSS接收装置都时利用4个以上的卫星信号来确定使用者所在位置及高度。
分别以3个卫星的位置为圆心,3个卫星距地面某点距离为半径作球面、则球面交点即为地面用户位置,如图所示:
在这里插入图片描述
从上面GNSS进行定位的基本原理,可以看出GNSS定位方法的实质,即测量学中的空间后方交会。由于GNSS采用单程测距,且难以保证卫星时钟与用户接收机时钟的严格同步,观测站和卫星之间的距离均受2种不同步的影响。卫星钟差可用导航电文中所给的有关钟差参数进行修正,与观测站的坐标一并求解,即在1个观测站上一般需求解4个未知数(3个点位坐标分量和1个钟差参数),因此至少需要4个同步伪距观测值,即需要同时观测4颗卫星。
基于定位原理的理论基础,可将定位方法进行分类。例如在GPS定位中,依据用户站的运动状态,可以分为静态定位和动态定位。静态定位是指待定点的位置固定步动,将GPS接收机安置于其上进行大量的重复观测。动态定位是指待定点处于运动状态,测定待定点在各观测时刻(或称为“观测历元”)运动中的点位坐标,以及运动载体的状态参数,如速度、时间和方位等。而按照定位的模式划分,则可分为绝对定位和相对定位。绝对定位又称为单点定位,即只采用一台GPS接收机进行定位,它所确定的是接收机天线在WGS84坐标系统中的绝对位置。相对定位是指2台GPS接收机安置于2个固定不变的待定点上,或1个点固定于已知点上,另一个为流动待定点。同步观测一定时间后,可以确定2点之间的相对位置,获得高精度的点位坐标。
3) 误差分析
卫星导航系统的误差从来源上可以分为4类:与信号传播有关的误差,与卫星有关的误差,与接收机有关的误差以及地球潮汐、负荷潮等造成的其他误差。误差分类如表所示。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/73340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【雕爷学编程】MicroPython动手做(33)——物联网之天气预报3

天气(自然现象) 是指某一个地区距离地表较近的大气层在短时间内的具体状态。而天气现象则是指发生在大气中的各种自然现象,即某瞬时内大气中各种气象要素(如气温、气压、湿度、风、云、雾、雨、闪、雪、霜、雷、雹、霾等&#xff…

STM32基础入门学习笔记:核心板 电路原理与驱动编程

文章目录: 一:LED灯操作 1.LED灯的点亮和熄灭 延迟闪烁 main.c led.c led.h BitAction枚举 2.LED呼吸灯(灯的强弱交替变化) main.c delay.c 3.按键控制LED灯 key.h key.c main.c 二:FLASH读写程序(有…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境4

7、使用串口工具 (1)连接硬件 连接 Type C 线, 一端电脑一端开发板 查看设备是否已经正确识别: 在 Windows 下可以打开设备管理器来查看 如果没有发现设备, 需要确认有没有装驱动以及接触是否良好 (2&a…

华为数通HCIA-ARP(地址解析协议)详细解析

地址解析协议 (ARP) ARP (Address Resolution Protocol)地址解析协议: 根据已知的IP地址解析获得其对应的MAC地址。 ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的一个…

Android安卓实战项目(5)---完整的健身APP基于安卓(源码在文末)可用于比赛项目或者作业参考中

Android安卓实战项目(5)—完整的健身APP(源码在文末🐕🐕🐕)可用于比赛项目 一.项目运行介绍 1.大致浏览 【bilibili视频】 https://www.bilibili.com/video/BV1uX4y177iR/? (1&…

【css】nth-child选择器实现表格的斑马纹效果

nth-child() 选择器可以实现为所有偶数&#xff08;或奇数&#xff09;的表格行添加css样式&#xff0c;even&#xff1a;偶数&#xff0c;odd&#xff1a;奇数。 代码&#xff1a; <style> table {border-collapse: collapse;width: 100%; }th, td {text-align: cente…

手机python编程软件怎么用,手机python编程软件下载

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机python编程软件保存的代码在哪里&#xff0c;手机python编程软件怎么运行&#xff0c;现在让我们一起来看看吧&#xff01; 原标题&#xff1a;盘点几个在手机上可以用来学习编程的软件 前天在悟空问答的时候&#…

SpringCloud深入理解 | 生产者、消费者

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; SpringCloud Spring Cloud是一组用于构建分布式系统和微服务架构的开源框架和工具集合。它是在Spring生态系统的基础上构建的&#xff0c;旨在简化开发人员构建分布式…

牛客网Verilog刷题——VL55

牛客网Verilog刷题——VL55 题目答案 题目 请用Verilog实现4位约翰逊计数器&#xff08;扭环形计数器&#xff09;&#xff0c;计数器的循环状态如下&#xff1a;   电路的接口如下图所示&#xff1a; 输入输出描述&#xff1a; 信号类型输入/输出位宽描述clkwireInput1系统…

【计算机网络】NAT及Bridge介绍

OSI七层模型 七层模型介绍及举例 为通过网络将人类可读信息通过网络从一台设备传输到另一台设备&#xff0c;必须在发送设备沿 OSI 模型的七层结构向下传输数据&#xff0c;然后在接收端沿七层结构向上传输数据。 数据在 OSI 模型中如何流动 库珀先生想给帕尔梅女士发一封电…

蓝牙资讯|苹果智能戒指专利曝光,可与苹果智能设备进行交互

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果获得了一项智能戒指专利&#xff0c;可以作为 MacBook、电视、AirPods、智能眼镜和 iPhone 等设备的输入交互设备。 苹果在专利中展示了 16 种智能戒指的交互方式&#xff0c;其中图 2 展示了该…

【Chat GPT】用 ChatGPT 运行 Python

前言 ChatGPT 是一个基于 GPT-2 模型的人工智能聊天机器人&#xff0c;它可以进行智能对话&#xff0c;同时还支持 Python 编程语言的运行&#xff0c;可以通过 API 接口进行调用。本文将介绍如何使用 ChatGPT 运行 Python 代码&#xff0c;并提供一个实际代码案例。 ChatGPT …

css实现文字颜色渐变+阴影

效果 代码 <div class"top"><div class"top-text" text"总经理驾驶舱">总经理驾驶舱</div> </div><style lang"scss" scoped>.top{width: 100%;text-align: center;height: 80px;line-height: 80px;fo…

如何一目了然地监控远程 Linux 系统

动动发财的小手&#xff0c;点个赞吧&#xff01; Glances 是一款免费的开源、现代、跨平台、实时 top 和类似 htop 的系统监控工具&#xff0c;与同类工具相比&#xff0c;它提供了先进的功能&#xff0c;并且可以在不同的模式下运行&#xff1a;作为独立模式、客户端/服务器模…

早期内存分配器 memblock 详解

》内核新视界文章汇总《 文章目录 memblock 早期内存分配器详解1 介绍2 提供的接口2.1 内存添加预留接口2.2 内存分配释放接口2.3 内存域遍历2.4 其他杂项 3 内部数据结构3.1 struct memblock3.2 strcut memblock_type3.3 struct memblock_region3.4 enum memblock_flags3.5 静…

Dockerfile构建apache镜像(源码)

Dockerfile构建apache镜像&#xff08;源码&#xff09; 1、建立工作目录 [rootdocker ~]# mkdir apache [rootdocker ~]# cd apache/ 2、编写Dockerfile文件 [rootdocker apache]# vim Dockerfile #基于的基础镜像 FROM centos:7#镜像作者信息 MAINTAINER Huyang <133…

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)

Flink非对齐checkpoint原理&#xff08;Flink Unaligned Checkpoint&#xff09; 为什么提出Unaligned Checkpoint&#xff08;UC&#xff09;&#xff1f; 因为反压严重时会导致Checkpoint失败&#xff0c;可能导致如下问题 恢复时间长-服务效率低非幂等和非事务会导致数据…

Mysql触发器

1.触发器 触发器是与表有关的数据库对象&#xff0c;指在 insert / update / delete 之前或之后&#xff0c;触发并执行触发器中定义的SL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性&#xff0c;日志记录&#xff0c;数据校验等操作。 使用别名 OLD 和 …

Vue进阶(幺叁陆): transition标签实现页面跳转动画

文章目录 一、前言二、方案实现三、延伸阅读 transition标签四、拓展阅读 一、前言 在Vue项目开发过程中&#xff0c;应用全家桶vue-router实现路由跳转&#xff0c;且页面前进、后退跳转过程中&#xff0c;分别对应不同的切换动画。vue-router 切换页面时怎么设置过渡动画&am…

Java:JDK8之后新的时间(推荐使用) ZoneId、 Instant、DataTimeFormatter、Period的相关API

ZoneId //目标:了解时区和带时区的时间。 //1、ZoneId的常见方法: // public static ZoneId systemDefault():获取系统默认的时区 zoneId zoneId ZoneId.systemDefault(); system.out.println(zoneId.getId()); system.out.println(zoneId);// public static Set<String>…