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

    ROS2 RVIZ开发,自动订阅Octomap八叉树数据,CPU占用非常高,内存泄露

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros2 hamble rviz2 qwidget
    1
    2
    1.0k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      lhl911214
      最后由 编辑

      预期在自己开发的QWidget中,嵌入RVIZ的渲染窗口。自定义一个widget, 继承自QWidget和WindowManagerInterface,对象initializeRVIZ的过程如下:
      render_penel_ = std::make_shared<rviz_common::RenderPanel>(this);
      qApp->processEvents();
      render_panel_->getREnderWindow()->initialize();
      manager_ = std::make_shared<rviz_common::VisualizationManager>(render_panel_.get(), rviz_ros_node_, this, clock);
      render_panel_->initialize(manager_.get());
      manager_->initialize();
      manager_->startUpdate();
      qApp->processEvents();
      此时,哪怕不添加任何渲染插件,都会有90%左右的CPU占用率。
      再添加一个八叉树数据的自动订阅和渲染。
      occupancy_grid_(manager_->createDisplay("octomap_rviz_plugins/OccupancyGrid", "Occupancy Grid", true))';
      occupancy_grid_->subProp("Topic")->setValue(“octomap/local”);
      自动订阅octomap/local话题,并自动渲染八叉树,此时CPU将到180%,并且有内存泄漏。

      请问有什么方法可以解决CPU占用高问题和内存泄漏问题

      1 条回复 最后回复 回复 引用 0
      • L
        lhl911214
        最后由 编辑

        CPU的问题,可以通过调整VisualizationManager的自动渲染周期解决。默认自动渲染周期为30Hz,可调成合适的10或者5Hz,可以降低一半CPU占用。
        但是内存泄漏一直存在。
        并且发现,使用rviz2的原生界面,订阅八叉树进行渲染,也会有内存泄漏

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