(57)【要約】      （修正有）【課題】低コストの検知デバイスを、コンピュータ支援設計および他のツールと統合する有効な新しい技法およびツールを提供する。【解決手段】コンピュータは、動作検知入力デバイスから１組の空間座標を受け取る、空間座標は、人体モデル１５０の体肢の少なくとも１つの関節の位置を示している。コンピュータは、１組の空間座標をコンピュータ支援設計アプリケーション１３２に送る、コンピュータ支援設計アプリケーション１３２は、角度データの複数のインスタンスにより示された体肢角度の変化に基づいて、人間工学的な人体模型１５０の運動を表す。コンピュータは、コンピュータ支援設計アプリケーション１３２から角度指定を受け取る、角度指定は、少なくとも１つの３次元平面における体肢の角度に対応する。コンピュータは、受け取った角度指定に従って、１組の空間座標を角度データに変換する、角度データは体肢の位置決めを示している。【選択図】図１
2014203463.tif 000002
【特許請求の範囲】
【請求項１】
構造モデルを位置決めし、かつその設計環境を制御するための装置であって、
プロセッサと、
前記プロセッサと通信するメモリ（３５０６）と、
前記プロセッサと通信する動作検知入力デバイスであり、オブジェクトの動作を追跡し、かつ前記オブジェクト上に位置する少なくとも１つの点に対する空間座標データの組を生成するように構成された動作検知入力デバイスと、
前記メモリ（３５０６）に記憶されたアプリケーション（１３２）とを備え、
前記アプリケーション（１３２）が前記プロセッサにより実行されたとき、前記アプリケーション（１３２）が、
前記動作検知入力デバイスから前記少なくとも１つの点に対する空間座標データの第１の組を受け取り、かつ
空間座標データをコンピュータ支援設計システム（１３０）に送り、前記コンピュータ支援設計システム（１３０）が、前記オブジェクト上に位置する前記点の動きに基づき、角度データを計算して前記オブジェクトのモデルの設計を更新する
ように構成される、装置。
【請求項２】
前記オブジェクトが、人間工学的な人体模型（１５０）である、請求項１に記載の装置。
【請求項３】
前記オブジェクト上に位置する前記点が、前記人間工学的な人体模型（１５０）の体肢上の関節である、請求項２に記載の装置。
【請求項４】
前記アプリケーション（１３２）が、ある期間中に連続的に生成された空間座標の複数の観測結果を使用するように構成されており、前記複数の観測結果は、前記体肢の運動中に取り込まれたものである、請求項３に記載の装置。
【請求項５】
前記アプリケーション（１３２）が、空間座標データの前記第１の組から骨格点データを生成する、請求項３に記載の装置。
【請求項６】
前記アプリケーション（１３２）が、前記骨格点データから、前記人間工学的な人体模型の方向付けを指定するための体肢角度を計算する、請求項５に記載の装置。
【請求項７】
前記体肢角度が、３次元空間の３つの主平面のうちの１つにおける角度指定により示される、請求項６に記載の装置。
【請求項８】
前記角度指定が、前記コンピュータ支援設計システム（１３０）により規定される、請求項７に記載の装置。
【請求項９】
前記コンピュータ支援設計システム（１３０）が、前記アプリケーション（１３２）により計算された骨格点間のセグメントの角度に基づいて、前記人体模型（１５０）の方向付けを指定する、請求項６に記載の装置。
【請求項１０】
人間工学的な人体模型（１５０）を位置決めし、かつ人体模型設計環境を制御するためのプロセッサで実施される方法であって、
コンピュータが、動作検知入力デバイスから１組の空間座標を受け取ること（２０２）であり、前記空間座標が、人体モデルの体肢の少なくとも１つの関節の位置を示していること、
前記コンピュータが、コンピュータ支援設計アプリケーション（１３２）に、前記１組の空間座標を送ること（２０４）であり、前記コンピュータ支援設計アプリケーション（１３２）が、角度データの複数のインスタンスにより示された体肢角度の変化に基づいて、前記人間工学的な人体模型（１５０）の運動を表すこと、
前記コンピュータが、コンピュータ支援設計アプリケーション（１３２）から角度指定を受け取ること（２０６）であり、前記角度指定が、少なくとも１つの３次元平面における前記体肢の角度に対応していること、および
前記コンピュータが、前記受け取った角度指定に従って、前記１組の空間座標を角度データに変換すること（２０８）であり、前記角度データが、前記体肢の位置決めを示していること
を含む方法。
【請求項１１】
前記動作検知入力デバイスが深度カメラである、請求項１０に記載の方法。
【請求項１２】
前記深度カメラが、少なくともジェスチャおよび音声コマンドにより制御される、請求項１１に記載の方法。
【請求項１３】
前記コンピュータが、前記動作検知入力デバイスを前記コンピュータ支援設計アプリケーション（１３２）と統合する複数のアルゴリズムを実行し、前記アルゴリズムが、全身追跡、および人体模型（１５０）の制御を可能にする、請求項１０に記載の方法。
【請求項１４】
前記アルゴリズムが、前記人間工学的な人体模型（１５０）および開発環境の少なくとも一方を制御するために、前記動作検知入力デバイスにより収集された座標を、前記コンピュータ支援設計アプリケーション（１３２）により使用される座標形式へと変換する、請求項１３に記載の方法。
【請求項１５】
人間工学的な人体模型（１５０）を制御するために、動作検知入力デバイスをコンピュータ支援設計アプリケーション（１３２）と統合する前記方法が、
コンピュータが、人体モデルの運動中に、骨格関節の位置決めを表す３次元のｘ、ｙ、およびｚ座標を受け取ること（２１２）であり、前記ｘ、ｙ、およびｚ座標が、前記動作検知入力デバイスにより取り込まれたものであること、
前記コンピュータが、前記少なくとも１つの３次元平面における体肢角度を示す自由度を指定する情報を受け取ること（２１４）、
前記コンピュータが、前記自由度ならびに前記ｘ、ｙ、およびｚ座標に基づいて、少なくとも１つの体肢角度を求めること（２１６）であり、前記求められた体肢角度が、前記人間工学的な人体模型（１５０）の方向付けを指定すること、および
前記コンピュータが、前記体肢の運動を表すのに使用するために、前記少なくとも１つの体肢角度を前記コンピュータ支援設計アプリケーション（１３２）に提供すること（２１８）
を含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、人間工学的な人体模型を位置決めすること、およびその環境を制御することに関し、詳細には、動作検知デバイス、空間座標データを角度データに変換するアルゴリズム、およびオブジェクトの観察された動作に基づいてモデルを作成するコンピュータ支援設計システムを用いることにより、構造モデルを位置決めし、かつその設計環境を制御するためのシステムおよび方法に関する。
【背景技術】
【０００２】
人間工学的な人体模型は、製品設計、モデリング、試験、および仮想環境の構築を含む様々な用途で使用される。輸送車両およびその構成要素機器の製造者は、乗客および運転者の快適さおよび使用性のみならず、衝突安全試験中に人体模型を使用する。生産技術者および作業場設計者は、安全で生産的であり、かつ魅力的な作業環境をシミュレートし、設計するために、コンピュータで生成された人間工学的な人体模型を使用することができる。
【０００３】
人間工学的な人体模型は、持ち上げる、下げる、押す、引く、および運ぶことなど、手動の取扱い作業をシミュレートし、伝達し、かつ最適化するために、作業場設計者により使用することができる。設計者は、簡単化した作業の流れを用いてより迅速に設計を解析し、かつ保存された解析設定を再使用することができる。作業場設計者はまた、人間に対して設計され、最適化された製品を届けるために、報告機能を利用することができ、また健康および安全性ガイドライン、ならびに人間工学的な規格に確実に準拠することができる。
【０００４】
様々な環境条件および事象に対する反応情報を提供するために、実物そっくりの人体模型を設計することができる。このような人体模型は、真正の人体測定または人体寸法を用いて構成することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
既存のコンピュータ支援設計、およびコンピュータ支援製作ツールに組み込まれた機能を用いる人間工学的な人体模型の手動の位置決めは、繰り返しが多く、時間がかかる可能性がある。代替形態では、安全性および人間工学的な問題の認識を引き出すように人体モデルを位置決めするために、高コストの全身動作追跡および制御の使用を含むことができる。しかし、コンピュータ支援システムを含むツール内にデジタル的な人間姿勢を手動で設定することは、費用がかかり不正確になるおそれがある。多くの状況において、人体モデルを手動で位置決めすること、またはこのようなサービスの外部提供者にこれらの仕事を外注することに関する時間制約およびコストは、実際的なものではないおそれがある。したがって、低コストの検知デバイスを、コンピュータ支援設計および他のツールと統合する有効な新しい技法およびツールが望まれている。
【課題を解決するための手段】
【０００６】
例示的な実施形態は、構造モデルを位置決めし、かつその設計環境を制御するための装置を提供する。装置は、プロセッサ、およびプロセッサと通信するメモリを含む。装置は、プロセッサと通信する、オブジェクトの動作を追跡しかつオブジェクト上に位置する少なくとも１つの点に対する空間座標データの組を生成するように構成された動作検知入力デバイスを含む。装置は、メモリに記憶されたアプリケーションを含み、アプリケーションがプロセッサにより実行されたとき、アプリケーションは、動作検知入力デバイスから少なくとも１つの点に対する空間座標データの第１の組を受け取るように構成される。アプリケーションはまた、コンピュータ支援設計システムに空間座標データを送るように構成され、コンピュータ支援設計システムは、オブジェクト上に位置する点の動きに基づいて角度データを計算し、オブジェクトのモデルの設計を更新する。例示的な実施形態はまた、人間工学的な人体模型を位置決めし、かつ人体模型の設計環境を制御するための、プロセッサで実施される方法を提供する。方法は、コンピュータが、動作検知入力デバイスから１組の空間座標を受け取ることを含み、空間座標は、人体モデルの体肢の少なくとも１つの関節の位置を示している。方法は、コンピュータが、１組の空間座標をコンピュータ支援設計アプリケーションに送ることを含み、コンピュータ支援設計アプリケーションは、角度データの複数のインスタンスにより示された体肢角度の変化に基づいて、人間工学的な人体模型の運動を表す。方法は、コンピュータが、コンピュータ支援設計アプリケーションから角度指定を受け取ることを含み、角度指定は、少なくとも１つの３次元平面における体肢の角度に対応する。方法は、コンピュータが、受け取った角度指定に従って、１組の空間座標を角度データに変換することを含み、角度データは、体肢の位置決めを示している。
【０００７】
例示的な実施形態はまた、人間工学的な人体模型を制御するために、動作検知入力デバイスを、コンピュータ支援設計アプリケーションと統合する、プロセッサで実施される方法を提供する。方法は、コンピュータが、人体モデルの運動中に、骨格関節の位置決めを表す３次元のｘ、ｙ、およびｚ座標を受け取ることを含み、ｘ、ｙ、およびｚ座標は、動作検知入力デバイスにより取り込まれたものである。方法は、コンピュータが、少なくとも１つの３次元平面における体肢角度を示す自由度を指定する情報を受け取ることを含む。方法は、コンピュータが、自由度ならびにｘ、ｙ、およびｚ座標に基づいて、少なくとも１つの体肢角度を求めることを含み、求められた体肢の角度は、人間工学的な人体模型の方向付けを指定する。方法は、コンピュータが、体肢の運動を表すのに使用するために、少なくとも１つの体肢角度をコンピュータ支援設計アプリケーションに提供することを含む。
【０００８】
特徴、機能、および利点は、本開示の様々な実施形態で独立して達成することができるが、あるいはさらに他の実施形態において組み合わせることも可能であり、そのさらなる詳細は、添付の記述および図面を参照することにより理解されよう。
【０００９】
例示的な実施形態の特性と考えられる新規の特徴は、添付の特許請求の範囲に記載される。しかし、例示の実施形態、ならびに好ましい使用モード、そのさらなる目的および特徴は、添付図面を併せて読めば、本開示の例示的な実施形態の以下の詳細な記述を参照することにより最もよく理解されよう。
【図面の簡単な説明】
【００１０】
【図１】例示的な実施形態により構造モデルを位置決めするための装置のブロック図である。
【図２ａ】例示的な実施形態により構造モデルを位置決めするための方法を示す流れ図である。
【図２ｂ】例示的な実施形態により構造モデルを位置決めするための方法を示す流れ図である。
【図３】例示的な実施形態により構造モデルを位置決めするための装置のブロック図である。
【図４】例示的な実施形態により構造モデルを位置決めするためのプロセスフローを示す流れ図である。
【図５】例示的な実施形態により構造モデルを位置決めするための装置のブロック図である。
【図６】例示的な実施形態により体肢角度を表すための３次元平面を示す図である。
【図７】例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。
【図８】例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。
【図９】例示的な実施形態により人体モデルに対する動作検知デバイスのための座標を示す図である。
【図１０】例示的な実施形態により動作検知デバイスから受け取った座標系および点を示す図である。
【図１１】例示的な実施形態により人間工学的な人体模型の座標系およびセグメントを示す図である。
【図１２】例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。
【図１３】例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。
【図１４】例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。
【図１５】例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。
【図１６】例示的な実施形態によりカーソル位置を表示することに関して手の位置を追跡するための座標を示す図である。
【図１７】例示的な実施形態により体肢角度を表すベクトルの図である。
【図１８】例示的な実施形態により体肢角度を表すベクトルの解析を提供するグラフである。
【図１９】例示的な実施形態による処理を受け入れる、平面および軸上の人体模型のセグメントに対するコンピュータ支援設計アプリケーションにより指定された角度を規定するテーブルである。
【図２０】例示的な実施形態による処理を受け入れる、平面および軸上の人体模型のセグメントに対してコンピュータ支援設計アプリケーションにより指定された角度を規定するテーブルである。
【図２１】例示的な実施形態による処理を受け入れる、平面および軸上の人体模型のセグメントに対してコンピュータ支援設計アプリケーションにより指定された角度を規定するテーブルである。
【図２２】例示的な実施形態による処理を受け入れる、平面および軸上の人体模型のセグメントに対してコンピュータ支援設計アプリケーションにより指定された角度を規定するテーブルである。
【図２３】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図２４】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図２５】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図２６】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図２７】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図２８】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図２９】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図３０】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図３１】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図３２】例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフである。
【図３３】例示的な実施形態によるサンプル的な参照テーブルである。
【図３４】例示的な実施形態による体肢のベクトルを示すグラフである。
【図３５】例示的な実施形態によるデータ処理システムの図である。
【発明を実施するための形態】
【００１１】
例示の実施形態は、人間工学的な人体模型の姿勢を作るための経済的な追跡機能を提供することに関して、上記で述べた問題を認識し、かつ考慮に入れている。このような機能は、製品寿命を通して適用可能である場合には、設計および製作工程判断の良好な状況認識を行えるようにする。例示の実施形態は、ユーザに、適切なジェスチャとして作業を行えるようにすることができ、また音声制御が提供されて、マウス、キーボード、または他の手動入力デバイスを用いることなく、コンピュータ支援設計環境の制御が可能になる。
【００１２】
例示の実施形態はまた、コンピュータ支援設計システムと共に低コストの動作検知入力機器を使用できるマーカ不要の動作追跡および取込み機能を提供する。これらの追跡および取込み機能は、人間工学的な人体模型の比較的低コストの全身追跡および制御、ならびに他の３次元幾何形状およびアプリケーション機能を可能にすることができる。
【００１３】
動作検知機器デバイスなどの外部入力デバイスを、人間工学的な人体モデルの姿勢および位置を制御するために使用することができる。これらのデバイスは、以前にはマウスおよびキーボードにより行われていた基本的な視覚的機能を行うために、コンピュータ支援設計システムと統合することができる。統合は、骨格の動きを追跡し、複数の骨格関節に関するｘ、ｙ、およびｚ座標を出力するように行うことができる。統合はまた、動作検知デバイスに含まれるマイクロフォンアレイを用いることにより、音声コマンドを認識するように行うこともできる。
【００１４】
例示の実施形態はまた、動作検知デバイスにより取り込まれたコンテンツをコンピュータ支援設計システムと統合させる。統合することにより、コンピュータ支援設計システムと関連するアプリケーションプログラミングインターフェースを使用して、動作検知デバイスから収集されたデータの入力を、本明細書で提供されるアルゴリズムにより変換できるようになる。アルゴリズムは、コンピュータ支援設計システムが、人間工学的な人体モデル、またはコンピュータ支援設計環境を制御するために必要となりうるフォーマットへと、収集されたデータを変換できるようにする。
【００１５】
動作検知入力デバイスは、人体モデルの動作を追跡し、かつ人体模型上に位置する点に対する空間座標データの組を生成することができる。オブジェクト上の点は、３次元のｘ、ｙ、およびｚの直交座標により表すことができる。他の例示的な実施形態では、これだけに限らないが、球座標など他の座標方式を使用することができる。本明細書で提供されるアルゴリズムは、空間座標データを角度データに変換することができる。角度データは、人間工学的な人体模型の方向付けおよび位置を指定するのに使用することができる。コンピュータ支援設計システムは、角度データを計算し、かつ使用して、人間工学的な人体模型を位置決めし、かつ方向付ける。人体模型の体肢上の複数の関節に対する空間座標データを、体肢の運動中に収集することができる。
【００１６】
例示の実施形態は、動作検知入力デバイスをコンピュータ支援設計システムと統合する複数のアルゴリズムを提供する。統合により、コンピュータ支援設計システムが、人体モデルにより行われる姿勢、および動作検知入力デバイスにより取り込まれた姿勢と同様の姿勢に人間工学的な人体模型を位置決めすることができる。例示の実施形態は、音声制御を使用し、コンピュータ支援設計システムにより作られた環境に対して人体モデルを回転させることができる。音声コマンドおよび体の動作の組合せはまた、コンピュータ支援設計システムのワークベンチ環境において様々なカメラ機能を行うことが可能になる。
【００１７】
例示の実施形態は、人間工学および安全性の解析が、製品開発およびサポートの一部として行われる用途で使用することができる。自動車および他の自動車両、重機、ならびに航空機の製造者は、本明細書で提供されるシステムおよび方法に関する用途を見出すことができる。例示の実施形態は、設計および製作技術者が、様々なシナリオを評価できるようにする。技術者は、その構成が制御された製品およびプロセスデータ管理システムと共に作業しながら、これらの仕事を実行することができる。製品がどのように組み立てられ、かつ使用されるかに関する改善された状況認識を技術者に提供することにより、コスト低減が達成されうる。製品が製造段階に達したとき、設計変更を減らすことができる。
【００１８】
次に図を参照するものとする。図１は、例示的な実施形態により構造モデルを位置決めするためのシステム１００のブロック図を示している。システム１００は、データ送信サーバ１１０、コンピュータ支援設計システム１３０、変換アプリケーション１３２、検知デバイス１４０、および人体模型１５０を含む。
【００１９】
図１で示されたシステム１００は、１つまたは複数のデータ処理システムを、おそらく、分散またはネットワーク化環境で、またおそらく、「クラウド」として知られた１群の遠隔的に管理されたデータ処理システムで用いて実装することができる。システム１００を実装する１つまたは複数のデータ処理システムのそれぞれは、図３５に関して述べられたデータ処理システム３５００、またはその変形形態とすることができる。システム１００は、１つまたは複数のブロックを含むものとして特徴付けることができる。これらのブロックのそれぞれは、別個のものとすることができるが、あるいは単一のアーキテクチャの一部とすることもできる。
【００２０】
データ送信サーバ１１０は、コンピュータシステムとすることができる。サーバコンポーネント１２２は、データ送信サーバ１１０上で実行する。変換アプリケーション１３２は、コンピュータ支援設計システム１３０上で実行し、複数のアルゴリズムを含む。変換アプリケーション１３２は、検知デバイス１４０により取り込まれたコンテンツを、コンピュータ支援設計システム１３０の機能と統合する。例示の実施形態は、検知デバイス１４０を示しているが、例示の実施形態は、複数の検知デバイスの使用を企図している。したがって、「検知デバイス」という用語は、単数の意味、または複数の意味で解釈することができる。
【００２１】
変換アプリケーション１３２は、検知デバイス１４０により実時間で追跡された、または記録されたデータから、人体モデルにより行われた同じまたは同様の姿勢に、人体模型１５０を位置決めすることができる。変換アプリケーション１３２は、解析で使用または再使用するために、望ましい姿勢情報のデータを記録することができる。変換アプリケーション１３２は、コンピュータ支援設計システム１３０により提供されるワークベンチ環境において、パン、ズーム、および回転などの機能を実施するために、ユーザにより提供される音声コマンドと腕の動作との組合せを実行することができる。このような音声コマンドは、人体模型１５０を見る事前設定された第２の人間の観点から、肩越しになる人体モデルの第１の人間の観点へとユーザの視点を変えるために使用することができる。音声制御は、モデルの背後の第１の人間の観点の距離を調整するために使用することができる。
【００２２】
変換アプリケーション１３２はまた、コンピュータ支援設計システム１３０の環境に対して人体モデルを回転するために音声制御の使用を提供することもできる。このような回転は、検知デバイス１４０により提供される単一のカメラビューを補償するために、かつカメラに対して位置合せされた人物を見るための要件を補償するために行うことができる。変換アプリケーション１３２により提供される音声制御は、人体模型１５０の骨格追跡および制御と、コンピュータ支援設計システム１３０により提供される環境のジェスチャ制御のための画面オーバーレイメニューとの間を切り換えることを可能にすることができる。変換アプリケーション１３２はまた、ユーザにより行われる音声コマンドの正しい解釈をサポートするために、視覚的なオンスクリーンのプロンプトを提供することができる。
【００２３】
変換アプリケーション１３２はまた、コンピュータ支援設計システム１３０のジェスチャ制御を識別するために使用される画面オーバーレイメニューを使用可能にすることと、進行しているセッション中にユーザ論議を行えるようにするために画面オーバーレイおよびジェスチャ制御を除去することとの間で切り換えることを可能にする音声制御を提供することができる。変換アプリケーション１３２はまた、進行しているセッション中に変換できるようにするために、他の音声コマンドが作用するのを止めることと、その後に、キーワードを用いて音声制御機能を再度働かせることとの間を切り換えるようにする特定の音声コマンドの使用を提供することもできる。
【００２４】
変換アプリケーション１３２は、複数のコンポーネントを含む。コンポーネントは、クライアントコンポーネント１３４、コマンドコンポーネント１３６、および対話コンポーネント１３８を含む。データ送信サーバ１１０上で実行されるサーバコンポーネント１２２は、検知デバイス１４０から入力を受け取り、かつ入力をデータストリームでクライアントコンポーネント１３４に送信する。サーバコンポーネント１２２は、検知デバイス１４０の要件と、コンピュータ支援設計システム１３０の要件との間の不適合性を解決することができる。例えば、検知デバイス１４０は、３２ビット形式を使用し、かつ統合されたソフトウェア開発環境の１つのバージョンを必要とする可能性がある。コンピュータ支援設計システム１３０は、それとは対照的に、６４ビット形式を使用し、異なる統合されたソフトウェア開発環境を必要とするはずである。サーバコンポーネント１２２は、これらの不適合性を解決することができる。
【００２５】
サーバコンポーネント１２２は、視覚化のために、検知デバイス１４０により取り込まれたカメラビデオ画像を表示することができる。サーバコンポーネント１２２はまた、様々なオーディオ側面を管理するために制御を行うことができる。実施形態では、サーバコンポーネント１２２の要素、ならびに変換アプリケーション１３２、クライアントコンポーネント１３４、コマンドコンポーネント１３６、および対話コンポーネント１３８の要素は、複数の物理コンピュータ上で実行することができる。例えば、サーバコンポーネント１２２の第１の部分は、データ送信サーバ１１０上で実行することができ、またサーバコンポーネント１２２の第２の部分は、コンピュータ支援設計システム１３０をホストするコンピュータ上で実行することができる。他の実施形態では、変換アプリケーション１３２の部分は、データ送信サーバ１１０上で実行することができる。クライアントコンポーネント１３４は、サーバコンポーネント１２２からデータストリームを受け取る。クライアントコンポーネント１３４は、検知デバイス１４０に関連するいずれかのソフトウェア開発キット、または他のソフトウェアツールとは独立して、必要に応じてデータ処理を行うことができる。
【００２６】
コマンドコンポーネント１３６は、コンピュータ支援設計システム１３０の機能を拡張する。コマンドコンポーネント１３６は、コンピュータ支援設計システム１３０のアプリケーションプログラミングインターフェースを統合するカスタマイズしたコマンドを提供する。コマンドコンポーネント１３６は、カメラデータおよび他の入力データを処理するために、クライアントコンポーネント１３４を統合する。
【００２７】
コマンドコンポーネント１３６は、オペレーションの２つの状態と、２つの状態間で遷移するための手段とを提供することができる。コマンドコンポーネント１３６は、ユーザにオペレーション状態の様々なモードを設定できるようにする対話を提示する。
【００２８】
コマンドコンポーネント１３６により提供される第１のオペレーション状態は、人体模型制御である。人体模型制御は、コンピュータ支援設計システム１３０により設定された体肢の方向付けおよび位置を指定するのに必要な様々な角度を計算するために、検知デバイス１４０から受け取った選択点データを使用することができる。前述のように、クライアントコンポーネント１３４は、検知デバイス１４０により生成されたデータストリームコンテンツを受け取る。データストリームコンテンツは、人体模型１５０が、生きているように実時間で、またはほぼ実時間でサーバコンポーネント１２２から受信される。人体模型制御の第２の機能は、コンピュータ支援設計システム１３０の３次元の視点を制御することである。このような制御は、人体模型１５０を既存の視点から見ることを可能にするが、あるいは見る点を第１または第２の視点に変更することを可能にする。
【００２９】
コマンドコンポーネント１３６により提供される第２のオペレーション状態は、ジェスチャを行うことを用いるシーン制御である。シーン制御およびジェスチャは、コンピュータ支援設計システム１３０のセッションに対してオーバーレイウィンドウを提示する。オーバーレイウィンドウは、コンピュータ支援設計システム１３０により提供されるシーンの３次元視点の制御を可能にする様々なアイコンを含むことができる。例えば、動作中の体部分に対する骨格点データを追跡することができ、オーバーレイウィンドウにおけるカーソルを、対応する距離および方向に移動させることができる。カーソルが、例えば、アイコン上に位置決めされ、数秒間停止した場合、カーソルがアイコン上の位置にある限り、アイコンの対応するコマンド機能が実行されうる。
【００３０】
コマンドは、コンピュータ支援設計システム１３０により提供されるシーンにおける３次元視点に作用する。実施されるコマンドは、右、左、上、および下方向にパニングすることができる。実施されるコマンドはまた、目標点の視点に関して回転させることができ、また目標点を入れること、および目標点から外すこと（ｓｃａｌｅ  ｉｎ  ａｎｄ  ｏｕｔ）を可能にする。対話コンポーネント１３８は、コマンドコンポーネント１３６に関連付けられており、かつユーザに、データ送信サーバ１１０およびコンピュータ支援設計システム１３０の機能を制御し、かつ操作できるようにするグラフィカルユーザインターフェースを提示する。
【００３１】
検知デバイス１４０は、動作および音を取り込むカメラおよびオーディオアレイとすることができるが、より少ない検知デバイス、あるいはおそらく１つまたは複数のさらなる、もしくは異なる検知デバイスとすることもできる。検知デバイス１４０は、ジェスチャおよび話されたコマンドを用いるナチュラルユーザインターフェースにより、物理的に接触するデバイスを必要とすることなく、ユーザに、制御および対話を可能にする。検知デバイス１４０は、ジェスチャ認識、顔認識、および音声認識を可能にする深度カメラおよびマイクロフォンを含むことができる。検知デバイス１４０は、ユニバーサルシリアルバス接続を用いて、データ送信サーバ１１０または他のデバイスと接続することができる。検知デバイス１４０の要素は、データ送信サーバ１１０に、互いに、または他のコンポーネントに無線で接続することができる。例示の実施形態では、検知デバイス１４０は、検知するために赤外線技術を使用することができるが、音響技術および可視光技術など、他の技術を使用することもできる。
【００３２】
人体模型１５０は、体肢１５２、体肢１５４、体肢１５６、および体肢１５８を含むことができる。実施形態では、体肢１５２、体肢１５４、体肢１５６、および体肢１５８に関連付けられた関節および他の構成要素の運動は、本明細書で述べるように、検知デバイス１４０により追跡され、かつ取り込まれ、変換アプリケーション１３２およびコンピュータ支援設計システム１３０により処理することができる。
【００３３】
図１で示す例示の実施形態は、様々な例示的な実施形態を実施できる態様に対して、物理的またはアーキテクチャ上の限定を示唆することを意味するものではない。例示されたものに加えて、かつ／または例示されたものに代えて、他のコンポーネントを使用することができる。いくつかのコンポーネントは、いくつかの例示の実施形態で不要のものでありうる。さらに、いくつかの機能コンポーネントを示すためにブロックが提示される。これらのブロックの１つまたは複数のものは、異なる例示的な実施形態において実施される場合、組み合わせる、かつ／または異なるブロックへと分割することができる。図２ａは、例示的な実施形態により構造モデルを位置決めするための方法を示す流れ図である。図２で示す方法２００は、図１のシステム１００を用いて実施することができる。図２で示すプロセスは、図３５のプロセッサユニット３５０４などのプロセッサにより実施することができる。図２で示すプロセスは、図１、および図３から図３４で示すプロセスの変形形態でありうる。図２で示されたオペレーションは、「プロセス」により行われるものとして述べられているが、オペレーションは、本明細書の他で述べるように、少なくとも１つの有形のプロセッサにより、または１つまたは複数の物理的デバイスを用いることにより実施される。「プロセス」という用語はまた、非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータ命令を含む。
【００３４】
方法２００は、プロセスが、動作検知入力デバイスから１組の空間座標を受け取ると開始することができ、空間座標は、人体モデルの体肢の少なくとも１つの関節の位置を示している（オペレーション２０２）。コンピュータは、１組の空間座標をコンピュータ支援設計アプリケーションに送り、コンピュータ支援設計アプリケーションは、角度データの複数のインスタンスにより示された体肢角度の変化に基づき、人間工学的な人体模型の運動を表している（オペレーション２０４）。プロセスは、次いで、コンピュータ支援設計アプリケーションから角度指定を受け取ることができ、角度指定は、少なくとも１つの３次元平面における体肢の角度に対応している（オペレーション２０６）。プロセスは、次いで、受け取った角度指定に従って１組の空間座標を角度データに変換することができ、角度データは、体肢の位置決めを示している（オペレーション２０８）。その後、プロセスは終了することができる。図２ａで示すプロセスは、変えることができる。例えば、例示的な実施形態では、動作検知入力デバイスは、深度カメラとすることができる。例示的な実施形態では、深度カメラは、少なくともジェスチャおよび音声コマンドにより制御することができる。例示的な実施形態では、コンピュータは、動作検知入力デバイスをコンピュータ支援設計アプリケーションと統合する複数のアルゴリズムを実行することができ、アルゴリズムは、全身の追跡および人体模型の制御を可能にする。
【００３５】
例示的な実施形態では、アルゴリズムは、人間工学的な人体模型および開発環境の少なくとも一方を制御するために、動作検知入力デバイスにより収集された座標を、コンピュータ支援設計アプリケーションにより使用される座標形式へと変換することができる。例示的な実施形態では、アルゴリズムは、動作検知入力デバイスにより使用されるデータ形式と、コンピュータ支援設計アプリケーションにより使用されるデータ形式との間の不適合性を解決することができる。
【００３６】
図２ｂは、例示的な実施形態により構造モデルを位置決めするための方法を示す流れ図である。図２ｂで示す方法２１０は、図１のシステム１００を用いて実施することができる。方法２１０もまた、図３５のプロセッサユニット３５０４などのプロセッサにより実施することができる。方法２１０は、図１、および図３から図３４で示されたプロセスの変形形態とすることができる。図２ｂで示されたオペレーションは、「プロセス」により実施されるものとして述べられているが、オペレーションは、本明細書の他で述べるように、少なくとも１つの有形のプロセッサにより、または１つまたは複数の物理的なデバイスを用いることにより実施される。「プロセス」という用語はまた、非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータ命令を含む。
【００３７】
方法２１０は、プロセスが、人体モデルの運動中に、骨格関節の位置決めを表す３次元のｘ、ｙ、およびｚ座標を受け取ると開始することができ、ｘ、ｙ、およびｚ座標は、動作検知入力デバイスにより取り込まれる（オペレーション２１２）。プロセスは、次いで、少なくとも１つの３次元平面で、体肢角度を示す自由度を指定する情報を受け取ることができる（オペレーション２１４）。プロセスは、次いで、自由度、ならびにｘ、ｙ、およびｚ座標に基づいて少なくとも１つの体肢角度を求めることができ、求められた体肢角度は、人間工学的な人体模型の方向付けを指定する（オペレーション２１６）。プロセスは、次いで、体肢の運動を表すのに使用するために、少なくとも１つの体肢角度をコンピュータ支援設計アプリケーションに提供することができる（オペレーション２１８）。
【００３８】
図３は、例示的な実施形態により構造モデルを位置決めするための装置のブロック図である。図３のコンポーネントはシステム３００で提供され、また図１およびシステム１００で示されかつ関連して本明細書で述べられたものに相当または対応することができる。コンピュータ３１０は、図１で示されたデータ送信サーバ１１０に対応することができる。サーバコンポーネント３２２は、図１で示されたサーバコンポーネント１２２に対応することができる。コンピュータ支援設計システム３３０は、図１で示されたコンピュータ支援設計システム１３０に対応することができる。検知デバイス３４０は、図１で示された検知デバイス１４０に対応することができる。コンピュータ支援設計システム１３０が、図１ではデータ送信サーバ１１０とは別個のコンポーネントとして示されているが、一実施形態では、コンピュータ支援設計システム１３０の一部または全体が、データ送信サーバ１１０上で実行することができる。
【００３９】
図４は、例示的な実施形態により構造モデルを位置決めするための方法を示す流れ図である。方法４００に関して図４で示されたアクションおよびイベントは、システム１００およびシステム３００にそれぞれ関して図１および図３で示されたコンポーネントに関連する、ならび図２で示す方法２００に関して述べられたオペレーションに関連するアクションおよびイベントに対応することができる。
【００４０】
図４で示されたオペレーションは、「プロセス」により実施されるものとして述べられているが、オペレーションは、本明細書の他で述べるように、少なくとも１つの有形のプロセッサにより、または１つまたは複数の物理的デバイスを用いることにより実施される。「プロセス」という用語はまた、非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータ命令を含む。
【００４１】
方法４００は、プロセスが、テキストデータまたは骨格データを読み取ったときに開始することができる（オペレーション４０２）。プロセスは、次いで、データがテキストを含むかどうかを判定する（オペレーション４０４）。データがテキストを含んでいることに応じて（オペレーション４０４に対する「はい」応答）、プロセスは、テキストが「ジェスチャ」であるかどうかの次の判定を行う（オペレーション４０６）。あるいは、データがテキストを含まない場合（オペレーション４０４に対する「いいえ」応答）、プロセスはさらに、データが「ジェスチャモード」にあるかどうかの次の判定を行う（オペレーション４０８）。
【００４２】
オペレーション４０４に戻ると、テキストが「ジェスチャ」である場合、プロセスは、テキストがジェスチャであるかどうか次の判定を行う（オペレーション４０６）。ジェスチャではない場合、他の音声コマンドが処理される（オペレーション４１６）。プロセスは、その後に終了することができる。
【００４３】
オペレーション４０６で、「はい」であった場合、ジェスチャモードに切り替えられ（オペレーション４１０）、次いで、プロセスは、ジェスチャモードがオンかどうかを判定する（オペレーション４２２）。「はい」の場合、オーバーレイアイコンが活動化される（オペレーション４２６）。「いいえ」の場合、デスクトップ上のオーバーレイアイコンは、非活動化される（オペレーション４２８）。
【００４４】
オペレーション４０８に戻ると、プロセスは、データが「ジェスチャモード」にあるかどうか次の判定を行う。「はい」の場合、プロセスは、右手の位置に基づいて画面カーソルを更新する（オペレーション４１２）。プロセスは、次いで、カーソルがアイコンの上にあるかどうかを判定する（オペレーション４１８）。「いいえ」の場合、プロセスは、オペレーション４１２に戻る。「はい」の場合、プロセスは、アイコンに関連付けられた機能を実行する（オペレーション４３０）。その後、プロセスは終了することができる。
【００４５】
オペレーション４０８に戻ると、「いいえ」の場合、プロセスは、各骨格セグメントに対する自由度の角度を計算する（オペレーション４１４）。プロセスは、次いで、対象セグメントが左腕であるか、それとも右腕であるかを判定する（オペレーション４２０）。「いいえ」の場合、プロセスは、人体模型セグメントの自由度を更新し（オペレーション４３２）、コンピュータ支援設計システム１３０により提供されるシーンを再度描画する（オペレーション４３４）。その後、プロセスは終了することができる。
【００４６】
オペレーション４２０で「はい」の場合、プロセスは、事前に計算された腕ベクトルテーブルから腕の角度を調べる（オペレーション４２４）。プロセスは、次いで、人体模型セグメントの自由度を更新し（オペレーション４３２）、コンピュータ支援設計システム１３０により提供されるシーンを再描画する。（オペレーション４３４）。その後、プロセスは終了することができる。
【００４７】
図５は、例示的な実施形態により構造モデルを位置決めするための装置のブロック図である。図５のコンポーネントは、システム５００で提供され、図１およびシステム１００に関連して本明細書で示し、かつ述べたものに相当または対応することができる。図５のコンポーネントはまた、図３およびシステム３００で提供されたものに対応することができる。図５で示すシステム５００は、上記で述べたこれらのシステムの特定の、かつ非限定的な例である。
【００４８】
例えば、サーバコンポーネント５２２は、システム１００のサーバコンポーネント１２２に対応することができる。クライアントコンポーネント５３４は、システム１００のクライアントコンポーネント１３４に対応することができる。コマンドコンポーネント５３６は、システム１００のコマンドコンポーネント１３６に対応することができる。対話コンポーネント５３８は、システム１００の対話コンポーネント１３８に対応することができる。図５で示す実施形態では、クライアントコンポーネント５３４および対話コンポーネント５３８は、コマンドコンポーネント５３６のサブコンポーネントである。コンピュータ支援設計システム５３０は、システム１００のコンピュータ支援設計システム１３０に対応することができる。検知デバイス５４０は、システム１００の検知デバイス１４０に対応することができる。オペレーティングシステム５６０およびマイクロフォン５７０は、それぞれ、データ送信サーバ１１０上で実行できるコンピュータオペレーティングシステム、および話された音および他の音を受け取るためのデバイスである。実施形態では、オペレーティングシステム５６０は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（マイクロソフト社）から市販のＷＩＮＤＯＷＳ（登録商標）である。ＷＩＮＤＯＷＳ（登録商標）は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である。
【００４９】
図５で示す例示の実施形態は、様々な例示的な実施形態を実施できる態様に対する物理的、またはアーキテクチャ上の限定を示唆することを意味するものではない。例示されたものに加えて、かつ／または代えて他のコンポーネントを使用することもできる。いくつかのコンポーネントは、いくつかの例示的な実施形態では不要になりうる。さらに、いくつかの機能的なコンポーネントを示すためにブロックが提示されている。これらのブロックの１つまたは複数のものは、異なる例示的な実施形態において実施される場合、組み合わせる、かつ／または異なるブロックへと分割することができる。
【００５０】
図６は、例示的な実施形態により体肢角度を表すための３次元平面を示す図である。さらに、図１を考慮し、かつその参照番号を用いると、例示の実施形態は、検知デバイス１４０により生成された骨格点データを、コンピュータ支援設計システム１３０およびその関連するアプリケーションプログラミングインターフェースで必要な角度データへと変換するアルゴリズムを提供する。人体模型１５０の体肢１５２、体肢１５４、体肢１５６、および体肢１５８のそれぞれに対して、コンピュータ支援設計システム１３０は、自由度と呼ばれる２つまたは３つの角度指定を規定する。自由度は、Ｘ軸６０２、Ｙ軸６０４、およびＺ軸６０６を含む直交座標系６００など、直交座標系の３つの主平面の１つにおける体肢角度に対応する。３つの主平面は、ＸＹ平面６０８、ＹＺ平面６１０、ＺＸ平面６１２とすることができる。しかし、他の平面を主平面として使用することもできる。例示の実施形態は、骨格点データから人体模型１５０の方向付けを指定するために、これらの体肢角度の１つまたは複数のものを計算するアルゴリズムを提供する。
【００５１】
図７および図８は、図６のさらなる説明を行うために使用することができる。図７は、例示的な実施形態によりヒトの体肢を位置決めするためのＺＸ座標７００を示す図である。図８は、例示的な実施形態によりヒトの体肢を位置決めするためのＺＹ座標８００を示す図である。ＺＸ平面７０４における屈曲／伸展の自由度に対する３０度の角度指定７０２が図７で示されている。ＹＺ平面８０４における外転／内転の自由度に対する４５度の角度指定８０２が図８で示されている。
【００５２】
図９は、例示的な実施形態による人体モデルに対する動作検知デバイスのための座標を示す図である。図９は、人体に関する検知デバイス１４０の座標系９００を示している。座標系９００では、Ｘ軸９０２、Ｙ軸９０４、およびＺ軸９０６が示されている。
【００５３】
図１０は、例示的な実施形態により動作検知デバイスから受け取った座標系および点を示す図である。図１１は、例示的な実施形態により人間工学的な人体模型に対する座標系およびセグメントを示す図である。検知デバイス１４０により取得され、処理される骨格は、２０点からなり、図１０で示す系１０００でラベル付けされている。すなわち、位置＿頭１００２、肩＿右１００４、肩＿中心１００６、肩＿左１００８、肘＿右１０１０、肘＿左１０１２、位置＿脊柱１０１４、手首＿右１０１６、手首＿左１０１８、股関節＿右１０２０、股関節＿中心１０２２、股関節＿左１０２４、手＿右１０２６、手＿左１０２８、膝＿右１０３０、膝＿左１０３２、足首＿右１０３４、足首＿左１０３６、足＿右１０３８、および足＿左１０４０である。股関節＿中心点１０２２は、空間における骨格位置の原点を示す。コンピュータ支援設計システム１３０は、骨格点の間のセグメント（または体肢１５２、体肢１５４、体肢１５６、および体肢１５８もしくは骨）の角度に基づいて、人体模型１５０の方向付けを指定する。頭１０４２、腕Ｒ１０４４、腕Ｌ１０４６、腰１０４８、前腕Ｒ１０５０、前腕Ｌ１０５２、手Ｒ１０５４、手Ｌ１０５６、大腿Ｒ１０５８、大腿Ｌ１０６０、下腿Ｒ１０６２、下腿Ｌ１０６４、足Ｒ１０６６、および足Ｌ１０６８とラベル付けされた１４個のセグメントがある。検知デバイス１４０の座標系、点、およびセグメントが、図１０で示されている。図１０はまた、Ｘ軸１０７０、Ｙ軸１０７２、およびＺ軸１０７４を示している。
【００５４】
図１１は、同様に、人体の要素を示している。図１１で示す構成要素は、図１０で示す構成要素に割り当てられている。頭１１４２、腕Ｒ１１４４、腕Ｌ１１４６、腰１１４８、前腕Ｒ１１５０、前腕Ｌ１１５２、手Ｒ１１５４、手Ｌ１１５６、大腿Ｒ１１５８、大腿Ｌ１１６０、下腿Ｒ１１６２、下腿Ｌ１１６４、足Ｒ１１６６、および足Ｌ１１６８とラベル付けされた、系１１００を構成する１４個のセグメントがある。検知デバイス１４０の座標系、点、およびセグメントが図１１で示されている。図１１はまた、Ｘ軸１１７０、Ｙ軸１１７２、およびＺ軸１１７４を示している。
【００５５】
図１２、図１３、図１４、および図１５は、例示的な実施形態によりヒトの体肢を位置決めするための座標を示す図である。これらの図で示す人体模型は、図１の人体模型１５０とすることができる。図１２で示す人体模型１２００、図１３で示す人体模型１３００、図１４で示す人体模型１４００、および図１５で示す人体模型１５００は、図１２、図１３、図１４、および図１５で示すように、人体模型１５０に向かったとき、右手座標系により定義することができる。人体模型１５０のデフォルトの方向付けは、腕および下腿を真っ直ぐ下ろした、直立した垂直状態とすることができる。人体模型１５０の幾何形状は、ミリメートルで測定することができるが、他の長さの単位を使用することもできる。図１２はまた、Ｙ軸１２０２およびＺ軸１２０４を示している。図１３はまた、Ｘ軸１３０２およびＺ軸１３０４を示している。図１４はまた、Ｘ軸１４０２およびＺ軸１４０４を示している。図１５はまた、Ｘ軸１５０２およびＹ軸１５０４を示している。
【００５６】
本明細書で提供されるアルゴリズムは、検知デバイス１４０の座標系をコンピュータ支援設計システム１３０の座標系に変換する座標変換を規定する。座標は、コンピュータ支援設計システム１３０に対する標準長さを提供するために、メートルからミリメートルなど、１つの測定単位から他の単位へと変換することができる。例示的な変換は、次のようになる。
【００５７】
2014203463.tif 000003
【００５８】
図１６は、例示的な実施形態により画面カーソル位置を表示することに関して、手の位置を追跡するための座標を示す図表１６００である。図１６は、右手のジェスチャモード追跡を行うための画面座標計算を示している。ジェスチャモードでは、骨格の右手位置が、コンピュータディスプレイ上のカーソル位置を制御するために使用される。右手の骨格点は、事前にコンピュータ支援設計システム１３０の座標空間に変換されている。カーソル位置は、ピクセル単位で２次元座標により表される。
【００５９】
ジェスチャモードで追跡しながら、アルゴリズムは、処理された最後の右手位置を有する変数（Ｐ）を維持する。新しい手の位置（Ｃ）が取得されたとき、前の位置からの位置の差分もしくは変化（Ｄ）が計算される。
Ｄ＝Ｃ−Ｐ
Ｐ＝Ｃ
【００６０】
差分ベクトル（Ｄ）１６０２は、ＹＺ平面１６０４上に垂直に投影されている（すなわち、Ｘ座標は無視する）。２次元の差分ベクトルは、次いで、メートルからピクセル単位に変換される。この変換は、まず、メートルからインチに変換し、次いで、１インチ当たりの表示ピクセル数を乗算することにより実施することができる。画面カーソル位置は、次いで、その現在位置の値から、差分ベクトルを減算することにより更新される。画面の座標軸は、ＹＺ平面軸の反対方向にあるので、減算することが必要である。
【００６１】
図１７は、例示的な実施形態により体肢角度を表すベクトルの図表１７００である。図１７は、どのようにして体肢角度が、セグメントを１つまたは複数の主平面上に投影することにより計算されるかを示している。体肢セグメントは、２点、すなわち、基点および端点により規定される。体肢１５２の方向は、図１７で示されるように、端点−基点により決まるベクトルである。投影は正射影であり、平面に垂直である。
【００６２】
図１８は、例示的な実施形態により体肢角度を表すベクトルの解析を提供するグラフである。図１８は、投影されたベクトルを表す。線セグメント（端部’−基部’）の投影されたベクトルは、Ｕ軸１８０６およびＶ軸１８０８に対して、それぞれ、平行な成分ｕ１８０２およびｖ１８０４を有する。投影された線の傾斜角は、標準のライブラリ関数ａｔａｎ２（ｖ，ｕ）を使用して計算され、引数として三角形の対辺および隣接辺を取る。
【００６３】
正規化に関して、例えば、前腕および下腿セグメントの角度は、腕および大腿セグメントの方向付けにそれぞれ依存している。本明細書で教示されるアルゴリズムにより行われる手法は、腕および大腿セグメントを正規化することであり、したがって、セグメントはＺ方向に位置合わせされる。前腕および下腿の対応する角度は、変換された位置から計算される。腰は、垂直もしくは直立させることができる。上体セグメントの正規化は、現在の使用に対しては必要ではない可能性があるが、本明細書で提供されるアルゴリズムは、このような変換も組み込むことができる。
【００６４】
図１９、図２０、図２１、および図２２は、例示的な実施形態による処理を受け入れる、平面および軸上で人体模型のセグメントに対してコンピュータ支援設計アプリケーションにより指定された角度を規定するテーブルである。図１９、図２０、図２１、および図２２で示されたテーブルは、処理される適用可能な平面および軸のそれぞれで、人体模型１５０のセグメントに対してコンピュータ支援設計システム１３０により指定された正の角度を規定している。投影されたセグメントの開始点は原点で示される。論議のために、すべての従属するセグメントは、その正規化された位置へと変換されていると仮定する。図１９におけるベクトル成分ｉ１９０２、ｊ１９０４、およびｋ１９０６は、指示された平面上に投影されたセグメントベクトルを表す。ベクトル成分ｉ１９０２、ｊ１９０４、およびｋ１９０６は、前に述べたａｔａｎ２関数に渡される符号値である。図２０、図２１、および図２２におけるベクトル成分は、図１９で示された対応する成分に割り当てられている。
【００６５】
図２３は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。前腕および下腿セグメント角度は、腕および大腿セグメントの方向付けにそれぞれ依存する。本明細書で提供されるアルゴリズムは、腕および大腿セグメントを正規化し、したがって、セグメントはＺ方向に位置合わせされる。前腕および下腿の対応する角度は、変換された位置から計算される。腰は垂直または直立である。上体セグメントの正規化は、現在の使用には必要ではない可能性があるが、本明細書で提供されるアルゴリズムは、必要に応じてこの変換を組み込むこともできる。図２３は、大腿が、ＸＺ平面２３０４でＺ軸２３０２と位置合わせされた右大腿および下腿のベクトルを示す。（ｈ）は股関節点２３０６であり、（ｋ）は膝点２３０８、かつ（ａ）は足首点２３１０である。ダッシュ点は、変換された位置を示す。
【００６６】
図２４は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示す。股関節から、変換された膝（ｋ’）点２４０２への変換された大腿ベクトルは、ＺＸ平面と位置合わせされるように、Ｘ軸に関してＹＺ平面２４０４内で回転される。
【００６７】
図２５は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。股関節（ｈ）２５０２から膝（ｋ）２５０４点へのベクトルは、ＹＺ平面２５０８へと、Ｙ軸に関してＺＸ平面２５０６内で回転される。
【００６８】
図２６は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを表す。変換された膝（ｋ’）点２６０２から変換された足首（ａ’）点２６０４への大腿ベクトルは、ＺＸ平面と位置合わせされるように、Ｘ軸に関してＹＺ平面２６０６内で回転される。この角度は、正のＹＺ平面２６０６回転とは反対であるために反転している。
【００６９】
図２７は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。肩（ｓ）２７０２点から肘（ｅ）２７０４点への腕ベクトルは、ＹＺ平面２７０８へと、Ｙ軸に関してＺＸ平面２７０６で回転される。
【００７０】
図２８は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。肩から、変換された肘（ｅ’）点２８０２への変換された腕ベクトルは、ＺＸ平面２８０６と位置合わせされるように、Ｘ軸に関してＹＺ平面２８０４内で回転される。
【００７１】
図２９は、例示的な実施形態により関連する体肢ベクトルの正規化を示すグラフを示している。変換された肘（ｅ’）点２９０２から、変換された手首（ｗ’）点２９０４への変換された腕ベクトルと、Ｘ軸２９０６との間の角度が計算される（Ｘ軸と位置合せされるように、Ｚ軸に関してＸＹ平面２９０８内で回転された場合）。
【００７２】
図３０は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。肩（ｓ）３００２から肘（ｅ）点３００４への腕ベクトルは、ＹＺ平面へと、Ｙ軸に関してＺＸ平面３００６内で回転される。
【００７３】
図３１は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。肩から、変換された肘（ｅ’）点３１０２への変換された腕ベクトルは、ＺＸ平面と位置合わせされるように、Ｘ軸に関してＹＺ平面３１０４内で回転される。この角度は、正のＹＺ平面回転とは反対であるため反転している。
【００７４】
図３２は、例示的な実施形態により関連する体肢のベクトルの正規化を示すグラフを示している。変換された肘（ｅ’）点３２０２から、変換された手首（ｗ’）点３２０４への変換された腕ベクトルと、Ｘ軸との間の角度が計算される（Ｘ軸と位置合わせされるように、Ｚ軸に関してＸＹ平面３２０６内で回転された場合）。この負の角度は、左腕の内旋／外旋を計算するために使用される。ＸＺおよびＹＺ平面におけるコンピュータ支援設計システム１３０の腕の角度の事前に計算されたテーブルは、正規化された腕ベクトルに関連付けることができる。このテーブルの見出し語は、＜θ、φ、ｉ、ｊ、ｋ＞の形をしており、θはＺＸ角、φはＹＺ角、およびｉ、ｊ、ｋは、正規化された腕ベクトル成分である。角度に対する範囲は、コンピュータ支援設計システム１３０により課せられた制限である。角度増分は１度である。左腕のベクトルは、ｊ成分を反転させることにより、右腕のベクトルから求めることができるので、テーブルは、右腕に対して計算する必要があるだけである。コンピュータ支援設計システム１３０に対するアプリケーションプログラミングインターフェースは、体肢１５２、体肢１５４、体肢１５６、および体肢１５８のうちの少なくとも１つのものの指定された自由度に対する姿勢角度を設定する関数ＳｅｔＶａｌｕｅと、指定された自由度で、体肢の正規化されたベクトルを返す関数ＧｅｔＤｉｒｅｃｔｉｏｎＩｎＧｌｏｂａｌとを提供する。
【００７５】
図３３は、例示的な実施形態によるサンプル的な参照テーブルである。参照は、骨格腕セグメントベクトルを計算し、次いで、参照テーブルを通して反復し、かつ腕ベクトルと事前に計算されたベクトルとのドット積を計算することにより行われる。ベクトルが同方向である場合、ドット積は正である。腕ベクトルと事前に計算されたベクトルが正確に一致している場合、ドット積は１になる。ベクトルが直交する場合、ドット積はゼロになる。ベクトルが反対方向にある場合、ドット積は負になる。これらの場合については、例示的な実施形態による体肢のベクトルを示すグラフを示している図３４で示されている。
【００７６】
最適な一致は、最大のドット積値になりうる（すなわち、１に最も近い）。最適な一致の関連するθおよびφ角度は、人体模型１５０の腕の姿勢を直接設定するために使用される。本明細書で提供されるアルゴリズムは、参照テーブルのセグメントベクトルと、ＺＸ平面およびＹＺ平面に対する関連する自由度の角度を記憶するデータ構造を規定する。参照テーブルのファイルコンテンツは、コマンドが呼び出されたとき、データ構造中にロードされる。
【００７７】
骨格セグメントベクトル（ｘｄｉｒ）、および望ましい自由度（ＺＸ平面に対してｄｏｆ＝０、またはＹＺ平面に対して１）を与えると、本明細書で提供されるアルゴリズムは、データ構造を通して反復し、かつ骨格腕ベクトルと事前に計算されたベクトルのドット積を計算する。アルゴリズムは、最適な角度を求めるために見出される最大ドット積値を追跡することができる。
【００７８】
図３５を次に参照すると、データ処理システムの例が、例示的な実施形態により示されている。図３５におけるデータ処理システム３５００は、図１のシステム１００など、あるいは本明細書で開示された任意の他のモジュールもしくはシステム、またはプロセスなど、例示的な実施形態を実施するために使用できるデータ処理システムの例である。この説明用の例では、データ処理システム３５００は、通信ファブリック３５０２を含み、通信ファブリック３５０２は、プロセッサユニット３５０４、メモリ３５０６、恒久的なストレージ３５０８、通信ユニット３５１０、入力／出力（Ｉ／Ｏ）ユニット３５１２、およびディスプレイ３５１４の間の通信を提供する。
【００７９】
プロセッサユニット３５０４は、メモリ３５０６にロードされうるソフトウェアに対する命令を実行するように働く。プロセッサユニット３５０４は、個々の実装形態に応じて、いくつかのプロセッサ、マルチプロセッサコア、または何らかの他のタイプのプロセッサとすることができる。「いくつかの（ａ  ｎｕｍｂｅｒ）」は、ある項目に対して本明細書で使用される場合、１つまたは複数の項目を意味する。さらに、プロセッサユニット３５０４は、主プロセッサが、単一のチップ上に第２のプロセッサと共に存在するいくつかの異種プロセッサシステムを用いて実装することができる。他の説明用の例として、プロセッサユニット３５０４は、同じタイプの複数のプロセッサを含む対称的なマルチプロセッサシステムとすることができる。
【００８０】
メモリ３５０６および恒久的なストレージ３５０８は、記憶デバイス３５１６の例である。記憶デバイスは、例えば、限定することなく、データ、プログラムコードなどの情報を機能的な形で、かつ／または他の適切な情報を一時的に、かつ／または永続的に記憶できるハードウェアの任意の部分である。記憶デバイス３５１６はまた、これらの例において、コンピュータ可読記憶デバイスと呼ぶこともできる。これらの例で、メモリ３５０６は、例えば、ランダムアクセスメモリ、または任意の他の適切な揮発性もしくは不揮発性記憶デバイスとすることができる。恒久的なストレージ３５０８は、個々の実装形態に応じて、様々な形態を取ることができる。
【００８１】
例えば、恒久的なストレージ３５０８は、１つまたは複数のコンポーネントまたはデバイスを含むことができる。例えば、恒久的なストレージ３５０８は、ハードドライブ、フラッシュメモリ、書換え形光ディスク、書換え形磁気テープ、または上記の何らかの組合せとすることができる。恒久的なストレージ３５０８により使用される媒体はまた、取外し可能にすることができる。例えば、取外し可能なハードドライブを、恒久的なストレージ３５０８に対して使用することができる。
【００８２】
これらの例で、通信ユニット３５１０は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット３５１０は、ネットワークインターフェースカードである。通信ユニット３５１０は、物理的通信リンクと無線通信リンクのいずれか、または両方を使用することにより通信を行うことができる。
【００８３】
入力／出力（Ｉ／Ｏ）ユニット３５１２により、データ処理システム３５００に接続できる他のデバイスと、データの入力および出力を行うことが可能になる。例えば、入力／出力（Ｉ／Ｏ）ユニット３５１２は、キーボード、マウス、および／または何らかの他の適切な入力デバイスを介してユーザ入力に対する接続を提供することができる。さらに、入力／出力（Ｉ／Ｏ）ユニット３５１２は、プリンタに出力を送ることができる。ディスプレイ３５１４は、ユーザに情報を表示するための機構を提供する。
【００８４】
オペレーティングシステムに対する命令、アプリケーション、および／またはプログラムは、記憶デバイス３５１６に位置することができ、記憶デバイス３５１６は、通信ファブリック３５０２を介してプロセッサユニット３５０４と通信状態にある。これらの説明用の例では、命令は、恒久的なストレージ３５０８上で機能的な形態で存在する。これらの命令は、プロセッサユニット３５０４で実行するためにメモリ３５０６にロードすることができる。様々な実施形態のプロセスは、メモリ３５０６など、メモリに位置することのできるコンピュータで実施される命令を用いて、プロセッサユニット３５０４により実施することができる。
【００８５】
これらの命令は、プロセッサユニット３５０４におけるプロセッサにより読み取られ、かつ実行できるプログラムコード、コンピュータで使用可能なプログラムコード、またはコンピュータ可読のプログラムコードと呼ばれる。様々な実施形態におけるプログラムコードは、メモリ３５０６または恒久的なストレージ３５０８など、様々な物理的な、またはコンピュータ可読の記憶媒体上で実施することができる。
【００８６】
プログラムコード３５１８は、選択的に取外し可能なコンピュータ可読媒体３５２０上に機能的な形態で位置しており、プロセッサユニット３５０４で実行するために、データ処理システム３５００にロードされる、または転送されうる。プログラムコード３５１８およびコンピュータ可読媒体３５２０は、これらの例で、コンピュータプログラム製品３５２２を形成する。一例では、コンピュータ可読媒体３５２０は、コンピュータ可読記憶媒体３５２４、またはコンピュータ可読信号媒体３５２６とすることができる。コンピュータ可読記憶媒体３５２４は、例えば、恒久的なストレージ３５０８の一部であるハードドライブなどの記憶デバイスへと転送するために、恒久的なストレージ３５０８の一部であるドライブまたは他のデバイスの中に挿入または配置される、例えば、光もしくは磁気ディスクを含むことができる。コンピュータ可読記憶媒体３５２４はまた、データ処理システム３５００に接続されるハードドライブ、サムドライブ、またはフラッシュメモリなど、恒久的なストレージの形態を取ることができる。いくつかの例では、コンピュータ可読記憶媒体３５２４は、データ処理システム３５００から取外し可能ではないこともありうる。
【００８７】
代替的に、コンピュータ可読信号媒体３５２６を用いて、プログラムコード３５１８をデータ処理システム３５００へと転送することができる。コンピュータ可読信号媒体３５２６は、例えば、プログラムコード３５１８を含む伝播されるデータ信号とすることができる。例えば、コンピュータ可読信号媒体３５２６は、電磁信号、光信号、および／または任意の他の適切なタイプの信号とすることができる。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、ワイヤ、および／または任意の他の適切なタイプの通信リンクなど、通信リンクを介して送信することができる。いいかえると、通信リンクおよび／または接続は、説明用の例において、物理的なものまたは無線とすることができる。
【００８８】
いくつかの例示的な実施形態では、プログラムコード３５１８は、データ処理システム３５００内で使用するために、コンピュータ可読信号媒体３５２６を通り、他のデバイスまたはデータ処理システムからネットワークを介して、恒久的なストレージ３５０８にダウンロードすることができる。例えば、サーバデータ処理システムにおけるコンピュータ可読記憶媒体に記憶されたプログラムコードは、ネットワークを介して、サーバからデータ処理システム３５００にダウンロードすることができる。プログラムコード３５１８を提供するデータ処理システムは、サーバコンピュータ、クライアントコンピュータ、またはプログラムコード３５１８を記憶し、かつ送信できる何らかの他のデバイスとすることができる。
【００８９】
データ処理システム３５００に関して例示された様々なコンポーネントは、様々な実施形態を実施できる態様に対するアーキテクチャ上の限定を与えることを意味するものではない。様々な例示的な実施形態は、データ処理システム３５００に関して例示したものに加えて、またはそれに代えるコンポーネントを含むデータ処理システムで実施することができる。図３５で示す他のコンポーネントは、示された説明用の例から変えることができる。様々な実施形態は、プログラムコードを動作させることのできる任意のハードウェアデバイスまたはシステムを用いて実施することができる。一例として、データ処理システムは、非有機的なコンポーネントと統合した有機的コンポーネントを含むことができる、かつ／またはヒトを除く完全に有機的コンポーネントから構成することができる。例えば、記憶デバイスは、有機半導体から構成することができる。
【００９０】
他の例示的な例では、プロセッサユニット３５０４は、特定の用途のために制作された、または構成された回路を有するハードウェアユニットの形態を取ることができる。このタイプのハードウェアは、オペレーションを実施するように構成するために、プログラムコードを記憶デバイスからメモリにロードする必要なく、オペレーションを実施することができる。
【００９１】
例えば、プロセッサユニット３５０４が、ハードウェアユニットの形態を取る場合、プロセッサユニット３５０４は、回路システム、ＡＳＩＣ（特定用途向け集積回路）、プログラム可能な論理デバイス、またはいくつかのオペレーションを実施するように構成された何らかの他の適切なタイプのハードウェアとすることができる。プログラム可能な論理デバイスを用いる場合、デバイスは、いくつかのオペレーションを実施するように構成される。デバイスは、いくつかのオペレーションを実施するように後で再構成する、または恒久的に構成することができる。プログラム可能な論理デバイスの例は、例えば、プログラム可能な論理アレイ、プログラム可能なアレイロジック、フィールドプログラマブル論理アレイ、書換え可能ゲートアレイ、および他の適切なハードウェアデバイスを含む。このタイプの実装形態では、様々な実施形態に対するプロセスがハードウェアユニットで実施されるため、プログラムコード３５１８を除外することができる。
【００９２】
さらに他の説明用の例では、プロセッサユニット３５０４は、コンピュータおよびハードウェアユニットで見出されるプロセッサの組合せを用いて実施することができる。プロセッサユニット３５０４は、プログラムコード３５１８を動作させるように構成された、いくつかのハードウェアユニットおよびいくつかのプロセッサを有することができる。この示された例の場合、いくつかのプロセスを、いくつかのハードウェアユニットで実施することができ、他のプロセスを、いくつかのプロセッサで実施することができる。
【００９３】
他の例として、データ処理システム３５００における記憶デバイスは、データを記憶できる任意のハードウェア装置である。メモリ３５０６、恒久的なストレージ３５０８、およびコンピュータ可読媒体３５２０は、有形な形態の記憶デバイスの例である。
【００９４】
他の例では、通信ファブリック３５０２を実装するためにバスシステムを使用することができ、バスシステムは、システムバスまたは入力／出力バスなど、１つまたは複数のバスから構成することができる。当然であるが、バスシステムは、バスシステムに接続された様々なコンポーネントもしくはデバイス間で、データ転送を提供する任意の適切なタイプのアーキテクチャを用いて実装することができる。さらに、通信ユニットは、モデムまたはネットワークアダプタなど、データを送信および受信するために使用される１つまたは複数のデバイスを含むことができる。さらに、メモリは、例えば、通信ファブリック３５０２に存在しうるインターフェースおよびメモリコントローラハブで見出されるものなど、メモリ３５０６、またはキャッシュとすることができる。
【００９５】
データ処理システム３５００はまた、連想メモリ３５２８を含むことができる。連想メモリ３５２８は、通信ファブリック３５０２と通信することができる。連想メモリ３５２８はまた、記憶デバイス３５１６と通信することができるが、あるいはいくつかの例示的な実施形態では、記憶デバイス３５１６の一部と見なすこともできる。１つの連想メモリ３５２８が示されているが、さらなる連想メモリが存在することもありうる。
【００９６】
本明細書で述べたいくつかの特定の、非限定的な実施形態では、例示的な実施形態は、ＭＩＣＲＯＳＯＦＴ（登録商標）から市販のＷＩＮＤＯＷＳ（登録商標）およびＫＩＮＥＣＴ（登録商標）ソフトウェアを用いて、ＯｐｅｎＮＩ（登録商標）オープンソースプラットフォームを用いることのできるＰＲＩＭＥＳＥＮＳＥ（登録商標）から市販の製品を用いて、ＫＩＣＫＳＴＡＲＴ，ＩＮＣ．（登録商標）から市販のＤＵＯ（登録商標）検知ソリューションを用いて、または他の製品を用いて実施することができる。しかし、例示的な実施形態で使用される骨格データならびに他のデータを取得するために、他の方法を使用することができる。したがって、例示的な実施形態は、上記で述べた製品またはソリューションに関して述べられた特定の実装形態に限定されることはなく、図１、図２ａ、および図２ｂに関して述べた汎用のシステム、方法、およびデバイスを使用することができる。同様に、例示的な実施形態は、本明細書で述べたいずれの特定の実装形態にも限定されない。例示的な実施形態は、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｓ  Ｓ．Ａ．（登録商標）から市販のＣＡＴＩＡ／ＤＥＬＭＩＡ（登録商標）ソフトウェア、ＳＩＥＭＥＮＳ  ＡＧ（登録商標）から市販のＮＸ（登録商標）もしくはＪＡＣＫ  ＡＮＤ  ＰＲＯＣＥＳＳ  ＳＩＭＵＬＡＴＥ  ＨＵＭＡＮ（登録商標）製品、ＰＴＣ，ＩＮＣ．（登録商標）から市販のＰｒｏ／Ｅｎｇｉｎｅｅｒ（登録商標）もしくはＣｒｅｏ（登録商標）、またはＡＵＴＯＤＥＳＫ，ＩＮＣ．（登録商標）から市販のＡＵＴＯＣＡＤ（登録商標）、あるいは他の製品を用いて実施することができる。したがって、特に特許請求しない限り、特許請求される本発明は、これらの特定の実施形態に限定されるものと読むべきではない。そうではあるが、特に特許請求されない限り、特許請求される本発明は、これらの特定の実施形態を含むものとして読むことができる。
【００９７】
検知デバイス１４０および他のコンポーネントは、多くの様々な製造者から利用可能な技術を使用することができる。検知デバイス１４０は、ＭＩＣＲＯＳＯＦＴ（登録商標）から市販のＫＩＮＥＣＴ（登録商標）ソフトウェアとすることができるが、上記で述べたように、ＯｐｅｎＮＩ（登録商標）オープンソースプラットフォームを用いることのできるＰＲＩＭＥＳＥＮＳＥ（登録商標）からの製品、またはＫＩＣＫＳＴＡＲＴ，ＩＮＣ．（登録商標）からのＤＵＯ（登録商標）検知ソリューションを使用することもできる。構造化光撮像技術に基づく他のソリューションまたは製品を使用することができる。検知デバイス１４０を提供するために使用できる構造化光イメージャの他のこのような供給者は、ＭＥＳＡ  ＩＭＡＧＩＮＧ  ＡＧ（登録商標）、ＯＭＥＫ  ＩＮＴＥＲＡＣＴＩＶＥ，ＬＴＤ．（登録商標）、ＳＯＦＴＫＩＮＥＴＩＣ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＳＡ／ＮＶ（登録商標）、ＰＭＤＴＥＣＨＮＯＬＯＧＩＥＳ  ＧＭＢＨ（登録商標）、およびＰＡＮＡＳＯＮＩＣ（登録商標）を含む。構造化光イメージャのさらなる供給者は、ＬＯＧＩＴＥＣＨ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＳＡ（登録商標）およびＮＡＭ  ＴＡＩ  ＥＬＥＣＴＲＯＮＩＣＳ，ＩＮＣ．（登録商標）、ＥＹＥＴＯＹ（登録商標）の製造者を含む。
【００９８】
構造化光撮像技術は、検知デバイス１４０を用いることができるが、本明細書の実施形態はまた、検知デバイス１４０と共に使用するために、他の検知技術を提供する。例えば、飛行時間（ｔｉｍｅ  ｏｆ  ｆｌｉｇｈｔ）技術を使用することができるが、その場合、オブジェクトまたは微粒子、あるいは音響波、電磁波、または他の波が、媒体を通る距離を移動するのに要した時間量が測定される。本明細書で述べられる例示的な実施形態で使用できる飛行時間技術を用いる製品は、ＰＡＮＡＳＯＮＩＣ  ＣＯＲＰＯＲＡＴＩＯＮ（登録商標）から市販のＤ−ＩＭＡＧＥＲ（登録商標）、ＳＯＦＴＫＩＮＥＴＩＣ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＳＡ／ＮＶ（登録商標）から市販のＤＥＰＴＨＳＥＮＳＥ（登録商標）製品、およびＣＡＮＥＳＴＡ（登録商標）により提供される相補的な金属酸化膜半導体センサを使用するＦＯＴＯＮＩＣ（登録商標）から市販の製品を含む。飛行時間技術に基づくこのような他の製品は、ＰＭＤＴＥＣＨＮＯＬＯＧＩＥＳ  ＧＭＢＨ（登録商標）から市販のＰＭＤ［ＶＩＳＩＯＮ］（登録商標）、ＳＩＥＭＥＮＳ  ＡＧ（登録商標）により提供される技術を使用できるＯＤＯＳ  ＩＭＡＧＩＮＧ  ＬＩＭＩＴＥＤ（登録商標）から市販のＲＥＡＬ．ＩＺ  ２＋３Ｄ（登録商標）、およびＣＥＮＴＲＥ  ＳＵＩＳＳＥ  Ｄ’ＥＬＥＣＴＲＯＮＩＱＵＥ  ＥＴ  ＭＩＣＲＯＴＥＣＨＮＩＱＵＥ，Ｓ．Ａ．（登録商標）（ＣＳＥＭ）に関連するＭＥＳＡ  ＩＭＡＧＩＮＧ  ＡＧ（登録商標）から市販のＳＷＩＳＳＲＡＮＧＥＲ（登録商標）製品を含む。飛行時間技術に基づくさらなる製品は、ＩＥＥ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＥＬＥＣＴＲＯＮＩＣＳ  ＆  ＥＮＧＩＮＥＥＲＩＮＧ  Ｓ．Ａ．（登録商標）から市販の３Ｄ−ＭＬＩ  ＳＥＮＳＯＲ（登録商標）、ＳＴＡＮＬＥＹ  ＥＬＥＣＴＲＩＣ  ＣＯ．，ＬＴＤ．（登録商標）から市販のＴＯＦＣＡＭ  ＳＴＡＮＬＥＹ（登録商標）、およびＴＲＩＤＩＣＡＭ  ＧＭＢＨ（登録商標）から市販の製品を含むことができる。したがって、本明細書で述べる特許請求される発明は、必ずしもいずれかの特定の例示的な実施形態に限定されない。さらに、上記で述べた例は、他の製品および他のタイプのソフトウェアを、例示的な実施形態と共に使用できるという意味において、非限定的なものである。
【００９９】
様々な例示的な実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアの要素を共に含む実施形態の形態を取ることができる。いくつかの実施形態は、これだけに限定されないが、例えば、ファームウェア、常駐するソフトウェア、およびマイクロコードなどの形態を含むソフトウェアで実施される。
【０１００】
さらに、様々な実施形態は、命令を実行するコンピュータ、または任意のデバイスもしくはシステムにより使用される、またはそれと共に使用されるプログラムコードを提供する、コンピュータで使用可能な媒体またはコンピュータ可読媒体からアクセスできるコンピュータプログラム製品の形態を取ることができる。本開示のために、コンピュータで使用可能媒体またはコンピュータ可読媒体は、概して、命令実行システム、装置、またはデバイスにより使用される、またはそれと共に使用されるプログラムを含み、記憶し、伝達し、伝播し、または移送することのできる任意の有形な装置とすることができる。
【０１０１】
コンピュータで使用可能媒体またはコンピュータ可読媒体は、例えば、限定することなく、電子的、磁気的、光学的、電磁的、赤外線、または半導体のシステム、あるいは伝播媒体とすることができる。コンピュータ可読媒体の非限定的な例は、半導体もしくは固体メモリ、磁気テープ、取外し可能なコンピュータディスケット、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読出し専用メモリ）、剛性のある磁気ディスク、および光ディスクを含む。光ディスクは、ＣＤ−ＲＯＭ（コンパクトディスク−読出し専用メモリ）、ＣＤ−Ｒ／Ｗ（コンパクトディスク−読出し／書込み）、およびＤＶＤを含むことができる。
【０１０２】
さらに、コンピュータで使用可能媒体またはコンピュータ可読媒体は、コンピュータ可読または使用可能なプログラムコードを含むまたは記憶することができ、したがって、コンピュータ可読または使用可能なプログラムコードがコンピュータで実行されたとき、このコンピュータ可読または使用可能なプログラムコードの実行により、コンピュータに、通信リンクを介して他のコンピュータ可読または使用可能プログラムコードを送信させる。この通信リンクは、限定することなく、例えば、物理的なものまたは無線である媒体を使用することができる。
【０１０３】
コンピュータ可読またはコンピュータ使用可能プログラムコードを記憶する、かつ／または実行するのに適したデータ処理システムは、システムバスなど、通信ファブリックを介してメモリ要素に直接的に、または間接的に結合された１つまたは複数のプロセッサを含むことになる。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、大容量ストレージ、およびキャッシュメモリを含むことができ、キャッシュメモリは、コードの実行中に大容量ストレージからコードを取り出すことのできる回数を減らすために、少なくともいくつかのコンピュータ可読またはコンピュータ使用可能プログラムコードの一時的な記憶を提供する。
【０１０４】
入力／出力、すなわちＩ／Ｏデバイスは、直接的に、または介在するＩ／Ｏコントローラを介してシステムに結合することができる。これらのデバイスは、例えば、限定することなく、キーボード、タッチスクリーンディスプレイ、および位置指示デバイスを含むことができる。データ処理システムを、介在する専用ネットワーク、または公衆網を介して他のデータ処理システム、または遠隔のプリンタ、または記憶デバイスに結合できるようにするために、様々な通信アダプタをまた、システムに結合することができる。モデムおよびネットワークアダプタの非限定的な例は、現在利用可能なタイプの通信アダプタのうちのほんの数タイプに過ぎない。
【０１０５】
さらに、本開示は、以下の項による実施形態を含む。
【０１０６】
項１．構造モデルを位置決めし、かつその設計環境を制御するための装置であって、
プロセッサと、
プロセッサと通信するメモリ（３５０６）と、
プロセッサと通信する動作検知入力デバイスであり、オブジェクトの動作を追跡し、かつオブジェクト上に位置する少なくとも１つの点に対する空間座標データの組を生成するように構成された動作検知入力デバイスと、
メモリ（３５０６）に記憶されたアプリケーション（１３２）とを備え、
アプリケーション（１３２）がプロセッサにより実行されたとき、アプリケーション（１３２）が、
動作検知入力デバイスから少なくとも１つの点に対する空間座標データの第１の組を受け取り、かつ
空間座標データをコンピュータ支援設計システム（１３０）に送り、コンピュータ支援設計システム（１３０）が、オブジェクト上に位置する点の動きに基づき、角度データを計算してオブジェクトのモデルの設計を更新する
ように構成される、装置。
【０１０７】
項２．オブジェクトが、人間工学的な人体模型（１５０）である、項１に記載の装置。
【０１０８】
項３．オブジェクト上に位置する点が、人間工学的な人体模型（１５０）の体肢上の関節である、項２に記載の装置。
【０１０９】
項４．アプリケーション（１３２）が、ある期間中に連続的に生成された空間座標の複数の観測結果を使用するように構成されており、複数の観測結果は、体肢の運動中に取り込まれたものである、項３に記載の装置。
【０１１０】
項５．アプリケーション（１３２）が、空間座標データの第１の組から骨格点データを生成する、項３に記載の装置。
【０１１１】
項６．アプリケーション（１３２）が、骨格点データから、人間工学的な人体模型の方向付けを指定するための体肢角度を計算する、項５に記載の装置。
【０１１２】
項７．体肢角度が、３次元空間の３つの主平面のうちの１つにおける角度指定により示される、項６に記載の装置。
【０１１３】
項８．角度指定が、コンピュータ支援設計システム（１３０）により規定される、項７に記載の装置。
【０１１４】
項９．コンピュータ支援設計システム（１３０）が、アプリケーション（１３２）により計算された骨格点間のセグメントの角度に基づいて、人体模型（１５０）の方向付けを指定する、項６に記載の装置。
【０１１５】
項１０．人間工学的な人体模型（１５０）を位置決めし、かつ人体模型設計環境を制御するためのプロセッサで実施される方法であって、
コンピュータが、動作検知入力デバイスから１組の空間座標を受け取ること（２０２）であり、空間座標が、人体モデルの体肢の少なくとも１つの関節の位置を示していること、
コンピュータが、コンピュータ支援設計アプリケーション（１３２）に、１組の空間座標を送ること（２０４）であり、コンピュータ支援設計アプリケーション（１３２）が、角度データの複数のインスタンスにより示された体肢角度の変化に基づいて、人間工学的な人体模型（１５０）の運動を表すこと、
コンピュータが、コンピュータ支援設計アプリケーション（１３２）から角度指定を受け取ること（２０６）であり、角度指定が、少なくとも１つの３次元平面における体肢の角度に対応していること、および
コンピュータが、受け取った角度指定に従って、１組の空間座標を角度データに変換すること（２０８）であり、角度データが、体肢の位置決めを示していること
を含む方法。
【０１１６】
項１１．動作検知入力デバイスが深度カメラである、項１０に記載の方法。
【０１１７】
項１２．深度カメラが、少なくともジェスチャおよび音声コマンドにより制御される、項１１に記載の方法。
【０１１８】
項１３．コンピュータが、動作検知入力デバイスをコンピュータ支援設計アプリケーション（１３２）と統合する複数のアルゴリズムを実行し、アルゴリズムは、全身追跡、および人体模型（１５０）の制御を可能にする、項１０に記載の方法。
【０１１９】
項１４．アルゴリズムが、人間工学的な人体模型（１５０）および開発環境の少なくとも一方を制御するために、動作検知入力デバイスにより収集された座標を、コンピュータ支援設計アプリケーション（１３２）により使用される座標形式へと変換する、項１３に記載の方法。
【０１２０】
項１５．アルゴリズムが、動作検知入力デバイスにより使用されるデータ形式と、コンピュータ支援設計アプリケーション（１３２）により使用されるデータ形式との間の不適合性を解決する、項１３に記載の方法。
【０１２１】
項１６．人間工学的な人体模型（１５０）を制御するために、動作検知入力デバイスを、コンピュータ支援設計アプリケーション（１３２）と統合するプロセッサで実施される方法が、
コンピュータが、人体モデルの運動中に、骨格関節の位置決めを表す３次元のｘ、ｙ、およびｚ座標を受け取ること（２１２）であり、ｘ、ｙ、およびｚ座標が、動作検知入力デバイスにより取り込まれたものであること、
コンピュータが、少なくとも１つの３次元平面における体肢角度を示す自由度を指定する情報を受け取ること（２１４）、
コンピュータが、自由度ならびにｘ、ｙ、およびｚ座標に基づいて、少なくとも１つの体肢角度を求めること（２１６）であり、求められた体肢角度が、人間工学的な人体模型（１５０）の方向付けを指定すること、および
コンピュータが、体肢の運動を表すのに使用するために、少なくとも１つの体肢角度をコンピュータ支援設計アプリケーション（１３２）に提供すること（２１８）
を含む方法。
【０１２２】
項１７．コンピュータが、人間工学的な人体模型（１５０）を、人体モデルで行われかつ動作検知入力デバイスにより取り込まれたものと同じ姿勢に、コンピュータ支援設計アプリケーション（１３２）によって少なくとも位置決めできるようにするために、動作検知入力デバイスを、コンピュータ支援設計アプリケーション（１３２）と統合する複数のアルゴリズムを実行する、項１６に記載の方法。
【０１２３】
項１８．複数のアルゴリズムで動作検知入力デバイスをコンピュータ支援設計アプリケーション（１３２）と統合することにより、人体モデルを、音声制御により、コンピュータ支援設計アプリケーション（１３２）の環境に対してさらに回転できるようにする、項１７に記載の方法。
【０１２４】
項１９．複数のアルゴリズムで動作検知入力デバイスをコンピュータ支援設計アプリケーション（１３２）と統合することにより、音声制御によって骨格追跡、人間工学的な人体模型（１５０）制御、およびコンピュータ支援設計アプリケーション（１３２）の環境の画面オーバーレイメニューの間を切り換えることをさらに可能にする、項１７に記載の方法。
【０１２５】
項２０．複数のアルゴリズムで動作検知入力デバイスをコンピュータ支援設計アプリケーション（１３２）と統合することにより、音声コマンドおよび体の動作の組合せを使用して、コンピュータ支援設計アプリケーション（１３２）のワークベンチ環境で、パン、ズーム、および回転のうちの少なくとも１つを含む機能をさらに実施できるようにする、項１７に記載の方法。
【０１２６】
様々な例示的な実施形態の記述が、例示および説明の目的で示されてきているが、網羅的であること、または開示された形態の諸実施形態に限定されることを意図するものではない。当業者であれば、多くの変更形態および変形形態が明らかであろう。さらに、様々な例示的な実施形態は、他の例示的な実施形態と比較して、様々な特徴を提供することができる。選択された１つまたは複数の実施形態は、実施形態の原理、実際の用途を最もよく説明するために、かつ企図される特定の用途に適した様々な変更と共に、様々な実施形態に対する開示を当業者に理解できるようにするために、選択されかつ述べられている。
【符号の説明】
【０１２７】
１００  システム
１１０  データ送信サーバ
１２２  サーバコンポーネント
１３０  コンピュータ支援設計システム
１３２  変換アプリケーション、コンピュータ支援設計アプリケーション
１３４  クライアントコンポーネント
１３６  コマンドコンポーネント
１３８  対話コンポーネント
１４０  検知デバイス
１５０  人体模型
１５２  体肢
１５４  体肢
１５６  体肢
１５８  体肢
３００  システム
３１０  コンピュータ
３２２  サーバコンポーネント
３３０  コンピュータ支援設計システム
３４０  検知デバイス
５００  システム
５２２  サーバコンポーネント
５３０  コンピュータ支援設計システム
５３４  クライアントコンポーネント
５３６  コマンドコンポーネント
５３８  対話コンポーネント
５４０  検知デバイス
５６０  オペレーティングシステム
５７０  マイクロフォン
６００  直交座標系
６０２  Ｘ軸
６０４  Ｙ軸
６０６  Ｚ軸
６０８  ＸＹ平面
６１０  ＹＺ平面
６１２  ＺＸ平面
７００  ＺＸ座標
７０２  角度指定
７０４  ＺＸ平面
８００  ＺＹ座標
８０２  角度指定
８０４  ＹＺ平面
９００  検知デバイスの座標系
９０２  Ｘ軸
９０４  Ｙ軸
９０６  Ｚ軸
１０００  系
１００２  位置＿頭
１００４  肩＿右
１００６  肩＿中心
１００８  肩＿左
１０１０  肘＿右
１０１２  肘＿左
１０１４  位置＿脊柱
１０１６  手首＿右
１０１８  手首＿左
１０２０  股関節＿右
１０２２  股関節＿中心
１０２４  股関節＿左
１０２６  手＿右
１０２８  手＿左
１０３０  膝＿右
１０３２  膝＿左
１０３４  足首＿右
１０３６  足首＿左
１０３８  足＿右
１０４０  足＿左
１０４２  頭
１０４４  腕Ｒ
１０４６  腕Ｌ
１０４８  腰
１０５０  前腕Ｒ
１０５２  前腕Ｌ
１０５４  手Ｒ
１０５６  手Ｌ
１０５８  大腿Ｒ
１０６０  大腿Ｌ
１０６２  下腿Ｒ
１０６４  下腿Ｌ
１０６６  足Ｒ
１０６８  足Ｌ
１０７０  Ｘ軸
１０７２  Ｙ軸
１０７４  Ｚ軸
１１００  系
１１４２  頭
１１４４  腕Ｒ
１１４６  腕Ｌ
１１４８  腰
１１５０  前腕Ｒ
１１５２  前腕Ｌ
１１５４  手Ｒ
１１５６  手Ｌ
１１５８  大腿Ｒ
１１６０  大腿Ｌ
１１６２  下腿Ｒ
１１６４  下腿Ｌ
１１６６  足Ｒ
１１６８  足Ｌ
１１７０  Ｘ軸
１１７２  Ｙ軸
１１７４  Ｚ軸
１２００  人体模型
１２０２  Ｙ軸
１２０４  Ｚ軸
１３００  人体模型
１３０２  Ｘ軸
１３０４  Ｚ軸
１４００  人体模型
１４０２  Ｘ軸
１４０４  Ｚ軸
１５００  人体模型
１５０２  Ｘ軸
１５０４  Ｙ軸
１６００  座標を示す図表
１６０２  差分ベクトル（Ｄ）
１６０４  ＹＺ平面
１７００  ベクトルの図表
１８０２  成分ｕ
１８０４  成分ｖ
１８０６  Ｕ軸
１８０８  Ｖ軸
１９０２  ベクトル成分ｉ
１９０４  ベクトル成分ｊ
１９０６  ベクトル成分ｋ
２３０２  Ｚ軸
２３０４  ＸＺ平面
２３０６  股関節点
２３０８  膝点
２３１０  足首点
２４０２  変換された膝（ｋ’）点
２４０４  ＹＺ平面
２５０２  股関節（ｈ）点
２５０４  膝（ｋ）点
２５０６  ＺＸ平面
２５０８  ＹＺ平面
２６０２  変換された膝（ｋ’）点
２６０４  変換された足首（ａ’）点
２６０６  ＹＺ平面
２７０２  肩（ｓ）点
２７０４  肘（ｅ）点
２７０６  ＺＸ平面
２７０８  ＹＺ平面
２８０２  変換された肘（ｅ’）点
２８０４  ＹＺ平面
２８０６  ＺＸ平面
２９０２  変換された肘（ｅ’）点
２９０４  変換された手首（ｗ’）点
２９０６  Ｘ軸
２９０８  ＸＹ平面
３００２  肩（ｓ）点
３００４  肘（ｅ）点
３００６  ＺＸ平面
３１０２  変換された肘（ｅ’）点
３１０４  ＹＺ平面
３２０２  変換された肘（ｅ’）点
３２０４  変換された手首（ｗ’）点
３２０６  ＸＹ平面
３５００  データ処理システム
３５０２  通信ファブリック
３５０４  プロセッサユニット
３５０６  メモリ
３５０８  恒久的なストレージ
３５１０  通信ユニット
３５１２  入力／出力（Ｉ／Ｏ）ユニット
３５１４  ディスプレイ
３５１６  記憶デバイス
３５１８  プログラムコード
３５２０  コンピュータ可読媒体
３５２２  コンピュータプログラム製品
３５２４  コンピュータ可読記憶媒体
３５２６  コンピュータ可読信号媒体
３５２８  連想メモリ
【図１】
2014203463.tif 000004
【図２ａ】
2014203463.tif 000005
【図２ｂ】
2014203463.tif 000006
【図３】
2014203463.tif 000007
【図４】
2014203463.tif 000008
【図５】
2014203463.tif 000009
【図６】
2014203463.tif 000010
【図７】
2014203463.tif 000011
【図８】
2014203463.tif 000012
【図９】
2014203463.tif 000013
【図１０】
2014203463.tif 000014
【図１１】
2014203463.tif 000015
【図１２】
2014203463.tif 000016
【図１３】
2014203463.tif 000017
【図１４】
2014203463.tif 000018
【図１５】
2014203463.tif 000019
【図１６】
2014203463.tif 000020
【図１７】
2014203463.tif 000021
【図１８】
2014203463.tif 000022
【図１９】
2014203463.tif 000023
【図２０】
2014203463.tif 000024
【図２１】
2014203463.tif 000025
【図２２】
2014203463.tif 000026
【図２３】
2014203463.tif 000027
【図２４】
2014203463.tif 000028
【図２５】
2014203463.tif 000029
【図２６】
2014203463.tif 000030
【図２７】
2014203463.tif 000031
【図２８】
2014203463.tif 000032
【図２９】
2014203463.tif 000033
【図３０】
2014203463.tif 000034
【図３１】
2014203463.tif 000035
【図３２】
2014203463.tif 000036
【図３３】
2014203463.tif 000037
【図３４】
2014203463.tif 000038
【図３５】
2014203463.tif 000039
【外国語明細書】
2014203463000001.pdf
2014203463000002.pdf
2014203463000003.pdf
2014203463000004.pdf