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中
要在全局路径规划中用自己的算法,就要先把算法写好:上面一个p文件和.h文件就是已经写好的算法
此处放置的就是自己用ROS和C++编写的全局路径规划C++代码
打开vscode进行修改
在.cpp文件中添加
PLUGINLIB_EXPORT_CLASS(BAstar_planner::BAstarPlannerROS, nav_core::BaseGlobalPlanner)
将功能包中src文件下的文件中的该部分修改
编译文件
在better_astar_global_planner文件下创建一个.xml描述文件来描述规划器,文件名字为better_astarglobal_l
内容为
<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>
最后修改l文件(与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_l" />
</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观察仿真现象
本文发布于:2024-01-30 03:15:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655573918838.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |