説明

ロボット位置検出装置及びロボットシステム

【課題】移動中のロボットから検出される該ロボットの位置に対してその精度を高めることが可能なロボット位置検出装置及びロボットシステムを提供する。
【解決手段】位置算出部60は、トリガー信号が入力されるトリガー信号入力部61と、エンコーダーから出力された位置データが通信時間の分だけ遅れて入力される位置データ入力部62と、入力された位置データを取得してトリガー信号検出時におけるロボットの位置を算出するデータ処理部63とを備えている。データ処理部63は、トリガー信号が検出される前に取得した第1の位置データとそのタイミング、及び、トリガー信号が検出された後の第2の位置データとそのタイミングを用いてロボットの位置を線形補間し、トリガー信号が入力されたタイミングよりも通信時間だけ後の位置をトリガー信号検出時におけるロボットの位置として算出する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの位置を検出するロボット位置検出装置、及び該ロボット位置認識装置を備えたロボットシステムに関する。
【背景技術】
【0002】
従来から、ワークを把持するロボットの目標位置を補正する方法として、例えば特許文献1のような技術が知られている。特許文献1では、ワークを撮像する撮像装置の撮像範囲に、ロボットに把持されているワークと該ロボットに設けられた基準マークとが配置されるように撮像装置及びロボットをそれぞれ所定の位置に移動させる。そして、撮像装置によって撮像された画像を画像処理することによって、基準マークに対するワークの中心座標や傾きなどを取得し、その取得した中心座標等に基づいてロボットの目標位置に関する位置補正量が算出されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4539685号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1の方法では、ロボットの目標位置に関する位置補正量を確実に算出することが可能ではあるものの、位置補正量を算出するための画像を撮像する際にロボットを止めておく必要がある。位置補正量を算出するためとはいえロボットを所定の位置に止めておくことになれば、その止まっている時間の分だけ装置のスループットが低下することになる。こうしたスループットの低下を抑えるうえでは、ロボットを止めることなく移動中のワークを撮像してその撮像時におけるロボットの位置と撮像したワークの画像とに基づいてロボットの位置補正量を取得することが望ましい。
【0005】
一方、ロボットの位置を示すエンコーダーからのデータは、通常、シリアル通信によってロボットコントローラーに入力される。そのため、該データが出力されたタイミングよりも、シリアル通信の通信周期及びデータ量等に応じたエンコーダーとロボットコントローラーとの通信時間だけ遅れたタイミングでロボットコントローラーに入力される。この際、上述したようにロボットが絶えず移動していることとなれば、エンコーダーに基づいて算出される位置と画像から得られる位置とが時間軸において互いに異なるものとなる。
【0006】
本発明は上記実状を鑑みてなされたものであり、その目的は、移動中のロボットから検出される該ロボットの位置に対してその精度を高めることが可能なロボット位置検出装置及びロボットシステムを提供することにある。
【課題を解決するための手段】
【0007】
本発明のロボット位置検出装置は、ロボットの位置を示す位置データがエンコーダーから入力される位置データ入力部と、前記入力された位置データを取得してロボットの位置を算出する位置算出部とを備え、前記位置算出部は、前記ロボットの位置を検出するための指令を受けて、前記指令よりも前の第1のタイミングで取得した第1の位置データと、前記指令よりも後の第2のタイミングで取得した第2の位置データと、前記エンコーダーと前記位置データ入力部との通信に要する通信時間とを用い、前記指令が入力されたタイミングよりも前記通信時間だけ後のタイミングにおける位置を前記第1の位置データと前記第2の位置データとの線形補間によって算出し、該算出結果を前記指令が入力されたと
きの前記ロボットの位置として出力する。
【0008】
このロボット位置検出装置によれば、指令の入力されたタイミングよりも、エンコーダーと位置データ入力部との通信に要する通信時間だけ後のタイミングに基づいて線形補間によりロボットの位置が出力されるため、線形補間に用いられる各データのタイミングが略等しい時間軸上でのタイミングになる。それゆえに、第1の位置データと第2の位置データとを用いる線形補間によって算出されるロボットの位置は、通信時間にてロボットの移動する移動量が補正されたものとなる。そのため、移動中のロボットの位置を精度よく検出することができる。
【0009】
このロボット位置検出装置において、前記位置算出部は、1つのエンコーダーから前記位置データ入力部に入力された前記位置データを取得する所定の周期Tよりも短い周期Tsで該指令を検出可能な指令検出部を備える。
【0010】
このロボット位置検出装置によれば、1つのエンコーダーから位置データが入力されるタイミングよりも指令を検出可能なタイミングの方が多くなる。その結果、指令が入力されたタイミングにより近い時期におけるロボットの位置を検出することができる。
【0011】
このロボット位置検出装置において、前記位置算出部は、前記所定の周期Tを1以上の整数nでn等分割した周期T/nごとに互いに異なるエンコーダーからの位置データを取得し、前記指令が入力されたときの前記ロボットの位置を前記エンコーダーごとに出力する。
【0012】
このロボット位置検出装置によれば、互いに異なるエンコーダーごとにロボットの位置が算出されることから、指令の入力時におけるロボットの位置をより高い精度で検出することができる。
【0013】
このロボット位置検出装置において、前記位置算出部は、取得した前記位置データが正常か否かを判断するとともに、前記指令を検出したときの直前における前記位置データが正常でないと判断される場合には、当該位置データの直前に取得した位置データを前記第1の位置データとして用いる。
【0014】
エンコーダーから入力される位置データは、電気的な信号であるため例えばノイズなどの影響を受けてしまう虞がある。こうした影響を受けた位置データを用いてロボットの位置を算出するとなれば、位置算出部によって算出されたロボットの位置に対する信頼性が低下してしまう。この点、上記構成のロボット位置検出装置によれば、位置算出部は、取得した位置データが正常か否かを判断するとともに指令を検出したときの直前における位置データが正常でないと判断される場合には、当該位置データの直前に取得した位置データを第1の位置データとして用いることから、正常な位置データを用いてロボットの位置が算出することができる。
【0015】
このロボット位置検出装置において、前記位置算出部は、前記指令を検出したときの直後における前記位置データが正常でないと判断される場合には、当該位置データの直後に取得した位置データを前記第2の位置データとして用いる。
【0016】
通常、第1のタイミングと第2のタイミングとが離れるほど、これらの間の位置における線形性が失われる。このロボット位置検出装置では、こうした線形補間を用いているために第1のタイミングと第2のタイミングとが時間的に離間しているほど、位置算出部によって算出されたロボットの位置と実際のロボットの位置とに大きな誤差が生じやすい。この点、上記構成によれば、例えば、位置データが入力されるタイミングであって指令を
検出した直後のタイミングを基準タイミングとするとき、第1のタイミングと第2のタイミングとが時間的に最も離間する場合であっても、第1の位置データは基準タイミングよりも2つ前のタイミングで入力された位置データであり、第2の位置データは基準タイミングよりも2つ後のタイミングで入力された位置データである。その結果、当該第1のタイミングよりも前に取得された位置データと当該第2のタイミングよりも後に取得された位置データとに基づいてロボットの位置が算出される場合に比べて、算出されるロボットの位置の精度を高めることができる。
【0017】
本発明のロボットシステムは、ワークを搬送するロボットと、前記ロボットの位置を示す位置データを出力するエンコーダーと、前記ロボットの位置を検出するための指令を出力する指令出力部と、前記位置データと前記指令とが入力され、前記指令が入力されたときの前記ロボットの位置を前記位置データに基づいて検出するロボット位置検出部とを備えるロボットシステムであって、前記ロボット位置検出部が、前記ロボット位置検出部が上述したロボット位置検出装置である。
【0018】
本発明のロボットシステムによれば、ロボットの移動中に指令出力部が指令を出力したとしても、該ロボットの位置を精度よく検出することができる。
このロボットシステムは、予め定められた撮像範囲を前記指令出力部からの指令が入力されたタイミングで撮像することにより、目標位置へ移動中の前記ロボットが搬送しているワークを含む画像を取得するカメラと、前記カメラが取得した画像に基づいて前記ワークの位置を取得するワーク位置取得部と、前記ワーク位置取得部が取得した前記ワークの位置と、前記ロボット位置検出部が検出した前記ロボットの位置とに基づいて、前記目標位置を補正する目標位置補正部とをさらに備えている。
【0019】
このロボットシステムによれば、指令出力部からの指令が入力されたタイミングにおけるロボットの位置とワークの位置との相対位置に基づいて、ロボットの目標位置を補正することができる。上述したようにロボット位置検出部で検出されるロボットの位置は、ロボットを移動させながら検出されたものであって、なおかつその精度が高められたものである。すなわち、目標位置を補正するためにロボットを止める必要がなくなるとともに、ロボットの目標位置に対する補正量の精度も高めることができる。その結果、ロボットシステムのスループットの低下を抑えつつ、搬送すべき位置にワークを搬送することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施の形態にかかるロボットシステムの概略構成を示す斜視図。
【図2】ロボットの正面構造を示す正面図。
【図3】ロボットシステムのシステム構成を示す機能ブロック図。
【図4】各エンコーダーの位置データが取得されるタイミングを示すタイミングチャート。
【図5】データ処理部の記憶部が記憶するデータを示す図。
【図6】ロボットの位置を時間に対応付けた図であって、ロボットの位置を算出する算出過程を概念的に説明するための説明図。
【図7】ロボットの位置を算出する処理の手順を示すフローチャート。
【図8】ロボットの位置を算出する処理の手順を示すフローチャート。
【発明を実施するための形態】
【0021】
以下、本発明にかかるロボット位置検出装置及びロボットシステムの一実施の形態について、図1〜図8を参照して説明する。まず、本発明にかかるロボットシステムの概略構成について図1及び図2を参照して説明する。
【0022】
図1に示されるように、ロボットシステム10には、ワークWを搬送方向Cvに沿って所定の搬送速度で搬送するコンベヤー11の側方に、コンベヤー11で搬送されるワークWを選択的に把持して所定の作業を行う水平多関節型のロボット12が配置されている。搬送方向Cvにおけるロボット12の上流側には、コンベヤー11上を搬送されるワークWを上方から撮像するカメラ13が設置されている。このロボットシステム10では、カメラ13によって撮像された画像に基づいて作業対象となるワークWが選択されるとともに、該画像とコンベヤー11の搬送量を測定するエンコーダー14とに基づいて、作業対象に選択されたワークWの位置が把握される。作業対象に選択されたワークWは、ロボット12によって所定の高さまで上昇させられた状態で当該ロボット12の可動範囲内に設置された作業台15上における所定位置まで搬送される。
【0023】
図2に示されるように、ロボット12において、床面等に設置される基台21の上端部には、垂直方向に沿う制御軸C1を中心にして基台21に対して回動可能な基台軸22が設けられている。基台軸22は、基台21内に設けられた第1モーター23が正逆回転されることによって制御軸C1を中心にして回動する。
【0024】
基台軸22には、水平方向に延びる第1の水平アーム24の基端部が連結固定されている。第1の水平アーム24の先端部には、支持軸25が連結固定されている。支持軸25は、垂直方向に沿う制御軸C2を中心にして支持軸25に対して回動可能に第2の水平アーム26を支持している。
【0025】
第2の水平アーム26の基端部には、第2モーター27が配設されている。第2の水平アーム26は、第2モーター27が正逆回転することによって当該第2モーター27が支持軸25から受ける反力によって、制御軸C2を中心にして第1の水平アーム24に対して水平方向に回動する。
【0026】
第2の水平アーム26の先端部には、第2の水平アーム26を貫通する上下回転軸29が設けられている。上下回転軸29は、第2の水平アーム26に対して回転可能に、かつ、上下方向に移動可能に支持されている。また上下回転軸29は、第2の水平アーム26に備えられた昇降モーター30が正逆回転されることによって垂直方向の制御軸C3に沿って昇降される。上下回転軸29は、第2の水平アーム26に備えられた回転モーター31が正逆回転させることによって垂直方向に沿う自らの制御軸C4を中心にして正逆回転される。上下回転軸29の作業部32には、ツール、例えば被搬送物を把持するハンドや被加工物を加工するハンド等の取り付けが可能になっている。
【0027】
また、作業台15へと搬送されるワークWの搬送経路には、検出ラインFLをワークWが通過したことを検出する検出センサー35が設けられている。検出センサー35は、指向性や収束生の高いレーザー光からなる検出光LBを水平方向に沿って出射する出射部36と、出射部36から出射された検出光LBを受光する受光部37とを備えている。出射部36及び受光部37は、ロボット12の可動範囲を挟むように、且つコンベヤー11から作業台15に向かって搬送されるワークWによって検出光LBが一時的に遮断されるように設置されている。
【0028】
検出センサー35の下側には、検出センサー35によるワークWの検出と同時期に当該ワークWを下方から撮像するカメラ39が設置されている。このロボットシステム10においては、このカメラ39によって撮像された画像とその時のロボット12の位置とに基づいてロボット12に対するワークWの相対位置が把握されて、予め定めた位置にワークWが搬送されるようにロボット12の目標位置が補正される。
【0029】
次に、上述した構成のロボットシステム10のシステム構成について図3〜図8を参照
して説明する。
図3に示されるように、上述したロボットシステム10は、コントローラー50によって統括制御される。コントローラー50は、ロボット12を駆動制御する制御装置であり、ロボット12が目標位置に移動する位置決め動作を制御したり、コンベヤー11上を移動しているワークWにロボット12が追従する追従動作を制御したりする。
【0030】
コントローラー50には予め、ロボット12の構造や動作特性、可動範囲内の領域であってコンベヤー11上のワークWを追従可能な追従領域などを示すロボットデータが設定されている。また、コンベヤー11とロボット12の相対位置やコンベヤー11とカメラ39の相対位置、ロボット12とカメラ39の相対位置等を示す各種位置に関するデータ、及びワークの種類や形状を示すワークデータなどが設定されている。そして、これらロボットデータ、各種位置に関するデータ及びワークデータがロボット12の駆動制御に用いられる。
【0031】
コントローラー50は、ユーザープログラムを記憶するユーザープログラム記憶部51と、該ユーザープログラム記憶部51に記憶されたユーザープログラムを実行するユーザープログラム実行部52とを備えている。また、カメラ13により認識されたワークWの初期位置が格納されるワーク位置記憶部53と、該ワーク位置記憶部53のワークWの現在位置をコンベヤー11の移動量に基づいて算出させるワーク位置更新部54とを備えている。さらに、作業部32の軌道(各制御軸C1〜C4の関節角度)を生成し、これをモーター指令値(パルス)に変換して後述のモーター制御部57に出力する指令値生成部55とを備えている。またさらに、追従領域とワークWの位置関係などから作業対象となるワークWを検出する作業対象検出部56と、指令値生成部55からのモーター指令値に従って各制御軸C1〜C4のモーター23,27,30,31を制御するモーター制御部57とを備えている。
【0032】
ユーザープログラム記憶部51のユーザープログラムは、作業対象のワークWに追従するようにロボット12の作業部32を移動させるために必要な各種処理を実行するプログラムである。また、作業部32が把持したワークWを作業台15の所定位置まで移動させるために必要な各種処理を実行するプログラムである。
【0033】
ユーザープログラム実行部52は、ユーザープログラムを実行する。ユーザープログラム実行部52は、作業対象検出部56の検出結果から作業対象として検出されたワークWを作業対象として取り扱う。さらに、ユーザープログラム実行部52は、選択されたワークWにロボット12を追従等させるために必要な情報を算出するとともに、ロボット12を目標位置まで移動させるために必要な情報を算出して、それら算出したデータを指令値生成部55に伝達する。
【0034】
また、目標位置補正部としてのユーザープログラム実行部52には、後述するワーク位置取得部58から搬送中のワークWの位置が入力されるとともに、位置算出部60で算出された移動中のロボット12の位置が入力される。ユーザープログラム実行部52は、ワーク位置取得部58から入力されたワークWの位置と位置算出部60から入力されたロボット12の位置とに基づいてロボット12の目標位置を補正するとともに、その補正した目標位置まで移動させるために必要な情報を算出し、その算出されたデータを指令値生成部55に伝達する。
【0035】
ワーク位置更新部54は、カメラ13が撮影したコンベヤー11上のワークWの撮影画像からワークWの初期位置を求めてその初期位置の情報をワーク位置記憶部53に格納する。一方、ワーク位置更新部54は、エンコーダー14から入力されるコンベヤーパルスの積算によるコンベヤーパルス数に基づいてコンベヤー11によるワークWの搬送量を算
出する。そして、ワークWの撮影時(初期位置)のコンベヤーパルス数と現在のコンベヤーパルス数との差を求め、このパルス数の差と、予め設定された単位コンベヤーパルスあたりの搬送量との積によりワークWの初期位置に対する搬送量を求める。ワーク位置更新部54は、ワーク位置記憶部53に記憶されている撮影時に算出されたワークWの初期位置(X軸方向の座標)に、上述のようにして算出したワークWの搬送量を加算することなどにより、コンベヤー11上を搬送されているワークWの現在位置を逐次計算できるようにしている。
【0036】
作業対象検出部56は、所定の実行周期で、ワークWの現在位置と追従領域とを比較する。そして、ワークWの現在位置が追従領域内に到達(進入)したとき当該ワークWを作業対象として検出するとともに、ワークWの現在位置が追従領域内に含まれなくなるとき当該ワークWを作業対象外として検出する。そして、検出された結果をユーザープログラム実行部52や指令値生成部55に伝達する。
【0037】
指令値生成部55は、入力される各種データに基づいて、ロボット12を目標位置まで移動させるための軌道を生成するとともに当該軌道をロボット12が追従するための各制御軸C1〜C4の関節角度を計算する。指令値生成部55は、ロボット12を軌道に沿わせるための各制御軸C1〜C4の関節角度を目標関節角度としてモーター制御部57に出力する。本実施形態においてモーター制御部57は、1つのモーターを制御周期Tで制御するとともに各モーターを異なるタイミングで制御する。本実施形態のモーター制御部57は、各モーター23,27,30,31を制御周期Tを制御軸数n(nは1以上の整数であって、本実施形態ではn=4)で除算した周期T/nで順次制御するとともに、指令値生成部55から出力された各モーターの目標関節角度に応じた出力を周期T/nで順次出力する。すなわち、コントローラー50は、制御対象となるモーターを周期T/nで第1モーター23、第2モーター27、昇降モーター30、回転モーター31の順で切り替えている。
【0038】
さらに、コントローラー50は、検出センサー35によるワークWの検出時における当該ワークWの位置を取得するワーク位置取得部58と、同検出時におけるロボット12の位置を算出する位置算出部60とを有している。
【0039】
ワーク位置取得部58は、検出ラインFLに到達したワークWを下方から撮像するカメラ39から入力される画像データを画像処理することによってワークWの位置データを取得する。ワーク位置取得部58は、上記画像処理によって、撮像範囲におけるワークWの中心位置の座標値を求めてユーザープログラム実行部52に出力する。
【0040】
カメラ39は、指令出力部としてのトリガー信号生成部59に電気的に接続されており、該トリガー信号生成部59から指令としてのトリガー信号が入力されると、その撮像範囲を撮像し、その撮像した画像の画像データをワーク位置取得部58に出力する。
【0041】
トリガー信号生成部59は、検出センサー35によってワークWが検出されると、指令としてのトリガー信号を生成する。トリガー信号生成部59は、その生成したトリガー信号をカメラ39と、後述するトリガー信号入力部61とに同時に出力する。
【0042】
次に、ロボット位置検出装置及びロボット位置検出部としての位置算出部60について詳しく説明する。
図3に示されるように、位置算出部60は、指令検出部としてのトリガー信号入力部61と、位置データ入力部62と、データ処理部と63を有している。
【0043】
トリガー信号入力部61には、トリガー信号生成部59が出力したトリガー信号が入力
される。トリガー信号入力部61は、トリガー信号の検出周期でトリガー信号の状態を検出し、データ処理部63では、モーターの制御周期Tを制御軸数n(本実施形態ではn=4)で除算した検出周期Ts(=T/n)でトリガー信号入力部61が検出したトリガー信号の状態を検出する。
【0044】
位置データ入力部62には、各モーター23,27,30,31の絶対位置に基づいて、各制御軸C1,C2,C3,C4の関節角度を検出する第1エンコーダー64、第2エンコーダー65、第3エンコーダー66、第4エンコーダー67が接続されている。各エンコーダー64〜67は、対応する関節角度をモーターの制御周期Tの半分の時間(=T/2)であってエンコーダーと位置データ入力部62との通信に要する通信時間Td毎に検出し、その検出した関節角度を示す位置データを位置データ入力部62に出力する。
【0045】
また、位置データ入力部62は、入力された位置データが正常であるか否かを判定する判定部68を有している。そして、位置データ入力部62は、各エンコーダー64〜67から入力された位置データに対し、該位置データに対する判定部68の判定結果を対応付ける。
【0046】
データ処理部63は、位置データ入力部62に入力された位置データと該位置データに対応付けられた判定結果とを取得する。なお、各々のエンコーダーに対応する位置データをデータ処理部63が位置データ入力部62から同時に取得するとなれば、各位置データに対応するようにデータ処理部63を構成する必要があり、データ処理部63の構成が複雑化してしまう虞がある。そこで、データ処理部63には、周期T/n毎にインクリメントされるカウンターであって、制御対象となる制御軸に応じたカウント値が示されるカウンターが内蔵されている。そして、図4に示されるように、データ処理部63は、該カウンターのカウント値が示す制御軸と、位置データ入力部62に入力された位置データに対応する制御軸とが整合するように、制御周期T毎に、各エンコーダー64〜67からの位置データを順次取得する。
【0047】
なお、エンコーダーからの位置データが通信時間Tdのシリアル通信によって位置データ入力部62に入力される。そのため、データ処理部63が取得する位置データは、該位置データを取得したタイミングよりも通信時間Tdだけ前のタイミングでエンコーダーによって検出された位置を示す位置データである。
【0048】
図5に示されるように、データ処理部63は、制御軸C1における関節角度、制御軸C2における関節角度、制御軸C3における関節角度、制御軸C4における関節角度に関する各種データの記憶される領域が予め設けられた記憶部70を有している。
【0049】
本実施形態では、エンコーダーからの位置データが位置データ入力部62に入力されるタイミングのうち、トリガー信号が検出された次のタイミングを当該エンコーダーにおける基準タイミングとしている。記憶部70には、上記基準タイミングよりも前に取得された位置データである第1の位置が記憶される領域が制御軸C1〜C4毎に設けられている。第1の位置73aは、第1エンコーダー64から入力された位置データである。第1の位置73bは、第2エンコーダー65から入力された位置データである。第1の位置73cは、第3エンコーダー66から入力された位置データである。第1の位置73dは、第4エンコーダー67から入力された位置データである。また、記憶部70には、上記基準タイミングよりも後に取得された位置データである第2の位置が記憶される領域が制御軸C1〜C4毎に設けられている。第2の位置74aは、第1エンコーダー64から入力された位置データである。第2の位置74bは、第2エンコーダー65から入力された位置データである。第2の位置74cは、第3エンコーダー66から入力された位置データである。第2の位置74dは、第4エンコーダーから入力された位置データである。
【0050】
また記憶部70には、第1の位置を示す位置データに関して、当該位置データが正常であるか否かを示す第1のフラグを制御軸C1〜C4毎に記憶する領域が設けられている。第1のフラグ75aは、第1エンコーダー64から入力される位置データに対応付けられている。第1のフラグ75bは、第2エンコーダー65から入力される位置データに対応付けられている。第1のフラグ75cは、第3エンコーダー66から入力される位置データに対応付けられている。第1のフラグ75dは、第4エンコーダー67から入力される位置データに対応付けられている。また記憶部70には、第2の位置を示す位置データに関して、当該位置データが正常であるか否かを示す第2のフラグを制御軸C1〜C4毎に記憶する領域が設けられている。第2のフラグ76aは、第1エンコーダー64から入力される位置データに対応付けられている。第2のフラグ76bは、第2エンコーダー65から入力される位置データに対応付けられている。第2のフラグ76cは、第3エンコーダー66に関する位置データに対応付けられている。第2のフラグ76dは、第4エンコーダー67から入力される位置データに対応付けられている。
【0051】
そして、データ処理部63は、位置データを取得するたびに、該位置データの正否を判断する。この際、上記基準タイミングよりも前のタイミングにて、位置データが正常であると判断すると、データ処理部63は、該位置データを第1の位置として更新するとともに、第1のフラグを「0」に設定する。一方、上記基準タイミングよりも前のタイミングにて、位置データが異常であると判断すると、データ処理部63は、第1の位置を更新することなく、第1のフラグを「1」に設定する。なお、データ処理部63は、トリガー信号が検出されるまで上述した第1の位置の更新及び第1のフラグの設定を制御軸C1〜C4に対して順次実行する。そしてデータ処理部63は、トリガー信号が検出されると、該検出時における各第1の位置及び第1のフラグを第1のタイミングデータ77として記憶部70の所定領域に保存する。
【0052】
また、上記基準タイミングの直後のタイミングにて、位置データが正常であると判断すると、データ処理部63は、該位置データを第2の位置として更新するとともに、第2のフラグを「0」に設定する。一方、上記基準タイミングの直後のタイミングにて、位置データが異常であると判断すると、データ処理部63は、該位置データを第2の位置として更新することなく、第2のフラグを「1」に設定する。そしてデータ処理部63は、上記直後のタイミングの次のタイミングにおける位置データを取得して、当該位置データが正常であるか否かに関わらず、当該位置データを第2の位置として更新する。そしてデータ処理部63は、全ての第2の位置が更新されると、各第2の位置及び第2のフラグを第2のタイミングデータ78として記憶部70の所定領域に保存する。
【0053】
また、記憶部70には、トリガー信号が検出されたか否かを示す検出フラグ79を記憶する領域が設けられている。データ処理部63は、トリガー信号が検出されると検出フラグ79を「1」に設定するとともに、算出したロボット12の位置をユーザープログラム実行部52に出力すると検出フラグ79を「0」に設定する。
【0054】
また、図5に示されるように、記憶部70には、トリガー信号の検出時に制御対象であった制御軸を示すデータである制御軸データ80が記憶される領域が設けられている。データ処理部63は、内蔵されたカウンターのカウント値に基づいて、トリガー信号の検出時における制御軸を示すデータを制御軸データ80に保存する。そして、トリガー信号が検出されるたびに、データ処理部63は、上記第1のタイミングデータ77、第2のタイミングデータ78、制御軸データ80に基づいて、トリガー信号の検出時における各制御軸C1〜C4の関節角度を算出しロボット12の位置を検出する。
【0055】
次に、位置算出部60によるロボット12の位置の算出方法について図6を参照して説
明する。なお、図6においては、第1のタイミングにおける関節角度である第1の位置をPa、第2のタイミングにおける関節角度である第2の位置をPb、トリガー信号の検出時における関節角度をP(k)と表現する。また、本実施形態における通信時間Tdは、モーターの制御周期Tの半分の時間(T/2)となっている。
【0056】
データ処理部63は、第2のタイミングデータ78が保存されると、制御軸C1〜C4毎に、第1のフラグと第2のフラグとの組み合わせに基づいて、当該組み合わせに応じて予め設定された4つの算出式の中から1つの算出式を選択する。そして、その選択した算出式に第1の位置と、第2の位置と、制御軸データ80に基づく定数kとを代入することにより、トリガー信号検出時における各制御軸C1〜C4の関節角度を求める。ここでいう定数kとは、算出対象となる制御軸とトリガー信号の検出時に制御対象となっている制御軸との関係に基づいて制御軸毎に決定される定数であって、周期T/nを基準単位として、トリガー信号が検出されたタイミングから基準タイミングまでの期間が「T/n×k」で示される定数である。
【0057】
例えば、トリガー信号の検出時における制御対象が制御軸C1(第1モーター23)であった場合、算出対象が制御軸C2(第2モーター27)であれば、第2エンコーダー65に関する基準タイミングよりも「周期T/n」だけ前にトリガー信号が検出されているため定数kは「1」となる。また算出対象が制御軸C3(昇降モーター30)であれば、第3エンコーダー66の基準タイミングよりも「2×周期T/n」だけ前にトリガー信号が検出されているため定数kは「2」となる。また算出対象が制御軸C4(回転モーター31)であれば、基準タイミングよりも「3×周期T/n」だけ前にトリガー信号が検出されているため定数kは「3」となる。また算出対象が制御軸C1(第1モーター23)であれば、基準タイミングから制御周期Tだけ前にトリガー信号が検出されているため、定数kは「4」となる。
【0058】
データ処理部63は、算出対象となる制御軸の第1のフラグ及び第2のフラグがともに「0」である場合、すなわち第1のタイミングと基準タイミングとが「制御周期T」、基準タイミングと第2のタイミングとが「制御周期T」だけ離れている場合、下記に示す数式(1)を用いてトリガー信号検出時における該制御軸の関節角度を算出する。
【数1】

