一: 序言
想了解更多自动驾驶项目课程以及获取学习代码的可以参考这个链接
无人车采用纯跟踪算法跟随离线路径
感知锥桶项目中:滤波处理是进行激光雷达目标检测的常见步骤,对原始点云数据进行预处理达到减少噪声、无效点或者数据量的效果。常用的点云滤波方法包括体素滤波、法向量估计滤波和直通滤波等。锥桶环境下,自动驾驶车辆更关注的是前方障碍物的信息,并不需要处理激光雷达扫描出的所有区域数据。为了减少计算压力,采用直通滤波进行处理。
二:具体方案
直通滤波是一种简单而有效的点云滤波方法,设定范围约束来实现数据过滤。通常情况下,使用点云数据的空间坐标轴区间来定义感兴趣区域。该滤波简单且有效,并且处理速度非常快。可以在减少不必要的计算和存储开销的情况下,为后续的点云处理和应用提供更高效的数据基础。直通滤波公式见式:
式中为滤波后点云数据结合,代表空间坐标系下三个方向,为原始数据集,为具体的滤波范围。
为了在减少计算量的同时获取有效的点云数据,本文通过对比分析试验确定使用环形区域进行直通滤波,该区域滤波公式见式:
具体实现代码如下:
void lidar_cluster::PassThrough(pcl::PointCloud<PointType>::Ptr& cloud_filtered,int type,double z_up,double z_down){
pcl::PassThrough<pcl::PointXYZ> pass;
pass.setInputCloud(cloud_filtered);
point_clip(cloud_filtered);
}
for (size_t i = 0; i < in->points.size(); i++)
{
tmp_euc = euc_distance(in->points[i]);
if ( tmp_euc<=20 && in->points[i].x>0 && tmp_euc>=0.5)
{
indices.indices.push_back(i);
}
}
滤波效果
图中波纹状线条为雷达检测到的地面点云,后续操作将对其进行处理,椭圆形圈起的凸起点为有效锥桶点云,图中下方中间处坐标轴为车辆可视化效果。
三:结论
多线激光雷达在默认扫描频率下,每秒可以获取数十万个点云数据,锥桶道路环境下,大部分点云数据实际上是非目标锥桶的无效点云,在考虑硬件自身运行速率和算法效率的情况下,可以先对整体点云进行滤波处理,达到减轻计算量的效果。
标签:ROS,滤波,C++,点云,锥桶,数据,激光雷达,通滤波 From: https://blog.csdn.net/m0_46699649/article/details/140277338