Point Cloud Library 1.8.0 has been released

Point Cloud Library 1.8.0

PCL 1.8.0 has been released.

What is it?

Point Cloud Library (PCL) is open source library for the 3-dimensional point cloud processing.
PCL contains the various processing for 3-dimensional point cloud that retrieved from sensors or 3-dimensional data files.

Features

The features are contained in the PCL as follows.

  • filters
  • fuatures
  • keypoints
  • registration
  • kdtree
  • octree
  • segmentation
  • sample consensus
  • surface
  • range image
  • io
  • visualization

pointcloudlibrary_features

Development Environment

PCL supported OS is Linux, Windows, MacOS X, and other.
Supported development language is C++ and Python.
PCL use internally main dependent libraries (3rdParty) is as follows.*1

Required

  • Boost (C ++ Semi Standard Library)
  • Eigen (Matrix Library)
  • FLANN (Nearest Neighbor Search Library)
  • VTK (Visualization Library)

Optional

*1 In addition, depends on other 3rdParty by function. Qt (GUI Library), CUDA (GPU Development Environment), PCAP (Packet Capture), GLUT (OpenGL Utility Toolkit), GLEW (OpenGL Extension Library), etc.

Download Installer

I has been created “PCL All-in-one Installer” that includes pre-built libraries of PCL and 3rdParty.
You can download from the following link.
Please install PCL and 3rdParty by using the downloaded installer.

2016/06/17 Release Installer (PCL 1.8.0, Boost 1.61.0, Eigen 3.2.8, FLANN 1.8.4, VTK 7.0.0 (OpenGL backend), QHull 2015.2, OpenNI 2.2.0.33 Beta)
2017/03/28 Mirror Download URL (Google Drive)

Visual Studio 2015

Visual Studio 2013

*2 C++ compiler (18.00.21005.1) of Visual Studio 2013 has bugs. Please install the latest update program.

Set Environment Variables

Please set as following the environment variables of system and re-boot your system.

Variable Name Value
PCL_ROOT C:\Program Files\PCL 1.8.0 (or C:\Program Files (x86)\PCL 1.8.0)
Path ;%PCL_ROOT%\bin
;%OPENNI2_REDIST64% (or %OPENNI2_REDIST%)

Generate Your Own Project using CMake

I strongly recommend that to generate project using CMake.*3
Please refer to following documents about How to use CMake and CMakeLists.
In Addition, Please refer to basic CMakeLists for using PCL.

*3 I recommend that to use CMake 3.6.0 or later.

How to use CMake?

How to write CMakeLists?

Basic CMakeLists for PCL

  • Basic CMakeLists.txt for PCL
  • cmake_minimum_required( VERSION 2.8 )
    
    # Create Project
    project( solution )
    add_executable( project main.cpp )
    set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "project" )
    
    # Find Packages
    find_package( PCL 1.8 REQUIRED )
    
    if( PCL_FOUND )
      # Additional Include Directories
      # [C/C++]>[General]>[Additional Include Directories]
      include_directories( ${PCL_INCLUDE_DIRS} )
    
      # Preprocessor Definitions
      # [C/C++]>[Preprocessor]>[Preprocessor Definitions]
      add_definitions( ${PCL_DEFINITIONS} )
      #add_definitions( -DPCL_NO_PRECOMPILE )
    
      # Additional Library Directories
      # [Linker]>[General]>[Additional Library Directories]
      link_directories( ${PCL_LIBRARY_DIRS} )
    
      # Additional Dependencies
      # [Linker]>[Input]>[Additional Dependencies]
      target_link_libraries( project ${PCL_LIBRARIES} )
    endif()
    

How to Build Libraries (PCL 1.8.0 and 3rdParty) from Source Code yourself

In many cases, You can use the All-in-one Installer for using PCL.
But, If you want to enable other options or use other compilers, You need to build PCL and 3rdParty yourself.

I will publish the notes of how to build PCL 1.8.0 and latest version 3rdParty.
Please refer to this Notes who want to build the libraries (PCL 1.8.0 and 3rdParty) yourself.

3rdParty Build Notes

PCL Build Note

How to Contribution (issue report, send pull request) and Question?

If you find a bug, you can reported to issues of GirHub.
If you can be fixed bug, you can send pull requests to GitHub repository.

And, If you have any questions, you can post to the PCL Users mailing list.
Please attach the following information in these reports. It will help to resolve your problem.
(You need to tell the appropriate information to resolve your problem.)

  • Error Code and Message
  • Adequate and Simple Source Code for Reproduce or Tutorial URL (e.g. source code sharing service URL like gist)
  • CMake Cache (<CMAKE_BINARY_DIR>CMakeCache.txt) *IMPORTANT
  • CMake Logs (<CMAKE_BINARY_DIR>CMakeFilesCMakeOutput.log)
  • PCL Version (or Commit Hash)
  • Target Compiler and Configure (e.g. “Visual C++ 2015, Release|x64”)
  • Operating System (e.g. “Windows 10 Pro (update 1511) 64bit”)

