Gazebo仿真环境的搭建

载入已经创建好的仿真环境

不论是使用前面两种方法创建的.world 文件,还是从网络上下载的第三方仿真环境文件,要载入这些仿真环境首先需要在功能包下创建 worlds 文件夹,然后把仿真环境文件保存在该文件下,如果仿真环境还需要载入一些预定义的模型,那么同样在功能包下创建 models 文件夹,把与该仿真环境相关的预定义模型文件复制到 models 文件夹中。最后修改 Launch 文件,在载入 empty_world.launch文件的 标签下添加参数 world_name,同时为该参数设置仿真环境文件.world 的地址。下面以 TurtleBot3 提供的第三方仿真环境为例,使用运行 Gazebo 的 Launch 文件7.20为基础进行修改,如代码7.35所示,执行该 Launch 文件,就可以得到如图7-45所示的效果。
Code 7.19: Gazebo 插件配置

<!-- package.xml文 件 配 置 -->
 ...
 <build_depend >gazebo_plugins </build_depend >
 <build_depend >gazebo_ros </build_depend >
 <build_depend >gazebo_ros_control </build_depend >
 ...
 <build_export_depend >gazebo_plugins </build_export_depend >
 <build_export_depend >gazebo_ros </build_export_depend >
 <build_export_depend >gazebo_ros_control </build_export_depend >

 <exec_depend >gazebo_plugins </ exec_depend >
 <exec_depend >gazebo_ros </ exec_depend >
 <exec_depend >gazebo_ros_control </ exec_depend >

 <!-- CMakeLists.txt文 件 配 置 -->
 find_package (catkin REQUIRED COMPONENTS
 ...
 gazebo_plugins
 gazebo_ros
 gazebo_ros_control
 )

 catkin_package (
 ...
 CATKIN_DEPENDS ... gazebo_plugins gazebo_ros gazebo_ros_control
 ...
 )

Code 7.20: Gazebo 环境的 Launch 文件(simple_model_gazebo.launch)

<launch >
 <arg name="paused" default="false"/>
 <arg name="use_sim_time" default="true"/>
 <arg name="gui" default="true"/>
 <arg name="headless" default="false"/>
 <arg name="debug" default="false"/>
 <!-- 指 定 模 型 的URDF文 件 地 址 -->
 <arg name="model"
 default="$(find begin1)/urdf/simple_sai_robot.urdf"/>
 <!-- RVIZ配 置 文 件 的 存 放 地 址 -->
 <arg name="rvizconfig"
 default="$(find begin1)/rviz/simple_model.rviz" />

 <!-- 模 型 描 述 的 参 数 -->
 <param name="robot_description"
 command="$(find xacro)/xacro $(arg model)" />

 <!-- 载 入 空 的 物 理 世 界 -->
 <include file="$(find gazebo_ros)/launch/empty_world.launch">
 <arg name="debug" value="$(arg debug)" />
 <arg name="gui" value="$(arg gui)" />
 <arg name="paused" value="$(arg paused)"/>
 <arg name="use_sim_time" value="$(arg use_sim_time)"/>
 <arg name="headless" value="$(arg headless)"/>
 </include >

<node if="$(arg gui)" name="joint_state_publisher_gui"
pkg="joint_state_publisher_gui"
 type="joint_state_publisher_gui" />
 <node unless="$(arg gui)" name="joint_state_publisher"
 pkg="joint_state_publisher"
 type="joint_state_publisher" />
 <node name="robot_state_publisher" pkg="robot_state_publisher"
 type="robot_state_publisher" />

 <!-- 创 建 一 个 模 型 对 象 -->
 <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model"
 args="-x 0.0 -y 0.0 -z 0.0 -unpause -urdf
 -model sai_robot -param robot_description"
 respawn="false" output="screen" />

 <node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)"
 required="true" />
 </launch >
 

Code 7.35: 第三方仿真环境的使用(simple_model_gazebo_world.launch)

<launch>
 <arg name="paused" default="false"/>
 <arg name="use_sim_time" default="true"/>
 <arg name="gui" default="true"/>
 <arg name="headless" default="false"/>
 <arg name="debug" default="false"/>
 <!-- 指 定 模 型 的URDF文 件 地 址 -->
 <arg name="model"
 default="$(find begin1)/urdf/simple_sai_robot.urdf"/>
 <!-- RVIZ配 置 文 件 的 存 放 地 址 -->
 <arg name="rvizconfig"
 default="$(find begin1)/rviz/simple_model.rviz" />

 <!-- 模 型 描 述 的 参 数 -->
 <param name="robot_description"
 command="$(find xacro)/xacro $(arg model)" />

 <!-- 载 入 空 的 物 理 世 界 -->
 <include file="$(find gazebo_ros)/launch/empty_world.launch">
 <arg name="debug" value="$(arg debug)" />
 <arg name="gui" value="$(arg gui)" />
 <arg name="paused" value="$(arg paused)"/>
 <arg name="use_sim_time" value="$(arg use_sim_time)"/>
 <arg name="headless" value="$(arg headless)"/>
 </include>

<node if="$(arg gui)" name="joint_state_publisher_gui"
pkg="joint_state_publisher_gui"
 type="joint_state_publisher_gui" />
 <node unless="$(arg gui)" name="joint_state_publisher"
 pkg="joint_state_publisher"
 type="joint_state_publisher" />
 <node name="robot_state_publisher" pkg="robot_state_publisher"
 type="robot_state_publisher" />

 <!-- 创 建 一 个 模 型 对 象 -->
 <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model"
 args="-x 0.0 -y 0.0 -z 0.0 -unpause -urdf
 -model sai_robot -param robot_description"
 respawn="false" output="screen" />

 <node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)"
 required="true" />

 <include file="$(find gazebo_ros)/launch/empty_world.launch">

 <arg name="world_name"
 value="$(find begin1)/worlds/turtlebot3_world.world"/>

</include>

 </launch >
 

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是梦磊OL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值