前言
感谢: 通过turtlebot3仿真 学习建图及导航.
没钱买实物,但却想要搞slam。又因为是为了毕业,只能在gazebo跑仿真了。但其实效果还不错。
环境设置
我所使用的是Ubuntu18.04 + Ros melodic版本:
- 依赖项安装
sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
- 搞一个Ros下的工作空间,将turtlebot源码下载到src文件夹下:
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws
catkin_make
- 如果没有报错,说明你很幸运,马上就要成功了。接下来是 环境变量设置:
cd ~/catkin_ws/
source devel/setup.bash
sudo gedit ~/.bashrc
会打开一个文本文件,在最下方输入:
export TURTLEBOT3_MODEL=waffle
这句命令的意思是指明模型的类型,其实有三种类型:
1、waffle 2、burger 3、waffle_pi
建图
1、打开仿真世界
roslaunch turtlebot3_gazebo turtlebot3_world.launch
2、打开gmapping建图
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
3、通过键盘指令,来操控小车,建出更全面的地图
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
4、建图完成之后,通过命令将地图保存
rosrun map_server map_saver -f ~/map
导航
1、打开导航包
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
后面的map_file:=是你的地图路径
2、效果如下:
3、通过2D Pose Eestimate重定位
效果:
4、导航效果