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

    nav2 在运行出错

    已定时 已固定 已锁定 已移动
    Nav2
    nav2 ros2 amcl定位 rviz不显示地图
    3
    5
    593
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 1
      1814638019
      最后由 小鱼 编辑

      • 代码ros2 humble odom用的ros2_laser_scan_matcher

      终端内的报错

      [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7415: open_and_lock_file failed -> Function open_port_internal

      [map_server-3] [WARN] [1722087437.450783193] [rcl_lifecycle]: No transition matching 1 found for current state active

      [map_server-3] [ERROR] [1722087437.450800925] [map_server]: Unable to start transition 1 from current state active: Transition is not registered., at ./src/rcl_lifecycle.c:355

      [rviz2-2] [INFO] [1722087437.480651676] [rviz2]: Stereo is NOT SUPPORTED

      [local_costmap.local_costmap]: Timed out waiting for transform from base_link to odom to become available, tf error: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist

      [rviz2-2] [WARN] [1722087437.655608471] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic.

      *## 列表ropic:rosgraph.png 图片地址)

      • 列表tf:替代文字frames.png

      • #### 列表rviz:

      2024-07-27_21-54.png

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        您遇到的问题涉及多个方面,包括ROS 2的通信、状态机管理、TF(Transform)树以及RViz的配置。我将逐一分析并给出可能的解决方案:

        1. RTPS_TRANSPORT_SHM 错误

        这个错误通常与Fast RTPS(ROS 2使用的默认DDS实现)的共享内存配置有关。可能的解决方案包括:

        • 检查ROS 2节点的权限:确保运行ROS 2的用户有足够的权限访问系统资源。
        • 检查共享内存限制:在某些系统上,共享内存的使用可能受到限制。您可能需要调整系统的/etc/security/limits.conf文件来增加shmmax和shmall的值。
        • 重新启动ROS 2环境:有时简单的重启可以解决网络或共享内存初始化的问题。

        2. map_server 生命周期状态机错误

        这个错误表明map_server节点试图从一个不支持的状态(active)进行转换,但没有找到对应的转换。可能的原因和解决方案包括:

        • 检查map_server的生命周期配置:确保map_server节点的生命周期状态机配置正确,并且支持所需的转换。
        • 更新或重新配置map_server:如果使用的是自定义的map_server,请检查其生命周期状态的实现。

        3. TF错误:Timed out waiting for transform from base_link to odom

        这个错误表明base_link到odom的TF变换不存在或未及时更新。可能的原因和解决方案包括:

        • 检查TF提供者:确保有一个节点(如里程计节点)正在发布从base_link到odom的TF变换。
        • 检查TF监听器:确保所有依赖TF的节点(如local_costmap)都已正确配置以监听必要的TF变换。
        • 检查ROS 2时间同步:确保ROS 2系统的时间同步正确设置,因为TF依赖于时间戳来同步不同坐标系之间的数据。

        4. RViz警告

        • Stereo not supported:这个警告只是告诉您RViz不支持立体视觉显示,如果您的应用不需要立体视觉,则可以忽略此警告。
        • Publisher already registered:这通常发生在多个具有相同名称的节点尝试注册到同一个ROS 2话题时。确保每个节点的名称都是唯一的,或者如果这是预期的(例如在重新启动节点时),可以忽略此警告。

        5. 检查和调试

        • 使用ros2 topic list和ros2 node list:查看当前运行的话题和节点,确保所有必要的组件都在运行。
        • 使用ros2 bag record和ros2 bag play:如果可能,记录一个包含问题行为的ROS 2包,并在需要时重放它以进行进一步分析。
        • 检查RViz配置:确保RViz中的固定框架(Fixed Frame)设置为正确的框架(如map或odom),并且所有必要的显示项都已正确配置。

        希望这些建议能帮助您解决问题!如果问题仍然存在,请考虑提供更详细的配置和代码信息以便进一步分析。


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

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

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

          @1814638019

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

          amcl 没正常启动,另外看起来好乱哦

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

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

            @小鱼 ```感谢回答
            这是我的amcl里面参数的代码,然后启动launch文件是在学ros2里面的一样,文件路径换成自己的,也是启动了bring_up里面的launch文件。这个amcl参数是写错了吗?如果正确的话还有哪些因素会影响到map到odom这段tf,使nav2不能正确工作。
            amcl:
            ros__parameters:
            use_sim_time: False
            alpha1: 0.2
            alpha2: 0.2
            alpha3: 0.2
            alpha4: 0.2
            alpha5: 0.2
            base_frame_id: "base_footprint"
            beam_skip_distance: 0.5
            beam_skip_error_threshold: 0.9
            beam_skip_threshold: 0.3
            do_beamskip: false
            global_frame_id: "map"
            lambda_short: 0.1
            laser_likelihood_max_dist: 2.0
            laser_max_range: 100.0
            laser_min_range: -1.0
            laser_model_type: "likelihood_field"
            max_beams: 60
            max_particles: 2000
            min_particles: 500
            odom_frame_id: "odom"
            pf_err: 0.05
            pf_z: 0.99
            recovery_alpha_fast: 0.0
            recovery_alpha_slow: 0.0
            resample_interval: 1
            robot_model_type: "differential"
            save_pose_rate: 0.5
            sigma_hit: 0.2
            tf_broadcast: true
            transform_tolerance: 1.0
            update_min_a: 0.2
            update_min_d: 0.25
            z_hit: 0.5
            z_max: 0.05
            z_rand: 0.5
            z_short: 0.05

            amcl_map_client:
            ros__parameters:
            use_sim_time: False

            amcl_rclcpp_node:
            ros__parameters:
            use_sim_time: False

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

              会注意,第一次用这个

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