ROS同时订阅处理10+以上话题

一.同时订阅处理10个以上的自定义消息类型的话题

1.自定义消息类型

如下格式自定义消息类型,保证有std_msgs/Header header部分,因为添加了std_msgs依赖,需要将原有的编译文件删除后重新编译

float64 x
float64 y
float64 fixed_pose
std_msgs/Header header

2.特化 ros::message_traits::TimeStamp

 

#include "自定义数据类型.h"
#include <ros/message_traits.h>
#include <ros/time.h>

template<>
struct ros::message_traits::TimeStamp<自定义数据类型> {
    static ros::Time value(const 自定义数据类型& msg) {
        return msg.header.stamp;  // 返回 header.stamp 作为时间戳
    }
};

 将其作为头文件添加到需要使用的文件中

3.同步处理 

 typedef message_filters::sync_policies::ApproximateTime<自定义数据类型, 自定义数据类型, 自定义数据类型,自定义数据类型, 自定义数据类型, 自定义数据类型,
自定义数据类型> SyncPolicyA;

std::shared_ptr<message_filters::Synchronizer<SyncPolicyA>> sync_a_;

sync_a_ = std::make_shared<message_filters::Synchronizer<SyncPolicyA>>(SyncPolicyA(10),
            *sub_a_[0], *sub_a_[1], *sub_a_[2], *sub_a_[3], *sub_a_[4],*sub_a_[5], *sub_a_[6] );//注意此处参数不能超过9个

sync_a_->registerCallback(绑定回调,this,_1,_2,...)//此处参数也不能好超过9个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值