0
$\begingroup$

Rosanswers logo

Hi guys. I have this package that used to run on ROS fuerte. Now I have changed to Hydro and I'm having compilation problems. So, I have a clear full install of ROS Hydro on Mint 15, 32bits.

When I try to compile the package I get some crazy template errors, here they are:

In file included from /opt/ros/hydro/include/ros/serialization.h:37:0,
             from /opt/ros/hydro/include/ros/publisher.h:34,
             from /opt/ros/hydro/include/ros/node_handle.h:32,
             from /opt/ros/hydro/include/ros/ros.h:45,
             from /home/caiom/ros_workspace/obstacledetection/src/main.cpp:6:
/opt/ros/hydro/include/ros/message_traits.h: In instantiation of ‘static ros::Time ros::message_traits::TimeStamp<M, typename boost::enable_if<ros::message_traits::HasHeader<M> >::type>::value(const M&) [with M = pcl::PointCloud<pcl::PointXYZRGB>]’:
/opt/ros/hydro/include/message_filters/sync_policies/exact_time.h:126:102:   required from ‘void message_filters::sync_policies::ExactTime<M0, M1, M2, M3, M4, M5, M6, M7, M8>::add(const typename boost::mpl::at_c<typename message_filters::PolicyBase<M0, M1, M2, M3, M4, M5, M6, M7, M8>::Events, i>::type&) [with int i = 1; M0 = sensor_msgs::Image_<std::allocator<void> >; M1 = pcl::PointCloud<pcl::PointXYZRGB>; M2 = message_filters::NullType; M3 = message_filters::NullType; M4 = message_filters::NullType; M5 = message_filters::NullType; M6 = message_filters::NullType; M7 = message_filters::NullType; M8 = message_filters::NullType; typename boost::mpl::at_c<typename message_filters::PolicyBase<M0, M1, M2, M3, M4, M5, M6, M7, M8>::Events, i>::type = ros::MessageEvent<const pcl::PointCloud<pcl::PointXYZRGB> >]’
/opt/ros/hydro/include/message_filters/synchronizer.h:358:5:   required from ‘void message_filters::Synchronizer<Policy>::cb(const typename boost::mpl::at_c<typename Policy::Events, i>::type&) [with int i = 1; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>; typename boost::mpl::at_c<typename Policy::Events, i>::type = ros::MessageEvent<const pcl::PointCloud<pcl::PointXYZRGB> >]’
/opt/ros/hydro/include/message_filters/synchronizer.h:291:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&, F3&, F4&, F5&, F6&, F7&, F8&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; F3 = message_filters::NullFilter<message_filters::NullType>; F4 = message_filters::NullFilter<message_filters::NullType>; F5 = message_filters::NullFilter<message_filters::NullType>; F6 = message_filters::NullFilter<message_filters::NullType>; F7 = message_filters::NullFilter<message_filters::NullType>; F8 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
  /opt/ros/hydro/include/message_filters/synchronizer.h:282:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&, F3&, F4&, F5&, F6&, F7&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; F3 = message_filters::NullFilter<message_filters::NullType>; F4 = message_filters::NullFilter<message_filters::NullType>; F5 = message_filters::NullFilter<message_filters::NullType>; F6 = message_filters::NullFilter<message_filters::NullType>; F7 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
 /opt/ros/hydro/include/message_filters/synchronizer.h:275:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&, F3&, F4&, F5&, F6&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; F3 = message_filters::NullFilter<message_filters::NullType>; F4 = message_filters::NullFilter<message_filters::NullType>; F5 = message_filters::NullFilter<message_filters::NullType>; F6 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
/opt/ros/hydro/include/message_filters/synchronizer.h:268:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&, F3&, F4&, F5&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; F3 = message_filters::NullFilter<message_filters::NullType>; F4 = message_filters::NullFilter<message_filters::NullType>; F5 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
/opt/ros/hydro/include/message_filters/synchronizer.h:261:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&, F3&, F4&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; F3 = message_filters::NullFilter<message_filters::NullType>; F4 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
/opt/ros/hydro/include/message_filters/synchronizer.h:254:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&, F3&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; F3 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
/opt/ros/hydro/include/message_filters/synchronizer.h:247:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&, F2&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; F2 = message_filters::NullFilter<message_filters::NullType>; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
/opt/ros/hydro/include/message_filters/synchronizer.h:240:5:   required from ‘void message_filters::Synchronizer<Policy>::connectInput(F0&, F1&) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; Policy = message_filters::sync_policies::ExactTime<sensor_msgs::Image_<std::allocator<void> >, pcl::PointCloud<pcl::PointXYZRGB>, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’
/opt/ros/hydro/include/message_filters/time_synchronizer.h:120:5:   required from ‘message_filters::TimeSynchronizer<M0, M1, M2, M3, M4, M5, M6, M7, M8>::TimeSynchronizer(F0&, F1&, uint32_t) [with F0 = message_filters::Subscriber<sensor_msgs::Image_<std::allocator<void> > >; F1 = message_filters::Subscriber<pcl::PointCloud<pcl::PointXYZRGB> >; M0 = sensor_msgs::Image_<std::allocator<void> >; M1 = pcl::PointCloud<pcl::PointXYZRGB>; M2 = message_filters::NullType; M3 = message_filters::NullType; M4 = message_filters::NullType; M5 = message_filters::NullType; M6 = message_filters::NullType; M7 = message_filters::NullType; M8 = message_filters::NullType; uint32_t = unsigned int]’
/home/caiom/ros_workspace/obstacledetection/src/main.cpp:195:123:   required from here
/opt/ros/hydro/include/ros/message_traits.h:219:56: error: could not convert ‘m.pcl::PointCloud<pcl::PointXYZRGB>::header.pcl::PCLHeader::stamp’ from ‘const uint64_t {aka const long long unsigned int}’ to ‘ros::Time’
/opt/ros/hydro/include/ros/message_traits.h: In static member function ‘static ros::Time ros::message_traits::TimeStamp<M, typename boost::enable_if<ros::message_traits::HasHeader<M> >::type>::value(const M&) [with M = pcl::PointCloud<pcl::PointXYZRGB>]’:
/opt/ros/hydro/include/ros/message_traits.h:219:63: warning: control reaches end of non-void function [-Wreturn-type]

Anyone have any idea on how to fix this? It seems these errors are not my fault, at most the template class that I have chosen.

Thanks.


Originally posted by v3n0w on ROS Answers with karma: 1 on 2013-09-25

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

That´s some extensive output you have there ;) Searching for "error" gives only one hit though, and that is:

error: could not convert ‘m.pcl::PointCloud<pcl::PointXYZRGB>::header.pcl::PCLHeader::stamp’ from ‘const uint64_t {aka const long long unsigned int}’ to ‘ros::Time’

This is related to header information of PCL pointclouds not using a header with ros::Time anymore, so a conversion function has to be used as described here.


Originally posted by Stefan Kohlbrecher with karma: 24361 on 2013-09-25

This answer was ACCEPTED on the original site

Post score: 4


Original comments

Comment by Felix Endres on 2013-12-13:
Unfortunately this would need to be changed in /opt/ros/hydro/include/ros/message_traits.h:219:56, wouldn't it?

$\endgroup$

Your Answer

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