"コンピュータで可読な媒体であって、その中に命令が保存されていて、その命令は、プロセッサによって実行されると、そのプロセッサにモバイル機器においてジェスチャ認識を実行させる命令である構成において、ジェスチャ認識が、シミュレートした物理的実体を作製し、モバイル機器において、感知したジェスチャに応じてセンサデータを受信し、そのセンサデータには、力または衝撃を含み、その力または衝撃を、シミュレートした物理的実体に加え、加えた力または衝撃に応じて、シミュレートした物理的実体の状態を監視し、シミュレートした物理的実体の監視状態に少なくとも基づいた入力を、アプリケーションに供することを特徴とするコンピュータ可読媒体。アプリケーションへの入力が、ユーザインタフェースとの対話を含む請求項1に記載のコンピュータ可読媒体。ユーザインタフェースが、シミュレートした物理的実体に実質的に類似する画像を表示する請求項2に記載のコンピュータ可読媒体。ユーザインタフェースが、対話に応じて変更される画像を表示し、その画像が、押ボタン、スライダまたはスクロールリストの少なくとも1つを含む請求項2に記載のコンピュータ可読媒体。アプリケーションが、入力に応じて触覚効果を生成する請求項1に記載のコンピュータ可読媒体。触覚効果が、シミュレートした物理的実体の監視状態のフィードバックを含む請求項5に記載のコンピュータ可読媒体。触覚効果が、シミュレートした物理的実体の物理状態のフィードバックを含む請求項5に記載のコンピュータ可読媒体。触覚効果が、モバイル機器において、アクチュエータによって生成される振動を含む請求項5に記載のコンピュータ可読媒体。シミュレートした物理的実体が、コンテナ内のボールであり、1次元運動に拘束される請求項1に記載のコンピュータ可読媒体。力または衝撃が、加速度計によって感知される請求項1に記載のコンピュータ可読媒体。アプリケーションが、監視状態をジェスチャとして認識する請求項1に記載のコンピュータ可読媒体。コンピュータに実装され、モバイル機器においてジェスチャ認識を実行する方法であって、シミュレートした物理的実体を作製し、モバイル機器において、感知したジェスチャに応じてセンサデータを受信し、そのセンサデータには、力または衝撃を含み、その力または衝撃を、シミュレートした物理的実体に加え、加えた力または衝撃に応じて、シミュレートした物理的実体の状態を監視し、シミュレートした物理的実体の監視状態に少なくとも基づいた入力を、アプリケーションに供することを特徴とするコンピュータ実装方法。アプリケーションが、入力に応じて触覚効果を生成する請求項12に記載のコンピュータ実装方法。シミュレートした物理的実体が、コンテナ内のボールであり、1次元運動に拘束される請求項12に記載のコンピュータ実装方法。アプリケーションが、監視状態をジェスチャとして認識する請求項12に記載のコンピュータ実装方法。プロセッサと、プロセッサに接続されるメモリと、プロセッサに接続されジェスチャを感知するセンサとを備えたシステムであって、メモリが、命令を含み、その命令がプロセッサによって実行されると、シミュレートした物理的実体を作製し、ジェスチャに応じてセンサから力を受信し、その力を、シミュレートした物理的実体に加え、加えた力に応じて、シミュレートした物理的実体の状態を監視し、シミュレートした物理的実体の監視状態に少なくとも基づいた入力を、アプリケーションに供することを特徴とするシステム。プロセッサに接続されるアクチュエータを備え、アプリケーションが、入力に応じてアクチュエータに触覚効果を生成させる請求項15に記載のシステム。シミュレートした物理的実体が、コンテナ内のボールであり、1次元運動に拘束される請求項15に記載のシステム。本発明の一実施形態は、モバイル機器においてジェスチャを認識するジェスチャ認識システムである。システムは、モバイル機器において感知したジェスチャに応じてセンサデータを受信する。センサデータは、力または衝撃を含む。力または衝撃は、シミュレートした物理的実体に加えられ、シミュレートした物理的実体の状態が監視される。入力は、シミュレートした物理的実体の監視状態に少なくとも基づいて、アプリケーションに提供される。本発明の一実施形態として、アプリケーションに機能を追加し、ユーザインタフェースを提供するためにジェスチャ認識を組み込んだモバイル機器が挙げられる。この機器は、シミュレートした物理系と、物理系の監視によって決まる状態遷移を有する状態機械とを含む。各状態は、認識したジェスチャに対応させてもよく、認識したジェスチャに基づいて触覚効果を生成してもよい。図1は、本発明の一実施形態によるモバイル機器50の斜視図である。図に示すモバイル機器50は携帯電話である。しかし、他の実施形態における機器50は、ポータブルデジタルアシスタントPDA、ポータブルメディアプレーヤ、ポータブルゲーム機などを含むあらゆる種類の携帯端末であってよい。機器50は、ユーザーと、機器50において実行するソフトウェアアプリケーションとを相互作用させることが可能なユーザインタフェースUI60を含む。さらに、機器50は、手55を使って機器50を操作するなどの意味のある方法で、ユーザーと機器50及びUI60が相互作用することが可能なジェスチャ認識システム図示せずを含み、以下に、さらに詳細を開示する。図2は、本発明の一実施形態によるジェスチャ認識システム10のブロック図である。システム10は、図1のモバイル機器50の一部であり、ジェスチャ認識機能を提供する。システム10の機能は、単一のシステムとして示しているが、分散システムとして実装することもできる。システム10は、情報を通信するためのバス12または他の通信機構と、バス12に接続され、情報を処理するためのプロセッサ22とを含む。プロセッサ22は、あらゆる種類の一般目的用または特定目的用のプロセッサであってよい。さらに、システム10は、情報と、プロセッサ22によって実行される命令とを保存するメモリ14を含む。メモリ14は、ランダムアクセスメモリRAM、リードオンリーメモリROM、磁気ディスクもしくは光ディスクなどの静的記憶装置または他のあらゆる種類のコンピュータ可読媒体のあらゆる組み合わせから成ることができる。コンピュータ可読媒体は、プロセッサ22によってアクセスできるあらゆる利用可能な媒体であってよく、揮発性媒体、不揮発性媒体、取り外し可能な媒体ならびに取り外し不可能な媒体及び通信媒体を含む。通信媒体は、搬送波または他の搬送機構などの変調されたデータ信号に、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを含んでもよく、あらゆる情報配信媒体を含む。本実施例では、メモリ14は、プロセッサ22によって実行される場合に機能を提供するソフトウェアモジュールを保存する。モジュールは、機器50の他の部分と同じように、システム10にオペレーティングシステム機能を提供するオペレーティングシステム15を含む。さらに、モジュールは、ユーザーのジェスチャを認識するジェスチャ認識モジュール16を含み、以下に、さらに詳細に開示する。システム10は通常、触覚効果を生成するアプリケーションや、アプリケーションへの入力として認識したジェスチャを使用できるように、モジュール16と対話するアプリケーションなどの追加機能を含むために、1または複数の追加アプリケーションモジュール18を含むことができる。システム10は、リモートソースからデータを送信及び/または受信する実施形態では、赤外線、無線、Wi-Fi登録商標またはセルラネットワーク通信などの移動無線ネットワーク通信を提供するネットワークインタフェースカードなどの通信装置20をさらに含む。他の実施形態では、通信装置20は、イーサネット登録商標接続またはモデムなどの有線ネットワーク接続を提供する。さらに、プロセッサ22は、ユーザーに対して画像表現またはユーザインタフェースを表示するための液晶ディスプレイLCDなどのディスプレイ24に、バス12を介して接続される。ディスプレイ24は、プロセッサ22から信号を送受信するように構成されたタッチスクリーンなどのタッチセンサ式入力装置であってよく、マルチタッチのタッチスクリーンであってよい。さらに、システム10は、1または複数のアクチュエータ26を含む。プロセッサ22は、触覚効果を順に出力するアクチュエータ26に、触覚効果に関連した触覚信号を送信してもよい。アクチュエータ26は、例えば、電気モータ、電磁アクチュエータ、ボイスコイル、圧電アクチュエータ、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータERMまたはリニア振動アクチュエータLRAであってよい。さらに、システム10は、1または複数のセンサ28を含む。センサ28は、加速度計、ジャイロスコープ、全地球測位システムGPSセンサ、タッチセンサ式入力装置例えば、タッチスクリーン、タッチパッド、テクスチャスタイラス、画像センサまたはいくつかの他の種類のセンサを含んでよい。センサ28は、加速、傾斜、慣性または位置の変化を検知するように構成してもよい。また、センサ28は、位置センサ、回転速度センサ、光センサ、圧力センサ、テクスチャセンサ、カメラ、マイクロホンまたは他の種類のセンサを含んでもよい。図1のモバイル機器50が、ジェスチャの結果としてユーザーによって動かされると、センサ28は、これらの動きを検知し、機器50の動きに少なくとも一部基づいてセンサ信号を生成することができる。ジェスチャは、加速度計、ジャイロスコープまたはいくつかの他のセンサによって測定される三次元ジェスチャを含んでもよい。三次元ジェスチャは、回転、軽打、突きまたはその他の方法で機器全体50を動かすことを含んでもよい。本実施例では、ジェスチャ認識システム10は、モバイル機器50の物理動作によって力を受ける物理的実体をシミュレートし、オブザーバは、ジェスチャを判定するために、シミュレートした物理的実体の状態を追跡する。判定されたジェスチャは、入力として関連ソフトウェアアプリケーションに提供可能であり、ジェスチャに応じてユーザーにフィードバックを与えるように、アプリケーションに触覚効果を生成させることができる。物理シミュレーションは、認識されるジェスチャに類似したものであってよく、1次元世界における質点を有する単一の実体程度の単純なものであってよく、あるいは、用途に応じてさらに複雑なものであってよい。図3は、本発明の一実施形態でシミュレートした物理的実体の一例に関するブロック図である。この例では、ジェスチャ認識システム10は、UI60に画像で示す壁面スイッチなどのスイッチが上/オンまたは下/オフであるかを判定するために、ジェスチャを認識する。本実施例では、シミュレートした物理的実体は、チューブまたはコンテナ106に入ったボール102である。ボール102は、ボール102がスライド上にあるかのように、矢印104で示す上下運動に制限される。ボール102は、常に、軸xxと速度v、即ちx,vに関する位置によって特徴付けられる。図4は、一実施形態によるボール102をシミュレートした運動を示す図である。力が加わっていない場合、ボール102は、線105で示すコンテナ106の中心に留まっている。ポテンシャル関数Uxの空間導関数によって表されるように、一定のバックグラウンド力がボール102に加わる。図4に示すポテンシャルでは、コンテナ106の中心に正味ゼロのバックグラウンド力がある。シミュレートした物理系では、下向き方向に加わる力によって、ポテンシャルUxの勾配に従い、ボール102がコンテナ106の底部に摺動する。同じように、力が上向き方向に加わると、ボール102はコンテナ106の上部に摺動する。加わる力は、ポテンシャル関数Uxの導関数d/dxとして特徴付けることができ、これは、各xで実体102に加わる力であり、xは実体の空間位置である。この力は、図4の例のように線形であってよく、周期多様体例えば、xが角度の場合、あらゆる他の関数Ux、または、パラメータ化された群の関数Ux,p式中、pはパラメータであってもよい。バックグラウンド力の特定は、アルゴリズムが捕らえるジェスチャの種類を判定するのに有用である。図5は、一実施形態に従って、例えば、手の動作/ジェスチャによって空間で動かされるモバイル機器50の斜視図である。図3及び4の例に関しては、加速度計がY軸軸110方向の加速度を測定するのは、これがUI60に示すスイッチをオンまたはオフに軽打するジェスチャに関係している方向であるからである。加速度は、ayで示す。図6は、一実施形態に従ってジェスチャを認識するために、シミュレートした物理的実体102を監視する有限状態機械600またはオブサーバのブロック図である。本実施例では、図6の有限状態機械600の機能及び図8のフローチャートは、メモリまたは他のコンピュータ可読媒体もしくは有形媒体に保存され、プロセッサによって実行されるソフトウェアによって実施される。他の実施形態では、機能は、ハードウェア例えば、特定用途向け集積回路ASIC、プログラマブルゲートアレイPGA、フィールドプログラマブルゲートアレイFPGAなどの使用によるまたはハードウェアとソフトウェアのあらゆる組み合わせによって実行することができる。図7は、一実施形態に従って、2つの閾値xxup及びxdownを含むコンテナ106内のシミュレートした物理的実体を示す。閾値xは、シミュレートしたスイッチが上または下にあるかを判定するために、有限状態機械600によって使用される。602では、実体102は、位置x=0及び速度v=0に初期化される。604では、実体102の位置xと速度vが監視される。本実施例では、以下の擬似コードが、604の監視状態を実装する。getsensordataconvertsensorstoforcesapplyforcestoobjecttimestepphysicsifcollision,playhapticeffectobservephysicalstate上記の擬似コードは、センサ28からセンサデータを得て、シミュレートした物理的実体102の力または衝撃にセンサデータをマッピングし、数値積分器を使用して、力または衝撃をシミュレートしtimestepphysics、実体の位置と速度軌道を算出する。力によって、実体102がコンテナ106の端部に衝突する場合、本実施例では、衝突を知らせる振動などの触覚効果を生成する。以下に、上記の擬似コードの機能の実装例をいくつか示す。Convertsensorstoforces本実施例では、加速度値ayは、一連の増分閾値に対して値を比較することによって、速度衝撃にマッピングされる。特定の閾値を超えていて、次に高い閾値未満の加速度であれば、シミュレートした物理的実体102の衝撃速度の不連続変化を生成することになる。Applyforcestoobject本実施例では、力は、ニュートンの運動の法則を使用して力の和に加算される。また、任意に、シミュレートした物理的実体に連続力を加える重力などの力場があってもよい。この力場は、センサに関連していてもよく、シミュレーションに結びつくUI要素に何らかの方法で関係するポテンシャル障壁を実体にもたらすように設計されてもよい。Timestepphysics本実施例では、シミュレートした物理的実体の位置及び速度を算出するために、前進オイラー法、ルンゲクッタ法または後退微分公式BDF登録商標などの標準の数値積分法が使用される。Collisions実体の衝突は、シミュレーションコンテナ106の及ぶ範囲に対する位置を監視することによって算出される。実体のx値が、シミュレートしたコンテナの端部からシミュレートした円の半径未満である場合は、実体は境界に衝突したと考えられる。この衝突により、実体がシミュレートしたコンテナの物理的限界を超えて運動しないように、必要に応じてさらに力または衝撃が生成される。いくつかの実施形態では、境界との衝突または対象とする他の位置または速度に応じて、モバイル機器が内部に実体を含む印象をユーザーに与える触覚フィードバックを誘発してもよい。また、木製の傾斜、鋼製の傾斜または他の材料の上を転がるボールをシミュレートするかのように、実体が動作するような触覚フィードバックを生成してもよい。シミュレートした傾斜の幾何学的特徴は、ポテンシャル関数Uxの変動であると考えることができ、ボールがポテンシャルによって動作するような触知フィードバックをもたらすことができる。604では、実体102の位置がxdown未満の場合は、606で下の状態が入力され、スイッチは押し下げられているとみなされる。下イベントが、図2のプロセッサ22に送信され、アプリケーションへの入力として提供され、スイッチが下がることをUI60に表示させる。さらに、本実施例では、プロセッサ22は、スイッチが下の状態に動いたことを示すために、アクチュエータ26に振動などの触覚効果を生成させる。その後、フローは604に戻る。604では、実体102の位置がxupを超えている場合は、608で上の状態が入力され、スイッチは押し上げられているとみなされる。上イベントが、図2のプロセッサ22に送信され、アプリケーションへの入力として提供され、スイッチが上がることをUI60に表示させる。さらに、本実施例では、プロセッサ22は、スイッチが上の状態に動いたことを示すために、アクチュエータ26に振動などの触覚効果を生成させる。その後、フローは604に戻る。図に示すように、上記の例において、1種類以上の触覚効果を生成してもよい。一方の種類の触覚効果によって、スイッチが上の状態から下の状態に、あるいはその逆に動作したことを知らせる。もう一方の触覚効果では、ボール102がコンテナ106の端部と衝突したかどうかなど、監視状態よりむしろ実体/ボール102の物理状態を知らせる。他の実施形態では、シミュレートした物理的実体は、UI60でシミュレートした物理的実体に対応または実質的に類似している。例えば、UI60及びその基本的なアプリケーションは、ユーザーが、ページをめくるジェスチャでページを変えることができるフリップブックを表示してもよい。この例では、シミュレートした物理的実体102はフリップブックであると考えられ、オブザーバ600はモバイル機器50に加わる力に応じてシミュレートしたフリップブックの状態を監視することになる。その動きによって、シミュレートしたフリップブックのページをめくることになる場合、UI60で表示されるフリップブックはめくられるページを示すことになり、触覚効果を生成してめくられるページを示してもよい。別の実施形態では、UI60は、ユーザーのジェスチャによって上または下にスクロールできる連絡先リストを表示する。連絡先リストの一部のみが一度に提示され、ユーザーはモバイル機器50をめくり上げ、あるいは、めくり下げてリストのスクロールを開始することができる。ユーザーがモバイル機器50を止めると、スクロールは、減速し、最終的には停止する。この実施形態では、シミュレートした物理装置は、実体がラチェッティング部に沿って滑り降り、最終的には、速度を落としてスロットに入るラチェッティング装置であってよい。このシミュレートした物理装置は、ボールである実体を備えるルーレット盤と類似していてもよい。オブザーバは、回転している状態と、実体/ボールが、スクロールの減速方法を判定するタイミングで、最終的にスクロールを止めようとするところに入る状態とを監視することができる。触覚効果は、ラチェッティングを反映するように生成することができる。連絡先リストの端部に達すると、リストが逆方向にスクロールし始めるように、跳ね返りをシミュレートすることができる。他の実施形態では、ポテンシャル関数Uxは、特定の時間周波数で装置が上下運動することを必要とする反復ジェスチャに対応しうるsinxなどの周期関数であってよい。さらに、システムは、二次元であり、2つの加速度計信号すなわちax及びayからセンサ入力を取り込むことが可能である。そのようなシステムは、特定の状態を達成するように、二次元のさらに複雑な空間運動を必要としてもよい。これは、振動、傾転及び周期的な空間運動に反応しうるメディアプレーヤなど、さらに多くの基本制御を備えるアプリケーションのジェスチャ制御に有用でありうる。別の実施形態では、物理系は、マッピングさせる多次元センサによる複数のポテンシャル関数のカルテシアン積でありうる。上記の実施形態のように、このシステムは、さまざまな複雑な空間運動または他の感知されたジェスチャを可能にし、ゲーム、生産性アプリケーション、電話ダイヤラなどを含む複雑なUIの制御を提供する。図8は、アプリケーションと連動してジェスチャを認識する場合の一実施形態によるジェスチャ認識モジュール16の機能に関するフローチャートである。802では、シミュレートした物理的実体を作製する。本実施例では、シミュレートした物理的実体は、アプリケーションによって実装した実体に関係する。例えば、アプリケーションがUI上のフリップブックの表示部である場合、シミュレートした物理的実体は、フリップブックであってよい。804では、モバイル機器を動かす手などのジェスチャに応じて、シミュレートした物理的実体に力または衝撃を加える。モバイル機器のセンサによって、力または衝撃をセンサデータの形式で生成する。806では、シミュレートした物理的実体の、力に応じた状態を監視する。本実施例では、オブザーバは有限状態機械である。808では、シミュレートした物理的実体の状態変化に基づいてアプリケーションに入力を提供する。アプリケーションは、機能を提供するためにこの入力を用いることができ、それに応じて、1または複数の触覚効果を生成してもよい。以上のように、本実施例では、物理シミュレーション及び状態機械の2つの主要要素を用いるジェスチャ認識を提供する。物理シミュレーションは、認識されるジェスチャに類似したものであってよく、1次元世界における質点を有する単一の実体程度の単純なものであってよく、あるいは、用途に応じてさらに複雑なものであってよい。システムの状態機械構成要素は、有限状態機械インフラストラクチャとオブザーバ構成要素とから成る。オブザーバ構成要素は、物理シミュレーションの1または複数の物理パラメータを監視し、これらを用いて、UI要素、アプリケーションの状態または他のジェスチャの応答への変化をもたらしうる状態遷移を誘発する。さらに、状態遷移は、離散的であり、あるいは、監視される物理パラメータの1または複数の関数である多様な触覚聴覚フィードバックを生成してもよい。最後に、各状態は実体に加わる力である関数Uxを変更してもよく、あるいは、他の変化を物理系に導入してもよい。例えば、装置の傾斜角を用いてパラメータ化された群の関数Uxから関数を選択することが可能である。得られる結果は、複雑な統計解析に依存せず、アプリケーションに特異的に適合しないジェスチャ認識のための一般的なフレームワークである。本明細書にいくつかの実施例を明確に示し記載した。本発明の趣旨から逸脱しない範囲で、実施形態の変更や変形が可能である。"