自动驾驶学习笔记(十三)——感知基础

#Apollo开发者#

学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往:

 《自动驾驶新人之旅》免费课程—> 传送门

《Apollo Beta宣讲和线下沙龙》免费报名—>传送门

文章目录

前言

传感器

测距原理

坐标系

标定

同步

融合

部署

总结


前言

        见《自动驾驶学习笔记(八)——路线规划》  

        见《自动驾驶学习笔记(九)——车辆控制》

        见《自动驾驶学习笔记(十)——Cyber通信》

        见《自动驾驶学习笔记(十一)——高精地图》

        见《自动驾驶学习笔记(十二)——定位技术》

传感器

        相机、毫米波雷达、激光雷达和超声波雷达这几种传感器的性能对比如下图:

        事件相机是近年出现的新型应用,事件相机只观测场景中的“运动”,确切地说是观察场景中的“亮度的变化”。event camera只会在有亮度变化时,输出对应pixel的亮度变化(1或0),具有响应快、动态范围宽、无motion blur等优势,其成像结果如下图所示:

测距原理

        时间飞行法(TOF)是主流方案,通过脉冲在目标与雷达之间的飞行时间差计算距离。优势:原理简单,技术及产业链成熟探测距离长,响应快。劣势:计时器精确度要求高,易受环境影响雷达间串扰。

        调频连续波法(FMCW)是主流替代方案,通过多普勒效应测量频率差。优势:信噪比高,分辨率高,速度信息,可编码,抗雷达互扰,功耗低,人眼安全。劣势:前沿技术,成熟方案少,产业链初期。

        三角测量法,通过将光源与相机配对来捕获三维测量数据。优势:结构简单、测量速度快、具有实时处理能力、使用灵活、适应力强。劣势:在精度以及分辨率上仍然有不足。

坐标系

        自动驾驶中各个坐标系的应用如下图所示:

        数据坐标系:根据传感器原理不同,每种传感器都会有自己的数据坐标系,如相机将三维世界中的坐标点映射到二维图像平面的像素坐标系。

        传感器坐标系:以传感器为中心的三维笛卡尔坐标系。

        车辆坐标系:Apollo中采用右-前-天定义。原点:后轴中心为坐标系中点。X:面向车辆前方,右手方向为正。Y:车辆前进方向为正。Z:垂直地面,车顶方向为正。

        EUN坐标系的原点在地球表面,x和y轴在当地水平面内,分别指向东和北,z轴朝上,在局部范围不是很大的情况,比如几十km内,我们认为每一个原点的东北天坐标系是平行的。

        UTM投影坐标系全称为“通用横轴墨卡托投影”UNIVERSAL TRANSVERSE MERCATOR PROJECTION,是种“等角横轴割圆柱投影”,圆柱割地球于南纬80度、北纬84度两条等高圈,投影后两条相割的经线上没有变形,而中央经线上长度比0.9996。该投影方法按经度分为60个带,每带6度,从西经180度起算。如下图所示为全球的UTM投影,北京所在的区域在第50个投影带上。每个投影带上的一个坐标(x,y,z)可以唯-地表示地球上一个点,高度使用WGS84坐标系统中的大地高度。

        Frenet坐标系下,车辆运动可以分解为沿中心线运动和垂直于道路中心线运动两个部分。因此,我们可以使用变量 s和d描述车辆在道路上的位置。s坐标表示沿道路的距离(也称为纵向位移),d坐标表示道路上的左右位置(也称为横向位移)。

标定

        传感器标定的目的即是把感知到的周围环境统一到车身坐标系下。

        不同模型的传感器后造成不同的数据畸变,例如:小孔模型( Pinhole ),全向相机( Onknidirectional )。畸形的数据如下图所示:

        去畸变:校正光线在经过透镜边缘后发生弯折,造成的图像边缘弯曲。

        内参标定:图像坐标系到相机坐标系的映射,供应商可提供,或者通过棋盘标定板测定

        外参标定:传感器相对于车身或其他传感器坐标系的位姿Rt

同步

        各个传感器采样的频率不一致,还需要同步到一个节拍上来使用,如下图所示:

