myAGV-地图导航

在之前我们已经建好了一个空间地图并获得了两个地图文件,分别是在~/myagv_ros/src/myagv_navigation/map目录下的 map.pgm 和 map.yaml

地图保存终端2

现在来看一下如何用建立好的地图来为小车进行导航。

1 修改launch文件

1.打开并编辑~/myagv_ros/src/myagv_navigation/launch/路径下的 navigation_active.launch文件。

cd ~/myagv_ros/src/myagv_navigation/launch
sudo gedit navigation_active.launch

导航编辑文件

  1. 找到参数"map_file",将default="$(find myagv_navigation)/map/map.yaml中的map.yaml替换成所需要的地图参数文件,不修改则默认加载map.yaml文件。

导航编辑文件_2

3.保存修改文件并退出。

2 运行launch文件

  1. 打开小车后,打开控制台终端(快捷键Ctrl+Alt+T),在命令行中输入以下指令:
cd myagv_ros
roslaunch myagv_odometry myagv_active.launch
  1. 再打开一个控制台终端(快捷键Ctrl+Alt+T),输入如下指令:
cd myagv_ros
roslaunch myagv_navigation navigation_active.launch

导航终端显示

3.可以看到开启了一个Rviz仿真窗口。

注意:小车的初始位置最好放置到我们建图时小车的出发位置,如果需要修改起始位置请看下面步骤进行修改

点击顶部工具栏的“2D Pose Estimate” 进行调整,使得Rviz界面的小车和实现的小车可对应上,此时终端会返回小车相对于地图的坐标和航向角。

导航修改起始点_2

打开并编辑**~/myagv_ros/src/myagv_navigation/launch/路径下的 navigation_active.launch文件,找到节点amcl,将“initial_pose_x”、“initial_pose_y”、“initial_pose_a”依次替换成终端返回的坐标和航向角。再次启动navigation_active.launch后,小车的起始位置就会改变。

导航修改起始点

4.左下角导航操作区说明

① 可设置目标点的最大数量:要求所设置目标点个数不能大于该参数(可以小于)

② 是否循环:若勾选,导航至最后一个目标点后,将重新导航至第一个目标点。例:1->2->3->1->2->3->···,该选项必须在开始导航前勾选

③ 任务目标点列表: x/y/yaw,地图上给定目标点的位姿(xy坐标与航向角yaw)。

  • 设置完目标最大数量,保存后,该列表会生成对应数量的条目
  • 每给出一个目标点,此处会读取到目标点的坐标与朝向

④ 开始导航:开始任务

⑤ 取消:取消当前目标点导航任务,机器人停止运动。再次点击开始导航后,会从下一个任务点开始。

例:1->2->3,在1->2的过程中点击取消,机器人停止运动,点击开始导航后,机器人将从当前坐标点去往3。

⑥ 重置:将清空当前所有目标点

导航运行图

5.设置任务目标点个数,点击确认保存。然后点击ToolBar上的2D Nav Goal,在地图上给定目标点。(每次设置都需要先点击2D Nav Goal),目标点有朝向区分,箭头顶端为车头方向。点击开始导航,导航开始,在rviz中看到起点到目标点位间有一条小车的规划路径,小车会沿着路线运动到目标点位。

导航运行图_2

results matching ""

    No results matching ""