Ubuntu16.04+Ros Kinetic+TurtleBot3仿真搭建教程
原文地址:Ubuntu16.04+Ros Kinetic+TurtleBot3仿真搭建教程 - 简书
0 简介
Turtlebot是一种室内移动机器人,搭载激光传感器,使机器有精确的距离感知能力。通过搭建仿真环境,可以在没有硬件支持的情况下进行仿真和编程,并熟悉ros系统。环境使Ubuntu16.04,安装的是对应的Ros Kinetic。很多网上的教程Turtlebot针对的都是indigo,如使用Kinetic需要做很多修改,现记录turtlebot3仿真搭建教程,转载时请标注来源。
本教程默认Ubuntu16.04和Ros Kinetic已经安装完成。
1 安装
TurtleBot3 Simulation 依赖 turtlebot3,所以先安装turtlebot3。
1.1 安装turtlebot3
(部分参考通过Gazebo仿真学TurtleBot3(二)——环境搭建)
安装turtlebot3使用下载源码进行catkin_make的方式进行,其中包括两个包:
- turtlebot3_msgs
- turtlebot3
代码如下:
$ cd ~/catkin_ws/src
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ..
$ rosdep install --from-paths src -i -y
$ catkin_make
进入catkin_ws/src文件夹下,git两个包。 然后使用rosdep进行安装依赖。最后进行catkin_make。
!!在catkin_make时可能出现错误:
make错误
参考ROS(hydro)下安装turtlebot出现的错误与解决办法,针对错误情况“pyrcc5: not found”,在终端输入pyrcc5,按照指示进行安装后,重新make,故障消除。!!
Make后,请source一下bash文件source ./devel/setup.bash
至此,安装turtlebot3步骤完成
1.2 安装TurtleBot3 Simulation
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/catkin_ws && catkin_make
make完成后记得source。
2 启动Gazebo仿真
mkdir -p ~/.gazebo/models/
cp -r ~/catkin_ws/src/turtlebot3_simulations/turtlebot3_gazebo/models/turtlebot3_XXX ~/.gazebo/models/
首先要将模型文件拷贝到gazebo中,上述代码的XXX请填入自己要仿真的模型名称:burger||waffle
接着,设置机器人的型号参数:export TURTLEBOT3_MODEL=burger
启动的环境可以有几种不同的选择。
2.1 启动空的世界地图
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
空世界地图
2.2启动复杂地图:
roslaunch turtlebot3_gazebo turtlebot3_world.launch
效果如下:
复杂世界地图
2.3 启动家庭环境地图:
roslaunch turtlebot3_gazebo turtlebot3_house.launch
效果如下:
家庭环境地图
启动地图时可能出现的问题
Error [parser.cc:523] Unable to find uri[model://sun]
缺少太阳光线地图
Error [parser.cc:523] Unable to find uri[model://ground_plane]
缺少大地地图,启动仿真时模型直接往下掉没了
解决办法:
1:启动时保证有线连接正常(gazebo首次使用这两个模型需要在线下载)
2:手动到官网上下载模型 gazebosim.org/models,拷贝到本地, 解压模型到 gazebo/model文件夹中。
注意:启动光线模型后比较吃内存,虚拟机分配的内存可能不够导致gazebo崩溃,调整虚拟机内存即可。
通过键盘控制turtlebot:roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
在打开的Terminal中通过w/a/d/x控制方向,s来停止移动。
如果使用控制程序:
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_simulation.launch
会使turtlebot开始根据激光雷达的信号开始自主规划避障。
同时,也可以开启可视化rivz:
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
效果如下:
激光信号可视化