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

    ROS2-一台电脑建图一台机载电脑收集点云,建不了图

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    slamtoolbox ros2 slam 建图 边缘计算
    2
    5
    312
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • H
      hjwdaxia
      最后由 编辑

      ROS2-边缘计算建图,机载电脑发送激光雷达,建不了图

      背景:

      我想实现边缘计算slam,所以采用了边缘电脑进行建图,小车上的机载电脑只用于发送小车消息以及雷达消息。

      问题描述:

      环境:边缘服务器 ros2 foxy 机载电脑 ros2 humble
      建图算法采用:slam_toolbox
      雷达: 速腾16p
      小车:松灵 tracer
      启动建图(online_async_launch.py),在rviz2中globe options中fixed frame选择好map后,TF中,base_link和rslidar会出现 no transform from [base_link] to [map]的status:warn,但能建图,建图效果非常差。没有TF坐标的显示。

      具体细节和上下文:

      rviz2会出现报错:
      [rviz2-2] [INFO] [1248559.29384] [rviz2.rviz2_node]: Message Filter dropping message: frame 'rslidar' at time 1248559.29384 for reason 'Unknown'

      [async_slam_toolbox_node-1] [INFO] [1787434.1213] [slam_toolbox]: Message Filter dropping message: frame 'rslidar' at time 1787434.1213 for reason 'Unknown'

      尝试过的解决方法:

      • 不用边缘建图的话,只用机载电脑建图是可以建图的
      • 换过其他的电脑代替建图(环境:humble),也会出现这种问题,但提示的错误是队列满了,tf坐标的关系只有 odom->base_link->rslidar,缺少了map,而 边缘电脑的tf显示有map->odom->base_link->rslidar
      • 我使用ros2 topic echo /tf ,transforms中 map -> odom 的sec为1
        而odom -> base_link的sec为18394745(因该是系统时间)
      • 也尝试过系统时间同步,ntp等,统一了两个系统时间,还是会出现这个问题
      • 用gmapping算法建图,也是有这个问题

      找到的原因

      我认为极大可能的原因是边缘电脑运行建图算法,产生的tf,map的时间戳对不上。

      希望各位大佬能够提供一下解决的思路,谢谢!

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

        @hjwdaxia 16p雷达,用的有线还是无线连接,考虑下网络延迟问题

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

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

          @小鱼 你好,有线,接到开发板,开发板无线发到边缘服务器

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

            @hjwdaxia 在 ROS2-一台电脑建图一台机载电脑收集点云,建不了图 中说:

            [rviz2-2] [INFO] [1248559.29384] [rviz2.rviz2_node]: Message Filter dropping message: frame 'rslidar' at time 1248559.29384 for reason 'Unknown'

            [async_slam_toolbox_node-1] [INFO] [1787434.1213] [slam_toolbox]: Message Filter dropping message: frame 'rslidar' at time 1787434.1213 for reason 'Unknown'

            tf 是否完整,上个图

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

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

              @小鱼 你好,我查出原因了,是因为系统和仿真时间不匹配。
              /rivz /tracer都是用的系统时间,而/slam_toolbox是用的仿真时间,我看了你的《【ROS2机器人入门到实战】使用SLAM_TOOLBOX完成建图》文章中有提到“这些数据都是有时间戳的,所以在上面的命令中将 use_sim_time 参数的值设置为 True 表示使用仿真的时间,以防止因时间戳造成数据不合法。”
              我想把这个变为系统的时间,如何实现呢?我试着把online_async_launch.py中的use_sim_time 改为false却报错。

                  start_async_slam_toolbox_node = Node(
                      parameters=[
                        actual_params_file,
                        {'use_sim_time': false}
                      ],
                      package='slam_toolbox',
                      executable='async_slam_toolbox_node',
                      name='slam_toolbox',
                      output='screen')
              

              能否指导一下!谢谢

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