Introduction
The following links describe a set of basic PCL tutorials. Please note that their source codes may already be provided as part of the PCL regular releases, so check there before you start copy & pasting the code. The list of tutorials below is automatically generated from reST files located in our git repository.
Note
Before you start reading, please make sure that you go through the higher-level overview documentation at http://www.pointclouds.org/documentation/, under Getting Started. Thank you.
As always, we would be happy to hear your comments and receive your contributions on any tutorial.
Basic Usage
Getting Started / Basic Structures
Compiling PCL from source on POSIX compliant systems
Customizing the PCL build process
Using PCL on windows with VCPKG and CMake
Building PCL’s dependencies from source on Windows
Compiling PCL from source on Windows
Compiling PCL and its dependencies from MacPorts and source on Mac OS X
Compiling PCL from source using Docker
Installing on Mac OS X using Homebrew
Generate a local documentation for PCL
Using a matrix to transform a point cloud
Advanced Usage
Features
Estimating Surface Normals in a PointCloud
Normal Estimation Using Integral Images
Point Feature Histograms (PFH) descriptors
Fast Point Feature Histograms (FPFH) descriptors
Estimating VFH signatures for a set of points
How to extract NARF Features from a range image
Moment of inertia and eccentricity based descriptors
RoPs (Rotational Projection Statistics) feature
Globally Aligned Spatial Distribution (GASD) descriptors
Filtering
Filtering a PointCloud using a PassThrough filter
Downsampling a PointCloud using a VoxelGrid filter
Removing outliers using a StatisticalOutlierRemoval filter
Projecting points using a parametric model
Extracting indices from a PointCloud
Removing outliers using a Conditional or RadiusOutlier removal
I/O
The PCD (Point Cloud Data) file format
Reading Point Cloud data from PCD files
Writing Point Cloud data to PCD files
Concatenate the points of two Point Clouds
Title: Concatenate the fields or points of two Point Clouds
Author: Gabe O’Leary / Radu B. Rusu
Compatibility: > PCL 1.0
In this tutorial, we will learn how to concatenate both the fields and the point data of two Point Clouds. When concatenating fields, one PointClouds contains only XYZ data, and the other contains Surface Normal information.
The OpenNI Grabber Framework in PCL
The Velodyne High Definition LiDAR (HDL) Grabber
The PCL Dinast Grabber Framework
Grabbing point clouds from Ensenso cameras
Grabbing point clouds / meshes from davidSDK scanners
Grabbing point clouds from DepthSense cameras
Keypoints
KdTree
Octree
Range Images
Recognition
Registration
Sample Consensus
Segmentation
Color-based region growing segmentation
Conditional Euclidean Clustering
Title: Conditional Euclidean Clustering
Author: Frits Florentinus
Compatibility: >= PCL 1.7
This tutorial describes how to use the Conditional Euclidean Clustering class in PCL: A segmentation algorithm that clusters points based on Euclidean distance and a user-customizable condition that needs to hold.
Difference of Normals Based Segmentation
Clustering of Pointclouds into Supervoxels - Theoretical primer
Identifying ground returns using ProgressiveMorphologicalFilter segmentation
Filtering a PointCloud using ModelOutlierRemoval
Surface
Visualization
Applications
Aligning object templates to a point cloud
Title: Aligning object templates to a point cloud
Author: Michael Dixon
Compatibility: > PCL 1.3
This tutorial gives an example of how some of the tools covered in the previous tutorials can be combined to solve a higher level problem — aligning a previously captured model of an object to some newly captured data.
Cluster Recognition and 6DOF Pose Estimation using VFH descriptors
Point Cloud Streaming to Mobile Devices with Real-time Visualization
Detecting people on a ground plane with RGB-D data
GPU
Configuring your PC to use your Nvidia GPU with PCL
Using Kinfu Large Scale to generate a textured mesh
Title: Using Kinfu Large Scale to generate a textured mesh
Author: Francisco Heredia and Raphael Favier
Compatibility: PCL git master
This tutorial demonstrates how to use KinFu Large Scale to produce a mesh from a room, and apply texture information in post-processing for a more appealing visual result.
Detecting people and their poses using PointCloud Library