Quantcast

best practice to install PCL in ROS

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

best practice to install PCL in ROS

Dejan Pangercic
Hi there,

could anyone please tell us what is the best (recommended) way to
install PCL under ROS?
We normally follow the instructions given on
http://www.ros.org/wiki/perception_pcl which are made to check out the
trunk version of PCL
(http://svn.pointclouds.org/ros/trunk/perception_pcl/pcl/) but that
trunk does not seem to have e.g. visualization library and some other
components such as e.g. "pcl/console/*".
In addition we've also noticed lately Radu suggesting installing PCL
standalone when users reported having problems with PCL in ROS - but
that can then not be used in ROS right?

We would very much appreciate if someone could elaborate on this a bit. Thanks.

On behalf of interns at Bosch, D.
--
MSc. Dejan Pangercic
PhD Student/Researcher
Intelligent Autonomous Systems Group
Technische Universität München
Telephone: +49 (89) 289-26908
E-Mail: [hidden email]
WWW: http://ias.cs.tum.edu/people/pangercic
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: best practice to install PCL in ROS

idryanov
> In addition we've also noticed lately Radu suggesting installing PCL
> standalone when users reported having problems with PCL in ROS - but
> that can then not be used in ROS right?

I would be interested in this too. I have been trying to use the
latest pcl standalone in conjunction with ROS for the last several
days without success. So far my approach has been to install PCL
(standalone) from svn, reformat my code so it doesn't depend on
pcl_ros, remove pcl and pcl_ros from my manifest.xml, and edit my
CMake file to link against the non-ROS pcl libraries.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PCL-users] best practice to install PCL in ROS

rusu
Administrator
In reply to this post by Dejan Pangercic
Dejan,

On 07/08/2011 04:57 PM, Dejan Pangercic wrote:
> Hi there,
>
> could anyone please tell us what is the best (recommended) way to
> install PCL under ROS?

There is only one way (and there has always been only one way): use whatever PCL package ROS provides, until we indicate
otherwise.

Please RTFM in the future before posting. http://www.pointclouds.org/downloads/ clearly states that for PCL integration
with ROS you should visit http://pcl.ros.org.

> We normally follow the instructions given on
> http://www.ros.org/wiki/perception_pcl which are made to check out the
> trunk version of PCL
> (http://svn.pointclouds.org/ros/trunk/perception_pcl/pcl/) but that
> trunk does not seem to have e.g. visualization library and some other
> components such as e.g. "pcl/console/*".

ROS is always going to be at least 6 months behind the development of PCL, due to a policy which does not allow the
introduction of new features into a distribution. The files that you are searching for are either part of other packages
(pcl_visualization in the first case), or are not present at all.

Bottom line is: if you use ROS, you need to be patient and wait until those features become available in ROS, until we
change the above mentioned policy.

> In addition we've also noticed lately Radu suggesting installing PCL
> standalone when users reported having problems with PCL in ROS - but
> that can then not be used in ROS right?

You misunderstood. The pcl-users@ mailing lists deal with PCL problems in general. When someone sends an e-mail there
saying that something doesn't work, the first thing that we do is try to isolate whether the problem is with PCL, ROS,
or other 3rd party libraries that they are using.

The reason why people complain about having problems with PCL in ROS is because they try to use unstable/untested new
features (pulling unstable stacks or using trunk), or they try to mingle PCL standalone with PCL in ROS. The standard
answer is to try the same piece of code either with PCL standalone so we can see whether we have a bug in PCL, or with
the perception_pcl stack released in a _STABLE_ ROS distribution (i.e. Diamondback at the moment), to see if there is a
bug in users' code.


Cheers,
Radu.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: best practice to install PCL in ROS

rusu
Administrator
In reply to this post by idryanov
Ivan,


On 07/08/2011 06:25 PM, Ivan Dryanovski wrote:

>> In addition we've also noticed lately Radu suggesting installing PCL
>> standalone when users reported having problems with PCL in ROS - but
>> that can then not be used in ROS right?
>
> I would be interested in this too. I have been trying to use the
> latest pcl standalone in conjunction with ROS for the last several
> days without success. So far my approach has been to install PCL
> (standalone) from svn, reformat my code so it doesn't depend on
> pcl_ros, remove pcl and pcl_ros from my manifest.xml, and edit my
> CMake file to link against the non-ROS pcl libraries.

That is the correct way. There's only two options:

  * use whatever perception_pcl gives you, in terms of PCL functionality for ROS;

  * remove all occurrences of pcl and pcl_ros from your system and use PCL standalone through CMake mechanisms.

The latter is not normally supported by ROS, but since cmake is a well understood "standard", it shouldn't be difficult
at all to integrate it, and there's many people in the community that can help you use it.

You have to understand that we cannot have both a "6 months API freeze" (with no new features) and a "living da vida
loca" in terms of new developments. :) Something's gotta give... Anytime you need something newer than what a ROS
distribution has to offer, you either start compiling from source the latest and greatest, or you move to an unstable
ROS distribution altogether. There's nothing in between at the moment, but hopefully things will change in the future.


Hope this helps.

Cheers,
Radu.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PCL-users] best practice to install PCL in ROS

