(57)【特許請求の範囲】
【請求項１】
作業ツールと、多関節のロボットと、前記作業ツールによる作業が行われる複数の作業点が予め設定されたワークと、障害物と、を含む仮想環境にて、前記作業ツールがそれぞれの前記作業点に対応するアプローチ点を通過しつつ前記作業点に対して到達および離反するように前記ロボットの教示データを生成する教示データ生成部と、
隣接する前記アプローチ点どうしを結ぶ仮想線が前記ワークまたは前記障害物に干渉するか否かを判定する判定部と、
前記仮想線が前記ワークまたは前記障害物に干渉すると前記判定部が判定した場合に、当該仮想線に係る前記アプローチ点の位置を変更する教示データ更新部と、
前記作業点の作業順序を決定する決定部と
を備え、
前記決定部は、
前記アプローチ点から前記作業点へ向かう方向であるアプローチ方向に基づいて前記作業点をグループ分けし、
前記ロボットの基端の関節における回転軸の回転方向が一定となる順序で前記グループごとに前記作業点の作業順序を決定し、
前記教示データ生成部は、
当該作業順序に基づいて前記教示データを生成すること
を特徴とするティーチングシステム。
【請求項２】
前記教示データ更新部は、
前記作業点から前記アプローチ点へ向かう方向へ前記アプローチ点の位置をシフトさせ、
前記判定部は、
前記シフトされたアプローチ点どうしを結ぶ仮想線が前記ワークまたは前記障害物に干渉するか否かを判定すること
を特徴とする請求項１に記載のティーチングシステム。
【請求項３】
前記教示データ更新部は、
前記シフトされたアプローチ点を含んだ前記仮想線よりも前記ワークまたは前記障害物から遠い位置に経由点を生成し、前記作業ツールが前記シフトされたアプローチ点の間で当該経由点を通過するように前記教示データを更新し、
前記判定部は、
当該経由点を通過する前記仮想線が前記ワークまたは前記障害物に干渉するか否かを判定すること
を特徴とする請求項２に記載のティーチングシステム。
【請求項４】
前記判定部は、
前記教示データにおいて前記作業ツールが前記ワークまたは前記障害物と干渉するか否かをさらに判定し、
前記教示データ更新部は、
前記作業ツールが前記ワークまたは前記障害物と干渉すると前記判定部が判定した場合に、前記アプローチ点から前記作業点へ向かう方向または前記作業点から前記アプローチ点へ向かう方向へ前記アプローチ点の位置をシフトさせること
を特徴とする請求項１〜３のいずれか一つに記載のティーチングシステム。
【請求項５】
前記仮想環境における前記作業ツールと、前記ロボットと、前記ワークとを含む仮想画像を生成する画像生成部を備えること
を特徴とする請求項１〜４のいずれか一つに記載のティーチングシステム。
【請求項６】
請求項１〜５のいずれか一つに記載のティーチングシステムによって生成された前記教示データに従って前記ワークに対して加工を行うこと
を特徴とするロボットシステム。
【請求項７】
作業ツールと、多関節のロボットと、前記作業ツールによる作業が行われる複数の作業点が予め設定されたワークとを含む仮想環境にて、前記作業ツールがそれぞれの前記作業点に対応するアプローチ点を通過しつつ前記作業点に対して到達および離反するように前記ロボットの教示データを生成する教示データ生成工程と、
隣接する前記アプローチ点どうしを結ぶ仮想線が前記ワークまたは前記障害物に干渉するか否かを判定する判定工程と、
前記仮想線が前記ワークまたは前記障害物に干渉すると前記判定工程で判定された場合に、当該仮想線に係る前記アプローチ点の位置を変更する教示データ更新工程と、
前記作業点の作業順序を決定する決定工程と
を含み、
前記決定工程は、
前記アプローチ点から前記作業点へ向かう方向であるアプローチ方向に基づいて前記作業点をグループ分けし、
前記ロボットの基端の関節における回転軸の回転方向が一定となる順序で前記グループごとに前記作業点の作業順序を決定し、
前記教示データ生成工程は、
当該作業順序に基づいて前記教示データを生成すること
を特徴とするティーチング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、ティーチングシステム、ロボットシステムおよびティーチング方法に関する。
【背景技術】
【０００２】
従来、ロボットの動作をシミュレートしながら教示データを生成するティーチングシステムが知られている。かかるティーチングシステムは、実際の作業現場を再構成した仮想空間上でロボットなどの３次元モデルを動作させつつ教示データを生成する。
【０００３】
また、かかるティーチングシステムとして、操作者に指定された障害物からの退避位置をたどりつつ対象物へアクセスする場合のロボットの動作経路データを教示データとするものがある（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２４８６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来技術では、ティーチングシステムを操作して教示データを生成する操作者の作業負荷や教示データ生成の所要時間を低減するうえで更なる改善の余地がある。たとえば、上記した従来技術では、ロボットの動作経路における多数の教示点を操作者が入力する必要があり、操作者の作業負荷が高く、教示データ生成にも時間を要する。
【０００６】
実施形態の一態様は、上記に鑑みてなされたものであって、教示データ生成に関する作業負荷や所要時間を低減することができるティーチングシステム、ロボットシステムおよびティーチング方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態の一態様に係るティーチングシステムは、教示データ生成部と、判定部と、教示データ更新部と、決定部とを備える。前記教示データ生成部は、作業ツールと、多関節のロボットと、前記作業ツールによる作業が行われる複数の作業点が予め設定されたワークとを含む仮想環境にて、前記作業ツールがそれぞれの前記作業点に対応するアプローチ点を通過しつつ前記作業点に対して到達および離反するように前記ロボットの教示データを生成する。前記判定部は、隣接する前記アプローチ点どうしを結ぶ仮想線が前記ワークまたは障害物に干渉するか否かを判定する。前記教示データ更新部は、前記仮想線が前記ワークまたは前記障害物に干渉すると前記判定部が判定した場合に、当該仮想線に係る前記アプローチ点の位置を変更する。前記決定部は、前記作業点の作業順序を決定する。また、前記決定部は、前記アプローチ点から前記作業点へ向かう方向であるアプローチ方向に基づいて前記作業点をグループ分けし、前記ロボットの基端の関節における回転軸の回転方向が一定となる順序で前記グループごとに前記作業点の作業順序を決定する。前記教示データ生成部は、当該作業順序に基づいて前記教示データを生成する。
【発明の効果】
【０００８】
実施形態の一態様によれば、教示データ生成に関する作業負荷や所要時間を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係るティーチングシステムを含むロボットシステムの全体構成を示す模式図である。
【図２】図２は、実施形態に係るティーチング方法を示す模式図である。
【図３】図３は、実施形態に係るティーチングシステムの構成を示すブロック図である。
【図４】図４は、表示部へ表示される仮想画像の一例を示す模式図である。
【図５】図５は、アプローチ点を設定する操作の説明図である。
【図６Ａ】図６Ａは、アプローチ点の位置の変更方法を説明するための説明図（その１）である。
【図６Ｂ】図６Ｂは、アプローチ点の位置の変更方法を説明するための説明図（その２）である。
【図６Ｃ】図６Ｃは、アプローチ点の位置の変更方法を説明するための説明図（その３）である。
【図６Ｄ】図６Ｄは、アプローチ点の位置の変更方法を説明するための説明図（その４）である。
【図７】図７は、作業点の作業順序を決定する操作の説明図である。
【図８】図８は、実施形態に係るティーチング方法を実行する処理手順を示すフローチャートである。
【図９Ａ】図９Ａは、変形例（その１）に係るアプローチ点の位置の変更方法を説明するための説明図（その１）である。
【図９Ｂ】図９Ｂは、変形例（その１）に係るアプローチ点の位置の変更方法を説明するための説明図（その２）である。
【図９Ｃ】図９Ｃは、変形例（その１）に係るアプローチ点の位置の変更方法を説明するための説明図（その３）である。
【図９Ｄ】図９Ｄは、変形例（その１）に係るアプローチ点の位置の変更方法を説明するための説明図（その４）である。
【図１０】図１０は、変形例（その２）に係るロボットを示す模式図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本願の開示するティーチングシステム、ロボットシステムおよびティーチング方法の実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【００１１】
また、以下では、ディスプレイ等の表示部に対し、ロボットの３次元モデルのグラフィック画像を表示するティーチングシステムを例に挙げて説明を行う。なお、かかる３次元モデルのグラフィック画像については、以下、「仮想画像」と記載する場合がある。
【００１２】
また、以下ではスポット溶接ロボットを含む溶接ロボットシステムを例に挙げて説明を行う。しかしながら、これに限らず、溶接ロボットシステムはたとえばアーク溶接やネジ締め加工、穴あけ加工、シール材などの塗布加工、研磨加工といった点、線または面加工が可能なロボットを含む加工ロボットシステムにも置換可能である。以下では、スポット溶接ロボットについては「ロボット」と、溶接ロボットシステムについては「ロボットシステム」と、それぞれ記載する。
【００１３】
図１は、実施形態に係るティーチングシステム１０を含むロボットシステム１の全体構成を示す模式図である。
【００１４】
図１に示すように、ロボットシステム１は、ティーチングシステム１０と、ロボット制御装置２０と、ロボット３０とを備える。また、ティーチングシステム１０は、ティーチング制御装置１１と、表示部１２と、操作部１３と、ジョブ情報ＤＢ（データベース）１４とを備える。
【００１５】
ティーチング制御装置１１は、ティーチングシステム１０全体を制御するコントローラであり、演算処理装置や記憶装置などを含んで構成される。また、ティーチング制御装置１１は、表示部１２をはじめとするティーチングシステム１０の各種装置と情報伝達可能に接続される。
【００１６】
また、ティーチング制御装置１１は、操作部１３を介したオペレータの操作に基づいてロボット３０等の動作をシミュレート演算した結果を含む仮想画像を表示部１２に対して出力する。ここで、かかる仮想画像には、ロボット３０の加工対象であるワークＷがさらに含まれる。なお、ワークＷは、たとえば、床面などに設置された載置台Ｐによって支持される。
【００１７】
また、ティーチング制御装置１１は、同じく操作部１３を介したオペレータの操作に基づき、仮想画像からロボット３０を動作させるジョブプログラムを生成し、ジョブ情報ＤＢ１４へ登録する。
【００１８】
表示部１２は、いわゆるディスプレイ等の表示デバイスである。また、操作部１３は、マウス等の入力デバイスである。なお、操作部１３は、必ずしもハードウェア部品として構成される必要はなく、たとえば、タッチパネルに表示されたタッチキーなどのソフトウェア部品であってもよい。
【００１９】
ジョブ情報ＤＢ１４は、ロボット３０を動作させるジョブプログラムや、かかるジョブプログラムに含まれる「教示点」等、ティーチングに関する情報が登録されるデータベースである。
【００２０】
ここで、教示点とは、ロボット３０を再生動作させる場合に、ロボット３０の各関節が経由すべき目標位置となる情報であり、たとえば、ロボット３０の各軸を駆動させるサーボモータに設けられた各エンコーダのパルス値として記憶される。ロボット３０は、複数の教示点の情報に基づいて動作するため、ジョブ情報ＤＢ１４にはロボット３０の動き（ジョブ）ごとに複数の教示点が関連付けられて記憶されている。
【００２１】
換言すると、ロボット３０のジョブプログラムには、複数の教示点および各教示点間の補間動作命令やエンドエフェクタへの動作命令などの組合せ情報が含まれている。なお、ロボット３０を再生動作させる場合には、かかるジョブプログラムに基づいてロボット３０が動作される。
【００２２】
ジョブ情報ＤＢ１４は、実際のロボット３０の動作を制御するコントローラであるロボット制御装置２０と情報伝達可能に接続される。ロボット制御装置２０は、かかるジョブ情報ＤＢ１４に登録されたジョブプログラムに基づいてロボット３０の各種動作を制御する。
【００２３】
なお、図１では、ジョブ情報ＤＢ１４（ティーチングシステム１０）がロボット制御装置２０に接続された場合を例にとって示しているが、ジョブ情報ＤＢ１４（ティーチングシステム１０）は、ロボット制御装置２０に必ずしも接続される必要はない。
【００２４】
たとえば、ティーチングシステム１０にて生成されたジョブプログラムを、ＵＳＢ（Universal  Serial  Bus）メモリ等の外部記憶装置を介してロボット制御装置２０内の記憶部（不図示）に保存するようにしてもよい。
【００２５】
なお、図１では、説明をわかりやすくする観点から、ジョブ情報ＤＢ１４とティーチング制御装置１１とを別体で構成した例を示しているが、ジョブ情報ＤＢ１４をティーチング制御装置１１内部の記憶部に記憶させることとしてもよい。
【００２６】
つづいて、ロボット３０の構成について説明する。ロボット３０は、基台部３１と、第１アーム３２と、第２アーム３３と、フランジ部３４と、エンドエフェクタ３５とを備える。
【００２７】
基台部３１は、床面などに固定され、第１アーム３２の基端部を軸Ｓまわりに回転可能（図中の軸Ｓまわりの矢印参照）、かつ、軸Ｌまわりに回転可能に支持する（図中の軸Ｌまわりの矢印参照）。第１アーム３２は、先端部において第２アーム３３の基端部を軸Ｕまわりに回転可能に支持する（図中の軸Ｕまわりの矢印参照）。
【００２８】
第２アーム３３の先端部は、基端部に対して軸Ｒまわりに回転可能に設けられる（図中の軸Ｒまわりの矢印参照）。また、第２アーム３３は、先端部においてフランジ部３４の基端部を軸Ｂまわりに回転可能に支持する（図中の軸Ｂまわりの矢印参照）。フランジ部３４は、先端部においてエンドエフェクタ３５の基端部を軸Ｔまわりに回転可能に支持する（図中の軸Ｔまわりの矢印参照）。
【００２９】
ロボット３０の各関節は、サーボモータなどの駆動源によって駆動され、各駆動源は、ロボット制御装置２０からの動作指示に基づいてロボット３０の各関節を駆動する。
【００３０】
なお、実施形態に係るエンドエフェクタ３５はスポット溶接ガンである。かかるエンドエフェクタ３５は、固定アーム３５１と、可動アーム３５２とを備える。固定アーム３５１は、エンドエフェクタ３５の本体部に固定されつつ先端部で電極Ｅ１を支持する。
【００３１】
可動アーム３５２は、電極Ｅ２を電極Ｅ１に対向させて支持しつつ、エンドエフェクタ３５に設けられた駆動源（不図示）によって電極Ｅ１および電極Ｅ２の間隔を変更可能に設けられる。すなわち、エンドエフェクタ３５は、可動アーム３５２を移動させて電極Ｅ１，Ｅ２でワークＷを押圧挟持してスポット溶接を行う作業ツールである。
【００３２】
ここで、実施形態に係るティーチング方法について図２を用いて説明しておく。図２は、実施形態に係るティーチング方法を示す模式図である。
【００３３】
図２に示すティーチング方法は、たとえばエンドエフェクタ３５（図１参照）など作業ツール（不図示）を、ワークＷに設けられた複数の作業点ＷＰへワークＷへの干渉を回避しつつ到達させる経路を生成するものである。
【００３４】
なお、実施形態に係るワークＷには、図２に示すように、複数の作業点ＷＰおよびアプローチ点Ａがあらかじめ設定されている。図２には、ワークＷが２つの作業点ＷＰｍおよびＷＰｎを有し、作業点ＷＰｍにアプローチ点Ａｍ、作業点ＷＰｎにアプローチ点Ａｎがそれぞれ設定された場合を示している。なお、作業点ＷＰおよびアプローチ点Ａは、上述した教示点の一例である。
【００３５】
ここで、アプローチ点Ａとは、作業ツールが作業点ＷＰへアプローチする移動の起点および終点となる位置のことを指す。したがって、作業ツールは、アプローチ点Ａから作業点ＷＰへ移動し、作業点ＷＰに対する作業の後にかかるアプローチ点Ａに戻る。以下では、アプローチ点Ａから作業点ＷＰまでの経路を「アプローチ経路」、アプローチ経路の距離を「アプローチ距離」、アプローチ点Ａから作業点ＷＰへ向かう方向を「アプローチ方向」と呼ぶことがある。
【００３６】
実施形態に係るティーチング方法では、作業順序が連続する作業点ＷＰのアプローチ点Ａどうしを結ぶ仮想線Ｈを生成し、かかる仮想線Ｈに沿うように作業ツールを移動させるロボット３０（図１参照）の教示データを生成する。
【００３７】
具体的には、図２において、作業点ＷＰの作業順序が作業点ＷＰｍからＷＰｎの場合、作業ツールはアプローチ点Ａｍからアプローチ点Ａｎに至る仮想線Ｈを生成する。しかしながら、仮想線ＨがワークＷに干渉すると、作業ツールがワークＷに干渉することとなる。図２には、仮想線ＨがワークＷに干渉する部位の両端を干渉点ＢＰとして示している。なお、説明をわかりやすくする観点から、図２ではアプローチ点Ａどうしを直線状に結ぶ場合の仮想線Ｈを例にとって示している。
【００３８】
そこで、実施形態に係るティーチング方法では、かかる仮想線ＨをワークＷに干渉しない位置まで退避させ、作業ツールがワークＷに干渉する事態を回避することとした。以下では、実施形態に係るティーチング方法についてさらに具体的に説明する。
【００３９】
実施形態に係るティーチング方法では、仮想線ＨがワークＷに干渉する場合（図２のステップＳ１参照）、アプローチ点Ａをアプローチ方向と平行にシフトする（図２のステップＳ２参照）。そして、仮想線ＨをワークＷに干渉しない位置へ移動させる（図２のステップＳ３参照）。
【００４０】
なお、この場合、図２に示すように、アプローチ点Ａを作業点ＷＰからアプローチ点Ａへ向かう方向へシフトさせることが好ましい。これにより、アプローチ距離の延長だけでワークＷへの干渉を回避する作業ツールの移動経路を生成することができる。図２には、このように移動したアプローチ点ＡｍおよびＡｎを、それぞれアプローチ点Ａｍ’およびＡｎ’として示している。また、移動後の仮想線Ｈを仮想線Ｈ’として示している。
【００４１】
なお、仮想線Ｈの干渉を判定する対象は、ワークＷだけでなくワークＷ以外の障害物であってもよい。また、図２では、説明をわかりやすくする観点から、アプローチ点Ａ（仮想線Ｈ）の移動量を実際よりも誇張して示している。
【００４２】
このように、実施形態に係るティーチング方法では、隣接するアプローチ点Ａどうしを結ぶ仮想線ＨをワークＷに干渉しない位置に退避させ、かかる仮想線Ｈに沿うように作業ツールを移動させることとした。
【００４３】
これにより、ワークＷや障害物への干渉を回避しつつ複数の作業点ＷＰへ到達する作業ツールの移動経路を簡便かつ容易に生成することが可能となる。したがって、教示データ生成に関する作業負荷や所要時間を低減することができる。
【００４４】
なお、図２では、アプローチ点ＡｍおよびＡｎを移動させる場合を例にとって説明したが、これに限らず、アプローチ点ＡｍおよびＡｎのいずれか一方のみを移動させることとしてもよい。
【００４５】
次に、実施形態に係るティーチングシステム１０の構成について、図３を用いて説明する。図３は、実施形態に係るティーチングシステム１０の構成を示すブロック図である。なお、図３では、ティーチングシステム１０の説明に必要な構成要素のみを示しており、一般的な構成要素についての記載を省略している。
【００４６】
また、図３を用いた説明では、主としてティーチング制御装置１１の内部構成について説明することとし、既に図１で示した表示部１２、操作部１３およびジョブ情報ＤＢ１４については説明を簡略化する場合がある。
【００４７】
図３に示すように、ティーチング制御装置１１は、制御部１１１と、記憶部１１２とを備える。制御部１１１は、画像生成部１１１ａと、表示制御部１１１ｂと、操作受付部１１１ｃと、決定部１１１ｄと、教示データ生成部１１１ｅと、判定部１１１ｆと、教示データ更新部１１１ｇと、シミュレート指示部１１１ｈと、ジョブ登録部１１１ｉとを備える。記憶部１１２は、モデル情報１１２ａと、教示点情報１１２ｂとを含む情報を記憶する。
【００４８】
画像生成部１１１ａは、モデル情報１１２ａに基づき、ロボット３０およびワークＷを含む仮想画像を生成する。モデル情報１１２ａは、ロボット３０やワークＷの種別ごとにあらかじめ定義された描画情報を含む情報である。なお、モデル情報１１２ａには、ロボット３０やワークＷ以外にも、障害物を含む周辺物の描画情報も含まれる。さらにモデル情報１１２ａは、作業点ＷＰについてのワークＷ上の位置に関する情報を含んでいる。
【００４９】
また、画像生成部１１１ａは、生成した仮想画像を表示制御部１１１ｂに対して出力する。表示制御部１１１ｂは、画像生成部１１１ａから受け取った仮想画像を表示部１２へ表示させる。
【００５０】
操作受付部１１１ｃは、操作部１３を介して入力されるオペレータの入力操作を受け付け、かかる入力操作がロボット３０のティーチングに関するものであれば、受け付けた入力操作を表示制御部１１１ｂや決定部１１１ｄに対して通知する。
【００５１】
また、操作受付部１１１ｃは、アプローチ点Ａの設定操作を受け付ける。この点の詳細については図５を用いて後述する。また、設定されたアプローチ点Ａの位置情報は、教示データ生成部１１１ｅへ通知される。
【００５２】
また、操作受付部１１１ｃは、入力操作がジョブ登録を指示するものであれば、受け付けた入力操作をジョブ登録部１１１ｉに対して通知する。なお、ジョブ登録を指示する入力操作とは、一例として、表示部１２へ表示された「ジョブ登録」ボタンといった操作部品をクリックする操作である。
【００５３】
決定部１１１ｄは、作業点ＷＰの作業順序を決定する。この点の詳細については、図７を用いて後述する。
【００５４】
教示データ生成部１１１ｅは、操作受付部１１１ｃからのアプローチ点Ａの情報に基づき仮想線Ｈを生成する。そして、教示データ生成部１１１ｅは、エンドエフェクタ３５が仮想線Ｈに沿うように移動しつつ決定部１１１ｄで決定された作業順序で作業点ＷＰに到達する場合のロボット３０の教示データを生成し、判定部１１１ｆへ通知する。
【００５５】
判定部１１１ｆは、モデル情報１１２ａを参照して仮想線ＨがワークＷやワークＷ以外の障害物に干渉するか否かを判定する。なお、判定部１１１ｆは、判定結果を教示データとともに教示データ更新部１１１ｇへ通知する。
【００５６】
教示データ更新部１１１ｇは、仮想線ＨがワークＷや障害物に干渉すると判定部１１１ｆで判定された場合に、仮想線ＨをワークＷから退避させて教示データを更新し、教示点情報１１２ｂとして記憶させる。一方、仮想線ＨがワークＷや障害物に干渉しないと判定部１１１ｆで判定された場合には、仮想線Ｈに関する教示データを更新することなく教示点情報１１２ｂとして記憶させる。なお、この点の詳細は、図６Ａ以降を用いて後述する。
【００５７】
また、教示データ更新部１１１ｇは、シミュレーション動作を指示する入力操作を受け取った場合に、ロボット３０の教示データをシミュレート指示部１１１ｈに対して通知する。シミュレート指示部１１１ｈは、教示データ更新部１１１ｇから通知された教示データの内容に対応して位置や姿勢を変更したロボット３０の仮想画像を再生成させるシミュレート指示を、画像生成部１１１ａに対して通知する。
【００５８】
そして、画像生成部１１１ａは、シミュレート指示部１１１ｈから受け取ったシミュレート指示に基づいてロボット３０およびワークＷを含む仮想画像を再生成し、表示制御部１１１ｂを介して表示部１２へ表示させる。これにより、ロボット３０およびワークＷを含む仮想画像が連続して変化するシミュレーション動作が表示されることとなる。
【００５９】
ジョブ登録部１１１ｉは、操作受付部１１１ｃからジョブ登録を指示する入力操作を受け取った場合に、教示点情報１１２ｂに基づいて、実際のロボット３０を動作させるジョブプログラムを生成し、ジョブ情報ＤＢ１４へ登録する。
【００６０】
記憶部１１２は、ハードディスクドライブや不揮発性メモリといった記憶デバイスであり、モデル情報１１２ａおよび教示点情報１１２ｂを含む情報を記憶する。なお、モデル情報１１２ａおよび教示点情報１１２ｂの内容については既に説明したため、ここでの記載を省略する。
【００６１】
次に、図４〜図８を用いて、上述した操作受付部１１１ｃ〜教示データ更新部１１１ｇまでの各処理部が実行する一連の処理について詳細に説明する。
【００６２】
まず、画像生成部１１１ａが生成し、表示制御部１１１ｂを介して表示部１２へ表示される仮想画像の一例について図４を用いて説明する。図４は、表示部１２へ表示される仮想画像の一例を示す模式図である。なお、本図（図４）以降に示すロボットおよびワークは表示部１２へ表示される仮想画像上のものであるが、符号についてはこれまで同様「３０」および「Ｗ」をそれぞれ付して説明を進める。
【００６３】
図４に示すように、ロボット３０およびワークＷを含む仮想画像は、表示部１２の表示領域の一つである表示ウィンドウ１２０上に表示される。具体的には、仮想画像は、表示ウィンドウ１２０上の仮想画像領域１２１に表示される。また、表示ウィンドウ１２０は、ボタン１２２やダイアログボックス１２３などを含むＧＵＩ（Graphical  User  Interface）ウィジェットである。
【００６４】
なお、図４に示すように、仮想画像領域１２１の左下には直交座標系が表示されている。かかる直交座標系は仮想画像内の基準座標であり、水平方向や垂直方向の基準となる。具体的には、基準座標系のＸ軸およびＹ軸で規定されるＸＹ平面に平行な方向が水平方向となり、基準座標系のＺ軸に平行な方向が垂直方向となる。以下、かかる座標系を「ワールド座標系」と記載する。
【００６５】
また、以下では、ワールド座標系についてのＸ軸の正方向をロボット３０の「前方」、負方向を「後方」、Ｙ軸の正方向を「左方」、負方向を「右方」、Ｚ軸の正方向を「上方」、負方向を「下方」として示す場合がある。
【００６６】
また、図４に示すように、電極Ｅ１の先端には、「Ｒ座標系」が表示されている。Ｒ座標系はエンドエフェクタ３５の基準座標である。実施形態に係るＲ座標系は、Ｒｘ軸が軸Ｔに平行であり、Ｒｚ軸が電極Ｅ２へ向けて定められた右手系をなす座標系である。また、ワークＷ上には、「ＷＰ座標系」が表示されている。ＷＰ座標系は作業点ＷＰを原点とする右手系をなす座標系である。
【００６７】
エンドエフェクタ３５は、作業点ＷＰにおいてＲ座標系およびＷＰ座標系の対応する各軸をそれぞれ一致させて所定の作業（たとえばスポット溶接）を行う。具体的には、エンドエフェクタ３５は、作業点ＷＰにおいてＲｘ軸をＦｘ軸に、Ｒｙ軸をＦｙ軸に、Ｒｚ軸をＦｚ軸にそれぞれ一致させる。なお、実施形態にかかるＦｚ軸は、作業点ＷＰにおけるエンドエフェクタ３５の接近方向（すなわちアプローチ方向）である。すなわち、ＷＰ座標系は、ＷＰ座標系の原点である作業点ＷＰにおけるエンドエフェクタ３５の姿勢を指定するものであり、すべての作業点ＷＰにあらかじめ設定されている。
【００６８】
オペレータは、ＧＵＩウィジェットを操作することによって、ティーチングシステム１０に対する操作指示を行う。ティーチングシステム１０は、オペレータの操作指示に従って、表示部１２上の仮想画像であるロボット３０の各関節を駆動させたり、仮想画像をどの方向から見た状態で表示するかといった視点での変更や表示の拡大／縮小を行ったりすることができる。
【００６９】
また、仮想画像内の特定点にエンドエフェクタ３５が到達するようなロボット３０の各関節位置を逆キネマティクス演算により求め、到達した状態のロボット３０の仮想画像を生成して表示することも可能である。
【００７０】
さらに、オペレータの指示操作に従って、ジョブ情報ＤＢ１４に登録された教示点やジョブプログラムを読み出し、特定の教示点に到達した状態のロボット３０の仮想画像を表示することができる。また、ジョブプログラムによるロボット３０の一連の動作を表示部１２上で再現することもできる。
【００７１】
なお、上述した「ジョブ登録」ボタンなどは、たとえば、ダイアログボックス１２３のボタン１２３ａなどに設けてもよい。
【００７２】
次に、オペレータがアプローチ点Ａを設定する操作について図５を用いて説明する。図５は、アプローチ点Ａを設定する操作の説明図である。なお、図５では、アプローチ点Ａの設定対象である作業点ＷＰが、ワークＷの主壁Ｗｆの下面に位置する場合を例にとって示している。
【００７３】
図５に示すように、アプローチ点Ａを設定する場合、ダイアログボックス１２３には、エアカット設定のための操作部品群が表示される。オペレータは、「エアカット追加」内のラジオボタンによって作業点ＷＰに対するエアカットを設定することができる。
【００７４】
ここで、エアカットとは、複数の作業点ＷＰを結ぶエンドエフェクタ３５（ロボット３０）の動作経路のことを指す。そして、かかるエアカットのうちエンドエフェクタ３５がワークＷや周辺の障害物への接触を防ぐために減速して作業点ＷＰへ近づいたり遠ざかったりする区間は、上述したアプローチ経路に相当する。
【００７５】
なお、以下では、エンドエフェクタ３５のアプローチ経路において、エンドエフェクタ３５が作業点ＷＰへ近づく経路を「往路」、作業点ＷＰから遠ざかる経路を「復路」と呼ぶ場合がある。
【００７６】
ダイアログボックス１２３には、「エアカット追加」で選択されたステップ数に応じた「前後ステップ」ごとにＸ値、Ｙ値およびＺ値の「入力ボックス」が表示される。入力ボックスの各値は、Ｒ座標系をＷＰ座標系に一致させた状態からＲｘ（Ｘ）軸、Ｒｙ（Ｙ）軸およびＲｚ（Ｚ）軸の各軸の正方向へ移動させる移動量に対応する。「前後１ステップ」の各入力ボックスは、軸Ｆｚが作業点ＷＰへの接近方向であるので、図５に示すように、Ｘ＝０，Ｙ＝０，Ｚ＝−ｃ（ｃ＞０）と入力される。
【００７７】
このように「前後１ステップ」を入力することで、作業点ＷＰからＦｚ軸の負方向へ距離ｃだけ離れた位置にアプローチ点Ａ１が生成される（図５の矢印４０２参照）。なお、「前後１ステップ」のラジオボタンを選択した場合では、「前後２ステップ」は表示されず、ここで入力が完了する。また、以下では、アプローチ点Ａ１から作業点ＷＰへ向かう方向を「第１のアプローチ方向」と呼ぶ場合がある。
【００７８】
一方、たとえば、エンドエフェクタ３５のワークＷへの抜き差し動作が必要な場合では、「前後２ステップ」ラジオボタンを選択する。この場合、図５に示すように「前後１ステップ」および「前後２ステップ」が表示される。「前後２ステップ」の各入力ボックスは、任意に入力することができるが、本実施形態では、Ｚ値を「前後１ステップ」に等しくし、Ｘ値を−ａ（ａ＞０）、Ｙ値を０にすることが好ましい。
【００７９】
このように「前後２ステップ」を入力することで、図９Ａ等を用いて後述するアプローチ点Ａ２の移動にかかるパラメータを１つにすることが可能となる。そして、アプローチ点Ａ１からＦｘ軸の負方向へ距離ａだけ離れた位置にアプローチ点Ａ２が生成される（図５の矢印４０４参照）。なお、以下では、アプローチ点Ａ２からＡ１へ向かう方向を「第２のアプローチ方向」と呼ぶ場合がある。
【００８０】
そして、「前後１ステップ」および「前後２ステップ」の入力後、「ＯＫ」ボタンが押下されることによって、アプローチ点Ａ１およびＡ２が設定される。なお、「ステップ間追加」チェックボックスについては、図６Ｂを用いて後述する。
【００８１】
また、「前後動作一致」チェックボックスをＯＮにした場合、エンドエフェクタ３５は、アプローチ経路の往路および復路において同一の経路をとる。一方、「前後動作一致」チェックボックスをＯＦＦにした場合では、アプローチ経路における往路および復路が互いに異なる場合を許容してエンドエフェクタ３５の移動経路を短縮する。この点の詳細については、図６Ｃを用いて後述する。
【００８２】
また、エアカットにおけるエンドエフェクタ３５の動作は、任意のステップ数とすることができる。したがって、「エアカット追加」内のラジオボタンは、図５に示した例に限らず、エンドエフェクタ３５やワークＷの形状などによって任意の数の前後ステップを選択可能に表示することができる。また、エアカットを設定する必要がない場合では、「追加しない」のラジオボタンを選択すればよい。そして、このダイアログボックス１２３によって行ったエアカットに関する設定が、ロボット３０のジョブにかかるすべての作業点ＷＰに対するアプローチ点Ａの位置関係の初期設定となる。
【００８３】
次に、実施形態に係るティーチング方法の一例について、図６Ａ〜図６Ｄを用いて説明する。図６Ａ〜図６Ｄは、アプローチ点の位置の変更方法を説明するための説明図（その１）〜（その４）である。
【００８４】
以下では、図５に示したワークＷの主壁Ｗｆの下面にそれぞれ設けられた作業点ＷＰａからＷＰｂへ移動するロボット３０の教示データを、上述した「前後１ステップ」で生成する場合を例にとって説明する。なお、図６Ａ〜図６Ｃには、作業点ＷＰａ，ＷＰｂおよびＷＰｃに位置する電極Ｅ１を点線で示している。
【００８５】
図５を用いて既に説明したように、ダイアログボックス１２３を用いて行ったエアカット設定に従って教示データ生成部１１１ｅ（図３参照）は、作業点ＷＰからＦｚ軸の負方向へ距離ｃだけ離れた位置にアプローチ点Ａ１を生成する。図６Ａでは、かかるアプローチ点Ａ１をアプローチ点Ａ１ａおよびＡ１ｂとして示している。
【００８６】
教示データ生成部１１１ｅは、アプローチ点Ａ１ａおよびアプローチ点Ａ１ｂを結ぶ仮想線Ｈａｂを生成する。そして、判定部１１１ｆ（図３参照）は、仮想線Ｈａｂがたとえば作業点ＷＰａおよびＷＰｂの間にある障害物ＳＨに干渉するか否かを判定する。図６Ａには、仮想線Ｈａｂが障害物ＳＨに干渉する場合を示し、仮想線Ｈａｂが障害物ＳＨへ干渉する部分の両端を干渉点ＢＰとして示している。なお、障害物ＳＨの例としては、載置台Ｐや図示しないワークＷの固定治具などを挙げることができる。また障害物ＳＨは、ワークＷの一部であってもよい。
【００８７】
この場合、教示データ更新部１１１ｇは、たとえばアプローチ点Ａ１ａを軸Ｆｚａの負方向へ、アプローチ点Ａ１ｂを軸Ｆｚｂの負方向へそれぞれ移動させる（図６Ａのアプローチ点Ａ１ａ’およびＡ１ｂ’参照）。なお、かかる移動は、アプローチ点Ａ１ａおよび点Ａ１ｂに位置するエンドエフェクタ３５のＲｚ軸（図５参照）の負方向への移動に対応する。
【００８８】
なお、かかるアプローチ点Ａの移動量を、たとえばアプローチ距離の１０％などと、あらかじめ定めておいてもよい。また、かかる移動量をあらかじめ記憶部１１２に記憶させておいてもよい。また、図５に示したものとは別のダイアログボックスによってアプローチ点Ａの移動量の設定値を変更できるよう構成してもよい。
【００８９】
これにより、仮想線Ｈａｂは、障害物ＳＨに干渉しない位置へ退避する（図６Ａの仮想線Ｈａｂ’参照）。そして、判定部１１１ｆは仮想線Ｈａｂ’が障害物ＳＨに干渉するか否かを判定する。仮想線Ｈａｂ’が障害物ＳＨに干渉しない場合、教示データ更新部１１１ｇは、エンドエフェクタ３５（電極Ｅ１）が、仮想線Ｈａｂ’に沿うように移動しつつ作業点ＷＰａからＷＰｂへ移動する経路についてのロボット３０の教示データを更新する。
【００９０】
なお、図６Ｂに示すように、教示データ更新部１１１ｇは、アプローチ点Ａ１ａおよびＡ１ｂの移動に加えて、仮想線Ｈａｂ’よりワークＷから遠い位置に経由点Ｊを生成することとしてもよい。この場合、教示データ更新部１１１ｇは、アプローチ点Ａ１ａ’およびＡ１ｂ’を、経由点Ｊを経由して結ぶ仮想線Ｊａｂを生成する。判定部１１１ｆは仮想線Ｊａｂが障害物ＳＨに干渉するか否かを判定する。仮想線Ｊａｂが障害物ＳＨに干渉しない場合、教示データ更新部１１１ｇは、エンドエフェクタ３５が仮想線Ｊａｂに沿うようにロボット３０の教示データを生成（更新）する。
【００９１】
また、この場合、オペレータはエアカット設定における「ステップ間追加」チェックボックス（図５参照）をＯＮに設定しておく。なお、この場合の仮想線Ｈａｂ’はワークＷに干渉していてもよく（図６Ｂの干渉点ＢＰ参照）、経由点Ｊは１つに限らず複数設けられてもよい。
【００９２】
また、アプローチ点Ａ１ａおよびＡ１ｂのそれぞれの移動量は、同じであっても異なっていてもよく、アプローチ点Ａ１ａおよびＡ１ｂのいずれか一方のみを移動させることとしてもよい。
【００９３】
また、「前後動作一致」チェックボックス（図５参照）をＯＦＦにすれば、ロボット３０の動作経路をさらに短くすることができる。以下、この点について図６Ｃを用いて詳細に説明する。図６Ｃでは、ワークＷの主壁Ｗｆの下面に同図に示す作業点ＷＰｃがさらに設けられ、図６Ａに示した状態からエンドエフェクタ３５が作業点ＷＰｂからＷＰｃへ移動する場合を例にとって説明する。
【００９４】
「前後動作一致」チェックボックスがＯＮの場合では、エンドエフェクタ３５のアプローチ経路における往路および復路が同じとなる。これにより、エンドエフェクタ３５は、同図に示すアプローチ点Ａ１ｂ’から作業点ＷＰｂに到達した後、再びアプローチ点Ａ１ｂ’に戻る。そして、アプローチ点Ａ１ｂ’から、作業点ＷＰｃに設けられたアプローチ点Ａ１ｃへ移動する。したがって、往路および復路が同じでよい場合には、「前後動作一致」チェックボックスをＯＮとすることでロボット３０の教示データ生成に関する作業負荷や所要時間を低減することができる。
【００９５】
一方、「前後動作一致」チェックボックスがＯＦＦの場合では、エンドエフェクタ３５のアプローチ経路における往路および復路が異なることが許容される。したがって、エンドエフェクタ３５は、同図に示すアプローチ点Ａ１ｂ’から作業点ＷＰｂに到達した後、たとえばアプローチ点Ａ１ｂに戻る。
【００９６】
そして、アプローチ点Ａ１ｂから、作業点ＷＰｃに設けられたアプローチ点Ａ１ｃへ移動する。これにより、アプローチ点Ａ１ｂ’からＡ１ｃへ移動する場合に比べてエンドエフェクタ３５の移動距離が短くなる。したがって、ロボット３０の動作経路を短縮することができる。
【００９７】
なお、「前後動作一致」チェックボックスがＯＦＦの状態は、アプローチ経路の往路および復路が互いに異なる場合を許容するものに過ぎない。したがって、ワークＷの有する作業点ＷＰのうち、かかる往路および復路が同じものがあっても構わない。
【００９８】
また、教示データ更新部１１１ｇは、作業点ＷＰとアプローチ点Ａとの間を移動するエンドエフェクタ３５がワークＷや障害物ＳＨに干渉すると判定部１１１ｆで判定された場合、かかるアプローチ点Ａを移動してエンドエフェクタ３５を障害物ＳＨから離間させる。
【００９９】
図６Ｄには、アプローチ点Ａ１に位置しつつ障害物ＳＨに干渉する場合のエンドエフェクタ３５の一例を点線で示している。この場合、教示データ更新部１１１ｇは、アプローチ点Ａ１を、たとえば第１のアプローチ方向に沿って作業点ＷＰへ近づける。図６Ｄには、かかる移動後のアプローチ点Ａ１をアプローチ点Ａ１’、および、アプローチ点Ａ１’から作業点ＷＰまでのアプローチ距離を距離ｃ１として示している。
【０１００】
なお、かかるアプローチ点Ａの移動量を、たとえばアプローチ距離の１０％などと、あらかじめ定めておいてもよい。また、かかる移動量をあらかじめ記憶部１１２に記憶させておいてもよい。また、図５に示したものとは別のダイアログボックスによってアプローチ点Ａの移動量の設定値を変更できるよう構成してもよい。
【０１０１】
このように、実施形態に係るティーチング方法では、アプローチ点Ａどうしを結ぶ仮想線Ｈを生成し、かかる仮想線ＨがワークＷや障害物ＳＨに干渉するか否かを判定する。
【０１０２】
そして、仮想線ＨがワークＷや障害物ＳＨに干渉する場合では、ダイアログボックス１２３（図５参照）で設定したアプローチ点Ａを自動的に移動して仮想線Ｈを再生成し、ワークＷや障害物ＳＨから退避させることとした。
【０１０３】
これにより、エンドエフェクタ３５がワークＷや障害物ＳＨに干渉することを回避しつつロボット３０が作業を行うための教示データを容易かつ自動で生成することが可能となる。したがって、実施形態に係るティーチングシステム１０によれば、教示データ生成に関する作業負荷や所要時間を低減することができる。
【０１０４】
また、実施形態に係るティーチング方法では、アプローチ点Ａを、Ｒ座標系（図５参照）の１つの軸（たとえばＲｚ軸）方向に沿って移動させることとした。これにより、１つのパラメータの変更で、ワークＷや障害物ＳＨへの干渉を回避するロボット３０の教示データを生成することが可能となる。したがって、ティーチング制御装置１１（図１参照）の処理負荷を軽減し、ロボット３０の教示データをさらに簡便かつ容易に生成することができる。
【０１０５】
ところで、決定部１１１ｄ（図３参照）は、Ｆｚ軸（図４参照）の向きに基づいて作業点ＷＰをグループ分けして作業順序を決定する。以下では、この点の詳細について図７を用いて説明する。図７は、作業点ＷＰの作業順序を決定する操作の説明図である。
【０１０６】
図７に示すように、作業点ＷＰの作業順序を決定する場合、ダイアログボックス１２３には、作業順序の決定のための操作部品群が表示される。ここで、操作部品の一つである「ソート」内の「ソートを行う」チェックボックスをＯＮにした場合、以下に述べる方法で作業点ＷＰのグループ分けや作業順序の決定を行うことができる。ここで、本実施形態における「ソート」とは、たとえば作業点ＷＰのＦｚ軸の向きなどの一定の要素に従って作業点ＷＰの作業順序を並び替える処理のことを指す。
【０１０７】
また、「ソート」には、たとえば、優先１〜優先６までの選択ボックスが表示される。選択ボックスは、ＷＰ座標系のＦｚ軸が、上または下、前または後、左または右の全６方向について選択可能に設けられる。図７には、優先１〜優先６の付番の昇順にＦｚ軸が、上、下、前、後、右、左向きである場合を例にとって示している。そして、決定部１１１ｄ（図３参照）は、それぞれの作業点ＷＰのＦｚ軸の向きに基づいて作業点ＷＰをグループ分けする。
【０１０８】
具体的には、決定部１１１ｄは、たとえば上向き、すなわちワールド座標系についてのＺ軸の正方向に略平行なＦｚ軸を有する作業点ＷＰを「優先１」のグループＧＰ１として抽出する。また、決定部１１１ｄは、優先２〜優先６までのグループＧＰ２〜グループＧＰ６についても、それぞれに対応づけられた方向に従って作業点ＷＰを抽出する。
【０１０９】
なお、かかる作業点ＷＰの抽出は、再生動作におけるロボット３０の姿勢変化を小さくする観点からは、グループＧＰごとの基準となる方向に対して±２０度以下の角度を有するＦｚ軸の作業点ＷＰを含むことが好ましい。また、作業点ＷＰを取りこぼしなく抽出する観点からは、±４５度以下であることが好ましい。
【０１１０】
教示データ生成部１１１ｅは、グループＧＰの優先順序（すなわち「優先」に付された付番）にしたがって、グループＧＰごとに作業順序を決定してロボット３０（図１参照）の教示データを生成する。
【０１１１】
このように作業点ＷＰをグループ分けすることで、ロボット３０は各グループＧＰ内の作業点ＷＰに対して少ない姿勢変化で作業することが可能となる。したがって、ロボット３０の作業にかかる姿勢変化を小さくして作業時間を短縮することができる。
【０１１２】
なお、図７には、説明の便宜上、グループＧＰ内の作業点ＷＰが１つである場合についてもグループＧＰとして示している（図７のグループＧＰ２，ＧＰ４，ＧＰ６参照）。また、右向きのＦｚ軸の作業点ＷＰ（優先５）のように、該当する作業点ＷＰが存在しない場合には、グループＧＰの生成がキャンセルされる。
【０１１３】
また、決定部１１１ｄ（図３参照）は、各グループＧＰ内の作業点ＷＰについても作業順序を決定する。具体的には、グループＧＰ１の作業点ＷＰに対してロボット３０の軸Ｓの回転方向が「優先１のソート方向」選択ボックスで選択された方向で一定になる順序で作業順序を決定する。図７には、「優先１のソート方向」で「左⇒右」が選択されている状態を示している（図７の矢印４０６参照）。
【０１１４】
ここで、作業点ＷＰの作業順序がロボット３０（図１参照）の軸Ｓの回転方向に基づいて決定されるのは、軸Ｓはロボット３０の最も基端側の軸であり、他の軸（すなわち軸Ｌ、軸Ｕ、軸Ｒ、軸Ｂおよび軸Ｔ）よりも負荷重量が大きく、回転速度が小さいためである。したがって、作業点ＷＰの作業順序を、軸Ｓの回転方向が変化する回数が少なくなる順序で決定することで作業時間を短縮することができる。
【０１１５】
また、この場合、グループＧＰ２以降の軸Ｓの回転方向については、グループＧＰ１に属する作業点ＷＰのうち作業順序が最後の作業点ＷＰ（図７の作業点ＷＰ３参照）の位置に基づいて適宜定められる。
【０１１６】
たとえば、図７では、ロボット３０はグループＧＰ１の最後の作業点である作業点ＷＰ３に対して作業をした後、グループＧＰ２の作業点ＷＰ４を作業し、グループＧＰ３に含まれる作業点ＷＰのうち作業点ＷＰ４に最も近い作業点ＷＰ５に対して作業する。この場合、ロボット３０は、グループＧＰ３の作業点ＷＰ５〜作業点ＷＰ７に対して軸Ｓを右から左へ回転させつつ作業する（図７の矢印４０８参照）。図７には、このように決定される作業順序を作業点ＷＰの付番として付した作業点ＷＰ１〜作業点ＷＰ９として示している。
【０１１７】
このように作業点ＷＰの作業順序を決定することで、ロボット３０の軸Ｓの回転量を減少させることが可能となる。したがって、ロボット３０の作業にかかる時間をさらに短縮することができる。
【０１１８】
また、かかるロボット３０の教示データは、ダイアログボックス１２３の「ジョブ作成」ボタンをクリックすることで教示データ生成部１１１ｅ（図３参照）により生成され、判定部１１１ｆによる判定を経て教示データ更新部１１１ｇで更新される。
【０１１９】
なお、図７では、作業点ＷＰが６つのグループに分けられる場合を例にとって説明した。しかしながら、これに限らず、作業点ＷＰは、任意の数のグループに分けられてよい。たとえば、ワークＷが主壁Ｗｆ（図５参照）の上または下向きのＦｚ軸を有する作業点ＷＰのみを含む場合では、作業点ＷＰは、Ｆｚ軸が上または下向きの２つのグループに分けられる。
【０１２０】
次に、ティーチングシステム１０が、実施形態に係るティーチング方法を実行する処理手順について、図８を用いて説明する。図８は、実施形態に係るティーチング方法を実行する処理手順を示すフローチャートである。なお、図８では、１つの作業点ＷＰにつき１つのアプローチ点Ａが設けられる場合を例にとって説明する。
【０１２１】
図８に示すように、オペレータは、作業点ＷＰに対するアプローチ点Ａを設定する（ステップＳ１０１、図５参照）。決定部１１１ｄは、作業点ＷＰへのアプローチ方向に基づいて作業点ＷＰをグループ分けし、さらにソートする（ステップＳ１０２）。そして、かかるアプローチ方向に基づいて作業点ＷＰの作業順序を決定する（ステップＳ１０３、図７参照）。
【０１２２】
教示データ生成部１１１ｅは、作業点ＷＰの作業順序に基づいて、アプローチ点Ａどうしを結ぶ仮想線Ｈを含む経路についてのロボット３０の教示データを生成する（ステップＳ１０４）。判定部１１１ｆは、仮想線ＨがワークＷやワークＷ以外の障害物ＳＨに干渉するか否かを判定する（ステップＳ１０５）。
【０１２３】
仮想線ＨがワークＷや障害物ＳＨに干渉する場合（ステップＳ１０５，Ｙｅｓ）、教示データ更新部１１１ｇは、アプローチ点Ａの位置を変更し（ステップＳ１０６、図６Ｂ〜図６Ｃ参照）、ステップＳ１０５以降の処理を繰り返す。仮想線ＨがワークＷや障害物ＳＨに干渉しない場合（ステップＳ１０５，Ｎｏ）、ステップＳ１０７以降の処理を行う。
【０１２４】
つづいて、判定部１１１ｆは、アプローチ経路に位置する作業ツール（エンドエフェクタ３５）、すなわち作業点ＷＰとアプローチ点Ａとの間を移動する作業ツールが、ワークＷや障害物ＳＨに干渉するか否かを判定する（ステップＳ１０７）。作業ツールがワークＷや障害物ＳＨに干渉する場合（ステップＳ１０７，Ｙｅｓ）、教示データ更新部１１１ｇは、アプローチ点Ａの位置を変更する（ステップＳ１０８、図６Ｄ参照）。そして、ステップＳ１０５以降の処理を繰り返す。
【０１２５】
作業ツールがワークＷや障害物ＳＨに干渉しない場合（ステップＳ１０７，Ｎｏ）、教示データ更新部１１１ｇは、教示データを更新して（ステップＳ１０９）、処理を終了する。
【０１２６】
なお、ステップＳ１０６およびステップＳ１０８において、アプローチ点Ａの移動量を小さくして判定部１１１ｆによる判定を繰り返すこととすれば、最終的なアプローチ点Ａの移動量を小さくすることができる。
【０１２７】
ところで、これまでは、１つの作業点ＷＰにつき１つのアプローチ点Ａが設定される場合について説明してきた。しかしながら、これに限らず、アプローチ点Ａの数はワークＷまたは作業ツールの形状や作業点ＷＰへの作業の態様などによって任意に定められてよい。
【０１２８】
そこで、以下では、変形例（その１）に係るティーチング方法について、１つの作業点ＷＰにつき２つのアプローチ点Ａが設定される場合を例にとって図９Ａ〜図９Ｄを用いて詳細に説明する。図９Ａ〜図９Ｄは、変形例（その１）に係るアプローチ点Ａの位置の変更方法を説明するための説明図（その１）〜（その４）である。なお、図９Ａ〜図９Ｃでは、エンドエフェクタ３５が、図７に示した作業点ＷＰ３から作業点ＷＰ４へ移動し、図９ＤではさらにＷＰ５へ移動する場合を例にとって説明する。
【０１２９】
なお、図９Ａ〜図９Ｄには、アプローチ点Ａ２３（Ａ２３’）およびＡ２４（Ａ２４’）に位置する場合のエンドエフェクタ３５を点線で示している。また、図９Ａ〜図９Ｄにおいて、作業点ＷＰ３〜ＷＰ５に対応するＷＰ座標系の各軸には、作業点ＷＰに対応した付番を付して示している。たとえば、作業点ＷＰ３のＷＰ座標系の各軸は、Ｆｘ３軸、Ｆｙ３軸およびＦｚ３軸となる。また、アプローチ点Ａ１およびＡ２についても同様である。また、アプローチ点Ａ１およびＡ２の設定方法については、図５で既に説明したので、ここでの説明を省略する。
【０１３０】
まず、教示データ生成部１１１ｅ（図３参照）が生成するロボット３０の教示データについて図９Ａを用いて説明する。なお、図９Ａには、アプローチ点Ａ１３から作業点ＷＰ３までの距離、および、アプローチ点Ａ１４から作業点ＷＰ４までの距離をともに距離ｃ（図５参照）として示している。また、アプローチ点Ａ１３からＡ２３までの距離、および、アプローチ点Ａ１４からＡ２４までの距離をともに距離ａ（図５参照）として示している。
【０１３１】
図９Ａに示すように、教示データ生成部１１１ｅは、エンドエフェクタ３５が作業点ＷＰ３から、アプローチ点Ａ１３，Ａ２３，Ａ２４，Ａ１４を順次経由して作業点ＷＰ４へ到達するロボット３０の教示データを生成する（図９Ａの点線の矢印参照）。なお、図９Ａには、アプローチ点Ａ２３およびＡ２４を結ぶ仮想線Ｈ３４が、干渉点ＢＰでワークＷに干渉している状態を示している。
【０１３２】
この場合、教示データ更新部１１１ｇは、たとえばアプローチ点Ａ２３を軸Ｆｘ３の負方向へ、アプローチ点Ａ２４を軸Ｆｘ４の負方向へそれぞれ移動させる（図９Ｂのアプローチ点Ａ２３’およびＡ２４’参照）。なお、かかる移動は、アプローチ点Ａ２３およびＡ２４に位置するエンドエフェクタ３５のＲｘ軸（図５参照）の負方向への移動に対応する。
【０１３３】
なお、かかるアプローチ点Ａの移動量を、たとえばアプローチ距離の１０％などと、あらかじめ定めておいてもよい。また、かかる移動量をあらかじめ記憶部１１２に記憶させておいてもよい。また、図５に示したものとは別のダイアログボックスによってアプローチ点Ａの移動量の設定値を変更できるよう構成してもよい。
【０１３４】
これにより、仮想線Ｈ３４は、ワークＷに干渉しない位置へ退避する（図９Ｂの仮想線Ｈ３４’参照）。そして、判定部１１１ｆは仮想線Ｈ３４’がワークＷに干渉するか否かを判定する。仮想線Ｈ３４’がワークＷに干渉しない場合、教示データ更新部１１１ｇは、エンドエフェクタ３５（電極Ｅ１）が仮想線Ｈ３４’に沿うように移動しつつ作業点ＷＰ３からＷＰ４へ移動する経路についてのロボット３０の教示データを生成（更新）する。
【０１３５】
なお、図９Ｂに示した例では、アプローチ点Ａ２３およびＡ２４を移動する場合を例にとって説明した。しかしながら、これに限らず、教示データ更新部１１１ｇはアプローチ点Ａ２３およびＡ２４のうちいずれか一方のみを移動させることとしてもよい。
【０１３６】
また、ここでは、アプローチ点Ａ２のみを移動する（すなわち距離ａのみを変更する）場合を例にとって説明したが、これに限らず、ワークＷの形状や障害物ＳＨの位置によっては、距離ｃのみを変更したり、距離ａおよび距離ｃを変更したりすることとしてもよい。
【０１３７】
たとえば、作業点ＷＰ４を例にとった場合、アプローチ点Ａ１４およびＡ２４をＦｚ４軸の負方向へ移動して距離ｃを変更したり、さらに、アプローチ点Ａ２４をＦｚ４軸の負方向へ移動して距離ａを変更したりすることとしてもよい。かかる変更は、作業順序が連続する作業点ＷＰのうち、いずれか一方のみについて行われてもよい。
【０１３８】
なお、かかるアプローチ点Ａの移動方法は、アプローチ点Ａに位置するエンドエフェクタ３５が、障害物ＳＨ（不図示）に干渉する場合においても同様である。
【０１３９】
また、図９Ｃには、教示データ更新部１１１ｇによって、仮想線Ｈ３４’よりもワークＷから遠い位置に生成される経由点Ｊを示している。そして、教示データ更新部１１１ｇは、アプローチ点Ａ２３’およびＡ２４’の間を、経由点Ｊを経由して結ぶ仮想線Ｊ３４を生成する。なお、この場合、仮想線Ｈ３４’はワークＷに干渉していてもよい（図９Ｃの干渉点ＢＰ参照）。また、経由点Ｊは１つに限らず複数設けられてもよい。
【０１４０】
このように経由点Ｊを生成することで、仮想線Ｈの変更にかかるアプローチ点Ａの移動距離が過大になる事態を回避することが可能となる。したがって、ロボット３０の動作経路を短縮することができる。
【０１４１】
なお、変形例（その１）に係るティーチング方法においても、作業点ＷＰ（作業点ＷＰ１〜作業点ＷＰ９）のアプローチ経路についての往路および復路が同じでよい場合には、「前後動作一致」チェックボックス（図５参照）をＯＮにすることができる。以下では、エンドエフェクタ３５が作業点ＷＰ３からＷＰ４へ移動する場合（図９Ｂ参照）を例にとって具体的に説明する。
【０１４２】
「前後動作一致」チェックボックスがＯＮの場合では、エンドエフェクタ３５は、図９Ｂに示すアプローチ点Ａ２３’からアプローチ点Ａ１３を経由して作業点ＷＰ３に到達した後、再びアプローチ点Ａ１３を経由してアプローチ点Ａ２３’へ戻る。そして、アプローチ点Ａ２４’へ移動する。なお、上述したエンドエフェクタ３５（ロボット３０）の移動方法は、ワークＷの有する作業点ＷＰ（作業点ＷＰ１〜作業点ＷＰ９）のすべてに適用される。
【０１４３】
これにより、ワークＷの有する作業点ＷＰのアプローチ経路についての往路および復路を等しくすることで、ロボット３０の教示データ生成に関する作業負荷や所要時間を低減することができる。
【０１４４】
一方、「前後動作一致」チェックボックス（図５参照）をＯＦＦにしてロボット３０の動作経路を短縮することもできる。以下では、かかる点について図９Ｄを用いて詳細に説明する。図９Ｄでは、エンドエフェクタ３５が、図７に示した作業点ＷＰ４からＷＰ５へ移動する場合を例にとって説明する。なお、図９Ｄには、アプローチ点Ａ２４’およびＡ２５に位置する場合のエンドエフェクタ３５を点線で示している。また、図９ＤにおいてワークＷや作業点ＷＰ３などについて省略した部分については、図９Ｂと同様とする。
【０１４５】
図９Ｄに示すように、アプローチ点Ａ２４およびＡ２５を結ぶ仮想線Ｈ４５は、ワークＷに干渉しない。そこで、教示データ更新部１１１ｇは、エンドエフェクタ３５の作業点ＷＰ４へのアプローチ経路において、往路をアプローチ点Ａ２４’からとし、復路をアプローチ点Ａ２４までとする教示データを生成（更新）する。この場合、エンドエフェクタ３５は、アプローチ点Ａ１４，Ａ２４，Ａ２５，Ａ１５を順次経由して作業点ＷＰ５へ移動する（図９Ｄの点線の矢印参照）。
【０１４６】
これにより、エンドエフェクタ３５がアプローチ点Ａ１５からＡ２４’を経由してアプローチ点Ａ２５へ移動する場合よりも移動距離を短くすることが可能となる。したがって、ロボット３０の動作経路を短縮することができる。
【０１４７】
このように、変形例（その１）に係るティーチング方法では、アプローチ経路についての作業点ＷＰから最も遠いアプローチ点Ａどうしを結ぶ仮想線Ｈを生成し、かかる仮想線ＨについてワークＷや障害物ＳＨ（不図示）への干渉を判定することとした。
【０１４８】
これにより、作業点ＷＰに複数のアプローチ点Ａが設定されている場合であっても、ワークＷや障害物ＳＨへの干渉を回避するロボット３０の教示データを容易かつ自動で生成することが可能となる。したがって、変形例（その１）に係るティーチング方法によれば、教示データ生成に関する作業負荷や所要時間を低減することができる。
【０１４９】
また、変形例（その１）に係るティーチング方法では、アプローチ点Ａを、Ｒ座標系（図５参照）の１つの軸（たとえばＲｘ軸）方向に沿って移動させることとした。これにより、１つのパラメータの変更で、ワークＷや障害物ＳＨへの干渉を回避するロボット３０の教示データを生成することが可能となる。したがって、ティーチング制御装置１１（図１参照）の処理負荷を軽減し、ロボット３０の教示データをさらに簡便かつ容易に生成することができる。
【０１５０】
次に、ティーチングシステム１０が、変形例（その１）に係るティーチング方法を実行する処理手順について、図８を引用しつつ説明する。なお、以下では、各作業点ＷＰにつき２つのアプローチ点Ａ、すなわち第１のアプローチ点（アプローチ点Ａ１）および第２のアプローチ点（アプローチ点Ａ２）が設けられる場合を例にとって説明する。また、以下では、第１および第２のアプローチ点を総称して「アプローチ点Ａ」と呼ぶことがある。また、図８を用いて既に説明した、実施形態に係るティーチング方法と重複する部分については説明を省略する。
【０１５１】
図８に示すように、オペレータは、作業点ＷＰに対する第１および第２のアプローチ点を設定する（ステップＳ１０１、図５参照）。決定部１１１ｄは、作業点ＷＰへの第１のアプローチ方向に基づき作業点ＷＰをグループ分けし、さらにソートする（ステップＳ１０２）。そして、かかるアプローチ方向に基づいて作業点ＷＰの作業順序を決定する（ステップＳ１０３、図７参照）。
【０１５２】
教示データ生成部１１１ｅは、作業点ＷＰの作業順序に基づいて、作業順序が連続する作業点ＷＰの第２のアプローチ点どうしを結ぶ仮想線Ｈを含む経路についてのロボット３０の教示データを生成する（ステップＳ１０４）。
【０１５３】
判定部１１１ｆは、仮想線ＨがワークＷやワークＷ以外の障害物ＳＨに干渉するか否かを判定する（ステップＳ１０５）。仮想線ＨがワークＷや障害物ＳＨに干渉する場合（ステップＳ１０５，Ｙｅｓ）、教示データ更新部１１１ｇは、アプローチ点Ａの位置を変更し（ステップＳ１０６、図９Ｂ〜図９Ｃ参照）、ステップＳ１０５以下の処理を繰り返す。仮想線ＨがワークＷや障害物ＳＨに干渉しない場合（ステップＳ１０５，Ｎｏ）、ステップＳ１０７以降の処理を行う。
【０１５４】
つづいて、判定部１１１ｆは、アプローチ経路に位置する作業ツール（エンドエフェクタ３５）、すなわち作業点ＷＰとアプローチ点Ａとの間を移動する作業ツールが、ワークＷや障害物ＳＨに干渉するか否かを判定する（ステップＳ１０７）。エンドエフェクタ３５がワークＷや障害物ＳＨに干渉する場合（ステップＳ１０７，Ｙｅｓ）、教示データ更新部１１１ｇは、かかるアプローチ点Ａの位置を変更し（ステップＳ１０８、図９Ｄ参照）、ステップＳ１０５以降の処理を繰り返す。
【０１５５】
エンドエフェクタ３５がワークＷや障害物ＳＨに干渉しない場合（ステップＳ１０７，Ｎｏ）では、教示データ更新部１１１ｇは、教示データを更新して（ステップＳ１０９）、処理を終了する。
【０１５６】
ところで、これまでは、作業ツールであるスポット溶接ガンがロボット３０のエンドエフェクタ３５である場合について説明してきた。しかしながら、これに限らず、ロボット３０は作業ツールおよびワークＷの相対的な位置関係を変更するものであればよい。
【０１５７】
そこで、以下では、ロボット３０が、定置された作業ツール（スポット溶接ガン）に対してワークＷを移動させる場合の変形例について図１０を用いて説明する。図１０は、変形例（その２）に係るロボット３０ａを示す模式図である。なお、図１０では、ワークＷが有する複数の作業点ＷＰのうち一部のみを示している。
【０１５８】
また、本変形例は、たとえば図１等に示したロボット３０の変形例であって、図１等に示したロボット３０と同一の要素には同一の符号を付し、重複する記載を省略する。
【０１５９】
図１０に示すように、変形例（その２）に係るロボット３０ａでは、フランジ部３４は先端部において、ワークＷを保持する保持部３６の基端部を軸Ｔまわりに回転可能に支持する（図中の軸Ｔまわりの矢印参照）。
【０１６０】
また、スポット溶接ガン３５ａは、床面などに設置された支柱ＰＬによって支持される。そして、ロボット３０ａは、定置された作業ツール（スポット溶接ガン３５ａ）に対してワークＷを移動させつつ作業点ＷＰに所定の作業（スポット溶接）を行う。
【０１６１】
なお、図１０に示すスポット溶接ガン３５ａは、図１を用いて既に説明したエンドエフェクタ３５（スポット溶接ガン）と同様のものであるので、同一の要素には同一の符号を付し、ここでの説明を省略する。
【０１６２】
このように、変形例（その２）に係るロボット３０ａは、定置された作業ツール（スポット溶接ガン３５ａ）に対してワークＷを移動させることとした。これにより、ロボット３０が定置された作業ツールに対してワークＷを移動させる場合でも、ワークＷに干渉しないロボット３０ａの教示データを容易かつ自動で生成することが可能となる。したがって、教示データ生成に関する作業負荷や所要時間を低減することができる。
【０１６３】
なお、図１０には、１つの作業点ＷＰにつき２つのアプローチ点Ａが設定される場合を例にとって示しているが、アプローチ点Ａの数を限定するものではない。
【０１６４】
上述してきたように、実施形態に係るティーチングシステムは、教示データ生成部と、判定部と、教示データ更新部とを備える。
【０１６５】
教示データ生成部は、作業ツールと、多関節のロボットと、作業ツールによる作業が行われる複数の作業点が予め設定されたワークとを含む仮想環境にて、ロボットの教示データを生成する。かかる教示データは、作業ツールがそれぞれの作業点に対応するアプローチ点を通過しつつ作業点に対して到達および離反するように動作するロボットの教示データを含む。
【０１６６】
判定部は、隣接するアプローチ点どうしを結ぶ仮想線がワークまたは障害物に干渉するか否かを判定する。教示データ更新部は、仮想線がワークに干渉すると判定部が判定した場合に、仮想線に係るアプローチ点の位置を変更する。
【０１６７】
したがって、実施形態に係るティーチングシステムによれば、教示データ生成に関する作業負荷や所要時間を低減することができる。
【０１６８】
なお、上述した実施形態では、ロボットが、６軸の単腕ロボットである例を示しているが、軸数や腕の数を限定するものではない。
【０１６９】
また、上述した形態では、ワークが載置台を介して床面などに定置されている場合を例に挙げたが、これに限られるものではない。ワークは、ロボットが作業しやすいようにワークの位置や姿勢を変化させるポジショナに保持されることとしてもよい。
【０１７０】
また、上述した実施形態では、オペレータが、主に操作部としてマウスを用い、オペレータはかかるマウスによって入力操作を行う場合を例に挙げたが、これに限られるものではない。たとえば、表示部をいわゆるマルチタッチのタッチパネルなどで構成し、かかるタッチパネルに対するマルチタッチ操作を含むこととしてもよい。また、操作部は、ロボット制御装置と通信可能に設けられてロボットの操作指示を入力する、いわゆるプログラミングペンダントに設けられることとしてもよい。
【０１７１】
また、上述した実施形態では、作業対象が、スポット溶接（点加工）である場合を例に挙げたが、これに限られるものではない。作業対象は、たとえば溶接線に沿った溶接を行うアーク溶接や塗布線に沿ったシール材の塗布などの線加工とすることもできる。この場合、かかる溶接線や塗布線上で作業ツールが作業を開始または終了する位置に上述したＷＰ座標系を設ければよい。また、作業ツールが、塗装や研磨加工といった面加工を行う場合では、かかる作業ツールのワークに対する作業部位の一点に上述したＲ座標系を設け、加工面に対する移動経路（いわゆるツールパス）上にＷＰ座標系を設ければよい。
【０１７２】
また、上述した実施形態では、アプローチ点が、１つの作業点につき１または２つ設けられる場合を例に挙げたが、これに限られるものではない。ワークまたは作業ツールの形状や作業点に対する作業内容によって、１つの作業点につき任意の数のアプローチ点を設けることとしてよい。この場合、判定部は、作業ツールのアプローチ経路についての作業点から最も遠いアプローチ点どうしを結ぶ仮想線についてワークや障害物との干渉を判定すればよい。
【０１７３】
また、上述した実施形態では、アプローチ点どうしを結ぶ仮想線を直線状とする場合を例にとって説明したが、これに限られるものではない。たとえば、図６Ａの場合では、アプローチ点Ａ１ａおよびＡ１ｂのそれぞれにおけるエンドエフェクタ３５の姿勢はあらかじめ設定されている。このため、エンドエフェクタ３５（電極Ｅ１）がアプローチ点Ａ１ａおよびＡ１ｂのそれぞれに位置する場合のロボット３０の各関節の角度を得ることができる。
【０１７４】
したがって、ロボット３０の各関節の角度をアプローチ点Ａ１ａにおける角度からアプローチ点Ａ１ｂにおける角度へそれぞれ変化させてエンドエフェクタ３５を移動させることも可能である。この場合、アプローチ点Ａ１ａからＡ１ｂへ移動するエンドエフェクタ３５（電極Ｅ１）の移動経路は直線に限られず自由曲線となる。そして、判定部１１１ｆは、かかる自由曲線を仮想線Ｈａｂ’とし、仮想線Ｈａｂ’がワークＷや障害物ＳＨに干渉するか否かを判定するようにしてもよい。
【０１７５】
また、上述した実施形態では、シミュレート指示部を有し、教示データ更新部などで生成（更新）されたロボットの教示データに基づいて、ロボットおよびワークを含む仮想画像が連続して変化するシミュレーション動作を表示部に表示することとした。しかしながら、かかるシミュレーション動作を表示部で視認する必要がない場合では、シミュレート指示部を設けなくてもよい。
【０１７６】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【０１７７】
１    ロボットシステム
１０    ティーチングシステム
１１    ティーチング制御装置
１２    表示部
１３    操作部
１４    ジョブ情報ＤＢ
２０    ロボット制御装置
３０、３０ａ  ロボット
３１    基台部
３２    第１アーム
３３    第２アーム
３４    フランジ部
３５    エンドエフェクタ
３６    保持部
１１１    制御部
１１１ａ  画像生成部
１１１ｂ  表示制御部
１１１ｃ  操作受付部
１１１ｄ  決定部
１１１ｅ  教示データ生成部
１１１ｆ  判定部
１１１ｇ  教示データ更新部
１１１ｈ  シミュレート指示部
１１１ｉ  ジョブ登録部
１１２    記憶部
１１２ａ  モデル情報
１１２ｂ  教示点情報
１２０    表示ウィンドウ
１２１    仮想画像領域
１２２、１２３ａ  ボタン
１２３    ダイアログボックス
３５１    固定アーム
３５２    可動アーム
Ｅ１、Ｅ２  電極
【図１】
0006379874.tif 000002
【図２】
0006379874.tif 000003
【図３】
0006379874.tif 000004
【図４】
0006379874.tif 000005
【図５】
0006379874.tif 000006
【図６Ａ】
0006379874.tif 000007
【図６Ｂ】
0006379874.tif 000008
【図６Ｃ】
0006379874.tif 000009
【図６Ｄ】
0006379874.tif 000010
【図７】
0006379874.tif 000011
【図８】
0006379874.tif 000012
【図９Ａ】
0006379874.tif 000013
【図９Ｂ】
0006379874.tif 000014
【図９Ｃ】
0006379874.tif 000015
【図９Ｄ】
0006379874.tif 000016
【図１０】
0006379874.tif 000017