【三维点云】01-激光雷达原理与应用

news2024/9/24 19:25:07

文章目录

  • 内容概要
  • 1 激光雷达原理
    • 1.1 什么是激光雷达?
    • 1.2 激光雷达原理
    • 1.3 激光雷达分类
      • 三角法
      • TOF法
        • 脉冲间隔测量法
        • 幅度调制的相位测量法
    • 相干法
    • 激光雷达用途
  • 2 激光雷达安装、标定与同步
    • 2.1 激光雷达安装方式
      • 考虑因素
    • 2.2 激光雷达点云用途
    • 2.3 数据融合
      • 多激光雷达数据融合
      • 多传感器数据融合
    • 2.4 激光雷达系统方案
      • 硬件部分
        • 全方位感知(主雷达+近补雷达)
        • 反射强度
        • 抗干扰
          • 抗多雷达对射干扰
          • 抗强光干扰
        • 多传感器融合
        • 多传感器标定
          • 时间同步
          • 空间同步
      • 软件部分
        • 障碍物检测
        • 障碍物分类
        • 运动物体跟踪
        • 可行驶区域检测
        • SLAM建图
        • 重定位
  • 3 激光雷达数据采集
  • 4 ROS编程基础

内容概要

1 激光雷达原理
2 激光雷达安装、标定与同步
3 激光雷达数据采集
4 ROS编程基础

1 激光雷达原理

1.1 什么是激光雷达?

LiDAR,Light Detection And Ranging
LADAR,LAser Detection And Ranging
在这里插入图片描述
探测和测距系统利用发射出的不同频率的波长,根据其从障碍物上返回所需的时间来绘制一个区域的地图。

LiDAR、Laser Radar以及LADAR系统,都使用光频率来进行这类测量。各系统之间,虽然原理近似,但应用特点和适用领域大有不同。

LiDAR已广泛意义上成为基于光的非接触式测量仪器的统称,但在实践中,LiDAR测量设备在处理“大区域”、“大容量”扫描领域作业中更加适用,系统通常会以网格或锥形的方式发出多束激光,并通过不断运动快速覆盖数百万个点,其精度根据需求,从0.1英寸(2.54毫米)到超过1英尺(304.8毫米)不等。LiDAR测量系统在土地测绘、建筑信息建模和自动驾驶汽车的导航系统中应用较为普遍。

Laser Radar系统,则更接近于:采用非合作靶标进行测量的激光跟踪仪。测量时,Laser Radar系统通常会发出一个单一的、聚焦的激光束来测量几米范围内的特征,精度在微米级别。

LADAR系统,正好集合了LiDAR与Laser Radar系统的优势。LADAR测量系统,如API品牌的9D LADAR,可以在不牺牲精度的前提下,提供更大的测量范围。LADAR系统可在所有Laser Radar适用领域中应用,并提供更佳的测量效率,完美适用于以白车身检测或机身装配等为代表的高端应用环境。

LiDAR系统更多地利用网格或锥状激光束来增加覆盖范围,并在较远的距离以较低的精度收集数据;Laser Radar系统则牺牲了测量速度和效率,以提高单点测量精度;对于制造业中真正高效、流畅运作的自动化近线/在线检测解决方案来讲,LiDAR系统缺乏精度,而Laser Radar则缺乏测量的速度和效率。LADAR系统,则兼容了前两种系统的优势,能够同时保障精度与速度,实现更高效的测量,更加适用于工业自动化生产领域的各测量环节。

参考:LADAR, LiDAR & Laser Radar激光雷达的种类划分与功能对比

1.2 激光雷达原理

在这里插入图片描述

激光雷达优点:
1、具有极高的分辨率
2、抗干扰能力强
3、获取的信息量丰富
4、可全天时工作

激光雷达缺点:
易受环境中可反射激光物质的影响,例如天气(雨天)、灰尘和昆虫等影响。

1.3 激光雷达分类

在这里插入图片描述

三角法

在这里插入图片描述
适应于近距离,百微米精度,随着距离的增加,精度会变得更差。

TOF法

在这里插入图片描述

脉冲间隔测量法

在这里插入图片描述

幅度调制的相位测量法

在这里插入图片描述

脉冲型TOF法,随着距离的增加所需要测算的精度要更高,发射器件的功率要大,对发射器提出了高要求,所以长距离的高精度是没有办法实现的。

相干法

需要连续时间波长的叠加计算时间和距离,测量速度慢但是精度高,所以一般适用于手持扫描仪器中。
在这里插入图片描述

激光雷达用途

autonomous vehicles
在这里插入图片描述

agriculture
river survey
modelling of the pollution
archeology and building construction

2 激光雷达安装、标定与同步

2.1 激光雷达安装方式

在这里插入图片描述

考虑因素

激光雷达数量
激光雷达线束
安装位置
安装角度

2.2 激光雷达点云用途

在这里插入图片描述

2.3 数据融合

多激光雷达数据融合

为达到多线的效果,以多个少线数的激光雷达进行融合,降低成本。

在这里插入图片描述

多传感器数据融合

在这里插入图片描述

2.4 激光雷达系统方案

