• ROS2下使用TurtleBot3-->SLAM导航(仿真)RVIZ加载不出机器人模型


    一、问题描述

    在使用台式机进行仿真时,大部分例程很顺利,但在SLAM导航时,在RVIZ中却一直加载不出机器人模型,点击Navigation2 Goal选择目标点进行导航时,无响应。
    在这里插入图片描述
    启动后在RVIZ2和终端看到一个错误
    在这里插入图片描述按照官网的指令试了多次,一直无法加载,在网上赵的解决方案都是修改RVIZ里的各种设置(Global Options、Fixed Frame等)试了很多但仍无法解决。

    二、解决方案

    在看b站时无意间看到了,可能是navgition2指令初始调用参数设置不对。后面将指令拆开修改为如下所示:
    (1) 定义调用的机器人模型

    export TURTLEBOT3_MODEL=burger
    
    • 1

    也可以将机器人的模型定义为:waffle

    (2)运行构造gazebo仿真环境launch文件

    ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
    
    • 1

    (3)设置gazebo初始的时间参数

    ros2 param set /gazebo use_sim_time True
    
    • 1

    (4)再次声明机器人模型

    export TURTLEBOT3_MODEL=burger
    
    • 1

    (5)启动Navigation导航launch文件

    ros2 launch turtlrbot3_navigation2 navigation2.launch.py
    
    • 1

    (6)设置全局代价和局部代价地图参数

    ros2 param set /global_costmap/global_costmap use_sim_time True
    ros2 param set /local_costmap/local_costmap use_sim_time True
    
    
    • 1
    • 2
    • 3

    运行结果如下:
    在这里插入图片描述启动后正常你应该在RVIZ2和终端看到一个错误,这是因为没有给定初始化位置(告诉机器人它在地图的大概位置)导致的。

    通过RVIZ2的工具栏上的 ​​2D Pose Estimate​​ 可以给迷茫的fishbot指明“机生方向”。

    点击 ​​2D Pose Estimate​​ ,进行姿态初始化(选中机器人在Gazebo位置差不多的点,左键点击不要松开,移动鼠标给定方向),初始化完后,左边的Global Status 就正常了。
    在这里插入图片描述
    哈哈,接下来再测试以下SLAM自主导航就成功解决问题了。
    在这里插入图片描述
    可以看到当给定机器人目标位置后,机器人能成功规划出路径前往目标点。
    在这里插入图片描述

    目前仍存在的问题。可以看到当进行一段时间的自主导航后,机器人可能陷入到某个区域无法移动,这与机器人的导航算法,和导航参数(膨胀系数等)都有关系,接下来需要进一步的进行调参和算法改进。

  • 相关阅读:
    【连载】囚生CYの备忘录(20220906-)
    《Bayes-Optimal Hierarchical Multi-label Classificaiton》-TKDE
    【校招VIP】前端网络之路由选择协议
    Mysql第三篇---响应太慢?数据库卡顿?如何优化?
    Allegro DFM Ravel Rule检查工具介绍
    数据库MySQL(二):DDL数据定义语言
    redis、rocketmq 高级面试考点
    分析 java.util.Hashtable 源码
    华为云云耀云服务器L实例评测|云耀云服务器L实例部署Bolo开源个人博客
    Linux八股文
  • 原文地址:https://blog.csdn.net/qq_45252077/article/details/132776342