以下、本発明の複数の実施形態について説明する。なお、各実施形態において実質的に同一の構成には同一の符号を付して説明を省略する。
(第1実施形態)
以下、本発明の第1実施形態について図1〜図14を参照しながら説明する。
図1及び図2は、一般的な産業用ロボットのシステム構成を示している。ロボットシステム10は、例えば図1に示す4軸型の水平多関節ロボット20(以下、4軸ロボット20と称する)や、図2に示す6軸型の垂直多関節ロボット30(以下、6軸ロボット30と称する)等を動作させるものである。なお、ロボットシステム10の動作対象となるロボットは、上述の4軸ロボット20や6軸ロボット30に限られない。
まず、図1に示す4軸ロボット20の概略構成について説明する。4軸ロボット20は、固有のロボット座標系(X軸、Y軸およびZ軸からなる三次元直交座標系)に基づいて動作する。本実施形態において、ロボット座標系は、ベース21の中心を原点Oとし、作業台Pの上面をX−Y平面とし、そのX−Y平面と直交する座標軸をZ軸として定義されている。作業台Pの上面は、4軸ロボット20を設置するための設置面である。この場合、その設置面が動作基準面に相当する。なお、動作基準面としては、設置面に限らずともよく、任意の平面であってもよい。
4軸ロボット20は、ベース21、第1アーム22、第2アーム23、シャフト24、及びフランジ25を有している。ベース21は、作業台Pの上面(以下、設置面とも称す)に固定される。第1アーム22は、ベース21の上部に対して、Z軸(垂直軸)方向の軸心を持つ第1軸J21を中心に水平方向に回転可能に連結されている。第2アーム23は、第1アーム22の先端部の上部に対して、Z軸方向の軸心を持つ第2軸J22を中心に回転可能に連結されている。シャフト24は、第2アーム23の先端部に対して、上下動可能で且つ回転可能に設けられている。また、シャフト24を上下動させる際の軸が第3軸J23であり、シャフト24を回転させる際の軸が第4軸J24である。フランジ25は、シャフト24の先端部つまり下端部に着脱可能に取り付けられている。
ベース21、第1アーム22、第2アーム23、シャフト24、及びフランジ25は、4軸ロボット20のアームとして機能する。アーム先端であるフランジ25には、図示はしないが、エンドエフェクタ(手先)が取り付けられる。例えば4軸ロボット20を用いて部品の検査などが行われる場合、上記エンドエフェクタとしては、対象となる部品を撮影するためのカメラなどが用いられる。4軸ロボット20に設けられる複数の軸(J21〜J24)はそれぞれに対応して設けられるモータ(図示せず)により駆動される。各モータの近傍には、それぞれの回転軸の回転角度を検出するための位置検出器(図示せず)が設けられている。
多関節型のロボットを手動操作する場合、その動作は、各駆動軸を個別に駆動させる各軸系の動作と、複数の駆動軸を組み合わせて駆動させることでロボットの手先を任意の座標系上で移動させる手先系の動作と、がある。この場合、4軸ロボット20は、各軸系の動作において、各駆動軸J21〜J24を個別に駆動させることができる。また、4軸ロボット20は、手先系の動作において、例えば第1軸J21と第2軸J22とを組み合わせたX−Y平面方向への動作と、第3軸J23によるZ方向への動作と、第4軸J24によるRz方向への動作と、を行うことができる。
次に、図2に示す6軸ロボット30の概略構成について説明する。6軸ロボット30も、4軸ロボット20と同様に、固有のロボット座標系(X軸、Y軸およびZ軸からなる三次元直交座標系)に基づいて動作する。6軸ロボット30は、ベース31、ショルダ部32、下アーム33、第1上アーム34、第2上アーム35、手首36、及びフランジ37を有している。ベース31は、作業台Pの上面に固定される。ショルダ部32は、ベース31の上部に対して、Z軸(垂直軸)方向の軸心を持つ第1軸J31を中心に水平方向に回転可能に連結されている。下アーム33は、ショルダ部32に対して上方へ延びるように設けられている。下アーム33は、ショルダ部32に対して、Y軸方向の軸心を持つ第2軸J32を中心に垂直方向に回転可能に連結されている。
第1上アーム34は、下アーム33の先端部に対して、Y軸方向の軸心を持つ第3軸J33を中心に垂直方向に回転可能に連結されている。第2上アーム35は、第1上アーム34の先端部に対して、X軸方向の軸心を持つ第4軸J34を中心に捻り回転可能に連結されている。手首36は、第2上アーム35の先端部に対して、Y軸方向の軸心を持つ第5軸J25を中心に垂直方向に回転可能に連結されている。そして、フランジ37は、手首36に対し、X軸方向の軸心を持つ第6軸J36を中心に捻り回転可能に連結されている。
ベース31、ショルダ部32、下アーム33、第1上アーム34、第2上アーム35、手首36及びフランジ37は、ロボット30のアームとして機能する。アーム先端であるフランジ37(手先に相当)には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。6軸ロボット30に設けられる複数の軸(J31〜J36)は、と4軸ロボット20と同様、それぞれに対応して設けられるモータ(図示せず)により駆動される。また、各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器(図示せず)が設けられている。
6軸ロボット30は、各軸系の動作において、各駆動軸J31〜J36を個別に駆動させることができる。また、6軸ロボット30は、手先系の動作において、4軸ロボット20が行う得る動作に加え、その手先を、Z軸とは異なる2つの軸回りに回転する動作を行うことができる。上記2つの軸とは、設置面Pに対して水平な互いに直交する2つの軸(X軸及びY軸)である。この場合、X軸回りの回転方向をRx方向とし、Y軸回りの回転方向をRy方向としている。すなわち、6軸ロボット30は、手先系の動作において、例えば、第1軸J31と第2軸J32と第3軸J33とを組み合わせたX−Y平面方向への動作と、第2軸J32及び第3軸J33を組み合わせたZ方向への動作と、第4軸J34によるRx方向への動作と、第5軸J35によるRy方向への動作と、第6軸によるRz方向への動作と、を行うことができる。
また、図1及び図2に示すロボットシステム10は、ロボット20、30の他、コントローラ11及びティーチングペンダント40(ロボット操作装置に相当)を備えている。コントローラ11は、各ロボット20、30を制御するものである。コントローラ11は、接続ケーブルを介してロボット20、30に接続されている。ティーチングペンダント40は、接続ケーブルを介してコントローラ11に接続されている。コントローラ11とティーチングペンダント40との間では、データ通信が行われる。これにより、ユーザの操作に応じて入力される各種の操作情報が、ティーチングペンダント40からコントローラ11に送信される。また、コントローラ11は、ティーチングペンダント40に対し、各種の制御信号や表示用の信号などを送信するとともに、駆動用の電力を供給する。なお、ティーチングペンダント40とコントローラ11とは、無線通信によって接続されていてもよい。
コントローラ11は、ティーチングペンダント40から手動動作を指令する信号が与えられると、ロボット20、30を手動で動作させる制御を行う。また、コントローラ11は、ティーチングペンダント40から自動動作を指令する信号が与えられると、予め記憶されている自動プログラムを起動することにより、ロボット20、30を自動動作させる制御を行う。
ティーチングペンダント40は、例えばユーザが携帯したり手に所持したりして操作可能な程度の大きさである。ティーチングペンダント40は、例えばケース41と、タッチパネルディスプレイ42と、スイッチ43と、を有している。ケース41は、例えば薄型の略矩形箱状であって、ティーチングペンダント40の外殻を構成している。タッチパネルディスプレイ42は、ケース41の表面側の大部分を占めるように設けられている。タッチパネルディスプレイ42は、図3に示すように、タッチパネル421とディスプレイ422とを有し、これらタッチパネル421とディスプレイ422とを重ねて配置したものである。
タッチパネルディスプレイ42は、タッチパネル421によってユーザからのタッチ操作及びドラッグ操作の入力を受けるとともに、ディスプレイ422によって文字や数字、記号、及び図形等の画像の表示が可能である。スイッチ43は、例えば物理的なスイッチであり、タッチパネルディスプレイ42の周囲に設けられている。なお、スイッチ43は、タッチパネルディスプレイ42に表示させたボタンで代用してもよい。ユーザは、タッチパネルディスプレイ42やスイッチ43を操作することで、種々の入力操作を実行する。
ユーザは、ティーチングペンダント40を用いてロボット20、30の運転や設定などの各種機能を実行可能であり、予め記憶されている制御プログラムを呼び出して、ロボット20、30の起動や各種のパラメータの設定などを実行できる。また、ロボット20、30をマニュアル操作すなわち手動操作で動作させて各種の教示作業も実行可能である。そして、タッチパネルディスプレイ42には、例えばメニュー画面、設定入力画面、状況表示画面などが必要に応じて表示される。
次に、ティーチングペンダント40の電気的な構成について図3を参照して説明する。
ティーチングペンダント40は、タッチパネルディスプレイ42、スイッチ43に加え、通信インターフェース(I/F)44、制御部45、操作検出部46、動作指令生成部47、及び表示制御部48を有している。通信インターフェース44は、ティーチングペンダント40の制御部45と、コントローラ11とを通信可能に接続している。
制御部45は、例えばCPU451や、ROM、RAM、及び書き換え可能なフラッシュメモリなどの記憶領域452を有するマイクロコンピュータを主体に構成されており、ティーチングペンダント40の全体を制御する。記憶領域452は、ロボット操作プログラムを記憶している。制御部45は、CPU451においてロボット操作プログラムを実行することにより、操作検出部46、動作指令生成部47、及び表示制御部48等を、ソフトウェアによって仮想的に実現する。なお、これら操作検出部46、動作指令生成部47、及び表示制御部48は、例えば制御部45と一体の集積回路としてハードウェア的に実現してもよい。
操作検出部46は、タッチパネル421に対するタッチ操作及びドラッグ操作を検出することができる。操作検出部46は、タッチ操作の検出として、ユーザの指等が、タッチパネルディスプレイ42に接触したかどうか、及びその接触した指等の位置(タッチ位置)を検出することができる。また、操作検出部46は、ドラッグ操作の検出として、ドラッグ操作に係る指等の現在位置、移動方向、移動速度、及び移動量を検出することができる。
動作指令生成部47は、操作検出部46の検出結果に基づいてロボット20、30を動作させるための動作指令を生成する。動作指令生成部47により生成された動作指令は、通信イーターフェース44を通じてコントローラ11に与えられる。表示制御部48は、スイッチ43に対する操作や、操作検出部46の検出結果等に基づいて、ディスプレイ422に表示させる表示内容を制御する。このような構成のティーチングペンダント40を用いることにより、ユーザは、ロボット20、30の手動操作を、タッチ操作及びドラッグ操作によって行うことができる。
次に、制御部45で行われる制御内容について、図4〜図14を参照して説明する。なお、以下の説明において、ロボット20、30の動作態様と称した場合には、ロボット20、30の駆動軸又は駆動軸の組み合わせによるロボット20、30の動作態様を意味するものとする。この場合、ロボット20、30の動作態様には、上述した手先系や各軸系といった動作系において、その動作系における正(+)方向又は負(−)方向への移動方向は含まないものとする。また、以下の説明では、ロボット20、30手先系の動作において、X−Y平面方向に対する手動操作を同一の画面上で行う場合を示している。なお、ティーチングペンダント40においては、上述した手先系のX−Y平面方向への動作態様に限られず、各軸系及び手先系の任意の動作態様でロボット20、30を手動操作することができる。
ティーチングペンダント40の制御部45は、ロボット20、30の手動操作を開始すると、図4及び図5に示す制御内容を実行する。具体的には、制御部45は、手動操作に係る処理を開始すると、まず、図4のステップS11において、操作検出部46の検出結果に基づいて、タッチパネルディスプレイ42に対してタッチ操作が行われたか否かを判断する。タッチ操作がされていない場合(ステップS11でNO)、制御部45は、図6に示すようにタッチパネルディスプレイ42に何も表示させないまま待機する。一方、図7に示すように、ユーザが指90等でタッチパネルディスプレイ42上の任意の点をタッチ操作すると、制御部45は、タッチ操作が行われたと判断し(ステップS11でYES)、図4のステップS12を実行する。
ステップS12において、制御部45は、方向図形表示処理を実行する。方向図形表示処理は、操作検出部46がタッチ操作を検出した場合に、図7に示すように、タッチ操作のタッチ位置P0を基準として、タッチパネルディスプレイ42上における特定の直線方向を示す方向図形、この場合第1方向及び第2方向を示す方向図形50を表示させる処理である。方向図形50は、第1方向図形51、第2方向図形52、及びサークル図形53を有している。第1方向図形51は、タッチパネルディスプレイ42に対する第1方向を示す図形である。第2方向図形52は、タッチパネルディスプレイ42に対する第2方向を示す図形である。本実施形態において、第1方向は、タッチパネルディスプレイ42の長手方向に設定されている。また、第2方向は、第1方向に対して直交する方向に設定されている。なお、第1方向及び第2方向は、任意に設定することができる。
サークル図形53は、タッチ位置P0を基準にして第1方向及び第2方向を示すものである。サークル図形53は、円形に形成され、その円の内側は、特定の直線方向の数の2倍の数に等分されている。この場合、サークル図形53の円の内側は、第1方向及び第2方向の数である2の倍数つまり4つに等分されている。そして、4等分されたサークル図形53の内側の各領域は、第1方向の正(+)方向を示す第1領域531と、第1方向の負(−)方向を示す第2領域532と、第2方向の正(+)方向を示す第3領域533と、第2方向の負(−)方向を示す第4領域534と、に設定されている。
方向図形表示処理において、制御部45は、タッチ操作によるタッチ位置P0を、第1方向図形51、第2方向図形52、及びサークル図形53の中心位置P0に設定する。そして、制御部45は、第1方向図形51と第2方向図形52とを直交させるとともに、これら第1方向図形51と第2方向図形52とにサークル図形53を重ねた状態で、タッチパネルディスプレイ42に表示させる。なお、本実施形態の場合、第1方向の正負方向については、第1方向図形51の中心位置P0に対して、紙面右側を第1方向の正(+)方向とし、紙面左側を第1方向の負(−)方向とする。また、第2方向の正負方向については、第2方向図形52の中心位置P0に対して、紙面上側を第2方向の正(+)方向とし、紙面下方を第2方向の負(−)方向とする。
第1方向及び第2方向へのドラッグ操作には、ロボット20、30の任意の動作態様が割り当てられる。本実施形態の場合、第1方向のドラッグ操作には、手先系のX方向の動作態様が割り当てられている。また、第2方向のドラッグ操作には、手先系のY方向の動作態様が割り当てられている。そして、ロボット20、30の動作態様及び動作方向は、ステップS11で検出されたタッチ操作に続けて行われるドラッグ操作の開始直後の操作方向によって決定される。
この場合、ユーザは、ドラッグ操作の開始直後の操作方向を第1方向図形51に沿った(+)正方向つまり中心位置P0に対して紙面右方とすることで、ロボット20、30をX方向の動作態様において正(+)方向へ動作させることができる。また、ユーザは、ドラッグ操作の開始直後の操作方向を第1方向図形51に沿った負(−)方向つまり中心位置P0に対して紙面左方とすることで、ロボット20、30をX方向の動作態様において負(−)方向へ動作させることができる。一方、ユーザは、ドラッグ操作の開始直後の操作方向を第2方向図形52に沿った正(+)方向つまり中心位置P0に対して紙面上方とすることで、ロボット20、30をY方向の動作態様において正(+)方向の動作させることができる。また、ユーザは、ドラッグ操作の開始直後の操作方向を第2方向図形52に沿った負(−)方向つまり中心位置P0に対して紙面下方とすることで、ロボット20、30をY方向の動作態様において負(−)方向へ動作させることができる。
具体的には、制御部45は、図4のステップS12で方向図形50を表示させると、ステップS13において、ステップS11で検出したタッチ操作に続けてドラッグ操作が行われたか否かを判断する。ドラッグ操作の検出が無かった場合(ステップS13でNO)、制御部45は、図5のステップS27を実行する。一方、ドラッグ操作の検出が有った場合(ステップS13でYES)、制御部45は、ステップS14を実行する。制御部45は、ステップS14において、ドラッグ操作の開始直後の操作方向が第1方向又は第2方向のいずれであるかを判断する。
ドラッグ操作の開始直後の操作方向は、例えば次のようにして定めることができる。すなわち、ドラッグ操作の開始直後の操作方向は、ステップS11で検出されたタッチ操作に係るタッチ位置P0と、ステップS11でタッチ操作が検出された後初めて指90等の現在位置P1がタッチ位置P0と異なる位置となった場合におけるその指90等の現在位置P1と、を結んだ直線方向とすることができる。また、ドラッグ操作の開始直後は、例えば操作検出部46が特定の直線方向における正又は負方向へのドラッグ操作を検出した時点から、そのドラッグ操作の正負方向が逆方向へ変更されるまでの期間を含んでいてもよい。
ドラッグ操作の開始直後の操作方向が第1方向である場合(ステップS14で第1方向)、制御部45は、ステップS15、S16を実行する。一方、ドラッグ操作の開始直後の操作方向が第2方向である場合(ステップS14で第2方向)、制御部45は、ステップS17、S18を実行する。なお、ステップS14の判断においては、第1方向又は第2方向における正負は問題としない。
制御部45は、ステップS15、S17において、動作指令生成部47の処理により、動作態様決定処理を実行する。動作態様決定処理は、ドラッグ操作の開始直後の操作方向が第1方向である場合に(ステップS14で第1方向)、ロボット20、30の動作態様を第1動作態様に決定し、ドラッグ操作の開始直後の操作方向が第2方向である場合に(ステップS14で第2方向)、ロボット20、30の動作態様を第2動作態様に決定する処理である。
この場合、ドラッグ操作の開始直後の操作方向が、図7に示すサークル図形53の第1領域531側又は第2領域532側へ向かう方向、例えば図8の矢印A1で示すような第1方向図形51に沿った第1方向であれば(ステップS14で第1方向)、制御部45は、ステップS15において、ロボット20、30の動作態様を、第1動作態様である手先系のX方向への動作に決定する。一方、ドラッグ操作の開始直後の操作方向が、サークル図形53の第3領域533側又は第4領域534側へ向かう方向、例えば図11の矢印B1で示すような第2方向図形52に沿った第2方向であれば(ステップS14で第2方向)、制御部45は、ステップS17において、ロボット20、30の動作態様を、第2操作態様である手先系のY方向への動作に決定する。
次に、制御部45は、ステップS16、S18において、表示制御部48の処理により、操作図形表示処理を実行する。操作図形表示処理は、図8又は図11に示すように、第1操作図形61又は第2操作図形62を、タッチパネルディスプレイ42上に表示させる処理である。この場合、ドラッグ操作の開始直後の操作方向が、サークル図形53の第1領域531側又は第2領域532側へ向かう方向、つまり第1方向図形51に沿った第1方向であれば(ステップS14で第1方向)、制御部45は、図8に示すように、第1方向へ延びる第1操作図形61をタッチパネルディスプレイ42上に表示させる(ステップS16)。一方、ドラッグ操作の操作方向が第2方向図形52に沿った第2方向であれば(ステップS15で第2方向)、制御部45は、図11に示すように、第2方向へ延びる第2操作図形62をタッチパネルディスプレイ42上に表示させる(ステップS19)。
第1操作図形61及び第2操作図形62は、操作図形の一例である。第1操作図形61は、第1方向図形51に重ねて表示され、第2操作図形62は、第2方向図形52に重ねて表示される。なお、第1操作図形61又は第2操作図形62のいずれか一方を表示することに伴って、サークル図形53はタッチパネルディスプレイ42上から消去される。
第1操作図形61及び第2操作図形62は、ドラッグ操作の現在位置P1の移動に伴って形態が変化する図形である。第1操作図形61は、例えば手先系のX方向の動作態様に対応している。また、第2操作図形62は、例えば手先系のY方向の動作態様に対応している。第1操作図形61及び第2操作図形62は、対応するロボット20、30の動作態様、及び表示される向きが異なることを除いて、基本的構成は同様である。
第1操作図形61は、図8に示すように、第1バー611と、第1スライダ612と、を有している。第1バー611は、特定の直線方向この場合第1方向へ向かって直線状に形成された図形である。この場合、第1バー611は、ドラッグ操作の開始位置P0を基点として第1方向に沿う横長の矩形状に形成されている。第1スライダ612は、ドラッグ操作に伴い第1バー611に沿って移動可能である。第1スライダ612は、第1バー611に対するドラッグ操作の現在位置P1を示す図形である。すなわち、第1方向へのドラッグ操作が入力された場合、そのドラッグ操作による現在位置P1の移動に伴って、第1スライダ612の表示位置が移動する。第1操作図形61の形態の変化は、第1バー611に対する第1スライダ612の相対的な位置関係の変化を含むものとする。つまり、第1方向へのドラッグ操作による現在位置P1の移動に伴って、第1操作図形61の形態が変化する。
同様に、第2操作図形62は、図11に示すように、第2バー621と、第2スライダ622と、を有している。第2バー621は、特定の直線方向この場合第2方向へ向かって直線状に形成された図形である。この場合、第2バー621は、ドラッグ操作の開始位置P0を基点として第2方向に沿う縦長の矩形状に形成されている。第2スライダ622は、ドラッグ操作に伴い第2バー621に沿って移動可能である。第2スライダ622は、第2バー621に対するドラッグ操作の現在位置P1を示す図形である。すなわち、第2方向へのドラッグ操作が入力された場合、そのドラッグ操作の現在位置P1の移動に伴って、第2スライダ622の表示位置が移動する。第2操作図形62の形態の変化は、第2バー621に対する第2スライダ622の相対的な位置関係の変化を含むものとする。つまり、第2方向へのドラッグ操作による現在位置P0の移動に伴って、第2操作図形62の形態が変化する。
次に、制御部45は、図5のステップS19を実行し、ドラッグ操作の操作方向が第1方向又は第2方向における正方向又は負方向のいずれであるかを判断する。そして、制御部45は、ステップS20又はステップS21において、動作指令生成部47の処理により、動作方向決定処理を実行する。動作方向決定処理は、ロボット20、30の動作方向を決定する処理である。動作方向決定処理は、ドラッグ操作の開始直後の操作方向が第1方向又は第2方向における正方向である場合に、ロボット20、30の動作方向を正方向に決定し、ドラッグ操作の開始直後の操作方向が第1方向又は第2方向における負方向である場合に、ロボット20、30の動作方向を負方向に決定する処理を含んでいる。
例えば、本実施形態において、ドラッグ操作の操作方向が第1方向(この場合X方向)でかつ正方向である場合(ステップS14で第1方向、かつステップS19で正方向)、制御部45は、ロボット20、30の動作態様を手先系のX方向に決定し、その動作態様における動作方向を正方向に決定する。また、ドラッグ操作の操作方向が第1方向(この場合X方向)でかつ負方向である場合(ステップS14で第1方向、かつステップS19で負方向)、制御部45は、ロボット20、30の動作態様を手先系のX方向に決定し、その動作態様における動作方向を負方向に決定する。
同様に、ドラッグ操作の操作方向が第2方向(この場合Y方向)でかつ正方向である場合(ステップS14で第2方向、かつステップS19で正方向)、制御部45は、ロボット20、30の動作態様を手先系のY方向に決定し、その動作態様における動作方向を正方向に決定する。そして、ドラッグ操作の操作方向が第2方向(この場合Y方向)でかつ負方向である場合(ステップS14で第2方向、かつステップS19で負方向)、制御部45は、ロボット20、30の動作態様を手先系のY方向に決定し、その動作態様における動作方向を負方向に決定する。
次に、制御部45は、ステップS22において、ドラッグ操作の操作速度を測定する。そして、制御部45は、ステップS23において、動作速度決定処理を実行する。動作速度決定処理は、ステップS22で測定されたドラッグ操作の操作速度Vdの絶対値|Vd|に基づいて、ステップS20、21で決定された動作方向へロボット20、30を動作させるための動作速度Vrを決定する処理である。
この場合、ロボット20、30の動作速度Vrの決定には、ドラッグ操作の操作方向の正負は考慮されない。すなわち、第1方向又は第2方向へのドラッグ操作において、正方向つまり紙面右方へのドラッグ操作の操作速度は正(+)の値となり、負方向つまり紙面左方へのドラッグ操作の操作速度は負(−)の値となる。したがって、例えば図9及び図10で示すように矢印A2、A3方向への移動を繰り返すようなドラッグ操作や、図12及び図13で示すように矢印B2、B3方向への移動を繰りかえすようなドラッグ操作のように、バー611、621上でスライダ612、622を往復させるようなドラッグ操作を行うと、そのドラッグ操作の操作速度Vdは、図14(a)に示すように、正の値と負の値とを交互に繰りかえす。制御部45は、図14(b)に示すように、正負の値が交互に生じるドラッグ操作の操作速度Vdの絶対値|Vd|に基づいて、ロボット20、30の動作速度Vrを決定する。
次に、制御部45は、ステップS24において、動作指令生成処理を実行し、動作態様決定処理(ステップS15、S17)で決定したロボット20、30の動作態様と、動作方向決定処理(ステップS20、S21)で決定したロボット20、30の動作方向と、動作速度決定処理(ステップS23)で決定したロボット20、30の動作速度Vrとに基づいて、ロボット20、30を動作させるための動作指令を生成する。そして、制御部45は、ステップS25において、ステップS24で生成した動作指令をコントローラ11へ送信する。コントローラ11は、ティーチングペンダント40から受信した動作指令に基づいて、ロボット20、30を動作させる。
次に、制御部45は、ステップS26において、操作図形表示処理を実行し、ドラッグ操作の現在位置P1に合わせて、ステップS16で表示された第1操作図形61又はステップS18で表示された第2操作図形62の形態を変更して表示する。この場合、ステップS16の実行によってタッチパネルディスプレイ42に第1操作図形61が表示されていれば、制御部45は、ドラッグ操作の現在位置P1に合わせて第1操作図形61の第1スライダ612を移動させる。また、ステップS18の実行によってタッチパネルディスプレイ42に第2操作図形62が表示されていれば、制御部45は、ドラッグ操作の現在位置P1に合わせて第2操作図形62の第2スライダ622を移動させる。これにより、タッチパネルディスプレイ42に表示されている操作図形61、62のスライダ612、622は、ドラッグ操作に追従するように移動する。
また、本実施形態の場合、図8又は図11に示すように、制御部45は、表示制御部48の処理により、動作表示65をタッチパネルディスプレイ42に表示する。動作表示65は、現在設定されているロボット20、30の動作態様及び動作方向を表示するものである。すなわち、動作表示65は、ステップS15、S17で決定された動作態様、及びステップS20、21で決定された動作方向を示すものである。
次に、制御部45は、ステップS27を実行し、操作検出部46の検出結果に基づいて、操作が終了されたか否かを判断する。この場合、操作の終了とは、ユーザの指90等がタッチパネルディスプレイ42から離間したことをいう。つまり、ドラッグ操作の操作速度が0になっただけでは、操作の終了とは判断されない。
ドラッグ操作が継続している場合(ステップS27でNO)、制御部45は、ステップS22へ移行し、ステップS22〜S27を繰りかえす。なお、ステップS22〜S27の処理は、例えば0.5秒毎に繰り返される。そのため、ドラッグ操作の入力と、ロボット20、30の動作と、スライダ612、622の移動との間には、大きな時差は生じない。したがって、ユーザは、略リアルタイムでロボット20、30を手動操作しているとの印象を受け得る。
また、ユーザは、ステップS15、S17で動作態様が決定され、かつステップS20、S21で動作方向が決定された後は、図9と図10又は図12と図13で示すような往復方向へのドラッグ操作を継続することで、その動作態様及び動作方向でロボット20、30の動作を継続させることができる。そして、制御部45は、操作検出部46の検出結果に基づいて、ドラッグ操作が終了したと判断すると(ステップS27でYES)、ステップS28、S29を実行する。
制御部45は、ステップS28において、上述した処理で決定したロボット20、30の動作態様及び動作方向の設定を解除つまり初期化する。これにより、ロボット20、30の動作が終了する。そして、制御部45は、ステップS29において、表示制御部48の処理により、方向図形50及び操作図形61、62をタッチパネルディスプレイ42上から消去して、画面の表示内容を初期化する。これにより、一連の処理が終了する。そして、制御部45は、図4のステップS11へ戻り、再度ステップS11〜S29の処理を実行する。これにより、ユーザは、新たな動作態様及び動作方向による手動操作が可能になる。すなわち、ユーザは、ロボット20、30の動作態様及び動作方向を変更することができるようになる。
本実施形態によれば、制御部45は、動作指令生成部47の処理により、動作方向決定処理と、動作速度決定処理と、を行うことができる。動作方向決定処理は、ロボット20、30の動作方向を決定する処理である。動作速度決定処理は、動作方向決定処理が行われた後に操作検出部46がタッチパネルディスプレイ42に対する特定の直線方向、この場合第1方向又は第2方向における正又は負方向へのドラッグ操作を検出した場合に、そのドラッグ操作の操作速度Vdの絶対値|Vd|に基づいて、動作方向決定処理で決定された動作方向へロボット20、30を動作させるための動作速度Vrを決定する処理である。
すなわち、上述した構成において、ロボット20、30の動作速度Vrは、ロボット20、30の動作方向が決定され、かつタッチパネルディスプレイ42上において第1方向又は第2方向に対する正又は負方向へのドラッグ操作が行われた場合に、そのドラッグ操作の操作速度Vdの絶対値|Vd|に基づいて決定される。つまり、ロボット20、30の動作速度Vrを決定するために行われるドラッグ操作において、そのドラッグ操作の正負方向は、ロボット20、30の動作方向に影響しない。したがって、ユーザは、タッチパネルディスプレイ42上において第1方向又は第2方向へ向かって直線的に往復するように、すなわちタッチパネルディスプレイ42を指90等で擦るようにドラッグ操作を行うことで、そのドラッグ操作の操作速度Vdに応じた動作速度Vrでロボット20、30を動作させ続けることができる。
例えば、ユーザが第1方向又は第2方向へ速い操作速度Vdで往復するようにドラッグ操作をし続けた場合、つまりユーザが指90等によってタッチパネルディスプレイ42を速い速度で擦り続けた場合には、ロボット20、30は、その速い操作速度Vdに対応した速い動作速度Vrで動作し続ける。一方、ユーザ第1方向又は第2方向へ遅い速度で往復するようにドラッグ操作をし続けた場合、つまりユーザが指90等によってタッチパネルを遅い速度で擦り続けた場合には、ロボット20、30は、その遅い操作速度Vdに対応した遅い動作速度Vrで動作し続ける。そして、ユーザがドラッグ操作を停止すれば、ロボット20、30も停止する。
この様に、本実施形態のティーチングペンダント40によれば、ユーザは、自己の指90等を動かし続けることによって、ロボット20、30を動作させ続けることができ、自己の指等を止めることによって、ロボット20、30を停止させることができる。そして、ユーザは、自己の指90等の移動速度Vdを調整することで、ロボット20、30の動作速度Vrを調整することができる。これにより、ユーザは、自己のドラッグ操作による指90等の動きと、ロボット20、30の動作とが関連しているとの印象を受け易い。したがって、ユーザは、自己が行っているドラッグ操作と、そのドラッグ操作によって行われるロボット20、30の動作との関連性を直感的に判断することができ、その結果、ユーザの操作性の向上を図ることができる。
更に、本実施形態のティーチングペンダント40によれば、ユーザがタッチパネルディスプレイ42上を往復するように継続してドラッグ操作を行うことで、ロボット20、30の動作を継続させることができる。このため、ユーザは、タッチパネルディスプレイ42の画面サイズに制限されずに、ロボット20、30を動作させるためのドラッグ操作を継続することができる。したがって、ドラッグ操作がタッチパネルディスプレイ42の画面サイズに制限されて継続できなくなることにより、ロボット20、30の動作が不本意に停止されること等を回避することができる、その結果、操作性の向上が図られる。また、ロボット20、30を動作させるためのドラッグ操作の継続は、タッチパネルディスプレイ42の画面サイズに制限されないため、タッチパネルディスプレイ42を小型化することができる。例えばティーチングペンダント40を、ユーザの腕に装着可能な腕時計型のウェアラブル端末で構成した場合であっても、ユーザは、ウェアラブル端末上の小さな画面で適切にロボット20、30の手動操作を行うことができる。
また、本実施形態のティーチングペンダント40によれば、ロボット20、30の動作距離は、ロボット20、30の動作速度Vrに、ドラッグ操作を行っている時間つまり操作時間を乗じたものとなる。そして、ロボット20、30の動作速度Vrは、ドラッグ操作の操作速度と相関している。すなわち、ロボット20、30の動作距離は、ドラッグ操作の操作速度Vdにドラッグ操作の操作時間を乗じたもの、つまりドラッグ操作による指等の移動距離に相関する。この場合、例えばドラッグ操作による指等の移動距離が短いときは、ロボット20、30の動作距離が短くなり、ドラッグ操作による指等の移動距離が長くなれば、ロボット20、30の動作距離も長くなる。つまり、ユーザは、例えば小刻みに往復するようなドラッグ操作を行って指等の移動距離を短くすることで、ロボット20、30の動作距離を短くできる。また、ユーザは、例えば大きく往復するようなドラッグ操作を行って指等の移動距離を長くすることで、ロボット20、30の動作距離を長くできる。
このように、本実施形態のティーチングペンダント40によれば、ユーザは、自己のドラッグ操作による指等の移動距離を調整することで、ロボット20、30の動作距離を調整することができる。これによれば、ユーザは、自己のドラッグ操作による指等の移動距離を、ロボット20、30の動作距離に反映させているような印象を受け易くなる。すなわち、自己が行っているドラッグ操作と、そのドラッグ操作によって行われるロボット20、30の動作との関連性を直接的で直感的に判断することができ、その結果、ユーザの操作性の向上を図ることができる。
動作方向決定処理は、ドラッグ操作の開始直後の操作方向が第1方向又は第2方向における正方向である場合にロボット20、30の動作方向を正方向に決定し、ドラッグ操作の開始直後の操作方向が第1方向又は第2方向における負方向である場合にロボット20、30の動作方向を負方向に決定する処理を含んでいる。すなわち、ロボット20、30の動作方向は、ドラッグ操作の開始直後の操作方向によって決定される。そして、その後継続して行われるドラッグ操作の操作速度Vdの絶対値|Vd|によって、ロボット20、30の動作速度Vrが決定される。これによれば、ユーザは、ロボット20、30の動作方向を決定するための操作を別途行う必要が無く、一連のドラッグ操作によって、ロボット20、30の動作方向を決定する操作と動作速度Vrを決定する操作との両方を行うことができる。その結果、操作の手数を削減することができて操作性の向上が図られる。
また、制御部45は、動作指令生成部47の処理により、動作態様決定処理を行うことができる。動作態様決定処理は、操作検出部46で検出したドラッグ操作の操作方向が第1方向である場合にロボット20、30の動作態様を第1動作態様に決定し、ドラッグ操作の操作方向が第2方向である場合にロボット20、30の動作態様を第2動作態様に決定する処理である。これによれば、ユーザは、ドラッグ操作を、第1方向と第2方向とで使い分けることで、ロボット20、30の2つの動作態様について手動操作することができる。したがって、ロボット20、30の動作態様を選択するための操作を削減することができ、その結果、操作の手数を削減して操作性の向上が図られる。
また、第1方向と第2方向とは直交している。この場合、第1方向と第2方向との成す角度は、これら第1方向と第2方向との成す角度が取り得る範囲の中で最も大きい直角である。そのため、ユーザは、第1方向へのドラッグ操作と、第2方向へのドラッグ操作と、を区別して操作し易い。したがって、ユーザが、ドラッグ操作の操作方向を間違えて操作したり、ドラッグ操作がユーザの意図しない操作方向となってしまったりすることを低減することができる。その結果、ドラッグ操作の誤操作が低減され、操作性の更なる向上や安全性の向上が図られる。
ティーチングペンダント40は、図形の表示が可能なタッチパネルディスプレイ42と、タッチパネルディスプレイ42の表示内容を制御する表示制御部48と、を更に備えている。制御部45は、表示制御部48の処理により、方向図形表示処理を行うことができる。方向図形表示処理は、操作検出部46がタッチ操作を検出した場合に、タッチ操作のタッチ位置P0を基準として第1方向及び第2方向を示す方向図形50をタッチパネルディスプレイ42に表示させる処理である。これによれば、ユーザが、ドラッグ操作をするためにタッチパネルディスプレイ42をタッチ操作した場合に、タッチパネルディスプレイ42上に、第1方向及び第2方向を示す方向図形50が表示される。第1方向及び第2方向は、ロボット20、30の動作速度Vrを決定する際に行うドラッグ操作の操作方向である。したがって、ユーザは、ドラッグ操作を開始する前に、タッチパネルディスプレイ42上の方向図形50を見ることで、どの方向へドラッグ操作を行えばよいかの判断がし易くなる。その結果、操作性が更に向上する。
制御部45は、表示制御部48の処理により、操作図形表示処理を行うことができる。操作図形表示処理は、操作検出部46が第1方向又は第2方向へのドラッグ操作を検出した場合に、ドラッグ操作の現在位置P1の移動に伴って形態が変化する操作図形61、62をタッチパネルディスプレイ42に表示させる処理である。これによれば、ユーザは、自己のドラッグ操作による指90等の移動つまり現在位置P1の移動に伴って変化する操作図形61、62を見ることで、自己のドラッグ操作が適切に行われているか否かを目視で判断することができる。その結果、直感的な操作が可能になってユーザの操作感覚の向上を図られ、ひいては操作性の向上を図ることができる。
また、本実施形態によるロボット操作プログラムを、例えばタッチパネルディスプレイを備える汎用のタブレットPCやスマートフォン等によって実行することで、汎用のタブレットPCやスマートフォン等に、上述したティーチングペンダント40と同等の機能を付加することができる。
また、上記実施形態において、ユーザは、タッチパネルディスプレイ42に対するタッチ操作及びドラッグ操作によって、ロボット20、30を動作させることができる。これによれば、ユーザは、物理的な操作キーを操作する場合に比べて、直感的で容易にマニュアル操作を行うことができる。更に、これによれば、例えばマニュアル操作を行うための物理的な操作キーを削減することができる。その結果、ティーチングペンダント40の小型化やタッチパネルディスプレイ42の画面サイズの拡大、低価格化などを実現できるといった効果が期待できる。
なお、図7に示す方向図形50のサークル図形53は、円形に限られず、例えば多角形等であっても良い。また、本実施形態において、方向図形50は、少なくとも第1方向図形51と第2方向図形52、又はサークル図形53のいずれか一方を有していれば良い。第1方向図形51と第2方向図形52、又はサークル図形53の少なくとも一方をタッチパネルディスプレイ42に表示することで、ユーザに対して、第1方向及び第2方向を提示することができるからである。したがって、本実施形態においては、第1方向図形51と第2方向図形52、又はサークル図形53のいずれか一方を非表示として省略することができる。
(第2実施形態)
次に、第2実施形態について、図15〜図20を参照して説明する。
本実施形態では、制御部45は、ドラッグ操作とは異なる方法により、ロボット20、30の動作態様及び動作方向を決定することができる。つまり、本実施形態では、図4のステップS15、17における動作態様決定処理、及び図5のステップS20、21における動作方向決定処理の具体的な内容が、上記第1実施形態と異なる。すなわち、制御部45は、手動操作が開始されて図15のステップS31が実行されると、表示制御部48の処理によって、図16又は図17に示す動作態様選択画面70、80をタッチパネルディスプレイ42上に表示させる。動作態様選択画面70、80は、ユーザが、タッチ操作により、ロボット20、30の動作態様を選択するためのものである。
例えば図16に示す動作態様選択画面70は、4軸ロボット20用であり、各軸系の選択部71と、手先系の選択部72と、を有している。選択部71、72の外形は円形に形成されている。選択部71、72の円の内側は、各動作系の駆動態様の数で等分されている。4軸ロボット用の動作態様選択画面70の場合、各選択部71、72の円の内側は、それぞれ4軸ロボット20の各動作系における駆動態様の数である4個に等分されている。そして、4等分された選択部71、72の内側の各領域は、それぞれ各軸系の選択領域711〜714と、手先系の選択領域721〜724とに設定されている。
この場合、各軸系の選択部71において、選択領域711は第1軸J21の動作態様に割り当てられ、選択領域712は第2軸J22の動作態様に割り当てられ、選択領域713は第3軸J23の動作態様に割り当てられ、選択領域714は第4軸J24の動作態様に割り当てられている。また、手先系の選択部72において、選択領域721はX方向への動作態様に割り当てられ、選択領域722はY方向への動作態様に割り当てられ、選択領域723はZ方向への動作態様に割り当てられ、選択領域724はRz方向への動作態様に割り当てられている。これにより、ユーザは、選択領域711〜714、721〜724のいずれかの領域をタッチ操作することにより、その領域に割り当てられた動作態様でロボット20を動作させることができる。
また、例えば図17に示す動作態様選択画面80は、6軸ロボット用であり、各軸系の選択部81と、手先系の選択部82と、を有している。選択部81、82の外形は円形に形成されている。選択部81、82の円の内側は、各動作系の駆動態様の数で等分されている。6軸ロボット用の動作態様選択画面80の場合、各選択部81、82の円の内側は、それぞれ6軸ロボット30の各動作系における駆動態様の数である6個に等分されている。そして、6等分された選択部81、82の内側の各領域は、それぞれ各軸系の選択領域811〜816と、手先系の選択領域821〜826とに設定されている。
この場合、各軸系の選択部81において、選択領域811は第1軸J31の動作態様に割り当てられ、選択領域812は第2軸J32の動作態様に割り当てられ、選択領域813は第3軸J33の動作態様に割り当てられ、選択領域814は第4軸J34の動作態様に割り当てられ、選択領域815は第5軸J35の動作態様に割り当てられ、選択領域816は第6軸J36の動作態様に割り当てられている。また、手先系の選択部82において、選択領域821はX方向への動作態様に割り当てられ、選択領域822はY方向への動作態様に割り当てられ、選択領域823はZ方向への動作態様に割り当てられ、選択領域824はRz方向への動作態様に割り当てられ、選択領域825はRy方向への動作態様に割り当てられ、選択領域826はRx方向への動作態様に割り当てられている。これにより、ユーザは、選択領域811〜816、821〜826のいずれかの領域をタッチ操作することにより、その領域に割り当てられた動作態様でロボット30を動作させることができる。
制御部45は、図15のステップS32において、操作検出部46の検出結果に基づいて、選択領域711〜714、721〜724のいずれか又は選択領域811〜816、821〜826のいずれかに対して操作があったか否かを判断する。いずれの選択領域に対してもタッチ操作がされていない場合(ステップS32でNO)、制御部45は、動作態様選択画面70、80を表示させたまま待機する。一方、いずれかの選択領域に対してタッチ操作があった場合(ステップS32でYES)、制御部45は、ステップS33へ移行する。そして、制御部45は、ステップS33を実行すると、動作指令生成部47の処理によって、手動操作によるロボット20、30の動作態様をステップS32で選択された動作態様に決定する。例えば、図18に示すように、4軸ロボット20の動作態様選択画面70において、ユーザが各軸系の選択部71の選択領域711をタッチ操作した場合、制御部45は、ロボット20の動作態様を、各軸系の第1軸J21を駆動させる動作態様に決定する。
次に、制御部45は、図15のステップS34を実行し、表示制御部48の処理によって、図19に示すように、第3操作図形63、動作表示66、正方向ボタン55、及び負方向ボタン56をタッチパネルディスプレイ42に表示する。第3操作図形63は、第1操作図形61及び第2操作図形62と同様の構成であって、第3バー631及び第3スライダ632を有している。この場合、第3操作図形63は、第1操作図形61と同様に、タッチパネルディスプレイ42に対して横長となるように配置されている。しかしこれに限られず、第2操作図形62と同様に、タッチパネルディスプレイ42に対して縦長となるように配置してもよいし、その他の態様で配置してもよい。
また、動作表示66は、第1実施形態の動作表示65と同様に、ロボット20、30の動作態様及び動作方向を示すものである。図19に示す動作表示66は、ロボット20、30の動作態様が第1軸J21を駆動させる態様に決定されているが、その動作方向が未だ決まっていない状態を示している。この場合、動作表示66は、各軸系の第1軸J21の駆動を示す「J21」と表示される。
正方向ボタン55は、ロボット20、30の正方向への動作に対応している。負方向ボタン56は、ロボット20、30の負方向への動作に対応している。ユーザは、正方向ボタン55をタッチ操作した状態で、第3バー631に沿って第3スライダ632を往復移動させることで、ロボット20、30を、ステップS33で決定した動作態様で正方向へ動作させることができる。また、ユーザは、負方向ボタン56をタッチ操作した状態で、第3バー631に沿って第3スライダ632を往復移動させることで、ロボット20、30を、ステップS33で決定した動作態様で負方向へ動作させることができる。
すなわち、制御部45は、ステップS35において、操作検出部46の検出結果に基づいて、方向ボタン55、56に対してタッチ操作が行われたか否かを判断する。タッチ操作がされていない場合(ステップS35でNO)、制御部45は、図19の状態で待機する。一方、例えば図20に示すように、正方向ボタン55又は負方向ボタン56のいずれか一方がタッチ操作されると、制御部45は、タッチ操作が行われたと判断し(ステップS35でYES)、ステップS36を実行する。
制御部45は、ステップS36において、動作方向決定処理を実行する。制御部45は、正方向ボタン55がタッチ操作されていれば、ロボット20、30の動作方向を正方向に決定し、負方向ボタン56がタッチ操作されていれば、ロボット20、30の動作方向を負方向に決定する。なお、例えば図20に示すように、各軸系の第1軸J21の動作態様が選択された状態において、負方向ボタン56がタッチ操作されると、動作表示66は、各軸系の第1軸J21の動作態様を示す「J21」に負方向への動作を示す「(−)」を追加したものとなる。また、詳細は図示しないが、各軸系の第1軸J21の動作態様が選択された状態において、正方向ボタン55がタッチ操作されると、動作表示66は、各軸系の第1軸J21の動作態様を示す「J21」に正方向への動作を示す「(+)」を追加したものとなる。
その後、制御部45は、ステップS37において、第3操作図形63の第3スライダ632に対するドラッグ操作が行われたか否かを判断する。制御部45は、第3スライダ632に対するドラッグ操作の検出が無い場合(ステップS37でNO)、ドラッグ操作が行われるまで待機する。そして、制御部45は、第3スライダ632に対するドラッグ操作が検出されると(ステップS37でYES)、図5のステップS22以降を実行する。これにより、ユーザは、第3操作図形63に対するドラッグ操作を継続することで、ユーザの選択した動作態様及び動作方向で、ロボット20、30を動作させ続けることができる。
これによれば、ユーザは、3以上の動作態様を切り替えて手動操作できるため、上記第1実施形態とは異なった観点における操作性の向上を図ることができる。また、選択部71、72、81、82は、円形に形成されており、その円の内側は、ロボット20、30の動作態様の数に応じて等分されている。そして、その等分された円の内側の領域には、ロボット20、30の各動作態様が割り当てられている。これによれば、ユーザは、どの選択領域にどの動作態様が割り当てられているかを認識し易く、その結果、操作性の更なる向上を図ることができる。
(第3実施形態)
次に、第3実施形態について、図21〜図23も参照して説明する。
本実施形態によるロボットシステム10は、動作速度決定処理によるロボット20、30の動作速度Vrの決定方法に特徴を備えている。すなわち、ロボット20、30の動作速度Vrが、ドラッグ操作の操作速度Vdの絶対値|Vd|を単純に比例させただけの値である場合には、次のような問題が生じ得る。この場合、例えばユーザが意図しない急激なドラッグ操作を入力してしまうと、その急激なドラッグ操作がそのままロボット20、30の動作速度Vrに反映されてしまう。すると、ロボット20、30が、ユーザの意図しない態様で動作し得ることになる。そこで、本実施形態において、動作速度決定処理は、ユーザによって入力されるドラッグ操作の操作速度Vdの絶対値|Vd|を所定の方法で補正し、その補正値Vdxに基づいて、ロボット20、30の動作速度Vrの決定する処理を含んでいる。
具体的には、制御部45は、ドラッグ操作の操作速度Vdを、一定のサンプリング周期で、図3に示す記憶領域452に記憶させる。本実施形態の場合、サンプリング周期は、例えば数〜数十m秒に設定されている。記憶領域452は、例えばn個の操作速度Vdのデータを記憶することができる。図21は、ある時点において記憶領域452に記憶されている操作速度Vdのデータを示している。記憶領域452は、過去の所定のサンプリング周期に亘ってn個の操作速度Vdのデータを記憶している。
この場合、図21に示すように、現在に対してiサンプリング周期前に記憶された操作速度VdをVd(i)とする。すなわち、図21中のiは任意の正の整数であり、記憶領域452に記憶されている操作速度Vdのデータの新旧を表している。つまり、iの値が大きくなるほどその操作速度Vd(i)が取得された時期が古いことを示し、iの値が小さくなるほどその操作速度Vd(i)が取得された時期が新しいことを示している。この場合、i=1の場合における操作速度Vd(1)のデータが、記憶領域452に記憶されている操作速度Vd(i)の中で最新のものとなる。
制御部45は、操作速度Vd(i)のデータを、いわゆる先入れ先出し方式で記憶領域452に記憶させる。すなわち、制御部45は、最新の操作速度Vd(i)を取得すると、その最新の操作速度Vd(i)を操作速度Vd(1)として記憶領域452に記憶させる。そして、制御部45は、1サンプリング周期前におけるVd(1)、Vd(2)・・・を、Vd(2)|、|Vd(3)|・・・に繰り下げて記憶領域452に記憶させる。このようにして、制御部45は、記憶領域452に記憶されている操作速度Vd(i)のデータを1サンプリング周期毎に更新する。
ここで、現在の操作速度Vd(1)を第1操作速度とし、現在に対して所定サンプリング周期前例えば1サンプリング周期前の操作速度Vd(2)を第2操作速度とする。なお、第2操作速度は、第1操作速度に隣接したつまり第1操作速度と連続したサンプリング周期のものでなくてもよい。すなわち、第2操作速度は、例えば第1操作速度から数サンプリング周期離れた操作速度Vd(i)であってもよい。
動作速度決定処理は、ドラッグ操作の操作速度Vdの絶対値|Vd|を補正した補正値Vdxを算出し、その補正値Vdxに基づいて前記動作速度Vrを決定する処理を含んでいる。補正値Vdxは、第1操作速度Vd(1)の絶対値|Vd(1)|と第2操作速度Vd(2)の絶対値|Vd(2)|とに基づいて算出される。具体的には、動作速度決定処理は、次の式(1)に示すように、第1操作速度Vd(1)の絶対値|Vd(1)|が第2操作速度Vd(2)の絶対値|Vd(2)|の1/2未満である場合には、補正値Vdxを0にする。
また、動作速度決定処理は、次の式(2)に示すように、第1操作速度Vd(1)の絶対値|Vd(1)|が第2操作速度Vd(2)の絶対値|Vd(2)|の1/2以上である場合には、次の式(3)に基づいて、補正値Vdxを算出する。この場合、補正値Vdxは、第1操作速度Vd(1)の絶対値|Vd(1)|から第1操作速度Vd(1)の絶対値|Vd(1)|と第2操作速度Vd(2)の絶対値|Vd(2)|との差分の絶対値を引いた値になる。
すなわち、制御部45は、図5のステップS23において、動作速度決定処理を実行すると、上述した式(1)〜(3)に従って補正した補正値Vdxを算出する。そして、制御部45は、この補正値Vdxに応じた大きさ、例えばこの補正値Vdxに所定の係数を乗じた値にロボット20、30の動作速度Vrを決定する。
ここで、第1操作速度Vd(1)の絶対値|Vd(1)|と第2操作速度Vd(2)の絶対値|Vd(2)|との大小関係は、次の3通りが考えられる。
|Vd(1)|>|Vd(2)|・・・条件(1)
|Vd(1)|=|Vd(2)|・・・条件(2)
|Vd(1)|<|Vd(2)|・・・条件(3)
また、第2操作速度Vd(2)の絶対値|Vd(2)|は、現在に対して所定サンプリング周期前つまり直前に操作されたドラッグ操作の操作速度Vdの絶対値|Vd|を意味する。そのため、上記の条件(1)で示すように、第2操作速度Vd(2)の絶対値|Vd(2)|よりも第1操作速度Vd(1)の絶対値|Vd(1)|の方が大きいということは、ドラッグ操作の操作速度Vdの絶対値|Vd|が増加しているということ、つまりドラッグ操作が加速していることを意味する。この場合、上述した式(3)によると、補正値Vdxは、次の式(4)で表すことができる。つまりこの場合、補正値Vdxは、第2操作速度Vd(2)の絶対値|Vd(2)|に等しくなる。
また、上記の条件(2)で示すように、第1操作速度Vd(1)の絶対値|Vd(1)|と第2操作速度Vd(2)の絶対値|Vd(2)|とが等しいということは、ドラッグ操作の操作速度Vdの絶対値|Vd|が変化していないということ、つまりドラッグ操作が一定速度で行われていることを意味する。この場合、上述した式(3)によると、補正値Vdxは、次の式(5)で表すことができる。つまりこの場合、補正値Vdxは、第1操作速度Vd(1)の絶対値|Vd(1)|に等しくなる。
そして、上記の条件(3)で示すように、第2操作速度Vd(2)の絶対値|Vd(2)|よりも第1操作速度Vd(1)の絶対値|Vd(1)|の方が小さいということは、ドラッグ操作の操作速度Vdの絶対値|Vd|が減少しているということ、つまりドラッグ操作が減速していることを意味する。この場合、補正値Vdxは、上述した式(3)に基づくと、次の式(6)で表すことができる。
このように、条件(1)に示すように、第2操作速度Vd(2)の絶対値|Vd(2)|よりも第1操作速度Vd(1)の絶対値|Vd(1)|の方が大きい場合つまりドラッグ操作が加速している場合、上述した式(4)によれば、補正値Vdxは、第2操作速度Vd(2)の絶対値|Vd(2)|に等しい。また、条件(2)に示すように、第1操作速度Vd(1)の絶対値|Vd(1)|と第2操作速度Vd(2)の絶対値|Vd(2)|とが等しい場合つまりドラッグ操作が一定速度で行われている場合、上述した式(5)によれば、補正値Vdxは、第1操作速度Vd(1)の絶対値|Vd(1)|に等しい。したがって、この両者の場合において、補正値Vdxは、0以上の値となる。
一方、条件(3)に示すように、第2操作速度Vd(2)の絶対値|Vd(2)|よりも第1操作速度Vd(1)の絶対値|Vd(1)|の方が小さい場合つまりドラッグ操作が減速している場合、上述した式(6)によると、補正値Vdxは、負の値を取り得る。そのため、制御部45は、上述した式(6)に基づいて算出した補正値Vdxが負の値となった場合、補正値Vdxを0に設定する。補正値Vdxが負の値になるのは、次の式(7)で示すように、第1操作速度Vd(1)の絶対値|Vd(1)|が第2操作速度Vd(2)の絶対値|Vd(2)|の1/2未満である場合である。つまり、第1操作速度Vd(1)の絶対値|Vd(1)|が第2操作速度Vd(2)の絶対値|Vd(2)|の半分未満になるような急激な減速が行われた場合に、上述した式(6)において補正値Vdxが負の値になり得る。
次に、図22及び図23も参照して上記構成の作用効果について説明する。図22及び図23に示す破線C1は、ある態様のドラッグ操作が入力された場合において、そのドラッグ操作の操作速度Vdの絶対値|Vd|を時系列的に示したものである。実線C2は、破線C1で示す絶対値|Vd|に基づいて算出した補正値Vdxを示すものである。
図22に示すように、ドラッグ操作が加速している区間(以下、加速区間と称する)では、上述した式(4)の通り、補正値Vdxは第2操作速度Vd(2)の絶対値|Vd(2)|になる。したがって、この加速区間において、補正値Vdxは、現在のドラッグ操作の操作速度Vdの絶対値|Vd|である第1操作速度Vd(1)の絶対値|Vd(1)|を超えることはない。また、ドラッグ操作が一定速度で行われている区間(以下、一定区間と称する)では、上述した式(5)の通り、補正値Vdxは第1操作速度Vd(1)の絶対値|Vd(1)|になる。したがって、この一定区間においても、補正値Vdxは、現在のドラッグ操作の操作速度Vdの絶対値|Vd|である第1操作速度Vd(1)の絶対値|Vd(1)|を超えることはない。
そして、ドラッグ操作が減速している区間(以下、減速区間と称する)では、|Vd(1)|<|Vd(2)|である。この場合、上述した式(6)に基づくと、補正値Vdxと第1操作速度Vd(1)の絶対値|Vd(1)|との関係は次の式(8)になる。すなわち、この減速区間において、補正値Vdxは、第1操作速度Vd(1)の絶対値|Vd(1)|よりも小さくなる。したがって、この減速区間においても、補正値Vdxは、現在のドラッグ操作の操作速度Vdの絶対値|Vd|である第1操作速度Vd(1)の絶対値|Vd(1)|を超えることはない。つまり、補正値Vdxは、加速区間、一定区間、減速区間の全ての区間において、第1操作速度Vd(1)の絶対値|Vd(1)|を超えることはない。
このように、本実施形態によれば、動作速度決定処理は、第1操作速度Vd(1)の絶対値|Vd(1)|が第2操作速度Vd(2)の絶対値|Vd(2)|の1/2未満である場合には、補正値Vdxを0にする。動作速度決定処理は、第1操作速度Vd(1)の絶対値|Vd(1)|が第2操作速度Vd(2)の絶対値|Vd(2)|の1/2以上である場合には、補正値Vdxを、第1操作速度Vd(1)の絶対値|Vd(1)|から第1操作速度Vd(1)の絶対値|Vd(1)|と第2操作速度Vd(2)の絶対値|Vd(2)|との差分の絶対値を引いた値にする。
これによれば、図22に示すように、加速区間、一定区間、減速区間の全ての区間において、補正値Vdxは、第1操作速度Vd(1)の絶対値|Vd(1)|以下となる。したがって、現在の操作速度Vdである第1操作速度Vd(1)の絶対値|Vd(1)|を超える値に基づいてロボット20、30の動作速度Vrが決定されることがない。つまり、例えば図23に示すように、ユーザの意図しない急激なドラッグ操作が入力されたとしても、補正値Vdxは、現在の操作速度Vdである第1操作速度Vd(1)の絶対値|Vd(1)|以下の値となる。したがって、タッチパネル421に対して、ユーザが、自己の操作に依存してロボット20、30の動作速度Vrが決定されるような操作を行う場合において、その初期入力時の加速を抑えることができる。これにより、ユーザの意図しない急激なドラッグ操作がそのままロボット20、30の動作速度Vrに反映されてしまうことを防止することができる。したがって、ユーザの意図しない態様でロボット20、30が動作することを極力防ぐことができ、その結果、安全性の向上が図られる。
また、補正値Vdxは、常に第1操作速度Vd(1)の絶対値|Vd(1)|以下となることから、ロボット20、30を減速させる際、ロボット20、30は、ユーザの操作速度Vdの減速分よりも早く減速する。したがって、例えばユーザがロボット20、30の動作を停止させたいような場合、ユーザは、ロボット20、30を直ぐに停止させることができて安全である。このように、本実施形態によれば、加速時には、ユーザの操作速度Vdに対してロボット20、30の加速を抑えることができ、減速時には、ユーザの操作速度Vdに対してより早くロボット20、30を減速させることができる。したがって、ロボット20、30の加速時及び減速時の両方において安全性の向上が図られる。
(第4実施形態)
次に、第4実施形態について、図24〜図27も参照して説明する。
本実施形態によるロボットシステム10も、動作速度決定処理によるロボット20、30の動作速度Vrの決定方法に特徴を備えている。すなわち、ロボット20、30を扱う現場においては、油や汚れなどがティーチングペンダント40のタッチパネル421やユーザの指に付着することが想定される。
例えば油がタッチパネル421やユーザの指に付着すると、ドラッグ操作を行うユーザの指が滑り易くなる。そして、ドラッグ操作を行う際にユーザの指が滑ると、ドラッグ操作の操作速度Vdが急激に変化してしまう可能性がある。また、例えば汚れがタッチパネル421やユーザの指に付着すると、ドラッグ操作を行うユーザの指が滑り難くなる。すると、ドラッグ操作を行うユーザの指にいわゆるビビリが生じて、ドラッグ操作の操作速度Vdが振動的に変化してしまう可能性がある。このような事情において、ロボット20、30の動作速度Vrが、現在のドラッグ操作の操作速度Vdを単純に参照しただけの値である場合、つまり操作速度Vdの絶対値|Vd|を単純に比例させただけの値である場合には、その急激なドラッグ操作の速度変化や振動的なドラッグ操作の速度変化がそのままロボット20、30の動作速度Vrに反映されてしまう。すると、ロボット20、30が、ユーザの意図しない態様で動作し得ることになる。
そこで、本実施形態のロボットシステム10は、上述した第3実施形態と同様に、ドラッグ操作の操作速度Vdを一定のサンプリング周期で記憶することができる記憶領域452を備えている。そして、動作速度決定処理は、過去の複数個例えばn個の操作速度Vdの絶対値|Vd|の移動平均値を補正値Vdxとし、その補正値Vdxに基づいてロボット20、30の動作速度を決定する処理を含んでいる。
ここで、移動平均の代表例としては、単純移動平均、加重移動平均、及び指数移動平均がある。この場合、単純移動平均による補正値Vdxを単純移動平均値VdSとし、加重移動平均による補正値Vdxを加重移動平均値VdWとし、指数移動平均による補正値Vdxを指数移動平均値VdEとする。単純移動平均値VdS、加重移動平均値VdW、及び指数移動平均値VdEは、それぞれ次の式(9)〜式(12)によって算出される。
上述した式(9)に示すように、単純移動平均値VdSは、過去の複数個この場合n個の操作速度Vdの絶対値|Vd|を合計し、その合計値をその操作速度Vdの個数nで割った値である。この単純移動平均値VdSによれば、ドラッグ操作の操作速度Vdの急激な速度変化をある程度平滑化できる。そのため、この単純移動平均値VdSにおいても、ドラッグ操作の急激な速度変化や振動的な速度変化をロボット20、30の動作速度Vrに直接的に反映させない、といった作用効果をある程度奏する。しかしながら、単純移動平均値VdSは、平均化する複数の操作速度Vdの中に急激な速度変化となる値が含まれなくなった瞬間に、平均値化されていない実際の操作速度Vdに戻そうとして大きく変動する。すると、ドラッグ操作の操作速度Vdが大きく変化していないにもかかわらず、単純移動平均値VdSが大きく変化することになる。その結果、例えばユーザが一定速度で操作しているにも関わらずロボット20、30の動作速度Vrが突発的に変動する、といった事態が生じるおそれがある。すると、ロボット20、30の動作がユーザの意図に反したものとなって、ユーザの違和感の原因やユーザの混乱を招く原因となり得る。
そこで、本実施形態において、補正値Vdxは、単純移動平均値VdSよりも、加重移動平均値VdW又は指数移動平均値VdEの方が好ましい。すなわち、動作速度決定処理は、過去の複数個の操作速度Vdの絶対値|Vd|の加重移動平均値VdW又は指数移動平均値VdEに基づいてロボット20、30の動作速度Vrを決定することが好ましい。加重移動平均値VdW及び指数移動平均値VdEは、上述した式(10)、式(11)に示すように、過去の複数個この場合n個の操作速度Vdの絶対値|Vd|を所定の係数によって重み付けすることで算出される。この場合、加重移動平均値VdWにおける係数は、過去の操作速度になるにつれて線形的に減少する係数である。また、指数移動平均における係数は、過去の操作速度になるにつれて指数関数的に減少する係数である。
次に、図24〜図27も参照して上記構成の作用効果について説明する。図24〜図27に示す破線D1は、ある態様のドラッグ操作が入力された場合において、そのドラッグ操作の操作速度Vdの絶対値|Vd|を時系列的に示したものである。実線D2は、破線D1で示す絶対値|Vd|に基づいて算出した単純移動平均値VdSを示すものである。一点鎖線D3は、破線D1で示す絶対値|Vd|に基づいて算出した加重移動平均値VdWを示すものである。そして、二点鎖線D4は、破線D1で示す絶対値|Vd|に基づいて算出した指数移動平均値VdEを示すものである。
図25〜図27に示すように、破線D1で示す操作速度Vdの絶対値|Vd|は、地点P1〜P3において急激に変化している。この場合、図25〜図27からも分かるように、各移動平均値VdS、VdW、VdEは、それぞれ地点P1〜P3で生じた操作速度Vdの急激な変化を抑制している。また、図25〜図27における地点P4〜P6は、平均化するn個の操作速度Vdの中に急激な速度変化となる値つまり各地点P1〜P3における操作速度Vdが含まれなくなった地点である。この場合、実線D2で示す単純移動平均値VdSは、各地点P4〜P6において比較的大きな変化を示している。
すなわち、加重移動平均値VdW及び指数移動平均値VdEは、操作速度Vdに急激に変化が生じた直後つまり地点P1〜P3直後の段階では単純移動平均値VdSよりも大きくなっているものの、その後、大きな変化が生じること無く滑らかに操作速度Vdの絶対値|Vd|に接近し追従していく。一方、単純移動平均値VdSは、操作速度Vdに急激に変化が生じた直後の段階では加重移動平均値VdW及び指数移動平均値VdEよりも小さくなっている。そして、単純移動平均値VdSは、暫くの期間は操作速度Vdの絶対値|Vd|と並行に推移し、その後、地点P4〜P6に到達する以前に、加重移動平均値VdW及び指数移動平均値VdEと逆転する。そして、単純移動平均値VdSは、平均化するn個の操作速度Vdの中に急激な速度変化となる値が含まれなくなると、つまり各地点P1〜P3に到達すると、操作速度Vdの絶対値|Vd|に接近するように大きく変化する。
このように、本実施形態によれば、制御部45は、過去の複数個の操作速度Vdの絶対値|Vd|の移動平均値に基づいてロボット20、30の動作速度Vrを決定する。これによれば、ドラッグ操作の操作速度Vdを平均化つまり平滑化することができる。したがって、例えばユーザの指が滑ってドラッグ操作に急激な速度変化が生じたとしても、その急激な速度変化を平滑化した移動平均値つまり急激な速度変化を低減させた値に基づいてロボット20、30の動作速度Vrを決定することができる。また、例えばユーザの指にビビリが生じてドラッグ操作に振動的な速度変化が生じたとしても、その振動的な速度変化を平滑化して滑らかにした移動平均値に基づいてロボット20、30の動作速度Vrを決定することができる。これらにより、ドラッグ操作の急激な速度変化や振動的な速度変化が、ロボット20、30の動作速度Vrに直接的に反映されることを抑制することができる。その結果、ユーザの意図しない態様でロボットが動作することを極力防ぐことができて、安全性の向上が図られる。
また、本実施形態によれば、制御部45は、ドラッグ操作の操作速度Vdの絶対値|Vd|についての加重移動平均値VdW又は指数移動平均値VdEに基づいてロボット20、30の動作速度Vrを決定する。これによれば、加重移動平均値VdW及び指数移動平均値VdEは、平均化する値に重み付けをするため、平均化する複数の操作速度Vdの中に急激な速度変化となる値が含まれなくなった場合であっても、滑らかな変化を示す。したがって、この実施形態によれば、ドラッグ操作の操作速度Vdが大きく変化していないにもかかわらず、ロボット20、30の動作速度Vrが大きく変化するといった現象を抑制することができる。その結果、ユーザは、意図した通りに違和感無くロボットを動作させることができる。
(その他の実施形態)
なお、本発明の実施形態は、上記し且つ図面に記載した各実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲において適宜変更することができる。本発明の実施形態は、例えば次のような変形または拡張が可能である。
上記各実施形態において、タッチパネル421及びディスプレイ422は、タッチパネルディスプレイ42として一体に構成されている。しかし、タッチパネル及びディスプレイは、それぞれ別体に分離した構成であってもよい。この場合、特定の直線方向を示す方向図形は、印刷等によって予めタッチパネルに設けることもできる。
また、上記実施形態によるティーチングペンダント40の操作対象となるロボットは、4軸ロボット20又は6軸ロボット30に限られない。例えば、いわゆるX−Yステージ(2軸ステージ)の上に4軸ロボット20又は6軸ロボット30を設置したものでもよい。また、ティーチングペンダント40の操作対象となるロボットには、例えば1つの駆動軸を有する直線型ロボットや、複数の駆動軸を有する直交型のロボットも含まれる。この場合、駆動軸には、機械的な回転軸に限られず、例えばリニアモータによって駆動する方式も含まれる。