SLAM实操入门(三):Ubuntu20.04安装Turtlebot3并运行SLAM例程仿真

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录


前言

Turtlebot3(简称TB3)是继Turtlebot2之后又一款ROS官方打造的软硬件学习平台更小更便宜更好玩该文章通过该项目提供的软件平台与例程进行SLAM简单介绍与实现。


在Turtlebot3进行SLAM仿真

1 安装Turtlebot3依赖包

  • 打开终端输入以下命令安装Turtlebot3依赖的包文件
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro  ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation  ros-noetic-interactive-markers rviz

2 创建项目并安装Turtlebot3

  • 打开终端输入命令创建名为"catkin_turtlebot3"的项目文件
mkdir catkin_turtlebot3
  • 进入项目文件“catkin_turtlebot3”
cd catkin_turtlebot3
  • 创建一个新文件“scr”用以储存环境等文件
mkdir src
  • 进入src文件
cd src
  • 将turtlebot3的源码从GitHub克隆至src文件中
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
  • 返回上一级文件夹并编译
cd ..
catkin_make

此时Turtlebot3的已经下载并编译了
下一步对环境进行配置

  • 添加模型申明用以设定打开后模型的样子
echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc
  • 对环境变量进行设置与上一章ROS添加环境变量相同可参考
echo "source ~/catkin_turtlebot3/devel/setup.bash" >> ~/.bashrc
  • 很重要完成后建议打开一个新终端使用下面命令进行测试
echo $ROS_PACKAGE_PATH

如果显示当前项目的路径就表明设置成功

在这里插入图片描述
如果是以下情况请再重新设置或者新开一个终端测试一定是再项目文件夹目录中运行
在这里插入图片描述
至此Turtlebot3的安装与配置就全部完成了

下面使用官方例程进行SLAM仿真

3 使用Turtlebot3进行建图

  • 打开新终端进入项目文件“catkin_turtlebot3”
cd catkin_turtlebot3
  • ROS第一步打开roscore
roscore
  • 打开新终端输入命令启动Gazabo是通过roslaunch命令启动src文件夹中特定节点
roslaunch turtlebot3_gazebo turtlebot3_world.launch

启动后得到打开了如下界面
在这里插入图片描述

  • 注意如果启动界面一直卡在开头或打开后地图一片空白可能是因为在路径中缺少turtlebot3_world文件夹
  • catkin_turtlebot3/src/turtlebot3_simulations/turtlebot3_gazebo/models
  • 打开新终端启动SLAM进行建图该命令是在可视化工具rviz中打开并进行SLAM
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

如果没有rviz包可使用以下命令安装

sudo apt install rviz

打开后如图所示
在这里插入图片描述

  • 打开新终端输入键盘控制的命令
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
  • 注意该键盘控制是依靠按“W A D X”键增加速度按S停止进行控制
    在这里插入图片描述通过键盘移动机器人完善地图的建立直到自己满意

在这里插入图片描述
在这里插入图片描述

  • 打开新终端输入命令保存地图
rosrun map_server map_saver -f ~/map 

地图被保存至主目录中包含2个文件

map.pgn地图图片
map.yaml地图信息

4 使用扫描地图进行自动导航仿真

  • 运动Gazabo
roslaunch turtlebot3_gazebo turtlebot3_world.launch
  • 读取地图并运行导航程序
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

在这里插入图片描述点击上方红色箭头按钮2D Nav Goal
在这里插入图片描述
随后在地图上任意地点点击设定导航目标位置小车便开始自主规划移动
在这里插入图片描述
刚启动时会出现如下情况

在这里插入图片描述
可以点击界面上方绿色箭头2D Pose Estimate
在这里插入图片描述

再点击小车在图片中的实际位置移动小车后会对地图进行修复匹配。


总结

本文在Ubuntu中创建了新的工程项目“catkin_turtlebot3”并配置了Turtlebot3的虚拟环境使用官方例程进行了SLAM仿真。
需要重点注意的有ROS通信的关系环境变量的设置。整个项目可能由于入门时对Ubuntu的不熟悉导致遇到一些奇怪的bug可以多搜一搜去解决。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Ubuntu