sangxin пре 3 година
родитељ
комит
44f186032a

+ 1 - 1
docs/chapt10/10.7Nav2导航框架介绍.md

@@ -1,4 +1,4 @@
-# 10.7 Nav2导航框架介绍
+# 10.7 Nav2导航框架介绍与安装
 
 上一节我们对机器人导航过程中所用到的2D地图进行了介绍,本节我们就来正式的学习下Nav2导航框架,关于Nav2相关的更多资料,请访问[Nav2中文网](https://nav2.fishros.com/)。
 

+ 28 - 3
docs/chapt10/10.9使用Fishbot进行自主导航.md

@@ -34,7 +34,7 @@ def generate_launch_description():
     # use_sim_time 这里要设置成true,因为gazebo是仿真环境,其时间是通过/clock话题获取,而不是系统时间
     use_sim_time = LaunchConfiguration('use_sim_time', default='true') 
     map_yaml_path = LaunchConfiguration('map',default=os.path.join(fishbot_navigation2_dir,'maps','fishbot_map.yaml'))
-    nav2_param_path = LaunchConfiguration('params_file',default=os.path.join(fishbot_navigation2_dir,'param','fishbot.yaml'))
+    nav2_param_path = LaunchConfiguration('params_file',default=os.path.join(fishbot_navigation2_dir,'param','fishbot_nav2.yaml'))
     rviz_config_dir = os.path.join(nav2_bringup_dir,'rviz','nav2_default_view.rviz')
 
     #=============================3.声明启动launch文件,传入:地图路径、是否使用仿真时间以及nav2参数文件==============
@@ -78,6 +78,8 @@ ament_package()
 
 ### 2.2 添加依赖
 
+主要是添加这行` <exec_depend>nav2_bringup</exec_depend>`
+
 ```xml
 <?xml version="1.0"?>
 <?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
@@ -125,20 +127,43 @@ ros2 launch fishbot_navigation2 navigation2.launch.py
 
 ## 4.初始化位置
 
-启动后正常你应该在RVIZ和终端看到一个错误,这是因为没有给定初始化位置(告诉机器人它在地图的大概位置)导致的。
+启动后正常你应该在RVIZ2和终端看到一个错误,这是因为没有给定初始化位置(告诉机器人它在地图的大概位置)导致的。
+
+![image-20220519231957742](10.9%E4%BD%BF%E7%94%A8Fishbot%E8%BF%9B%E8%A1%8C%E8%87%AA%E4%B8%BB%E5%AF%BC%E8%88%AA/imgs/image-20220519231957742.png)
+
+
+
+```shell
+[planner_server-5] [INFO] [1652973621.731976741] [global_costmap.global_costmap]: Timed out waiting for transform from base_link to map to become available, tf error: Invalid frame ID "map" passed to canTransform argument target_frame - frame does not exist
+[rviz2-10] [INFO] [1652973621.760971376] [rviz2]: Message Filter dropping message: frame 'odom' at time 0.000 for reason 'Unknown'
+[rviz2-10] [INFO] [1652973621.856298950] [rviz2]: Message Filter dropping message: frame 'laser_link' at time 4392.881 for reason 'Unknown'
+[rviz2-10] [INFO] [1652973621.951345246] [rviz2]: Message Filter dropping message: frame 'laser_link' at time 4392.981 for reason 'Unknown'
+[rviz2-10] [INFO] [1652973621.951468235] [rviz2]: Message Filter dropping message: frame 'odom' at time 0.000 for reason 'Unknown'
+[rviz2-10] [INFO] [1652973622.047860791] [rviz2]: Message Filter dropping message: frame 'laser_link' at time 4393.081 for reason 'Unknown'
+```
+
+通过RVIZ2的工具栏上的 `2D Pose Estimate` 可以给迷茫的fishbot指明“机生方向”。
+
+![image-20220519232134366](10.9%E4%BD%BF%E7%94%A8Fishbot%E8%BF%9B%E8%A1%8C%E8%87%AA%E4%B8%BB%E5%AF%BC%E8%88%AA/imgs/image-20220519232134366.png)
 
-通过RVIZ2的工具栏上的 可以给迷茫的fishbot指明“机生方向”。
+点击 `2D Pose Estimate` ,进行姿态初始化(选中机器人在Gazebo位置差不多的点,左键点击不要松开,移动鼠标给定方向),初始化完后,左边的Global Status 就正常了。
+
+![2d_estimate](10.9%E4%BD%BF%E7%94%A8Fishbot%E8%BF%9B%E8%A1%8C%E8%87%AA%E4%B8%BB%E5%AF%BC%E8%88%AA/imgs/2d_estimate.gif)
 
 ## 5.单点导航
 
 点击RVIZ2工具栏上的 就可以给fishbot安排一个目标点了,点击按钮,到地图上任意一点击鼠标左键,注意不要松开,移动鼠标给定一个方向。
 
+![navigation_fishbot2](10.9%E4%BD%BF%E7%94%A8Fishbot%E8%BF%9B%E8%A1%8C%E8%87%AA%E4%B8%BB%E5%AF%BC%E8%88%AA/imgs/navigation_fishbot2.gif)
+
 ## 6.多点(路点)导航
 
 观察左下角,有一个Nav2的Rviz2小插件,可以进行启动停止和导航模式的切换,点击 切换到路点模式。
 
 接着你可以使用工具栏的  按钮,给FishBot指定多个要移动的点,接着点击左下角的启动,就可以看到FishBot依次到达这些目标点。
 
+![fishbot_multi_point](10.9%E4%BD%BF%E7%94%A8Fishbot%E8%BF%9B%E8%A1%8C%E8%87%AA%E4%B8%BB%E5%AF%BC%E8%88%AA/imgs/fishbot_multi_point.gif)
+
 ## 7.总结
 
 本节我们终于将FishBot的自主导航给跑了起来,不过我们都是通过RVIZ2的工具给机器人指定的目标点,除了工具栏的工具,我们还可以使用代码的方式发送目标点给FishBot,下一节小鱼就会带你一起学习Nav2的API(应用程序接口)。

BIN
docs/chapt10/10.9使用Fishbot进行自主导航/imgs/2d_estimate.gif


BIN
docs/chapt10/10.9使用Fishbot进行自主导航/imgs/fishbot_multi_point.gif


BIN
docs/chapt10/10.9使用Fishbot进行自主导航/imgs/image-20220519231957742.png


BIN
docs/chapt10/10.9使用Fishbot进行自主导航/imgs/image-20220519232134366.png


BIN
docs/chapt10/10.9使用Fishbot进行自主导航/imgs/navigation_fishbot2.gif