ros中实现全局/局部避障算法的添加与rviz中规划路径的显示(上)

目录

前言

一、命令行

二、所用到的launch文件、yaml文件等

1.map1_mrobot_laser_nav_gazebo.launch

2.gmapping_demo.launch

3.gmapping.launch

4.move_base.launch

5.nav03_map_server.launch

6.mrobot_teleop.launch

三、rviz中添加path插件

总结


前言

最近在做ros相关的作业,故写下本文留做参考以便日后再次使用或理解,如有错漏之处敬请指出!

所用的全局避障(路径规划)算法为A*,局部避障(路径规划)算法为DWA。

本文主要介绍DWA算法的添加和应用(因为A*还没做…)


一、命令行

#先在gazebo中建立并保存地图,file-save world as 保存world文件
roslaunch mrobot_gazebo map1_mrobot_laser_nav_gazebo.launch #启动gazebo,加载已建立的地图
roslaunch mrobot_navigation gmapping_demo.launch #启动move_base、rviz,此处的launch文件中不要添加最后的<加载地图文件>代码
roslaunch mrobot_teleop mrobot_teleop.launch #可以使用键盘的【uiojklm,.】九个键进行对小机器人的控制,使小车雷达扫描完整个地图 
rosrun map_server map_saver -f ~/ws/src/robot_mrobot/mrobot_navigation/maps/图片名称 #保存地图yaml、pgm文件,路径根据情况进行更改即可
#更改好launch、yaml文件后
roslaunch mrobot_gazebo map1_mrobot_laser_nav_gazebo.launch #启动gazebo,加载已建立的地图
roslaunch mrobot_navigation gmapping_demo.launch #启动move_base、rviz
#在rviz中设置目标点,添加path插件选择topic来显示已规划出的全局/局部路径

二、所用到的launch文件、yaml文件等

1.map1_mrobot_laser_nav_gazebo.launch



     
      
    
    
    
    
    

    
    
        
        
        
        
        
        
    

    
     

    
     

    
    
        
    

    
     

2.gmapping_demo.launch



    

    
    

    
    

    
    

3.gmapping.launch


    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

4.move_base.launch



  
    
    
    
    
    

    
    
    


  
  
  • costmap_common_params.yaml local_costmap_params.yaml global_costmap_params.yaml base_local_planner_params.yaml 等文件可参考

     【ROS】—— 机器人导航(仿真)—导航实现(十八)[重要][重要][重要]

      或直接下载turtlebot3的配置文件,github链接:  turtlebot3/turtlebot3_navigation/param at master · ROBOTIS-GIT/turtlebot3 · GitHub

  • global_planner_params.yaml 文件我参考了move base参数及global planner,local planner设置

       同时也是官方的解释global_planner - ROS Wiki ,代码如下:

GlobalPlanner:
  allow_unknown: false  #默认true,是否允许路径穿过未知区域
  default_tolerance: 0.2  #默认0.0,目标容差
  visualize_potential: false #默认false,是否显示从PointCloud2计算得到的势区域
  use_dijkstra: true #默认true,true表示使用dijkstra's否则使用A*
  use_quadratic: true #默认true,true表示使用二次函数近似函数
  use_grid_path: false #默认false,true表示使路径沿栅格边界生成,否则使用梯度下降算法
  old_navfn_behavior: false #默认false,是否复制navfn规划器的结果
  lethal_cost: 253 #默认253,致命代价值
  neutral_cost: 50 #默认50,中等代价值
  cost_factor: 3.0 #默认3.0,代价因子
  publish_potential: true #默认true,是否发布costmap的势函数
  orientation_mode: 0 #默认0,设置点的方向
  orientation_window_size: 1 #默认1,根据orientation_mode指定的位置积分确定窗口方向
  • move_base_params.yaml dwa_local_planner_params.yaml 文件也是参考【ROS-Navigation】—— DWA路径规划算法解析

5.nav03_map_server.launch

参考:ROS仿真机器人(安装、配置、测试、建图、定位、路径规划)(下)


    
    
    
    

6.mrobot_teleop.launch


  
    
    
  

三、rviz中添加path插件

ros中实现全局/局部避障算法的添加与rviz中规划路径的显示(上)_第1张图片

点击Add,往下滑动找到Path,若想显示全局和局部路径则添加两个,并选择对应的Topic,可以分别命名为Path_global和Path_local,并将线赋予不同颜色。

ros中实现全局/局部避障算法的添加与rviz中规划路径的显示(上)_第2张图片

然后就可以实现在机器人运动过程中观察到全局、局部路径啦。ros中实现全局/局部避障算法的添加与rviz中规划路径的显示(上)_第3张图片


总结

  • tips:1.launch文件中的  args=”$(find xxx)  我的理解来看xxx是所对应文件的上级或上上级文件夹的名字,使用代码时需注意将此处的名字改为自己launch/yaml文件夹对应路径名字。

                2.在已开启的终端中加入新终端快捷键:Ctrl+Shift+T;开启新终端快捷键:Ctrl+Alt+T

  • 现在没能解决的问题:

       1.不知道如何在gazebo中显示小机器人蓝色的雷达线程(Belike:)ros中实现全局/局部避障算法的添加与rviz中规划路径的显示(上)_第4张图片

      2.不知道如何将rviz中的地图显示为(Belike:)

ros中实现全局/局部避障算法的添加与rviz中规划路径的显示(上)_第5张图片

 希望有缘的大佬可以帮忙指导一下 (๑•̀ㅂ•́)و✧

主要参考:ROS仿真机器人(安装、配置、测试、建图、定位、路径规划)(上)

                  ROS仿真机器人(安装、配置、测试、建图、定位、路径规划)(下)

                【ROS-Navigation】—— DWA路径规划算法解析

                  ROS系统SLAM基础学习:运行gazebo仿真建立保存地图

你可能感兴趣的:(算法,linux,ubuntu,机器人)