自动驾驶专题介绍 ———— 激光雷达标定

文章目录

  • 介绍
  • 激光雷达与激光雷达之间的外参标定
  • 激光雷达与摄像头的标定

介绍

 激光雷达在感知、定位方面发挥着重要作用。跟摄像头一样,激光雷达也是需要进行内外参数标定的。内参标定是指内部激光发射器坐标系与雷达自身坐标系的转换关系,在出厂之前就已经完成了标定,可以直接使用。自动驾驶系统需要进行的是外参的标定,即激光雷达自身坐标系与车体坐标系的关系。
 激光雷达与车体为刚性连接,两者间的相对姿态和位置固定不变。为了建立激光雷达之间以及激光雷达与车辆之间的相对坐标关系,需要对激光雷达的安装进行标定,并使激光雷达数据从激光雷达坐标系转换至车体坐标系上。以Velodyne VLP-16激光雷达为例,该雷达以正上方未Z轴,电缆线接口方向为Y轴的负方向,通过右手法则来确定X轴方向。如下图所示。
在这里插入图片描述
 车体坐标系以车辆后轴中心为坐标原点,垂直地面向上为z轴,朝前为x轴,按照右手坐标系,确定坐标系的y轴方向。两个三维空间的坐标系之间的转换关系可以用旋转矩阵家平移矩阵来表示。如图所示。
在这里插入图片描述

 P点在Oxyz坐标系的坐标为P(x,y,z),在Oxyz坐标系下的坐标为P(x,y,z)。此时P点与P的转换关系可表示为:
在这里插入图片描述
 如果知道了α,β,γ三个角度以及x,y,z方向上的平移量,就可以求得两个坐标系的旋转、平移矩阵,实现坐标转换。进一步推导坐标转换方程,可以得到:
在这里插入图片描述
 假设H等于上式中的转化矩阵,那么标定的目标可以看成获取矩阵H中的6个参数。在自动驾驶汽车上,通常需要将激光雷达与惯性导航IMU坐标系进行标定,来建立激光雷达与车体坐标系之间的关系。激光雷达与车体之间的外参式感知系统建立环境模型的重要参数之一,不准确的外参会对感知系统及规划和决策系统产生负面的影响。

激光雷达与激光雷达之间的外参标定

 在自动驾驶的车辆上,有时会存在多个激光雷达的情况,每一个激光雷达获取的外部环境都必须准确地映射到车体坐标系下。因此,在多个激光雷达地情况下,需要对多个激光雷达地相对位置进行标定和校准。激光雷达之间的外参标定存在多种思路,其中较为常见的是通过不同激光雷达与车体之间的坐标转换关系来间接推导出激光雷达之间的坐标转换关系。这里介绍一种应用在移动车辆平台上的自动在线的过激光雷达标定方法。该方法设定一条标定路线上,让车辆沿着这条线行驶,进行自标定。在标定路上的垂直杆上贴上反光带作为特征点,以这些特征点建立外参的约束条件进行标定。
 设在标定路线上有Nt个路标,车上共有Nl个激光雷达。设激光雷达Li扫描到一个特征带你Xj,Li,根据坐标转换,在时刻t,其在空间中的真实坐标为:
在这里插入图片描述
 上式中, 可以通过IMU测量出来,因此上式中未知量仅有在这里插入图片描述。当我们能过够得到特征点在空间中的位置估计时,可以直接利用最小二乘法来求解参数:

在这里插入图片描述
 式中,在这里插入图片描述作为特征点在空间中的位置估计。这里将上述的最小二乘问题转化成二阶锥(SOCP)来求解,求解出激光雷达与车体之间的关系,并进一步推导出激光雷达与激光雷达之间的外参。

