关于GNSS技术介绍(二)
在上期文章中,我们介绍了GNSS技术的发展历程、原理,并对不同类型的定位技术进行了介绍,在本期文章中我们将继续讨论GNSS的优点与应用及其测试方法和解决方案。
GNSS的优点与应用
目前GNSS技术已经成为日常生活不可或缺的一部分,几乎覆盖各行各业,包括军事、农业、交通等。简单来讲,它的应用可以分成:
- 定位与导航:良好的GNSS地理定位服务的准确性、完整性、连续性和可用性为地理定位与导航带来越来越便捷、高效、准确的性能,在交通领域的使用实现增长和多样化,可应用于道路交通与铁路、智能与自动驾驶,航空航天,海运与物流等。
- 授时:GNSS技术在该领域具有巨大突破,降低了专用物理通道搭建成本,实施简单,并且有着令人满意的精度,GNSS信号已成为网络运营商传播公共时间源的重要、全球化和标准化手段。
- 追踪
- 制图
而在新应用领域,随着智慧城市与自动驾驶等新兴技术的不断发展,对高精度卫星导航定位服务的需求逐渐提升,卫星导航应用市场也将随之进一步扩大。
GNSS测试方法
GNSS终端数量正在急剧上升,应用领域与种类也越来越多,随之而来的问题就是测试场景越发庞大与复杂。近些年来,针对汽车与相关行业提出了HIL(硬件在环仿真)测试方法,并慢慢嵌入到整车测试系统中去,与其他功能、设备等完成协调测试。
GNSS测试的手段中目前主流的测试方法有三种:
借助真实环境(Live Sky)
这是最原始也是最简单的测试方法,利用真实环境中的GNSS信号直接进行设备测试,只需具备待测设备和天线即可完成。测试的信号是最真实的,但同时也存在很多问题。
首先,GNSS信号很微弱,在室内近乎于无,因此如果想在室内测试则需要很麻烦的布线与连接,并且也很难在室内进行移动测试;其次,真实天空中的GNSS信号的时间也是真实的,这也意味着每一时刻的测试结果是唯一的,很难进行重现与还原,这对于测试本身来讲就存在着无法控制、无法复现、无现重复批量测试的问题。另外,此类方法也无法去测试和模拟一些理论开发中的GNSS信号与系统。
录制GNSS信号并回放(RF Rocord/Playback)
录制回放是对真实环境测试的一种进步与加强,将GNSS信号在真实环境中录制之后即可通过专门的设备重复回放,并针对信号的强度做一定的调节。因此在一次外场测试后,其他时候都可以在室内通过回放的方式来完成测试,既保证了信号的真实性,又给予了信号测试的重复性与部分可调性。

RF录制回放提供了可重复的测试,但在测试接收机方面用处有限。它本身不允许动态修改场景,也无法进行时间与位置的变化,缺乏灵活性。此外,录制回放经过AD/DA转换,受限于硬件性能,精度较差,通常只有真实模拟的25%,而且受录制接收器的限制,需要大量内存(GBs量级乃至TB),以及超高性能的配套PC。
借助软件或硬件完成GNSS信号仿真与测试(Simulation)
GNSS仿真是目前最为先进的GNSS信号测试方法,它通过软件或硬件直接仿真所需的GNSS信号,近乎实时与无损的传输最真实的GNSS信号,相比前两种方式,它的实现不依赖真实天空信号,而是星历与修正计算完成信号的输出。因此这种方法具备非常明显的优势,测试信号可以自由编辑与修改时间、地点、信号强度等信息,无需在室外按照实际路径驱车或行走录制,并且可以重复测试。此外,它也可以根据相应的文件直接生成RF信号,无需依托现有星座架构,对于未来信号的研发和测试有非常大的优势。
GNSS仿真的方式因为是依托设备仿真而实现的,所以精度更高,延迟更小,并且完全不需要室外的测试与录制,大大的降低了外场测试的难度与风险。

