(57)【要約】【課題】シミュレーションの効率化を高め複数のロボットに協働して作業を行わせる制御プログラムの作成を支援するためのロボット作業プログラム作成支援装置を提供する。【解決手段】データ処理部１００は、各ロボット２００が移動する際の動作の軌跡を時系列で取得する軌跡取得部と、ロボット間の衝突等の有無を解析する衝突解析部と、ロボット相互の衝突等の有無の情報を第１座標軸と第２座標軸とする平面座標に表示して衝突等の情報をインターロック情報部として集約するインターロック設定部と、衝突有りを高配点値とし異常接近無しを低配点値とする傾斜配点値を付与して座標軸の一の列の傾斜配点値を合計する傾斜配点積算部と、インターロック情報部を分割して傾斜配点値の合計を均等化するインターロック情報均等分割部と、インターロック情報部の均等分割後に生じたジョブ部を演算処理部に割り当てるジョブ割当部を備える。【選択図】図１
2019136848.tif 000002
【特許請求の範囲】
【請求項１】
複数のロボットがそれぞれ異なる動作をしながら協働して作業するに際し、前記複数のロボットの動作を制御する制御プログラムの作成を支援するためのデータ処理部を備えたロボット作業プログラム作成支援装置であって、
前記データ処理部は、
前記複数のロボットのそれぞれについて、前記作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する軌跡取得部と、
前記軌跡取得部により時系列で取得された動作の軌跡に基づいて、前記複数のロボットより選択される相互に近接した二のロボット間において当該二のロボット同士の衝突または異常接近の有無を解析する衝突解析部と、
前記衝突解析部における解析結果に基づいた前記二のロボット相互の衝突または異常接近の有無の情報を、前記二のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸とし他方の第２ロボットの時系列動作軌跡の数を前記第１座標軸と直交する第２座標軸とする平面座標の個々の格子内に表示するとともに、前記各格子の前記二のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約するインターロック設定部と、
前記インターロック情報部における前記二のロボット相互の衝突または異常接近の有無の情報に対して前記二のロボット相互の衝突有りの場合を高配点値とし前記二のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与するとともに、前記第１座標軸または前記第２座標軸のいずれかの座標軸の一の列の傾斜配点値を合計する傾斜配点積算部と、
前記インターロック情報部を分割して複数のジョブ部を生成するに際し、各前記ジョブ部に包含される前記傾斜配点値の合計を均等化するインターロック情報均等分割部と、
前記インターロック情報均等分割部において均等に分割されて生成された各前記ジョブ部を演算処理部に割り当てるジョブ割当部と、
前記インターロック情報部を組とするロボットを単位として通知する通知部とを備える
ことを特徴とするロボット作業プログラム作成支援装置。
【請求項２】
前記インターロック情報均等分割部において前記インターロック情報部を分割して複数のジョブ部を生成するに際し、
前記一の列の傾斜配点値を前記第１座標軸または前記第２座標軸のいずれかの座標軸の行の方向に合計して前記インターロック情報部の全体の傾斜配点値の総和を求め、前記総和を、前記第１ロボットの時系列動作軌跡の数及び前記第２ロボットの時系列動作軌跡の数の積により除して前記インターロック情報部における干渉負荷平均値を算出する干渉負荷平均算出部と、
各前記ジョブ部に包含される前記干渉負荷平均値の合計を各ジョブ部において均等化する調和部と、
を備える請求項１に記載のロボット作業プログラム作成支援装置。
【請求項３】
前記演算処理部が複数備えられ、一の演算処理部に一のジョブ部の処理が割り当てられる請求項１または２に記載のロボット作業プログラム作成支援装置。
【請求項４】
複数のロボットがそれぞれ異なる動作をしながら協働して作業するに際し、前記複数のロボットの動作を制御する制御プログラムの作成を支援するためのデータ処理部を備えたロボット作業プログラム作成のための支援方法であって、
前記データ処理部において、
前記複数のロボットのそれぞれについて、前記作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する軌跡取得工程と、
前記軌跡取得工程により時系列で取得された動作の軌跡に基づいて、前記複数のロボットより選択される相互に近接した二のロボット間において当該二のロボット同士の衝突または異常接近の有無を解析する衝突解析工程と、
前記衝突解析工程における解析結果に基づいた前記二のロボット相互の衝突または異常接近の有無の情報を、前記二のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸とし他方の第２ロボットの時系列動作軌跡の数を前記第１座標軸と直交する第２座標軸とする平面座標の個々の格子内に表示するとともに、前記各格子の前記二のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約するインターロック設定工程と、
前記インターロック情報部における前記二のロボット相互の衝突または異常接近の有無の情報に対して前記二のロボット相互の衝突有りの場合を高配点値とし前記二のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与するとともに、前記第１座標軸または前記第２座標軸のいずれかの座標軸の一の列の傾斜配点値を合計する傾斜配点積算工程と、
前記インターロック情報部を分割して複数のジョブ部を生成するに際し、各前記ジョブ部に包含される前記傾斜配点値の合計を均等化するインターロック情報均等分割工程と、
前記インターロック情報均等分割工程において均等に分割されて生成された各前記ジョブ部を演算処理部に割り当てるジョブ割当工程
前記インターロック情報部を組とするロボットを単位として通知する通知工程とが実行される
ことを特徴とするロボット作業プログラム作成支援方法。
【請求項５】
複数のロボットがそれぞれ異なる動作をしながら協働して作業するに際し、前記複数のロボットの動作を制御する制御プログラムの作成を支援するためのロボット作業支援プログラムであって、
データ処理部に、
前記複数のロボットのそれぞれについて、前記作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する軌跡取得機能と、
前記軌跡取得機能により時系列で取得された動作の軌跡に基づいて、前記複数のロボットより選択される相互に近接した二のロボット間において当該二のロボット同士の衝突または異常接近の有無を解析する衝突解析機能と、
前記衝突解析機能における解析結果に基づいた前記二のロボット相互の衝突または異常接近の有無の情報を、前記二のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸とし他方の第２ロボットの時系列動作軌跡の数を前記第１座標軸と直交する第２座標軸とする平面座標の個々の格子内に表示するとともに、前記各格子の前記二のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約するインターロック設定機能と、
前記インターロック情報部における前記二のロボット相互の衝突または異常接近の有無の情報に対して前記二のロボット相互の衝突有りの場合を高配点値とし前記二のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与するとともに、前記第１座標軸または前記第２座標軸のいずれかの座標軸の一の列の傾斜配点値を合計する傾斜配点積算機能と、
前記インターロック情報部を分割して複数のジョブ部を生成するに際し、各前記ジョブ部に包含される前記傾斜配点値の合計を均等化するインターロック情報均等分割機能と、
前記インターロック情報均等分割機能において均等に分割されて生成された各前記ジョブ部を演算処理部に割り当てるジョブ割当機能と、
前記インターロック情報部を組とするロボットを単位として通知する通知機能とを実現させる
ことを特徴とするロボット作業支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット作業プログラム作成支援装置、ロボット作業プログラム作成支援方法、及びロボット作業支援プログラムに関し、特に複数の産業用ロボットの協働作業のための制御プログラムを作成するための支援装置、その方法、そのためのプログラムに関する。
【背景技術】
【０００２】
現在、自動車等の生産現場においては、産業用ロボットの利用により自動化が実現されている。通常、複数の産業用ロボットが同時に用いられる。ロボット同士の干渉ないし衝突の防止のため、インターロックが設けられている。このインターロックを設けるため、オフラインのシミュレーションにより、インターロックのタイミングをティーチングする技術が提案されている（特許文献１参照）。
【０００３】
インターロックを適切に設定することは、生産ラインの遅延や停止を抑制し、生産効率を上げるために重要である。自動車等の生産現場では、多くの産業用ロボットが密集配置され、かつそれぞれのロボットは複雑な工程を実行する。そこで、ロボット相互間の干渉を避けるための制御プログラムは作成されてはいるものの、干渉を確認するための組み合わせは膨大となり、全ての組み合わせをシミュレーションすることは計算時間の観点から現実的ではない。さらに、全ての干渉を人手で確認するのは非常に困難である。
【０００４】
この点を鑑み発明者はインターロックの適切な設定のためのシミュレーションの効率化を図る支援装置、支援方法を提案した（特許文献２参照）。その後、シミュレーションの更なる効率化が求められており、複数の産業用ロボットに協働して作業を行わせるための制御プログラムの作成を支援するための手法が切望されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１３４０１７号公報
【特許文献２】特開２０１６−１９０３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
その後、発明者は演算処理を実行する際のデータを分割する手法に改良を重ね、シミュレーションの効率化を実現するに至った。本発明は前記の点に鑑みなされたものであり、シミュレーションの効率化を高め複数の産業用ロボットに協働して作業を行わせるための制御プログラムの作成を支援するためのロボット作業プログラム作成支援装置、ロボット作業プログラム作成支援方法、及びロボット作業支援プログラムを提供する。
【課題を解決するための手段】
【０００７】
すなわち、第１の態様は、複数のロボットがそれぞれ異なる動作をしながら協働して作業するに際し、前記複数のロボットの動作を制御する制御プログラムの作成を支援するためのデータ処理部を備えたロボット作業プログラム作成支援装置であって、前記データ処理部は、前記複数のロボットのそれぞれについて、前記作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する軌跡取得部と、前記軌跡取得部により時系列で取得された動作の軌跡に基づいて、前記複数のロボットより選択される相互に近接した二のロボット間において当該二のロボット同士の衝突または異常接近の有無を解析する衝突解析部と、前記衝突解析部における解析結果に基づいた前記二のロボット相互の衝突または異常接近の有無の情報を、前記二のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸とし他方の第２ロボットの時系列動作軌跡の数を前記第１座標軸と直交する第２座標軸とする平面座標の個々の格子内に表示するとともに、前記各格子の前記二のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約するインターロック設定部と、前記インターロック情報部における前記二のロボット相互の衝突または異常接近の有無の情報に対して前記二のロボット相互の衝突有りの場合を高配点値とし前記二のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与するとともに、前記第１座標軸または前記第２座標軸のいずれかの座標軸の一の列の傾斜配点値を合計する傾斜配点積算部と、前記インターロック情報部を分割して複数のジョブ部を生成するに際し、各前記ジョブ部に包含される前記傾斜配点値の合計を均等化するインターロック情報均等分割部と、前記インターロック情報均等分割部において均等に分割されて生成された各前記ジョブ部を演算処理部に割り当てるジョブ割当部と、前記インターロック情報部を組とするロボットを単位として表示する表示部とを備えることを特徴とするロボット作業プログラム作成支援装置に係る。
【０００８】
第２の態様は、前記インターロック情報均等分割部において前記インターロック情報部を分割して複数のジョブ部を生成するに際し、前記一の列の傾斜配点値を前記第１座標軸または前記第２座標軸のいずれかの座標軸の行の方向に合計して前記インターロック情報部の全体の傾斜配点値の総和を求め、前記総和を、前記第１ロボットの時系列動作軌跡の数及び前記第２ロボットの時系列動作軌跡の数の積により除して前記インターロック情報部における干渉負荷平均値を算出する干渉負荷平均算出部と、各前記ジョブ部に包含される前記干渉負荷平均値の合計を各ジョブ部において均等化する調和部と、を備える第１の態様に記載のロボット作業プログラム作成支援装置に係る。
【０００９】
第３の態様は、前記演算処理部が複数備えられ、一の演算処理部に一のジョブ部の処理が割り当てられる第１または第２の態様に記載のロボット作業プログラム作成支援装置に係る。
【００１０】
第４の態様は、複数のロボットがそれぞれ異なる動作をしながら協働して作業するに際し、前記複数のロボットの動作を制御する制御プログラムの作成を支援するためのデータ処理部を備えたロボット作業プログラム作成のための支援方法であって、前記データ処理部において、前記複数のロボットのそれぞれについて、前記作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する軌跡取得工程と、前記軌跡取得工程により時系列で取得された動作の軌跡に基づいて、前記複数のロボットより選択される相互に近接した二のロボット間において当該二のロボット同士の衝突または異常接近の有無を解析する衝突解析工程と、前記衝突解析工程における解析結果に基づいた前記二のロボット相互の衝突または異常接近の有無の情報を、前記二のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸とし他方の第２ロボットの時系列動作軌跡の数を前記第１座標軸と直交する第２座標軸とする平面座標の個々の格子内に表示するとともに、前記各格子の前記二のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約するインターロック設定工程と、前記インターロック情報部における前記二のロボット相互の衝突または異常接近の有無の情報に対して前記二のロボット相互の衝突有りの場合を高配点値とし前記二のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与するとともに、前記第１座標軸または前記第２座標軸のいずれかの座標軸の一の列の傾斜配点値を合計する傾斜配点積算工程と、前記インターロック情報部を分割して複数のジョブ部を生成するに際し、各前記ジョブ部に包含される前記傾斜配点値の合計を均等化するインターロック情報均等分割工程と、前記インターロック情報均等分割工程において均等に分割されて生成された各前記ジョブ部を演算処理部に割り当てるジョブ割当工程と、前記インターロック情報部を組とするロボットを単位として通知する通知工程とが実行されることを特徴とするロボット作業プログラム作成支援方法に係る。
【００１１】
第５の態様は、複数のロボットがそれぞれ異なる動作をしながら協働して作業するに際し、前記複数のロボットの動作を制御する制御プログラムの作成を支援するためのロボット作業支援プログラムであって、データ処理部に、前記複数のロボットのそれぞれについて、前記作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する軌跡取得機能と、前記軌跡取得機能により時系列で取得された動作の軌跡に基づいて、前記複数のロボットより選択される相互に近接した二のロボット間において当該二のロボット同士の衝突または異常接近の有無を解析する衝突解析機能と、前記衝突解析機能における解析結果に基づいた前記二のロボット相互の衝突または異常接近の有無の情報を、前記二のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸とし他方の第２ロボットの時系列動作軌跡の数を前記第１座標軸と直交する第２座標軸とする平面座標の個々の格子内に表示するとともに、前記各格子の前記二のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約するインターロック設定機能と、前記インターロック情報部における前記二のロボット相互の衝突または異常接近の有無の情報に対して前記二のロボット相互の衝突有りの場合を高配点値とし前記二のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与するとともに、前記第１座標軸または前記第２座標軸のいずれかの座標軸の一の列の傾斜配点値を合計する傾斜配点積算機能と、前記インターロック情報部を分割して複数のジョブ部を生成するに際し、各前記ジョブ部に包含される前記傾斜配点値の合計を均等化するインターロック情報均等分割機能と、前記インターロック情報均等分割機能において均等に分割されて生成された各前記ジョブ部を演算処理部に割り当てるジョブ割当機能と、前記インターロック情報部を組とするロボットを単位として通知する通知機能とを実現させることを特徴とするロボット作業支援プログラムに係る。
【発明の効果】
【００１２】
本発明のロボット作業プログラム作成支援装置によると、シミュレーションの効率化を高め複数の産業用ロボットに協働して作業を行わせるための制御プログラムの作成を支援することが可能となる。特に、データの分割を通じて演算処理の要する時間の削減に効果を発揮する。また、ロボット作業プログラム作成支援方法及びロボット作業支援プログラムを通じても制御プログラムの作成支援に有効な効果を発揮する。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るオフラインティーチングシステムの概要を示す模式図である。
【図２】ロボット同士の相互接触及び異常接近を示す模式図である。
【図３】２台のロボットの干渉を解析する際の組み合わせの数を説明する表である。
【図４】実施形態に係るオフラインティーチング装置の機能構成を示す模式図である。
【図５】５台のロボットとその軌跡を示す模式図である。
【図６】２つの異なるロボットの軌跡の一例を示す模式図である。
【図７】衝突解析部によるロボット間の衝突または異常接近の解析を説明する模式図である。
【図８】実施の形態に係るインターロック設定部が設定するインターロックを説明するための模式図である。
【図９】インターロック情報部に傾斜配点値を付与した模式図である。
【図１０】インターロック情報部を複数のジョブ部に分割した模式図である。
【図１１】複数の演算処理部を備えたデータ処理部を示す模式図である。
【図１２】実施形態に係るデータ処理部が実行するプログラム作成支援処理の流れを説明するフローチャートである。
【図１３】インターロック情報均等分割部の処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１４】
図１の模式図は、本発明の実施形態に係るオフラインティーチングシステム１の概要を示す。自動車の車体の組み立て等に用いられる産業用ロボット（以下、「ロボット２００」という。）は、同ロボット２００の動作を制御する情報処理装置（図示せず）が実行する制御プログラムによる制御下で動作する。この制御プログラムには、ロボット２００の動作時に参照される一または複数の時系列動作軌跡の情報（ステップ情報とも言う。）が含まれている。ここで「時系列動作軌跡の情報（ステップ情報）」とは、例えば、ロボットがスポット溶接等の作業をするために順次停止する空間上の位置情報であり、ロボット２００の移動の単位となる情報である。位置情報は、ロボット２００の基準位置からの相対位置座標であり、例えばロボット２００が有するアームの先端部の三次元の位置座標である。
【００１５】
図１の例は、ロボット２００が１回の工程において第１ステップ１０ａから第７ステップ１０ｇまでの７つの時系列動作軌跡（ステップ）を踏むことを示している。以下、特に区別する場合を除き、各ステップを「ステップ１０」と総称する。ロボット２００は、１回の工程において各ステップ１０を結ぶ領域を移動する。以下、ロボット２００が移動する領域を「軌跡１２」と記載する。なお、軌跡１２は３次元空間上の線分ではなく、ロボット２００が作業空間を移動する際にロボット２００が掃く（スウィープ（ｓｗｅｅｐ）する）空間を意味する。
【００１６】
時系列動作軌跡の情報（ステップ情報）は、ロボット２００が各ステップ１０間を移動する際の速度や移動方向と、後述するインターロック領域に進入する前に他のロボットに対して発信する「進入前信号」の発信命令を補助情報として含む。この補助情報は、さらに、ロボット２００がインターロック領域を脱出した後に他のロボットに対して発信する「待避後信号」の発信命令も含む。
【００１７】
図１においてオフラインティーチング装置１００（データ処理部）は、協働で作業する複数のロボット２００の制御プログラムをもとに、必要となるインターロックをシミュレーションによって探索する。オフラインティーチング装置１００はさらに、探索したインターロックの前後においてロボット２００が適切に待避動作をするためのプログラムが実装されているか否かを確認する。これにより、オフラインティーチング装置１００は、ユーザが制御プログラムを作成することを支援することができる。この意味で、「オフラインティーチング装置１００」は、プログラム作成支援装置における「データ処理部」として機能する。なお、表示装置１０２は、オフラインティーチング装置１００の計算結果等の情報をユーザに通知するための装置であり、例えば液晶モニタや有機ＥＬモニタ等である。そこで、ロボット作業プログラム作成支援装置２は「解析装置」であり、オフラインティーチング装置１００を包含する装置であり、必要に応じて表示装置１０２等が組み合わせられて構成される。
【００１８】
図２は、ロボット２００同士の干渉（相互接触）及びニアミス（異常接近）を示す図である。図２の例では、第１ロボット２００ａ及び第２ロボット２００ｂと、各ロボット２００の軌跡である第１軌跡１２ａおよび第２軌跡１２ｂとが示されている。図２において、第１ロボット２００ａの第１ステップ１０ａと、第２ロボット２００ｂの第７ステップ１０ｄとの距離はＬであり、Ｌは所定の距離ＬＴ未満であること（Ｌ＜ＬＴ）を示している。
【００１９】
ここで所定の「距離ＬＴ」とは、ある２台のロボット２００（図２の第１ロボット２００ａ及び第２ロボット２００ｂ）が相互に干渉する可能性があるか否かを判定するためにオフラインティーチング装置１００が参照する基準閾値となる距離である。あるロボット２００が通るステップ１０と、別のロボット２００が通るステップ１０との距離Ｌが距離ＬＴ未満の場合、オフラインティーチング装置１００はそれらのロボット２００が干渉する可能性があり、少なくともニアミス（異常接触）すると判定する。距離ＬＴは、作業に用いるロボット２００の大きさや軌跡１２の複雑さ、製品の形状等を考慮して実験または試行により設定される。
【００２０】
図２において、第１ロボット２００ａによる第１ステップ１０ａから第２ステップ１０ｂに至るまでの第１軌跡１２ａと、第２ロボット２００ｂによる第６ステップ１０ｃから第７ステップ１０ｄに至るまでの第２軌跡１２ｂとは、交差している。図２において、斜線は第１軌跡１２ａと第２軌跡１２ｂとによって囲まれる領域であり、この領域は第１ロボット２００ａと第２ロボット２００ｂとが衝突する恐れがある領域である。以下本明細書において、このような領域を「干渉領域１４」と記載する。この意味で、本明細書において「干渉」と「衝突」とは同じ意味で用いる。なお上述したように軌跡１２は３次元的な広がりを持つ領域であるため、当該干渉領域１４も３次元空間となる。
【００２１】
第１ロボット２００ａの第１軌跡１２ａと第２ロボット２００ｂの第２軌跡１２ｂとが交差していても、第１ロボット２００ａと第２ロボット２００ｂとが正常に動作している場合、両者は干渉領域１４で衝突しない場合もあり得る。例えば、通常の工程において第１ロボット２００ａが第１ステップ１０ａから第２ステップ１０ｂに至るまで移動する時刻が、第２ロボット２００ｂが第６ステップ１０ｃから第７ステップ１０ｄに至るまで移動する時刻よりも早い場合等である。
【００２２】
しかしながら、第１ロボット２００ａが干渉領域１４を移動中に何らかの理由で停止したり、速度が低下したりすることも起こり得る。この様な場合、干渉領域１４において第１ロボット２００ａと第２ロボット２００ｂとが衝突するおそれが高まる。そこで、オフラインティーチング装置１００は、ロボット２００が軌跡１２において各ステップ１０を通る時刻を考慮することなく、異なる２つのロボット２００（第１ロボット２００ａ及び第２ロボット２００ｂ）の通る２つの軌跡１２（１２ａ，１２ｂ）が交差していれば、干渉領域１４を定義する。
【００２３】
ロボット２００の動作を制御する制御プログラムが干渉領域１４を考慮している場合、ロボット２００が干渉領域１４に進入する前及び干渉領域１４を脱出した後に、それぞれ「進入前信号」と「待避後信号」とを、対となるロボット２００に送信する。例えば、図２において、第１ロボット２００ａが第１ステップ１０ａにあるときに、進入前信号を第２ロボット２００ｂに送信する。その後、干渉領域１４を抜けて第２ステップ１０ｂに到達すると、第１ロボット２００ａは待避後信号を第２ロボット２００ｂに送信する。
【００２４】
第２ロボット２００ｂは、第１ロボット２００ａから進入前信号を受信した後は、待避後信号を受信するまでは、第６ステップ１０ｃ以降のステップには進まずに待機する。なお、第２ロボット２００ｂが第６ステップより前のステップにいるときは、第１ロボット２００ａとの衝突の恐れはないため、作業を継続する。第２ロボット２００ｂは、第１ロボット２００ａから待避後信号を受信した後に、はじめて第７ステップ１０ｄに進む。これにより、第１ロボット２００ａと第２ロボット２００ｂとが干渉領域１４での衝突は抑制される。
【００２５】
なお、第１ロボット２００ａと第２ロボット２００ｂの何れかが先に干渉領域１４に進入するのかは、何れかのロボット２００に対して「優先情報」として予め設定される。すなわち、制御プログラムにおいて、優先情報をもつロボット２００が優先情報を持たないロボット２００に対して進入前信号と待避後信号を送信するようにプログラムされる。何れのロボット２００に優先情報を設定するかは、例えば、正常動作時における干渉領域１４の進入時刻等が考慮される。
【００２６】
続いて、実施の形態に係るオフラインティーチング装置１００による、制御プログラムのインターロックの設定支援処理について説明する。ここで「インターロック」とは、異なる２つのロボットが相互に干渉（相互接触）及びニアミス（異常接近）することを言う。オフラインティーチング装置１００は、協働して作業させる複数のロボット２００のうち、異なる２つのロボット２００の組み合わせの全てについて、インターロック、すなわち、干渉（相互接触）及びニアミス（異常接近）を解析する。ひとつのロボット２００が複数の制御プログラムで動作する場合には、それによってロボット２００が動きうる軌跡の全ての組み合わせについて、オフラインティーチング装置１００は干渉（相互接触）及びニアミス（異常接近）を解析する。
【００２７】
例えば、各ロボット２００には管理用の制御プログラムが存在する。管理用のプログラムとは、例えばロボット２００の基準位置を設定するための「原点プログラム」、ロボット２００を待避させるための「保全プログラム」、ロボット２００自体または一部の部品を交換するために移動させる「交換プログラム」である。また、ひとつの生産ラインで複数種類の製品を生産する場合には、製品の種類に応じた制御プログラムが存在する。仮に、ひとつの生産ラインで４種類の製品（製品Ａ，製品Ｂ，製品Ｃ，及び製品Ｄ）を生産する場合、４種類の生産用制御プログラムが存在することになる。つまり、ひとつのロボット２００は、計７つの制御プログラム（原点プログラム、保全プログラム、交換プログラム、並びに製品Ａ，製品Ｂ，製品Ｃ，及び製品Ｄのための制御プログラム）によって動作し、７種類の軌跡を描くことになる。
【００２８】
図３（ａ）及び（ｂ）は、２つのロボット２００について衝突の有無を解析する際の組み合わせ数を説明する図（対応表）である。より具体的に、図３（ａ）は、３種類の管理用制御プログラム（原点プログラム、保全プログラム、及び交換プログラム）と、４種類の生産用制御プログラム（製品Ａ、製品Ｂ、製品Ｃ、及び製品Ｄのための生産用制御プログラム）が存在する場合の組み合わせを示す図である。図３（ａ）に示すように、第１ロボット２００ａが製品Ａを生産するときには、第２ロボット２００ｂも製品Ａを生産する。一方、第１ロボット２００ａが製品ＡないしＤのいずれの生産用制御プログラムで動作していても、第２ロボット２００ｂは管理用制御プログラム（原点プログラム、保全プログラム、または交換プログラム）で動作する可能性がある。むろん、その逆も同様である。従って、２つのロボット２００相互について制御プログラムの組み合わせは３７通りとなる。図３（ａ）中、考えられる組み合わせは「○」で示している。
【００２９】
生産ライン上に１２台のロボット２００が存在すると仮定すると、１２台のロボット２００の中から２つの異なるロボット２００を選ぶ組み合わせは１２×１１／２＝６６通りとなる。このため、全ての制御プログラムの組み合わせは、３７×６６＝２４４２通りとなる。さらに、製品を生産するための工程が５工程あったと仮定すると、同一工程における制御プログラムの組み合わせは２４４２×５＝１２２１０通りとなる。
【００３０】
図３（ｂ）は、工程間の組み合わせを説明する図である。上述のとおり製品を生産するための工程が５工程ある場合、工程間の組み合わせは、（工程１、工程２）、（工程２、工程３）、（工程３、工程４）、及び（工程４、工程５）の４通りとなる。すなわち、全工程数から同一工程の組み合わせを除いた数となる。異なる工程においては、第１ロボット２００ａと第２ロボット２００ｂとが異なる製品を生産する場合もあるため、図３（ｂ）に示すように、２台のロボット２００における制御プログラムの組み合わせは４９通りとなる。したがって工程間における制御プログラムの組み合わせは、ロボット２００の組み合わせ数（６６）×工程の組み合わせ（４）×２台のロボットにおける制御プログラムの組み合わせ（４９）＝１２９３６通りとなる。
【００３１】
同一工程における制御プログラムの組み合わせ数と工程間における制御プログラムの組み合わせ数とは合計で２．５万通りの組み合わせとなる。仮に１つの制御プログラムの組み合わせについて電子計算機による干渉（相互接触）及びニアミス（異常接近）の解析が１０秒で終了したとしても、全ての組み合わせを解析するためにはおよそ７０時間を要し、到底現実的ではない。このため実施の形態に係るオフラインティーチング装置１００は、相互接触及び異常接近を解析するために高速化の工夫を実装している。以下、オフラインティーチング装置１００についてより詳細に説明する。
【００３２】
図４は、実施の形態に係るオフラインティーチング装置（データ処理部）１００の機能構成を模式的に示す図である。オフラインティーチング装置（データ処理部）１００は、軌跡取得部１１０、衝突解析部１２０、インターロック設定部１３０、傾斜配点積算部１４０、インターロック情報均等分割部１５０、ジョブ割当部１６０、干渉負荷平均算出部１７０、調和部１８０、通知部１９０、及び記憶部１９５を備える。
【００３３】
図４は、実施の形態に係るオフラインティーチング装置（データ処理部）１００が実行するインターロックの設定支援処理を実現するための機能構成を示しており、他の構成は省略している。図４において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ、メインメモリ、その他のＬＳＩで構成することができる。またソフトウェア的には、メインメモリにロードされた設定支援プログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによって実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。限定はしないが、一例として、オフラインティーチング装置（データ処理部）１００（後出の図１１のデータ処理部３００も相当）は、パーソナルコンピュータ（ＰＣ）、メインフレーム、ワークステーション、クラウドコンピューティングシステム等、種々の電子計算機（計算リソース）を用いて実現できる。
【００３４】
図４に示すオフラインティーチング装置１００の各機能部をソフトウェアにより実現する場合、オフラインティーチング装置１００は、各機能を実現するソフトウェアであるプログラムの命令を実行することで実現される。このプログラムを格納する記録媒体は、「一時的でない有形の媒体」、例えば、ＣＤ、ＤＶＤ、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、このプログラムは、当該検索プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記のオフラインティーチング装置（データ処理部）１００等のコンピュータに供給されてもよい。本発明は、上記検索プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００３５】
オフラインティーチング装置（データ処理部）１００の記憶部１９５は、ＨＤＤまたはＳＳＤ等の公知の記憶装置である。オフラインティーチング装置１００が解析の対象とする複数のロボット２００それぞれについて、ロボット２００の外形を表す形状データとそのロボット２００を動作させる制御プログラム、その他の各種制御のデータ、演算結果等を記憶する。
【００３６】
図４のオフラインティーチング装置（データ処理部）１００において、軌跡取得部１１０は、解析の対象とする複数のロボット２００それぞれについて、作業時において移動する軌跡を時系列で取得する。より具体的には、軌跡取得部１１０は、複数のロボット２００のうちひとつのロボット２００を特定するためのロボット識別子を選択する。続いて軌跡取得部１１０は、選択したロボット識別子で特定されるロボット２００の動作を制御するための制御プログラムを、記憶部１９５から全て読み出す。
【００３７】
軌跡取得部１１０は、読み出した制御プログラムをもとにシミュレーションを実行し、各制御プログラムを実行した場合にロボット２００が移動するステップ１０の位置座標を取得する。これにより、軌跡取得部１１０は、全てのロボット２００について、各ロボット２００に割り当てられた制御プログラムを実行した場合に移動しうる軌跡を、ステップ１０（図１参照）の単位で離散的に取得する。
【００３８】
図５は５台のロボット２００とその軌跡１２とを示す模式図である。より具体的には、図５は、第１ロボット２００ａから第５ロボット２００ｅまでの５台のロボット２００と、第１ないし第５ロボット２００ａないし２００ｅに対応する第１軌跡１２ａないし第５軌跡１２ｅを示している。第１軌跡１２ａないし第５軌跡１２ｅの各軌跡は破線で示している。図５中、符号を付していないものの、各軌跡上に存在する「黒丸」は、軌跡取得部１１０が取得したステップ１０の位置を示す。
【００３９】
衝突解析部１２０は、軌跡取得部１１０により時系列で取得された軌跡１２（図１等参照）に基づいて、複数のロボットより選択される相互に近接した２台のロボット間において、当該２台のロボット同士の衝突（相互接触）または異常接近（ニアミス）の有無を解析する。衝突解析部１２０は、複数のロボット２００の中から異なる２台のロボット２００の組を取得する。そして、衝突解析部１２０は、軌跡取得部１１０において取得した軌跡１２に基づいて、組となる２台のロボットがそれぞれ取り得る軌跡の中から、一対の軌跡１２の組を取得する。同一のロボット２００であっても、制御プログラムが異なれば異なる軌跡を描くため、衝突解析部１２０は制御プログラムの組毎に解析を実行する。
【００４０】
衝突解析部１２０は、軌跡取得部１１０により取得した一対の軌跡１２の組に含まれるステップ１０同士が、上述した距離ＬＴ未満にあるか否かを比較する。この比較は、シミュレーション空間上に離散的に存在する２点間の距離求めて距離ＬＴと比較する処理であるため、計算量は少なくなる。そこで、衝突解析部１２０はこの比較処理を高速に実行することができる。以下、本明細書において、衝突解析部１２０が実行するステップ１０同士と距離ＬＴとの比較処理は、点の位置（ポジション：ｐｏｓｉｔｉｏｎ）に基づく確認処理であるため「ポジションチェック」と記載することがある。
【００４１】
図６は、２つの異なるロボット２００の軌跡の一例を示す図であり、より具体的には、図５における第３ロボット２００ｃの軌跡１２ｃと、第５ロボット２００ｅの軌跡１２ｅとを示す図である。図６に示すように、軌跡１２ｃと軌跡１２ｅとは離れており、これらの軌跡１２の間には干渉領域１４は存在しない。衝突解析部１２０は、全てのロボット２００の組み合わせにおける全ての制御プログラムの組み合わせを解析し、軌跡１２のポジションチェックを総当たりで実行する。これにより、衝突解析部１２０は干渉しないことが明らかな軌跡１２の組み合わせを迅速に除去することができる。ゆえに、衝突解析部１２０は、ロボット２００間の干渉（相互接触）及びニアミス（異常接近）の解析の高速化、解析時間の短縮化を実現できる。当該処理は、ラフチェック等と称される。
【００４２】
衝突解析部１２０は、２台のロボットの組のそれぞれについてポジションチェックを実行し、組となるロボットが描く軌跡１２のうちステップ１０同士の距離Ｌが距離ＬＴ未満となる場合、２つのロボット２００同士の衝突またはニアミスの可能性がある組と判定する。衝突解析部はさらに、衝突または異常接近の可能性がある組を判定した場合、所定の距離以下となる時系列動作軌跡（ステップ）と、その前の時系列動作軌跡（ステップ）または後ろのステップとの少なくともいずれか一方の時系列動作軌跡（ステップ）とを結ぶ軌跡１２を解析し、組を構成するロボット同士が衝突または異常接近の有無を解析する。
【００４３】
図７（ａ）及び（ｂ）は、衝突解析部１２０によるロボット２００間の衝突・干渉（相互接触）及びニアミス（異常接近）の解析を説明する模式図である。図７（ａ）は、第１ステップ１０ａから第２ステップ１０ｂに至るまでの第１軌跡１２ａと、第３ステップ１０ｃから第４ステップ１０ｄに至るまでの第２軌跡１２ｂの模式図である。図７（ａ）に示す例では、第１ステップ１０ａと第３ステップ１０ｃとの間の距離Ｌは距離ＬＴ未満である。そこで衝突解析部１２０は、少なくとも第１軌跡１２ａと第２軌跡１２ｂとは「ニアミス（異常接近）」であると判定する。第１軌跡１２ａと第２軌跡１２ｂとが少なくともニアミス（異常接近）すると判定した場合、衝突解析部１２０は、第１軌跡１２ａにおける第１ステップ１０ａから第２ステップ１０ｂに至るまでの第１軌跡１２ａ、および第３ステップ１０ｃから第４ステップ１０ｄに至るまでの第２軌跡１２ｂについて、単位時間毎に衝突があるか否かを解析する。
【００４４】
図７（ｂ）は、第１軌跡１２ａと第２軌跡１２ｂにおける単位時間毎の解析箇所を示す模式図である。ここで「単位時間」とは、衝突解析部１２０が異常接近であるとの判定のあった軌跡１２の組を詳細に解析する際のサンプリングレートである。単位時間はロボット２００の数や工程数、軌跡１２の距離等を考慮して実験により定めればよいが、例えば０．０２秒である。
【００４５】
上述したように、制御プログラムが有するステップ情報には、ロボット２００が各時系列動作軌跡（ステップ）１０間を移動する際の速度や移動方向等の補助情報も含まれる。衝突解析部１２０は、この補助情報とサンプリングレートとを用いて、単位時間毎にロボット２００の存在位置を計算により取得する。図７（ｂ）において、「白い丸」は第１軌跡１２ａにおける単位時間毎のロボット２００の位置を示し、「灰色の丸」で示す丸は第２軌跡１２ｂにおける単位時間毎のロボット２００の位置を示す。図７（ｂ）より、衝突解析部１２０は第１軌跡１２ａと第２軌跡１２ｂとが交差すること、すなわちロボット２００同士が衝突する可能性ありと判定できる。以下本明細書において、衝突解析部１２０による補助情報とサンプリングレートとを用いた軌跡１２の解析を、軌跡チェックと記載することがある。
【００４６】
このように、衝突解析部１２０は離散的なポジションチェックを実行することにより、交差しないことが明白な軌跡１２の組み合わせを迅速に除去し、異常接近する軌跡１２の組のみ詳細な軌跡チェックを実行する。これにより、衝突解析部１２０は衝突解析の迅速化と精度向上とを達成することができる。
【００４７】
インターロック設定部１３０は、衝突解析部１２０における解析結果に基づいた２台のロボット相互の衝突（相互接触）及び異常接近（ニアミス）の有無（いわゆるインターロック）の情報を、インターロック情報部２０として集約する。そして、通知部１９０は、当該インターロック情報部２０を組とするロボットを単位として通知する。通知部１９０は、インターロック設定部１３０が設定したインターロック情報部２０を示す領域を図示し、２台のロボット２００を制御する制御プログラムの組を単位として通知する。
【００４８】
図８は、インターロック設定部１３０が集約するインターロック情報２０を説明するための一実施形態の模式図であり、通知部１９０がユーザ等に提示する画像図である。図８に示すインターロック情報部２０の画像は座標平面として表現される。一対の組とする２台のロボット２００のうち一方のロボット（第１ロボット）２００の時系列動作軌跡の数は第１座標軸２１に示される。第１座標軸２１と非平行であり他方のロボット（第２ロボット）２００の時系列動作軌跡の数は第２座標軸２２に示される。つまり、インターロック情報部２０は、第１座標軸２１と第２座標軸２２により形成される平面座標２３の個々の格子２４の内に、２台のロボット相互の衝突（相互接触）及び異常接近（ニアミス）の回避を示すインターロック領域をマッピングした図である。
【００４９】
図８の平面座標２３は、第１ロボット２００ａを制御する制御プログラム００１による時系列動作軌跡を横軸の第１座標軸２１とし、第２ロボット２００ｂを制御する制御プログラム０２０の時系列動作軌跡を縦軸の第２座標軸２２とする格子（マトリクス）２４である。この例のインターロック情報部２０は、格子２４内において、衝突（相互接触）から異常接近（ニアミス）までを段階的に示す。すなわち、インターロック情報部２０は、衝突領域２５と、重度の接近領域２６、軽度の接近領域２７、接近無しの領域２８の区分けの一覧である。図示の便宜上、各領域は色の濃淡として示す。なお、接近無しの領域２８は無色（白色）である。以下、時系列動作軌跡を単にステップと称する場合もある。
【００５０】
図８の例では、第１ロボット２００ａの第５ステップと第２ロボット２００ｂの第３ステップとの間にて衝突（相互接触）が発生している（衝突領域２５参照）。衝突領域２５の周りに重度の接近領域２６が発生している。重度の接近領域２６は、第１ロボット２００ａの第５ステップと第２ロボット２００ｂの第４ステップ等である。次に、中度の接近領域２７は、第１ロボット２００ａの第５４テップと第２ロボット２００ｂの第２ステップ等である。さらに、軽度の接近領域２８は、第１ロボット２００ａの第７ステップと第２ロボット２００ｂの第５ステップ等である。図中それら以外の領域は接近無しの領域２９である。
【００５１】
そこでインターロック設定部１３０は、第１ロボット２００ａと第２ロボット２００ｂとが衝突（相互接触）及び異常接近（ニアミス）するステップの周囲に、インターロック領域３０を設定する。図８において太鎖線により囲まれた領域である。
【００５２】
第１ロボット２００ａを制御する制御プログラム００１と第２ロボット２００ｂを制御する制御プログラム０２０とのいずれかに、インターロック領域２０の前後において進入前信号と待避後信号とを対となるロボット２００に送信することが定められていれば、衝突（相互接触）及び異常接近の防止は可能である。そこで、図８に示すように、通知部１９０は制御プログラムを解析して、進入前信号「ＳＩ」と待避後信号「ＳＯ」とを示す情報を平面座標２３（格子２４）内に表示する。結果、ユーザは平面座標２３（その格子２４）を一覧することにより２台のロボット相互間のインターロックが動作するか否かを判別可能となる。これにより、ユーザは制御プログラムが正しく記述できているか否かの検証が容易となり、所望の目的のとおり制御プログラムの作成の支援に資する。
【００５３】
傾斜配点積算部１４０は、インターロック情報部２０における２台のロボット相互の衝突（相互接触）及び異常接近（ニアミス）の有無の情報に対して、傾斜配点を付与する。当該２台のロボット相互の衝突（相互接触）が有る場合は高配点値であり、当該２台のロボット相互の異常接近（ニアミス）が無い場合は低配点値である。この傾斜配点の数値の大小関係は衝突有りを「１点」とし、異常接近無しを「０点」とする２段階がある。さらには、傾斜配点を複数の段階別に設定することもできる。本実施形態においては、インターロック情報部２０における衝突領域２５を「５点」、重度の接近領域２６を「３点」、軽度の接近領域２７を「１点」、接近無しの領域２８を「０点」と設定している。むろん、配点の傾斜の度合は適宜である。
【００５４】
このように、図９の模式図はインターロック情報部２０の平面座標２３上に、本実施形態の具体的な傾斜配点値を付与して示す。インターロック情報部２０の平面座標２３（格子２４）内の各所に、２台のロボット相互間のインターロックの程度に応じた傾斜配点が可能となり、インターロックの状態の数値処理化が可能となる。
【００５５】
そして、傾斜配点積算部１４０は、第１座標軸２１または第２座標軸２２のいずれかの座標軸の一の列の傾斜配点値を合計する。例えば、図９の第１ロボット２００ａの第５ステップの列について第２座標軸２２方向に傾斜配点を抽出すると、紙面上方から「｛０点｝，｛１点｝，｛５点｝，{３点}，｛１点｝，｛０点｝，｛０点｝，．．．」である。この結果、第５ステップの列の傾斜配点値の合計は「１０点」である。同様の傾斜配点値の合計の処理は全ての列に対して行われる。
【００５６】
図９から明らかなように、傾斜配点積算部１４０にて算出した傾斜配点値の合計は、列ごとに相違する。そのため、単純に同数ずつ列を束ねて解析のための「ジョブ部」を設定してしまうと個々のジョブ部間において傾斜配点値の合計に偏りが生じ、インターロックの処理をする際の演算量にばらつきが生じる。この問題を解消するべく、インターロック情報均等分割部１５０は、インターロック情報部２０を分割して複数のジョブ部を生成するに際し、各ジョブ部に包含される傾斜配点値の合計を均等化する。
【００５７】
図１０の模式図は、インターロック情報部２０を複数のジョブ部Ｊにより分割した状態である。図示のジョブ部Ｊは「Ｊ１」ないし「Ｊ８」とする８分割である。図中の色の濃淡はインターロック情報部２０における衝突領域、重度の接近領域（例えば１００ｍｍ接近）、軽度の接近領域（例えば３００ｍｍ接近）、接近無しの領域に対応する。
【００５８】
インターロック情報均等分割部１５０による各ジョブ部傾斜配点値の合計の均等化の方法は限定されない。例えば、或る１列分の傾斜配点値の合計を順次求め、インターロック情報部２０を複数のジョブ部に分割する際に、各ジョブ部を構成する列の数を加減しながら概ね傾斜配点値の合計を等しくすることができる。
【００５９】
実施形態は、より効率的にインターロック情報均等分割部１５０においてインターロック情報部２０を分割して複数のジョブ部Jを生成する手法を採用する。干渉負荷平均算出部１７０は、インターロック情報部２０の平面座標２３（格子２４）内の一の「列」の傾斜配点値［Ｌ］を第１座標軸２１または第２座標軸２２のいずれかの座標軸の「行」の方向に合計する。そして、干渉負荷平均算出部１７０は、インターロック情報部２０の全体の傾斜配点値の総和［ＳＬ］を求める。続いて、第１ロボット２００ａの時系列動作軌跡の数［ｎ］及び第２ロボット２００ｂの時系列動作軌跡の数［ｍ］の積［ｎｍ］により、前出の傾斜配点値の総和［ＳＬ］を除する［ＳＬ／ｎｍ］。
【００６０】
こうして、干渉負荷平均算出部１７０は、いったんインターロック情報部２０における干渉負荷平均値［Ａｖｒ］を算出することができる。すなわち、「Ａｖｒ＝ＳＬ÷ｎｍ」であり、ちょうど、便宜上格子２４の１個分の傾斜配点値に相当する。この課程において、インターロック情報部２０の全体の傾斜配点値の総和［ＳＬ］が求められており、当該総和［ＳＬ］をジョブ部の分割数［Ｄｊ］により分けること［ＳＬ／Ｄｊ］により、一のジョブ部当たりのジョブ部傾斜配点値［Ａｊ］が求まる（Ａｊ＝ＳＬ÷Ｄｊ）。次に、一のジョブ部におけるジョブ部傾斜配点値［Ａｊ］は干渉負荷平均値［Ａｖｒ］の何倍に当たるのかが判明する。
【００６１】
次に、調和部１８０は、各ジョブ部に包含される干渉負荷平均値［Ａｖｒ］の合計［ＳＡ］を各ジョブ部Jにおいて均等化する。従前の手法では、インターロック情報部２０を機械的に分割して演算していたため、ジョブ部毎に演算量にばらつきが生じていた。そのため、或るジョブ部では既に演算、解析を終えているものの、他のジョブ部では依然演算、解析が残っている等の処理のばらつきが不可避であった。そのため、インターロック情報部２０の全体の演算、処理に要する時間は演算量の多いジョブ部に依存してしまうため、総じて時間を要することとなっていた。
【００６２】
これに対して、本発明のとおり、ジョブ部Ｊを傾斜配点値に基づいて均等に分割すると、各ジョブ部Ｊに包含される干渉負荷平均値［Ａｖｒ］の合計［ＳＡ］は各ジョブ部Jにおいて均等化し、各ジョブ部Ｊに包含される傾斜配点値もそれぞれのジョブ部Ｊでほぼ等しくなる。結果、ジョブ部毎の検証に要する演算量が均等化する。このことから、各ジョブ部におけるインターロックの演算、解析を同時に開始した場合、演算量自体が概ね等しいため、処理の終了に要する時間もほぼ同時とすることができる。従って、インターロック情報部２０の全体の演算、処理に要する時間の短縮に大きく貢献することができる。発明者の実証によると、インターロックの解析、演算に要した時間は、従前の１／６ないし１／８にまで減少した。
【００６３】
図１０の模式図から理解されるように、ジョブ部Ｊ１ないしＪ８は、インターロックの程度を加味しているため、各ジョブ部の領域量は互いに異なる。例えば、ジョブ部Ｊ５は
２台のロボット同士の衝突及び異常接近が予想される衝突領域及び重度の接近領域が多いため、ジョブ部自体の領域は相対的に他のジョブ部よりも狭くなる。これに対し、ジョブ部Ｊ８は軽度の接近領域及び接近無しの領域により構成されているためジョブ部の領域は広く設定される。このように、ジョブ部毎に実際に必要とされる演算量に即した分割が可能となる。
【００６４】
そして、ジョブ割当部１６０は、インターロック情報均等分割部１５０において均等に分割されて生成された各ジョブ部を演算処理部３１０（３１１，３１２，３１３，３１４）（後記図１１参照）に割り当てる。前述のとおり、本発明は効率的なジョブ部の分割を実現する。そこで、より演算処理の性能向上の点から、演算処理を複数の装置、演算素子等により分散的に実行することができる。
【００６５】
図１１の模式図は、２台の異なるロボットについて、干渉を解析する際にオフラインティーチング装置１００が実行するデータ処理を実現するための機能構成を示しており、他の構成は省略している。このデータ処理は、データ処理部３００（オフラインティーチング装置１００）が実行する。図１１（ａ）の開示形態のデータ処理部３００は、複数の演算処理部３１０（３１１，３１２，３１３，３１４）、分割部３２０及び割当部３３０を備える。
【００６６】
演算処理部３１０はＣＰＵとして機能する。以下の説明において、演算処理部３１０をＣＰＵという。ＣＰＵ３１０は、２台のロボットについて、衝突（相互接触）及び異常接近（ニアミス）の有無を解析する際の複数のデータの演算処理を行う。オフラインティーチング装置１００はＣＰＵ３１０を複数備え、それぞれが例えば並列に複数台接続されている。図示の例は、４基の演算処理部３１１，３１２，３１３，３１４である。
【００６７】
分割部３２０は、ＣＰＵ３１０によって実行されるデータの演算処理を、実行可能な２以上の処理に分割する機能を有する。図示の例では、ＣＰＵ３１０が処理すべきデータの演算処理を実行可能な４つの演算処理に分割し、４基（複数）の演算処理部３１１，３１２，３１３，３１４にそれぞれ割り当てる。この分割は分割部３２０が実行する。
【００６８】
演算処理部については、単一のＣＰＵを個々の演算領域に分割することに加え、ＣＰＵ自体を複数個実装しても良い。図１１（ｂ）の例のデータ処理部３５０では、分割部３７０及び割当部３８０を経由して、処理対象のデータは個々の演算処理部３６０（３６１，３６２，３６３，３６４）に送信され、各演算処理部にて演算実行される。さらには、演算処理部を備える（演算処理機能を担う）データ処理部の台数を複数台として（図示せず）、回線等により接続して並行して演算処理することも可能である。こうして、各ジョブ部の演算処理を同時に、並行して実行することができ、解析に要する全体の処理時間を短縮することができる。
【００６９】
通知部１９０は、インターロック情報部２０を組とするロボットを単位として通知する。同通知部１９０の詳細はインターロック設定部１３０等にて説明のとおりである。
【００７０】
図１２のフローチャートを用い、本発明のロボット作業支援プログラム（解析プログラム）について、ロボット作業プログラム作成支援方法（解析方法）を交えつつ説明する。すなわち、ロボット作業支援プログラムは、図１のデータ処理部１００（図１１のデータ処理部３００）に、軌跡取得機能、衝突解析機能、インターロック設定機能、傾斜配点積算機能、インターロック情報均等分割機能、ジョブ割当機能、通知機能、さらには、干渉負荷平均算出機能、調和機能を有し、これらの各機能は図示の順に実行される。なお、各機能は前述の情報処理装置の説明と重複するため、詳細は省略する。
【００７１】
軌跡取得機能は、複数のロボットのそれぞれについて、作業時における個々のロボットが移動する際の動作の軌跡を時系列で取得する（Ｓ１１０；軌跡取得工程）。軌跡取得機能はオフラインティーチング装置（データ処理部）１００の軌跡取得部１１０により実行される。
【００７２】
衝突解析機能は、軌跡取得機能により時系列で取得された動作の軌跡に基づいて、複数のロボットより選択される相互に近接した２台のロボット間において当該２台のロボット同士の衝突または異常接近の有無を解析する（Ｓ１２０；衝突解析工程）。衝突解析機能は衝突解析部１２０により実行される。
【００７３】
インターロック設定機能は、衝突解析機能における解析結果に基づいた２台のロボット相互の衝突または異常接近の有無の情報を、２台のロボットのうちの一方の第１ロボットの時系列動作軌跡の数を第１座標軸２１とし他方の第２ロボットの時系列動作軌跡の数を第１座標軸２１と直交する第２座標軸２２とする平面座標２３の個々の格子２４内に表示する（図８参照）。これとともに、各格子２４の２台のロボット相互の衝突または異常接近の有無の情報をインターロック情報部として集約する（Ｓ１３０；インターロック設定工程）。インターロック設定機能は、インターロック設定部１３０により実行される。
【００７４】
傾斜配点積算機能は、インターロック情報部における２台のロボット相互の衝突または異常接近の有無の情報に対して２台のロボット相互の衝突有りの場合を高配点値とし、２台のロボット相互の異常接近無しの場合を低配点値とする傾斜配点値を付与する。これとともに、第１座標軸２１または第２座標軸２２のいずれかの座標軸の一の列の傾斜配点値を合計する（Ｓ１４０；傾斜配点積算工程）。傾斜配点積算機能は、傾斜配点積算部１４０により実行される。
【００７５】
インターロック情報均等分割機能は、インターロック情報部２０を分割して複数のジョブ部Ｊを生成するに際し（図１０参照）、各ジョブ部Ｊに包含される傾斜配点値の合計を均等化する（Ｓ１５０；インターロック情報均等分割工程）。インターロック情報均等分割機能は、インターロック情報均等分割部１５０により実行される。
【００７６】
ジョブ割当機能は、インターロック情報均等分割機能において均等に分割されて生成された各ジョブ部Ｊを演算処理部１００（３００）に割り当てる（Ｓ１６０；ジョブ割当工程）。ジョブ割当機能は、ジョブ割当部１６０により実行される。
【００７７】
通知機能は、インターロック情報部を組とするロボットを単位として通知する（Ｓ１９０；通知工程）。通知機能は、通知部１９０により実行される。
【００７８】
図１３のフローチャートは、インターロック情報均等分割部１５０においてインターロック情報部２０を分割して複数のジョブ部を生成する際の処理の例である。
【００７９】
干渉負荷平均算出機能は、一の列の傾斜配点値を第１座標軸２１または第２座標軸２２のいずれかの座標軸の行の方向に合計してインターロック情報部２０の全体の傾斜配点値［Ｌ］の総和［ＳＬ］を求める。そして、当該傾斜配点値の総和［ＳＬ］を、第１ロボットの時系列動作軌跡の数［ｎ］及び第２ロボットの時系列動作軌跡の数［ｍ］の積［ｎｍ］により除して［ＳＬ／ｎｍ］、インターロック情報部２０における干渉負荷平均値［Ａｖｒ］を算出する（Ａｖｒ＝ＳＬ／ｎｍ）（Ｓ１７０；干渉負荷平均算出工程）。干渉負荷平均算出機能は、干渉負荷平均算出部１７０により実行される。
【００８０】
調和機能は、各ジョブ部Ｊに包含される干渉負荷平均値［Ａｖｒ］の合計［ＳＡ］を各ジョブ部Ｊにおいて均等化する（Ｓ１８０；調和工程）。調和機能は調和部１８０により実行される。
【産業上の利用可能性】
【００８１】
本発明のロボット作業プログラム作成支援装置によると、効率的に演算処理量の分配ができるため、総じてシミュレーション作業の効率を高めることができる。このことから、既存のロボット作業プログラム作成支援装置への代替が有望視される。そして、ロボット作業プログラム作成支援方法、及びロボット作業作成支援プログラムにおいても、同様の効果が見込まれる。
【符号の説明】
【００８２】
１  オフラインティーチングシステム
２  ロボット作業プログラム作成支援装置（解析装置）
１０  ステップ
１２  軌跡
１４  干渉領域
２０  インターロック情報部
２１  第１座標軸
２２  第２座標軸
２３  平面座標
２４  格子
２５  衝突領域
２６  重度の接近領域
２７  軽度の接近領域
２８  接近無しの領域
３０  インターロック領域
１００  オフラインティーチング装置（データ処理部）
１０２  表示装置
１１０  軌跡取得部
１２０  衝突解析部
１３０  インターロック設定部
１４０  傾斜配点積算部
１５０  インターロック情報均等分割部
１６０  ジョブ割当部
１７０  干渉負荷平均算出部
１８０  調和部
１９０  通知部
１９５  記憶部
２００（２００ａ，２００ｂ，２００ｃ，２００ｄ，２００e）  ロボット
３００  データ処理部
３１０（３１１，３１２，３１３，３１４）  演算処理部
J（Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６，Ｊ７，Ｊ８）  ジョブ部
【図１】
2019136848.tif 000003
【図２】
2019136848.tif 000004
【図３】
2019136848.tif 000005
【図４】
2019136848.tif 000006
【図５】
2019136848.tif 000007
【図６】
2019136848.tif 000008
【図７】
2019136848.tif 000009
【図８】
2019136848.tif 000010
【図９】
2019136848.tif 000011
【図１０】
2019136848.tif 000012
【図１１】
2019136848.tif 000013
【図１２】
2019136848.tif 000014
【図１３】
2019136848.tif 000015