在上一篇文章中,我们实现了第一个ROS程序—发布器(publisher),然而在上一篇文章的最后我们也注意到,尽管我们的程序非常小,但占据的CPU资源却非常多。
这是因为在发布器的while
循环里没有执行必要的sleep
操作,使得发布器一直以最高速率运行,长时间占用CPU。
本篇文章分为以下两部分:
- 在发布器中加入
sleep
调用使发布器的频率稳定在1Hz - 实现一个订阅器(Subscriber)
1. 发布器加入sleep
事实上,我们所需要做的只有两行工作,首先创建一个ros::Rate
对象,然后在while
循环里调用该对象的.sleep()
函数即可。
修改后完整的代码如下:
#include