Dejan Pangercic
In reply to this post by rusu
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.

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?

> Please RTFM in the future before posting.
> http://www.pointclouds.org/downloads/ clearly states that for PCL
> integration with ROS you should visit http://pcl.ros.org.
You better be sure that I did that and not only one time. With that in
mind I really do not understand why do you have to use profane
language and taunt me. One of the remarkable assets of this community
was that it was always polite and helpful.

Many thanks for your answers anyways,
D.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: best practice to install PCL in ROS

Dejan Pangercic
In reply to this post by idryanov
Ivan,
when you say without success, could you please elaborate a bit more
what exactly went wrong?
Also would you mind sharing your changes to the CMake file with us?

thx and best, D.

On Fri, Jul 8, 2011 at 6:25 PM, Ivan Dryanovski
<[hidden email]> wrote:

>> In addition we've also noticed lately Radu suggesting installing PCL
>> standalone when users reported having problems with PCL in ROS - but
>> that can then not be used in ROS right?
>
> I would be interested in this too. I have been trying to use the
> latest pcl standalone in conjunction with ROS for the last several
> days without success. So far my approach has been to install PCL
> (standalone) from svn, reformat my code so it doesn't depend on
> pcl_ros, remove pcl and pcl_ros from my manifest.xml, and edit my
> CMake file to link against the non-ROS pcl libraries.
> _______________________________________________
> ros-users mailing list
> [hidden email]
> https://code.ros.org/mailman/listinfo/ros-users
>



--
MSc. Dejan Pangercic
PhD Student/Researcher
Intelligent Autonomous Systems Group
Technische Universität München
Telephone: +49 (89) 289-26908
E-Mail: [hidden email]
WWW: http://ias.cs.tum.edu/people/pangercic
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PCL-users] best practice to install PCL in ROS

rusu
Administrator
In reply to this post by Dejan Pangercic
Dejan,

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).


Cheers,
Radu.
--
Point Cloud Library (PCL) - http://pointclouds.org
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: best practice to install PCL in ROS

rusu
Administrator
In reply to this post by Dejan Pangercic
Dejan,

On 07/09/2011 11:04 PM, Dejan Pangercic wrote:
> Ivan,
> when you say without success, could you please elaborate a bit more
> what exactly went wrong?
> Also would you mind sharing your changes to the CMake file with us?

I can fill this in.

Installing and working with PCL standalone, means that you use it as you would use any other system library, like Boost.
We provide a proper standard cmake FindPCL/PCLConfig set of files, which means that you can simply use things like:

{{{
find_package(PCL 1.0 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (FOO FOO.cpp)
target_link_libraries (FOO ${PCL_LIBRARIES})
}}}


Again, all of these things are _very_ well documented on our web pages. ;)


Whenever you mix and match different libraries (PCL from ROS with PCL standalone), you're guaranteed to run into issues,
hence Ivan's e-mail about the segfault, and my reply about trying his code first with PCL standalone, to see if we have
a bug in PCL, or whether it's a "mix-up" issue.


Cheers,
Radu.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PCL-users] best practice to install PCL in ROS

Dejan Pangercic
In reply to this post by rusu
> 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).
It is probably clear now but I got confused a bit when those notes got removed.

Great answer now, thx a lot.
D.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Loading...