ボディモデルの追加パラメータ

AGXDynamicsプラグインを利用の際には、ボディモデルについて下記のパラメータを追加で利用することができます。

記述方法

links:
  -
    name: Arm
    jointCompliance: 1e-8
    jointSpookDamping: 0.0333
    jointMotor: true
    jointMotorCompliance: 1e-8
    jointMotorSpookDamping: 0.0333
    jointMotorForceRange: [ -1000, 1000 ]
    jointRangeCompliance: 1e-8
    jointRangeSpookDamping: 0.0333
    jointRangeForceRange: [ -1000, 1000 ]
    jointLock: true
    jointLockCompliance: 1e-8
    jointLockSpookDamping: 0.0333
    jointLockForceRange: [ -1000, 1000 ]
    convexDecomposition: true
    AMOR: true
    autoSleep: true

collisionDetection:
  excludeTreeDepth: 3
  excludeLinks: [ ]
  excludeLinksDynamic: [ ]
  excludeLinkGroups:
    -
      name: groupA
      links: [ linkA, linkB, linkC, ... ]
    -
      name: groupB
      links: [ linkZ, linkY, linkX, ... ]
  excludeSelfCollisionLinks: [ linkP ]
  excludeLinksWireCollision: [ linkQ, linkR, ... ]

パラメータの説明

リンク

パラメータ

デフォルト値

単位

意味

jointCompliance

1e-8

m/N or rad/Nm

double

関節のコンプライアンス。小さくすると外れにくく、大きくすると外れやすくなります。

jointSpookDamping

0.0333

s

double

関節のスプークダンパ

jointMotor

false

-

bool

関節のモーターの有効化。ActuationModeがJOINT_TORQUEまたはJOINT_VELOCITYの時には自動的に有効になります。

jointMotorCompliance

1e-8

m/N or rad/Nm

double

関節のモーターのコンプライアンス。速度指定制御に利用します。小さくすると目標速度に到達するように大出力をします。大きくすると外力(重力や接触力)に抵抗できなくなり、目標速度に到達しなくなります。

jointMotorSpookDamping

0.0333

s

double

関節のモーターのスプークダンパ

jointMotorForceRange

[ double_min, double_max ]

N or Nm

Vec2

関節のモーターの最大最小力、トルク制限

jointRangeCompliance

1e-8

m/N or rad/Nm

double

関節角制限のコンプライアンス。小さくすると制限角度に納まるように大出力をします。大きくすると、外力(重力や接触力)によって制限角度外に出る可能性があります。

jointRangeSpookDamping

0.0333

s

double

関節角制限のスプークダンパ

jointRangeForceRange

[ double_min, double_max ]

N or Nm

Vec2

関節角制限の最大最小力、トルク制限

jointLock

false

-

bool

関節ロックの有効化。角度指定制御に利用します。ActuationModeがJOINT_ANGLEの時には自動的に有効になります。

jointLockCompliance

1e-8

m/N or rad/Nm

double

関節ロックのコンプライアンス。小さくすると目標角度に到達するように大出力をします。大きくすると外力(重力や接触力)に抵抗できなくなり、目標角度に到達しなくなります。

jointLockSpookDamping

0.0333

s

double

関節ロックのスプークダンパ

jointLockForceRange

[ double_min, double_max ]

N or Nm

Vec2

関節ロックの最大最小力、トルク制限

convexDecomposition

false

-

bool

凸分割の有効化、無効化。true、falseを指定します。

AMOR

false

-

bool

相対的に静止している剛体同士を一体化させ、ソルバの計算量を減らします。true、falseを指定します。合わせて AGXSimulatorアイテム のプロパティも設定する必要があります。

autoSleep

false

-

bool

オートスリープの有効可、無効化。true、falseを指定します。静止している剛体をソルバから除き、計算量を減らします。AGXSimulatorアイテム のプロパティAutoSleepも合わせてtrueにしておく必要があります。

干渉設定

パラメータ

デフォルト値

単位

意味

excludeLinksDynamic

-

-

string list

指定のリンクの干渉を無効化します。ただしワイヤ等の特殊な物体との干渉は有効となります。

excludeLinkGroups:
-
name
links

-

-



string
string list
グループに登録されているリンク間の干渉を無効化します。

グループ名 (省略可能)
リンク名

excludeSelfCollisionLinks

-

-

string list

指定のリンクとボディ間の自己干渉を無効化します

excludeLinksWireCollision

-

-

string list

指定のリンクとAGXWireとの干渉を無効化します

Choreonoid標準の 干渉検出の設定 で使用する "excludeTreeDepth"、"exludeLinks" についても指定可能です。

Convex Decomposition(凹形状の凸分割)

AGXDynamicsは、三角形メッシュの形状を凸形状に分割する機能を持っています。 リンクパラメータのconvexDecompositionをtrueとすると、三角形メッシュ形状の凸分割を実行します。 凸分割を行うことで干渉チェックの性能が上がる可能性があります。

注釈

複雑な形状の凸分割は失敗する可能性があります。

注釈

三角形メッシュと凸分割形状とでは接触点が変わる可能性があるので、干渉時の振る舞いが異なる可能性があります。

サンプルは以下にあります。

  • プロジェクトファイル: chorenoid/sample/AGXDynamics/agxConvexDecomposition.cnoid

  • ボデイファイル: chorenoid/sample/AGXDynamics/vmark.body

サンプルを実行すると、凸分割が実行され、複数の凸形状で構成された形状となります。

../_images/convexdecomposition.png