13. 基于标定板的lidar到车体的外参标定思路

news2024/11/15 9:52:19

目录

  • 1. 什么是lidar到车体的外参?
  • 2. 为什么要做这个外参矫正?
  • 3. 怎么做这个外参矫正?
    • 3.1 标定思路
    • 3.2 lidar检测标定板上的圆心流程介绍
    • 3.3 匹配过程
  • 4. 老乡别走,一起来读书吧

1. 什么是lidar到车体的外参?

在机器人,自动驾驶等领域,要想载体能够自主导航,那我们就得赋予他们和人类似的能力,就是让他们知道,自己是谁,自己在哪,我们怎么才能去到哪的问题。
载体上有很多传感器,各个传感器都是从自己的视角来对周围环境进行观测,这个“自己的视角”就是标记自己是谁,也就是说在一个自动驾驶汽车上,我们会给各个传感器打上标签,来分别每种观测数据是来自谁;
那么多传感器能够帮助载体完成自主导航的任务,都从自己的视角来定位和感知,这些信息我们是不能直接用的,我们得把他们统一到同一个坐标系,这样才能弄清楚“自己在哪”的问题,不能说前视相机说障碍物离我还有一米半呢,放心往前开就完事了,可是算上车头,车子往前动一下可能就撞上了。这时候就需要标定相机和车体之间的外参,其他传感器同理。

2. 为什么要做这个外参矫正?

这个问题,前面应该已经讲清楚了,如果不做外参标定,就相当于全车的各个传感器都认为自己是“车”,都基于他观测到的场景对车辆运动进行指挥,这显然是有问题的。举个简单的例子,我们人的触觉,视觉听觉这些传感器告诉我们所谓的“前后左右上下”这些方位,其实都是基于我们身体的坐标系的。当然我们的CPU处理能力很强,可以快速的在各个“坐标系”之间转换,我们能快速的知道,那个物体离我的手多远,离我的头大约几公分,周围有多少车辆,那些车辆接下来要做什么,我该采取什么样的行动,我们感觉很轻松写意的事情,在自动驾驶汽车来说可能就把他CPU干烧了。
扯远了,总之,在涉及多传感器融合,不管是定位还是感知,最后规划,都要把各个传感器观测到的信息,转到车体系这个坐标系,让车以自己的视角知道自己在哪,感知到了啥,如何做决策。

3. 怎么做这个外参矫正?

之前介绍过lidar到车体系自标定的思路,这个可以看我之前的自标定博客。
今天再来介绍一种基于标定板的标定思路,不同于之前自标定,这种标定方案是依赖特殊设计的标志物来完成lidar和车体系的外参矫正。
其实这种依赖标志物进行标定的方案,精度应该更高,比如很多在标定间里做的标定都是这种方案。

标定间可以设计很多特征明显的标志物,这可以保证传感器采集数据时少引入额外的观测噪声;相比自动驾驶车辆在行驶过程中观测到的场景,标定间内的标志物是经过高精度设备测量过的,可以认为标定时对照的“真值”更加精确,;而且标定间内的场景固定,更加可控,能比较容易的实现更高精度,更一致的标定结果。
当然缺点也很明显,成本比较高。

3.1 标定思路

大家应该了解ICP吧,简单来说就是调整外参对齐两个坐标系内同时观测到的3D点。对于lidar和车系之间的外参,也可以使用ICP。于是我们就得知道某些车系和lidar系下的点坐标,然后调整外参对齐他们,“完全对齐”了这外参也就求解出来了。
于是我们现在应该解决如下几个问题:

  1. 点从哪来?
  2. 我们应该怎么设计标定板?
  3. lidar检测到那些点,也就是知道了那些点在lidar系上的坐标,那车体系下这些点坐标我们还是不知道啊。

好,我们一一来解决。

首先点从哪来,显然是标定板,所以我们要设计一款标定板。
其次,如何设计这款标定板?应该是便于lidar对我们要的那些点进行检测。
最后,如何得到这些点在车体系下的坐标。

lidar能够对点云中呈现明显特征的部分进行检测,所以为了让我们设计的标定板便于lidar对其进行检测,我们应该让标定板满足一些几何特征,比如圆形。很容易想到,我们要的是一些点,那么我们可以让lidar检测出这些圆心作为我们要ICP的点。
那么如何得到这些点在车体系下的坐标呢?这块比较复杂。
如果是土豪,可以设计好标定间的结构,固定车的位置,即已知车辆后轴中心相对于标定板的位置,再结合标定板上圆孔的位置,直接推算出那些圆心在车体系下的坐标。
我来说说我们的方案,我们相对没那么土豪,我们借助全站仪来辅助测量。
在这里插入图片描述
由于某些原因,上面的图比较模糊,大家凑活看,全站仪怎么使用,感兴趣的可以自行百度,我就简单介绍下如何得到车体系下的坐标:

  1. 我们可以通过全站仪同时打车辆上和标定板上的点,通过这些点可以得到全站仪和车体系之间的外参。
  2. 由于标定板尺寸是已知的,我们能够拿到那些圆心点在全站仪下的坐标,再通过外参就可以转换到车体系下。

