我在ROS中编写一个程序,它应该在每个回调函数之后执行某些计算。我的回调函数基本上订阅了一个主题,并设置了一个用于执行特定计算的变量的值。我订阅的主题频率为30赫兹。所以,我的程序中有一个while循环,以30 Hz的速率运行。该循环有点类似于以下代码:
5-digit
答案 0 :(得分:2)
ros :: spinOnce()类似于ros :: spin(),但区别在于它不会阻塞。每次调用ros :: spinOnce()都将处理自上次调用以来所有收到的消息,即它将为每个消息调用所有订阅者回调函数。如果您想控制回调函数,那么我将缓冲从回调函数接收的消息,并以您想要的速率和方式处理缓冲的消息。如果回调执行一些冗长的计算,这也是您应该处理信息的方式。回调函数应该非常快。