我尝试使用'message_filters'同步从凉亭模拟器发布的两个主题。但这行不通
我也尝试过“ approximate_time”和“ exact_time”,但也无法正常工作。
我做了一个实验问题:
我打开了新终端,并手动发布了主题,例如:
$ rostopic pub“ / topicA” pkgA / msgA“” -r 10 $ rostopic pub“ / topicB” pkgB / msgB“” -r 10
然后'my_node'工作得很好。 它只是无法同步凉亭中的主题。
#include "ros/ros.h"
#include <message_filters/subscriber.h>
#include <message_filters/time_synchronizer.h>
#include <message_filters/sync_policies/approximate_time.h>
#include <message_filters/sync_policies/exact_time.h>
#include "pkgA/msgA.h"
#include "pkgB/msgB.h"
void callback(const pkgA::msgA &a, const pkgB::msgB &b)
{
// Solve all of perception here...
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "gazebo_relay_node");
ros::NodeHandle nh;
message_filters::Subscriber<pkgA::msgA> subA(nh, "topicA", 1);
message_filters::Subscriber<pkgB::msgB> subB(nh, "topicB", 1);
TimeSynchronizer<pkgA::msgA, pkgB::msgB> sync(subA, subB, 100);
sync.registerCallback(boost::bind(&callback, _1, _2));
ros::spin();
return 0;
}
我希望我可以从凉亭同步主题,并在回叫功能中从不同主题获取数据。