(57)【要約】【課題】  ロボットの作業プログラムにおける教示点を、オペレータの熟練を要することなく、少ない工数で迅速かつ適正に修正できるようにする。【解決手段】  教示点修正装置１０は、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部１２と、判断部１２が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、第１教示点に対して規定の相対位置関係を有する相関教示点の位置データを修正するデータ修正部１４とを備える。教示点修正装置１０は、教示点ルールを格納する記憶部１６をさらに備えることができる。教示点ルールは、複数の異なる教示点のうちいずれか２つの教示点の間の距離を規定するルールを含むことができる。【選択図】      図１
2006331188.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの作業プログラムにおける教示点を修正するための教示点修正装置において、
作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部と、
前記判断部が、前記複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、該複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、該第１教示点に対して該相対位置関係を有する相関教示点の位置データを修正するデータ修正部と、
を具備することを特徴とする教示点修正装置。
【請求項２】
前記複数の異なる教示点が３個以上有り、前記データ修正部は、前記第１教示点に対して直接的及び間接的に前記相対位置関係を有する全ての前記相関教示点の前記位置データを修正する、請求項１に記載の教示点修正装置。
【請求項３】
前記判断部は、複数の作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断し、前記データ修正部は、前記教示点ルールに従い、該複数の作業プログラムにおける全ての前記相関教示点の前記位置データを修正する、請求項１又は２に記載の教示点修正装置。
【請求項４】
前記データ修正部は、前記複数の作業プログラムの各々の名称と、前記複数の異なる教示点の各々の名称と、該複数の異なる教示点の各々の位置データとを、互いに関連付けて記述した教示点データベースを使用して、該教示点データベースに記述される該複数の作業プログラムのうち、前記相関教示点を含む作業プログラムを該相関教示点の修正により更新する、請求項３に記載の教示点修正装置。
【請求項５】
前記判断部が、前記第１教示点の前記位置データが修正されたと判断したときに、前記教示点ルールに従い、該第１教示点の該位置データの修正が妥当であるか否かを判断する第２判断部をさらに具備し、前記データ修正部は、該第２判断部が、該第１教示点の該位置データの該修正が妥当であると判断したときに、前記相関教示点の前記位置データを修正する、請求項１〜４のいずれか１項に記載の教示点修正装置。
【請求項６】
前記第２判断部が、前記第１教示点の前記位置データの前記修正が妥当でないと判断したときに、該第１教示点の該位置データの該修正をキャンセルして修正前の位置データを復元するデータ復元部をさらに具備する、請求項５に記載の教示点修正装置。
【請求項７】
前記第２判断部は、前記データ修正部が修正した全ての前記相関教示点の前記位置データの修正が妥当であるか否かを判断し、前記データ復元部は、該第２判断部が、いずれかの該相関教示点の該位置データの該修正が妥当でないと判断したときに、判断された該相関教示点の該位置データの該修正をキャンセルして修正前の位置データを復元する、請求項６に記載の教示点修正装置。
【請求項８】
前記データ復元部は、前記データ修正部が修正した全ての前記相関教示点の前記位置データの修正時期を表す履歴を参照して、該履歴中の指定された時期の位置データを復元する、請求項７に記載の教示点修正装置。
【請求項９】
前記判断部が、前記第１教示点の前記位置データが修正されたと判断したときに、前記教示点ルールに従い、該第１教示点の該位置データの修正と前記相関教示点の前記位置データの修正とのいずれが重要であるかを判断する第３判断部をさらに具備し、前記データ修正部は、該第３判断部が、該第１教示点の該位置データの該修正が該相関教示点の該位置データの該修正よりも重要であると判断したときに、該相関教示点の該位置データを修正する、請求項１〜８のいずれか１項に記載の教示点修正装置。
【請求項１０】
前記教示点ルールを格納する記憶部をさらに具備し、該教示点ルールが、前記複数の異なる教示点のうちいずれか２つの教示点の間の距離を規定するルールを含む、請求項１に記載の教示点修正装置。
【請求項１１】
前記教示点データベースを格納する記憶部をさらに具備する、請求項４に記載の教示点修正装置。
【請求項１２】
前記教示点ルールを格納する記憶部をさらに具備し、該教示点ルールが、前記複数の異なる教示点のうちいずれか１つの教示点の位置データの許容範囲を規定するルールを含む、請求項５に記載の教示点修正装置。
【請求項１３】
前記教示点ルールを格納する記憶部をさらに具備し、該教示点ルールが、前記複数の異なる教示点のうちいずれか２つの教示点の間の距離の許容範囲を規定するルールを含む、請求項５に記載の教示点修正装置。
【請求項１４】
前記履歴を含む教示点データベースを格納する記憶部をさらに具備する、請求項８に記載の教示点修正装置。
【請求項１５】
前記教示点ルールを格納する記憶部をさらに具備し、該教示点ルールが、前記複数の異なる教示点のうち少なくとも２つの教示点の相対重要度を規定するルールを含む、請求項９に記載の教示点修正装置。
【請求項１６】
ロボットの作業プログラムにおける教示点を修正するために、コンピュータを、
作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部、及び
前記判断部が、前記複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、該複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、該第１教示点に対して該相対位置関係を有する相関教示点の位置データを修正するデータ修正部、
として機能させるための教示点修正プログラム。
【請求項１７】
ロボットの作業プログラムにおける教示点を修正するために、コンピュータを、
作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部、及び
前記判断部が、前記複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、該複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、該第１教示点に対して該相対位置関係を有する相関教示点の位置データを修正するデータ修正部、
として機能させるための教示点修正プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
ロボットの作業プログラムにおける教示点を、コンピュータを用いて修正するための教示点修正方法において、
コンピュータの判断部が、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断するステップと、
前記判断部が、前記複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、コンピュータのデータ修正部が、該複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、該第１教示点に対して該相対位置関係を有する相関教示点の位置データを修正するステップと、
を具備することを特徴とする教示点修正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの作業プログラムにおける教示点を修正するための教示点修正装置に関する。本発明はまた、ロボットの作業プログラムにおける教示点を修正するためのプログラム及び記録媒体に関する。本発明はさらに、ロボットの作業プログラムにおける教示点を修正するための教示点修正方法に関する。
【背景技術】
【０００２】
産業用ロボット（以下、ロボットと略称する）は、特定の作業プログラム（すなわちタスクプログラム）に従って動作する。ロボットに装着したツール（すなわちエンドエフェクタ）の種類、作業対象のワークの種類、作業の内容等に対応して、複数の作業プログラムを作成してロボットに与えることにより、ロボットは多種多様な作業を実行することができる。例えばスポット溶接ロボットでは、溶接対象の車体が新規に追加されたときに、当該車体の溶接部位のデータを含む新たな溶接作業プログラムを作成する。このとき、ロボットに装着した既存の溶接ガンが、新規の車体の溶接作業中に周辺物（治具や車体等）に干渉する場合には、既存の溶接ガンを、そのような干渉を生じない形状の新たな溶接ガンに取り替えて、新たな溶接ガンに対応した溶接作業プログラムを作成する。
【０００３】
ロボットを動作させるための作業プログラムを作成する際には、一般に教示操作盤を使用して、オペレータが手動モードでロボットの各制御軸を低速運動させて、ワークに対し作業を実行する複数の作業部位にツールを順次位置決めし、それら作業部位を「教示点」としてロボットに記憶させる。ロボットは、個々の作業部位にツールを位置決めしたときの各制御軸の動作位置を、個々の教示点におけるロボット自身の位置及び姿勢の情報（本願で「教示点の位置データ」と称する）として記憶する。なお、このような教示プログラミングを、パーソナルコンピュータ等を用いたオフラインシミュレーションで行うことも知られている。
【０００４】
新規ワークの追加等に応じて新たな作業プログラムを作成する場合は、追加の教示点としてロボットに新たに記憶させる必要が有る作業部位以外は、予め記憶した複数の教示点のうち所要の教示点の位置データを修正することで対処できる。このような教示点の修正に際しては、従来、変更が必要な全ての作業部位に関して、１つずつ教示点の位置データを修正する手法が採られていた。例えば特許文献１は、ロボットの作業プログラムに含まれる複数の教示点の位置データを、１つずつ修正するための教示点修正装置を開示する。
【０００５】
【特許文献１】特開２００４−２８０５２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ロボットを用いて高度に自動化された生産システムにおいて、生産品種を追加する場合には、生産ラインの変更が要求される。このとき、治具、機械、搬送装置といった各種ハードウェアの再設計や、加工機械の加工プログラム、ロボットの作業プログラム、ＰＣ（プログラマブルコントローラ）や生産管理装置のシーケンスラダー及び生産管理プログラムといった各種ソフトウェアの準備に、多大な工数が必要となる。このような生産ラインの変更に伴うハードウェア／ソフトウェアの構築工数を有効に削減することが、自動化された生産システムのコスト関連の重要な課題となっており、故にロボットにおける作業プログラムの作成に要する工数の削減が望まれている。
【０００７】
また、生産システムの稼動開始後に、ロボットの作業プログラムに含まれる教示点を調整することが要求される場合がある。これは例えば、ナットランナーでボルトの締め付けを行う際のボルト位置を修正したり、ハンドでワークを把持する際の把持位置を微調整したりすることである。このような教示点の調整は、ワークが有する加工／寸法精度に依存するものであり、一般に生産システムを稼動した後でなければその必要性が判明しない。このとき、作業プログラムに含まれる複数の教示点の位置データが何らかの相互関連性を有していたり、複数の作業プログラムに同じ教示点が含まれていたりする場合があるが、その場合には、オペレータが、教示プログラミングに熟練していることは勿論、ロボットに与えられている全ての作業プログラムの内容を詳細かつ統合的に理解していることが、教示点を適切に調整するための要件となる。また、前述したように、変更が必要な全ての作業部位に関して、１つずつ教示点の位置データを修正する手法によると、オペレータの負担が著しく増大し、誤修正や望ましくない修正が行われることが懸念される。しかも、教示点のデータ修正を行うと通常は修正前の情報が失われるので、誤修正や望ましくない修正が行われても、教示点の位置データを修正前の状態に戻すことは困難である。
【０００８】
本発明の目的は、ロボットの作業プログラムにおける教示点を修正するための教示点修正装置において、オペレータの熟練や作業プログラムの高度な理解を要することなく、少ない工数で迅速かつ適正に教示点を修正することができる教示点修正装置を提供することにある。
【０００９】
本発明の他の目的は、ロボットの作業プログラムにおける教示点を修正するためのプログラム及び記録媒体であって、オペレータの熟練や作業プログラムの高度な理解を要することなく、少ない工数で迅速かつ適正に教示点を修正するように、コンピュータを機能させることができるプログラム、及び同プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
【００１０】
本発明のさらに他の目的は、ロボットの作業プログラムにおける教示点を修正するための教示点修正方法であって、コンピュータを用いて、オペレータの熟練や作業プログラムの高度な理解を要することなく、少ない工数で迅速かつ適正に教示点を修正することができる教示点修正方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１に記載の発明は、ロボットの作業プログラムにおける教示点を修正するための教示点修正装置において、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部と、判断部が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、第１教示点に対して相対位置関係を有する相関教示点の位置データを修正するデータ修正部と、を具備することを特徴とする教示点修正装置を提供する。
【００１２】
請求項２に記載の発明は、請求項１に記載の教示点修正装置において、複数の異なる教示点が３個以上有り、データ修正部は、第１教示点に対して直接的及び間接的に相対位置関係を有する全ての相関教示点の位置データを修正する教示点修正装置を提供する。
【００１３】
請求項３に記載の発明は、請求項１又は２に記載の教示点修正装置において、判断部は、複数の作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断し、データ修正部は、教示点ルールに従い、複数の作業プログラムにおける全ての相関教示点の位置データを修正する教示点修正装置を提供する。
【００１４】
請求項４に記載の発明は、請求項３に記載の教示点修正装置において、データ修正部は、複数の作業プログラムの各々の名称と、複数の異なる教示点の各々の名称と、複数の異なる教示点の各々の位置データとを、互いに関連付けて記述した教示点データベースを使用して、教示点データベースに記述される複数の作業プログラムのうち、相関教示点を含む作業プログラムを相関教示点の修正により更新する教示点修正装置を提供する。
【００１５】
請求項５に記載の発明は、請求項１〜４のいずれか１項に記載の教示点修正装置において、判断部が、第１教示点の位置データが修正されたと判断したときに、教示点ルールに従い、第１教示点の位置データの修正が妥当であるか否かを判断する第２判断部をさらに具備し、データ修正部は、第２判断部が、第１教示点の位置データの修正が妥当であると判断したときに、相関教示点の位置データを修正する教示点修正装置を提供する。
【００１６】
請求項６に記載の発明は、請求項５に記載の教示点修正装置において、第２判断部が、第１教示点の位置データの修正が妥当でないと判断したときに、第１教示点の位置データの修正をキャンセルして修正前の位置データを復元するデータ復元部をさらに具備する教示点修正装置を提供する。
【００１７】
請求項７に記載の発明は、請求項６に記載の教示点修正装置において、第２判断部は、データ修正部が修正した全ての相関教示点の位置データの修正が妥当であるか否かを判断し、データ復元部は、第２判断部が、いずれかの相関教示点の位置データの修正が妥当でないと判断したときに、判断された相関教示点の位置データの修正をキャンセルして修正前の位置データを復元する教示点修正装置を提供する。
【００１８】
請求項８に記載の発明は、請求項７に記載の教示点修正装置において、データ復元部は、データ修正部が修正した全ての相関教示点の位置データの修正時期を表す履歴を参照して、履歴中の指定された時期の位置データを復元する教示点修正装置を提供する。
【００１９】
請求項９に記載の発明は、請求項１〜８のいずれか１項に記載の教示点修正装置において、判断部が、第１教示点の位置データが修正されたと判断したときに、教示点ルールに従い、第１教示点の位置データの修正と相関教示点の位置データの修正とのいずれが重要であるかを判断する第３判断部をさらに具備し、データ修正部は、第３判断部が、第１教示点の位置データの修正が相関教示点の位置データの修正よりも重要であると判断したときに、相関教示点の位置データを修正する教示点修正装置を提供する。
【００２０】
請求項１０に記載の発明は、請求項１に記載の教示点修正装置において、教示点ルールを格納する記憶部をさらに具備し、教示点ルールが、複数の異なる教示点のうちいずれか２つの教示点の間の距離を規定するルールを含む教示点修正装置を提供する。
【００２１】
請求項１１に記載の発明は、請求項４に記載の教示点修正装置において、教示点データベースを格納する記憶部をさらに具備する教示点修正装置を提供する。
【００２２】
請求項１２に記載の発明は、請求項５に記載の教示点修正装置において、教示点ルールを格納する記憶部をさらに具備し、教示点ルールが、複数の異なる教示点のうちいずれか１つの教示点の位置データの許容範囲を規定するルールを含む教示点修正装置を提供する。
【００２３】
請求項１３に記載の発明は、請求項５に記載の教示点修正装置において、教示点ルールを格納する記憶部をさらに具備し、教示点ルールが、複数の異なる教示点のうちいずれか２つの教示点の間の距離の許容範囲を規定するルールを含む教示点修正装置を提供する。
【００２４】
請求項１４に記載の発明は、請求項８に記載の教示点修正装置において、履歴を含む教示点データベースを格納する記憶部をさらに具備する教示点修正装置を提供する。
【００２５】
請求項１５に記載の発明は、請求項９に記載の教示点修正装置において、教示点ルールを格納する記憶部をさらに具備し、教示点ルールが、複数の異なる教示点のうち少なくとも２つの教示点の相対重要度を規定するルールを含む教示点修正装置を提供する。
【００２６】
請求項１６に記載の発明は、ロボットの作業プログラムにおける教示点を修正するために、コンピュータを、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部、及び、判断部が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、第１教示点に対して相対位置関係を有する相関教示点の位置データを修正するデータ修正部として機能させるための教示点修正プログラムを提供する。
【００２７】
請求項１７に記載の発明は、ロボットの作業プログラムにおける教示点を修正するために、コンピュータを、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部、及び、判断部が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、第１教示点に対して相対位置関係を有する相関教示点の位置データを修正するデータ修正部として機能させるための教示点修正プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【００２８】
請求項１８に記載の発明は、ロボットの作業プログラムにおける教示点を、コンピュータを用いて修正するための教示点修正方法において、コンピュータの判断部が、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断するステップと、判断部が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、コンピュータのデータ修正部が、複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、第１教示点に対して相対位置関係を有する相関教示点の位置データを修正するステップとを具備することを特徴とする教示点修正方法を提供する。
【発明の効果】
【００２９】
請求項１に記載の発明によれば、作業プログラムに含まれる第１教示点の位置データを修正するだけで、第１教示点に対して所定の相対位置関係を保持しなければならない相関教示点の位置データが、教示点ルールに従って自動的に修正される。したがって、教示プログラミングの効率が向上し、教示プログラミングに関わる工数を有効に削減することができる。その結果、ロボットを用いた生産システムの立ち上げコストが低減し、位置データの誤修正等によるトラブルが防止されて生産システムの稼動率が向上する。
【００３０】
請求項２又は３に記載の発明によれば、オペレータが、ロボットの全ての作業プログラムの内容を熟知していなかったり、熟練した教示技術を有していなかったりしたとしても、第１教示点の修正に随伴して修正しなければならない全ての相関教示点の位置データを、過不足なく自動的に修正することができる。
【００３１】
請求項４に記載の発明によれば、データの管理が容易になり、教示点データベースの更新を記録するようにすれば、過去のデータの検索も可能になる。
【００３２】
請求項５に記載の発明によれば、第１教示点の位置データの修正が妥当でなかったときに、オペレータが熟練した教示技術を有していなかったとしても、そのような第１教示点の不適当な修正に伴って相関教示点の位置データを修正してしまうことを、教示点ルールに従って自動的に、未然に防止することができる。
【００３３】
請求項６に記載の発明によれば、第１教示点の位置データの修正が妥当でなかったときに、オペレータが熟練した教示技術を有していなかったとしても、その修正をキャンセルして第１教示点の修正前の位置データを自動的に復元することができる。
【００３４】
請求項７に記載の発明によれば、作業プログラムに従った作業の終了後にいずれかの相関教示点の修正後の位置が不適当であることが判明したときに、オペレータが熟練した教示技術を有していなかったとしても、そのような不適当な相関教示点の位置データを、修正前の位置データに自動的に戻すことができる。
【００３５】
請求項８に記載の発明によれば、複数の不適当な相関教示点の位置データを、全て一括して、又は必要に応じて個別に、修正前の位置データに戻すことができる。
【００３６】
請求項９に記載の発明によれば、重要度の高い教示点の位置データ修正に随伴して重要度の低い教示点の位置データ修正が自動的に行われることを許容する一方で、重要度の低い教示点の位置データ修正に随伴して重要度の高い教示点の位置データ修正が自動的に行われることを、教示点ルールに従って自動的に阻止することができる。
【００３７】
請求項１０〜１５のいずれかに記載の発明によれば、簡単で有効な教示点ルールを作成できる。
【００３８】
請求項１６〜１８のいずれかに記載の発明によれば、請求項１に記載の発明と同等の作用効果が奏される。
【発明を実施するための最良の形態】
【００３９】
以下、添付図面を参照して、本発明の実施の形態を詳細に説明する。全図面に渡り、対応する構成要素には共通の参照符号を付す。
図面を参照すると、図１は、本発明に係る教示点修正装置１０の基本構成を機能ブロック図で示す。教示点修正装置１０は、ロボットの作業プログラムにおける教示点を修正するためのものであって、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部１２と、判断部１２が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルールに従い、第１教示点に対して規定の相対位置関係を有する相関教示点の位置データを修正するデータ修正部１４とを備えて構成される（図１（ａ））。この場合、教示点修正装置１０は、教示点ルールを格納する記憶部１６をさらに備えることができる（図１（ｂ））。そして教示点ルールは、複数の異なる教示点のうちいずれか２つの教示点の間の距離を規定するルールを含むことができる。
【００４０】
上記基本構成を有する教示点修正装置１０によれば、オペレータが、作業プログラムに含まれる１つの第１教示点の位置データを教示動作により修正するだけで、第１教示点に対して所定の相対位置関係を保持しなければならない相関教示点の位置データを、教示点ルールに従って自動的に修正することができる。したがって、教示プログラミングの効率が向上し、教示プログラミングに関わる工数を有効に削減することができる。その結果、ロボットを用いた生産システムの立ち上げコストが低減し、位置データの誤修正等によるトラブルが防止されて生産システムの稼動率が向上し、以って、コストや稼働率の観点で自動化が困難であった生産システムを、ロボットを用いて高度に自動化することが可能になる。
【００４１】
上記した作用効果は、作業プログラムに３個以上の異なる教示点が含まれていて、データ修正部１４が、第１教示点に対して直接的及び間接的に相対位置関係を有する全ての相関教示点の位置データを修正するように構成したとき、及び、判断部１２が、複数の作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断し、データ修正部１４が、教示点ルールに従い、それら複数の作業プログラムにおける全ての相関教示点の位置データを修正するように構成したときに、一層格別のものとなる。このような構成において、オペレータが、ロボットの全ての作業プログラムの内容を熟知していなかったり、熟練した教示技術を有していなかったりしたとしても、第１教示点の修正に随伴して修正しなければならない全ての相関教示点の位置データを、過不足なく自動的に修正することができる。
【００４２】
図２は、図１の教示点修正装置１０の第１の発展的構成を機能ブロック図で示す。図２の教示点修正装置１０は、判断部１２が、第１教示点の位置データが修正されたと判断したときに、教示点ルールに従い、第１教示点の位置データの修正が妥当であるか否かを判断する第２判断部１８をさらに備えて構成される（図２（ａ））。この構成では、データ修正部１４は、第２判断部１８が、第１教示点の位置データの修正が妥当であると判断したときにのみ、相関教示点の位置データを修正する。この場合も、教示点修正装置１０は、教示点ルールを格納する記憶部１６をさらに備えることができる（図２（ｂ））。そして教示点ルールは、複数の異なる教示点のうちいずれか１つの教示点の位置データの許容範囲を規定するルールと、複数の異なる教示点のうちいずれか２つの教示点の間の距離の許容範囲を規定するルールとの、少なくとも一方を含むことができる。
【００４３】
図２に示す教示点修正装置１０によれば、第１教示点の位置データの修正が妥当でなかったとき、すなわち修正後の第１教示点の位置がロボットの作業領域において不適当な位置であったときに、オペレータが熟練した教示技術を有していなかったとしても、そのような第１教示点の不適当な修正に伴って相関教示点の位置データを修正してしまうことを、教示点ルールに従って自動的に、未然に防止することができる。その結果、相関教示点が不適当な位置に変更されて作業に支障を来たすことが確実に防止され、生産システムの安全性が向上する。
【００４４】
図３は、図１の教示点修正装置１０の第２の発展的構成を機能ブロック図で示す。図３の教示点修正装置１０は、第２判断部１８が、第１教示点の位置データの修正が妥当でないと判断したときに、第１教示点の位置データの修正をキャンセルして修正前の位置データを復元するデータ復元部２０をさらに備えて構成される（図３（ａ））。その代わりに、又はそれに加えて、第２判断部１８を、データ修正部１４が修正した全ての相関教示点の位置データの修正が妥当であるか否かを判断するように構成し、データ復元部２０を、第２判断部１８が、いずれかの相関教示点の位置データの修正が妥当でないと判断したときに、判断された相関教示点の位置データの修正をキャンセルして修正前の位置データを復元するように構成することもできる（図３（ｂ））。図３（ｂ）の構成では、データ復元部２０は、データ修正部１４が修正した全ての相関教示点の位置データの修正時期を表す履歴を参照して、履歴中の指定された時期の位置データを復元することができる。
【００４５】
図３に示す教示点修正装置１０によれば、第１教示点の位置データの修正が妥当でなかったときに、その修正をキャンセルして第１教示点の修正前の位置データを自動的に復元することができる。また、全ての相関教示点の修正の妥当性を判断することで、作業プログラムに従った作業の終了後にいずれかの相関教示点の修正後の位置が不適当であることが判明したときに、そのような不適当な相関教示点の位置データを、修正前の位置データに自動的に戻すことができる。このとき、修正履歴を参照するように構成すれば、複数の不適当な相関教示点の位置データを、全て一括して、又は必要に応じて個別に、修正前の位置データに戻すことができる。
【００４６】
図４は、図１の教示点修正装置１０の第３の発展的構成を機能ブロック図で示す。図４の教示点修正装置１０は、判断部１２が、第１教示点の位置データが修正されたと判断したときに、教示点ルールに従い、第１教示点の位置データの修正と相関教示点の位置データの修正とのいずれが重要であるかを判断する第３判断部２２をさらに備えて構成される（図４（ａ））。この構成では、データ修正部１４は、第３判断部２２が、第１教示点の位置データの修正が相関教示点の位置データの修正よりも重要であると判断したときにのみ、相関教示点の位置データを修正する。この場合も、教示点修正装置１０は、教示点ルールを格納する記憶部１６をさらに備えることができる（図４（ｂ））。そして教示点ルールは、複数の異なる教示点のうち少なくとも２つの教示点の相対重要度を規定するルールを含むことができる。
【００４７】
図４に示す教示点修正装置１０によれば、重要度の高い教示点の位置データ修正に随伴して重要度の低い教示点の位置データ修正が自動的に行われることを許容する一方で、重要度の低い教示点の位置データ修正に随伴して重要度の高い教示点の位置データ修正が自動的に行われることを、教示点ルールに従って自動的に阻止することができる。例えば、ツールがワークに直接的に作用する把持位置や加工位置等の教示点は、作業品質に直接影響を与えるので、その修正の重要度が高いのに対し、非加工中のエアカット動作に関する教示点は、作業品質に直接影響を与えないので、その修正の重要度が低いと言える。そこで、上記構成によれば、エアカット動作の教示点を微調整したときに、把持や加工の教示点までが修正されてしまうことを、未然に防止することができる。
【００４８】
次に、図５〜図１４を参照して、本発明の好適な実施形態による教示点修正装置の構成を、ロボットが実行する作業例に関連して説明する。
図５は、本発明の一実施形態による教示点修正装置（すなわち作業プログラム作成装置）３０を組み込んだ、ロボットを用いた生産システムの全体概要図である。ロボット（すなわちロボット機構部）３２の手首先端には、ツール（図示実施形態ではハンド）３４が取り付けられる。パレットＰ１には、複数のワークＷ１が置かれ、パレットＰ２には、ワークＷ１とは種類の異なる複数のワークＷ２が置かれる。ロボット３２は、走行軸３６上に設置され、走行軸３６に沿って移動して、パレットＰ１のワークＷ１又はパレットＰ２のワークＷ２をツール３４に把持し、仮置台３８又は仮置台４０まで搬送してそこに一時的に載置する。仮置台３８は加工機械４２にワークを供給する際に使用され、仮置台４０は加工機械４４にワークを供給する際に使用される。
【００４９】
加工機械４２が加工中でなければ、ロボット３２は、仮置台３８に置かれたワークＷ１又はＷ２をツール３４に把持して加工機械４２に供給する。加工機械４２は、ロボット３２からの加工開始命令により、ワークの加工を開始する。加工が完了すると、加工機械４２はロボット３２に、加工完了信号を送信する。加工完了信号を受け取ったロボット３２は、加工済みのワークＷ１又はＷ２を加工機械４２から取り出して、ワークＷ１はパレットＰ３に置き、ワークＷ２はパレットＰ４に置く。加工機械４４にワークを供給する場合も、仮置台４０が使用されること以外は、上記と同じ工程が実行される。
【００５０】
ロボット３２及び走行軸３６は、それぞれ通信ケーブル４６及び４８を介して制御装置５０に接続され、ロボット３２及び走行軸３６の動作が制御装置５０により制御される。制御装置５０は、ネットワークケーブル５２により、作業プログラム作成装置（教示点修正装置）３０に接続される。ロボット３２の手首先端には、ツール３４に隣接してカメラ５４が装着され、カメラ５４はカメラケーブル５６を介して画像処理装置５８に接続される。画像処理装置５８は、ネットワークケーブル６０、６２によって、制御装置５０及び作業プログラム作成装置３０にそれぞれ接続される。仮置台３８、４０にはそれぞれ、パレットＰ１から運んだワークＷ１用の位置決め治具３８ａ、４０ａと、パレットＰ２から運んだワークＷ２用の位置決め治具３８ｂ、４０ｂとが設置される。それら位置決め治具３８ａ、３８ｂ、４０ａ、４０ｂは、ディジタル信号入出力ケーブル（図示せず）を介してそれぞれ制御装置５０に接続される。
【００５１】
図６は、図５の生産システムにおける主として制御系の構成を示すブロック図である。制御装置５０は、バス６４で相互接続されたＣＰＵ６６、メモリ６８、ネットワークインタフェース７０、ディジタル信号入出力回路７２、操作盤インタフェース７４及びサーボインタフェース７６を備える。図７に示すように、メモリ６８には、ＣＰＵ６６により実行され、制御装置５０の全体を制御する制御プログラム７８と、ロボット３２を動作させる作業プログラム８０及び８２とが格納される。作業プログラム８０（８０１〜８０７）は、ワークＷ１に関する作業をロボット３２がツール３４を用いて行うためのものであり、作業プログラム８２は、ワークＷ２に関する作業をロボット３２がツール３４を用いて行うためのものである。作業プログラム８０及び８２は、いずれも制御プログラム７８を用いて解釈され、ロボット３２及びツール３４の動作に変換される。これら作業プログラム８０及び８２は、作業プログラム作成装置３０によって作成される。
【００５２】
ネットワークインタフェース７０には、ネットワークケーブル５２を介して作業プログラム作成装置３０が接続されるとともに、ネットワークケーブル６０を介して画像処理装置５８が接続される。また、ディジタル信号入出力回路７２には、ディジタル信号入出力ケーブル８４を介して、仮置台３８の治具３８ａ、３８ｂ及び仮置台４０の治具４０ａ、４０ｂが個々に接続され、ディジタル信号入出力ケーブル８６を介して、加工機械４２、４４が個々に接続され、ディジタル信号入出力ケーブル８８を介して、ロボット３２に装着されたツール３４が接続される。
【００５３】
操作盤インタフェース７４には、操作盤ケーブル９０を介して、教示操作盤９２が接続される。教示操作盤９２は、表示器９２ａ及び入力ボタン９２ｂを備え、教示操作盤９２をオペレータが操作することにより、制御装置５０を介してロボット３２を手動モードで動作させることができる。また、サーボインタフェース７６には、通信ケーブル４６、４８を介して、ロボット３２の各制御軸及び走行軸３６のサーボモータ等のサーボ機構が接続される。
【００５４】
作業プログラム作成装置３０には、ハードディスク装置９４が接続される。或いは作業プログラム作成装置３０は、ハードディスク装置９４を内蔵していても良い。図８に示すように、ハードディスク装置９４には、ロボット３２が動作する複数の作業経路Ｒ（図示実施形態では後述するＲａ、Ｒｂ、Ｒｃ、Ｒｄ）のそれぞれに関連する作業プログラム定義データ９６（図示実施形態では９６ａ、９６ｂ、９６ｃ、９６ｄ）と、加工対象の複数種類のワークＷ（図示実施形態ではＷ１、Ｗ２）のそれぞれに関連する作業部位定義データ９８（図示実施形態では９８１、９８２）と、ワークＷ（Ｗ１、Ｗ２）の図面データ１００（１００１、１００２）とが格納される。さらにハードディスク装置９４には、後述するように、作業プログラム８０、８２に含まれる複数の異なる教示点の相対位置関係を予め規定した教示点ルール１０２と、各作業プログラム８０、８２と各教示点の位置データとを互いに関連付けて一覧記述した教示点データベース１０４と、教示点修正前の保存された教示点データベース１０６とが格納される。
【００５５】
図示実施形態におけるロボット３２の作業経路Ｒは、（ｉ）パレットＰ１からワークＷ１を取り出し、仮置台３８に搬送して位置決め治具３８ａで位置決めし、加工機械４２に供給し、加工機械４２から加工済みのワークＷ１を取り出し、パレットＰ３に載置する第１の作業経路Ｒａと、（ｉｉ）パレットＰ２からワークＷ２を取り出し、仮置台３８に搬送して位置決め治具３８ｂで位置決めし、加工機械４２に供給し、加工機械４２から加工済みのワークＷ２を取り出し、パレットＰ４に載置する第２の作業経路Ｒｂと、（ｉｉｉ）パレットＰ１のワークＷ１を取り出し、仮置台４０に搬送して位置決め治具４０ａで位置決めし、加工機械４４に供給し、加工機械４４から加工済みのワークＷ１を取り出し、パレットＰ３に載置する第３の作業経路Ｒｃと、（ｉｖ）パレットＰ２のワークＷ２を取り出し、仮置台４０に搬送して位置決め治具４０ｂで位置決めし、加工機械４４に供給し、加工機械４４から加工済みのワークＷ２を取り出し、パレットＰ４に載置する第４の作業経路Ｒｄとを有する。
【００５６】
作業経路Ｒａ、Ｒｂ、Ｒｃ、Ｒｄのそれぞれに関連する作業プログラム定義データ９６ａ、９６ｂ、９６ｃ、９６ｄは、ロボット３２の作業対象であるワークＷ１、Ｗ２の種類に応じて動作が変わる第１データ部分と、ワークＷ１、Ｗ２の種類によらず動作が同一の第２データ部分とから構成される。ワーク依存の第１データ部分は、作業対象のワークＷ１、Ｗ２のそれぞれに関連する作業部位定義データ９８１、９８２に基づいて、ワーク毎に異なる内容に作成され、それにより、ワークＷ１、Ｗ２のそれぞれに対する作業プログラム８０、８２が完成する。
【００５７】
再び図６を参照すると、画像処理装置５８には、ハードディスク装置１０８が接続される。或いは画像処理装置５８は、ハードディスク装置１０８を内蔵していても良い。ハードディスク装置１０８には、作業対象のワークＷ（図示実施形態ではＷ１、Ｗ２）を検出するための基準となるワーク画像データ１１０（図示実施形態では１１０１、１１０２）が格納される。ワーク画像データ１１０１、１１０２は、ロボット３２の手首先端に取り付けたカメラ５４を用いてワークＷ１、Ｗ２を撮影することにより得られる。
【００５８】
図９〜図１４は、上記した生産システムにおいて、制御装置５０の制御下でロボット３２が実行する作業（ハンドリング作業）の手順を示す。ここでは一例として、仮置台３８及び加工機械４２に関連する前述した第１の作業経路ＲａにおけるワークＷ１のハンドリング作業を説明するが、他の作業経路における作業も同様にして実行できる。
【００５９】
まず、走行軸３６を起動して、パレットＰ１の正面（教示点）にロボット３２を移動する（ステップＳ２００）。次いで、ロボット３２のアームを旋回し、ツール３４をパレットＰ１の真上（教示点）に移動する（ステップＳ２０１）。そして、ディジタル信号入出力回路７２を介して、ツール３４に対し「ハンド開」のディジタル信号を出力し、ツール３４を開く（ステップＳ２０２）。
【００６０】
次に、ツール３４を、ワークＷ１を把持する把持位置（ワーク上の位置）に向けて移動する。このとき、ツール３４を、把持位置（教示点）の真上の位置（教示点）に移動した後、その真下の把持位置に向けて低速で移動する（ステップＳ２０３）。この動作は、ワークの種類に応じて把持時のロボット３２の姿勢が決まるものであるから、ワーク種類に依存する動作となる。
【００６１】
そして、ディジタル信号入出力回路７２を介して、ツール３４に対し「ハンド閉」のディジタル信号を出力し、ツール３４を閉じてワークＷ１を把持する（ステップＳ２０４）。続いて、ツール３４を上方へ移動してワークＷ１をパレットＰ１から取り出す。このとき、ツール３４を、把持位置（教示点）の真上の位置（教示点）に低速で移動した後、速度を上げてさらに上方にワークＷ１を持ち上げる（ステップＳ２０５）。
【００６２】
次に、ロボット３２のアームを右旋回するとともに走行軸３６を動作させて、ロボット３２を仮置台３８の正面（教示点）に移動する（ステップＳ２０６）。次いで、ツール３４を位置決め治具３８ａの上方（教示点）に移動する（ステップＳ２０７）。続いて、ツール３４を、位置決め治具３８ａがワークＷ１をクランプする解放位置に向けて移動する。このとき、ツール３４を、解放位置（教示点）の上方の位置（教示点）に移動した後、その下方の解放位置に向けて低速で移動し、位置決め治具３８ａにワークＷ１を取り付ける（ステップＳ２０８）。そして、ディジタル信号入出力回路７２を介して、ツール３４に対し「ハンド開」のディジタル信号を出力し、ツール３４を開く。これにより、ツール３４はワークＷ１を解放する（ステップＳ２０９）。
【００６３】
次に、ツール３４を、解放位置（教示点）の上方の位置（教示点）に移動して、位置決め治具３８ａから離す（ステップＳ２１０）。そこで、ディジタル信号入出力回路７２を介して、位置決め治具３８ａに対し「クランプ閉」のディジタル信号を出力し、位置決め治具３８ａを閉じる。それにより、位置決め治具３８ａ上でワークＷ１を所定位置に正確に位置決めする（ステップＳ２１１）。
【００６４】
次に、ツール３４を、位置決め治具３８ａにクランプされたワークＷ１の把持位置（教示点）に向けて移動する（ステップＳ２１２）。次いで、把持位置でツール３４を閉じて、ワークＷ１を把持する（ステップＳ２１３）。そこで、位置決め治具３８ａに対し「クランプ開」のディジタル信号を出力し、位置決め治具３８ａを開く（ステップＳ２１４）。続いて、ツール３４を上方へ移動して、ワークＷ１を位置決め治具３８ａから取り出す。このとき、位置決め治具３８ａに対してツール３４を、低速で斜め上方（教示点）へ移動した後、速度を上げてさらに上方にワークＷ１を持ち上げる（ステップＳ２１５）。
【００６５】
次に、ロボット３２のアームを旋回して、加工機械４２の正面（教示点）にツール３４を移動する（ステップＳ２１６）。次いで、加工機械４２のドア開口部から、加工機械４２の内部にツール３４を挿入する。このとき、加工機械４２にツール３４及びワークＷ１が接触しないように、ロボット３２のアームを真直ぐに伸ばして進入させる（ステップＳ２１７）。そして、加工機械４２のチャック（図示せず）の手前（教示点）で一旦停止した後、低速でチャックにワークＷ１を装着する（教示点）。そこで、ディジタル信号入出力回路７２を介して、加工機械４２に対し「チャック閉」のディジタル信号を出力し、チャックを閉じる（ステップＳ２１８）。
【００６６】
次に、ツール３４に対し「ハンド開」のディジタル信号を出力し、ツール３４を開いてワークＷ１を解放する（ステップＳ２１９）。次いで、ツール３４を低速で、チャックから僅かに離れた位置（教示点）に移動する（ステップＳ２２０）。続いて、加工機械４２にツール３４を接触させないように、ロボット３２のアームを真直ぐに伸ばして、加工機械４２のドア開口部からツール３４を引き出す（ステップＳ２２１）。
【００６７】
次に、ディジタル信号入出力回路７２を介して、加工機械４２に対し、第１の作業経路Ｒａからの指令として「ワークＷ１の加工開始」のディジタル信号を出力する（ステップＳ２２２）。そして、加工機械４２から「ワークＷ１の加工完了」のディジタル信号が制御装置５０に入力されるまで待機する（ステップＳ２２３）。ワークＷ１の加工完了後、加工機械４２の内部にツール３４を侵入させ（ステップＳ２２４）、加工済みのワークＷ１の把持位置（教示点）に向けてツール３４を移動させる（ステップＳ２２５）。次いで、ツール３４を閉じて、ワークＷ１を把持する（ステップＳ２２６）。
【００６８】
次に、加工機械４２に対し「チャック開」のディジタル信号を出力して、チャックを開く（ステップＳ２２７）。次いで、ツール３４を把持位置から僅かに移動して、加工機械４２のチャックから、ワークＷ１を真直ぐに取り出す（ステップＳ２２８）。続いて、ツール３４を加工機械４２から退避させる（ステップＳ２２９）。
【００６９】
次に、ロボット３２のアームを右旋回させるとともに、走行軸３６を起動して、パレットＰ３の正面（教示点）にロボット３２を移動させる（ステップＳ２３０）。次いで、パレットＰ３の真上（教示点）にツール３４を移動する（ステップＳ２３１）。続いて、ツール３４を、パレットＰ３上のワークＷ１を載置する置き位置（教示点）に移動して、ワークＷ１をパレットＰ３に置く。このとき、ツール３４を、置き位置の真上の位置（教示点）に移動した後、その真下の置き位置に向けて低速で移動して、ワークＷ１をパレットＰ３に載せる（ステップＳ２３２）。このワーク載置動作は、ワークの種類に応じてパレットＰ３への載置時のロボット３２の姿勢が決まるものであるから、ワーク種類に依存する動作となる。
【００７０】
次に、ツール３４を開いて、ワークＷ１を解放する（ステップＳ２３３）。次いで、ツール３４を、低速で置き位置の真上に移動した後、速度を上げてさらに上方に移動する（ステップＳ２３４）。最後に、ロボット３２のアームをロボット正面に向けて旋回するとともに、走行軸３６を動作させて、ロボット３２を初期の待機位置に移動する（ステップＳ２３５）。以上で、第１の作業経路ＲａにおけるワークＷ１に対する作業プログラム８０が終了する。
【００７１】
なお、図１２〜図１４には、上述したステップＳ２００〜ステップＳ２３５に対応するツール３４の動作軌跡が示されている。図示の動作軌跡において、ワーク種類に依存する動作はステップＳ２０３及びステップＳ２３２に関する動作のみであり、他の動作軌跡で示す動作はワーク種類に依存しないものである。例えば、パレットＰ１にワークＷ２が載置されている場合に、上記した第１の作業経路Ｒａでの作業は、上記ステップＳ２０３及びステップＳ２３２に関する動作以外は、上記した動作と同様の動作になる。
【００７２】
上記したステップＳ２００からステップＳ２３５までの作業については、全てのステップを含む１つの作業プログラム８０を作成してもよいが、その場合にはステップ数の多い過大なプログラムになる。作業プログラムの保守を考慮すると、ロボット３２の一連の作業を類似動作で分割した作業単位毎に、作業プログラムを作成することが望ましい。以下、上記したハンドリング作業をロボット３２に実行させるための、作業プログラム作成装置３０による作業プログラム作成方法及び教示点修正方法を説明する。なお、作業プログラム作成装置（教示点修正装置）３０は、図１〜図４に示す教示点修正装置１０における判断部１２、データ修正部１４、第２判断部１８、データ復元部２０及び第３判断部２２の機能を有するＣＰＵ（図示せず）を備えている。また、ハードディスク装置９４が、図１〜図４に示す教示点修正装置１０における記憶部１６を構成する。
【００７３】
上記したハンドリング作業では、ロボット３２がワークを把持したり解放したりする作業単位毎に作業プログラムを作成する。具体的には、ステップＳ２００〜Ｓ２０５、ステップＳ２０６〜Ｓ２１１、ステップＳ２１２〜Ｓ２１５、ステップＳ２１６〜Ｓ２２１、ステップＳ２２２〜Ｓ２２３、ステップＳ２２４〜Ｓ２２９、ステップＳ２３０〜Ｓ２３５を、それぞれ作業単位として、これら作業単位に個別対応する作業プログラム８０１、８０２、８０３、８０４、８０５、８０６、８０７を、作業プログラム作成装置３０により作成する。
【００７４】
作業プログラム作成装置３０は、作業経路Ｒａに関連する作業プログラム定義データ９６ａ及びワークＷ１に関連する作業部位定義データ９８１（いずれもハードディスク装置９４に格納）を使用して、作業プログラム８０１、８０２、８０３、８０４、８０５、８０６、８０７を作成する。作業プログラム定義データ９６ａは、ロボット３２の動作態様（運動の形式、速度、目標位置、対象物等）を記述するものであり、７個の作業プログラム８０１〜８０７のそれぞれに用意される（つまりオペレータが入力する）。例えば、作業プログラム８０２及び８０３を作成するための作業プログラム定義データ９６ａは、下記の変数を用いて記述される。
【００７５】
％Ｆｉｘｔｕｒｅ１．ＦｒｏｎｔＰｏｓ％
％Ｆｉｘｔｕｒｅ１．ＡｂｏｖｅＰｏｓ％
％Ｆｉｘｔｕｒｅ１．ＡｐｐｒｏａｃｈＰｏｓ％
％Ｆｉｘｔｕｒｅ１．ＧｒｉｐＰｏｓ％
％Ｆｉｘｔｕｒｅ１．ＲｅｌｅａｓｅＰｏｓ％
％Ｆｉｘｔｕｒｅ１．ＲｅｔｒｉｅｖｅＰｏｓ％
％Ｒｏｂｏｔ１．Ｈａｎｄ．Ｏｐｅｎ％
％Ｒｏｂｏｔ１．Ｈａｎｄ．ＯｐｅｎＤｏｎｅ％
％Ｒｏｂｏｔ１．Ｈａｎｄ．Ｃｌｏｓｅ％
％Ｒｏｂｏｔ１．Ｈａｎｄ．ＣｌｏｓｅＤｏｎｅ％
【００７６】
これら変数のうち、「Ｆｉｘｔｕｒｅ１」を含むものは位置決め治具３８ａに関連した変数であり、「Ｒｏｂｏｔ１．Ｈａｎｄ」を含むものはロボット３２のツール３４に関連した変数である。そして、位置決め治具３８ａ関連の変数はいずれも、作業プログラム８０２及び８０３に含まれる複数の教示点の位置データに相当し、それぞれ「ＦｒｏｎｔＰｏｓ」、「ＡｂｏｖｅＰｏｓ」、「ＡｐｐｒｏａｃｈＰｏｓ」、「ＧｒｉｐＰｏｓ」、「ＲｅｌｅａｓｅＰｏｓ」、「ＲｅｔｒｉｅｖｅＰｏｓ」の名称が付されている。また、ツール３４関連の変数はいずれも、ツール３４の制御信号に相当し、それぞれ「Ｏｐｅｎ」、「ＯｐｅｎＤｏｎｅ」、「Ｃｌｏｓｅ」、「ＣｌｏｓｅＤｏｎｅ」の名称が付されている。
【００７７】
作業部位定義データ９８１は、上記した各変数に代入されるべき教示点の位置データ及びツール制御信号を記述するものであり、やはり７個の作業プログラム８０１〜８０７のそれぞれに用意される（つまりオペレータが入力する）。ここで、上記した７個の作業プログラムのうち、作業プログラム８０１にはパレットＰ１に関連する位置データが記述され、作業プログラム８０２及び８０３には位置決め治具３８ａに関連する位置データが記述され、作業プログラム８０４及び８０６には加工機械４２のチャックに関連する位置データが記述され、作業プログラム８０７にはパレットＰ３に関連する位置データが記述される。これら位置データは、教示点の空間上の位置を示すものであって、生産システム内の基準となる１つの直交座標系において位置を表すＸ、Ｙ、Ｚ値及び姿勢を表すＷ（ヨー）、Ｐ（ピッチ）、Ｒ（ロー）値を含む（このような位置データを本願では「直交形式」データと称する）。なお、位置データを、ロボット３２の個々の制御軸の動作角度で記述することもできる（このような位置データを本願では「各軸形式」データと称する）。
【００７８】
作業プログラム作成装置３０は、例えば、上記した作業プログラム定義データ９６ａ及び作業部位定義データ９８１を使用して、以下の作業プログラム８０２及び８０３を作成する。
【００７９】
〔作業プログラム８０２〕
１：カクジク イチ［１：ＦｒｏｎｔＰｏｓ］ １００％ ナメラカ１００
２：カクジク イチ［２：ＡｂｏｖｅＰｏｓ］ １００％ ナメラカ１００
３：チョクセン イチ［３：ＡｐｐｒｏａｃｈＰｏｓ］ １０００ｍｍ／ｓｅｃ イチギメ
４：チョクセン イチ［４：ＲｅｌｅａｓｅＰｏｓ］ ２００ｍｍ／ｓｅｃ イチギメ
５：ＲＤＯ［１０］＝オン
６：タイキ ＲＤＩ［１０］＝オン
７：チョクセン イチ［５：ＲｅｔｒｉｅｖｅＰｏｓ］ ４００ｍｍ／ｓｅｃ イチギメ
イチ［１：ＦｒｏｎｔＰｏｓ］｛Ｘ＝１６８８．４０ｍｍ，Ｙ＝３０．３０ｍｍ，Ｚ＝１３３１．４５ｍｍ，Ｗ＝６４．６２ｄｅｇ，Ｐ＝−８５．６０ｄｅｇ，Ｒ＝１１６．３５ｄｅｇ｝；
イチ［２：ＡｂｏｖｅＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１７１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
イチ［３：ＡｐｐｒｏａｃｈＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１４１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
イチ［４：ＲｅｌｅａｓｅＰｏｓ］｛Ｘ＝１６７４．５１ｍｍ，Ｙ＝−１２．９１ｍｍ，Ｚ＝１３１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
イチ［５：ＲｅｔｒｉｅｖｅＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１４１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
【００８０】
〔作業プログラム８０３〕
１：カクジク イチ［１：ＦｒｏｎｔＰｏｓ］ １００％ ナメラカ１００
２：カクジク イチ［２：ＡｂｏｖｅＰｏｓ］ １００％ ナメラカ１００
３：ＲＤＯ［１０］＝オン
４：タイキ ＲＤＩ［１０］＝オン
５：チョクセン イチ［３：ＡｐｐｒｏａｃｈＰｏｓ］ １０００ｍｍ／ｓｅｃ イチギメ
６：チョクセン イチ［４：ＧｒｉｐＰｏｓ］ ２００ｍｍ／ｓｅｃ イチギメ
７：ＲＤＯ［１１］＝オン
８：タイキ ＲＤＩ［１１］＝オン
９：チョクセン イチ［５：ＲｅｔｒｉｅｖｅＰｏｓ］ ４００ｍｍ／ｓｅｃ イチギメ
イチ［１：ＦｒｏｎｔＰｏｓ］｛Ｘ＝１６８８．４０ｍｍ，Ｙ＝３０．３０ｍｍ，Ｚ＝１３３１．４５ｍｍ，Ｗ＝６４．６２ｄｅｇ，Ｐ＝−８５．６０ｄｅｇ，Ｒ＝１１６．３５ｄｅｇ｝；
イチ［２：ＡｂｏｖｅＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１７１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
イチ［３：ＡｐｐｒｏａｃｈＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１４１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
イチ［４：ＧｒｉｐＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１３１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
イチ［５：ＲｅｔｒｉｅｖｅＰｏｓ］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１４１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
【００８１】
このように、教示点「ＦｒｏｎｔＰｏｓ」、「ＡｂｏｖｅＰｏｓ」、「ＡｐｐｒｏａｃｈＰｏｓ」、「ＲｅｔｒｉｅｖｅＰｏｓ」は、作業プログラム８０２及び８０３の両方で用いられている。また、教示点「ＲｅｌｅａｓｅＰｏｓ」は作業プログラム８０２のみで用いられており、教示点「ＧｒｉｐＰｏｓ」は作業プログラム８０３のみで用いられており、いずれも、作業プログラム内ではイチ［４］として記述される。
【００８２】
また、ＲｅｌｅａｓｅＰｏｓ（つまり「解放位置」）の位置データは、Ｘ＝１６７４．５１、Ｙ＝−１２．９１であるのに対し、ＧｒｉｐＰｏｓ（つまり「把持位置」）の位置データは、Ｘ＝１６７９．５１、Ｙ＝−１７．９１であって、これら教示点間でＸ値及びＹ値の双方に５ｍｍの差がある。これは、作業プログラム８０１内のステップＳ２０４でツール３４がワークＷ１を把持する際に、把持位置にＸ方向及びＹ方向へ５ｍｍのずれが生じていたことを意味する。つまり、本来はＲｅｌｅａｓｅＰｏｓとＧｒｉｐＰｏｓは同じ位置であるが、この把持位置のずれ（例えばオペレータが目視で測定する）を相殺するために、後続する作業プログラム８０２内のステップＳ２０８における解放位置では、ＲｅｌｅａｓｅＰｏｓの位置データをＧｒｉｐＰｏｓに対しＸ、Ｙのいずれも５ｍｍだけ意図的にずらして教示する。その結果、ステップＳ２０８では、ＧｒｉｐＰｏｓと同じ位置でワークＷ１が解放される。
【００８３】
さらに、ＡｂｏｖｅＰｏｓ、ＡｐｐｒｏａｃｈＰｏｓ、ＧｒｉｐＰｏｓ、ＲｅｔｒｉｅｖｅＰｏｓの位置データに関しては、ＡｂｏｖｅＰｏｓとＡｐｐｒｏａｃｈＰｏｓとはＺ値に３００ｍｍの差があり、ＡｐｐｒｏａｃｈＰｏｓとＧｒｉｐＰｏｓとはＺ値に１００ｍｍの差があり、ＡｐｐｒｏａｃｈＰｏｓとＲｅｔｒｉｅｖｅＰｏｓとは全ての値が同一である。このように、上記した複数の教示点の間には、ロボットの作業に対応した一定の相対位置関係（つまり教示点ルール）が存在する。
【００８４】
上記した位置データに関する教示点ルール１０２は、例えば以下の記述により定義される。
<OBJECT class="FIXTURE" name="Fixture1">
<RULES>
<RULE relation="EQ" sub="ReleasePos.X" main="GripPos.X" unit="mm">5</RULE>
<RULE relation="EQ" sub="ReleasePos.Y" main="GripPos.Y" unit="mm">-5</RULE>
<RULE relation="EQ" sub="AbovePos.Z" main="ApproachPos.Z" unit="mm">-300</RULE> <RULE relation="EQ" sub="ApproachPos.Z" main="GripPos.Z" unit="mm">-100</RULE>
<RULE relation="EQ" sub="RetrievePos.X" main="ApproachPos.X">0</RULE>
<RULE relation="EQ" sub="RetrievePos.Y" main="ApproachPos.Y">0</RULE>
<RULE relation="EQ" sub="RetrievePos.Z" main="ApproachPos.Z">0</RULE>
<RULE relation="EQ" sub="RetrievePos.W" main="ApproachPos.W">0</RULE>
<RULE relation="EQ" sub="RetrievePos.P" main="ApproachPos.P">0</RULE>
<RULE relation="EQ" sub="RetrievePos.R" main="ApproachPos.R">0</RULE>
<RANGE relation="GT" value="GripPos.Z" unit="mm">1000</RULE>
<RANGE relation="LT" value="GripPos.Z" unit="mm">1350</RULE>
<RANGE2 relation="GT" value1="GripPos.Z" value2="ApproachPos.Z" unit="mm">100</RANGE2>
<RANGE2 relation="LT" value1="GripPos.Z" value2="ApproachPos.Z" unit="mm">500</RANGE2>
</RULES>
【００８５】
上記一連の教示点ルールのうち、<RULE>は、２つの変数（すなわち教示点の位置データ）の大小関係及び差の値（つまり距離）を定義する。例えば、<RULE relation="EQ" sub="a" main="b" unit="mm">c</RULE>は、ｂ−ａ＝ｃの関係があること、及び差の単位がｍｍであることを定義している。関係性を表すrelation=の項目では、EQ、GE、GT、LE、LT、NEのいずれかを指定でき、これらはそれぞれ、ｂ−ａ＝ｃ、ｂ−ａ≧ｃ、ｂ−ａ＞ｃ、ｂ−ａ≦ｃ、ｂ−ａ＜ｃ、ｂ−ａ＜＞ｃ（ｂ−ａはｃと異なる）を意味する。
【００８６】
<RULE>を満たさない場合は、main=で表す引数の値を基準として、sub=で表す引数の値を、<RULE>を満たすように修正する。例えば<RULE relation="EQ" sub="ReleasePos.X" main="GripPos.X" unit="mm">5</RULE>の教示点ルール（すなわちGripPos.X-ReleasePos.X=5）が満たされなかった場合に、修正される値はGripPos.XではなくReleasePos.Xである。このような定義手法により、２つの教示点の修正の相対重要度を規定することができる。つまり、修正の重要度が高い教示点をmain=側に記述し、修正の重要度が低い教示点をsub=側に記述することで、重要度の低い修正に随伴して重要度の高い修正が行われることが防止される。
【００８７】
また、<RULE>は定義順（すなわち記述順）に処理される。例えば上記の例では、最初の教示点ルール（GripPos.X-ReleasePos.X=5）に従い、ReleasePos.Xの値はGripPos.X-5である必要があり、そうでなければReleasePos.Xが修正される。続いて、第２の教示点ルール（GripPos.Y-ReleasePos.Y=-5）に従い、ReleasePos.Yの値はGripPos.Y+5である必要があり、そうでなければReleasePos.Yが修正される。以下、記述順に、教示点ルールを満たしているか否かが検討される。このような定義手法により、直接的又は間接的に所定の相対位置関係を有する全ての教示点に対し、位置データの修正を指定順序で連鎖的に実施することができる。なお上記例では、GripPos.Xが、前述した「第１教示点の位置データ」に相当する。
【００８８】
上記一連の教示点ルールのうち、<RANGE>は、１つの変数（すなわち教示点の位置データ）の許容範囲を定義する。例えば上記記述によれば、GripPos.Zの値は、１０００ｍｍよりも大きく、かつ１３５０ｍｍよりも小さくなければならないことが規定される。この教示点ルール<RANGE>は、記述順に関わらず、前述した教示点ルール<RULE>よりも優先度が高いものである。つまり、例えば<RULE>に従ってGripPos.Zの値を修正したときに１０００ｍｍ以下又は１３５０ｍｍ以上になってしまう場合には、<RANGE>の規定によりその修正は行われず、修正前のGripPos.Zの値が維持される。
【００８９】
上記一連の教示点ルールのうち、<RANGE2>は、２つの変数（すなわち教示点の位置データ）の差（つまり距離）の許容範囲を定義する。例えば上記記述によれば、GripPos.Zの値とApproachPos.Zの値との差が、１００ｍｍよりも大きく、かつ５００ｍｍよりも小さくなければならないことが規定される。つまり、ロボット３２がワークＷ１に接近し始める位置は、ツール３４によるワークＷ１の把持位置から、１００ｍｍよりも大きくかつ５００ｍｍよりも小さい距離だけ離れていなければならない。この教示点ルール<RANGE2>も、前述した教示点ルール<RULE>より優先度が高い。つまり、例えば<RULE>に従ってGripPos.Zの値を修正したときにGripPos.ZとApproachPos.Zとの差が１００ｍｍ以下又は５００ｍｍ以上になってしまう場合には、<RANGE2>の規定によりその修正は行われず、修正前のGripPos.Zの値が維持される。
【００９０】
再び図６を参照すると、作業プログラム作成装置３０は、ネットワークインタフェース７０を経由して、制御装置５０のメモリ６８に格納された作業プログラム８０１、８０２、８０３、８０４、８０５、８０６、８０７（図７）に記述されるプログラム名、教示点名称、行番号及び位置データを、制御プログラム７８（図７）に従って読み取る。そして、作業プログラム作成装置３０は、それら読み取った情報（以下、教示点データと称する）に基づいて、ハードディスク装置９４に格納される教示点データベース１０４（図８）を作成する。例えば、作業プログラム８０２及び８０３に関する教示点データベース１０４は、下表のようになる。
【００９１】
【表１】
2006331188.tif 000003
【００９２】
教示点データベース１０４において、１つの教示点は、データ番号、履歴リンク、作業プログラム名称、行番号、位置名称、座標番号、ツール番号、位置形式、位置データ値を含む。上記例では、作業プログラム名称「PRG802」は作業プログラム８０２を示し、「PRG803」は作業プログラム８０３を示す。行番号は、当該教示点が作業プログラムの何行目に記述されているかを示すもので、１つの作業プログラム内で同じ教示点が複数回使われる場合は、行番号だけが異なる教示点データが複数個、データベース１０４に存在する。座標番号は、教示点の位置データの基準となる座標系を特定する。ツール番号は、ロボットに装着されるツール３４の種類を示すもので、同じ教示点でもツールの種類が異なれば、通常は位置データが異なる。位置形式は、位置データの形式が各軸形式と直交形式とのいずれであるかを示すもので、上記例では直交形式である。位置データは、前述したようにＸ、Ｙ、Ｚ、Ｗ、Ｐ、Ｒ値を含む。
【００９３】
位置名称は、前述した教示点の名称である。同一の教示点には同一の位置名称が付され、異なる教示点には異なる位置名称が付される。同じ位置名称の教示点は、作業プログラム名称、行番号、座標番号、ツール番号、位置形式、位置データ値のいずれかが異なっていたとしても、同じ教示点である。例えば、同じ教示点を、異なる座標系を用いて表すことができる。また、同じ教示点を、異なるツールを装着したロボットの各制御軸の動作角度で表すこともできる。
【００９４】
データ番号は、データベース１０４内での教示点データの記述位置（行）を表す。データベース１０４に新たな教示点データが追加されるたびに、追加した教示点データに新たなデータ番号が昇順で付記される。履歴リンクは、データベース１０４内での教示点データの更新履歴を表示する。教示点データが位置データの修正によって更新されたときには、更新前の教示点データを破棄せずに、更新後の教示点データが新たなデータ番号を付与されてデータベース１０４に追加記載される。このとき、更新前の教示点データの履歴リンクには更新後の教示点データのデータ番号が記入され、更新後の教示点データの履歴リンクには０（最新のデータを意味する）が記入される。このようにして、１つの教示点の教示点データが、初期設定及び全ての更新設定の間で互いに関連付けて記録される。
【００９５】
上記構成において、作業プログラム作成装置３０は、制御プログラム７８に従いネットワークインタフェース７０を経由して、ロボット３２を実際に動作させている作業プログラムの個々の教示点の位置データと、教示点データベース１０４に記憶されている対応の教示点データとを、常時比較する。そして、作業プログラムの少なくとも１つの教示点の位置データが、教示点データベース１０４内の対応の教示点データと一致しないことが検出されると、作業プログラム作成装置３０は、教示点ルール１０２に従い、教示点の自動修正を開始する。ここで、修正前の教示点データベース１０４は、コピーされて、保存された教示点データベース１０６（図８）として記憶される。保存された教示点データベース１０６は、教示点の自動修正をキャンセルする必要が生じたときに使用される。
【００９６】
例えば、作業の途中で、オペレータが教示操作盤９２を使ってロボット３２を手動モードで動作させ、初期設定された教示点のうち、作業プログラム８０３におけるＧｒｉｐＰｏｓの位置を、下記のように修正したと仮定する。
ＧｒｉｐＰｏｓの位置データ：
Ｘ＝１６７０．５１ｍｍ，Ｙ＝−２７．９１ｍｍ，Ｚ＝１０１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ
【００９７】
この場合、まず教示ルール<RANGE>及び<RANGE2>によって、ＧｒｉｐＰｏｓの位置データの修正の妥当性が検証される。修正後のＺ値は、１０００ｍｍより大きく１３５０ｍｍより小さいから、<RANGE>を満たしており、またＡｐｐｒｏａｃｈＰｏｓ．Ｚとの差が４００ｍｍであるから、<RANGE2>も満たしている。
【００９８】
次に、教示ルール<RULE>の記述順に、修正後のＧｒｉｐＰｏｓが規定の相対位置関係を満たしているか否かを検証する。まず１番目と２番目の<RULE>により、ＲｅｌｅａｓＰｏｓの位置データが下記のように修正される。
ＲｅｌｅａｓｅＰｏｓの位置データ：
Ｘ＝１６６５．５１ｍｍ，Ｙ＝−２２．９１ｍｍ，Ｚ＝１３１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ
【００９９】
また、４番目の<RULE>により、ＡｐｐｒｏａｃｈＰｏｓの位置データが下記のように修正される。
ＡｐｐｒｏａｃｈＰｏｓの位置データ：
Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１１１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ
【０１００】
さらに、５〜１０番目の<RULE>により、ＲｅｔｒｉｅｖｅＰｏｓの位置データが下記のように修正される。
ＲｅｔｒｉｅｖｅＰｏｓの位置データ：
Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１１１６．０７ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ
【０１０１】
以上の修正により、教示点データベース１０４では、データ番号３、４、５、８、９、１０の教示点データが更新される。更新された教示点データベース１０４を下表に示す。
【０１０２】
【表２】
2006331188.tif 000004
【０１０３】
上記のように、更新された教示点データが新たなデータ番号１１〜１６を付されてデータベース１０４に記録され、更新前の教示点データの履歴リンク欄に、更新後の対応の教示点データのデータ番号が書き込まれる。データベース１０４内で、履歴リンクが０以外の教示点データは過去のデータであり、履歴リンクが０の教示点データがその時点で有効なデータであることが判る。
【０１０４】
<RULE>による教示点の位置データの修正が完了すると、再び<RANGE>及び<RANGE2>による検証が行われる。上記例では、修正完了後も<RANGE>及び<RANGE2>の双方が満たされている。そこで、更新した教示点データベース１０４の内容に一致するように、作業プログラム作成装置３０から教示点修正コマンドが、制御装置５０のネットワークインタフェース７０を介してメモリ６８内の制御プログラム７８に送られ、作業プログラム８０２の３行目のＡｐｐｒｏａｃｈＰｏｓ、４行目のＲｅｌｅａｓｅＰｏｓ及び７行目のＲｅｔｒｉｅｖｅＰｏｓ、並びに作業プログラム８０３の５行目のＡｐｐｒｏａｃｈＰｏｓ、９行目のＲｅｔｒｉｅｖｅＰｏｓの、それぞれの位置データを修正する。さらに作業プログラム作成装置３０は、メモリ６８内の全ての作業プログラムに含まれる全ての教示点の位置データと、更新した教示点データベース１０４の対応の教示点データとが、互いに一致しているか否かを、ネットワークインタフェース７０を介して確認し、内容が異なる教示点について、教示点修正コマンドを制御プログラム７８に送る。制御装置５０は、制御プログラム７８に従い、修正された教示点の作業プログラム名称及び位置名称を、教示操作盤９２の表示器９２に表示する。
【０１０５】
<RULE>による教示点の位置データの修正が完了した時点で、<RANGE>及び<RANGE2>のいずれかを満たさない修正結果が生じている場合は、全ての修正をキャンセルする。具体的には、保存された教示点データベース１０６を用いて教示点データベース１０４を更新前の内容に書き換え、さらに、書き換えた教示点データベース１０４の内容に一致するように、作業プログラム作成装置３０から教示点修正コマンドが、制御装置５０のネットワークインタフェース７０を介してメモリ６８内の制御プログラム７８に送られ、作業プログラム８０３のＧｒｉｐＰｏｓの位置データが修正前の値に書き戻される。制御装置５０は、制御プログラム７８に従い、作業プログラム８０３のＧｒｉｐＰｏｓが書き戻されたことを教示操作盤９２に表示する。書き戻しによって不要となった保存された教示点データベース１０６は、ハードディスク装置９４から削除される。
【０１０６】
オペレータが上記したような教示点の修正作業を複数回行った場合には、ハードディスク装置９４において、教示点データベース１０４を更新する度に更新前のデータベ−ス１０４が記憶され、複数の保存された教示点データベース１０６がハードディスク装置９４に格納される。オペレータは、教示操作盤９２を操作することで、複数の保存された教示点データベース１０６から最適と思われる所望の１つの教示点データベース１０６を選択し、それを用いて、有効な教示点データベース１０４を書き換えることができる。このようにして、オペレータによる教示点の位置データの修正、及びそれに随伴する相関教示点の位置データの自動修正をキャンセルして、任意の時点の教示点データを復元することが可能になる。
【０１０７】
教示点データベース１０４及び保存された教示点データベース１０６の教示点データは、どの時点においても、教示点ルール１０２に適合するものである。また、教示点データベース１０４及び保存された教示点データベース１０６の履歴リンクを参照すれば、個々の教示点の位置データの修正経緯が直ちに判明する。したがって、更新履歴を教示操作盤９２の表示器９２ａに表示すれば、オペレータは、所望の教示点に関してどの時点でどのような修正が行われたかを知ることができ、任意の時点の教示点修正をキャンセルすべく、その直前の教示点データベースを複数の保存された教示点データベース１０６から選び出して、この教示点データベース１０６を用いて現在有効な教示点データベース１０４を書き換えることで、必要な教示点データベースを復元することができる。
【０１０８】
１つの教示点の修正がキャンセルされると、関連する全ての教示点の位置データが修正前の値に戻される。また、どの教示点のどの時点の修正をキャンセルしても、全ての教示点は常に教示点ルール１０２を満たしているので、その後の作業の安全が確保される。教示修正作業を長時間行った後には、保存された教示点データベース１０６が大量になり、また個々の教示点データベース１０４及び１０６が、過去の教示点データを大量に記録した過大なものになる。そこで、作業プログラム作成装置３０は、ハードディスク装置９４に格納した保存された教示点データベース１０６の幾つか又は全てを削除できるように構成することが有利である。このとき、削除した教示点データベース１０６までの過去の教示点データを、教示点データベース１０４及び１０６から削除する操作を、教示操作盤９２を用いて制御プログラム７８に指示するように構成することもできる。さらに、教示点ルール１０２が改定されたときには、教示点データベース１０４及び１０６の全てをハードディスク装置９４から削除し、新たに、メモリ６８内の全ての作業プログラムの内容に基づき教示点データベース１０４を作成し直す操作を、教示操作盤９２を用いて制御プログラム７８に指示するように構成することができる。
【０１０９】
以上、本願発明の好適な実施形態を説明したが、作業プログラム作成装置（教示点修正装置）３０をパーソナルコンピュータで構成できることから、本願発明は下記のように規定することもできる。
すなわち、本発明は、ロボット３２の作業プログラム８０、８２における教示点を修正するために、コンピュータ３０を、作業プログラム８０、８２に含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部１２、及び判断部１２が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルール１０２に従い、第１教示点に対して規定の相対位置関係を有する相関教示点の位置データを修正するデータ修正部１４として機能させるための教示点修正プログラムである。
【０１１０】
また、本発明は、ロボット３２の作業プログラム８０、８２における教示点を修正するために、コンピュータ３０を、作業プログラムに含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断する判断部１２、及び判断部１２が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、複数の異なる教示点の相対位置関係を予め規定した教示点ルール１０２に従い、第１教示点に対して規定の相対位置関係を有する相関教示点の位置データを修正するデータ修正部１４として機能させるための教示点修正プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【０１１１】
また、本発明は、ロボット３２の作業プログラム８０、８２における教示点を、コンピュータ３０を用いて修正するための教示点修正方法において、コンピュータ３０の判断部１２が、作業プログラム８０、８２に含まれる予め教示した複数の異なる教示点に関し、いずれかの教示点の位置データが修正されたか否かを判断するステップと、判断部１２が、複数の異なる教示点のうち第１教示点の位置データが修正されたと判断したときに、コンピュータ３０のデータ修正部１４が、複数の異なる教示点の相対位置関係を予め規定した教示点ルール１０２に従い、第１教示点に対して規定の相対位置関係を有する相関教示点の位置データを修正するステップとを具備する教示点修正方法である。
【図面の簡単な説明】
【０１１２】
【図１】本発明に係る教示点修正装置の基本構成を示す機能ブロック図である。
【図２】図１の教示点修正装置の第１の発展的構成を示す機能ブロック図である。
【図３】図１の教示点修正装置の第２の発展的構成を示す機能ブロック図である。
【図４】図１の教示点修正装置の第３の発展的構成を示す機能ブロック図である。
【図５】本発明の一実施形態による教示点修正装置を組み込んだ、ロボットを用いた生産システムの全体概要図である。
【図６】図５の生産システムにおける制御系の構成を示すブロック図である。
【図７】図６の制御系における制御装置のメモリの図である。
【図８】図６の制御系における教示点修正装置のハードディスク装置の図である。
【図９】図５の生産システムにおいてロボットが実行する作業の手順を示すフローチャートである。
【図１０】図５の生産システムにおいてロボットが実行する作業の手順を示すフローチャートである。
【図１１】図５の生産システムにおいてロボットが実行する作業の手順を示すフローチャートである。
【図１２】図５の生産システムにおいてロボットが実行する作業の手順を破線矢印で示す概要図である。
【図１３】図５の生産システムにおいてロボットが実行する作業の手順を破線矢印で示す概要図である。
【図１４】図５の生産システムにおいてロボットが実行する作業の手順を破線矢印で示す概要図である。
【符号の説明】
【０１１３】
１０    教示点修正装置
１２    判断部
１４    データ修正部
１６    記憶部
１８    第２判断部
２０    データ復元部
２２    第３判断部
３０    作業プログラム作成装置（教示点修正装置）
３２    ロボット
３４    ツール
３８、４０    仮置台
４２、４４    加工機械
５０    制御装置
６８    メモリ
８０、８２    作業プログラム
９４    ハードディスク装置
９６    作業プログラム定義データ
９８    作業部位定義データ
１０２    教示点ルール
１０４    教示点データベース
１０６    保存された教示点データベース
【図１】
2006331188.tif 000005
【図２】
2006331188.tif 000006
【図３】
2006331188.tif 000007
【図４】
2006331188.tif 000008
【図５】
2006331188.tif 000009
【図６】
2006331188.tif 000010
【図７】
2006331188.tif 000011
【図８】
2006331188.tif 000012
【図９】
2006331188.tif 000013
【図１０】
2006331188.tif 000014
【図１１】
2006331188.tif 000015
【図１２】
2006331188.tif 000016
【図１３】
2006331188.tif 000017
【図１４】
2006331188.tif 000018