一、安装
参照20191014继续TurtleBot3机器人的Rviz仿真安装TurtleBot3
及依赖包
二、打开Gazebo仿真界面
roslaunch turtlebot3_gazebo turtlebot3_world.launch
三、建图
gmapping
建图
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
打开键盘控制,控制turtlebot3
四处移动,直到建图满意
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
最后可以得到这样一幅地图
保存地图:
rosrun map_server map_saver -f ~/map
地图保存为$home/map.yaml
至此可以关闭Rviz
建图窗口了,保留Gazebo
仿真窗口
四、导航
打开刚才保存的地图进行导航
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
此时需要设置初始位置,点击2D Pose Estimate
按钮,并拖动地图上的方向来设置地图上的大致位置,鼠标所点位置为机器人拟去的位置,绿色箭头为机器人到达后的方向。如此
点击2D Nav Goal
按钮,并拖动设置方向,就可以导航了
五、遇到的问题
1. 缺少navigation包
其实在执行导航命令,打开rviz窗口的时候,出了一个错误
错误应该是表明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
在安装的过程中就看到
里面包含有ros-kinetic-dwa-local-planner
。
果不其然,安装完成后再次运行
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
再也不报那个错了,新的窗口是这样的
2. 缺少gmapping包
3. 显示机器人相机发布的实时图像
rviz
界面添加Image
或Camera
,并且将其Image Topic
修改为/camera/depth/image_raw
或/camera/rgb/image_raw
即可。