[ros-users] [PCL-users] best practice to install PCL in ROS

Radu B. Rusu rusu at willowgarage.com
Sun Jul 10 06:17:26 UTC 2011


On 07/09/2011 10:59 PM, Dejan Pangercic wrote:
> Radu,
>> There is only one way (and there has always been only one way): use whatever
>> PCL package ROS provides, until we indicate otherwise.
> I partly agree on this but since it is a common practice in ROS to
> install software in stacks I have been mostly following
> http://www.ros.org/wiki/perception_pcl page. That page on e.g. June
> 29th had an option to install the latest released version of PCL
> (http://www.ros.org/wiki/perception_pcl?action=recall&rev=12, "For
> users option") which included the code for e.g. visualization, parsing
> of  command line arguments, etc. and which I  was very happy about.
> The confusion for me came from the fact that the above mentioned
> components were in the released version but are now not in the trunk
> anymore. I however now understand that what was meant with the
> released version is basically a released standalone version of PCL and
> the trunk is actually a ROS version of trunk which has been frozen.

As you already noticed, those notes got removed (for a good reason) from the wiki page. Whatever is written there at the 
moment is what matters for the current code release.

> This conclusion (if correct) then leads to a follow up question: Would
> it be possible to continue to provide instructions on how to install
> the latest released version of standalone PCL in ROS?

The stack in question is perception_pcl_unstable, but we cannot actively support that in the Diamondback distribution. 
To explain why, we have to go back to how ABI compatibility works. Once you install a newer version of a library that's 
not ABI compatible, you pretty much better recompile all the code that depends on that library. This means that if 
Diamondback has 100 (fictitious number) packages that depend on PCL, you need to recompile all of them if you install 
perception_pcl_unstable, before attempting to use any of them, otherwise you might experience random crashes. And things 
like that are extremely hard to debug via e-mail.

So the correct answer here is (as I mentioned before): in a stable ROS distribution, use perception_pcl. If you need any 
newer features, you're on your own -- we can support you, but we will ask (many times repeatedly) to try your code using 
*PCL standalone* first before investigating any further, as there are many many things that can break when you use code 
linked against different versions of (ABI incompatible) libraries. So if you want the newer "unstable" PCL in ROS, 
hassle-free, you need to use ROS Unstable.

PS. :) I think you misunderstood the meaning of RTFM btw. It's not profane at all, and I meant it as an acronym to "read 
the fine manual" ;) The current documentation is very clear on how to use PCL in ROS, so I was surprised to see your 
cross post on two mailing list asking for more information. If the documentation is not clear, we would be happy to fix 
it. We also have a proper issue tracking system that should be used for things like this (e.g., a feature request on 
better documenting how to use PCL in ROS would have been just fine).

Point Cloud Library (PCL) - http://pointclouds.org

More information about the ros-users mailing list