ROS时间同步器
message_filter ::subscriber 分别订阅不同的输入topic
TimeSynchronizer<Image,CameraInfo> 定义时间同步器;
sync.registerCallback 同步回调
void callback(const ImageConstPtr&image, const CameraInfoConstPtr& cam_info) 带多消息的消息同步自定义回调函数
//wiki参考demo http://wiki.ros.org/message_filters
#include <message_filters/subscriber.h>
#include <message_filters/time_synchronizer.h>
#include <sensor_msgs/Image.h>
#include <sensor_msgs/CameraInfo.h>
using namespace sensor_msgs;
using namespace message_filters;
void callback(const ImageConstPtr& image, const CameraInfoConstPtr& cam_info) //回调中包含多个消息
{
// Solve all of perception here...
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "vision_node");
ros::NodeHandle nh;
message_filters::Subscriber<Image> image_sub(nh, "image", 1); // topic1 输入
message_filters::Subscriber<CameraInfo> info_sub(nh, "camera_info", 1); // topic2 输入
TimeSynchronizer<Image, CameraInfo> sync(image_sub, info_sub, 10); // 同步
sync.registerCallback(boost::bind(&callback, _1, _2)); // 回调
ros::spin();
return 0;
}
fastlivo相机激光imu同步器
orb_slam3相机imu同步器