ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Upgrading to PCL 1.6.0 with ROS fuerte Ubuntu 12.04

asked 2012-07-26 13:11:11 -0500

MartinW gravatar image

updated 2014-01-28 17:13:09 -0500

ngrennan gravatar image

Hi all,

I am trying to download the latest PCL library so that I can try using their object recognition code, however I can't figure out how to properly install it.

I followed the instruction for compiling from source on the PCL website

"cd PCL-1.6.0 && mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make sudo make install"

Everything seems to install fine but when I searched through the folders it generated, the file paths were all different. For example, planar_polygon.h should be in /pcl/geometery/planar_polygon.h, instead it is in pcl-1.6/pcl/geometery/include/pcl/geometery/. It seems like all the header files that my programs want are buried in sub-directories. Did I compile/make my pcl library incorrectly?

I tried manually moving the header files to where they should be but when I rosmake my program it gives me LOTS of errors. Therefore I feel as though I am installing incorrectly in some way.

Kind regards, Martin

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-07-26 16:49:42 -0500

Mac gravatar image

updated 2012-07-26 16:50:11 -0500

As @joq says, this is a common problem.

However, it's such a common problem that we've (sort of) fixed it. Install the ros-fuerte-perception-pcl-fuerte-unstable package. This adds pcl16 and pcl16_ros packages that track PCL 1.6 (not quite to PCL 1.6.0 yet; I haven't had the chance to bump the version lately; soon!).

The namespacing, filenames, and everything else have been changed from pcl to pcl16, so you'll need to make some minor changes to your code. For example, pcl::PointCloud<pcl::PointXYZRGB> becomes pcl16::PointCloud<pcl16::PointXYZRGB>. Doing it this way lets the two PCL versions coexist nicely.

edit flag offensive delete link more


Fantastic! I've been able to download the package and all the correct files are in the folder. However, after installing and rosmaking the perception_pcl_fuerte_unstable package, the header files are still not linking correctly in my program. Is there another step I am missing during installation?

MartinW gravatar image MartinW  ( 2012-07-30 14:35:09 -0500 )edit

First, I'd suggest using the binary installer, just because building is slow...but since you've done that, I'm not sure what problem you're describing. Can you post a code snippet?

Mac gravatar image Mac  ( 2012-07-30 15:57:39 -0500 )edit

/root/ros_workspace/my_pcl_tutorial/src/recognizer.cpp:1:29: fatal error: pcl16/io/pcd_io.h: No such file or directory. According to the rosmake error I have no such file or directory, however I checked and it is buried (quite deep) in my ros stacks directory. I'll try to binary install today

MartinW gravatar image MartinW  ( 2012-07-31 06:11:42 -0500 )edit

Have you done <depend package="pcl16"/> in your manifest.xml?

Mac gravatar image Mac  ( 2012-07-31 06:32:09 -0500 )edit

Ahh Mac! Thank you, that is what I needed to do. I'm still so new to this type of programming/compiling that I completely forgot I had to update the manifest! :) Cheers! (Moreover, I realized that I /did/ do a binary install the first time haha)

MartinW gravatar image MartinW  ( 2012-07-31 06:39:03 -0500 )edit

answered 2012-07-26 16:25:29 -0500

joq gravatar image

This is a frequently asked question.

Sadly, you can't run the standalone PCL library with ROS. You have to build the ROS version, which is compiled and installed differently.

edit flag offensive delete link more


@joq I have running the pcl17 and pcl17_ros but i cant manage to crate a publisher in a person detection code, have you manage to make a pcl code from pcl17 work with ros?

ctguell gravatar image ctguell  ( 2013-10-08 08:04:36 -0500 )edit

PCL 1.7 is a completely different discussion, and not relevant to this question. The standalone libpcl-1.7-all-dev package is supported by ROS Hydro. Its ROS API is not compatible. Getting it to work with earlier ROS releases is challenging. For details, please ask on the PCL users mailing list.

joq gravatar image joq  ( 2013-10-08 08:59:08 -0500 )edit

Question Tools



Asked: 2012-07-26 13:11:11 -0500

Seen: 2,806 times

Last updated: Jul 26 '12