操作制御装置,操作制御プログラムおよび操作制御方法
【課題】ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる技術を提供する。
【解決手段】操作制御装置10において,位置取得部11は,ユーザのジェスチャ操作に伴った,手などの特定の物体の位置を取得する。距離計算部12は,特定の物体と操作オブジェクトとの間の距離を計算する。速度計算部13は,特定の物体の速さを計算する。作用量算出部14は,特定の物体の移動の操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する。作用部15は,作用量算出部14の算出結果に従って,操作オブジェクトの運動を制御する。情報表示内容計算部16は,操作オブジェクトの運動に応じて,スクロールなどの画面の表示内容を計算する。情報表示部17は,情報表示内容計算部16の計算結果に従って,情報を表示装置30の画面に表示する。
【解決手段】操作制御装置10において,位置取得部11は,ユーザのジェスチャ操作に伴った,手などの特定の物体の位置を取得する。距離計算部12は,特定の物体と操作オブジェクトとの間の距離を計算する。速度計算部13は,特定の物体の速さを計算する。作用量算出部14は,特定の物体の移動の操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する。作用部15は,作用量算出部14の算出結果に従って,操作オブジェクトの運動を制御する。情報表示内容計算部16は,操作オブジェクトの運動に応じて,スクロールなどの画面の表示内容を計算する。情報表示部17は,情報表示内容計算部16の計算結果に従って,情報を表示装置30の画面に表示する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,情報機器への操作に対する制御を行う操作制御装置,操作制御プログラムおよび操作制御方法に関するものである。
【背景技術】
【0002】
例えばパーソナルコンピュータやテレビジョン,携帯端末などの情報機器において,ユーザが画面やコンピュータから離れて操作する際のユーザインタフェースとして,ユーザが身振り・手振りによって操作を行う空間ジェスチャ技術が提案されている。
【0003】
なお,特許文献1において,画面のスクロールなど機器の送り操作を行うために,ユーザの送り動作と復帰動作とを区別する技術が知られている。この技術では,ユーザの現在の運動が高速運動であると検出されたとき,現在の高速運動と直前の高速運動とによって判定している。
【0004】
また,特許文献2において円運動などの周期動作の身振りによって,画面上の項目選択が可能となる技術が知られている。この技術では,ユーザが周期動作を高速に行うと,画面上の選択項目が高速に切り替えられる。
【0005】
また,特許文献3において距離画像で距離が極小かつ時間差分の変化の生じた点を指示点として検出して,画面上でのポインティング制御を行う技術が知られている。また,特許文献4において画像の速度ベクトルを用いて,ノイズに影響されないジェスチャ認識を行う技術が知られている。また,特許文献5においてユーザの首振り動作による入力を可能とする技術が知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−182014号公報
【特許文献2】特開2010−079848号公報
【特許文献3】特開平07−334299号公報
【特許文献4】特開2004−192150号公報
【特許文献5】特開平10−105310号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の技術では,ユーザが,ポインティングの操作と切り分けながら,連続的なスクロール,ズームなどの画面操作を行うことが困難であった。
【0008】
例えば,上記のユーザが高速に手を動かしたときに画面のスクロール制御を行う技術では,手の高速な動作がスクロール操作となるため,ユーザは,手の速さを変えるなどの直感的な操作で,スクロールの速さを連続的に調整することができない。また,例えば,上記の周期動作の身振りによって画面上の項目を選択する技術は,ポインティングや他のジェスチャとの切り分けに関して考慮がなされていない。
【0009】
このように,ユーザの直感的なジェスチャ操作が,スクロールやズームなどの連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることは,困難である。
【0010】
一側面では,本発明は,ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
1態様では,操作制御装置は,特定の物体の位置を取得する位置取得部と,位置取得部で取得した位置から仮想空間内における特定の物体と操作オブジェクトとの間の距離を計算する距離計算部と,仮想空間内での特定の物体の速さを計算する速度計算部と,距離計算部と速度計算部の計算結果に従って操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する作用量算出部と,作用量算出部の算出結果に従って操作オブジェクトの運動を制御する作用部と,操作オブジェクトの運動に従って画面の表示内容を計算する情報表示内容計算部と,情報表示内容計算部の計算結果に従って情報を画面に表示する情報表示部とを備える。
【発明の効果】
【0012】
1態様では,ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる。
【図面の簡単な説明】
【0013】
【図1】本実施の形態による操作制御装置の構成例を示す図である。
【図2】本実施の形態による操作制御装置を実現するハードウェアの構成例を示す図である。
【図3】本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【図4】本実施の形態による空間座標系の例を示す図である。
【図5】本実施の形態によるユーザのジェスチャ操作に応じた操作オブジェクトの動作の一例を説明する図である。
【図6】本実施の形態によるユーザのジェスチャ操作に応じた操作オブジェクトの動作の一例を説明する図である。
【図7】本実施の形態による特定の物体と操作オブジェクトとの位置関係に応じて作用量を変える例を説明する図である。
【図8】本実施の形態の操作制御装置による操作オブジェクト制御処理フローチャートである。
【図9】本実施の形態の操作制御装置による画面制御処理フローチャートである。
【図10】本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【図11】操作オブジェクトの運動を摩擦力を考慮した物理モデルから求める例を説明する図である。
【図12】本実施の形態による特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度に応じて作用量を変える例を説明する図である。
【発明を実施するための形態】
【0014】
以下,本実施の形態について,図を用いて説明する。
【0015】
図1は,本実施の形態による操作制御装置の構成例を示す図である。
【0016】
図1に示す操作制御装置10は,ユーザが画面から離れてジェスチャによって画面操作を行う際に,そのユーザのジェスチャ操作を認識し,画面を制御する。ジェスチャとは,3次元空間中で,手や頭などの身体の一部を動かすことを指す。ユーザのジェスチャ操作には,画面上の位置を指示するポインティングの操作や,連続的な操作などがある。連続的な操作としては,例えば,画面に表示された情報のスクロール操作やズーム操作,動画の再生位置の指定操作,連続的なスライドの切り替え操作など,様々な操作がある。
【0017】
図1に示す操作制御装置10は,連続的な操作に関する制御の実現に関わる機能部として,位置取得部11,距離計算部12,速度計算部13,作用量算出部14,作用部15,情報表示内容計算部16,情報表示部17,情報記憶部18を備える。本実施の形態では,操作制御装置10が備える各機能部は,ソフトウェアで実現されるものとするが,等価な働きをするハードウェアで実現されてもよい。なお,操作制御装置10は,ポインティングの操作に関する制御を実現する機能部も備えているが,図1の例では記載が省略されている。
【0018】
また,操作制御装置10には,位置取得用装置20,表示装置30が接続される。位置取得用装置20は,特定の物体の位置を取得するために使用する装置である。表示装置30は,情報を画面に表示する装置である。
【0019】
本実施の形態による操作制御装置10の本質部分は,図1に示す操作制御装置10内の主にソフトウェアによって実現される各機能部であり,ハードウェアの機構に関しては特定のものに依存しない。
【0020】
例えば,位置取得用装置20は,特定の物体の位置として,ジェスチャ操作を行うユーザの身体の一部の位置を得るための情報が取得できるものであればよい。位置取得用装置20としては,例えば,距離センサや単眼カメラ,ステレオカメラなどと,物体トラッキング装置とを組み合わせたものが考えられる。また,位置取得用装置20が,ジャイロセンサ,加速度センサ,超音波などを用いて位置取得が可能な,ユーザが身体に装着する端末機器を含む装置などであってもよい。
【0021】
例えば,表示装置30は,後述する操作オブジェクトを,ユーザが画面で視認できるものであればよい。表示装置30としては,例えば,一般的な市場で入手できる家庭用PC(Personal computer )のモニタや,テレビジョン,プロジェクタ,携帯端末の液晶画面,HMD(Head Mounted Display)などが考えられる。
【0022】
操作制御装置10において,位置取得部11は,特定の物体の位置を取得する。特定の物体は,例えば,ジェスチャ操作を行うユーザの身体の一部や,ジェスチャ操作を行うユーザの身体に装着された位置取得用の端末機器などである。位置取得部11は,位置取得用装置20からの入力情報をもとに,特定の物体の位置の取得を行う。
【0023】
距離計算部12は,位置取得部11で取得した位置から,仮想空間内における特定の物体と操作オブジェクトとの間の距離を計算する。本実施の形態において,操作制御装置10は,3次元空間を想定し,特定の物体と操作オブジェクトとの位置関係を把握する。
【0024】
操作オブジェクトは,ユーザが表示装置30の画面に表示された操作対象の情報に対して連続的な操作を行いたいときに,ユーザがジェスチャ操作する表示装置30の画面に表示されたオブジェクトである。操作オブジェクトは,ユーザのジェスチャ操作に対して,連続的な動作を行う。操作オブジェクトとしては,板状のスクロールバー等の連続的な平行移動を行うオブジェクトや,車輪や球等の連続的な回転を行うオブジェクトなど,様々なオブジェクトが考えられる。
【0025】
距離計算部12は,特定の物体の位置を,位置取得部11から取得する。距離計算部12は,操作オブジェクトの位置を,例えば作用部15から取得する。距離計算部12は,特定の物体の位置と操作オブジェクトの位置とから,仮想空間内における特定の物体と操作オブジェクトとの間の距離を計算する。
【0026】
速度計算部13は,仮想空間内での特定の物体の速さを計算する。速度計算部13は,例えば,特定の物体の位置を位置取得部11から取得すると,そのとき取得された特定の物体の位置と,前のタイミングで取得された特定の物体の位置とから,特定の物体の移動速度を計算する。このとき,速度計算部13が,特定の物体の移動速度に,特定の物体の移動方向も含めた速度ベクトルを求めるようにしてもよい。
【0027】
作用量算出部14は,距離計算部12と速度計算部13の計算結果に従って,操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する。本実施の形態では,ユーザは,ジェスチャ操作による直感的な操作で,画面上の操作オブジェクトを操作する。作用量算出部14は,ユーザによるジェスチャ操作を表している特定の物体の移動が,操作オブジェクトに対してどのような影響を与えるかを,定量的に求める。本実施の形態において,作用量は,特定の物体の移動が操作オブジェクトの運動に及ぼす影響の大きさを定量的に表したものである。
【0028】
なお,作用量算出部14が,特定の物体と操作オブジェクトとの間の距離が大きくなるほど,作用量が小さくなるように計算を行ってもよい。また,作用量算出部14が,特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度が大きいほど,作用量を小さくなるように計算を行ってもよい。
【0029】
作用部15は,作用量算出部14の算出結果に従って,操作オブジェクトの運動を制御する。このとき,作用部15が,操作オブジェクトの仮想的な動作に伴う摩擦力を含む式によって表される物理モデルに従って,操作オブジェクトの運動を制御するようにしてもよい。
【0030】
なお,作用量算出部14が作用量を求める際の計算や,作用部15が操作オブジェクトの運動を求める際の計算などの設計は,任意である。例えば,ユーザが直接に操作オブジェクトに触れて操作することを想定した物理モデルに従った式を理論的に求めて使用するようにしてもよい。また,様々な式を用いた実験の結果から,適切と考えられる式を選んで使用するようにしてもよい。
【0031】
情報表示内容計算部16は,操作オブジェクトの運動に従って,画面の表示内容を計算する。例えば,操作対象の情報が文書であり,連続的な操作がスクロール操作であり,操作オブジェクトがスクロールバーであるものとする。このとき,情報表示内容計算部16は,スクロールバーの移動量に従って,文書のスクロール量を計算する。例えば,情報表示内容計算部16は,スクロールバーの移動量を定数倍した量を,文書のスクロール量とする。
【0032】
情報表示部17は,情報表示内容計算部16の計算結果に従って,情報を画面に表示する。例えば,上述の文書のスクロールの例において,情報表示部17は,表示装置30の画面に表示された文書について,そのとき表示されている部分から,情報表示内容計算部16で計算されたスクロール量だけスクロールした部分を表示する。
【0033】
情報表示部17は,文章,動画,画像,リスト等の情報を,表示装置30の画面に表示する。ここでは,表示装置30の画面に表示する情報は,情報記憶部18に記憶されているものとする。情報記憶部18は,情報を記憶する,コンピュータがアクセス可能な記憶部である。
【0034】
情報表示部17は,表示装置30の画面に操作オブジェクトを表示する。このとき,情報表示部17は,操作オブジェクトを,操作対象の情報に重畳して表示するようにしてもよいし,操作対象の情報の周辺に表示するようにしてもよい。また,情報表示部17は,操作オブジェクトを,常に表示するようにしてもよいし,連続的な操作を行うときにだけ表示するようにしてもよい。
【0035】
図2は,本実施の形態による操作制御装置を実現するハードウェアの構成例を示す図である。
【0036】
図1に示す本実施の形態の操作制御装置10は,例えば,CPU(Central Processing Unit )2,主記憶となるメモリ3,記憶装置4,通信装置5,媒体読取・書込装置6,入力装置7,出力装置8等を備えるコンピュータ1によって実現される。記憶装置4は,例えばHDD(Hard Disk Drive )などである。媒体読取・書込装置6は,例えばCD−R(Compact Disc Recordable )ドライブやDVD−R(Digital Versatile Disc Recordable )ドライブなどである。入力装置7は,例えばキーボード・マウス等の機器や,カメラ・センサ等の位置取得用装置20などである。出力装置8は,例えばディスプレイ等の表示装置30などである。
【0037】
図1に示す操作制御装置10および操作制御装置10が備える各機能部は,コンピュータ1が備えるCPU2,メモリ3等のハードウェアと,ソフトウェアプログラムとによって実現することが可能である。コンピュータ1が実行可能なプログラムは,記憶装置4に記憶され,その実行時にメモリ3に読み出され,CPU2により実行される。
【0038】
コンピュータ1は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ1は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータ1で読み取り可能な記録媒体に記録しておくことができる。
【0039】
以下では,本実施の形態によるユーザのジェスチャ操作に応じた操作制御装置10の処理について,より具体的な例を用いて説明する。
【0040】
図3は,本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【0041】
図3(A)は,ユーザがハンドジェスチャで表示装置30の画面31の操作を行う例を示している。ハンドジェスチャでは,ユーザの手40が特定の物体となり,ユーザの手40の動作がジェスチャ操作となる。以下では,ハンドジェスチャを例として,本実施の形態によるジェスチャ操作の例を説明する。なお,ジェスチャ操作はハンドジェスチャによる操作に限らず,頭などユーザの手40以外の身体部位の動作をジェスチャ操作としてもよい。
【0042】
図3(A)に示す例では,距離センサ等の位置取得用装置20は,表示装置30の上部に設置され,ユーザの手40の位置を取得する。以下では,位置取得用装置20として距離センサ等を用いて,ユーザの手40を直接に認識して位置の取得を行うものとする。なお,ユーザの手40に位置取得用の端末機器を装着し,その端末機器を用いて間接的にユーザの手40の位置の取得を行うようにしてもよい。
【0043】
なお,図3(A)では,図1に示す操作制御装置10を実現するコンピュータの記載を省略しているが,位置取得用装置20,表示装置30は,図示省略された操作制御装置10を実現するコンピュータに接続されて動作しているものとする。
【0044】
図3(A)に示す例において,表示装置30の画面31には,操作対象の情報として,リストビュー70が表示されている。図3(A)に示すリストビュー70では,一度にすべての“item”を画面31に表示することができない。そのため,ユーザは,表示されていない“item”を画面31に表示したい場合には,リストビュー70を上下方向にスクロールする必要がある。
【0045】
図3(A)に示す例において,画面31上のカーソル60は,ユーザの手40によるポインティングの操作でユーザが指示した画面31上の位置を示す。このようなユーザの手40の位置に応じた画面31上のポインティングに関する処理は,ユーザの手40による連続的な操作の有無に関わらず,常時行われている。
【0046】
図3(A)に示す例において,操作オブジェクト50は,ユーザにジェスチャ操作でリストビュー70のスクロール操作を行わせるために,画面31に表示された操作オブジェクト50である。図3(A)に示す例では,操作オブジェクト50の動作と,リストビュー70のスクロール動作とが連動している。
【0047】
図3(B)は,図3(A)の画面31に表示された操作オブジェクト50の動作を示す。図3に示す操作オブジェクト50は,3次元の仮想空間で動作する車輪型の回転体である。図3(B)に示すように,この操作オブジェクト50の動作は,軸を中心とした車輪の回転となる。
【0048】
図3(A)において,ユーザは,画面31に向かって,操作オブジェクト50を回転させるハンドジェスチャを行う。操作制御装置10は,ユーザの手40の動きを認識し,ユーザの手40の動きに応じて,操作オブジェクト50を回転させる。操作制御装置10は,操作オブジェクト50の回転に対応させて,画面31上のリストビュー70をスクロールする。ユーザは,画面31から離れた場所で,画面31上の車輪型の操作オブジェクト50を回転させるように手40を動かすことで,リストビュー70をスクロールすることができる。
【0049】
図4は,本実施の形態による空間座標系の例を示す図である。
【0050】
本実施の形態では,例えば,図4に示すように3次元空間の座標系が設定されるものとする。図4に示す座標系では,画面31の左上隅に原点が設定されている。図4に示す座標系では,画面31の法線方向にz軸が設定されており,z軸は画面31からユーザに向かう方向が正となっている。また,画面31の平面の水平方向にx軸,垂直方向にy軸が設定されている。x軸は,画面31の左上隅の原点から右方向が正となっており,y軸は,画面31の左上隅の原点から下方向が正となっている。
【0051】
図4に示す例では,操作オブジェクト50は,画面31の平面上すなわちxy平面上に設定されている。図4に示す例において,ハッチングされた領域が,画面31上の操作オブジェクト50の領域である。
【0052】
操作制御装置10において,位置取得部11は,適宜,ユーザの手40の座標(x1 ,y1 ,z1 )を取得する。
【0053】
距離計算部12は,設定された3次元空間において,取得されたユーザの手40の座標(x1 ,y1 ,z1 )と,画面31に表示された操作オブジェクト50の座標(x2 ,y2 ,z2 )とから,ユーザの手40と操作オブジェクト50との間の距離dを計算する。操作オブジェクト50の座標は,例えば,画面31における操作オブジェクト50の表示領域の重心位置の座標である。なお,図4に示す例では,操作オブジェクト50が,xy平面上に設定されているので,z2 =0となる。
【0054】
速度計算部13は,例えば,取得されたユーザの手40の座標と,前のタイミングで取得されたユーザの手40の座標とから,ユーザの手40の移動速度v1 を計算する。取得された2つの座標から得られるユーザの手40の移動距離を,2つの座標の取得時間間隔で割ることにより,ユーザの手40の移動速度v1 が得られる。このとき,速度計算部13が,ユーザの手40の移動速度に,ユーザの手40の移動方向も含めた速度ベクトルを求めてもよい。速度ベクトルは,例えば,取得された2つの座標の差分を,2つの座標の取得時間間隔で割ることにより得られる。
【0055】
図5,図6は,本実施の形態によるユーザのジェスチャ操作に応じた操作オブジェクトの動作の一例を説明する図である。
【0056】
図5,図6において,ハッチングされた矢印や円は,ユーザの手40の位置を,画面31上にポインティングした軌跡を示している。カーソル60は,画面31上にポインティングされたユーザの手40の位置を示している。なお,図5,図6では省略されているが,画面31には,操作対象の情報として図3(A)に示すリストビュー70が表示されているものとする。
【0057】
図5(A)に示す例は,ユーザが,手40を前に出してカーソル60を操作オブジェクト50の車輪に合わせて,垂直下方向に手40を移動させた場合の例である。このとき,操作制御装置10は,ユーザの手40の移動で操作オブジェクト50の車輪の表面に下方向の力が加わったものと判断し,ユーザの手40の移動に合わせて,車輪型の操作オブジェクト50を下に回転させる。例えば,操作制御装置10は,ユーザの手40の移動速度が遅い場合には,車輪型の操作オブジェクト50をゆっくりと回転させ,ユーザの手40の移動速度が速い場合には,車輪型の操作オブジェクト50を速く回転させる。操作制御装置10は,操作オブジェクト50の車輪の回転速度に応じた速さで,リストビュー70を下方向にスクロールする。
【0058】
図5(B)に示す例は,ユーザが,手40を前に出してカーソル60を操作オブジェクト50の車輪に合わせて,手40を止めた場合の例である。このとき,操作制御装置10は,ユーザの手40が車輪の回転を止める動作を行ったと判断し,車輪型の操作オブジェクト50の回転を止める。操作制御装置10は,操作オブジェクト50の車輪の回転停止に応じて,リストビュー70のスクロールを停止する。
【0059】
なお,本実施の形態の例では,操作オブジェクト50は,ユーザのジェスチャ操作に応じて運動し,停止のジェスチャ操作がなければ,ジェスチャ操作が行われていないときでも,徐々に減速しながら慣性で運動を続けるものとする。ユーザのジェスチャ操作に応じて操作オブジェクト50が運動し,ユーザのジェスチャ操作が終わったときに操作オブジェクト50が停止するように設計がなされてもよい。
【0060】
図6(A)に示す例は,画面31上でユーザの手40の位置を示すカーソル60が操作オブジェクト50の車輪から外れている状態で,ユーザの手40が垂直下方向に移動した場合の例である。このとき,操作制御装置10は,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判断する。操作制御装置10は,ユーザの手40の移動に応じてカーソル60を移動するポインティングの処理のみを行い,操作オブジェクトの運動にユーザの手40の動作による影響を加味しない。
【0061】
例えば,操作制御装置10は,画面31上でユーザの手40の位置を示すカーソル60の位置が,画面31内の操作オブジェクト50の領域上にない場合に,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判定する。このとき,作用量算出部14は,操作オブジェクト50の運動への影響の大きさを定量的に示す作用量を0とする。
【0062】
図6(B)に示す例は,ユーザが,手40を画面から所定以上離した状態で,垂直下方向に手40を移動させた場合の例である。このとき,操作制御装置10は,カーソル60が操作オブジェクト50の車輪の位置に合っていても,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判断する。操作制御装置10は,ユーザの手40の移動に応じてカーソル60を移動するポインティングの処理のみを行い,操作オブジェクト50の運動にユーザの手40の動作による影響を加味しない。
【0063】
例えば,操作制御装置10は,ユーザの手40と操作オブジェクト50との間の距離dが,所定の距離の閾値dth以上である場合に,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判定する。このとき,作用量算出部14は,操作オブジェクト50の運動への影響の大きさを定量的に示す作用量を0とする。
【0064】
ユーザの手40が操作オブジェクト50から離れ過ぎている場合には,ユーザが操作オブジェクト50への操作を意図していない可能性がある。操作制御装置10は,ユーザの手40などの特定の物体と操作オブジェクト50との間の距離で,ユーザのジェスチャ操作が連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分ける。
【0065】
図6(C)に示す例は,ユーザが,操作オブジェクト50の動作可能な方向に対して,所定以上の角度で手40を移動させた場合の例である。このとき,操作制御装置10は,カーソル60が操作オブジェクト50の車輪の位置に合っていても,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判断する。操作制御装置10は,ユーザの手40の移動に応じてカーソル60を移動するポインティングの処理のみを行い,操作オブジェクト50の運動にユーザの手40の動作による影響を加味しない。
【0066】
例えば,図6(C)において,操作オブジェクト50の車輪は,垂直下方向に回転しているものとする。また,操作オブジェクト50の車輪は,動作方向の反対側すなわち垂直上方向に回転可能である。操作制御装置10は,ユーザの手40の移動方向と操作オブジェクト50の動作方向との間の角度|θ|が所定の角度の閾値θth以上,かつ|180°−θ|がθth以上である場合に,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判定する。このとき,作用量算出部14は,操作オブジェクト50の運動への影響の大きさを定量的に示す作用量を0とする。
【0067】
ユーザの手40の移動方向が操作オブジェクト50の動作可能な方向と大きくずれている場合には,ユーザが操作オブジェクト50への操作を意図していない可能性がある。操作制御装置10は,ユーザの手40などの特定の物体と操作オブジェクト50の動作可能方向との間の角度で,ユーザのジェスチャ操作が連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分ける。
【0068】
図7は,本実施の形態による特定の物体と操作オブジェクトとの位置関係に応じて作用量を変える例を説明する図である。
【0069】
図6(B)の例で説明したように距離の閾値dthで作用量を判定する以外に,特定の物体と操作オブジェクト50との位置関係に応じて,作用量が変わるように設計することも可能である。
【0070】
図7(A)は,画面31上で,ユーザの手40の位置を示すカーソル60が,車輪型の操作オブジェクト50の中心から離れているほど,操作オブジェクト50に対するユーザの手40の影響量が小さくなる例を示している。また,図7(B)は,3次元の空間において,ユーザの手40の位置が,車輪型の操作オブジェクト50の中心から離れているほど,操作オブジェクト50に対するユーザの手40の影響量が小さくなる例を示している。
【0071】
図7に示すように,特定の物体と操作オブジェクト50との位置関係に応じて,ユーザのジェスチャ操作が操作オブジェクト50の回転運動に及ぼす影響量を変化させることも可能である。以下では,所定の分布関数を用いて,ユーザの手40と車輪型の操作オブジェクト50との位置関係に応じた作用量を求め,操作オブジェクト50の回転運動を制御する例を説明する。
【0072】
操作制御装置10において,作用部15は,例えば,車輪型の操作オブジェクト50の回転運動を,次の式(1)に従って制御するものとする。
【0073】
a2 =k(x3 ,y3 ,z3 )・((1/r)・v1y−v2 )−cv2
・・・(1)
式(1)において,a2 は,操作オブジェクト50の回転の角加速度である。v2 は,操作オブジェクト50の動作速度,すなわち回転体の例では操作オブジェクト50の回転の角速度である。v1yは,ユーザの手40のy軸方向の移動速度である。rは,回転の半径を示す定数である。cは,定数である。k(x3 ,y3 ,z3 )は,操作オブジェクト50の位置に対するユーザの手40の相対位置(x3 ,y3 ,z3 )が,操作オブジェクト50の回転運動に及ぼす影響の大きさを示す作用量である。
【0074】
式(1)を用いた制御では,作用部15は,ユーザの手40の位置とy軸方向の移動速度とに応じて操作オブジェクト50の回転運動を変化させ,ユーザのジェスチャ操作がない場合には,操作オブジェクト50の回転運動を徐々に減衰させる。
【0075】
作用量算出部14は,例えば,次の式(2)から,k(x3 ,y3 ,z3 )を算出する。
【0076】
k(x3 ,y3 ,z3 )=k0 ・exp{−(1/2)
・(x3 2 /p2 +y3 2 /q2 +z3 2 /s2 )} ・・・(2)
式(2)において,(x3 ,y3 ,z3 )は,操作オブジェクト50の位置(x2 ,y2 ,z2 )に対するユーザの手40の位置(x1 ,y1 ,z1 )の相対位置を示している。すなわち,x3 =x1 −x2 ,y3 =y1 −y2 ,z3 =z1 −z2 となる。k0 ,p,q,sは,定数である。
【0077】
なお,式(1),式(2)において,定数は,理論的に決定してもよいし,実験的に決定してもよい。例えば,式(2)において,各定数k0 ,p,q,sの値を変更しながら,ジェスチャ操作で操作オブジェクト50を回転させる実験を行い,最も直感的な操作ができたと考えられる定数の組合せを採用するようにしてもよい。
【0078】
このように,ユーザの手40と車輪型の操作オブジェクト50との位置関係に応じて,操作オブジェクト50の回転運動に与える影響の大きさを変えることで,ユーザの誤操作の影響を,少なくすることが可能となる。例えば,ユーザの手40の位置を示すカーソル60が,回転体の操作オブジェクト50の中心から離れているほど,ユーザのジェスチャ操作が,操作オブジェクト50に対する操作でない可能性が高いものと推定できる。また,3次元の空間において,ユーザの手40の位置が回転体の操作オブジェクト50の中心から離れているほど,ユーザのジェスチャ操作が,操作オブジェクト50に対する操作でない可能性が高いものと推定できる。
【0079】
また,ユーザの手40と車輪型の操作オブジェクト50との位置関係に応じて,操作オブジェクト50の回転運動に与える影響の大きさを変えることで,ユーザが操作オブジェクトの回転速度を調整しやすくなる。例えば,操作オブジェクト50を速く回転させたいときには,画面31上の操作オブジェクト50に手40を近づけて操作を行い,操作オブジェクト50をゆっくりと回転させたいときには,画面31上の操作オブジェクト50から手40を離して操作を行う,といった調整が可能となる。
【0080】
図8は,本実施の形態の操作制御装置による操作オブジェクト制御処理フローチャートである。
【0081】
図8に示すフローチャートは,ユーザによるジェスチャ操作の認識から,ユーザによるジェスチャ操作の影響を含めた操作オブジェクトの運動の制御までの処理の一例を示している。
【0082】
位置取得部11は,ユーザの手40の位置を取得する(ステップS10)。作用量算出部14は,画面31上でユーザの手40の位置をポイントしたカーソル60が操作オブジェクト50の領域内にあるかを判定する(ステップS11)。
【0083】
カーソル60が操作オブジェクト50の領域内になければ(ステップS11のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40が画面31上の操作オブジェクト50を指し示していない場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。
【0084】
カーソル60が操作オブジェクト50の領域内にあれば(ステップS11のYES),距離計算部12は,ユーザの手40と操作オブジェクト50との間の距離dを計算する(ステップS12)。作用量算出部14は,距離dが所定の距離の閾値dth未満であるかを判定する(ステップS13)。
【0085】
距離dが所定の距離の閾値dth未満でなければ(ステップS13のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40と操作オブジェクト50との間の距離が離れすぎている場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。
【0086】
ユーザの手40と操作オブジェクト50との間の距離dが所定の距離の閾値dth未満であれば(ステップS13のYES),速度計算部13は,ユーザの手40の移動速度v1 を計算する(ステップS14)。ここでは,速度計算部13は,ユーザの手40の移動速度v1 とともに,ユーザの手40の移動方向も求めるものとする。
【0087】
作用量算出部14は,ユーザの手40の移動方向と操作オブジェクト50の動作方向との間の角度θを計算する(ステップS15)。作用量算出部14は,角度θまたは角度180°−θが所定の角度の閾値θth未満であるかを判定する(ステップS16)。
【0088】
角度θまたは角度180°−θが所定の角度の閾値θth未満でなければ(ステップS16のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40の移動方向と操作オブジェクト50の動作可能方向との間の角度が大き過ぎる場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。
【0089】
角度θまたは角度180°−θが所定の角度の閾値θth未満であれば(ステップS16のYES),作用量算出部14は,ユーザの手40の移動速度v1 が所定の最小速度vmin と所定の最大速度vmax との間の値であるかを判定する(ステップS17)。
【0090】
ユーザの手40の移動速度v1 が所定の最小速度vmin と所定の最大速度vmax との間の値でなければ(ステップS17のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40の移動速度が極端に遅い場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。また,操作制御装置10は,ユーザの手40の移動速度が極端に速い場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。なお,ユーザの手40の移動速度が極端に遅い場合に,図5(B)に示すように,ユーザのジェスチャ操作が操作オブジェクト50の停止操作であると判断するようにしてもよい。
【0091】
ユーザの手40の移動速度v1 が所定の最小速度vmin と所定の最大速度vmax との間の値であれば(ステップS17のYES),作用量算出部14は,作用量を算出する(ステップS19)。ここでは,作用量算出部14は,例えば上記の式(2)によって,作用量を算出する。
【0092】
作用部15は,操作オブジェクト50の運動を制御する(ステップS20)。このとき,作用部15は,作用量算出部14により求められた作用量を用いて,例えば上記の式(1)によって,操作オブジェクト50の運動を制御する。
【0093】
操作制御装置10は,ステップS10に戻って,次に取得されるユーザの手40の位置の処理に移る。
【0094】
図9は,本実施の形態の操作制御装置による画面制御処理フローチャートである。
【0095】
図9に示すフローチャートは,操作オブジェクト50の運動に応じて画面31上の操作対象の情報を更新する制御までの処理の一例を示している。
【0096】
情報表示内容計算部16は,操作オブジェクト50が動いているか否かを監視する(ステップS30)。
【0097】
操作オブジェクト50が動いている場合には(ステップS30のYES),情報表示内容計算部16は,操作オブジェクト50の運動に従って,画面31の表示内容を計算する(ステップS31)。例えば,情報表示内容計算部16は,車輪型の操作オブジェクト50の回転速度に応じたリストビュー70のスクロール量を計算する。
【0098】
情報表示部17は,情報表示内容計算部16の計算結果に従って,表示装置30が画面31の表示内容を更新する(ステップS32)。例えば,情報表示部17は,情報表示内容計算部16により求められたスクロール量だけ,表示装置30の画面31に表示されたリストビュー70をスクロールする。
【0099】
操作制御装置10は,ステップS30〜ステップS32に示す,操作オブジェクト50の運動に従った画面31上の操作対象の情報の更新を繰り返す。
【0100】
ここまでは,主に車輪型の回転体の操作オブジェクト50の例について説明した。操作オブジェクト50は,車輪型の回転体の操作オブジェクト50に限らない。以下では,平行移動する板状の操作オブジェクト50の例を説明する。
【0101】
図10は,本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【0102】
図10(A)は,図3(A)と同様に,ユーザがハンドジェスチャで表示装置30の画面31の操作を行う例を示している。図10(A)に示すように,距離センサ等の位置取得用装置20が表示装置30の上部に設置され,ユーザの手40の位置が取得される。図10(A)に示す例において,画面31上のカーソル60は,ユーザの手40によるポインティングの操作でユーザが指示した画面31上の位置を示す。なお,図10(A)では,図1に示す操作制御装置10を実現するコンピュータの記載を省略しているが,位置取得用装置20,表示装置30は,図示省略された操作制御装置10を実現するコンピュータに接続されて動作しているものとする。
【0103】
図10(A)に示す例において,表示装置30の画面31には,操作対象の情報として,写真画像を並べたアルバム71が表示されている。図10(A)に示すアルバム71では,一度にすべての画像を画面31に表示することができない。そのため,ユーザは,表示されていない画像を画面31に表示したい場合には,アルバム71を左右方向にスクロールする必要がある。
【0104】
図10(A)に示す例において,操作オブジェクト50は,ユーザにジェスチャ操作でアルバム71のスクロール操作を行わせるために,画面31に表示された操作オブジェクト50である。図10(A)に示す例では,操作オブジェクト50の動作と,アルバム71のスクロール動作とが連動している。
【0105】
図10(B)は,図10(A)の画面31に表示された操作オブジェクト50の動作を示す。図10に示す操作オブジェクト50は,3次元の仮想空間で動作する板状の移動体である。図10(B)に示すように,この操作オブジェクト50の動作は,x軸方向の平行移動となる。
【0106】
図10(A)において,ユーザは,画面31に向かって,操作オブジェクト50を平行移動させるハンドジェスチャを行う。操作制御装置10は,ユーザの手40の動きを認識し,ユーザの手40の動きに応じて,操作オブジェクト50を平行移動させる。操作制御装置10は,操作オブジェクト50の平行移動に対応させて,画面31上のアルバム71をスクロールする。ユーザは,画面31から離れた場所で,画面31上の板状の操作オブジェクト50を平行移動させるように手40を動かすことで,アルバム71をスクロールすることができる。
【0107】
ユーザのジェスチャ操作が板状の操作オブジェクト50に与える影響の大きさを示す作用量を求め,操作オブジェクト50の平行移動を制御する例を説明する。
【0108】
図11は,操作オブジェクトの運動を摩擦力を考慮した物理モデルから求める例を説明する図である。
【0109】
図11に示す物理モデルにおいて,物体α81は,ユーザの手40を表すモデルであり,物体β82は,板状の操作オブジェクト50を表すモデルである。ここでは,図11に示すような,物体α81の移動の影響を受けて物体β82が平面83上を移動する物理モデルに基づいて,作用部15が操作オブジェクト50の運動を制御する例を説明する。
【0110】
図11に示す物理モデルにおいて,m1 は物体α81の重さを示し,m2 は物体β82の重さを示す。gは,重力を示す。k1 は,物体α81と物体β82との間の摩擦を示す。k2 は,物体β82と平面83との間の摩擦を示す。
【0111】
図11に示すような物理モデルに基づく制御では,作用部15は,例えば,板状の操作オブジェクト50の平行移動を,次の式(3)に従って制御するものとする。
【0112】
a2 =(1/m2 ){k1 ・g・m1 ・(v1x−v2 )
−k2 ・g・(m1 +m2 )v2 } ・・・(3) 式(3)において,a2 は,操作オブジェクト50の平行移動加速度である。v2 は,操作オブジェクト50の平行移動速度である。v1xは,ユーザの手40のx軸方向の移動速度である。g,m1 ,m2 ,k2 は,定数となる。
【0113】
ここで,操作制御装置10は,図7(B)に示す車輪型の操作オブジェクト50の例と同様に,ユーザの手40と操作オブジェクト50との位置関係に応じて,ユーザのジェスチャ操作が操作オブジェクト50の平行移動の運動に及ぼす影響量を,変化させるものとする。式(3)において,k1 が,操作オブジェクト50の位置に対するユーザの手40の相対位置が,操作オブジェクト50の平行移動の運動に及ぼす影響の大きさを示す作用量であるとする。なお,この例では,y軸方向の位置関係の影響はないものとする。
【0114】
このとき,式(3)を用いた制御は,ユーザの手40の位置とx軸方向の移動速度とに応じて操作オブジェクト50の平行移動の運動を変化させ,ユーザのジェスチャ操作がない場合には,操作オブジェクト50の平行移動の運動を徐々に減衰させる制御となる。
【0115】
作用量算出部14は,例えば,次の式(4)から,k1 を算出する。
【0116】
k1 =k0 ・exp{−(1/2)・(x3 2 /p2 +z3 2 /q2 )}
・・・(4)
式(4)において,(x3 ,z3 )は,y軸方向を除く操作オブジェクト50の位置(x2 ,z2 )に対するユーザの手40の位置(x1 ,z1 )の相対位置を示している。すなわち,x3 =x1 −x2 ,z3 =z1 −z2 となる。k0 ,p,qは,定数である。
【0117】
なお,式(3),式(4)において,定数は,理論的に決定してもよいし,実験的に決定してもよい。例えば,式(4)において,各定数k0 ,p,qの値を変更しながら,ジェスチャ操作で操作オブジェクト50を平行移動させる実験を行い,最も直感的な操作ができたと考えられる定数の組合せを採用するようにしてもよい。
【0118】
なお,図5,図6に示すユーザのジェスチャ操作に応じた操作オブジェクトの動作の例については,平行移動する板状の操作オブジェクト50の場合でも,同様であるものとする。
【0119】
このように,操作オブジェクト50の仮想的な動作に伴う摩擦力を考慮した物理モデルに従って操作オブジェクト50の運動を制御することにより,ユーザは,実際に操作オブジェクト50を手40で動かす感覚で,ジェスチャ操作を行うことができる。
【0120】
図12は,本実施の形態による特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度に応じて作用量を変える例を説明する図である。
【0121】
図6(C)の例で説明したように角度の閾値θthで作用量を判定する以外に,特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度に応じて,作用量が変わるように設計することも可能である。
【0122】
図12は,ユーザの手40の移動方向と,x軸と平行に動作する板状の操作オブジェクト50の動作可能方向との間の角度θが大きくなるほど,操作オブジェクト50に対するユーザの手40の影響量が小さくなる例を示している。図12において,手の速度ベクトルは,画面31に投影したユーザの手40の速度ベクトルを示している。
【0123】
図12に示すように,特定の物体の移動方向と操作オブジェクト50の動作可能方向との間の角度θに応じて,ユーザのジェスチャ操作が操作オブジェクト50の運動に及ぼす影響量を変化させることも可能である。以下では,所定の分布関数を用いて,ユーザの手40の移動方向と板状の操作オブジェクト50の動作可能方向との間の角度θに応じた作用量を求め,操作オブジェクト50の平行移動の運動を制御する例を説明する。
【0124】
操作制御装置10において,作用部15は,例えば,板状の操作オブジェクト50の平行移動の運動を,図11に示す摩擦力を考慮した物理モデルに基づいた上記の式(3)に従って制御するものとする。上記の式(3)では,k1 が,ユーザの手40の移動方向と板状の操作オブジェクト50の動作可能方向との間の角度θが,操作オブジェクト50の平行移動の運動に及ぼす影響の大きさを示す作用量となる。
【0125】
作用量算出部14は,例えば,次の式(5)から,k1 を算出する。
【0126】
|θ|<θthのとき:
k1 =k0 ・exp{−(1/2)・(sin2 θ/c2 )}
|θ|≧θthのとき:
k1 =0 ・・・(5)
式(5)において,角度θは,−π/2<θ<π/2である。k0 ,cは,定数である。式(5)において,定数は,理論的に決定してもよいし,実験的に決定してもよい。
【0127】
このように,ユーザの手40の移動方向と操作オブジェクト50の動作可能方向との間の角度に応じて,操作オブジェクト50の平行移動の運動に与える影響の大きさを変えることで,ユーザの誤操作の影響を,少なくすることが可能となる。例えば,ユーザの手40の移動方向と操作オブジェクト50の動作可能方向との間の角度が大きいほど,ユーザのジェスチャ操作が,操作オブジェクト50に対する操作でない可能性が高いものと推定できる。
【0128】
以上説明したように,本実施の形態による操作制御装置10によって,ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる。ユーザは,手40を速く動かす/手をゆっくりと動かすなどの直感的なジェスチャ操作で,スクロール,拡大/縮小などの連続的な操作を行うことができるようになる。
【0129】
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【0130】
例えば,本実施の形態では,特定の物体と操作オブジェクト50との位置関係に応じた操作オブジェクト50の制御と,特定の物体の位置変化方向と操作オブジェクト50の動作可能方向との間の角度に応じた操作オブジェクトの制御とを別々に説明した。特定の物体と操作オブジェクト50との位置関係に応じた操作オブジェクト50の制御と,特定の物体の位置変化方向と操作オブジェクト50の動作可能方向との間の角度に応じた操作オブジェクトの制御とを合わせて実施することも可能である。
【0131】
また,本実施の形態では,操作オブジェクト50が慣性で運動する例を説明したが,これに限るものではない。例えば,情報表示内容計算部16が,ユーザの手40の移動が操作オブジェクト50に影響するか否かの2値判定をし,影響すると判定された場合に,作用部15が,ユーザの手40の位置をポイントしたカーソル60の移動に同期させて,操作オブジェクト50を動かすなどの実施も可能である。
【符号の説明】
【0132】
10 操作制御装置
11 位置取得部
12 距離計算部
13 速度計算部
14 作用量算出部
15 作用部
16 情報表示内容計算部
17 情報表示部
18 情報記憶部
20 位置取得用装置
30 表示装置
【技術分野】
【0001】
本発明は,情報機器への操作に対する制御を行う操作制御装置,操作制御プログラムおよび操作制御方法に関するものである。
【背景技術】
【0002】
例えばパーソナルコンピュータやテレビジョン,携帯端末などの情報機器において,ユーザが画面やコンピュータから離れて操作する際のユーザインタフェースとして,ユーザが身振り・手振りによって操作を行う空間ジェスチャ技術が提案されている。
【0003】
なお,特許文献1において,画面のスクロールなど機器の送り操作を行うために,ユーザの送り動作と復帰動作とを区別する技術が知られている。この技術では,ユーザの現在の運動が高速運動であると検出されたとき,現在の高速運動と直前の高速運動とによって判定している。
【0004】
また,特許文献2において円運動などの周期動作の身振りによって,画面上の項目選択が可能となる技術が知られている。この技術では,ユーザが周期動作を高速に行うと,画面上の選択項目が高速に切り替えられる。
【0005】
また,特許文献3において距離画像で距離が極小かつ時間差分の変化の生じた点を指示点として検出して,画面上でのポインティング制御を行う技術が知られている。また,特許文献4において画像の速度ベクトルを用いて,ノイズに影響されないジェスチャ認識を行う技術が知られている。また,特許文献5においてユーザの首振り動作による入力を可能とする技術が知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−182014号公報
【特許文献2】特開2010−079848号公報
【特許文献3】特開平07−334299号公報
【特許文献4】特開2004−192150号公報
【特許文献5】特開平10−105310号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記の技術では,ユーザが,ポインティングの操作と切り分けながら,連続的なスクロール,ズームなどの画面操作を行うことが困難であった。
【0008】
例えば,上記のユーザが高速に手を動かしたときに画面のスクロール制御を行う技術では,手の高速な動作がスクロール操作となるため,ユーザは,手の速さを変えるなどの直感的な操作で,スクロールの速さを連続的に調整することができない。また,例えば,上記の周期動作の身振りによって画面上の項目を選択する技術は,ポインティングや他のジェスチャとの切り分けに関して考慮がなされていない。
【0009】
このように,ユーザの直感的なジェスチャ操作が,スクロールやズームなどの連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることは,困難である。
【0010】
一側面では,本発明は,ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
1態様では,操作制御装置は,特定の物体の位置を取得する位置取得部と,位置取得部で取得した位置から仮想空間内における特定の物体と操作オブジェクトとの間の距離を計算する距離計算部と,仮想空間内での特定の物体の速さを計算する速度計算部と,距離計算部と速度計算部の計算結果に従って操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する作用量算出部と,作用量算出部の算出結果に従って操作オブジェクトの運動を制御する作用部と,操作オブジェクトの運動に従って画面の表示内容を計算する情報表示内容計算部と,情報表示内容計算部の計算結果に従って情報を画面に表示する情報表示部とを備える。
【発明の効果】
【0012】
1態様では,ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる。
【図面の簡単な説明】
【0013】
【図1】本実施の形態による操作制御装置の構成例を示す図である。
【図2】本実施の形態による操作制御装置を実現するハードウェアの構成例を示す図である。
【図3】本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【図4】本実施の形態による空間座標系の例を示す図である。
【図5】本実施の形態によるユーザのジェスチャ操作に応じた操作オブジェクトの動作の一例を説明する図である。
【図6】本実施の形態によるユーザのジェスチャ操作に応じた操作オブジェクトの動作の一例を説明する図である。
【図7】本実施の形態による特定の物体と操作オブジェクトとの位置関係に応じて作用量を変える例を説明する図である。
【図8】本実施の形態の操作制御装置による操作オブジェクト制御処理フローチャートである。
【図9】本実施の形態の操作制御装置による画面制御処理フローチャートである。
【図10】本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【図11】操作オブジェクトの運動を摩擦力を考慮した物理モデルから求める例を説明する図である。
【図12】本実施の形態による特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度に応じて作用量を変える例を説明する図である。
【発明を実施するための形態】
【0014】
以下,本実施の形態について,図を用いて説明する。
【0015】
図1は,本実施の形態による操作制御装置の構成例を示す図である。
【0016】
図1に示す操作制御装置10は,ユーザが画面から離れてジェスチャによって画面操作を行う際に,そのユーザのジェスチャ操作を認識し,画面を制御する。ジェスチャとは,3次元空間中で,手や頭などの身体の一部を動かすことを指す。ユーザのジェスチャ操作には,画面上の位置を指示するポインティングの操作や,連続的な操作などがある。連続的な操作としては,例えば,画面に表示された情報のスクロール操作やズーム操作,動画の再生位置の指定操作,連続的なスライドの切り替え操作など,様々な操作がある。
【0017】
図1に示す操作制御装置10は,連続的な操作に関する制御の実現に関わる機能部として,位置取得部11,距離計算部12,速度計算部13,作用量算出部14,作用部15,情報表示内容計算部16,情報表示部17,情報記憶部18を備える。本実施の形態では,操作制御装置10が備える各機能部は,ソフトウェアで実現されるものとするが,等価な働きをするハードウェアで実現されてもよい。なお,操作制御装置10は,ポインティングの操作に関する制御を実現する機能部も備えているが,図1の例では記載が省略されている。
【0018】
また,操作制御装置10には,位置取得用装置20,表示装置30が接続される。位置取得用装置20は,特定の物体の位置を取得するために使用する装置である。表示装置30は,情報を画面に表示する装置である。
【0019】
本実施の形態による操作制御装置10の本質部分は,図1に示す操作制御装置10内の主にソフトウェアによって実現される各機能部であり,ハードウェアの機構に関しては特定のものに依存しない。
【0020】
例えば,位置取得用装置20は,特定の物体の位置として,ジェスチャ操作を行うユーザの身体の一部の位置を得るための情報が取得できるものであればよい。位置取得用装置20としては,例えば,距離センサや単眼カメラ,ステレオカメラなどと,物体トラッキング装置とを組み合わせたものが考えられる。また,位置取得用装置20が,ジャイロセンサ,加速度センサ,超音波などを用いて位置取得が可能な,ユーザが身体に装着する端末機器を含む装置などであってもよい。
【0021】
例えば,表示装置30は,後述する操作オブジェクトを,ユーザが画面で視認できるものであればよい。表示装置30としては,例えば,一般的な市場で入手できる家庭用PC(Personal computer )のモニタや,テレビジョン,プロジェクタ,携帯端末の液晶画面,HMD(Head Mounted Display)などが考えられる。
【0022】
操作制御装置10において,位置取得部11は,特定の物体の位置を取得する。特定の物体は,例えば,ジェスチャ操作を行うユーザの身体の一部や,ジェスチャ操作を行うユーザの身体に装着された位置取得用の端末機器などである。位置取得部11は,位置取得用装置20からの入力情報をもとに,特定の物体の位置の取得を行う。
【0023】
距離計算部12は,位置取得部11で取得した位置から,仮想空間内における特定の物体と操作オブジェクトとの間の距離を計算する。本実施の形態において,操作制御装置10は,3次元空間を想定し,特定の物体と操作オブジェクトとの位置関係を把握する。
【0024】
操作オブジェクトは,ユーザが表示装置30の画面に表示された操作対象の情報に対して連続的な操作を行いたいときに,ユーザがジェスチャ操作する表示装置30の画面に表示されたオブジェクトである。操作オブジェクトは,ユーザのジェスチャ操作に対して,連続的な動作を行う。操作オブジェクトとしては,板状のスクロールバー等の連続的な平行移動を行うオブジェクトや,車輪や球等の連続的な回転を行うオブジェクトなど,様々なオブジェクトが考えられる。
【0025】
距離計算部12は,特定の物体の位置を,位置取得部11から取得する。距離計算部12は,操作オブジェクトの位置を,例えば作用部15から取得する。距離計算部12は,特定の物体の位置と操作オブジェクトの位置とから,仮想空間内における特定の物体と操作オブジェクトとの間の距離を計算する。
【0026】
速度計算部13は,仮想空間内での特定の物体の速さを計算する。速度計算部13は,例えば,特定の物体の位置を位置取得部11から取得すると,そのとき取得された特定の物体の位置と,前のタイミングで取得された特定の物体の位置とから,特定の物体の移動速度を計算する。このとき,速度計算部13が,特定の物体の移動速度に,特定の物体の移動方向も含めた速度ベクトルを求めるようにしてもよい。
【0027】
作用量算出部14は,距離計算部12と速度計算部13の計算結果に従って,操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する。本実施の形態では,ユーザは,ジェスチャ操作による直感的な操作で,画面上の操作オブジェクトを操作する。作用量算出部14は,ユーザによるジェスチャ操作を表している特定の物体の移動が,操作オブジェクトに対してどのような影響を与えるかを,定量的に求める。本実施の形態において,作用量は,特定の物体の移動が操作オブジェクトの運動に及ぼす影響の大きさを定量的に表したものである。
【0028】
なお,作用量算出部14が,特定の物体と操作オブジェクトとの間の距離が大きくなるほど,作用量が小さくなるように計算を行ってもよい。また,作用量算出部14が,特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度が大きいほど,作用量を小さくなるように計算を行ってもよい。
【0029】
作用部15は,作用量算出部14の算出結果に従って,操作オブジェクトの運動を制御する。このとき,作用部15が,操作オブジェクトの仮想的な動作に伴う摩擦力を含む式によって表される物理モデルに従って,操作オブジェクトの運動を制御するようにしてもよい。
【0030】
なお,作用量算出部14が作用量を求める際の計算や,作用部15が操作オブジェクトの運動を求める際の計算などの設計は,任意である。例えば,ユーザが直接に操作オブジェクトに触れて操作することを想定した物理モデルに従った式を理論的に求めて使用するようにしてもよい。また,様々な式を用いた実験の結果から,適切と考えられる式を選んで使用するようにしてもよい。
【0031】
情報表示内容計算部16は,操作オブジェクトの運動に従って,画面の表示内容を計算する。例えば,操作対象の情報が文書であり,連続的な操作がスクロール操作であり,操作オブジェクトがスクロールバーであるものとする。このとき,情報表示内容計算部16は,スクロールバーの移動量に従って,文書のスクロール量を計算する。例えば,情報表示内容計算部16は,スクロールバーの移動量を定数倍した量を,文書のスクロール量とする。
【0032】
情報表示部17は,情報表示内容計算部16の計算結果に従って,情報を画面に表示する。例えば,上述の文書のスクロールの例において,情報表示部17は,表示装置30の画面に表示された文書について,そのとき表示されている部分から,情報表示内容計算部16で計算されたスクロール量だけスクロールした部分を表示する。
【0033】
情報表示部17は,文章,動画,画像,リスト等の情報を,表示装置30の画面に表示する。ここでは,表示装置30の画面に表示する情報は,情報記憶部18に記憶されているものとする。情報記憶部18は,情報を記憶する,コンピュータがアクセス可能な記憶部である。
【0034】
情報表示部17は,表示装置30の画面に操作オブジェクトを表示する。このとき,情報表示部17は,操作オブジェクトを,操作対象の情報に重畳して表示するようにしてもよいし,操作対象の情報の周辺に表示するようにしてもよい。また,情報表示部17は,操作オブジェクトを,常に表示するようにしてもよいし,連続的な操作を行うときにだけ表示するようにしてもよい。
【0035】
図2は,本実施の形態による操作制御装置を実現するハードウェアの構成例を示す図である。
【0036】
図1に示す本実施の形態の操作制御装置10は,例えば,CPU(Central Processing Unit )2,主記憶となるメモリ3,記憶装置4,通信装置5,媒体読取・書込装置6,入力装置7,出力装置8等を備えるコンピュータ1によって実現される。記憶装置4は,例えばHDD(Hard Disk Drive )などである。媒体読取・書込装置6は,例えばCD−R(Compact Disc Recordable )ドライブやDVD−R(Digital Versatile Disc Recordable )ドライブなどである。入力装置7は,例えばキーボード・マウス等の機器や,カメラ・センサ等の位置取得用装置20などである。出力装置8は,例えばディスプレイ等の表示装置30などである。
【0037】
図1に示す操作制御装置10および操作制御装置10が備える各機能部は,コンピュータ1が備えるCPU2,メモリ3等のハードウェアと,ソフトウェアプログラムとによって実現することが可能である。コンピュータ1が実行可能なプログラムは,記憶装置4に記憶され,その実行時にメモリ3に読み出され,CPU2により実行される。
【0038】
コンピュータ1は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ1は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータ1で読み取り可能な記録媒体に記録しておくことができる。
【0039】
以下では,本実施の形態によるユーザのジェスチャ操作に応じた操作制御装置10の処理について,より具体的な例を用いて説明する。
【0040】
図3は,本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【0041】
図3(A)は,ユーザがハンドジェスチャで表示装置30の画面31の操作を行う例を示している。ハンドジェスチャでは,ユーザの手40が特定の物体となり,ユーザの手40の動作がジェスチャ操作となる。以下では,ハンドジェスチャを例として,本実施の形態によるジェスチャ操作の例を説明する。なお,ジェスチャ操作はハンドジェスチャによる操作に限らず,頭などユーザの手40以外の身体部位の動作をジェスチャ操作としてもよい。
【0042】
図3(A)に示す例では,距離センサ等の位置取得用装置20は,表示装置30の上部に設置され,ユーザの手40の位置を取得する。以下では,位置取得用装置20として距離センサ等を用いて,ユーザの手40を直接に認識して位置の取得を行うものとする。なお,ユーザの手40に位置取得用の端末機器を装着し,その端末機器を用いて間接的にユーザの手40の位置の取得を行うようにしてもよい。
【0043】
なお,図3(A)では,図1に示す操作制御装置10を実現するコンピュータの記載を省略しているが,位置取得用装置20,表示装置30は,図示省略された操作制御装置10を実現するコンピュータに接続されて動作しているものとする。
【0044】
図3(A)に示す例において,表示装置30の画面31には,操作対象の情報として,リストビュー70が表示されている。図3(A)に示すリストビュー70では,一度にすべての“item”を画面31に表示することができない。そのため,ユーザは,表示されていない“item”を画面31に表示したい場合には,リストビュー70を上下方向にスクロールする必要がある。
【0045】
図3(A)に示す例において,画面31上のカーソル60は,ユーザの手40によるポインティングの操作でユーザが指示した画面31上の位置を示す。このようなユーザの手40の位置に応じた画面31上のポインティングに関する処理は,ユーザの手40による連続的な操作の有無に関わらず,常時行われている。
【0046】
図3(A)に示す例において,操作オブジェクト50は,ユーザにジェスチャ操作でリストビュー70のスクロール操作を行わせるために,画面31に表示された操作オブジェクト50である。図3(A)に示す例では,操作オブジェクト50の動作と,リストビュー70のスクロール動作とが連動している。
【0047】
図3(B)は,図3(A)の画面31に表示された操作オブジェクト50の動作を示す。図3に示す操作オブジェクト50は,3次元の仮想空間で動作する車輪型の回転体である。図3(B)に示すように,この操作オブジェクト50の動作は,軸を中心とした車輪の回転となる。
【0048】
図3(A)において,ユーザは,画面31に向かって,操作オブジェクト50を回転させるハンドジェスチャを行う。操作制御装置10は,ユーザの手40の動きを認識し,ユーザの手40の動きに応じて,操作オブジェクト50を回転させる。操作制御装置10は,操作オブジェクト50の回転に対応させて,画面31上のリストビュー70をスクロールする。ユーザは,画面31から離れた場所で,画面31上の車輪型の操作オブジェクト50を回転させるように手40を動かすことで,リストビュー70をスクロールすることができる。
【0049】
図4は,本実施の形態による空間座標系の例を示す図である。
【0050】
本実施の形態では,例えば,図4に示すように3次元空間の座標系が設定されるものとする。図4に示す座標系では,画面31の左上隅に原点が設定されている。図4に示す座標系では,画面31の法線方向にz軸が設定されており,z軸は画面31からユーザに向かう方向が正となっている。また,画面31の平面の水平方向にx軸,垂直方向にy軸が設定されている。x軸は,画面31の左上隅の原点から右方向が正となっており,y軸は,画面31の左上隅の原点から下方向が正となっている。
【0051】
図4に示す例では,操作オブジェクト50は,画面31の平面上すなわちxy平面上に設定されている。図4に示す例において,ハッチングされた領域が,画面31上の操作オブジェクト50の領域である。
【0052】
操作制御装置10において,位置取得部11は,適宜,ユーザの手40の座標(x1 ,y1 ,z1 )を取得する。
【0053】
距離計算部12は,設定された3次元空間において,取得されたユーザの手40の座標(x1 ,y1 ,z1 )と,画面31に表示された操作オブジェクト50の座標(x2 ,y2 ,z2 )とから,ユーザの手40と操作オブジェクト50との間の距離dを計算する。操作オブジェクト50の座標は,例えば,画面31における操作オブジェクト50の表示領域の重心位置の座標である。なお,図4に示す例では,操作オブジェクト50が,xy平面上に設定されているので,z2 =0となる。
【0054】
速度計算部13は,例えば,取得されたユーザの手40の座標と,前のタイミングで取得されたユーザの手40の座標とから,ユーザの手40の移動速度v1 を計算する。取得された2つの座標から得られるユーザの手40の移動距離を,2つの座標の取得時間間隔で割ることにより,ユーザの手40の移動速度v1 が得られる。このとき,速度計算部13が,ユーザの手40の移動速度に,ユーザの手40の移動方向も含めた速度ベクトルを求めてもよい。速度ベクトルは,例えば,取得された2つの座標の差分を,2つの座標の取得時間間隔で割ることにより得られる。
【0055】
図5,図6は,本実施の形態によるユーザのジェスチャ操作に応じた操作オブジェクトの動作の一例を説明する図である。
【0056】
図5,図6において,ハッチングされた矢印や円は,ユーザの手40の位置を,画面31上にポインティングした軌跡を示している。カーソル60は,画面31上にポインティングされたユーザの手40の位置を示している。なお,図5,図6では省略されているが,画面31には,操作対象の情報として図3(A)に示すリストビュー70が表示されているものとする。
【0057】
図5(A)に示す例は,ユーザが,手40を前に出してカーソル60を操作オブジェクト50の車輪に合わせて,垂直下方向に手40を移動させた場合の例である。このとき,操作制御装置10は,ユーザの手40の移動で操作オブジェクト50の車輪の表面に下方向の力が加わったものと判断し,ユーザの手40の移動に合わせて,車輪型の操作オブジェクト50を下に回転させる。例えば,操作制御装置10は,ユーザの手40の移動速度が遅い場合には,車輪型の操作オブジェクト50をゆっくりと回転させ,ユーザの手40の移動速度が速い場合には,車輪型の操作オブジェクト50を速く回転させる。操作制御装置10は,操作オブジェクト50の車輪の回転速度に応じた速さで,リストビュー70を下方向にスクロールする。
【0058】
図5(B)に示す例は,ユーザが,手40を前に出してカーソル60を操作オブジェクト50の車輪に合わせて,手40を止めた場合の例である。このとき,操作制御装置10は,ユーザの手40が車輪の回転を止める動作を行ったと判断し,車輪型の操作オブジェクト50の回転を止める。操作制御装置10は,操作オブジェクト50の車輪の回転停止に応じて,リストビュー70のスクロールを停止する。
【0059】
なお,本実施の形態の例では,操作オブジェクト50は,ユーザのジェスチャ操作に応じて運動し,停止のジェスチャ操作がなければ,ジェスチャ操作が行われていないときでも,徐々に減速しながら慣性で運動を続けるものとする。ユーザのジェスチャ操作に応じて操作オブジェクト50が運動し,ユーザのジェスチャ操作が終わったときに操作オブジェクト50が停止するように設計がなされてもよい。
【0060】
図6(A)に示す例は,画面31上でユーザの手40の位置を示すカーソル60が操作オブジェクト50の車輪から外れている状態で,ユーザの手40が垂直下方向に移動した場合の例である。このとき,操作制御装置10は,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判断する。操作制御装置10は,ユーザの手40の移動に応じてカーソル60を移動するポインティングの処理のみを行い,操作オブジェクトの運動にユーザの手40の動作による影響を加味しない。
【0061】
例えば,操作制御装置10は,画面31上でユーザの手40の位置を示すカーソル60の位置が,画面31内の操作オブジェクト50の領域上にない場合に,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判定する。このとき,作用量算出部14は,操作オブジェクト50の運動への影響の大きさを定量的に示す作用量を0とする。
【0062】
図6(B)に示す例は,ユーザが,手40を画面から所定以上離した状態で,垂直下方向に手40を移動させた場合の例である。このとき,操作制御装置10は,カーソル60が操作オブジェクト50の車輪の位置に合っていても,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判断する。操作制御装置10は,ユーザの手40の移動に応じてカーソル60を移動するポインティングの処理のみを行い,操作オブジェクト50の運動にユーザの手40の動作による影響を加味しない。
【0063】
例えば,操作制御装置10は,ユーザの手40と操作オブジェクト50との間の距離dが,所定の距離の閾値dth以上である場合に,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判定する。このとき,作用量算出部14は,操作オブジェクト50の運動への影響の大きさを定量的に示す作用量を0とする。
【0064】
ユーザの手40が操作オブジェクト50から離れ過ぎている場合には,ユーザが操作オブジェクト50への操作を意図していない可能性がある。操作制御装置10は,ユーザの手40などの特定の物体と操作オブジェクト50との間の距離で,ユーザのジェスチャ操作が連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分ける。
【0065】
図6(C)に示す例は,ユーザが,操作オブジェクト50の動作可能な方向に対して,所定以上の角度で手40を移動させた場合の例である。このとき,操作制御装置10は,カーソル60が操作オブジェクト50の車輪の位置に合っていても,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判断する。操作制御装置10は,ユーザの手40の移動に応じてカーソル60を移動するポインティングの処理のみを行い,操作オブジェクト50の運動にユーザの手40の動作による影響を加味しない。
【0066】
例えば,図6(C)において,操作オブジェクト50の車輪は,垂直下方向に回転しているものとする。また,操作オブジェクト50の車輪は,動作方向の反対側すなわち垂直上方向に回転可能である。操作制御装置10は,ユーザの手40の移動方向と操作オブジェクト50の動作方向との間の角度|θ|が所定の角度の閾値θth以上,かつ|180°−θ|がθth以上である場合に,ユーザのジェスチャ操作が操作オブジェクト50の車輪を回転させる操作ではないと判定する。このとき,作用量算出部14は,操作オブジェクト50の運動への影響の大きさを定量的に示す作用量を0とする。
【0067】
ユーザの手40の移動方向が操作オブジェクト50の動作可能な方向と大きくずれている場合には,ユーザが操作オブジェクト50への操作を意図していない可能性がある。操作制御装置10は,ユーザの手40などの特定の物体と操作オブジェクト50の動作可能方向との間の角度で,ユーザのジェスチャ操作が連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分ける。
【0068】
図7は,本実施の形態による特定の物体と操作オブジェクトとの位置関係に応じて作用量を変える例を説明する図である。
【0069】
図6(B)の例で説明したように距離の閾値dthで作用量を判定する以外に,特定の物体と操作オブジェクト50との位置関係に応じて,作用量が変わるように設計することも可能である。
【0070】
図7(A)は,画面31上で,ユーザの手40の位置を示すカーソル60が,車輪型の操作オブジェクト50の中心から離れているほど,操作オブジェクト50に対するユーザの手40の影響量が小さくなる例を示している。また,図7(B)は,3次元の空間において,ユーザの手40の位置が,車輪型の操作オブジェクト50の中心から離れているほど,操作オブジェクト50に対するユーザの手40の影響量が小さくなる例を示している。
【0071】
図7に示すように,特定の物体と操作オブジェクト50との位置関係に応じて,ユーザのジェスチャ操作が操作オブジェクト50の回転運動に及ぼす影響量を変化させることも可能である。以下では,所定の分布関数を用いて,ユーザの手40と車輪型の操作オブジェクト50との位置関係に応じた作用量を求め,操作オブジェクト50の回転運動を制御する例を説明する。
【0072】
操作制御装置10において,作用部15は,例えば,車輪型の操作オブジェクト50の回転運動を,次の式(1)に従って制御するものとする。
【0073】
a2 =k(x3 ,y3 ,z3 )・((1/r)・v1y−v2 )−cv2
・・・(1)
式(1)において,a2 は,操作オブジェクト50の回転の角加速度である。v2 は,操作オブジェクト50の動作速度,すなわち回転体の例では操作オブジェクト50の回転の角速度である。v1yは,ユーザの手40のy軸方向の移動速度である。rは,回転の半径を示す定数である。cは,定数である。k(x3 ,y3 ,z3 )は,操作オブジェクト50の位置に対するユーザの手40の相対位置(x3 ,y3 ,z3 )が,操作オブジェクト50の回転運動に及ぼす影響の大きさを示す作用量である。
【0074】
式(1)を用いた制御では,作用部15は,ユーザの手40の位置とy軸方向の移動速度とに応じて操作オブジェクト50の回転運動を変化させ,ユーザのジェスチャ操作がない場合には,操作オブジェクト50の回転運動を徐々に減衰させる。
【0075】
作用量算出部14は,例えば,次の式(2)から,k(x3 ,y3 ,z3 )を算出する。
【0076】
k(x3 ,y3 ,z3 )=k0 ・exp{−(1/2)
・(x3 2 /p2 +y3 2 /q2 +z3 2 /s2 )} ・・・(2)
式(2)において,(x3 ,y3 ,z3 )は,操作オブジェクト50の位置(x2 ,y2 ,z2 )に対するユーザの手40の位置(x1 ,y1 ,z1 )の相対位置を示している。すなわち,x3 =x1 −x2 ,y3 =y1 −y2 ,z3 =z1 −z2 となる。k0 ,p,q,sは,定数である。
【0077】
なお,式(1),式(2)において,定数は,理論的に決定してもよいし,実験的に決定してもよい。例えば,式(2)において,各定数k0 ,p,q,sの値を変更しながら,ジェスチャ操作で操作オブジェクト50を回転させる実験を行い,最も直感的な操作ができたと考えられる定数の組合せを採用するようにしてもよい。
【0078】
このように,ユーザの手40と車輪型の操作オブジェクト50との位置関係に応じて,操作オブジェクト50の回転運動に与える影響の大きさを変えることで,ユーザの誤操作の影響を,少なくすることが可能となる。例えば,ユーザの手40の位置を示すカーソル60が,回転体の操作オブジェクト50の中心から離れているほど,ユーザのジェスチャ操作が,操作オブジェクト50に対する操作でない可能性が高いものと推定できる。また,3次元の空間において,ユーザの手40の位置が回転体の操作オブジェクト50の中心から離れているほど,ユーザのジェスチャ操作が,操作オブジェクト50に対する操作でない可能性が高いものと推定できる。
【0079】
また,ユーザの手40と車輪型の操作オブジェクト50との位置関係に応じて,操作オブジェクト50の回転運動に与える影響の大きさを変えることで,ユーザが操作オブジェクトの回転速度を調整しやすくなる。例えば,操作オブジェクト50を速く回転させたいときには,画面31上の操作オブジェクト50に手40を近づけて操作を行い,操作オブジェクト50をゆっくりと回転させたいときには,画面31上の操作オブジェクト50から手40を離して操作を行う,といった調整が可能となる。
【0080】
図8は,本実施の形態の操作制御装置による操作オブジェクト制御処理フローチャートである。
【0081】
図8に示すフローチャートは,ユーザによるジェスチャ操作の認識から,ユーザによるジェスチャ操作の影響を含めた操作オブジェクトの運動の制御までの処理の一例を示している。
【0082】
位置取得部11は,ユーザの手40の位置を取得する(ステップS10)。作用量算出部14は,画面31上でユーザの手40の位置をポイントしたカーソル60が操作オブジェクト50の領域内にあるかを判定する(ステップS11)。
【0083】
カーソル60が操作オブジェクト50の領域内になければ(ステップS11のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40が画面31上の操作オブジェクト50を指し示していない場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。
【0084】
カーソル60が操作オブジェクト50の領域内にあれば(ステップS11のYES),距離計算部12は,ユーザの手40と操作オブジェクト50との間の距離dを計算する(ステップS12)。作用量算出部14は,距離dが所定の距離の閾値dth未満であるかを判定する(ステップS13)。
【0085】
距離dが所定の距離の閾値dth未満でなければ(ステップS13のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40と操作オブジェクト50との間の距離が離れすぎている場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。
【0086】
ユーザの手40と操作オブジェクト50との間の距離dが所定の距離の閾値dth未満であれば(ステップS13のYES),速度計算部13は,ユーザの手40の移動速度v1 を計算する(ステップS14)。ここでは,速度計算部13は,ユーザの手40の移動速度v1 とともに,ユーザの手40の移動方向も求めるものとする。
【0087】
作用量算出部14は,ユーザの手40の移動方向と操作オブジェクト50の動作方向との間の角度θを計算する(ステップS15)。作用量算出部14は,角度θまたは角度180°−θが所定の角度の閾値θth未満であるかを判定する(ステップS16)。
【0088】
角度θまたは角度180°−θが所定の角度の閾値θth未満でなければ(ステップS16のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40の移動方向と操作オブジェクト50の動作可能方向との間の角度が大き過ぎる場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。
【0089】
角度θまたは角度180°−θが所定の角度の閾値θth未満であれば(ステップS16のYES),作用量算出部14は,ユーザの手40の移動速度v1 が所定の最小速度vmin と所定の最大速度vmax との間の値であるかを判定する(ステップS17)。
【0090】
ユーザの手40の移動速度v1 が所定の最小速度vmin と所定の最大速度vmax との間の値でなければ(ステップS17のNO),作用量算出部14は,作用量を0とする(ステップS18)。操作制御装置10は,ユーザの手40の移動速度が極端に遅い場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。また,操作制御装置10は,ユーザの手40の移動速度が極端に速い場合には,ユーザのジェスチャ操作が操作オブジェクト50に対する操作ではないとする。なお,ユーザの手40の移動速度が極端に遅い場合に,図5(B)に示すように,ユーザのジェスチャ操作が操作オブジェクト50の停止操作であると判断するようにしてもよい。
【0091】
ユーザの手40の移動速度v1 が所定の最小速度vmin と所定の最大速度vmax との間の値であれば(ステップS17のYES),作用量算出部14は,作用量を算出する(ステップS19)。ここでは,作用量算出部14は,例えば上記の式(2)によって,作用量を算出する。
【0092】
作用部15は,操作オブジェクト50の運動を制御する(ステップS20)。このとき,作用部15は,作用量算出部14により求められた作用量を用いて,例えば上記の式(1)によって,操作オブジェクト50の運動を制御する。
【0093】
操作制御装置10は,ステップS10に戻って,次に取得されるユーザの手40の位置の処理に移る。
【0094】
図9は,本実施の形態の操作制御装置による画面制御処理フローチャートである。
【0095】
図9に示すフローチャートは,操作オブジェクト50の運動に応じて画面31上の操作対象の情報を更新する制御までの処理の一例を示している。
【0096】
情報表示内容計算部16は,操作オブジェクト50が動いているか否かを監視する(ステップS30)。
【0097】
操作オブジェクト50が動いている場合には(ステップS30のYES),情報表示内容計算部16は,操作オブジェクト50の運動に従って,画面31の表示内容を計算する(ステップS31)。例えば,情報表示内容計算部16は,車輪型の操作オブジェクト50の回転速度に応じたリストビュー70のスクロール量を計算する。
【0098】
情報表示部17は,情報表示内容計算部16の計算結果に従って,表示装置30が画面31の表示内容を更新する(ステップS32)。例えば,情報表示部17は,情報表示内容計算部16により求められたスクロール量だけ,表示装置30の画面31に表示されたリストビュー70をスクロールする。
【0099】
操作制御装置10は,ステップS30〜ステップS32に示す,操作オブジェクト50の運動に従った画面31上の操作対象の情報の更新を繰り返す。
【0100】
ここまでは,主に車輪型の回転体の操作オブジェクト50の例について説明した。操作オブジェクト50は,車輪型の回転体の操作オブジェクト50に限らない。以下では,平行移動する板状の操作オブジェクト50の例を説明する。
【0101】
図10は,本実施の形態によるユーザのジェスチャ操作の例を示す図である。
【0102】
図10(A)は,図3(A)と同様に,ユーザがハンドジェスチャで表示装置30の画面31の操作を行う例を示している。図10(A)に示すように,距離センサ等の位置取得用装置20が表示装置30の上部に設置され,ユーザの手40の位置が取得される。図10(A)に示す例において,画面31上のカーソル60は,ユーザの手40によるポインティングの操作でユーザが指示した画面31上の位置を示す。なお,図10(A)では,図1に示す操作制御装置10を実現するコンピュータの記載を省略しているが,位置取得用装置20,表示装置30は,図示省略された操作制御装置10を実現するコンピュータに接続されて動作しているものとする。
【0103】
図10(A)に示す例において,表示装置30の画面31には,操作対象の情報として,写真画像を並べたアルバム71が表示されている。図10(A)に示すアルバム71では,一度にすべての画像を画面31に表示することができない。そのため,ユーザは,表示されていない画像を画面31に表示したい場合には,アルバム71を左右方向にスクロールする必要がある。
【0104】
図10(A)に示す例において,操作オブジェクト50は,ユーザにジェスチャ操作でアルバム71のスクロール操作を行わせるために,画面31に表示された操作オブジェクト50である。図10(A)に示す例では,操作オブジェクト50の動作と,アルバム71のスクロール動作とが連動している。
【0105】
図10(B)は,図10(A)の画面31に表示された操作オブジェクト50の動作を示す。図10に示す操作オブジェクト50は,3次元の仮想空間で動作する板状の移動体である。図10(B)に示すように,この操作オブジェクト50の動作は,x軸方向の平行移動となる。
【0106】
図10(A)において,ユーザは,画面31に向かって,操作オブジェクト50を平行移動させるハンドジェスチャを行う。操作制御装置10は,ユーザの手40の動きを認識し,ユーザの手40の動きに応じて,操作オブジェクト50を平行移動させる。操作制御装置10は,操作オブジェクト50の平行移動に対応させて,画面31上のアルバム71をスクロールする。ユーザは,画面31から離れた場所で,画面31上の板状の操作オブジェクト50を平行移動させるように手40を動かすことで,アルバム71をスクロールすることができる。
【0107】
ユーザのジェスチャ操作が板状の操作オブジェクト50に与える影響の大きさを示す作用量を求め,操作オブジェクト50の平行移動を制御する例を説明する。
【0108】
図11は,操作オブジェクトの運動を摩擦力を考慮した物理モデルから求める例を説明する図である。
【0109】
図11に示す物理モデルにおいて,物体α81は,ユーザの手40を表すモデルであり,物体β82は,板状の操作オブジェクト50を表すモデルである。ここでは,図11に示すような,物体α81の移動の影響を受けて物体β82が平面83上を移動する物理モデルに基づいて,作用部15が操作オブジェクト50の運動を制御する例を説明する。
【0110】
図11に示す物理モデルにおいて,m1 は物体α81の重さを示し,m2 は物体β82の重さを示す。gは,重力を示す。k1 は,物体α81と物体β82との間の摩擦を示す。k2 は,物体β82と平面83との間の摩擦を示す。
【0111】
図11に示すような物理モデルに基づく制御では,作用部15は,例えば,板状の操作オブジェクト50の平行移動を,次の式(3)に従って制御するものとする。
【0112】
a2 =(1/m2 ){k1 ・g・m1 ・(v1x−v2 )
−k2 ・g・(m1 +m2 )v2 } ・・・(3) 式(3)において,a2 は,操作オブジェクト50の平行移動加速度である。v2 は,操作オブジェクト50の平行移動速度である。v1xは,ユーザの手40のx軸方向の移動速度である。g,m1 ,m2 ,k2 は,定数となる。
【0113】
ここで,操作制御装置10は,図7(B)に示す車輪型の操作オブジェクト50の例と同様に,ユーザの手40と操作オブジェクト50との位置関係に応じて,ユーザのジェスチャ操作が操作オブジェクト50の平行移動の運動に及ぼす影響量を,変化させるものとする。式(3)において,k1 が,操作オブジェクト50の位置に対するユーザの手40の相対位置が,操作オブジェクト50の平行移動の運動に及ぼす影響の大きさを示す作用量であるとする。なお,この例では,y軸方向の位置関係の影響はないものとする。
【0114】
このとき,式(3)を用いた制御は,ユーザの手40の位置とx軸方向の移動速度とに応じて操作オブジェクト50の平行移動の運動を変化させ,ユーザのジェスチャ操作がない場合には,操作オブジェクト50の平行移動の運動を徐々に減衰させる制御となる。
【0115】
作用量算出部14は,例えば,次の式(4)から,k1 を算出する。
【0116】
k1 =k0 ・exp{−(1/2)・(x3 2 /p2 +z3 2 /q2 )}
・・・(4)
式(4)において,(x3 ,z3 )は,y軸方向を除く操作オブジェクト50の位置(x2 ,z2 )に対するユーザの手40の位置(x1 ,z1 )の相対位置を示している。すなわち,x3 =x1 −x2 ,z3 =z1 −z2 となる。k0 ,p,qは,定数である。
【0117】
なお,式(3),式(4)において,定数は,理論的に決定してもよいし,実験的に決定してもよい。例えば,式(4)において,各定数k0 ,p,qの値を変更しながら,ジェスチャ操作で操作オブジェクト50を平行移動させる実験を行い,最も直感的な操作ができたと考えられる定数の組合せを採用するようにしてもよい。
【0118】
なお,図5,図6に示すユーザのジェスチャ操作に応じた操作オブジェクトの動作の例については,平行移動する板状の操作オブジェクト50の場合でも,同様であるものとする。
【0119】
このように,操作オブジェクト50の仮想的な動作に伴う摩擦力を考慮した物理モデルに従って操作オブジェクト50の運動を制御することにより,ユーザは,実際に操作オブジェクト50を手40で動かす感覚で,ジェスチャ操作を行うことができる。
【0120】
図12は,本実施の形態による特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度に応じて作用量を変える例を説明する図である。
【0121】
図6(C)の例で説明したように角度の閾値θthで作用量を判定する以外に,特定の物体の位置変化方向と操作オブジェクトの動作可能方向との間の角度に応じて,作用量が変わるように設計することも可能である。
【0122】
図12は,ユーザの手40の移動方向と,x軸と平行に動作する板状の操作オブジェクト50の動作可能方向との間の角度θが大きくなるほど,操作オブジェクト50に対するユーザの手40の影響量が小さくなる例を示している。図12において,手の速度ベクトルは,画面31に投影したユーザの手40の速度ベクトルを示している。
【0123】
図12に示すように,特定の物体の移動方向と操作オブジェクト50の動作可能方向との間の角度θに応じて,ユーザのジェスチャ操作が操作オブジェクト50の運動に及ぼす影響量を変化させることも可能である。以下では,所定の分布関数を用いて,ユーザの手40の移動方向と板状の操作オブジェクト50の動作可能方向との間の角度θに応じた作用量を求め,操作オブジェクト50の平行移動の運動を制御する例を説明する。
【0124】
操作制御装置10において,作用部15は,例えば,板状の操作オブジェクト50の平行移動の運動を,図11に示す摩擦力を考慮した物理モデルに基づいた上記の式(3)に従って制御するものとする。上記の式(3)では,k1 が,ユーザの手40の移動方向と板状の操作オブジェクト50の動作可能方向との間の角度θが,操作オブジェクト50の平行移動の運動に及ぼす影響の大きさを示す作用量となる。
【0125】
作用量算出部14は,例えば,次の式(5)から,k1 を算出する。
【0126】
|θ|<θthのとき:
k1 =k0 ・exp{−(1/2)・(sin2 θ/c2 )}
|θ|≧θthのとき:
k1 =0 ・・・(5)
式(5)において,角度θは,−π/2<θ<π/2である。k0 ,cは,定数である。式(5)において,定数は,理論的に決定してもよいし,実験的に決定してもよい。
【0127】
このように,ユーザの手40の移動方向と操作オブジェクト50の動作可能方向との間の角度に応じて,操作オブジェクト50の平行移動の運動に与える影響の大きさを変えることで,ユーザの誤操作の影響を,少なくすることが可能となる。例えば,ユーザの手40の移動方向と操作オブジェクト50の動作可能方向との間の角度が大きいほど,ユーザのジェスチャ操作が,操作オブジェクト50に対する操作でない可能性が高いものと推定できる。
【0128】
以上説明したように,本実施の形態による操作制御装置10によって,ユーザの直感的なジェスチャ操作が,連続的な操作を伴うものであるか,単なるポインティングの操作であるかを切り分けることが可能となる。ユーザは,手40を速く動かす/手をゆっくりと動かすなどの直感的なジェスチャ操作で,スクロール,拡大/縮小などの連続的な操作を行うことができるようになる。
【0129】
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【0130】
例えば,本実施の形態では,特定の物体と操作オブジェクト50との位置関係に応じた操作オブジェクト50の制御と,特定の物体の位置変化方向と操作オブジェクト50の動作可能方向との間の角度に応じた操作オブジェクトの制御とを別々に説明した。特定の物体と操作オブジェクト50との位置関係に応じた操作オブジェクト50の制御と,特定の物体の位置変化方向と操作オブジェクト50の動作可能方向との間の角度に応じた操作オブジェクトの制御とを合わせて実施することも可能である。
【0131】
また,本実施の形態では,操作オブジェクト50が慣性で運動する例を説明したが,これに限るものではない。例えば,情報表示内容計算部16が,ユーザの手40の移動が操作オブジェクト50に影響するか否かの2値判定をし,影響すると判定された場合に,作用部15が,ユーザの手40の位置をポイントしたカーソル60の移動に同期させて,操作オブジェクト50を動かすなどの実施も可能である。
【符号の説明】
【0132】
10 操作制御装置
11 位置取得部
12 距離計算部
13 速度計算部
14 作用量算出部
15 作用部
16 情報表示内容計算部
17 情報表示部
18 情報記憶部
20 位置取得用装置
30 表示装置
【特許請求の範囲】
【請求項1】
特定の物体の位置を取得する位置取得部と,
前記位置取得部で取得した位置から,仮想空間内における前記特定の物体と操作オブジェクトとの間の距離を計算する距離計算部と,
前記仮想空間内での前記特定の物体の速さを計算する速度計算部と,
前記距離計算部と前記速度計算部の計算結果に従って,前記操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する作用量算出部と,
前記作用量算出部の算出結果に従って,前記操作オブジェクトの運動を制御する作用部と,
前記操作オブジェクトの運動に従って,画面の表示内容を計算する情報表示内容計算部と,
前記情報表示内容計算部の計算結果に従って,情報を画面に表示する情報表示部とを備える
ことを特徴とする操作制御装置。
【請求項2】
前記作用量算出部は,前記特定の物体と前記操作オブジェクトとの間の距離が大きくなるほど,作用量を小さくする
ことを特徴とする請求項1に記載の操作制御装置。
【請求項3】
前記作用量算出部は,前記特定の物体の位置変化方向と前記操作オブジェクトの動作可能方向との間の角度が大きいほど,作用量を小さくする
ことを特徴とする請求項1または請求項2に記載の操作制御装置。
【請求項4】
前記作用部は,前記操作オブジェクトの仮想的な動作に伴う摩擦力を含む式によって表される物理モデルに従って,前記操作オブジェクトの運動を制御する
ことを特徴とする請求項1から請求項3までのいずれかに記載の操作制御装置。
【請求項5】
コンピュータに,
特定の物体の位置を取得し,
前記特定の物体の位置から,仮想空間内における前記特定の物体と操作オブジェクトとの間の距離を計算し,
前記仮想空間内での前記特定の物体の速さを計算し,
前記距離と前記速さの計算結果に従って,前記操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出し,
前記作用量の算出結果に従って,前記操作オブジェクトの運動を制御し,
前記操作オブジェクトの運動に従って,画面の表示内容を計算し,
前記画面の表示内容の計算結果に従って,情報を画面に表示する
処理を実行させるための操作制御プログラム。
【請求項6】
コンピュータが,
特定の物体の位置を取得し,
前記特定の物体の位置から,仮想空間内における前記特定の物体と操作オブジェクトとの間の距離を計算し,
前記仮想空間内での前記特定の物体の速さを計算し,
前記距離と前記速さの計算結果に従って,前記操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出し,
前記作用量の算出結果に従って,前記操作オブジェクトの運動を制御し,
前記操作オブジェクトの運動に従って,画面の表示内容を計算し,
前記画面の表示内容の計算結果に従って,情報を画面に表示する過程を実行する
ことを特徴とする操作制御方法。
【請求項1】
特定の物体の位置を取得する位置取得部と,
前記位置取得部で取得した位置から,仮想空間内における前記特定の物体と操作オブジェクトとの間の距離を計算する距離計算部と,
前記仮想空間内での前記特定の物体の速さを計算する速度計算部と,
前記距離計算部と前記速度計算部の計算結果に従って,前記操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出する作用量算出部と,
前記作用量算出部の算出結果に従って,前記操作オブジェクトの運動を制御する作用部と,
前記操作オブジェクトの運動に従って,画面の表示内容を計算する情報表示内容計算部と,
前記情報表示内容計算部の計算結果に従って,情報を画面に表示する情報表示部とを備える
ことを特徴とする操作制御装置。
【請求項2】
前記作用量算出部は,前記特定の物体と前記操作オブジェクトとの間の距離が大きくなるほど,作用量を小さくする
ことを特徴とする請求項1に記載の操作制御装置。
【請求項3】
前記作用量算出部は,前記特定の物体の位置変化方向と前記操作オブジェクトの動作可能方向との間の角度が大きいほど,作用量を小さくする
ことを特徴とする請求項1または請求項2に記載の操作制御装置。
【請求項4】
前記作用部は,前記操作オブジェクトの仮想的な動作に伴う摩擦力を含む式によって表される物理モデルに従って,前記操作オブジェクトの運動を制御する
ことを特徴とする請求項1から請求項3までのいずれかに記載の操作制御装置。
【請求項5】
コンピュータに,
特定の物体の位置を取得し,
前記特定の物体の位置から,仮想空間内における前記特定の物体と操作オブジェクトとの間の距離を計算し,
前記仮想空間内での前記特定の物体の速さを計算し,
前記距離と前記速さの計算結果に従って,前記操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出し,
前記作用量の算出結果に従って,前記操作オブジェクトの運動を制御し,
前記操作オブジェクトの運動に従って,画面の表示内容を計算し,
前記画面の表示内容の計算結果に従って,情報を画面に表示する
処理を実行させるための操作制御プログラム。
【請求項6】
コンピュータが,
特定の物体の位置を取得し,
前記特定の物体の位置から,仮想空間内における前記特定の物体と操作オブジェクトとの間の距離を計算し,
前記仮想空間内での前記特定の物体の速さを計算し,
前記距離と前記速さの計算結果に従って,前記操作オブジェクトの運動への影響の大きさを定量的に示す作用量を算出し,
前記作用量の算出結果に従って,前記操作オブジェクトの運動を制御し,
前記操作オブジェクトの運動に従って,画面の表示内容を計算し,
前記画面の表示内容の計算結果に従って,情報を画面に表示する過程を実行する
ことを特徴とする操作制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−164115(P2012−164115A)
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願番号】特願2011−23757(P2011−23757)
【出願日】平成23年2月7日(2011.2.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願日】平成23年2月7日(2011.2.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]