在这里插入图片描述
在这里插入图片描述
RS-LiDAR-16
RS-LIDAR-32B
GPS及惯导设备
IPC工控机
激光雷达安装支架(固定支架)
显示器
交换机
网线
多雷达模拟时间同步板

硬件部分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全方位感知(主雷达+近补雷达)

在这里插入图片描述
在这里插入图片描述

反射强度

抗干扰

抗多雷达对射干扰
抗强光干扰

多传感器融合

在这里插入图片描述

多传感器标定

时间同步

保证多个雷达的时间处于同一个时间计时标准(不进行时间同步时,每个雷达以启动时刻计时,使用自身内部独立的计时系统)。

外部时间源: GPS或网络时间源。
时间输入:
GPS通过UART接入雷达,发送GPRMC消息;PPS通过IO接入雷达,发送1 PPS脉冲信号。
网络时间通过以太网UDP指令发送时间,进行同步。

空间同步

保证所有的雷达数据转换到一个统一的坐标系下(不同雷达扫描到的同一个目标具有同样的坐标位置)
在这里插入图片描述
统一坐标系
选择位置最核心的一个雷达的坐标系作为雷达耦合的统一坐标系(理论上可以选择任意坐标系作为统一坐标系)

空间位置标定
平移量 – (x.y.z)
旋转量–(roll,pitch,yaw)
(平移量可以通过测量安装距离来标定初值,且有些安装方式是无法直接测距的,但是旋转量无法测量。)

软件部分

在这里插入图片描述

障碍物检测

障碍物检测是指从点云数据中提取出潜在的障碍物体,得到它们的方位、尺寸、形状、朝向等信息,
般通过bounding box来添加或者多边形来描述。

障碍物分类

障碍物分类是指在障碍物检测的基础上,得到物体的类别信息,例如车辆、行人、骑行者等。
在这里插入图片描述

运动物体跟踪

运动物体跟踪是指估计运动物体的运动状态,包括运动方向、速度大小、加速度、角速度、运动轨迹等
信息。

可行驶区域检测

可行驶区域检测是指在场景中分割出可以行驶的区域,根据不同的场景要求,相关的任务有路沿检测、车道线检测、地面检测、路面检测等任务。

SLAM建图

建图算法的挑战:
精度高满足定位算法厘米级需求;
大场景稳定性高,精度不随地图增大而降低;
人工干预少,重复精度高;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重定位

定位场景展示:
小型移动机器人

特点:
经常发生灵活机动
角速度较大
视角比较低

3 激光雷达数据采集

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 ROS编程基础

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

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

相关文章

Rust学习入门--【7】Rust 数据类型

类型系统 对于任何一门语言都是重中之重,因为它体现了语言所支持的不同类型的值。 类型系统 也是 IT 初学者最难啃的三座大山之一,而类型系统之所以难以理解,主要是没有合适的现成的参考体系。 我们说类型系统 存在的目的,就是 …

【代码随想录】-动态规划专题

文章目录理论基础斐波拉契数列爬楼梯使用最小花费爬楼梯不同路径不同路径 II整数拆分不同的二叉搜索树背包问题——理论基础01背包二维dp数组01背包一维数组(滚动数组)装满背包分割等和子集最后一块石头的重量 II目标和一和零完全背包零钱兑换 II组合总和…

JVM学习03:垃圾回收

JVM学习03:垃圾回收 1、如何判断对象可以回收 1.1、引用计数法 记录当前对象被引用的次数,当引用次数为0时则进行垃圾回收。缺点:当两个对象互相引用但并没有其他对象再引用它们时,他们的引用次数都为1,无法对其进行…

Spring Security in Action 第三章 SpringSecurity管理用户

本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringSecurity相关知识相关知识,打造完整的SpringSecurity学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获&#…

牛客寒假集训营6 E 阿宁的生成树

E-阿宁的生成树_2023牛客寒假算法基础集训营6 (nowcoder.com)开始慢慢补牛牛的题题意&#xff1a;最小生成树质数距离思路&#xff1a;最小生成树一共就两种算法&#xff0c;我们考虑Prim的过程初始连通块是1&#xff0c;然后考虑拿1和其他的结点连边当j-i<k时边权是gcd&…

【JavaSE】方法的使用

方法的使用BIT-5-方法的使用绪论1. 方法概念及使用1.1什么是方法1.2 方法定义1.3 实参和形参的关系&#xff08;重要&#xff09;1.4 没有返回值的方法2. 方法重载2.1 为什么需要方法重载2.2 方法重载概念3. 递归3.1 生活中的故事3.2 递归的概念3.2 递归执行过程分析3.3 递归练…

C++之异常处理

异常异常是面向对象语言处理错误的一种方式。当一个函数出现自己无法处理的错误时&#xff0c;可以抛出异常&#xff0c;然后输的直接或者间接调用者处理这个错误。语法捕获全部的异常try {//可能抛出异常的代码//throw异常对象 } catch(...) {//不管什么异常&#xff0c;都在这…

Java之动态规划之子序列问题

