# SLAM地图构建和导航
准备
1 2
| sudo apt-get install ros-noetic-map-server sudo apt-get install ros-noetic-navigation
|
正式开始
- 配置网络连接gedit ~/.bashrc。
- 建立远程控制连接。
- SLAM建图。
- 保存SLAM地图。
- 读取保存的地图文件并实现导航。
详见order.txt及注释。
order.txt
A表示主机,B表示从机,数字k表示第k个终端。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| A1: ifconfig gedit ~/.bashrc ... source ~/.bashrc roscore B1: ssh -Y pi@192.168.1.133 ifconfig gedit ~/.bashrc ... source ~/.bashrc roscore
B2: ssh -Y pi@192.168.1.133 roslaunch turtlebot3_bringup turtlebot3_robot.launch
A2: roslaunch turtlebot3_slam turtlebot3_slam.launch A3: rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
A4: roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
A5: sudo apt-get install ros-noetic-map-server rosrun map_server map_saver -f ~/map A2/A3/A4:Ctrl+C
A2: rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz A3: sudo apt-get install ros-noetic-navigation roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
|
常见问题
本次实验建立在完整的连接和已有的控制命令中,不需要操作者参与计算,操作较为简单,可以在熟悉操作的情况下没有障碍的完成时实验。
主要会出现的情况有:
如果没有确定好初始位置开始进行扫描测量地形,其地图初始点未知,在导航实验中如果不能从原出发点开始运行,会产生地图定位不准的问题,所以在一定程度上也会影响到内部程序对轨迹规划的运算,因为在导航功能中小车的轨迹规划是同时计算原测量地图和实时雷达扫描障碍物的最优解。
在开始导航前,应尽可能多次拖动箭头来精确的确定小车的位置,否则可能出现小车无法启动的情况,因为当构建的地图面积不大时,小车的起始位置的相对误差就会变大,所以为了能使小车精确的进行导航,应该尽可能精确地确定小车的起始位置。
同时,在实验中杂乱的周边环境对导航功能也会产生较大影响。所以总的来说,小车的运行原理和计算能力对实验场地提出了一定要求。