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