Coder Social home page Coder Social logo

ngsford / pointcloudobstacledetection Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 1274085042/pointcloudobstacledetection

0.0 0.0 0.0 4.47 MB

Point Cloud Obstacle Detection, Ground Segmentation, Euclidean Clustering

Shell 0.05% C++ 93.96% Python 2.70% C 0.49% CMake 2.80%

pointcloudobstacledetection's Introduction

算法设计

障碍物检测流程

直通滤波模块

参数设置
过滤轴为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

pointcloudobstacledetection's People

Contributors

1274085042 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.