【毫米波雷达(七)】自动驾驶汽车中的精准定位——RTK定位技术

news2024/11/28 3:51:28

一、什么是RTK?

RTK,英文全名叫做Real-time kinematic,也就是实时动态。这是一个简称,全称其实应该是RTK(Real-time kinematic,实时动态)载波相位差分技术。

二、RTK的组装

在这里插入图片描述
如上图所示,这是一个标准的传统RTK组网。
其中,除了卫星之外,RTK系统包括两个重要组成部分——基准站和流动站。
两个站都带有卫星接收机,可以观测和接收卫星数据。顾名思义,基准站是提供参考基准的基站。而流动站,是可以不断移动的站。流动站其实就是要测量自身三维坐标的那个对象目标,也就是用户终端。

三、RTK定位过程

在这里插入图片描述
第①步,基准站先观测和接收卫星数据;
第②步,基准站通过旁边的无线电台(数据链),将观测数据实时发送给流动站(距离一般不超过20公里);
第③步,流动站收到基准站数据的同时,也观测和接收了卫星数据;
第④步,流动站在基准站数据和自身数据的基础上,根据相对定位原理,进行实时差分运算,从而解算出流动站的三维坐标及其精度,其定位精度可达1cm~2cm。

四、RTK技术在毫米波雷达中的应用

RTK包括哪些工作
咱们所说的RTK模块,其实是基于RTK技术所做的一个校准测试。项目初期可以根据雷达RTK测试结果给客户展示雷达探测效果;后期针对复杂场景进行算法程序的优化。
在这里插入图片描述

五、RTK系统说明

本套真值方法由上海华测导航技术股份有限公司生产的CGI-610(修订20200108)厘米级组合导航系统,来提供基准时间和距离真值。CGI-610由1个基站、2组定位天线、2组定向天线、2组主机(IMU)、3个电台组成,通过本系统可以获取目标车在自车坐标系中的横向位置、纵向位置、横向速度、纵向速度和航向角。目标车的长度是4.4米,宽度是1.7米。
在这里插入图片描述
把1号GPS定位天线、1号GPS定向天线、1号移动电台和1号主机安装在自车上,把1号GPS定位天线、1号GPS定向天线、1号移动电台分别连接在1号主机(IMU)上。把1号主机数据,通过CAN线传给雷达,雷达的数据通过以太网传给自车的PC上。
把2号GPS定位天线、2号GPS定向天线、2号移动电台和2号主机安装在自车上,把2号GPS定位天线、2号GPS定向天线、2号移动电台分别连接在2号主机(IMU)上。
把2号主机的数据,通过CAN盒传到目标车的PC上。
在这里插入图片描述
如图3所示为GNSS天线装载在测试车辆上的三视图,图中定义并标识出了X、Y、Z相对于测试车辆的具体方向,其中每个定义箭头所指示的方向都为正方向。
在这里插入图片描述

六、RTK参数设置

1、目标车相关参数设置

从RTK系统中传出来的位置等信息是定位天线的位置信息,因此通过目标车定位天线到车四边缘的距离(targetLoUp\ targetLoDown\ targetLaLeft\ targetLaRight)、目标车RTK真值和目标的航向角,便可以通过坐标系旋转平移计算出目标车四个角点的真值,计算方法见3.2第二点。如图4展示了需要测量的参数。
在这里插入图片描述

2、自车相关参数设置

通过坐标系旋转平移将目标车的RTK坐标转换到以自车定位天线为原点的坐标系下,而雷达航迹位置是以后轴中心为原点,因此需要将目标车RTK坐标平移到自车的后轴中心;为此需要测量自车定位天线到后轴中心的横向距离egoCarLa和纵向距离egoCarLo,示意图如图5;
在这里插入图片描述

3、自车角度补偿参数设置

雷达通过方位角标定方法得到雷达安装的角度误差,如图6中的角b,并且补偿到点云的方位角中,此时雷达的航迹通过标定都补偿到了自车中轴方向。由于自车的两个RTK天线是人工装的,两个天线的连线与自车中轴有一个角度误差,如图6中的角c,因此自车的航向角需要补偿一个角度c。
在这里插入图片描述

七、RTK时间同步方法

由于本方案涉及到组合导航和1个毫米波雷达组成,在用组合导航的结果来评估毫米波雷达准确性之前,需要左右的信息统一到一个时空坐标系下。本方案的时间基准是主雷达感知时刻,空间坐标系是自车坐标系,空间坐标原点是自车后轴中心。
1、时间同步
由于组合导航的时间已经经过CGI-610系统统一到了世界时间上,所以只需要采用硬线IO脉冲同步授时的方式,把组合导航的时间同步到主雷达时间上。RTK和雷达到IO脉冲的时间不一样,此时需要计算两者到IO脉冲时间差,补偿到RTK目标的横纵向位置上。
在这里插入图片描述

