tf::MessageFilter可以订阅任何的ROS消息,然后将其缓存,直到这些消息可以转换到目标坐标系,然后进行相应的处理(进入回调函数)
tf::MessageFilter的初始化需要message_filters::Subscriber,tf转换,目标坐标系,等待时间。当message_filters::Subscriber的消息能够由tf转换到目标坐标系时,调用回调函数,回调函数由tf::MessageFilter::registerCallback()
进行注册。
步骤:
- 定义数据:TransformListener、message_filters::Subscriber、tf::MessageFilter
- 用话题的名称来初始化message_filters::Subscriber
- 用
tf
message_filters::Subscriber
目标坐标系来初始化tf::MessageFilter
- 给tf::MessageFilter注册callback
,编写callback,并在回调中完成坐标转换,至此完成消息订阅+坐标转换