Ask Your Question
0

Updating to PCL 1.7 in Groovy from Source

asked 2013-08-30 02:24:11 -0500

teddybouch gravatar image

updated 2013-09-21 03:40:58 -0500

I found this other thread that appears to be related (http://answers.ros.org/question/44821/updating-to-pcl-17-in-ros-fuerte/), but the code repositories that are required don't work for me.

I'm running openSUSE, which means that the automated package tools are not an option for me. From what I've been able to gather, in order to update to PCL 1.7 you need to follow the instructions at http://www.pointclouds.org/downloads/source.html to download and install the PCL code, which I have done.

Next, it appears that there are pcl17 and pcl17_ros packages that need to be downloaded and built. However, they don't appear to be on the package list at http://www.ros.org/browse/list.php, nor can I find them with a Google search.

What should happen seems to be that I should be able to link to pcl17 and pcl17_ros rather than pcl and pcl_ros, use the namespace pcl17 instead of pcl, and it will work. However, when I try that, I get the following error:

Could not find a package configuration file provided by "pcl17" with any of
  the following names:

    pcl17Config.cmake
    pcl17-config.cmake

These files do not exist on my computer, and I'm not sure whether I should try to create them. If I try to use the pcl libraries and namespace, then I get errors that it's looking for PCL 1.6, which I deleted for a clean install of 1.7. Any help in getting this resolved would be much appreciated.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2013-08-30 02:41:14 -0500

updated 2013-09-20 21:32:20 -0500

This and this answers may help.


EDIT: Just tried it myself and it seems to work.

In your case it might be 'simplier' since you are already building everything from source.

Nevertheless here are the steps to reproduce it with Groovy on Ubuntu. In my case there are existing catkin (~/catkin_ws) and rosbuild (~/rosbuild_ws, on top of catkin) overlays. Since catkin cannot overlay rosbuild (to the best of my knowledge) we have to underlay new workspace to the ~/catkin_ws.

  1. Create a separate workspace for perception_pcl:

    # Source the root workspace
    # The path is correct for Ubuntu and may differ for other distributions
    $ source /opt/ros/groovy/setup.bash
    
    # Create catkin overlay
    $ mkdir -p ~/pcl_ws/src && cd ~/pcl_ws/src
    
  2. Clone perception_pcl and checkout groovy-unstable-devel branch

    $ git clone -b groovy-unstable-devel <a href="https://github.com/ros-perception/perception_pcl.git">https://github.com/ros-perception/perception_pcl.git</a>
    
  3. Build the workspace

    $ cd .. && catkin_make_isolated
    
  4. Source it

    $ source ~/pcl_ws/devel_isolated/setup.bash
    
  5. Now we have to overlay old ~/catkin_ws on ~/pcl_ws

    $ cd ~/catkin_ws
    
    # Delete old build directories
    $ rm -rf build devel
    
    # Re-create workspace
    $ catkin_make
    
  6. Finally, source rosbuild workspace

    $ source ~/rosbuild_ws/setup.bash
    
edit flag offensive delete link more

Comments

Now when I go to re-create the catkin_ws, I get an error that there are non-catkin packages in it and catkin cannot build without isolation. There are a few packages that seem to be plain cmake, and I'm not sure whether to ignore them or somehow fix it.

teddybouch gravatar image teddybouch  ( 2013-09-05 12:36:25 -0500 )edit

That is exactly what I wrote in EDIT section of my answer - you have to do `catkin_make_isolated`. The sequence in the answer should solve the problem.

Boris gravatar image Boris  ( 2013-09-06 19:21:05 -0500 )edit

Changes made:
- Make sure that you are not sourcing any ROS setup.bash in your ~/.bashrc
- Checkout branch groovy-unstable-devel
- In ~/pcl_ws/src/perception_pcl/pcl/CMakeLists.txt, remove line 14: "BUILD_COMMAND ."

teddybouch gravatar image teddybouch  ( 2013-09-16 04:42:37 -0500 )edit

Sorry, I should have been more specific - the catkin_make_isolated in pcl_ws works just fine. It's the catkin_make in catkin_ws that is the problem (step 5 in the instructions above). Based on what I understand of the difference, I can't just make isolated for that last step and everything work.

teddybouch gravatar image teddybouch  ( 2013-09-16 04:46:43 -0500 )edit

Okay, now when I get to step 4 and try to source the PCL workspace, I get the following error:
Missing Python script: /home/abouchard/pcl_ws/devel_isolated/_setup_util.py
Does this have to do with commenting out the BUILD_COMMAND line as noted above?

teddybouch gravatar image teddybouch  ( 2013-09-16 06:52:10 -0500 )edit

Why did you remove BUILD_COMMAND line? Please update your question with error log. Everything should work without modifications.

Boris gravatar image Boris  ( 2013-09-16 12:29:05 -0500 )edit

I commented out the BUILD_COMMAND line because if I don't, I get error: /bin/sh: line 0: .: filename argument required

Here's the full error log: http://pastebin.com/H2mp8q0J

teddybouch gravatar image teddybouch  ( 2013-09-20 08:55:17 -0500 )edit

The link is broken. Nevertheless, I cannot reproduce your problem. Make sure there are no errors on previous steps. Also note that the git branch was renamed recently to groovy-unstable-devel. You may also try to do everything with 'clean system', i.e. unset all ROS_ environment variables, source the root workspace and then create pcl_ws and do catkin_make_isolated. After this source pcl_ws and recreate all your other workspaces and source them.

Boris gravatar image Boris  ( 2013-09-20 21:26:16 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2013-08-30 02:24:11 -0500

Seen: 682 times

Last updated: Sep 20 '13