GNSS测试场景与解决方案
目前GNSS测试一方面主要是各类接收机本身的测试项目会用到,例如定位时间测试、捕获时间测试、接收机灵敏度测试、触发精度测试等。这类测试结构简单,实现容易。
此外,伴随着自动驾驶与相关行业的发展,针对高精度定位的测试也逐渐增多,包括V2X、车辆导航、车内娱乐系统测试等,这部分测试大部分都需要在真实环境中联调测试,无法进行单个模块的性能测试,因此HIL(hardware in loop)硬件在环仿真测试方法逐渐成为主流,而这也对测试的需求、架构、精度等提出了更高的要求。在GNSS仿真的现有优势上,此类基于SDA(软件定义架构)的仿真方案具有独特的优势,这在HIL测试中则体现的更加明显。
提供对HIL测试的高度集成性与开放性
软件是基于SDA的GNSS模拟器的基石与支柱,对外的连接与接口都可以针对软件来完成。以虹科Safran Skydel仿真引擎为例,它是基于Linux开发的,支持Python、C#、C++、Labview等多种语言,用户可以直接通过编程的方式对设备进行控制与连接,大大提高了HIL系统的构建效率与紧密性。此外Skydel支持外部控件API,可以在HIL模拟器的前端直接调用Skydel,实现HIL系统一体化。

极低的延迟与可视化的调教系统
HIL(Hardware-in-the-Loop)硬件在环仿真测试系统是采用实时处理器运行仿真模型来模拟受控对象(如:汽车、航空飞机等设备)的运行状态,以此判断在自动驾驶的HIL测试中电控模块的性能。想使用GNSS模拟器测试汽车运行是否正常,就需要把自动驾驶仪的信息返回到GNSS模拟器中,再进行下一个轨迹的模拟。
而目前测试标准与应用场景来看,HIL测试对于实时性有极高的要求,尤其是对于汽车、飞机、航空航天器等高安全要求、高显示成本、低容错乃至零容错的应用,实时性是不可或缺的保障GNSS模拟器具有其软件定义架构的特点,基于Linux开发的Skydel软件可以作为硬件部分的大脑与心脏,将处理压力与信号仿真压力转移到软件与平台上,极大的提高真实轨迹位置的数据处理与GNSS RF信号的输出能力,在大型场景的通信仿真场景下,延迟可控且极低。GNSS模拟器的SDA架构产品系列中的GSG7/8的延迟可以达到10ms,经过系统调试与调节,最低甚至可以达到5ms,这是目前业界公布的最低也是最真实的延迟!相对于上一代产品的130ms,虹科Safran GSG7/8可以说真正使得HIL测试达到“近乎实时”的效果。

另外,它内置了延迟调教与可视化的GUI界面,不仅方便用户真实观测延迟并通过调整系统参数降低延迟,也提供对外的开放接口,允许客户在HIL整套系统的层面进行观测与优化:

