フォースガイドオブジェクトを設定する
フォースガイダンス機能では、力制御機能を含む動作や、条件分岐など、ある特定の処理をフォースガイドオブジェクトとして表現します。フォースガイドシーケンスというコンテナに、フォースガイドオブジェクトという処理を並べるようにして、特定の作業を実現します。
フォースガイダンス機能では、10種類の汎用フォースガイドオブジェクトと6種類の専用フォースガイドオブジェクトを組み合わせて、フォースガイドシーケンスを作成することができます。ただし、専用フォースガイドオブジェクトは専用シーケンスのみで使用できます。
力制御機能を用いる作業は、主に下記の5つの基本動作に分解して構成することができます。
「接触」, 「倣い」, 「合わせ」, 「探り」, 「押付け」
フォースガイドオブジェクトは、この5つの基本動作と力制御機能以外の処理である「実行」と、専用フォースガイドシーケンスに自動的に配置される「専用」の7つのカテゴリーに分けられます。ただし、フォースガイドオブジェクトには、2つ以上の基本動作を同時に実行するものもあります。
接触
非接触の状態から、ロボットを物体に接触するまで移動させ、接触した位置で停止させる動作です。ワークなどの位置を見つけるために使用します。接触オブジェクトが該当します。倣い
受ける力やトルクに倣って位置を補正する動作です。受ける力が“0”になる位置に移動するために使用します。脱力オブジェクト、倣い移動オブジェクトが該当します。合わせ
対象物に押しあてながら、その形状や位置姿勢に合わせて把持するワークの位置姿勢を補正する動作です。把持するワークを対象物に合わせるために使用します。面合わせオブジェクトが該当します。探り
対象物上の穴や段差を見つける動作です。穴や段差を見つけるために使用します。押付け探りオブジェクト、接触探りオブジェクトが該当します。押付け
対象物に一定の力やトルクを加え続ける動作です。対象物に一定の力やトルクと加えるために使用します。押付けオブジェクト、押付け移動オブジェクトが該当します。また、力制御機能を伴う作業において、特に押し付けは、ある方向に押し付けて、同時に、別のある方向に倣うように動作させることが多くあります。例えばワークの挿入動作は、挿入方向には押し付け、挿入方向と直交する2つの方向には倣うことで、実現できます。そのため、押付けオブジェクト、押付け移動オブジェクトは異なる軸で押し付けと倣いを同時に実行できるようになっています。実行
力制御以外の処理です。下記のオブジェクトが該当します。- 条件分岐オブジェクト
条件分岐を行うフォースガイドオブジェクトです。 - SPEL関数オブジェクト
SPEL+プログラムのファンクションを実行するフォースガイドオブジェクトです。
- 条件分岐オブジェクト
専用
専用フォースガイドシーケンスを作成すると自動的に配置されます。以下のオブジェクトが該当します。- 貼付けオブジェクト
把持しているワークの面と、対象物の面を合わせながら指定方向に押し付けるオブジェクトです。 - ネジ締めオブジェクト
電動ドライバーでネジ締めを行うオブジェクトです。 - ネジ締め直しオブジェクト
電動ドライバーで締められたネジを1度緩めて、再度締め直すオブジェクトです。 - 高さ検査オブジェクト
ロボットを指定方向に移動させて接触した位置で停止させ、対象物の高さを測定して検査するオブジェクトです。 - 挿入オブジェクト
ワークを挿入するオブジェクトです。 - 引張り試験オブジェクト
コネクターなどを挿入した後に、挿入方向と逆方向に力をかけて、挿入したワークが抜けないことを判断するオブジェクトです。
- 貼付けオブジェクト
下表は、カテゴリーとフォースガイドオブジェクトの一覧です。
各オブジェクトの詳細は、次の項を参照してください。
汎用フォースガイドオブジェクト
貼付けオブジェクト
ネジ締めオブジェクト
ネジ締め直しオブジェクト
高さ検査オブジェクト
挿入オブジェクト
引張り試験オブジェクト
カテゴリー | オブジェクト名 | 説明 |
---|---|---|
接触 | 接触 | ロボットを指定方向に移動させ、接触した位置で停止します。 |
倣い | 脱力 | 指定した軸にかかっている力やトルクを “0”になるようにロボットの位置姿勢を補正します。 |
倣い移動 | 指定した軌道を移動しながら、指定した軸にかかっている力やトルクを “0”になるようにロボットの位置姿勢を補正します。 | |
合わせ | 面合わせ | 把持しているワークの面と、対象物の面を合わせます。 |
探り | 押付け探り | 把持しているワークを押し付けながら、穴や段差を見つけます。 |
接触探り | 把持しているワークを接触させながら、穴を見つけます。 | |
押付け | 押付け | 指定した軸方向に押し付けます。 |
押付け移動 | 指定した軌道を移動しながら、指定した軸方向に押し付けます。 | |
実行 | 条件分岐 | オブジェクトの成功/失敗の結果によって処理を分岐します。 |
SPEL関数 | 指定したSPELプログラムのファンクションを実行します。 | |
専用 | 貼付け | 把持しているワークの面と、対象物の面を合わせながら指定方向に押し付けます。貼付けシーケンスを作成すると自動的に配置されます。 |
ネジ締め | 電動ドライバーでネジ締めをします。ネジ締めシーケンスを作成すると自動的に配置されます。 | |
ネジ締め直し | 電動ドライバーで締められたネジを1度緩めて、再度締め直します。ネジ締めシーケンスをネジ締め直し動作を有効にして作成すると、自動的に配置されます。 | |
高さ検査 | ロボットを指定方向に移動させて接触した位置で停止させ、対象物の高さを測定して検査します。高さ検査シーケンスを作成すると自動的に配置されます。 | |
挿入 | ワークを挿入します。挿入シーケンスを作成すると自動的に配置されます。 | |
引張り試験 | コネクターなどを挿入した後に、挿入方向と逆方向に力をかけて、挿入したワークが抜けないことを判断します。引張り試験を有効にして挿入シーケンスを作成すると、自動的に配置されます。 |
フォースガイドオブジェクトは、プロパティーとリザルトがあります。
- プロパティー
基本的にフォースガイドオブジェクトに対して影響を与えます。例えば、動作する方向を設定するプロパティーなどがあります。 - リザルト
フォースガイドオブジェクトの結果を示します。
フォースガイドオブジェクトは、次のステップで設定します。
- step-3-1-作業をフォースガイドオブジェクトに分解する
- step-3-2-フォースガイドオブジェクトを配置する
- step-3-3-フォースガイドオブジェクトのプロパティーを設定する
Step 3-1. 作業をフォースガイドオブジェクトに分解する
フォースガイドシーケンスで実現したい作業から、どのフォースガイドオブジェクトを使うかを決定します。
ここでは、基本的な考え方を示します。複雑な作業など、作業によっては、基本的な考え方があてはまらないことがあることに、注意してください。また、専用フォースガイドシーケンスを使う場合は、自動的に専用フォースガイドオブジェクトが配置されるため、本Stepは省略可能です。ただし、専用フォースガイドシーケンスは、基本的な各作業を行うシーケンスとなっているため、お客様の作業によっては追加でフォースガイドオブジェクトが必要になる場合があります。
はじめにフォースガイドシーケンスで実現したい作業をカテゴリー(「接触」「倣い」「合わせ」「探り」「押付け」)に分解します。「倣い」をしてから「押付け」を行うような、連続して実施する場合は、工程を2つに分けて考えます。できるだけ、1つのカテゴリーになるように工程を分けていきますが、2つのカテゴリーを同時に行いたいといった場合は、主な目的によって、一時的にそのどちらかに分類します。考え方の例としては、接触状態などを考えず移動した場合に、Move命令を何個使うかを考え、それぞれをカテゴリーに分類します。
次に、下記の5つのフローを使ってフォースガイドオブジェクトを決定します。
「接触」
「倣い」
*1: 指定した軌道を移動しながら、倣う場合を指します。力制御機能によって移動する場合は「いいえ」を選択します。
「合わせ」
「探り」
*1: リード部品など、押し付けながら探るとワークが変形したり、傷がついたりする場合は、 “いいえ”を選択します。
*2: 前工程として、「接触」を検討していた場合は、それを削除します。
「押付け」
*1: 指定した軌道を移動しながら、力制御機能を使用する場合を指します。力制御機能によって移動する場合は、“いいえ”を選択します。
*2: ワークやツールに依存して速度を指定しなければならない場合を指します。通常は、“いいえ”を選択します。例えば電動ドライバーを用いたネジ締めでは、ネジのピッチとドライバーの回転角速度によって、押し付け方向(ネジの挿入方向)への速度が決定されるため、“はい”を選択します。
- 例: 一定の力で押し付ける作業をフォースガイドオブジェクトに分解する
-
対象物に接触してから押し付けを行う作業です。「接触」「押付け」の2工程に分けることができます。
「接触」は、同時実行するカテゴリーがないため接触オブジェクトとなります。
「押付け」は、同時実行するカテゴリーがなく、押し付け方向以外に移動せず、押し付け方向への移動速度を指定しないため、押付けオブジェクトになります。
- 例: 円柱嵌合作業をフォースガイドオブジェクトに分解する
-
接触してから、穴を探って、倣って補正しながら、穴方向に押し付けて挿入する作業です。「倣い」と「押付け」は、同時に行いたいため、1つの工程として考えます。主な目的は挿入することであるため、一時的に「押付け」に分類します。
「接触」「探り」「押付け」の3工程に分けることができます。
「接触」は、同時実行するカテゴリーがないため接触オブジェクトとなります。
「探り」は、同時に実行するカテゴリーがなく、探る対象は穴であり、ワークを押し付けながら探すことができ、オブジェクト開始時に接触状態であるため、押付け探りオブジェクトとなります。
「押付け」は、同時実行するカテゴリーは倣いであり、押し付け方向以外に移動せず、押し付け方向への移動速度を指定しないため、押付けオブジェクトになります。
- 例: コネクター挿入作業をフォースガイドオブジェクトに分解する
-
接触して、穴を探って、倣って補正しながら、穴方向に押し付けて挿入する作業です。
「倣い」と「押付け」は同時に行いたいため、1つの工程として考えます。主な目的は挿入することであるため、一時的に「押付け」に分類します。
「接触」「探り」「押付け」の3工程に分けることができます。
「接触」は、同時実行するカテゴリーがないため接触オブジェクトとなります。
「探り」は、同時に実行するカテゴリーがなく、探る対象は穴であり、ワークを押し付けながら探すことができず、オブジェクト開始時に接触状態であるため、接触探りオブジェクトとなります。
そして、非接触状態から開始するため、前工程である「接触」を削除します。
はじめに3つの工程に分けましたが、「接触」を削除したため、この作業は「探り」「押付け」の2工程になります。
「押付け」は、同時実行するカテゴリーは倣いであり、押し付け方向以外に移動せず、押し付け方向への移動速度を指定しないため、押付けオブジェクトになります。
- 例: 電動ドライバーを用いたネジ締め作業をフォースガイドオブジェクトに分解する
-
接触して、倣って補正しながら、穴方向に押し付けて挿入する作業です。
しかし、接触して一度止まるとネジが外れる場合があるため、接触しながら、倣って、押し付けるというように1つの工程として考えます。主な目的は挿入することであるため、一時的に「押付け」に分類します。この作業は、「押付け」のみの1工程として考えることができます。
「押付け」は、同時実行するカテゴリーは接触と倣いであり、押し付け方向以外に移動せず、押し付け方向への移動速度を指定するため、押付け移動オブジェクトになります。
以下は、SPEL+プログラミングを使ったフォース機能に慣れたユーザー向けの追加説明です。
5つの基本動作に属するフォースガイドオブジェクトは、力制御機能, 位置制御, 終了条件によってその動作が構成されています。各オブジェクトは、その動作に必要なものが選択できたり、自動で設定されたりしています。下表は、フォースガイドオブジェクトの構成一覧です。
カテゴリー | オブジェクト名 | 力制御機能 A: 選択可能 B: 自動設定される | 位置制御 A: 同時実行 B: 別実行 | 終了条件 A: 選択可能 B: 必ず設定される | |||
---|---|---|---|---|---|---|---|
押付け | 倣い | 力 | 位置 | I/O | |||
接触 | 接触 | A (1軸のみ) | - | - | B | - | - |
倣い | 脱力 | - | A (全軸) | - | A | A | A |
倣い移動 | - | A (全軸) | A | - | A | A | |
合わせ | 面合わせ | A (並進, 1軸のみ) | B *1 | - | A | - | - |
探り | 押付け探り | A (並進, 1軸のみ) | - | A | A *2 | A *2 | - |
接触探り | A (並進, 1軸のみ) | - | B *3 | B | B | - | |
押付け | 押付け | A (全軸) | A (全軸) | - | A | A | A |
押付け移動 | A (全軸) | A (全軸) | A | A | A | A | |
実行 | 条件分岐 | - | - | - | - | - | - |
SPEL関数 | - | - | - | - | - | - | |
専用 | 貼付け | A(1軸のみ) | B | - | B | B | - |
ネジ締め | A(1軸のみ) | B | A *4 | B | B | B | |
ネジ締め直し | B(ネジ締めと同方向) | B | A | B | B | B | |
高さ検査 | A(1軸のみ) | - | - | B | B | - | |
挿入 | A(1軸のみ) | B | A *4 | B | B | - | |
引張り試験 | B(挿入と逆方向) | - | - | B | B | - |
*1: 押し付け方向に設定した軸と直交する2軸回りの回転方向が設定されます。
*2: どちらかを有効にしなければなりません。
*3: 退避動作、および次の接触開始位置までの移動で位置制御を使用します。力制御機能と同時には実行されません。
*4: 動作途中で位置制御との同時実行から、力制御機能のみに切り替わります。
Step 3-2. フォースガイドオブジェクトを配置する
フォースガイドオブジェクトは、[ForceGuide]ウィンドウで選択し、配置します。Step3-1で決めたフォースガイドオブジェクトを順番に配置します。
フォースガイドシーケンスの作成時にテンプレートを選択した場合は、フォースガイドオブジェクトの配置は必要ありません。作業に合わせて、テンプレートにフォースガイドオブジェクトを加えたり、テンプレートにあるフォースガイドオブジェクトを削除したりすることもできます。
フォースガイドシーケンスの作成時に専用フォースガイドシーケンスを選択した場合は、フォースガイドオブジェクトの配置は必要ありません。各シーケンスに必要な専用フォースガイドオブジェクトが自動的に配置されます。配置された専用フォースガイドオブジェクトは削除および移動させることはできません。作業に追加の動作が必要であれば、汎用フォースガイドオブジェクトを追加することもできます。
作成方法の詳細は、次の項を参照してください。
ソフトウェア編 - [フォースガイダンス] (ツールメニュー)
Step 3-3. フォースガイドオブジェクトのプロパティーを設定する
フォースガイドオブジェクトのプロパティーを設定します。プロパティーは作業に合わせて設定する必要があります。専用フォースガイドオブジェクトは、シーケンスウィザードからもプロパティーを設定することが可能です。
各プロパティーの詳細は、次の項を参照してください。
汎用フォースガイドオブジェクト
貼付けオブジェクト
ネジ締めオブジェクト
ネジ締め直しオブジェクト
高さ検査オブジェクト
挿入オブジェクト
引張り試験オブジェクト
またプロパティーの設定方法の詳細は、次の項を参照してください。
ソフトウェア編 [フォースガイダンス] (ツールメニュー)
フォースガイドオブジェクトのプロパティーを設定するときに知っておいて頂きたい、いくつかの概念を説明します。
力制御機能実行時のロボットの基本的な振る舞い(動き)
力制御機能とは、力やトルクを、指定した力やトルクに保つ機能です。この時、ロボットは、その力を受けるであろう位置に移動することで、その力を保とうとします。そのため、非接触状態で「押付け」を指定した力制御機能を使用すると、ロボットはその力を受けると予測される位置に向かって移動します。
力の向きと、ロボットの動作の向き
力覚センサーは、受けた力を感じるセンサーです。
下図の例では、ロボットは鉛直下向き(赤い矢印で図示する方向)にワークを押し付けています。力が釣り合っている状態のため、ロボットは、赤い矢印で示す力をかけると共に、青い矢印で示す反力を受けることになります。
力覚センサーは、この反力を感じるセンサーです。ロボットの動作する方向と、設定する押し付け力、および検出する力は、常に反対方向になることに注意してください。
例えば、押付けオブジェクトのFx_ControlModeでPress+ (正方向への押し付け)を指定した場合、Fx_PressForceは負の値を設定しなければなりません。その動作結果として記録される力も負の値となります。
力制御機能の硬さ (Firmness)
フォースガイダンス機能では、力制御機能の硬さをFirmnessプロパティーで表現します。
実際のプロパティー名は、ContactFirmnessFやFx_Firmnessなど、フォースガイドオブジェクトごとに異なります。特性は同様です。
Firmnessプロパティーとして共通の概念を説明します。
Firmnessプロパティーが大きい場合、力制御機能は硬くなり、反応が遅くなります。
Firmnessプロパティーが小さい場合、力制御機能は柔らかくなり、反応が早くなります。ただし、Firmnessプロパティーが小さ過ぎる場合、ロボットの動作が振動する場合があります。
下図の様に、空中から開始して、10[N]で押し付ける作業を例にして、Firmnessプロパティーの影響を説明します。
他のプロパティーを固定して、Firmnessプロパティーが大きい場合と小さい場合で実行したときの力のグラフを下記に示します。
非接触状態では、Firmnessプロパティーが小さい方が移動速度は速くなります。そのため、接触するまでの時間が短くなり、グラフ中での波形の立ち上がり開始時刻に差が生まれます。接触時の速度が速いため、力のオーバーシュートが大きくなります。目標力に達するまでの時間は早くなりますが、振動が発生することがあります。
力制御機能を使った理想的な力の変化はグラフ中の理想波形で示すように、接触時にオーバーシュートせず即時に目標力になり、その後も安定することです。しかし、現実では、この状態になることはありません。力のオーバーシュートや振動状態と、サイクルタイムはトレードオフの関係にあります。お客様の作業ごとに許容可能な状態に調整してください。
Firmnessプロパティーの値と実行したときの力の関係は、ロボット, ハンド, ワーク, 姿勢など使用する環境によって変化します。そのため、フォースガイドオブジェクトごとに実際の環境で調整する必要があります。Firmnessは初期状態では、大きい値に設定し、10%ずつ減らしていくなど段階的に小さくして調整していくことを推奨します。
Firmness値の調整は、Firmnessウィザードから行うこともできます。以下で、Firmnessウィザードを用いたFirmnessの調整方法を説明します。
Firmnessプロパティー右側の ボタンをクリックします。
[Firmnessウィザード]ウィンドウが表示されます。
[ティーチ…]ボタンをクリックします。
[接近位置のティーチ]ダイアログが表示されます。
ワークが押し付け対象物の1mm上空位置になるまで移動します。
[OK]ボタンをクリックします。
現在の位置を保存し、[Firmnessウィザード]ウィンドウに戻ります。
[動作と力]の許容する最大の力、またはトルクを設定します。
倣い方向のFirmnessウィザードの場合、加わると予想される力またはトルクを設定します。
[Firmness]の試行回数、試行1回の実行時間、スライダーからFirmnessの範囲を設定します。
調整を開始するときは、スライダーをかたい側に設定し、力またはトルクの実測波形を見ながら調整してください。
[実行]ボタンをクリックします。確認ダイアログが表示されます。
初期位置のワークと押し付け対象の距離が1mm以内であることを確認し、[はい]ボタンをクリックします。
ロボットは、設定した軸が目標力になるまで移動します。
途中で停止する場合は、[停止]ボタンをクリックします。
ロボットが目標の力、またはトルクに到達する前に10mmまたは10deg以上移動した場合は、次のダイアログが表示されます。下記の要因が考えられます。
- 初期位置のワークと押し付け対象の距離が10mm、または10deg以上ある
- 設定した押し付け方向がお客様の想定している方向と違う
残りの試行を継続する場合は、[はい]ボタンをクリックします。残りの試行を継続しない場合は、[いいえ]ボタンをクリックします。
力またはトルクの実測データがお客様の作業で許容可能な波形に近づくように、スライダーを調整し、[実行]ボタンをクリックします。
理想的な波形に近づくまで、スライダーの範囲を変更し実行を繰り返します。
波形が振動的な場合や、目標の力に整定しない場合は、スライダーをかたい側へ動かします。波形が、なだらかすぎる場合は、スライダーをやわらかい側へ動かします。スライダーを大きく動かすと力のかかり方が大きく変わる可能性があります。スライダーを少しずつ動かして調整してください。
[次へ]ボタンをクリックします。
設定前後のFirmnessの値が表示されます。
新しい値を保存する場合は[完了]ボタン、取り消す場合は[キャンセル]ボタンをクリックします。