(57)【特許請求の範囲】
【請求項１】
コンピュータに、
シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、
生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、
特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する、
処理を実行させることを特徴とする指モデル検証プログラム。
【請求項２】
前記組み合わせを特定する処理では、
前記組み合わせの２つの面のうちの一方の面の点に前記第１指の点を配置した場合における前記第１指の点から前記第２指の点までの前記ベクトルが前記直方体を貫通する組み合わせを特定する、
ことを特徴とする請求項１に記載の指モデル検証プログラム。
【請求項３】
特定した前記面の組み合わせは前記直方体において対向する面の組み合わせであることを特徴とする請求項１または２に記載の指モデル検証プログラム。
【請求項４】
特定した前記面の組み合わせは、２つの面の間の長さが閾値よりも短いことを特徴とする請求項３に記載の指モデル検証プログラム。
【請求項５】
前記対象部品は、前記複数の部品のうち、前記シミュレーション空間において模擬した前記人体に含まれる腕の進入方向にある部品であることを特徴とする請求項１〜４のいずれか一つに記載の指モデル検証プログラム。
【請求項６】
特定した前記貫通する組み合わせが複数ある場合、
前記コンピュータに、
特定した前記貫通する組み合わせのうち、前記組み合わせについての前記ベクトルを前記組み合わせの２つの面間のベクトルまでに回転させた場合における回転量が最も小さい組み合わせを特定する、
処理を実行させることを特徴とする請求項１〜５のいずれか一つに記載の指モデル検証プログラム。
【請求項７】
コンピュータが、
シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、
生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、
特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する、
処理を実行することを特徴とする指モデル検証方法。
【請求項８】
シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指モデル検証プログラム、指モデル検証方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、人体や物体などを３次元のシミュレーション空間に再現する技術が公知である。また、シミュレーション空間において模擬された人体や物体をマウスなどの入力装置によって操作することも公知である。そのため、シミュレーション空間において人体が物体に対して行う作業を模擬可能である。例えば、物体の組立や分解などの作業手順の検証をシミュレーション空間上において行う技術が公知である。
【０００３】
また、従来、ロボットハンドによる部品の把持パターンを生成する技術が公知である（例えば、以下特許文献１，２参照。）。
【０００４】
また、従来、３次元モデルの把持処理において、把持ツールから光線あるいは弾を発射し、３次元モデルに衝突した場合に、衝突した３次元モデルを把持対象モデルとして選択する技術が公知である（例えば、以下特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２４０１０６号公報
【特許文献２】特開２００９−１７２６８５号公報
【特許文献３】特開２００１−３２５６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来、実際に腕を伸ばして部品を持つような状態をシミュレーション空間において再現させることが困難である。例えば、マウス操作によって再現させる場合、シミュレーション空間は３次元空間であるのに対してマウス操作は平面操作であるため、再現に時間がかかる。また、例えば、関節が多いと、各関節の関節値を設定する作業などに時間がかかる。
【０００７】
１つの側面では、本発明は、腕モデルに対応して対象部品を持つことを検証することができる指モデル検証プログラム、指モデル検証方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する指モデル検証プログラム、指モデル検証方法、および情報処理装置が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、腕モデルに対応して対象部品を持つことを検証することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明にかかる情報処理装置による一動作例を示す説明図である。
【図２】図２は、マウス操作による連動動作例を示す説明図である。
【図３】図３は、３Ｄ入力デバイスによる連動動作例を示す説明図である。
【図４】図４は、情報処理装置の一例を示す説明図である。
【図５】図５は、情報処理装置のハードウェア構成例を示す説明図である。
【図６】図６は、情報処理装置の機能的構成例を示すブロック図である。
【図７】図７は、物体情報例を示す説明図である。
【図８】図８は、部品例を示す説明図（その１）である。
【図９】図９は、部品例を示す説明図（その２）である。
【図１０】図１０は、腕モデル情報例を示す説明図である。
【図１１】図１１は、関節ｊ１例を示す説明図である。
【図１２】図１２は、関節ｊ２例を示す説明図である。
【図１３】図１３は、関節ｊ３例を示す説明図である。
【図１４】図１４は、関節ｊ４例を示す説明図である。
【図１５】図１５は、対象部品の選択例を示す説明図である。
【図１６】図１６は、バウンディングボックスおよび面の組み合わせ例を示す説明図である。
【図１７】図１７は、対象面の決定例を示す説明図（その１）である。
【図１８】図１８は、対象面の決定例を示す説明図（その２）である。
【図１９】図１９は、２本の指によって対象部品を持つ例を示す説明図である。
【図２０】図２０は、情報処理装置が行う処理手順例を示すフローチャートである。
【図２１】図２１は、図２０で示した対象部品の選択処理の詳細な説明を示すフローチャートである。
【図２２】図２２は、図２０で示した第１特定処理の詳細な説明を示すフローチャートである。
【図２３】図２３は、図２０で示した第２特定処理の詳細な説明を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる指モデル検証プログラム、指モデル検証方法、および情報処理装置の実施の形態を詳細に説明する。
【００１２】
図１は、本発明にかかる情報処理装置による一動作例を示す説明図である。情報処理装置１００は、物体Ｍｇに関する作業手順の検証を行うコンピュータである。また、情報処理装置１００は、３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）を実行するコンピュータである。また、情報処理装置１００は、指モデル検証プログラムを実行することによって指モデル検証方法を実現するコンピュータである。
【００１３】
ここで、シミュレーション空間１０１とは、コンピュータ上でシミュレーションされる仮想的な３次元空間である。具体的には、例えば、シミュレーション空間１０１は、３次元の物体Ｍｇの設計や物体Ｍｇに関する作業手順の検証を行うための３次元ＣＡＤによって情報処理装置１００内に仮想的に設定された空間である。シミュレーション空間１０１には、例えば、Ｘ軸とＹ軸とＺ軸とを有する３次元の直交座標系が定義される。物体Ｍｇは、例えば、製品などであり、特に限定しない。
【００１４】
従来、上述したように、人体や物体Ｍｇなどを３次元のシミュレーション空間１０１に再現することができる。また、シミュレーション空間１０１において模擬された人体や物体をマウスなどの入力装置によって操作することもできる。このため、シミュレーション空間１０１においては、人体が物体Ｍｇに対して行う作業を模擬可能である。例えば、製造業においては、人体による製品の組立や分解などの作業を模擬することができ、作業手順の検証をシミュレーション空間１０１上において行うことができる。例えば、シミュレーション空間において、腕や指と製品との干渉の有無の確認や、腕や指の稼働領域が適切に確保されているかなどの確認を行うことができる。ここで、シミュレーション空間１０１において模擬された製品、部品、人体、人体のパーツなどの各々をモデルとも称する。
【００１５】
本実施の形態では、シミュレーション空間１０１において模擬された腕と手の甲と指とを組み合わせた人体のパーツを腕ａｍとする。腕ａｍが物体Ｍｇに含まれる部品を持つ動作について、腕ａｍの進入方向や各関節の状態などの様々なパターンによって検証することは、困難である。腕ａｍの進入方向とは、腕ａｍが物体Ｍｇに含まれる部品を持つために進入する方向である。持つ動作とは、掴む動作、抓む動作、把持する動作などが挙げられる。具体的に、例えば、実際に腕を伸ばして部品を掴むときや抓むときのように、対象部品に向かう際に腕ａｍに含まれる各関節や腕ａｍの姿勢が大幅に変更されないような状態を再現するには、時間がかかるという問題点がある。本実施の形態では、腕ａｍに含まれる各関節や腕ａｍの姿勢が大幅に変更されないような状態を自然な状態とも称する。
【００１６】
例えば、マウス操作によって行う場合、マウス操作は後述する図２に示すように平面上の動きであるため、３次元のシミュレーション空間１０１において腕ａｍを部品に近づけたり、各関節を直感的に操作することは困難である。また、シミュレーション空間１０１上に動作を直接再現可能な３次元入力デバイスは存在するが、操作が複雑であったり、高価であるため、実用的でないという問題点がある。
【００１７】
本実施の形態では、情報処理装置１００は、シミュレーション空間１０１において対象部品の直方体の他部品に接触しない面の組み合わせのうち、２本の指の間のベクトルが該直方体を貫通する組み合わせを特定する。これにより、入力デバイスの単純な操作のみによって、自然な状態のままで対象部品を持つことを検証することができる。
【００１８】
まず、情報処理装置１００は、シミュレーション空間１０１において模擬した複数の部品のうちの対象部品を囲う直方体であり、対象部品の最大外形に各面が接触する直方体をシミュレーション空間１０１において生成する。図１の例では、物体Ｍｇは部品ｐａ１と部品ｐａ２とを有する。対象部品は、例えば、部品ｐａ２である。直方体は６つの面を有する。直方体は対象部品を枠取りしたものであり、直方体は対象部品を模して簡略化したものである。直方体の６つの面の各々は、対象部品の最大外形に接触する。ここで、直方体は、「バウンディングボックス」とも称する。バウンディングボックスｂｂは、面Ｓ１〜Ｓ６を有する。面Ｓ１〜Ｓ６は、それぞれ対象部品の最大外形に接触する。バウンディングボックスｂｂにおいて対向する面の組み合わせはＣ１〜Ｃ３である。具体的に、情報処理装置１００は、例えば、部品の位置や部品の形状などを特定可能な部品情報に基づいて、シミュレーション空間１０１において物体Ｍｇに含まれる複数の部品を配置することができる。
【００１９】
具体的に、情報処理装置１００は、例えば、バウンディングボックスｂｂが有する６つの面の頂点などの情報を有する直方体情報を生成する。そして、情報処理装置１００は、生成した直方体情報に基づいて、シミュレーション空間１０１にバウンディングボックスｂｂを配置する。
【００２０】
つぎに、情報処理装置１００は、バウンディングボックスｂｂの面のうち、複数の部品のうちの対象部品と異なる部品に接触する面以外の面を特定する。ここでは、面Ｓ５が部品ｐａ２と接触するため、情報処理装置１００は、面Ｓ１〜面Ｓ６のうち面Ｓ５以外の面を特定する。また、情報処理装置１００は、面Ｓ５と対向する面Ｓ２についても特定する面から除外してもよい。
【００２１】
情報処理装置１００は、特定した面の組み合わせのうち、人体に含まれる２本の指によって組み合わせの２つの面を持つ際の２本の指のうちの第１指の点から第２指の点までのベクトルが直方体を貫通する組み合わせを特定する。図１の例では、特定した面の組み合わせは、特定した面のうち対向する面の組み合わせである。また、特定した面の組み合わせは、２本の指によって持つ対象面の組み合わせ候補である。ここで、２本の指によって持つ対象面を省略して対象面とも称する。図１の例では、組み合わせ候補は、面Ｓ１と面Ｓ４との組み合わせＣ１と、面Ｓ３と面Ｓ６との組み合わせＣ３と、である。
【００２２】
２本の指は、模した人体に含まれる手の指である。第１指は、例えば、親指である。これにより、対象部品を持つ際に使用する可能性が高い指によって検証することができる。第１指の点は、例えば、親指の腹の中心点である。第２指は、例えば、人差し指である。第２指の点は、例えば、人差し指の腹の中心点である。
【００２３】
情報処理装置１００は、例えば、組み合わせ候補の一方の面の中央に、第１指の点を配置した場合の第１指の点から第２指の点までのベクトルＰを導出する。ここでは、例えば、組み合わせＣ１では一方の面が面Ｓ１であり、組み合わせＣ３では一方の面が面Ｓ３である。図１の例では、情報処理装置１００は、組み合わせＣ１の面Ｓ１に親指の点を配置した場合におけるベクトルＰを導出する。図１の例では、情報処理装置１００は、組み合わせＣ３の面Ｓ３に親指の点を配置した場合におけるベクトルＰを導出する。
【００２４】
また、一方の面は、例えば、組み合わせ候補の面のうち腕ａｍの進入方向から見た場合に見える面であってもよい。これにより、腕ａｍの向きなどを変更することなく腕ａｍによって対象部品を持つ状態を検証することができる。一方の面が見える面である場合、例えば、組み合わせＣ１では一方の面が面Ｓ１であり、組み合わせＣ３では一方の面が面Ｓ６である。
【００２５】
親指と、親指以外の指と、の２本の指によって自然な状態のままで物体Ｍｇを持つためには、親指の配置が支配的である。このため、情報処理装置１００が親指の位置を決定して対象面を決定することにより、より自然な状態のままで部品を持つことを再現することができる。
【００２６】
そして、情報処理装置１００は、組み合わせ候補のうち、導出したベクトルＰがバウンディングボックスｂｂを貫通する組み合わせを、対象面の組み合わせとして特定する。図１の例では、情報処理装置１００は、組み合わせＣ１を、対象部品を持つ２つの対象面の組み合わせとして特定する。
【００２７】
このように、バウンディングボックスｂｂによって簡単に２本の指によって対象部品を持つことが可能であるか否かを判別することができる。これにより、シミュレーション空間における現状の腕や指の状態から大きく変更せずに、対象部品を持つことが可能な面を対象面として特定することができる。したがって、より自然な状態のままで対象部品を２本の指によって持つことを検証することができる。
【００２８】
図２は、マウス操作による連動動作例を示す説明図である。例えば、利用者がマウス操作によってシミュレーション空間１０１上において腕を対象部品に移動させることにより腕が対象部品を持つ動作を再現する。しかし、マウスは平面上の動きしかできないため、腕を部品に近づける際に、決められた方向において持つ動作しか再現できない。より具体的には、対象部品と腕との相対位置をマウス操作によって変更することが可能であるが、対象部品と腕との相対姿勢を変更することが困難である。
【００２９】
また、腕や指には多くの関節があるため、各関節の関節値を操作しながら、各部品を掴むまたは抓むという動作を様々な関節値や腕の進入方向などの様々なパターンにおいて検証するには時間がかかるという問題点がある。
【００３０】
図３は、３Ｄ入力デバイスによる連動動作例を示す説明図である。３Ｄ（Ｄｉｍｅｎｓｉｏｎａｌ）入力デバイスは、３次元のシミュレーション空間１０１において模擬された物体や人体の位置や姿勢を検出可能である。
【００３１】
図４は、情報処理装置の一例を示す説明図である。本実施の形態では、利用者は、ディスプレイに表示されるシミュレーション空間１０１に模擬された腕ａｍを３Ｄ入力デバイスにより操作することにより、シミュレーション空間１０１に模擬された物体Ｍｇに対する腕ａｍによる作業を検証する。
【００３２】
（情報処理装置１００のハードウェア構成例）
図５は、情報処理装置のハードウェア構成例を示す説明図である。情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３と、を有する。情報処理装置１００は、ディスクドライブ５０４と、ディスク５０５と、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）５０６と、キーボード５０７と、マウス５０８と、ディスプレイ５０９と、３Ｄ入力デバイス５１１と、を有する。また、ＣＰＵ５０１と、ＲＯＭ５０２と、ＲＡＭ５０３と、ディスクドライブ５０４と、Ｉ／Ｆ５０６と、キーボード５０７と、マウス５０８と、ディスプレイ５０９とは、バス５００によってそれぞれ接続される。
【００３３】
ここで、ＣＰＵ５０１は、情報処理装置１００の全体の制御を司る。ＲＯＭ５０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ５０３は、ＣＰＵ５０１のワークエリアとして使用される。ディスクドライブ５０４は、ＣＰＵ５０１の制御にしたがってディスク５０５に対するデータのリード／ライトを制御する。ディスク５０５は、ディスクドライブ５０４の制御で書き込まれたデータを記憶する。ディスク５０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００３４】
Ｉ／Ｆ５０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク５１０に接続され、このネットワーク５１０を介して他の装置に接続される。そして、Ｉ／Ｆ５０６は、ネットワーク５１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ５０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３５】
キーボード５０７やマウス５０８は、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ５０９は、ＣＰＵ５０１の指示により、データを出力するインターフェースである。
【００３６】
また、３Ｄ入力デバイス５１１は、利用者の操作により、各種データの入力を行うインターフェースである。３Ｄ入力デバイス５１１の操作とシミュレーション空間１０１における腕ａｍの位置および姿勢との連動設定が行われる。これにより、図３に示したように、利用者の操作による３Ｄ入力デバイス５１１の向きの変更に応じて腕ａｍの位置や姿勢を変更することが可能となる。
【００３７】
また、図示を省略するが、情報処理装置１００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、情報処理装置１００には、プリンタなどの出力装置が設けられていてもよい。
【００３８】
また、本実施の形態では、情報処理装置１００のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。情報処理装置１００がサーバである場合、情報処理装置１００と利用者の操作可能な装置やディスプレイ５０９などがネットワーク５１０を介して接続されてもよい。
【００３９】
（情報処理装置１００の機能的構成例）
図６は、情報処理装置の機能的構成例を示すブロック図である。情報処理装置１００は、入力受付部６０１と、選択部６０２と、生成部６０３と、第１特定部６０４と、第２特定部６０５と、設定部６０６と、表示部６０７と、記憶部６１０と、を有する。入力受付部６０１から表示部６０７までの制御部の処理は、例えば、図５に示すＣＰＵ５０１がアクセス可能なＲＯＭ５０２、ＲＡＭ５０３、ディスク５０５などの記憶部６１０に記憶されたプログラムにコーディングされる。そして、ＣＰＵ５０１が記憶部６１０から該プログラムを読み出して、プログラムにコーディングされた処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＡＭ５０３、ＲＯＭ５０２、ディスク５０５などの記憶部６１０に記憶される。また、制御部は、ネットワーク５１０を介して取得した情報を記憶部６１０に記憶してもよい。また、情報処理装置１００は、３次元ＣＡＤを実行する。
【００４０】
記憶部６１０は、例えば、物体情報６１１と、腕モデル情報６１２と、を記憶する。物体情報６１１は、シミュレーション空間１０１に模擬される物体Ｍｇに含まれる複数の部品の各々に関する情報である。物体情報６１１の簡単な例は、図７〜図９に示す。腕モデル情報６１２は、シミュレーション空間１０１に模擬される腕ａｍの姿勢や位置、腕が有する各関節に関する情報である。腕モデル情報６１２と関節との簡単な例は、図１０〜図１４に示す。
【００４１】
図７は、物体情報例を示す説明図である。物体情報６１１は、例えば、シミュレーション空間１０１に配置される物体Ｍｇに含まれる複数の部品の各々についての位置と寸法とを含む。
【００４２】
物体情報６１１は、例えば、部品、最小値、寸法のフィールドを有する。各フィールドに情報が設定されることにより部品情報（例えば、７０１−１，７０１−２など）が記憶される。
【００４３】
部品のフィールドには、部品を一意に特定可能な識別情報が設定される。最小値のフィールドには、シミュレーション空間１０１における部品の位置であり、各軸における最小の座標値が設定される。寸法のフィールドには、最小値から各座標軸の正の方向を基準とした距離が設定される。
【００４４】
図８および図９は、部品例を示す説明図である。図８および図９に示す通り、シミュレーション空間１０１上に模擬される物体Ｍｇは、部品ｐ１と部品ｐ２とを有する。
【００４５】
図８に示す部品ｐ１は、例えば、図７に示す部品情報７０１−１によれば、最小値がＸ，Ｙ，Ｚの順に「−２０４」，「９．６」，「−１４３」である。図８に示す部品ｐ１は、例えば、図７に示す部品情報７０１−１によれば、寸法がＸ，Ｙ，Ｚの方向の順に、「４０８」，「３．１」，「５０８」である。寸法の単位は［ｍｍ］である。
【００４６】
図９に示す部品ｐ２は、例えば、図７に示す部品情報７０１−２によれば、最小値がＸ，Ｙ，Ｚの順に「−１５．０」，「９．６」，「−３０３．０」である。図９に示す部品ｐ２は、例えば、図７に示す部品情報７０１−２によれば、寸法がＸ，Ｙ，Ｚの順に「１５．５」，「５１．７」，「２３．０」である。
【００４７】
図１０は、腕モデル情報例を示す説明図である。腕モデル情報６１２は、例えば、腕、姿勢、位置、関節、関節値の最小値、関節値の最大値、関節値の設定値などのフィールドを有する。各フィールドに情報が設定されることにより、関節情報（１００１−１など）として記憶される。腕、位置、姿勢のフィールドに設定される値は関節情報１００１間において共通である。また、図示省略するが、腕モデル情報６１２は、腕ａｍの各サイズに関する情報を有する。腕ａｍのモデルのサイズは、例えば、成人の腕ａｍの平均値などによって定められる。
【００４８】
腕ａｍのフィールドには、腕ａｍを一意に特定可能な識別情報が設定される。姿勢のフィールドには、シミュレーション空間１０１に定義されたＸ，Ｙ，Ｚ軸に対して腕ａｍのモデルに定義されたＸ，Ｙ，Ｚ軸の回転度が設置される。姿勢に設定される値の単位は、［度］である。位置のフィールドには、シミュレーション空間１０１に定義されたＸ，Ｙ，Ｚ軸における腕ａｍのひじなどの重心の位置を示す座標値が設定される。シミュレーション空間１０１に定義された座標系は、グローバル座標系であり、腕ａｍのモデルに定義された座標系は、ローカル座標系である。３Ｄ入力デバイス５１１などによって位置や姿勢の変更が入力されると、姿勢や位置のフィールドの値が変更される。
【００４９】
関節のフィールドには、関節を一意に特定可能な識別情報が設定される。最小値のフィールドには、関節値の最小値が設定される。関節値の単位は［度］である。最大値のフィールドには、関節値の最大値が設定される。設定値のフィールドには、表示される腕ａｍモデルの関節値が設定される。
【００５０】
図１１は、関節ｊ１例を示す説明図である。図１１に示す関節ｊ１は人差し指の第３関節である。図１１の左側には、関節ｊ１の関節値が最小値の例を示し、図１１の右側には、関節ｊ１の関節値が最大値の例を示す。図１０に示す関節情報１００１−１によれば、関節ｊ１の関節値の最小値は「０」であり、関節ｊ１の関節値の最大値は「６０」である。
【００５１】
図１２は、関節ｊ２例を示す説明図である。図１２に示す関節ｊ２は人差し指の第２関節である。図１２の左側には、関節ｊ２の関節値が最小値の例を示し、図１２の右側には、関節ｊ２の関節値が最大値の例を示す。図１０に示す関節情報１００１−２によれば、関節ｊ２の関節値の最小値は「０」であり、関節ｊ２の関節値の最大値は「９０」である。
【００５２】
図１３は、関節ｊ３例を示す説明図である。図１３に示す関節ｊ３は人差し指の第１関節である。図１３の左側には、関節ｊ３の関節値が最小値の例を示し、図１３の右側には、関節ｊ３の関節値が最大値の例を示す。図１０に示す関節情報１００１−３によれば、関節ｊ３の関節値の最小値は「０」であり、関節ｊ３の関節値の最大値は「９０」である。
【００５３】
図１４は、関節ｊ４例を示す説明図である。図１４に示す関節ｊ４は親指の第２関節である。図１４の左側には、関節ｊ４の関節値が最小値の例を示し、図１４の右側には、関節ｊ４の関節値が最大値の例を示す。図１０に示す関節情報１００１−４によれば、関節ｊ４の関節値の最小値は「０」であり、関節ｊ４の関節値の最大値は「９０」である。
【００５４】
入力受付部６０１は、例えば、３Ｄ入力デバイス５１１の操作による入力を受け付ける。これにより、入力受付部６０１は、例えば、シミュレーション空間１０１において模擬された腕ａｍの姿勢の変更、腕ａｍに含まれる指の各関節の関節値の変更、腕ａｍの位置の変更を受け付ける。
【００５５】
設定部６０６は、入力受付部６０１によって受け付けられた姿勢や位置の変更入力に応じて腕モデル情報６１２を変更する。
【００５６】
まず、選択部６０２は、シミュレーション空間１０１において腕ａｍが持つ対象部品を選択する。より具体的に、選択部６０２は、例えば、シミュレーション空間１０１において模擬された複数の部品のうち、シミュレーション空間１０１において模擬された腕ａｍの進入方向にある部品のうち腕ａｍから最も近くにある部品を対象部品として選択する。
【００５７】
図１５は、対象部品の選択例を示す説明図である。図１５の例では、模擬される人体は腕ａｍから指先までの部位である。
【００５８】
選択部６０２は、物体Ｍｇに含まれる部品ｐ１と部品ｐ２とのうち、腕ａｍの進入方向にある部品ｐ２を腕ａｍが持つ対象部品として選択する。
【００５９】
つぎに、図６に示す生成部６０３は、シミュレーション空間１０１においてバウンディングボックスｂｂを生成する。バウンディングボックスｂｂは、シミュレーション空間１０１において模擬した複数の部品のうちの持つ対象部品を囲う直方体であって、対象部品の最大外形と各面が接触する直方体である。具体的に、生成部６０３は、例えば、物体情報６１１に含まれる対象部品についての部品情報７０１に含まれる各座標軸の最小値と寸法とによって、各面が対象部品の最大外形に接触するバウンディングボックスｂｂを生成することができる。
【００６０】
そして、生成部６０３は、例えば、最大外形に接触する各面を有するバウンディングボックスｂｂを示す直方体情報を生成する。直方体情報は、例えば、バウンディングボックスｂｂが有する面の各々についての頂点の座標値を有する情報であってもよい。情報処理装置１００は、３次元ＣＡＤを実行しているため、３次元ＣＡＤによって直方体情報を読み込むことによりシミュレーション空間１０１において直方体情報が示すバウンディングボックスｂｂを生成することができる。
【００６１】
つぎに、第１特定部６０４は、生成したバウンディングボックスｂｂの面のうち、複数の部品のうちの対象部品と異なる部品に接触する面以外の面を特定する。対象部品と異なる部品に接触する面とは、例えば、異なる部品に一部が接触する面であってもよい。一部が接触する面とは、例えば、所定割合以上接触する面であってもよい。所定割合は、例えば、模擬した指の面積や部品のサイズなどに基づいて定められてもよいし、利用者によって定められてもよい。
【００６２】
図１６は、バウンディングボックスおよび面の組み合わせ例を示す説明図である。面Ｓ３が対象部品と異なる部品ｐ１と接触するため、第１特定部６０４は、面Ｓ３以外の面を特定する。
【００６３】
また、バウンディングボックスｂｂの面の組み合わせのうち、少なくとも一方の面が他の部品に接触する組み合わせ以外の組み合わせを、対象面の組み合わせ候補として特定する。これにより、他の部品との位置関係により持つことができない面の組み合わせを除外することができ、より自然に２本の指によって部品を持つ状態を再現することが可能となる。
【００６４】
面の組み合わせは、例えば、１５通りである。隣り合う２つの面であっても部品の材質や形状によっては、２本の指によって自然な状態で持つことが可能である。上述したように面Ｓ３が対象部品と異なる部品ｐ１と接触するため、第１特定部６０４は、面Ｓ３を含む組み合わせ以外の組み合わせを組み合わせ候補として特定する。ここでは、第１特定部６０４は、例えば、組み合わせ候補として、１０通りの組み合わせを特定する。
【００６５】
また、第１特定部６０４は、例えば、バウンディングボックスｂｂの対向する面の組み合わせのうち、一方の面が他の部品に接触する組み合わせ以外の組み合わせを、対象面の組み合わせ候補として特定する。例えば、対象部品が重い場合や対象部品の材質が滑り易い場合であっても、面の組み合わせが対向する２つの面であれば、隣り合う面の組み合わせと比較して正確に持つことができる可能性が高い。そのため、第１特定部６０４が、面の組み合わせを対向する面の組み合わせに限定して組み合わせ候補を特定することによって、少ない組み合わせ候補から２つの対象面を特定でき、処理の高速化を図ることができる。
【００６６】
図１６の例では、対向する面の組み合わせはＣ１〜Ｃ３まである。組み合わせＣ３については、面Ｓ３が対象部品と異なる部品ｐ１と接触するため、第１特定部６０４は、組み合わせＣ３を組み合わせ候補から除外する。そのため、組み合わせＣ１と組み合わせＣ２とが組み合わせ候補となる。
【００６７】
また、対向する面の組み合わせに限定するか否かについては、物体Ｍｇのサイズ、想定する物体Ｍｇの材質や重さなどに応じて利用者が選択可能としてもよい。図１６以降では、組み合わせ候補を対向する面の組み合わせに限定した例を用いて説明する。
【００６８】
また、第１特定部６０４は、特定した組み合わせ候補のうち、組み合わせ候補の２つの面間の距離が閾値以上である組み合わせ候補を除外する。閾値は、例えば、２本の指を広げた場合の２本の指の指先間の長さに基づいて設定された値である。これにより、面間が長いことによって持つことが困難な面の組み合わせを除外することができ、より自然な状態によって持つことを再現することが可能となる。図１６の例では、閾値以上である組み合わせ候補はない。
【００６９】
つぎに、図６に示す第２特定部６０５は、特定した面の組み合わせ候補のうち２本の指によって組み合わせ候補の面を持つ際の２本の指のうちの第１指の点から第２指の点までのベクトルが直方体を貫通する組み合わせ候補を特定する。２本の指は、シミュレーション空間１０１において模擬された人体に含まれる。
【００７０】
図１７は、対象面の決定例を示す説明図（その１）である。第２特定部６０５は、組み合わせ候補の各々について、一方の面の中央点に第１指の点を配置した場合に第１指の点から第２指の点までのベクトルを算出する。より具体的に、第２特定部６０５は、例えば、一方の面の中央に第１指の点を配置する。また、一方の面は、例えば、組み合わせ候補の２つの面のうち、腕ａｍの進入方向から見た場合に見える面である。両方見える場合、第２特定部６０５は、各面について第１指の点を配置した場合についてベクトルＰを導出してもよい。
【００７１】
そして、第２特定部６０５は、組み合わせ候補のうち、算出したベクトルＰがバウンディングボックスｂｂを貫通する組み合わせ候補を特定する。また、第１指は、例えば親指であり、第２指は、例えば人差し指である。これにより、より自然な状態によって２本の指が対象部品を持つことを想定することが可能である。
【００７２】
図１７（ａ）の例では、組み合わせＣ１の一方の面に親指の点を配置した場合におけるベクトルＰを示す。このベクトルＰはバウンディングボックスｂｂを貫通しない。図１７（ｂ）の例では、組み合わせＣ２の一方の面に親指の点を配置した場合におけるベクトルＰを示す。このベクトルＰはバウンディングボックスｂｂを貫通する。このため、図１７の例では、第２特定部６０５は、組み合わせＣ２の２つの面を、２本の指によって持つ対象面として特定する。
【００７３】
図１８は、対象面の決定例を示す説明図（その２）である。図１８の例では、いずれの組み合わせ候補についてのベクトルＰはバウンディングボックスｂｂを貫通する。このような場合、第２特定部６０５は、組み合わせ候補の各々について、親指の点から人差し指の点までのベクトルＰを、親指が配置された一方の面の中央点と他方の面の中央点とを結ぶベクトルに回転させた場合の回転量を算出する。回転量は、例えば、当該ベクトルとベクトルＰとの間のなす角の角度である。回転量は、例えば、回転行列によって算出することが可能であり、回転行列に含まれるθである。そして、第２特定部６０５は、組み合わせ候補のうち、回転量が小さい組み合わせ候補を対象面の組み合わせとして特定する。図１８に示すように、回転量が多いと、腕ａｍの姿勢を変更する量が多くなるため、自然な状態でなくなる。そのため、第２特定部６０５は、回転量が小さい組み合わせ候補が２本の指によって持つ対象面の組み合わせとして特定されることにより、より自然な状態において対象部品を持つことを再現することができる。
【００７４】
設定部６０６は、対象面の組み合わせの一方の面のうち対象部品と接触する位置に親指の位置を設定した場合に、対象面の組み合わせの他方の面のうち対象部品と接触する位置が人差し指の位置となるように各関節値を算出して腕モデル情報６１２に設定する。関節値の算出方法については、特に限定しない。
【００７５】
図１９は、２本の指によって対象部品を持つ例を示す説明図である。表示部６０７は、設定部６０６による設定後の腕モデル情報６１２に基づいて、シミュレーション空間１０１において腕ａｍに含まれる親指と人差し指とによって対象部品を持った状態を表示する。
【００７６】
これにより、利用者は、持った状態を確認することができる。また、隣り合う２面の組み合わせを組み合わせ候補に含め、隣り合う２面の組み合わせが対象面として特定された場合などに、利用者が、持った状態を確認し、持った状態を変更したい場合に対向する面の組み合わせに限定して再度処理を行ってもよい。
【００７７】
（情報処理装置１００が行う処理手順例）
図２０は、情報処理装置が行う処理手順例を示すフローチャートである。まず、情報処理装置１００は、３Ｄ入力デバイス５１１による操作と、シミュレーション空間１０１における腕ａｍのモデルの位置および姿勢と、の連動を設定する（ステップＳ２００１）。つぎに、情報処理装置１００は、腕ａｍのモデルの位置と姿勢の変更を受け付ける（ステップＳ２００２）。ステップＳ２００２において、情報処理装置１００は、例えば、位置と姿勢とのうちの少なくともいずれか一方の変更を受け付ける。
【００７８】
そして、情報処理装置１００は、２本の指によって持つ対象部品の選択処理を行う（ステップＳ２００３）。情報処理装置１００は、対象部品があるか否かを判断する（ステップＳ２００４）。対象部品がないと判断された場合（ステップＳ２００４：Ｎｏ）、情報処理装置１００は、ステップＳ２００２へ戻る。
【００７９】
一方、対象部品があると判断された場合（ステップＳ２００４：Ｙｅｓ）、情報処理装置１００は、対象面の組み合わせ候補の第１特定処理を行う（ステップＳ２００５）。つぎに、情報処理装置１００は、組み合わせ候補があるか否かを判断する（ステップＳ２００６）。
【００８０】
組み合わせ候補がないと判断された場合（ステップＳ２００６：Ｎｏ）、情報処理装置１００は、ステップＳ２００２へ戻る。組み合わせ候補があると判断された場合（ステップＳ２００６：Ｙｅｓ）、情報処理装置１００は、対象面の組み合わせの第２特定処理を行う（ステップＳ２００７）。
【００８１】
つぎに、情報処理装置１００は、対象面の組み合わせがあるか否かを判断する（ステップＳ２００８）。組み合わせがないと判断された場合（ステップＳ２００８：Ｎｏ）、情報処理装置１００は、ステップＳ２００２へ戻る。一方、組み合わせがあると判断された場合（ステップＳ２００８：Ｙｅｓ）、情報処理装置１００は、特定した組み合わせに基づき、２本の指で対象部品を持つ状態に変更する処理を実行し（ステップＳ２００９）、一連の処理を終了する。持つ状態に変更する処理とは、情報処理装置１００が、特定した対象面の組み合わせに基づいて各関節値を導出して腕モデル情報６１２に設定することにより対象部品を持つ状態に変更することである。
【００８２】
図２１は、図２０で示した対象部品の選択処理の詳細な説明を示すフローチャートである。情報処理装置１００は、シミュレーション空間１０１において腕ａｍの進入方向と交差する部品を探索する（ステップＳ２１０１）。
【００８３】
つぎに、情報処理装置１００は、交差部品があるか否かを判断する（ステップＳ２１０２）。交差部品がないと判断された場合（ステップＳ２１０２：Ｎｏ）、情報処理装置１００は、一連の処理を終了する。交差部品があると判断された場合（ステップＳ２１０２：Ｙｅｓ）、情報処理装置１００は、交差部品のうち、腕ａｍの位置から最も手前にある部品を持つ対象部品とし（ステップＳ２１０３）、一連の処理を終了する。情報処理装置１００は、交差部品が１つしかない場合、ステップＳ２１０３を行わずに、交差部品を対象部品としてもよい。
【００８４】
図２２は、図２０で示した第１特定処理の詳細な説明を示すフローチャートである。情報処理装置１００は、対象部品を囲い、対象部品の最大外形に各面が接触するバウンディングボックスｂｂをシミュレーション空間１０１に生成する（ステップＳ２２０１）。ステップＳ２２０１において、バウンディングボックスｂｂをシミュレーション空間１０１に生成するとは、バウンディングボックスｂｂを示す直方体情報を生成することである。
【００８５】
情報処理装置１００は、バウンディングボックスｂｂが有する各面のうちの対向する２つの面の組み合わせを、持つ２つの面の組み合わせ候補とする（ステップＳ２２０２）。情報処理装置１００は、組み合わせ候補の中で、他の部品と接触する面の組み合わせを組み合わせ候補から除外する（ステップＳ２２０３）。そして、情報処理装置１００は、組み合わせ候補があるか否かを判断する（ステップＳ２２０４）。組み合わせ候補がないと判断された場合（ステップＳ２２０４：Ｎｏ）、情報処理装置１００は、一連の処理を終了する。
【００８６】
組み合わせ候補があると判断された場合（ステップＳ２２０４：Ｙｅｓ）、情報処理装置１００は、組み合わせ候補の中で、組み合わせの２つの面間の距離が閾値以上の組み合わせを組み合わせ候補から除外し（ステップＳ２２０５）、一連の処理を終了する。
【００８７】
図２３は、図２０で示した第２特定処理の詳細な説明を示すフローチャートである。情報処理装置１００は、組み合わせ候補の各面のうち、腕ａｍの進入方向から見た場合に見える面を抽出する（ステップＳ２３０１）。また、ステップＳ２３０１において、情報処理装置１００が抽出する面は、利用者がディスプレイ５０９から見た場合に見える面であってもよい。
【００８８】
情報処理装置１００は、抽出した面のうち、未選択な面があるか否かを判断する（ステップＳ２３０２）。未選択な面があると判断された場合（ステップＳ２３０２：Ｙｅｓ）、情報処理装置１００は、抽出した面のうち未選択な面からいずれかの面を選択する（ステップＳ２３０３）。情報処理装置１００は、選択した面の中央に親指の点が配置されるように腕ａｍおよび指の位置を変更する（ステップＳ２３０４）。
【００８９】
つぎに、情報処理装置１００は、親指の点から人差し指の点までのベクトルＰを算出する（ステップＳ２３０５）。情報処理装置１００は、算出したベクトルＰがバウンディングボックスｂｂを貫通するか否かを判断する（ステップＳ２３０６）。貫通すると判断された場合（ステップＳ２３０６：Ｙｅｓ）、情報処理装置１００は、ステップＳ２３０２へ戻る。
【００９０】
貫通しないと判断された場合（ステップＳ２３０６：Ｎｏ）、情報処理装置１００は、選択した面を含む組み合わせを持つ対象面の組み合わせ候補から除外し（ステップＳ２３０７）、ステップＳ２３０２へ戻る。
【００９１】
一方、ステップＳ２３０２において、未選択な面がないと判断された場合（ステップＳ２３０２：Ｎｏ）、情報処理装置１００は、対象面の組み合わせ候補があるか否かを判断する（ステップＳ２３０８）。組み合わせ候補がないと判断された場合（ステップＳ２３０８：Ｎｏ）、情報処理装置１００は、一連の処理を終了する。
【００９２】
組み合わせ候補があると判断された場合（ステップＳ２３０８：Ｙｅｓ）、情報処理装置１００は、組み合わせ候補が複数あるか否かを判断する（ステップＳ２３０９）。組み合わせ候補が複数ないと判断された場合（ステップＳ２３０９：Ｎｏ）、情報処理装置１００は、ステップＳ２３１２へ移行する。
【００９３】
組み合わせ候補が複数あると判断された場合（ステップＳ２３０９：Ｙｅｓ）、情報処理装置１００は、組み合わせ候補の各々について、ベクトルＰを組み合わせ候補の２つの面間のベクトルに回転させた場合の回転量を算出する（ステップＳ２３１０）。つぎに、情報処理装置１００は、回転量が最も小さい組み合わせ候補を特定する（ステップＳ２３１１）。
【００９４】
そして、情報処理装置１００は、組み合わせ候補を、対象面の組み合わせに決定し（ステップＳ２３１２）、一連の処理を終了する。
【００９５】
以上説明したように、情報処理装置１００は、シミュレーション空間１０１において２本の指で持つ対象部品の直方体の他部品に接触しない面の組み合わせのうち、２本の指の間のベクトルが直方体を貫通する組み合わせを対象面として特定する。これにより、腕モデルに応じて部品を持つことを検証することができる。
【００９６】
また、情報処理装置１００は、組み合わせの２つの面のうちの一方の面の点に第１指の点を配置した場合における第１指の点から第２指の点までのベクトルが直方体を貫通する組み合わせを特定する。これにより、２本の指によって対象部品を持つ際の自然な状態における持ち方を、直方体を用いて簡単に検証することができる。
【００９７】
また、第１指は親指である。対象部品を持つ際に親指は使用する可能性が高い指である。そして、２本の指によって部品を抓む場合には、親指の配置が支配的である。そのため、親指を配置した場合において自然な状態によって対象部品を持つことができるかを検証することができる。
【００９８】
また、一方の面は、組み合わせの２つの面のうち人体に含まれる腕の進入方向から対象部品を見た場合に見える面である。これにより、より自然な状態によって対象部品を抓むことの検証を行うことができる。
【００９９】
また、情報処理装置１００は、特定した面の組み合わせは直方体において対向する面の組み合わせである。対象部品を２本の指によって抓む場合に、隣り合う２つの面と比較して対向する面の組み合わせの方が抓み易い可能性が高い。そのため、対向する面の組み合わせに限定することにより、対象部品を２本の指で抓む場合を想定した検証を、高速に行うことができる。
【０１００】
また、対象部品は、複数の部品のうち、シミュレーション空間１０１において模擬した人体が有する腕の進入方向にある部品である。これにより、腕の姿勢を変更せずにより自然な状態において部品を持つことを再現することができる。
【０１０１】
また、持つ２つの面間の距離は、閾値より小さい。これにより、腕モデルが持つことができない面を持つ対象の面から除外することができる。
【０１０２】
また、ベクトルが直方体を貫通する組み合わせが複数ある場合、情報処理装置１００は、組み合わせの２つの面間のベクトルと、第１指の点から第２指の点までのベクトルと、の回転量が小さい組み合わせを持つ対象の面として特定する。これにより、より自然な状態において部品を持つことを再現することができる。
【０１０３】
なお、本実施の形態で説明した指モデル検証方法は、予め用意された指モデル検証プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。指モデル検証プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、指モデル検証プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１０４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０５】
（付記１）コンピュータに、
シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、
生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、
特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する、
処理を実行させることを特徴とする指モデル検証プログラム。
【０１０６】
（付記２）前記組み合わせを特定する処理では、
前記組み合わせの２つの面のうちの一方の面の点に前記第１指の点を配置した場合における前記第１指の点から前記第２指の点までの前記ベクトルが前記直方体を貫通する組み合わせを特定する、
ことを特徴とする付記１に記載の指モデル検証プログラム。
【０１０７】
（付記３）前記第１指が親指であることを特徴とする付記２に記載の指モデル検証プログラム。
【０１０８】
（付記４）前記一方の面は、前記組み合わせの２つの面のうち前記人体に含まれる腕の進入方向から前記対象部品を見た場合に見える面であることを特徴とする付記２または３に記載の指モデル検証プログラム。
【０１０９】
（付記５）特定した前記面の組み合わせは前記直方体において対向する面の組み合わせであることを特徴とする付記１〜４のいずれか一つに記載の指モデル検証プログラム。
【０１１０】
（付記６）特定した前記面の組み合わせは、２つの面の間の長さが閾値よりも短いことを特徴とする付記５に記載の指モデル検証プログラム。
【０１１１】
（付記７）前記対象部品は、前記複数の部品のうち、前記シミュレーション空間において模擬した前記人体に含まれる腕の進入方向にある部品であることを特徴とする付記１〜６のいずれか一つに記載の指モデル検証プログラム。
【０１１２】
（付記８）特定した前記貫通する組み合わせが複数ある場合、
前記コンピュータに、
特定した前記貫通する組み合わせのうち、前記組み合わせについての前記ベクトルを前記組み合わせの２つの面間のベクトルまでに回転させた場合における回転量が最も小さい組み合わせを特定する、
処理を実行させることを特徴とする付記１〜７のいずれか一つに記載の指モデル検証プログラム。
【０１１３】
（付記９）コンピュータが、
シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、
生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、
特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する、
処理を実行することを特徴とする指モデル検証方法。
【０１１４】
（付記１０）シミュレーション空間において模擬した複数の部品のうちの、前記シミュレーション空間において模擬した人体が持つ対象部品を囲う直方体であり、前記対象部品の最大外形に接触する各面を有する直方体を前記シミュレーション空間において生成し、生成した前記直方体が有する前記各面のうち、前記複数の部品のうちの前記対象部品と異なる部品に、接触する面以外の面を特定し、特定した前記面の組み合わせのうち、前記人体に含まれる２本の指によって前記組み合わせの２つの面を持つ際の前記２本の指のうちの第１指の点から第２指の点までのベクトルが前記直方体を貫通する組み合わせを特定する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１１５】
１００  情報処理装置
１０１  シミュレーション空間
６０１  入力受付部
６０２  選択部
６０３  生成部
６０４  第１特定部
６０５  第２特定部
６０６  設定部
６０７  表示部
６１０  記憶部
６１１  物体情報
６１２  腕モデル情報
７０１  部品情報
１００１  関節情報
ｐａ１，ｐａ２，ｐ１，ｐ２  部品
Ｍｇ  物体
ａｍ  腕
ｂｂ  バウンディングボックス
Ｓ１〜Ｓ６  面
Ｃ１〜Ｃ３  組み合わせ
Ｐ  ベクトル
ｊ１〜ｊ４  関節
【図１】
0006493013.tif 000002
【図２】
0006493013.tif 000003
【図３】
0006493013.tif 000004
【図４】
0006493013.tif 000005
【図５】
0006493013.tif 000006
【図６】
0006493013.tif 000007
【図７】
0006493013.tif 000008
【図８】
0006493013.tif 000009
【図９】
0006493013.tif 000010
【図１０】
0006493013.tif 000011
【図１１】
0006493013.tif 000012
【図１２】
0006493013.tif 000013
【図１３】
0006493013.tif 000014
【図１４】
0006493013.tif 000015
【図１５】
0006493013.tif 000016
【図１６】
0006493013.tif 000017
【図１７】
0006493013.tif 000018
【図１８】
0006493013.tif 000019
【図１９】
0006493013.tif 000020
【図２０】
0006493013.tif 000021
【図２１】
0006493013.tif 000022
【図２２】
0006493013.tif 000023
【図２３】
0006493013.tif 000024