(57)【特許請求の範囲】
【請求項１】
ロボットの動作を制御するロボットコントローラとデータ通信することが可能な通信装置と、
前記ロボットによる操作対象である対象物を撮像する撮像装置と
を有する画像処理装置であって、
前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する撮像トリガ受信手段と、
前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する撮像制御手段と、
各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する画像検出手段と、
前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する動作表示手段と、
少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける動作選択受付手段と、
選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける順序設定受付手段と、
選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成するプログラム生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記順序設定受付手段は、複数の前記動作リストから前記ロボットコントローラにより実行される動作の選択を受け付けることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記プログラム生成手段は、前記ロボットコントローラとのデータ通信を確立する前記動作プログラムを生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記動作選択受付手段は、前記エンドエフェクタに対する待機の選択を受付可能であることを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記エンドエフェクタの現在の位置に関する現在位置情報を取得する位置情報取得手段を備え、
前記動作選択受付手段は、取得した現在位置情報に基づく位置へ前記エンドエフェクタを移動させる動作の選択を受付可能であることを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記ロボットの種別の選択を受け付けるロボット選択受付手段を備え、
前記プログラム生成手段は、選択を受け付けた前記ロボットの種別ごとに規定されたフォーマットに従って前記動作プログラムを生成することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記撮像トリガごとに、前記対象物の画像上における位置情報を検出する処理を対応付けることを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
ロボットの動作を制御するロボットコントローラと、
該ロボットコントローラとデータ通信することが可能に接続された通信装置、及び前記ロボットによる操作対象である対象物を撮像する撮像装置を含む画像処理装置とで構成される画像処理システムであって、
前記画像処理装置は、
前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する撮像トリガ受信手段と、
前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する撮像制御手段と、
各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する画像検出手段と、
前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する動作表示手段と、
少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける動作選択受付手段と、
選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける順序設定受付手段と、
選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成するプログラム生成手段と
を備えることを特徴とする画像処理システム。
【請求項９】
前記順序設定受付手段は、複数の前記動作リストから前記ロボットコントローラにより実行される動作の選択を受け付けることを特徴とする請求項８に記載の画像処理システム。
【請求項１０】
前記プログラム生成手段は、前記ロボットコントローラとのデータ通信を確立する前記動作プログラムを生成することを特徴とする請求項８又は９に記載の画像処理システム。
【請求項１１】
前記動作選択受付手段は、前記エンドエフェクタに対する待機の選択を受付可能であることを特徴とする請求項８乃至１０のいずれか一項に記載の画像処理システム。
【請求項１２】
前記エンドエフェクタの現在の位置に関する位置情報を取得する位置情報取得手段を備え、
前記動作選択受付手段は、取得した現在位置情報に基づく位置へ前記エンドエフェクタを移動させる動作の選択を受付可能であることを特徴とする請求項８乃至１１のいずれか一項に記載の画像処理システム。
【請求項１３】
前記ロボットの種別の選択を受け付けるロボット選択受付手段を備え、
前記プログラム生成手段は、選択を受け付けた前記ロボットの種別ごとに規定されたフォーマットに従って前記動作プログラムを生成することを特徴とする請求項８乃至１２のいずれか一項に記載の画像処理システム。
【請求項１４】
前記撮像トリガごとに  前記対象物の画像上における位置情報を検出する処理を対応付けることを特徴とする請求項８乃至１３のいずれか一項に記載の画像処理システム。
【請求項１５】
ロボットの動作を制御するロボットコントローラと、
該ロボットコントローラとデータ通信することが可能に接続された通信装置、及び前記ロボットによる操作対象である対象物を撮像する撮像装置を含む画像処理装置とで構成される画像処理システムで実行することが可能な画像処理方法であって、
前記画像処理装置は、
前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する工程と、
前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する工程と、
各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する工程と、
前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する工程と、
少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける工程と、
選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける工程と、
選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成する工程と
を含むことを特徴とする画像処理方法。
【請求項１６】
ロボットの動作を制御するロボットコントローラとデータ通信することが可能な通信装置と、
前記ロボットによる操作対象である対象物を撮像する撮像装置と
を有する画像処理装置で実行することが可能なコンピュータプログラムであって、
前記画像処理装置を、
前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する撮像トリガ受信手段、
前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する撮像制御手段、
各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する画像検出手段、
前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する動作表示手段、
少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける動作選択受付手段、
選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける順序設定受付手段、及び
選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成するプログラム生成手段
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複雑なロボット動作制御プログラムを逐一コーディングすることなく、高い精度でロボットの動作を制御することができる画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
撮像装置によりロボットの作業領域を撮像して、撮像された画像内のワークの位置を検出し、検出されたワークの位置情報を撮像された画像に基づいて算出することで、ロボットの動作を高い精度で制御する制御システムが多々開発されている。例えば特許文献１では、撮像装置を含むセンサにより検出された情報に基づいてロボットの動作を制御するロボット制御装置が開示されている。また、特許文献２では、外部のコンピュータでコンパイルしたロードモジュール（ロボット動作制御プログラム）を送信することでロボットの動作を制御するロボット制御装置が開示されている。
【０００３】
このように従来のロボット制御システムでは、精緻な動作制御をするべく、画像処理装置において表示される座標系で算出された位置座標を、ロボットコントローラがエンドエフェクタを動作させる座標系の位置座標へと座標変換している。座標変換を行うための変換式を算出する処理をキャリブレーションと呼んでいる。ここで、エンドエフェクタとは、例えばワークを把持して固着できるロボットアームの先端部分を意味する。
【０００４】
ロボットのエンドエフェクタに対する動作（移動）命令は、画像処理装置が、撮像した画像に基づく位置座標を、キャリブレーション結果に基づいて実際の位置座標の座標値に変換する。画像処理装置は、変換された座標値とともに動作（移動）命令をロボットコントローラへ送信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０４−１３４５０１号公報
【特許文献２】特開平０９−０９１０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ロボットコントローラがロボットを正しく動作させるためには、ロボットの動作プログラムをユーザが作成する必要がある。動作プログラムには、例えばロボットのエンドエフェクタを原点位置に復帰させる、エンドエフェクタを特定の位置に移動させる、ワークを把持する、ワークを解放する等の一連の動作がシーケンシャルに記述されている。
【０００７】
しかし、ユーザは、画像処理装置とのデータ通信を含む一連の動作についてもプログラムを作成する必要があり、ロボットの動作を制御するためには、ロボットコントローラ用の動作プログラムだけでなく、画像処理装置が関連する一連の動作についてもプログラムを作成する必要が生じる。したがって、システム全体の立ち上げまでに相当の時間を要するという問題点があった。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、複雑なロボット動作制御プログラムを逐一コーディングすることなく、高い精度でロボットの動作を制御することができる画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために第１発明に係る画像処理装置は、ロボットの動作を制御するロボットコントローラとデータ通信することが可能な通信装置と、前記ロボットによる操作対象である対象物を撮像する撮像装置とを有する画像処理装置であって、前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する撮像トリガ受信手段と、前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する撮像制御手段と、各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する画像検出手段と、前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する動作表示手段と、少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける動作選択受付手段と、選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける順序設定受付手段と、選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成するプログラム生成手段とを備えることを特徴とする。
【００１０】
また、第２発明に係る画像処理装置は、第１発明において、前記順序設定受付手段は、複数の前記動作リストから前記ロボットコントローラにより実行される動作の選択を受け付けることが好ましい。
【００１１】
また、第３発明に係る画像処理装置は、第１又は第２発明において、前記プログラム生成手段は、前記ロボットコントローラとのデータ通信を確立する前記動作プログラムを生成することが好ましい。
【００１２】
また、第４発明に係る画像処理装置は、第１乃至第３発明のいずれか１つにおいて、前記動作選択受付手段は、前記エンドエフェクタに対する待機の選択を受付可能であることが好ましい。
【００１３】
また、第５発明に係る画像処理装置は、第１乃至第４発明のいずれか１つにおいて、前記エンドエフェクタの現在の位置に関する現在位置情報を取得する位置情報取得手段を備え、前記動作選択受付手段は、取得した現在位置情報に基づく位置へ前記エンドエフェクタを移動させる動作の選択を受付可能であることが好ましい。
【００１４】
また、第６発明に係る画像処理装置は、第１乃至第５発明のいずれか１つにおいて、前記ロボットの種別の選択を受け付けるロボット選択受付手段を備え、前記プログラム生成手段は、選択を受け付けた前記ロボットの種別ごとに規定されたフォーマットに従って前記動作プログラムを生成することが好ましい。
【００１５】
また、第７発明に係る画像処理装置は、第１乃至第６発明のいずれか１つにおいて、前記撮像トリガごとに前記対象物の画像上における位置情報を検出する処理を対応付けることが好ましい。
【００１６】
次に、上記目的を達成するために第８発明に係る画像処理システムは、ロボットの動作を制御するロボットコントローラと、該ロボットコントローラとデータ通信することが可能に接続された通信装置、及び前記ロボットによる操作対象である対象物を撮像する撮像装置を含む画像処理装置とで構成される画像処理システムであって、前記画像処理装置は、前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する撮像トリガ受信手段と、前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する撮像制御手段と、各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する画像検出手段と、前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する動作表示手段と、少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける動作選択受付手段と、選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける順序設定受付手段と、選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成するプログラム生成手段とを備えることを特徴とする。
【００１７】
また、第９発明に係る画像処理システムは、第８発明において、前記順序設定受付手段は、複数の前記動作リストから前記ロボットコントローラにより実行される動作の選択を受け付けることが好ましい。
【００１８】
また、第１０発明に係る画像処理システムは、第８又は第９発明において、前記プログラム生成手段は、前記ロボットコントローラとのデータ通信を確立する前記動作プログラムを生成することが好ましい。
【００１９】
また、第１１発明に係る画像処理システムは、第８乃至第１０発明のいずれか１つにおいて、前記動作選択受付手段は、前記エンドエフェクタに対する待機の選択を受付可能であることが好ましい。
【００２０】
また、第１２発明に係る画像処理システムは、第８乃至第１１発明のいずれか１つにおいて、前記エンドエフェクタの現在の位置に関する位置情報を取得する位置情報取得手段を備え、前記動作選択受付手段は、取得した現在位置情報に基づく位置へ前記エンドエフェクタを移動させる動作の選択を受付可能であることが好ましい。
【００２１】
また、第１３発明に係る画像処理システムは、第８乃至第１２発明のいずれか１つにおいて、前記ロボットの種別の選択を受け付けるロボット選択受付手段を備え、前記プログラム生成手段は、選択を受け付けた前記ロボットの種別ごとに規定されたフォーマットに従って前記動作プログラムを生成することが好ましい。
【００２２】
また、第１４発明に係る画像処理システムは、第８乃至第１３発明のいずれか１つにおいて、前記撮像トリガごとに  前記対象物の画像上における位置情報を検出する処理を対応付けることが好ましい。
【００２３】
次に、上記目的を達成するために第１５発明に係る画像処理方法は、ロボットの動作を制御するロボットコントローラと、該ロボットコントローラとデータ通信することが可能に接続された通信装置、及び前記ロボットによる操作対象である対象物を撮像する撮像装置を含む画像処理装置とで構成される画像処理システムで実行することが可能な画像処理方法であって、前記画像処理装置は、前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する工程と、前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する工程と、各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する工程と、前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する工程と、少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける工程と、選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける工程と、選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成する工程とを含むことを特徴とする。
【００２４】
次に、上記目的を達成するために第１６発明に係るコンピュータプログラムは、ロボットの動作を制御するロボットコントローラとデータ通信することが可能な通信装置と、前記ロボットによる操作対象である対象物を撮像する撮像装置とを有する画像処理装置で実行することが可能なコンピュータプログラムであって、前記画像処理装置を、前記撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信する撮像トリガ受信手段、前記撮像トリガを受信した場合、各移動先にて対象物を撮像するよう前記撮像装置の動作を制御する撮像制御手段、各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出する画像検出手段、前記ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する動作表示手段、少なくとも前記撮像装置に対する撮像トリガを送信する動作、及び検出された前記位置情報に基づき前記ロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、前記ロボットコントローラに実行させる複数の動作の選択を受け付ける動作選択受付手段、選択を受け付けた複数の動作を前記動作リストに組み込み、動作ごとに実行順序の設定を受け付ける順序設定受付手段、及び選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成するプログラム生成手段として機能させることを特徴とする。
【００２５】
第１発明、第８発明、第１５発明及び第１６発明では、画像処理装置は、撮像装置で対象物の撮像を開始するタイミングを示す撮像トリガを受信し、撮像トリガを受信した場合、各移動先にて対象物を撮像するよう撮像装置の動作を制御する。各移動先にて撮像された対象物の画像に基づいて、対象物の画像上における位置情報を検出し、ロボットコントローラが実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する。少なくとも撮像装置に対する撮像トリガを送信する動作、及び検出された位置情報に基づきロボットのエンドエフェクタを移動させる動作を含む複数の動作の中から、ロボットコントローラに実行させる複数の動作の選択を受け付け、選択を受け付けた複数の動作を動作リストに組み込み、動作ごとに実行順序の設定を受け付ける。選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成する。これにより、画像処理装置からロボットコントローラに対してロボットの動作を制御する動作プログラムを画像処理装置内で生成することができるので、ロボットの種別ごとに異なる機械語を理解していない作業者（ユーザ）であっても、ロボットの動作を高い精度で制御することができる動作プログラムを生成することが可能となる。したがって、すべての動作プログラムが完成する都度、動作を確認する煩雑な手順が不要となるので、システムとして早期に立ち上げることが可能となる。
【００２６】
第２発明及び第９発明では、複数の動作リストからロボットコントローラにより実行される動作の選択を受け付けるので、ロボットにさせたい所望の動作を幅広く選択することが可能となる。
【００２７】
第３発明及び第１０発明では、画像処理装置とロボットコントローラとのデータ通信を確立する動作プログラムを生成するので、コーディングが煩雑な通信部分のプログラムについてもユーザが直接コーディングする必要がなく、システム全体を早期に立ち上げることが可能となる。
【００２８】
第４発明及び第１１発明では、エンドエフェクタに対する待機の選択を受付可能であるので、エンドエフェクタを所望のタイミングで移動／停止させることが可能となる。
【００２９】
第５発明及び第１２発明では、エンドエフェクタの現在の位置に関する現在位置情報を取得し、取得した現在位置情報に基づく位置へエンドエフェクタを移動させる動作の選択を受付可能であるので、エンドエフェクタを元の位置（現在位置）へ確実に戻らせるよう（移動させるよう）動作させることが可能となる。
【００３０】
第６発明及び第１３発明では、ロボットの種別の選択を受け付け、選択を受け付けたロボットの種別ごとに規定されたフォーマットに従って動作プログラムを生成するので、ロボットの種別が変更された場合であっても、ロボットの種別に応じた動作プログラムを生成することが可能となる。
【００３１】
第７発明及び第１４発明では、撮像トリガごとに、対象物の画像上における位置情報を検出する処理を対応付けるので、撮像トリガによって位置情報を検出する処理が設定され、例えば検出ツールを選択する処理等を省略することが可能となる。
【発明の効果】
【００３２】
本発明によれば、画像処理装置からロボットコントローラに対してロボットの動作を制御する動作プログラムを画像処理装置内で生成することができるので、ロボットの種別ごとに異なる機械語を理解していない作業者（ユーザ）であっても、ロボットの動作を高い精度で制御することができる動作プログラムを生成することが可能となる。したがって、すべての動作プログラムが完成する都度、動作を確認する煩雑な手順が不要となるので、システムとして早期に立ち上げることが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態１に係る画像処理システムの構成を示す模式図である。
【図２】本発明の実施の形態１に係る画像処理システムの画像処理装置の構成例を示すブロック図である。
【図３】従来のキャリブレーション処理の手順を示すフローチャートである。
【図４】本発明の実施の形態１に係る画像処理システムのキャリブレーションの処理手順を示すフローチャートである。
【図５】本発明の実施の形態１に係る画像処理装置の開始位置設定画面の例示図である。
【図６】本発明の実施の形態１に係る画像処理装置の検出ツール設定画面の例示図である。
【図７】本発明の実施の形態１に係る画像処理装置の移動パターンの設定画面の例示図である。
【図８】本発明の実施の形態１に係る画像処理装置の移動パターンの設定画面の例示図である。
【図９】本発明の実施の形態１に係る画像処理装置の輪郭検出ツールを用いる場合の検出条件設定画面の例示図である。
【図１０】本発明の実施の形態１に係る画像処理装置の輪郭検出ツールを用いる場合の検出条件設定画面の例示図である。
【図１１】本発明の実施の形態１に係る画像処理装置の濃淡検出ツールを用いる場合の検出条件設定画面の例示図である。
【図１２】本発明の実施の形態１に係る画像処理装置の濃淡検出ツールを用いる場合の検出条件設定画面の例示図である。
【図１３】本発明の実施の形態１に係る画像処理装置の機能ブロック図である。
【図１４】本発明の実施の形態１に係る画像処理装置の位置データ登録画面の例示図である。
【図１５】本発明の実施の形態１に係る画像処理装置の位置データ選択画面の例示図である。
【図１６】本発明の実施の形態１に係る画像処理装置の位置データ選択画面の他の例示図である。
【図１７】本発明の実施の形態１に係る画像処理装置のプログラム生成画面の例示図である。
【図１８】本発明の実施の形態１に係るロボットコントローラの動作プログラムの例示図である。
【図１９】本発明の実施の形態１に係るロボットコントローラの機能ブロック図である。
【図２０】本発明の実施の形態１に係るロボットコントローラの変換プログラムの処理手順を示すフローチャートである。
【図２１】本発明の実施の形態１に係る画像処理システムのシステム構築手順を示すフローチャートである。
【図２２】本発明の実施の形態１に係る画像処理装置の動作プログラム作成の処理手順を示すフローチャートである。
【図２３】本発明の実施の形態１に係る画像処理システムにおける試運転時の動作を説明するための模式図である。
【図２４】本発明の実施の形態１に係る画像処理装置のプログラム生成画面の例示図である。
【図２５】本発明の実施の形態１に係る画像処理システムの試運転時の処理手順を示すフローチャートである。
【図２６】本発明の実施の形態２に係る画像処理システムにおけるピッキングの実行を説明するための模式図である。
【図２７】本発明の実施の形態２に係る画像処理システムのピッキングの処理手順を示すフローチャートである。
【図２８】本発明の実施の形態２に係る画像処理システムにおける撮像位置を補正する場合のピッキングの実行を説明するための模式図である。
【図２９】本発明の実施の形態２に係る画像処理システムの撮像位置を補正する場合のピッキングの処理手順を示すフローチャートである。
【図３０】本発明の実施の形態２に係る画像処理システムの異なる動作条件の設定例を示す条件設定画面の例示図である。
【図３１】本発明の実施の形態２に係る画像処理システムの異なる動作条件に切り替え可能な動作プログラムの例示図である。
【図３２】本発明の実施の形態２に係る画像処理システムにおける動作条件の切り替えが必要となるピッキングの実行を説明するための模式図である。
【図３３Ａ】本発明の実施の形態２に係る画像処理システムの動作条件の切り替えを含むピックアップの処理手順を示すフローチャートである。
【図３３Ｂ】本発明の実施の形態２に係る画像処理システムの動作条件の切り替えを含むピックアップの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００３４】
以下、本発明の実施の形態に係る画像処理システムについて、図面に基づいて具体的に説明する。
【００３５】
（実施の形態１）
図１は、本発明の実施の形態１に係る画像処理システムの構成を示す模式図である。
【００３６】
図１に示すように、本実施の形態１に係る画像処理システムは、対象物（ワーク）６を移動させるマニピュレータ（ロボット）１、マニピュレータ１の動作を制御するロボットコントローラ２、画像処理装置３、及び撮像装置４で構成されている。マニピュレータ１の先端には、対象物６を把持又は解放することが可能なエンドエフェクタ５が設けられており、ロボットコントローラ２はエンドエフェクタ５の開閉動作も制御する。
【００３７】
撮像装置４は、例えばカラーＣＣＤカメラであり、移動する対象物であるワーク６を撮像する。撮像された画像に基づいて、後述するキャリブレーションを実行することにより、実際のワーク６の位置座標（エンドエフェクタ５の移動位置の座標）と、画面に表示された画像上の位置座標とをリンクさせることができる。
【００３８】
マニピュレータ１は、３本のアームで構成されており、２本のアームが互いになす角度、及びアーム支点の回転により、エンドエフェクタ５を所望の位置へ移動させる。
【００３９】
図２は、本発明の実施の形態１に係る画像処理システムの画像処理装置３の構成例を示すブロック図である。本発明の実施の形態１に係る画像処理装置３は、少なくともＣＰＵ（中央演算装置）等で構成された制御部３１、メモリ３２、記憶装置３３、入出力インタフェース３４、表示インタフェース３５、通信インタフェース３６及び上述したハードウェアを接続する内部バス３７で構成されている。
【００４０】
制御部３１は、内部バス３７を介して画像処理装置３の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置３３に記憶されているコンピュータプログラムに従って、種々のソフトウェア的機能を実行する。メモリ３２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラムの実行時にロードモジュールが展開され、コンピュータプログラムの実行時に発生する一時的なデータ等を記憶する。
【００４１】
記憶装置３３は、内蔵される固定型記憶装置（ハードディスク）、ＳＲＡＭ等の揮発性メモリ、ＲＯＭ等の不揮発性メモリ等で構成されている。記憶装置３３に記憶されているコンピュータプログラムは、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体からダウンロード、あるいは通信インタフェース３６を介してダウンロードされ、実行時には記憶装置３３からメモリ３２へ展開して実行される。
【００４２】
通信インタフェース（通信装置）３６は内部バス３７に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。
【００４３】
入出力インタフェース３４は、キーボード３８、マウス３９等のデータ入力媒体と接続され、データの入力を受け付ける。また、表示インタフェース３５は、ＣＲＴモニタ、ＬＣＤ等の表示装置４０と接続され、所定の画像を表示する。
【００４４】
従来、マニピュレータ１の動作制御は、ロボットコントローラ２に記憶されているシーケンシャルな動作制御プログラムにより行われていた。その場合、マニピュレータ１のエンドエフェクタ５の実際の位置座標と、画像処理装置３に表示されている画像上の位置座標との間でキャリブレーションを実行する必要がある。
【００４５】
キャリブレーションは、複数の位置座標について、マニピュレータ１のエンドエフェクタ５の実際の位置座標と、画像処理装置３に表示されている画像上の位置座標との間の変換式を算出する。座標変換の方法は、特に限定されるものではなく、例えばアフィン変換で変換する。
【００４６】
【数１】
0006410388.tif 000002
【００４７】
（式１）に示すように、マニピュレータ１のエンドエフェクタ５の実際の位置座標（ｘ’、ｙ’）と、画像処理装置３に表示されている画像上の位置座標（ｘ、ｙ）とに基づいて、６つの自由度を有する変換式の係数ａ、ｂ、ｃ、ｄ、ｅ、ｆを求める。対応する位置座標が６つを超える場合には、最小二乗法を用いれば良い。
【００４８】
図３は、従来のキャリブレーションの処理手順を示すフローチャートである。図３に示すように、ロボットコントローラ２は、マニピュレータ１に撮像対象となるマークを付与したワーク６を、キャリブレーションターゲットとして把持させた状態で、エンドエフェクタ５をキャリブレーション位置へと移動させる（ステップＳ３０１）。
【００４９】
ロボットコントローラ２は、移動したエンドエフェクタ５の位置座標（ｘ’、ｙ’）を取得して（ステップＳ３０２）、計測命令及び取得した位置座標（ｘ’、ｙ’）を画像処理装置３へ送信する（ステップＳ３０３）。画像処理装置３は、ロボットコントローラ２から計測命令及び取得した位置座標（ｘ’、ｙ’）を受信し（ステップＳ３０４）、エンドエフェクタ５の動作領域を撮像する（ステップＳ３０５）。
【００５０】
画像処理装置３は、エンドエフェクタ５の動作領域の画像を表示し、表示されている画像上の位置座標（ｘ、ｙ）を検出する（ステップＳ３０６）。ロボットコントローラ２は、キャリブレーション用のすべての位置座標（ｘ’、ｙ’）について画像上の位置座標（ｘ、ｙ）を検出したか否かを判断する（ステップＳ３０７）。ロボットコントローラ２が、まだすべての位置座標（ｘ’、ｙ’）について画像上の位置座標（ｘ、ｙ）を検出していないと判断した場合（ステップＳ３０７：ＮＯ）、ロボットコントローラ２は、次の移動命令を発行し（ステップＳ３０８）、処理をステップＳ３０１へ戻して、上述した処理を繰り返す。
【００５１】
ロボットコントローラ２が、すべての位置座標（ｘ’、ｙ’）について画像上の位置座標（ｘ、ｙ）を検出したと判断した場合（ステップＳ３０７：ＹＥＳ）、画像処理装置３は、（式１）に従って変換式を算出する（ステップＳ３０９）。具体的には、６つの係数ａ、ｂ、ｃ、ｄ、ｅ、ｆを求める。
【００５２】
しかし、従来のキャリブレーションでは、マニピュレータ１の種別ごとに固有のシーケンシャルな制御プログラムが必要となる。したがって、機種ごとに個別の制御プログラムによりキャリブレーションを実行しなければならない。そこで、画像処理装置３において主たるキャリブレーションを実行する。
【００５３】
図４は、本発明の実施の形態１に係る画像処理システムのキャリブレーションの処理手順を示すフローチャートである。図４に示すように、画像処理装置３は、マニピュレータ１に撮像対象となるマークを付与したワーク６を、キャリブレーションターゲットとして把持させた状態で、キャリブレーションの開始位置を設定する（ステップＳ４０１）。図５は、本発明の実施の形態１に係る画像処理装置３の開始位置設定画面の例示図である。
【００５４】
図５に示すように、撮像された対象物６の画像は画像表示領域５５に表示されている。キャリブレーションの実行ボタンのうち、開始位置設定ボタン５１が選択されると、開始位置設定画面５６がポップアップ表示され、開始位置を設定する。この場合、ジョグ操作ボタン５７を選択することで、マニピュレータ１のエンドエフェクタ５を所定の位置に移動させることができる。したがって、移動先を確認しながらキャリブレーションの開始位置を設定することができる。
【００５５】
なお、移動パターンを設定する前に、検出ツールを設定することができる。図６は、本発明の実施の形態１に係る画像処理装置３の検出ツール設定画面の例示図である。
【００５６】
図６に示すように、キャリブレーションの実行ボタンのうち、検出ツール設定ボタン５２が選択されると、検出ツール選択領域６１が表示される。ユーザは、画像表示領域５５に表示されている画像を見ながら、検出ツール選択領域６１において検出ツールを選択する。図６の例では、輪郭検出ツールを選択している。これ以外に、例えば濃淡検出ツールを選択しても良い。
【００５７】
図４に戻って、画像処理装置３は、マニピュレータ１のエンドエフェクタ５の移動パターンを設定する（ステップＳ４０２）。図７及び図８は、本発明の実施の形態１に係る画像処理装置３の移動パターンの設定画面の例示図である。
【００５８】
図７に示すように、キャリブレーションの実行ボタンのうち、キャリブレーションボタン５３が選択されると、移動パターン設定画面７１がポップアップ表示される。ここで、移動パターンの設定ボタン７２を選択すると、図８に示すように、詳細設定画面７３がポップアップ表示される。
【００５９】
詳細設定画面７３では、キャリブレーション実行時の検出パターンを設定する。例えば、３×３の９個、５×５の２５個等の設定を受け付ける。所定の移動距離を設定することで、詳細設定画面７３の下部に表示されるような移動パターンが設定される。
【００６０】
図４に戻って、画像処理装置３は移動命令をロボットコントローラ２へ送信する（ステップＳ４０３）。ロボットコントローラ２は、移動命令を受信して（ステップＳ４０４）、移動命令をマニピュレータ１の種別に応じて解釈する（ステップＳ４０５）。すなわち、マニピュレータ１を稼働させることが可能な機械語のロードモジュールに翻訳する。
【００６１】
ロボットコントローラ２は、エンドエフェクタ５を移動命令で指定されている位置へと移動させ（ステップＳ４０６）。ロボットコントローラ２は、エンドエフェクタ５の移動先の位置座標（ｘ’、ｙ’）を取得して（ステップＳ４０７）、取得した位置座標（ｘ’、ｙ’）を画像処理装置３へ送信する（ステップＳ４０８）。
【００６２】
画像処理装置３は、ロボットコントローラ２から、取得した位置座標（ｘ’、ｙ’）を受信し（ステップＳ４０９）、エンドエフェクタ５の動作領域を撮像する（ステップＳ４１０）。画像処理装置３は、動作領域の画像を表示し、表示されている画像上の位置座標（ｘ、ｙ）を検出する（ステップＳ４１１）。
【００６３】
なお、表示されている画像上のどの位置の位置座標（ｘ、ｙ）を検出するかは、設定されている検出ツールを用いて画像中から検出する。例えば検出ツールとして、輪郭検出ツールが選択されている場合、検出される輪郭領域を指定する必要がある。
【００６４】
図９及び図１０は、本発明の実施の形態１に係る画像処理装置３の輪郭検出ツールを用いる場合の検出条件設定画面の例示図である。図９に示すように、ツール表示領域９１において、選択されている「輪郭検出ツール」が表示されている。そして、パターン編集領域９２において、輪郭パターンの形状を設定する。図９の例では矩形領域に設定されている。
【００６５】
そして、画像表示領域５５に表示されている対象物において、マウス等でドラッグ操作をしながら、輪郭パターンを検出する検出領域９３を設定する。図９の例では、対象物を囲むように設定しているが、特にこのような設定に限定されるものではない。
【００６６】
検出領域９３が設定されると、図１０に示すように、検出条件設定画面９４において、検出条件を設定する。検出条件としては、例えば対象物の傾きの許容範囲である「角度範囲」、検出する個数を示す「検出個数」、どの程度まで類似していれば検出するかを示す「相関値下限」等を設定する。
【００６７】
また、検出ツールとして、濃淡検出ツールを選択しても良い。濃淡検出ツールが選択されている場合であっても、検出する領域を設定する必要がある。
【００６８】
図１１及び図１２は、本発明の実施の形態１に係る画像処理装置３の濃淡検出ツールを用いる場合の検出条件設定画面の例示図である。図１１に示すように、ツール表示領域９１において、選択されている「濃淡検出ツール」が表示されている。そして、パターン編集領域９２において、輪郭パターンの形状を設定する。図１１の例では矩形領域に設定されている。
【００６９】
そして、画像表示領域５５に表示されている対象物において、マウス等でドラッグ操作をしながら、輪郭パターンを検出する検出領域９３を設定する。図１１の例では、対象物を囲むように設定しているが、特にこのような設定に限定されるものではない。
【００７０】
検出領域９３が設定されると、図１２に示すように、検出条件設定領域１２１において、検出条件を設定する。検出条件としては、例えば対象物の傾きの許容範囲である「角度範囲」、検出する個数を示す「検出個数」、どの程度まで類似していれば検出するかを示す「相関値下限」等の他、検出感度（サーチ感度）あるいは検出精度（サーチ精度）についても設定することができる。形状が同じであっても、濃淡差等に違いが生じている場合が想定されるからである。
【００７１】
図４に戻って、画像処理装置３は、キャリブレーション用のすべての位置座標（ｘ’、ｙ’）について画像上の位置座標（ｘ、ｙ）を検出したか否かを判断する（ステップＳ４１２）。画像処理装置３が、まだすべての位置座標（ｘ’、ｙ’）について画像上の位置座標（ｘ、ｙ）を検出していないと判断した場合（ステップＳ４１２：ＮＯ）、画像処理装置３は、次の移動命令を発行し（ステップＳ４１３）、処理をステップＳ４０３へ戻して、上述した処理を繰り返す。
【００７２】
画像処理装置３が、すべての位置座標（ｘ’、ｙ’）について画像上の位置座標（ｘ、ｙ）を検出したと判断した場合（ステップＳ４１２：ＹＥＳ）、画像処理装置３は、（式１）に従って変換式を算出する（ステップＳ４１４）。具体的には、６つの係数ａ、ｂ、ｃ、ｄ、ｅ、ｆを求める。
【００７３】
なお、キャリブレ−ションとして二次元のアフィン変換を用いる例について説明しているが、もちろん三次元のアフィン変換を用いても良い。
【００７４】
図１３は、本発明の実施の形態１に係る画像処理装置３の機能ブロック図である。画像処理装置３の移動座標取得部３０１は、移動命令に応じて移動したエンドエフェクタ５の実際の各位置座標である第一の座標値（ｘ’、ｙ’）を取得する。
【００７５】
なお、移動座標取得部３０１において取得する第一の座標値（ｘ’、ｙ’）は、画像処理装置３からの移動命令に応じてエンドエフェクタ５が移動した各位置において、ロボットコントローラ２から取得した座標値としているが、画像処理装置３で表示されている画像上で指定されたマニピュレータ（ロボット）１の移動目標座標をそのまま第一の座標値としても良い。
【００７６】
撮像トリガ受信部３０２は、ロボットコントローラ２から撮像トリガを受信する。撮像制御部３０３は、撮像トリガの受信を確認した時点あるいは確認した時点から所定時間経過した時点で、エンドエフェクタ５の各移動先にて対象物６を撮像するよう撮像装置４の動作を制御する。これにより、ロボットコントローラ２から取得したエンドエフェクタ５の移動先の各位置座標である第一の座標値（ｘ’、ｙ’）に対応する領域を撮像するよう制御することで、取得したエンドエフェクタ５の画像上の第一の座標値（ｘ’、ｙ’）との間でキャリブレーションを実行することができる。
【００７７】
画像検出部３０４は、各移動先にて撮像された対象物６の画像に基づいて対象物の位置座標である第二の座標値（ｘ、ｙ）を検出する。キャリブレーション実行部３０５は、取得した複数の第一の座標値（ｘ’、ｙ’）と、検出した複数の第二の座標値（ｘ、ｙ）とに基づいて、両座標間の変換規則を算出する。例えば二次元のキャリブレーションを実行する場合、上述した（式１）に座標値を代入して、係数ａ、ｂ、ｃ、ｄ、ｅ、ｆを求める。
【００７８】
キャリブレーションを実行することにより、ロボットコントローラ２から取得した移動先のエンドエフェクタ５の位置座標である第一の座標値（ｘ’、ｙ’）を指定して移動命令を送信するだけでなく、各移動先にて撮像された対象物の６の画像に基づいて検出された第二の座標値（ｘ、ｙ）から第一の座標値（ｘ’、ｙ’）を算出することができ、移動命令を送信することができる。つまり、画像処理装置３からロボットコントローラ２に対して動作の指令を送信することができるようになる。
【００７９】
動作設定受付部３０６は、少なくとも第一の座標値（ｘ’、ｙ’）へエンドエフェクタ５を移動させる動作又は第二の座標値（ｘ、ｙ）へエンドエフェクタ５を移動させる動作（具体的にはキャリブレーション結果を用いて第一の座標値へ変換した座標値へ移動させる動作）を含む複数の動作の中から、ロボットコントローラ２に実行させる複数の動作の選択を受け付け、選択を受け付けた複数の動作の実行順序の設定を受け付ける。
【００８０】
具体的には、まず移動先の位置データを記憶する。図１４は、本発明の実施の形態１に係る画像処理装置３の位置データ登録画面の例示図である。まず、マニピュレータ（ロボット）１のエンドエフェクタ５を撮像位置へ移動させる。移動命令は、画像処理装置３からロボットコントローラ２へ送信する。
【００８１】
エンドエフェクタ５の位置データは、第一の座標値（ｘ’、ｙ’）としてロボットコントローラ２から移動座標取得部３０１により取得する。図１４（ａ）には、取得した第一の座標値が表示されている。
【００８２】
そして、登録ボタン１４１をマウス等でクリック操作することにより、取得した第一の座標値を識別子、例えば「ＰＯＳ００１」とともに記憶する。第一の座標値が１つでも記憶されている場合、図１４（ｂ）に示すように、移動ボタン１４２が使用可能な状態となる。位置データを選択して移動ボタン１４２をマウス等でクリック操作することにより、移動命令を送信することができる。
【００８３】
図１５は、本発明の実施の形態１に係る画像処理装置３の位置データ選択画面の例示図である。図１５に示すように、位置データ選択領域１５１に、既に記憶されている位置データ候補が表示されている。ユーザは、この中から１つの位置データを選択すれば良い。
【００８４】
図１６は、本発明の実施の形態１に係る画像処理装置３の位置データ選択画面の他の例示図である。図１６の例では、位置データ選択領域１５１が存在しない。あくまでも撮像された画像が表示されている画像表示領域５５において、現在の位置を「十」印１６１で表示している。ユーザは、マウス等のクリック操作により、移動先の位置「十」印１６２を指定することで位置データを選択すれば良い。
【００８５】
すなわち、位置データ選択画面は、図１３の移動先選択部３１４として機能する。移動先選択部３１４は、エンドエフェクタ５の複数の第一の座標値を取得し、複数の第一の座標値の中からエンドエフェクタ５の移動先として一の第一の座標値の選択を受け付ける。
【００８６】
図１３に戻って、動作設定受付部３０６は、ロボットコントローラ２から受信する、撮像装置４で対象物６の撮像を開始するタイミングを示す撮像トリガごとに、少なくとも動作の種類及び動作順序を含む動作条件の設定も受け付ける。設定を受け付けた撮像トリガごとの動作条件をロボットコントローラ２から受信したタイミングで、撮像装置４によりワーク６を撮像する。撮像トリガとしては、特にどのような情報でなければならないという限定はない。少なくとも撮像装置４に撮像を開始するタイミングを知らせる信号であれば足りる。
【００８７】
動作設定受付部３０６は、エンドエフェクタ５に対する待機指令の設定を受け付けても良い。撮像までの待機時間を設定を受け付けることで、動作直後の振動を抑制し、撮像時のエンドエフェクタ５の位置を安定させることができる。これにより、撮像装置４をエンドエフェクタ５に取り付けた状態での検出、あるいはワーク６をエンドエフェクタ５に把持させた状態での位置検出の精度を高くすることが可能となる。
【００８８】
プログラム生成部３１１は、動作設定受付部３０６で選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成する。具体的には、設定を受け付けた実行順序に従って、選択を受け付けた複数の動作に対応する各動作プログラムを、編集可能なテキストデータとして生成する。
【００８９】
自動的に生成するとともに、ユーザの意向により自由にカスタマイズできるように、プログラム生成部３１１は、例えばロボットコントローラ２による動作のうち、少なくとも第一の座標値又は第２の座標値へエンドエフェクタ５を移動させる動作、撮像トリガを送信する動作を含む、ロボットコントローラ２に実行させる一連の複数の動作について動作プログラムを生成すれば良い。もちろん、ロボットコントローラ２とのデータ通信を確立する動作プログラムを生成しても良い。
【００９０】
また、マニピュレータ（ロボット）１の種別によって動作プログラムのフォーマットが異なるので、プログラム生成部３１１は、動作設定受付部３０６で選択を受け付けた複数の動作それぞれに対応する動作プログラムを、設定を受け付けた実行順序に従って生成する。
【００９１】
また、動作表示部３０７は、ロボットコントローラ２が実行する動作プログラムに組み込む動作の候補である動作リストを、実行順序に従って表示する。動作選択受付部３０８は、少なくとも撮像装置４に対する撮像トリガを送信する動作、及び検出された位置情報に基づきマニピュレータ（ロボット）１のエンドエフェクタ５を移動させる動作を含む複数の動作の中から、ロボットコントローラ２に実行させる複数の動作の選択を受け付ける。順序設定受付部３０９は、選択を受け付けた複数の動作を動作リストに組み込み、動作ごとに実行順序の設定を受け付ける。
【００９２】
図１７は、本発明の実施の形態１に係る画像処理装置３のプログラム生成画面の例示図である。図１７において、シーケンス選択領域１７１には、動作プログラムに組み込む動作の候補である動作リストが表示されている（動作表示部３０７）。ユーザは、表示されている動作リストの中から、生成される動作プログラムで実行したい複数の動作を選択する（動作選択受付部３０８）。選択された複数の動作に応じて、動作ごとに実行順序が設定される（順序設定受付部３０９）。もちろん、実行順序のみ変更できるようにしても良い。
【００９３】
また、生成される動作プログラムで制御する対象となるマニピュレータ（ロボット）１の製造元であるメーカを、メーカ選択領域１７２において選択する（ロボット選択受付部３１２）。生成される動作プログラムは、メーカごとに仕様が異なるからである。
【００９４】
ここで、動作リストの中から選択することができるのは、エンドエフェクタ５の移動、撮像トリガの送信等の動作（以下、汎用動作）のみである。選択することができない動作としては、例えばエンドエフェクタ５の詳細な動作（ピッキング、リリース等）、他に接続されている外部機器の動作等（以下、特殊動作）である。動作プログラムの一部として、まず汎用動作に相当する部分のみ編集可能な形式で自動生成する。そして、最終的には、ユーザが特殊動作に相当する部分を編集することにより、動作プログラムを完成することができる。
【００９５】
図１３に戻って、位置情報取得部３１０（移動座標取得部３０１と兼用でも可）を設けておき、マニピュレータ（ロボット）１のエンドエフェクタ５の現在の位置に関する現在位置情報として現在の位置座標を取得しても良い。エンドエフェクタ５の現在の位置座標を取得することで、画像処理装置３において移動先を指示するのではなく、エンドエフェクタ５を、取得した現在の位置座標へ確実に戻らせるよう（移動させるよう）動作させることが可能となる。
【００９６】
すべての設定が完了した状態で、プログラム出力ボタン１７３をマウス等によりクリック操作することにより、ロボットコントローラ２の動作プログラムが生成される。図１８は、本発明の実施の形態１に係るロボットコントローラ２の動作プログラムの例示図である。
【００９７】
図１８に示すように、ソースコード１８１は、画像処理装置３とのデータ通信を確立する命令である。ソースコード１８２は、撮像装置４を退避させる命令である。ソースコード１８３は、画像処理装置３に対する座標値取得命令である。
【００９８】
ソースコード１８４は、画像処理装置３から座標値を受信する命令である。ソースコード１８５は、実際のマニピュレータ１の位置座標に変換する命令である。
【００９９】
ソースコード１８６は、マニピュレータ１のエンドエフェクタ５を移動の最終位置へ移動させる命令である。ソースコード１８７は、コメント欄であり、ユーザ自身がソースコードを記述することで、よりユーザニーズに応じた動作プログラムを生成することができる。ソースコード１８８は、画像処理装置３とのデータ通信を解除する命令である。
【０１００】
図１３に戻って、移動命令送信部３１３は、第一の座標値又は第２の座標値へエンドエフェクタ５を移動させる移動命令をロボットコントローラ２へ送信する。なお、図１６に示すように移動先の位置情報の指定を受け付けた場合には、画像上で指定を受け付けた位置にエンドエフェクタ５を移動させる移動命令をロボットコントローラ２へ送信する。
【０１０１】
また、ロボットコントローラ２は、動作を制御するマニピュレータ（ロボット）１の種別に応じて、移動命令を変換する必要がある。図１９は、本発明の実施の形態１に係るロボットコントローラ２の機能ブロック図である。
【０１０２】
図１９に示すように、ロボットコントローラ２は、プログラム変換部２０１を備えている。プログラム変換部２０１は、マニピュレータ（ロボット）１の種別ごとに提供されており、移動命令をマニピュレータ１の種別に応じたエンドエフェクタ５への移動命令に変換する。これにより、使用するマニピュレータ１の種別に応じた変換プログラムをロボットコントローラ２にインストールすることができ、マニピュレータ１の種別に応じたエンドエフェクタ５の移動命令に変換することができる。
【０１０３】
図２０は、本発明の実施の形態１に係るロボットコントローラ２の変換プログラムの処理手順を示すフローチャートである。図２０に示すように、ロボットコントローラ２は、画像処理装置３とデータ通信を確立し（ステップＳ２００１）、移動命令を受信したか否かを判断する（ステップＳ２００２）。
【０１０４】
ロボットコントローラ２が、受信していないと判断した場合（ステップＳ２００２：ＮＯ）、ロボットコントローラ２は、受信待ち状態となる。ロボットコントローラ２が、受信したと判断した場合（ステップＳ２００２：ＹＥＳ）、ロボットコントローラ２は、最初の移動命令を解釈する（ステップＳ２００３）。
【０１０５】
ロボットコントローラ２は、解釈した移動命令の内容に沿って移動命令を切り替えて、マニピュレータ１のエンドエフェクタ５を移動させる（ステップＳ２００４）。ロボットコントローラ２は、すべての移動命令を解釈したか否かを判断する（ステップＳ２００５）。
【０１０６】
ロボットコントローラ２が、まだ解釈していない移動命令があると判断した場合（ステップＳ２００５：ＮＯ）、ロボットコントローラ２は、次の移動命令を解釈して（ステップＳ２００６）、処理をステップＳ２００４へ戻して上述した処理を繰り返す。ロボットコントローラ２が、すべての移動命令を解釈したと判断した場合（ステップＳ２００５：ＹＥＳ）、ロボットコントローラ２は、処理を終了する。
【０１０７】
図２１は、本発明の実施の形態１に係る画像処理システムのシステム構築手順を示すフローチャートである。図２１に示すように、画像処理装置３は、図４に示すキャリブレーションを実行し（ステップＳ２１０１）、位置座標の変換式を求める。
【０１０８】
画像処理装置３は、ワーク６を検出する検出ツールの選択を受け付ける（ステップＳ２１０２）。具体的には、図６に示す検出ツール設定画面の検出ツール設定領域６１において検出ツールを選択する。
【０１０９】
画像処理装置３は、動作プログラムを作成する（ステップＳ２１０３）。画像処理装置３は、試運転で動作を確認したサンプルプログラムの詳細を編集して（ステップＳ２１０４）、運用段階へ移行させる（ステップＳ２１０５）。
【０１１０】
図２２は、本発明の実施の形態１に係る画像処理装置３の動作プログラム作成の処理手順を示すフローチャートである。図２２に示すように、画像処理装置３は、移動先の位置データを一又は複数記憶する（ステップＳ２２０１）。
【０１１１】
画像処理装置３は、動作の実行順序である動作シーケンスを記憶し（ステップＳ２２０２）、マニピュレータ（ロボット）１のメーカの選択を受け付ける（ステップＳ２２０３）。動作シーケンスは、例えば図１７に示すプログラム生成画面のシーケンス選択領域１７１において、実行したい処理（動作）の順番にプルダウンメニューの中から選択する。また、メーカの選択は、例えば図１７に示すプログラム生成画面のメーカ選択領域１７２において選択する。
【０１１２】
画像処理装置３は、試運転を行って（ステップＳ２２０４）、その時点のサンプルプログラムを出力する（ステップＳ２２０５）。つまり、従来はプログラムが完成していないと動作確認をすることができなかったのに対して、基本動作が正しいか否かを試運転で確認しながら詳細を詰めることができる点に本願の特徴がある。
【０１１３】
ユーザは、マニピュレータ（ロボット）１の動作が、所望の動作であるか否かを判断して（ステップＳ２２０６）、ユーザが所望の動作ではないと判断した場合（ステップＳ２２０６：ＮＯ）、画像処理装置３は、サンプルプログラムの編集を受け付けて（ステップＳ２２０７）、処理をステップＳ２２０４へ戻して、上述した処理を繰り返す。ユーザが所望の動作であると判断した場合（ステップＳ２２０６：ＹＥＳ）、画像処理装置３は、サンプルプログラムの送信依頼を受け付けて、サンプルプログラムのソースコードをテキストデータとして出力する（ステップＳ２２０８）。
【０１１４】
マニピュレータ（ロボット）１の試運転時の動作は特に限定されるものではない。図２３は、本発明の実施の形態１に係る画像処理システムにおける試運転時の動作を説明するための模式図である。
【０１１５】
本実施の形態１に係る画像処理システムは、まず図２３（ａ）に示すように、ワーク６を撮像できるよう、マニピュレータ１のエンドエフェクタ５をワーク６が載置されている位置とは異なる位置「ＰＯＳ０００」へ移動させる。この状態で、図２３（ｂ）に示すように、撮像トリガに応じてワーク６を撮像し、最後に図２３（ｃ）に示すように、ワーク６を把持するべく、マニピュレータ１のエンドエフェクタ５をワーク６が載置されている位置（検出位置）へと移動させる。
【０１１６】
斯かる動作をマニピュレータ（ロボット）１にさせるべく、ロボットコントローラ２で実行される動作プログラムは、プログラム生成画面から容易に生成することができる。図２４は、本発明の実施の形態１に係る画像処理装置３のプログラム生成画面の例示図である。
【０１１７】
図２４において、シーケンス選択領域２４１では、生成される動作プログラムで実行したい処理（動作）をプルダウンメニューの中から選択する。また、生成される動作プログラムで制御する対象となるマニピュレータ（ロボット）１の製造元であるメーカを、メーカ選択領域２４２において選択する。生成される動作プログラムは、メーカごとに仕様が異なるからである。
【０１１８】
図２４の例では、事前に登録されている位置座標（図２４では識別子として「ＰＯＳ０００」）へ移動し、撮像開始のタイミングを示す撮像トリガを発行して、ワーク６を把持する位置まで移動する動作を制御するプログラムを生成するよう指定している。全ての指定が完了した時点で、プログラム出力ボタン２４３をマウス等によりクリック操作することで、ロボットコントローラ２の動作プログラムが生成される。
【０１１９】
図２５は、本発明の実施の形態１に係る画像処理システムの試運転時の処理手順を示すフローチャートである。図２５に示すように、画像処理装置３は、所定位置（図２４の例では「ＰＯＳ０００」）への移動命令をロボットコントローラ２へ送信する（ステップＳ２５０１）。
【０１２０】
ロボットコントローラ２は、画像処理装置３からの移動命令を受信し（ステップＳ２５０２）、移動命令をマニピュレータ１の種別に応じて解釈する（ステップＳ２５０３）。すなわち、マニピュレータ１を稼働させることが可能な機械語のロードモジュールに翻訳する。
【０１２１】
ロボットコントローラ２は、エンドエフェクタ５を移動命令で指定されている位置（図２４の例では「ＰＯＳ０００」）へと移動させ（ステップＳ２５０４）、撮像命令を画像処理装置３へ送信する（ステップＳ２５０５）。
【０１２２】
画像処理装置３は、撮像命令を受信し（ステップＳ２５０６）、エンドエフェクタ５の動作領域を撮像する（ステップＳ２５０７）。画像処理装置３は、エンドエフェクタ５の動作領域の画像を表示し、表示されている画像上のワーク６の位置座標（ｘ、ｙ）を検出し（ステップＳ２５０８）、キャリブレーションにより求めてある変換式を用いて位置座標（ｘ’、ｙ’）へ変換する（ステップＳ２５０９）。
【０１２３】
画像処理装置３は、位置座標（ｘ’、ｙ’）への移動命令をロボットコントローラ２へ送信する（ステップＳ２５１０）。ロボットコントローラ２は、移動命令を受信して（ステップＳ２５１１）、変換された位置座標（ｘ’、ｙ’）へエンドエフェクタ５を移動する（ステップＳ２５１２）
【０１２４】
なお、試運転の実行に備えて、２つの実行モードを準備しておくことが好ましい。例えば１つは「ティーチングモード」、もう１つは「自動運転モード」である。
【０１２５】
「ティーチングモード」では、ユーザが動作を確認しながらサンプルプログラムを更新するためのモードである。したがって、ユーザは、マニピュレータ１の近傍で作業をしている可能性が高いので、安全を確保するために低速動作に限定し、何らかのスイッチを意識的に押下げ続けている状態でないと動作しないよう設定されている。
【０１２６】
また、「自動運転モード」では、「ティーチングモード」のような動作制限は存在しない。その代わり、ユーザの安全を確保するために、例えば所定の範囲内に人が存在することを人感センサが検知した場合には動作しない等の対策を施す必要はある。なお、キャリブレーションの実行時には、ユーザが近傍に存在する可能性が高いので、「ティーチングモード」の時だけ動作できる、といったロボットコントローラ２における制限機能を付与することが好ましい。
【０１２７】
以上のように本実施の形態１によれば、画像処理装置３からロボットコントローラ２に対してマニピュレータ（ロボット）１の動作を制御する動作プログラムを画像処理装置３内で生成することができるので、マニピュレータ１の種別ごとに異なる機械語を理解していない作業者（ユーザ）であっても、マニピュレータ１の動作を高い精度で制御することができる動作プログラムを生成することが可能となる。したがって、すべての動作プログラムが完成する都度、動作を確認する煩雑な手順が不要となるので、システムとして早期に立ち上げることが可能となる。
【０１２８】
（実施の形態２）
本発明の実施の形態２に係る画像処理システムの構成、画像処理装置３の構成は、実施の形態１と同様であることから、同一の機能を有する構成要素については同一の符号を付することにより詳細な説明は省略する。本実施の形態２は、設定条件を切り替えて動作を切り替えることが可能な動作プログラムを生成する点で、実施の形態１とは相違する。
【０１２９】
実施の形態２では、ワーク６のピッキングの実行を例に挙げて説明する。図２６は、本発明の実施の形態２に係る画像処理システムにおけるピッキングの実行を説明するための模式図である。図２６に示すように、本実施の形態２に係る画像処理システムは、ワーク６をピックアップ位置２６１からプレース位置２６２へと移動させる。具体的には、撮像装置４でピックアップ位置２６１のワーク６を撮像しながら、ワーク６をマニピュレータ１のエンドエフェクタ５で把持し、プレース位置２６２まで移動してからワーク６を解放する。
【０１３０】
図２７は、本発明の実施の形態２に係る画像処理システムのピッキングの処理手順を示すフローチャートである。図２７に示すように、ロボットコントローラ２は、マニピュレータ１のエンドエフェクタ５により撮像対象であるワーク６を撮像装置４で撮像することができない事態を回避するために、マニピュレータ１のエンドエフェクタ５を撮像領域内から移動する（ステップＳ２７０１）。
【０１３１】
ロボットコントローラ２は、撮像命令を画像処理装置３へ送信する（ステップＳ２７０２）。画像処理装置３は、撮像命令を受信して（ステップＳ２７０３）、ワーク６を撮像する（ステップＳ２７０４）。画像処理装置３は、ワーク６の画像を表示し、表示されている画像上のワーク６の位置座標（ｘ、ｙ）を検出して（ステップＳ２７０５）、キャリブレーションにより求めてある変換式を用いて位置座標（ｘ’、ｙ’）へ変換する（ステップＳ２７０６）。画像処理装置３は、変換された位置座標（ｘ’、ｙ’）をロボットコントローラ２へ送信する（ステップＳ２７０７）。
【０１３２】
ロボットコントローラ２は、位置座標（ｘ’、ｙ’）を受信し（ステップＳ２７０８）、ワーク６を把持するピックアップ位置２６１へエンドエフェクタ５を移動させる（ステップＳ２７０９）。ロボットコントローラ２は、エンドエフェクタ５にワーク６を把持させる（ステップＳ２７１０）。
【０１３３】
ロボットコントローラ２は、ワーク６を把持しながらエンドエフェクタ５をプレース位置２６２へ移動させ（ステップＳ２７１１）、ワーク６を解放させる（ステップＳ２７１２）。なお、破線で囲まれている範囲の処理、すなわちステップＳ２７１０、ステップＳ２７１２以外の処理は、マニピュレータ１の動作を制御する動作プログラムを自動生成することができる。
【０１３４】
ワーク６のエンドエフェクタ５で把持した位置がずれているため、撮像位置を補正する必要がある場合も生じうる。図２８は、本発明の実施の形態２に係る画像処理システムにおける撮像位置を補正する場合のピッキングの実行を説明するための模式図である。
【０１３５】
図２８に示すように、本実施の形態２に係る画像処理システムは、ワーク６をピックアップ位置２６１からプレース位置２６２へと移動させる。図２６とは異なり、ワーク６をマニピュレータ１のエンドエフェクタ５で把持し、プレース位置２６２まで移動する間の状態を撮像装置４で撮像する。つまり、マニピュレータ１のエンドエフェクタ５で把持された時点でワーク６の存在位置が機械的にずれるので、そのずれを補正する。
【０１３６】
図２９は、本発明の実施の形態２に係る画像処理システムの撮像位置を補正する場合のピッキングの処理手順を示すフローチャートである。図２９に示すように、ロボットコントローラ２は、マニピュレータ１のエンドエフェクタ５をピックアップ位置２６１へ移動する（ステップＳ２９０１）。
【０１３７】
ロボットコントローラ２は、ワーク６を把持し（ステップＳ２９０２）、撮像装置４によりマニピュレータ１のエンドエフェクタ５で把持されたワーク６を撮像する位置へと移動する（ステップＳ２９０３）。ロボットコントローラ２は、撮像命令を画像処理装置３へ送信する（ステップＳ２９０４）
【０１３８】
画像処理装置３は、撮像命令を受信して（ステップＳ２９０５）、ワーク６を撮像する（ステップＳ２９０６）。画像処理装置３は、ワーク６の画像を表示し、表示されている画像上のワーク６の位置座標（ｘ、ｙ）を検出して（ステップＳ２９０７）、キャリブレーションにより求めてある変換式を用いて位置座標（ｘ’、ｙ’）へ変換する（ステップＳ２９０８）。画像処理装置３は、変換された位置座標（ｘ’、ｙ’）をロボットコントローラ２へ送信する（ステップＳ２９０９）。
【０１３９】
ロボットコントローラ２は、位置座標（ｘ’、ｙ’）を受信し（ステップＳ２９１０）、移動命令で指定した位置座標へエンドエフェクタ５を移動させる（ステップＳ２９１１）。ロボットコントローラ２は、位置座標（ｘ’、ｙ’）が移動命令で指定した位置座標と一定範囲内に収束しているか否かを判断する（ステップＳ２９１２）。
【０１４０】
ロボットコントローラ２が、位置座標（ｘ’、ｙ’）が移動命令で指定した位置座標と一定範囲内に収束していないと判断した場合（ステップＳ２９１２：ＮＯ）、ロボットコントローラ２は、処理をステップＳ２９０４へ戻して、上述した処理を繰り返す。ロボットコントローラ２が、位置座標（ｘ’、ｙ’）が移動命令で指定した位置座標と一定範囲内に収束したと判断した場合（ステップＳ２９１２：ＹＥＳ）、ロボットコントローラ２は、ワーク６を把持しながらエンドエフェクタ５をプレース位置２６２へ移動させ（ステップＳ２９１３）、ワーク６を解放させる（ステップＳ２９１４）。なお、破線で囲まれている範囲の処理、すなわちステップＳ２９０２、ステップＳ２９１２、ステップＳ２９１４以外の処理は、マニピュレータ１の動作を制御する動作プログラムを自動生成することができる。
【０１４１】
ピッキングの実行についても、条件が変更された場合には、生成される動作プログラムが変動する。例えば撮像位置が相違する、画像から検出する位置が相違する、マニピュレータ１のメーカが相違する等、条件の相違に対応して動作プログラムを切り替えることが好ましい。
【０１４２】
図３０は、本発明の実施の形態２に係る画像処理システムの異なる動作条件の設定例を示す条件設定画面の例示図である。まず図３０（ａ）に示すように、「条件０」として、条件設定領域３００１において撮像位置を「ＰＯＳ０」、画像から検出する位置を「Ａ」と設定しており、メーカ設定領域３００２において、マニピュレータ１のメーカを「メーカＡ」と設定している。一方、図３０（ｂ）に示すように、「条件１」として、条件設定領域３００１において撮像位置を「ＰＯＳ１」、画像から検出する位置を「Ｂ」と設定しており、メーカ設定領域３００２において、マニピュレータ１のメーカを「メーカＡ」と設定している。ここでは、同じメーカのマニピュレータ１に異なる動作をさせている。
【０１４３】
図３１は、本発明の実施の形態２に係る画像処理システムの異なる動作条件に切り替え可能な動作プログラムの例示図である。図３１に示すように、ソースコード３１００は、画像処理装置３とのデータ通信を確立する命令である。ソースコード３１０１は、Ｖａｌ０の値に応じて動作条件の切り替えを実行する命令である。
【０１４４】
具体的には、Ｖａｌ０の値が‘０’である場合、条件０に基づくソースコード３１０２を実行し、Ｖａｌ０の値が‘１’である場合、条件１に基づくソースコード３１０３を実行することになる。なお、ソースコード３１００は、自動的に生成しても良いし、ユーザが書き加えても良い。
【０１４５】
図３２は、本発明の実施の形態２に係る画像処理システムにおける動作条件の切り替えが必要となるピッキングの実行を説明するための模式図である。図３２に示すように、本実施の形態２に係る画像処理システムは、ワーク６Ａ又はワーク６Ｂをピックアップ位置２６１からプレース位置２６２へと移動させる。
【０１４６】
具体的には、撮像装置４でピックアップ位置２６１のワーク６Ａ又はワーク６Ｂを撮像しながら、ワーク６Ａ又はワーク６Ｂをマニピュレータ１のエンドエフェクタ５で把持し、プレース位置２６２まで移動してからワーク６Ａ又はワーク６Ｂを解放する。同時に２つのワークを保持することはできないので、まずはワーク６Ａを把持して移動する動作プログラムを、次にワーク６Ｂを把持して移動する動作プログラムを、それぞれ実行する。
【０１４７】
図３３Ａ及び図３３Ｂは、本発明の実施の形態２に係る画像処理システムの動作条件の切り替えを含むピックアップの処理手順を示すフローチャートである。図３３Ａ及び図３３Ｂに示すように、ロボットコントローラ２は、動作条件の切り替えについて、画像処理装置３で設定を受け付けた条件がどの条件であるかを判断する（ステップＳ３３０１）。ロボットコントローラ２が、条件‘０’へ切り替えの設定を受け付けていると判断した場合（ステップＳ３３０１：‘０’）、ロボットコントローラ２は、条件‘０’への切替命令を画像処理装置３へ送信する（ステップＳ３３０２）。
【０１４８】
切替命令としては、本実施の形態２に示すように、個別に切替命令を送信しても良いし、後述する撮像命令（撮像トリガ）に含ませても良い。つまり、撮像装置４で対象物６の撮像を開始するタイミングを示す撮像トリガで条件を切り替えても良い。撮像トリガごとに、少なくとも動作の種類及び動作順序を含む動作条件の設定を受け付けているので、撮像トリガに応じて動作条件を切り替えることができ、動作に応じた適切なタイミングで対象物６を撮像して、表示されている画像上の対象物６の位置座標を検出することが可能となる。
【０１４９】
画像処理装置３は、切替命令を受信して（ステップＳ３３０３）、応答信号をロボットコントローラ２へ送信する（ステップＳ３３０４）。ロボットコントローラ２は、応答信号を受信して（ステップＳ３３０５）、位置ＰＯＳ０へマニピュレータ１のエンドエフェクタ５を移動させる（ステップＳ３３０６）。
【０１５０】
ロボットコントローラ２は、撮像命令を画像処理装置３へ送信する（ステップＳ３３０７）。画像処理装置３は、撮像命令を受信して（ステップＳ３３０８）、ワーク６を撮像する（ステップＳ３３０９）。画像処理装置３は、ワーク６の画像を表示し、表示されている画像上のワーク６の位置座標（ｘ、ｙ）を検出して（ステップＳ３３１０）、キャリブレーションにより求めてある変換式を用いて位置座標（ｘ’、ｙ’）へ変換する（ステップＳ３３１１）。画像処理装置３は、変換された位置座標（ｘ’、ｙ’）をロボットコントローラ２へ送信する（ステップＳ３３１２）。
【０１５１】
ロボットコントローラ２は、位置座標（ｘ’、ｙ’）を受信し（ステップＳ３３１３）、位置座標（ｘ’、ｙ’）で示されているワーク６を把持するピックアップ位置２６１へ、マニピュレータ１のエンドエフェクタ５を移動させる（ステップＳ３３１４）。ロボットコントローラ２は、エンドエフェクタ５にワーク６を把持させ（ステップＳ３３１５）、ワーク６を把持しながらエンドエフェクタ５をプレース位置２６２へ移動させて（ステップＳ３３１６）、ワーク６を解放させる（ステップＳ３３１７）。
【０１５２】
ロボットコントローラ２が、条件‘１’へ切り替えの設定を受け付けていると判断した場合（ステップＳ３３０１：‘１’）、ロボットコントローラ２は、条件‘１’への切替命令を画像処理装置３へ送信する（ステップＳ３３２０）。
【０１５３】
画像処理装置３は、切替命令を受信して（ステップＳ３３２１）、応答信号をロボットコントローラ２へ送信する（ステップＳ３３２２）。ロボットコントローラ２は、応答信号を受信して（ステップＳ３３２３）、位置ＰＯＳ１へマニピュレータ１のエンドエフェクタ５を移動させる（ステップＳ３３２４）。
【０１５４】
ロボットコントローラ２は、撮像命令を画像処理装置３へ送信する（ステップＳ３３２５）。画像処理装置３は、撮像命令を受信して（ステップＳ３３２６）、ワーク６を撮像する（ステップＳ３３２７）。画像処理装置３は、ワーク６の画像を表示し、表示されている画像上のワーク６の位置座標（ｘ、ｙ）を検出して（ステップＳ３３２８）、キャリブレーションにより求めてある変換式を用いて位置座標（ｘ’、ｙ’）へ変換する（ステップＳ３３２９）。画像処理装置３は、変換された位置座標（ｘ’、ｙ’）をロボットコントローラ２へ送信する（ステップＳ３３３０）。
【０１５５】
ロボットコントローラ２は、位置座標（ｘ’、ｙ’）を受信し（ステップＳ３３３１）、位置座標（ｘ’、ｙ’）で示されているワーク６を把持するピックアップ位置２６１へ、マニピュレータ１のエンドエフェクタ５を移動させる（ステップＳ３３３２）。ロボットコントローラ２は、エンドエフェクタ５にワーク６を把持させ（ステップＳ３３３３）、ワーク６を把持しながらエンドエフェクタ５をプレース位置２６２へ移動させて（ステップＳ３３３４）、ワーク６を解放させる（ステップＳ３３３５）。なお、破線で囲まれている範囲の処理、すなわちステップＳ３３１５、ステップＳ３３１７、ステップＳ３３３３、ステップＳ３３３５以外の処理は、マニピュレータ１の動作を制御する動作プログラムを自動生成することができる。
【０１５６】
以上のように本実施の形態２によれば、画像処理装置３からロボットコントローラ２に対してマニピュレータ１のエンドエフェクタ５の動作を制御する移動命令、動作命令を送信することができるので、マニピュレータ（ロボット）１の種別ごとに異なる機械語を理解する必要がなく、マニピュレータ１を試運転することにより正しく動作するか否かを確認することが可能となる。したがって、すべての動作プログラムが完成する都度、動作を確認する煩雑な手順が不要となるので、システムとして早期に立ち上げることが可能となる。
【０１５７】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えばロボットコントローラ２の代わりにモーションコントローラを用いることで、適用範囲を拡大することができる。
【０１５８】
また、従来、ロボットコントローラ２で移動目標位置を取得する場合、画像処理装置３からは相対的な位置座標を受信していた。例えば、画像処理装置３では、移動することにより生ずる差分である、差分距離Ｘ（Ｘ方向の差分）、差分距離Ｙ（Ｙ方向の差分）及び差分角度（ＸＹ平面上での回転角度）θを画像から検出し、ロボットコントローラ２は、受信した差分距離Ｘ、差分距離Ｙ及び差分角度θを基準位置に加算することにより、移動目標位置を特定していた。
【０１５９】
しかし、本実施の形態では、基準位置を含む座標系を画像処理装置３に記憶しておくことができる。したがって、ロボットコントローラ２に対して、差分距離Ｘ、差分距離Ｙ及び差分角度θという相対的な位置座標ではなく、画像処理装置３内で算出した移動目標位置の座標値そのものを送信することができる。
【０１６０】
これにより、マニピュレータ１のエンドエフェクタ５を移動させる場合に、ロボットコントローラ２側で基準座標を記憶しておく必要がない。したがって、画像処理装置３のみで移動目標位置の座標値を出力することができ、ワーク６を交換するときに、改めて新たなワーク６について基準座標を設定する必要もなく、操作が煩雑にならない。
【符号の説明】
【０１６１】
１  マニピュレータ（ロボット）
２  ロボットコントローラ
３  画像処理装置
４  撮像装置
５  エンドエフェクタ
６  対象物（ワーク）
３１  制御部
３２  メモリ
３３  記憶装置
３６  通信インタフェース
【図１】
0006410388.tif 000003
【図２】
0006410388.tif 000004
【図３】
0006410388.tif 000005
【図４】
0006410388.tif 000006
【図５】
0006410388.tif 000007
【図６】
0006410388.tif 000008
【図７】
0006410388.tif 000009
【図８】
0006410388.tif 000010
【図９】
0006410388.tif 000011
【図１０】
0006410388.tif 000012
【図１１】
0006410388.tif 000013
【図１２】
0006410388.tif 000014
【図１３】
0006410388.tif 000015
【図１４】
0006410388.tif 000016
【図１５】
0006410388.tif 000017
【図１６】
0006410388.tif 000018
【図１７】
0006410388.tif 000019
【図１８】
0006410388.tif 000020
【図１９】
0006410388.tif 000021
【図２０】
0006410388.tif 000022
【図２１】
0006410388.tif 000023
【図２２】
0006410388.tif 000024
【図２３】
0006410388.tif 000025
【図２４】
0006410388.tif 000026
【図２５】
0006410388.tif 000027
【図２６】
0006410388.tif 000028
【図２７】
0006410388.tif 000029
【図２８】
0006410388.tif 000030
【図２９】
0006410388.tif 000031
【図３０】
0006410388.tif 000032
【図３１】
0006410388.tif 000033
【図３２】
0006410388.tif 000034
【図３３Ａ】
0006410388.tif 000035
【図３３Ｂ】
0006410388.tif 000036