【0059】
またデータ処理部63は、算出対象となる制御軸の第1のフラグが「0」、第2のフラグが「1」である場合、すなわち第1のタイミングと基準タイミングとが「制御周期T」、基準タイミングと第2のタイミングとが「2×制御周期T」だけ離れている場合、下記に示す数式(2)を用いてトリガー信号検出時における該制御軸の関節角度を算出する。
【数2】

【0060】
またデータ処理部63は、算出対象となる制御軸の第1のフラグが「1」、第2のフラグが「0」である場合、すなわち第1のタイミングと基準タイミングとが「2×制御周期T」、基準タイミングと第2のタイミングとが「制御周期T」だけ離れている場合、下記に示す数式(3)を用いてトリガー信号検出時における該制御軸の関節角度を算出する。
【数3】

【0061】
またデータ処理部63は、算出対象となる制御軸の第1のフラグ及び第2のフラグがともに「1」である場合、すなわち第1のタイミングと基準タイミングとが「2×制御周期T」、基準タイミングと第2のタイミングとが「2×制御周期T」だけ離れている場合、下記に示す数式(4)を用いてトリガー信号検出時における該制御軸の関節角度を算出する。
【数4】

【0062】
すなわち、上記数式(1)〜(4)では、第1のタイミングにおける位置データと第2のタイミングにおける位置データとを用いた線形補間によって、トリガー信号検出時における関節角度を算出している。また、その線形補間に基づく関節角度の変化率を用いて上記通信時間Tdの期間における関節角度の変化量を算出している。そして、上記線形補間によって算出されるトリガー信号検出時の関節角度と上記通信時間Tdの期間における関節角度の変化量とを加算することによって、トリガー信号検出時における実際の関節角度を求めている。
【0063】
詳述すると、図6に示されるように、関節角度Paは、実際には、第1のタイミングよりも通信時間Tdだけ前の時刻における関節角度である。また関節角度Pbも、実際には、第2のタイミングよりも通信時間Tdだけ前の時刻における関節角度である。そのため、上記線形補間によって示される直線81は、第1のタイミングから第2のタイミングまでの期間よりも通信時間Tdだけ前の期間における関節角度を示している。すなわち、直線81を通信時間Tdの分だけ平行移動させた直線82が、第1のタイミング及び第2の
タイミングによって取得された関節角度と、該関節角度が具現化されている実際のタイミングとの関係を示している。そのため、これら直線82と直線81との差が上記関節角度の変化率にて通信時間Tdの分だけ関節角度が変化した量であることから、直線81で示される関節角度に対して上記関節角度の変化量を加算することによって、トリガー信号検出時における実際の関節角度が算出される。言い換えれば、第1のタイミングにおける位置データと第2のタイミングにおける位置データとを用いた線形補間によって示される直線81において、トリガー信号検出時よりも通信時間Tdだけ後のタイミングにおける関節角度を、トリガー信号検出時における実際の関節角度として算出している。
【0064】
次に、上述した構成のデータ処理部63において、ロボットの位置を算出する際の処理の手順について図7及び図8を参照して説明する。なお、この処理は、繰り返し実行されている。
【0065】
図7に示されるように、まず、内蔵されたカウンターのカウント値が示す制御軸に関し、判定部68の判定結果が対応付けられた位置データが、第1のタイミングの位置データとして取得される(ステップS10)。次いで、上記ステップS10において取得した位置データに基づいて、該位置データが正常であるか否かの判断がなされる(ステップS11)。
【0066】
上記ステップS11において位置データが正常であると判断された場合(ステップS11:YES)、第1のフラグが「0」に設定されるとともに第1の位置が当該位置データに更新されて(ステップS12)、次のステップS14に移行する。一方、ステップS11において位置データが異常であると判断された場合(ステップS11:NO)、第1のフラグが「1」に設定されるとともに第1の位置が更新されることなく(ステップS13)、次のステップS14に移行する。
【0067】
次のステップS14では、トリガー信号入力部61を介して、今回の検出タイミングでトリガー信号が検出されたか否かが判断される。
上記ステップS14においてトリガー信号が検出されなかった場合(ステップS14:NO)、再びステップS10に移行して、カウンターのカウント値によって次に示される制御軸に関する第1のタイミングの位置データが位置データ入力部62を介して取得される。すなわち、ステップS14においてトリガー信号が検出されるまで、第1の位置の更新及び第1のフラグの設定が制御軸C1〜C4に対して順次実行される。
【0068】
上記ステップS14においてトリガー信号が検出された場合(ステップS14:YES)、検出フラグ79が「1」に設定されるとともに(ステップS15)、カウンターのカウント値に基づいて、トリガー信号検出時における制御軸を示すデータが制御軸データ80に保存される(ステップS16)。また、トリガー信号検出時に記憶されている各第1の位置及び第1のフラグの状態を示すデータが第1のタイミングデータ77として記憶部70の所定領域に保存される(ステップS17)。
【0069】
次いで、基準タイミングにおける各制御軸C1〜C4の位置データが順次取得される(ステップS18)。続けて、基準タイミング直後のタイミングにおける各制御軸の位置データが第2のタイミングの位置データとして順次取得される(ステップS19)。
【0070】
次のステップS20においては、基準タイミング直後のタイミングで取得された位置データに基づいて、該位置データが正常であるか否かの判断がなされる。上記ステップS20において、取得された位置データが正常であると判断された制御軸に関しては、第2のフラグが「0」に設定されたうえで(ステップS21)、取得した位置データに第2の位置が更新される(ステップS24)。
【0071】
一方、上記ステップS20において、取得された位置データが異常であると判断された制御軸に関しては、第2のフラグが「1」に設定される(ステップS22)。そして、次のタイミングにおける位置データが第2のタイミングの位置データとして取得され(ステップS23)、第2のフラグの状態が「1」に維持されたまま、その取得した位置データに第2の位置が更新される(ステップS24)。
【0072】
次に、図8に示されるように、制御軸C1〜C4に関して第2の位置の更新が全て終了すると、各第2の位置及び第2のフラグの状態を示すデータが第2のタイミングデータ78として、記憶部70の所定領域に保存される(ステップS25)。
【0073】
第2のタイミングデータ78が保存されると、各制御軸C1〜C4に関する第1及び第2のフラグの状態が確認される(ステップS26)。そして第1及び第2のフラグに応じて算出式が選択される。すなわち、第1のフラグと第2のフラグとがともに「0」である制御軸に関しては(ステップS27:YES、ステップS28:YES)、上記数式(1)が選択される(ステップS30)。また第1のフラグが「0」であり(ステップS27:YES)、且つ第2のフラグが「1」である(ステップS28:NO)制御軸には、数式(2)が選択される(ステップS31)。また第1のフラグが「1」であり(ステップS27:NO)、且つ第2のフラグが「0」である(ステップS28:YES)制御軸には、数式(3)が選択される(ステップS32)。また第1のフラグが「1」であり(ステップS27:NO)、且つ第2のフラグが「1」である(ステップS28:NO)制御軸には、数式(4)が選択される(ステップS33)。
【0074】
各制御軸C1〜C4に対して算出式が選択されると、第1の位置、第2の位置、制御軸データ80に基づく定数kが、選択された各数式に代入される(ステップS34)。これにより、各制御軸C1〜C4の関節角度によって示されるロボット12の位置が算出される(ステップS35)。そして、算出されたロボット12の位置をユーザープログラム実行部52に出力すること(ステップS36)によって、検出フラグ79が「0」に設定されたうえで一連の処理を一旦終了させる。
【0075】
次に、上述した構成のロボットシステム10の作用について説明する。
上述した構成のロボットシステム10では、コンベヤー11によって搬送されるワークWがロボット12によって選択的に把持される。そして、該ワークWを作業台15上における所定位置まで搬送している際に検出センサー35によってワークWが検出される。すなわちロボット12を該ロボット12の目標位置まで移動させている際に、ワークWが検出センサー35によって検出される。ワークWが検出されると、カメラ39によって撮像された画像データに基づいて、ワーク検出時におけるワークWの位置が取得される。また位置算出部60によって、ワーク検出時の前後におけるロボット12の位置に基づき該検出時におけるロボット12の実際の位置が算出される。そして、これらワークWの位置とロボット12の実際の位置とに基づいて、ロボット12の目標位置が補正される。
【0076】
以上説明したように、本実施の形態に係るロボットシステム10によれば、以下に列挙する効果を得ることができる。
(1)上記実施形態の位置算出部60では、各制御軸に関し、第1のタイミングにおける位置データ、第2のタイミングにおける位置データを用いた線形補間によって取得されるトリガー信号検出時の関節角度に対して、その線形補間に基づく関節角度の変化率を用いて算出される、通信時間Tdにおける関節角度の変化量を加算することにより、トリガー信号検出時における実際の関節角度を求めている。言い換えれば、第1のタイミングにおける位置データ、第2のタイミングにおける位置データを用いた線形補間によって取得される関節角度に関し、トリガー信号検出時よりも通信時間Tdだけ後のタイミングにお
ける関節角度を、トリガー信号検出時における実際の関節角度として算出している。こうした構成によれば、ロボット12が移動中であっても、トリガー信号検出時における各制御軸C1〜C4の関節角度を精度よく検出することができる。つまり、移動中のロボット12の位置を精度よく検出することができる。
【0077】
(2)位置算出部60のデータ処理部63は、制御軸C1の関節角度に関する位置データ、制御軸C2の関節角度に関する位置データ、制御軸C3の関節角度に関する位置データ、制御軸C4の関節角度に関する位置データがそれぞれ異なるタイミングで取得する。そして位置算出部60は、各制御軸C1〜C4に対してトリガー信号検出時における実際の関節角度を算出する。その結果、制御軸C1の関節角度、制御軸C2の関節角度、制御軸C3の関節角度、制御軸C4の関節角度がそれぞれ算出されることから、トリガー信号の検出時におけるロボットの実際の位置をより高い精度で検出することができる。
【0078】
(3)位置算出部60は、位置データ入力部62に入力された位置データが正常であるか否かを判断し、その判断に応じて選択された算出式を用いて各制御軸C1〜C4の関節角度を算出している。これにより、例えばノイズなど位置データの伝送に関わる不具合の影響を受けた位置データによって、ロボット12の位置が検出されることを抑えることができる。その結果、位置算出部60で検出されるロボット12の位置に関し、その精度を高めることができる。
【0079】
(4)ここで、ロボットシステムにおいては、通常、位置データが異常であると判断する機会が連続することは非常に希であって、例えば、位置データ入力部62とエンコーダーとを接続するケーブルやエンコーダーそのものに不具合が生じている場合である。そのため、例えば位置データ入力部62に異常な位置データが同一のエンコーダーから連続して入力された場合などに特別な処理を実行するとなれば、その処理を実行するための新たな構成が別途必要となり、位置算出部60の構成が複雑になってしまう虞がある。この点、上記実施形態では、同一のエンコーダーから出力される位置データであって連続する2つの位置データのうち、少なくとも一方が正常なデータであることを前提に構成されている。その結果、位置算出部60をより簡易な構成とすることができる。
【0080】
(5)また、線形補間を用いてロボット12の位置を算出しているため、第1のタイミングと第2のタイミングとが時間的に離間しているほど、算出されるロボット12の位置と、実際のロボット12の位置とに大きな誤差が生じやすくなる。この点、上記位置算出部60では、第1のタイミングと第2のタイミングとが時間的に最も離間する場合であっても、第1の位置データは基準タイミングよりも2つ前のタイミングで入力された位置データであり、第2の位置データは基準タイミングよりも2つ後のタイミングで入力された位置データである。その結果、当該第1のタイミングよりも前に取得された位置データと当該第2のタイミングよりも後に取得された位置データとに基づいてロボット12の位置が算出される場合に比べて、算出されるロボット12の位置の精度を高めることができる。
【0081】
(6)上記実施形態では、通信時間Tdをモーターの制御周期Tの半分の時間とするとともに、各エンコーダーからの位置データをデータ処理部63が取得する周期をモーターの制御周期Tとした。ここで、各エンコーダーの出力周期が通信時間Tdよりも小さい場合、第2のタイミングが基準タイミングから通信時間Tdだけ経過したタイミングよりも前のタイミングになってしまう場合がある。こうした場合、図6に示した直線81を通信時間Tdだけ平行移動させた直線82を第1のタイミングから基準タイミングまでの全期間に対応させることができなくなり、基準タイミングの直前におけるロボット12の位置が算出できなくなる虞がある。この点、上記実施形態では、各エンコーダーからの位置データをデータ処理部63が取得する周期が通信時間Tdよりも大きい制御周期Tであるこ
とから、図6において直線81を通信時間Tdだけ平行移動させた直線82を第1のタイミングから基準タイミングまでの全期間に対応させることが可能である。その結果、トリガー信号検出時におけるロボット12の位置を確実に算出することができる。
【0082】
(7)ロボットシステム10においては、ワークWを移動させながらロボット12の目標位置を補正することができる。すなわち、目標位置の補正量を取得するためにロボット12を止める必要がない。その結果、ロボットシステム10のスループットが低下することを抑えることができる。
【0083】
(8)しかも、トリガー信号検出時におけるロボット12の実際の位置に基づいてロボット12の目標位置が補正される。これにより、ワークWを高い精度の下で作業台15の所定位置に配置することができる。
【0084】
なお、上記実施の形態は、以下のように適宜変更して実施することも可能である。
・上記実施形態のように、位置算出部60は、ロボットを移動させながら該ロボットの位置を検出するロボットシステムに適用することが可能である。
【0085】
・上述したように、ロボットシステムにおいては、位置データが異常であると判断する機会が連続することは非常に希であるため、上記実施形態の位置算出部60は、同一のエンコーダーから連続して取得される2つの位置データのうち、少なくとも一方が正常な位置データであることを前提として構成されている。ただし、これを変更して、異常である位置データが連続して入力されることを想定して位置算出部60を構成してもよい。
【0086】
例えば、データ処理部63に、第1のタイミングにおける位置データと第2のタイミングにおける位置データとに関し、位置データの異常が連続する回数をカウントするカウンターを制御軸C1〜C4毎に設ける。そして、データ処理部63は、第1のタイミングにおける位置データとして、正常な位置データが取得されるまで前回取得された正常な位置データを記憶する。また、データ処理部63は、第2のタイミングにおける位置データとして、基準タイミングよりも後のタイミングではじめて正常なデータが取得されたときに第2の位置を更新する。こうした構成の下では、第1のタイミングから基準タイミングまでの期間、及び基準タイミングから第2のタイミングまでの期間を上記各カウンターのカウント値に基づいて求める。そして、それら求めた期間、第1のタイミングにおける正常な位置データ、第2のタイミングにおける正常な位置データに基づいて線形補間し、トリガー信号検出時におけるロボット12の位置を算出するとよい。
【0087】
また、上記構成であれば、カウンターのカウント値に基づいて、異常な位置データを連続して取得した場合には、算出されるロボット12の位置の精度が低いものとして、一連の処理を終了させることもできる。また、異常な位置データが連続して取得されたことをユーザーに通知することにより、ロボット12のメンテナンスを促すこともできる。
【0088】
・上記実施形態の位置算出部60において、基準タイミングの直前あるいは直後のタイミングで取得された位置データが異常であると判断された場合、トリガー信号検出時におけるロボット12の位置を算出しない構成であってもよい。
【0089】
・上記実施形態の位置算出部60は、検出対象が互いに異なるエンコーダーから入力される位置データに基づいて、制御軸C1〜C4の関節角度の各々を算出している。これに限らず、上記実施形態であれば、例えば、制御軸C1の関節角度及び制御軸C2の関節角度のみを算出するようにしてもよい。こうした構成によれば、ロボット12の目標位置のうち、X軸方向及びY軸方向に関わる関節角度が補正されることから、例えば円盤状のワークなど、ワークを配置するときにその向きが重要視されない場合に位置算出部60に対
する負荷を低減することができる。
【0090】
・上記実施形態のトリガー信号入力部61は、モーターの制御周期Tを制御軸数n(nは1以上の整数であって本実施形態ではn=4)で除算した検出周期Ts(=T/n)で、上記トリガー信号を検出可能に構成されている。これに限らず、トリガー信号入力部61は、上記周期T/nよりも短い周期でトリガー信号を検出可能に構成されていてもよい。こうした構成であれば、検出センサー35によってワークWが検出された時刻と、データ処理部63によってトリガー信号が検出された時刻との差を小さくすることが可能であることから、トリガー信号検出時におけるロボット12の位置をさらに高い精度で算出することができる。また、上記周期T/nよりも長い周期でトリガー信号が検出可能に構成されていてもよい。この構成では、上述した構成よりも、検出センサー35によってワークWが検出された時刻とデータ処理部63によってトリガー信号が検出された時刻との差が大きくなってしまい、算出されるロボット12の位置の精度が低下してしまう。とはいえ、通信時間Tdを考慮した線形補間によってロボット12の位置が算出されることから、エンコーダーからの位置データのみでロボット12の位置が検出される構成よりも、実際の位置に近い位置を得ることができる。
【0091】
・上記実施形態の位置算出部60は、エンコーダーから入力される位置データが正常であるか否かを判断したうえでトリガー信号検出時における各関節角度を算出している。これに限らず、位置算出部60は、例えば位置データの信頼性が十分に担保されるのであれば、位置データが正常であるか否かを判断することなく、各関節角度を算出してもよい。こうした構成によれば、位置データ入力部62の判定部68を割愛することが可能であることから、位置算出部60の構成をより簡易なものとすることができる。
【0092】
・上記実施形態の位置算出部60は、トリガー信号が検出されることを契機として、該トリガー信号検出時におけるロボット12の位置を算出した。これに限らず、位置算出部60は、例えば搬送するワークWを把持したことを契機として計時を開始するタイマーを設けることによって、該ワークWを把持してから所定時間経過後におけるロボット12の位置を検出するようにしてもよい。すなわち、ロボットの位置を検出するための指令は、位置算出部60の外部から入力されることに限らず、予め定めた制御プログラムに基づいて、位置算出部60の内部で生成される構成であってもよい。
【0093】
・上記実施形態では、トリガー信号の入力に基づく基準タイミングとして、該トリガー信号が検出された直後のタイミングを基準タイミングとした。これに限らず、基準タイミングは、トリガー信号の検出によって規定されるタイミングであればよく、例えばトリガー信号の検出時を基準タイミングとしてもよい。
【0094】
・上記実施形態では、ロボット位置検出装置としての位置算出部60を、4つの制御軸を有する水平多関節型のロボット12を備えたロボットシステム10に具体化した。これに限らず、ロボット位置検出装置は、ワークWを搬送するロボットを備えたロボットシステムに具体化することが可能であり、例えば6つの制御軸を有する多関節ロボットを備えたロボットシステムに具体化してもよい。
【符号の説明】
【0095】
T…制御周期、W…ワーク、C1,C2,C3,C4…制御軸、FL…検出ライン、LB…検出光、Pa,Pb…関節角度、Td…通信時間、Ts…検出周期、10…ロボットシステム、11…コンベヤー、12…ロボット、13…カメラ、14…エンコーダー、15…作業台、21…基台、22…基台軸、23…第1モーター、24…第1の水平アーム、25…支持軸、26…第2の水平アーム、27…第2モーター、29…上下回転軸、30…昇降モーター、31…回転モーター、32…作業部、35…検出センサー、36…出
射部、37…受光部、39…カメラ、50…コントローラー、51…ユーザープログラム記憶部、52…ユーザープログラム実行部、53…ワーク位置記憶部、54…ワーク位置更新部、55…指令値生成部、56…作業対象検出部、57…モーター制御部、58…ワーク位置取得部、59…トリガー信号生成部、60…位置算出部、61…トリガー信号入力部、62…位置データ入力部、63…データ処理部、64…第1エンコーダー、65…第2エンコーダー、66…第3エンコーダー、67…第4エンコーダー、68…判定部、70…記憶部、73a,73b,73c,73d…第1の位置、74a,74b,74c,74d…第2の位置、75a,75b,75c,75d…第1のフラグ、76a,76b,76c,76d…第2のフラグ、77…第1のタイミングデータ、78…第2のタイミングデータ、79…検出フラグ、80…制御軸データ、81,82…直線。