八、RTK数据处理流程

1、参数设置

设置目标天线到车身四边缘的距离targetLoUp\ targetLoDown\ targetLaLeft\ targetLaRight、自车天线到后轴中心的偏置(egoCarLa\egoCarLo)、自车角度补偿(Yaw)、航迹和RTK参考点标志accuracyPointFlag等信息。目前可以通过上位机

2、将RTK数据转为内部协议数据

该步骤主要是将采集的RTK数据转为符合内部协议的格式。

3、将RTK数据转为世界坐标系下

该步骤主要将采集的RTK数据(经纬度等信息)转为世界平面直角坐标系下

4、将目标信息旋转到自车坐标系下

该步骤主要将世界坐标系下的目标信息通过坐标轴旋转平移方法(公式1、公式2)转换到自车坐标系下。

5、RTK匹配雷达航迹

利用转换到自车坐标系后的目标真值信息去关联位置最近的雷达目标,并获取航迹的ID。

6、计算RTK和航迹误差

该步骤主要计算目标的真值信息和航迹目标横纵向距离、横纵向速度、横纵向加速度、航向角的差值

7、保存误差

将上一步计算的各个属性误差保存成hex文件,方便用Matlab统计指标。
在这里插入图片描述

九、RTK数据校验方法

1、采集静止目标数据

自车静止停正,分别采集目标车在本车道前方5m、10m和15m数据、目标车在左右旁车道前方10m数据。示意图如下:
在这里插入图片描述

2、采集运动目标数据

采集自车静止目标车40kph本车道、左右旁车道远离数据、自车静止目标车60kph左右旁车道从远处靠近数据。示意图如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小北的字节跳动青训营与调用模型:调用模型:OpenAI API vs 微调开源Llama2/ChatGLM(持续更新中~~~)

前言 最近,字节跳动的青训营再次扬帆起航,作为第二次参与其中的小北,深感荣幸能借此机会为那些尚未了解青训营的友友们带来一些详细介绍。青训营不仅是一个技术学习与成长的摇篮,更是一个连接未来与梦想的桥梁~ 小北的青训营 X M…

通过DNS服务器架构解释DNS请求过程

在前面的章节,这里,基于PCAP数据包和RFC文档详细介绍了DNS请求和响应的每个字段的含义。但是在现实的网络世界中,DNS请求和响应的数据包是怎么流动的,会经过哪些设备。本文将着重说明一下目前网络空间中DNS请求和响应的流动过程。…

Netty实现WebSocket Server是否开启压缩深度分析

是否开启压缩会直接影响与客户端是否能够成功握手。 一、具体分析 通常客户端发起与Websocket连接一般是以下形式。 1)包含6个必要的Header Request Headers Sec-WebSocket-Version: 13 Sec-WebSocket-Key: Nlpc0kiHFjRom5/62lj8bA Connection: Upgrade Upgrade…

IntelliJ IDEA 2023.2——配置说明

IntelliJ IDEA 2023.2——配置说明 IntelliJ IDEA 的官方下载地址 IntelliJ IDEA 官网下载地址 一路上NEXT 到结尾: 继续NEXT 下一步: 界面如下图所示 界面如下图所示 ctrl F 查找 “码猿趣事” 查找【idea99】

算法通关(4)-- 前缀树

前缀数原理和代码 原理 前缀树(Trie树),也称为字典树,是一种用于高效存储和检索字符串的数据结构。它是一种树形结构,能够利用字符串的公共前缀来减少存储空间和查询时间。 现在有“acb”,"cba","ac…

【CSS】“flex: 1“有什么用?

flex 属性的组成 flex 属性是一个复合属性,包含以下三个子属性: flex-grow:决定元素在容器中剩余空间的分配比例。默认值为 0,表示元素不会扩展。当设置为正数时,元素会按照设定比例扩展。flex-shrink:决…

【dvwa靶场:XSS系列】XSS (Stored)低-中-高级别,通关啦

更改name的文本数量限制大小&#xff0c; 其他我们只在name中进行操作 【除了低级可以在message中进行操作】 一、低级low <script>alert("假客套")</script> 二、中级middle 过滤了小写&#xff0c;咱们可以大写 <Script>alert("假客套…

大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

