Main Content

接触プロキシを使用した接触のシミュレート

接触プロキシは、実際のボディの接触部分を表すために使用される単純な形状です。たとえば、ヒューマノイド ウォーカーの学習の例では、赤い球体を使用してロボットの足の裏が表現されています。

Robot Feet

接触プロキシを使用することにより、接触シミュレーションの速度とロバスト性を高めることができます。たとえば、接触プロキシを使用すると、複雑なジオメトリの関わるモデルが高速化され、静的接触シミュレーションにおいて接触力がかかる位置の不連続なジャンプを回避することができます。

接触プロキシの使用方法

接触プロキシは多くのケースで使用できます。ただし、接触プロキシを追加するとモデル化に必要な労力が増え、いくつかのケースではプロキシの活用が困難です。接触の相互作用に実際のボディのすべての機能が関与する場合は、ボディのすべての要素をプロキシでは完全に表現できないことがあります。モデルが単純で 1 回の実行だけが必要な場合は、実際のボディを使用して接触をモデル化できます。

プロキシの選択方法

接触問題で適切なプロキシを選択するには、実際のボディのどの部分が相互作用するかを示し、それらの部分に対し最も単純なプロキシを選択する必要があります。プロキシが、すべての接触領域を十分にカバーしなければならないことに注意してください。

Simscape™ Multibody™ は、接触のモデル化に関してさまざまなジオメトリとボディをサポートしています。複雑度に基づいて、これらのジオメトリとボディは次の 3 つのグループに分類できます。

  • PointInfinite Plane、および Spherical Solid の各ブロックによって定義されるジオメトリ。これらのジオメトリは、形状が単純でモデル化の効率が高いため、プロキシの役割を果たす上で最適な候補です。

  • Brick SolidCylindrical Solid、および Ellipsoidal Solid の各ブロックによって定義されるボディ。これらは、最初のグループのジオメトリよりも計算コストが高くなります。最初のグループのジオメトリを使用できない場合は、このグループのボディをプロキシとして使用してみてください。

  • 押し出し、回転、CAD インポートによって作成されたジオメトリ。通常、これらのジオメトリは形状が複雑で、計算コストが高く、表現が簡略化されているため、プロキシとしての使用には適していません。Simscape Multibody では、接触をモデル化する際に、これらのジオメトリの一部を実際のボディではなく凸包で表現することに注意してください。

複雑なモデルでの接触プロキシ使用のヒント

Simscape Multibody では、Spatial Contact Force ブロックを使用してボディ間の接触をモデル化します。接触する可能性のある部分のペアごとに、1 つの Spatial Contact Force ブロックが必要です。その結果、多数のプロキシを含む複雑なモデルでは、Spatial Contact Force ブロックとジオメトリ ラインが過剰になる場合があります。以下の手法を使用して、ブロック線図を整理された状態に保ってください。これらの手法の使用方法については、最初の例を参照してください。

  • 実際の各ボディとそのプロキシを、1 つのサブシステムに配置する。このサブシステムには、実際のボディに対してプロキシを適切に配置するために必要な、関連する Rigid Transform ブロックもすべて含める必要があります。

  • サブシステムをコピーして貼り付けるか、参照サブシステムを使用して同一のサブシステムを作成する。

  • Simscape Bus ブロックを使用して、複雑なモデルのジオメトリ ラインをまとめる。

通常、実際のボディとそのプロキシは、3 次元空間で一定の共通領域を占めます。シミュレーションの最終バージョンでは、実際のボディのみを描画し、プロキシは非表示にする必要があります。ただし、モデル化やデバッグのステップでは、すべての接触が想定どおりにモデル化されているかどうかを確認するために、プロキシを表示すると役立ちます。実際のボディとプロキシの透明度を調整するために、2 つの変数を定義することを検討してください。シミュレーションには実際のボディの質量を使用し、接触プロキシの質量や密度はゼロに設定して、ダイナミクスへの影響をすべて回避します。

複雑な形状を含む接触モデルでのプロキシの使用

複雑な形状をもつボディ間の接触のモデル化は、計算コストが高く、時間がかかります。モデルを高速化するために、複雑な形状を単純な部分に分解し、プロキシを使用して接触に関わる部分を表現して、これらのプロキシ間の接触をモデル化することができます。

ラチェット リフターの例では、トラベラーのハンドルを上下に動かすことにより、歯が付いたラックをトラベラーが登ります。ラックの歯の水平表面と傾斜表面、およびクライマーの円柱のみが接触に関わります。また、トラベラーは平面運動のみをします。つまり、クライマーの円柱の中央部のみが接触の相互作用に関わっています。したがって、この例では、プロキシを使用してこれらの部分のみを表現し、プロキシ間の接触をモデル化します。

