热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ros开源物体检测_ROS传感器之LIDAR简介

一.概念LIDAR,全称LightDetectionAndRanging,即激光检测和测距,通常称为激光雷达。其功能是利用激光检测物体以及

一.概念

LIDAR,全称Light Detection And Ranging,即激光检测和测距,通常称为激光雷达。其功能是利用激光检测物体以及测量与物体之间的距离。

二.分类

不同的分类标准,有不同的分类结果。通常有两类分类标准,按照线束可分为两类:一是单线激光雷达,二是多线激光雷达。单线激光雷达的数据可以看做是一定高度的一排点阵,多线激光雷达的数据包含高度信息,可以看做是一个面。按照机械性质又可分为机械激光雷达和固态激光雷达,目前主流市场以机械激光雷达为主。

三.原理

机械激光雷达原理可以简化理解为一个发射器,一个接收器和一个旋转镜面,发射器周期向旋转镜面发射光束,由镜面折射出去,此光束经过障碍物反射后,由接收器接收,统计时间,然后根据光速,计算距离。镜面不停旋转,镜面旋转一周,相当于激光雷达扫描一周,可以获取一帧激光雷达数据。

四.输出

激光雷达的直接输出主要包含两部分:一是距离点,代表物体与激光雷达之间的距离;二是反射强度,不同的物体其反射强度不同,在特定场景下,利用反射强度,可以识别物体,例如车道线检测。

五.作用

激光雷达与IMU和GPS在作用上有一个显著差异点,IMU与GPS测量自身信息,激光雷达测量的是环境信息,并可以根据环境信息,反推自身信息。在自动驾驶或者机器人领域,测量自身信息,在称之为定位,测量环境信息,称之为感知,建图本质上属于感知。

六.数据特性

在机器人和自动驾驶领域,基于激光雷达的方案比较成熟,这与其优势的数据特性有关。具体如下:

  1. 测量信息比较多:物体三维信息,包括位置和速度,形状,材料等。
  2. 不受光线影响:这点决定其可以全天候工作。其缺陷是易受天气影响,还有一点是相对于其他传感器,激光雷达成本比较高,不利于产品商业化量产,不过近几年,随着激光雷达技术的发展,其成本也逐渐降低。

七.ROS中LIDAR数据表示

1. sensor_msgs/LaserScan

sensor_msgs/LaserScan是激光雷达基本数据类型,其所描述的是一次扫描的数据,包括扫描角度、时间以及扫描距离等,执行以下命令:

rosmsg show sensor_msgs/LaserScan

执行效果:

82ca788319781cafeacd5a4e0e0b46c8.png

header项同前文GPS(ROS传感器之GPS简介), angle_min扫描起始角度, angle_max扫描结束角度, angle_increment两次扫描间隔的角度, time_increment两次扫描的时间间隔, scan_time此帧数据产生的时间,机械激光雷达数据点,是由旋转扫描产生,所以同一帧的每个点产生的时间都不一样, scan_time要表示整帧数据的时间,一般取第一帧和最后一帧的平均时间,或者使用GPS时间,这个后续再详细介绍。range_min最小有效距离, range_max最大有效距离, ranges所有扫描点的距离, intensities所有扫描点的反射强度。

2. sensor_msgs/PointCloud2

sensor_msgs/PointCloud2代表点云数据,pcl是点云库,专门处理点云数据,通过将 sensor_msgs/LaserScan格式先转化为 sensor_msgs/PointCloud2格式,然后可以调用pcl算法,处理数据。执行以下命令:

rosmsg show sensor_msgs/PointCloud2

执行效果:

0d096627ebdfadd3fa964a55ad5db30c.png

header项同前文GPS(ROS传感器之GPS简介),height表示高度,width表示宽度,可以把一帧点云数据看成图像数据,一个点对应一个像素,宽和高也与之对应。is_bigendian数据存储是否按照小端存储, point_step表示一个点所占的字节数, row_step表示一行点所占的字节数, is_dense表示数据是否有效, data实际存储点云数据, fields表示每一个点云所包含的格式,可以按照 fields区域把点云数据解析出来。以下是激光雷达 velodyne的一帧点云数据,我们以此进一步说明此结构

faf3a14d0c5fd3c5662d120c932d559f.png

header代表本帧时间戳、序列号, frame_id设置为 velodyne;height为1, width为55823,所以此帧点云数:height×width=1×55823=55823, point_step为32,代表一个点占32字节, row_step为1786336,此数据代表一行所占的字节数:point_step×width=32×55823=1786336;此帧总的自己数:row_step×height=1786336×1=1786336, fields表示一个点的结构,x、y、z代表三维坐标, intensity代表反射强度, ring表示圈的序列号。fields中name代表 field name,offset代表一个点结构内的起始地址,datatype代表field数据类型,count代表field的个数。早期还有一个结构:sensor_msgs/PointCloud,也是表示点云数据,目前已经淘汰。

八. 小结

本篇介绍激光雷达的基本概念和原理,以及在ros系统中激光雷达数据的两种表达方式。下一篇以Velodyne为例,介绍如何获取,解析以及使用激光雷达数据。



推荐阅读
  • SLAM优秀开源工程最全汇总
    https:zhuanlan.zhihu.comp145750808 1、CartographerCartographer是一个系统,可跨多个平台和传感器配置以2D和3D形式提供实 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 机器人学领域的顶级期刊总结
    本文转载自:https:www.sohu.coma116061841_470013,如有侵权请告知,立即删除摘要此前有不少博客总结了机 ... [详细]
  • 65位高校教师接龙晒工资!给打算入高校的研究生们参考!
    本文转载自:募格学术|来源:麦可思研究综合整理自小木虫论坛前有清华教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条, ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • ScrollView嵌套Collectionview无痕衔接四向滚动,支持自定义TitleView
    本文介绍了如何实现ScrollView嵌套Collectionview无痕衔接四向滚动,并支持自定义TitleView。通过使用MainScrollView作为最底层,headView作为上部分,TitleView作为中间部分,Collectionview作为下面部分,实现了滚动效果。同时还介绍了使用runtime拦截_notifyDidScroll方法来实现滚动代理的方法。具体实现代码可以在github地址中找到。 ... [详细]
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • PatchODAX8: ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 目录前言数组类型在不同消息类型中的定义在ROS消息中的定义在C中定义数组vector数组的一些常用操作基本操作求数组的最值遍历数组排序数组查找数组注意前言ROS系统的一个显著优势 ... [详细]
author-avatar
用户r7t3govjq0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有