基于TurtleBot的SLAM与Navigation算法实现
实验过程
(1) 准备工作
①在Ubuntu16.04系统下安装ROS Kinetic 1.12.14;
②安装TurtleBot的相关功能包:
sudo apt-get install ros-kinetic-turtlebot-*
source /opt/ros/kinetic/setup.bash
③安装Kinect的相关功能包:
sudo apt-get install ros-kinetic-freenect-*
rospack profile
④设置环境变量:
export TURTLEBOT_3D_SENSOR=kinect
(2) 构建地图
① 将TurtleBot与笔记本电脑用USB端口连接,后打开TurtleBot开关,状态灯亮起;
② 启动TurtleBot,在Ubuntu系统,打开一个新终端,运行命令:
roslaunch turtlebot_bringup minimal.launch
运行成功后会有清亮的声音发出,表示TurtleBot与笔记本电脑连接成功;
③ 运行GMapping:
roslaunch turtlebot_navigation gmapping_demo.launch
④ 打开RViz观察:
roslaunch turtlebot_rviz_launchers view_navigation.launch
⑤ 打开键盘控制:
roslaunch turtlebot_teleop keyboard_teleop.launch
⑥ 保存地图:
mkdir ~/map_file //创建一个放地图的文件夹
rosrun map_server map_saver -f ~/map_file/my_map //“my_map”为地图的名称,
可改为任意名称,如果文件名字相同,文件将被覆盖掉,所以保存时一定记得改名
ls ~/map_file //确认一下地图是否已保存
(3) 自主导航
① 启动TurtleBot:
roslaunch turtlebot_bringup minimal.launch
② 打开导航包,调出之前构建好的地图:
roslaunch turtlebot_navigation amcl_demo.launch map_file:=/home/cosswo/my_map2.yaml //“/home/cosswo/my_map2.yaml”为之前构建好的地图的保存路径
③ 打开可视化界面RViz:
roslaunch turtlebot_rviz_launchers view_navigation.launch
④ 操作流程:
在执行完上一步后,即可在RViz中看到之前建好的地图
·手动提供TurtleBot在地图上的大致位置,作为导航的起点:鼠标左键点击“2D Pose Estimate”,在地图上TurtleBot的位置点击并按住,将箭头朝向调整至欲到达目的地的方向后松开,如图8;
·设置TurtleBot导航的终点:鼠标左键点击“2D Nav Goal”,在地图上点击想让TurtleBot到达的位置并按住,将箭头朝向调整至目的地的正前方后松开