好,至此我们的准备工作都已经完成了,接下来就是核心功能实现,一个是lidar对圆心的检测,一个就是ICP。其实ICP也不是多么难,这里就不介绍了。简单介绍下圆心怎么找。

3.2 lidar检测标定板上的圆心流程介绍

这里仅仅介绍一种思路。
核心思路:由于我们设计了上述标定板,四个圆心的尺寸以及结构信息我们都已经知道,利用这个约束,我们可以在lidar点云中寻找匹配。

于是流程为:接收lidar点云->点云预处理->提取标定板平面->将标定板平面旋转到与坐标系的某个平面平行->根据已知约束构建模版->拿这个模板在标定板平面上寻找匹配。

注意:将标定板平面旋转到与坐标系某个平面平行是必要的,除非你把你根据约束构建的模版旋转到标定板平面。

3.3 匹配过程

在这里插入图片描述
上图是找到圆心后的结果展示。
寻找圆心的过程也很简单,首先大体确定标定板中心位置,然后根据四个圆心位置构建约束(我这里是矩形),然后用这个矩形以各个方向旋转和平移来匹配四个圆的位置。

怎么才算匹配到了最好的位置?
当点云中的点落入以四个圆心,圆半径围成的圆内的点最少为最佳匹配。

下图为四个圆心在标定板上的移动过程展示:
在这里插入图片描述
下图是落入四个圆中点的个数统计趋势。
在这里插入图片描述
至此,找到圆心在lidar系下的坐标,结合之前得到的车体系下的坐标,做一个ICP,外参就求解出来了。

4. 老乡别走,一起来读书吧

微信公众号-过千帆,欢迎大家一起来读书交流成长,不焦虑!
在这里插入图片描述

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

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

相关文章

猫头虎分享疑难杂Bug:ERROR: No matching distribution found for beautifulsoup4解决方案

🐯 猫头虎分享疑难杂Bug:ERROR: No matching distribution found for beautifulsoup4解决方案 摘要 Python开发过程中,ERROR: No matching distribution found for beautifulsoup4 是常见错误之一。本文将详细介绍此错误的产生原因及解决方…

2024最详细的安装教程来了!手把手教你安装Python和PyCharm

最详细的Python安装教程 一、进入Python官网首页,下载最新的Python版本 https://www.python.org/downloads/ 选择最新的Python3.10.5,下载64位的版本 二、下载完成后,进行安装 1.双击Python-3.10.5-amd64.exe 2.选择Customize installation…

入门 PyQt6 看过来(案例)21~ 绘图案例

今天带给大家的是一些绘制图形的案例,第一个是绘制奥运图片,第二个是绘制五角星,第三个是绘制时钟。 1 绘制奥运图片 源码: import sys from PyQt6.QtWidgets import QApplication, QWidget from PyQt6.QtCore import Qt, QRect…

CSS mask-image 实现边缘淡出过渡效果

使用场景 在生产环境中,遇到一个需求,需要在一个深色风格的大屏页面中,嵌入 Google Maps。为了减少违和感,希望地图四边能够淡出过渡。 这里的“淡出过渡”,关键是淡出,而非降低透明度。 基于 Google Ma…

科普文:微服务之Spring Cloud Alibaba组件Nacos一致性协议Distro+Raft概叙

一、概要 Nacos是阿里开放的一款中间件,它主要提供三种功能:持久化节点注册,非持久化节点注册和配置管理。 二、一致性协议 - AP/CP Nacos不是纯粹的AP服务,也不是纯粹的CP服务,而是两者同时支持。 这要从服务注册…

【学习日记】静态库与动态库的区别及使用指南

文章目录 静态库与动态库的区别及使用指南静态库定义使用方式优点缺点使用示例创建静态库使用静态库 动态库定义工作原理优点缺点使用示例创建动态库使用动态库 如何区分静态库和动态库总结 封面 静态库与动态库的区别及使用指南 本文将详细介绍这两种库的定义、工作原理、优缺…

【机器学习】为什么使用Scikit-Learn来进行逻辑回归以及如何使用Scikit-Learn进行逻辑回归

