传感器之激光雷达简介与使用

2023-05-16

激光雷达是现今机器人尤其是无人车领域及最重要、最关键也是最常见的传感器之一,是机器人感知外界的一种重要手段。

概念

激光雷达(LiDAR),英文全称为:Light Detection And Ranging,即光探测与测量。

原理

激光雷达可以发射激光束,光束照射到物体上,再反射回激光雷达,可以通过三角法测距或TOF测距计算出激光雷达与物体的距离。甚至也可以通过测量反射回来的信号中的某些特性而确定物体特征,比如:物体的材质。

注意:如果物体表面光滑(比如镜子),光束照射后产生镜面反射,可能无法捕获返回的激光而出现识别失误的情况。

优点

激光雷达在测距方面精准(激光雷达的测量精度可达厘米级)、高效,是机器人测距的不二之选。

  • 具有极高的分辨率:激光雷达工作于光学波段,频率比微波高2~3个数量级以上,因此,与微波雷达相比,激光雷达具有极高的距离分辨率、角分辨率和速度分辨率;

  • 抗干扰能力强:激光波长短,可发射发散角非常小(μrad量级)的激光束,多路径效应小(不会形成定向发射与微波或者毫米波产生多路径效应),可探测低空/超低空目标;

  • 获取的信息量丰富:可直接获取目标的距离、角度、反射强度、速度等信息,生成目标多维度图像;

  • 可全天时工作:激光主动探测,不依赖于外界光照条件或目标本身的辐射特性。它只需发射自己的激光束,通过探测发射激光束的回波信号来获取目标信息。

缺点

激光雷达虽然优点多多,但也存在一些局限性:

  • 成本:居高不下

  • 环境:易受天气影响(大雾、雨天、烟尘)

  • 属性识别能力弱:激光雷达的点云数据是物体的几何外形呈现,无法如同人类视觉一样,分辨物体的物理特征,比如:颜色、纹理...

分类

根据线束数量的多少,激光雷达可分为单线束激光雷达与多线束(4线、8线、16线、32线、64线)激光雷达。单线激光雷达扫描一次只产生一条扫描线, 其所获得的数据为2D数据,因此无法区别有关目标物体的3D信息。多线束激光雷达就是将多个横向扫描结果纵向叠加,从而获得3D数据,当然,线束越多,纵向的垂直视野角度越大。

思岚A1激光雷达(下图)是一款性价比较高的单线激光雷达。

使用流程如下:

  1. 硬件准备;

  1. 软件安装;

  1. 启动并测试。

1.硬件准备

1.雷达连接上位机

当前直接连接树莓派即可,如果连接的是虚拟机,注意VirtualBox或VMware的相关设置。

2.确认当前的 USB 转串口终端并修改权限

USB查看命令:

ll /dev/ttyUSB*

授权(将当前用户添加进dialout组,与arduino类似):

sudo usermod -a -G dialout your_user_name

不要忘记重启,重启之后才可以生效。

进入工作空间的src目录,下载相关雷达驱动包,下载命令如下:

git clone https://github.com/slamtec/rplidar_ros

返回工作空间,调用catkin_make编译,并source ./devel/setup.bash,为端口设置别名(将端口 ttyUSBX 映射到 rplidar):

cd src/rplidar_ros/scripts/
./create_udev_rules.sh

3.启动并测试

1.rplidar.launch文件准备

首先确认端口,编辑 rplidar.launch 文件

<launch>
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
  <param name="serial_port"         type="string" value="/dev/rplidar"/>
  <param name="serial_baudrate"     type="int"    value="115200"/><!--A1/A2 -->
  <!--param name="serial_baudrate"     type="int"    value="256000"--><!--A3 -->
  <param name="frame_id"            type="string" value="laser"/>
  <param name="inverted"            type="bool"   value="false"/>
  <param name="angle_compensate"    type="bool"   value="true"/>
  </node>
</launch>

frame_id 也可以修改,当使用URDF显示机器人模型时,需要与 URDF 中雷达 id 一致

