先slam(定位及地图构建)-再navigation(导航定位)->base_controller(小车控制器)->发给小车驱动器
1)建图:
1.1)roslaunch navigation_stage move_base_gmapping_5cm.launch
建图
1.2)rosrun teleop_twist_keyboard teleop_twist_keyboard.py
直接进行键盘控制
2)查看 ~/learning_slam/src/navigation_tutorials-indigo-devel/navigation_stage/launch$ vim move_base_amcl_2.5cm.launch
3)map_server 能动态生成保存到文件中的地图。
~/learning_slam/src/navigation_tutorials-indigo-devel/naion_stage/launch$ cd ../stage_config/maps/
ygx@ygx-virtual-machine:~/learning_slam/src/navigation_tutorials-indigo-devel/navigation_stage/stage_config/maps$
ygx@ygx-virtual-machine:~/learning_slam/src/navigation_tutorials-indigo-devel/navigation_stage/stage_config/maps$ rosrun map_server map_saver -f gmapping_0418
rosrun map_server map_saver -f gmapping_0418
[ INFO] [1555592499.050068096]: Waiting for the map
[ INFO] [1555592499.291753034]: Received a 1984 X 1984 map @ 0.050 m/pix
[ INFO] [1555592499.291834121]: Writing map occupancy data to gmapping_0418.pgm
[ INFO] [1555592499.381889859, 967.100000000]: Writing map occupancy data to gmapping_0418.yaml
[ INFO] [1555592499.382074137, 967.100000000]: Done
ygx@ygx-virtual-machine:~/learning_slam/src/navigation_tutorials-indigo-devel/navigation_stage/stage_config/maps$ ls
gmapping_0418.pgm willow-full-0.025.pgm willow-full.pgm
gmapping_0418.yaml willow-full-0.05.pgm
4) 进行导航测试
ygx@ygx-virtual-machine:~/learning_slam$ roslaunch navigation_stage move_base_amcl_2.5cm.launch
如果地图建的不好,则会出现卡主的现象;
5)move_base数据流
6)算法:
navigation的包里面的算法
https://github.com/ros-planning/navigation/tree/kinetic-devel
算法TEB DWA(local path planner)
其中看的顺序 move_base->global_planner->nav_core->navfn
dwa
navfn
首先看movebase,各个插件都是通过这个来调用的