参考文章:
http://blog.csdn.net/qq_36355662/article/details/61413860
http://blog.csdn.net/qq_36355662/article/details/61616513
http://www.ncnynl.com/archives/201610/914.html
http://www.yaoguangkeji.com/a_d3O8YpEk.html
http://blog.csdn.net/changer_sun/article/details/79264388#t2
http://blog.csdn.net/zyh821351004/article/details/48846179
1、准备源码、模型
首先建立工作空间并下载源码
mkdir -p ~/gmapping_ws/src
cd ~/gmapping/src
git clone https://github.com/robopeak/rplidar_ros.git
git clone https://github.com/turtlebot/turtlebot_simulator.git
git clone https://github.com/turtlebot/turtlebot_apps.git
git clone https://github.com/turtlebot/turtlebot.git
turtlebot_interactions
下载模型并放在~/.gazebo/models 路径下
cd ~/.gazebo/models
wget -q -R *index.html*,*.tar.gz --no-parent -r -x -nH http://models.gazebosim.org/hokuyo/
也可下载全部模型,放到隐藏目录.gazebo下(ctrl+H显示隐藏目录)
地址:
2、修改turtlebot_world.launch
修改 STACKS 申明 :
<arg name="stacks" value="$(optenv TURTLEBOT_STACKS hexagons)"/>
修改TURTLEBOT_3D_SENSOR:
<arg name="3d_sensor" value="$(optenv TURTLEBOT_3D_SENSOR hokuyo)"/>
修改后如下:
<launch>
<arg name="gui" default="true"/>
<arg name="world_file" default="$(env TURTLEBOT_GAZEBO_WORLD_FILE)"/>
<arg name="base" value="$(optenv TURTLEBOT_BASE kobuki)"/> <!-- create, roomba -->
<arg name="battery" value="$(optenv TURTLEBOT_BATTERY /proc/acpi/battery/BAT0)"/> <!-- /proc/acpi/battery/BAT0 -->
<arg name="stacks" value="$(optenv TURTLEBOT_STACKS hexagons)"/> <!-- circles, hexagons -->
<!--arg name="stacks" value="$(optenv TURTLEBOT_STACKS nostack)"/-->
<!--arg name="3d_sensor" value="$(optenv TURTLEBOT_3D_SENSOR kinect)"/--> <!-- kinect, asus_xtion_pro -->
<!--arg name="3d_sensor" value="$(optenv TURTLEBOT_3D_SENSOR rplidar)"/--> <!-- 修改 -->
<arg name="3d_sensor" value="$(optenv TURTLEBOT_3D_SENSOR hokuyo)"/>
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="use_sim_time" value="true"/>
<arg name="debug" value="false"/>
<arg name="gui" value="$(arg gui)" />
<arg name="world_name" value="$(arg world_file)"/>
</include>
<include file="$(find turtlebot_gazebo)/launch/includes/$(arg base).launch.xml">
<arg name="base" value="$(arg base)"/>
<arg name="stacks" value="$(arg stacks)"/>
<!--arg name="stacks" default="nostack"/-->
<arg name="3d_sensor" value="$(arg 3d_sensor)"/>
<!--arg name="3d_sensor" default="rplidar"/-->
</include>