2.终端中执行 launch 文件

终端工作空间下输入命令:

roslaunch rplidar_ros rplidar.launch

如果异常,雷达开始旋转

3.rviz中订阅雷达相关消息

启动 rviz,添加 LaserScan 插件:

注意: Fixed Frame 设置需要参考 rplidar.launch 中设置的 frame_id,Topic 一般设置为 /scan,Size 可以自由调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传感器之激光雷达简介与使用 的相关文章

  • UART, IIC, SCI, SPI, 232, 485, 422, CAN, SDIO, GPIO, MODBUS, TCP/IP汇总简介

    UART IIC SCI SPI 232 485 422 CAN SDIO GPIO MODBUS TCP IP汇总简介 UART xff1a Universal Asynchronous Receiver Transmitter xff1
  • 二维数组的定义

    1 概念 二维数组就是一种数组的数组 xff0c 其本质上还是一个一维数组 xff0c 只是它的数据元素又是一个一维数组 如果你对这个概念想象不出来 xff0c 给大家举个栗子 xff0c 相信吸烟的同学一下子就会明白 一根烟 61 一个变
  • nginx不转发http header问题解决

    文章整理自网络 作者 64 loongshawn xff1a http blog csdn net loongshawn article details 78199977 xff0c 建议读者阅读原文 xff0c 确保获得完整的信息 1 问
  • SimpleFOC(二)—— 快速入门 (开环控制)

    目录 一 硬件介绍 1 驱动板版本说明 2 驱动板跳线 3 硬件准备 4 硬件连接 二 软件操作 1 安装Arduino IDE 2 安装SimpleFOC library 3 打开示例程序 三 电机控制 1 程序下载 2 开环速度控制 3
  • curl参数详解

    原文 xff1a http blog csdn net yanhui wei article details 21530811 cURL可以使用URL的语法模拟浏览器来传输数据 xff0c 因为它是模拟浏览器 xff0c 因此它同样支持多种
  • 嵌入式单片机基础篇(十八)之ILI9341 液晶控制器

    ILI9341 液晶控制器详解 1 ILI9341 液晶控制器简介 xff1a ILI9341 液晶控制器自带显存 xff0c 其显存总大小为 172800 xff08 24032018 8 xff09 xff0c 即 18 位模式 xff
  • LOTO 示波器软件功能演示——RS232串口解码

    LOTO 示波器软件功能演示 RS232串口解码 我们今天演示一下怎么用LOTO示波器对串口进行解码 xff0c 使用了一个USB转串口的设备 xff0c 来产生串口数据 xff0c 用OSCA02 LOTO示波器演示 示波器我们只需要建立
  • ROS 下实现相机图像采集与图像传输到服务器,socket图传

    前言 本文介绍一种Qt下进行ROS开发的完美方案 xff0c 同时给出一个使用TCPROS进行图像传输的一个例子 xff0c 使用的是ros industrial的Levi Armstrong在2015年12月开发的一个Qt插件ros qt
  • Digest来验证

    Apache默认使用basic模块验证 xff0c 但它只是明文验证 Digest验证 xff0c 是用md5摘要值进行对比 httpRequest getAuthType 方法 xff0c 可以得到网页的验证方式request BASIC
  • 使用vscode创建C++工程

    1 推荐文件目录 即一个C 43 43 工程文件中包含 vscode文件夹 build文件夹 include文件夹 src文件夹以及一个CMakeLists txt文件 2 vscode文件夹 vscode文件夹一般应该包含三个配置文件 x
  • 游戏中所存在的“真随机”与“伪随机”

    写这篇随笔的动机 xff0c 在于最近看了不少对于游戏中概率事件的提问 在这些相关讨论里 xff0c 总是能频繁看到 真随机 和 伪随机 这两个词汇 其中最常见的句子则莫过于宝典一般的 程序里没有真随机 这句话本身当然是没有问题的 但是大多
  • C语言socket编程----实现TCP通信

    TCP IP协议 xff08 Transmission Control Protocol Internet Protocol xff09 叫做传输控制 网际协议 xff0c 又叫网络通信协议 实际上 xff0c 它包含上百个功能的协议 xf
  • rtthread移植实现uorb

    uORB Micro Object Request Broker 微对象请求代理器 是PX4 Pixhawk系统中非常重要且关键的一个模块 xff0c 它肩负了整个系统的数据传输任务 xff0c 所有的传感器数据 GPS PPM信号等都要从
  • 环形缓冲区(ringbuffer)

    环形缓冲区 xff08 ringbuffer xff09 环形缓冲区是嵌入式系统中十分重要的一种数据结构 xff0c 比如在串口处理中 xff0c 串口中断接收数据直接往环形缓冲区丢数据 xff0c 而应用可以从环形缓冲区取数据进行处理 x
  • 大屏可视化数据面板分格渐变进度条、数字翻牌器及其刷新动效实现

    数据可视化大屏是当前可视化领域的一项热门应用 xff0c 通常可以分为信息展示类 数据分析类及监控预警类 这类应用的视觉设计通常效果炫酷 xff0c 动效丰富 xff0c 有时候一些页面布局和动画实现会对前端人员有一定的挑战性 xff0c
  • Fiddler系列教程1:初识Http协议抓包工具

    1 Fiddler简介 Fiddler是用一款使用C 编写的http协议调试代理工具 它支持众多的http调试任务 xff0c 能够记录并检查所有你的电脑和互联网之间的http通讯 xff0c 可以设置断点 xff0c 查看所有的 进出 F
  • http 认证 basic 和 digest

    HTTP协议 RFC2616 的两种认证机制 Basic和Digest SIP类似Http协议 其认证模式也一样 Http协议 xff08 RFC 2616 xff09 规定可以采用Basic模式和摘要模式 xff08 Digest sch
  • 优秀的C/C++框架和库整理,值得收藏

    1 ACE 庞大 复杂 xff0c 适合大型项目 开源 免费 xff0c 不依赖第三方库 xff0c 支持跨平台 http www cs wustl edu schmidt ACE html 2 Asio Asio基于Boost开发的异步I
  • linux socket select(tcp)

    1 概述 xff1a 该demo主要实现了linux下通过select tcp 方式的socket并发通讯 xff0c 相关接口介绍可以参考 lt lt UNIX环境高级编程 gt gt 2 场景 服务端 一 lt 多 客户端 xff1a