【特許請求の範囲】
【請求項1】
ロボットの位置を示す位置データがエンコーダーから入力される位置データ入力部と、
前記入力された位置データを取得してロボットの位置を算出する位置算出部とを備え、
前記位置算出部は、
前記ロボットの位置を検出するための指令を受けて、
前記指令よりも前の第1のタイミングで取得した第1の位置データと、
前記指令よりも後の第2のタイミングで取得した第2の位置データと、
前記エンコーダーと前記位置データ入力部との通信に要する通信時間と
を用い、
前記指令が入力されたタイミングよりも前記通信時間だけ後のタイミングにおける位置を前記第1の位置データと前記第2の位置データとを用いた線形補間によって算出し、該算出結果を前記指令が入力されたときの前記ロボットの位置として出力する
ことを特徴とするロボット位置検出装置。
【請求項2】
前記位置算出部は、
1つのエンコーダーから前記位置データ入力部に入力された前記位置データを取得する所定の周期Tよりも短い周期Tsで該指令を検出可能な指令検出部を備える
請求項1に記載のロボット位置検出装置。
【請求項3】
前記位置算出部は、
前記所定の周期Tを1以上の整数nでn等分割した周期T/nごとに互いに異なるエンコーダーからの位置データを取得し、前記指令が入力されたときの前記ロボットの位置を前記エンコーダーごとに出力する
請求項2に記載のロボット位置検出装置。
【請求項4】
前記位置算出部は、
取得した前記位置データが正常か否かを判断するとともに、
前記指令を検出したときの直前における前記位置データが正常でないと判断される場合には、当該位置データの直前に取得した位置データを前記第1の位置データとして用いる
請求項1〜3のいずれか一項に記載のロボット位置検出装置。
【請求項5】
前記位置算出部は、
前記指令を検出したときの直後における前記位置データが正常でないと判断される場合には、当該位置データの直後に取得した位置データを前記第2の位置データとして用いる
請求項4に記載のロボット位置検出装置。
【請求項6】
ワークを搬送するロボットと、
前記ロボットの位置を示す位置データを出力するエンコーダーと、
前記ロボットの位置を検出するための指令を出力する指令出力部と、
前記位置データと前記指令とが入力され、前記指令が入力されたときの前記ロボットの位置を前記位置データに基づいて検出するロボット位置検出部と
を備えるロボットシステムであって、
前記ロボット位置検出部が請求項1〜5のいずれか一項に記載のロボット位置検出装置である
ことを特徴とするロボットシステム。
【請求項7】
予め定められた撮像範囲を前記指令出力部からの指令が入力されたタイミングで撮像することにより、目標位置へ移動中の前記ロボットが搬送しているワークを含む画像を取得するカメラと、
前記カメラが取得した画像に基づいて前記ワークの位置を取得するワーク位置取得部と、
前記ワーク位置取得部が取得した前記ワークの位置と、前記ロボット位置検出部が検出した前記ロボットの位置とに基づいて、前記目標位置を補正する目標位置補正部と
をさらに備えた
請求項6に記載のロボットシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−183606(P2012−183606A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−47863(P2011−47863)
【出願日】平成23年3月4日(2011.3.4)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】