一、launch.py
return LaunchDescription([
IncludeLaunchDescription(
PythonLaunchDescriptionSource(##launch文件 以及传入launch文件的参数
os.path.join(pkg_gazebo_ros, 'launch', 'gzserver.launch.py')
),
launch_arguments={'world': world}.items(),
),
)]
这段代码主要针对加载场景,其中world变量为字符串类型表示路径
当我想更换场景时,在其中加入该段代码即可
二、.model文件
这段有5个重要的部分,分别是1.world区间 2.地板和光照 3.观测角度和物理引擎,(empty.world里仅有地板和光照,没有物理引擎参数) 4.场景model文件 6.机器人model文件
<?xml version="1.0"?>
<sdf version="1.6">
<world name="default"><!-- 重点1.world 要记得加world这个区间 -->
<include> <!-- 重点2.ground_plane和sun 塑造地面和使用光照 -->
<uri>model://ground_plane</uri>
</include>
<include>
<uri>model://sun</uri>
</include>
<scene>
<shadows>false</shadows>
</scene>
<gui fullscreen='0'><!-- 重点3.视角camera和gazebo物理引擎参数ode -->
<camera name='user_camera'>
<pose frame=''>0.319654 -0.235002 9.29441 0 1.5138 0.009599</pose>
<view_controller>orbit</view_controller>
<projection_type>perspective</projection_type>
</camera>
</gui>
<physics type="ode">
<real_time_update_rate>1000.0</real_time_update_rate>
<max_step_size>0.001</max_step_size>
<real_time_factor>1</real_time_factor>
<ode>
<solver>
<type>quick</type>
<iters>150</iters>
<precon_iters>0</precon_iters>
<sor>1.400000</sor>
<use_dynamic_moi_rescaling>1</use_dynamic_moi_rescaling>
</solver>
<constraints>
<cfm>0.00001</cfm>
<erp>0.2</erp>
<contact_max_correcting_vel>2000.000000</contact_max_correcting_vel>
<contact_surface_layer>0.01000</contact_surface_layer>
</constraints>
</ode>
</physics>
<!-- gazebo中用model editor模式,把世界保存成一个文件夹的形式,只要有model.config和model.sdf两个文件即可,把这个文件夹放在主目录./gazebo/models即可 -->
<model name="turtlebot3_world"><!-- 重点4.模型文件,这里是一个文件夹,制作方法是gazebo中启动model editor -->
<static>1</static>
<include>
<uri>model://turtlebot3_world</uri>
</include>
</model>
<include> <!-- 重点5.机器人模型文件 -->
<pose>-2.0 -0.5 0.01 0.0 0.0 0.0</pose>
<uri>model://turtlebot3_burger</uri>
</include>
</world>
</sdf>