ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)

前提:需要安装navigation包,才可以运行move_base。

一.move_base路径规划包内容

ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)_第1张图片ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)_第2张图片

ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)_第3张图片

 二.更换全局路径规划算法(A*、Dijkstra、DWA)

A*、Dijkstra属于全局路径规划、DWA属于局部路径规划。

1、move_base.launch

move_base.launch文件需要添加以下内容

    
    
    
    
    
    

整体的move_base.launch文件内容如下(其中turtlebot3_navigation内容需要修改为对应自己的包):


  
  
  
  
  

  
  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  

2、修改planner_core.cpp文件

 planner_core.cpp文件是navigation包中的文件,其具体目录如下(对应自己的路径):

ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)_第4张图片

 修改如下内容:

ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)_第5张图片

private_nh.param("use_dijkstra", use_dijkstra, false);

此句true为使用dijkstra算法,false为使用A star算法。

ROS_INFO("use_dijkstra");
ROS_INFO("use_A_star");

此句可以在运行路径规划时,查看自己使用的是dijkstra还是A star。

注意:修改完代码之后,需要删除build和devel文件,重新catkin_make编译

3、效果展示

默认算法:

 dijkstra算法:

A star算法:

 验证算法:

ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)_第6张图片

4、展望(未来需要注意问题)

1、A*算法并不是最优路径(如上),也是会出现问题(如下),还是需要优化。

 出现上述原因可能是因为膨胀半径设置问题,需要验证。

2、使用的turtlebot3机器人在运行时会出现倒着走的现象。

3、未来添加新的路径规划算法也可以如此加入move_base中。

你可能感兴趣的:(ROS,开发语言,机器人,ubuntu,算法)