首页 > 代码库 > 未完成_gazebo(三) URDF对象

未完成_gazebo(三) URDF对象

一. 在模拟器中添加一个自定义的urdf

 

1.开启一个新的空world

roslaunch gazebo_ros empty_world.launch

2.创建一个简单的box urdf

为目标创建一个urdf并保存为objects.urdf

<robot name="simple_box">
  <link name="my_box">
    <inertial>//惯性
      <origin xyz="2 0 0" />//原点
      <mass value=http://www.mamicode.com/"1.0" />//质量
      <inertia  ixx="1.0" ixy="0.0"  ixz="0.0"  iyy="100.0"  iyz="0.0"  izz="1.0" />
    </inertial>
    <visual>//视觉
      <origin xyz="2 0 1"/>//原点
      <geometry>//几何
        <box size="1 1 2" />
      </geometry>
    </visual>
    <collision>//碰撞
      <origin xyz="2 0 1"/>//原点
      <geometry>//几何
        <box size="1 1 2" />
      </geometry>
    </collision>
  </link>
  <gazebo reference="my_box">
    <material>Gazebo/Blue</material>
  </gazebo>
</robot>

一级标签robot包含link和gazebo两个二级标签;

  link又包括inertial,visual,collision三个三级标签,

    inertial标签下有origin(原点),mass(质量)和inertia(惯性参数);

     visual和collision标签下有origin和geometry两个小标签;

  gazebo下只有一个material的小标签。

这段代码就是定义了各个标签的内容参数。

 

3.模拟器中生成模型

要在高度z = 1米处上方生成URDF对象,并将模拟中的模型名称分配为my_object。

rosrun gazebo spawn_model -file `pwd`/object.urdf -urdf -z 1 -model my_object

应该的运行结果:(可是我运行出错了)

技术分享

出错:[rospack] Error: package ‘gazebo‘ not found(还未解决)

 

二. 在模拟器中添加其他的示例目标

一 些示例在https://bitbucket.org/osrf/simulator_gazebo/src /595f9360af4fa9e9fb4262623314ce947495c4db/gazebo_worlds/objects/?at=default 中被提供,例如你可以生成一个桌子通过以下语句:

roslaunch gazebo_worlds table.launch

技术分享

简单看一下table.launch

<launch>
  <!-- send table urdf to param server -->
  <param name="table_description" command="$(find xacro)/xacro.py $(find gazebo_worlds)/objects/table.urdf.xacro" />

  <!-- push table_description to factory and spawn robot in gazebo -->
  <node name="spawn_table" pkg="gazebo" type="spawn_model" args="-urdf -param table_description -z 0.01 -model table_model" respawn="false" output="screen" />
</launch>

类似的,添加一个coffee杯子到桌面上

roslaunch gazebo_worlds coffee_cup.launch

技术分享

 

 

 

 

 

未完成_gazebo(三) URDF对象