激光雷达简介与激光数据分析

写在前面

本文转载自
[1] 激光雷达数据分析 https://blog.csdn.net/jialing678/article/details/86433088
[2] 激光雷达简介 https://blog.csdn.net/baimei4833953/article/details/79149593

一、激光雷达简介

激光雷达没什么神秘的,本质上就是一个测距传感器,只不过由于加上旋转,就可以测一个面上的距离数据(也就是360°),在扫描区域中激光雷达在每个角度分辨率对应位置解析出的距离值会被依次连接起来,这样,通过极坐标表示就能非常直观地看到周围物体的切面轮廓。

在这里插入图片描述激光雷达通常有四个性能衡量指标:测距分辨率、扫描频率(有时也用扫描周期)、角度分辨率及可视范围。测距分辨率衡量在一个给定的距离下测距的精确程度,通常与距离真实值相差在5-20mm;扫描频率衡量激光雷达完成一次完整扫描的快慢,通常在10Hz及以上;角度分辨率直接决定激光雷达一次完整扫描能返回多少个样本点。

二、激光雷达数据解析

买激光雷达一般都会提供驱动,我们从ros的角度来讲激光雷达,而不是激光雷达的最底层数据。在ros中,激光雷达的消息一般是:sensor_msgs/LaserScan

现在我们安装了一个激光雷达,并启动了一个可以发布激光雷达信息的节点,并发布了激光雷达扫描信息的topic/sacn(当然也可以直接下载数据集并rosbag play *.bag)

输入:

rosmsg show sensor_msgs/LaserScan

我们可以看到LaserScan的消息结构:

std_msgs/Header header   # Header也是一个结构体,包含了seq,stamp,frame_id,其中seq
                         # 指的是扫描顺序增加的id,stamp包含了开始扫描的时间和与开始扫
                         # 描的时间差,frame_id是扫描的参考系名称.注意扫描是逆时针从正前方开始扫描的.   
  uint32 seq
  time stamp           
  string frame_id     # frame在ROS中作用至关重要,消息将和tf绑定才可以读取数据,
                       # 在这里作为通用可配置,暂定内容为:laser,用户可自定义设置。                                                           
float32 angle_min        # 开始扫描的角度(rad)
float32 angle_max        # 结束扫描的角度(rad)
float32 angle_increment  # 每一次扫描增加的角度(rad)

float32 time_increment   # 测量的时间间隔(second)
float32 scan_time        # 扫描的时间间隔(second)

float32 range_min        # 距离最小值(m)
float32 range_max        # 距离最大值(m)

float32[] ranges         # 距离数组(m) (长度360)  (Note: values < range_min or > range_max should be discarded)
float32[] intensities    # 与设备有关,强度数组(长度360)
                         #如果设备不产生强度数据,则该数据为空
  • seq是消息的顺序标识发布节点在发布消息时,会自动累加
  • stamp 是消息中与数据相关联的时间戳
  • frame_id 是消息中与数据相关联的参考系id
  • angle_min 起始角度(rad)
  • angle_max 结束角度(rad)
  • angle_increment 角度分辨率(rad)
  • time_increment 每个角度扫描时间
  • scan_time 扫描间隔
  • range_min 最小距离
  • range_max 最大距离
  • ranges 各个角度的距离
  • intensities 各个角度的强度

frame_id:frame在ROS中作用至关重要,消息将和tf绑定才可以读取数据,在这里作为通用可配置,暂定内容为:laser,用户可自定义设置。
当然只是这些消息结构可能没有什么实际感觉,那么,下面是截取的一部分消息:

header: 
  seq: 278
  stamp: 
    secs: 1547376975
    nsecs: 935883993
  frame_id: "laser"