神经网络基础--什么是正向传播??什么是方向传播??

前言 本专栏更新神经网络的一些基础知识&#xff1b;这个是本人初学神经网络做的笔记&#xff0c;仅仅堆正向传播、方向传播就行了了一个讲解&#xff0c;更加系统的讲解&#xff0c;本人后面会更新《李沐动手学习深度学习》&#xff0c;会更有详细讲解;案例代码基于pytorch&a…

【大模型系列】Grounded-VideoLLM(2024.10)

Paper&#xff1a;https://arxiv.org/pdf/2410.03290Github&#xff1a;https://github.com/WHB139426/Grounded-Video-LLMHuggingface&#xff1a;https://huggingface.co/WHB139426/Grounded-Video-LLMAuthor&#xff1a;Haibo Wang et al. 加州大学&#xff0c;复旦 动机&a…

IDEA2024下安装kubernetes插件并配置进行使用

【1】安装插件 其实2024.2.3下默认已经安装了kubernetes插件&#xff0c;如果你发现自己IDEA中没有&#xff0c;在市场里面检索并下载即可。 【2】kubernetes配置 ① 前置工作 首先你要准备一个config文件和一个kubectl.exe 。 config文件类似如下&#xff1a; apiVersi…

onnx-web + yolov8n 在视频流里做推理

顺着我上一篇文章 使用onnxruntime-web 运行yolov8-nano推理 继续说&#xff0c;有朋友在问能不能接入 视频流动&#xff0c;实时去识别物品。 首先使用 getUserMedia 获取摄像头视频流 getUserMedia API 可以访问设备的摄像头和麦克风。你可以使用这个 API 获取视频流&#…

Python练习11

Python日常练习 题目&#xff1a; 编写一个石头剪刀布游戏&#xff0c;该程序要求完成如下功能&#xff1a; (1) 显示游戏规则&#xff0c;提醒用户输入一个1-3的整数或者直接回车。 用户输入回车时游戏结束。 用户输入不合法&#xff08;包括输入的…

航展畅想:从F35机载软件研发来看汽车车载软件研发

两款经典战机的机载软件 F-22和F-35战斗机的研制分别始于1980年代和1990年代末&#xff0c;F-22项目在1981年启动&#xff0c;主要由洛克希德马丁&#xff08;Lockheed Martin&#xff09;和波音公司&#xff08;Boeing&#xff09;合作开发&#xff0c;以满足美军“先进战术战…

实践出真知:MVEL表达式empty的坑

目录标题 背景为什么呢&#xff1f;验证下empty的含义case1case2case3 结论具体解释&#xff1a; 背景 //是否白名单 if(goodInfo.?isWhite ! empty){showList.add(["label": "是否白名单","value":["text":(goodInfo.?isWhite tr…

RPC核心实现原理

目录 一、基本原理 二、详细步骤 三、额外考虑因素 RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种计算机通信协议&#xff0c;也是一种用于实现分布式系统中不同节点之间进行通信和调用的技术。其实现原理主要可以分为以下几个步骤&…

Kaggle生物信息学挑战:酶稳定性预测大赛

背景介绍 酶的稳定性是影响其实际应用的关键因素之一。通过定点突变可以改善酶的稳定性,但实验筛选稳定性突变体的成本较高。预测突变对酶稳定性的影响,加速筛选稳定性更高的酶突变体。 概念解释 X 残基&#xff1a;假设 它用 红色表示 &#xff0c; Y 残基&#xff1a;假设…

【开发工具——依赖管理工具——Maven】

1. Maven介绍 Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model&#xff0c;POM) 的概念&#xff0c;Maven 可以从一条中心信息管理项目的构建、报告和文档。 对于开发者来说&#xff0c;Maven 的主要作用主要有 3 个&#xff1a; …

vue3+vite搭建脚手架项目本地运行electron桌面应用

1.搭建脚手架项目 搭建Vue3ViteTs脚手架-CSDN博客 2.创建完项目后&#xff0c;安装所需依赖包 npm i vite-plugin-electron electron26.1.0 3.根目录下创建electron/main.ts electron/main.ts /** electron/main.ts */import { app, BrowserWindow } from "electron&qu…

鸿蒙ArkTS中的获取网络数据

一、通过web组件加载网页 在C/S应用程序中&#xff0c;都有网络组件用于加载网页&#xff0c;鸿蒙ArkTS中也有类似的组件。   web组件&#xff0c;用于加载指定的网页&#xff0c;里面有很多的方法可以调用&#xff0c;虽然现在用得比较少&#xff0c;了解还是必须的。   演…