Skip to content

Point Cloud Obstacle Detection, Ground Segmentation, Euclidean Clustering

Notifications You must be signed in to change notification settings

1274085042/PointCloudObstacleDetection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

算法设计

障碍物检测流程

直通滤波模块

参数设置
过滤轴为x轴和y轴
x轴过滤范围[0, 50]
y轴过滤范围[-20, 10]

右图为原始点云   左图为直通滤波后的点云

地面分割模块

算法步骤
1 在数据中随机选择三个点设定为内群
2 计算拟合内群的模型
3 把其它刚才没选到的点带入刚才建立的模型中,根据距离阈值参数(DistanceThreshold)判断是否为内群
4 记下内群点数量
5 重复以上步骤,直至达到最大迭代次数(MaxIterations)
6 比较哪次计算中内群点数量最多,内群点最多的那次所建的模型就是地面模型

参数设置
距离阈值参数(DistanceThreshold)设置为0.191
迭代次数(MaxIterations)设置为1000

RANSAC 地面分割示意图

分割前的点云

地面点云


去除地面点云后的点云

欧式聚类模块

在聚类之前,先使用Kd-tree存储点云
Kd-tree数据结构如图所示,构建Kd-tree时,随着树的深度轮流选择轴当作分割面,从点云中取出的点如果小于当前结点的值,则将它放在左子树,如果大于当前结点的值,则将它放在右子树。

算法步骤

参数设置
距离阈值(ClusterToleranc) 设置为1.0
MinClusterSize 设置为10
MaxClusterSize 设置为2000


欧式聚类效果

编译(Ubuntu16.04)

依赖

  • CMake >=3.12
  • GCC
  • boost 1.58.0
  • pcl (sudo apt install libpcl-dev)

使用

$> mkdir build && cd build
$> cmake ..
$> make
$> bash command.sh

About

Point Cloud Obstacle Detection, Ground Segmentation, Euclidean Clustering

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published