(第1の実施形態)
以下、本発明を具体化したロボットシステムの第1の実施形態について図に従って説明する。図1は、ロボットシステムの概略構成を斜視にて示す図であり、図2は、ロボットシステムの機能の構成を機能ブロックにて示すブロック図である。
図1に示すように、ロボットシステムには、ワークWを搬送するコンベヤー1と、コンベヤー1に搬送されるワークWを撮像するカメラ2と、当該コンベヤー1の搬送量を測定するエンコーダー3と、ワークWに対して所定の作業を行なうロボット4とが設けられている。また、ロボットシステムには、ロボット4を制御するロボットコントローラー5が設けられており、このロボットコントローラー5には、ロボット4とともに上述したカメラ2及びエンコーダー3が接続されている。なお、本実施形態のように、ロボット4の可動限界内には、ワークWやツールを載置させることのできる作業台6などがシステム構成などに応じて適宜設置される。
コンベヤー1は、被搬送物を搬送方向Cv(ワーク搬送方向)へ所定の速度で移動させるものであり、その上面に載置されている複数のワークWをそれぞれ所定の速度で搬送方向Cvへ移動させる。なお、本実施形態では、搬送方向CvをX軸方向とし、搬送方向Cvに直交するとともにコンベヤー1に平行な方向(幅方向)をY軸方向としている。また、コンベヤー1に垂直な方向(上下方向)をZ軸方向とし、Z軸を中心としてのX軸方向に対する角度をずれ角度としている。すなわち、コンベヤー1に載置されたワークWは、コンベヤー1による搬送に伴って、X軸方向に対する位置は搬送方向Cvへ変化される一方、Y軸方向に対する位置は維持される。
カメラ2は、コンベヤー1の一部を撮像範囲に含むように当該コンベヤー1の上方に配置されており、コンベヤー1に載置されたワークWを撮像可能になっている。カメラ2の撮像範囲は、X軸方向とY軸方向に沿う略矩形状に設けられている。この撮像範囲は、コンベヤー1の搬送方向CvたるX軸方向には予め定められた長さを有し、Y軸方向にはコンベヤー1の幅を含む長さを有するように設定されている。これにより、カメラ2は、コンベヤー1が搬送方向Cvに移動するとき、コンベヤー1が撮像範囲の長さと同じ距離だけ移動する毎にコンベヤー1の上面を撮像することで、コンベヤー1の上面をそこに載置
されているワークWとともにもれなく撮像することができる。
エンコーダー3は、コンベヤー1の搬送方向Cvへの移動量(ワークWの搬送量)を逐次測定する。これにより、例えばカメラ2の撮像範囲にあったワークWについて、その撮像後の位置をその撮像後に測定された搬送量にて補正することにより、X軸方向に対する現在位置を算出することができるようになる。
ロボット4は、いわゆるスカラーロボットであって、垂直軸を有する関節により連結される2本の水平アームからなり、連結された2本の水平アームを支持する基台部に第1関節が設けれ、2本の水平アームの間に第2関節が設けられている。各関節には当該関節を駆動させるモーター4a(図2参照)がそれぞれ設けられている。ロボット4は、その基台部がコンベヤー1の一側に設置されており、2本の水平アームの先端にある作業部P0の可動限界RA(図3参照)にコンベヤー1の幅を含むようになっている。なお、ロボット4の各関節は水平アームを旋回運動させることから、アーム先端の作業部P0の可動限界RAの境界は円弧状に形成されるようになっている。
作業部P0は、コンベヤー1に対して上下動可能になっているとともに、ワークWの把持装置やワークWの加工装置などの各種ツールの取り付けが可能となっている。これにより、ロボット4は、ツールの設置された作業部P0をコンベヤー1上に配置させて下降させることにより、作業部P0を介してコンベヤー1によって搬送されているワークWに所定の作業をすることができるようになっている。また、作業部P0を上昇させておくことによって、作業部P0をコンベヤー1上のワークWに干渉させることなく移動させることができるようになっている。
ロボットコントローラー5は、ロボット4を駆動制御する制御装置であり、ロボット4が目標位置に移動する位置決め動作を制御したり、ロボット4が移動しているワークWに追従する追従動作を制御したりする。すなわち、ロボットコントローラー5は、ロボット4を目標位置まで移動させるための軌道を算出し、算出された軌道に沿うようにロボット4を駆動制御する。このようなことにより、具体的には、コンベヤー1により搬送方向Cvへ所定の速度で搬送されているワークWに対してロボット4を近接させるように追従させることができる。
ロボットコントローラー5には、予めもしくは逐次、ロボット4の駆動に必要とされる各種データが設定されたり、入力されたりするようになっており、ロボットコントローラー5は、そのように設定や入力された各種データに基づいてロボット4を駆動制御するための各種データを設定したり演算したりする。各種データは、例えばユーザーインターフェース装置から設定されたり、ロボットシステムに設置される各種センサーから入力されるようになっている。なお本実施形態では、ロボットコントローラー5には予め、ロボット4の構造や動作特性などを示すロボットデータや、コンベヤー1とロボット4の相対位置関係やコンベヤー1とカメラ2の相対位置関係を示す各種位置データ、及びワークの種類や形状を示すワークデータなどが設定されている。そして、これらロボットデータ、各種位置データ及びワークデータがロボット4の駆動制御に用いられる。
より具体的には、ロボットコントローラー5は、ロボット4の各関節の角度を調整して作業部P0を所定の軌道により移動させて、当該作業部P0を目標位置に移動させたり、所定の速度で移動させたりする。例えば、ロボットコントローラー5は、ロボット4を駆動制御して、ロボット4の作業部P0をコンベヤー1に搬送されるワークWの中心位置P1に移動させ当該中心位置P1に近接した状態となるように追従させる。そして、作業部P0の把持装置にワークWを把持させて作業台6の配置位置P2まで移動させ、ワークWを配置位置P2に載置させるようになっている。
すなわち、ロボットコントローラー5は、中央演算処理装置(CPU)、記憶装置(不揮発性メモリ、揮発性メモリなど)を有するマイクロコンピュータを中心に構成されており、メモリに格納されている各種データ及びプログラムに基づいて各種制御を実行する。
図2に示すように、本実施形態では、ロボットコントローラー5は、ユーザープログラムを記憶するユーザープログラム記憶部11を記憶装置に備え、該ユーザープログラム記憶部11に記憶されたユーザープログラムを実行するユーザープログラム実行部12をCPUに備えている。また、カメラ2により認識されたワークWの初期位置が格納されるワーク位置記憶部13を記憶装置に備え、該ワーク位置記憶部13のワークWの現在位置をコンベヤー1の移動量に基づいて算出させるワーク位置更新部14をCPUに備えている。さらに、追従領域が設定される追従領域設定部15を記憶装置に備え、作業部P0の軌道(各関節の角度)を生成し、これをモーター指令値(パルス)に変換して後述のモーター制御部18に出力する追従指令値生成部16をCPUに備えている。またさらに、追従領域とワークWの位置関係などから作業対象となるワークWを検出する作業対象検出部17をCPUに備え、追従指令値生成部16からのモーター指令値に従って各関節のモーター4aを制御するモーター制御部18をCPUに備えている。
ユーザープログラム記憶部11のユーザープログラムは、作業対象のワークWに追従するようにロボット4の作業部P0を移動させるために必要な座標系の変換などの各種処理を実行するプログラムである。また、作業対象検出部17が作業対象として検出したワークWを作業対象リストに登録させ、作業対象検出部17が作業対象外として検出したり、作業の終了により作業対象外となったワークWを作業対象リストから削除させる。さらに、所定の条件に基づいて作業対象リストから作業対象とするワークWを選択するなどの処理を実行するプログラムである。
ユーザープログラム実行部12は、ユーザープログラムを実行する。ユーザープログラム実行部12は、作業対象リストを管理しており、作業対象検出部17の検出結果から作業対象として検出されたワークWを作業対象リストに登録する。一方、追従指令値生成部16の処理結果や作業対象検出部17の検出結果から作業対象外として検出されたワークWを作業対象リストから削除する。また、作業対象リストに登録されたワークWから所定の条件に応じて作業対象とするワークWを選択して、その選択されたワークWの情報等を追従指令値生成部16に伝達する。さらに、ユーザープログラム実行部12は、選択されたワークWにロボット4を追従等させるために必要な情報を算出して、その算出データを追従指令値生成部16に伝達する。
ワーク位置更新部14は、カメラ2が撮影したコンベヤー1上のワークWの撮影画像からワークWの初期位置(X軸方向の座標、Y軸方向の座標、ずれ角度など)を求めて(ワーク初期位置認識工程)その初期位置の情報をワーク位置記憶部13に格納する。一方、ワーク位置更新部14は、エンコーダー3から入力されるコンベヤーパルスの積算によるコンベヤーパルス数に基づいてコンベヤー1によるワークWの搬送量(X軸方向の量)を算出する。そして、ワークWの撮影時(初期位置)のコンベヤーパルス数と現在のコンベヤーパルス数との差を求め、このパルス数の差と、予め設定された単位コンベヤーパルスあたりの搬送量との積によりワークWの初期位置に対する搬送量を求める。ワーク位置更新部14は、ワーク位置記憶部13に記憶されている撮影時に算出されたワークWの初期位置(X軸方向の座標)に、上述のようにして算出したワークWの搬送量を加算することなどにより、ワークWの現在位置を逐次計算できるようにしている(ワーク位置計算工程)。ここで、ワーク位置更新部14は、ワークWのX軸方向の座標を逐次計算できるようにするが、ワークWの座標はコンベヤー1による搬送によってはY軸方向の座標、Z軸方向の座標及びずれ角度は変化しないため、Y軸方向の座標、Z軸方向の座標及びずれ角度
を更新させるための処理を行なわない。このようにして、逐次計算により現時点におけるワークWの現在位置(X軸方向の座標、Y軸方向の座標、ずれ角度)が求められるようになる。
追従指令値生成部16は、作業対象であるワークWに対する軌道を生成するとともに、当該軌道をロボット4が追従するための各関節の関節角度を計算する。なお、本実施形態では、軌道は、コンベヤー1の搬送量(コンベヤ1の速度)を考慮して生成される。追従指令値生成部16は、ロボット4を軌道に沿わせるための各関節の関節角度を、モーター制御部18によるモーター4aの制御周期に応じたサンプリングタイム毎の目標関節角度としてモーター制御部18に出力する。このように、追従指令値生成部16は、軌道を生成し、その軌道に沿うための目標関節角度をサンプリングタイム周期で繰り返し算出する。なお、ワークWへの処理を終了した場合や、作業対象検出部17が作業対象外として検出したりした場合、当該ワークに対する計算処理を終了する。このとき、処理の終了されたワークWの情報は、当該ワークが作業対象外であるものとしてユーザープログラム実行部12に伝達されて作業対象リストから当該ワークWが削除される。
追従領域設定部15には、ロボット4がワークWに対して追従動作を開始できる追従領域が、当該追従領域を設定するための追従領域設定工程により設定される。本実施形態では、追従領域は、予め定められた複数の指示点が所定の順序で直線的に結ばれることなどにより区画され、各指示点は、追従領域設定工程において、ロボット4の作業部P0を実際に移動させた位置(点)が教示されるティーチングによりロボット4の可動限界RA内に設定される。このティーチングにより、ロボット4には、当該指示点に作業部P0を配置させるときの各関節の角度が記憶される。このことにより、追従領域に含まれない領域は、ロボットがワークに対して追従を行なわない非追従領域とされ、コンベヤー1上には、追従領域を非追従領域に対して区画する境界が当該追従領域の縁に沿って形成される。
作業対象検出部17は、所定の実行周期で、ワークWの現在位置と、追従領域設定部15の追従領域とを比較する。そして、ワークWの現在位置が追従領域内に到達(進入)したとき当該ワークWを作業対象として検出す(ワーク進入判定工程)とともに、ワークWが追従領域内から逸脱したことによりワークWの現在位置が追従領域内に含まれなくなるとき当該ワークWを作業対象外として検出する。そして、検出された結果をユーザープログラム実行部12や追従指令値生成部16に伝達する。すなわち、ワークWが追従領域内に到達したとき作業対象としてユーザープログラム実行部12に伝達されて作業対象リストに当該ワークWが登録される。また、ワークWが追従領域内から逸脱したとき作業対象外としてユーザープログラム実行部12に伝達されて作業対象リストから当該ワークWが削除される。
次に、追従領域とその設定方法について図に従って説明する。
図3は、追従領域を模式的に示す模式図であり、図4は、追従領域を規定する指示点を設定する態様を示す状態図であり、図5は、指示点を設定する工程の手順を示すフローチャートである。
図3に示すように、追従領域は、ロボット4の可動限界RA内にあって、コンベヤー1を横切るようにコンベヤー1の搬送方向Cvの上流側に設けられる第1境界BL1と、コンベヤー1を横切るようにコンベヤー1の搬送方向Cvの下流側に設けられる第2境界BL2と、コンベヤー1の各側線1a,1bとによって囲まれる範囲として設定される。コンベヤー1の各側線1a,1bはそれぞれ、コンベヤーの幅方向の一端部を含みコンベヤーの搬送方向Cvに延びる線である。第1境界BL1は、ワークWがコンベヤー1に搬送されながら追従領域に入るときに通過する入側の境界線であり、第2境界BL2は、ワークWがコンベヤー1に搬送されながら追従領域から出るときに通過する出側の境界線であ
る。このことから本実施形態では、第1境界BL1よりも上流(図3において左方向)をロボット4がワークWに対して追従を行なわない第1非追従領域とし、第2境界BL2よりも下流(図3において右方向)をロボット4がワークWに対して追従を行なわない第2非追従領域としている。なお、コンベヤー1の各側線1a,1bはコンベヤー1の搬送方向Cvと一致するので、コンベヤー1によって搬送方向Cvに搬送されるワークWはこれを通過することはない。
第1境界BL1は、コンベヤー1の側線1bとロボット4の搬送方向Cv上流側の可動限界RAとが交差する指示点P11と、コンベヤー1の側線1aとロボット4の搬送方向Cv上流側の可動限界RAとが交差する指示点P12とを結ぶ直線として設定される。本実施形態では、可動限界RAの上流側であって、コンベヤー1の各側線1a,1bとの交差により区分される部分を、すなわち、各指示点P11,P12とを結ぶ可動限界RAの円弧部分を、上流可動限界とする。上流可動限界に重なる各指示点P11,P12は、X軸方向の座標が相違することとなることからこれらを結ぶ第1境界BL1は、Y軸方向に傾きを有するようになりコンベヤー1の搬送方向Cvに非直交に設定される。また、第1境界BL1は、指示点P11と指示点P12とでは、ロボット4の上流可動限界と一致し、コンベヤー1の幅方向の中心線1cの位置にあっても、円弧状の可動限界RAに対して直線状の境界線を設定する場合に生じる最小の離間距離である距離S10だけしか離れていない位置を追従領域に含むことができるようになる。このように、第1境界BL1を、第1境界BL1と、上流可動限界と、各側線1a,1bとにより区画され、可動限界RAに含まれるもののロボット4による追従動作が行なわれない領域の面積を小さくするように設定することで、ロボット4の可動限界RAが有効利用されるようにもなる。
第2境界BL2は、2つの指定端点P31と指定端点P32を結ぶ直線として設定されている。指定端点P31は、コンベヤー1の側線1bとロボット4の搬送方向Cv下流側の可動限界RAとが交差する指示点P21が当該可動限界RA内に距離S21だけ移動した点として設定されている。また、指定端点P32は、コンベヤー1の側線1aと同可動限界RAとが交差する指示点P22が当該可動限界RA内に距離S22だけ移動した点として設定されている。本実施形態では、可動限界RAの下流側であって、コンベヤー1の各側線1a,1bとの交差により区分される部分を、すなわち、各指示点P21,P22とを結ぶ可動限界RAの円弧部分を、下流可動限界とする。また本実施形態では、各距離S21,S22は略等しい長さに設定されており、各指定端点P31,P32は、先の各指示点P11,P12の場合と同様に、X軸方向の座標が相違することとなることからこれらを結ぶ第2境界BL2は、Y軸方向に傾きを有するようになりコンベヤー1の搬送方向Cvに非直交に設定される。
各距離S21,S22は、その位置において搬送方向Cvに搬送されているワークWに対してロボット4が追従及び作業などの処理を開始しても、当該処理を可動限界RA内で終了することができる距離である。すなわち、各距離S21,S22は、ロボット4の可動限界RA内の位置と、当該位置から下流可動限界との間に予め設定される距離である。このことから、距離S21,S22は、コンベヤー1の速度や、ワークWへのロボット4の追従能力や、ロボット4の作業内容などによって、適宜変更される値であり、それら値は、ロボット4の動作から測定されたり、演算式やシミュレーションなどから算出されるなどして設定される。すなわち、第2境界BL2は、指定端点P31や指定端点P32では、ロボット4の可動限界RAの境界との間に、ロボット4の追従と作業に最小限必要とされる距離S21と距離S22に一致する距離を有している。また、コンベヤー1の幅方向の中心線1cの位置にあっても、上述の距離S21や距離S22に、円弧状の可動限界RAに対して直線状の境界線を設定する場合に生じる最小の離間距離(例えば、前述の距離S10)を加えた距離S20だけしか離れていない位置とすることができる。これにより、第2境界BL2を、第2境界BL2と、下流可動限界と、各側線1a,1bとにより
区画され、可動限界RAに含まれるもののロボット4による追従動作が行なわれない領域の面積を小さくするように設定することで、ロボット4の可動限界RAが有効利用されるようになる。なお、本実施形態では、各距離S21,S22は等距離に設定されているが、これらの各距離S21,S22は、その条件に応じて各別の距離に設定されるものであるから相違してもよい。
ところで、本実施形態では、各指示点P11,P12,P21,P22はロボット4の作業部P0を当該位置に実際に移動させる教示(ティーチング)によってロボットコントローラー5に設定されるようになっている。すなわち、図4に示すように、第1境界BL1の指示点P11は、ロボット4の作業部P0がコンベヤー1の側線1bと当該ロボット4の上流可動限界との交点まで、例えば手動で移動されることによって設定される。同様に、第1境界BL1の指示点P12は、ロボット4の作業部P0がコンベヤー1の側線1aと当該ロボット4の上流可動限界との交点まで、例えば手動で移動されることによって設定される。
ここでティーチング処理について詳述する。ティーチングが開始されると、図5に示すように、ロボット4が第1境界BL1の始点となる指示点P11に移動され(ステップS10)、ロボットコントローラー5には当該指示点P11が始点として設定される(ステップS11)。そして次に、第1境界BL1の終点となる指示点P12にロボット4が移動され(ステップS12)、ロボットコントローラー5は、この点が中間点であるか否かについてユーザーの操作等に基づいて判断する(ステップS13)。本実施形態のように中間点がないか、中間点の設定が終わると、この点は中間点ではないと判断されて(ステップS13でNO)、この点が終点として設定される(ステップS15)。一方、例えば、中間点がある場合、この点が中間点であると判断されると(ステップS13でYES)、ロボットコントローラー5はこの点を中間点と設定して(ステップS14)、ステップS12に戻り、次の点が設定されるようにする。
終点の設定が終了すると、ロボットコントローラー5は、設定された始点、終点及び中間点に基づいて境界線を設定する(ステップS16)。すなわち、本実施形態では、上流側の境界線であることから、始点としての指示点P11と終点としての指示点P12とを結ぶ線からなる第1境界BL1が設定される。
また、第2境界BL2の指示点P21は、ロボット4の作業部P0がコンベヤー1の側線1bと当該ロボット4の下流可動限界との交点まで、例えば手動により移動されることによって設定される。同様に、第2境界BL2の指示点P22は、ロボット4の作業部P0がコンベヤー1の側線1aと当該ロボット4の下流可動限界との交差点まで、例えば手動により移動されることによって設定される。これにより、指示点P21に基づく指定端点P31と、指示点P22に基づく指定端点P32とが設定されるようになる。
ここでティーチング処理について詳述する。図5に示すように、第2境界BL2のためのティーチングが開始されると、第1境界BL1と同様に、ロボットコントローラー5には、ロボット4の始点(指示点P21)と終点(指示点P22)とがそれぞれ設定される(ステップS10〜S15)。終点の設定が終了すると、ロボットコントローラー5は、下流側の境界線の場合、始点(指示点S21)と終点(指示点S22)とをそれぞれ搬送方向Cvとは逆の方向に予め設定されている距離S21,S22だけ移動させた指定端点P31と指定端点P32とをそれぞれ始点と終点とする第2境界BL2を設定する。
次に、ロボットシステムによるワークWへのロボット4の追従工程について図を参照して説明する。図6は、ワークWに対するロボット4の追従工程を示すフローチャートである。なお、この工程は、終了されたときには定期的に実行が開始されるようになっている
。
図6に示すように、ロボットコントローラー5は、ワーク位置更新部14等を通じてワークWの現在位置を取得し(ステップS20)、追従領域に入っているワークWがあるか否かを判断する(ステップS21)。追従領域に入っているワークWがないと判断された場合(ステップS21でNO)、ロボット4による追従工程は終了される。
一方、追従領域に入っているワークWがあると判断される場合(ステップS21でYES)、ロボットコントローラー5は、作業対象検出部17が追従領域への到達を検出したワークWをユーザープログラム実行部12にて作業対象リストに登録する(ステップS22)。そして、ロボットコントローラー5は、ユーザープログラム実行部12にて作業対象リストの中から所定の条件に基づいて作業対象となるワークWを選択し(ステップS23)、当該選択されたワークWに対する軌道などを追従指令値生成部16にて生成する。追従指令値生成部16にて生成された軌道に基づいてモーター制御部18を介してロボット4が駆動制御されてワークWへの追従及び作業が行なわれる(ステップS24)。選択されたワークWに対する追従及び作業が終了すると、ロボットコントローラー5は、当該ワークWを作業対象リストから削除してから(ステップS25)、作業対象リストに他のワークWが登録されているか否かを判定する(ステップS26)。作業対象リストに他のワークWが登録されていると判定される場合(ステップS26でYES)、ステップS23に戻り、作業対象を選択するとともに同選択(ステップS23)以下の処理を繰り返えす。一方、作業対象リストにワークWが登録されていないと判定される場合(ステップS26でNO)、ロボットコントローラー5は、ワークWに対するロボット4の追従及び作業を終了する。
以上説明したように、本実施形態のロボットシステムによれば、以下に列記するような効果が得られるようになる。
(1)追従領域の第1境界BL1および第2境界BL2をワークWの搬送方向(コンベヤー1の搬送方向Cv)に対して非直交に設定した。これにより、ワークWの搬送方向Cvに制約されることのない高い自由度のもとで追従領域を設定することができるようになる。また、ワークへの追従能力の高い追従領域の設定もできるようになり、このように設定された追従領域に基づいてワークWにロボット4を好適に追従させることができるようになる。
(2)追従領域を、上流側にあってはワークWにロボット4を追従させない非追従領域と第1境界BL1にて区画でき、下流側にあっては同様の非追従領域と第2境界BL2で区画できるようになる。
(3)第1境界BL1や第2境界BL2をそれぞれ一つの直線のみからなるものとして設定した。これにより、境界の設定を極めて容易に行えるようになる。
(4)第1境界は2つの指示点P11,P12を含むように、第2境界は2つの指示点P21,P22に基づいて設定される2つの指定端点P31,P32を含むように設定した。すなわち教示された点を結ぶことなどにより任意の形状の境界を設定することができるようにもなる。なお、点の教示には、ロボット4の先端を移動させてティーチングする方法や、ロボット4の可動限界RAとコンベヤー1の配置位置とから算出する方法、もしくは指示点の座標そのものを設定する方法などを適用することができる。
(5)可動限界RAに対して、第1境界BL1や第2境界BL2を高い自由度で設定できるようにした。例えば、第1境界BL1をロボット4の可動限界RAに近い位置に設けることにより、移動してくるワークWに対してロボットの可動限界RAに近い位置から作業できるようになる。また、第2境界BL2をロボット4の可動限界RAに到達する前に
ワークWへの追従が可能な位置に設定することで、ワークWへ追従する前にロボット4がその可動限界RAに到達することを防ぐことができるようになる。
(6)旋回アームの旋回軌道に基づき制約される動作特性を有する多関節型ロボットであるスカラーロボット(ロボット4)に対しても、当該ロボット4の動作特性に適応するとともにコンベヤー側による制約を考慮した追従領域を設定することができるようになる。
(7)カメラ2やロボットコントローラー5などからなる位置検出装置にて検出されたワークWの位置と、エンコーダー3などの搬送量検出装置にて検出されたコンベヤー1の搬送量とに基づいてワークWの現在位置を逐次追跡(トラッキング)するロボットシステムにも上述のロボット4を適用した。これにより、ロボット4にはトラッキングされたワークWに対して追跡能力の高い追従領域が設定され、この設定された追従領域に基づいてワークWに対するロボット4の追従が好適に行なわれるシステムが構成されるようになる。
(8)逐次計算されるワークWの位置に基づいて、追従領域にワークWが進入したことを判定し、進入の判定されたワークWに対してロボット4を追従動作させるようにした。これにより、任意に設定された追従領域であれ、当該追従領域に進入したワークWにロボット4を追従させることができるようになる。
(第2の実施形態)
以下、本発明を具体化したロボットシステムの第2の実施形態について図7に従って説明する。図7は、ロボットシステムに設定される追従領域について模式的に示した図である。なお、本実施形態のロボットシステムは、第1の実施形態のロボットシステムと追従領域が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第1の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。
図7に示すように、追従領域は、ロボット4の可動限界RA内にあって、コンベヤー1の搬送方向Cvの上流側に設けられる第1境界BL10と、コンベヤー1の搬送方向Cvの下流側に設けられる第2境界BL20と、コンベヤー1の各側線1a,1bとによって囲まれる範囲に設定されている。すなわち第1境界BL10は、ワークWがコンベヤー1に搬送されながら追従領域に入るときに通過する入側の境界線であり、第2境界BL20は、ワークWがコンベヤー1に搬送されながら追従領域から出るときに通過する出側の境界線である。
第1境界BL10は、3つの指示点P11,P13,P12を結ぶ2つの直線の組み合わせ、すなわち、2つの指示点P11,P13を結ぶ第1の直線BL1Aと、2つの指示点P13,P12を結ぶ第2の直線BL1Bとの組み合わされた線として設定されている。先の第1の実施形態と同様に、指示点P11は、コンベヤー1の側線1bとロボット4の上流可動限界とが交差する点であり、指示点P12は、コンベヤー1の側線1aとロボット4の上流可動限界とが交差する点である。指示点P13は、コンベヤー1の幅方向の中心線1cとロボット4の上流可動限界とが交差する点である。コンベヤー1上に重なる可動限界RAの円弧状の境界に基づく各指示点P11,P13,P12は、X軸方向の座標が相違することとなることからこれらを結ぶ第1境界BL10は、Y軸方向に傾きを有するようになりコンベヤー1の搬送方向Cvに非直交に設定される。また、第1境界BL10は、各指示点P11,P13,P12においてロボット4の可動限界RAの境界と一致する。すなわち、コンベヤー1の中心線1cの位置にあっても、上流可動限界に一致するため、円弧状の可動限界RAと各直線BL1A,BL1Bとの間に生じる離間距離を短
くすることができるようになる。第1境界BL10を2つの直線BL1A,BL1Bの組み合わせとすることで円弧状の可動限界RAに対する離間距離を小さくすることができる。このように、第1境界BL10は、ロボット4の可動限界RAが有効利用されるようにも設定される。また、円弧状の可動限界RAの一部である上流可動限界に内接するかたちに設けられる連続した2つの直線BL1A,BL1Bであれば、それら直線BL1A,BL1Bのなす角度は自ずと180°ではない角度となる。
第2境界BL20は、3つの指定端点P31,P33,P32を結ぶ2つの直線の組み合わせ、すなわち、2つの指定端点P31,P33を結ぶ第1の直線BL2Aと、2つの指定端点P33,P32を結ぶ第2の直線BL2Bとの組み合わされた線として設定されている。指定端点P31は、先の第1の実施形態と同様に、コンベヤー1の側線1bとロボット4の下流可動限界とが交差する指示点P21が可動限界RA内に距離S21だけ移動した点として設定されている。また、指定端点P32も、先の第1の実施形態と同様に、コンベヤー1の側線1aと下流可動限界とが交差する指示点P22が可動限界RA内に距離S22だけ移動した点として設定されている。さらに、指定端点P33は、コンベヤー1の中心線1cとロボット4の下流可動限界とが交差する指示点P23が可動限界RA内に距離S23だけ移動した点として設定されている。本実施形態では、各距離S21,S22,S23は略等しい長さに設定されており、各指定端点P31,P33,P32は、先の各指示点P11,P12,P13の場合と同様に、X軸方向の座標が相違することとなることからこれらを結ぶ第2境界BL20は、Y軸方向に傾きを有し、コンベヤー1の搬送方向Cvに非直交に設定される。
距離S23は、先の第1の実施形態で説明した距離S21,S22と同様に、その位置において搬送方向Cvに搬送されているワークWに対してロボット4が追従及び作業などの処理を開始しても、当該処理を可動限界RA内で終了することができる距離である。すなわち、各距離S21,S22,S23は、ロボット4の可動限界RA内の位置と、当該位置から下流可動限界との間に予め設定される距離である。このことから、距離S23は、距離S21,S22と同様に、コンベヤー1の速度や、ワークWへのロボット4の追従能力や、ロボット4の作業内容などによって、適宜変更される値であり、それら値は、ロボット4の動作から測定されたり、演算式やシミュレーションなどから算出されるなどして設定される。すなわち、第2境界BL20は、各指定端点P31,P32,P33では、ロボット4の下流可動限界との間に、ロボット4の追従と作業に最小限必要とされる距離S21,S22,S23に一致する距離を有している。このように、2つの直線BL2A,BL2Bからなる第2境界BL20は下流可動限界に対する離間距離が小さくなる。これにより、第2境界BL20は、ロボット4の可動限界RAが有効利用されるよう設定される。また、円弧状の可動限界RAの一部である下流可動限界上の各指示点P21,P23,P22から等しく離間した指定端点P31,P33,P32を端点とする連続した2つの直線BL2A,BL2Bであれば、それら直線BL2A,BL2Bのなす角度は自ずと180°ではない角度となる。
なお、本実施形態では、各距離S21,S22,S23は等距離に設定されているが、これらの各距離S21,S22,S23は、その条件に応じて各別の距離に設定されるものであるから相違してもよい。
ところで、本実施形態でも、先の第1の実施形態と同様に、各指示点P11,P12,P13,P21,P22,P23はロボット4の作業部P0を当該位置に実際に移動させる教示(ティーチング)によってロボットコントローラー5に設定されるようになっている。すなわち、指示点P11と指示点P12とは、先の第1の実施形態と同様に設定され、指示点P13は、ロボット4の作業部P0がコンベヤー1の中心線1cと当該ロボット4の上流可動限界との交点まで移動されることによって設定される。これにより、本実施
形態では、始点としての指示点P11と、中間点としての指示点P13と、終点としての指示点P12とが設定され、それら指示点P11,P12,P13を結ぶ2つの直線BL1A,BL1Bからなる第1境界BL10が設定される。
また、指示点P21と指示点P22は、先の第1の実施形態と同様に設定され、指示点P23は、ロボット4の作業部P0がコンベヤー1の中心線1cと当該ロボット4の下流可動限界との交差まで移動されることによって設定される。これにより、指示点P21に基づく始点としての指定端点P31、指示点P23に基づく中間点としての指定端点P33、指示点P22に基づく終点としての指定端点P32とが設定され、それら指定端点P31,P32,P33を結ぶ2つの直線BL2A,BL2Bからなる第2境界BL20が設定される。
以上説明したように、本実施形態によっても先の第1の実施形態の前記(1)及び(8)の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
(9)第1境界BL10を第1の直線BL1Aと第2の直線BL1Bの組み合わせ、第2境界BL20を第1の直線BL2Aと第2の直線BL2Bの組み合わせにより設定した。これにより、第1境界BL10や第2境界BL20の形状の自由度が高められ、ロボット4の動作特性など各種制約にも対応した追従領域の設定も可能となる。また直線の組み合わせである境界はその設定も容易である。
(10)すなわち、第1境界BL10を3つの指示点P11〜P13を結んだ線により定め、第2境界BL20を3つの指示点P21〜P23に基づいて設定された指定端点P31〜P33を結んだ線により定めた。これにより、任意の形状を有する境界であれその設定が容易とされるようになるので、追従領域を高い自由度のもとで設定することができるようになる。
(第3の実施形態)
以下、本発明を具体化したロボットシステムの第3の実施形態について図8に従って説明する。図8は、ロボットシステムに設定される追従領域について模式的に示した図である。なお、本実施形態のロボットシステムは、第1の実施形態のロボットシステムと追従領域が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第1の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。
図8に示すように、本実施形態では、ロボット4の可動限界RA内にロボット4との相対位置が変化しない作業用トレイTRが設けられており、ロボット4の作業部P0は、作業用トレイTRの領域において当該作業用トレイTRに干渉する。そこで、追従領域は、作業用トレイTRを避けるように設定される。すなわち、追従領域は、作業用トレイTRを避けるようにコンベヤー1の搬送方向Cvの上流側に設けられる第1境界BL11と、コンベヤー1の搬送方向Cvの下流側に設けられる第2境界BL21と、コンベヤー1の各側線1a,1bとによって囲まれる範囲に設定されている。なお、第1境界BL11は、ワークWがコンベヤー1に搬送されながら追従領域に入るときに通過する入側の境界線であり、第2境界BL21は、ワークWがコンベヤー1に搬送されながら追従領域から出るときに通過する出側の境界線である。
第1境界BL11は、作業用トレイTRを含まないように指示された、2つの指示点P14,P15を結ぶ直線として設定されている。指示点P14は、コンベヤー1の側線1bと交差するロボット4の可動限界RA内の搬送方向Cv上流側の任意の点であり、指示
点P15は、コンベヤー1の側線1aと交差するとともに、指示点P14を通る線が作業用トレイTRに重ならないようなる位置に設定された点である。本実施形態では、各指示点P14,P15を、Y軸方向の座標が相違するように設定するようにし、これらを結ぶ第1境界BL11が、外側の可動限界RAの境界に沿うY軸方向への傾きを有するようにしている。この傾きにより、第1境界BL11はコンベヤー1の搬送方向Cvに非直交になる。また、この第1境界BL11のY軸方向の傾きを、ロボット4の可動限界RAの境界に沿わせることにより、作業用トレイTRを回避する直線の境界線としては、ロボット4の可動限界RAをもっとも有効利用するように設定することができる。すなわち、円弧状の可動限界RAの一部である上流可動限界に直線状の境界線を設定する場合に生じる離間距離を、作業用トレイTRを回避しつつ短くすることができる。なお、図8に示すように、指示点P16,P17を結ぶ第1境界BL12のように、可動限界RAの境界に対する角度を多少変化させることなどにより、コンベヤー1の側線1b側の指示点P16を上流可動限界に近づけて追従領域が拡がるようにしてもよい。
ところで、本実施形態では、各指示点P14,P15,P24,P25は、先の第1の実施形態と同様に、ロボット4の作業部P0を当該位置に実際に移動させる教示(ティーチング)によってロボットコントローラー5に設定される。なお、説明の便宜上、その詳細な説明については省略する。
すなわち、本実施形態では、第2境界BL21は、2つの指示点P24,P25を結ぶ直線として設定されている。指示点P24は、コンベヤー1の側線1bと交差するロボット4の搬送方向Cv下流側の可動限界RA内の任意の点として設定され、指示点P25は、コンベヤー1の側線1aと交差するロボット4の搬送方向Cv下流側の可動限界RA内の任意の点として設定されている。なお、指示点P24,P25は、下流可動限界に対して、その位置において搬送方向Cvに搬送されているワークWに対してロボット4が追従及び作業などの処理を開始しても、当該処理を可動限界RA内で終了するために最小限必要とされる距離だけ離れた位置とされている。このため、指示点P24,P25は、Y軸方向に対して傾きを有する下流可動限界から同様の距離だけ離れた位置に設定されている。このことにより、各指示点P24,P25は、X軸方向の座標が相違することとなることからこれらを結ぶ第2境界BL21はY軸方向に傾きを有することでコンベヤー1の搬送方向Cvに非直交に設定される。これによっても、第2境界BL21は、下流可動限界から最小限必要とされる距離程度しか離間しないので、ロボット4の可動限界RAを有効利用するように設定することができる。なお、本実施形態では、各指示点P24,P25は下流可動限界から等距離に設定されているが、この距離は、コンベヤー1の速度や、ワークWへのロボット4の追従能力や、ロボット4の作業内容などの条件に応じて各別に設定されるものであるから相違してもよい。
以上説明したように、本実施形態によっても先の第1の実施形態の前記(1)及び(8)の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
(11)可動限界RA内にある作業用トレイTRを避けるように、第1境界BL11を設定した。これによっても、境界の設定自由度がより高められ、追従領域の設定の自由度も自ずと向上されるようになる。
(12)指示点P14,P15などを可動限界RA内に設けた。これにより、指示点の設定可能位置が拡げられ、指示点に基づいて形成される境界の設定自由度が高められるようになる。
(13)第2境界BL21を規定する指示点P24,P25を直接指定した。これによ
り、境界の設定態様が拡がり、追従領域の設定自由度も高められる。
(第4の実施形態)
以下、本発明を具体化したロボットシステムの第4の実施形態について図9に従って説明する。図9は、ロボットシステムに設定される追従領域について模式的に示した図である。なお、本実施形態のロボットシステムは、第1の実施形態のロボットシステムと追従領域が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第1の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。
図9に示すように、本実施形態では、本実施形態では、ロボット4の可動限界RA内にロボット4との相対位置が変化しない作業用トレイTRが設けられており、ロボット4の作業部P0は作業用トレイTRの領域において当該作業用トレイTRに干渉する。そこで、追従領域は、作業用トレイTRを避けるように設定される。すなわち、追従領域は、作業用トレイTRを避けるようにコンベヤー1の搬送方向Cvの上流側に設けられる第1境界BL13と、コンベヤー1の搬送方向Cvの下流側に設けられる第2境界BL2と、コンベヤー1の各側線1a,1bとによって囲まれる範囲に設定されている。なお、第1境界BL13は、ワークWがコンベヤー1に搬送されながら追従領域に入るときに通過する入側の境界線である。
第1境界BL13は、作業用トレイTRを含まないように指示された、4つの指示点P11,P18,P19,P19Aを結ぶ3つの直線の組み合わせにより設定されている。すなわち、第1境界BL13は、2つの指示点P11,P18を結ぶ直線BL1Cと、2つの指示点P18,P19を結ぶ直線BL1Dと、2つの指示点P19,P19Aを結ぶ直線BL1Eとの組み合わされた線として設定されている。指示点P11は、コンベヤー1の側線1bとロボット4の可動限界RA内の搬送方向Cv上流側とが交差する点であり、指示点P18は、ロボット4の上流可動限界とコンベヤー1に突出した作業用トレイTRのX軸方向に沿う辺のY軸座標とが交差する点である。また、指示点P19は、前述の作業用トレイTRのX軸方向に沿う辺と、当該作業用トレイTRの下流側のY軸方向に沿う辺との交点に対応する点であり、指示点P19Aは、前述の作業用トレイTRの下流側のY軸方向に沿う辺と、コンベヤー1の側線1aとが交差する点である。このように、4つの指示点P11,P18,P19,P19Aを設定することより、これらを結び形成される第1境界BL13は、作業用トレイTRを避けるように設定される。本実施形態では、各指示点P11,P18,P19は、X軸方向の座標が相違するように設定されることからこれらを結ぶ第1境界BL13は、その一部である直線BL1Cや直線BL1DがY軸方向に傾きを有し、コンベヤー1の搬送方向Cvに非直交に設定される。また、指示点P11と指示点P18とはロボット4の上流可動限界に一致するため、作業用トレイTRを回避する直線の境界線としては、ロボット4の可動限界RAを有効利用することができるように設定される。すなわち、円弧状の可動限界RAに直線状の境界線を設定する場合に生じる離間距離を、作業用トレイTRを回避しつつ短くすることができるようになる。これにより、第1境界BL13(直線BL1C)と円弧状の可動限界RAとの離間距離を短くすることができる。
ところで、本実施形態でも、各指示点P11,P18,P19,P19Aは、先の第1の実施形態と同様に、ロボット4の作業部P0を当該位置に実際に移動させる教示(ティーチング)によってロボットコントローラー5に設定される。なお、説明の便宜上、その詳細な説明については省略する。
以上説明したように、本実施形態によっても先の第1の実施形態の前記(1)及び(8)の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
(14)第1境界BL13を4つの指示点P11,P18,P19,P19Aを結んだ3つの直線BL1C,BL1D,BL1Eにより規定した。これによっても、境界の設定自由度がまた一層高められ、追従領域の設定の自由度も自ずと向上されるようになる。
(15)可動限界RA内にある作業用トレイTRを、同作業用トレイTRの辺に沿いつつ避けるような複雑な形状に、第1境界BL13を設定した。これにより、設置環境に応じた追従領域の設定がより一層好適に行えるようになる。
なお、上記各実施形態は、例えば以下のような態様にて実施することもできる。
・上記各実施形態では、CPUにユーザープログラム実行部12と、ワーク位置更新部14と、追従指令値生成部16と、作業対象検出部17と、モーター制御部18とが設けられる場合について例示した。しかしこれに限らず、ユーザープログラム実行部や、ワーク位置更新部や、追従指令値生成部や、作業対象検出部やモーター制御部は、それを処理されるのであれば、CPU以外の処理装置に設けられ、そこで処理されてもよい。また、複数のCPUなどの処理装置に、ユーザープログラム実行部や、ワーク位置更新部や、追従指令値生成部や、作業対象検出部やモーター制御部が分散されていてもよい。さらに、ユーザープログラム実行部、ワーク位置更新部、追従指令値生成部、作業対象検出部及びモーター制御部における各処理が、それぞれ複数のCPUなどの処理装置により処理されてもよい。
・上記各実施形態では、記憶装置にユーザープログラム記憶部11と、ワーク位置記憶部13と、追従領域設定部15とが設けられる場合について例示した。しかしこれに限らず、ユーザープログラム記憶部や、ワーク位置記憶部や、追従領域設定部は必要な情報が保持されるのであれば、その他の記憶装置に設けられてもよいし、これらが複数の記憶装置に分散して設けられてもよいし、各記憶部が複数の記憶装置に分散して設けられてもよい。
・上記各実施形態では、ロボットコントローラー5にモーター制御部18が設けられている場合について例示した。しかしこれに限らず、ロボットコントローラーによる制御ができるのであれば、モーター制御部はロボットコントローラーに対して独立していてもよい。この場合、追従指令値生成部からのモーター指令値を受けたモーター制御部が同モーター指令値に従って各関節のモーターを制御するようにする。
・上記各実施形態では、各指示点P11〜P19,P19A,P21〜P24が手動のティーチングにより設定される場合について例示した。しかしこれに限らず、各指示点は、ロボットの先端位置(作業部)とコンベヤーの幅等とを検出可能なセンサーなどを用いることなどにより、ロボットの先端を自動的にティーチングさせて定めるようにして設定してもよい。
・上記各実施形態では、各指示点P11〜P19,P19A,P21〜P24がティーチングにより設定される場合について例示した。しかしこれに限らず、各指示点は、ロボットの可動限界とコンベヤーの配置位置などから演算により算出されるようにしてもよいし、当該指示点の座標そのものが直接設定されるようにしてもよい。
・上記第1、第2、第4実施形態では、各指定端点P31〜P33は、ティーチングされた指示点P21〜P23から算出される場合について例示した。しかしこれに限らず、各指定端点は、ティーチングにより設定されてもよい。
・上記第1、第2、第4実施形態では、第2境界BL2,BL20は各指定端点P31
〜P33を結んで設定される場合について例示した。しかしこれに限らず、第2境界は、指示点を結んで生成された線をX軸方向に所定の距離移動させるようにして設定してもよい。これによっても、指定端点を用いた場合と同様の第2境界を設定することができる。
・上記第1、第2、第4の実施形態では、対応する第1境界BL1,BL10,BL13に、ロボット4の可動限界RAの境界と一致する指示点P11,P12,P13,P18などが含まれる場合について例示した。しかしこれに限らず、第1境界は、指示点を含まなくてもよい。例えば、ロボットの可動限界の境界近傍では、ロボットの動作自由度が低いような場合、第1境界を指示点よりもロボットの可動限界の内側に、予め設定された所定の距離だけ離間されるように設定されてもよい。
・上記各実施形態では、複数の指示点が直線で結ばれることにより追従領域が規定される場合について例示した。しかしこれに限らず、複数の指示点は、曲線などにより結ばれてもよい。曲線により結ぶ場合は、演算処理等が増加するが、これによっても、追従領域の設定の自由度を高く維持することができる。
・上記各実施形態では、第1境界BL1(BL10,BL11,BL12,BL13)と、第2境界BL2(BL20,BL21)がともにワークWの搬送方向Cvに非直交な部分を有する場合について例示した。しかしこれに限らず、第1境界及び第2境界のいずれか一方にワークの搬送方向に非直交な部分が含まれていてもよい。すなわち、第1境界または第2境界がワークの搬送方向に直交するかたちに設定されていてもよい。
・上記各実施形態では、ロボット4がスカラーロボットである場合について例示した。しかし、これに限らず、ロボットとしてはどのようなロボットでもよいが、特に旋回アームを有する、六軸ロボットなどのロボットでもよい。