激光雷达与摄像头的标定

 自动驾驶的车上,激光雷达与无人驾驶汽车为刚性连接,两者之间的相对姿态和位移固定不变。因此,激光雷达扫描获取到的数据点,在环境坐标系中有唯一的位置坐标与之对应。同样的,摄像头在环境坐标系中也有唯一的位置坐标。这样看来,激光雷达与摄像头之间必然存在着一个关系来完成坐标转换。激光雷达与摄像头的联合标定,就是上文提到的通过提取标定物在单线激光雷达和图像上的对应特征点,完成单线激光雷达坐标、摄像头坐标、图像像素坐标等多个传感器坐标的统一,实现激光雷达与摄像头的空间校准。
 当完成摄像头外参标定、激光雷达的外参标定之后,二者之间的关系可以完全确定。当摄像头与激光雷达同时观察点P时,点P在摄像头自身环境坐标中的坐标为PVC(xVC, yVC, zVC),在摄像头图像的图像像素坐标系下的投影坐标为U(u, v, 1)T,在激光雷达坐标系下的坐标为Pl(xl, yl, zl)。假设激光雷达与摄像头的坐标转换关系为(R | T),则激光点云中的扫描点(xl, yl, zl)在图像像素坐标系中的坐标(u, v)可以通过下式算出:
在这里插入图片描述
 其中,K为摄像头的内参矩阵。
在这里插入图片描述
 对上式进行变换可得:

在这里插入图片描述
 激光雷达与摄像头的标定,转化为对上式中的(R | T)求解。(R | T)共有12个参数来进行求解,因此理论上至少需要4组数据才能计算得到最终结果。为了提高精度,一般在标定过程中使对应点的数量n>4,之后使用最小二乘法进行求解。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

预训练、微调和上下文学习