随机推荐

  • 对于char*、char[]和string的转换

    1 char char 可以直接转为string 直接赋值 2 string转为char c str 会返回一个指向c字符串类型的指针 xff0c 所以 const char ch 61 str c str 也可以用str data C 4
  • 十分详细的数码管电子时钟(基于51单片机)

    数码管由于内部由多段LED灯构成 xff0c 也被称为多段式LED数码管 从数码管里面包含的LED个数来分 xff0c 可以分为七段式 八段式 十四段式等 七段式数码管 xff1a 八段式数码管 xff08 比七段式右下角多了一个小点 xf
  • 如何用Unity3D实现游戏中的角色换装?

    换装系统是游戏中较为常见的功能 xff0c 我们给它一个专业词avatar xff0c 可以做到装备与人物分离 xff0c 实现自由换装效果 我们可以将头部 身体 手 脚 武器独立建模 贴图 xff0c 利用avatar来动态换装 xff0
  • stm32学习(3)——NVIC中断优先级分组

    相信大多数铁汁在学习stm32的时候都了解过51单片机的基本内容 xff0c 对于51单片机来说 xff0c 中断就那么几个 xff1a 外部中断0定时器 计数器0中断外部中断1定时器 计数器1中断串口中断 它们在51单片机中的优先级也是按
  • STM32F407系统时钟配置不准确导致串口发送数据乱码、定时器定时不准问题

    前言 在用原子的F407探索者开发板时 xff0c 由于是用的野火的工程模板 xff0c 导致了一些串口发送乱码 定时器定时不准的问题 如果你也有类似的问题 xff0c 这个或许可以帮到你 原因 SYSCLK 系统时钟来源有三个方面 xff
  • 巡线PID算法

    相信很多电子专业的同学都做过循迹小车这个小玩意儿 xff0c 而在我们刚刚接触巡线的时候都是用的两个循迹模块 xff08 如下图 xff09 左边的模块检测到黑线了就说明我车子的方向偏右了就需要往左转 xff0c 同理 xff0c 右边检测
  • MSP432(Keil5)——9.ADC驱动

    本次例程驱动了板载的ADC来读取一个模拟的角度传感器 xff0c 大家可以在ADC读取中断里面换成其他的计算 xff0c 具体引脚见程序代码 adc c span class token macro property span class
  • C语言宏函数妙用——1

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • union和struct的区别

    union只配置一个空间来放置共用体中内存最大的数据 xff0c 而结构体则给其中每个变量内存空间 union常用来压缩数据空间 xff0c 其中两个变量不能同时使用时用union
  • 二极管基础知识

  • Java学习之多线程复制文件

    1 一个线程复制一个文件 import java io FileInputStream import java io FileOutputStream import java io IOException public class MyTh
  • 对于HTTP请求头及响应头的详解

    对于HTTP协议的请求头的详解 标签 xff1a CSDN博文 http协议由两部分组成 xff1a 请求和响应 当你在浏览器中输入一个URL时 xff0c 浏览器将按照你的请求创建并且发送请求 xff0c 该请求包含的所输入的URL以及一
  • 手把手教你实现Unity网络同步

    现如今 xff0c 网络同步的技术在各种游戏里被广泛应用和发展 xff0c 那么 xff0c 如何在Unity中搭建网络模块 xff1f 如何使服务器和客户端之间通信 xff1f 如何做到网络同步 xff1f 本文作者烂笔头 27将从自身经
  • Java个人学习笔记07多线程和网络编程

    Java 多线程编程 Java 给多线程编程提供了内置的支持 一条线程指的是进程中一个单一顺序的控制流 xff0c 一个进程中可以并发多个线程 xff0c 每条线程并行执行不同的任务 创建线程 Java 提供了三种创建线程的方法 xff1a
  • 同步/异步与阻塞/非阻塞的区别(转)(中软国际Fourth day)

    转自于 http www cppblog com converse archive 2009 05 13 82879 html 首先来解释同步和异步的概念 这两个概念与消息的通知机制有关 举个例子 比如我去银行办理业务 可能选择排队等候 也
  • python subprocess模块设置环境变量,加载动态库

    众所周知 xff0c 利用python的subprocess pOpen 可以执行应用程序 不过今天碰到一个问题 xff1a 应用程序需要调用动态库 xff0c 而且动态库和应用程序在同一目录下 不过python的运行目录不是应用程序所在目
  • 智能家居 WiFi&BLE 双模模组 WiFi蓝牙遥控器同时控制W800

    由于文档较长文档只展示部分资料需要了解详细资料 链接 https pan baidu com s 1cpmtH7fC7D RGBh09UbhIQ 提取码 pnu4 一 W800 Wi Fi 蓝牙双模SoC 芯片简介 2 二 W800 CDS
  • Qt Creator使用CMake配置第三方库

    语法 include directories 添加第三方库头文件路径 这里的 include directories 直接向括号里加入第三方库的头文件路径即可 span class token function include direct
  • QtGlobal中常见的一些函数和宏

    lt QtGlobal gt 头文件包含了 Qt 类库的一些全局定义 xff0c 包括基本数据类型 函数和宏 xff0c 一般的 Qt 类的头文件都会包含该文件 xff0c 所以不用显式包含这个头文件也可以使用其中的定义 全局变量定义 为了
  • 传感器之激光雷达简介与使用

    激光雷达是现今机器人尤其是无人车领域及最重要 最关键也是最常见的传感器之一 xff0c 是机器人感知外界的一种重要手段 概念 激光雷达 LiDAR xff0c 英文全称为 Light Detection And Ranging xff0c