ROS一个最基础却又忽略到现在的指令ros::spinOnce();

一、引:

记得刚学ROS的时候,从wikI官网上面的c++和python节点、主题等开始学习,很自然的将发布订阅主题都跑了跑并自己尝试写出来,之后继续学下去,直到在实际项目中自己做开发…

二、无意中重新看教程

周末没事就随便翻翻教程,突然发现,好惊喜,有个最基础好用的指令在那放着,我却是一直把它忽略唉,那么这个指令是什么呢,它就是ros::spinOnce();是的,很简单的一个指令,反正我真的在项目中没有再想起来过它,更别提用了,那么我为啥对它这么惊喜呢???
惊喜在这,在项目开发中,经常需要自己订阅发布主题信息,传感器融合,机器人控制等各个状态,在ROS系统中可以说最基本的通信方式便是TOPIC了,而问题就在这,我发布的信息(特别是传感器信息)使用时就发布,需要用的就订阅它,看起来没什么问题,确实也都可以用。但在发布节点加上ros::spinOnce();呢,加了之后就发现,确实是一个好东西哈,以前发布主题就是一直发布发布的,不考虑功耗等问题,而这条指令的意义就在于它是被订阅读取后才发布下一个,那么是不是不需要这些信息时我不订阅它就不发布了,需要时它再发布,非常方便,特别对于摄像头等CPU占用率较大的部分就能够很好的降低功耗而且完全不影响它的性能,很给力哦

你可能感兴趣的:(ROS机器人开发)