【Apollo】自动驾驶感知——毫米波雷达

news/2025/3/14 22:10:16/

作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等
作者主页: 七七的个人主页
文章收录专栏: 七七的闲谈
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

在这里插入图片描述


apollo自动驾驶

  • 前言
  • 1. 雷达的基本概念
    • 1.1 毫米波雷达分类
    • 1.2 信息的传输
    • 1.3 毫米波雷达的信号频段
    • 1.4 毫米波雷达工作原理
  • 2. FMCW雷达的工作流程
    • 2.1 线性调频脉冲信号
    • 2.2 混频器
  • 声明

前言

本文用于投稿于星火培训:报名链接

毫米波雷达分类毫米波雷达的信号频段毫米波雷达工作原理车载毫米波雷达的重要参数FMCW雷达的工作流程单目标距离估计多目标距离估计单目标速度估计多目标速度估计。

1. 雷达的基本概念

无线电探测及测距(Radio Detection and Ranging),
发射电磁波并接收目标反射的回波信号,通过对比发射信号与回收信号,获取目标的位置、速度等信息。

1.1 毫米波雷达分类

雷达的分类
• 所发射电磁波的频段,决定了雷达的基本性能特点
• 超视距雷达、微波雷达、毫米波雷达、激光雷达、…

在这里插入图片描述

  • 按照用途分类:军用,气象,导航,车载
  • 按照波长分类:米,分米,厘米,毫米
  • 按照波形分类:脉冲,连续波

按照波长和用途分类

  • 长波雷达(米,分米),分辨率低,穿透性强
  1. 一般用于广播,军事预警,卫星通讯等:
    短波雷达(厘米,毫米),分辨率高,穿透性差
  2. 一般用于测绘,短程通讯,车载应用等
    按照波形分类
  • 脉冲雷达
  1. 通过脉冲发送和接收的时间差来确定目标的距离
  2. 不能确定目标的速度
  • 连续波雷达
  1. 发射信号在时间上是连续的
  2. 发射信号的频率是随着时间变化的(调频连续波)

1.2 信息的传输

◼ 调制:将调制信号(待传输信息)混合到载波信号(起到载运作
用的信号)的过程,可分为调频,调幅,调相。
◼ 解调:相反的过程,即从混合信号中恢复出待传输信息。
◼ 带宽:调制信号频谱的宽度,带宽高有利于传输更多数据。

在这里插入图片描述

  • 毫米波雷达使用的电磁波波长介于1-10mm,波长短、频段宽,比较 容易实现窄波束,雷达分辨率高,不易受干扰
  • 早期被应用于军事领域,随着雷达技术的发展与进步,毫米波雷达传 感器开始应用于汽车电子、无人机、智能交通等多个领域。

在这里插入图片描述

1.3 毫米波雷达的信号频段

在这里插入图片描述

1.4 毫米波雷达工作原理

在车载毫米波雷达中,目前主要有三种调制方案:调频连续波(Frequency
Modulated Continuous Wave, FMCW),频移键控(Frequency Shift Keying, FSK)以及相移键控(Phase Shift Keying, PSK)。
    主流车载毫米波雷达所采用的的调制信号为调频连续波FMCW。

其基本原理是在发射端发射一个频率随时间变化的信号,经目标反射后被接收机接收,通过反射信号和接收信号之间的混频,得出两个信号的频率差,随后通过电磁波传播公式和多普勒效应公式求出目标距离和速度.

⚫ 测距测速是通过分析发射和接收的调频连续之间的区别来实现
⚫ 测量角度是通过计算不同天线单元之间的延时差来计算

2. FMCW雷达的工作流程

PS:此部分主要是为了简单理解FMCW雷达的工作原理,是对第一章内容的补充。
    总结一下,FMCW雷达的工作流程:

  • 合成器生成一个线性调频信号 ;
  • 发射天线( TX )发射线性调频信号;
  • 接收天线( RX )捕获目标对线性调频信号的反射;
  • 混频器将RX和TX信号合并到一-起,生成一个中频(IF )信号。

在这里插入图片描述

2.1 线性调频脉冲信号

对于一个脉冲信号

  • 信号的频率随时间的变化线性升高
  • 起始频率 f c f_c fc​,持续时间 T c T_c Tc​,带宽 B B B,频率变化率 S S S

在这里插入图片描述

2.2 混频器

作用:将TX和RX的信号合并生成一个新的信号IF

  • TX发射信号: x 1 = sin ⁡ ( 2 π f 1 t + ϕ 1 ) {x_1} = \sin (2\pi {f_1}t + {\phi _1}) x1​=sin(2πf1​t+ϕ1​)
  • RX接收信号: x 2 = sin ⁡ ( 2 π f 2 t + ϕ 2 ) {x_2} = \sin (2\pi {f_2}t + {\phi _2}) x2​=sin(2πf2​t+ϕ2​)
  • 中频信号IF: x o u t = sin ⁡ ( 2 π ( f 1 − f 2 ) t + ϕ 1 − ϕ 2 ) = sin ⁡ ( 2 π Δ f t + Δ ϕ ) \begin{array}{c}{x_{out}} = \sin (2\pi ({f_1} - {f_2})t + {\phi _1} - {\phi _2})\ = \sin (2\pi \Delta ft + \Delta \phi )\end{array} xout​=sin(2π(f1​−f2​)t+ϕ1​−ϕ2​)=sin(2πΔft+Δϕ)​

对于单个静止目标,RX和TX脉冲 之间的时间差是固定为 τ τ τ。因此,频率差也是固定的,也就是说IF是一个频率恒定的单音信号。IF的 Δ f \Delta f Δf Δ ϕ \Delta \phi Δϕ用以估计速度和距离。

声明

本文参考文献:https://apollostudio.csdn.net/649cf6f6c667f200c2e77da3.html

关于【Apollo】自动驾驶感知——毫米波雷达的详细讲解,七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕


http://www.ppmy.cn/news/1048987.html

相关文章

依赖预构建与静态资源处理

依赖预构建 vite是一个基于浏览器原生ES-Module的前端构建工具。 当你首次启动vite的时候,vite会在本地加载你的站点之前预构建项目依赖。 原因: CommonJS和UMD兼容性:在开发阶段中,Vite的开发服务器将所有的代码视为原生ES模块。…

[Docker] Portainer + nginx + AList 打造Docker操作三板斧

Portainer : Docker容器图形化管理系统nginx: 反向代理利器AList: 文件管理系统 1. 安装 ##### portainer ##### # 拉取镜像 portainer 注: ce 社区版 ee 企业版 原项目(portainer/portainer)已弃用 docker pull portainer/portainer-ce # 运行容器 docker run -d --name por…

LeetCode--HOT100题(36)

目录 题目描述:146. LRU 缓存(中等)题目接口解题思路代码 PS: 题目描述:146. LRU 缓存(中等) 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache…

Qbytearray:从十六进制字符串转字节一些注意事项

1、从十六进制字符串转字节后,按字节使用时 QByteArray data QByteArray::fromHex("cc94");printf("%x %x\n",data.at(0),data.at(0)&0xff);//若超过127,会不一样printf("%d %d\n",data.at(0),data.at(0)&0xff);…

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

1. bug内容 RuntimeError: Unable to find a valid cuDNN algorithm to run convolution 2. 解决办法 设置torch.backends.cudnn.benchmark True 加上这一行后bug解决了,而且训练还更快了(但是在不同硬件下可能情况不同,因为我在本地电脑机上…

31.Netty源码之客户端启动流程

highlight: arduino-light 客户端启动主要流程 如果看了服务器端的启动流程,这里简单看下就可以了。 java package io.netty.server; ​ import io.netty.bootstrap.Bootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import …

快速学习GO语言总结

备注:本博客将自己初步学习GO的总结进行分享,希望大家通过本博客可以在短时间内快速掌握GO的基本程序编码能力,如有错误请留言指正,谢谢! 一、初步了解Go语言 (一)Go语言诞生的主要问题和目标…

每天一道leetcode:127. 单词接龙(图论困难建图广度优先遍历)

今日份题目&#xff1a; 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> ... -> sk&#xff1a; 每一对相邻的单词只差一个字母。 对于 1 < i < k 时&#xff0c;每个 si 都在 wordList 中…