How to use TimeSynchronizer filter inside nodelet?
Hello,
I started using ROS (indigo on Ubuntu 14.04) and I want convert my node (which running well and using TimeSynchronizer for two topics synchronized by timestamp that call manta_callback function) to nodelet. But after initialising my nodelet, TimeSynchronizer doesn't synchronize input topics & doesn't call manta_callback(). How can I debug TimeSynchronizer under nodelet or should I check another solution e.g. NodeletMUX for synchronize two topics under nodelet? Sources:
header file:
namespace detect_control_nodelet {
class MarkerDetectControl : public nodelet::Nodelet
{
public:
virtual void onInit();
void manta_callback(const sensor_msgs::ImageConstPtr & image_msg, ar_track_alvar_msgs_ext::AlvarMarkerExtConstPtr arMarkerCorners);
};
}
src file:
namespace detect_control_nodelet { void MarkerDetectControl::onInit() { NODELET_DEBUG("Initializing nodelet..."); ros::NodeHandle n("~");ros::NodeHandle nh = getNodeHandle(); ros::NodeHandle& private_nh = getPrivateNodeHandle(); ROS_INFO("In onInit()"); message_filters::Subscriber<Image> image_sub(private_nh, "camera/image_raw", 1); message_filters::Subscriber<ar_track_alvar_msgs_ext::AlvarMarkerExt> info_sub(private_nh, "ar_corners_marker",1); TimeSynchronizer<Image, ar_track_alvar_msgs_ext::AlvarMarkerExt> sync(image_sub, info_sub, 50); sync.registerCallback(boost::bind(&MarkerDetectControl::manta_callback,this,_1, _2));}
}
void MarkerDetectControl::manta_callback(const sensor_msgs::ImageConstPtr & image_msg, ar_track_alvar_msgs_ext::AlvarMarkerExtConstPtr arMarkerCorners) {
ROS_INFO("In function manta_callback");
}