如何在Gazebo环境中显示自己编写的urdf文件

1.获取要显示物体的三维数据

通过Blender或SolidWorks等三维建模软件进行编辑,得到物体的.dae或.stl格式的文件。

2.编写urdf文件

<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="soup_can">
	<property name="M_PI" value="3.141592654" />
    	<xacro:macro name="soup_can">
		<link name="soup_can_link">
            <collision>
			  <origin xyz="0 0 0" rpy="0 0 0"/>
		      <geometry>
			    <mesh filename="package://gazebo_ur5_kinect_sim/urdf/meshes/soup_can.dae" />
			  </geometry>
			</collision>

			<visual>
				<origin xyz="0 0 0" rpy="0 0 0"/>
				<geometry>
				  <mesh filename="package://gazebo_ur5_kinect_sim/urdf/meshes/soup_can.dae" />
				</geometry>
				<material name="">
					<color rgba="0.0 0.0 0.5 1" />
				</material>
			</visual>

			<inertial>
				<mass value="0.0855" />
				<origin xyz="0 0 0" rpy="0 0 0"/>
				<inertia ixx="0.00007900658" ixy="0" ixz="0" iyy="0.00007900658" iyz="0" izz="0.0000491287275" />
			</inertial>
			
		</link>

		<gazebo reference="soup_can_link">
			<!-- <material>Gazebo/Blue</material> -->
		</gazebo>

	</xacro:macro>

</robot>

文件名称为soup_can.urdf.xacro。

上述代码的意思是将该物体作为一个link进行编写,<geometry>中描述了物体的大小及形状,<visual>中描述了该物体的色彩等信息,<inertial>用来描述物体的惯性矩阵。

3.编写Gazebo环境下物体的urdf文件

<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro" name="xxt_soup_can">

  <xacro:include filename="$(find gazebo_ur5_kinect_sim)/urdf/soup_can/soup_can.urdf.xacro" />
  <xacro:soup_can />

</robot>

文件名称为 soup_can_gazebo.xacro。

4.创建一个Gazebo中需要的的world

<?xml version="1.0" ?>

<sdf version="1.6">
  <world name="default">

    <include>
      <uri>model://sun</uri>
    </include>
    <include>
      <uri>model://ground_plane</uri>
    </include>

  </world>
</sdf>

文件名称为test.world。 

5.编写launch文件,在Gazebo中显示出来

<?xml version="1.0"?>
<launch>
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <!-- <arg name="world_name" value="$(find experiment)/world/gravity_free.world"/> -->
    <!-- <arg name="world_name" default="worlds/empty.world"/> -->
    <arg name="world_name" default="$(find gazebo_ur5_kinect_sim)/world/test.world" />

  </include>

 
  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find gazebo_ur5_kinect_sim)/urdf/soup_can/soup_can_gazebo.xacro'" />

  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />

  <node name="spawn_gazebo_model" pkg="gazebo_ros" type="spawn_model" args="-y 0.0 -z 0.5 -urdf -param robot_description -model robot " respawn="false" output="screen" />

  <!-- <node name="spawn_sdf" pkg="gazebo_ros" type="spawn_model" args="-file $(find robot_sim)/camera_calibration/urdf/small_checkerboard.sdf -sdf -model small_checkerboard -x -0.03 -y -0.03 -z 0.2" /> -->

</launch>

文件名称为soup_can_world.launch。

其中spawn_gazebo_model用于加载物体,并调整物体的初始位置,与是否加载模型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值