强大的功能与参数
GNSS模拟器归根结底是一种设备或系统,它是为了替代或补充真实环境测试的一种工具。因此一方面要保证真实,另一方面要有强大的性能去支持高度复杂与全面的仿真过程。
- 支持多个实例同时仿真,实现大型车队或复杂多单元场景的仿真效果,实现双天线姿态校正、RTK场景模拟、车辆碰撞测试、航空航天器实时对接与姿态修正等场景;
- 支持1000Hz的信号迭代率,目前大多数的仿真设备都是10Hz的迭代率,而更高的迭代率意味着可以带来更高速场景与更高精度的仿真,这对于高精度与高速场景十分重要;
- 在真实环境中,有很多个星座与卫星共存,以手机GNSS接收功能来看,室外随时都可以捕获到几十颗卫星!而这仅仅只是一个接收机。在大型仿真的项目中,存在多个接收机,可能需要上百颗卫星同时进行模拟。考虑到这一场景,基于软件定义结构的GNSS模拟器具有更为明显的优势,可模拟的星座与搜星数量不会受限,只需要添加相应数量的GPU与SDR即可;
- 除此之外,基于软件定义架构的GNSS模拟器对于时钟同步精度和数据格式的丰富度都有着强大的支持。
基于这样的强有力设备,GNSS模拟器针对自动驾驶、V2X等场景均构建了不同的驾驶方案,与多个知名测试厂商合作搭建了多种方案,例如:基于GNSS的自动驾驶功能 HIL测试系统、基于ITS频段PC5接口的V2V和V2I通信测试系统、集成网联汽车车队管理系统测试方案、用于飞行模拟和飞行员培训的HIL测试系统等。
基于GNSS模拟器仿真的测试手段随着自动驾驶等高精度定位业务的铺开,目前已经逐渐成为此类测试的主流方法之一,无论是对于传统汽车企业、新能源汽车企业,还是测试行业的企业来说,这都是进行GNSS测试的高性能方案。
参考:
① 北斗卫星导航系统网站
② First-TF:What is GNSS?
③ Fibocom:一文读懂GNSS(全球导航卫星系统)
④ HEXAGON:What are Global Navigation Satellite Systems?
相关文章:
关于GNSS技术介绍(二)
在上期文章中,我们介绍了GNSS技术的发展历程、原理,并对不同类型的定位技术进行了介绍,在本期文章中我们将继续讨论GNSS的优点与应用及其测试方法和解决方案。 GNSS的优点与应用 目前GNSS技术已经成为日常生活不可或缺的一部分,几…...
拿到新的服务器必做的五件事(详细流程,开发必看)
目录 1. 配置免密登录 基本用法 远程登录服务器: 第一次登录时会提示: 配置文件 创建文件 然后在文件中输入: 密钥登录 创建密钥: 2.部署nginx 一、前提条件 二、安装 Nginx 3.配置python虚拟环境 1.安装虚拟环境 …...
主机防病毒攻略之勒索病毒
勒索病毒并不是某一个病毒,而是一类病毒的统称,主要以邮件、程序、木马、网页挂马的形式进行传播,利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解。 已知最早的勒索软件出现于 …...
Win10系统重装过程(一键装机)
相信不少小伙伴都有刷机重装系统的过程,那种镜像,up盘,压缩包等多个复杂过程也折磨的大伙不堪重负,因此本期带来简易版一键装机相应操作。 下载地址: 小心点击下方链接,点击即下载(3.66GB&…...
查询优化之单表查询
建表 CREATE TABLE IF NOT EXISTS article ( id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, author_id INT(10) UNSIGNED NOT NULL, category_id INT(10) UNSIGNED NOT NULL, views INT(10) UNSIGNED NOT NULL, comments INT(10) UNSIGNED NOT NULL, title VARBI…...
ChatGPT写小论文
ChatGPT写小论文 只是个人对写小论文心得?从知乎,知网自己总结的,有问题,可以留个言我改一下 文章目录 ChatGPT写小论文-1.写论文模仿实战(狗头)0.论文组成1.好论文前提:2.标题3.摘要4.关键词5.概述6.实验数据、公式或者设计7.结论,思考8.参考文献 0.模仿1.喂大纲…...
公共资源包发布流程详解
文章目录 公有包发布并使用npm安装git仓库协议创建及使用 npm 私有包创建及使用 group npm 私有包私有仓账密存放位置 当公司各个系统都需要使用特定的业务模块时,这时候将代码抽离,发布到 npm 上,供下载安装使用,是个比较好的方案…...
设计模式简谈
设计模式是我们软件架构开发中不可缺失的一部分,通过学习设计模式,我们可以更好理解的代码的结构和层次。 设计原则 设计原则是早于设计方法出现的,所以的设计原则都要依赖于设计方法。这里主要有八个设计原则。 推荐一个零声学院免费教程&…...
day35—选择题
文章目录 1.把逻辑地址转换程物理地址称为(B)2.在Unix系统中,处于(C)状态的进程最容易被执行3. 进程的控制信息和描述信息存放在(B)4.当系统发生抖动(thrashing)时,可以采取的有效措…...
mybatis的<foreach>标签使用
记录:419 场景:使用MyBatis的<foreach></foreach>标签的循环遍历List类型的入参。使用collection属性指定List,item指定List中存放的对象,separator指定分割符号,open指定开始字符,close指定结…...
干货 | 被抑郁情绪所困扰?来了解CBT吧!
Hello,大家好! 这里是 壹脑云科研圈 ,我是 喵君姐姐~ 我们的情绪就像是一组正弦波,有情绪很高涨的时刻,也会有情绪低落的瞬间,也会有情绪平稳的时候。 这种情绪上的变化非常正常,也正是因为这…...
每日一个小技巧:1招教你手机消除笔怎么用
在日常生活中,我们经常需要在手机上进行编辑和涂改,但是由于各种原因,我们可能会做出错误或者不满意的修改。这时候,消除笔就派上用场了。消除笔可以帮助我们在不影响其他内容的前提下,对错误或者不满意的修改进行撤销…...
4月26号软件更新资讯合集....
Tpflow V7.0.2,PHP 工作流引擎新版发布 欢迎使用 Tpflow V7.0.1 工作流引擎 TpFlow 工作流引擎是一套规范化的流程管理系统,基于业务而驱动系统生命力的一套引擎。彻底释放整个信息管理系统的的活力,让系统更具可用性,智能应用型…...
尚硅谷大数据项目【电商数仓5.0】学习笔记
尚硅谷大数据项目【电商数仓5.0】学习笔记 大数据学习基础 基础shell编程:大数据之基础shell 集群快速安装教程:大数据集群快速安装教程 注:如果您已经有大数据学习基础,可以通过上面教程快速搭建学习环境,如果您没…...
vue3配置router路由并实现页面跳转
1、安装vue-router 用vue3需要安装版本4.0以上的vue-router,安装命令: npm install vue-routernext --savevue2尽量安装4.0以下版本,安装命令: npm i vue-router3.1.3在package.json中可以查看vue-router版本号: 2、…...
Java中字符串的初始化详解
前言 在深入学习字符串类之前,我们先搞懂JVM是怎样处理新生字符串的。当你知道字符串的初始化细节后,再去写String s "hello"或String s new String("hello")等代码时,就能做到心中有数。 首先得搞懂字符串常量池的概…...
面向对象(七)-- 代码块
目录 1. 代码块的概述 2. 代码块的分类 3. 代码块的执行优先级 1. 代码块的概述 在Java中,使用 { } 括起来的代码被称为代码块 2. 代码块的分...
《编程思维与实践》1037.一元多项式乘法
《编程思维与实践》1037.一元多项式乘法 题目 思路 比较容易想到将步骤分为三步: 1.读取多项式每项的系数(coefficient)和对应的指数(dim); 2.进行多项式乘法; 3.输出进行多项式乘法后的非零项系数. 其中多项式乘法可以通过循环来处理,输出可以用if来判断系数是否为0,需要考虑…...
top命令学习
文章目录 一、top命令回显信息含义1、第一行2、第二行3、第三行4、第四行5、第五行6、第六行进程信息 二、top简单交互1、按数字“1”,显示列出所有cpu的信息2、按“M”,按内存使用率从大到小排序3、按“P”,按CPU使用率从大到小排序 一、top…...
PHP数组的功能及实现案例
目录 前言 一、什么是数组 二、创建关联数组 1.1运行流程(思想) 1.2代码段 1.3运行截图 三、创建索引数组 1.1运行流程(思想) 1.2代码段 1.3运行截图 前言 1.若有选择,可实现在目录里进行快速查找ÿ…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
