鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    ROS2-foxy 使用多路相机发布topic,帧率达不到设定的30FPS

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    ros2 foxy ros2 通信 ros2话题
    3
    11
    745
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小伊小
      机器人小伊
      最后由 编辑

      当你遇到ROS2中的相机发布帧率不能稳定在30FPS的问题时,尽管底层带宽测试显示带宽是足够的,但可能还有其他的因素在影响性能。以下是一些建议和步骤,你可以尝试以优化你的ROS2系统和相机设置:

      1. 检查相机设置:

        • 确保相机设置(如曝光时间、分辨率、帧率等)是最佳配置,并且符合你的需求。
        • 如果可能,尝试降低相机的分辨率或帧率设置,看看是否有所改善。
      2. 调整ROS2的QoS设置:

        • QoS(Quality of Service)设置确实会影响数据的发布和接收。你可以尝试调整QoS设置,如history、depth、reliability和durability,以查看是否对帧率有正面影响。
        • 通常,对于图像数据,你可能会使用RMW_QOS_PROFILE_SENSOR_DATA或类似的QoS配置。
      3. 优化CPU和GPU使用:

        • 使用top、htop、nvidia-smi(如果你在使用GPU)等工具来监控系统的CPU和GPU使用情况。
        • 如果CPU或GPU使用率很高,考虑优化你的代码,减少不必要的计算或降低计算复杂性。
      4. 减少ROS2节点之间的通信开销:

        • 如果你的系统中有很多节点,考虑减少它们之间的通信量,或者优化通信策略。
        • 使用ros2 bag工具来记录数据,并在离线模式下进行分析,以确定哪些节点或通信路径是瓶颈。
      5. 检查网络延迟和抖动:

        • 使用ping、traceroute或其他网络工具来检查网络延迟和抖动。
        • 如果网络问题是瓶颈,考虑优化网络配置或使用更高质量的网络设备。
      6. 使用硬件同步:

        • 如果你的相机支持硬件同步,考虑使用它来确保多个相机之间的数据同步,并减少系统开销。
      7. 更新系统和软件:

        • 确保你的操作系统、ROS2和相机驱动程序都是最新版本。
        • 有时,软件更新可能包含性能改进或错误修复。
      8. 考虑使用其他中间件:

        • ROS2使用DDS(Data Distribution Service)作为默认的中间件。但是,你可以考虑使用其他中间件(如FastRTPS、CycloneDDS等),看看是否对性能有正面影响。
      9. 资源限制和调度:

        • 使用cgroups或其他工具来限制或优化ROS2节点的资源使用(如CPU、内存)。
        • 考虑使用nice或ionice来优化进程调度和磁盘I/O。
      10. 硬件升级:

        • 如果以上方法都不能解决问题,考虑升级你的硬件,如使用更快的CPU、更多的内存或更快的存储设备。

      最后,请记住,优化是一个迭代的过程。你可能需要多次尝试不同的设置和配置,才能找到最适合你的应用的解决方案。


      以上为生成回答,仅供参考~

      我是小伊,已接入ChatGpt,所有回复,仅供参考~

      1 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @3306424824
        最后由 编辑

        @3306424824 提供下发布和接收的代码,如果是单机可以用shm通信

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        3 1 条回复 最后回复 回复 引用 0
        • 3
          3306424824 @小鱼
          最后由 编辑

          @小鱼 可以私发给您吗?这个是在ORIN核心板上使用的,或者能否提供shm的示例

          小鱼小 1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @3306424824
            最后由 编辑

            @3306424824 直接贴在社区就可以了,如果不方便贴全文,就贴一部分。关于shm的代码可以从《ROS2机器人开发,从入门到实践》书籍配套代码中找到:https://gitee.com/ohhuo/ros2bookcode.git

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

            3 1 条回复 最后回复 回复 引用 0
            • 3
              3306424824 @小鱼
              最后由 编辑

              此回复已被删除!
              小鱼小 1 条回复 最后回复 回复 引用 0
              • 小鱼小
                小鱼 技术大佬 @3306424824
                最后由 编辑

                @3306424824 https://fishros.org.cn/forum/topic/151/提问前必看-不符合要求的问题拒绝回答

                新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                3 2 条回复 最后回复 回复 引用 0
                • 3
                  3306424824 @小鱼
                  最后由 编辑

                  此回复已被删除!
                  1 条回复 最后回复 回复 引用 0
                  • 3
                    3306424824 @小鱼
                    最后由 编辑

                    @小鱼 我找到了您提供的demo在哪里,是chat10的intra_process_pubsub.cpp,我先对比修改代码尝试下是否可行

                    小鱼小 1 条回复 最后回复 回复 引用 0
                    • 小鱼小
                      小鱼 技术大佬 @3306424824
                      最后由 编辑

                      @3306424824 好的

                      新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                      1 条回复 最后回复 回复 引用 0
                      • 3
                        3306424824
                        最后由 编辑

                        @小鱼 非常感谢,目前我本机通信使用SHM之后相比之前确实稳定了很多;
                        目前我也在验证多机通信,使用两颗森云ar0820相机(30fps,本机ros2 topic bw显示单个话题在300MB/s左右)一共两个话题,主机和从机之间通过多个网卡通信,其中使用iperf测试网络资源均在5Gb/s左右,但是我在主机运行两个ros2程序,从机ros2 topic list是可以看到话题,但是hz不显示,有时候可以显示,显示的时候只有几hz,最高的是18hz,请问有什么优化的建议,我也尝试过将多网卡down,走单一的网卡,但是依旧存在问题

                        1 条回复 最后回复 回复 引用 0
                        • 第一个帖子
                          最后一个帖子
                        皖ICP备16016415号-7
                        Powered by NodeBB | 鱼香ROS