(57)【要約】【課題】工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、容易かつ正確に実施できる安価なオフラインプログラミング装置を提供する。【解決手段】オフラインプログラミング装置１０は、対象物Ｗ、Ｔをハンド１６で把持するときの対象物とハンドとの相対位置関係データＤ１を指定するハンド位置指定部２０と、工作機械１４に与えられるワーク加工プログラムに含まれる、対象物の位置を特定する指令Ｃに基づき、ロボット１８がハンドリング作業（供給、取出、位置変更等）を実行するときの、工作機械に搭載される対象物の位置及び姿勢データＤ２を求める第１演算部２２と、相対位置関係データＤ１と位置及び姿勢データＤ２とに基づき、ハンドリング作業実行時のロボットの位置及び姿勢データＤ３を求める第２演算部２４と、位置及び姿勢データＤ３を用いて作業プログラムＰを生成する作業プログラム生成部２６とを備える。【選択図】図１
2008152733.tif 000002
【特許請求の範囲】
【請求項１】
ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムを作成するための、オフラインプログラミング装置において、
前記対象物を前記ハンドで把持するときの、該対象物と該ハンドとの相対位置関係を指定するハンド位置指定部と、
前記工作機械に与えられるワーク加工プログラムに含まれる、前記対象物の位置を特定する指令に基づき、前記ロボットが前記ハンドリング作業を実行するときの、該工作機械に搭載される該対象物の位置及び姿勢を求める第１演算部と、
前記ハンド位置指定部で指定した前記対象物と前記ハンドとの前記相対位置関係と、前記第１演算部で求めた前記対象物の前記位置及び姿勢とに基づき、前記ロボットが前記ハンドリング作業を実行するときの、前記ハンドで該対象物を把持する該ロボットの位置及び姿勢を求める第２演算部と、
前記第２演算部で求めた前記ロボットの前記位置及び姿勢を用いて、前記作業プログラムを生成する作業プログラム生成部と、
を具備することを特徴とするオフラインプログラミング装置。
【請求項２】
前記第１演算部は、前記ワーク加工プログラムの開始時の前記対象物の位置を特定する前記指令に基づき、前記ハンドリング作業により前記工作機械に供給されるときの該対象物の前記位置及び姿勢を求め、それに基づいて、前記第２演算部は、該ハンドリング作業により該対象物を該工作機械に供給するときの前記ロボットの前記位置及び姿勢を求める、請求項１に記載のオフラインプログラミング装置。
【請求項３】
前記第１演算部は、前記ワーク加工プログラムの終了時の前記対象物の位置を特定する前記指令に基づき、前記ハンドリング作業により前記工作機械から取り出されるときの該対象物の前記位置及び姿勢を求め、それに基づいて、前記第２演算部は、該ハンドリング作業により該対象物を該工作機械から取り出すときの前記ロボットの前記位置及び姿勢を求める、請求項１又は２に記載のオフラインプログラミング装置。
【請求項４】
前記ハンド位置指定部は、前記対象物及び前記ハンドをそれぞれにモデル化した対象物モデル及びハンドモデルを用いて、該対象物と該ハンドとの前記相対位置関係を指定する、請求項１〜３のいずれか１項に記載のオフラインプログラミング装置。
【請求項５】
前記工作機械が、ワークを支持して移動するテーブルを備え、前記第１演算部は、該テーブルの位置を特定する前記指令と、該工作機械に設定される該テーブルの送り軸方向とに基づき、前記ロボットが前記ハンドリング作業を実行するときの、該テーブルに搭載されるワークの位置及び姿勢を求め、前記第２演算部は、該テーブルに搭載される該ワークを前記ハンドで把持する該ロボットの前記位置及び姿勢を求める、請求項１〜４のいずれか１項に記載のオフラインプログラミング装置。
【請求項６】
前記工作機械が、工具を支持して移動する刃物台を備え、前記第１演算部は、該刃物台の位置を特定する前記指令と、該工作機械に設定される該刃物台の送り軸方向とに基づき、前記ロボットが前記ハンドリング作業を実行するときの、該刃物台に搭載される工具の位置及び姿勢を求め、前記第２演算部は、該刃物台に搭載される該工具を前記ハンドで把持する該ロボットの前記位置及び姿勢を求める、請求項１〜４のいずれか１項に記載のオフラインプログラミング装置。
【請求項７】
前記作業プログラム生成部で生成した前記作業プログラムを、前記工作機械及び前記ロボットを含む生産システムに適用する際に、該工作機械と該ロボットとの相対位置関係の誤差に対応して該作業プログラムを修正する作業プログラム修正部をさらに具備する、請求項１〜６のいずれか１項に記載のオフラインプログラミング装置。
【請求項８】
前記ワーク加工プログラムがＮＣプログラムであり、前記第１演算部は、該ＮＣプログラムから前記指令を取得する、請求項１〜７のいずれか１項に記載のオフラインプログラミング装置。
【請求項９】
ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムを作成するための、オフラインプログラミング方法において、
前記対象物を前記ハンドで把持するときの、該対象物と該ハンドとの相対位置関係を指定するハンド位置指定ステップと、
前記工作機械に与えられるワーク加工プログラムに含まれる、前記対象物の位置を特定する指令に基づき、前記ロボットが前記ハンドリング作業を実行するときの、該工作機械に搭載される該対象物の位置及び姿勢を求める第１演算ステップと、
前記ハンド位置指定ステップで指定した前記対象物と前記ハンドとの前記相対位置関係と、前記第１演算ステップで求めた前記対象物の前記位置及び姿勢とに基づき、前記ロボットが前記ハンドリング作業を実行するときの、前記ハンドで該対象物を把持する該ロボットの位置及び姿勢を求める第２演算ステップと、
前記第２演算ステップで求めた前記ロボットの前記位置及び姿勢を用いて、前記作業プログラムを生成する作業プログラム生成ステップと、
を具備することを特徴とするオフラインプログラミング方法。
【請求項１０】
前記作業プログラム生成ステップで生成した前記作業プログラムを、前記工作機械及び前記ロボットを含む生産システムに適用する際に、該工作機械と該ロボットとの相対位置関係の誤差に対応して該作業プログラムを修正する作業プログラム修正ステップをさらに具備する、請求項９に記載のオフラインプログラミング方法。
【請求項１１】
前記作業プログラム修正ステップは、
前記工作機械及び前記ロボットをそれぞれにモデル化した工作機械モデル及びロボットモデルを用意するステップと、
前記工作機械モデルに、前記ワーク加工プログラムを実行可能な機械座標系モデルを設定するステップと、
前記生産システムに、前記ロボットに対し既知の位置関係の下に配置される位置検出器を用意するステップと、
前記工作機械モデル上での前記機械座標系モデルの原点の位置に対応する前記工作機械上の基準位置に、前記位置検出器が検出可能な目標物を設けるステップと、
前記位置検出器により前記目標物の前記基準位置を検出するステップと、
前記基準位置から前記目標物を、前記機械座標系モデルの座標軸に対応する前記工作機械の送り軸に沿って所定の参照位置へ移動して、前記位置検出器により該目標物の該参照位置を検出するステップと、
前記位置検出器が検出した前記目標物の前記基準位置と前記参照位置とに基づき、前記ワーク加工プログラムを実行するための前記工作機械の機械座標系を求めるステップと、
前記ロボットモデルに対する前記機械座標系モデルの位置関係と、前記ロボットに対する前記機械座標系の位置関係との差に従って、前記作業プログラムを修正するステップとを具備する、
請求項１０に記載のオフラインプログラミング方法。
【請求項１２】
前記ワーク加工プログラムがＮＣプログラムであり、前記第１演算ステップは、該ＮＣプログラムから前記指令を取得するステップを含む、請求項９〜１１のいずれか１項に記載のオフラインプログラミング方法。
【請求項１３】
ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムを作成するための、オフラインプログラミング方法において、
前記工作機械及び前記ロボットを含む生産システムに前記作業プログラムを適用する際に、該工作機械と該ロボットとの相対位置関係の誤差に対応して該作業プログラムを修正する作業プログラム修正ステップを具備し、
前記作業プログラム修正ステップは、
前記工作機械及び前記ロボットをそれぞれにモデル化した工作機械モデル及びロボットモデルを用意するステップと、
前記工作機械モデルに、ワーク加工プログラムを実行可能な機械座標系モデルを設定するステップと、
前記生産システムに、前記ロボットに対し既知の位置関係の下に配置される位置検出器を用意するステップと、
前記工作機械モデル上での前記機械座標系モデルの原点の位置に対応する前記工作機械上の基準位置に、前記位置検出器が検出可能な目標物を設けるステップと、
前記位置検出器により前記目標物の前記基準位置を検出するステップと、
前記基準位置から前記目標物を、前記機械座標系モデルの座標軸に対応する前記工作機械の送り軸に沿って所定の参照位置へ移動して、前記位置検出器により該目標物の該参照位置を検出するステップと、
前記位置検出器が検出した前記目標物の前記基準位置と前記参照位置とに基づき、前記ワーク加工プログラムを実行するための前記工作機械の機械座標系を求めるステップと、
前記ロボットモデルに対する前記機械座標系モデルの位置関係と、前記ロボットに対する前記機械座標系の位置関係との差に従って、前記作業プログラムを修正するステップとを具備すること、
を特徴とするオフラインプログラミング方法。
【請求項１４】
ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムをオフラインで作成するために、コンピュータを、
前記対象物を前記ハンドで把持するときの、該対象物と該ハンドとの相対位置関係を指定するハンド位置指定部、
前記工作機械に与えられるワーク加工プログラムに含まれる、前記対象物の位置を特定する指令に基づき、前記ロボットが前記ハンドリング作業を実行するときの、該工作機械に搭載される該対象物の位置及び姿勢を求める第１演算部、
前記ハンド位置指定部で指定した前記対象物と前記ハンドとの前記相対位置関係と、前記第１演算部で求めた前記対象物の前記位置及び姿勢とに基づき、前記ロボットが前記ハンドリング作業を実行するときの、前記ハンドで該対象物を把持する該ロボットの位置及び姿勢を求める第２演算部、及び
前記第２演算部で求めた前記ロボットの前記位置及び姿勢を用いて、前記作業プログラムを生成する作業プログラム生成部、
として機能させるためのオフラインプログラミング用プログラム。
【請求項１５】
ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムをオフラインで作成するために、コンピュータを、
前記対象物を前記ハンドで把持するときの、該対象物と該ハンドとの相対位置関係を指定するハンド位置指定部、
前記工作機械に与えられるワーク加工プログラムに含まれる、前記対象物の位置を特定する指令に基づき、前記ロボットが前記ハンドリング作業を実行するときの、該工作機械に搭載される該対象物の位置及び姿勢を求める第１演算部、
前記ハンド位置指定部で指定した前記対象物と前記ハンドとの前記相対位置関係と、前記第１演算部で求めた前記対象物の前記位置及び姿勢とに基づき、前記ロボットが前記ハンドリング作業を実行するときの、前記ハンドで該対象物を把持する該ロボットの位置及び姿勢を求める第２演算部、及び
前記第２演算部で求めた前記ロボットの前記位置及び姿勢を用いて、前記作業プログラムを生成する作業プログラム生成部、
として機能させるためのオフラインプログラミング用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのプログラミング技術に関し、特に、工作機械に対するワークや工具のハンドリング作業をロボットに実行させる作業プログラムをオフラインで作成するための、オフラインプログラミング装置及びオフラインプログラミング方法に関する。本発明はまた、工作機械に対するワークや工具のハンドリング作業をロボットに実行させる作業プログラムをオフラインで作成するための、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ロボット（特に産業用ロボット）を用いた生産システムにおいて、工作機械に対し、ワークや工具等の加工関連対象物を、テーブルや刃物台等の所定の搭載部に供給したり、それら所定の搭載部から取り出したり、また搭載部上での位置や姿勢を変更したりするハンドリング作業を、ロボットに実行させる構成は知られている。このシステム構成では、実際のロボット及び工作機械を用いないオフラインプログラミング法により、ハンドリング作業をロボットに教示することができる。一般にオフラインプログラミング法では、コンピュータにロボット及びその作業環境のモデルを持たせ、表示画面上でロボットモデルに所望のロボット動作を模擬的に遂行させることで、実際のロボットに教示すべき位置／姿勢情報及び動作順序情報を得ている。このとき、ロボット動作のシミュレーションにより、教示情報の妥当性を確認できるので、最適な作業プログラムを作成することができる。
【０００３】
しかし、工作機械に搭載されるワークや工具等の加工関連対象物の、搭載部に対するハンドリング作業実行時の位置及び姿勢は、当該工作機械で遂行されるワーク加工プログラムの内容によって変化する場合がある。例えば、工作機械のテーブルに対するワーク供給時及びワーク取出時の、テーブル上でのワークの位置は、当該ワークに対する加工プログラムにおいて、プログラム開始及びプログラム終了に際してのワーク位置としてそれぞれ指令されている。また、そのようなワークハンドリング時のワークの姿勢は、工作機械に設定されている固有のワーク座標系（通常はテーブルや刃物台の送り軸を座標軸とする座標系）の姿勢（すなわち座標軸の方向）として決定される。このように、ワークハンドリング時のワークの位置及び姿勢は、ワーク加工プログラムに記述されるワーク位置指令値と工作機械の固有の機械構成とによって決まり、故に、未加工ワークや加工済ワークの形状や寸法の変更に応じた加工プログラムの変更に従って、多様に変化する傾向がある。このような状況は、工作機械の刃物台に対する工具のハンドリング作業においても、同様に生じ得る。
【０００４】
上記した実状に対処するべく、従来、工作機械及びロボットを含む生産システムにおいて、オフラインプログラミング法で作成したハンドリング作業プログラムに従ってロボットを動作させる場合には、一般に、工作機械に与えられるワーク加工プログラムが変更される都度、オペレータが手作業でハンドリング作業プログラムを修正（すなわち再教示）している。作業プログラムの修正に際しては、ワークや工具等の加工関連対象物を、変更後のワーク加工プログラムに従い、工作機械の所定の搭載部上で実際のハンドリング時の位置及び姿勢に置き、当該加工関連対象物に対しオペレータがロボットを手動操作して、ロボットと加工関連対象物との実際の相対位置関係を測定する。このようにして相対位置の実測値を得た後は、ハンドリング作業プログラムにおける位置／姿勢情報が、実測値に基づいて自動修正される。なお、ロボットと加工関連対象物との相対位置関係の測定手法としては、加工関連対象物にロボットのエンドエフェクタ領域を近接させて相対位置をロボットの複数の異なる姿勢で測定する手法（例えば特許文献１参照）や、ロボットに仮装着した視覚センサによって複数の異なる位置で加工関連対象物を三次元計測する手法（例えば特許文献２参照）が採用されている。
【０００５】
また、工作機械におけるワークの変更（すなわちワーク加工プログラムの変更）に伴いロボットの動作を修正する他の手法として、例えば特許文献３に開示されるように、工作機械のコントローラ及びロボットのコントローラの双方を統合的に制御する上位コンピュータを生産システムに配備し、ワーク変更時には、上位コンピュータからロボットコントローラに新規ワークに対応した動作制御データを送ることで、ロボットに新規ワークのハンドリング作業を実行させる手法が知られている。この手法によれば、ロボットに与える作業プログラムの手作業による修正（すなわち再教示）が不要になる。
【０００６】
【特許文献１】特許第２６５４２０６号公報
【特許文献２】特開２００５−１３８２２３号公報
【特許文献３】特開平５−３２４０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
工作機械に対するワークや工具のハンドリング作業をロボットが実行する生産システムにおいて、ワーク加工プログラムの変更に対応して、オペレータが手作業でハンドリング作業プログラムを修正する従来の手法では、プログラム修正に必要な実データを得るための測定作業に起因して、生産システムの稼働率が低下する懸念がある。また、修正後の作業プログラムに従うロボットの動作精度を安定して確保するためには、上記測定作業に関するオペレータの熟練度が要求されるので、人的コストが上昇することが危惧される。特に、前述した特許文献２に記載されるような、視覚センサによる三次元計測を用いる手法では、視覚センサ及び画像処理装置の装備により、設備コストが上昇することも危惧される。
【０００８】
他方、前述した特許文献３に記載されるような、生産システムに上位コンピュータを配備する構成では、設備コストが上昇することに加えて、新規ワークに対応した動作制御データに関し、シミュレーションによるロボット動作の最適化が行われないので、生産システムの効率、安全性及び信頼性を向上させることが困難である。
【０００９】
本発明の目的は、工作機械に対するワークや工具のハンドリング作業をロボットに実行させる作業プログラムを作成するためのオフラインプログラミング装置であって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、オペレータの熟練度に依存することなく容易かつ正確に実施でき、しかも、設備コストの上昇を抑制できるとともに、生産システムの効率、安全性及び信頼性の向上を実現できるオフラインプログラミング装置を提供することにある。
【００１０】
本発明の他の目的は、工作機械に対するワークや工具のハンドリング作業をロボットに実行させる作業プログラムを作成するためのオフラインプログラミング方法であって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、オペレータの熟練度に依存することなく容易かつ正確に実施でき、しかも、設備コストの上昇を抑制できるとともに、生産システムの効率、安全性及び信頼性の向上を実現できるオフラインプログラミング方法を提供することにある。
【００１１】
本発明のさらに他の目的は、工作機械に対するワークや工具のハンドリング作業をロボットに実行させる作業プログラムをオフラインで作成するためのプログラム及び記録媒体であって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、オペレータの熟練度に依存することなく容易かつ正確に実施でき、しかも、設備コストの上昇を抑制できるとともに、生産システムの効率、安全性及び信頼性の向上を実現できるように、コンピュータを機能させることができるプログラム、及び同プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、請求項１に記載の発明は、ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムを作成するための、オフラインプログラミング装置において、対象物をハンドで把持するときの、対象物とハンドとの相対位置関係を指定するハンド位置指定部と、工作機械に与えられるワーク加工プログラムに含まれる、対象物の位置を特定する指令に基づき、ロボットがハンドリング作業を実行するときの、工作機械に搭載される対象物の位置及び姿勢を求める第１演算部と、ハンド位置指定部で指定した対象物とハンドとの相対位置関係と、第１演算部で求めた対象物の位置及び姿勢とに基づき、ロボットがハンドリング作業を実行するときの、ハンドで対象物を把持するロボットの位置及び姿勢を求める第２演算部と、第２演算部で求めたロボットの位置及び姿勢を用いて、作業プログラムを生成する作業プログラム生成部と、を具備することを特徴とするオフラインプログラミング装置を提供する。
【００１３】
請求項２に記載の発明は、請求項１に記載のオフラインプログラミング装置において、第１演算部は、ワーク加工プログラムの開始時の対象物の位置を特定する指令に基づき、ハンドリング作業により工作機械に供給されるときの対象物の位置及び姿勢を求め、それに基づいて、第２演算部は、ハンドリング作業により対象物を工作機械に供給するときのロボットの位置及び姿勢を求める、オフラインプログラミング装置を提供する。
【００１４】
請求項３に記載の発明は、請求項１又は２に記載のオフラインプログラミング装置において、第１演算部は、ワーク加工プログラムの終了時の対象物の位置を特定する指令に基づき、ハンドリング作業により工作機械から取り出されるときの対象物の位置及び姿勢を求め、それに基づいて、第２演算部は、ハンドリング作業により対象物を工作機械から取り出すときのロボットの位置及び姿勢を求める、オフラインプログラミング装置を提供する。
【００１５】
請求項４に記載の発明は、請求項１〜３のいずれか１項に記載のオフラインプログラミング装置において、ハンド位置指定部は、対象物及びハンドをそれぞれにモデル化した対象物モデル及びハンドモデルを用いて、対象物とハンドとの相対位置関係を指定する、オフラインプログラミング装置を提供する。
【００１６】
請求項５に記載の発明は、請求項１〜４のいずれか１項に記載のオフラインプログラミング装置において、工作機械が、ワークを支持して移動するテーブルを備え、第１演算部は、テーブルの位置を特定する指令と、工作機械に設定されるテーブルの送り軸方向とに基づき、ロボットがハンドリング作業を実行するときの、テーブルに搭載されるワークの位置及び姿勢を求め、第２演算部は、テーブルに搭載されるワークをハンドで把持するロボットの位置及び姿勢を求める、オフラインプログラミング装置を提供する。
【００１７】
請求項６に記載の発明は、請求項１〜４のいずれか１項に記載のオフラインプログラミング装置において、工作機械が、工具を支持して移動する刃物台を備え、第１演算部は、刃物台の位置を特定する指令と、工作機械に設定される刃物台の送り軸方向とに基づき、ロボットがハンドリング作業を実行するときの、刃物台に搭載される工具の位置及び姿勢を求め、第２演算部は、刃物台に搭載される工具をハンドで把持するロボットの位置及び姿勢を求める、オフラインプログラミング装置を提供する。
【００１８】
請求項７に記載の発明は、請求項１〜６のいずれか１項に記載のオフラインプログラミング装置において、作業プログラム生成部で生成した作業プログラムを、工作機械及びロボットを含む生産システムに適用する際に、工作機械とロボットとの相対位置関係の誤差に対応して作業プログラムを修正する作業プログラム修正部をさらに具備する、オフラインプログラミング装置を提供する。
【００１９】
請求項８に記載の発明は、請求項１〜７のいずれか１項に記載のオフラインプログラミング装置において、ワーク加工プログラムがＮＣプログラムであり、第１演算部は、ＮＣプログラムから指令を取得する、オフラインプログラミング装置を提供する。
【００２０】
請求項９に記載の発明は、ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムを作成するための、オフラインプログラミング方法において、対象物をハンドで把持するときの、対象物とハンドとの相対位置関係を指定するハンド位置指定ステップと、工作機械に与えられるワーク加工プログラムに含まれる、対象物の位置を特定する指令に基づき、ロボットがハンドリング作業を実行するときの、工作機械に搭載される対象物の位置及び姿勢を求める第１演算ステップと、ハンド位置指定ステップで指定した対象物とハンドとの相対位置関係と、第１演算ステップで求めた対象物の位置及び姿勢とに基づき、ロボットがハンドリング作業を実行するときの、ハンドで対象物を把持するロボットの位置及び姿勢を求める第２演算ステップと、第２演算ステップで求めたロボットの位置及び姿勢を用いて、作業プログラムを生成する作業プログラム生成ステップと、を具備することを特徴とするオフラインプログラミング方法を提供する。
【００２１】
請求項１０に記載の発明は、請求項９に記載のオフラインプログラミング方法において、作業プログラム生成ステップで生成した作業プログラムを、工作機械及びロボットを含む生産システムに適用する際に、工作機械とロボットとの相対位置関係の誤差に対応して作業プログラムを修正する作業プログラム修正ステップをさらに具備する、オフラインプログラミング方法を提供する。
【００２２】
請求項１１に記載の発明は、請求項１０に記載のオフラインプログラミング方法において、作業プログラム修正ステップは、工作機械及びロボットをそれぞれにモデル化した工作機械モデル及びロボットモデルを用意するステップと、工作機械モデルに、ワーク加工プログラムを実行可能な機械座標系モデルを設定するステップと、生産システムに、ロボットに対し既知の位置関係の下に配置される位置検出器を用意するステップと、工作機械モデル上での機械座標系モデルの原点の位置に対応する工作機械上の基準位置に、位置検出器が検出可能な目標物を設けるステップと、位置検出器により目標物の基準位置を検出するステップと、基準位置から目標物を、機械座標系モデルの座標軸に対応する工作機械の送り軸に沿って所定の参照位置へ移動して、位置検出器により目標物の参照位置を検出するステップと、位置検出器が検出した目標物の基準位置と参照位置とに基づき、ワーク加工プログラムを実行するための工作機械の機械座標系を求めるステップと、ロボットモデルに対する機械座標系モデルの位置関係と、ロボットに対する機械座標系の位置関係との差に従って、作業プログラムを修正するステップとを具備する、オフラインプログラミング方法を提供する。
【００２３】
請求項１２に記載の発明は、請求項９〜１１のいずれか１項に記載のオフラインプログラミング方法において、ワーク加工プログラムがＮＣプログラムであり、第１演算ステップは、ＮＣプログラムから指令を取得するステップを含む、オフラインプログラミング方法を提供する。
【００２４】
請求項１３に記載の発明は、ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムを作成するための、オフラインプログラミング方法において、工作機械及びロボットを含む生産システムに作業プログラムを適用する際に、工作機械とロボットとの相対位置関係の誤差に対応して作業プログラムを修正する作業プログラム修正ステップを具備し、作業プログラム修正ステップは、工作機械及びロボットをそれぞれにモデル化した工作機械モデル及びロボットモデルを用意するステップと、工作機械モデルに、ワーク加工プログラムを実行可能な機械座標系モデルを設定するステップと、生産システムに、ロボットに対し既知の位置関係の下に配置される位置検出器を用意するステップと、工作機械モデル上での機械座標系モデルの原点の位置に対応する工作機械上の基準位置に、位置検出器が検出可能な目標物を設けるステップと、位置検出器により目標物の基準位置を検出するステップと、基準位置から目標物を、機械座標系モデルの座標軸に対応する工作機械の送り軸に沿って所定の参照位置へ移動して、位置検出器により目標物の参照位置を検出するステップと、位置検出器が検出した目標物の基準位置と参照位置とに基づき、ワーク加工プログラムを実行するための工作機械の機械座標系を求めるステップと、ロボットモデルに対する機械座標系モデルの位置関係と、ロボットに対する機械座標系の位置関係との差に従って、作業プログラムを修正するステップとを具備すること、を特徴とするオフラインプログラミング方法を提供する。
【００２５】
請求項１４に記載の発明は、ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムをオフラインで作成するために、コンピュータを、対象物をハンドで把持するときの、対象物とハンドとの相対位置関係を指定するハンド位置指定部、工作機械に与えられるワーク加工プログラムに含まれる、対象物の位置を特定する指令に基づき、ロボットがハンドリング作業を実行するときの、工作機械に搭載される対象物の位置及び姿勢を求める第１演算部、ハンド位置指定部で指定した対象物とハンドとの相対位置関係と、第１演算部で求めた対象物の位置及び姿勢とに基づき、ロボットがハンドリング作業を実行するときの、ハンドで対象物を把持するロボットの位置及び姿勢を求める第２演算部、及び第２演算部で求めたロボットの位置及び姿勢を用いて、作業プログラムを生成する作業プログラム生成部、として機能させるためのオフラインプログラミング用プログラムを提供する。
【００２６】
請求項１５に記載の発明は、ワーク及び工具の少なくとも一方を含む対象物の、工作機械に対するハンドリング作業を、ハンドを装着したロボットに実行させる作業プログラムをオフラインで作成するために、コンピュータを、対象物をハンドで把持するときの、対象物とハンドとの相対位置関係を指定するハンド位置指定部、工作機械に与えられるワーク加工プログラムに含まれる、対象物の位置を特定する指令に基づき、ロボットがハンドリング作業を実行するときの、工作機械に搭載される対象物の位置及び姿勢を求める第１演算部、ハンド位置指定部で指定した対象物とハンドとの相対位置関係と、第１演算部で求めた対象物の位置及び姿勢とに基づき、ロボットがハンドリング作業を実行するときの、ハンドで対象物を把持するロボットの位置及び姿勢を求める第２演算部、及び第２演算部で求めたロボットの前記位置及び姿勢を用いて、作業プログラムを生成する作業プログラム生成部、として機能させるためのオフラインプログラミング用プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【発明の効果】
【００２７】
請求項１に記載の発明によれば、工作機械に与えられるワーク加工プログラムに含まれる、対象物の位置を特定する指令に基づいて、ハンドリング作業実行時の工作機械上での対象物の位置及び姿勢を求め、この対象物の位置及び姿勢に対し、予め設定した相対位置関係の下に、ハンドリング作業実行時のロボットの位置及び姿勢を求めることで、作業プログラムを生成するようにしたから、工作機械に与えられるワーク加工プログラムが変更されたときにも、オペレータの手作業による作業プログラムの修正（すなわち再教示）を行うことなく、変更後のワーク加工プログラムに正確に適合する作業プログラムに従って、ロボットに所要のハンドリング作業を高精度に実行させることができる。また、対象物（ワーク、工具等）の三次元計測を行う必要が無いから、視覚センサや画像処理装置等の、比較的高価な設備が不要になる。しかも、オフラインプログラミング法の利点である動作シミュレーションを実行することにより、最適な作業プログラムを生成することができる。したがって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正が、オペレータの熟練度に依存することなく容易かつ正確に実施され、しかも、設備コストの上昇が抑制されるとともに、生産システムの効率、安全性及び信頼性の向上が実現される。
【００２８】
請求項２に記載の発明によれば、ロボットが対象物を工作機械に供給するための作業プログラムを、正確かつ容易に作成することができる。
【００２９】
請求項３に記載の発明によれば、ロボットが対象物を工作機械から取り出すための作業プログラムを、正確かつ容易に作成することができる。
【００３０】
請求項４に記載の発明によれば、対象物とハンドとの相対位置関係を、正確かつ容易に指定することができる。
【００３１】
請求項５に記載の発明によれば、工作機械のテーブルに搭載されるワークをロボットがハンドリングするための作業プログラムを、正確かつ容易に作成することができる。
【００３２】
請求項６に記載の発明によれば、工作機械の刃物台に搭載される工具をロボットがハンドリングするための作業プログラムを、正確かつ容易に作成することができる。
【００３３】
請求項７に記載の発明によれば、生産システムの現場における工作機械とロボットとの相対位置関係に誤差が含まれる場合にも、そのような誤差を考慮した適正な作業プログラムを、正確かつ容易に作成することができる。
【００３４】
請求項８に記載の発明によれば、ワーク加工プログラムの内容を容易に把握できるので、第１演算部による処理内容を容易に理解できる。
【００３５】
請求項９に記載の発明によれば、請求項１に記載の発明と同等の作用効果を奏するオフラインプログラミング方法であって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、オペレータの熟練度に依存することなく容易かつ正確に実施でき、しかも、設備コストの上昇を抑制できるとともに、生産システムの効率、安全性及び信頼性の向上を実現できるオフラインプログラミング方法が提供される。
【００３６】
請求項１０に記載の発明によれば、請求項７に記載の発明と同等の作用効果が奏される。
【００３７】
請求項１１に記載の発明によれば、生成した作業プログラムを、現場での工作機械とロボットとの相対位置関係の誤差に対応して修正するキャリブレーションに際し、ロボットを動作させることなく、工作機械上で目標物を固有の送り軸に沿って移動させることで、工作機械とロボットとの実際の相対位置関係を測定できるので、オペレータの熟練を必要とせず、また高価な三次元計測用の設備を要することなく、高精度のキャリブレーションを安価に実施できる。
【００３８】
請求項１２に記載の発明によれば、請求項８に記載の発明と同等の作用効果が奏される。
【００３９】
請求項１３に記載の発明によれば、請求項１１に記載の発明と同等の作用効果が奏される。
【００４０】
請求項１４に記載の発明によれば、請求項１に記載の発明と同等の作用効果を奏するプログラムであって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、オペレータの熟練度に依存することなく容易かつ正確に実施でき、しかも、設備コストの上昇を抑制できるとともに、生産システムの効率、安全性及び信頼性の向上を実現できるように、コンピュータを機能させることができるプログラムが提供される。
【００４１】
請求項１５に記載の発明によれば、請求項１に記載の発明と同等の作用効果を奏する記録媒体であって、工作機械に与えられるワーク加工プログラムの変更に対応した作業プログラムの修正を、オペレータの熟練度に依存することなく容易かつ正確に実施でき、しかも、設備コストの上昇を抑制できるとともに、生産システムの効率、安全性及び信頼性の向上を実現できるように、コンピュータを機能させることができるプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【発明を実施するための最良の形態】
【００４２】
以下、添付図面を参照して、本発明の実施の形態を詳細に説明する。全図面に渡り、対応する構成要素には共通の参照符号を付す。
図面を参照すると、図１は、本発明に係るオフラインプログラミング装置１０の基本構成を機能ブロック図で示す。また図２は、オフラインプログラミング装置１０を組み込んだ生産システム１２の一構成例を概略で示す。オフラインプログラミング装置１０は、ワークＷ及び工具Ｔの少なくとも一方を含む加工関連対象物の、工作機械１４に対するハンドリング作業（供給、取出、位置変更等）を、ハンド１６を装着したロボット１８に実行させる作業プログラムＰを、オフラインで作成するものであって、例えばパーソナルコンピュータ等の電算機に所要のソフトウェアをインストールすることにより構成できる。
【００４３】
オフラインプログラミング装置１０は、加工関連対象物（Ｗ、Ｔ）をハンド１６で把持するときの、対象物（Ｗ、Ｔ）とハンド１６との相対位置関係のデータＤ１を指定するハンド位置指定部２０と、工作機械１４に与えられるワーク加工プログラムに含まれる、対象物（Ｗ、Ｔ）の位置を特定する指令Ｃに基づき、ロボット１８がハンドリング作業を実行するときの、工作機械１４に搭載される対象物（Ｗ、Ｔ）の位置及び姿勢のデータＤ２を求める第１演算部２２と、ハンド位置指定部２０で指定した対象物（Ｗ、Ｔ）とハンド１６との相対位置関係データＤ１と、第１演算部２２で求めた対象物（Ｗ、Ｔ）の位置及び姿勢データＤ２とに基づき、ロボット１８がハンドリング作業を実行するときの、ハンド１６で対象物（Ｗ、Ｔ）を把持するロボット１８の位置及び姿勢のデータＤ３を求める第２演算部２４と、第２演算部２４で求めたロボット１８の位置及び姿勢データＤ３を用いて、作業プログラムＰを生成する作業プログラム生成部２６とを備えて構成される。ハンド位置指定部２０、第１演算部２２、第２演算部２４及び作業プログラム生成部２６は、例えばパーソナルコンピュータ等の電算機のＣＰＵ（中央処理装置）によって構成できる。
【００４４】
図２に示すように、生産システム１２は、ワークＷ及び工具Ｔのそれぞれの搭載部であるテーブル２８及び刃物台３０を有する工作機械１４と、例えば多関節型の構成を有し、アーム先端にエンドエフェクタとしてのハンド１６が取り付けられるロボット（機構部）１８と、工作機械１４の動作を制御する機械コントローラ(例えばＮＣ装置)３２と、ロボット１８の動作を制御するロボットコントローラ３４と、ＬＡＮ等の通信ネットワーク３６を介してロボットコントローラ３４に接続されるオフラインプログラミング装置１０とを備える。ロボット１８は、オフラインプログラミング装置１０で作成した作業プログラムＰ（図１）に従い、ロボットコントローラ３４による制御下で動作して、工作機械１４に対し、ワークＷや工具Ｔ等の加工関連対象物を、テーブル２８や刃物台３０等の所定の搭載部に供給したり、それら所定の搭載部から取り出したりするハンドリング作業を実行する。
【００４５】
上記構成を有するオフラインプログラミング装置１０では、まず、ロボット１８がワークＷや工具Ｔ等の加工関連対象物をハンド１６で把持するときの、対象物Ｗ、Ｔとハンド１６との最適な相対位置関係のデータＤ１が、ハンド１６の機構、対象物Ｗ、Ｔの形状等の既知データに基づいて、ハンド位置指定部２０で指定される。この相対位置関係データＤ１は、ハンド１６及び対象物Ｗ、Ｔの構成に対応した最適な位置及び姿勢に関するデータとして略一義的に決まるものであるから、一般にオペレータの熟練を要することなく、正確に指定できる。なお、本願における「相対位置関係」という用語は、特に断りの無い限り、位置及び姿勢の双方の相対的関係を意味するものとする。
【００４６】
また、ロボット１８が加工関連対象物（ワークＷ、工具Ｔ等）を工作機械１４の搭載部（テーブル２８、刃物台３０等）に対しハンドリング（供給、取出、位置変更等）するときの、搭載部上での対象物Ｗ、Ｔの実際の位置を示すデータが、工作機械１４に与えられるワーク加工プログラムに含まれる指令Ｃから取得される。この指令Ｃは、例えば第１演算部２２が通信ネットワーク３６を介して機械コントローラ３２から入手する（図１に破線で示す）か、或いは必要に応じてオペレータがオフラインプログラミング装置１０に入力することで第１演算部２２に与えられる。
【００４７】
他方、上記ハンドリング時の搭載部上での対象物Ｗ、Ｔの実際の姿勢を示すデータは、例えば、工作機械１４に設定されている固有のワーク座標系（例えばテーブル２８や刃物台３０の送り軸を座標軸とする直交座標系）の姿勢（すなわち座標軸の方向）のデータ（すなわち工作機械１４の構造によって決まる既知データ）として、第１演算部２２に与えられる。このワーク座標系の姿勢データは、例えばオフラインプログラミング装置１０に予め記憶されているか、或いは必要に応じてオペレータによりオフラインプログラミング装置１０に入力される。
【００４８】
そして、第１演算部２２は、ワーク加工プログラムに記述される指令Ｃとワーク座標系の姿勢データとを、ロボット１８に予め設定される基準座標系（例えばワールド座標系）におけるデータに変換する。それにより、ロボット１８がハンドリング作業を実行するときに必要となる、搭載部上での対象物Ｗ、Ｔの実際の位置及び姿勢データＤ２が、極めて正確に求められる。さらに、第２演算部２４は、ハンド位置指定部２０で指定した相対位置関係データＤ１で示される対象物Ｗ、Ｔとハンド１６との相対位置関係を、第１演算部２２で求めた位置及び姿勢データＤ２に適用する。それにより、ロボット１８がハンドリング作業を実行するときの、ハンド１６で対象物Ｗ、Ｔを把持する（つまり、既に把持している（供給時等）か、或いはこれから把持する（取出時等））ロボット１８の実際の位置及び姿勢データＤ３が、極めて正確に求められる。
【００４９】
上記した対象物Ｗ、Ｔの位置及び姿勢データＤ２は、ワーク加工プログラムに記述される指令Ｃとワーク座標系の姿勢データとに基づいて求められるものであるから、未加工ワークや加工済ワークの形状や寸法の変更に応じてワーク加工プログラムが変更されたときにも、その変更に正確に呼応して、第１演算部２２により自動的に（つまりオペレータの手作業が介在せずに）適正値に修正される。そして、第２演算部２４は、修正された対象物Ｗ、Ｔの位置及び姿勢データＤ２に基づき、変更後のワーク加工プログラムに記述される対象物Ｗ、Ｔを適正にハンドリングするための、ロボット１８（ハンド１６を含む）の位置及び姿勢データＤ３を求める。作業プログラム生成部２６は、このようにして求めた位置及び姿勢データＤ３を使用するとともに、必要に応じて、ロボット１８及びその作業環境（工作機械１４を含む）のモデルにより所要のロボット動作を模擬的に遂行することで教示情報（位置及び姿勢データＤ３を含む）の妥当性を確認しながら、最適な作業プログラムＰを生成する。
【００５０】
このように、オフラインプログラミング装置１０によれば、工作機械１４及びロボット１８を含む生産システム１２において、工作機械１４に与えられるワーク加工プログラムが変更された場合にも、オペレータの手作業による作業プログラムの修正（すなわち再教示）を行うことなく、変更後のワーク加工プログラムに正確に適合する作業プログラムＰに従って、ロボット１８に所要のハンドリング作業を高精度に実行させることができる。また、加工関連対象物（ワークＷ、工具Ｔ等）の三次元計測を行う必要が無いから、視覚センサや画像処理装置等の、比較的高価な設備が不要になる。しかも、オフラインプログラミング法の利点である動作シミュレーションを実行することにより、最適な作業プログラムＰを生成することができる。したがって、オフラインプログラミング装置１０によれば、工作機械１４に与えられるワーク加工プログラムの変更に対応した作業プログラムＰの修正が、オペレータの熟練度に依存することなく容易かつ正確に実施され、しかも、設備コストの上昇が抑制されるとともに、生産システム１２の効率、安全性及び信頼性の向上が実現される。
【００５１】
上記構成を有するオフラインプログラミング装置１０において、ハンド位置指定部２０は、加工関連対象物（ワークＷ、工具Ｔ等）及びハンド１６をそれぞれにモデル化した対象物モデル及びハンドモデルを用いて、対象物Ｗ、Ｔとハンド１６との相対位置関係のデータＤ１を指定することができる。この場合、図３に例示するように、ＣＡＤ（コンピュータ支援設計）等の設計機能を有する外部装置によって作成した図面データに基づき、オフラインプログラミング装置１０に付設される表示装置（図示せず）の画面に対象物モデルＭ１及びハンドモデルＭ２を表示し（図３（ａ））、対象物モデルＭ１に対する把持動作をハンドモデルＭ２に模擬的に遂行させる（図３（ｂ））ことで、相対位置関係データＤ１を指定するように構成することが有利である。
【００５２】
図示の例では、対象物（ワーク）モデルＭ１の環状部Ｌ１にハンドモデルＭ２の３本の爪Ｌ２を挿入し、それら爪Ｌ２を開くことで、ハンドモデルＭ２が対象物（ワーク）モデルＭ１を適正に把持している（図３（ｂ））。このときの対象物（ワーク）モデルＭ１とハンドモデルＭ２との構造上最適な相対位置関係が、ハンド位置指定部２０により図面データから読み取られて、相対位置関係データＤ１として指定され、記憶される。このような構成によれば、相対位置関係データＤ１を、オペレータの熟練によらず、一層容易かつ正確に指定できる。なお、外部装置を用いる代わりに、オフラインプログラミング装置１０にＣＡＤ（コンピュータ支援設計）等の設計機能を付加して、オフラインプログラミング装置１０自体が図面データを作成する構成としてもよい。
【００５３】
また、オフラインプログラミング装置１０において、第１演算部２２は、ワーク加工プログラムの開始時の加工関連対象物（ワークＷ、工具Ｔ等）の位置を特定する指令Ｃに基づき、ハンドリング作業により外部から工作機械１４に供給されるときの対象物Ｗ、Ｔの位置及び姿勢のデータＤ２を求めることができる。そしてそれに基づいて、第２演算部２４は、ハンドリング作業によりハンド１６で把持した対象物Ｗ、Ｔを工作機械１４に供給するときの、ロボット１８（ハンド１６を含む）の位置及び姿勢のデータＤ３を求めることができる。
【００５４】
同様に、第１演算部２２は、ワーク加工プログラムの終了時の加工関連対象物（ワークＷ、工具Ｔ等）の位置を特定する指令Ｃに基づき、ハンドリング作業により工作機械１４から外部に取り出されるときの、対象物Ｗ、Ｔの位置及び姿勢のデータＤ２を求めることができる。そしてそれに基づいて、第２演算部２４は、ハンドリング作業により対象物Ｗ、Ｔをハンド１６で把持して工作機械１４から取り出すときの、ロボット１８（ハンド１６を含む）の位置及び姿勢のデータＤ３を求めることができる。
【００５５】
工作機械１４が、ワークＷを支持して移動するテーブル２８を備える構成では、第１演算部２２は、テーブル２８の位置を特定する指令Ｃと、工作機械１４に設定されるテーブル２８の送り軸方向（例えば図２に矢印Ｘ１及びＹ１で示す直交２軸方向）とに基づき、ロボット１８がハンドリング作業（供給、取出、位置変更等）を実行するときの、テーブル２８に搭載されるワークＷの位置及び姿勢のデータＤ２を求めることができる。そしてそれに基づいて、第２演算部２４は、テーブル２８に搭載されるワークＷをハンド１６で把持するロボット１８の位置及び姿勢のデータＤ３を求めることができる。
【００５６】
また、工作機械１４が、工具Ｔを支持して移動する刃物台３０を備える構成では、第１演算部２２は、刃物台３０の位置を特定する指令Ｃと、工作機械１４に設定される刃物台３０の送り軸方向（例えば図２に矢印Ｘ２、Ｙ２及びＺ２で示す直交３軸方向）とに基づき、ロボット１８がハンドリング作業（供給、取出、位置変更等）を実行するときの、刃物台３０に搭載される工具Ｔの位置及び姿勢のデータＤ２を求めることができる。そしてそれに基づいて、第２演算部２４は、刃物台３０に搭載される工具Ｔをハンド１６で把持するロボット１８の位置及び姿勢のデータＤ３を求めることができる。
【００５７】
次に、図４を参照して、オフラインプログラミング装置１０によるハンドリング作業プログラム作成手順の具体例を説明する。以下の説明では、工作機械１４に与えられるワーク加工プログラムがＮＣプログラムであり、第１演算部２２は、ＮＣプログラムから指令Ｃを取得するものとする。このような構成によれば、未熟なオペレータであっても、ワーク加工プログラムの内容を容易に把握できるので、オフラインプログラミング装置１０（特に第１演算部２２）による処理内容を容易に理解できる。なお、説明を簡単にするために、工作機械１４の構造及びワーク加工プログラムの内容が、極めて単純化された事例を以下に挙げる。
【００５８】
まず、例として以下のＮＣプログラム（１ブロック）を想定する。
Ｇ９２  Ｘ１５０，Ｙ１００；
Ｇ９０；
Ｘ−１００．０  Ｙ−１００．０；
Ｘ１００．０  Ｙ−１００．０；
Ｘ１００．０  Ｙ１００．０；
Ｘ−１００．０  Ｙ１００．０；
Ｘ−１００．０  Ｙ−１５０．０；
Ｍ３０；
【００５９】
上記プログラムの１行目は、工作機械１４におけるワーク座標系を設定する命令であり、任意の基準点に対するＸＹ座標値でワーク座標系の原点Ｏの位置が指示されている。同２行目は、アブソリュートディメンション指定であって、ディメンションワードの数値が座標値を示すことが指定されている。同３〜７行目は、前述した搭載部（テーブル２８又は刃物台３０）への移動位置指令であって、ワーク座標系原点Ｏに対するＸＹ座標値で５つの移動位置ａ〜ｅが順次指示されている。同８行目は当該ブロックのプログラム終了命令である。
【００６０】
上記ＮＣプログラムに従い、ワークＷが工具Ｔにより、図４に示す正方形輪郭に切削される。ここで図示の例では、工作機械１４は、ワークＷを搭載するテーブル２８（図２）がＸ軸及びＹ軸の直交２軸方向へ移動する一方、工具Ｔを搭載する刃物台３０（図２）は移動しない構造を有するものとする。したがって、上記ＮＣプログラムでは、ワーク座標系における工具Ｔの位置がａ〜ｅで指令されているが、実際には、工具ＴをワークＷに対して位置ａ〜ｅに順次相対移動させるように、テーブル２８（すなわちワークＷ）が移動する。なお、ＮＣプログラムにおける位置指令の記述方法は、工作機械１４の構造に対応して多様に設定できる。
【００６１】
上記構成を有する工作機械１４に対し、上記ＮＣプログラムに従い加工工程が完了したワークＷを、ロボット１８（図２）がハンドリング作業によりテーブル２８から取り出すための作業プログラムＰを作成する場合には、工具Ｔが位置ｅに到達したとき（すなわちワーク加工プログラム終了時）の指令Ｃ（Ｘ−１００．０  Ｙ−１５０．０；）に基づき、第１演算部２２（図１）が、テーブル２８から取り出されるときのワークＷの位置及び姿勢データＤ２を求める。ここでは、工具Ｔが位置ｅに到達したときのワーク座標系原点Ｏ（すなわちワークＷの幾何学的中心点）の位置が、ロボット１８の基準座標系におけるワークＷの位置に変換される。また、工作機械１４に設定されるテーブル２８の送り軸方向（すなわちワーク座標系のＸ軸及びＹ軸の方向）が、ロボット１８の基準座標系におけるワークＷの姿勢として扱われる。
【００６２】
第２演算部２４（図１）は、このようにして求めたワークＷの位置及び姿勢データＤ２と、前述したＣＡＤを用いて設定したワークＷとハンド１６との最適な相対位置関係（図３（ｂ））のデータＤ１とに基づいて、ワークＷをハンド１６で把持してテーブル２８から取り出すときの、ロボット１８（ハンド１６を含む）の位置及び姿勢のデータＤ３を求める。作業プログラム生成部２６は、このようにして求めた位置及び姿勢データＤ３をロボット１８の基準座標系における教示点とし、さらに、当該教示点に対するハンド１６の所定の接近点及び逃げ点を追加するとともに、ハンド１６の開閉等に要する入出力指令を追加して、作業プログラムＰを生成する。
【００６３】
上記した具体例において、ロボット１８（図２）がハンドリング作業により未加工のワークＷをテーブル２８に供給するための作業プログラムＰを作成する場合には、ワーク加工プログラム開始時のワークＷの位置を特定する指令Ｃが必要になる。上記ＮＣプログラムでは、工具Ｔが位置ｅに置かれているワーク加工プログラム終了時の状態で、次のワークＷに対する加工プログラムが開始されることを想定しているので、位置ｅの指令Ｃ（Ｘ−１００．０  Ｙ−１５０．０；）をプログラム開始時の指令として扱って、第１演算部２２（図１）が、テーブル２８に供給されるときのワークＷの位置及び姿勢データＤ２を求める。以下、上記手順と同様にして、作業プログラムＰが作成される。
【００６４】
他方、上記した工作機械１４に代えて、工具Ｔを搭載する刃物台３０（図２）がＸ軸、Ｙ軸及びＺ軸の直交３軸方向へ移動する一方、ワークＷを搭載するテーブル２８（図２）は移動しない構造を有する工作機械１４に対し、ロボット１８が工具Ｔをハンドリングするための作業プログラムＰの作成手順は、以下に説明するように、上記した手順と同様のものとなる。この場合、工作機械１４においては、上記ＮＣプログラムの指令に従い、工具ＴをワークＷに対して位置ａ〜ｅ（ワーク座標系）に順次移動させるように、刃物台３０（すなわち工具Ｔ）が移動する。
【００６５】
この工作機械１４に対し、上記ＮＣプログラムに従い加工工程が完了した工具Ｔを、ロボット１８（図２）がハンドリング作業により刃物台３０から取り出すための作業プログラムＰを作成する場合には、工具Ｔが位置ｅに到達したとき（すなわちワーク加工プログラム終了時）の指令Ｃ（Ｘ−１００．０  Ｙ−１５０．０；）に基づき、第１演算部２２（図１）が、刃物台３０から取り出されるときの工具Ｔの位置及び姿勢データＤ２を求める。ここでは、工具Ｔの位置ｅが、ロボット１８の基準座標系における工具Ｔの位置に変換される。また、工作機械１４に設定される刃物台３０の送り軸方向（すなわちワーク座標系のＸ軸、Ｙ軸及びＺ軸の方向）が、ロボット１８の基準座標系における工具Ｔの姿勢として扱われる。
【００６６】
第２演算部２４（図１）は、このようにして求めた工具Ｔの位置及び姿勢データＤ２と、前述したＣＡＤを用いて設定した工具Ｔとハンド１６との最適な相対位置関係（図示せず）のデータＤ１とに基づいて、工具Ｔをハンド１６で把持して刃物台３０から取り出すときの、ロボット１８（ハンド１６を含む）の位置及び姿勢のデータＤ３を求める。作業プログラム生成部２６は、このようにして求めた位置及び姿勢データＤ３をロボット１８の基準座標系における教示点とし、さらに、当該教示点に対するハンド１６の所定の接近点及び逃げ点を追加するとともに、ハンド１６の開閉等に要する入出力指令を追加して、作業プログラムＰを生成する。
【００６７】
上記構成例において、ロボット１８（図２）がハンドリング作業により新たな工具Ｔを刃物台３０に供給するための作業プログラムＰを作成する場合には、ワーク加工プログラム開始時の工具Ｔの位置を特定する指令Ｃが必要になる。上記ＮＣプログラムでは、工具Ｔが位置ｅに置かれているワーク加工プログラム終了時の状態で、刃物台３０に対する工具Ｔの脱着が行われるとともに次のワークＷに対する加工プログラムが開始されることを想定しているので、位置ｅの指令Ｃ（Ｘ−１００．０  Ｙ−１５０．０；）をプログラム開始時の指令として扱って、第１演算部２２（図１）が、刃物台３０に供給されるときの工具Ｔの位置及び姿勢データＤ２を求める。以下、上記手順と同様にして、作業プログラムＰが作成される。
【００６８】
なお、工作機械１４が、テーブル２８と刃物台３０との双方を適当に動作させてワークＷを加工できる機械構成を有する場合には、上記具体例を適当に組み合わせることで、オフラインプログラミング装置１０により、ロボット１８がテーブル２８及び刃物台３０に対しワークＷ及び工具Ｔを所要時期にハンドリングする作業プログラムＰを作成できることが理解されよう。
【００６９】
このように、本発明は、ワークＷ及び工具Ｔの少なくとも一方を含む加工関連対象物の、工作機械１４に対するハンドリング作業を、ハンド１６を装着したロボット１８に実行させる作業プログラムＰを作成するための、オフラインプログラミング方法として規定することもできる。すなわち、本発明に係るオフラインプログラミング方法は、加工関連対象物（Ｗ、Ｔ）をハンド１６で把持するときの、対象物（Ｗ、Ｔ）とハンド１６との相対位置関係を指定するハンド位置指定ステップと、工作機械１４に与えられるワーク加工プログラムに含まれる、対象物（Ｗ、Ｔ）の位置を特定する指令Ｃに基づき、ロボット１８がハンドリング作業を実行するときの、工作機械１４に搭載される対象物（Ｗ、Ｔ）の位置及び姿勢を求める第１演算ステップと、ハンド位置ステップで指定した対象物（Ｗ、Ｔ）とハンド１６との相対位置関係と、第１演算ステップで求めた対象物（Ｗ、Ｔ）の位置及び姿勢とに基づき、ロボット１８がハンドリング作業を実行するときの、ハンド１６で対象物（Ｗ、Ｔ）を把持するロボット１８の位置及び姿勢を求める第２演算ステップと、第２演算ステップで求めたロボット１８の位置及び姿勢を用いて、作業プログラムＰを生成する作業プログラム生成ステップとを備えて構成される。
【００７０】
上記構成を有するオフラインプログラミング装置１０及びオフラインプログラミング方法は、生産システム１２における工作機械１４とロボット１８との相対位置関係が不変である場合（つまり工作機械１４に設定されたワーク座標系とロボット１８に設定された基準座標系とが一定の関係を有する場合）に、作業プログラム生成部２６で生成した作業プログラムＰをそのままロボット１８に与えて、適正なハンドリング作業を遂行させることができる。しかし、生産システム１２における工作機械１４とロボット１８との実際の相対位置関係が、ある一定の相対位置関係（以下、基準相対位置関係と称する）からの誤差を含む場合には、基準相対位置関係を前提に作成した作業プログラムＰを、実際の相対位置関係の誤差に対応して適当に修正することが要求される。
【００７１】
一般に、オフラインプログラミング法で作成したロボット作業プログラムを現場に適用する際には、コンピュータに設定したロボットの作業環境モデルと実際のロボットの作業環境との間での、機構寸法上の誤差や設定座標の誤差を補正するための、キャリブレーションと称する予備的処理を作業プログラムに施している。例えば上記したように、生産システム１２における工作機械１４とロボット１８との実際の相対位置関係が基準相対位置関係からの誤差を含む場合、従来のキャリブレーションの手法では、既述の特許文献１及び２に記載されるような方法により、工作機械１４とロボット１８との実際の相対位置関係を測定することになる。このようなキャリブレーション手法では、結局のところ、上記測定作業に関するオペレータの熟練度が要求されたり、或いは高価な装備により設備コストが上昇したりする問題が生じる。
【００７２】
図５は、キャリブレーションにおける上記問題を解決可能な、本発明の一実施形態による作業プログラム修正機能付きのオフラインプログラミング装置４０の構成を、機能ブロック図で示す。オフラインプログラミング装置４０は、作業プログラム修正機能を付加した点以外は、図１のオフラインプログラミング装置１０の基本構成を有するものであるから、対応する構成要素には共通の符号を付してその説明を省略する。
【００７３】
すなわち、オフラインプログラミング装置４０は、前述した基本構成に加えて、作業プログラム生成部２６で生成した作業プログラムＰを生産システム１２に適用する際に、工作機械１４とロボット１８との相対位置関係の誤差に対応して作業プログラムＰを修正する作業プログラム修正部４２をさらに備える。作業プログラム修正部４２は、例えばパーソナルコンピュータ等の電算機のＣＰＵ（中央処理装置）によって構成できる。以下、図６及び図７を参照して、作業プログラム修正部４２による作業プログラム修正手順を説明する。
【００７４】
まず、オフラインプログラミング装置４０において、作業プログラムＰを適用する生産システム１２における工作機械１４及びロボット１８を、それぞれにモデル化した工作機械モデル４４及びロボットモデル４６を用意する。これら工作機械モデル４４及びロボットモデル４６は、予め設定したロボットモデル４６の基準座標系において、オフラインプログラミング装置４０に付設される表示装置４８の画面に、実際の生産システム１２での工作機械１４とロボット１８との相対位置関係に近似する所定の基準相対位置関係で表示される（図６（ａ））。
【００７５】
なお、図示の例では、工作機械１４は、ワークＷを支持して移動するテーブル２８を備えて構成されるものとし、工作機械モデル４４として、テーブル２８に対応するテーブル部分のみが表示されている。そして、このようなモデル構成に対し、オフラインプログラミング装置４０は、ロボット１８がテーブル２８に対してワークＷのハンドリング作業（供給、取出、位置変更等）を実行するための、作業プログラムＰを作成するものとする。
【００７６】
次に、用意した工作機械モデル４４に、実際のワーク加工プログラムを実行可能な機械座標系モデル５０を設定する。機械座標系モデル５０は、ロボットモデル４６から見た（つまりロボットモデル４６の基準座標系における）原点及び座標軸を含む座標系である。
【００７７】
他方、生産システム１２には、ロボット１８に対し既知の位置関係の下に配置される位置検出器（例えばＣＣＤカメラ）５２を用意する（図６（ｂ））。図示の例では、ロボット１８のハンド１６（図２）に隣接して、位置検出器５２が設置される。或いは、ロボット１８に対する位置関係が既知であることを前提に、ロボット１８から離れた位置に固定的に位置検出器５２を設置することもできる。いずれの場合も、オフラインプログラミング装置４０の作業プログラム修正部４２（図５）は、位置検出器５２から検出データを入手する。
【００７８】
次に、工作機械モデル４４上での機械座標系モデル５０の原点の位置に対応する実際の工作機械１４（特にテーブル２８）上の基準位置Ｓに、位置検出器５２が検出可能な目標物５４を設ける（図６（ｂ））。目標物５４は、平面的な目印でも立体的な物体でも良い。そして、位置検出器５２により、目標物５４の基準位置Ｓの座標（つまりロボット１８の基準座標系における位置）を検出する。検出した基準位置Ｓは、オフラインプログラミング装置４０の作業プログラム修正部４２に送られる。
【００７９】
次に、工作機械１４上で、目標物５４（すなわちテーブル２８）を、基準位置Ｓから、機械座標系モデル５０の座標軸に対応する工作機械１４の実際の送り軸（図ではテーブル２８のＸ軸）に沿って、予め定めた第１の参照位置Ｒ１へ移動する（図７（ａ））。その状態で、位置検出器５２により、目標物５４の参照位置Ｒ１の座標（つまりロボット１８の基準座標系における位置）を検出する。検出した参照位置Ｒ１は、オフラインプログラミング装置４０の作業プログラム修正部４２に送られる。
【００８０】
続いて、工作機械１４上で、目標物５４（すなわちテーブル２８）を、第１の参照位置Ｒ１から、機械座標系モデル５０の他の座標軸に対応する工作機械１４の実際の送り軸（図ではテーブル２８のＹ軸）に沿って、予め定めた第２の参照位置Ｒ２へ移動する（図７（ｂ））。その状態で、位置検出器５２により、目標物５４の参照位置Ｒ２の座標（つまりロボット１８の基準座標系における位置）を検出する。検出した参照位置Ｒ２は、オフラインプログラミング装置４０の作業プログラム修正部４２に送られる。
【００８１】
次に、作業プログラム修正部４２は、位置検出器５２が検出した目標物５４の基準位置Ｓと第１及び第２の参照位置Ｒ１、Ｒ２とに基づき、ワーク加工プログラムを実行するための工作機械１４の機械座標系５６（すなわちロボット１８の基準座標系における原点及び座標軸を含む座標系）を求める。すなわち、機械座標系５６は、基準位置Ｓを原点とし、基準位置Ｓと第１及び第２の参照位置Ｒ１、Ｒ２とを結ぶ軸をそれぞれＸ軸及びＹ軸とするものである。なお、テーブル２８が１つの送り軸（例えばＸ軸）のみを有する場合には、１つの参照位置（例えばＲ１）のみを検出することで、機械座標系を求めることができる。
【００８２】
続いて、次式（ｉ）に従い、機械座標系モデル５０と実際の機械座標系５６との間の差ＴＳを求める。
ＴＳ＝ＴＴ−１・ＴＲ・・・（ｉ）
ここで、ＴＴは、機械座標系モデル５０の位置及び姿勢を表す行列であり、ＴＲは、機械座標系５６の位置及び姿勢を表す行列である。
【００８３】
式（ｉ）で求めた差ＴＳは、ロボットモデル４６に対する機械座標系モデル５０の位置関係と、ロボット１８に対する機械座標系５６の位置関係との差と見做すことができる。そこで、作業プログラム修正部４２は、差ＴＳを用いて、次式（ｉｉ）に従い、作業プログラムＰを修正する。
ＴＰ′(ｎ)＝ＴＰ(ｎ)・ＴＳ・・・（ｉｉ）
ここで、ＴＰ(ｎ)は、作業プログラム生成部２６が生成した作業プログラムＰにおける教示点（ｎ個）の位置及び姿勢を表す行列であり、ＴＰ′(ｎ)は、作業プログラム修正部４２が修正した作業プログラムＰ′（図５）における教示点（ｎ個）の位置及び姿勢を表す行列である。
【００８４】
上記構成を有するオフラインプログラミング装置４０及びオフラインプログラミング方法によれば、作業プログラム生成部２６で生成した作業プログラムＰを、生産システム１２の現場における工作機械１４とロボット１８との実際の相対位置関係の誤差に対応して修正するキャリブレーションに際し、ロボット１８を動作させることなく、工作機械１４が有する可動部（図示実施形態ではテーブル２８）を固有の送り軸に沿って移動させることで、工作機械１４とロボット１８との実際の相対位置関係を測定することができる。工作機械１４の可動部を固有の送り軸に沿って目標位置へ移動させることは、オペレータの熟練によらず、単純な指示で高精度の位置決めの下に遂行可能であるから、人的コストを削減できる。また、位置検出器５２を使用しているが、高価な三次元計測用の設備を要しないので、設備コストの上昇も抑制できる。
【００８５】
なお、上記した作業プログラム修正ステップを含むオフラインプログラミング方法は、図１を参照して説明した作業プログラム生成ステップを含むオフラインプログラミング方法に限らず、汎用的に利用することもできる。すなわち、本発明は、ワークＷ及び工具Ｔの少なくとも一方を含む対象物の、工作機械１４に対するハンドリング作業を、ハンド１６を装着したロボット１８に実行させる作業プログラムを作成するための、オフラインプログラミング方法において、工作機械１４及びロボット１８を含む生産システム１２に作業プログラムＰを適用する際に、工作機械１４とロボット１８との相対位置関係の誤差に対応して作業プログラムＰを修正する作業プログラム修正ステップを具備するオフラインプログラミング方法を提供する。作業プログラム修正ステップは、工作機械１４及びロボット１８をそれぞれにモデル化した工作機械モデル４４及びロボットモデル４６を用意するステップと、工作機械モデル４４に、ワーク加工プログラムを実行可能な機械座標系モデル５０を設定するステップと、生産システム１２に、ロボット１８に対し既知の位置関係の下に配置される位置検出器５２を用意するステップと、工作機械モデル４４上での機械座標系モデル５０の原点の位置に対応する工作機械１４上の基準位置Ｓに、位置検出器５２が検出可能な目標物５４を設けるステップと、位置検出器５２により目標物５４の基準位置Ｓを検出するステップと、基準位置Ｓから目標物５４を、機械座標系モデル５０の座標軸に対応する工作機械１４の送り軸に沿って所定の参照位置Ｒ１、Ｒ２へ移動して、位置検出器５２により目標物５４の参照位置Ｒ１、Ｒ２を検出するステップと、位置検出器５２が検出した目標物５４の基準位置Ｓと参照位置Ｒ１、Ｒ２とに基づき、ワーク加工プログラムを実行するための工作機械１４の機械座標系５６を求めるステップと、ロボットモデル４６に対する機械座標系モデル５０の位置関係と、ロボット１８に対する機械座標系５６の位置関係との差に従って、作業プログラムＰを修正するステップとを含む。
【００８６】
以上、本発明の基本構成及び好適な実施形態を説明したが、オフラインプログラミング装置１０、４０をパーソナルコンピュータで構成できることから、上記説明に則して、本発明を下記のように規定することもできる。
すなわち、本発明は、ワークＷ及び工具Ｔの少なくとも一方を含む加工関連対象物の、工作機械１４に対するハンドリング作業を、ハンド１６を装着したロボット１８に実行させる作業プログラムＰをオフラインで作成するために、コンピュータを、加工関連対象物（Ｗ、Ｔ）をハンド１６で把持するときの、対象物（Ｗ、Ｔ）とハンド１６との相対位置関係Ｄ１を指定するハンド位置指定部２０、工作機械１４に与えられるワーク加工プログラムに含まれる、対象物（Ｗ、Ｔ）の位置を特定する指令Ｃに基づき、ロボット１８がハンドリング作業を実行するときの、工作機械１４に搭載される対象物（Ｗ、Ｔ）の位置及び姿勢Ｄ２を求める第１演算部２２、ハンド位置指定部２０で指定した対象物（Ｗ、Ｔ）とハンド１６との相対位置関係Ｄ１と、第１演算部２２で求めた対象物（Ｗ、Ｔ）の位置及び姿勢Ｄ２とに基づき、ロボット１８がハンドリング作業を実行するときの、ハンド１６で対象物（Ｗ、Ｔ）を把持するロボット１８の位置及び姿勢Ｄ３を求める第２演算部２４、並びに、第２演算部２４で求めたロボット１８の位置及び姿勢Ｄ３を用いて、作業プログラムＰを生成する作業プログラム生成部２６、として機能させるためのオフラインプログラミング用プログラムである。
【００８７】
また本発明は、ワークＷ及び工具Ｔの少なくとも一方を含む加工関連対象物の、工作機械１４に対するハンドリング作業を、ハンド１６を装着したロボット１８に実行させる作業プログラムＰをオフラインで作成するために、コンピュータを、加工関連対象物（Ｗ、Ｔ）をハンド１６で把持するときの、対象物（Ｗ、Ｔ）とハンド１６との相対位置関係Ｄ１を指定するハンド位置指定部２０、工作機械１４に与えられるワーク加工プログラムに含まれる、対象物（Ｗ、Ｔ）の位置を特定する指令Ｃに基づき、ロボット１８がハンドリング作業を実行するときの、工作機械１４に搭載される対象物（Ｗ、Ｔ）の位置及び姿勢Ｄ２を求める第１演算部２２、ハンド位置指定部２０で指定した対象物（Ｗ、Ｔ）とハンド１６との相対位置関係Ｄ１と、第１演算部２２で求めた対象物（Ｗ、Ｔ）の位置及び姿勢Ｄ２とに基づき、ロボット１８がハンドリング作業を実行するときの、ハンド１６で対象物（Ｗ、Ｔ）を把持するロボット１８の位置及び姿勢Ｄ３を求める第２演算部２４、並びに、第２演算部２４で求めたロボット１８の位置及び姿勢Ｄ３を用いて、作業プログラムＰを生成する作業プログラム生成部２６、として機能させるためのオフラインプログラミング用プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【図面の簡単な説明】
【００８８】
【図１】本発明に係るオフラインプログラミング装置の基本構成を示す機能ブロック図である。
【図２】図１のオフラインプログラミング装置を組み込んだ生産システムの一例を概略で示す図である。
【図３】図１のオフラインプログラミング装置によるオフラインプログラミング方法の１ステップを例示する図で、（ａ）ハンドモデルによる対象物モデルの把持前の状態、及び（ｂ）適正把持状態を示す。
【図４】図１のオフラインプログラミング装置で使用可能なワーク加工プログラムを説明する図である。
【図５】本発明の一実施形態によるオフラインプログラミング装置の構成を示す機能ブロック図である。
【図６】図５のオフラインプログラミング装置によるオフラインプログラミング方法の主要ステップを概略で例示する図で、（ａ）オフラインプログラミング装置におけるモデル設定ステップ、及び（ｂ）生産システムにおける基準位置検出ステップを示す。
【図７】図６のステップに続く主要ステップを概略で例示する図で、（ａ）生産システムにおける第１参照位置検出ステップ、及び（ｂ）生産システムにおける第２参照位置検出ステップを示す。
【符号の説明】
【００８９】
１０、４０    オフラインプログラミング装置
１２    生産システム
１４    工作機械
１６    ハンド
１８    ロボット
２０    ハンド位置指定部
２２    第１演算部
２４    第２演算部
２６    作業プログラム生成部
２８    テーブル
３０    刃物台
４２    作業プログラム修正部
４４    工作機械モデル
４６    ロボットモデル
５０    機械座標系モデル
５２    位置検出器
５４    目標物
５６    機械座標系
【図１】
2008152733.tif 000003
【図２】
2008152733.tif 000004
【図３】
2008152733.tif 000005
【図４】
2008152733.tif 000006
【図５】
2008152733.tif 000007
【図６】
2008152733.tif 000008
【図７】
2008152733.tif 000009