【问题标题】:ROS publisher speedROS 发布者速度
【发布时间】:2017-05-17 11:06:34
【问题描述】:

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

【问题讨论】:

    标签: publish-subscribe ros


    【解决方案1】:

    如果您的图像处理时间超过 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)编译,因为这将大大加快您的代码速度。

    【讨论】:

    • 是的,你是对的,问题出在我的订阅者回调中,我正在使用 ORB 功能,有时它会检测到大量的特征点,从而导致处理困难。所以现在我限制了功能的数量并且它的工作更好。感谢您的帮助:)
    猜你喜欢
    • 2021-09-13
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    相关资源
    最近更新 更多