赞
踩
安装后才可以运行move_base
move_base包默认全局路径规划算法为Dijkstra算法
以turtlebot3为例
在其move_base.launch文件中添加如下内容
- <launch>
- <!-- Arguments -->
- <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
- <arg name="cmd_vel_topic" default="/cmd_vel" />
- <arg name="odom_topic" default="odom" />
- <arg name="move_forward_only" default="false"/>
-
- <!-- move_base -->
- <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
- <!--加载A star算法-->
- <param name="base_global_planner" value="global_planner/GlobalPlanner"/>
- <param name="planner_frequency" value="1.0" />
- <param name="planner_patience" value="5.0" />
- <!--加载DWA算法-->
- <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
- <!---->
- <rosparam file="$(find turtlebot3_navigation)/param/costmap_common_params_$(arg model).yaml" command="load" ns="global_costmap" />
- <rosparam file="$(find turtlebot3_navigation)/param/costmap_common_params_$(arg model).yaml" command="load" ns="local_costmap" />
- <rosparam file="$(find turtlebot3_navigation)/param/local_costmap_params.yaml" command="load" />
- <rosparam file="$(find turtlebot3_navigation)/param/global_costmap_params.yaml" command="load" />
- <rosparam file="$(find turtlebot3_navigation)/param/move_base_params.yaml" command="load" />
- <rosparam file="$(find turtlebot3_navigation)/param/dwa_local_planner_params_$(arg model).yaml" command="load" />
- <remap from="cmd_vel" to="$(arg cmd_vel_topic)"/>
- <remap from="odom" to="$(arg odom_topic)"/>
- <param name="DWAPlannerROS/min_vel_x" value="0.0" if="$(arg move_forward_only)" />
- </node>
- </launch>
修改内容如下
其中
private_nh.param("use_dijkstra", use_dijkstra, false);
此句为false,则使用A*算法,反之使用dijkstra算法。
下面两句用来验证使用的算法是dijkstra还是A*。
ROS_INFO("use_dijkstra");
ROS_INFO("use_A_star");
修改完代码之后,需要删除其中的build和devel文件,再重新用catkin_make编译。
再删除其中的build和devel文件,再重新用catkin_make编译
至此文件代码修改完毕
ROS:gazebo创建仿真地图,turtlebot3加载仿真地图进行建图,生成yaml和pgm地图信息
在如下路径中将自己建立的地图.pgm和.yaml文件复制进去
roslaunch turtlebot3_gazebo turtlebot3_world.launch
roslaunch turtlebot3_navigation turtlebot3_navigation.launch
仿真效果如下
A*算法
dijkstra算法
参考博客:
ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。