(57)【要約】【課題】干渉判定時間を短縮可能な干渉判定装置及び干渉判定方法を提供する。【解決手段】  一実施形態に係る干渉判定装置４は、各対象部位ＰｉのＺ軸における存在領域の情報に基づいて、各対象部位について、その対象部位の存在領域と他の対象部位の存在領域との重複状態を示す存在領域重複情報を生成する存在領域重複情報生成部４４１と、各対象部位のＸＹ平面内での占有領域の情報に基づいて、各対象部位について、その対象部位の占有領域における他の対象部位の占有領域の重複状態を示す占有領域重複情報を取得する占有領域重複情報生成部４４２と、複数の対象部位のうち存在領域重複情報と占有領域重複情報とがいずれも重複していることを示す少なくとも２つの対象部位が存在する場合、複数の対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の対象部位間に干渉が存在しないと判定する判定部４４３と、を備える。【選択図】図１
2013136109.tif 000002
【特許請求の範囲】
【請求項１】
互いに交差する第１及び第２の軸と、前記第１及び第２の軸を含む２次元平面と交差する第３の軸と、で構成される３次元空間における複数の干渉判定対象部位の干渉を判定する干渉判定装置であって、
各前記干渉判定対象部位を前記第３の軸に投影した各前記干渉判定対象部位の前記第３の軸における存在領域の情報に基づいて、各前記干渉判定対象部位について、当該干渉判定対象部位の存在領域と他の少なくとも一つの前記干渉判定対象部位の存在領域との重複状態を示す存在領域重複情報を生成する存在領域重複情報生成部と、
各前記干渉判定対象部位を前記２次元平面へ投影した前記２次元平面内での各前記干渉判定対象部位の占有領域の情報に基づいて、各前記干渉判定対象部位について、当該干渉判定対象部位の占有領域における他の少なくとも一つの前記干渉判定対象部位の占有領域の重複状態を示す占有領域重複情報を取得する占有領域重複情報生成部と、
複数の前記干渉判定対象部位のうち前記存在領域重複情報と前記占有領域重複情報とがいずれも重複していることを示す少なくとも２つの前記干渉判定対象部位が存在する場合、複数の干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと判定する、前記判定部と、
を備える干渉判定装置。
【請求項２】
各前記干渉判定対象部位に識別番号を割り当てる識別番号割当部であって、各前記干渉判定対象部位の前記識別番号は、複数の桁数を有し且つ他の前記識別番号との間での論理積の結果において全ての桁が「０」となるように設定された識別番号である、前記識別番号割当部と、
複数の前記干渉判定対象部位の前記存在領域を含む１次元判定領域を前記第３の軸に設定し、前記１次元判定領域を複数の線分に区切ると共に、各前記線分に対応しており前記存在領域の情報を格納する線分対応メモリ要素を確保する１次元判定領域管理部と、
複数の前記干渉判定対象部位の前記占有領域を含む２次元判定領域を前記２次元平面に設定すると共に、前記２次元判定領域を、２次元的に配列されたマス目に区切ると共に、各前記マス目に対応しており前記占有領域の情報を格納するマス目対応メモリ要素を確保する２次元判定領域管理部と、
を備え、
前記存在領域重複情報生成部は、
複数の前記線分のうち各前記干渉判定対象部位の前記存在領域の少なくとも一部を含む前記線分を特定し、
特定された前記線分に対応する前記線分対応メモリ要素に、
特定された前記線分に前記存在領域が位置する前記干渉判定対象部位が一つの場合は、その干渉判定対象部位の前記識別番号を前記存在領域重複情報として格納し、
特定された前記線分に前記存在領域が位置する前記干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の前記識別番号の論理和を前記存在領域重複情報として格納し、
各前記干渉判定対象部位について、当該干渉判定対象部位の前記存在領域の少なくとも一部を含む全ての前記線分の前記線分対応メモリ要素に格納された前記存在領域重複情報の論理和を干渉コードとして生成し、
前記占有領域重複情報生成部は、
複数の前記マス目のうち各前記干渉判定対象部位の前記占有領域の少なくとも一部を含む前記マス目を特定し、
特定された前記マス目に対応する前記マス目対応メモリ要素に、
特定された前記マス目に前記占有領域が位置する前記干渉判定対象部位が一つの場合は、その干渉判定対象部位の前記識別番号を前記占有領域重複情報として格納し、
特定された前記マス目に前記占有領域が位置する前記干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の前記識別番号の論理和を前記占有領域重複情報として格納し、
前記判定部は、各前記干渉判定対象部位について、
その干渉判定対象部位の前記占有領域の少なくとも一部を含む前記マス目に対応する前記マス目対応メモリ要素に格納された前記占有領域重複情報と、その干渉判定対象部位の前記干渉コードとの論理積を演算し、
少なくとも一つの前記干渉判定対象部位に対する前記占有領域重複情報と前記干渉コードとの論理積の演算結果の何れかの桁に「１」が含まれる場合は、複数の前記干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の前記干渉判定対象部位間に干渉が存在しないと判定する、
請求項１記載の干渉判定装置。
【請求項３】
前記存在領域重複情報生成部は、複数の前記干渉判定対象部位について所定の順番に沿って前記干渉判定対象部位の前記存在領域の少なくとも一部を含む前記線分を特定し、
前記存在領域重複情報生成部は、前記干渉判定対象部位に対応する前記線分を特定する毎に、その干渉判定対象部位に対する前記干渉コードを生成し、
前記占有領域重複情報生成部は、前記所定の順番に沿って順に前記干渉判定対象部位の占有領域に位置する前記マス目を特定し、前記干渉判定対象部位に対応する前記マス目を特定する毎に、特定された前記マス目に格納されている前記占有領域重複情報を更新し、
前記判定部は、前記干渉コードが生成される毎に、生成された前記干渉コードと、前記干渉コードの生成に対応して更新された前記占有領域重複情報との論理積とを演算し、何れかの論理積の演算結果の何れかの桁に「１」が含まれる場合は、数の前記干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の前記干渉判定対象部位間に干渉が存在しないと判定する、
請求項２記載の干渉判定装置。
【請求項４】
各前記干渉判定対象部位についての前記存在領域重複情報は、その干渉判定対象部位との干渉は生じない少なくとも一つの干渉判定対象部位を予め示す干渉判定除外情報と、各前記干渉判定対象部位の存在領域とから生成される、
請求項１記載の干渉判定装置。
【請求項５】
複数の前記干渉判定対象部位は、前記３次元空間内で複数の前記干渉判定対象部位の配置状態が第１の配置状態から第２の配置状態に変形可能であって、前記第１の配置状態から前記第２の配置状態への変形過程における一定の時間間隔毎の複数の前記干渉判定対象部位の配置状態に対して、
前記存在領域重複情報生成部は、前記時間間隔毎の複数の前記干渉判定対象部位の配置状態における各前記干渉判定対象部位の前記存在領域重複情報を生成し、
前記占有領域重複情報生成部は、前記時間間隔毎の複数の前記干渉判定対象部位の配置状態における各前記干渉判定対象部位について前記占有領域重複情報を取得し、
前記判定部は、前記時間間隔毎に生成された前記存在領域重複情報と前記占有領域量副情報とに基づいて複数の前記干渉判定対象部位の干渉の有無を判断し、全ての前記時間間隔の何れかにおいて干渉が存在する場合は、複数の前記干渉判定対象部位の配置状態の前記第１の配置状態から前記第２の配置状態への変形過程において干渉が存在すると判定し、全ての前記時間間隔の何れかにおいても干渉が存在しない場合は、前記変形過程において干渉が存在しないと判定する、
請求項１〜３の何れか一項記載の干渉判定装置。
【請求項６】
互いに交差する第１及び第２の軸と、前記第１及び第２の軸を含む２次元平面と交差する第３の軸と、で構成される３次元空間における複数の干渉判定対象部位の干渉を干渉判定装置が判定する干渉判定方法であって、
各前記干渉判定対象部位を前記第３の軸に投影した各前記干渉判定対象部位の前記第３の軸における存在領域の情報に基づいて、各前記干渉判定対象部位について、その前記干渉判定対象部位の存在領域と他の少なくとも一つの前記干渉判定対象部位の存在領域との重複状態を示す存在領域重複情報を前記干渉判定装置が生成するステップと、
各前記干渉判定対象部位を前記２次元平面へ投影した前記２次元平面内での各前記干渉判定対象部位の占有領域の情報に基づいて、各前記干渉判定対象部位について、その前記干渉判定対象部位の占有領域における他の少なくとも一つの前記干渉判定対象部位の占有領域の重複状態を示す占有領域重複情報を前記干渉判定装置が生成するステップと、
複数の干渉判定対象部位の干渉のうち前記存在領域重複情報と前記占有領域重複情報とがいずれも重複することを示す少なくとも２つの前記干渉判定対象部位が存在する場合、複数の干渉判定対象部位間に干渉が存在すると前記干渉判定装置が判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと前記干渉判定装置が判定するステップと、
を備える干渉判定方法。
【請求項７】
各前記干渉判定対象部位に識別番号を割り当てるステップであって、各前記干渉判定対象部位の前記識別番号は、複数の桁数を有し且つ他の前記識別番号との間での論理積の結果において全ての桁が「０」となるように設定された識別番号である、前記ステップと、
複数の前記干渉判定対象部位の前記存在領域を含む１次元判定領域を前記干渉判定装置が前記第３の軸に設定し、前記１次元判定領域を複数の線分に区切って、各前記線分に対応しており前記存在領域の情報を格納する線分対応メモリ要素を前記干渉判定装置が確保するステップと、
複数の前記干渉判定対象部位の前記占有領域を含む２次元判定領域を前記２次元平面に前記干渉判定装置が設定し、前記２次元判定領域を、２次元的に配列されたマス目に区切り、各前記マス目に対応しており前記占有領域の情報を格納するマス目対応メモリ要素を前記干渉判定装置が確保するステップと、
を更に備え、
前記存在領域重複情報を生成するステップは、
複数の前記線分のうち各前記干渉判定対象部位の前記存在領域の少なくとも一部を含む前記線分を特定し、
特定された前記線分に対応する前記線分対応メモリ要素に、
特定された前記線分に前記存在領域が位置する前記干渉判定対象部位が一つの場合は、その干渉判定対象部位の前記識別番号を前記存在領域重複情報として格納し、
特定された前記線分に前記存在領域が位置する前記干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の前記識別番号の論理和を前記存在領域重複情報として格納し、
各前記干渉判定対象部位について、その干渉判定対象部位の前記存在領域の少なくとも一部を含む全ての前記線分の前記線分対応メモリ要素に格納された前記存在領域重複情報の論理和を干渉コードとして生成し、
前記占有領域重複情報を生成するステップは、
複数の前記マス目のうち各前記干渉判定対象部位の前記占有領域の少なくとも一部を含む前記マス目を特定し、
特定された前記マス目に対応する前記マス目対応メモリ要素に、
特定された前記マス目に前記占有領域が位置する前記干渉判定対象部位が一つの場合は、その干渉判定対象部位の前記識別番号を前記占有領域重複情報として格納し、
特定された前記マス目に前記占有領域が位置する前記干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の前記識別番号の論理和を前記占有領域重複情報として格納し、
前記判定するステップは、各前記干渉判定対象部位について、
その干渉判定対象部位の前記占有領域の少なくとも一部を含む前記マス目に対応する前記マス目対応メモリ要素に格納された前記占有領域重複情報と、その干渉判定対象部位の前記干渉コードとの論理積を演算し、
少なくとも一つの前記干渉判定対象部位に対する前記占有領域重複情報と前記干渉コードとの論理積の演算結果の何れかの桁に「１」が含まれる場合は、複数の前記干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の前記干渉判定対象部位間に干渉が存在しないと判定する、
請求項１記載の干渉判定方法。
【請求項８】
互いに交差する第１及び第２の軸と、前記第１及び第２の軸を含む２次元平面と交差する第３の軸と、で構成される３次元空間における複数の干渉判定対象部位の干渉を干渉判定装置が判定する干渉判定方法であって、
各前記干渉判定対象部位に識別番号を前記干渉判定装置が割り当てるステップであって、各前記干渉判定対象部位の前記識別番号は、複数の桁数を有し且つ他の前記識別番号との間での論理積の結果において全ての桁が「０」となるように設定された識別番号である、前記ステップと、
複数の前記干渉判定対象部位の前記存在領域を含む１次元判定領域を前記第３の軸に前記干渉判定装置が設定し、前記１次元判定領域を複数の線分に区切って、各前記線分に対応しており前記存在領域の情報を格納する線分対応メモリ要素を前記干渉判定装置が確保するステップと、
全ての前記線分対応メモリ要素に初期値として「０」を格納して前記線分対応メモリ要素を前記干渉判定装置が初期化するステップと、
複数の前記干渉判定対象部位の前記占有領域を含む２次元判定領域を前記２次元平面に前記干渉判定装置が設定し、前記２次元判定領域を、２次元的に配列されたマス目に区切り、各前記マス目に対応しており前記占有領域の情報を格納するマス目対応メモリ要素を前記干渉判定装置が確保するステップと、
全ての前記マス目対応メモリ要素に初期値として「０」を格納して前記マス目対応メモリ要素を前記干渉判定装置が初期化するステップと、
複数の前記線分のうち前記干渉判定対象部位の前記存在領域の少なくとも一部を含む前記線分に対応する前記線分対応メモリ要素に、初期値が格納されている場合は、その干渉判定対象部位の前記識別番号を前記干渉判定装置が前記存在領域重複情報として格納し、その線分対応メモリ要素に初期値以外の値が格納されている場合は、前記干渉判定対象部位の前記識別番号と、その線分対応メモリ要素に格納されている値との論理和を前記干渉判定装置が前記存在領域重複情報として格納するステップと、
前記干渉判定対象部位の前記存在領域の少なくとも一部を含む全ての前記線分の前記線分対応メモリ要素に格納された前記存在領域重複情報の論理和を前記干渉判定装置が干渉コードとして生成するステップと、
複数の前記マス目のうち前記干渉判定対象部位の前記占有領域の少なくとも一部を含む前記マス目に対応する前記マス目対応メモリ要素に初期値が格納されている場合は、その干渉判定対象部位の前記識別番号を前記干渉判定装置が前記占有領域重複情報として格納し、そのマス目対応メモリ要素に初期値以外の値が格納されている場合は、前記干渉判定対象部位の前記識別番号と、前記線分対応メモリ要素に格納されている値との論理和を前記干渉判定装置が前記占有領域重複情報として格納するステップと、
前記干渉判定対象部位の前記占有領域の少なくとも一部を含む前記マス目に対応する前記マス目対応メモリ要素に格納された前記占有領域重複情報と、その干渉判定対象部位の前記干渉コードとの論理積を前記干渉判定装置が演算し、その論理積の演算結果の何れかの桁に「１」が含まれる場合は、その干渉判定対象部位と他の少なくとも一つの前記干渉判定対象部位との間に干渉が存在すると前記干渉判定装置が判定し、それ以外の場合は、その干渉判定対象部位と他の少なくとも一つの前記干渉判定対象部位との間に干渉がしなしと前記干渉判定装置が判定するステップと、
を備え、
所定の順番で複数の前記干渉判定対象部位毎に、前記線分対応メモリ要素を初期化するステップと、前記マス目対応メモリ要素を初期化するステップと、前記存在領域重複情報として格納するステップと、前記干渉コードとして生成するステップと、前記占有領域重複情報として格納するステップと、前記判定するステップとを、前記干渉判定装置が実行する、
干渉判定方法。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、干渉判定装置及び干渉判定方法に関する。
【背景技術】
【０００２】
先端に昇降部を持つ二台の水平多関節アームを人間の両腕のように配置した双腕ロボットは、設置に要するスペースの割に自由度が高く、また両腕の作業領域の少なくとも一部が重複していることからワークを押さえつつねじ締めを行うなどの複合作業が可能であるという利点がある。しかし、各アームは移動経路で衝突する危険があり、作業者はその動きを予測することが困難である。そこで、双腕ロボットの各アームが他方のアームの作業領域に一部でも重複するような作業領域内で移動する際、互いのアームが相手の移動軌道上に重なるかどうかという干渉判定が必要となる。また、双腕ロボットが実際に作業を行う上で、左右のアーム同士以外にも、治具や安全柵などの障害物との干渉が生じる可能性があり、水平多関節アームと障害物の干渉判定も必要になる場合がある。また、このようなロボット分野に限らず、例えばゲーム分野や自動車分野などにおいて、複数の物体の干渉（又は衝突）を判定する必要が生じる場合もある。
【０００３】
干渉判定を行う方法としては、いくつかの方式が存在する。例えば、工作機械を制御する数値制御装置で干渉チェックを行うために、「複数の機械構造物の干渉領域を各々定義し、前記干渉領域を移動させ、前記各々の機械構造物の干渉領域がそれぞれ干渉するかをチェックする機能を有する数値制御装置について、前記干渉領域として、直方体、円筒、平面の立体図形で定義し、各々の立体図形が交差するか交差しないかにより干渉をチェックする」という方式がある（特許文献１参照）。また、干渉判定を行う他の方法として、水平多関節ロボットに対して、「３次元ロボットモデルを２次元平面上に投影した２次元ロボットモデルに変換」し、「３次元障害物モデルを２次元障害物モデルとして分割」したものとの干渉判定を行う方式も存在する（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−０５４０４３号公報
【特許文献２】特開２００４−２０２６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１の発明のように、３次元方向の運動を行う３次元物体に対する干渉判定は、定義が容易な３次元の単純近似モデルに変換して行われることが多い。しかしながら、立体図形が交差するかしないかの判断を行う回数は、判定対象の組み合わせの数だけ必要となる。そのため、各部位の干渉判定を行うような場合、演算処理に時間を要する。また、それぞれの立体図形が交差するかしないかの判断を、判定空間を小さく区切った直方体の占有とその占有領域の重複から判断する場合、判定空間の各辺をｑ分割したとして、判定空間の演算量はｑ３オーダーになる。
【０００６】
また、特許文献２の発明においては、障害物モデルの分割は３次元障害物モデルの高さ毎に行われ、水平多関節ロボットの設置面からアームまでの高さ（高さは一定であるが、ある厚みを持つ）と一致する障害物モデルのみが干渉判定の対象となる。そのため、２次元ロボットモデルを用いているにもかかわらず、立体交差が可能な部分を干渉判定から除外した結果を短時間で得ることができる。この方式の優れている点は、水平多関節ロボットの高さと一致する分割面のみを判定すればよいという点である。しかしながら、例えば水平多関節ロボットを複数の分割面に分けなければならないような場合には、それぞれの分割面で干渉判定を行わなければならない。双腕ロボットもこれに該当し、ロボットアームを構成する各部分（第１リンク、第２リンク、先端の昇降部など）で異なる高さを持つために干渉判定を行うべき分割面が多数になって演算量は最大ｑ３オーダーにまで増加し、処理に時間を要する。
【０００７】
そこで、本発明は、干渉判定時間を短縮可能な干渉判定装置及び干渉判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る干渉判定装置は、互いに交差する第１及び第２の軸と、第１及び第２の軸を含む２次元平面と交差する第３の軸と、で構成される３次元空間における複数の干渉判定対象部位の干渉を判定する干渉判定装置であって、各干渉判定対象部位を第３の軸に投影した各干渉判定対象部位の第３の軸における存在領域の情報に基づいて、各干渉判定対象部位について、その干渉判定対象部位の存在領域と他の少なくとも一つの干渉判定対象部位の存在領域との重複状態を示す存在領域重複情報を生成する存在領域重複情報生成部と、各干渉判定対象部位を２次元平面へ投影した２次元平面内での各干渉判定対象部位の占有領域の情報に基づいて、各干渉判定対象部位について、その干渉判定対象部位の占有領域における他の少なくとも一つの干渉判定対象部位の占有領域の重複状態を示す占有領域重複情報を取得する占有領域重複情報生成部と、複数の干渉判定対象部位のうち存在領域重複情報と占有領域重複情報とがいずれも重複していることを示す少なくとも２つの干渉判定対象部位が存在する場合、複数の判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと判定する判定部と、を備える。
【０００９】
本発明に係る干渉判定方法は、互いに交差する第１及び第２の軸と、第１及び第２の軸を含む２次元平面と交差する第３の軸と、で構成される３次元空間における複数の干渉判定対象部位の干渉を干渉判定装置が判定する干渉判定方法であって、各干渉判定対象部位を第３の軸に投影した各干渉判定対象部位の第３の軸における存在領域の情報に基づいて、各干渉判定対象部位について、その干渉判定対象部位の存在領域と他の少なくとも一つの干渉判定対象部位の存在領域との重複状態を示す存在領域重複情報を干渉判定装置が生成するステップと、各干渉判定対象部位を２次元平面へ投影した２次元平面内での各干渉判定対象部位の占有領域の情報に基づいて、各干渉判定対象部位について、その干渉判定対象部位の占有領域における他の少なくとも一つの干渉判定対象部位の占有領域の重複状態を示す占有領域重複情報を干渉判定装置が生成するステップと、複数の干渉判定対象部位の干渉のうち存在領域重複情報と占有領域重複情報とがいずれも重複することを示す少なくとも２つの干渉判定対象部位が存在する場合、複数の干渉判定対象部位間に干渉が存在すると干渉判定装置が判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと干渉判定装置が判定するステップと、を備える。
【００１０】
本発明に係る干渉判定装置及び干渉判定方法では、存在領域重複情報生成部が生成する存在領域重複情報が少なくとも２つの干渉判定対象部位の第３の軸上の存在領域が重複していることを示している場合、その存在領域が重複した干渉判定対象部位同士は、干渉（衝突）の可能性があることになる。同様に、占有領域重複情報生成部が生成する占有領域重複情報が少なくとも２つの干渉判定対象部位の上記２次元平面における占有領域が重複していることを示している場合、その占有領域が重複した干渉判定対象部位同士は、干渉（衝突）の可能性があることになる。従って、判定部が、存在領域重複情報及び占有領域重複情報を利用して上記のように干渉を判定することによって、３次元的に干渉判定対象部位同士の干渉（衝突）を判定し得る。そして、第３の軸方向における複数の干渉判定対象部位の配置状態における干渉の可能性をそれらの干渉判定対象部位を第３の軸に投影した存在領域に基づいて１次元で評価しているため、干渉判定に要する演算量を低減できる。その結果、干渉判定の時間を短縮可能である。
【００１１】
一実施形態に係る干渉判定装置は、各干渉判定対象部位に識別番号を割り当てる識別番号割当部であって、各干渉判定対象部位の識別番号は、複数の桁数を有し且つ他の識別番号との間での論理積の結果において全ての桁が「０」となるように設定された識別番号である、識別番号割当部と、複数の干渉判定対象部位の存在領域を含む１次元判定領域を第３の軸に設定し、１次元判定領域を複数の線分に区切ると共に、各線分に対応しており存在領域の情報を格納する線分対応メモリ要素を確保する１次元判定領域管理部と、複数の干渉判定対象部位の占有領域を含む２次元判定領域を２次元平面に設定すると共に、２次元判定領域を、２次元的に配列されたマス目に区切ると共に、各マス目に対応しており占有領域の情報を格納するマス目対応メモリ要素を確保する２次元判定領域管理部と、を備え、存在領域重複情報生成部は、複数の線分のうち各干渉判定対象部位の存在領域の少なくとも一部を含む線分を特定し、特定された線分に対応する線分対応メモリ要素に、特定された線分に存在領域が位置する干渉判定対象部位が一つの場合は、その干渉判定対象部位の識別番号を存在領域重複情報として格納し、特定された線分に存在領域が位置する干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の識別番号の論理和を存在領域重複情報として格納し、各干渉判定対象部位について、その干渉判定対象部位の存在領域の少なくとも一部を含む全ての線分の線分対応メモリ要素に格納された存在領域重複情報の論理和を干渉コードとして生成し、占有領域重複情報生成部は、複数のマス目のうち各干渉判定対象部位の占有領域の少なくとも一部を含むマス目を特定し、特定されたマス目に対応するマス目対応メモリ要素に、特定されたマス目に占有領域が位置する干渉判定対象部位が一つの場合は、その干渉判定対象部位の識別番号を占有領域重複情報として格納し、特定されたマス目に占有領域が位置する干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の識別番号の論理和を占有領域重複情報として格納し、判定部は、各干渉判定対象部位について、その干渉判定対象部位の占有領域の少なくとも一部を含むマス目に対応するマス目対応メモリ要素に格納された占有領域重複情報と、その干渉判定対象部位の干渉コードとの論理積を演算し、少なくとも一つの干渉判定対象部位に対する占有領域重複情報と干渉コードとの論理積の演算結果の何れかの桁に「１」が含まれる場合は、複数の干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと判定してもよい。
【００１２】
一実施形態に係る干渉判定方法は、各干渉判定対象部位に識別番号を割り当てるステップであって、各干渉判定対象部位の識別番号は、複数の桁数を有し且つ他の識別番号との間での論理積の結果において全ての桁が「０」となるように設定された識別番号である、ステップと、複数の干渉判定対象部位の存在領域を含む１次元判定領域を干渉判定装置が第３の軸に設定し、１次元判定領域を複数の線分に区切って、各線分に対応しており存在領域の情報を格納する線分対応メモリ要素を干渉判定装置が確保するステップと、複数の干渉判定対象部位の占有領域を含む２次元判定領域を２次元平面に干渉判定装置が設定し、２次元判定領域を、２次元的に配列されたマス目に区切り、各マス目に対応しており占有領域の情報を格納するマス目対応メモリ要素を干渉判定装置が確保するステップと、を更に備え、存在領域重複情報を生成するステップは、複数の線分のうち各干渉判定対象部位の存在領域の少なくとも一部を含む線分を特定し、特定された線分に対応する線分対応メモリ要素に、特定された線分に存在領域が位置する干渉判定対象部位が一つの場合は、その干渉判定対象部位の識別番号を存在領域重複情報として格納し、特定された線分に存在領域が位置する干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の識別番号の論理和を存在領域重複情報として格納し、各干渉判定対象部位について、その干渉判定対象部位の存在領域の少なくとも一部を含む全ての線分の線分対応メモリ要素に格納された存在領域重複情報の論理和を干渉コードとして生成し、占有領域重複情報を生成するステップは、複数のマス目のうち各干渉判定対象部位の占有領域の少なくとも一部を含むマス目を特定し、特定されたマス目に対応するマス目対応メモリ要素に、特定されたマス目に占有領域が位置する干渉判定対象部位が一つの場合は、その干渉判定対象部位の識別番号を占有領域重複情報として格納し、特定されたマス目に占有領域が位置する干渉判定対象部位が２つ以上の場合は、それらの干渉判定対象部位の識別番号の論理和を占有領域重複情報として格納し、判定するステップは、各干渉判定対象部位について、その干渉判定対象部位の占有領域の少なくとも一部を含むマス目に対応するマス目対応メモリ要素に格納された占有領域重複情報と、その干渉判定対象部位の干渉コードとの論理積を演算し、少なくとも一つの干渉判定対象部位に対する占有領域重複情報と干渉コードとの論理積の演算結果の何れかの桁に「１」が含まれる場合は、複数の干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと判定してもよい。
【００１３】
上記のように、干渉判定対象部位に識別番号を割り当てていることによって、存在領域の情報及び占有領域の情報を１変数で表すことが可能である。その結果、演算量を低減でき、結果として、干渉判定の時間を低減できる。更に、第３の軸に１次元判定領域を設定し、その１次元判定領域を複数の線分に区切って各線分に対して線分対応メモリ要素を確保すると共に、２次元平面に２次元判定領域を設定し、その２次元判定領域を複数のマス目に区切って各マス目に対応するマス目対応メモリ要素を確保していることから、複数の干渉判定対象部位の動作を離散的に扱うことが可能である。更に、１次元判定領域に格納された存在領域重複情報を利用して干渉コードを生成しているので、一つの干渉判定対象部位の存在領域に渡る他の干渉判定対象部との存在領域の重複状態を一つの干渉コードとして扱い得る。
【００１４】
一実施形態において、存在領域重複情報生成部は、複数の干渉判定対象部位について所定の順番に沿って干渉判定対象部位の存在領域の少なくとも一部を含む線分を特定し、存在領域重複情報生成部は、干渉判定対象部位に対応する線分を特定する毎に、その干渉判定対象部位に対する干渉コードを生成し、占有領域重複情報生成部は、所定の順番に沿って順に干渉判定対象部位の占有領域に位置するマス目を特定し、干渉判定対象部位に対応するマス目を特定する毎に、特定されたマス目に格納されている占有領域重複情報を更新し、判定部は、干渉コードが生成される毎に、生成された干渉コードと、干渉コードの生成に対応して更新された占有領域重複情報との論理積とを演算し、何れかの論理積の演算結果の何れかの桁に「１」が含まれる場合は、複数の干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと判定する。
【００１５】
この場合、所定の順番に沿って干渉判定対象部位の干渉コードを生成すると共に、占有領域重複情報を更新する。そして、ある干渉判定対象部位の存在領域の情報に基づいて干渉コードを生成すると共に、その干渉判定対象部位の占有領域の情報に基づいて占有領域重複情報を更新する毎に、その干渉判定対象部位に対する干渉の判定を行う。そのため、例えば、一度全ての干渉判定対象部位を考慮して一つの干渉判定対象部位に対する干渉コードを算出する場合に比べて、干渉コードを算出するための演算回数を低減できる。その結果、干渉判定に要する時間を短縮可能である。
【００１６】
一実施形態において、各干渉判定対象部位についての存在領域重複情報は、その干渉判定対象部位との干渉は生じない少なくとも一つの干渉判定対象部位を予め示す干渉判定除外情報と、各干渉判定対象部位の存在領域とから生成される。
【００１７】
複数の干渉判定対象部位の配置状態においては、明らかに干渉の生じない干渉判定対象部位が存在する場合がある。この場合、それら干渉が生じ得ない干渉判定対象部位を示す判定除外情報を考慮して存在領域重複情報を生成し、その判定除外情報を利用することによって、確実に、それら干渉が生じ得ない干渉判定対象部位同士の判定結果を干渉なしとし得る。
【００１８】
一実施形態において、複数の干渉判定対象部位は、３次元空間内で複数の干渉判定対象部位の配置状態が第１の配置状態から第２の配置状態に変形可能であって、第１の配置状態から第２の配置状態への変形過程における一定の時間間隔毎の複数の干渉判定対象部位の配置状態に対して、存在領域重複情報生成部は、時間間隔毎の複数の干渉判定対象部位の配置状態における各干渉判定対象部位の存在領域重複情報を生成し、占有領域重複情報生成部は、時間間隔毎の複数の干渉判定対象部位の配置状態における各干渉判定対象部位について占有領域重複情報を取得し、判定部は、時間間隔毎に生成された存在領域重複情報と占有領域量副情報とに基づいて複数の干渉判定対象部位の干渉の有無を判断し、全ての時間間隔の何れかにおいて干渉が存在する場合は、複数の干渉判定対象部位の配置状態の第１の配置状態から第２の配置状態への変形過程において干渉が存在すると判定し、全ての時間間隔の何れかにおいても干渉が存在しない場合は、変形過程において干渉が存在しないと判定する。
【００１９】
この場合、複数の干渉判定対象部位が第１の配置状態から第２の配置状態に変形する過程における干渉の有無を判定し得る。
【００２０】
また、本発明は、互いに交差する第１及び第２の軸と、第１及び第２の軸を含む２次元平面と交差する第３の軸と、で構成される３次元空間における複数の干渉判定対象部位の干渉を干渉判定装置が判定する干渉判定方法であって、各干渉判定対象部位に識別番号を干渉判定装置が割り当てるステップであって、各干渉判定対象部位の識別番号は、複数の桁数を有し且つ他の識別番号との間での論理積の結果において全ての桁が「０」となるように設定された識別番号である、ステップと、複数の干渉判定対象部位の存在領域を含む１次元判定領域を第３の軸に干渉判定装置が設定し、１次元判定領域を複数の線分に区切って、各線分に対応しており存在領域の情報を格納する線分対応メモリ要素を干渉判定装置が確保するステップと、全ての線分対応メモリ要素に初期値として「０」を格納して線分対応メモリ要素を干渉判定装置が初期化するステップと、複数の干渉判定対象部位の占有領域を含む２次元判定領域を２次元平面に干渉判定装置が設定し、２次元判定領域を、２次元的に配列されたマス目に区切り、各マス目に対応しており占有領域の情報を格納するマス目対応メモリ要素を干渉判定装置が確保するステップと、全てのマス目対応メモリ要素に初期値として「０」を格納してマス目対応メモリ要素を干渉判定装置が初期化するステップと、複数の線分のうち干渉判定対象部位の存在領域の少なくとも一部を含む線分に対応する線分対応メモリ要素に、初期値が格納されている場合は、その干渉判定対象部位の識別番号を干渉判定装置が存在領域重複情報として格納し、その線分対応メモリ要素に初期値以外の値が格納されている場合は、干渉判定対象部位の識別番号と、その線分対応メモリ要素に格納されている値との論理和を干渉判定装置が存在領域重複情報として格納するステップと、干渉判定対象部位の存在領域の少なくとも一部を含む全ての線分の線分対応メモリ要素に格納された存在領域重複情報の論理和を干渉判定装置が干渉コードとして生成するステップと、複数のマス目のうち干渉判定対象部位の占有領域の少なくとも一部を含むマス目に対応するマス目対応メモリ要素に初期値が格納されている場合は、その干渉判定対象部位の識別番号を干渉判定装置が占有領域重複情報として格納し、そのマス目対応メモリ要素に初期値以外の値が格納されている場合は、干渉判定対象部位の識別番号と、線分対応メモリ要素に格納されている値との論理和を干渉判定装置が占有領域重複情報として格納するステップと、干渉判定対象部位の占有領域の少なくとも一部を含むマス目に対応するマス目対応メモリ要素に格納された占有領域重複情報と、その干渉判定対象部位の干渉コードとの論理積を干渉判定装置が演算し、その論理積の演算結果の何れかの桁に「１」が含まれる場合は、その干渉判定対象部位と他の少なくとも一つの干渉判定対象部位との間に干渉が存在すると干渉判定装置が判定し、それ以外の場合は、その干渉判定対象部位と他の少なくとも一つの干渉判定対象部位との間に干渉が存在しないと干渉判定装置が判定するステップと、を備え、所定の順番で複数の干渉判定対象部位毎に、線分対応メモリ要素を初期化するステップと、マス目対応メモリ要素を初期化するステップと、存在領域重複情報として格納するステップと、干渉コードとして生成するステップと、占有領域重複情報として格納するステップと、判定するステップとを、干渉判定装置が実行する。
【００２１】
存在領域重複情報生成部が生成する存在領域重複情報が少なくとも２つの干渉判定対象部位の第３の軸上の存在領域が重複していることを示している場合、その存在領域が重複した干渉判定対象部位同士は、干渉（衝突）の可能性があることになる。同様に、占有領域重複情報生成部が生成する占有領域重複情報が少なくとも２つの干渉判定対象部位の上記２次元平面における占有領域が重複していることを示している場合、その占有領域が重複した干渉判定対象部位同士は、干渉（衝突）の可能性があることになる。従って、判定部が、存在領域重複情報及び占有領域重複情報を利用して上記のように干渉を判定することによって、３次元的に干渉判定対象部位同士の干渉（衝突）を判定し得る。そして、第３の軸方向における複数の干渉判定対象部位の配置状態における干渉の可能性をそれらの干渉判定対象部位を第３の軸に投影した存在領域に基づいて１次元で評価しているため、干渉判定に要する演算量を低減できる。その結果、干渉判定の時間を短縮可能である。なお、干渉コードは、存在領域重複情報を利用して生成されているので、干渉コードに基づいて干渉を判定することによって、存在領域重複情報を利用して干渉を判定していることになる。
【００２２】
また、干渉判定対象部位に識別番号を割り当てていることによって、存在領域の情報及び占有領域の情報を１変数で表すことが可能である。その結果、演算量を低減でき、結果として、干渉判定の時間を低減できる。更に、第３の軸に１次元判定領域を設定し、その１次元判定領域を複数の線分に区切って各線分に対して線分対応メモリ要素を確保すると共に、２次元平面に２次元判定領域を設定し、その２次元判定領域を複数のマス目に区切って各マス目に対応するマス目対応メモリ要素を確保していることから、複数の干渉判定対象部位の動作を離散的に扱うことが可能である。更に、１次元判定領域に格納された存在領域重複情報を利用して干渉コードを生成しているので、一つの干渉判定対象部位の存在領域に渡る他の干渉判定対象部との存在領域の重複状態を一つの干渉コードとして扱い得る。
【００２３】
更に、上記方法では、ある干渉判定対象部位の存在領域の情報に基づいて干渉コードを生成すると共に、その干渉判定対象部位の占有領域の情報に基づいて占有領域重複情報を更新する毎に、その干渉判定対象部位に対する干渉の判定を行う。そのため、例えば、一度全ての干渉判定対象部位を考慮して一つの干渉判定対象部位に対する干渉コードを算出する場合に比べて、干渉コードを算出するための演算回数を低減できる。その結果、干渉判定に要する時間を短縮可能である。
【発明の効果】
【００２４】
本発明によれば、干渉判定時間を短縮できる。
【図面の簡単な説明】
【００２５】
【図１】一実施形態に係る干渉判定装置を含む双腕ロボットシステムの構成概要図である。
【図２】図１に示した双腕ロボットの側面概要図である。
【図３】図１に示した双腕ロボットの上面概要図である。
【図４】図１に示した干渉判定部の機能的構成要素を示したブロック図である。
【図５】干渉判定の複数の対象部位に割り当てた識別番号ＩＤｉの一例を示す図である。
【図６】第１の判定領域の線分による分割状態を示す図面である。
【図７】第２の判定領域のマス目による分割状態を示す図面である。
【図８】判定除外情報の一例を示す図である。
【図９】双腕ロボットシステムにて行われるメイン処理を示すフローチャートである。
【図１０】図４に示した干渉判定部による干渉判定処理の一例を示すフローチャートである。
【図１１】存在領域重複情報の生成方法を示すフローチャートである。
【図１２】干渉コードの生成方法を示すフローチャートである。
【図１３】占有領域重複情報の生成方法を示すフローチャートである。
【図１４】ある時刻ｔにおける対象部位Ｐ１〜Ｐｈの配置状態を示す図面である。
【図１５】他の実施形態に係る干渉判定装置としての干渉判定部の機能的構成要素を示したブロック図である。
【図１６】図１５に示した干渉判定部による干渉判定処理の一例を示すフローチャートである。
【図１７】図１６に示した干渉判定処理内での干渉コードの生成方法を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、添付図面を参照して本発明に係る干渉判定装置及び干渉判定方法の実施形態を詳細に説明する。図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【００２７】
［双腕ロボットシステム１００の全体構成］
一実施形態に係る干渉判定装置を含む双腕ロボットシステムの全体構成について、図１〜３を参照しながら説明する。図１は、一実施形態に係る干渉判定装置を含む双腕ロボットシステムの構成概要図である。図１に示すように、双腕ロボットシステム１００は、軌道生成部１、サーボドライバ２ａ〜２ｄ、昇降制御ドライバ２ｅ,２ｆ、双腕ロボット３、及び、干渉判定部４を含んで構成され、各構成要素は例えば図１にて矢印で表現される通信手段により互いに通信できるように接続されている。図２は双腕ロボット３の側面概要図であり、図３は双腕ロボット３の上面概要図である。
【００２８】
双腕ロボット３は、例えば図２及び図３に示されるように、支持台３０に取り付けられた水平多関節アーム３１，３２を有する。水平多関節アーム３１，３２は、支持台３０に一端部が取り付けられた第１リンク部３１１，３２１と、第１リンク部３１１，３２１の他端部に一端部が取り付けられた第２リンク部３１２，３２２と、第２リンク部３１２，３２２の他端部に取り付けられた昇降部３１３，３２３とを含む。
【００２９】
各アーム３１，３２の第１リンク部３１１，３２１の付け根（双腕ロボット３の肩部分）、すなわち、第１リンク部３１１，３２１と支持台３０との接合部には、サーボモータ３ａ，３ｃが設けられている。また、第２リンク部３１２，３２２の付け根（双腕ロボット３のひじ部分）、すなわち、第１リンク部３１１，３２１と第２リンク部３１２，３２２の接合部には、それぞれサーボモータ３ｂ，３ｄが設けられている。この構成により、各第１アーム部３１及び第２アーム部３２は水平方向に旋回移動できるようになっている。また、昇降部３１３，３２３は、鉛直方向に延びる昇降軸に沿って昇降部３１３，３２３の下端部が鉛直方向に昇降可能となっている。昇降部３１３，３２３は、昇降制御部３ｅ、３ｆによって、その昇降状態が制御される。図２及び図３では、昇降制御部３ｅ、３ｆは、昇降部３１３,３２３に内蔵されているとして模式的に示しているが、昇降制御部３ｅ,３ｆは、昇降部３１３,３２３の昇降状態を制御可能なように昇降部３１３,３２３に取り付けられていればよい。
【００３０】
支持台３０は、双腕ロボット３により作業される例えばワークが載置される載置台と対向して配置されており、水平多関節アーム３１，３２は、ワーク及びそのワークの載置台を挟んで、水平多関節アーム３１，３２の作業範囲が少なくとも一部重複するように支持台３０に取り付けられている。なお、ワーク及びそのワークの載置台は、水平多関節アーム３１，３２の動作の軌跡上においては、水平多関節アーム３１，３２の動作の障害物となる。よって、ワーク及びそのワークの載置台をまとめて障害物５とも称す。
【００３１】
以下では、昇降部３１３，３２３の昇降方向（延長方向）をＺ軸（第３の軸）方向とし、Ｚ軸方向に直交する２つの軸方向をＸ軸（第１の軸）方向及びＹ軸（第２の軸）方向とする。Ｘ軸及びＹ軸は互いに直交する。Ｘ軸、Ｙ軸及びＺ軸は、後述する軌道生成部１による軌道の算出及び干渉判定処理のための仮想的な軸である。この場合、双腕ロボット３は、Ｘ軸、Ｙ軸及びＺ軸から構成される３次元空間内で動作可能なロボットである。
【００３２】
図１にて示される軌道生成部１は、双腕ロボット３の各部位が現在位置から目標位置まで移動できるように、各関節の移動量及び移動速度並びに昇降部３１３，３２３の昇降状態及び昇降速度を演算し、各サーボドライバ２ａ〜２ｄ及び昇降制御ドライバ２ｅ,２ｆに指令を送る部分である。双腕ロボット３の各部位の現在位置により双腕ロボット３の現在の姿勢（以下、現在姿勢とも称す）が規定され、双腕ロボット３の各部位の目標位置により双腕ロボット３の目標の姿勢（以下、目標姿勢とも称す）が規定される。
【００３３】
軌道生成部１は、記憶部１１及び演算部１２を含んで構成される。記憶部１１は、軌道生成に必要な双腕ロボット３の概形寸法や移動に関する補間情報ならびに速度情報などの諸元と、教示もしくはロボット言語によるプログラミングによって記述されたロボットの動作順序を制御する動作プログラムとを格納する部分である。
【００３４】
演算部１２は、双腕ロボット３の各部位が現在位置から目標位置まで移動できるように、各関節の移動量及び移動速度並びに昇降部３１３,３２３の昇降量及び昇降速度を演算する部分である。双腕ロボット３の移動前に、軌道生成部１の演算部１２は干渉判定部４へ、移動前の姿勢から移動後の姿勢に移動する場合の移動中および移動後の干渉の有無を問い合わせる。
【００３５】
サーボドライバ２ａ〜２ｄは、軌道生成部１からの指令を受けて、双腕ロボット３の各関節に設けられたサーボモータ３ａ〜３ｄをそれぞれ駆動する。サーボドライバ２ａ〜２ｄは、現在の角度情報などを軌道生成部１にフィードバックする機能も有する。
【００３６】
昇降制御ドライバ２ｅ,２ｆは、軌道生成部１からの指令を受けて、双腕ロボット３の昇降部３１３,３２３に設けられた昇降制御部３ｅ,３ｆを駆動して昇降部３１３,３２３の昇降状態を制御する。昇降制御ドライバ２ｅ,２ｆは、現在の昇降状態の情報などを軌道生成部１にフィードバックする機能も有する。
【００３７】
［干渉判定部の構成］
以下、双腕ロボットシステム１００の一構成要素である干渉判定部（干渉判定装置）４の構成について、図４〜図８を更に参照しながら詳細に説明する。
【００３８】
干渉判定部４は、軌道生成部１から問い合わせを受けて、双腕ロボット３が３次元で動作する際に、双腕ロボット３の各部位が互いに干渉するか否か、又は、双腕ロボット３の各部位と障害物５とが干渉するか否かの干渉判定を行う部分である。双腕ロボット３と障害物５とにおいて、このように、相互の干渉判定を行うｈ個（ｈは２以上の整数）の部位を干渉判定対象部位（以下、単に「対象部位」と称す）Ｐ１〜Ｐｈと称す。また、対象部位Ｐ１〜Ｐｈを対象部位Ｐｉ（ｉは、１以上ｈ以下の整数）とも称す場合もある。
【００３９】
本実施形態では、双腕ロボット３の各部位は、支持台３０、第１リンク部３１１，３２１、第２リンク部３１２，３２２及び昇降部３１３，３２３である。第１リンク部３１１，３２１及び第２リンク部３１２，３２２は水平移動可能であり、昇降部３１３，３２３は鉛直方向に昇降可能である。そのため、双腕ロボット３が所定の姿勢から他の姿勢に移動する際に、支持台３０、第１リンク部３１１，３２１、第２リンク部３１２，３２２及び昇降部３１３，３２３並びに障害物５の間に衝突を伴う立体交差、すなわち、干渉が生じる可能性はある。そのため、支持台３０、第１リンク部３１１，３２１、第２リンク部３１２，３２２及び昇降部３１３，３２３並びに障害物５は、干渉判定の対象部位である。よって、本実施形態では、８個の対象部位Ｐ１〜Ｐ８が存在する。
【００４０】
支持台３０、第１リンク部３１１，３２１、第２リンク部３１２，３２２、昇降部３１３，３２３及び障害物５と対象部位Ｐ１〜Ｐ８との対応関係は次の通りである。
支持台３０：対象部位Ｐ１
第１リンク部３１１：対象部位Ｐ２
第２リンク部３１２：対象部位Ｐ３ 
昇降部３１３：対象部位Ｐ４
第１リンク部３２１：対象部位Ｐ５
第２リンク部３２２：対象部位Ｐ６
昇降部３２３：対象部位Ｐ７
障害物５：対象部位Ｐ８
【００４１】
図４は、干渉判定部の機能的構成要素を示したブロック図である。図４に示されるように、干渉判定部４は、識別番号割当部４１、判定領域管理部４２、格納部４３及び干渉判定処理部４４を含んで構成される。
【００４２】
［識別番号割当部］
識別番号割当部４１は、対象部位Ｐｉに識別番号ＩＤｉを割り当てる部分である。一つの識別番号ＩＤｉは、他の全ての識別番号との間で桁ごとの論理積を計算すると全ての桁が「０」となるように設定される情報である。識別番号ＩＤｉは、例えば、対象部位Ｐｉの数と同数の複数の桁数から構成され得る。
【００４３】
具体的に、識別番号割当部４１が図２及び図３にて示した双腕ロボット３及び障害物５の各対象部位に割り当てた識別番号ＩＤｉの一例を図５に示す。図５の一例において、識別番号割当部４１は、対象部位Ｐ１である支持台３０に対して識別番号ＩＤ１として「１０００００００」を割り当てている。識別番号割当部４１は、対象部位Ｐ２である第１リンク部３１１に対して、識別番号ＩＤ２として「０１００００００」を割り当てている。識別番号割当部４１は、対象部位Ｐ７である昇降部３２３に対して、識別番号ＩＤ７として「００００００１０」を割り当てている。更に、識別番号割当部４１は、対象部位Ｐ７である障害物５に対して、識別番号ＩＤ８として「０００００００１」を割り当てている。ここで挙げた一例においては、双腕ロボット３の各部位および障害物５である対象部位Ｐ１〜Ｐ８の数が「８」であるため、各識別番号ＩＤｉの桁数は「８」となっている。また、ＩＤ１からＩＤ８までの桁ごとの論理積を計算すると、全ての桁において「０」となる。
【００４４】
他の全ての識別番号との間で桁ごとの論理積を計算すると全ての桁が「０」となるように設定されていれば、識別番号の構成は特に限定されない。例えば、識別番号内に、対象部位に対応しない桁が含まれていてもよい。また、対象部位Ｐ１〜Ｐｈの数と同数の複数の桁数を上位ビットとし、更に下位ビットを付加した番号を識別番号としてもよい。或いは、逆に、対象部位Ｐ１〜Ｐｈの数と同数の複数の桁数を下位ビットとし、上位ビットを付加した番号を識別番号としてもよい。更に、複数の桁を一つの対象部位に対応させてもよい。
【００４５】
［判定領域管理部］
判定領域管理部４２は、第１の判定領域管理部４２１と、第２の判定領域管理部４２１とを有する。
【００４６】
第１の判定領域管理部４２１は、干渉判定対象Ｐ１〜ＰｈのそれぞれのＺ軸上の存在領域を含む領域である第１の判定領域６（図６参照）を設定する。干渉判定対象Ｐ１〜ＰｈのＺ軸上の存在領域は、干渉判定対象Ｐ１〜ＰｈをそれぞれＺ軸へ投影した領域である。第１の判定領域管理部４２１は、第１の判定領域６をｕ個の複数の線分６１ｍ（ｍは１以上ｕ以下の整数）に区切ると共に、各線分６１ｍに対応する線分対応メモリ要素（以下、単に「メモリ要素」と称す）ＨＯｃｃ[ｍ]から構成される第１のメモリ領域部を格納部４３に確保する。線分６１ｍは、第１の判定領域６を所定の領域で分割した場合の第１の判定領域６を構成する小領域である。
【００４７】
図６は、複数の対象部位と第１の判定領域との関係を示す図面である。図６に示す各対象部位Ｐ１〜Ｐｈとしての支持台３０、第１リンク部３１１、第２リンク部３１２、昇降部３１３、第１リンク部３２１、第２リンク部３２２、昇降部３２３及び障害物５は、諸元等格納部４３１に格納された各対象部位Ｐ１〜Ｐｈの大きさ（寸法）などによって仮想空間に仮想的に構築されたものに対応するが、説明の便宜上、図２及び図３等と同じ符号を付している。第１の判定領域６は、双腕ロボット３の動作する範囲を包含する空間、若しくは双腕ロボット３の動作する範囲の一部であって干渉判定の対象となる空間をＺ軸上に投影した領域である。図６では、一例として、第１の判定領域６を１３個の線分６１１〜６１１３に区切った場合を示している。図示の都合上、図６では、線分６１ｍに対応するＺ軸上の領域を矩形領域で模式的に示している。
【００４８】
第１の判定領域６を区切る線分６１ｍの大きさ（又は線分６１ｍの個数ｕ）は、演算量などに基づいて決定すればよいが、より確実に干渉を判定する観点から、対象部位Ｐ１〜ＰｈのＺ軸方向の厚さのうち最小の厚さより小さいことが好ましい。
【００４９】
図６における状態において、例えば、対象部位Ｐ２である第１リンク部３１１の存在領域は、線分６１５,６１６から構成される領域に対応する。対象部位Ｐ３である第２リンク部３１２の存在領域は、線分６１７〜線分６１１１から構成される領域に対応する。更に、対象部位Ｐ４である昇降部３１３の存在領域は、線分６１４〜線分６１１１から構成される領域に対応する。
【００５０】
第２の判定領域管理部４２１は、干渉判定対象Ｐ１〜ＰｈのＸＹ平面上の占有領域を含む領域である第２の判定領域７（図７参照）を設定する。干渉判定対象Ｐ１〜ＰｈのＸＹ平面の占有領域は、干渉判定対象Ｐ１〜ＰｈをそれぞれのＸＹ平面への投影した領域である。第２の判定領域管理部４２１は、第２の判定領域７を設定し、第２の判定領域７を２次元的に配列されたｖ個の複数のマス目７１ｎ（ｎは２以上ｖ以下の整数）に区切ると共に、その複数のマス目７１ｎに対応するマス目対応メモリ要素（以下、単に「メモリ要素」と称す）Ｏｃｃ[ｎ]から構成される第２のメモリ領域部を格納部４３に確保する。
【００５１】
図７は、複数の対象部位と第２の判定領域との関係を示す図面である。図７に示す各対象部位Ｐ１〜Ｐｈとしての支持台３０、第１リンク部３１１、第２リンク部３１２、昇降部３１３、第１リンク部３２１、第２リンク部３２２、昇降部３２３及び障害物５は、諸元等格納部４３１に格納された各対象部位Ｐ１〜Ｐｈの大きさ（寸法）などによって仮想空間に仮想的に構築されたものに対応することは、図６の場合と同様である。第２の判定領域７は、双腕ロボット３の動作する範囲を包含する空間、もしくは双腕ロボット３の動作する範囲の一部であって干渉判定の対象となる空間をＸＹ平面に投影した領域である。図７では、ｖ個のマス目７１ｎがＸ軸方向にｎ１列、Ｙ軸方向にｎ２行で２次元配列されている。なお、ｖ＝ｎ１×ｎ２である。第２の判定領域７を区切るマス目７１ｎの大きさ（又は個数ｖ）は、演算量などに基づいて決定すればよい。
【００５２】
図７における状態において、例えば、対象部位Ｐ２である第１リンク部３１１、対象部位Ｐ３である第２リンク部３１２及び昇降部３１３のそれぞれの占有領域は、第１リンク部３１１、第２リンク部３１２及び対象部位Ｐ４である昇降部３１３にそれぞれ付されたハッチングで示される領域である。
【００５３】
格納部４３は、諸元等格納部４３１、判定除外情報格納部４３２、１次元干渉情報格納部４３３、占有領域重複情報格納部４３４及び判定結果格納部４３５を含んで構成される。
【００５４】
諸元等格納部４３１は、電源投入後に受け取った双腕ロボット３の諸元、および軌道生成部１からの問い合わせ毎に受け取った移動前後の双腕ロボット３の姿勢情報を格納する部分である。
【００５５】
判定除外情報格納部４３２は、ｈ個の対象部位Ｐ１〜Ｐｈの間で、干渉のない立体交差が可能である場合（つまり立体交差する際に干渉を伴わない場合）若しくは自分自身との関係では、干渉判定を行わない（又は干渉が存在しない）ことを予め示す判定除外情報を格納する。判定除外情報ＣＥｘｉは、対象部位Ｐ１〜Ｐｈの配置関係に基づいて、双腕ロボットシステムの操作者によって予め入力されていてもよいし、諸元等格納部４３１に格納されている諸元等に基づいて自動生成されてもよい。
【００５６】
具体的に、判定除外情報格納部４３２に格納した判定除外情報の一例を図８に示す。図８は、図２に示した各対象部位Ｐ１〜Ｐ８のＺ軸方向の長さ（高さ）に基づいたものである。図８の一例において、例えば対象部位Ｐ２についての判定除外情報ＣＥｘ２の値は「０００１１０１０」である。これは、対象部位Ｐ２（第１リンク部３１１）は、対象部位Ｐ１（支持台３０）と、対象部位Ｐ２自身と、対象部位Ｐ３（第２リンク部３１２）と、対象部位Ｐ６（第２リンク部３２２）と対象部位Ｐ８（障害物５）との間では干渉は生じる可能性はなく、対象部位Ｐ４（昇降部３１３）と対象部位Ｐ５（第１リンク部３２１）と対象部位Ｐ７（昇降部３２３）との間に干渉が生じる可能性があることを示している。
【００５７】
１次元干渉情報格納部４３３は、第１の判定領域管理部４２１で設定された第１の判定領域６に対応する第１のメモリ領域部４３３Ａと、対象部位Ｐ１〜Ｐｈ間の干渉可能性を示す情報である干渉コードを格納する干渉コード格納部４３３Ｂとを含む部分である。第１のメモリ領域部４３３Ａは、複数の線分６１ｍに対応するメモリ要素ＨＯｃｃ［ｍ］から構成される。
【００５８】
占有領域重複情報格納部４３４は、第２の判定領域管理部４２２で設定された第２の判定領域７に対応する第２のメモリ領域部４３４Ａを含む部分である。第２のメモリ領域部４３４Ａは、複数のマス目７１ｎに対応するメモリ要素Ｏｃｃ［ｎ］から構成される。
【００５９】
判定結果格納部４３５は、干渉判定処理部４４による干渉判定の結果を格納する部分である。
【００６０】
干渉判定処理部４４は、格納部４３に格納された各情報に基づき干渉判定を行うと共に、干渉判定部４を構成する識別番号割当部４１、判定領域管理部４２及び格納部４３の動作を制御する部分である。干渉判定処理部４４は、双腕ロボット３が現在姿勢から目標姿勢へ移動する過程において、一定時間間隔Δｔ毎の対象部位Ｐ１〜Ｐｈの配置状態に対して、それぞれ干渉判定を行う。現在姿勢の時刻を基準時刻ｔｓとし、目標姿勢の基準時刻に対する時刻を到達時刻ｔＬとした場合、一定時間間隔Δｔ毎の時刻ｔは、ｔ＝ｔｓ＋ｒΔｔ（ｒは、０以上の整数）で表される。Δｔの係数ｒの上限は、時刻ｔｓと時刻ｔＬとの間の時間差を時間間隔Δｔで除した数であり、演算量などによって適宜設定すればよい。
【００６１】
双腕ロボット３の第１リンク部３１１,３２１、第２リンク部３１２,３２２及び昇降部３１３,３２３のある姿勢が規定されると、それらと障害物５との一つの配置状態が規定される。従って、双腕ロボット３の現在姿勢が決まると、対象部位Ｐ１〜Ｐｈの第１の配置状態が決定され、双腕ロボット３の目標姿勢が決まると、対象部位Ｐ１〜Ｐｈの目標とする第２の配置状態が決定される。そして、時刻ｔでの双腕ロボット３の姿勢は、その時刻ｔでの対象部位Ｐ１〜Ｐｈの配置状態を決定している。
【００６２】
干渉判定処理部４４は、図４に示されるように、干渉可能性情報生成部（存在領域重複情報生成部）４４１、占有領域重複情報生成部４４２及び判定部４４３を含んで構成される。以下、干渉判定処理部４４を構成する各構成要素について説明する。
【００６３】
［干渉可能性情報生成部］
干渉可能性情報生成部４４１は、ある時刻ｔにおける対象部位Ｐ１〜Ｐｈの配置状態に基づいて、対象部位Ｐ１〜ＰｈのＺ軸上の存在領域を算出し、その存在領域を含む線分６１ｍを特定する。特定された線分６１ｍに対応するメモリ要素ＨＯｃｃ[ｍ]に、線分６１ｍに存在領域がある対象部位Ｐ１〜Ｐｈの識別番号ＩＤ１〜ＩＤｈを対象部位Ｐ１〜Ｐｈの存在領域の重複状態を示す存在領域重複情報として格納する。この際、一つの線分６１ｍに２つ以上の対象部位Ｐ１〜Ｐｈの存在領域が重なっている場合には、対象部位Ｐ１〜Ｐｈのうち存在領域が重複する対象部位の論理和を存在領域重複情報としてメモリ要素ＨＯｃｃ[ｍ]に格納する。なお、「存在領域を含む線分６１ｍ」とは、存在領域の少なくとも一部を含む又は存在領域の少なくとも一部がかかっている線分６１ｍである。
【００６４】
メモリ要素ＨＯｃｃ[ｍ]に格納される存在領域重複情報が２つ以上の識別番号ＩＤ１〜ＩＤｈの論理和である場合、その論理和を構成する識別番号ＩＤ１〜ＩＤｈに対応する対象部位Ｐ１〜Ｐｈ同士は干渉する可能性があることになる。すなわち、存在領域重複情報は対象部位Ｐ１〜Ｐｈの間の干渉の可能性を示す情報である。
【００６５】
干渉可能性情報生成部４４１は、対象部位Ｐｉの存在領域を含む全ての線分６１ｍに対応するメモリ要素ＨＯｃｃ[ｍ]に格納された存在領域重複情報と、対象部位Ｐｉの判定除外情報ＣＥｘｉとの論理積を演算することによって、対象部位Ｐｉの干渉コードＣＩＤｉを生成する。
【００６６】
すなわち、干渉可能性情報生成部４４１で生成される対象部位Ｐｉに対する干渉コードＣＩＤｉは次式で表される。
【数１】
2013136109.tif 000003
式（１）中のｍｉは、ｍ＝１〜ｕのうち対象部位Ｐｉの存在領域を含む線分６１ｍ及びそれに対応するメモリ要素ＨＯｃｃ[ｍ]を区別するためのｍである。すなわち、ｍｉは対象部位Ｐｉに対してＨＯｃｃ[ｍ]・ＩＤｉ≠０が成り立つｍである。また、式（１）中のｊは、１以上ｈ以下の整数である。なお、式（１）に示されるようなΣ（加算記号）で表される加算演算及び「・」で示される積算演算は、それぞれ論理和及び論理積を表す。
【００６７】
干渉可能性情報生成部４４１は、各対象部位Ｐ１〜Ｐｈに対して式（１）で示される干渉コードＣＩＤ１〜ＣＩＤｈをそれぞれ算出し、干渉コードＣＩＤ１〜ＣＩＤｈを干渉コード格納部４３３Ｂに格納する。
【００６８】
干渉コードＣＩＤｉは、前述したように、対象部位Ｐｉの存在領域を含む線分６１ｍに対応するメモリ要素ＨＯｃｃ[ｍ]に格納された存在領域重複情報の論理和に基づいて作成される。メモリ要素ＨＯｃｃ[ｍ]に格納された存在領域重複情報が、２つ以上の識別番号ＩＤｉの論理和である場合、前述したように、存在領域重複情報は、その２つ以上の識別番号ＩＤｉに対応する対象部位Ｐｉが干渉する可能性を示している。従って、干渉コードＣＩＤｉも、対象部位Ｐｉ間の干渉可能性の情報を含んだ干渉可能性情報でもある。
【００６９】
［占有領域重複情報処理部］
占有領域重複情報生成部４４２は、ある時刻ｔにおける対象部位Ｐ１〜Ｐｈの配置状態に基づいて、対象部位Ｐ１〜Ｐｈの占有領域を含むマス目７１ｎを特定する。占有領域重複情報生成部４４２は特定されたマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]に、その特定されたマス目７１ｎに占有領域がある対象部位Ｐ１〜Ｐｈの識別番号ＩＤ１〜ＩＤｈを占有領域重複情報として格納する。この際、一つのマス目７１ｎに２つ以上の対象部位Ｐ１〜Ｐｈの占有領域が重なっている場合には、対象部位Ｐ１〜Ｐｈのうち占有領域が重複する対象部位の論理和を占有領域重複情報としてメモリ要素Ｏｃｃ[ｎ]に格納する。メモリ要素Ｏｃｃ[ｎ]に、識別番号ＩＤｉの論理和が格納される場合、論理和を構成する各識別番号に対応する対象部位同士に干渉の可能性があることを示す。なお、「占有領域を含むマス目７１ｎ」とは、占有領域の少なくとも一部を含む又は占有領域の少なくとも一部がかかっているマス目７１ｎである。
【００７０】
[判定部]
判定部４４３は、対象部位Ｐ１〜Ｐｈのうち、占有領域重複情報生成部４４２で生成された占有領域重複情報が重複することを示しており且つ干渉コードが干渉の可能性がある、すなわち、重複することを示す対象部位同士が存在する場合は、対象部位Ｐ１〜Ｐｈ間に「干渉あり」と判定し、それ以外の場合は、対象部位Ｐ１〜Ｐｈ間に「干渉なし」と判定する。
【００７１】
具体的には、判定部４４３は、各対象部位Ｐｉに対して、その対象部位Ｐｉが占有する全てのマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]内の占有領域重複情報各々と干渉コードＣＩＤｉとの論理積を演算する。判定部４４３は、算出された全ての論理積のいずれの桁も「０」の場合は、「干渉なし」と判断し、何れかの論理積において、何れかの桁に「１」が含まれている場合は、「干渉あり」と判断する。
【００７２】
以下、双腕ロボットシステム１００の動作の一例について説明すると共に、干渉判定部４の動作の一例について詳細に説明する。
【００７３】
［双腕ロボットシステムの動作］
双腕ロボットシステム１００により行われる動作について、図９〜図１４を参照しながら説明する。下記の説明は、双腕ロボットシステム１００におけるメイン処理と、干渉判定部４による干渉判定処理とに大別される。
【００７４】
［メイン処理］
まず、双腕ロボットシステム１００におけるメイン処理について図９を参照しながら説明する。図９は、双腕ロボットシステム１００にて行われるメイン処理を示すフローチャートである。
【００７５】
最初に、軌道生成部１の演算部１２が、記憶部１１に格納されているパラメータを干渉判定部４に送信する。このパラメータは、干渉判定の対象部位Ｐｉ毎に設定されるものである（ステップＳ１０１）。
【００７６】
次に、軌道生成部１の演算部１２が、双腕ロボット３の現在姿勢の情報を読み込む（ステップＳ１０２）。双腕ロボット３の現在姿勢の情報は例えばサーボドライバ２ａ〜２ｄの現在角度などである。
【００７７】
続いて、軌道生成部１の演算部１２が、記憶部１１に格納された動作プログラムを解析して、双腕ロボット３の目標姿勢を求める（ステップＳ１０３）。
【００７８】
その後、軌道生成部１の演算部１２が、双腕ロボット３の現在姿勢と目標姿勢を干渉判定部４に送信する（ステップＳ１０４）。
【００７９】
次に、軌道生成部１の演算部１２は干渉判定部４からの判定結果信号を待つ（ステップＳ１０５）。この間、干渉判定部４では詳細を後述する干渉判定処理が行われ、双腕ロボット３のアーム３１，３２の移動の全体で部位同士の干渉が生じないかどうかが判定される。そして、干渉判定部４からの判定結果信号が「干渉なし」の場合（ステップＳ１０６：ＹＥＳ）、軌道生成部１の演算部１２は、表示部（図示せず）に「干渉なし」の表示をさせ（ステップＳ１０７）、記憶部１１に格納されている動作プログラムを実行させ、双腕ロボット３の動作制御を行う（ステップＳ１０８）。
【００８０】
一方で、干渉判定部４からの判定結果信号が「干渉あり」の場合には（ステップＳ１０６：ＮＯ）、軌道生成部１の演算部１２は、表示部（図示せず）に「干渉あり」の表示をさせ（ステップＳ１０９）、そのまま処理を終了させる。以上のように軌道生成部１は、双腕ロボット３の移動の全体で部位同士の干渉が生じない判定結果が得られるまでサーボドライバ２ａ〜２ｄに指令を送らずに待機し、干渉が生じる場合には双腕ロボット３の各移動部位の移動を開始させない。
【００８１】
［干渉判定処理］
引き続き、干渉判定部４による干渉判定処理について図１０を利用して説明する。
【００８２】
干渉判定処理では、識別番号割当部４１が干渉判定の対象部位Ｐ１〜Ｐｈ毎に識別番号ＩＤ１〜ＩＤｈを割り当てる（ステップＳ２０１、図５参照）。
【００８３】
次に、判定領域管理部４２が、第１及び第２のメモリ領域部４３３Ａ,４３４Ａを格納部４３に確保する（ステップＳ２０２）。すなわち、１次元干渉情報格納部４３３内に第１のメモリ領域部４３３Ａを確保すると共に、占有領域重複情報格納部４３４に第２のメモリ領域部４３４Ａを確保する。
【００８４】
その後、干渉判定処理部４４はステップＳ１０４（図９参照）にて軌道生成部１から双腕ロボット３の現在姿勢と目標姿勢とが入力されることを待つ（ステップＳ２０３）。現在姿勢の情報は、第１リンク部３１１，３２１及び第２リンク部３２１，３２２の現在の角度の情報並びに昇降部３１３，３２３の現在の昇降状態の情報を含む。同様に、目標姿勢の情報は、第１リンク部３１１，３２１及び第２リンク部３２１，３２２の目標の角度の情報並びに昇降部３１３，３２３の目標の昇降状態の情報を含む。
【００８５】
軌道生成部１から双腕ロボット３の現在姿勢と目標姿勢の入力があった場合に（ステップＳ２０３：ＹＥＳ）、ステップＳ２０４からステップＳ２１４までのループＬ１０を実行する。
【００８６】
ループＬ１０では、干渉可能性情報生成部４４１が、第１の判定領域６に対応する第１のメモリ領域部４３３Ａを初期化する（ステップＳ２０４）。具体的には、メモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[ｕ]に初期値として０を格納する。
【００８７】
その後、ステップＳ２０５とステップＳ２０６とのループＬ１１を開始する。ループＬ１１では、まず、干渉可能性情報生成部４４１が、時刻ｔの対象部位Ｐｉの姿勢情報に基づいて、対象部位Ｐｉの存在領域を算出する（ステップＳ２０５）。時刻ｔにおける対象部位Ｐｉの存在領域は、諸元等格納部４３１に格納されている対象部位Ｐｉの諸元の他、対象部位Ｐｉが昇降部３１３，３２３である場合については、例えば、現在の昇降状態と目標の昇降状態との差及び昇降速度に基づいて算出され得る。なお、対象部位Ｐｉが移動を伴わない部位である支持台３０及び障害物５である場合は、時刻ｔｓから時刻ｔＬのあらゆる時刻ｔにおいて存在領域は一定であるので、上述した諸元に基づいて存在領域が算出され得る。また、対象部位Ｐｉが第１リンク部３１１，３２１及び第２リンク部３１２，３２２である場合、本実施形態では、Ｚ軸方向の移動は伴わないので、上述した諸元に基づいて存在領域が算出され得る。しかしながら、第１リンク部３１１，３２１及び第２リンク部３１２，３２２がＺ軸方向の移動を伴うような形態では、それらの現在角度と目標角度との角度差と速度パラメータとに基づいて、第１リンク部３１１，３２１及び第２リンク部３１２，３２２の存在領域が算出され得る。
【００８８】
次に、干渉可能性情報生成部４４１は、存在領域重複情報を生成する（ステップＳ２０６）。
【００８９】
図１１を参照して、存在領域重複情報の生成方法を説明する。図１１は、干渉コード生成部における存在領域重複情報の生成方法を示すフローチャートである。
【００９０】
存在領域重複情報を生成する場合、ループＬ２０を開始する。ループＬ２０では、干渉可能性情報生成部４４１は、ステップＳ２０５で算出した対象部位Ｐｉの姿勢情報に基づいて、メモリ要素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含むか否かを判定する（ステップＳ２０６ａ）。換言すれば、干渉可能性情報生成部４４１は、対象部位Ｐｉの存在領域を含む線分６１ｍを特定する。
【００９１】
メモリ要素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含む場合（ステップＳ２０６ａ：ＹＥＳ）、干渉可能性情報生成部４４１は、メモリ要素ＨＯｃｃ[ｍ]が初期値か否かを判定する（ステップＳ２０６ｂ）。メモリ要素ＨＯｃｃ[ｍ]の値が初期値でない場合（ステップＳ２０６ｂ：ＮＯ）、すなわち、既に存在領域重複情報として値が格納されておりメモリ要素ＨＯｃｃ[ｍ]の値が０ではない場合、その格納されている値（既存のメモリ要素ＨＯｃｃ[ｍ]の値）と対象部位Ｐｉの識別番号ＩＤｉとの論理和を存在領域重複情報としてメモリ要素ＨＯｃｃ[ｍ]に格納する（ステップＳ２０６ｃ）。メモリ要素ＨＯｃｃ[ｍ]の値が初期値である場合（ステップＳ２０６ｂ：ＹＥＳ）、すなわち、メモリ要素ＨＯｃｃ[ｍ]の値が０である場合、対象部位Ｐｉの識別番号ＩＤｉを存在領域重複情報としてメモリ要素ＨＯｃｃ[ｍ]に格納する（ステップＳ２０６ｄ）。
【００９２】
上記ステップ２０６ｂと、ステップＳ２０６ｃ又はステップＳ２０６ｄとで行われる処理は、メモリ要素ＨＯｃｃ[ｍ]の更新に対応する。
【００９３】
ステップ２０６ａ〜ステップ２０６ｄをｍ＝ｕになるまで、すなわち、全てのメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[ｕ]に対して繰り返す。これにより、ループＬ２０が終了する。ステップ２０６ａにおいて、メモリ素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含まない場合（ステップＳ２０６ａ：ＮＯ）、次の対象部位Ｐｉ＋１に対してステップＳ２０６ａを実施することによって、ステップＳ２０６ａ〜ステップＳ２０６ｄを繰り返す。なお、対象部位Ｐｉ＋１は、対象部位Ｐｉの次にステップＳ２０６ａを実行する対象部位を示す便宜的な記載である。以下、同様に対象部位Ｐｉ＋１という表記は、便宜的に、対象部位Ｐｉのループ処理の次にループ処理を示す対象部位Ｐｉ＋１を示すものとする。
【００９４】
図６に示したある時刻ｔにおける対象部位Ｐ１〜Ｐｈの配置状態及び第１の判定領域６の分割例において、対象部位Ｐ４に対してループＬ２０を実行した場合について存在領域重複情報の生成について具体的に説明する。
【００９５】
図６に示した配置状態では、線分６１４〜６１１０が対象部位Ｐ４の存在領域を含む。従って、ステップＳ２０６ａに対してメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[３]に対応する線分６１１〜６１３は対象部位Ｐ４の存在領域外と判定される。すなわち、ステップＳ２０６ａにおいてＮＯであるため、メモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[３]は更新されずに、単にメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[３]に対してステップＳ２０６ａが繰り返される。メモリ要素ＨＯｃｃ[４]に対してループＬ２０が実行されると、ステップＳ２０６ａでＹＥＳと判定される。そして、メモリ要素ＨＯｃｃ[４]に対応する線分６１４は対象部位Ｐ１の存在領域を含み、対象部位Ｐ２及び対象部位Ｐ３の存在領域を含まないため、メモリ要素ＨＯｃｃ[４]には、対象部位Ｐ１の識別番号ＩＤ１が存在領域重複情報として格納されている。従って、ステップＳ２０６ｂでＮＯと判定され、ステップＳ２０６ｃにおいて、識別番号ＩＤ１と対象部位Ｐ４の識別番号ＩＤ４との論理和、すなわち、ＩＤ１＋ＩＤ４がメモリ要素ＨＯｃｃ[４]に格納される。
【００９６】
同様に、メモリ要素ＨＯｃｃ[５]〜ＨＯｃｃ[１３]までループＬ２０がそれぞれ実行される。その結果、メモリ要素ＨＯｃｃ[５]及びＨＯｃｃ[６]に格納されている存在領域重複情報は識別番号ＩＤ２と識別番号ＩＤ４との論理和であり、メモリ要素ＨＯｃｃ[７]〜ＨＯｃｃ[１０]に格納される存在領域重複情報は識別番号ＩＤ３と識別番号ＩＤ４との論理和であり、メモリ要素ＨＯｃｃ[１１]〜ＨＯｃｃ[１３]には初期値としての０が格納される。
【００９７】
図６に示した場合を例にした上記ループＬ２０を含むループＬ１１が終了した時点において、メモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[１３]に格納されている情報は次の通りである。
ＨＯｃｃ[１]：ＩＤ１＋ＩＤ８
ＨＯｃｃ[２]：ＩＤ１＋ＩＤ８
ＨＯｃｃ[３]：ＩＤ１＋ＩＤ７
ＨＯｃｃ[４]：ＩＤ１＋ＩＤ４＋ＩＤ７
ＨＯｃｃ[５]：ＩＤ２＋ＩＤ４＋ＩＤ５＋ＩＤ７
ＨＯｃｃ[６]：ＩＤ２＋ＩＤ４＋ＩＤ５＋ＩＤ７
ＨＯｃｃ[７]：ＩＤ３＋ＩＤ４＋ＩＤ６＋ＩＤ７
ＨＯｃｃ[８]：ＩＤ３＋ＩＤ４＋ＩＤ６＋ＩＤ７
ＨＯｃｃ[９]：ＩＤ３＋ＩＤ４＋ＩＤ６＋ＩＤ７
ＨＯｃｃ[１０]：ＩＤ３＋ＩＤ４＋ＩＤ６
ＨＯｃｃ[１１]：０（初期値）
ＨＯｃｃ[１２]：０（初期値）
ＨＯｃｃ[１３]：０（初期値）
【００９８】
図１０に戻って、干渉判定処理について説明する。
【００９９】
ループＬ１１が終了すると、干渉可能性情報生成部４４１は、干渉コードＣＩＤｉを生成する（ステップＳ２０７）。
【０１００】
図１２を利用して干渉コードの生成方法について説明する。干渉コードＣＩＤｉは、ステップＳ２０７ａからステップＳ２０７ｄまでのループＬ３０を実行する。ループＬ３０では、干渉コードＣＩＤｉを初期化する（ステップ２０７ａ）。すなわち、干渉コード格納部４３３Ｂに格納されている干渉コードＣＩＤｉとして「０」を格納する。その後、ステップＳ２０７ｂとステップＳ２０７ｃとのループＬ３１を実行する。
【０１０１】
ループＬ３１では、メモリ要素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含むか否かを判定する（ステップＳ２０７ｂ）。メモリ要素ＨＯｃｃ[ｍ] に対応する線分６１ｍが対象部位Ｐｉの存在領域を含む場合（ステップＳ２０７ｂ：ＹＥＳ）、干渉コードＣＩＤｉを更新する（ステップＳ２０７ｃ）。すなわち、既存のＣＩＤｉとメモリ要素ＨＯｃｃ[ｍ]との論理和を新たなＣＩＤｉとする。ステップＳ２０７ｂとステップＳ２０７ｃとをｍ＝ｕになるまで繰り返す。すなわち、全てのメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[ｕ]に対して繰り返す。これにより、ループＬ３１が終了する。メモリ要素ＨＯｃｃ[ｍ] に対応する線分６１ｍが対象部位Ｐｉの存在領域を含まない場合（ステップＳ２０７ｂ：ＮＯ）、次のメモリ要素ＨＯｃｃ[ｍ＋１]のステップＳ２０７ｂの処理に移り、ループＬ３１をｍ＝ｕになるまで繰り返す。なお、メモリ要素ＨＯｃｃ[ｍ＋１]は、メモリ要素ＨＯｃｃ[ｎ]の次にステップＳ２０７ｂを実行するメモリ要素を示す便宜的な記載である。
【０１０２】
次に、干渉可能性情報生成部４４１は、ループＬ３１において生成された干渉コードＣＩＤｉに判定除外情報ＣＥｘｉを考慮して対象部位Ｐｉに対する干渉コードＣＩＤｉを得る（ステップＳ２０７ｄ）。具体的には、干渉可能性情報生成部４４１は、ループＬ３１において生成された干渉コードＣＩＤｉと判定除外情報ＣＥｘｉとの論理積を対象部位Ｐｉに対する干渉コードＣＩＤｉとする。これにより、式（１）で示される干渉コードＣＩＤｉが生成される。
【０１０３】
存在領域重複情報の生成の場合と同様に、図６に示した対象部位Ｐ１〜Ｐｈの配置状態及び第１の判定領域６の分割例において、対象部位Ｐ４に対してループＬ３０を実行した場合における存在領域重複情報の生成について具体的に説明する。
【０１０４】
図６に示した配置状態では、線分６１４〜６１１０が対象部位Ｐ４の存在領域を含む。従って、ステップＳ２０７ａにおいてメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[３]に対応する線分６１１〜６１３は対象部位Ｐ４の存在領域を含まないと判定される。すなわち、ステップＳ２０７ｂにおいてＮＯであるため、干渉コードＣＩＤ４は更新されずに、単にメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[３]に対してステップＳ２０７ｂが繰り返される。メモリ要素ＨＯｃｃ[４]に対してループＬ３１が実行されると、ステップＳ２０７ｂでＹＥＳと判定される。そして、メモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[３]に対するループＬ３１の実行では干渉コードＣＩＤ４は更新されずに初期値のままであるため、ステップＳ２０７ｃにおいて、初期値（すなわち、０）＋ＨＯｃｃ[４]を演算し、その結果を干渉コード格納部４３３Ｂに格納する。これにより、干渉コード格納部４３３Ｂ内の干渉コードＣＩＤ４が更新される。すなわち、ＣＩＤ４＝ＨＯｃｃ[４]である。
【０１０５】
次に、メモリ要素ＨＯｃｃ[５]に対してループＬ３１が実行されると、ステップＳ２０７ｂでＹＥＳと判定される。そして、ステップＳ２０７ｃにおいて、既存のＣＩＤ４とＨＯｃｃ[５]の論理和を演算し、その結果を干渉コード格納部４３３Ｂに格納する。これにより、干渉コード格納部４３３Ｂ内の干渉コードＣＩＤ４が更新される。すなわち、メモリ要素ＨＯｃｃ[５]に対してループＬ３１が実行された後の干渉コードＣＩＤ４は、ＨＯｃｃ[４]＋ＨＯｃｃ[５]である。
【０１０６】
同様にして、残りのメモリ要素ＨＯｃｃ[６]〜[１３]に対してループＬ３１が実行され、干渉コードＣＩＤ４の値は、ＨＯｃｃ[４]〜ＨＯｃｃ[１０]の論理和として取得される。
【０１０７】
その後、ステップＳ２０７ｄにおいて、ＨＯｃｃ[４]〜ＨＯｃｃ[１０]の論理和と判定除外情報ＣＥｘ４との論理積が演算されて、その結果が、最終的な対象部位Ｐ４に対する干渉コードＣＩＤ４として、干渉コード格納部４３３Ｂ内に格納される。
【０１０８】
ステップＳ２０７ａからステップＳ２０７ｄまでの処理をｉ＝ｈとなるまで、すなわち全ての干渉判定の対象部位Ｐ１〜Ｐｈについて繰り返す。これにより、ループＬ３０が終了する。
【０１０９】
図１０に戻って、干渉判定処理について説明する。
【０１１０】
干渉コードＣＩＤ１〜ＣＩＤｈを生成すると、占有領域重複情報生成部４４２が第２の判定領域７に対する第２のメモリ領域部４３４Ａを初期化する（ステップ２０８）。すなわち、第２の判定領域７を区切るマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]に初期値として０を格納する。
【０１１１】
次に、ステップ２０９からステップＳ２１１のループＬ１２を開始する。ループＬ１２では、ステップＳ２０９で、占有領域重複情報生成部４４２が、時刻ｔの対象部位Ｐｉの姿勢情報に基づいて、対象部位Ｐｉの占有領域を算出する。この算出は、ステップＳ２０５における存在領域の算出と同様の情報に基づいて行い得る。すなわち、占有領域の算出では対象部位ＰｉのＸＹ平面への投影領域を算出するので、存在領域の算出において対象部位ＰｉのＺ軸への投影領域の代わりにＸＹ平面への投影領域を算出すればよい。なお、ＸＹ平面へ対象部位Ｐｉを投影する場合には、昇降部３１３，３２３だけではなく、第１リンク部３１１，３２１及び第２リンク部３１２，３２２も現在姿勢から目標姿勢に向けて移動が伴うので、それらの現在角度と目標角度との角度差と速度パラメータとに基づいて、第１リンク部３１１，３２１及び第２リンク部３１２，３２２の占有領域（投影領域）が算出され得る。次に、占有領域重複情報生成部４４２が、占有領域重複情報を生成する（ステップＳ２１０）。図１３を参照して、占有領域重複情報の生成方法について説明する。図１３は、占有領域重複情報の生成処理を示すフローチャートである。
【０１１２】
占有領域重複情報を生成する場合、占有領域重複情報生成部４４２はループＬ４０を実行する。ループＬ４０では、ステップＳ２０９で取得した対象部位Ｐｉの姿勢情報に基づいて、メモリ要素Ｏｃｃ[ｎ]に対応するメモリ７１ｎが対象部位Ｐｉの占有領域を含むか否かを判定する（ステップＳ２１０ａ）。メモリ要素Ｏｃｃ[ｎ]に対応するマス目７１ｎが対象部位Ｐｉの占有領域を含む場合（ステップＳ２１０ａ：ＹＥＳ）、占有領域重複情報生成部４４２は、メモリ要素Ｏｃｃ[ｎ]が初期値か否かを判定する（ステップＳ２１０ｂ）。
【０１１３】
メモリ要素Ｏｃｃ[ｎ]の値が初期値でない場合（ステップＳ２１０ｂ：ＮＯ）、すなわち、既に占有領域重複情報として値が格納されている場合、占有領域重複情報生成部４４２は、その格納されている値（既存のメモリ要素Ｏｃｃ[ｎ]の値）と対象部位Ｐｉの識別番号ＩＤｉとの論理和を占有領域重複情報としてメモリ要素Ｏｃｃ[ｎ]に格納する（ステップＳ２１０ｃ）。メモリ要素Ｏｃｃ[ｎ]の値が初期値である場合（ステップＳ２１０ｂ：ＹＥＳ）、占有領域重複情報生成部４４２は、対象部位Ｐｉの識別番号ＩＤｉを占有領域重複情報としてメモリ要素Ｏｃｃ[ｎ]に格納する（ステップＳ２１０ｄ）。
【０１１４】
上記ステップ２１０ｂと、ステップＳ２１０ｃ又はステップＳ２１０ｄとで行われる処理は、メモリ要素Ｏｃｃ[ｎ]の更新に対応する。
【０１１５】
ステップＳ２１０ａ〜Ｓ２１０ｄをｎ＝ｖになるまで、すなわち、全てのメモリ要素Ｏｃｃ[１]〜Ｏｃｃ[ｖ]に対して繰り返す。これにより、ループＬ４０が終了する。ステップＳ２１０ａにおいて、メモリ要素Ｏｃｃ[ｎ]に対応するマス目７１ｎが対象部位Ｐｉの占有領域を含まない場合（ステップＳ２１０ａ：ＮＯ）、次のメモリ要素Ｏｃｃ[ｎ＋１]に対してステップＳ２１０ａを実施することによって、ステップＳ２１０ａ〜Ｓ２１０ｄを繰り返す。なお、メモリ要素Ｏｃｃ[ｎ＋１]は、メモリ要素Ｏｃｃ[ｎ]の次にステップＳ２１０ａを実行するメモリ要素を示す便宜的な記載である。
【０１１６】
図１３を利用して説明した占有領域重複情報の生成処理は、存在領域重複情報の生成における線分６１ｍ及びメモリ要素ＨＯｃｃ[ｍ]の代わりに、マス目７１ｎ及びメモリ要素Ｏｃｃ[ｎ]を使用する点以外は、同様の処理である。
【０１１７】
従って、図１４に示したようなある時刻ｔにおける対象部位Ｐ１〜Ｐｈの配置状態において、対象部位Ｐ７、すなわち、昇降部３２３の占有領域重複情報を生成すると、対象部位Ｐ７の占有領域（図１４におけるハッチング領域Ｈ１〜Ｈ５）のうち、領域Ｈ１内のマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]には、識別番号ＩＤ７が占有領域重複情報として格納される。領域Ｈ２内のマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]には、識別番号ＩＤ６と識別番号ＩＤ７の論理和が占有領域重複情報として格納される。領域Ｈ３内のマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]には、識別番号ＩＤ３と識別番号ＩＤ７の論理和が占有領域重複情報として格納される。更に、領域Ｈ４のマス目７１ｎには、識別番号ＩＤ３と識別番号ＩＤ２と識別番号ＩＤ７の論理和が占有領域重複情報として格納される。更に、領域Ｈ５のマス目７１ｎには、識別番号ＩＤ３と、識別番号ＩＤ４と識別番号ＩＤ７との論理和が占有領域重複情報として格納される。
【０１１８】
図１０に戻って、干渉判定処理について説明する。
【０１１９】
占有領域重複情報生成部４４２が、対象部位Ｐｉに対する占有領域重複情報を作成すると、判定部４４３が、対象部位Ｐｉの占有領域を含む全てのマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]、すなわち、ステップＳ２１０ｂと、ステップＳ２１０ｃ又はステップＳ２１０ｄにおいて占有領域重複情報が更新された全てのメモリ要素Ｏｃｃ[ｎ]の各々と、干渉コードＣＩＤｉとの論理積を演算する（ステップＳ２１１）。判定部４４３は、算出した論理積を判定結果格納部４３５に格納する。
【０１２０】
ステップＳ２０９からステップＳ２１１までの処理をｉ＝ｈとなるまで繰り返す。すなわち、全ての対象部位Ｐｉについて繰り返す。
【０１２１】
ループＬ１２が終了した時点で、判定部４４３は、ステップＳ２１１にて求めたそれぞれの論理積が全ての桁において０か否かを判断する（ステップＳ２１２）。具体的には、判定部４４３は、判定結果格納部４３５からステップＳ２１１にて求めたそれぞれの論理積を読み出し、その論理積が全ての桁において０か否かを判定する。ステップＳ２１２の判定にて、全ての論理積が全ての桁において０ならば（ステップＳ２１２：ＹＥＳ）、判定部４４３は「干渉なし」を表す情報を判定結果格納部４３５に記憶させる（ステップＳ２１３）。一方で、ステップＳ２１２の判定にて、何れかの論理積に全ての桁において０でないものがある場合には（ステップＳ２１２：ＮＯ）、判定部４４３は「干渉あり」を表す情報を判定結果格納部４３５に記憶させる（ステップＳ２１４）。ここでは、判定部４４３は、干渉結果を判定結果格納部４３５に記憶させるとしたが、判定結果格納部４３５を設けずに、諸元等格納部４３１に格納してもよい。これは、ステップＳ２１１における論理演算結果についても同様である。
【０１２２】
ステップＳ２１２と、ステップＳ２１３又はステップＳ２１４の処理を終了することによって、ある時刻ｔにおける対象部位Ｐ１〜Ｐｈの配置状態に対する干渉判定が終了する。
【０１２３】
ステップＳ２０４からステップＳ２１４までの処理を時間間隔Δｔ毎の姿勢について、時刻ｔが時刻ｔＬとなるまで、すなわち目標姿勢まで繰り返す。これにより、ループＬ１０が終了し、双腕ロボット３の各アーム３１，３２及び昇降部３１３，３２３が目標とする姿勢に移行するまでの全ての姿勢における干渉判定処理が終了する。
【０１２４】
ループＬ１０が終了した時点で、判定部４４３は、ステップＳ２１３又はステップＳ２１４にて判定結果格納部４３５に記憶された一定時間間隔Δｔ毎の判定結果情報から最終的な判定結果を求め、これを判定結果信号として軌道生成部１に送る。判定結果は、一定時間間隔Δｔ毎の判定結果情報の全てが干渉なしなら「干渉なし」、一つでも干渉ありがあれば「干渉あり」となる（ステップＳ２１５）。このような干渉判定処理により、双腕ロボット３のアーム３１，３２が初期の姿勢から目標とする姿勢まで動作する間の一定時間間隔毎の各姿勢について、部位同士の干渉の有無を確認することができる。
【０１２５】
なお、ここでは、ステップＳ２１２と、ステップＳ２１３又はステップＳ２１４の処理をループＬ１２の終了後に実行しているが、例えば、ループＬ１２においてステップＳ２１１の後に、ステップＳ２１２として、ステップＳ２１１で演算した論理積が０か否かを判定して、ステップＳ２１３又はステップＳ２１４を実行してもよい。
【０１２６】
以上説明した干渉判定部４及びそれを利用した干渉判定方法では、各対象部位ＰｉをＺ軸に投影した各対象部位Ｐｉの存在領域の情報に基づいて対象部位間の干渉可能性の情報を含む干渉コードを生成し、その干渉コードと、ＸＹ平面内の占有領域の情報とを利用して干渉判定を行っている。その結果、３次元的な対象部位Ｐ１〜Ｐｈの干渉（衝突を伴う立体交差）の有無を判定し得る。そして、上記のように、鉛直方向（Ｚ軸方向）における対象部位Ｐｉ同士の干渉（衝突）の可能性を１次元で評価するので、干渉判定に要する演算量を低減できる。
【０１２７】
例えば、双腕ロボットの動作範囲及び障害物を含む仮想的な立方体を干渉判定用の３次元判定領域として設定し、その３次元判定領域の一辺をｑ個に分割した各セル領域を利用して干渉判定を行う場合、ｑ３の計算量になる。
【０１２８】
これに対して、干渉判定部４及びその干渉判定部４による干渉判定方法では、比較のために、ｋ＝ｎ＝ｍ＝ｑと仮定すると、（ｑ＋ｑ２）オーダーの計算量ですむ。
【０１２９】
そのため、前述したように、干渉判定に要する演算量が低減され、結果として、干渉判定のための処理時間が短縮される。
【０１３０】
更に、対象部位Ｐｉに識別番号ＩＤｉを割り当てていることによって、存在領域情報及び占有領域重複情報を１変数で表すことが可能である。その結果、各対象部位の全ての組み合わせ、すなわち、ｈ×（ｈ−１）のオーダーで判定処理を行う必要はなく、ｈのオーダーで判定処理を行うことが可能である。また、第１の判定領域６及び第２の判定領域７をそれぞれ線分６１ｍ及びマス目７１ｎで量子化しているので、対象部位Ｐ１〜Ｐｈの姿勢等を離散的に表すことが可能である。更に、対象部位Ｐｉの存在領域の少なくとも一部を含む線分６１ｍに対応するメモリ要素ＨＯｃｃ[ｍ]に格納された存在領域重複情報を利用して干渉コードＣＩＤｉを生成しているので、対象部位Ｐｉの存在領域にわたる他の対象部位との干渉の可能性（存在領域重複情報）を一つの干渉コードＣＩＤｉとして扱い得る。
【０１３１】
（第２の実施形態）
図１５は、本発明に係る他の実施形態に係る干渉判定部の概略構成図である。干渉判定部（干渉判定装置）８は、干渉判定処理部４４の代わりに干渉判定処理部８１を備える点で、図４に示した干渉判定部４と相違する。干渉判定部８は、図１に示した双腕ロボットシステム１００において、干渉判定部４の代わりに双腕ロボットシステム１００に適用され得る部分である。よって、以下では、干渉判定処理部８１の構成及びその処理方法を中心にして説明する。
【０１３２】
干渉判定処理部８１は、干渉可能性情報生成部８１１、占有領域重複情報生成部８１２及び判定部８１３を備える。
【０１３３】
干渉可能性情報生成部８１１は、対象部位Ｐ１〜Ｐｈについて順に対象部位Ｐｉの存在領域を含む線分６１ｍを特定する。干渉可能性情報生成部８１１は、対象部位Ｐｉに対応する線分６１ｍを特定する毎に、その対象部位Ｐｉに対する干渉コードＣＩＤｉを生成する。干渉可能性情報生成部８１１は、対象部位Ｐｉの干渉コードＣＩＤｉを生成する場合、対象部位Ｐｉに対する判定除外情報ＣＥｘｉを考慮して対象部位Ｐｉの干渉コードＣＩＤｉを生成する。
【０１３４】
対象部位Ｐｉに存在領域を含む線分６１ｍを特定した後の干渉コードＣＩＤｉの生成方法は、第１の実施形態の場合と同じである。ただし、本実施形態では、対象部位Ｐ１〜Ｐｈの順に対象部位Ｐｉの干渉コードＣＩＤｉが生成されるので、ある対象部位Ｐｉに対する線分６１ｍを特定し、その線分６１ｍに対応するメモリ要素ＨＯｃｃ[ｍ]に格納されている情報は、全ての対象部位Ｐ１〜Ｐｈの存在領域の情報を反映した情報ではなくて、その対象部位Ｐｉまでに干渉コードが生成された対象部位Ｐ１〜Ｐｉ−１の存在領域の情報のみが反映された情報である。なお、対象部位Ｐｉ−１は、対象部位Ｐｉの干渉コードを生成する一つ前に干渉コードが生成された対象部位を示す表記である。
【０１３５】
従って、本実施形態において、干渉可能性情報生成部８１１で生成される干渉コードＣＩＤｉは次式によって表される。
【数２】
2013136109.tif 000004
なお、式（２）中のｍｉ及びｊは、式（１）の場合と同様であるため、説明を省略する。
【０１３６】
占有領域重複情報生成部８１２は、対象部位Ｐｉに対して干渉コードＣＩＤｉが生成される毎に、その干渉コードＣＩＤｉが生成された対象部位Ｐｉの占有領域に対応するマス目７１ｎを特定し、そのマス目７１ｎに対応する占有領域重複情報を生成する。
【０１３７】
判定部８１３は、干渉可能性情報生成部８１１が、ある対象部位Ｐｉに対して干渉コードＣＩＤｉを生成し、占有領域重複情報生成部８１２が、その干渉コードＣＩＤｉが生成された対象部位Ｐｉの占有領域を含むマス目７１ｎに対応する占有領域重複情報を更新すると、その干渉コードＣＩＤｉが生成された対象部位Ｐｉの占有領域を含むマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]と干渉コードＣＩＤｉとの論理積を演算する。判定部８１３は、その論理積の結果の何れかの桁に「１」が含まれている場合は、対象部位Ｐｉと、それまでに干渉コードを生成した他の対象部位との間に「干渉あり」と判定し、それ以外の場合は、対象部位Ｐｉとそれまでに干渉コードを生成した他の対象部位との間に「干渉なし」と判定する。
【０１３８】
そして、何れかの対象部位Ｐｉにおいて、上記論理積の結果に「１」が含まれている場合は、判定部８１３は、対象部位Ｐ１〜Ｐｈ間に「干渉あり」と判定し、それ以外の場合、すなわち、全ての対象部位Ｐ１〜Ｐｈに対して上記論理積の結果のいずれの桁も「０」である場合は、対象部位Ｐ１〜Ｐｈ間に「干渉なし」と判定する。
【０１３９】
次に、干渉判定部８による干渉判定処理について図１６を利用して説明する。図１６は、干渉判定部８による干渉判定処理を示すフローチャートである。
【０１４０】
最初に、ステップＳ３０１〜ステップＳ３０３を実行する。ステップＳ３０１からステップＳ３０３の各ステップの処理は、第１の実施形態の場合のステップＳ２０１からＳ２０３（図１０参照）の各ステップの処理と同様であるため、説明を省略する。
【０１４１】
ステップＳ３０３において、現在姿勢と目標姿勢の入力があれば、ステップＳ３０４からステップＳ３１３までのループＬ５０が開始される。ループＬ５０では、判定領域管理部４２が、第１のメモリ領域部４３３Ａを初期化する（ステップＳ３０４）。具体的には、メモリ要素ＨＯｃｃ[１]〜メモリ要素ＨＯｃｃ[ｕ]に初期値として０（ゼロ）を格納する。次いで、判定領域管理部４２が、第２のメモリ領域部４３４Ａを初期化する（ステップＳ３０５）。具体的には、メモリ要素Ｏｃｃ[１]〜メモリ要素Ｏｃｃ[ｎ]に初期値として０（ゼロ）を格納する。なお、ステップＳ３０４とステップＳ３０５と２つのステップに分けて説明しているが、これらのステップＳ３０４，３０５の処理は同じ一つのステップとして実行されてもよく、ステップＳ３０４とステップＳ３０５の順番は反対でもよい。
【０１４２】
次に、干渉判定処理部８１は、ループＬ５１を開始する。干渉判定処理部８１は、対象部位Ｐｉの姿勢を算出する（ステップＳ３０６）。ステップＳ３０６における、ある時刻ｔの対象部位Ｐｉの姿勢の算出は、対象部位Ｐｉが昇降部３１３，３２３である場合については、例えば、現在の昇降状態と目標の昇降状態との差及び昇降速度に基づいて算出され得る。なお、対象部位Ｐｉが移動を伴わない部位である支持台３０及び障害物５である場合は、時刻ｔｓから時刻ｔＬのあらゆる時刻ｔにおいて姿勢は一定であるので、諸元等格納部４３１に格納された諸元に基づいて姿勢が算出され得る。また、対象部位Ｐｉが第１リンク部３１１，３２１及び第２リンク部３１２，３２２である場合、本実施形態でも、Ｚ軸方向の移動は伴わないので、上述した諸元に基づいて姿勢が算出され得る。しかしながら、第１リンク部３１１，３２１及び第２リンク部３１２，３２２がＺ軸方向の移動を伴うような形態では、それらの現在角度と目標角度との角度差と速度パラメータとに基づいて、第１リンク部３１１，３２１及び第２リンク部３１２，３２２の姿勢が算出され得る。
【０１４３】
次に、干渉可能性情報生成部８１１は、干渉コードＣＩＤｉを生成する（ステップＳ３０７）。干渉コードＣＩＤｉの生成方法を、図１７を参照して説明する。図１７は、干渉コードの生成処理のフローチャートである。
【０１４４】
まず、干渉可能性情報生成部８１１は、干渉コードＣＩＤｉを初期化する（ステップＳ３０７ａ）。すなわち、干渉コード格納部４３３Ｂの干渉コードＣＩＤｉの値を０（ゼロ）に設定する。次に、ステップＳ３０７ｂからステップＳ３０７ｆのループＬ６０を開始する。
【０１４５】
ループＬ６０が開始されると、ループＬ６０では、ステップＳ３０６で取得した対象部位Ｐｉの姿勢情報に基づいて、メモリ要素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含むか否かを判定する（ステップＳ３０７ｂ）。
【０１４６】
メモリ要素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含む場合、干渉可能性情報生成部８１１は、メモリ要素ＨＯｃｃ[ｍ]が初期値か否かを判定する（ステップＳ３０７ｃ）。メモリ要素ＨＯｃｃ[ｍ]の値が初期値でない場合（ステップＳ３０７ｃ：ＮＯ）、すなわち、既に存在領域重複情報として値がメモリ要素ＨＯｃｃ[ｍ]に格納されている場合、その格納されている値（既存のメモリ要素ＨＯｃｃ[ｍ]の値）と対象部位Ｐｉの識別番号ＩＤｉとの論理和を存在領域重複情報としてメモリ要素ＨＯｃｃ[ｍ]に格納する（ステップＳ３０７ｄ）。メモリ要素ＨＯｃｃ[ｍ]の値が初期値である場合（ステップＳ３０７ｃ：ＹＥＳ）、対象部位Ｐｉの識別番号ＩＤｉを存在領域重複情報としてメモリ要素ＨＯｃｃ[ｍ]に格納する（ステップＳ３０７ｅ）。ステップＳ３０７ｃと、ステップＳ３０７ｄ又はステップＳ３０７ｅの処理は、メモリ要素ＨＯｃｃ[ｍ]の更新処理に対応する。
【０１４７】
ステップ３０７ｄ又はステップＳ３０７ｅを実行した後、干渉可能性情報生成部８１１は、干渉コードＣＩＤｉを更新する（ステップＳ３０７ｆ）。すなわち、既存の干渉コードＣＩＤｉとメモリ要素ＨＯｃｃ[ｍ]との論理和を新たな干渉コードＣＩＤｉとする。ステップＳ３０７ｂ〜ステップＳ３０７ｆとステップとをｍ＝ｕになるまで繰り返す。すなわち、全てのメモリ要素ＨＯｃｃ[１]〜ＨＯｃｃ[ｕ]に対して繰り返す。これにより、ループＬ６０が終了する。ステップＳ３０７ｂにおいて、メモリ要素ＨＯｃｃ[ｍ]に対応する線分６１ｍが対象部位Ｐｉの存在領域を含まない場合（ステップＳ３０７ｂ：ＮＯ）、次のメモリ要素ＨＯｃｃ[ｍ＋１]に対してステップＳ３０７ｂを実施することによって、ステップＳ３０７ｂ〜Ｓ３０７ｆを繰り返す。なお、メモリ要素ＨＯｃｃ[ｍ＋１]は、メモリ要素ＨＯｃｃ[ｍ]の次にステップＳ３０７ｂを実行するメモリ要素を示す便宜的な記載である。
【０１４８】
次に、ループＬ６０において生成された干渉コードＣＩＤｉに判定除外情報ＣＥｘｉを考慮して対象部位Ｐｉに対する干渉コードＣＩＤｉを得る（ステップＳ３０７ｇ）。具体的には、ループＬ６０において生成された干渉コードＣＩＤｉと判定除外情報ＣＥｘｉとの論理積を対象部位Ｐｉに対する干渉コードＣＩＤｉとする。干渉可能性情報生成部８１１は、ステップＳ３０７ｇにおいて算出した干渉コードＣＩＤｉを干渉コード格納部４３３Ｂに格納する。
【０１４９】
図１６に戻って、干渉判定処理について説明する。
【０１５０】
対象部位Ｐｉの干渉コードＣＩＤｉを生成すると、占有領域重複情報生成部８１２が占有領域重複情報を生成する。占有領域重複情報の生成方法は、第１の実施形態の場合と同様であるため、説明を省略する。
【０１５１】
そして、判定部４４３は、干渉コード格納部４３３Ｂから干渉コードＣＩＤｉを読み出し、占有情報を書き込んだ全てのメモリ要素Ｏｃｃ[ｎ]、すなわち、対象部位Ｐｉの占有領域を含む全てのマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]の値と、干渉コードＣＩＤｉとの論理積を求める（ステップＳ３０９）。
【０１５２】
これによって、対象部位Ｐｉと、対象部位Ｐ１〜対象部位Ｐｉ−１までの干渉判定が実質的に終了したことになる。
【０１５３】
ステップＳ３０４からステップＳ３０９までの処理をｉ＝ｈとなるまで繰り返す。すなわち、全ての対象部位Ｐｉについて繰り返す。
【０１５４】
その後、ステップＳ３１０からステップＳ３１２を実行する。これにより、ある時刻ｔにおける双腕ロボット３の姿勢に対する干渉判定が終了する。ステップＳ３１０〜ステップＳ３１２までの処理は、図１０におけるステップＳ２１２〜Ｓ２１４までの処理と同様であるため説明を省略する。ステップＳ３０４〜ステップＳ３１２までの処理を時刻ｔＳ〜時刻ｔＬまで、一定時間間隔Δｔ毎の時刻ｔに対して繰り返すことによって、ループＬ５０が終了し、双腕ロボット３の各アームが目標とする姿勢に移行するまでの全ての姿勢における干渉判定処理が終了する。
【０１５５】
ループＬ５０が終了した時点で、判定部４４３は、ステップＳ３１１又はステップＳ３１２にて判定結果格納部４３５に記憶された一定時間間隔Δｔ毎の判定結果情報から最終的な判定結果を求め、これを判定結果信号として軌道生成部１に送る（ステップＳ３１３）。判定結果は、一定時間間隔Δｔ毎の判定結果情報の全てが干渉なしなら「干渉なし」となり、一つでも干渉ありがあれば「干渉あり」となる。このような干渉判定処理により、双腕ロボット３のアーム３１，３２が初期の姿勢から目標とする姿勢まで動作する間の一定時間間隔毎の各姿勢について、部位同士の干渉の有無を確認することができる。
【０１５６】
以上説明した第２の実施形態に係る干渉判定装置及び干渉判定方法では、第１の実施形態の場合と同様に、各対象部位ＰｉをＺ軸に投影した各対象部位Ｐｉの存在領域の情報に基づいて対象部位間の干渉可能性の情報を含む干渉コードを生成し、その干渉コードと、ＸＹ平面内の占有情報とを利用して干渉判定を行っている。従って、このように、鉛直方向（Ｚ軸方向）における対象部位Ｐｉ同士の干渉（衝突）の可能性を１次元で評価するので、干渉判定に要する演算量を低減できる。
【０１５７】
更に、第２の実施形態の干渉可能性情報生成部８１１では、所定の順番で対象部位Ｐｉの干渉コードＣＩＤｉを生成している。そして、干渉コードＣＩＤｉを生成する場合には、全ての対象部位Ｐｉの存在領域を考慮して生成するのではなく、干渉コードＣＩＤｉを生成する対象部位Ｐｉより前に既に干渉コードが生成された他の対象部位Ｐ１〜対象部位ｐｉ−１の存在領域のみを考慮して干渉コードＣＩＤｉを生成している。そして、対象部位Ｐｉの干渉コードを生成すると、判定部８１３は、その干渉コードＣＩＤｉを使用して対象部位Ｐｉに対するＸＹ平面の占有情報を考慮した干渉判定を行っている。従って、干渉コードＣＩＤｉを、全ての対象部位Ｐｉの存在領域を考慮して生成する場合に比べて、効率よく生成できる。その結果、干渉判定の処理時間を短縮できる。
【０１５８】
以上、本発明の種々の実施形態について説明したが、本発明は上記実施形態に限定されない。例えば、判定除外情報ＣＥｘｉを設定して、干渉が生じ得ない干渉判定対象部位同士を特定している場合には、占有領域重複情報を生成する際、干渉判定対象部位同士の占有領域が重複していても、干渉が生じ得ない干渉判定対象部位として特定された干渉判定対象部位以外の干渉判定対象部位の識別番号のみを考慮して占有領域重複情報を生成すればよい。例えば、干渉判定対象部位Ｐ１と干渉判定対象部位Ｐ２と干渉判定対象部位Ｐ５との占有領域が重複する場合において干渉判定対象部位Ｐ５について占有領域重複情報を生成する場合、干渉判定対象部位Ｐ１と干渉判定対象部位Ｐ２とは干渉が生じないので、干渉判定対象部位Ｐ１,Ｐ２，Ｐ５の占有領域が重複している領域を含むマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]には、干渉判定対象部位Ｐ２の識別番号ＩＤ２と干渉判定対象部位Ｐ５の識別番号ＩＤ５の論理和を占有領域重複情報として格納すればよい。
【０１５９】
更に、占有領域重複情報は、着目したある干渉判定対象部位Ｐｉについて、その干渉判定対象部位Ｐｉの占有領域を含むマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]が初期値の場合はその干渉判定対象部位Ｐｉの識別番号ＩＤｉとし、メモリ要素Ｏｃｃ[ｎ]が初期値以外の場合はメモリ要素Ｏｃｃ[ｎ]の値とその干渉判定対象部位Ｐｉの識別番号ＩＤｉの論理和とした。しかしながら、判定除外情報ＣＥｘｉを設定している場合は、占有領域重複情報は、その干渉判定対象部位Ｐｉの占有領域を含むマス目７１ｎに対応するメモリ要素Ｏｃｃ[ｎ]に格納されている値、すなわち、初期値又はその干渉判定対象部位Ｐｉの識別番号ＩＤｉを加算する前の値（情報）でもよい。この場合、上記のように生成した占有領域重複情報と、判定除外情報ＣＥｘｉを考慮した干渉コードＣＩＤｉとの論理積を演算することによって、干渉判定を行えば、着目したある干渉判定対象部位Ｐｉとその干渉判定対象部位Ｐｉ自身との干渉は生じ得ないことが判定除外情報ＣＥｘｉに既に含まれているので、適切に干渉判定を行い得る。
【０１６０】
また、判定除外情報ＣＥｘｉを利用せずに、干渉判定を行っても良い。この場合、第１の実施形態における対象部位Ｐｉに対する干渉コードＣＩＤｉは、式（３）で表される。第２の実施形態における対象部位Ｐｉに対する干渉コードＣＩＤｉは式（４）で表される。
【数３】
2013136109.tif 000005
【数４】
2013136109.tif 000006
【０１６１】
更に、第１及び第２の実施形態の存在領域重複情報及び占有領域重複情報の生成において、メモリ要素ＨＯｃｃ[ｍ]及びメモリ要素Ｏｃｃ[ｎ]に初期値が含まれているかどうかの判定を行ったが、例えば、初期値として０を格納している場合には、判定せずに、単に、メモリ要素ＨＯｃｃ[ｍ]及びメモリ要素Ｏｃｃ[ｎ]に格納されている値と、そのメモリ要素ＨＯｃｃ[ｍ]及びメモリ要素Ｏｃｃ[ｎ]に対応する線分６１ｍ及びマス目７１ｎに存在領域及び占有領域がある干渉判定対象部位Ｐｉの識別番号ＩＤｉとの論理和を演算し、メモリ要素ＨＯｃｃ[ｍ]及びメモリ要素Ｏｃｃ[ｎ]に格納してもよい。
【０１６２】
更に、干渉可能性情報生成部４４１，８１１は、存在領域重複情報に基づいて干渉コードＣＩＤｉを生成し、判定部４１３，８１３は干渉コードＣＩＤｉを利用して干渉判定を行ったが、判定部４１３，８１３は、干渉コードＣＩＤｉの代わりに存在領域重複情報と、占有領域重複情報とを利用して干渉判定を行えばよい。この場合、判定部４１３，８１３は、複数の干渉判定対象部位Ｐのうち存在領域重複情報と占有領域重複情報とがいずれも重複していることを示す少なくとも２つの干渉判定対象部位が存在する場合、それらの干渉判定対象部位間に干渉が存在すると判定し、それ以外の場合は、複数の干渉判定対象部位間に干渉が存在しないと判定すればよい。特に、第２の実施形態に示したように、所定の順番で干渉判定対象部位毎に存在領域重複情報及び占有領域情報を更新して、干渉判定対象部位の存在領域及び占有領域を考慮して存在領域重複情報及び占有領域情報を更新する毎に、その干渉判定対象部位に関する干渉判定を行う場合、その干渉判定対象部位に対する存在領域重複情報においてその干渉判定対象部位と存在領域が重複する干渉判定対象部位に対して２次元平面（ＸＹ平面）の占有領域を利用した干渉判定を行えばよい。このように干渉コードＣＩＤｉを利用しない場合、干渉可能性情報生成部４４１，８１１は、干渉コードＣＩＤｉを生成しなくてもよい。
【０１６３】
更にまた、第２の実施形態では、判定部８１３は、全ての干渉判定対象部位Ｐｉに対して干渉判定を実施しているが、例えば、所定の順番である干渉判定対象部位Ｐｉに対して「干渉あり」という判定をした場合に、軌道生成部１に「干渉あり」の判定結果を送信して干渉判定処理を終了してもよい。これは、時刻ｔ毎の干渉判定においても同様である。すなわち、何れかの時刻ｔの配置状態で「干渉あり」の判定をした場合には、その時点で干渉判定を終了してもよい。
【０１６４】
第１及び第２の実施形態では、双腕ロボット３と障害物５との配置空間としての３次元空間を互いに直交するＸ軸（第１の軸）、Ｙ軸（第２の軸）及びＺ軸（第３の軸）を用いて表したが、これに限定されない。例えば、双腕ロボット３の動作方向に応じて、互いに交差する第１〜第３の軸を設定すればよい。また、Ｘ軸、Ｙ軸及びＺ軸を設定する場合においても、干渉判定対象部位Ｐ１〜Ｐｈのうち姿勢の変化する部位の動作に応じて、干渉判定部位Ｐ１〜Ｐｈを１次元の軸に投影するための第３の軸をＺ軸の代わりにＸ軸又はＹ軸に設定するようにしてもよい。そして、干渉判定部位Ｐ１〜Ｐｈの、ある第１の配置状態から第２の配置状態への変形過程と、他の第１の配置状態から第２の配置状態への変形過程とにおいて、干渉判定部位Ｐ１〜Ｐｈを１次元の軸に投影するための第３の軸を設定する軸は異なっていてもよい。例えば、干渉判定部位Ｐ１〜Ｐｈのある第１の配置状態から第２の配置状態への変形過程では、第３の軸を第１及び第２の実施形態で説明したように、Ｚ軸として干渉判定を行い、他の第１の配置状態から第２の配置状態への変形過程とでは、第３の軸をＸ軸又はＹ軸に設定して行ってもよい。
【０１６５】
更に、干渉判定対象部位Ｐ１〜Ｐｈの存在領域を、Ｚ軸（第３の軸）に設定した第１の判定領域６を複数の線分６１ｍに対応して量子化したが、例えば、干渉判定対象部位Ｐ１〜Ｐｈの存在領域を各干渉判定対象部位Ｐ１〜Ｐｈの存在領域をＺ軸における上限値及び下限値によって表してもよい。すなわち、例えば干渉判定対象部位Ｐ１のＺ軸上の存在領域の上限値と下限値とをデータとして取得し、その上限値と下限値との間のＺ軸上の領域を存在領域と見なしてもよい。この場合、他の干渉判定対象部位Ｐ２〜Ｐｈに対しても存在領域を上限値及び下限値で表現し、その存在領域の重複状態を存在領域重複情報として利用してもよい。
【０１６６】
更に、第１及び第２の実施形態の干渉判定処理方法では、Ｚ軸上の存在領域を考慮した干渉コードを生成した後に、ＸＹ平面の占有領域を考慮して占有領域重複情報を生成しているが、この順番は逆でもよい。
【０１６７】
また、第１及び第２の実施形態では、双腕ロボット３の現在姿勢から目標姿勢に移動する移動前に干渉判定を実施するとして説明したが、双腕ロボット３の現在姿勢から目標姿勢の移動過程におけるある時間間隔毎に更に行っても良い。すなわち、双腕ロボット３の現在姿勢から目標姿勢の移動過程におけるある時間間隔毎の姿勢を、新たな現在姿勢として干渉判定を行ってもよい。これにより、例えば、サーボモータ２ａ〜２ｄ等の駆動部の位相遅れなどによる干渉を回避することが可能である。
【０１６８】
第１及び第２の実施形態では、実空間において実際に存在する（実際の装置としての）双腕ロボット３の姿勢の変化を想定して干渉判定を行ったが、干渉判定装置（干渉判定部４，８）は、例えば、実際の装置として作製するためのシミュレーションとして干渉判定を行ってもよい。この場合、干渉判定装置は、シミュレーション条件として干渉判定対象部位Ｐ１〜Ｐｈの諸元及び移動条件などを入力するキーボード等の入力部と、シミュレーション結果又は干渉判定対象部位Ｐ１〜Ｐｈの配置状態の時刻毎の変化状態を表示する表示部などを更に備えてよい。第１及び第２の実施形態では、双腕ロボット３の各部位及び障害物５を干渉判定対象部位として設定したが、干渉判定装置は、例えば、ゲームにおける仮想生物及び仮想非生物との衝突（干渉）の判定や、自動車の衝突シミュレーションに適用され得る。
【０１６９】
更に、ＸＹ平面を分割するマス目７１ｎの形状は正方形に限らず、多角形であればよい。例えば、マス目７１ｎの形状は、矩形（長方形）や平行四辺形といった四角形、更には、三角形や六角形でもよい。
【０１７０】
第１及び第２の実施形態では、対象部位Ｐｉに「０」及び「１」で構成される識別番号ＩＤｉを割り当てたが、対象部位Ｐｉの識別番号ＩＤｉの構成は、対象部位Ｐ１〜Ｐｈを識別できれば、第１及び第２の実施形態で例示したものに限定されない。また、これまでの説明では、干渉判定において、干渉判定の対象となる情報（例えば、図１０のステップＳ２１１の演算結果等）の何れかの桁に「１」が含まれている場合は、「干渉あり」と判定し、それ以外の場合を「干渉なし」と判定するように、識別番号及び初期値を設定した形態を説明した。しかしながら、干渉判定を行う情報において、「干渉あり」（又は「干渉なし」）の状態が区別できれば、それらの表し方は「１」（又は「０」）に限定されない。例えば、「干渉あり」に対応する情報を「０」で表し、「干渉なし」に対応する情報を「１」であらわしてもよいし、複数の桁を利用して「干渉あり」（又は「干渉なし」）を区別してもよい。そして、対象部位に付与する識別番号やメモリ要素ＨＯｃｃ[ｍ]，Ｏｃｃ[ｎ]の初期値もそれに応じて設定すればよい。
【０１７１】
また、種々変形例を例示したが、各変形例を適宜互いに組み合わせた形態としてもよい。
【符号の説明】
【０１７２】
Ｐ１〜Ｐ８…対象部位（干渉判定対象部位）、６１１〜６１１３…線分、４，８…干渉判定部（干渉判定装置）、５…障害物（干渉判定対象部位）、６…第１の判定領域（１次元判定領域）、７…第２の判定領域（２次元判定領域）、３０…支持台（干渉判定部位）、４１…識別番号割当部、４２…判定領域管理部、７１ｎ…マス目、３１２，３２２…第２のリンク部（干渉判定部位）、３１３，３２３…昇降部（干渉判定部位）、３２１，３２２…第２のリンク部（干渉判定部位）、４２１…第１の判定領域管理部、４３３Ａ…第１のメモリ領域部、４４１…干渉可能性情報生成部（存在領域重複情報生成部）、４４２…占有領域重複情報生成部、４４３…判定部、８１１…干渉可能性情報生成部、８１２…占有領域重複情報生成部、８１３…判定部。
【図１】
2013136109.tif 000007
【図２】
2013136109.tif 000008
【図３】
2013136109.tif 000009
【図４】
2013136109.tif 000010
【図５】
2013136109.tif 000011
【図６】
2013136109.tif 000012
【図７】
2013136109.tif 000013
【図８】
2013136109.tif 000014
【図９】
2013136109.tif 000015
【図１０】
2013136109.tif 000016
【図１１】
2013136109.tif 000017
【図１２】
2013136109.tif 000018
【図１３】
2013136109.tif 000019
【図１４】
2013136109.tif 000020
【図１５】
2013136109.tif 000021
【図１６】
2013136109.tif 000022
【図１７】
2013136109.tif 000023