ROS发布商的速度

时间:2017-05-17 11:06:34

标签: publish-subscribe ros

我正在运行一个ros发布者/订阅者节点,它从/ image_pub主题接收单个图像,进行一些处理并在/ results主题上发布结果。 image_pub主题是以20Hz发布但我的发布者/订阅者节点以12赫兹运行(我发现它使用rostopic hz / results)。有没有办法提高速度或告诉我的程序以20Hz运行。一开始它以20Hz运行。然后我关掉我的Linux午餐,回来重新启动我的程序。现在它的运行速度为12赫兹。我一次又一次地重新启动它但仍然以12赫兹运行。任何解决方案..?

1 个答案:

答案 0 :(得分:0)

如果您的图像处理时间超过1/20秒,则无法达到20Hz。如果不是这样,那么以下主循环将完成工作

ros::Rate publish_rate(20);
while(ros::ok())
{
  // do some processing
  publisher.publish(image);
  publish_rate.sleep();
}

ros::Rate将确保在适当的时间内睡眠以达到20Hz。 还要确保以Release模式(catkin_make -DCMAKE_BUILD_TYPE=Release)进行编译,因为这样可以大大提高代码速度。