(57)【特許請求の範囲】
【請求項１】
第１ロボット及び第２ロボットが作業を行う同一の作業時間を所定時間間隔毎に区切って定義される複数のチェックポイントの中から特定された複数の特定チェックポイントで、前記第１ロボット及び前記第２ロボットの姿勢を求め、前記第１ロボット及び前記第２ロボットの姿勢の干渉の有無を検出するための処理時間を予測する処理時間の予測方法であって、
前記作業時間を、前記所定時間間隔よりも長いサンプリング時間間隔毎に区切って定義される複数のサンプリングポイントを設定するサンプリングポイント設定工程と、
前記複数のサンプリングポイント毎に前記第１ロボットがとる姿勢と前記第２ロボットがとる姿勢とを演算し、その姿勢演算にかかった姿勢演算時間を計測し、積算する第１演算計測工程と、
前記複数のサンプリングポイント毎に、前記第１ロボットがとる姿勢と前記第２ロボットがとる姿勢とを演算するとともに、前記第１ロボットがとる姿勢と前記第２ロボットがとる姿勢とに基づいて干渉の有無を検出し、姿勢演算と干渉検出にかかった姿勢演算干渉検出時間を計測し、積算する第２演算計測工程と、
前記姿勢演算干渉検出時間と前記姿勢演算時間との差分により、前記複数のサンプリングポイントにおいてかかった干渉検出の干渉検出時間を算出する干渉検出時間算出工程と、
前記干渉検出時間を設定された前記複数のサンプリングポイントの数で除算した単位時間を、１つの前記チェックポイントにおける姿勢演算と干渉検出にかかる単位処理時間とする単位処理時間算出工程と、
を含むことを特徴とする処理時間の予測方法。
【請求項２】
請求項１に記載の処理時間の予測方法であって、
前記サンプリング時間間隔は、前記所定時間間隔の整数倍であることを特徴とする処理時間の予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一の作業時間内における２台のロボット間の姿勢干渉の検出にかかる処理時間を予測する処理時間の予測方法に関する。
【背景技術】
【０００２】
下記特許文献１には、互いに隣接して配置された２台の多関節ロボット同士の干渉の有無を検出する手法が開示されている。簡単に説明すると、２台の多関節ロボットをコンピュータによる仮想空間上でモデル化して表すとともに、仮想空間上での一方の多関節ロボットの姿勢を作業時間内の所定時刻毎に求め、その各姿勢に対して他方の多関節ロボットの作業時間内における所定時刻の各姿勢を総当たりに比較して、一方の多関節ロボットと他方の多関節ロボットとの姿勢の干渉の有無を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１０６３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
所定時刻毎に、２台の多関節ロボットの姿勢を求め、求めた姿勢を比較して干渉の有無を検出するという処理を行う前に、その処理にかかる処理時間を高精度に予測したいという要望がある。
【０００５】
そこで、本発明は、２台の多関節ロボットの姿勢演算及び干渉検出に費やされる処理時間を高精度に予測する処理時間の予測方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、第１ロボット及び第２ロボットが作業を行う同一の作業時間を所定時間間隔毎に区切って定義される複数のチェックポイントの中から特定された複数の特定チェックポイントで、前記第１ロボット及び前記第２ロボットの姿勢を求め、前記第１ロボット及び前記第２ロボットの姿勢の干渉の有無を検出するための処理時間を予測する処理時間の予測方法であって、前記作業時間を、前記所定時間間隔よりも長いサンプリング時間間隔毎に区切って定義される複数のサンプリングポイントを設定するサンプリングポイント設定工程と、前記複数のサンプリングポイント毎に前記第１ロボットがとる姿勢と前記第２ロボットがとる姿勢とを演算し、その姿勢演算にかかった姿勢演算時間を計測し、積算する第１演算計測工程と、前記複数のサンプリングポイント毎に、前記第１ロボットがとる姿勢と前記第２ロボットがとる姿勢とを演算するとともに、前記第１ロボットがとる姿勢と前記第２ロボットがとる姿勢とに基づいて干渉の有無を検出し、姿勢演算と干渉検出にかかった姿勢演算干渉検出時間を計測し、積算する第２演算計測工程と、前記姿勢演算干渉検出時間と前記姿勢演算時間との差分により、前記複数のサンプリングポイントにおいてかかった干渉検出の干渉検出時間を算出する干渉検出時間算出工程と、前記干渉検出時間を設定された前記複数のサンプリングポイントの数で除算した単位時間を、１つの前記チェックポイントにおける姿勢演算と干渉検出にかかる単位処理時間とする単位処理時間算出工程と、を含むことを特徴とする。
【０００７】
本発明は、前記処理時間の予測方法であって、前記サンプリング時間間隔は、前記所定時間間隔の整数倍であることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、１つのチェックポイントにおける姿勢演算及び干渉検出にかかる単位処理時間を高精度に求めることができる。この単位処理時間を用いれば、２台の多関節ロボットの姿勢の干渉の有無の検出に費やされる処理時間を高精度に予測することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】干渉検出装置とロボット装置との全体構成図である。
【図２】図１に示すロボットの外観構成図である。
【図３】従来から行われていた２台のロボット間における干渉検出を説明するための図である。
【図４】図１に示す制御装置の機能ブロック図である。
【図５】ラフチェックポイント及び干渉の可能性が高いと判断されたラフチェックポイントに基づいて特定される時間領域を示す図である。
【図６】サンプリングポイント及び干渉の可能性が高いと判断されたサンプリングポイントに基づいて特定される時間領域を示す図である。
【図７】処理時間と姿勢演算干渉検出時間と干渉検出時間とを模式的に示した図である。
【発明を実施するための形態】
【００１０】
本発明に係る処理時間の予測方法について、好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。
【００１１】
図１は、干渉検出装置（処理時間予測装置）１０とロボット装置１２との全体構成図である。干渉検出装置１０は、ロボット装置１２を構成する複数の多関節ロボット１４の各々の動作制御を行うためのティーチングデータを作成する。そして、干渉検出装置１０は、作成した複数のティーチングデータに基づいて、複数の多関節ロボット１４の各々を動作させたときに、干渉する虞がある２台の多関節ロボット１４間における干渉の有無（干渉の可能性が高いか否か）を仮想空間上で検出する。また、干渉検出装置１０は、２台の多関節ロボット１４間の姿勢の干渉の有無を検出するのに先立って、その処理にかかる処理時間を予測する。干渉する虞がある２台の多関節ロボット１４としては、例えば、所定距離の範囲内にある２台の多関節ロボット１４、又は、隣接して配置された２台の多関節ロボット１４等が該当する。
【００１２】
干渉検出装置１０は、ロボット装置１２とデータの通信が可能である。ロボット装置１２は、複数の多関節ロボット（以下、ロボットという）１４と、干渉検出装置１０が作成した複数のティーチングデータに基づいて、複数のロボット１４の各々の動作制御を行う複数のロボット制御部１６とを備える。なお、干渉検出装置１０以外の装置がティーチングデータの作成を行なってもよい。例えば、複数のロボット制御部１６が複数のティーチングデータを作成してもよいし、干渉検出装置１０及びロボット装置１２以外の外部装置（コンピュータ）が複数のティーチングデータを作成してもよい。この場合は、干渉検出装置１０は、複数のティーチングデータを作成した装置（コンピュータ等の制御部）から、複数のティーチングデータを取得する。
【００１３】
図２は、ロボット１４の外観構成図である。本実施の形態では、複数のロボット１４は、互いに同一構成のロボットとするが、互いに異なる構成であってもよい。ロボット１４は、取付台である第１ベース２０、第２ベース２２、第１リンク２４、第２リンク２６、第３リンク２８、第４リンク３０、及び、エンドエフェクタ着脱部３２を有し、これらは、第１ベース２０から先端側に向かって、前記の順で接続されている。先端のエンドエフェクタ着脱部３２には、エンドエフェクタ３４が装着されている。本実施の形態では、エンドエフェクタ３４として溶接を行うガンユニットを用いるが、これに限られない。
【００１４】
第２ベース２２は、重力が働く方向と平行な鉛直軸である軸Ｊ１を中心に旋回可能（回転可能）に第１ベース２０に軸支されている。第１リンク２４の基端部は、重力が働く方向と直交する平面と平行な水平軸である軸Ｊ２を中心に俯仰可能（回転可能）に第２ベース２２に軸支されている。また、第２リンク２６の基端部は、軸Ｊ２と平行な軸Ｊ３を中心に俯仰可能（回転可能）に第１リンク２４の先端部に軸支されている。第３リンク２８は、第３リンク２８の基端部から先端部に向かう方向（長手方向）に沿った軸Ｊ４を中心に回転可能に第２リンク２６の先端部に軸支されている。第４リンク３０の基端部は、軸Ｊ２及び軸Ｊ３と平行な軸Ｊ５を中心に回転可能に第３リンク２８の先端部に軸支されている。エンドエフェクタ着脱部３２は、エンドエフェクタ着脱部３２の基端部から先端部に向かう方向に沿った軸Ｊ６を中心に回転可能に第４リンク３０の先端部に軸支されている。
【００１５】
本実施の形態では、エンドエフェクタ３４としていわゆるＣ型溶接ガンを用いる。Ｃ型溶接ガンを構成するアーチ状のアーム３６の両端部には、ガン軸Ｊ７に沿って開閉する一対の電極３８、４０が設けられている。この電極３８、４０は、閉状態ではガン軸Ｊ７の作業点（以下、ＴＣＰ（Tool Center Point）という）において図示しないワークに接触する。
【００１６】
軸Ｊ１〜Ｊ６を中心とした第２ベース２２、第１リンク２４、第２リンク２６、第３リンク２８、第４リンク３０、及び、エンドエフェクタ着脱部３２の回転と、電極３８、４０の開閉とは、図示しないアクチュエータによって行われる。ＴＣＰの３次元座標上の位置は、軸Ｊ１〜Ｊ６の回転角θ１〜θ６と、ロボット１４の各部の形状、寸法と、エンドエフェクタ３４の形状、寸法とによって決定される。なお、溶接ガンは、いわゆるＸ型溶接ガンであってもよい。
【００１７】
図１の説明に戻り、干渉検出装置１０は、制御装置５０、ディスプレイ（表示装置）５２、キーボード５４、及び、マウス５６を備える。この制御装置５０は、ＣＰＵ等を有するコンピュータとメモリ等によって構成される。このコンピュータがメモリに記憶されたプログラムを実行することによって本実施の形態の制御装置５０として機能する。ディスプレイ５２は、画像を表示するものであり、例えば、液晶ディスプレイ又は有機ＥＬディスプレイ等によって構成される。キーボード５４及びマウス５６は、情報を入力する入力装置として機能する。なお、この干渉検出装置１０は、複数あってもよい。
【００１８】
干渉検出装置１０の具体的な説明をする前に、従来から行われていた２台のロボット１４間における干渉検出について図３を用いて説明する。図３は、２台のロボット１４の同一の作業時間内における作業の開始から作業の終了までの各姿勢を算出し、それらを総当たりで比較して干渉の有無を検出する方法の説明図である。図３では、２台のロボット１４のうち一方のロボット１４（以下、第１ロボット１４ａと呼ぶ）の作業時間（動作時間）を横軸にとり、他方のロボット１４（以下、第２ロボット１４ｂと呼ぶ）の作業時間（動作時間）を縦軸にとっている。この第１ロボット１４ａの作業時間と第２ロボット１４ｂの作業時間とは互いに同一である。そして、この作業時間を所定時間（例えば、０．０２秒）Ｔａ毎に区切ることによって定義される複数のチェックポイントＣＰ（所定時刻）の各々で、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢を求めて総当たりで比較し、干渉の有無（干渉の可能性が高いか否か）を検出する。
【００１９】
なお、チェックポイントＣＰとは、横軸で表された第１ロボット１４ａの作業時間を所定時間（所定時間間隔）Ｔａ毎に区切った線（所定時刻）と、縦軸で表された第２ロボット１４ｂの作業時間を所定時間（所定時間間隔）Ｔａ毎に区切った線（所定時刻）との交点である。したがって、複数のチェックポイントＣＰは、第１ロボット１４ａの作業時間の流れを列方向とし、第２ロボット１４ｂの作業時間の流れを行方向としたマトリックス状に配置された点の集合体として表すことができる。この第１ロボット１４ａの姿勢演算は、第１ロボット１４ａの動作制御を行うためのティーチングデータに基づいて行われ、第２ロボット１４ｂの姿勢演算は、第２ロボット１４ｂの動作制御を行うためのティーチングデータに基づいて行われる。
【００２０】
具体的には、第１ロボット１４ａのある所定時刻における姿勢を求め、第２ロボット１４ｂの作業開始時における姿勢を求めて、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢の干渉の有無を検出する。そして、第１ロボット１４ａの姿勢はそのままの状態にし、第２ロボット１４ｂに関しては、前回の干渉の有無の検出時の姿勢から所定時間Ｔａ経過後における姿勢を求めて、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢の干渉の有無を検出するという動作を、第２ロボット１４ｂの作業が終了する時刻まで行う。そして、このような動作を、第１ロボット１４ａの作業開始時から作業終了時までの各所定時刻（その時間間隔は所定時間Ｔａ）に対して行う。つまり、第１ロボット１４ａの所定時刻毎の姿勢を時刻順に求め、求めた第１ロボット１４ａの各姿勢に対して、第２ロボット１４ｂの所定時刻毎の姿勢を時刻順に求めて干渉の有無を検出する。こうすることによって、図３に示す各チェックポイントＣＰにおける第１ロボット１４ａと第２ロボット１４ｂとの姿勢の干渉の有無を総当たりで効率よく検出することができる。
【００２１】
しかしながら、チェックポイントＣＰの時間間隔である所定時間Ｔａを０．０２秒とすると、干渉の有無を検出するための処理回数が増え、処理時間が膨大になってしまう。また、所定時間Ｔａを比較的長い時間（例えば、２秒）にすると、処理時間を抑えることができるが、姿勢干渉検出の精度が低下してしまう。そこで、上記した特許文献１においては、原則として、チェックポイントＣＰの時間間隔である所定時間Ｔａを０．０２秒とし、干渉の虞が少ない時間領域（チェックポイントＣＰの集まり）においては、所定時間Ｔａを０．０２秒より長くしてチェックポイントＣＰの密度を小さくすることで、姿勢演算及び干渉検出にかかる処理時間の低減を図るというものである。一方で、姿勢演算及び干渉検出を行うに先立って、その処理時間を予測したいという要望がある。
【００２２】
例えば、５台のロボット１４が作業ライン（製造ライン）に沿って、ロボット１４1、ロボット１４2、ロボット１４3、ロボット１４4、ロボット１４5の順で並んでいるとする。そして、ロボット１４1、１４2間における姿勢演算及び干渉検出と、ロボット１４2、１４3間における姿勢演算及び干渉検出と、ロボット１４3、１４4間における姿勢演算及び干渉検出と、ロボット１４4、１４5間における姿勢演算及び干渉検出とを行うとする。この場合、干渉検出装置１０を２つ用意し、１つの干渉検出装置１０（１０ａ）で、ロボット１４1、１４2間の姿勢演算及び干渉検出と、ロボット１４2、１４3間の姿勢演算及び干渉検出とを行い、もう１つの他の干渉検出装置１０（１０ｂ）で、ロボット１４3、１４4間の姿勢演算及び干渉検出と、ロボット１４4、１４5間の姿勢演算及び干渉検出とを行うことで、全体的な処理時間を短くすることができる。
【００２３】
しかしながら、ロボット１４1、１４2間の姿勢演算及び干渉検出にかかる処理時間を「１」とした場合、ロボット１４2、１４3間の姿勢演算及び干渉検出にかかる処理時間が「１」、ロボット１４3、１４4間及びロボット１４4、１４5間の姿勢演算及び干渉検出にかかる処理時間が共に「２」であったとすると、干渉検出装置１０ａでの全体の処理時間が「２」であるのに対し、干渉検出装置１０ｂでの全体の処理時間が「４」となってしまう。干渉検出装置１０ａ、１０ｂでかかる全体の処理時間を均等にするためにも、各ロボット１４間での姿勢演算及び干渉検出にかかる時間を予測することが望ましい。そして、その予測結果に基づいて、各ロボット１４間での姿勢演算及び干渉検出を複数の干渉検出装置１０に振り分けることで、各干渉検出装置１０の姿勢演算及び干渉検出にかかる処理時間を均等に振り分けることができ、全体的な処理時間を短縮することができる。
【００２４】
ここで、特開２００８−２０６４２号公報には、データ処理時間を予測する手法が開示されている。簡単に説明すると、代表サンプルを選択し、その複数の代表サンプルに対してデータ処理を実行し、複数の代表サンプルのデータ処理にかかった時間に基づいて単位当たりの処理時間を求め、この単位当たりの処理時間に全処理数を乗算することで、全体の処理時間を予測するというものである。
【００２５】
ロボット１４の動作を微小時間である所定時間（例えば、０．０２秒）Ｔａ毎に区切り、区切られた所定時刻毎の姿勢を時刻順に演算する場合は、ロボット１４の姿勢演算にかかる時間が、ロボット１４の姿勢の干渉の有無の検出にかかる時間に対して非常に短いので無視することができる。その理由としては、現時点のロボット１４の姿勢と所定時間（例えば、０．０２秒）Ｔａ経過後のロボット１４の姿勢とは大きな変化がないからである。しかしながら、例えば、ロボット１４の作業時間を、所定時間Ｔａよりも長いサンプリング時間（例えば、２秒）で区切り、区切られたサンプリング時刻毎の姿勢を時刻順に演算する場合においては、ロボット１４の姿勢演算にかかる時間が長くなる。したがって、ロボット１４の姿勢の干渉の有無の検出にかかる時間に対して姿勢演算にかかる時間を無視することができない。その理由としては、サンプリング時間が２秒と長いため、現時点のロボット１４の姿勢とサンプリング時間（時間間隔が２秒）経過後のロボット１４の姿勢とは大きく変化している可能性があるからである。したがって、その処理の対象となるものが、本実施の形態と特開２００８−２０６４２号公報とでは大きく異なるため（特開２００８−２０６４２号公報では図形データを対象とし、本実施の形態ではロボット１４の姿勢演算を対象とするため）、特開２００８−２０６４２号公報の技術的思想を直接採用することはできない。そこで、本実施の形態では、２台のロボット１４間の姿勢の干渉の有無を検出するためにかかる処理時間を精度よく予測するというものである。
【００２６】
図４は、干渉検出装置１０の制御装置５０の機能ブロック図である。制御装置５０は、干渉検出部１００と処理時間予測部１０２とを備える。干渉検出部１００は、ティーチングデータに基づいて２台のロボット１４間における姿勢演算及び干渉検出を仮想空間上で行う。処理時間予測部１０２は、ティーチングデータを用いて干渉検出部１００によって行われる姿勢演算及び干渉検出にかかる処理時間Ｓを予測する。処理時間予測部１０２による処理時間Ｓの予測は、干渉検出部１００による姿勢演算及び干渉検出に先立って行われるが、まず、干渉検出部１００について説明した後、処理時間予測部１０２について説明する。
【００２７】
干渉検出部１００は、特定チェックポイント設定部１１０及び姿勢干渉検出部１１２を備える。特定チェックポイント設定部１１０は、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を、上述した所定時間Ｔａよりも長いラフ時間（ラフ時間間隔）Ｔｂ毎に区切って定義される複数のラフチェックポイントＲＣＰを、特定チェックポイントＣＣＰとして設定する。特定チェックポイント設定部１１０は、設定した複数の特定チェックポイントＣＣＰ（ラフチェックポイントＲＣＰ）の位置情報（時間軸上における位置情報）を姿勢干渉検出部１１２に出力する。
【００２８】
このラフチェックポイントＲＣＰ（特定チェックポイントＣＣＰ）は、図５に示すように、横軸で定義された第１ロボット１４ａの作業時間をラフ時間Ｔｂ毎に区切った線（ラフチェック時刻）と、縦軸で表された第２ロボット１４ｂの作業時間をラフ時間Ｔｂ毎に区切った線（ラフチェック時刻）との交点である。したがって、複数の特定チェックポイントＣＣＰは、第１ロボット１４ａの作業時間の流れを列方向とし、第２ロボット１４ｂの作業時間の流れを行方向としてマトリックス状に配置された点の集合体として表すことができる。本実施の形態においては、この特定チェックポイントＣＣＰの数を、列方向及び行方向に１８０個とするので、全部で３２４００個となる。また、本実施の形態では、所定時間（所定時間間隔）Ｔａを０．０２秒、ラフ時間Ｔｂを０．２秒とし、所定時刻（時間間隔は所定時間Ｔａ）とラフチェック時刻（時間間隔はラフ時間Ｔｂ）とは、タイミングが同期している。このように、特定チェックポイントＣＣＰ（ラフチェックポイントＲＣＰ）は、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を所定時間Ｔａ毎に区切って定義される複数のチェックポイントＣＰを、１／１００（つまり、横軸方向及び縦軸方向にそれぞれ１／１０）に間引いたものである。なお、本実施の形態では、ラフ時間Ｔｂは、所定時間Ｔａの１０倍としたが、所定時間Ｔａの整数倍であればよい。
【００２９】
姿勢干渉検出部１１２は、設定された複数の特定チェックポイントＣＣＰの各々で、第１ロボット１４ａ及び第２ロボット１４ｂがとる姿勢を求めるとともに、第１ロボット１４ａがとる姿勢と第２ロボット１４ｂがとる姿勢とに基づいて干渉の有無を総当たりで検出する。具体的には、あるラフチェック時刻における第１ロボット１４ａがとる姿勢を算出し、算出した第１ロボット１４ａの姿勢を固定にした状態で、第２ロボット１４ｂの作業開始から作業終了までの各ラフチェック時刻（その時間間隔はラフ時間Ｔｂ）において、第２ロボット１４ｂがとる姿勢を時刻順に算出するとともに干渉の有無の検出を行う。このような動作を、第１ロボット１４ａの作業開始から作業終了までの各ラフチェック時刻において時刻順に行う。
【００３０】
つまり、姿勢干渉検出部１１２は、ある列のラフチェックポイントＲＣＰ（特定チェックポイントＣＣＰ）における第１ロボット１４ａがとる姿勢を算出し、続いて、１行目〜１８０行目までの各ラフチェックポイントＲＣＰにおける第２ロボット１４ｂがとる姿勢を時刻順に算出するとともに干渉の有無を検出するという動作を、１列目〜１８０列目まで時刻順に行う。このようにすることによって、設定された全てのラフチェックポイントＲＣＰにおける第１ロボット１４ａ及び第２ロボット１４ｂの姿勢演算及び干渉検出を効率的に行うことができる。
【００３１】
そして、姿勢干渉検出部１１２は、干渉の可能性が高いと判断したラフチェックポイントＲＣＰ（特定チェックポイントＣＣＰ）の位置情報（時間軸上における位置情報）を、特定チェックポイント設定部１１０に出力する。
【００３２】
ここで、姿勢干渉検出部１１２による干渉検出について説明する。姿勢干渉検出部１１２は、各特定チェックポイントＣＣＰにおいて算出した第１ロボット１４ａ及び第２ロボット１４ｂの姿勢から、第１ロボット１４ａと第２ロボット１４ｂとの最短距離を算出する。そして、最短距離が閾値（例えば、４００ｍｍ）以下であれば近い（その前後の時刻において干渉の可能性が高い）と判断し、最短距離が閾値よりも長ければ遠い（干渉の可能性が低い）と判断する。
【００３３】
特定チェックポイント設定部１１０は、近い（その前後の時刻において干渉の可能性が高い）と判断した特定チェックポイントＣＣＰ（以下、ＣＣＰｉ）の位置情報に基づいて、複数のチェックポイントＣＰを特定チェックポイントとして追加設定する。この追加された特定チェックポイントをＡＣＰで表す。特定チェックポイント設定部１１０は、近い（干渉の可能性が高い）と判断した特定チェックポイントＣＣＰｉの位置を中心に、横軸方向及び縦軸方向に前後０．２秒の期間で特定される時間領域Ａ内の複数のチェックポイントＣＰを、特定チェックポイントＡＣＰとして追加設定する。この時間領域Ａは、図５の横軸方向及び縦軸方向に対してそれぞれ０．４秒のブロック領域となり、図５においては、この時間領域Ａを斜線で図示している。このチェックポイントＣＰは、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を、所定時間（０．０２秒）毎に区切って定義されたものであることから、時間領域Ａ内のチェックポイントＣＰは、４００（＝横軸方向に２０×縦軸方向に２０）個となる。特定チェックポイント設定部１１０は、近い（干渉の可能性が高い）と判断した特定チェックポイントＣＣＰｉが複数ある場合には、それぞれの特定チェックポイントＣＣＰｉに基づいて複数の時間領域Ａを特定し、複数の時間領域Ａ内のチェックポイントＣＰを特定チェックポイントＡＣＰとして追加設定する。但し、時間領域Ａ内のチェックポイントＣＰであっても、既に設定している特定チェックポイントＣＣＰ、ＡＣＰに対しては、特定チェックポイントＡＣＰとして新たに追加しない。特定チェックポイント設定部１１０は、追加設定した特定チェックポイントＡＣＰの位置情報（時間軸上の位置情報）を再び、姿勢干渉検出部１１２に出力する。
【００３４】
姿勢干渉検出部１１２は、設定された複数の特定チェックポイントＡＣＰの各々で、上述したように、第１ロボット１４ａ及び第２ロボット１４ｂがとる姿勢を求めるとともに、第１ロボット１４ａがとる姿勢と第２ロボット１４ｂがとる姿勢とに基づいて干渉の有無（干渉の可能性が高いか否か）をその最短距離を用いて総当たりで検出する。このように、姿勢干渉検出部１１２は、複数のチェックポイントＣＰの中から特定された複数のチェックポイントＣＰである特定チェックポイントＣＣＰ、ＡＣＰで、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢を求め、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢の干渉の有無を総当たりで検出する。これにより、２台のロボット１４間の最短距離が比較的近く、その前後の時刻において干渉する可能性が高いと判断される時間領域Ａにおいては細かい時間間隔で最短距離を確認し、遠い場合は細かくみないので、姿勢演算及び干渉検出にかかる処理時間を、干渉有無の判定精度をおとすことなく短縮することができる。なお、最終的な干渉の有無（衝突の有無）は、ロボット１４の動作誤差、振動、及び、仮想空間上のロボット１４のモデル精度等を考慮し、例えば、ロボット１４間の最短距離が所定距離以上であるか否かによって判定するとよく、例えば、５０ｍｍ以下であれば「干渉あり」とする。
【００３５】
次に、処理時間予測部１０２について説明する。処理時間予測部１０２は、サンプリングポイント設定部１２０、第１演算計測部１２２、第２演算計測部１２４、干渉検出時間算出部１２６、単位処理時間算出部１２８、ラフチェックポイント設定部１３０、及び、処理時間算出部１３２を備える。
【００３６】
サンプリングポイント設定部１２０は、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を、上述した所定時間Ｔａ及びラフ時間Ｔｂよりも長いサンプリング時間（サンプリング時間間隔）Ｔｃ毎に区切って定義される複数のサンプリングポイントＳＰを設定する。サンプリングポイント設定部１２０は、設定した複数のサンプリングポイントＳＰの位置情報（時間軸上における位置情報）を第１演算計測部１２２、第２演算計測部１２４、及び、単位処理時間算出部１２８に出力する。
【００３７】
このサンプリングポイントＳＰは、図６に示すように、横軸で定義された第１ロボット１４ａの作業時間をサンプリング時間Ｔｃ毎に区切った線（サンプリング時刻）と、縦軸で表された第２ロボット１４ｂの作業時間をサンプリング時間Ｔｃ毎に区切った線（サンプリング時刻）との交点である。したがって、複数のサンプリングポイントＳＰは、第１ロボット１４ａの作業時間の流れを列方向とし、第２ロボット１４ｂの作業時間の流れを行方向としてマトリックス状に配置された点の集合体として表すことができる。本実施の形態においては、このサンプリングポイントＳＰの数を、列方向及び行方向に１８個とするので、全部で３２４個となる。また、本実施の形態では、サンプリング時間（サンプリング時間間隔）Ｔｃを２．０秒とし、所定時刻（時間間隔は所定時間Ｔａ）とサンプリング時刻（時間間隔はサンプリング時間Ｔｃ）とは、タイミングが同期している。このように、サンプリングポイントＳＰは、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を所定時間Ｔａ毎に区切って定義される複数のチェックポイントＣＰを、１／１００００（つまり、横軸方向及び縦軸方向にそれぞれ１／１００）に間引いたものである。なお、本実施の形態では、サンプリング時間Ｔｃは、所定時間Ｔａの１００倍としたが、所定時間Ｔａの整数倍であればよい。
【００３８】
第１演算計測部１２２は、設定された複数のサンプリングポイントＳＰの各々で、第１ロボット１４ａ及び第２ロボット１４ｂがとる姿勢を求める。具体的には、第１演算計測部１２２は、あるサンプリング時刻における第１ロボット１４ａがとる姿勢を算出し、算出した第１ロボット１４ａの姿勢を固定にした状態で、第２ロボット１４ｂの作業開始から作業終了までの各サンプリング時刻（その時間間隔はサンプリング時間Ｔｃ）において第２ロボット１４ｂがとる姿勢を時刻順に算出するという動作を、第１ロボット１４ａの作業開始から作業終了までの各サンプリング時刻において時刻順に行う。
【００３９】
つまり、第１演算計測部１２２は、ある列のサンプリングポイントＳＰにおける第１ロボット１４ａがとる姿勢を算出し、続いて、１行目〜１８行目までの各サンプリングポイントＳＰにおける第２ロボット１４ｂがとる姿勢を時刻順に算出するという動作を、１列目〜１８列目まで時刻順に行う。このようにすることによって、設定された全てのサンプリングポイントＳＰにおける第１ロボット１４ａ及び第２ロボット１４ｂの姿勢演算を効率的に行うことができる。そして、第１演算計測部１２２は、その姿勢演算にかかった全時間（以下、姿勢演算時間）を計測する。この姿勢演算時間は、複数のサンプリングポイントＳＰの各々での第１ロボット１４ａ及び第２ロボット１４ｂの姿勢演算にかかった時間を計測し、積算（合算）した時間である。第１演算計測部１２２は、計測した姿勢演算時間を干渉検出時間算出部１２６に出力する。
【００４０】
第２演算計測部１２４は、設定された複数のサンプリングポイントＳＰの各々で、第１ロボット１４ａ及び第２ロボット１４ｂがとる姿勢を求めるとともに、第１ロボット１４ａがとる姿勢と第２ロボット１４ｂがとる姿勢とに基づいて干渉の有無を検出する。具体的には、第２演算計測部１２４は、あるサンプリング時刻における第１ロボット１４ａがとる姿勢を算出し、算出した第１ロボット１４ａの姿勢を固定にした状態で、第２ロボット１４ｂの作業開始から作業終了までの各サンプリング時刻において第２ロボット１４ｂがとる姿勢を時刻順に算出するとともに干渉の有無の検出も行なう。このような動作を、第１ロボット１４ａの作業開始から作業終了までの各サンプリング時刻において時刻順に行う。
【００４１】
つまり、第２演算計測部１２４は、ある列のサンプリングポイントＳＰにおける第１ロボット１４ａがとる姿勢を算出し、続いて、１行目〜１８行目までの各サンプリングポイントＳＰにおける第２ロボット１４ｂがとる姿勢を時刻順に算出するとともに干渉の有無を検出するという動作を、１列目〜１８列目まで時刻順に行う。このようにすることによって、設定された全てのサンプリングポイントＳＰにおける第１ロボット１４ａ及び第２ロボット１４ｂの姿勢演算及び干渉検出を効率的に行うことができる。そして、第２演算計測部１２４は、その姿勢演算及び干渉検出にかかった全時間（以下、姿勢演算干渉検出時間）を計測する。この姿勢演算干渉検出時間は、複数のサンプリングポイントＳＰの各々での第１ロボット１４ａ及び第２ロボット１４ｂの姿勢演算及び干渉検出にかかった時間を計測し、積算（合算）した時間である。第２演算計測部１２４は、算出した姿勢演算干渉検出時間を干渉検出時間算出部１２６に出力する。
【００４２】
なお、言うまでもないが、第１演算計測部１２２及び第２演算計測部１２４は、第１ロボット１４ａの動作制御を行うためのティーチングデータに基づいて第１ロボット１４ａの姿勢演算を行い、第２ロボット１４ｂの動作制御を行うためのティーチングデータに基づいて第２ロボット１４ｂの姿勢演算を行う。この姿勢演算の具体的な方法は、公知技術なので説明を割愛する。
【００４３】
次に、第２演算計測部１２４による干渉検出は、姿勢干渉検出部１１２と同様である。つまり、第２演算計測部１２４は、各サンプリングポイントＳＰにおいて算出した第１ロボット１４ａ及び第２ロボット１４ｂの姿勢から、第１ロボット１４ａと第２ロボット１４ｂとの最短距離を算出する。そして、最短距離が閾値（例えば、４００ｍｍ）以下であれば近い（干渉の可能性が高い）と判定し、最短距離が閾値より長ければ遠い（干渉の可能性が低い）と判定する。第２演算計測部１２４は、近い（干渉の可能性が高い）と判定したサンプリングポイントＳＰ（以下、ＳＰｉ）の位置情報（時間軸上における位置情報）を、処理時間算出部１３２に出力する。
【００４４】
干渉検出時間算出部１２６は、姿勢演算干渉検出時間から姿勢演算時間を減算することで、干渉の有無の検出のみにかかった時間（以下、干渉検出時間）を算出する。そして、単位処理時間算出部１２８は、干渉検出時間をサンプリングポイントＳＰの数で除算することで、単位処理時間ＰＳを算出している。この単位処理時間ＰＳは、１つのポイント（サンプリングポイントＳＰ、チェックポイントＣＰ、及び、ラフチェックポイントＲＣＰ）における干渉検出にかかる時間を示している。なお、単位処理時間算出部１２８は、サンプリングポイント設定部１２０から送られてきた設定された複数のサンプリングポイントＳＰの位置情報に基づいてサンプリングポイントＳＰの数を決定する。
【００４５】
図７は、作業時間を所定時間Ｔａ（又はラフ時間Ｔｂ）毎に区切った各所定時刻（又はラフチェック時刻）において姿勢演算と干渉検出とを行った場合にかかる処理時間と、作業時間をサンプリング時間Ｔｃ毎に区切った各サンプリング時刻（サンプリングポイントＳＰ）において姿勢演算と干渉検出を行った場合にかかる姿勢演算干渉検出時間と、干渉検出時間とを模式的に示した図である。なお、図７では、処理時間と姿勢演算干渉検出時間と干渉検出時間との比較を容易にするため、連続する３つのチェックポイントＣＰ（又はラフチェックポイントＲＣＰ）及びサンプリングポイントＳＰにおいてかかった処理時間、姿勢演算干渉検出時間、及び、干渉検出時間を表している。
【００４６】
所定時刻（又はラフチェック時刻）毎に姿勢演算と干渉検出を行った場合は、所定時間Ｔａ（又はラフ時間Ｔｂ）が０．０２秒（又は０．２秒）と非常に短いため、所定時間Ｔａ（又はラフ時間Ｔｂ）の間にロボット１４の姿勢は然程変化せず、各所定時刻（又はラフチェック時刻）における姿勢演算にかかる時間が短い。一方で、サンプリング時刻毎に姿勢演算と干渉検出を行った場合は、サンプリング時間Ｔｃが２秒と長いため、サンプリング時間Ｔｃの間にロボット１４の姿勢が大きく変化する場合があり、姿勢演算にかかる時間が長くなる。なお、干渉の有無の検出にかかる時間は、両者とも差異は殆どないことを付言しておく。
【００４７】
そのため、図７に示すように、３つのサンプリングポイントＳＰにおいて姿勢演算と干渉検出を行った場合にかかる姿勢演算干渉検出時間は、３つのチェックポイントＣＰ（ラフチェックポイントＲＣＰ）において姿勢演算と干渉検出を行った場合にかかる処理時間に対して大きな誤差を有することになる。したがって、複数のサンプリングポイントＳＰでかかった姿勢演算干渉検出時間を単にサンプリングポイントＳＰの数で除算して、１回の姿勢演算及び干渉検出にかかる単位処理時間ＰＳを求めても、１個のチェックポイントＣＰ（ラフチェックポイントＲＣＰ）における姿勢演算及び干渉検出にかかる時間に対して誤差が大きくなる。特に、チェックポイントＣＰ及びラフチェックポイントＲＣＰの数は、サンプリングポイントＳＰの数に比べ圧倒的に多く、最大でサンプリングポイントＳＰの数に対して約１００００倍又は１００倍となる。したがって、複数のサンプリングポイントＳＰでかかった姿勢演算干渉検出時間をサンプリングポイントＳＰの数で除算した単位処理時間ＰＳを用いて処理時間を算出した場合は、その誤差は無視できない程度にまで大きくなる。
【００４８】
そのため、本実施の形態では、姿勢演算干渉検出時間から姿勢演算時間を減算することで、干渉の有無の検出のみにかかった干渉検出時間を算出している。図７に示すように、３つのサンプリングポイントＳＰにおける干渉検出にかかった干渉検出時間は、３つのチェックポイントＣＰ（又はラフチェックポイントＲＣＰ）において姿勢演算と干渉検出を行った場合にかかる処理時間に比べて短いが、この誤差は微小であり許容範囲内である。つまり、チェックポイントＣＰ（ラフチェックポイントＲＣＰ）における姿勢演算にかかる時間は非常に短いため、姿勢演算にかかる時間を無視してもその誤差は許容範囲内となるからである。したがって、干渉検出時間をサンプリングポイントＳＰの数で除算することで、単位処理時間ＰＳを算出している。
【００４９】
ラフチェックポイント設定部１３０は、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を、所定時間Ｔａよりも長く、サンプリング時間Ｔｃより短いラフ時間（ラフ時間間隔）Ｔｂ毎に区切って定義される複数のラフチェックポイントＲＣＰを設定する。ラフチェックポイント設定部１３０は、設定したラフチェックポイントＲＣＰの数Ｎ１を処理時間算出部１３２に出力する。ラフチェックポイント設定部１３０によるラフチェックポイントＲＣＰの設定方法は、特定チェックポイント設定部１１０による特定チェックポイントＣＣＰ（ラフチェックポイントＲＣＰ）の設定方法と同じである。
【００５０】
処理時間算出部１３２は、姿勢干渉検出部１１２が特定チェックポイントＣＣＰ、ＡＣＰで、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢を求め、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢の干渉の有無を検出するための処理時間Ｓを予測する。
【００５１】
処理時間算出部１３２は、第２演算計測部１２４によって干渉の可能性が有りと判断されたサンプリングポイントＳＰｉの位置情報に基づいて、複数のチェックポイントＣＰを選択する。具体的には、第１ロボット１４ａ及び第２ロボット１４ｂに関して、サンプリングポイントＳＰｉの位置を中心に、横軸方向及び縦軸方向に前後１秒の期間で特定される時間領域Ｂ内の複数のチェックポイントＣＰを選択する。この時間領域Ｂは、図６の横軸方向及び縦軸方向に対してそれぞれ２秒のブロック領域となり、図６においては、この時間領域Ｂを斜線で図示している。そして、チェックポイントＣＰは、第１ロボット１４ａ及び第２ロボット１４ｂの作業時間を、所定時間（０．０２秒）毎に区切って定義されたものであることから、時間領域Ｂ内のチェックポイントＣＰは、１００００（＝横軸方向に１００×縦軸方向に１００）個となる。したがって、干渉の可能性が高いと判断されたサンプリングポイントＳＰｉの数をｎとすると、選択される全チェックポイントＣＰの数Ｎ２は、Ｎ２＝１００００×ｎ、の関係式で表すことができる。
【００５２】
そして、処理時間算出部１３２は、選択したチェックポイントＣＰの数Ｎ２と、ラフチェックポイント設定部１３０によって設定されたラフチェックポイントＲＣＰの数Ｎ１とを加算した値に、単位処理時間ＰＳを乗算することで、処理時間Ｓを算出する。つまり、処理時間算出部１３２は、Ｓ＝（Ｎ１＋Ｎ２）×ＰＳ、の関係式を用いて、処理時間Ｓを算出する。
【００５３】
以上のように、姿勢干渉検出部１１２は、複数の特定チェックポイントＣＣＰ（ラフチェックポイントＲＣＰ）の各々で、第１ロボット１４ａ及び第２ロボット１４ｂの姿勢演算及び干渉検出を行う。そして、姿勢の干渉の可能性が高いと判断された特定チェックポイントＣＣＰｉを中心に横軸方向及び縦軸方向に前後０．２秒の期間で特定される時間領域Ａ内にある複数のチェックポイントＣＰが特定チェックポイントＡＣＰとして追加設定される。姿勢干渉検出部１１２は、追加設定された特定チェックポイントＡＣＰでの姿勢演算及び干渉検出をさらに行う。
【００５４】
これに対して、処理時間算出部１３２は、姿勢干渉検出部１１２での姿勢演算及び干渉検出にかかる処理時間を予め算出する方法として、干渉の可能性が高いと判断されたサンプリングポイントＳＰｉを中心に、前後１秒の期間で特定される時間領域Ｂ内にある複数のチェックポイントＣＰの数Ｎ２と、複数のラフチェックポイントＲＣＰの数Ｎ１とを加算して、単位処理時間ＰＳを乗算することによって処理時間Ｓを算出する。
【００５５】
ここで、処理時間算出部１３２で求められる複数のチェックポイントＣＰの数Ｎ２と複数のラフチェックポイントＲＣＰの数Ｎ１とを加算した値（Ｎ１＋Ｎ２）は、実際に姿勢干渉検出部１１２で姿勢演算及び干渉検出が行なわれる特定チェックポイントＣＣＰ、ＡＣＰの数と一致しない。しかし、複数のラフチェックポイントＲＣＰの数Ｎ１と特定チェックポイントＣＣＰの数とは同一であり、複数のチェックポイントＣＰの数Ｎ２と特定チェックポイントＡＣＰの数とが異なるだけであるが、その両者は近似している。そのため、算出された処理時間Ｓは、実際に姿勢干渉検出部１１２による姿勢演算及び干渉検出にかかる処理時間に近似した値となる。
【００５６】
以下、複数のチェックポイントＣＰの数Ｎ２と特定チェックポイントＡＣＰの数が近似していることについて説明する。サンプリングポイントＳＰは、サンプリング時間Ｔｃ（２秒）という長い時間で設定されているため、干渉の可能性が高いと判断されたサンプリングポイントＳＰｉに基づいて特定される時間領域Ｂの数は比較的少ない。これに対して、特定チェックポイントＣＣＰは、サンプリング時間Ｔｃの１／１０倍であるラフ時間Ｔｂ（０．２秒）という短い時間で設定されているため、干渉の可能性が高いと判断された特定チェックポイントＣＣＰｉに基づいて特定される時間領域Ａの数は、特定される時間領域Ｂの数より多くなる。そのため、特定された複数の時間領域Ａ内の特定チェックポイントＡＣＰの数と、特定された１つ又は複数の時間領域Ｂ内のチェックポイントＣＰの数Ｎ２との差は、許容範囲内となる。なお、１つの時間領域Ｂ内にあるチェックポイントＣＰの数は１００００個であり、１つの時間領域Ａ内にあるチェックポイントＣＰ（特定チェックポイントＡＣＰ）の数は４００個である。
【符号の説明】
【００５７】
１０、１０ａ、１０ｂ…干渉検出装置      １２…ロボット装置
１４…多関節ロボット                    １６…ロボット制御部
５０…制御装置                          １００…干渉検出部
１０２…処理時間予測部                  １１０…特定チェックポイント設定部
１１２…姿勢干渉検出部                  １２０…サンプリングポイント設定部
１２２…第１演算計測部                  １２４…第２演算計測部
１２６…干渉検出時間算出部              １２８…単位処理時間算出部
１３０…ラフチェックポイント設定部      １３２…処理時間算出部
【図１】
0006654926.tif 000002
【図２】
0006654926.tif 000003
【図３】
0006654926.tif 000004
【図４】
0006654926.tif 000005
【図５】
0006654926.tif 000006
【図６】
0006654926.tif 000007
【図７】
0006654926.tif 000008