# 10.8 为FishBot配置Nav2 安装好了Nav2,我们开始针对我们的fishbot改变一些参数进行导航相关的参数配置。 Nav2可配置的参数比起Cartographer更多,但是不要害怕,因为大多数参数我们可能不会改变。 有关Nav2的更多参数介绍和详细的配置意义,可以参考**Nav2中文网配置指南**一节。 ## 1.创建fishbot_navigation2 ### 1.1创建功能包 和前面在Cartographer中一样,我们需要创建一个文件夹放置配置文件、launch文件、rviz配置和地图等。 进入到src目录下,使用下面指令创建功能包: ```shell ros2 pkg create fishbot_navigation2 --dependencies nav2_bringup ``` 这里我们添加了一个依赖`nav2_bringup`,后面写launch文件要用到,这里提前添加一下依赖。 创建完成后的目录结构: ``` . ├── CMakeLists.txt ├── include │ └── fishbot_navigation2 ├── package.xml └── src 3 directories, 2 files ``` ### 1.2添加launch、config、map、param、rviz文件夹 ``` cd src/fishbot_navigation2 mkdir launch config maps param rviz ``` ### 1.3复制地图文件 将上一节的地图文件复制到map文件夹下。 复制完成后`fishbot_navigation2`的文件结构如下 ``` . ├── CMakeLists.txt ├── config ├── launch ├── maps │ ├── fishbot_map.png │ ├── fishbot_map.pgm │ ├── fishbot_map.yaml ├── package.xml ├── param └── rviz 5 directories, 5 files ``` ## 2.添加配置文件 我们需要配置的文件是Nav2的参数文件,同样的,贴心的Nav2已经为我们准备好了参数模板 ``` src/navigation2/nav2_bringup/bringup/params/nav2_params.yaml ``` 在`src/fishbot_navigation2/param/`目录下创建`fishbot_nav2.yaml` ```shell cd src/fishbot_navigation2/param/ touch fishbot_nav2.yaml ``` 然后将`src/navigation2/nav2_bringup/bringup/params/nav2_params.yaml`的内容复制粘贴到`fishbot_nav2.yaml`文件中。 > **参数文件中的参数是谁的?** > > 在[5.1.4章节保存参数](chapt5/5.1ROS2参数介绍?id=_4体验参数)中,我们曾用`ros2 param dump `指令将某个节点的参数保存为一个`.yaml`格式的文件。`fishbot_nav2.yaml`文件就是保存Nav2相关节点参数的文件。 ### 3. 配置参数 其实参数不配置也是可以将Nav2跑起来的,但是后期想要更改运行的效果就需要对参数进行修改,所以这里小鱼会带你学会调参三宝: 1. 了解参数含义 2. 修改参数,再次运行看效果 3. 根据效果,更新参数 > 以上三步可能是你工作生涯中用到的除复制粘贴外的另一大技能,所以一定要掌握。 ### 3.1 参数列表 有关Nav2所有参数的详细介绍,可以访问Nav2中文网中的配置指南章节,非常的详细,无比的具体。 ![image-20220517203105467](10.8%E4%B8%BAFishbot%E9%85%8D%E7%BD%AENav2/imgs/image-20220517203105467.png) -------------- 技术交流&&问题求助: - **微信公众号及交流群:鱼香ROS** - **小鱼微信:AiIotRobot** - **QQ交流群:139707339** - 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划