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

installation of perception_pcl_electric_unstable

asked 2012-03-15 20:33:16 -0500

clark gravatar image

Recently I am dealing with surface reconstruction using pcl, and I need the OctreePointCloudSearch class under pcl::octree. But the default pcl version under perception_pcl is only 1.1, and classes like OctreePointCloudSearch are missing in this version.

So following the discussion from this thread, I download perception_pcl_electric_unstable from and rosmake it. Unfortunately I have no idea how to get rid of the following error,
"...... /usr/bin/ld: cannot find -lpcl_range_image_border_extractor collect2: ld returned 1 exit status make[3]: * [../bin/convert_pcd_to_image] Error 1 make[3]: Leaving directory `/home/robot/ros/perception_pcl/pcl_ros/build' ......"

My current setting: ubuntu 11.04 + ros electric

You advice is greatly appreciated.


edit retag flag offensive close merge delete


Hey i noticed that you haven't set your ros path for this unstable version before compiling it. I see "/home/robot/ros/perception_pcl/pcl_ros/build" in your error which is not unstable version. I have recently updated my unstable version in similar environment and it works fine

karthik gravatar image karthik  ( 2012-03-19 10:29:31 -0500 )edit

I even had a bug in flann and reported the solution to the developer which was updated instantaneously. Could you do "svn info" and tell the version you checked out.

karthik gravatar image karthik  ( 2012-03-19 10:30:43 -0500 )edit

Karthik, the reason that the folder name is shown as perception_pcl rather than "perception_pcl_electric_unstable" just because I changed the folder name after svn the source. BTW, svn info gives "Revision: 241"

clark gravatar image clark  ( 2012-03-20 01:32:00 -0500 )edit

Clark: I have answered your question. I tried it on other system n was able to recreate your issue, I was able to solve it in the explained fashion.

karthik gravatar image karthik  ( 2012-03-20 02:04:45 -0500 )edit

3 Answers

Sort by » oldest newest most voted

answered 2012-03-16 00:21:29 -0500

einrob gravatar image


A colleague of mine had the same problem some days ago. You need to remove the compiler libary flag "-lpcl_range_image_border_extractor" in the manifest.xml. That library doesnt exist anymore because it was merged with another one. :) Then it should compile properly.

Greets, Robert

<cpp cflags="-I${prefix}/include/pcl-1.6/ -I&lt;code&gt;cmake -P ${prefix}/vtk_include.cmake&lt;/code&gt;" lflags="-L&lt;code&gt;cmake -P ${prefix}/vtk_library.cmake&lt;/code&gt; -Wl,-rpath,${prefix}/lib64 -L${prefix}/lib64 -Wl,-rpath,${prefix}/lib -L${prefix}/lib -lpcl_common -lpcl_filters -lpcl_features -lpcl_io -lpcl_surface -lpcl_registration -lpcl_sample_consensus -lpcl_kdtree -lpcl_segmentation -lpcl_keypoints ***-lpcl_range_image_border_extractor*** -lpcl_visualization -lpcl_octree -lpcl_search"/>

edit flag offensive delete link more


thank u for the advice.

clark gravatar image clark  ( 2012-03-18 16:43:07 -0500 )edit

answered 2012-03-20 02:03:47 -0500

karthik gravatar image

Here is a trick. This might work temporarily and i am not sure about the consequences. First of all update the svn repo Latest version is 247. I just checked it

P.S: I am going to use the name perception_pcl_electric_unstable here for differentiating with the version given with the electric installation

Search for libpcl_range_image_border_extractor* in your system using

locate libpcl_range_image_border_extractor*

Mostly you will get in the /opt/ros/electric/stacks/perception_pcl/pcl/libs location You will see the following 3 files

Then copy them to your current/latest perception_pcl_electric_unstable/pcl/lib using

cp -r /opt/ros/electric/stacks/perception_pcl/pcl/lib/libpcl_range_image_border_extractor* /home/ros_workspace/perception_pcl_electric_unstable/pcl/lib

Since electric gives the pcl-1.1.1 by default they would have .so.1.1 and .so.1.1.1 respectively. Rename them to .so.1.6 and .so.1.6.0 respectively.

At the end of this you will have

in the pcl/lib/ folder of the latest unstable version. Now go back to perception_pcl_electric_unstable folder and do rosmake.

Hopefully it should compile with out any issues.

Hope this helps! Karthik

edit flag offensive delete link more

answered 2012-03-18 16:48:41 -0500

clark gravatar image

Robert, After following your advice on the xml file, I got another error during the compiling, any further advice?

[ 57%] Building CXX object visualization/CMakeFiles/pcl_visualization.dir/src/histogram_visualizer.cpp.o ... In file included from /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/src/histogram_visualizer.cpp:46:0: /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/include/pcl/visualization/histogram_visualizer.h: In member function ‘virtual void pcl::visualization::PCLHistogramVisualizer::ExitCallback::Execute(vtkObject, long unsigned int, void)’: /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/include/pcl/visualization/histogram_visualizer.h:271:18: error: ‘class pcl::visualization::PCLHistogramVisualizer’ has no member named ‘stopped_’ /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/src/histogram_visualizer.cpp: In constructor ‘pcl::visualization::PCLHistogramVisualizer::PCLHistogramVisualizer()’: /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/src/histogram_visualizer.cpp:54:5: error: class ‘pcl::visualization::PCLHistogramVisualizer’ does not have any field named ‘stopped_’ /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/src/histogram_visualizer.cpp: In member function ‘void pcl::visualization::PCLHistogramVisualizer::spinOnce(int, bool)’: /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/src/histogram_visualizer.cpp:82:23: error: ‘struct pcl::visualization::PCLHistogramVisualizer::ExitCallback’ has no member named ‘interact’ /home/robot/ros/perception_pcl/pcl/build/pcl_trunk/visualization/src/histogram_visualizer.cpp:93:5: error: ‘struct pcl::visualization::PCLHistogramVisualizer::ExitCallback’ has no member named ‘interact’ ...

edit flag offensive delete link more


update: the above error occurred on a computer with ubuntu 11.04 + electric; but the same svn source (after the change of xml file) works on another computer with ubuntu 11.10 + electric. em, guess some software issue exists on my 11.04 computer...

clark gravatar image clark  ( 2012-03-18 17:28:25 -0500 )edit

Question Tools


Asked: 2012-03-15 20:33:16 -0500

Seen: 682 times

Last updated: Mar 20 '12