104 thoughts on “Point Cloud Library 1.8.0 has been released”

    1. Hi An Shuai,

      Are you accessing from China?
      Probably, Great Firewall of China is blocking access to Microsoft OneDrive.
      Many Chinese users seem to be accessing using VPN.

  1. Hi Tsukasa Sugiura,
    Thank you very much for your work and the installer is very convenient. I used your 1.7.2 all-in-one installer (VS2013) and it worked out well, except that the path to find VTK in PCL CMake file needs minor modification. The thing is now we need to use another library called CGAL and would require BOOST as well. The BOOST files in the all-in-one installer is not complete and we need to install a complete one for CGAL. Would there be any problem if I additionally install a complete BOOST library somewhere else in the computer? Would it conflict with the installed PCL? Thank you and look forward to your reply!

    1. Hi Xucong ZHAN,

      I’m not familiar about CGAL.
      I don’t know whether conflicts will occur when additionally Boost included in system.
      (BTW, That problem about VTK path has been solved in PCL 1.8.0 All-in-one Installer.)

  2. Does anyone have an example using PCL in QT 5.x?
    Im trying to render into a widget but I cant find any examples..

    I found something using QVTKWidget but I cant find this object in VTK or somewhere else…
    Thanks!

    1. Hi Serge,

      The VTK included in the PCL all-in-one installer has been disabled Qt option.
      (I have never tried it but…) Probably, I think you need to build VTK with enable Qt option. It is commonly called “QVTK”.
      Then, You need to build PCL libraries with QVTK.
      Please refer to this document about how to build QVTK.
      Please refer to this tutorial about how to use PCL in Qt GUI.

      If you want more information, I recommend that you post on the users forum.

  3. Hello Tsukasa Sugiura.
    First of all let me thank you for your VS2015 all-in-one-installer which saved me a lot of hassles I was having with cmake and the sources. I couldn’t find this anywhere else.
    First of all, I am building everything from VS, so this is why it might be wrong, but I don’t like the way Cmake organizes my VS projects, I want one and one only interface for building and thats VS…would you say it is impossible to get it right (with appropriate VS project properties)? In my not-so-computer-expert mind, it seems to me one should be able with these property pages to obtain the same result as CMake…?

    Second, I am having a problem with the ‘NO Override found for ‘vtkPolyDataMapper’, which I thought was fixed in your libraries…could you help me?

    The code I am trying to run is:

    #include <pcl/visualization/cloud_viewer.h>
    #include <iostream>
    #include <pcl/io/io.h>
    #include <pcl/io/pcd_io.h>
        
    int user_data;
        
    void 
    viewerOneOff (pcl::visualization::PCLVisualizer& viewer)
    {
        viewer.setBackgroundColor (1.0, 0.5, 1.0);
        pcl::PointXYZ o;
        o.x = 1.0;
        o.y = 0;
        o.z = 0;
        viewer.addSphere (o, 0.25, "sphere", 0);
        std::cout << "i only run once" << std::endl;
        
    }
        
    void 
    viewerPsycho (pcl::visualization::PCLVisualizer& viewer)
    {
        static unsigned count = 0;
        std::stringstream ss;
        ss << "Once per viewer loop: " << count++;
        viewer.removeShape ("text", 0);
        viewer.addText (ss.str(), 200, 300, "text", 0);
        
        //FIXME: possible race condition here:
        user_data++;
    }
        
    int 
    main ()
    {
        pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>);
        pcl::io::loadPCDFile ("my_point_cloud.pcd", *cloud);
        
        pcl::visualization::CloudViewer viewer("Cloud Viewer");
        
        //blocks until the cloud is actually rendered
        viewer.showCloud(cloud);
        
        //use the following functions to get access to the underlying more advanced/powerful
        //PCLVisualizer
        
        //This will only get called once
        viewer.runOnVisualizationThreadOnce (viewerOneOff);
        
        //This will get called once per visualization iteration
        viewer.runOnVisualizationThread (viewerPsycho);
        while (!viewer.wasStopped ())
        {
        //you can also do cool processing here
        //FIXME: Note that this is running in a separate thread from viewerPsycho
        //and you should guard against race conditions yourself...
        user_data++;
        }
        return 0;
    }
    

    But I always get a vtkOutputWindow displaying Error: no override found for ‘vtkPolyDataMapper’ at the “mapper->SetInputConnection (data->GetOutputPort ()); ” line of pcl_vizualizer.hpp… I have seen a disucssion from you and SergioRAgostinho on github and it seems to have a connection to OpenGL2?

    Any help would be greatly appreciated…

    1. Hi kaipo,

      Do you want to generate and setting project without CMake?
      I will not strongly recommend it. CMake will help you generate and setting project according to development environment of each developer.

      If you still want to do it without CMake, Please copy settings to your project from project that generated with CMake.
      (I have never tried it but…) Probably, You need to copy following.
      But, I can’t guarantee this.

      • [C/C++]>[General]>[Additional Include Directory]
      • Include directory for headers of PCL and 3rd Party.

      • [C/C++]>[General]>[SDL Check]
      • No (/sdl-)

      • [C/C++]>[Preprocessor]>[Preprocessor Definitions]
      • This section depends by build configuration Debug or Release.
        Probably, I think you need to rewrite a bit.

      • [C/C++]>[Precompiled Headers]>[Precompiled Header]
      • Not Using Precompiled Headers

      • [Linker]>[General]>[Additional Library Directories]
      • Dependencies directory for librares of PCL and 3rd Party.

      • [Linker]>[Input]>[Additional Dependencies]
      • This section depends by build configuration Debug or Release.

      For the second question, I think that cause in preprocessor settings.
      This problem doesn’t occur in project that generated by CMake.

  4. Hi,
    I am trying to use PCL1.8.0 and running an example.
    The problem is that when I run it, the window shows this message:

    Generic Warning: In C:\VTK-7.0.0\Rendering\Core\vtkPolyDataMapper.cxx, line 28
    Error: no override found for 'vtkPolyDataMapper'
    

    I had done try to add this:

    #define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
    #define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
    

    or this:

    #include <vtkAutoInit.h>
    VTK_MODULE_INIT(vtkRenderingOpenGL2);
    VTK_MODULE_INIT(vtkInteractionStyle);
    

    I used Cmake with VTK and VTK_RENDERING_BACKEND OpenGL.
    Can you help me?
    Thanks!

    1. Hi Mr. Tsukasa Sugiura
      thank you very much !!!
      Amazing tuto !

      sincerely

    2. Hi,HAMDI BEN ABDALLAH,
      I have meet the same problem,but i use “PCL 1.8.0 All-in-one Installer MSVC2015 x64”,not cmake.
      Can you reply that how to resolve the problem? Thanks!

  5. Hi,

    I’ve been using the 1.8 all-in-one-installer for my windows 10 computer with no issues.

    I’m now trying to use it on a windows 7 computer and am unable to configure cmake because it gives VTK_DIR NOT FOUND no matter what I do. Do I need to install VTK separately?

    Just to make sure it wasn’t an issue with my Cmakelists.txt file, I tried this
    tutorial: http://www.pointclouds.org/documentation/tutorials/pcl_visualizer.php#pcl-visualizer
    and had the same issue:

    And here is the cmake cache:

    //Flags used by the linker.
    CMAKE_EXE_LINKER_FLAGS:STRING= /machine:X86
    
    //The directory containing a CMake configuration file for PCL.
    PCL_DIR:PATH=C:/Program Files/PCL 1.8.0/cmake
    
    //The directory containing a CMake configuration file for VTK.
    VTK_DIR:PATH=VTK_DIR-NOTFOUND
    

    Can you help?
    Thanks,
    Libby McCord

    1. Hi Libby McCord,

      Probably, You have installed PCL that target for “x64”.
      But, You had specified “x86” in CMake generator.
      (e.g. “Visual Studio 14 2015” is x86 target. “Visual Studio 14 2015 Win64” is x64 target.)

      If you want to build application that targeting “x86 (Win32)”, You need to install PCL using All-in-one Installerfor for x86, and Specify x86 project in CMake generator.
      If you want to build application that targeting “x64”, You need to install PCL using All-in-one Installerfor for x64, and Specify x64 project in CMake generator.

    2. I can’t believe. I didn’t notice. I had selected x86 when I wanted x64!
      Thank you so much,
      Libby

  6. Happy New Year :-)

    I use MSVC14 and x64 and (/SUBSYSTEM:CONSOLE) and compile the program without any error.
    If I start it, I get a error when I want to write pcl to ply or pcd.
    Whats wrong?

    #include <iostream>
    #include <pcl/io/ply_io.h>
    
    typedef pcl::PointXYZ PointType;
    
    std::string myTest("C:\Test\xx.ply");
    pcl::PLYWriter testwriter;
    
    int main(int argc, char *argv[])
    {
        pcl::PointCloud<PointType>::Ptr Testcloud(new pcl::PointCloud<PointType>);
    
        // Add 3 Points
        PointType myCorner;
    
        myCorner.x = 10;
        myCorner.y = 10;
        myCorner.z = 10;
        Testcloud->points.push_back(myCorner);
    
        myCorner.x = 1;
        myCorner.y = 1;
        myCorner.z = 1;
        Testcloud->points.push_back(myCorner);
    
        myCorner.x = 5;
        myCorner.y = 6;
        myCorner.z = 5;
        Testcloud->points.push_back(myCorner);
    
        // Write Points to PLY - File
        testwriter.write(myTest, *Testcloud);
    
        std::cin.get();
        return 1;
    }
    
    1. Hi Thilo,

      That source code is wrong.
      You need to specify PointType in template parameter of pcl::PLYWriter::write<PointType>().

      If you have this type questions, I recommend that you post on the users forum.

      #include <pcl/point_cloud.h>
      #include <pcl/point_types.h>
      #include <pcl/io/ply_io.h>
      
      typedef pcl::PointXYZ PointType;
      
      int main( int argc, char *argv[] )
      {
          pcl::PointCloud<PointType>::Ptr cloud( new pcl::PointCloud<PointType>() );
      
          PointType point;
          point.x = 10;
          point.y = 10;
          point.z = 10;
          cloud->push_back( point );
      
          pcl::PLYWriter writer;
          writer.write<PointType>( "test.ply", *cloud );
      
          return 0;
      }
      

      Happy New Year! :)

  7. Hello Tsukasa Sugiura,

    Now I have send the Question to the forum.
    I think then problem seems to be a problem with the properties of the IDE.
    In the former all in one installer you have also a props file for the MSVC.
    Is it possible to produce one for the 1.8 version?
    This would be very helpful.

    Thanks a lot.

    1. Hi Thilo,

      I read the question that you posted.
      I think that error occurs when folder doesn’t exist.
      (But, I don’t know cause of garbled characters. It was not reproduced in my development environment.)

      I have no plan that to create property sheets for PCL 1.8.0 and later, because CMake is available now.
      (The property sheets was temporary way for setting PCL when CMake was not available. That problem has already been solved in PCL 1.8.0.)

    2. Hello Tsukasa Sugiura,

      Thanks for the answer.
      Is it possible to get your reproduced Environment / Project?
      Simply send it to my email?
      Maybe I fined the difference Setting.
      This would be very helpful.

      Thank you very much.

    3. Hello Tsukasa Sugiura,

      The “section” information and to build the project start with CMake solves my problem.
      Thank you for the help.

  8. Excuse me,
    I have installed PCL 1.8.0 All-in-one Installer MSVC2013 Win32.
    I using qt_visualizer as a example to test in QT.
    I already done qmake before build.
    And It appear a fatal error C1060 compiler is out of heap space I don’t have any idea about this.
    Do you have any idea?

  9. Hi Tsukasa,

    Please i can build KinFu with VS 2015 64 bits and Windows 10 ?

    Do you have any idea?

    Thank you very much.

    1. Hi Tsukasa,
      thank you for the answer.

      I need Kinfu with point cloud library.
      I do not find how to install Kinfu sources
      In my doctoral project I need Kinfu.
      I’m really blocked.

    2. Hi HMD BA,

      Kinfu is dependent on the OpenNI 1.x and CUDA.
      But, OpenNI 1.x is not available in Visual Studio 2012 and later.
      You need to fix it and build PCL yourself (or use Visual Studio 2010). However, It will takes a lot of time to do that.
      Therefore, I advised to consider alternative such as Kinect Fusion.
      I can’t support it. If you want more information, I recommend that you post on the users forum.

  10. Hi Tsukasa,
    I follow your tutorial in Building QVTK(VTK6+Qt5) with Visual Studio.But I can’t find the QVTKWidgetPlugin if I uncheck the BUILD_SHARED_LIBS on cmake.
    If I check BUILD_SHARED_LIBS on cmake, there are a lot of error like LNK1181 can not open opengl.lib.How can I do?
    My environment is msvc2012 32bit, VTK 7.1.0, Qt 5.7.0.
    Thank you very much.
    Best regard.

    1. Hi Peter,

      QVTKWidgetPlugin is generated only when selected BUILD_SHARED_LIBS and VTK_BUILD_QT_DESIGNER_PLUGIN, VTK_Group_Qt.
      But, I don’t know about cause of build errors that occur in that case.
      For this type questions, I recommend that you post on the PCL users forum or VTK users forum.

  11. Hi Tsukasa,

    I build KinFu with VS 2010 64 bits and Windows 8.1 using cmake 3.1.1. But I don’t find the build chioce of KinFu in cmake3.1.1 .
    KinectFusion is not open source.

    Do you have any idea?

    Thank you very much.

  12. Hi Tsukasa,

    thank you for your great work in documenting the building process. I managed to build the PCL in Windows with Qt, but when creating an installer (via the PACKAGE in VS) i can only build an installer with debug or release configuration. How did you build an installer containing both, debug and release libraries?

    Regards
    Matthias

    1. Hi Matthias,

      It’s need to some manual operations when generating installer that include all libraries.
      Sorry, I don’t want to still publish it, because that way is not smart and elegant…
      (And, I haven’t enough English skills to do it.)

  13. Hi Tsukasa,

    I recently ported a code base from Linux to Windows.
    All of the code worked in Linux (eclipse make project, PCL 1.7).
    I used your VS2015 PCL 1.8 installer and almost everything seems to be working.
    The one issue I am running into is that when I try to display lines in a vtk viewer (ie for normals) it throws an error and a pop-up:

    A VTK windows pops say and say "No override found for vtkActor"
    I traced it back to line 822 of the pcl visualiser class,which calls
    vtkSmartPointer actor = vtkSmartPointer::New ();

    Do I need to rebuild the library with vtk support differently somehow or is this a bug in my code/vs project setup?

  14. Hi Sugiura,

    I have been using your “PCL all-in-one Installer” without having any problem yet. However I don’t understand why we need PDB files. I did not download it and don’t use it.

    Normal and other feature estimation methods take a considerable time according to point size of inputted cloud. So they can not be used in any real time implementation. So I want to check out GPU implementation of available methods. Do I need to build it from the scratch?

    Regards

    1. Hi ali,

      The symbol files (*.pdb) can be used for debugging libraries.
      Probably, You will not need it in many cases.

      If you want to use GPU acceleration modules, You need to build PCL yourself.
      Please refer to this section. It will be helpful for you.

  15. Hi Sugiura,

    I tried to use your PCL 1.8 All-in-one. But I always get the following error while compiling: “fatal error C1083: Cannot open include file: ‘pthread.h’: No such file or directory”

    Could you please help me resolve this problem? I have been searching for solutions for a long time… Any help is appreciated! :)

    Best,
    Henry

    1. Hi Henry,

      Please tell me the details of your problem.
      Where is source code (or tutorial) that occurred your problem?
      What steps did occurred your problem?

  16. Hi. Thanks for your contribution.
    Do you have any plan to build all-in-one installer for visual studio 2017?

    1. Hi Fan,

      I have a plan to release PCL (1.8.0 or 1.8.1) All-in-one Installer for Visual Studio 2017.
      However, I think it needs to wait until Boost next version release (April 2017).
      Probably, Visual Studio 2017 will be supported from Boost 1.64.0.

  17. Hi, thank you for your useful information.

    May i know can i use eclipse as IDE to work with Openni2 and PCL??
    My kinect is v1. Is this combination work???

    1. Hi Ho,

      I don’t know whether PCL able to be used on Eclipse IDE.
      Maybe, You can probably use PCL on Eclipse IDE that with Visual C++ compiler.
      But, I can’t support it, because I have never tried it.
      If you want to use PCL on Windows, I recommend using Visual Studio.

      OpenNI2 supports Kinect v1 sensor.
      On Windows, It is working based Kinect SDK v1.

      If you want more information, I recommend that you post to users forum.

  18. Dear Tsukasa,
    I am not able to download the PCL 1.8.0 All-in-one Installer through the links provided by you. The error message received by is given below:

    “This item might not exist or is no longer available”

    “This item might have been deleted, expired, or you might not have permission to view it. Contact the owner of this item for more information.”

    In another message, it has been told that this user (you) has exceeded his/her OneDrive space.

    Could you please look into this matter?
    Thanks in advance.

  19. Hi, thank you for sharing the file. I am a student of USTC and I want to download the PCL1.8.0-All-in-One Installer MSVC2015 win32. I have used the vpn but it seems the share link of the OneDrive causes the failure. So could you please share it in the GoogleDrive or other links.

    Thank you very much.

  20. May I know why the all in one installer cannot be used ?? The link cannot be used to download??? Is there any method to solve???

  21. Dear Tsukasa,

    Now, I can see the files by shared by you. However, I am not able to download these files.
    Is there any open-source projects which can grab PCD data from Kinect V2 in ubuntu platform?

    Best.,

    1. Hi Rupam,

      OneDrive service seems to have become unstable.
      Currently, It seems that can be download in my environment.
      (If this state seems to be prolonged, I will consider to making mirrors.)

      You might be able to use OpenNI2 driver of libfreenect2 in Linux.
      (I can’t support it because I never tried it.)

      If you want more information, I recommend that you post to users forum.

  22. Hello Tsukasa Sugiura,

    when i’m installing PCL 1.8.0 All-in-one Installer MSVC2013 x64, while it is installing openni2 sdk, a window warning comes out. It mentions that Warning! PATH too long installer unable to modify PATH.
    Can u help me on solving this??
    Because when I compile pcl openni grabber program, the openni_grabber.exe is considered as unresolved link. I doubt that would it be the reason that contributing to the error of my program.

    Thank you so much!!!

    1. Hi Hy,

      Please choose the “Do not add PCL to the system PATH”.
      Then, Please manually set the environment variable PATH.

      OpenNI 1.x doesn’t support Visual Studio 2012 or later versions.
      If you want to use Visual Studio 2013, You need to use OpenNI 2.x instead of OpenNI 1.x.
      The point is, You need to rewrite to pcl::io::OpenNI2Grabber from pcl::OpenNIGrabber.
      (The PCL that install by this all-in-one installer doesn’t include pcl::OpenNIGrabber.)

    2. Thank you for your explanation.

      That’s mean if I am interested to use openni grabber, i need to install from source right??
      If yes, can you provide the method to install from source??

      Thank you again, your help is much appreciated.

    3. Yes. If you want to use pcl::OpenNIGrabber, You need to build PCL with OpenNI 1.x for Visual Studio 2010 from source code. (or use PCL 1.6.0 All-in-one Installer.)
      But, I can’t support it. I will not recommend that to use OpenNI 1.x, because it is necessary to use the old development environment.
      I recommend that to using OpenNI 2.x (pcl::io::OpenNI2Grabber).

    4. Oh i see, thank you. OpenNI 2.x (pcl::io::OpenNI2Grabber) is available within your all in one pcl1.8 installer right. So, i just modify the code will do right.
      Thank you.

    5. Hi Tsukasa Sugiura,

      That’s mean OpenNI 2.x (pcl::io::OpenNI2Grabber) is already include in the pcl 1.8 installer that you provided right?
      So, i just code will do right?
      Or i need to do some extra installation ??
      Thank you
      Sorry i have so much questions to ask u, I’m a newbie of pcl.

    6. Yes, This PCL All-in-one Installer includes OpenNI 2.x (pcl::io::OpenNI2Grabber). And you can use it.
      If you want more information, I recommend that you post to users forum.

      //#include <pcl/io/openni_grabber.h>
      #include <pcl/io/openni2_grabber.h>
      
      //boost::shared_ptr<pcl::Grabber> grabber = boost::make_shared<pcl::OpenNIGrabber>();
      boost::shared_ptr<pcl::Grabber> grabber = boost::make_shared<pcl::io::OpenNI2Grabber>();
      
  23. Hey,

    thanks for the build. Unfortunately I have a problem with it.
    I installed the All-in-One Package for VS2015 x64.
    Using the CMakeLists.txt und main.cpp provided and trying to compile in the console with cmake 3.72 installed I get the follwoing warning:


    CMake Warning at “D:/Programs/PCL 1.8.0/cmake/PCLConfig.cmake:487 (find_package):
    Could not find a configuration file for package “VTK” that is compatible with requested version””.
    The following configuration files were considered but not accepted:
    D:/Programs/PCL 1.8.0/3rdParty/VTK/lib/cmake/vtk-7.0/VTKConfig.cmake, version 7.0.0 (64-bit)

    I checked the “PCLConfig.cmake”-file at it states the flag $(Quiet_) as the desired version.

    Con you please help me?

    Thanks,
    Carl

    1. Hi Carl,

      Did you set generator correctly?
      You need specify “Visual Studio 14 2015 Win64” to generator, because you installed the PCL for MSVC 2015 x64.

      cmake.exe -G "Visual Studio 14 2015 Win64"
      
  24. Hello. I am unable to download your “PCL 1.8.0 All-in-one Installer MSVC2015 x64”. It prompts that the item are no longer available. Do you have another download-link?

    Regards
    Anton

  25. Hi!
    I downloaded then installed the all-in-one package for VS2015, and I made modification in project properties.
    But when I try to build my program, I have an error “getVector3fMap’ is not a member of ‘Eigen::Matrix<float, 3, …>'”.
    My code worked on PCL1.7, is it possible that the version of Eigen has changed ?
    I Believe not, but do not understand why is this error appearing now, if you have an idea?

    BTW thank for your work!
    And thanks for all!

    1. Ok! I must be really tired right now… I was just using the function using bad parameters…
      Sorry for those 2 posts/3 comments in a row for nothing…

      Have a great day!

  26. Hi,
    I’m having problem where the coding running perfect with no error at visual studio 2013. However, the pcl visualizer cannot be displayed.
    Same problem occurs when i directly accessing the application available at pcl 1.8/ bin files.

    Do u know what’s going on ??
    Please help

  27. Hello. Thanks for the great work! Everything worked until i tried to make a VS project with CMake (Newest cmake). I get the following error: “common is required but boost was not found”. Im using Visual Studio 2017 as a generator, and your 32 bit -all-in-one installer. Additional info from CMake: “Call Stack (most recent call first):
    C:/Program Files (x86)/PCL 1.8.0/cmake/PCLConfig.cmake:676 (pcl_report_not_found)
    C:/Program Files (x86)/PCL 1.8.0/cmake/PCLConfig.cmake:835 (find_external_library)
    CMakeLists.txt:9 (find_package)”

    I’m trying to configure a project folder, in which are only 2 files: sample cpp file (WritePcd, and the CMakeLists).

    Would you know what could be the issue? Thank you!

    1. Hello again! I solved the issue by replacing the VS from 2017 to 2015. Thank You!

    2. Hi Hannes,

      Visual Studio 2017 (vc14.1) have binary compatible with Visual Studio 2015 (vc14.0).
      Therefor, PCL 1.8.0 that installed from All-in-one Installer for MSVC 2015 can be used in Visual Studio 2017.
      In that case, CMake can’t automatically find Boost libraries path.
      You should manually fill those libraries path.

      BTW : I have a plan to release PCL 1.8.1 All-in-one Installer for Visual Studio 2017 when PCL 1.8.1 was released.

  28. Hello again, I’m having problem debugging openni2 grabber in pcl1.8
    In window 10 using visual studio 2015. The coding is errorless but whenever I run in visual studio, debug error happen. I try both 64 bits and 32 bits. Abort error and debug assertion fail keeps popping out. Do u ever experienced this kind of problem?? Can help me to review on it??

    1. Hi Ho,

      Probably, I think that an error has occurred because the sensor is not connected.
      pcl::io::OpenNI2Grabber throws an I/O exception “No devices connected” when sensor is not connected.
      You can check that error with try~catch.
      Please check whether sensor is connected.

  29. Hello Tsukasa san,

    Thank you very much for the very useful build.

    What is the license of the build (specifically, PCL 1.8.0 All-in-one Installer MSVC2015 x64)? I would like to distribute my open-source software for scientific researches with the build. Is it possible?
    Or are you planning to upload the build to a more stable and public server that I can provide the link to the users of my software?

    1. Hi Jumpei,

      PCL (also included PCL All-in-one Installer) is released under the terms of the 3-Clause BSD license, and thus free for commercial and research use.
      You can freely distribute the PCL All-in-one Installer under this license.

      I understand that the server is unstable.
      We have a plan to distribute the next version installer from official web.
      That server will be more stable. (but, our work is very slow. sorry.)

  30. Hi,
    first of all thanks a lot for your great documentation about how to use Qt and VTK! :-)
    I’m trying to use Qt 5.8, Vtk 7.1.1 / Vtk 7.1.0 (I tried both) and PCL 1.8 together with Visual Studio 15 and I followed the step as you presented here: https://gist.github.com/UnaNancyOwen/77d61f9f21376c9b59fc#file-qvtk7-md.
    Everythink works fine until I’m trying to compile the project … then an error is popping up: “LNK1181 vtkRenderingGL2PS.lib”. This data can’t be open.
    What should I do? I would be happy to get a hint … :-)
    Best regards,
    Timo

  31. Hello,

    I was wondering if it is possible to make a Cmake for PCL that is on this tutorial, together with OpenCV and use both libraries on a project.

    If i can just add this code in the end:

    Find OpenCV

    set( OpenCV_DIR “C:/Program Files/opencv/build” )
    find_package( OpenCV REQUIRED )

    Project Settings for OpenCV

    if( OpenCV_FOUND )
    # Additional Include Directories
    # [C/C++]>[General]>[Additional Include Directories]
    include_directories( ${OpenCV_INCLUDE_DIRS} )

    # Additional Library Directories
    # [Linker]>[General]>[Additional Library Directories]
    link_directories( ${OpenCV_LIB_DIR} )

    # Additional Dependencies
    # [Linker]>[Input]>[Additional Dependencies]
    target_link_libraries( project ${OpenCV_LIBS} )

    1. Hi Daniel,

      Yes, You can use PCL with OpenCV.
      Please add OpenCV setting to CMakeLists.

      cmake_minimum_required( VERSION 2.8 )
      
      # Create Project
      project( solution )
      add_executable( project main.cpp )
      
      # Set StartUp Project (Option)
      # (This setting is able to enable by using CMake 3.6.0 RC1 or later.)
      set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "project" )
      
      # Find Packages
      # Find PCL
      find_package( PCL 1.8 REQUIRED )
      
      # Find OpenCV
      set( OpenCV_DIR "C:/Program Files/opencv/build" )
      find_package( OpenCV REQUIRED )
      
      if( PCL_FOUND AND OpenCV_FOUND )
        # [C/C++]>[General]>[Additional Include Directories]
        include_directories( ${PCL_INCLUDE_DIRS} )
        include_directories( ${OpenCV_INCLUDE_DIRS} )
      
        # [C/C++]>[Preprocessor]>[Preprocessor Definitions]
        add_definitions( ${PCL_DEFINITIONS} )
        
        # For Use Not PreCompiled Features 
        #add_definitions( -DPCL_NO_PRECOMPILE )
      
        # [Linker]>[General]>[Additional Library Directories]
        link_directories( ${PCL_LIBRARY_DIRS} )
        link_directories( ${OpenCV_LIB_DIR} )
      
        # [Linker]>[Input]>[Additional Dependencies]
        target_link_libraries( project ${PCL_LIBRARIES} )
        target_link_libraries( project ${OpenCV_LIBS} )
      endif()
      
    2. I think i would have to make it in other way, like this:

      you need to pull libraries from both OpenCV and PCL. look at the example of CMakeLists.txt below –

      cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
      project(MINORU_STEREO_PCL)
      FIND_PACKAGE(OpenCV REQUIRED )
      find_package(PCL 1.0 REQUIRED)
      include_directories(${PCL_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
      link_directories(${PCL_LIBRARY_DIRS} ${OpenCV_LIB_DIR})
      add_definitions(${PCL_DEFINITIONS})
      add_executable(minoru_stereo_PCL main.cpp)
      target_link_libraries(minoru_stereo_PCL ${OpenCV_LIBS} ${PCL_LIBRARIES} /usr/local/lib/libcam.a)

      http://www.pcl-users.org/PCL-with-OpenCV-td3595644.html

  32. Oh, sorry
    Didn’t read your reply (i think it was the cache)

    Thank you so much!
    You are of great help

  33. Sorry for bothering you again :P
    I am trying to start studying Computer Vision =]

    I could not make it work, i edited this part of your code:

    if( PCL_FOUND AND OpenCV )
    to if( PCL_FOUND AND OpenCV_FOUND )

    I installed only OpenCV 3.2.0 for Windows from Sourceforge and added the Paths.
    I am receiving this Debug file:

    `Boost version: 1.61.0
    Found the following Boost libraries:
    system
    filesystem
    thread
    date_time
    iostreams
    serialization
    chrono
    atomic
    regex
    Could NOT find openni (missing: OPENNI_LIBRARY OPENNI_INCLUDE_DIRS)
    ** WARNING ** io features related to openni will be disabled
    Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR)
    ** WARNING ** io features related to ensenso will be disabled
    Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR)
    ** WARNING ** io features related to davidSDK will be disabled
    Could NOT find DSSDK (missing: _DSSDK_LIBRARIES)
    ** WARNING ** io features related to dssdk will be disabled
    Could NOT find RSSDK (missing: _RSSDK_LIBRARIES)
    ** WARNING ** io features related to rssdk will be disabled
    ** WARNING ** io features related to pcap will be disabled
    ** WARNING ** io features related to png will be disabled
    Could NOT find openni (missing: OPENNI_LIBRARY OPENNI_INCLUDE_DIRS)
    ** WARNING ** visualization features related to openni will be disabled
    Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR)
    ** WARNING ** visualization features related to ensenso will be disabled
    Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR)
    ** WARNING ** visualization features related to davidSDK will be disabled
    Could NOT find DSSDK (missing: _DSSDK_LIBRARIES)
    ** WARNING ** visualization features related to dssdk will be disabled
    Could NOT find RSSDK (missing: _RSSDK_LIBRARIES)
    ** WARNING ** visualization features related to rssdk will be disabled
    looking for PCL_COMMON
    looking for PCL_OCTREE
    looking for PCL_IO
    looking for PCL_KDTREE
    looking for PCL_SEARCH
    looking for PCL_SAMPLE_CONSENSUS
    looking for PCL_FILTERS
    looking for PCL_2D
    looking for PCL_GEOMETRY
    looking for PCL_FEATURES
    looking for PCL_ML
    looking for PCL_SEGMENTATION
    looking for PCL_VISUALIZATION
    looking for PCL_SURFACE
    looking for PCL_REGISTRATION
    looking for PCL_KEYPOINTS
    looking for PCL_TRACKING
    looking for PCL_RECOGNITION
    looking for PCL_STEREO
    looking for PCL_OUTOFCORE
    looking for PCL_PEOPLE
    OpenCV ARCH: x86
    OpenCV RUNTIME: vc15
    OpenCV STATIC: ON
    CMake Warning at C:/Program Files/opencv/build/OpenCVConfig.cmake:138 (message):
    Found OpenCV Windows Pack but it has no binaries compatible with your
    configuration.

    You should manually point CMake variable OpenCV_DIR to your build of OpenCV
    library.
    Call Stack (most recent call first):
    CMakeLists.txt:16 (find_package)

    CMake Error at CMakeLists.txt:16 (find_package):
    Found package configuration file:

    C:/Program Files/opencv/build/OpenCVConfig.cmake

    but it set OpenCV_FOUND to FALSE so package “OpenCV” is considered to be
    NOT FOUND.
    Configuring incomplete, errors occurred!`

    1. Hi Daniel,

      Sorry, It is my mistake.
      Please fix as follows.

      #if( PCL_FOUND AND OpenCV )
      if( PCL_FOUND AND OpenCV_FOUND )
      

      Did you choose “Visual Studio 14 2015 Win64”?
      The latest (3.2.0) pre-built OpenCV package includes only libraries for Visual Studio 2015 x64.
      Therefore, If you want to use only pre-built packages of PCL and OpenCV, You should be use Visual Studio 2015 and x64 target for development environment.

      If you want to more information, I recommended that you post to User Q&A forum of OpenCV.

  34. Sugiura-san,

    does your all-in-one installer for PCL1.8.0 come with WITH_PCAP true or false?

    thanks for excellent support page for PCL installation.

    1. Hi Fredrik,

      The pre-built PCL that include in all-in-one installer has been disabled PCAP option (WITH_PCAP).
      If you want to use features that using PCAP, You need build PCL from source code yourself.

  35. Hi Tsukasa,

    Thank you for your great support and please know that your work has saved us a great amount of time and effort. Really appreciate it!

    Some questions:
    Due to some reasons, I have to switch to VS2017 from VS2015 and there are a few problems. Previously on VS2015 I built the project via CMake and ran it with Local Windows Debugger, everything was fine. Now I use VS2017’s win64 native compiler to do the same thing, it says “The code execution cannot proceed because pcl_common_debug.dll was not found.” I have included the %PCL_Root%\bin directory in the system PATH. BTW if I run the project without debugging (ctrl+F5) it will run just fine. Do you have any idea why this is happening?

    Thanks in advance for any suggestion!

    1. Hi Xucong ZHAN,

      PCL 1.8.0 for MSVC2015 works correctly on MSVC2017 in my environment.
      Probably, You have the wrong setting.

      If you want to build application that target for x64, Please install “PCL 1.8.0 All-in-one Installer MSVC2015 x64“.
      You should be set “C:\Program Files\PCL 1.8.0” to environment variable “PCL_ROOT”.
      Then, You need to choose “Visual Studio 15 2017 Win64” in the step of specify generator in CMake.

    2. Hi Tsukasa,

      Thank you for your reply! The thing is I had done all the steps you mentioned correctly but the error still remained. So I decided to reinstall the all-in-one installer and copy the whole \bin directory (D:\Development\Packages\PCL 1.8.0\bin) to System Path and build the project again. It turned out working. I still don’t know where the problem lies but at least a new installation will work.
      Thank you all the same!

  36. Hi ,
    I installed PCL1.80 for VS2015. When I compile the code for Primesense , it appears that “abort() has been called”. Do you know how to solve it?
    thanks

    1. Hi pengpeng hu,

      Please check whether openni2_viewer (PCL 1.8.0\bin\pcl_openni2_viewer_release.exe) works correctly in your environment.
      If it works correctly, I think your source code or project settings may be wrong.
      You need to tell the more details (source code, target platform) about your problem.
      Please read this section.

  37. Hello, i’m trying to migrate a working PCL code on Ubuntu to Windows and Qt5.8. I downloaded and installed you PCL1.8, and add the environment variables. I still get :

    “CMake Error at C:/Program Files/PCL 1.8.0/cmake/PCLConfig.cmake:44 (message):
    PCL can not be found on this machine
    Call Stack (most recent call first):
    C:/Program Files/PCL 1.8.0/cmake/PCLConfig.cmake:762 (pcl_report_not_found)
    CMakeLists.txt:11 (find_package)”

    What can be the error? Some error in the instalation?

    Thanks

    1. Hi Ramón,

      Did you choose “Visual Studio 14 2015 Win64” in specify generator of CMake?
      And, The pre-built PCL (and VTK) that included in All-in-one Installer has disabled WITH_QT option.
      If you want use PCL with Qt, You need to build PCL from source code yourself.

    2. I choosed that one.

      If i decide to use directly Visual Studio, could i use this All on one PCL?

      Really thanks Mr Sugiura.

  38. Hi Tsukasa,

    Firstly, thank you very much for the great work.

    In a post above (March 2017) you mention Visual Studio 2017 support is waiting for Boost 1.64.0.

    I had a look here http://www.boost.org/users/history/version_1_64_0.html and near the bottom of the page, under “Boost’s additional test compilers” Visual C++ 14.1 is mentioned (I understand version 14.1 of Visual C++ is the version of the compiler included with Visual Studio 2017).

    Does this mean Visual Studio 2017 support can be added and if so any idea when?

    Thanks very much,
    Joel.

    1. Hi Joel Gordon,

      Yes, Boost supports Visual Studio 2017 (vc14.1) from Boost 1.64.0.
      It means that PCL able to be build with Visual Studio 2017.
      I have a plan to release PCL 1.8.1 All-in-one Installer for Visual Studio 2015 and Visual Studio 2017.

      On a side note, Visual C++ 2017 (vc14.1) have application binary interface compatible with Visual C++ 2015 (vc14.0).
      You can use PCL 1.8.0 All-in-one Installer for MSVC2015 with Visual Studio 2017.
      (I recommend using CMake 3.8.1 or later.)

Leave a Reply

Your email address will not be published. Required fields are marked *