自动驾驶仿真传感器(一):激光雷达

激光雷达原理

s = vt/2,s指的是发射器与探测物体的距离,v是光速,t是发送到接收的时间差,原理图如下:
自动驾驶仿真传感器(一):激光雷达_第1张图片

激光雷达分为单线,四线,8线,16线,32线和64线


(1)单线激光雷达
自动驾驶仿真传感器(一):激光雷达_第2张图片

单线激光雷达绕z轴旋转,光线将点撒出去,碰到障碍物在同一平面内是一条直线,激光雷达的参数有精度和角度,精度指的是激光雷达每次旋转最小角度,雷达是匀速旋转的,每次旋转一个小的角度,发射一次激光,完成一次循环,形成一帧的数据。如上图所示,单线激光雷达的数据是同一高度的一排点阵。
距离信息:单帧点云坐标可以得到距离信息
速度信息:在多帧情况下,对距离信息进行微分处理,得到速度信息

数据格式:


# 测量的激光扫描角度,逆时针为正
# 设备坐标帧的0度面向前(沿着X轴方向)
#
 
Header header
float32 angle_min        # scan的开始角度 [弧度]
float32 angle_max        # scan的结束角度 [弧度]
float32 angle_increment  # 测量的角度间的距离 [弧度]
float32 time_increment   # 测量间的时间 [秒]
float32 scan_time        # 扫描间的时间 [秒]
float32 range_min        # 最小的测量距离 [米]
float32 range_max        # 最大的测量距离 [米]
float32[] ranges         # 测量的距离数据 [米] (注意: 值 < range_min 或 > range_max 应当被丢弃)
float32[] intensities    # 强度数据 [device-specific units]

四线激光雷达:

自动驾驶仿真传感器(一):激光雷达_第3张图片

四个颜色代表四个激光发射器所发射的激光,每一个周期,得到一帧的激光点云数据,4条点云数据可以组成一个平面的信息,在一定程度上可以获得高度信息(并不是很准确,很容易理解,如果一个人站的离一面很高的墙面前,不抬头的情况下,他是不能得知墙的高度的),部分公司的四线激光雷达直接输出障碍物的位置信息和速度信息。

多线激光雷达(16/32/64线):

自动驾驶仿真传感器(一):激光雷达_第4张图片

多线激光雷达不能直接数据障碍物的结果(个人认为是算力的限制)

数据结构:

std_msgs/Header header
uint32 height
uint32 width
sensor_msgs/PointField[] fields
bool is_bigendian
uint32 point_step
uint32 row_step
uint8[] data
bool is_dense

激光雷达缺点:

(1)探测距离:当前velodyne的64线激光雷达有效探测距离是120m,360°,即使车载计算机反应速度足够快,预留刹车反应时延仍然太小;

(2)探测精度:激光雷达工作方式是离散的,在120m距离上垂直和水平分辨率是0.3-0.5m;

(3)扫描频率:velodyne的64线扫描频率是15hz,相当于视频频率15fps,360°扫描,需要加上数据缓存和回传的时间,时速120公里,一帧1帧扫描时间,车辆行驶距离2.222m;

(4)寿命:激光雷达是机械式旋转,寿命较短。

参考链接:

陈光知乎专栏:https://www.zhihu.com/search?type=content&q=%E6%BF%80%E5%85%89%E9%9B%B7%E8%BE%BE

CSDN激光雷达数据格式:https://blog.csdn.net/zong596568821xp/article/details/79111061

激光雷达缺点:https://www.zhihu.com/question/264726552/answer/288586697

你可能感兴趣的:(自动驾驶仿真)