如何防止重力加速地平面?

时间:2019-03-14 07:19:08

标签: drake

我目前有一个sdf格式的地平面,带有以下标签

  • <static>true</static>
  • <gravity>false</gravity>

在我的源文件中,指定

plant.AddForceElement<UniformGravityFieldElement>();

问题:

  1. <static><gravity>标签受到尊重吗?还是这个GravityFieldElement影响一切?
  2. 如果不遵守标签,如何防止GravityFieldElement加速接地平面?

1 个答案:

答案 0 :(得分:0)

添加地平面的一种方法是

Vector3<double> normal_W(0, 0, 1);
Vector3<double> point_W(0, 0, 0);

const CoulombFriction<double> surface_friction(
  0.8 /* static friction */, 0.3 /* dynamic friction */);

// A half-space for the ground geometry.
plant.RegisterCollisionGeometry(
    plant.world_body(), HalfSpace::MakePose(normal_W, point_W),
    HalfSpace(), "collision", surface_friction);

// Add visual for the ground.
plant.RegisterVisualGeometry(
    plant.world_body(), HalfSpace::MakePose(normal_W, point_W),
    HalfSpace(), "visual");

plant.Finalize()之后

plant.set_penetration_allowance(0.001);

尽管我非常想知道是否可以通过sdf