ratchet lifter

この例では、円柱を使用してラックの歯の水平表面と傾斜表面を表し、球体を使用してクライマーの円柱の中央部分を表します。クライマーの円柱全体ではなく球体を使用する利点は、球体は円柱より単純で接触のモデル化がより効率的になることです。

Transparent Ratchet Lifter

歯の付いたラックは左右対称で、両側に 15 個ずつの歯が付いています。したがって、この例では 60 個の円柱を使用して歯を表現します。モデルには Toothed Rack というサブシステムが含まれており、それにはラックの実際のボディ、歯のすべてのプロキシ、および関連する Rigid Transform ブロックが含まれます。以下の図は、Toothed Rack サブシステムを示しています。

Rachet Lifter Subsystem

歯の付いたラックは左右対称であるため、ラックの片側のプロキシのみが手動で作成され、Left Slant Cylinders サブシステムと Left Horiz Cylinders サブシステムにグループ分けされました。次に、これらのサブシステムをコピーし、貼り付け、y 軸を中心に 180 度回転して右側の歯を表現しました。

以下の図は、Left Horiz Cylinders サブシステムを示しています。このモデルでは、15 個の同一の円柱を使用して左側の歯の水平表面を表しています。手動で作成するブロックの数を最小限にするために、パラメーター化された参照サブシステムを 1 つ作成して円柱の 1 つをモデル化しました。次に、パラメーター化された参照サブシステムを 14 回コピーしました。パラメーター化された参照サブシステムは、円柱のインデックスを使用して円柱の位置を指定します。最後に、Simscape Bus ブロックを使用して円柱のジオメトリ ラインをまとめます。同じ手法を使用して、歯の傾斜表面のサブシステムをモデル化します。

Contact Subsystem

Simscape Bus ブロックを使うと、モデル全体に網目状の複雑なラインが引かれることを避けられます。以下の図は、2 本の Simscape バス ラインにより、ラックの歯の 60 個のプロキシが、Contacts Left サブシステムおよび Contacts Right サブシステム経由でクライマーのプロキシと接続されていることを示しています。

Second Level Model

Contacts Left サブシステムと Contacts Right サブシステムには、このシミュレーションのすべての Spatial Contact Force ブロックが含まれています。以下の図は、左側の歯の水平表面と左側のクライマーの円柱間における接触のブロック線図を示しています。

Horizontal Contact Subsystem

プロキシを使用した静的接触のモデル化

Simscape Multibody では、ボディ間の接触をモデル化するために点ベースのペナルティ法を使用します。この方法の意味するところは、Spatial Contact Force ブロックが、接続されているボディに対し、2 つのボディ間の侵入が最大になる点において必要な接触力を適用するということです。各 Spatial Contact Force ブロックはタイム ステップごとに、各ボディに対し単一の接触力のみを適用します。

この点ベースの方法は、ボディの平面間の静的接触をモデル化する場合に困難があります。たとえば、2 つの直方体間の接触をモデル化する場合を考えます。単純にするために、以下の図は問題の 2 次元バージョンを示しています。直方体 A を、位置が固定されている直方体 B の上に落とすものとします。左側の図は、接触が最初に検出されるときの直方体の構成を示しています。この時点で、Spatial Contact Force ブロックは直方体 A の左下角に接触力を適用します。ここでの侵入が最大だからです。時間が経過すると、この力によって直方体 A の下向きの運動が減速し、直方体 A は時計回り方向に回転します。その後、構成は右側の図のようになり、直方体 A の右下角に力が適用されます。直方体 A が直方体 B との静的接触状態へと落ち着く過程で、接触力の位置は、直方体 A の角と角の間で急速かつ不連続に変化します。この動作はソルバーにとっての課題であり、シミュレーション速度を著しく低下させる可能性があります。

Brick Contact

接触プロキシの使用は、上記のモデル化の課題を回避するための効果的な方法の 1 つです。直方体 A の角に 8 個の小さい球体を剛性的に付加することができます。これらのプロキシにより、接触は、直方体と直方体の単一のペアではなく、直方体と球体の 8 つのペアとしてモデル化されます。接触が安定化すると、下側のそれぞれの角における垂直抗力は、直方体 A の重量の 4 分の 1 となります。

Brick Sphere Contact

参考

| | | | | | | | |

関連するトピック