ros::spin()的理解

ros::spin()的理解

这些订阅者就开始嗷嗷待哺,等待话题进来,但这时候订阅者的嘴还没有打开。

然后就到ros::spin(),这可以理解为一个动作,打开订阅者的嘴。这样订阅者们可以开始接受话题,最重要的是进入回调函数!

当然,最开始的时候,没有话题进来,spin()是堵塞在这里的。

一旦有话题进来,

一系列订阅、回调、发布等等动作在spin()这里不断在进行,只要有合适的话题,相应的订阅者就订阅,然后直接进行回调。

int main(int argc,char** argv)
{

    ros::init(argc, argv, "message_filter_node");  // 相当于给一个命名空间
    ros::Time::init();
    ros::NodeHandle n;
    Scan2 scan;  // 默认构造


    Odom_calib.Set_data_len(12000);
    Odom_calib.set_data_zero();
    ros::spin(); // 主程序到这里往下不再进行,等待话题进来回调就行


    return 0;
}

Scan2 scan; 这一句默认构造构造出一系列的话题订阅和发布的规则,一系列订阅者。但是嘴还没张开。

程序会接着往下走,一直到:
ros::spin();的时候, 把订阅者的嘴们张开,开始订阅话题并产生回调。

原文链接:https://blog.csdn.net/weixin_44684139/article/details/105555031

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值