ROS学习--第11篇:ROS机器人建模与仿真---向URDF模型添加 物理属性 和 碰撞属性

打开 07-physics.urdf ,以 base_link 为例

<link name="base_link">
    <visual>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
      <material name="blue"/>
    </visual>
    <collision>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="10"/>
      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
    </inertial>
</link>

1.碰撞属性(Collision)

到目前为止,我们只指定了links的连接,用visual定义了机器人的外形。

然而,为了使碰撞检测工作,或者模拟机器人在类似于 Gazebo 的地方工作,我们还需要定义一个碰撞元素。

  • 碰撞元素是 link 的子元素,与 visual 处于同一级别。

  • 碰撞元素定义其形状的方式与 visual 相同,带有几何标记。几何标记的格式与 visual 的格式完全相同。

  • 你也可以用与碰撞标记的子元素相同的方式指定原点(origin)(与可视的一样)

  • 在许多情况下,碰撞元素的形状和原点 可以和 visual完全相同。

  • 然而,有两个主要情况不行:

        快速处理 --- 对两个网格进行碰撞检测,相对于两个简单几何体进行碰撞检测要复杂得多。因此,用碰撞元素中更简单的几何图形替换网格。

        安全区 --- 你可能需要限制向敏感设备接近的移动。例如,如果我们不希望任何东西与机器人的头部发生碰撞,我们可以将碰撞几何体定义为包围其头部的圆柱体,以防止任何东西接近其头部。

2.物理属性(Physical Properties)

为了使你的模型能够正确地模拟,你需要定义你的机器人的几个物理特性,像Gazebo就需要这样的物理特性。

2.1 惯性(Inertia)

每个被模拟的 link 都需要一个惯性标签。

  • 此元素也是link的子元素。

  • 质量(mass) 以 kg 为单位。

  • 3x3转动惯量矩阵由惯量元素指定。因为这是对称的,所以只能用6个元素来表示。

     如:

ixx

ixy

ixz

ixy

iyy

iyz

ixz

iyz

izz

 

2.2 接触系数(Contact Coefficients)

您还可以定义 link 彼此接触时的行为方式。

这是通过名为“接触系数(contact_coefficients)”的碰撞标签的子元素完成的。要指定三个属性:
mu——摩擦系数
kp——刚度系数
kd——阻尼系数

2.3 关节动力学(Joint Dynamics)

关节的移动方式由关节的 dynamics tag 定义。这里有两个属性:

  • 摩擦-物理静态摩擦。对于棱柱形接头,单位为牛顿。对于旋转接头,单位为牛顿米。

  • 阻尼-物理阻尼值。对于棱柱关节,单位为每米牛顿秒。对于旋转接头,每弧度牛顿米秒。

如果未指定,这些系数默认为零。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值