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


前言

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,可以多搜一搜去解决。

要在Ubuntu 20.04安装Turtlebot3,你需要执行以下步骤: 1. 首先,你需要在你的电脑上安装Ubuntu 20.04,并配置ROS Noetic。你可以将Ubuntu 20.04安装在物理机上,也可以在虚拟机中安装。确保ROS Noetic已正确安装和配置。 2. 接下来,你需要创建一个新的项目,例如"catkin_turtlebot3",并配置Turtlebot3的虚拟环境。这可以通过执行以下命令来完成: ``` $ cd ~/catkin_ws/src $ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git $ cd ~/catkin_ws && catkin_make $ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc $ source ~/.bashrc ``` 这些命令将下载Turtlebot3软件包并将其编译到你的工作空间中。同时,它们将设置你的环境变量以便使用Turtlebot3软件包。 3. 安装Turtlebot3的依赖项。可以使用以下命令安装所需的依赖项: ``` $ sudo apt-get install ros-noetic-teleop-twist-keyboard $ sudo apt-get install ros-noetic-gmapping $ sudo apt-get install ros-noetic-amcl ``` 这些依赖项将允许你使用键盘控制Turtlebot3以及进行SLAM仿真。 4. 完成上述步骤后,你可以运行Turtlebot3例程进行SLAM仿真。你可以使用以下命令启动Gazebo仿真器和RViz可视化工具: ``` $ roslaunch turtlebot3_gazebo turtlebot3_world.launch ``` 这将启动Turtlebot3在Gazebo仿真环境中,并加载默认的世界模型。你还可以在新的终端中运行以下命令来启动SLAM仿真: ``` $ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping ``` 这将启动SLAM仿真,并使用GMapping算法进行地图构建。你可以使用键盘控制Turtlebot3进行探索,并观察地图在RViz中的实时更新。 请注意,在安装和配置过程中可能会遇到一些问题。如果遇到奇怪的bug或其他错误,请通过搜索解决方案来解决。这将帮助你解决可能遇到的常见问题。
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴恩达亲传弟子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值