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
解析に問題があるか、何か間違っているようです。