位置と方向の運動学の組み合わせ
軸グループコンフィギュレータを使用すると、位置運動学と方向運動学を組み合わせることができます。その結果、少数の運動学で多数のロボットを構成できます。
位置運動学の例には、ガントリー(Kin_Gantry3
)と三脚(Kin_Tripod_Lin
、 Kin_Tripod_Rotary
)。これらのキネマティクスは、任意のポイントまたは位置に移動できますが、任意の数の方向を実行することはできません。位置キネマティックシステムのフロント座標系は、フランジ座標系と呼ばれます。これは、方向の運動学が固定される場所を定義します(左の図)。
配向運動学の例は次のとおりです。 Kin_CAxis
、 Kin_Wrist2
、 と Kin_Wrist3
。これらの運動学は、TCPの望ましい方向をもたらす可能性がありますが、どの位置にも到達できません(右の図を参照)。
位置キネマティクスと方向キネマティクスの両方を組み合わせることにより、任意の数の位置を目的の方向に、またはその逆に移動することができます。

無効な組み合わせ
位置キネマティクスと方向キネマティクスのすべての組み合わせが可能であるとは限りません。これは、一意の逆変換を決定できない場合があるためです。一例は、位置運動学としての2つの関節関節を備えたスカラです。 Kin_CAxis_Tool
X座標またはY座標で0ではないツールオフセットを使用した方向キネマティクスとして。スカラのフランジ座標系の向きは一定ではありません。 0の位置を基準にしてZ軸を中心に回転します。逆変換の計算では、この回転はまだわかっていないため、この場合、軸角度を明確に決定することはできません。
組み合わせが可能かどうかは、キネマティクスのパラメータ化に依存するため、実行時に確認できます。この場合、エラー SMC_TRAFO_INVALID_COUPLING
発行されます。
「不可能な」方向をプログラミングするときの動作
実際には、キネマティクスで使用できないオリエンテーションをプログラムできると便利なことがよくあります。簡単な例として、1つの自由度(Z軸を中心とした回転)を持つツールを備えたスカラロボットを考えてみます。原則として、このロボットは、ツールが垂直下向きになる方向のみを受け入れることができます。
ワークピース上で位置を移動する必要がある場合、ワークピースはX / Y平面から簡単に傾斜します。ユーザーはワークピースを教えてから、ワークピースに対する相対的な位置と方向をプログラムします。ワークを傾けると、工具の方向が垂直からわずかに傾く方向になります。

このような不可能で到達不可能な方向をどう扱うか? 極端な方法としては、ワークスペース違反を報告することです。 しかし、例が示すように、これではプログラミングが面倒になります。 そのため、方向運動学(Kin_CAxis_Tool
この例では、コマンドされた方向はツールが直立するように傾けられ、この方向が受け入れられます。
動作は、次のルールに減らすことができます(位置キネマティクスが3つの空間方向すべてに配置できる場合)。
位置は常に正確に近づきます(そうでない場合はエラーが報告されます)。
方向に到達できない場合、方向は最も近いアクセス可能な方向に「投影」されます。
方向を投影するときは、ツールの方向が優先されます。
ここで説明する問題は、方向運動学がすべての望ましい方向を達成するための3つの自由度を持っていないために発生します。これは Kin_Wrist2
と Kin_CAxis
、しかしではない Kin_Wrist3
。
位置運動学にもすべての空間自由度がない場合は、さらに問題が発生します。 (これは実際には頻繁には発生しません。)1つの例は、 Kin_Gantry2
、X / Yのみに配置できるガントリー Kin_Wrist2
、自由度が2つしかないツール。この場合、Z座標は工具の長さと方向軸の位置によってすでに定義されているため、不可能な方向と不可能な位置があります。したがって、これらの種類の組み合わせを使用するのではなく、達成可能な位置のみをプログラムすることをお勧めします。
カスタマイズされたキネマティクスに関する注意
独自の位置または方向の運動学を作成したいユーザーは、運動学関数ブロックに次の追加インターフェースを実装する必要があります。
位置キネマティクスの場合:インターフェース
ISMPositionKinematics2
メソッドでAxesToOrientation
とGetOrientationImage
。AxesToOrientation
は、軸の値からフランジ座標系の方向を計算する「省略された」前方変換です。効率の理由でのみ必要です。たとえば、ガントリーで計算する必要はありませんが、一定の方向を返すことができます。GetOrientationImage
フランジ座標系の方向がどのように変化するかを返します。この方法は、方向の運動学が位置の運動学と互換性があるかどうかを確認するためにのみ必要です。オリエンテーションキネマティクスの場合:インターフェース
ISMToolKinematics2
メソッドでGetPositionFromOrientation2
とIsCompatibleWithPosKin
。GetPositionFromOrientation2
フランジ座標系とTCPの間のベクトルを目的の方向(MCS)から計算します。この計算は、結合された運動学の逆変換に必要です。メソッドIsCompatibleWithPosKin
方向キネマティクスが位置キネマティクスと互換性があるかどうかをチェックします。