(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、このようなペンダントは、入力操作部に入力される操作量に応じてロボットの移動速度を決定するか、又は入力操作部に操作が入力されている間は操作量にかかわらず一定速度でロボットを移動させる構成のものが多い。しかしこの場合、ユーザは、ロボットの移動量(移動距離)を直接決定することができないため、細かい調整がし難く、改善の余地があった。
【0005】
そこで、操作性の向上を図ることができるロボット操作装置、ロボットシステム、及びロボット操作用プログラムを提供する。
【課題を解決するための手段】
【0006】
(請求項1)
請求項1に記載のロボット操作装置は、ユーザからの入力操作を受ける入力操作部と、入力操作部に入力された入力操作に基づいて複数の駆動軸を有する多関節型のロボットを動作させるための動作指令を生成する動作指令生成部と、を備える。動作指令生成部は、入力操作部に入力された入力操作の操作量を判断する操作量判断処理と、入力操作の操作量に基づいてロボットの移動量を算出する移動量算出処理と、を行うことができる。
【0007】
従来のように、入力操作の操作量に応じてロボットの移動速度を決定するか、又は入力操作が入力されている間はその操作量にかかわらず一定速度でロボットを移動させる構成のものにおいては、ユーザは、入力操作を行う時間を調整することで、ロボットの移動量を調整する必要がある。そのため、ユーザは、ロボットの移動量を直接入力することができず、直感的な操作を行うことができない。一方、ユーザが、ロボット操作装置にロボットの移動量等の数値を入力することも考えられる。しかし、この場合も、操作の度に数値を入力しなければならないため、直感的な操作ができないばかりか、数値を入力する手間が増え、その結果、教示に要する時間も増大することになる。
【0008】
本発明のロボット操作装置において、ユーザの入力操作部に対する入力操作の操作量と、ロボットの移動量とは相関を有することになる。すなわち、ユーザは、入力操作の操作量を調整することにより、ロボットの移動量を調整することができる。そのため、ユーザは、直感的な操作が可能になり、操作性の向上が図られる。その結果、安全性の向上が図られるとともに、教示に要する時間を低減することができる。
【0009】
(請求項2)
請求項2に記載のロボット操作装置によれば、動作指令生成部は、入力操作の操作量を入力操作に要した時間で除した値に基づいてロボットの移動速度を決定する移動速度算出処理を行うことができる。これによれば、入力操作の操作量及び入力操作に要した時間と、ロボットの移動速度とが相関を有する。したがって、ユーザは、入力操作の操作量及び時間を調整することで、ロボットの移動速度も調整することができる。
【0010】
すなわち、ユーザは、入力操作に際し、その入力操作の操作量と入力時間とを調整することにより、ロボットの移動量と移動速度との両方を調整することができる。つまり、ユーザは、ロボットの移動量を同一にする場合であっても、入力操作の入力時間を調整することで、ロボットの移動速度を調整することができる。例えば、ロボットに緩やかな動作をさせたい場合、ユーザは、入力操作の入力時間を長くするつまり入力操作をゆっくり行うことで、ロボットの移動速度を遅くすることができる。一方、ロボットに素早い動作をさせたい場合、ユーザは、入力操作の入力時間を短くするつまり入力操作を素早く行うことで、ロボットの移動速度を速くすることができる。
【0011】
このように、本構成のロボット操作装置によれば、入力操作の入力時間とロボットの移動速度とが相関を有するため、ユーザによる直感的な操作が可能になる。また、これによれば、ユーザは、ロボットの移動速度と移動量を決定するために、複数の操作例えばロボットの移動速度を決定するための操作とロボットの移動量を決定するための操作とを行う必要がない。したがって、操作が簡単になり、操作性の向上が図られる。これらの結果、安全性の向上が図られるとともに、教示に要する時間を低減することができる。
【0012】
(請求項3)
請求項3に記載のロボット操作装置によれば、動作指令生成部は、移動量決定処理を行うことができる。移動量決定処理は、入力操作の操作量を拡大又は縮小してロボットの移動量を決定するための倍率について、入力操作が操作開始位置から第1区間を通過するまでは倍率を1より小さい一定の値である第1倍率に設定し、入力操作が第1区間を通過した後は倍率を第1倍率より大きい値に設定して、ロボットの移動量を決定する処理である。
【0013】
これによれば、ユーザは、第1区間内で入力操作することで、ロボットを、1より小さい一定の倍率である第1倍率で移動させることができる。つまり、ユーザは、入力操作を、第1区間内で繰り返すことで、ロボットに微小な動作(微動)をさせることができる。また、ユーザは、第1区間を超えて入力操作することで、第1区間を超えた部分について、ロボットを、第1倍率よりも大きい倍率で移動させることができる。つまり、ユーザは、入力操作について、第1区間を超えて操作することで、ロボットに比較的大きな動作(粗動)をさせることができる。このように、ユーザは、1度の入力操作で、異なる倍率でロボットを移動させることができる。
【0014】
すなわち、これによれば、例えばロボットの微動と粗動との両方の動作を、1回の入力操作で実現することができる。したがって、ユーザは、ロボットの微動と粗動とを切り替えるための特別な操作をすることなく、微動と粗動との両方を実現することができる。これにより、操作が簡単になり、操作性の向上が図られ、その結果、安全性の向上が図られるとともに、教示に要する時間を低減することができる。
【0015】
(請求項
1)
請求項
1に記載のロボット操作装置によれば、移動量決定処理は、入力操作が第1区間を通過してから第2区間を通過するまでは倍率を第2倍率に設定し、入力操作が第2区間を通過した後は倍率を一定値である第3倍率に設定して、ロボットの移動量を決定する処理である。これによれば、ユーザは、第1区間内で入力操作を繰り返すことにより、1より小さい第1倍率でロボットを動作(微動)させることができる。また、ユーザは、第1区間を超えて入力操作を行うことにより、第1倍率よりも大きい第2倍率又は第3倍率でロボットを動作(粗動)させることができる。
【0016】
さらに、第2倍率は、第1倍率から第3倍率までの範囲で、入力操作の操作量に応じて連続的に増加する値である。これによれば、第1倍率による微動と第3倍率による粗動との間の倍率である第2倍率が、第1倍率から第3倍率までの範囲で、入力操作の操作量に応じて連続的に増加する。すなわち、一定値である第1倍率と第3倍率との間が、連続して変化する第2倍率によって繋がれている。そのため、入力操作の操作量に対するロボットの移動量を決定するための倍率は、第1倍率から、次第に変化する第2倍率を経て第3倍率に切り替わる。これにより、ロボットの移動量を決定するための倍率が、第1倍率から第3倍率に急激に切り替わることが防止される。すなわち、ロボットの移動が、微動から粗動へ急激に変化することを防止することができる。したがって、ユーザの意図しない急激な倍率の変化によって生じるロボットの急激な速度変化(急動)を防止することができる。その結果、更なる安全性の向上が図られる。
【0017】
(請求項
4)
入力操作部は、押し傾けることが可能に設けられたレバーである。また、操作量判断処理は、レバーの傾き量に基づいて入力操作の操作量を判断する処理である。これによれば、ユーザは、レバーを押し傾けるように操作することで、少なくともロボットの移動量を決定することができる。したがって、より直感的な操作が可能になる。
【0018】
(請求項
5)
請求項
5に記載のロボットシステムは、4軸水平多関節型のロボット又は6軸垂直多関節型ロボットと、ロボットの動作を制御するコントローラと、請求項1から5のいずれか一項に記載のロボット操作装置とを備えている。ロボット操作装置は、前述したとおり、ユーザによる手動操作に従い、ロボットを動作させるための動作指令を生成することができる。したがって、これによれば、操作対象とするロボットについて手動操作が可能なロボットシステムを実現することができる。
【0019】
(請求項
6)
請求項
6に記載のロボット操作プログラムは、請求項1に記載のロボット操作装置を実現するものである。これによれば、請求項
6に記載のロボット操作プログラムを、例えば既存のロボット操作装置で実行することで、上述したロボット操作装置としての機能を付加することができる。
【発明を実施するための形態】
【0021】
(第1実施形態)
以下、第1実施形態について
図1から
図7を参照しながら説明する。
図1は、一般的な産業用ロボットのシステム構成を示している。
図1に示すロボットシステム10は、コントローラ11、ロボット20、及びティーチングペンダント30(ロボット操作装置に相当)を備えている。ロボット20は、例えば4軸の水平多関節型ロボットである。ロボット20は、作業台Dに固定されて使用される。ロボット20は、固有のロボット座標系(X軸、Y軸及びZ軸からなる三次元直交座標系)に基づいて動作する。本実施形態において、ロボット座標系は、ベース21の中心を原点Oとし、作業台Dの上面をX−Y平面とし、X−Y平面と直交する座標軸をZ軸として定義されている。作業台Dの上面は、ロボット20を設置するための設置面である。この場合、作業台Dの上面つまりロボット20の設置面が、ロボット20の動作基準面に相当する。なお、動作基準面としては、設置面に限らずとも、任意の平面であってもよい。
【0022】
ロボット20は、ベース21、第1アーム22、第2アーム23、シャフト24、及びフランジ25を有している。このロボット20は、4つの駆動軸J11〜J14を有する4軸型の水平多関節ロボットである。ベース21は、設置面Dに固定されている。第1軸J11は、ベース21上において、Z軸(垂直軸)方向の軸心を有する回転軸である。第1アーム22は、ベース21上に対し第1軸J11を中心に回転可能に設けられている。
【0023】
第2軸J12は、第1アーム22のベース21と反対側の先端部において、Z軸(垂直軸)方向の軸心を有する回転軸である。第2アーム23は、第1アーム22の先端部に設けられている。第2アーム23は、第1アーム22に対して第2軸J12を中心に回転可能である。シャフト24は、第2アーム23における第1アーム22と反対側の先端部において、上下動可能で且つ回転可能に設けられている。第3軸J13は、シャフト24を上下動させるための軸である。第4軸J14は、シャフト24を回転させるための軸である。フランジ25は、シャフト24の先端部つまり下端部に、着脱可能に設けられている。
【0024】
ベース21、第1アーム22、第2アーム23、シャフト24、及びフランジ25は、ロボット20のアームとして機能する。アーム先端であるフランジ25には、図示はしないが、エンドエフェクタ(手先)が取り付けられる。例えば、ロボット20を用いて部品の検査などが行われる場合、上記エンドエフェクタとしては、対象となる部品を撮影するためのカメラなどが用いられる。ロボット20に設けられる各駆動軸J11〜J14は、それぞれに対応して設けられるモータ(図示せず)により駆動される。各モータの近傍には、それぞれの回転軸の回転角度を検出するための位置検出器(図示せず)が設けられている。
【0025】
コントローラ11は、ロボット20を制御するためのものであり、接続ケーブルを介してロボット20に接続されている。ティーチングペンダント30は、接続ケーブルを介してコントローラ11に接続されている。コントローラ11とティーチングペンダント30との間では、
図2に示す通信インターフェイス35を経由してデータ通信が行われる。これにより、ユーザの操作に応じて入力される各種の操作情報が、ティーチングペンダント30からコントローラ11に送信される。また、コントローラ11は、ティーチングペンダント30に対し、各種の制御信号や表示用の信号などを送信するとともに、駆動用の電力を供給する。
【0026】
コントローラ11は、ティーチングペンダント30からの指令に応じて、ロボット20を手動動作又は自動動作するように制御する。この場合、手動動作とは、ユーザがティーチングペンダント30を操作して、ロボット20の動作を逐次指令して動作させることをいう。また、自動動作とは、ロボット20に予め定められた手順に従った動作を自動で実行させることをいう。手動動作には、手先系の動作と各軸系の動作とがある。手先系の動作とは、ロボット20の手先を基準として各駆動軸J11〜J14を組み合わせて駆動させる駆動態様である。手先系の動作には、ロボット20の手先を水平方向へ移動させる水平移動動作と、ロボット20の手先を垂直方向へ移動させる垂直移動動作と、ロボット20の手先を回転させる回転動作と、がある。また、各軸系の動作とは、各駆動軸J11〜J14を個別に駆動させる駆動態様である。
【0027】
ティーチングペンダント30は、例えばユーザが携帯して操作可能な程度の大きさである。ティーチングペンダント30は、
図1に示すように、ケース31、表示部32、各種スイッチ33、及び入力操作部としてのレバー34を備えている。ケース31は、略矩形箱状である。表示部32は、例えば液晶ディスプレイであって、ケース31の表面側の中央部に設けられている。表示部32には、設定内容や動作状況等の各種の情報を表示される。各種スイッチ33は、表示部32の周囲に設けられた例えばプッシュスイッチ等の物理的なスイッチである。ユーザは、スイッチ33を操作することで、手動動作と自動動作との切替や、動作態様の選択つまり各軸系の動作又は手先系の動作の選択など、各種設定を行うことができる。レバー34は、押し倒して操作つまり傾倒操作が可能な、いわゆるジョイスティックと称されるものである。ユーザは、レバー34を操作することで、ロボット20の移動を操作することができる。
【0028】
次に、ティーチングペンダント30の電気的な構成について
図2を参照して説明する。ティーチングペンダント30は、上述した表示部32、スイッチ33、レバー34、及び通信インターフェイス35に加え、制御部36、入力操作検出部37、及び動作指令生成部38を有している。制御部36は、例えばCPU361や、ROM、RAM、および書き換え可能なフラッシュメモリなどの記憶領域362を有するマイクロコンピュータを主体に構成されており、ティーチングペンダント30の全体を制御する。記憶領域362は、ロボット操作プログラムを記憶している。制御部36は、CPU361においてロボット操作プログラムを実行することにより、入力操作検出部37および動作指令生成部38などを、ソフトウェアによって仮想的に実現する。なお、これら入力操作検出部37及び動作指令生成部38は、例えば制御部36と一体の集積回路としてハードウェア的に実現してもよい。
【0029】
レバー34は、
図3に示すように、ケース31内に設けられた図示しない支点部を中心に、少なくともケース31に対して上下左右の四方向へ押し倒すことができるようになっている。なお、この場合の上下左右とは、
図1に示すようにティーチングペンダント30を基準として見たものであり、重力方向やロボット20の座標軸には依存しない。レバー34は、例えばバネなどを内蔵しており、ユーザからの入力が開放されると、
図3の一点鎖線Aで示す位置に復帰するようになっている。この
図3の一点鎖線Aで示す位置を、レバー34の初期位置Aとする。この初期位置Aは、操作開始位置に相当する。
【0030】
また、レバー34は、
図3の一点鎖線Bで示す位置まで傾くことができる。この一点鎖線Bで示す位置を、レバー34の限界位置Bとする。そして、レバー34の傾倒可能な角度、つまり初期位置Aから限界位置Bまでの角度を限界角度θeとする。すなわち、限界角度θeは、一点鎖線Aと一点鎖線Bとの成す角度である。本実施形態の場合、レバー34の限界角度θeは、例えば基準位置Aに対して60°に設定されている。つまり、一点鎖線Aと一点鎖線Bとの成す角度は60°である。なお、レバー34の可動範囲つまりレバー34の限界角度θeは、基準位置Aから60°の位置に限られず、適宜変更することができる。入力操作検出部37は、レバー34の操作量つまり基準位置Aからの角度を検出し、その検出結果を制御部36へ送信する。
【0031】
動作指令生成部38は、入力操作検出部37により検出された入力操作に基づいて、ロボット20を手動動作させるための動作指令を生成する。例えば、手先系の水平移動動作について見ると、レバー34の操作方向とロボット20の移動方向とは次のような相関を有する。すなわち、レバー34が
図1に示す上側へ倒された場合、動作指令生成部38は、ロボット20の手先をX軸の負(−)側へ移動させるように動作指令を生成する。レバー34が
図1に示す下側へ倒された場合、動作指令生成部38は、ロボット20の手先をX軸の正(+)側へ移動させるように動作指令を生成する。レバー34が
図1に示す右側へ倒された場合、動作指令生成部38は、ロボット20の手先をY軸の正(+)側へ移動させるように動作指令を生成する。レバー34が
図1に示す左側へ倒された場合、動作指令生成部38は、ロボット20の手先をY軸の負(−)側へ移動させるように動作指令を生成する。
【0032】
手先系の垂直移動動作について見ると、レバー34が
図1に示す上側へ倒された場合、動作指令生成部38は、ロボット20の手先をZ軸の正(+)側へ移動させる、つまり上昇させるように動作指令を生成する。一方、レバー34が
図1に示す下側へ倒された場合、動作指令生成部38は、ロボット20の手先をZ軸の負(−)側へ移動させる、つまり下降させるように動作指令を生成する。手先系の回転動作について見ると、レバー34が
図1に示す右側へ倒された場合、動作指令生成部38は、ロボット20の手先を、第4軸J14の正(+)側へ回転するように動作指令を生成する。一方、レバー34が
図1に示す左側へ倒された場合、動作指令生成部38は、ロボット20の手先を、第4軸J14の負(−)側へ回転するように動作指令を生成する。
【0033】
また、各軸系の動作について見ると、選択されている駆動軸が第1軸J11、第2軸J12、又は第4軸J14のいずれかである場合、レバー34の操作方向と各駆動軸の駆動方向とは例えば次のような関係になる。すなわち、この場合、動作指令生成部38は、レバー34が
図1の右側へ倒されると、選択されている駆動軸を正(+)側へ駆動させるように動作指令を生成する。また、この場合、動作指令生成部38は、レバー34が
図1の左側へ倒されると、選択されている軸を負(−)側へ駆動させるように動作指令を生成する。
【0034】
一方、選択されている駆動軸が第3軸J13である場合、動作指令生成部38は、レバー34の操作方向と各駆動軸の駆動方向とは例えば次のような関係になる。すなわち、この場合、動作指令生成部38は、レバー34が
図1の上側へ倒されると、第3軸J13を正(+)側へ駆動させるように動作指令を生成する。また、この場合、動作指令生成部38は、レバー34が
図1の下側へ倒されると、第3軸J13を負(−)側へ駆動させるように動作指令を生成する。そして、動作指令生成部38により生成された動作指令は、通信インターフェイス35を通じてコントローラ11に与えられる。
【0035】
次に、レバー34が操作された際のロボット20の移動速度及び移動量(移動距離)の決定に関して
図4から
図6も参照して説明する。動作指令生成部38は、操作量判断処理と、移動量算出処理と、を行うことができる。操作量判断処理は、レバー34(入力操作部)に入力された入力操作の操作量つまりレバー34の入力角度を判断する処理である。この場合、入力操作とは、ユーザがレバー34を押し倒して行う操作を意味する。また、入力角度とは、ユーザによってレバー34が押し倒された際における基準位置Aに対するレバー34の角度を意味する。移動量算出処理は、入力操作の操作量つまりレバー34の入力角度に基づいて、ロボット20の移動量を算出する処理である。
【0036】
例えば、
図4では、レバー34の初期位置Aに対して入力操作が行われた際のレバー34の位置の一例を実線Pで示している。なお、実線Pは、入力位置Pと称する。また、初期位置Aと入力位置Pとの成す角度を、入力角度θiとする。入力操作の終了は、レバー34の入力角度θiの変化が無くなったとき、及びレバー34の操作が解除されてレバー34が初期位置Aに復帰したときつまり入力角度θiが0°になったときである。動作指令生成部38は、入力角度θiに基づいて、ロボット20の移動量Lrを算出する。本実施形態において、入力角度θiとロボット20の移動量Lrとは、例えば
図5(1)に示すように正比例の関係を有している。この場合、例えば入力角度θiが1°増すごとに、ロボット20の移動量が1mm増大するように設定されている。
【0037】
また、動作指令生成部38は、入力角度θiを入力操作の入力時間Tiで除した値、つまり、入力操作におけるレバー34の平均角速度ωに基づいて、ロボット20の平均速度Vrを算出する。この場合、入力操作におけるレバー34の平均角速度ωを、入力角速度ωと称する。本実施形態において、入力角速度ωとロボット20の平均速度Vrとは、例えば
図5(2)に示すように入力角速度ωが所定値この場合60°/sになるまでは正比例の関係を有している。そして、入力角速度ωが60°/sを超えると、ロボット20の平均速度Vrは所定値この場合60mm/sで一定になる。この場合、入力角速度ωが1°/s増すごとに、ロボット20の平均速度Vrが1mm/s増大するように設定されている。
【0038】
動作指令生成部38は、上述の構成を実現するため、
図6に示す内容の制御を実行する。動作指令生成部38は、レバー34に対する入力操作を検出して、
図6に示す制御を開始すると、ステップS11からS13において、操作量判断処理を実行する。まず、動作指令生成部38は、ステップS11において、入力操作の入力角度θiを検出する。次に、動作指令生成部38は、ステップS12において、入力操作に要した時間つまり入力時間Tiを検出する。次に、動作指令生成部38は、ステップS13において、入力角度θiおよび入力時間Tiから、入力操作の入力角速度ω及び操作方向を算出する。この場合、入力角速度ωは、入力角度θiを入力時間Tiで除した値である。また、操作方向は、上下左右のいずれか一方向である。
【0039】
その後、動作指令生成部38は、ステップS14において移動量算出処理を実行する。動作指令生成部38は、ステップS14において、入力角度θiと入力角速度ωと操作方向とから、ロボット20の移動量Lrと平均速度Vrと移動方向とを算出する。そして、動作指令生成部38は、ステップS15において動作指令生成処理を実行する。動作指令生成部38は、ステップS15において、ステップS14で決定したロボット20の移動量Lr、平均速度Vr、及び移動方向に基づいて、動作指令を生成する。そして、その動作指令がコントローラ11へ送信され、コントローラ11は、その動作指令に基づいてロボット20の動作を制御する。これにより、動作指令生成部38は、一連の処理を終了する。
【0040】
このティーチングペンダント30によれば、手動操作をする際、レバー34に対する入力操作の操作量(入力角度θi)と、ロボット20の移動量(移動量Lr)とが相関を有することになる。すなわち、ユーザは、入力角度θiを調整することにより、ロボット20の移動量Lrを調整することができる。そのため、ユーザは、直感的な操作が可能になり、操作性の向上が図られる。その結果、安全性の向上が図られるとともに、教示に要する時間を低減することができる。
【0041】
また、このティーチングペンダント30によれば、動作指令生成部38は、入力角度θiを入力時間Tiで除した値に基づいてロボット20の移動速度Vrを決定する移動速度算出処理を行うことができる。これによれば、入力角度θi及び入力時間Tiと、ロボット20の移動速度Vrとが相関を有する。したがって、ユーザは、入力角度θi及び入力時間Tiを調整することで、ロボット20の移動速度Vrも調整することができる。
【0042】
すなわち、ユーザは、入力操作を行うに際し、入力角度θiと入力時間Tiとを調整するだけで、ロボット20の移動速度Vrと移動量Lrとの両方を調整することができる。つまり、ユーザは、ロボット20の移動量Lrを同一にする場合であっても、入力操作の入力時間Tiを調整することで、ロボット20の移動速度Vrを調整することができる。例えば、ロボット20に緩やかな動作をさせたい場合、ユーザは、入力操作の入力時間Tiを長くする、つまり入力操作をゆっくり行うことで、ロボット20の移動速度Vrを遅くすることができる。一方、ロボット20に素早い動作をさせたい場合、ユーザは、入力操作の入力時間Tiを短くする、つまり入力操作を素早く行うことで、ロボット20の移動速度Vrを速くすることができる。このように、本実施形態によれば、入力操作の入力時間Tiとロボット20の移動速度Vrとが相関を有するため、ユーザによる直感的な操作が可能になる。
【0043】
また、これによれば、ユーザは、ロボット20の移動速度Vrと移動量Lrとを決定するために、複数の操作例えばロボット20の移動速度Vrを決定するための操作とロボット20の移動量Lrを決定するための操作とを行う必要がない。したがって、操作が簡単になり、操作性の向上が図られる。これらの結果、安全性の向上が図られるとともに、教示に要する時間を低減することができる。
【0044】
本実施形態は、例えば
図7に示すような6軸型の垂直多関節ロボット40にも適用することができる。ロボット40は、ベース41、ショルダ部42、下アーム43、第1上アーム44、第2上アーム45、手首46、及びフランジ47を有している。このロボット40は、6つの駆動軸J21〜J26を有する。ベース41は、設置面Dに固定されている。第1軸J21は、ベース41上において、Z軸方向の軸心を有する回転軸である。ショルダ部42は、ベース41に対し第1軸J21を中心に回転可能に設けられている。
【0045】
第2軸J22は、ショルダ部42の上端部分においてY軸方向の軸心を有する回転軸である。下アーム43は、ショルダ部42の上端部分に設けられている。下アーム43は、ショルダ部42に対し第2軸J22を中心に回転可能に設けられている。第3軸J23は、下アーム43のベース41と反対側の先端部において、Y軸方向の軸心を有する回転軸である。第1上アーム44は、下アーム43の先端部に設けられている。第1上アーム44は、下アーム43の先端部に対し第3軸J23を中心に回転可能に設けられている。第4軸J24は、第1上アーム44の下アーム43と反対側の先端部おいて、第1上アーム44が伸びる方向と同一方向の軸心を有する回転軸である。第2上アーム45は、第1上アーム44の先端部に設けられている。第2上アーム45は、第1上アーム44の先端部に対し第4軸J24を中心に捻り回転可能に設けられている。
【0046】
第5軸J25は、第2上アーム45の第1上アーム44と反対側の先端部において、水平方向の軸心を有する回転軸である。手首46は、第2上アーム45の先端部に設けられている。手首46は、第2上アーム45の先端部に対し第5軸J25を中心に回転可能に設けられている。第6軸J26は、第5軸J25に対して直角方向の軸心を有する回転軸である。フランジ47は、手首46に設けられ、第6軸J26を中心に捻り回転可能に設けられている。
【0047】
ベース41、ショルダ部42、下アーム43、第1上アーム44、第2上アーム45、手首46及びフランジ47は、ロボット40のアームとして機能する。アーム先端であるフランジ47(手先に相当)には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット40に設けられる複数の軸(J21〜J26)は、それぞれに対応して設けられるモータ(図示せず)により駆動される。また、各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器(図示せず)が設けられている。
【0048】
(第2実施形態)
次に、第2実施形態について、
図8及び
図9も参照して説明する。本実施形態は、ロボット20、40の動作を、入力操作に対してほぼリアルタイムで実行するための構成である。すなわち、上記第1実施形態では、レバー34に対する入力操作が終了した後に、ロボット20、40の動作が行われる。そのため、ロボット20、40の動作は、入力操作の終了後になる。したがって、ユーザによる入力操作と、ロボット20、40の実際の動作とに、時間差が生じる。一方、本実施形態において、動作指令生成部38は、入力操作が終了する前であっても、ロボット20、40の動作指令を適宜生成する。したがって、ロボット20、40の実際の動作は、ユーザによる入力操作に対して、ほぼリアルタイムで行われる。
【0049】
具体的には、動作指令生成部38は、入力操作が行われている間は一定の周期Sで操作量判断処理と移動量算出処理と移動速度算出処理と動作指令生成処理とを行うことができる。入力操作が行われている間とは、入力角度θiに変化が生じている間をいう。動作指令生成部38は、上述の構成を実現するために、
図8の内容の制御を実行する。動作指令生成部38は、入力操作を検出している間、
図8に示す処理内容を実行する。
【0050】
動作指令生成部38は、
図8に示す処理を開始すると、まず、ステップS21において、レバー34の現在位置P1における入力角度θi1(
図9参照)を検出する。次に、動作指令生成部38は、ステップS22において、一定の時間Sが経過するまで待機する(ステップS22でNO)。動作指令生成部38は、時間Sが経過すると(ステップS22でYES)、ステップS23において、レバー34の現在位置P2における入力角度θi2(
図9参照)を検出する。次に、動作指令生成部38は、ステップS24において、入力角度θi1と入力角度θi2との差から時間S当たりの入力角度dθ及び操作方向を算出するとともに、その入力角度dθを時間Sで除して入力角速度ωを算出する。このステップS21〜S24には、操作量判断処理が含まれている。
【0051】
次に、動作指令生成部38は、ステップS25において、入力角度dθ、入力角速度ω、及び時間Sから、時間S当たりのロボット20、40の移動量dLr及び移動速度dVrを算出する。このステップS24、S25には、移動量算出処理及び移動速度算出処理が含まれている。そして、動作指令生成部38は、ステップS26において、動作指令生成処理を実行し、時間S当たりのロボット20、40の移動量dLr、平均速度dVr、及び移動方向に基づいて、動作指令を生成する。そして、その動作指令がコントローラ11へ送信され、コントローラ11は、その動作指令に基づいてロボット20、40の動作を制御する。
【0052】
その後、動作指令生成部38は、ステップS27において、入力操作が終了したか否かを判断する。動作指令生成部38は、入力操作が終了していないと判断した場合(ステップS27でNO)、ステップS21へ移行し、ステップS21からステップS27を繰り返す。一方、動作指令生成部38は、入力操作が終了したと判断した場合(ステップS27でYES)、一連の処理を終了する。このようにして、動作指令生成部38は、入力操作が行われている間、一定時間Sつまり一定周期Sで、操作量判断処理と移動量算出処理と移動速度算出処理と動作指令生成処理
【0053】
本実施形態によれば、動作指令生成部38は、ユーザによる入力操作の終了を待つことなく、動作指令を生成することができる。したがって、動作指令生成部38は、ユーザからの入力操作に対してほぼリアルタイムで、ロボット20、40を動作させるための動作指令を生成することができる。そのため、ユーザによる入力操作と、ロボット20、40の実際の動作と時間差を、極力低減することができる。よって、ユーザは、より直感的な操作が可能になり、その結果、安全性の向上、ひいては教示時間の短縮を図ることができる。
【0054】
(第3実施形態)
次に、第3実施形態について、
図10から
図12を参照して説明する。本実施形態は、入力操作の操作量とロボット20、40の移動量との間の倍率に関するものである。倍率とは、操作入力による入力角度を拡大又は縮小してロボット20、40の移動量を決定するためのものである。ティーチングペンダント4は、より精密な動作をロボット20、40に行わせるため、入力操作の入力角度とロボット20、40の移動量との間に倍率を設定することが考えられる。例えば、本実施形態では、
図5(1)に示すように、入力操作の入力角度θiが1°増加するのに応じて、ロボット20、40の移動量を1mm増加させる場合を基準にする。この場合、入力角度θiの1°が、ロボット20、40の1mmの移動量に換算される。そして、この基準に対して倍率を0.1倍に設定すると、ユーザは、1°の入力操作を行うことで、ロボット20、40を0.1mm移動させることができる。
【0055】
しかし、単純に一定の倍率を設定しただけでは、次のような問題が生じる。すなわち、例えば0.1mm単位の微細な動作(微動)を行いつつ、数〜数十mm単位の大きな動作(粗動)を行いたい場合もある。この場合、上記基準に対して例えば倍率を0.1倍に設定すると、60°の入力操作でも、僅かに6mmしかロボットを移動させることができない。そのため、ユーザは、例えばロボットに300mmの移動をさせようとすると、60°の入力操作を50回も繰り返すことになり、煩雑で操作性が良くない。一方、複数の倍率を設定して、必要に応じて切り替えることも考えられるが、この場合も、何度も倍率の切り替え操作を行わなければならず、操作が煩雑となり易い。
【0056】
そこで、本実施形態において、動作指令生成部38は、移動量決定処理を行うことができる。移動量決定処理は、
図10に示すように、入力操作が第1区間を通過するまでは倍率を第1倍率に設定し、入力操作が第1区間を通過した後は倍率を第1倍率より大きい値に設定して、ロボット20、40の移動量(移動距離)を決定する処理である。第1倍率は、1より小さい一定の値である。また、第1区間は、初期位置Aから第1位置C1までの区間である。第1区間を入力角度θiで見ると、第1区間は、0°から第1角度θ1までの区間である。すなわち、動作指令生成部38は、入力角度θiが第1角度θ1以下である場合には倍率を第1倍率に設定し、入力角度θiが第1角度θ1よりも大きくなった場合には倍率を第1倍より大きい値に設定して、ロボット20、40の移動量を決定する。
【0057】
また、本実施形態において、移動量決定処理は、入力操作が第1区間を通過してから第2区間を通過するまでは倍率を第2倍に設定し、入力操作が第2区間を通過した後は倍率を一定値である第3倍率に設定して、ロボット20、40の移動量(移動距離)を決定する処理である。この場合、第2区間は、第1位置C1から第2位置C2までの区間である。第2区間を入力角度θiで見ると、第2区間は、第1角度θ1から第2角度θ2までの区間である。
【0058】
また、第2区間を通過した後の区間は、第2位置C2から限界位置Bまでの区間である。第2区間を通過した後の区間を第3区間と称する。この第3区間を入力角度θiで見ると、第3区間は、第2角度θ2から限界角度θeまでの範囲になる。すなわち、動作指令生成部38は、入力角度θiが第1角度θ1より大きく且つ第2角度θ2以下である場合には、倍率を第2倍率に設定し、入力角度θiが第2角度より大きくなった場合には倍率を第3倍率に設定して、ロボット20、40の移動量を決定する。第2倍率は、第1倍率から第3倍率までの範囲で、入力操作による入力角度に応じて連続的に増加する値である。
【0059】
本実施形態の場合、第1角度θ1=20°、第2角度θ2=40°、限界角度θe=60°に設定されている。したがって、第1区間は、入力角度θiが0°より大きく第1角度θ1以下となる範囲、すなわち、0°<θi≦θ1の範囲である。第1区間における入力操作には、第1倍率f1が設定されている。第1倍率f1は、1より小さい一定値であり、例えば
図11(1)に示すように0.1倍(f1=0.1)である。
【0060】
第2区間は、入力角度θiが第1角度θ1より大きくかつ第2角度θ2以下となる範囲、すなわち、θ1<θi≦θ2の範囲である。第2区間における入力操作には、第2倍率f2が設定されている。第2倍率f2は、第1倍率f1よりも大きく、かつ、第3倍率f3よりも小さい値である。第2倍率f2は、第1倍率f1から第3倍率f3までの範囲で、入力角度θiに応じて連続的に増加する変動値である。
【0061】
第2倍率f2は、次の(式1)で表すことができる。そして、(式1)に、本実施形態の第1倍率f1=0.1、後述する第3倍率f3=10、第1角度θ1、及び第2角度θ2を入れると、第2倍率f2は次の(式2)で表すことができる。なお、本実施形態において、第2倍率f2は、第1倍率f1から第3倍率f3の範囲内において比例的に増加するが、これに限られない。第2倍率f2は、例えば第1倍率f1から第3倍率f3の範囲内において、2次関数的に増加するものでもよいし、指数関数的に増加するものでもよい。
f2=((f3−f1)/(θ2−θ1))×((θi−θ1))+f1・・・(式1)
f2=0.495×(θi−20°)+0.1・・・(式2)
【0062】
第3区間は、入力角度θiが第2角度θ2より大きくかつ限界角度θe以下となる範囲、すなわちθ2<θi≦θeの範囲である。第3区間における入力操作には、第3倍率f3が設定されている。第3倍率f3は、第1倍率及び第2倍率よりも大きい一定値である。この場合、第3倍率f3は、例えば
図11(1)に示すように、1よりも大きい10倍(f3=10)に設定されている。
【0063】
ここで、倍率が1である場合、入力角度θiの1°当たりにおけるロボット20、40の移動量は1mmであるため、
図11(1)の縦軸つまり操作倍率は、入力角度θiの1°当たりにおけるロボット20、40の移動量(移動距離)に相当する。したがって、入力操作が第1区間内における操作である場合、つまり入力角度θiが0°より大きくθ1以下である場合、ロボット20、40の移動量は次のようになる。すなわち、この場合、ロボット20、40の移動量は、
図11(1)において、入力角度θiと倍率f1の直線とで囲まれた範囲の面積に相当する。例えば、入力角度θi=20°である場合、ロボット20、40の移動量は、20×0.1=2mmとなる。つまり、第1区間内での入力操作により、ロボット20、40は、最大で2mm移動することができる。
【0064】
入力操作が第2区間内における操作である場合、つまり入力角度θiがθ1より大きくθ2以下である場合、ロボット20、40の移動量は次のようになる。すなわち、この場合、ロボット20、40の移動量は、
図11(1)において、入力角度θiと、倍率f1の直線及び倍率f2の直線とで囲まれた範囲の面積に相当する。例えば、入力角度θi=40°である場合、ロボット20、40の移動量は、((40−20)×(10−0.1)÷2)+(20×0.1)+2=103mmとなる。つまり、第2区間内での入力操作により、ロボット20、40は、最大で103mm移動することができる。
【0065】
入力操作が第3区間内における操作である場合、つまり入力角度θiがθ2より大きくθe以下である場合、ロボット20、40の移動量は次のようになる。すなわち、この場合、ロボット20、40の移動量は、
図11(1)において、入力角度θiと、倍率f1の直線、倍率f2の直線、及び倍率f3の直線とで囲まれた範囲の面積に相当する。例えば、入力角度θi=60°である場合、ロボット20、40の移動量は、((60−40)×10)+103=303mmとなる。つまり、第3区間内での入力操作により、ロボット20、40は、最大で303mm移動することができる。
【0066】
入力操作の入力角度θiに対するロボット20、40の移動量の変化は、
図11(2)に示すようになる。この場合、ロボット20、40の移動量は、各区間において次のように変化する。すなわち、ロボット20、40の移動量は、第1区間(0°<θi≦θ1)における入力操作に対して、1次関数的に増加する。また、ロボット20、40の移動量は、第2区間(θ1<θi≦θ2)における入力操作に対して、2次関数的に増加する。また、ロボット20、40の移動量は、第3区間(θ2<θi≦θ3)における操作に対して、1次関数的に増加する。
【0067】
これによれば、ユーザは、第1区間内で入力操作を行うことで、ロボット20、40を、1より小さい一定の倍率である第1倍率f1で移動させることができる。つまり、ユーザは、第1区間内で入力操作を繰り返すことで、ロボット20、40に微動をさせることができる。また、ユーザは、第1区間を超えて入力操作を行うことで、第1区間を超えた部分について、ロボット20、40を、第1倍率よりも大きい倍率で移動させることができる。つまり、ユーザは、第1区間を超えて入力操作をすることで、ロボット20、40に粗動をさせることができる。
【0068】
このように、ユーザは、1度の入力操作で、異なる倍率でロボット20、40を移動させることができる。これによれば、例えばロボット20、40の微動と粗動との両方の動作を、1回の入力操作で実現することができる。したがって、ユーザは、ロボット20、40の微動と粗動とを切り替えるための特別な操作をすることなく、微動と粗動との両方を実現することができる。これにより、操作が簡単になり、操作性の向上が図られ、その結果、安全性の向上が図られるとともに、教示に要する時間を低減することができる。
【0069】
また、本実施形態によれば、動作指令生成部38は、移動量決定処理により、入力操作の入力角度θiが第1区間を通過してから第2区間を通過するまですなわちθ1<θi≦θ2の範囲内においては、倍率を第2倍率f2に設定して、ロボット20、40の移動量を決定する。また、動作指令生成部38は、移動量決定処理により、入力操作の入力角度θiが第2区間を通過した後すなわちθ2<θiとなった後は、倍率を一定値である第3倍率f3に設定して、ロボット20、40の移動量を決定する。これによれば、ユーザは、第1区間内で入力操作を繰り返すことにより、1より小さい第1倍率f1でロボットを微動させることができる。また、ユーザは、第1区間を超えて入力操作を行うことにより、第1倍率f1よりも大きい第2倍率f2又は第3倍率f3でロボット20、40を粗動させることができる。
【0070】
さらに、第2倍率f2は、第1倍率f1から第3倍率f3までの範囲で、入力操作の操作角度θiに応じて連続的に増加する値である。これによれば、第1倍率f1による微動と第3倍率f3による粗動との間の倍率である第2倍率f2が、第1倍率f1から第3倍率f3までの範囲で、入力操作の操作角度θiに応じて連続的に増加する。すなわち、一定値である第1倍率f1と第3倍率f3との間が、連続して変化する第2倍率f2によって繋がれている。そのため、入力角度θiに対するロボット20、40の移動量を決定するための倍率は、第1倍率f1から、次第に変化する第2倍率f2を経て第3倍率f3に切り替わる。これにより、ロボット20、40の移動量を決定するための倍率が、第1倍率f1から第3倍率f3に急激に切り替わることが防止される。すなわち、ロボット20、40の移動が、微動から粗動へ急激に変化することを防止することができる。したがって、ユーザの意図しない急激な倍率の変化によって生じるロボット20、40の急激な速度変化(急動)を防止することができる。その結果、更なる安全性の向上が図られる。
【0071】
なお、
図12(1)、(2)に示すように、第1倍率f1を0.01倍、第3倍率f3を1.0倍とし、第2倍率f2を、第1倍率f1=0.01から第3倍率f3=1.0の範囲内において、次の(式3)で表す値にしてもよい。これによれば、0.01倍及び0.1倍の倍率を併用することができるため、さらに細かい動作を容易に行うことができる。
f2=0.0495×(θi−20°)+0.01・・・(式3)
【0072】
(その他の実施形態)
なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
上記各実施形態において、入力操作は、操作の開始点と終点とが定まれば良い。したがって、入力操作部は、上述したレバー34に限られず、例えば次のようなスライダー式やスイッチ式の機械的な入力装置であってもよい。この場合、スライダー式の入力装置とは、例えばケース31に対して上下左右方向にスライド可能な入力装置などをいう。また、スイッチ式の入力装置とは、例えばケース31に対して多段階又は無段階に押し込むことが可能な入力装置などをいう。そして、機械的な入力装置とは、ユーザから入力操作を受けることで、その入力装置を構成する機械部品に角度や位置などの何らかの物理量の変化を生じさせ、その物理量の変化を操作量として検出するものをいう。なお、上述したレバー34も、機械的な入力装置に含まれる。
【0073】
多関節ロボットには、上記各実施形態で説明した4軸水平多関節型のロボット2及び6軸垂直多関節型のロボット20のみならず、例えば複数の駆動軸を有する直交型のロボットも含まれる。この場合、駆動軸には、回転軸に限られず、例えばリニアモータによって直進方向へ駆動する方式も含まれる。
ロボット操作装置は、4軸水平多関節型のロボット20および6軸垂直多関節型のロボット40に限らず、種々のロボットを手動操作する際に用いることができる。