介绍在ROS中编写和使用分级路径规划器的步骤,提供从编写路径计划程序类开始直到将其部署为插件的所有步骤。
首先要知道的是,为了向ROS添加一个新的分层路径规划器,新的路径规划器必须遵守nav_core包中定义的nav_core :: BaseGlobalPlanner C ++接口。插件添加到ROS中,煞它可以被move_base包使用。
VScode使用
- 创建 ROS 工作空间
mkdir -p planner_ws/src
cd planner_ws
catkin_make
- 启动 vscode
进入 planner_ws 启动 vscode
cd planner_ws
code .
- vscode 中编译 ros
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build
可以点击配置设置为默认,修改.vscode/tasks.json 文件
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {
"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
- 创建功能包
catkin_create_pkg Astar_planner nav_core roscpp rospy std_msgs pluginlib
编写路径规划类
第一步是为遵循nav_core :: BaseGlobalPlanner的路径规划器编写一个新类
Astar_planner.h
#include <string.h>
#include <ros/ros.h>
#include <geometry_msgs/PoseStamped.h>
#include <tf/