融合

        融合是将多传感器检测到的目标在时间和空何两个尺度上达成同一。

        时间:每个传感器的频率不一致,如LiDAR是10Hz,Camera是30Hz,Radar是10Hz。

        空间:各传感器的感知结果投影到车身坐标系。

        融合的的策略有三种,如下图所示:

        前融合:原始信号融合,一般用于同类传感器融合,原始信息不损失,计算量大,融合难度大。

        特征融合:传感器信号进行独立特征提取后进行融合,最近比较流行BEV。

        后融合:每种传感器独立进行感知检测,在结果层进行融合,原始信息损失较大,计算量小,难度低。

部署

        不同的自动驾驶功能,应用的传感器部署方案如下图所示:

        外资车企的感知部署方案:

        自主品牌车企的感知部署方案:

总结

        以上就是本人在学习自动驾驶时,对所学课程的一些梳理和总结。后续还会分享另更多自动驾驶相关知识,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

        另外,如果有同在小伙伴,也正在学习或打算学习自动驾驶时,可以和我一同抱团学习,交流技术。


        版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!

        文中部分图片来源自网络,若有侵权,联系立删。

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

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

相关文章

2023/12/3总结

RabbitMq 消息队列 下载地址RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ 使用详情RabbitMQ使用教程(超详细)-CSDN博客 实现延迟队列(为了实现订单15分钟后修改状态) 1 死信队列 当一个队列中的消息满足下列情况之一时&…

【risc-v】易灵思efinix FPGA riscv 时钟配置的一些总结

系列文章目录 分享一些fpga内使用riscv软核的经验,共大家参考。后续内容比较多,会做成一个系列。 本系列会覆盖以下FPGA厂商 易灵思 efinix 赛灵思 xilinx 阿尔特拉 Altera 本文内容隶属于【易灵思efinix】系列。 文章目录 系列文章目录前言一、pan…

为何要3次握手?TCP协议的稳定性保障机制

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

操作系统·存储器管理

根据冯诺依曼原理,程序必须先存储在内存中,才可以执行。 在多道程序并发执行的系统存储器管理非常重要。 5.1 存储器管理的功能 5.1.1 主存分配与回收 要完成内存的分配和回收工作,要求设计者选择和确定几种策略和结构: 1.调入…

STM32F407-14.3.10-01PWM模式

PWM 模式 脉冲宽度调制模式可以生成一个信号,该信号频率由 TIMx_ARR⑩ 寄存器值决定,其占空比由 TIMx_CCRx⑤ 寄存器值决定。 通过向 TIMx_CCMRx 寄存器中的 OCxM⑰ 位写入 110 (PWM 模式 1)或 111 (PWM 模式 2&#…

SpringCloud简介和用处

Spring Cloud是一套基于Spring Boot的微服务框架,它旨在提供一种快速构建分布式系统的方法。它可以帮助开发人员构建具有高可用性、可扩展性和容错性的微服务,并通过Spring Boot的开发工具和库提供强大的支持。 一、简介 Spring Cloud是Spring家族中的一…

React如何像Vue一样将css和js写在同一文件

如果想在React中想要像Vue一样把css和js写到一个文件中,可以使用CSS-in-JS。 使用CSS-in-JS 下载 npm i styled-components使用 就像写scss一样,不过需要声明元素的类型 基本语法及展示如下, import styled from "styled-component…

周周清(1)

项目进度&#xff1a; 最近一直在搭建环境&#xff0c;都没写什么&#xff1a;登陆页面采用登陆注册在同一个界面&#xff0c;用v-if进行渲染&#xff0c;并且借助validation插件中的yup神器进行校验&#xff0c; <script setup> // import { ref } from vue import * …

Qt配置OpenCV(MSVC编译)

目录 1.准备工具 1.1 Qt&#xff1a;5.14.2 64位 1.2 Opencv&#xff1a;4.6.0 1.3 Visual Studio 2017 2. QtMSVC开发环境搭建 3. 配置环境变量 3.1 Opencv环境变量配置 4. Qt 代码测试 1.准备工具 1.1 Qt&#xff1a;5.14.2 64位 1.2 Opencv&#xff1a;4.6.0 官…

数据库-PostgreSQL学习笔记

目录 PostgreSQL介绍与安装docker安装腾讯云免费领用1个月 数据库操作连接数据库实例创建数据库查看数据库列表使用数据库删除数据库修改数据库属性 表操作字段类型整数浮点数日期与时间类型字符串类型 DDLCREATEDROPALTER DMLINSERTUPDATEDELETE 查询查询所有数据查询部分列指…

Windows驱动中校验数字签名(使用 ci.dll)

1.背景 对于常规应用程序来说&#xff0c;校验数字签名认证在应用层可以使用 WinVerifyTrust, 在驱动层使用常规的 API无法使用&#xff0c;自己分析数据又太麻烦。 在内核中 ci.dll 包装了数据签名验证相关的功能&#xff0c;我们可以使用该 dll 来实现我们的数字签名验证。 详…

Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]

Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204] 1.python uf函数1.1 NXOpen.UF.Part.New1.2 NXOpen.UF.Part.Save1.3 NXOpen.UF.Ui.OpenListingWindow1.4 NXOpen.UF.Ui.IsListingWindowOpen1.5 NXOpen.UF.Ui.WriteListingWindow1.6 NXOpen.UF.Ui.SaveListingWin…

