1

URDF ファイルで衝突の動的プロパティを設定する際に問題が発生しています。

標準の ode タグが使用されており、新しい特定の drake drake github pull requeset xml タグもあることがわかりました。

urdf で衝突を定義する方法を次に示します。オブジェクトは単純なボックスです。

<collision>
  <origin xyz="0 0 0" rpy="0 0 0"/>
  <geometry>
     <box size="0.85 0.85 2." />
  </geometry>
  <drake:drake>
     <drake:hydroelastic_resolution_hint value="1.3" />
     <drake:elastic_modulus value="1e8" />
     <drake:dissipation value="0.25" />
     <drake:mu_dynamic value="0.7" />
     <drake:mu_static value="0.7" />
  </drake:drake>
  <surface>
    <friction>
     <ode>
       <mu>0.6</mu>
       <mu2>0.6</mu2>
     </ode>
   </friction>
 </surface>
</collision>

pydrake コードは次のとおりです。


builder = DiagramBuilder()
plant, scene_graph = AddMultibodyPlantSceneGraph(builder, 0.001)
parser = Parser(plant)

peg_model_instance = Parser(plant).AddModelFromFile('square_peg.urdf')

plant.Finalize()

print('Collision Geometry properties for: {}'.format(peg_body.name()))
for collision_geometry in plant.GetCollisionGeometriesForBody(peg_body):
    const_proximity_properties = inspector.GetProximityProperties(collision_geometry)
    coulomb_friction = const_proximity_properties.GetProperty('material', 'coulomb_friction')
    print('Coulomb')
    print('static: {}'.format(coulomb_friction.static_friction()))
    print('dynamic: {}'.format(coulomb_friction.dynamic_friction()))

マテリアル プロパティを取得して出力します。出力は次のとおりです。

Collision Geometry properties for: peg_link
Coulomb
static: 1.0
dynamic: 1.0

解析に問題があるか、何か間違っているようです。

4

3 に答える 3

0

わお!流体弾性接触モデルのパラメーターが見つかりました。これはオンラインになりますが、既定ではまだ有効になっていません。

現在主流のコンタクトモデルMultibodyPlantは「ペナルティ方式ポイントコンタクト」モデル。ここ(および以下のリンク) で完全に文書化されています。パーサーをチェックしていませんが、現在のステータス/推奨事項は、デフォルトが不十分な場合、プログラムでこれらのパラメーターを MBP に設定することだと思います。urdf/sdf では設定できないと思います。

于 2020-04-23T01:28:45.620 に答える