subsribe to two integer type msgs with one call back function
I tried to subscribe to two integer types .But lot of errors are showing .Please help me to correct the code code:
#include <ros/ros.h>
#include <std_msgs/Int8.h>
#include <message_filters/subscriber.h>
#include <message_filters/time_synchronizer.h>
using namespace std_msgs;
using namespace message_filters;
void callback(const Int8ConstPtr& angle,const Int8ConstPtr& range_data) {
}
int main( int argc, char** argv )
{
ros::init(argc, argv, "basic_shapes");
ros::NodeHandle n;
ros::Rate r(1);
message_filters::Subscriber<Int8> sub1(n,"angle", 1);
message_filters::Subscriber<Int8> sub2(n,"range_data", 1);
TimeSynchronizer<Int8,Int8> sync(sub1,sub2,10);
sync.registerCallback(boost::bind(&callback,_1, _2));
ros::spin();
return 0;
}
error msgs: /opt/ros/indigo/include/message_filters/sync_policies/exact_time.h: In instantiation of ‘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 = 0; M0 = std_msgs::Int8_<std::allocator<void> >; M1 = std_msgs::Int8_<std::allocator<void> >; 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 std_msgs::int8_<std::allocator<void=""> > >]’: /opt/ros/indigo/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 = 0; Policy = message_filters::sync_policies::ExactTime<std_msgs::int8_<std::allocator<void> >, std_msgs::Int8_<std::allocator<void> >, 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 std_msgs::int8_<std::allocator<void=""> > >]’ /opt/ros/indigo/include/message_filters/synchronizer.h:290:138: required from ‘void message_filters::Synchronizer<policy>::connectInput(F0&, F1&, F2&, F3&, F4&, F5&, F6&, F7&, F8&) [with F0 = message_filters::Subscriber<std_msgs::int8_<std::allocator<void> > >; F1 = message_filters::Subscriber<std_msgs::int8_<std::allocator<void> > >; 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<std_msgs::int8_<std::allocator<void> >, std_msgs::Int8_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’ /opt/ros/indigo/include/message_filters/synchronizer.h:282:52: required from ‘void message_filters::Synchronizer<policy>::connectInput(F0&, F1&, F2&, F3&, F4&, F5&, F6&, F7&) [with F0 = message_filters::Subscriber<std_msgs::int8_<std::allocator<void> > >; F1 = message_filters::Subscriber<std_msgs::int8_<std::allocator<void> > >; 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<std_msgs::int8_<std::allocator<void> >, std_msgs::Int8_<std::allocator<void> >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>]’ /opt/ros/indigo/include/message_filters/synchronizer.h:275 ...