个人学习记录,参照视频链接:Ubuntu20.04安装turtlebot3并运行slam例程仿真

进行下面操作需要先准备下载好turtlebot3的包
我是在github上下载的,包里面有turtlebot3-master和turtlebot3_simulations
在这里插入图片描述
在这里插入图片描述

打开终端输入:

mkdir catkin_ws	创建工作空间
cd catkin_ws				进入创建的工作空间
mkdir src				创建src文件(source)
将准备好的两个文件粘贴到src文件下
catkin_make		粘贴完后在编译一下
编译之后工作空间新建了build和devel

报错:好像是缺少 turtlebot3_msgs 功能包
在这里插入图片描述
问题解决:(在turtlebot3-master下添加turtlebot3_msgs 功能包)
参考链接:ROS 环境下 安装 turtlebot3 功能包及其仿真包 并测试 —— 全流程(报错及解决)

重新编译后结果:
在这里插入图片描述

安装turtlebot3仿真的其他功能包:

sudo apt install ros-noetic-gazebo-ros-pkgs
sudo apt install ros-noetic-gazebo-ros-control
sudo apt-get install ros-noetic-rviz
sudo apt-get install ros-noetic-map-server
sudo apt install ros-noetic-gmapping
sudo apt install ros-noetic-navigation
sudo apt install ros-noetic-move-base

远行turtlebot3_world.launch可以打开仿真环境
在这里插入图片描述

首先添加模型声明,设置机器人模型的种类

echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc   //添加模型申明,设定打开后模型的样子
echo "source ~/工作空间名/devel/setup.bash" >> ~/.bashrc   //对环境变量进行设置
启动仿真环境的launch文件:roslaunch turtlebot3_gazebo turtlebot3_world.launch

在这里插入图片描述

roslaunch + 功能包名 + launch文件名

启动turtlebot3_world报错:
在这里插入图片描述
排查了一推问题后(路径、环境变量等)最后换了个turtlebot3_simulations-master的包就好

在这里插入图片描述

另起终端启动键盘控制的lauuch文件turtlebot3_teleop_key.launch
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
在这里插入图片描述
在这里插入图片描述
此时使用wasd键可以控制机器人运动,空格停止

然后另起终端启动slam建图功能turtlebot3_slam.launch

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

在这里插入图片描述
用键盘控制机器人运动采集完整的环境信息
在这里插入图片描述
建好的地图保存

rosrun map_server map_saver -f ~/map //保存地图

在这里插入图片描述
保存地图之后在主目录生成了两个地图文件,pgm和yaml后缀的
在这里插入图片描述
读取地图,并在地图中导航

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml //读取地图

在这里插入图片描述
2D位置修正(2D Pose Estimate),将rviz中机器人的位置放到与gazebo机器人位置一致
在这里插入图片描述
2D目标点选取(2D Nav Goal),随便点一个地图上的点,机器人就可以自动导航了
在这里插入图片描述

更多推荐