0
$\begingroup$

Rosanswers logo

I am trying to build perception_pcl 1.2.2 (from source) for fuerte on Fedora 16. Fedora has a packaged version of PCL (1.5.1), but when I try to build perception_pcl, I get all sorts of conflicts leading to a failure to build, most of them seeming to arise from the fact that std_msgs::Header is defined in both codebases but is not compatible.

EDIT: It looks like only a very specific modified version of PCL will work, the one that is packaged up in the ubuntu ros-fuerte-pcl deb file (http://packages.ros.org/ros/ubuntu/pool/main/r/ros-fuerte-pcl/), but since I cannot use that deb, I need a pointer to the source files used to make that deb file. I think once I have that, I can move forward.

== OLD NOTES ==

I rebuilt PCL with "USE_ROS=ON", and that resulted in a successful PCL build, but the following header files were not installed:

/usr/include/pcl-1.5/pcl/ModelCoefficients.h
/usr/include/pcl-1.5/pcl/PointIndices.h
/usr/include/pcl-1.5/pcl/PolygonMesh.h
/usr/include/pcl-1.5/pcl/TextureMesh.h
/usr/include/pcl-1.5/pcl/Vertices.h
/usr/include/pcl-1.5/sensor_msgs/Image.h
/usr/include/pcl-1.5/sensor_msgs/PointCloud2.h
/usr/include/pcl-1.5/sensor_msgs/PointField.h
/usr/include/pcl-1.5/std_msgs/Header.h

The sensor_msgs and std_msgs headers make sense to be absent, those are provided by common_msgs and std_msgs in ROS, but the five header files under pcl/ are missing, and the rest of PCL's headers #include them, which causes perception_pcl to fail to compile.

Can someone tell me how to successfully compile perception_pcl from source?

EDIT: I realized it may be useful to actually show bits from the log showing the first failures at compiletime:

PCL 1.5.1 (USE_ROS=NO), trying to build perception_pcl 1.2.2:

/usr/include/ros/message_traits.h:42:3: error: conflicting declaration ‘typedef struct std_msgs::Header_<std::allocator<void> > std_msgs::Header’
In file included from /usr/include/pcl-1.5/sensor_msgs/PointCloud2.h:8:0,
             from /home/spot/ros/perception_pcl/pcl_ros/src/pcl_ros/transforms.cpp:37:
/usr/include/pcl-1.5/std_msgs/Header.h:11:10: error: ‘struct std_msgs::Header’ has a previous declaration as ‘struct std_msgs::Header’
In file included from /home/spot/ros/geometry/tf/include/tf/transform_datatypes.h:38:0,
             from /home/spot/ros/perception_pcl/pcl_ros/include/pcl_ros/transforms.h:42,
             from /home/spot/ros/perception_pcl/pcl_ros/src/pcl_ros/transforms.cpp:40:
/usr/include/geometry_msgs/QuaternionStamped.h: In instantiation of ‘struct geometry_msgs::QuaternionStamped_<std::allocator<void> >’:
/home/spot/ros/geometry/tf/include/tf/transform_datatypes.h:202:23:   required from here
/usr/include/geometry_msgs/QuaternionStamped.h:73:16: error: ‘geometry_msgs::QuaternionStamped_<ContainerAllocator>::header’ has incomplete type

Originally posted by spotrh on ROS Answers with karma: 76 on 2012-05-23

Post score: 5


Original comments

Comment by spotrh on 2012-05-23:
Just to see if it makes a difference, I tried copying in the missing pcl/ header files, and that doesn't build either.

Comment by joq on 2012-05-23:
What PCL 1.5 source URL are you building from?

Comment by joq on 2012-05-23:
On Ubuntu, the ros-fuerte-pcl package provides those five headers (and many more).

Comment by spotrh on 2012-05-24:
http://dev.pointclouds.org/attachments/download/771/PCL-1.5.1-Source.tar.bz2

Comment by spotrh on 2012-05-24:
When I compare the Fedora PCL package to the ros-fuerte-pcl ubuntu dpkg, the dpkg is missing several files, specifically: ./std_msgs/Header.h, all of the openni files, and the sensor_msgs/. In addition, there seems to be extensive patching to pcl/ModelCoefficients.h

Comment by spotrh on 2012-05-24:
Unfortunately, I haven't managed to find out where the source for that ros-fuerte-pcl dpkg came from yet. :/

Comment by joq on 2012-05-24:
That is the main question. Unfortunately, I do not know the answer.

Comment by joq on 2012-05-24:
The other missing headers make sense, because other ROS packages provide them (common_msgs, openni_camera, etc.).

Comment by spotrh on 2012-05-30:
Found it: https://github.com/wg-debs/pcl

Comment by spotrh on 2012-05-30:
Found it: https://github.com/wg-debs/pcl

Comment by spotrh on 2012-05-30:
Found it: https://github.com/wg-debs/pcl

Comment by dinamex on 2012-08-28:
Sorry for this question but where can i turn on the USE_ROS option? I can't find it. Thank you

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

perception_pcl uses a modified version of PCL. I finally found the source code for it here:

https://github.com/wg-debs/pcl


Originally posted by spotrh with karma: 76 on 2012-05-30

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by jacksonkr_ on 2016-01-29:
dead link :(

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.