ros::spin()的理解 您所在的位置:网站首页 spinning什么意思 ros::spin()的理解

ros::spin()的理解

#ros::spin()的理解| 来源: 网络整理| 查看: 265

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();的时候, 把订阅者的嘴们张开,开始订阅话题并产生回调。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有