有时候需要在Gazebo中单独加载一个urdf文件,但Gazebo无法直接打开这种文件类型。因此采用launch文件启动的方法进行加载。
假设urdf文件为robot.urdf,所在的功能包名为robot_description,编写launch文件如下:
<?xml version="1.0"?>
<launch>
<!-- 此处为启动gazebo时需要设置的参数,一般无需修改 -->
<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"/>
<!-- 在Gazebo中创建一个新的world,并使用上述参数进行设置,一般无需修改 -->
<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>
<!-- 导入urdf文件,第一个参数修改为功能包名,第二个参数修改为urdf文件的路径 -->
<param name="robot_description" command="cat '$(find robot_description)/urdf/robot.urdf'" />
<!-- 导入spawn_urdf节点,使Gazebo能够识别urdf文件。需要修改的参数为功能包的路径 -->
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-param /robot_description -urdf -model robot" />
</launch>
有看不明白的欢迎提问。