目录 0.动态规划问题 一.最长递增子序列 1.题目描述 2.问题分析 3.代码实现 二.最长递增子序列 1.题目描述 2.问题分析 3.代码实现 三.最长重复子数组 1.题目描述 2.问题分析 3.代码实现 4.代码的优化(滚动数组) 四.最长公共子序列 1.题目描述 2.问题分析 3.代…

C语言学习笔记(五):数组的使用

数组的定义 数组是一组有序数据的集合。数组中各数据的排列是有一定规律的&#xff0c;下标代表数据在数组中的序号。 用数组名和下标即可唯一地确定数组中的元素。 数组中的每一个元素都属于同一个数据类型。 一维数组 定义与引用 int a[10] {0,1,2,3,4,5,6,7,8&#xf…

Matlab绘制隐函数总结-二维和三维

1.二维隐函数 二维隐函数满足f(x,y)0f(x,y)0f(x,y)0&#xff0c;这里无法得到yf(x)yf(x)yf(x)的形式。不能通过普通函数绘制。 我们要关注的是使用fplot函数和fimplicit函数。 第1种情况&#xff1a;基本隐函数 基本的隐函数形式形如&#xff1a; x2y22x2(x2y2)12x^{2}y^{…

【Qt】Qt 隐式共享

文章目录一、导读二、隐式共享简介三、源码角度分析隐式共享四、隐式共享在开发中的使用五、隐式共享迭代器问题六、隐式共享类和线程一、导读 在实际开发中&#xff0c;Qt中很多类可以直接作为函数参数传递&#xff0c;这样做是为了什么&#xff1f;其背后的实现机制又是什么…

进程,线程

进程是操作系统分配资源的基本单位&#xff0c;线程是CPU调度的基本单位。 PCB&#xff1a;进程控制块&#xff0c;操作系统描述程序的运行状态&#xff0c;通过结构体task,struct{…}&#xff0c;统称为PCB&#xff08;process control block&#xff09;。是进程管理和控制的…

#电子电气架构——Vector工具常见问题解决三板斧

我是穿拖鞋的汉子,魔都中一位坚持长期主义的工科男。 今天在与母亲聊天时,得到老家隔壁邻居一位大姐年初去世的消息,挺让自己感到伤感!岁月如流水,想抓都抓不住。想起平时自己加班的那个程度,可能后续也要自己注意身体啦。 老规矩,分享一段喜欢的文字,避免自己成为高知…

千锋教育嵌入式物联网教程之系统编程篇学习-03

目录 进程的终止 exit函数 _exit函数 进程退出清理 进程间的替换 进程间通信 常见通信机制 进程间通信的实质 信号 产生信号的方式 信号的默认处理方式 进程对信号的处理方式 kill函数 进程的终止 使用exit函数对进程进行终止&#xff0c;而return只是结束函数&a…

电子技术——共模抑制

电子技术——共模抑制 我们在之前学习过&#xff0c;无论是MOS还是BJT的差分输入对&#xff0c;共模信号并不会改变漏极电流的大小&#xff0c;因此我们说差分输入对共模信号无响应。但是实际上由于各种客观非理想因素&#xff0c;例如电流源有限阻抗等&#xff0c;此时共模是影…

LINUX提权入门手册

前言 发点存货 LINUX权限简介 在学习提权之前我们先了解一下linux里面的权限我们使用命令: ls -al即可查看列出文件所属的权限&#xff1a; 文件头前面都有一段类似的字符&#xff0c;下面我们仔细分析一下里面符号分别代表什么。 -rw-r--r-- 1 root root 第一个符号-的…

现代 cmake (cmake 3.x) 操作大全

cmake 是一个跨平台编译工具&#xff0c;它面向各种平台提供适配的编译系统配置文件&#xff0c;进而调用这些编译系统完成编译工作。cmake 进入3.x 版本&#xff0c;指令大量更新&#xff0c;一些老的指令开始被新的指令集替代&#xff0c;并加入了一些更加高效的指令/参数。本…

MongoDB--》MongoDB数据库以及可视化工具的安装与使用—保姆级教程

目录 数据库简介 MongoDB数据库的安装 MongoDB数据库的启动 MongoDB数据库环境变量的配置 MongoDB图形化管理工具 数据库简介 在使用MongoDB数据库之前&#xff0c;我们应该要知道我们使用它的原因&#xff1a; 在数据库当中&#xff0c;有常见的三高需求&#xff1a; Hi…

如何手写一个springboot starter?

本文主要分享了如何手写一个spring starter&#xff0c;把你的代码作为jar包进行开源。命名规则&#xff08;不要使用spring-boot开头&#xff0c;以避免将来spring-boot官方使用你的starter而重名&#xff09;官方命名格式为&#xff1a;spring-boot-starter-xxx非官方命名格式…

ucos-ii 的任务调度原理和实现

ucosii 任务调度和原理1、ucos-ii 任务创建与任务调度 1.1、任务的创建 当你调用 OSTaskCreate( ) 进行任务的创建的时候&#xff0c;会初始化任务的堆栈、保存cpu的寄存器、创建任务的控制块&#xff08;OS_TCB&#xff09;等的操作&#xff1b; if (OSTCBPrioTbl[prio] (OS_…