Ask Your Question
5

Trying to compile perception_pcl 1.2.2 for fuerte

asked 2012-05-23 09:54:56 -0500

updated 2014-04-20 14:09:32 -0500

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
edit retag flag offensive close merge delete

Comments

Just to see if it makes a difference, I tried copying in the missing pcl/ header files, and that doesn't build either.

spotrh ( 2012-05-23 10:10:56 -0500 )edit

What PCL 1.5 source URL are you building from?

joq ( 2012-05-23 11:42:57 -0500 )edit

On Ubuntu, the ros-fuerte-pcl package provides those five headers (and many more).

joq ( 2012-05-23 11:43:32 -0500 )edit

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

spotrh ( 2012-05-24 04:00:47 -0500 )edit

Unfortunately, I haven't managed to find out where the source for that ros-fuerte-pcl dpkg came from yet. :/

spotrh ( 2012-05-24 04:01:29 -0500 )edit

That is the main question. Unfortunately, I do not know the answer.

joq ( 2012-05-24 04:15:23 -0500 )edit

The other missing headers make sense, because other ROS packages provide them (common_msgs, openni_camera, etc.).

joq ( 2012-05-24 04:15:37 -0500 )edit

1 answer

Sort by » oldest newest most voted
1

answered 2012-05-30 10:45:05 -0500

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

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

edit flag offensive delete link more

Your Answer

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

Add Answer

[hide preview]

Question Tools

Follow
1 follower

Stats

Asked: 2012-05-23 09:54:56 -0500

Seen: 1,271 times

Last updated: May 30 '12