(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】干渉判定装置、方法、及びプログラム
(51)【国際特許分類】
B25J 19/06 20060101AFI20240509BHJP
【FI】
B25J19/06
(21)【出願番号】P 2020044762
(22)【出願日】2020-03-13
【審査請求日】2023-01-11
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】藤井 春香
【審査官】牧 初
(56)【参考文献】
【文献】特開2019-084649(JP,A)
【文献】特開2007-164417(JP,A)
【文献】特開2018-144223(JP,A)
【文献】特開2019-025621(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部と、
前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部と、
前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部と、
前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部と、
前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部と、
を含み、
前記可能性判定部は、前記マージンを、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離のうち長い方の距離とする
干渉判定装置。
【請求項2】
複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部と、
前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部と、
前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部と、
前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部と、
前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部と、含み、
前記可能性判定部は、前記マージンを、ロボットの姿勢の変化量と前記所定部位の位置の変位量との予め定めた関係に基づいて決定する
干渉判定装置。
【請求項3】
前記算出部は、前記軌跡上で、前記第1の位置又は前記第2の位置からの距離が前記第1の位置と前記第2の位置との中間となる位置を前記中間位置として算出する請求項1
又は請求項2に記載の干渉判定装置。
【請求項4】
前記算出部は、前記第1の姿勢と前記第2の姿勢との中間姿勢における前記所定部位の位置を前記中間位置として算出する請求項1
又は請求項2に記載の干渉判定装置。
【請求項5】
前記算出部は、前記第1の姿勢をとる時刻と、前記第2の姿勢をとる時刻との中間時刻における前記ロボットの姿勢を中間姿勢とし、前記中間姿勢における前記所定部位の位置を中間位置として算出する請求項1
又は請求項2に記載の干渉判定装置。
【請求項6】
前記可能性判定部は、前記外接形状を、球境界、軸平行境界ボックス、有向境界ボックス、又は凸包とする請求項1~請求項
5のいずれか1項に記載の干渉判定装置。
【請求項7】
前記終了判定部は、前記距離が所定値以下の場合に、前記条件を満たすと判定する請求項1~請求項
6のいずれか1項に記載の干渉判定装置。
【請求項8】
前記終了判定部は、前記ロボット間における前記所定部位の距離が大きいほど、前記所定値を大きな値に設定する請求項
7に記載の干渉判定装置。
【請求項9】
前記可能性判定部は、さらに、前記複数のロボットの周辺に存在する障害物の領域と、前記所定部位を包含する外接形状に所定のマージンを加えた領域の各々の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記所定部位と前記障害物との干渉の可能性を判定し、
前記干渉判定部は、さらに、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかと、前記障害物との干渉を判定する
請求項1~請求項
8のいずれか1項に記載の干渉判定装置。
【請求項10】
複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部と、
前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部と、
前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部と、
前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、前記ロボット間における前記所定部位の距離が大きいほど大きな値に設定される所定値以下となるまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部と、
前記終了判定部により、前記距離が前記所定値以下となったと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部と、
を含む干渉判定装置。
【請求項11】
取得部が、複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得し、
算出部が、前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出し、
可能性判定部が、前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定し、
終了判定部が、前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させ、
干渉判定部が、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定
し、
前記可能性判定部は、前記マージンを、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離のうち長い方の距離とする
干渉判定方法。
【請求項12】
コンピュータを、
複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部、
前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部、
前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部、
前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部、及び、
前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部
として機能させるための干渉判定プログラムであって、
前記可能性判定部は、前記マージンを、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離のうち長い方の距離とする
干渉判定プログラム。
【請求項13】
取得部が、複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得し、
算出部が、前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出し、
可能性判定部が、前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定し、
終了判定部が、前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させ、
干渉判定部が、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定し、
前記可能性判定部は、前記マージンを、ロボットの姿勢の変化量と前記所定部位の位置の変位量との予め定めた関係に基づいて決定する
干渉判定方法。
【請求項14】
コンピュータを、
複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部、
前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部、
前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部、
前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部、及び、
前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部として機能させるための干渉判定プログラムであって、
前記可能性判定部は、前記マージンを、ロボットの姿勢の変化量と前記所定部位の位置の変位量との予め定めた関係に基づいて決定する
干渉判定プログラム。
【請求項15】
取得部が、複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得し、
算出部が、前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出し、
可能性判定部が、前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定し、
終了判定部が、前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、前記ロボット間における前記所定部位の距離が大きいほど大きな値に設定される所定値以下となるまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させ、
干渉判定部が、前記終了判定部により、前記距離が前記所定値以下となったと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する
干渉判定方法。
【請求項16】
コンピュータを、
複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部、
前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部、
前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部、
前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、前記ロボット間における前記所定部位の距離が大きいほど大きな値に設定される所定値以下となるまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部、及び、
前記終了判定部により、前記距離が前記所定値以下となったと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部
として機能させるための干渉判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、干渉判定装置、干渉判定方法、及び干渉判定プログラムに関する。
【背景技術】
【0002】
複数のロボットの動作生成を行う際、ロボット同士が干渉するか否かを判定することが行われている。例えば、複数のロボットが同時に動作する際に、相互の動作時間のずれを考慮し、動作時間の全組合せについてロボットの相互干渉を検証する技術が提案されている。この技術は、第1及び第2の多関節ロボットについて所定間隔の動作時間毎に、相互の姿勢の組合せをシミュレーション動作によって実現して干渉の有無を確認する。また、この技術は、確認した結果を、第1及び第2の多関節ロボットのそれぞれの動作時間を示す第1座標軸、第2座標軸から構成されるグラフに表す。そして、この技術は、グラフの作図領域で、第1及び第2の多関節ロボットが相互干渉を発生する箇所をマークによって示し、さらに、互いに近い距離にあるマーク同士を包括して干渉エリアとして表す(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、所定間隔の動作時間毎に干渉判定を行う場合、所定間隔が長過ぎると、判定の精度が粗くなり、干渉を見逃してしまう可能性がある。一方、精度良く干渉判定を行うために、所定間隔を短くした場合には、干渉判定の時間が長くなるという問題がある。
【0005】
本発明は、上記の点に鑑みてなされたものであり、複数のロボットの動作生成を行う際に、ロボット同士の干渉判定の時間を短縮することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明に係る干渉判定装置は、複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部と、前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部と、前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部と、前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部と、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部と、を含んで構成される。
【0007】
また、前記算出部は、前記軌跡上で、前記第1の位置又は前記第2の位置からの距離が前記第1の位置と前記第2の位置との中間となる位置を前記中間位置として算出することができる。
【0008】
また、前記算出部は、前記第1の姿勢と前記第2の姿勢との中間姿勢における前記所定部位の位置を前記中間位置として算出することができる。
【0009】
また、前記算出部は、前記第1の姿勢をとる時刻と、前記第2の姿勢をとる時刻との中間時刻における前記ロボットの姿勢を中間姿勢とし、前記中間姿勢における前記所定部位の位置を中間位置として算出することができる。
【0010】
また、前記可能性判定部は、前記マージンを、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離のうち長い方の距離とすることができる。
【0011】
また、前記可能性判定部は、前記マージンを、ロボットの姿勢の変化量と前記所定部位の位置の変位量との予め定めた関係に基づいて決定することができる。
【0012】
また、前記可能性判定部は、前記外接形状を、球境界、軸平行境界ボックス、有向境界ボックス、又は凸包とすることができる。
【0013】
また、前記終了判定部は、前記距離が所定値以下の場合に、前記条件を満たすと判定することができる。
【0014】
また、前記終了判定部は、前記ロボット間における前記所定部位の距離が大きいほど、前記所定値を大きな値に設定することができる。
【0015】
また、前記可能性判定部は、さらに、前記複数のロボットの周辺に存在する障害物の領域と、前記所定部位を包含する外接形状に所定のマージンを加えた領域の各々の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記所定部位と前記障害物との干渉の可能性を判定し、前記干渉判定部は、さらに、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかと、前記障害物との干渉を判定することができる。
【0016】
また、本発明に係る干渉判定方法は、取得部が、複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得し、算出部が、前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出し、可能性判定部が、前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定し、終了判定部が、前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させ、干渉判定部が、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する方法である。
【0017】
また、本発明に係る干渉判定プログラムは、コンピュータを、複数のロボットの各々の第1の姿勢及び第2の姿勢と、構造情報とを取得する取得部、前記複数のロボットの各々の構造情報に基づいて、前記複数のロボットの各々の所定部位の、前記第1の姿勢における第1の位置、前記第2の姿勢における第2の位置、及び前記第1の姿勢と前記第2の姿勢との間の軌跡上の中間位置を算出する算出部、前記複数のロボットの各々についての、前記第1の位置、前記第2の位置、及び前記中間位置の各々における前記所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、前記複数のロボットの各々が前記第1の姿勢から前記第2の姿勢まで動作する際の前記ロボット間の干渉の可能性を判定する可能性判定部、前記可能性判定部により干渉の可能性があると判定された場合に、前記第1の位置と前記中間位置との距離、及び前記第2の位置と前記中間位置との距離が、距離が十分に小さいことを示す条件として予め定められた条件を満たすまで、前記中間位置を新たな前記第1の位置又は前記第2の位置に設定して、前記算出部及び前記可能性判定部の処理を繰り返し実行させる終了判定部、及び、前記終了判定部により、前記距離が前記条件を満たすと判定された際の前記第1の位置、前記第2の位置、及び前記中間位置のいずれかで、前記複数のロボットの各々の前記所定部位同士が干渉するか否かを判定する干渉判定部として機能させるためのプログラムである。
【発明の効果】
【0018】
本発明に係る干渉判定装置、方法、及びプログラムによれば、複数のロボットの動作生成を行う際に、ロボット同士の干渉判定の時間を短縮することができる。
【図面の簡単な説明】
【0019】
【
図1】ロボット制御システムの構成を示す概略図である。
【
図2】干渉判定装置のハードウェア構成を示すブロック図である。
【
図3】従来技術の干渉判定を説明するための図である。
【
図4】従来技術の干渉判定の問題点を説明するための図である。
【
図5】従来技術の干渉判定の問題点を説明するための図である。
【
図6】干渉判定装置の機能構成の例を示すブロック図である。
【
図8】干渉可能性判定のための領域に設定するマージンを説明するための図である。
【
図9】干渉可能性判定のための領域が重複している場合の一例を示す図である。
【
図10】干渉可能性判定のための領域が重複していない場合の一例を示す図である。
【
図14】干渉判定処理の流れを示すフローチャートである。
【
図15】各レベルにおいて設定される時刻ti、tc、tjの関係を示す図である。
【
図16】レベル0における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図17】レベル1(R)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図18】レベル2(R-R)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図19】レベル2(R-L)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図20】レベル3(R-L-R)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図21】レベル3(R-L-L)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図22】レベル4(R-L-L-L)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【
図23】レベル5(R-L-L-L-L)における各時刻の爪の位置及び干渉可能性を判定するための領域を示す図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0021】
図1に示すように、本実施形態に係るロボット制御システム100は、干渉判定装置10と、ロボット制御装置12と、ロボット16A、16Bとを含んで構成される。なお、
図1の例では、ロボット制御システム100に2台のロボット16A、16Bが含まれる場合を示しているが、3台以上のロボットを含んでもよい。また、以下では、ロボット16A、16Bを区別なく説明する場合には、単に「ロボット16」と表記する。
【0022】
ロボット16は、例えば、3次元空間における動作に必要な6自由度の構成として、複数のリンクと、リンク間を接続する関節(ジョイント)とを備えた垂直多関節型のロボットである。なお、ロボット16の自由度は、6自由度に冗長自由度を加えた7自由度としてもよい。本実施形態では、ロボット16A、16Bの各々の手先側のリンクには、本発明の「所定部位」の一例として、爪状のツール(以下、単に「爪」という)18A、18Bが取り付けられている。以下では、爪18A、18Bを区別なく説明する場合には、単に「爪18」と表記する。ロボット16は、ロボット制御装置12で生成される軌道情報に従って、ロボット制御装置12により制御されて動作する。
【0023】
ロボット制御装置12は、干渉判定装置10から出力される判定結果に基づいて、ロボット16の各々の軌道情報を生成し、生成した軌道情報に従って、ロボット16の動作を制御する。
【0024】
干渉判定装置10は、ロボット16A、16Bの各々を軌道情報に従って動作させた際に、ロボット16Aとロボット16Bとで、所定部位(本実施形態では爪18)が干渉するか否かを判定し、判定結果をロボット制御装置12へ出力する。
【0025】
本実施形態では、軌道情報とは、ロボット16の爪18の先端等の所定位置を、任意の始点から終点まで動作させるときのロボット16の各時刻における姿勢と、姿勢を変化させる速度を時系列に並べたものである。ロボット16の姿勢は、ロボット16の爪18がある位置(x,y,z)及び姿勢(roll,pitch,yaw)にあると想定した場合の、ロボット16の第1関節(ジョイントJ1)から第N関節(ジョイントJN、Nはロボットの関節数)までの各関節の値(回転角度)の系列(θJ1,θJ2,・・・,θJN)で表される。
【0026】
図2は、本実施形態に係る干渉判定装置10のハードウェア構成を示すブロック図である。
図2に示すように、干渉判定装置10は、CPU(Central Processing Unit)22、メモリ24、記憶装置26、入力装置28、出力装置30、記憶媒体読取装置32、及び通信I/F(Interface)34を有する。各構成は、バス36を介して相互に通信可能に接続されている。
【0027】
記憶装置26には、後述する干渉判定処理を実行するための干渉判定プログラムが格納されている。CPU22は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU22は、記憶装置26からプログラムを読み出し、メモリ24を作業領域としてプログラムを実行する。CPU22は、記憶装置26に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0028】
メモリ24は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置26は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0029】
入力装置28は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置30は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置30として、タッチパネルディスプレイを採用することにより、入力装置28として機能させてもよい。記憶媒体読取装置32は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【0030】
通信I/F34は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0031】
ここで、従来技術では、
図3に示すように、ロボット間の干渉判定においては、各ロボットの動作開始時刻t1から終了時刻tnまでの間を所定間隔で区切った時刻(t1、t2、t3、・・・、tn)毎に、干渉判定を行う。具体的には、各時刻でのロボット16の姿勢から定まる所定部位(本実施形態では爪)の形状を求め、同一の時刻でのロボット16Aの所定部位とロボット16Bの所定部位とが干渉しているか否かを判定する。
【0032】
この場合において、所定間隔の設定が長過ぎると、
図4に示すように、判定密度が粗くなり、干渉を見逃す可能性が高まる。なお、
図4では、各ロボット16の爪リンクの動きを上から見た場合における、爪18部分の変位の様子を示している。なお、
図4では、上側に示す爪の変位(下に凸の円弧上)は、ロボット16Aの爪18Aの動きであり、爪18Aは、紙面右から左へ動くことを表している。また、下側に示す爪の変位(上に凸の円弧上)は、ロボット16Bの爪18Bの動きであり、爪18Bは、紙面左から右へ動くことを表している。以下の図においても同様である。
【0033】
一方、所定間隔の設定が短すぎる場合には、t1~tn間での干渉判定の回数が多くなり、干渉判定の時間が長くなってしまう。また、
図5に示すように、破線で囲む区間同士、及び一点鎖線で囲む区間同士は、明らかに干渉が発生しないにもかかわらず、密に干渉判定が行われ、無駄な干渉判定が発生する。
【0034】
そこで、本実施形態に係る干渉判定装置10は、干渉しそうな時刻を徐々に絞り込みながら干渉判定を行うことで、干渉判定の時間を短縮する。以下、本実施形態に係る干渉判定装置10の機能構成について説明する。
【0035】
図6は、干渉判定装置10の機能構成の例を示すブロック図である。
図6に示すように、干渉判定装置10は、機能構成として、取得部42と、算出部44と、可能性判定部46と、終了判定部48と、干渉判定部50とを含む。各機能構成は、CPU22が記憶装置26に記憶された干渉判定プログラムを読み出し、メモリ24に展開して実行することにより実現される。
【0036】
取得部42は、干渉判定装置10に入力された、ロボット16の各々の開始姿勢及び終了姿勢と、ロボット16の各々のキネマティクス情報及び形状情報を含む構造情報とを取得する。本実施形態では、干渉判定装置10は、モーションプランニングにより生成された、ロボット16の一連の動作におけるノード間毎に干渉判定を行う。各ノードは、一連の動作における途中の姿勢に相当する。したがって、ノード間の動作の開始時刻をt1、終了時刻をtnとすると、上記の開始姿勢は、時刻t1における姿勢であり、終了姿勢は、時刻tnにおける姿勢である。
【0037】
算出部44は、ロボット16の各々の構造情報に基づいて、ロボット16の各々の爪18の、第1の姿勢における第1の位置、第2の姿勢における第2の位置を算出する。第1の姿勢は、時刻tiにおけるロボット16の姿勢であり、第2の姿勢は、時刻tjにおけるロボット16の姿勢である。干渉判定の開始時においては、時刻ti=時刻t1、及び時刻tj=時刻tnである。すなわち、干渉判定の開始時においては、第1の姿勢は開始姿勢であり、第2の姿勢は終了姿勢である。
【0038】
また、算出部44は、第1の姿勢と第2の姿勢との間の軌跡上における、所定部位の中間位置を算出する。例えば、算出部44は、第1の姿勢から第2の姿勢までの軌跡上で、第1の位置又は第2の位置からの距離が、第1の位置と第2の位置との中間となる位置を中間位置として算出することができる。また、例えば、算出部44は、第1の姿勢と第2の姿勢との中間姿勢における爪18の位置を中間位置として算出することができる。中間姿勢とは、第1の姿勢から第2の姿勢になるまでの各関節の回転角度の中間の角度に各関節があるときのロボット16の姿勢である。
【0039】
また、例えば、算出部44は、ロボット16が第1の姿勢をとる時刻tiと、第2の姿勢をとる時刻tjとの中間時刻tcにおけるロボット16の姿勢を中間姿勢とし、その中間姿勢における爪18の位置を中間位置として算出することができる。中間時刻tcは、tc=(tj-ti)/2としてもよいし、(tj-ti)/2を含む所定範囲のいずれかの時刻としてもよい。以下では、
図7に示すように、中間時刻tcに基づいて、中間位置が算出される場合について説明する。なお、
図7では、各時刻の爪18の形状に、その時刻を併記している。以下の図においても同様である。
【0040】
なお、算出部44は、爪18の位置として、先端部、中央部等の爪18の所定部分の位置を、ロボット16の各姿勢から、フォワードキネマティクスにより算出すればよい。
【0041】
可能性判定部46は、ロボット16の各々について、時刻ti、時刻tc、及び時刻tjの各々における位置での爪18の形状を包含する外接形状に所定のマージンを加えた領域を求める。例えば、可能性判定部46は、
図8に示すように、ロボット16Aの爪18Aについて、時刻tiの位置と時刻tcの位置との距離L
A_1、及び時刻tcの位置と時刻tjの位置との距離L
A_2を求める。そして、可能性判定部46は、距離L
A_1及び距離L
A_2のうち長い方の距離を、ロボット16Aについての上記のマージンL
Aとすることができる。同様に、可能性判定部46は、ロボット16Bの爪18Bについて、時刻tiの位置と時刻tcの位置との距離L
B_1、及び時刻tcの位置と時刻tjの位置との距離L
B_2を求める。そして、可能性判定部46は、距離L
B_1及び距離L
B_2のうち長い方の距離を、ロボット16Bについての上記のマージンL
Bとすることができる。
【0042】
また、可能性判定部46は、マージンを、ロボット16の姿勢の変化量と爪18の位置の変位量との予め定めた関係に基づいて決定してもよい。例えば、可能性判定部46は、関節が1°回転した場合に、爪18が最大5cm変位するという関係が予め規定されている場合、第1の姿勢から第2の姿勢までに関節が5°回転する場合には、マージンを25cmとすることができる。
【0043】
また、可能性判定部46は、上記の外接形状として、例えば、球境界、軸平行境界ボックス(AABB:Axis Aligned Bounding Box)、有向境界ボックス(OBB:Oriented Bounding Box)、凸包等を用いることができる。以下では、外接形状として、AABBを用いる場合を例に説明する。
【0044】
図9に、ロボット16の各々について求めた領域の一例を示す。なお、
図9では、説明を簡単にするため、各領域を2次元平面で表しているが、実際には3次元空間における領域が求められる。以下の図においても同様である。
図9の例では、ロボット16Aについて、外接形状60AにマージンL
Aを加えた領域62Aが求められており、ロボット16Bについて、外接形状60BにマージンL
Bを加えた領域62Bが求められている。
【0045】
可能性判定部46は、求めた領域の重複に基づいて、ロボット16の各々が時刻tiから時刻tjまで動作する際の、ロボット16間の干渉の可能性を判定する。具体的には、可能性判定部46は、
図9に示すように、ロボット16Aについて求めた領域62Aと、ロボット16Bについて求めた領域62Bとが重複する場合に、ロボット16間に干渉の可能性があると判定する。一方、可能性判定部46は、領域62A、62Bに重複がない場合には、ロボット16間に干渉の可能性はないと判定する。
図10に、領域62A、62Bに重複がない場合、すなわち、ロボット16間に干渉の可能性がないと判定される場合の一例を示す。
【0046】
終了判定部48は、可能性判定部46により干渉の可能性があると判定された場合に、距離LA_1、LA_2、LB_1、及びLB_2、すなわち、爪18間の間隔が、距離が十分に小さいことを示す条件として予め定められた終了条件を満たすか否かを判定する。終了判定部48は、爪18間の間隔が終了条件を満たさない場合、時刻tcの位置を新たな時刻tiの位置又は時刻tjの位置に設定して、算出部44及び可能性判定部46の処理を繰り返し実行させる。また、終了判定部48は、爪18間の間隔が終了条件を満たす場合、算出部44及び可能性判定部46の繰り返し処理を終了すると判定する。
【0047】
具体的には、終了判定部48は、爪18間の間隔が十分短い場合に、終了条件を満たすと判定することができる。例えば、終了判定部48は、爪18間の間隔が所定値以下の場合に、爪18間の間隔が十分短いと判定することができる。所定値としては、例えば、
図11に示すように、各位置における爪18の形状間に隙間がないと見做せる値や、爪18の幅以下の値等を予め定めておくことができる。この場合、終了判定部48は、
図12に示すように、爪18間の間隔が所定値を超えている場合には、終了条件を満たしていないと判定する。
【0048】
なお、終了判定部48は、ロボット16間における同じ時刻の爪18同士の距離が大きいほど、所定値を大きな値に設定するようにしてもよい。ロボット16間における同じ時刻の爪18同士の距離が十分離れている場合には、それ以上細かいタイミングにおける判定を行っても干渉していると判定されない可能性が高いためである。
【0049】
干渉判定部50は、終了判定部48により、爪18間の間隔が終了条件を満たすと判定された際の、時刻ti、時刻tc、及び時刻tjのいずれかで、ロボット16間において爪18同士が干渉するか否かを判定する。具体的には、
図13に示すように、干渉判定部50は、各時刻におけるロボット16同士の爪18の形状が示す範囲が重複しているか否かにより、干渉の有無を判定する。
図13の例では、時刻tcにおいて爪18同士が重複しているため(
図13中の斜線部分)、干渉判定部50は、時刻tcにおいて干渉が発生すると判定する。干渉判定部50は、判定結果を出力する。
【0050】
次に、本実施形態に係る干渉判定装置10の作用について説明する。
図14は、干渉判定装置10のCPU22により実行される干渉判定処理の流れを示すフローチャートである。CPU22が記憶装置26から干渉判定プログラムを読み出して、メモリ24に展開して実行することにより、CPU22が干渉判定装置10の各機能構成として機能し、
図14に示す干渉判定処理(ti,tj)が実行される。なお、干渉判定処理の開始時においては、時刻ti=時刻t1、及び時刻tj=時刻tnである。
【0051】
ステップS12で、取得部42が、干渉判定装置10に入力された、ロボット16の各々の開始姿勢(時刻t1における姿勢)及び終了姿勢(時刻tnにおける姿勢)と、ロボット16の各々のキネマティクス情報及び形状情報を含む構造情報とを取得する。そして、算出部44が、時刻tiと時刻tjとの中間時刻tcにおけるロボット16の姿勢を中間姿勢とし、その中間姿勢における爪18の位置を中間位置として算出する。
【0052】
次に、ステップS14で、可能性判定部46が、ロボット16の各々についての、時刻ti、時刻tc、及び時刻tjの各々における位置での爪18の形状を包含する外接形状に所定のマージンを加えた領域を求める。そして、可能性判定部46が、求めた領域の重複に基づいて、ロボット16の各々が時刻tiから時刻tjまで動作する際の、ロボット16間の干渉の可能性を判定する。可能性判定部46は、領域が重複している場合には、時刻ti~tj間で干渉の可能性があると判定し、処理はステップS16へ移行する。一方、可能性判定部46は、領域が重複していない場合には、時刻ti~tj間で干渉の可能性がないと判定し、処理はステップS22へ移行する。
【0053】
ステップS16では、終了判定部48が、爪18間の間隔が予め定められた終了条件を満たすか否かを判定することにより、爪18間の間隔が十分短いか否かを判定する。爪18間の間隔が十分短い場合には、処理はステップS18へ移行し、間隔が終了条件を満たさない場合には、処理はステップS24へ移行する。
【0054】
ステップS18では、干渉判定部50が、時刻ti、時刻tc、時刻tjの各々におけるロボット16同士の爪18の形状が示す範囲が重複しているか否かにより、干渉の有無を判定する。いずれかの時刻で干渉が発生している場合には、処理はステップS20へ移行し、いずれの時刻においても干渉が発生していない場合、すなわち非干渉の場合には、処理はステップS22へ移行する。
【0055】
ステップS20では、干渉判定部50が、時刻ti、時刻tc、又は時刻tjにおいて干渉が発生するとの判定結果を出力する。一方、ステップS22では、干渉判定部50が、時刻ti~tj間は非干渉であるとの判定結果を出力する。そして、干渉判定処理は終了する。
【0056】
また、ステップS24では、終了判定部48が、時刻tcにおける爪18の位置を新たな時刻tjにおける爪18の位置に設定することにより、ti~tj間の前半部分について、干渉判定処理(ti,tc)を再帰的に実行させる。
【0057】
次に、ステップS26で、終了判定部48が、上記ステップS24において、時刻ti~tc(上記ステップS24で新たに設定されたtj)間は非干渉と判定されたか否かを判定する。この判定は、上記ステップS24で再帰的に実行された干渉判定処理のステップS20及びS22のいずれを経て、再帰的に実行された干渉判定処理が終了したかによって行うことができる。ステップS22を経ている場合には、非干渉と判定され、処理はステップS28へ移行する。一方、ステップS20を経ている場合には、干渉が発生すると判定され、処理はステップS32へ移行する。
【0058】
ステップS28では、終了判定部48が、時刻tcにおける爪18の位置を新たな時刻tiにおける爪18の位置に設定することにより、ti~tj間の後半部分について、干渉判定処理(tc,tj)を再帰的に実行させる。
【0059】
次に、ステップS30で、終了判定部48が、上記ステップS28において、時刻tc(上記ステップS28で新たに設定されたti)~tj間で非干渉と判定されたか否かを判定する。この判定は、上記ステップS26と同様に、上記ステップS28で再帰的に実行された干渉判定処理の判定結果に基づいて行うことができる。非干渉の場合には、処理はステップS22へ移行し、干渉が発生すると判定された場合には、処理はステップS32へ移行する。
【0060】
ステップS32では、干渉判定部50が、ステップS24又はステップS28で再帰的に実行された干渉判定処理のステップS20の判定結果を出力する。すなわち、干渉判定部50が、ステップS24又はステップS28において設定されている時刻ti、時刻tc、又は時刻tjにおいて干渉が発生するとの判定結果を出力し、干渉判定処理は終了する。
【0061】
上記の干渉判定処理の流れを、
図15~
図23を参照して、より具体的に説明する。以下では、再帰的に実行される干渉判定処理の深さをレベルiと表し、干渉判定処理開始時はレベル0とする。また、ステップS24で実行される干渉判定処理を「R」を用いて表し、ステップS28で実行される干渉判定処理を「L」を用いて表す。例えば、レベル1でS24の干渉判定処理を再帰的に実行している際に、ステップS28の干渉判定処理が再帰的に呼び出された場合、「レベル2(R-L)」と表記する。また、
図15は、各レベルにおいて設定される時刻ti、tc、tjの関係を示す図であり、各レベルのti~tj間に対応付けて、干渉可能性の有無(ステップS14の判定結果)、及び爪18間隔が終了条件を満たすか否か(ステップS16の判定結果)を帯状の表示で表している。また、
図16~
図23は、各レベルにおける各時刻の爪18の位置及び干渉可能性を判定するための領域62を示した図である。
【0062】
図15及び
図16に示すように、レベル0では、時刻t1が時刻ti、時刻tnが時刻tjとして設定される。
図16の例では、ロボット16Aについての領域62Aと、ロボット16Bについての領域62Bとが重複しており、干渉の可能性がある。また、爪18間隔は所定値を超えているとする。この場合、
図15及び
図17に示すように、レベル0におけるtcがtjに設定され、レベル1(R)についての干渉判定処理が実行される。レベル1(R)においても、干渉の可能性があり、かつ爪18間隔は所定値を超えているとする。この場合、
図15及び
図18に示すように、レベル1(R)におけるtcがtjに設定され、レベル2(R-R)についての干渉判定処理が実行される。
【0063】
図15及び
図18に示すように、レベル2(R-R)おいては、干渉の可能性がないと判定される。この場合、一旦レベル1(R)に戻り、ステップS28へ移行することにより、
図15及び
図19に示すように、レベル1におけるtcがtiに設定され、レベル2(R-L)についての干渉判定処理が実行される。レベル2(R-L)では、干渉の可能性があり、かつ爪18間隔は所定値を超えているとする。この場合、
図15及び
図20に示すように、レベル2(R-L)におけるtcがtjに設定され、レベル3(R-L-R)についての干渉判定処理が実行される。
【0064】
図15及び
図20に示すように、レベル3(R-L-R)おいては、干渉の可能性がないと判定される。この場合、一旦レベル2(R-L)に戻り、ステップS28へ移行することにより、
図15及び
図21に示すように、レベル2(R-L)におけるtcがtiに設定され、レベル3(R-L-L)についての干渉判定処理が実行される。レベル3(R-L-L)では、干渉の可能性があり、かつ爪18間隔は所定値を超えているとする。この場合、
図15に示すように、レベル3(R-L-L)におけるtcがtjに設定され、レベル4(R-L-L-R)についての干渉判定処理が実行される。
【0065】
図15に示すように、レベル4(R-L-L-R)おいては、干渉の可能性がないと判定される。この場合、一旦レベル3(R-L-L)に戻り、ステップS28へ移行することにより、
図15及び
図22に示すように、レベル3(R-L-L)におけるtcがtiに設定され、レベル4(R-L-L-L)についての干渉判定処理が実行される。レベル4(R-L-L-L)では、干渉の可能性があり、かつ爪18間隔は所定値を超えているとする。この場合、
図15に示すように、レベル4(R-L-L-L)におけるtcがtjに設定され、レベル5(R-L-L-L-R)についての干渉判定処理が実行される。
【0066】
図15に示すように、レベル5(R-L-L-L-R)おいては、干渉の可能性がないと判定される。この場合、一旦レベル4(R-L-L-L)に戻り、ステップS28へ移行することにより、
図15及び
図23に示すように、レベル4(R-L-L-L)におけるtcがtiに設定され、レベル5(R-L-L-L-L)についての干渉判定処理が実行される。レベル5(R-L-L-L-L)では、干渉の可能性があり、かつ爪18間隔が十分に短いとする。この場合、
図13に示すように、レベル5(R-L-L-L-R)において設定されている時刻ti、時刻tc、及び時刻tjのいずれかで、ロボット16間における爪18同士が干渉するか否かが判定される。
【0067】
以上説明したように、本実施形態に係るロボット制御システムでは、干渉判定装置が、複数のロボットの各々の時刻ti及びtjにおける姿勢と、構造情報とを取得する。干渉判定装置は、複数のロボットの各々の構造情報に基づいて、複数のロボットの各々の所定部位(本実施形態では爪)の時刻tiにおける位置、時刻tjにおける位置、及び中間時刻tcにおける中間位置を算出する。また、干渉判定装置は、複数のロボットの各々についての時刻ti、tc、及びtjの各位置における所定部位を包含する外接形状に所定のマージンを加えた領域の重複に基づいて、ロボット間の干渉の可能性を判定する。干渉の可能性がある場合、干渉判定装置は、所定部位間隔が十分に小さいことを示す条件として予め定められた条件を満たすまで、tcを新たなti又はtjに設定して、位置の算出及び干渉可能性の判定を繰り返し実行させる。そして、所定部位間隔が条件を満たすと判定された際の時刻ti、tc、及びtjにおける位置のいずれかで、複数のロボットの各々の所定部位同士が干渉するか否かを判定する。このように、干渉判定装置は、干渉の可能性がありそうなタイミングの絞り込みを行い、所定部位間隔が十分小さい状態で最終的な干渉判定を行う。これにより、所定部位間隔が十分小さいと判定される場合の所定部位間隔で開始から終了までの全て時刻において干渉判定を行う場合に比べ、干渉判定の時間を短縮することができる。
【0068】
なお、上記実施形態では、2台のロボット間の干渉を判定する場合について説明したが、3台以上のロボット間の干渉判定にも、上記実施形態を適用することができる。この場合、3台以上のロボットの各々について、所定部位を包含する外接形状に所定のマージンを加えた領域を求め、いずれかの領域が重複する場合に、干渉の可能性があると判定すればよい。
【0069】
また、上記実施形態において、干渉可能性を判定する際、複数のロボットの周辺に存在する障害物の領域と、所定部位を包含する外接形状に所定のマージンを加えた領域の各々の重複に基づいて、各ロボットの所定部位と障害物との干渉の可能性を判定してもよい。さらに、最終的な干渉判定の際も、時刻ti、tc、及びtjのいずれかにおける所定部位の位置と障害物との干渉を判定してもよい。
【0070】
また、上記実施形態では、中間位置を1つ設定する場合について説明したが、中間位置を複数設定してもよい。例えば、2つの中間時刻tc1及びtc2(tc1<tc2)を設定する。そして、上記実施形態でti~tc、及びtc~tjの各々について処理したのと同様に、ti~tc1、tc1~tc2、及びtc2~tjの各々について処理すればよい。
【0071】
また、上記実施形態では、干渉判定装置とロボット制御装置とを別々の装置とする場合について説明したが、ロボット制御装置内に干渉判定装置を組み込む形態としてもよい。また、干渉判定装置の各機能構成を、それぞれ異なる装置で実現し、上記の干渉判定処理を分散処理により実現してもよい。
【0072】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した干渉判定処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、干渉判定処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0073】
また、上記実施形態では、干渉判定プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0074】
10 干渉判定装置
12 ロボット制御装置
16A、16B ロボット
18A、18B 爪(所定部位)
22 CPU
24 メモリ
26 記憶装置
28 入力装置
30 出力装置
32 記憶媒体読取装置
34 通信I/F
36 バス
42 取得部
44 算出部
46 可能性判定部
48 終了判定部
50 干渉判定部
60A、60B 外接形状
62A、62B 領域
100 ロボット制御システム