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

    cartographer仿真建图中,报错'collect_metrics'重定义导致 cartography_node 节点没有正确启动

    已定时 已固定 已锁定 已移动
    ROS 2相关问题
    cartographer建图 gazebo 仿真
    4
    5
    2.0k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 只
      只学一点
      最后由 编辑

      [cartographer_node-1] ERROR: flag 'collect_metrics' was defined more than once (in files '/opt/pro/test/test1_ws/src/cartographer_ros/cartographer_ros/src/offline_node.cpp' and '/opt/pro/test/test1_ws/src/cartographer_ros/cartographer_ros/src/node_main.cpp').
      
      [ERROR] [cartographer_node-1]: process has died [pid 4366, exit code 1, cmd '/opt/pro/test/test1_ws/install/cartographer_ros/lib/cartographer_ros/cartographer_node -configuration_directory /opt/pro/test/test1_ws/install/mybot_cartographer/share/mybot_cartographer/config -configuration_basename mybot_2d.lua --ros-args -r __node:=cartographer_node --params-file /tmp/launch_params_r6yzqmrl']
      

      出现上面报错
      ​​屏幕截图 2025-05-28 154012.png
      只启动了 /cartographer_occupancy_grid_node 节点

      6 1 条回复 最后回复 回复 引用 0
      • 6
        63743995 @只学一点
        最后由 编辑

        @只学一点 我也遇到了,怎么解决呀

        只 1 条回复 最后回复 回复 引用 0
        • 只
          只学一点 @63743995
          最后由 编辑

          @63743995 已解决,应该是cartographer ros版本问题,用git clone --recursive https://github.com/fishros/fishbot.git -b humble命令拉取小鱼的开源项目,里面顺带的cartographer源码版本就可以。

          1 1 条回复 最后回复 回复 引用 0
          • 1
            mei @只学一点
            最后由 编辑

            此回复已被删除!
            1 条回复 最后回复 回复 引用 0
            • K
              kendrickhou
              最后由 编辑

              除了专门拉出小鱼教程里的特定分支映射;
              另解:
              <your ws>/src/cartographer_ros/cartographer_ros/src/node_main.cpp
              开头部分修改为:
              // DEFINE_bool(collect_metrics, false,
              // "Activates the collection of runtime metrics. If activated, the "
              // "metrics can be accessed via a ROS service.");
              // DEFINE_string(configuration_directory, "",
              // "First directory in which configuration files are searched, "
              // "second is always the Cartographer installation to allow "
              // "including files from there.");
              DEFINE_string(configuration_basename, "",
              "Basename, i.e. not containing any directory prefix, of the "
              "configuration file.");
              // DEFINE_string(load_state_filename, "",
              // "If non-empty, filename of a .pbstream file to load, containing "
              // "a saved SLAM state.");
              // DEFINE_bool(load_frozen_state, true,
              // "Load the saved state as frozen (non-optimized) trajectories.");
              DEFINE_bool(
              start_trajectory_with_default_topics, true,
              "Enable to immediately start the first trajectory with default topics.");
              // DEFINE_string(
              // save_state_filename, "",
              // "If non-empty, serialize state and write it to disk before shutting down.");

              DECLARE_bool(collect_metrics);
              DECLARE_string(configuration_directory);

              DECLARE_string(load_state_filename);
              DECLARE_bool(load_frozen_state);

              DECLARE_string(save_state_filename);

              主要是把和offline_node的重复定义给注释掉并改为纯声明。

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