Installing Point Cloud Library on Ubuntu

Point Cloud Library is an open-source library for 3D imaging and point cloud processing. Its numerous state-of-the-art features, such as filtering, feature estimation, and surface reconstruction, make it ideal to use in robot perception. This blog post will walk through how to compile PCL from source on Ubuntu 14.04 and install OpenNI and other required dependencies.

Installing Dependencies

Although some of the PCL dependencies can be installed through the package managers, others require additional work. To keep it simple, open up a command prompt and type in the following two commands to install all of the dependencies:

sudo apt-get update
sudo apt-get install build-essential cmake cmake-curses-gui libboost-all-dev libeigen3-dev libflann-dev libglew-dev libxmu-dev libsuitesparse-dev libqhull-dev libpcap-dev libxi-dev libgtest-dev libvtk6-dev libqt5opengl5-dev git git-core freeglut3-dev pkg-config libusb-1.0-0-dev doxygen graphviz mono-complete python

The first command updates the package list in your package repository. The second command installs all of the required dependencies.


In order for PCL to get data from the Kinect camera, PCL must use drivers like OpenNI. However, OpenNI requires Sun’s Java Development Kit. If you do not have JDK, you can use the following commands.

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

To compile OpenNI from source, do:

mkdir ~/kinect
cd ~/kinect
git clone

The first two commands makes a kinect directory, and the third command clones the OpenNI repository. Change the branch to unstable:

cd OpenNI
git checkout unstable

Run these commands to install OpenNI:

cd Platform/Linux/CreateRedist/
chmod +x RedistMaker
cd ../Redist/OpenNI-Bin-Dev-Linux-x64-v1.5.8.5
sudo ./

To install SensorKinect, clone the SensorKinect repository via git:

cd ~/kinect/
git clone

Then install SensorKinect:

cd SensorKinect/Platform/Linux/CreateRedist/
chmod +x RedistMaker
cd ../Redist/Sensor-Bin-Linux-x64-v5.1.2.1
chmod +x
sudo ./


Finally, to install PCL, clone the PCL repository:

git clone pcl-trunk

Make a pcl-trunk directory and a build directory inside pcl-trunk.

cd pcl-trunk && mkdir build && cd build

Configure PCL with CMake. We will tell it to build in Release (fully optimized, no debug capabilities) mode:

cmake -DCMAKE_BUILD_TYPE=Release ..

CMake should be able to find every dependency, thus being able to build every subsystem except for the ones marked as disabled by default. Build and install:

sudo make install

Helpful Resources: Here are some additional guides on how to install PCL: This is the official PCL tutorial on how to compile PCL from source. The OpenNI github contains some useful information on how to install OpenNI on Ubuntu. This blog post contains excellent information on compiling both PCL and OpenNI from source and additional dependencies that you may need to install on your computer.