垂直多関節型ロボットのアーム姿勢
垂直多関節型ロボットは、各関節の動作許容エリアの範囲内で、様々なアーム姿勢で動作させることができます。その一例を次の図に示します。
| 右ハンド姿勢 (第1アームに対して) | ||
|---|---|---|
| 手首非反転姿勢 | 手首反転姿勢 | |
| 上肘姿勢 | ||
| 下肘姿勢 | ||
| 左ハンド姿勢 (第1アームに対して) | ||
|---|---|---|
| 上肘姿勢 | ||
| 下肘姿勢 | ||
右ハンド姿勢の拡大例を次に示します。
| 手首非反転姿勢 | 手首反転姿勢 | |
|---|---|---|
| 上肘姿勢 | ||
| 下肘姿勢 |
垂直多関節型ロボットのアーム姿勢を指定する場合は、スラッシュ (/)とその後ろに以下を記述してください。
- L (左ハンド姿勢)、またはR (右ハンド姿勢)
- A (上肘姿勢)、またはB (下肘姿勢)
- NF (手首非反転姿勢)、またはF (手首反転姿勢)
アーム姿勢は、次の8通りの組み合わせが可能ですが、ポイントによってはすべての組み合わせが動作可能とは限りません。
アーム姿勢の組み合わせ
- 1: /R /A /NF
- 2: /L /A /NF
- 3: /R /B /NF
- 4: /L /B /NF
- 5: /R /A /F
- 6: /L /A /F
- 7: /R /B /F
- 8: /L /B /F
さらに、垂直多関節型ロボットでは、その一部の動作エリア内のポイントにおいて、第4関節や第6関節を360度回転しても同じ位置姿勢を実現することができます。このようなポイントを区別するためのポイント属性として、J4FlagとJ6Flagがあります。
J4Flagを指定する場合は、スラッシュ (/)とその後ろに以下を記述してください。
- J4F0 (-180 < J4関節角度 <= 180)
- またはJ4F1 (J4関節角度 <= -180 または 180 < J4関節角度)
J6Flagを指定する場合は、スラッシュ(/)とその後ろに以下を記述してください。
- J6F0 (-180 <J6 関節角度 <= 180)
- またはJ6F1 (-360 < J6関節角度 <= -180 または 180 < J6関節角度 <= 360)
- またはJ6Fn (-180*(n+1) < J6関節角度<= -180*n または 180*n < J6関節角度<= 180*(n+1))
特異姿勢
アーム姿勢が切り替わる境界での姿勢を特異姿勢と呼びます。
腕特異姿勢: 右ハンド姿勢と左ハンド姿勢が切り替わる境界
肘特異姿勢: 上肘姿勢と下肘姿勢が切り替わる境界
手首特異姿勢: 手首非反転姿勢と手首反転姿勢が切り替わる境界
垂直多関節型ロボットでは、動作範囲の内部にも腕特異姿勢や手首特異姿勢が存在します。特異姿勢の近傍でのロボットの動作は、以下に挙げるいくつかの注意が必要です。
特異姿勢近傍でのPTP動作
特異姿勢近傍のあるポイントP1からP1+X(10)のようなポイント演算により作成されたポイントに動作するとき、アーム姿勢の指定が適切でないためロボットが意図しない動作をすることがあります。
たとえば、手首非反転姿勢を持つあるポイントからポイント演算で得られる別のポイントへ動作するとき、同じ手首非反転姿勢のまま動作すると、第4軸と第6軸が大きく (約180°)回転した姿勢に動作することがあります。この場合、手首反転姿勢に切り替えて手首特異姿勢を通過させると自然な動作となります。
このような現象は、ポイント演算のみでなく、パレット命令でポイントを自動生成する場合や、ビジョンの結果に基づきポイントを生成する場合も同様です。
適切な動作
意図しない動作 (第4軸と第6軸が約180°回転)
ただし、このようなケースに対しユーザーがプログラムによりアーム姿勢を適切に指定することは困難です。そこで、アーム姿勢を適切に変更するためのコマンドとしてLJM関数があります。LJM関数は、ロボットの関節移動量が少なくなるようにアーム姿勢を適切に変換します。LJM関数の詳細は、以下のマニュアルを参照してください。
"SPEL+ランゲージリファレンス"
また、LJM関数を使わずに、プログラム中の特定区間に含まれる動作命令に対しLJM関数を自動的に適用するため、AutoLJMコマンドがあります。
AutoLJMコマンドの詳細は、以下のマニュアルを参照してください。
"SPEL+ランゲージリファレンス"
また、コントローラーの環境設定により、コントローラー起動時にAutoLJM機能をオンすることができます。ただし、コントローラー環境設定の中でAutoLJM機能を常時有効にしてしまうと、お客様が意図して関節を大きく移動しようとした動作命令に対しても自動的に関節移動量が少なくなる姿勢に変更して動作してしまいます。AutoLJMコマンド、またはLJM関数で意図した動作になるようにプログラムすることをお勧めします。
すべてのポイントをティーチングで指定する場合には、アーム姿勢も記憶されるため、LJM関数やAutoLJMを使うことなく、ティーチングした位置姿勢に動作します。逆にLJMやAutoLJMを使用することでティーチングした姿勢と異なる姿勢に動作することがあります。
CP動作命令に対するLJM関数
上述のLJM関数やAutoLJMコマンドは、CP動作命令に対しても有効です。ただし、CP動作命令は、指定された軌跡どおりに動作することを優先するため、目標ポイントに指定した姿勢フラグと一致しない姿勢フラグに到達することがあります。このときCP動作命令をCP Onで使用している場合、一致しなかった姿勢フラグに応じて、エラー4274からエラー4278が発生します。上記のエラーを回避するためには、CP Offで動作するか、目標ポイントの姿勢フラグを動作完了時の姿勢フラグと一致させてください。CP Offで動作した場合、上記のエラーは発生せず、その位置から引き続き次の動作を実行することができます。
また、コントローラーの環境設定により、コントローラーの起動時にフラグの不一致をエラーにしない設定にすることができます。ただし、CP Onを使ったパスモーションは無効となります。
特異姿勢近傍でのCP動作 (CP動作時の特異姿勢通過機能)
特異姿勢近傍でMoveなどのCP動作を実行すると、関節速度が急激に大きくなり加速度エラーが発生したり、関節移動量が大きくなり周辺装置と干渉したりする可能性があります。特に、腕特異姿勢近傍では第1関節、手首特異姿勢では第2関節から第6関節が大きく変化します。
Epson RC+ 8.0は、上記の手首特異姿勢近傍を通過するCP動作命令実行中に、加速度エラーを発生させないために、特異姿勢通過機能を持っています。特異姿勢通過機能はCP動作実行中に特異姿勢に近づいたとき、加速度エラーを回避するために、速度は維持したまま、本来の軌跡とは異なる軌跡を通過し、特異姿勢から離れた後、通常の軌跡に戻ります。
本来の軌跡とは異なる軌跡を通過するため、目標ポイントに指定した姿勢と一致しない姿勢に到達することがあります。このときCP動作命令をCP Onで使用している場合、一致しなかった姿勢フラグに応じて、エラー4274からエラー4278が発生します。上記のエラーを回避するためには、CP Offで動作するか、目標ポイントの姿勢フラグを動作完了時の姿勢フラグと一致させてください。CP Offで動作した場合、上記のエラーは発生せず、その位置から次の動作を実行することができます。
特異姿勢通過機能の詳細は、以下のマニュアルを参照してください。
"SPEL+ランゲージリファレンス - AvoidSingularityステートメント"
特異姿勢通過機能は、デフォルト設定で有効になっています。軌跡精度を重視するために、速度を落としてエラーを回避したいような場合には、AvoidSingularityコマンドを"3"に設定して、可変速度CP動作機能を有効にすることができます。可変速度CP動作機能は、垂直6軸ロボット (N シリーズを含む)、およびRSシリーズロボットがCP 動作実行中に特異姿勢に近づいたとき、加速度エラーや過速度エラーを回避するために、軌跡は維持したまま、速度を自動的に抑制し、特異姿勢から離れた後、通常の速度指令に戻すことができます。軌跡を維持して特異点近傍を通過するため、第1, 第2, 第4, 第6 関節が大きく動作することがあります。AvoidSingularity コマンドを"SING_VSD"に設定した場合、動作前とアーム姿勢は変化しません。
特異姿勢回避機能でもエラーを回避することができない場合には、PTP動作を用いて関節の移動量が少なくなる動作にしたり、ロボットの設置位置やハンドのオフセット量などを変更したりして、特異姿勢近傍でのCP動作を回避してください。