需对ros有一定基础的朋友才有用。
随着对ros的深入学习,最近在写程序时需要发布者只发一次消息,或者说我只想让订阅者只订阅一次消息。
我用了ros::Duration这个接口,但发现它并没有达到我预想的效果,于是后面发现了下面两个解决方法:
法一:
在发布者中加入上述代码,这里不介绍原理,如果需要可以看看源码。但它的使用方法并不让我满意,具体原因就是它执行到ros::spin()的时候就停住了,当然,其实可以改用ros::spinOnce(),无疑是一个较好的方法,但个人认为这不是一个美观的代码。
所以我找到了下面这个方法:
发一次写一次,十分方便,及得写在pub.publish前。