Turtlebot3机器人的Gazebo仿真:建图及导航

  1. 参照20191014继续TurtleBot3机器人的Rviz仿真安装TurtleBot3及依赖包
  2. 打开Gazebo仿真界面
roslaunch turtlebot3_gazebo turtlebot3_world.launch

Turtlebot3机器人的Gazebo仿真:建图及导航_第1张图片
3. 建图
gmapping建图

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

Turtlebot3机器人的Gazebo仿真:建图及导航_第2张图片
打开键盘控制,控制turtlebot3四处移动,直到建图满意

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

最后可以得到这样一幅地图
Turtlebot3机器人的Gazebo仿真:建图及导航_第3张图片
保存地图:

rosrun map_server map_saver -f ~/map

地图保存为$home/map.yaml

至此可以关闭Rviz建图窗口了,保留Gazebo仿真窗口
4. 导航
打开刚才保存的地图进行导航

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

Turtlebot3机器人的Gazebo仿真:建图及导航_第4张图片
此时需要设置初始位置,点击2D Pose Estimate按钮,并拖动地图上的方向来设置地图上的大致位置,鼠标所点位置为机器人拟去的位置,绿色箭头为机器人到达后的方向。如此
Turtlebot3机器人的Gazebo仿真:建图及导航_第5张图片
点击2D Nav Goal按钮,并拖动设置方向,就可以导航了

注意:

其实在执行导航命令,打开rviz窗口的时候,出了一个错误
Turtlebot3机器人的Gazebo仿真:建图及导航_第6张图片
错误应该是表明dwa-local-planner未启动,可能是未安装相关的包,但在网上google了半天,也没有相关的提示,最后都打算放弃了,在Turtlebot3入门教程-PC软件设置看到有安装turtlebot3依赖包:

sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers

其中就包括有ros-kinetic-navigation,而且我搜了下我确实没有安装这个包

dpkg -l ros-kinetic-navigation

就打算试一试,所以输入

sudo apt-get install ros-kinetic-navigation

在安装的过程中就看到
Turtlebot3机器人的Gazebo仿真:建图及导航_第7张图片
里面包含有ros-kinetic-dwa-local-planner
果不其然,安装完成后再次运行

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

再也不报那个错了,新的窗口是这样的
Turtlebot3机器人的Gazebo仿真:建图及导航_第8张图片
Turtlebot3机器人的Gazebo仿真:建图及导航_第9张图片
Turtlebot3机器人的Gazebo仿真:建图及导航_第10张图片

你可能感兴趣的:(ROS)