最近语言模型在自然语言理解和生成方面取得了显著进展。这些模型通过预训练、微调和上下文学习的组合来学习。在本文中将深入研究这三种主要方法,了解它们之间的差异,并探讨它们如何有助于语言模型的学习过程。 预训练 预训练(Pre-training&…

计算机网络--网络传输基本概念

什么是IP地址? 在计算机出厂的时候,有一个唯一标识的物理地址。但是因为厂商不同等各种原因,用来标识一台计算机在网络中是比较麻烦的,于是出现了IP地址,IP地址是互联网协议地址的意思,是“Internet Protoc…

H.264帧结构和RTSP协议源码框架

目录 1、H264编码原理和基本概念 1.1、h.264编码原理 1.2、h.264编码相关的一些概念 2、H264的NAL单元详解 2.1、VCL和NAL的关系 2.2、H.264视频流分析工具 2.3、h264视频流总体分析 2.4、相关概念 3、H264的NAL单元---sps和pps 3.1、sps和pps详解 3.2、H264的profil…

InnoDB的三种行锁(提供具体sql执行案例分析)

InnoDB存储引擎有3种行锁的算法,其分别是: Record Lock(记录锁):单个行记录上的范围 (锁住某一行记录)Gap Lock(间隙锁):间隙锁,锁定一个范围,但不包含记录本…

人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测。孪生网络是一种用于度量学习(Metric Learning)和比较学习(Compariso…

基于深度学习的人脸面部表情识别系统【含Python源码+PyqtUI界面+原理详解】

功能演示 摘要:面部表情识别(Facial Expression Recognition)是一种通过技术手段识别人物图像中人脸面部表情的技术。本文详细介绍了其实现的技术原理,同时给出完整的Python实现代码、训练好的深度学习模型,并且通过Py…

GO语言使用最简单的UI方案govcl

接触go语言有一两年时间了。 之前用Qt和C#写过桌面程序,C#会被别人扒皮,极度不爽;Qt默认要带一堆dll,或者静态编译要自己弄或者找库,有的库还缺这缺那,很难编译成功。 如果C# winform可以编译成二进制原生…

商品减库在Redis中的运用

一.商品减库中存在问题 1.传统的代码 1.1引入jar包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.…

基于tensorflow深度学习的猫狗分类识别

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

机器学习之K-means聚类算法

目录 K-means聚类算法 算法流程 优点 缺点 随机点聚类 人脸聚类 旋转物体聚类 K-means聚类算法 K-means聚类算法是一种无监督的学习方法&#xff0c;通过对样本数据进行分组来发现数据内在的结构。K-means的基本思想是将n个实例分成k个簇&#xff0c;使得同一簇内数据相…

基于小程序的用户服务技术研究

目录 1. 小程序开发技术原理 2. 用户服务设计3. 数据库设计和管理4. 安全和隐私保护5. 性能优化和测试总结 关于基于小程序的用户服务技术研究&#xff0c;这是一个非常广泛和复杂的领域&#xff0c;需要涉及多个方面的知识和技术。一般来说&#xff0c;基于小程序的用户服务技…

怎么学习数据库连接与操作? - 易智编译EaseEditing

学习数据库连接与操作可以按照以下步骤进行&#xff1a; 理解数据库基础知识&#xff1a; 在学习数据库连接与操作之前&#xff0c;首先要了解数据库的基本概念、组成部分和工作原理。 学习关系型数据库和非关系型数据库的区别&#xff0c;了解常见的数据库管理系统&#xff…

HTTP协议

HTTP协议专门用于定义浏览器与服务器之间交互数据的过程以及数据本身的格式 HTTP概述 HTTP是一种客户端&#xff08;用户&#xff09;请求和服务器&#xff08;网站&#xff09;应答的标准&#xff0c;它作为一种应用层协议&#xff0c;应用于分布式、协作式和超媒体信息系统…

【springboot】—— 后端Springboot项目开发

后端Springboot项目开发 步骤1 先创建数据库&#xff0c;并在下面创建一个user表&#xff0c;插入数据&#xff0c;sql如下&#xff1a; CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,email varchar(255) NOT NULL COMMENT 邮箱,password varchar(255)…

王益分布式机器学习讲座~Random Notes (1)

0 并行计算是什么&#xff1f;并行计算框架又是什么 并行计算是一种同时使用多个计算资源&#xff08;如处理器、计算节点&#xff09;来执行计算任务的方法。通过将计算任务分解为多个子任务&#xff0c;这些子任务可以同时在不同的计算资源上执行&#xff0c;从而实现加速计…

ChatGLM2-6B发布,位居C-Eval榜首

ChatGLM-6B自2023年3月发布以来&#xff0c;就已经爆火&#xff0c;如今6月25日&#xff0c;清华二代发布&#xff08;ChatGLM2-6B&#xff09;&#xff0c;位居C-Eval榜单的榜首&#xff01; 项目地址&#xff1a;https://github.com/THUDM/ChatGLM2-6B HuggingFace&#xf…

Sequential用法

目录 1.官方文档解释 1.1原文参照 1.2中文解释 2.参考代码 3.一些参考使用 3.1生成网络 3.2 感知机的实现 3.3组装网络层 1.官方文档解释 1.1原文参照 A sequential container. Modules will be added to it in the order they are passed in the constructor. A…

【书】《Python全栈测试开发》——浅谈我所理解的『自动化』测试

目录 1. 自动化测试的What and Why?1.1 What1.2 Why2. 自动化的前戏需要准备哪些必备技能?3. 自动化测试类型3.1 Web自动化测试3.1.1 自动化测试设计模式3.1.2 自动化测试驱动方式3.1.3 自动化测试框架3.2 App自动化测试3.3 接口自动化测试4. 自动化调优《Python全栈测试开发…

Springboot钉钉免密登录集成(钉钉小程序和H5微应用)

欢迎访问我的个人博客:www.ifueen.com RT&#xff0c;因为业务需要把我们系统集成到钉钉里面一个小程序和一个H5应用&#xff0c;并且在钉钉平台上面实现无感登录&#xff0c;用户打开我们系统后不需要再输入密码即可登录进系统&#xff0c;查阅文档实际操作过之后记录一下过程…

Qt6.2教程——4.QT常用控件QPushButton

一&#xff0c;QPushButton简介 QPushButton是Qt框架中的一种基本控件&#xff0c;它是用户界面中最常见和最常用的控件之一。QPushButton提供了一个可点击的按钮&#xff0c;用户可以通过点击按钮来触发特定的应用程序操作。比如&#xff0c;你可能会在一个对话框中看到"…