引言 在Scikit-Learn中,逻辑回归是通过LogisticRegression类实现的。该类提供了多种方法来训练模型、进行预测以及评估模型性能。用户可以自定义许多参数,包括正则化类型(L1、L2或弹性网)、求解器类型(用于优化问题&am…

Cesium初探

Cesium 是一个开源 JavaScript 库,用于创建 3D 地理空间应用程序。它允许开发者在 Web 浏览器中构建高性能、交互式的 3D 地图和地球可视化应用,而无需安装任何插件。Cesium 支持多种数据格式,包括 3D Tiles(一种高效的 3D 场景流…

变量作用域、作用域链、return

全局变量 全局变量因为在全局操作会每次留存上次操作的结果 局部变量因为执行完成就会被销毁并不会保留本次操作的结果 可以通过传参和返回,将结果不断地专递处理 局部变量 参数也是局部变量 函数内的预解析预赋值 函数内的局部变量 如果同名全局变量遇到局部变量…

Java的jstat命令输出GC信息时携带时间信息(Windows系统中)

之前写了一篇在Linux系统中携带时间的文章:Java的jstat命令输出GC信息时携带时间信息(Linux系统中) 但是很多时候,我们都是在Windows系统中开发,可能有些人没有Linux环境,所以这篇文章就讲一下在Windows系统…

[论文精读]Multi-View Multi-Graph Embedding for Brain Network Clustering Analysis

论文原文:3504035.3504050 (acm.org) 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 省流版 1.1. 心得…

63 epoll服务器 (ET模式)

基于LT模式修改,并加入前面的应用层计算器,实现稍完整的服务器功能 1.修改tcp_socket.hpp,新增非阻塞读和非阻塞写接口 2.对于accept返回的new_sock加上EPOLLET这样的选项 注意:此代码暂时未考虑listen_sock ET的情况&#xff0c…

力扣高频SQL 50题(基础版)第三十九题

文章目录 力扣高频SQL 50题(基础版)第三十九题1327.列出指定时间段内所有的下单产品题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第三十九题 1327.列出指定时间段内所有的下单产品 题目说明 表: Produc…

SQLite库笔记:API函数编程

本文主要介绍SQLite库的一些核心API函数,和实现数据库增删查改功能的C语言示例程序代码。 目录 1. API函数原型 1.1 sqlite3_open 1.2 sqlite3_close 1.3 sqlite3_free 1.4 sqlite3_errmsg 1.5 sqlite3_exec 1.6 sqlite3_get_table 1.7 sqlite3_free_table…

springboot废物回收管理商城-计算机毕业设计源码18221

基于Spring boot的废物回收管理商城 摘要 本研究基于Spring Boot框架设计并开发了一款废物回收管理商城系统,旨在有效整合废物回收资源,提高废物回收的效率和便捷性。通过对废物回收市场的调研与分析,结合现代互联网技术和物联网技术&#…

Docker Buildx 简介与安装指南

目录 1.Docker Buildx 简介 1. 引言 2. Docker Buildx 的背景和意义 3. Docker Buildx 的主要特性 4. 为什么选择 Docker Buildx 2.激活 Docker 实验性特性:一步设置 3.比如ARM架构下的Docker Buildx未自带 4.重启docker 🌐 无论你是初学者还是经…

非递归的归并排序

我们之前讲的快速排序有非递归的写法,那么归并排序也有非递归写法,我们一起来研究一下吧。 快速排序的非递归算法是使用的手动搭栈的方法,将区间存入栈里面,然后再排序,但是这次的归并排序可以吗?大家都知…

WebLogic 8.x中间件监控指标解读

监控易是一款功能强大的IT监控系统,能够全面监控各类IT设施的运行状态,及时发现并解决潜在问题。针对WebLogic 8.x中间件的监控,监控易提供了一系列详尽的指标,确保WebLogic集群和应用的稳定运行。 在WebLogic集群监控方面&#x…

OSPF路由协议----开放式最短路径优先

一、为什么需要OSPF? 1、RIP以跳数评估的路由并非最优路径 传输时间T=2Mps/64Kbps=32s 如果选择S0/0传输,传输时间T=2Mps/2Mps+2Mps/2Mps+2Mps/2Mps=3s 时长大大缩短。 2、RIP的最大跳数为16,网络尺度小 RIP协议限制网络直径不能朝超过16跳,只适用于小型网。 3、RIP收…

登录谷歌账号时无法登录,提示“您正常是在一部Google无法识别的设备上登录”,原因和如何解决?

这段时间,有几个朋友联系GG账号服务,说她们在登录谷歌账号的时候,提示Google账号无法登录,提示:您正尝试在一部Google无法识别的设备上登录,我们没有足够的信息来验证您的身份。为了安全起见,您…