(57)【要約】【課題】ロボットを停止させることなく視覚センサによるワーク位置の計算時のロボットの位置データを取得してロボットを制御し、制御装置のコストの高騰を抑えること。【解決手段】ロボット１の駆動を制御するサーボドライバ７と、サーボドライバにロボットを駆動させるための指令信号を送信する処理部５と、視覚センサ４及びサーボドライバに対して同時にトリガ信号を送信するトリガ信号送信手段５２と、サーボドライバに備えられ、トリガ信号が入力されるトリガ信号入力手段７２と、トリガ信号が入力された時点におけるロボットの位置情報を取得する位置情報取得手段７４と、取得したロボットの位置情報を記憶する位置情報記憶手段７６と、トリガ信号送信時におけるロボット座標系でのロボットの位置情報と視覚センサ座標系でのワークの位置情報とに基づいてロボットの位置の補正量を算出し、作業プログラムを補正する補正手段５８と、を備える。【選択図】図２
2008183690.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、ワークを撮像するカメラと、前記カメラの撮像制御を行うとともに前記カメラで撮像された画像を処理する視覚センサとにより、前記カメラで撮像したワークの画像を前記視覚センサで処理することで、前記ワークの位置を計算し、計算された位置に対してロボットが向かうべき目標位置を補正するようにロボットの駆動を制御するロボット制御装置において、
前記ロボットの位置を検出する位置検出手段からロボットの位置情報を取得しながら前記ロボットの駆動を制御するサーボドライバと、
前記サーボドライバにロボットを駆動させるための指令信号を送信する処理部と、
前記視覚センサに対してワークの位置を計算させるトリガ信号を送信すると同時に、前記サーボドライバに対して前記ロボットの位置情報を取得して記憶させるためのトリガ信号を送信するトリガ信号送信手段と、
前記サーボドライバに備えられ、前記トリガ信号送信手段から送信されたトリガ信号が入力されるトリガ信号入力手段と、
前記トリガ信号入力手段にトリガ信号が入力された時点における前記位置検出手段から前記ロボットの位置情報を取得する位置情報取得手段と、
前記位置情報取得手段により取得した前記ロボットの位置情報を記憶する位置情報記憶手段と、
前記位置情報記憶手段に記憶された、前記トリガ信号送信手段によるトリガ信号送信時におけるロボットの位置情報と、前記視覚センサにより計算された前記トリガ信号送信手段によるトリガ信号送信時におけるワークの位置とに基づいてロボットの位置の補正量を算出し、当該補正量に基づいて前記ロボットを駆動させる際の作業プログラムを補正する補正手段と、
を備えることを特徴とするロボット制御装置。
【請求項２】
複数の関節を有するロボットと、
ワークを撮像するカメラと、
前記ロボットに設けられ、ロボットの位置を検出する位置検出手段と、
前記カメラの撮像制御を行うとともに前記カメラで撮像された画像の処理を行ってワークの位置を計算する視覚センサと、
前記位置検出手段からロボットの位置情報を取得しながら前記ロボットの駆動を制御するサーボドライバと、
前記視覚センサから取得したワークの位置と前記サーボドライバから取得したロボットの位置情報とに基づいて、ロボットが向かうべき目標位置を補正する処理部と、を備え、
前記処理部は、前記視覚センサに対してワークの位置を計算させるトリガ信号を送信すると同時に、前記サーボドライバに対してロボットの位置情報を取得して記憶させるトリガ信号を送信するトリガ信号送信手段を有し、
前記サーボドライバは、前記トリガ信号送信手段から送信されたトリガ信号が入力されるトリガ信号入力手段と、前記トリガ信号入力手段にトリガ信号が入力された時点における前記位置検出手段から前記ロボットの位置情報を取得する位置情報取得手段と、前記位置情報取得手段により取得した前記ロボットの位置情報を記憶する位置情報記憶手段と、を有し、
前記視覚センサは、前記処理部からトリガ信号を受信したと同時に前記カメラによるワークの撮像を開始する撮像制御手段を有し、
前記処理部は、前記位置情報記憶手段に記憶された、前記トリガ信号送信手段によるトリガ信号送信時におけるロボットの位置と、前記視覚センサにより計算された前記トリガ信号送信手段によるトリガ信号送信時におけるワークの位置とに基づいてロボットの位置の補正量を算出し、当該補正量に基づいて前記ロボットを駆動させる際の作業プログラムを補正する補正手段を有する、
ことを特徴とするロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置及びロボット制御システムに関する。
【背景技術】
【０００２】
工場等の生産現場において、ロボットを用いて作業対象物としてのワークをハンドリングするような作業においては、設置されているワークの厳密な位置をロボットが認識している必要がある。このため、ワークを治具等の補助装置により正確に位置決めするような方法がよく用いられている。また、視覚センサによってワークの位置を計算し、その計算結果に基づいてロボットの動作を補正する方法もよく用いられている。
視覚センサによってロボットの動作を補正する場合において、視覚センサには、撮像手段としてのカメラが用いられ、複数のカメラを使用してステレオ視の原理により３次元位置を計算するものがある。
【０００３】
ここで、視覚センサを用いてワークの位置を計算し、その結果に基づいてロボットの動作を補正する際には、視覚センサの出力するワークの位置データは、視覚センサ内で形成された座標系、いわゆる視覚センサ座標系であるため、この視覚センサ座標系をロボットが動作する座標系、いわゆるロボット座標系に座標変換しなければ期待する作業を行うことができない。ここで、ロボット座標系は、例えば、ロボット設置面のロボット位置を原点として定義される。
この座標変換について、ロボットの先端にカメラが取り付けられたシステムを例に簡単に説明する。ロボットがある姿勢をとった時のロボット先端に定義された座標系（以下、ロボット先端座標系という）とロボット座標系の関係は、ロボットが持っている現在位置データから知ることができる。ロボット先端から見たカメラの位置は、ロボットの姿勢が変化しても変わることがない。このため、ロボット先端座標系と視覚センサ座標系との関係がわかれば、視覚センサ座標系上の位置をロボット座標系への位置に変換することが可能である。ロボット座標系と視覚センサ座標系との関係は、座標変換行列を用いて表される（例えば、特許文献１参照。）。
【特許文献１】特開平８−２１０８１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、視覚センサによってワークの位置を計算する場合、視覚センサ座標系上の計算位置をロボット座標系に変換するために、計算を行った時刻のロボット先端位置を知る必要がある。このため、ロボットが停止した状態で視覚センサによる計算を行う方法が用いられている。この結果、ロボットが停止するための減速時間および画像処理にかかる時間がタクトタイムの増加を招くという問題があった。
ロボットを停止させずに視覚センサによりワークを計算すれば、前記の問題は解決できるが、このためには、視覚センサが計算を行った同一の時刻のロボットの現在位置データを取得する必要がある。例えば、ロボット先端に取り付けられたカメラのロボット座標系での速度が1000mm/secであった場合に、ワークを計算すると考えると、前述の時刻のずれが1msecだけで計算結果として1mmの誤差が発生することになる。
一般的にロボットの駆動を制御する制御装置は、ロボットの駆動源をサーボ制御するサーボドライバとサーボドライバに対して指令信号を送る等の処理を行うメイン処理部とを備えており、視覚センサに計算要求を行うのはメイン処理部となる。メイン処理部はサーボドライバよりロボットの位置データを取得している。
【０００５】
しかし、メイン処理部でロボットの位置データが更新される周期はそれ程速くなく、計算要求時の同一時刻の位置データを取得することは非常に困難であった。また、サーボドライバはエンコーダ等の位置検出器と接続されており、サーボ制御のために高速な周期で位置検出器の出力データを受信しているが、ある特定の瞬間の位置データを取得する手段を有していない。このため、サーボドライバにおいても計算要求時の位置データを取得することができなかった。
以上の問題は、制御装置に使用されるＣＰＵを性能の高いものにし、位置データの更新周期を高速化することにより解消することができるが、制御装置自体のコストが増加する問題がある。
【０００６】
本発明は、上記課題を解決するためになされたものであり、ロボットを停止させることなく視覚センサによるワーク位置の計算時のロボットの位置データを取得してロボットの動作を制御しつつ、制御装置にかかるコストの高騰を抑えることができるロボット制御装置及びロボット制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、ロボットと、ワークを撮像するカメラと、前記カメラの撮像制御を行うとともに前記カメラで撮像された画像を処理する視覚センサとにより、前記カメラで撮像したワークの画像を前記視覚センサで処理することで、前記ワークの位置を計算し、計算された位置に対してロボットが向かうべき目標位置を補正するようにロボットの駆動を制御するロボット制御装置において、前記ロボットの位置を検出する位置検出手段からロボットの位置情報を取得しながら前記ロボットの駆動を制御するサーボドライバと、前記サーボドライバにロボットを駆動させるための指令信号を送信する処理部と、前記視覚センサに対してワークの位置を計算させるトリガ信号を送信すると同時に、前記サーボドライバに対して前記ロボットの位置情報を取得して記憶させるためのトリガ信号を送信するトリガ信号送信手段と、前記サーボドライバに備えられ、前記トリガ信号送信手段から送信されたトリガ信号が入力されるトリガ信号入力手段と、前記トリガ信号入力手段にトリガ信号が入力された時点における前記位置検出手段から前記ロボットの位置情報を取得する位置情報取得手段と、前記位置情報取得手段により取得した前記ロボットの位置情報を記憶する位置情報記憶手段と、前記位置情報記憶手段に記憶された、前記トリガ信号送信手段によるトリガ信号送信時におけるロボットの位置情報と、前記視覚センサにより計算された前記トリガ信号送信手段によるトリガ信号送信時におけるワークの位置とに基づいてロボットの位置の補正量を算出し、当該補正量に基づいて前記ロボットを駆動させる際の作業プログラムを補正する補正手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、ロボット制御システムにおいて、複数の関節を有するロボットと、ワークを撮像するカメラと、前記ロボットに設けられ、ロボットの位置を検出する位置検出手段と、前記カメラの撮像制御を行うとともに前記カメラで撮像された画像の処理を行ってワークの位置を計算する視覚センサと、前記位置検出手段からロボットの位置情報を取得しながら前記ロボットの駆動を制御するサーボドライバと、前記視覚センサから取得したワークの位置と前記サーボドライバから取得したロボットの位置情報とに基づいて、ロボットが向かうべき目標位置を補正する処理部と、を備え、前記処理部は、前記視覚センサに対してワークの位置を計算させるトリガ信号を送信すると同時に、前記サーボドライバに対してロボットの位置情報を取得して記憶させるトリガ信号を送信するトリガ信号送信手段を有し、前記サーボドライバは、前記トリガ信号送信手段から送信されたトリガ信号が入力されるトリガ信号入力手段と、前記トリガ信号入力手段にトリガ信号が入力された時点における前記位置検出手段から前記ロボットの位置情報を取得する位置情報取得手段と、前記位置情報取得手段により取得した前記ロボットの位置情報を記憶する位置情報記憶手段と、を有し、前記視覚センサは、前記処理部からトリガ信号を受信したと同時に前記カメラによるワークの撮像を開始する撮像制御手段を有し、前記処理部は、前記位置情報記憶手段に記憶された、前記トリガ信号送信手段によるトリガ信号送信時におけるロボットの位置と、前記視覚センサにより計算された前記トリガ信号送信手段によるトリガ信号送信時におけるワークの位置とに基づいてロボットの位置の補正量を算出し、当該補正量に基づいて前記ロボットを駆動させる際の作業プログラムを補正する補正手段を有する、ことを特徴とする。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、処理部はサーボドライバに対してロボットを駆動させるための指令信号を送信し、サーボドライバは指令信号に基づいてロボットの駆動を制御する。ここで、トリガ信号送信手段が、視覚センサ及びサーボドライバにトリガ信号を同時に送信すると、視覚センサはワークの位置を計算するとともに、サーボドライバは、トリガ信号がトリガ信号入力手段に入力された時点におけるロボットの位置情報を位置情報取得手段により取得し、取得したロボットの位置情報を位置情報記憶手段に記憶させる。
そして、補正手段は、位置情報記憶手段に記憶された、トリガ信号送信手段によるトリガ信号送信時におけるロボットの位置と、視覚センサにより計算されたトリガ信号送信手段によるトリガ信号送信時におけるワークの位置とに基づいてロボットの位置の補正量を算出し、当該補正量に基づいてロボットを駆動させる際の作業プログラムを補正する。
これにより、視覚センサは、トリガ信号送信時のワークの位置を取得することができ、サーボドライバはトリガ信号送信時のロボットの位置情報を取得することができるので、視覚センサとロボットとで位置を定める基準となる座標系を相互に変換することができるようになる。
よって、座標系が変換できるようになることで、従来のようにワークの位置計算のたびにロボットを停止させることなく、ロボットを動作させた状態であっても視覚センサによるワーク位置の計算時のロボットの位置データを取得してロボットの作業プログラムを的確に補正することができる。
さらに、安価な信号入力手段をサーボドライバに設けるだけで、処理部のロボット位置情報更新周期を早めるために各部のＣＰＵ等の演算装置を高性能にする必要がなくなるので、処理部やサーボドライバにかかるコストの高騰を抑えることができる。
【００１０】
請求項２に記載の発明によれば、処理部のトリガ信号送信手段により、視覚センサ及びサーボドライバにトリガ信号を同時に送信すると、視覚センサの撮像制御手段はカメラにワークの撮像を開始させ、撮像された画像の処理を行ってワークの位置を計算するとともに、サーボドライバは、トリガ信号がトリガ信号入力手段に入力された時点におけるロボットの位置情報を位置情報取得手段により取得し、取得したロボットの位置情報を位置情報記憶手段に記憶させる。
そして、補正手段は、位置情報記憶手段に記憶された、トリガ信号送信手段によるトリガ信号送信時におけるロボットの位置と、視覚センサにより計算されたトリガ信号送信手段によるトリガ信号送信時におけるワークの位置とに基づいてロボットの位置の補正量を算出し、当該補正量に基づいてロボットを駆動させる際の作業プログラムを補正する。
これにより、視覚センサは、トリガ信号送信時のワークの位置を取得することができ、サーボドライバはトリガ信号送信時のロボットの位置情報を取得することができるので、視覚センサとロボットとで位置を定める基準となる座標系を相互に変換することができるようになる。
よって、座標系が変換できるようになることで、従来のようにワークの位置計算のたびにロボットを停止させることなく、ロボットを動作させた状態であっても視覚センサによるワーク位置の計算時のロボットの位置データを取得してロボットの作業プログラムを的確に補正することができる。
さらに、安価な信号入力手段をサーボドライバに設けるだけで、処理部のロボット位置情報更新周期を早めるために各部のＣＰＵ等の演算装置を高性能にする必要がなくなるので、処理部やサーボドライバにかかるコストの高騰を抑えることができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明に係るロボット制御装置及びロボット制御システムの最良の形態について詳細に説明する。
【００１２】
〔ロボット制御システムの構成〕
図１に示すように、ロボット制御システム１００は、複数のアーム１２が複数の関節１３により回転自在に連結されたロボット１と、このロボット１の駆動等を制御するロボット制御装置２と、ワークＷを撮像する撮像手段としてのカメラ３と、このカメラ３で撮像された画像を処理する視覚センサ４と、を備えている。
【００１３】
＜ロボット＞
図１に示すように、ロボット１は、ワークＷをハンドリングする等の機能を有するロボットであり、土台となるベース１１と、ロボット１のアーム部を構成し、複数の関節１３で連結された複数のアーム１２と、各関節１３に設けられた駆動源としてのサーボモータ１４（図２参照）と、ロボット１の位置情報を検出する、より具体的には、サーボモータ１４に設けられ、各サーボモータ１４の軸の位置（軸角度）をそれぞれ検出する位置検出手段としてのエンコーダ１５と、を備えている。そして、連結されたアーム１２の最先端部には、ワークＷをハンドリングするハンドＨ等が装備されている。
各関節１３は、アーム１２の一端部を揺動可能として他端部を軸支する揺動関節と、アーム１２自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、ロボット１は多関節型ロボットに相当する。また、ロボット１は、各関節１３により、その先端部のハンドＨ等を任意の位置に位置決めし、任意の姿勢を取らせることが可能となっている。
【００１４】
＜ロボット制御装置＞
図１〜図３に示すように、ロボット制御装置２は、ティーチング或いはプログラミングにより設定されたロボット１の教示動作データに従って、ロボット１の指令信号を出力する処理部５と、エンコーダ１５から各サーボモータ１４の軸角度を取得しながら処理部５からの指令信号に基づいてロボット１の各サーボモータ１４の制御を行うサーボドライバ７と、を備えている。
【００１５】
（処理部）
処理部５は、サーボドライバ７及び視覚センサ４に接続されている。
処理部５は、サーボドライバ７にロボット１を駆動させるための指令信号を送信する指令信号送信部５１を有している。
処理部５は、視覚センサ４に対してワークＷの位置を計算させるトリガ信号を送信すると同時に、サーボドライバ７に対して各サーボモータ１４の軸角度であるエンコーダ値をエンコーダ１５から取得して記憶させるためのトリガ信号を送信するトリガ信号送信手段としてのトリガ信号出力部５２を有している。
【００１６】
処理部５は、視覚センサ４に対しては視覚センサ座標系でのワークＷの位置情報を処理部５に送信するように指令信号を送信するとともに、サーボドライバ７に対してはエンコーダ値を送信するように指令信号を送信する通信部５３を有している。ここで、通信部５３による指令信号の送信は、予め定められた一定の周期で行われるが、ユーザによる割り込み入力操作により任意に設定することもできる。
処理部５は、通信部５３により視覚センサ４に送信した指令信号により、視覚センサ４から視覚センサ座標系でのワークＷの位置情報を受信するワーク位置情報受信部５４を有している。
処理部５は、通信部５３によりサーボドライバ７に送信した指令信号により、サーボドライバ７からエンコーダ値を受信するエンコーダ値受信部５５を有している。
【００１７】
処理部５は、ワーク位置情報受信部５４で受信した視覚センサ座標系でのワークＷの位置情報を記憶するワーク位置情報記憶部５６を有している。
処理部５は、エンコーダ値受信部５５で受信したエンコーダ値を記憶するエンコーダ値記憶部５７を有している。
処理部５は、ワーク位置情報記憶部５６に記憶された視覚センサ座標系でのワークＷの位置情報とエンコーダ値記憶部５７に記憶されたエンコーダ値とに基づいてロボット１の位置の補正量を算出し、当該補正量に基づいてロボット１を駆動させる際の作業プログラムを補正する補正手段としての補正部５８を有する。
【００１８】
処理部５は、ロボット１を駆動させる作業プログラムや、その他必要なプログラムやデータが格納されたメモリ５９を有している。このメモリ５９には、上記プログラムの他、エンコーダ値受信部５５及びワーク位置情報受信部５６が受信した各データの座標系を統一するために座標変換を行うための座標変換行列式等が記憶されている。なお、座標変換行列式、座標変換の手法は、従来技術にも挙げたように公知の技術であるため、説明を省略する。
処理部５は、メモリ５９に記憶されたプログラムやデータに従って、上記の各部の処理を実行するための制御部６０を有している。
なお、処理部５による各処理は、処理部５に備えられた制御部６０がメモリ５９内に記憶されたプログラム等のソフトウェアを実行することにより実現させてもよいし、回路等のハードウェアにより実現させてもよい。
【００１９】
（サーボドライバ）
サーボドライバ７は、処理部５、ロボット１のサーボモータ１４及びエンコーダ１５に接続されている。
サーボドライバ７は、処理部５の指令信号送信部５１から送信されたロボット１を駆動させるための指令信号を受信する指令信号受信部７１を有している。
サーボドライバ７は、処理部５のトリガ信号出力部５２から送信されたトリガ信号を受信するトリガ信号入力手段としてのトリガ信号入力部７２を有している。
サーボドライバ７は、処理部５の通信部５３からエンコーダ値を送信する旨の指令信号を受信すると、エンコーダ１５から取得したエンコーダ値をエンコーダ値受信部５５に送信する通信部７３を有している。
【００２０】
サーボドライバ７は、エンコーダ１５からエンコーダ値を取得するエンコーダ値受信部７４を有している。ここで取得するエンコーダ値を用いながらサーボドライバ７はロボット１のサーボ制御を行う。ここで、エンコーダ値受信部７４は、トリガ信号入力部７２にトリガ信号が入力された場合にトリガ信号が入力された時点におけるエンコーダ値をエンコーダ１５から受信する。すなわち、エンコーダ値受信部７４は、位置情報取得手段として機能する。エンコーダ値受信部７４によるエンコーダ値の受信処理は、所定の周期で行われ、上述した処理部５とサーボドライバ７との間で行われる通信周期に比べて十分に長い。
【００２１】
サーボドライバ７は、エンコーダ１５から取得したエンコーダ値を記憶するエンコーダ値記憶部７５を有している。
サーボドライバ７は、トリガ信号入力部７２にてトリガ信号を受信した際にその信号受信時におけるエンコーダ１５からのエンコーダ値を記憶する位置情報記憶手段としてのトリガ時エンコーダ値記憶部７６を有している。
サーボドライバ７は、通信部７３において、エンコーダ値を処理部５に送信する旨の信号が入力された場合に、エンコーダ値記憶部７５及びトリガ時エンコーダ値記憶部７６に記憶されたエンコーダ値を処理部５のエンコーダ値記憶部５５に送信するエンコーダ値送信部７７を有している。なお、通信部７３には、所定の周期で指令信号が入力されるため、エンコーダ値送信部７７も所定の周期で処理部５にエンコーダ値を送信することになる。
【００２２】
サーボドライバ７は、ロボット１に信号を送信する処理や、エンコーダ１５から取得したエンコーダ値をエンコーダ値記憶部７５及びトリガ時エンコーダ値記憶部７６に記憶させる等の処理の制御を行う制御部７８を有している。
なお、サーボドライバ７による各処理は、サーボドライバ７に備えられた制御部７８がプログラム等のソフトウェアを実行することにより実現させてもよいし、回路等のハードウェアにより実現させてもよい。
【００２３】
＜カメラ＞
図１，図２に示すように、カメラ３は、ロボット１の最先端にあるアーム１２の先端に複数設けられている。カメラ３を複数設けるのは、ワークＷをステレオ視して撮像することにより、ワークＷの位置を三次元で把握するためである。
カメラ３は、視覚センサ４から受信したシャッタ信号に基づき、シャッタ信号がＯＮとなっている間、ワークＷを撮像する。そして、撮像された画像は、視覚センサ４の指令信号に基づいて、視覚センサ４に画像データで送信する。ここで、視覚センサ４から受信するシャッタ信号は、処理部５のトリガ信号出力部５２からトリガ信号が視覚センサ４に送信されると同時に視覚センサ４から送信されてくるものである。詳細は視覚センサ４の説明に委ねる。
【００２４】
＜視覚センサ＞
図１，図２に示すように、視覚センサ４は、カメラ３及び処理部５に接続されている。
視覚センサ４は、処理部５のトリガ信号出力部５２から送信されたトリガ信号を受信するトリガ信号入力部４１を有している。
視覚センサ４は、処理部５からトリガ信号を受信したと同時にカメラ３によるワークＷの撮像を開始させるべく、カメラ３にシャッタ信号を送信する撮像制御手段としての撮像制御部４２を有している。
視覚センサ４は、カメラ３により撮像されたワークＷの画像データを受信する画像データ受信部４３を有している。
視覚センサ４は、カメラ３により撮像された画像データの画像処理を行う画像処理手段としての画像処理部４４を有している。
視覚センサ４は、画像処理部４４により画像処理された撮像画像のデータからトリガ信号受信時（処理部５によるトリガ信号の送信時とほぼ同時）における視覚センサ座標系でのワークＷの位置を計算するワーク位置計算手段としてのワーク位置計算部４５を有している。
視覚センサ４は、計算された視覚センサ座標系でのワークＷの位置情報を処理部５に送信するワーク位置情報送信部４６を有している。
なお、視覚センサ４による各処理は、視覚センサ４に備えられたＣＰＵ等がメモリ内に記憶されたプログラム等のソフトウェアを実行することにより実現させてもよいし、回路等のハードウェアにより実現させてもよい。
【００２５】
〔ロボット制御装置の処理〕
次に、ロボット制御装置２による処理について図３〜図６を用いて説明する。ここで、図３は処理部５の処理、図４及び図５はサーボドライバ７の処理、図６は視覚センサ４の処理を示すフローチャートである。
＜処理部の処理（前半）＞
図３に示すように、処理部５の制御部６０は、メモリ５９に記憶された作業プログラムを実行し（ステップＳ１）、指令信号送信部５１は、サーボドライバ７にロボット１を駆動させる指令信号を送信する（ステップＳ２）。ここで、制御部６０は、作業プログラム上におけるワークＷの計算位置であるか否かを判断する（ステップＳ３）。
制御部６０が作業プログラム上でのワークＷの計算位置であると判断した場合（ステップＳ３：ＹＥＳ）、制御部６０は、エンコーダ１５から受信したエンコーダ値をトリガ時エンコーダ値記憶部７６に記憶させるトリガとなるトリガ信号を、トリガ信号出力部５２を介してサーボドライバ７に送信するとともに、カメラ３によりワークＷの位置を計算させる撮像開始のトリガ信号を、トリガ信号出力部５２を介して視覚センサ４に送信する（ステップＳ４）。なお、各トリガ信号は、同時に送信される。
【００２６】
＜サーボドライバの処理＞
ここで、トリガ信号を受信したサーボドライバ７の処理について説明する。なお、サーボドライバ７においては、制御部７８によるロボット１の駆動のサーボ制御処理と、処理部５の通信部５３からのエンコーダ値を送信する旨の指令信号に基づき、エンコーダ値をエンコーダ値送信部７７により処理部５に送信する処理とを行っているため、各処理に分けて説明する。
【００２７】
（制御部の処理）
図４に示すように、制御部７８は、エンコーダ値受信部７４を制御して、エンコーダ１５からエンコーダ値をエンコーダ値受信部７４にて受信させる（ステップＳ２１）。
次いで、制御部７８は、エンコーダ１５から受信したエンコーダ値をエンコーダ値記憶部７５に記憶させる（ステップＳ２２）。
次いで、制御部７８は、トリガ信号入力部７２がトリガ信号を受信したか否かを判断する（ステップＳ２３）。ここで、制御部７８が、トリガ信号入力部７２がトリガ信号を受信したと判断した場合（ステップＳ２３：ＹＥＳ）、制御部７８は、トリガ信号を受信した時点におけるエンコーダ１５からのエンコーダ値をトリガ時エンコーダ値記憶部７６に記憶させる（ステップＳ２４）。そして、制御部７８は、指令信号受信部７１にて受信したロボット１の駆動の指令信号に基づきロボット１を駆動させ、エンコーダ値記憶部７５に記憶されたデータに基づき、サーボ制御を行う（ステップＳ２５）。
一方、ステップＳ２３において、制御部７８が、トリガ信号入力部７２がトリガ信号を受信していないと判断した場合（ステップＳ２３：ＮＯ）、制御部７８は、ステップＳ２４の処理をすることなく、指令信号受信部７１にて受信したロボット１の駆動の指令信号に基づきロボット１を駆動させ、エンコーダ値記憶部７５に記憶されたデータに基づき、サーボ制御を行う（ステップＳ２５）。
なお、この処理は一定の周期で繰り返される。
【００２８】
（エンコーダ値送信部の処理）
図５に示すように、エンコーダ値送信部７７は、処理部５の通信部５３からエンコーダ値を送信する旨の指令が通信部７３にきたか否かを判断する（ステップＳ３１）。ここで、エンコーダ値送信部７７が、エンコーダ値を送信する旨の指令がきたと判断した場合（ステップＳ３１：ＹＥＳ）、エンコーダ値送信部７７は、エンコーダ値記憶部７５及びトリガ時エンコーダ値記憶部７６に記憶されたエンコーダ値を処理部５に送信する（ステップＳ３２）。なお、通信部５３からの指令信号は所定の周期で通信部７３に送信されており、サーボドライバ７がエンコーダ１５からエンコーダ値を受信する周期に比べて十分に長い。
【００２９】
＜視覚センサの処理＞
さらに、トリガ信号を受信した視覚センサ４の処理について説明する。
図６に示すように、視覚センサ４のトリガ信号入力部４１は、処理部５からトリガ信号を受信したか否かを判断する（ステップＳ４１）。
ここで、視覚センサ４は、処理部５からトリガ信号を受信したと判断した場合（ステップＳ４１：ＹＥＳ）、視覚センサ４の撮像制御部４２は、ワークＷの撮像を開始させるシャッタ信号をカメラ３に送信する（ステップＳ４２）。
次いで、視覚センサ４は、シャッタ信号を送信したカメラ３から撮像した画像のデータを画像データ受信部４３で受信したか否かを判断する（ステップＳ４３）。ここで、視覚センサ４は、カメラ３から撮像した画像のデータを画像データ受信部４３で受信したと判断した場合（ステップＳ４３：ＹＥＳ）、視覚センサ４の画像処理部４４は、受信した画像データの画像処理を行う（ステップＳ４４）。
次いで、視覚センサ４のワーク位置計算部４５は、画像処理を施した画像データから視覚センサ座標系でのワークＷの位置を計算する（ステップＳ４５）。
次いで、視覚センサ４のワーク位置情報送信部４６は、ステップＳ４５にて計算された視覚センサ座標系でのワークＷの位置情報を処理部５に送信し（ステップＳ４６）、これをもって本処理を終了させる。
【００３０】
＜処理部の処理（後半）＞
再度、図３に戻って説明する。
図３に示すように、処理部５の制御部６０は、サーボドライバ７及び視覚センサ４にトリガ信号出力部５２を介してトリガ信号を同時に送信した後、サーボドライバ７からエンコーダ値を受信したか否かを判断する（ステップＳ５）。ここで、制御部６０は、サーボドライバ７からエンコーダ値を受信したと判断した場合（ステップＳ５：ＹＥＳ）、制御部６０は、受信したエンコーダ値をエンコーダ値記憶部５７に記憶させる。そして、制御部６０は、視覚センサ４から計算した視覚センサ座標系でのワークＷの位置情報を受信したか否かを判断する（ステップＳ６）。ここで、制御部６０は、サーボドライバ７から視覚センサ座標系でのワークＷの位置情報を受信したと判断した場合（ステップＳ６：ＹＥＳ）、制御部６０は、受信した視覚センサ座標系でのワークＷの位置情報をワーク位置情報記憶部５６に記憶させる。
次いで、処理部５の補正部５８は、作業プログラムの補正に必要な補正量を算出し（ステップＳ７）、算出された補正量に基づいて作業プログラムを補正する（ステップＳ８）。
【００３１】
＜補正値の算出について＞
ここで、ステップＳ７で算出される補正量の算出について説明する。
サーボドライバ７から受信するエンコーダ１５による各サーボモータ１４の軸角度データは、ロボット座標系におけるデータである。従って、これらのデータから算出されるロボット１のアームの先端の位置は、ロボット座標系での位置を示している。すなわち、エンコーダ１５により検出した軸角度データに基づいて算出されることから、その位置も当然ロボット基準となるロボット座標系での位置となる。
また、ロボット１のアームの先端に設けられたカメラ３により撮像される画像データにおけるワークＷの位置データは、視覚センサ座標系である。そのため、ロボット１の動作によりロボット座標と視覚センサ座標との関係は変化する。しかし、カメラ３はロボット１のアームの先端に設けられていることからアームの先端とカメラ３との位置関係は既知である。
【００３２】
従って、視覚センサ座標系とロボット座標との関係は、視覚センサ座標系で画像を撮像する時点におけるロボット１のアームの先端の位置がわかれば導き出すことができる。
本実施形態において、処理部５はトリガ信号をサーボドライバ７及び視覚センサ４に同時に送信しているので、カメラ３によりワークＷを撮像した時点におけるエンコーダ１５の検出した値（エンコーダ値）は、トリガ時エンコーダ値記憶部７６に記憶されている。
よって、視覚センサ座標系とロボット座標系との間で位置データを座標変換することができる。
このような手法により、撮像画像におけるワークＷの視覚センサ座標におけるワークＷの位置をロボット座標でのワークＷの位置に変換し、ロボット１のアームの先端との位置のずれ（補正量）を算出し、その位置ずれ分だけ作業プログラムを補正する。
【００３３】
〔実施形態の効果〕
以上のように、ロボット制御装置２及びロボット制御装置２を備えたロボット制御システム１００によれば、処理部５のトリガ信号出力部５２により、視覚センサ４及びサーボドライバ７にトリガ信号を同時に送信すると、視覚センサ４の撮像制御部４２はカメラ３にワークＷの撮像を開始させ、撮像された画像の処理を行って視覚センサ座標系でのワークＷの位置を計算するとともに、サーボドライバ７は、トリガ信号がトリガ信号入力部７２に入力された時点におけるエンコーダ値を、エンコーダ値受信部７４を介して取得し、取得したエンコーダ値をトリガ時エンコーダ値記憶部７６に記憶させる。
そして、補正部５８は、トリガ時エンコーダ値記憶部７６に記憶されたトリガ信号送信時におけるエンコーダ値に基づいて算出されるロボット座標系でのロボット１の先端の位置と、トリガ信号送信時における視覚センサ座標系でのワークＷの位置とに基づいてロボット１の位置の補正量を算出し、当該補正量に基づいてロボット１を駆動させる際の作業プログラムを補正する。
これにより、視覚センサ４は、トリガ信号送信時の視覚センサ座標系でのワークＷの位置を取得することができ、サーボドライバ７はトリガ信号送信時のエンコーダ値を取得することができるので、視覚センサ４とロボット１とで位置を定める基準となる座標系を相互に変換することができるようになる。
よって、座標系が変換できるようになることで、従来のようにワークＷの位置計算のたびにロボット１を停止させることなく、ロボット１を動作させた状態であっても視覚センサ４によるワーク位置の計算時のロボット１の位置データを取得してロボット１の作業プログラムを的確に補正することができる。
さらに、安価なトリガ信号入力部７２をサーボドライバ７に設けるだけで、処理部５のロボット位置情報の更新周期を早めるために各部のＣＰＵ等（例えば制御部６０）の演算装置を高性能にする必要がなくなるので、処理部５やサーボドライバ７にかかるコストの高騰を抑えることができる。
【００３４】
〔その他〕
本発明は上記実施形態に限定されるものではない。例えば、位置検出手段としてエンコーダを用いたが、エンコーダに代えてレゾルバ等を用いて位置を検出してもよい。
また、複数のカメラを用いてステレオ視の原理によりワークを撮像していたが、一台のカメラでワークを撮像するようにしてもよい。
また、カメラはロボットの先端のハンドに設けられているが、カメラを定置式のものとし、ロボットのハンドでワークを把持してワークをそのカメラにより撮像するようにしてもよい。この場合、ロボットのハンドとワークの相対関係のずれ量によりワークの位置を計算できる。
また、処理部は、サーボドライバに対してエンコーダ値を当該処理部に送信する旨の信号を送信しているが、サーボドライバが処理部からトリガ信号を受信したときにサーボドライバが処理部にエンコーダ値を送信するようにしてもよい。
また、サーボドライバによるエンコーダデータの取得の周期、処理部によるサーボドライバからのエンコーダ値の受信の周期は、互いに異なるけれども一定の周期で行ったいたが、割り込み処理、例えば、ユーザからの指示入力等によってその取得の周期、受信の周期を変化させてもよい。
【図面の簡単な説明】
【００３５】
【図１】ロボットとロボット制御装置を有するロボット制御システムの全体構成図。
【図２】ロボットとロボット制御装置を有するロボット制御システムのブロック図。
【図３】処理部による処理のフローチャート。
【図４】サーボドライバの制御部による処理のフローチャート。
【図５】サーボドライバのエンコーダ値送信部による処理のフローチャート。
【図６】視覚センサによる処理のフローチャート。
【符号の説明】
【００３６】
１  ロボット
２  ロボット制御装置
３  カメラ
４  視覚センサ
５  処理部（処理手段）
７  サーボドライバ
１５  エンコーダ（位置検出手段）
４２  撮像制御部（撮像制御手段）
５２  トリガ信号出力部（トリガ信号送信手段）
５８  補正部（補正手段）
７２  トリガ信号入力部（トリガ信号入力手段）
７４  エンコーダ値受信部（位置情報取得手段）
７６  トリガ時エンコーダ値記憶部（位置情報記憶手段）
１００  ロボット制御システム
【図１】
2008183690.tif 000003
【図２】
2008183690.tif 000004
【図３】
2008183690.tif 000005
【図４】
2008183690.tif 000006
【図５】
2008183690.tif 000007
【図６】
2008183690.tif 000008