全国服务热线:18888889999
在线报名
欧陆注册CURRICULUM
欧陆资讯 NEWS CENTER
联系我们 CONTACT US
手机:
18888889999
电话:
0898-66889888
邮箱:
admin@youweb.com
地址:
海南省海口市玉沙路58号
欧陆资讯
你的位置: 首页 > 欧陆资讯
ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)
2024-04-29 03:45:35 点击量:

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

move_base包默认算法:

  1. 全局路径规划:Dijkstra;
  2. 局部路径规划:航迹推算;

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

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

 

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

 
 

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

?修改如下内容:

 

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

 

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

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

默认算法:

?dijkstra算法:

A star算法:

?验证算法:

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

?出现上述原因是因为膨胀半径设置问题,需要自己设置,最简单方法是将膨胀半径设置为机器人外切圆。

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

解决:将base_local_planner_params.yaml中holonomic_robot参数改为false;

holonomic_robot参数意义:代表是否是全向机器人。

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

比如安装TEB包:ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法_ros teb源码编译_Charlesffff的博客-CSDN博客