ショベルに加わる力の取得

ショベルに加わる掘削抵抗力を取得する

def getExcavationForce(terrain, shovel) -> agx.Vec3:
    force = agx.Vec3()
    torque = agx.Vec3()
    terrain.getPenetrationForce(shovel, force, torque)
    force += terrain.getSeparationContactForce(shovel)
    force += terrain.getDeformationContactForce(shovel)
    return force

ショベルに加わる貫入抵抗力/トルクを取得する terrain.getPenetrationForce()

penetrationForce = agx.Vec3()
penetrationTorque = agx.Vec3()
terrain.getPenetrationForce(shovel, penetrationForce, penetrationTorque)

ショベルの前方方向に加わる掘削抵抗力を取得する terrain.getSeparationContactForce()

separationContactForce: agx.Vec3 = terrain.getSeparationContactForce(shovel)
  • ショベル-アグリゲート-テレイン間の接触力(N)

  • ワールド座標系

ショベルの前方方向以外に加わる掘削抵抗力を取得する terrain.getDeformationContactForce()

deformationContactForce: agx.Vec3 = terrain.getDeformationContactForce(shovel)
  • ショベル-アグリゲート-テレイン間の接触力(N)

  • ワールド座標系

ショベルとテレイン間の接触力を取得する terrain.getContactForce()

contactForce: agx.Vec3 = terrain.getContactForce(shovel)
  • テレインの上にショベルが載っているなど、掘削をしていないときのショベル-テレイン間の接触力(N)

  • AGXの通常のソルバで算出される接触力

  • ワールド座標系