赞
踩
mkdir -p demo_ws/src
cd demo_ws/src
catkin_init_workspace
cd ..
catkin_make
创建功能包,添加依赖
cd src
catkin_create_pkg better_astar_global_planner nav_core roscpp rospy std_msg
创建一个存放改进算法的功能包
将better_astar.cpp和better_astar.h文件放置功能包better_astar_global_planner中的src中
要在全局路径规划中用自己的算法,就要先把算法写好:上面一个.ccp文件和.h文件就是已经写好的算法
此处放置的就是自己用ROS和C++编写的全局路径规划C++代码
打开vscode进行修改
在.cpp文件中添加
PLUGINLIB_EXPORT_CLASS(BAstar_planner::BAstarPlannerROS, nav_core::BaseGlobalPlanner)
将功能包中src文件下的CMakeList.txt文件中的该部分修改
编译文件
在better_astar_global_planner文件下创建一个.xml描述文件来描述规划器,文件名字为better_astarglobal_planner_plugin.xml
内容为
<library path="lib/libbetter_astar_global_planner_lib">
<class name="BAstar_planner/BAstarPlannerROS," type="BAstar_planner::BAstarPlannerROS," base_class_type="nav_core::BaseGlobalPlanner">
<description>This is a global planner plugin by iroboapp project.</description>
</class>
</library>
最后修改package.xml文件(与CMakeLists文件同目录)
修改内容为文件最下方的:
<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->
<nav_core plugin="${prefix}/better_astar_global_planner_plugin.xml" />
</export>
</package>
更新下环境变量
将
mbot_description
mbot_gazebo
mbot_navigation
三个文件放置进src文件下并且进行编译
找到
mbot_navigation下的move_base.launch文件
在其中添加代码
<!-- 加载自己写的全局规划器 -->
<param name="base_global_planner" value="BAstar_planner/BAstarPlannerROS"/>
最后运行仿真功能包里面的launch文件来完成仿真
rivz中调用规划器来进行navigation
点击2D Nav Goal观察仿真现象
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。