[ros-users] Compiling and installing ROS in Debian Squeeze

Jack O'Quin jack.oquin at gmail.com
Wed Oct 3 16:48:56 UTC 2012


On Wed, Oct 3, 2012 at 9:49 AM, Leopold Palomo-Avellaneda
<leo at alaxarxa.net> wrote:
> A Dimecres 03 Octubre 2012, Rich Mattes va escriure:
>> On Tue, Oct 2, 2012 at 6:18 PM, Leopold Palomo Avellaneda
>> <leo at alaxarxa.net>wrote:
>>
>> > Hi,
>> >
>> >
>> > First of all I have noticed that there are several packages that has a
>> > dependency a pcl package, when there's no pcl package, but there's a
> system
>> > dependency pcl. So, I have to change several manifest files from
>> >
>> >  <depend package="pcl" />
>> >
>> > to
>> >   <rosdep name="pcl" />
>> >
>> > Also, I have not be able to found which version of pcl is needed for
> fuerte
>> > (1.5, 1.6) With 1.6 it doesn't compile.
>> >
>> >
>>
>> We had a lot of fun trying to figure this out in Fedora[1] as well.  As it
>> turns out, you can't use the upstream PCL release for Fuerte, you need a
>> custom branch of PCL hosted on github[2] which contains extra message
>> definitions and stack metadata.  I raised the issue upstream[3] and it
>> looks like we have to wait for PCL 2.0 for ROS to build against PCL as a
>> stand-alone library instead of requiring that PCL be modified.  We're going
>> to try to patch Fedora's system PCL to make it a hybrid ROS stack and
>> stand-alone library so that ROS is usable until this situation is resolved.
>> It seems this issue is pretty[4] common[5].
>
> Well, we want something similar. A PCL version stand-alone that could be used
> by ros.
>
> I have seen the github code, and it doesn't seems that use the ROS stuff,
> although is required by cmake. From a ROS full installation (188) packages I
> have compiled 106, considering that pcl is not built or installed.
>
> I hope to have something functional some day ...

So do I.

Many people have stumbled over this problem in Fuerte. And, I fear it
may not get better in Groovy. I really hope I end up being wrong about
that.

I think PCL must have fallen in the cracks during the Fuerte release.
Many of us expected catkin to solve the problem of building
stand-alone PCL with the ROS message tools. That only half worked.
Thanks to catkin, PCL can now optionally be built to use standard ROS
messages, such as sensor_msgs/PointCloud2. But unfortunately, PCL also
defines several ROS messages of its own: ModelCoefficients,
PointIndices, PolygonMesh, and Vertices, which cannot reasonably be
handled by the stand-alone PCL build. The changes to the PCL 1.5
sources were too large, messy and complex to merge into their
stand-alone tree.

To ship a working Ubuntu version for Fuerte, the wg-debs/pcl github
project was created. Unfortunately, the main purpose of wg-debs is to
add the Debian rules and source control for several Ubuntu packages
hosted on packages.ros.org because they are necessary rosdep
dependencies. Getting that to work for PCL involved significant
additional source changes, mostly defining those additional messages
and using them in PCL.

That mostly solved the problem for Ubuntu systems. But, it leaves no
good solution for other Linux distros, Mac OSX, ARM boards, other
embedded systems, or anyone wanting to build everything from source.

When PCL 2.0 comes out, it will only use PCL-defined types, no ROS
messages. So, these problems should eventually go away. Until then,
the ROS community needs to provide a PCL 1.x version that can be built
and installed from source on any of our target platforms. Then, the
Ubuntu Debian packages should be built from that. Unfortunately, that
will demand considerable maintenance effort including documentation,
with active Q&A support both here and on the PCL forums.

Perhaps there is some clever way to repackage those additional ROS
messages into a catkin ROS package that a stand-alone PCL could
optionally build with, as it already does with std_msgs and
sensor_msgs when USE_ROS is specified for building. But, that seems to
be beyond my current catkin and PCL skills.
-- 
 joq



More information about the ros-users mailing list