angle_min: 0.0
angle_max: 6.26573181152
angle_increment: 0.0174532923847
time_increment: 2.04363772127e-07
scan_time: 0.000124048819998
range_min: 0.15000000596
range_max: 5.0
ranges: [0.7620000243186951, 0.7904999852180481, 0.7797499895095825, 0.7885000109672546, 0.7919999957084656, 
0.78125, 0.781000018119812, 0.7797499895095825, 0.7792500257492065, 0.7795000076293945, 0.7792500257492065,
0.7797499895095825, 0.78125, 0.781499981880188, 0.7825000286102295, 0.7847499847412109, 0.7872499823570251,
0.7877500057220459, 0.7914999723434448, 0.7944999933242798, 0.8209999799728394, 0.875249981880188, 
1.3257499933242798, 1.2962499856948853, 1.2345000505447388, inf, 1.1545000076293945, 1.1077500581741333,
1.0640000104904175, inf, 1.006250023841858, 0.968999981880188, 0.9367499947547913, 0.9202499985694885,
0.8930000066757202, 0.8657500147819519, 0.8517500162124634, 0.828499972820282, 0.8044999837875366,
0.7954999804496765, 0.7762500047683716, 0.7622500061988831, 0.768750011920929, 0.7954999804496765,
0.7979999780654907, 0.800000011920929, 0.8142499923706055, 0.8705000281333923, 0.8557500243186951,
.....................................共360个........................................
 0.9142500162124634, 0.7097499966621399, 0.7072499990463257, 0.7037500143051147, 0.7354999780654907,
0.7257500290870667, 0.7300000190734863, 0.7409999966621399, 0.7447500228881836, inf, 0.5427500009536743, 
0.5322499871253967, 0.5317500233650208, 0.5427500009536743, 0.5522500276565552, 
0.5609999895095825, 0.578249990940094, 0.5962499976158142, 0.6039999723434448, 0.6284999847412109,
0.6422500014305115, 0.6552500128746033, 0.6819999814033508, 0.715749979019165]
intensities: [160.0, 158.0, 161.0, 159.0, 159.0, 147.0, 156.0, 161.0, 161.0, 161.0, 161.0, 161.0, 161.0, 161.0, 161.0, 
160.0, 160.0, 160.0, 159.0, 159.0, 159.0, 158.0, 145.0, 143.0, 144.0, 0.0, 147.0, 154.0, 146.0, 0.0, 155.0, 157.0, 154.0,
158.0, 157.0, 156.0, 157.0, 157.0, 159.0, 158.0, 157.0, 160.0, 159.0, 161.0, 161.0, 66.0, 64.0, 160.0, 162.0, 158.0, 
160.0, 161.0, 159.0, 161.0, 160.0, 161.0, 160.0, 160.0, 159.0, 158.0, 160.0, 162.0, 161.0, 160.0, 162.0, 159.0, 159.0, 
160.0, 162.0, 161.0, 159.0, 159.0, 160.0, 159.0, 158.0, 159.0, 158.0, 159.0, 159.0, 159.0, 157.0, 155.0, 154.0, 160.0,
160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0, 160.0,
159.0, 160.0, 160.0, 160.0, 160.0, 159.0, 160.0, 160.0, 103.0, 160.0, 0.0, 158.0, 157.0, 159.0, 158.0, 158.0, 153.0,
157.0, 157.0, 155.0, 153.0, 158.0, 159.0, 159.0, 161.0, 159.0, 161.0, 159.0, 160.0, 159.0, 159.0, 160.0, 160.0, 160.0, 
159.0, 161.0, 160.0, 111.0, 157.0, 160.0, 161.0, 162.0, 160.0, 156.0, 0.0, 0.0, 68.0, 158.0, 160.0, 161.0, 161.0, 160.0,
162.0, 78.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 155.0, 162.0, 162.0, 161.0, 106.0, 0.0, 0.0, 0.0, 0.0, 62.0, 69.0, 73.0, 89.0,
.....................................共360个........................................
95.0, 103.0, 113.0, 123.0, 126.0, 143.0, 129.0, 118.0, 90.0, 63.0, 0.0, 0.0, 0.0, 0.0, 66.0, 124.0, 147.0, 158.0, 160.0,
160.0, 158.0, 156.0, 154.0, 146.0, 131.0, 114.0, 114.0, 101.0, 89.0, 88.0, 78.0, 0.0, 74.0, 72.0, 160.0, 159.0, 159.0,
159.0, 161.0, 161.0, 160.0, 73.0, 69.0, 76.0, 76.0, 78.0, 78.0, 75.0, 82.0, 75.0, 75.0, 84.0, 80.0, 72.0, 105.0, 71.0,
159.0, 157.0, 64.0, 156.0, 157.0, 158.0, 160.0, 0.0, 157.0]

三、激光雷达驱动参数分析

官方的链接rplidar驱动实现

<launch>
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
  <param name="serial_port"         type="string" value="/dev/ttyUSB0"/>  
  <param name="serial_baudrate"     type="int"    value="115200"/>
  <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 参考系id (如果我们urdf的模型与安装中的一致,就可以直接发布到laser_link,这也是我们为什么导出laser_link的原因)
  • inverted 上下倒置安装使用该标记
  • angle_compensate 顺时针逆时针标记

参考链接:
[1] 激光雷达数据分析 https://blog.csdn.net/jialing678/article/details/86433088
[2] 激光雷达简介 https://blog.csdn.net/baimei4833953/article/details/79149593

  • 1
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值