电气间隙和爬电距离的算法

电气间隙和爬电距离 一、定义 1、电气间隙&#xff1a;不同电位的两个导电部件间最短的空间直线距离。 2、爬电距离&#xff1a;不同电位的两个导电部件之间沿绝缘材料表面的最短距离。 3、隔离距离&#xff08;机械式开关电器一个极的&#xff09;&#xff1a;满足对隔离器…

华为手环关闭智能适时测量

问题 使用华为手环并使用华为创新研究APP后&#xff0c;会自动打开智能适时测量开关&#xff0c;此开关开启后&#xff0c;手环会在睡眠时间自动测量血氧&#xff0c;增加手环功耗从而影响续航&#xff0c;用户可根据自身需求决定是否开启&#xff0c;下文介绍如何找到此开关。…

Stable Diffusion 系列教程 - 1 基础准备(针对新手)

使用SD有两种方式&#xff1a; 本地&#xff1a; 显卡要求&#xff1a;硬件环境推荐NVIDIA的具有8G显存的独立显卡&#xff0c;这个显存勉勉强强能摸到门槛。再往下的4G可能面临各种炸显存、炼丹失败、无法生成图片等各种问题。对于8G显存&#xff0c;1.0模型就不行&#xff0…

洛谷 P9516 color C++代码

目录 前言 思路点拨 AC代码 结尾 前言 今天我们来做洛谷上的一道题目。 网址&#xff1a;color - 洛谷 题目&#xff1a; 思路点拨 这题就是if-else判断输入的五个数据和不就OK了&#xff1f; 在这里我的估值是183&#xff08;截止2023.12.3&#xff09;&#xff0c;热…

【力扣】56. 合并区间

【力扣】56. 合并区间 文章目录 【力扣】56. 合并区间1. 题目介绍2. 解法2.1 方法一&#xff1a;标志位2.2 方法二&#xff1a;排序 遍历 3. Danger参考 1. 题目介绍 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合…

Linux系统配置深度学习环境之cudnn安装

前言 一个针对深度学习应用优化的 GPU 加速库。它提供了高性能、高可靠性的加速算法&#xff0c;旨在加速深度神经网络模型的训练和推理过程。 cuDNN 提供了一系列优化的基本算法和函数&#xff0c;包括卷积、池化、规范化、激活函数等&#xff0c;以及针对深度学习任务的高级功…

移动平均滤波的原理和C代码

移动平均滤波是一种简单有效的平滑信号的方法&#xff0c;它通过计算一系列数据点的平均值来减小信号中的波动。基本的移动平均滤波方法有两种&#xff1a;简单移动平均&#xff08;SMA&#xff09;和指数加权移动平均&#xff08;EWMA&#xff09;。 简单移动平均滤波&#xf…

Go读取yaml文件,struct返回,json输出

程序模块中&#xff0c;缺少不了一些配置定义&#xff0c;这时定义yaml是个很好的选择 先定义yaml文件内容&#xff0c;文件名为&#xff1a;task_status_config.yaml confs:#阅读类任务&#xff0c;即提醒任务read:name: readawait: #待开始任务status_id: 0ing: #进行中任务…