説明

入力装置および入力方法

【課題】ユーザの手形状を手モデルに忠実に反映できる入力装置を提供する。
【解決手段】指を伸ばした初期状態からの接触領域の移動量および接触領域の面積の変化を算出し、初期状態からの接触領域の移動量および接触領域の面積の変化に基づいて、CGモデルの平行移動量、各指関節の曲り角度を決定し、決定した平行移動量および各指関節の曲り角度に従って、CGモデルの変形形状を決定する。そして、変形形状が決定されたCGモデルと保持されているGUIパーツとを重畳した画像を作成して表示部に表示させ、GUIパーツとCGモデルの指先との衝突を判定し、衝突が判定されると、衝突が判定されたGUIパーツに割当てられたコマンドを機器に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが機器に対して命令等を入力するための入力装置および入力方法に関し、より特定的には、ユーザがディスプレイ等に表示された情報に基づいて手等の身体部分を用いて、命令等を入力することのできる入力装置および入力方法に関する。
【背景技術】
【0002】
近年の情報機器端末の多機能化に伴って、ユーザがより使い易いユーザインターフェイスが求められている。使い易いユーザインターフェイスの一例として、タッチパネルディスプレイがある。タッチパネルディスプレイは、ディスプレイに表示されるGUI(Graphical User Interface)パーツを押す操作をすることによって、ユーザが命令等を情報機器端末等に入力する装置である。このことから、タッチパネルディスプレイは、初心者でも直感的に操作できるインターフェイスと言える。
【0003】
しかし、タッチパネルディスプレイにおいては、タッチを検知するデバイス(以下、操作部という)と表示部とが一体であるので、当該タッチパネルディスプレイがユーザの手元にないと操作できないという課題があった。
【0004】
この課題を解決するために、特許文献1の技術は、操作部と表示部とを分離し、操作部に置かれた操作者の手を検知し、コンピュータグラフィック(以下、CGという)の手形状モデル(以下、単に、手モデルという)を、表示部に表示されるGUIに重畳して表示する。このことによって、ユーザは、表示部から離れている場合でも、タッチパネルディスプレイの直感的な操作感を維持した操作を行うことができる。
【特許文献1】特開2006−72854号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記した従来の技術は、操作者であるユーザの指の曲りを算出できないので、ユーザが指を曲げて操作を行った場合には、ユーザの手形状と大幅に異なる形状の
手モデルを表示部に表示する。この結果として、操作中にユーザが違和感を感じるという問題があった。
【課題を解決するための手段】
【0006】
本発明は、操作面に置かれた手のCGモデルを表示部に表示して機器を操作する入力装置であって、操作面と前記手との複数の接触領域を検知する接触領域検知部と、手の指を伸ばした初期状態からの接触領域の移動量および前記接触領域の面積の変化を算出する移動量算出部と、初期状態からの接触領域の移動量および接触領域の面積の変化に基づいて、CGモデルの平行移動量、指曲げによる移動量を決定するモデル移動量決定部と、指曲げによる移動量に基づいて、CGモデルの各指関節の曲り角度を決定する指曲り角度決定部と、CGモデルの平行移動量および各指関節の曲り角度に従って、CGモデルの位置および変形形状を決定するモデル形状決定部と、機器に対するコマンドを割り当てたGUIパーツを保持するGUIパーツ保持部と、モデル形状決定部で形状が決定されたCGモデルとGUIパーツ保持部に保持されたGUIパーツとを重畳した画像を作成して表示部に表示させる重畳画像作成部と、GUIパーツとCGモデルの指先との衝突を判定する衝突判定部と、衝突判定部によって衝突が判定されると、当該衝突が判定されたGUIパーツに割当てられたコマンドを機器に送信するコマンド送信部とを備える。
【0007】
これにより、本発明の入力装置は、操作者の手の動きをCGモデルに反映させることができ、更に、操作者の各指の動きまでもCGモデルに反映させることができる。
【0008】
また、好ましくは、移動量算出部は、接触領域中の指先に対応する位置を示す指先位置点を決定し、当該指先位置点を用いて、指を伸ばした初期状態からの接触領域の移動量を算出する。
【0009】
これにより、本発明の入力装置は、より正確な手の動きを検出できるので、更に正確な手の動きをCGモデルに反映させることができる。
【0010】
また、好ましくは、モデル移動量決定部は、初期状態からの接触領域の面積の変化率の絶対値が所定の閾値より小さい場合に、初期状態からの接触領域の移動量をCGモデルの平行移動量として決定し、初期状態からの接触領域の面積の変化率の絶対値が所定の閾値より大きい場合に、初期状態からの接触領域の移動量をCGモデルの指曲げによる移動量として決定する。
【0011】
これにより、操作者が操作面上において手全体は動かさずに指を曲げたのか、手全体を下方に動かしたのかを判別でき、更に正確な手の動きをCGモデルに反映させることができる。
【0012】
また、好ましくは、指曲り角度決定部は、CGモデルの同一の指の各指関節の曲り角度は一定という拘束条件を用いて、CGモデルの各指関節の曲り角度を決定する。
【0013】
これにより、本発明の入力装置は、CGモデルの各指関節の曲り角度を決定するための計算の量を大幅に削減できるので、CGモデルの形状を迅速に変形でき、更に装置のコストを抑えることができる。
【0014】
また、接触領域検知部の操作面上の領域をX座標及びY座標で表すと、接触領域検知部は、接触領域のX座標とY座標とをそれぞれ独立に検知し、その交点を接触領域として検出するセンサを備え、モデル移動量決定部は、接触領域を示すY座標の領域の幅の初期状態からの変化率の絶対値が所定の閾値より小さい場合に、初期状態からの接触領域の移動量をCGモデルの平行移動量として決定し、接触領域を示すY座標の領域の幅の初期状態からの変化率の絶対値が所定の閾値より大きい場合に、初期状態からの接触領域の移動量を前記CGモデルの指曲げによる移動量として決定する。
【0015】
これにより、X座標軸方向とY座標軸方向との交点を接触領域として、光センサ、導電膜、静電容量等で検出するタッチパッドを接触領域検知部として用いた場合にも、操作者が操作面上において手全体は動かさずに指を曲げたのか、手全体を下方に動かしたのかを判別でき、更に正確な手の動きをCGモデルに反映させることができる。
【0016】
本発明は、操作面に置かれた手のCGモデルを表示部に表示して機器を操作する入力方法にも向けられている。そして、上記目的を達成させるために、本発明の入力方法は、操作面と手との複数の接触領域を検知する接触領域検知ステップと、手の指を伸ばした初期状態からの接触領域の移動量および接触領域の面積の変化を算出する移動量算出ステップと、初期状態からの接触領域の移動量および接触領域の面積の変化に基づいて、CGモデルの平行移動量、指曲げによる移動量を決定するモデル移動量決定ステップと、指曲げによる移動量に基づいて、CGモデルの各指関節の曲り角度を決定する指曲り角度決定ステップと、CGモデルの平行移動量および各指関節の曲り角度に従って、CGモデルの位置および変形形状を決定するモデル形状決定ステップと、モデル形状決定ステップで形状が決定されたCGモデルと、機器に対するコマンドを割り当てた予め保持されているGUIパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成ステップと、GUIパーツと前記CGモデルの指先との衝突を判定する衝突判定ステップと、衝突判定ステップによって衝突が判定されると、当該衝突が判定されたGUIパーツに割当てられたコマンドを機器に送信するコマンド送信ステップとを備える。
【0017】
これにより、本発明の入力方法は、操作者の手の動きをCGモデルに反映させることができ、更に、操作者の各指の動きまでもCGモデルに反映させることができる。
【発明の効果】
【0018】
本発明の入力装置および入力方法によれば、ユーザが指を曲げて操作した場合であっても、ユーザの手形状を手モデルに忠実に反映できる。この結果として、本発明の入力装置およびその方法によれば、ユーザは、違和感を感じることなく操作を行うことができる。
【発明を実施するための最良の形態】
【0019】
(実施の形態1)
図1は、本発明の第1の実施形態に係る入力装置100の動作の概要を説明するための図である。以下では、図1を用いて、入力装置100の動作について簡単に説明する。
【0020】
図1に示す通り、入力装置100は、接触領域検知部1と演算部2とを備える。接触領域検知部1は、当該接触領域検知部1の操作面上に置いたユーザ(以下、操作者という)の手が接触した領域を検出し、検出した接触領域の情報(以下、単に、接触領域情報という)を演算部2に出力する。接触領域検知部1は、例えば、多点で接触を検知するタッチパッドである。なお、接触領域検知部1は、独立した多点で接触を検知できればよく、光学式、静電容量方式、感圧方式、抵抗膜方式等を用いる一般的なデバイスでよい。
【0021】
演算部2は、接触領域検知部1が検知した接触領域情報を用いて表示データを作成して表示部3に出力する。具体的には、演算部2は、接触領域情報を用いてCGの手モデルを作成し、当該手モデルをGUIに重畳した表示データを作成して表示部3に出力する。また、演算部2は、作成した手モデルとGUIパーツとの位置関係を用いて操作者が意図するコマンドを決定し、決定したコマンドを情報端末機器等である操作対象機器4に出力する。なお、演算部2は、一般的なパーソナルコンピュータ(以下、PCという)でもよいし、専用のグラフィックIC等を組み込んだ汎用性のない専用機でもよい。また、演算部2は、接触領域検知部1から入力される信号を受信するインターフェイスと、CPU、ROM、RAMと、各モジュール間を結ぶバスと、計算結果を映像として出力するインターフェイスとを含む。
【0022】
表示部3は、演算部2から入力された表示データを用いて表示を行う。表示部3は、例えば、液晶ディスプレイやCRT等のディスプレイである。操作対象機器4は、演算部2から入力されたコマンドを実行する。
【0023】
以上の構成によって、操作者は、表示部3に表示されたGUIパーツ上に重畳された手モデルを目視しながら、接触領域検知部1の操作面上の手を動かして手モデルを操作することによって、操作対象機器4を操作することができる。
【0024】
以下では、入力装置100の構成および動作について詳しく説明する。図2は、入力装置100の構成例を示す図である。図2に示すように、入力装置100は、接触領域検知部1と演算部2とを備える。演算部2は、移動量算出部12と、モデル移動量決定部13と、指曲り角度決定部14と、モデル保持部15と、モデル形状決定部16と、GUIパーツ保持部17と、重畳画像作成部18と、衝突判定部19と、コマンド送信部20とを含む。
【0025】
図3は、入力装置100の動作を説明するためのフローチャートである。操作者等によってスタートスイッチがオンにされると、入力装置100は動作を開始する。
【0026】
まず、ステップS101において、接触領域検知部1は、当該接触領域検知部1の操作面上に操作者の手が置かれているか否かを判定する。操作者の手が置かれていない場合、接触領域検知部1は、処理待ち状態となり、操作者の手が置かれると、ステップS102に移る。なお、ステップS101における判定は、接触が検知されたか否かによって行うことができる。
【0027】
次に、ステップS102において、接触領域検知部1は、操作者の手が当該接触領域検知部1に接触している領域を点群(以下、接触点群という)として検知し、検知した接触点群のデータを移動量算出部12に出力する。移動量算出部12は、入力された接触点群のデータを用いて、操作者の4つの指先の位置を示す点(以下、指先位置点という)と接触面積を取得する。なお、指先位置点と接触面積を取得する方法は、後述する。
【0028】
次に、ステップS103において、移動量算出部12は、4つの指先位置点と接触面積を取得したか否かを判定し、取得した場合にはステップS104に進む。取得していない場合にはステップS102に戻る。
【0029】
ステップS104において、移動量算出部12は、操作者が手を開いた状態(指を伸ばした状態)の指先位置点である初期位置点が取得済みか否かを判定する。初期位置点が取得済みの場合は、ステップS106に移る。初期位置点が取得済みでない場合は、ステップS105に移る。ここで、初期位置点が取得済みか否かの判定は、入力装置100が今回起動した後に初期位置点を取得したか否かを判定するものである。
【0030】
ステップS105において、移動量算出部12は、操作者に接触領域検知部1に置いた手を開くように促すメッセージを通知して初期位置点と接触面積を取得する。このメッセージは、例えば、表示部3に表示されて操作者に通知される。その後、移動量算出部12は、取得した初期位置点を用いて操作者が手を開いた状態の手モデル(以下、初期手モデルという)を作成する。ステップS105で取得された初期位置点、接触面積および初期手モデルのデータは、モデル保持部15に保存される。その後、ステップS102に戻る。つまり、入力装置100は、起動後最初に操作者が手を接触領域検知部1に置いた時で、初期位置点、接触面積および初期手モデルを取得する。初期位置点、接触面積および初期手モデルの取得方法は、後述する。
【0031】
なお、操作者が交代した場合には、初期位置点、接触面積および初期手モデルを更新するために、後の操作者の指示に応答して既に取得済みの前の操作者の初期位置点、接触面積および初期手モデルを破棄し、ステップS105の動作を再度行うことで後の操作者の初期位置点、接触面積および初期手モデルを取得してもよい。また、初期位置点、接触面積および初期手モデルを起動毎に取得せず、操作者の指示に応答してステップS105の動作を行うことによって初期位置点、接触面積および初期手モデルを新たに取得してもよい。また、ステップS101において接触領域検知部1が所定期間手の接触を検知しない場合には、既に取得済みの初期位置点、接触面積および初期手モデルを破棄し、ステップS105の動作を再度行って新たな初期位置点、接触面積および初期モデルを取得してもよい。
【0032】
ステップS106において、移動量算出部12は、指先位置点の初期位置点からの移動量と接触面積の変化を、それぞれ取得する。ここで、各点の移動量を取得するために、移動後の各点と移動前の各点との対応をとる方法は、一般的な手法でよい。
【0033】
次に、ステップS107において、モデル移動量決定部13は、ステップS106で取得した指先位置点の初期位置点からの移動量と接触面積の変化を用いて、手モデルの平行移動量、指曲げによる移動量を決定する。この平行移動量、指曲げによる移動量の決定方法は、後述する。
【0034】
次に、ステップS108において、指曲り角度決定部14は、ステップS107で取得した指先位置点の初期位置点からの指曲げによる移動量を用いて、手モデルの各指関節の曲り角度を決定する。この各指関節の曲り角度を決定する方法は、後述する。
【0035】
次に、ステップS109において、モデル形状決定部16は、ステップS107およびS108で決定された手モデルの平行移動量、各指関節の曲り角度を用いて、モデル保持部15に保持された手モデルを読出して変形を反映させる。ここで、モデル保持部15に初期手モデルが保持されている場合には、当該初期手モデルを読出して変形を反映させる。
【0036】
なお、モデル保持部15に保持される手モデルは、一般的な骨格(以下、ボーン構造という)を持つCGモデルであることが好ましい。モデル保持部15が保持する手モデルの一例を図4に示す。図4に示す手モデルは、複数のポリゴンとボーン構造を示すラインとから構成される。また、手モデルをモデル保持部15に保持するファイル形式は、一般的な形式でよい。一例として、ポリゴンの頂点座標を格納したファイル形式が挙げられる。また、手モデルは、併せてテクスチャ情報も保持し、手モデルの現実感を増幅させてもよい。
【0037】
次に、ステップS110において、重畳画像作成部18は、GUIパーツ保持部17が予め保持しているGUIパーツを読み出し、読出したGUIパーツを配置した操作画像を作成する。ここで、GUIパーツとは、表示部3に表示される制御命令を割り当てたボタン等である。なお、GUIパーツおよびその配置方法は、一般的なものでよい。その後、重畳画像作成部18は、ステップS109で変形を反映された手モデルと、GUIパーツが配置された操作画像とを重畳して重畳画像を作成し、当該重畳画像を表示部3に表示する。
【0038】
次に、ステップS111において、衝突判定部19は、GUIパーツと手モデルの指先位置点との衝突の有無を判定する。この衝突判定の詳細は、後述する。衝突がないと判定されている場合は、ステップS101〜S111の処理が繰り返されて、操作者の手の動きに応じて重畳画像内の手モデルが変形する。衝突が有ると判定されると、衝突判定部19は、衝突が有ったGUIパーツに割当てられたコマンドをコマンド送信部20に通知し、ステップS112に移る。
【0039】
ステップS112において、コマンド送信部20は、通知されたコマンドを操作対象機器4に送信し、ステップS101に戻る。操作対象機器4は、送信されたコマンドを受信して実行する。以上の処理が繰り返されることによって、入力装置100は、コマンドの送信を繰り返して操作対象機器4を操作する。なお、操作者等によってスタートスイッチがオフにされると処理は終了する。
【0040】
以上に説明した動作によって、操作者は、表示部3に表示された重畳画像を目視しながら手を動かすことによって、重畳画像内の手モデルを操作できる。そして、操作者は、手モデルを操作して指先の位置をGUIパーツに重ね合わせることによって、操作対象機器4を操作できることとなる。
【0041】
以下では、図3を用いて説明した各ステップについて、詳細に説明する。
【0042】
図5は、図3のステップS101およびS102における接触領域検知部1の動作について説明するための図である。図5(a)は、接触領域検知部1の操作面に操作者の手か置かれた状態の一例を示す。図5(b)は、接触領域検知部1が検知した接触点群を黒丸群で表した図である。図5に示すように、接触領域検知部1は、図3のステップS101およびS102において、接触点(接触点群)を検知することによって、手の接触領域を検知する。
【0043】
図6は、図3のステップS102を詳細に説明するためのフローチャートである。図7は、図3のステップS102で取得される指先位置点を説明するための図である。以下、図6および図7を用いて、図3のステップS102の処理を詳細に説明する。
【0044】
まず、S102−1において、移動量算出部12は、接触領域検知部1から図5(b)を用いて説明した接触点群を示すデータを取得する。
【0045】
次に、ステップS102−2において、移動量算出部12は、接触点の位置関係に基づいて、複数の領域を算出する。S102−2において複数の領域を算出する方法は、一般的な方法でよい。例えば、接触点の近傍に他の接触点が存在する場合はこれらの接触点を同一の領域とみなすことによって、複数の領域に区分する方法がある。
【0046】
次に、ステップS102−3において、移動量算出部12は、ステップS102−2で算出した各領域に対して、楕円フィッティング処理を行う。図7は、指先位置点の算出方法について説明するための図ある。ステップS102−3において、移動量算出部12は、図7(a)の楕円Aで示すように指の接触点群を楕円で囲む。その後、移動量算出部12は、例えば、楕円Aの中心を指先位置点とする(図7(b)を参照)。なお、指先位置点は、他の方法を用い、また、他の位置に決定してもよい。
【0047】
指先位置点を決定した後、各指先位置点について接触面積を求める。接触面積は、各指先が操作面に接触している面積で、例えば、上記の様に指先位置点を楕円フィッティングで求めた場合には楕円の面積を計算することで求めることができる。また、各領域内にある接触点の数を接触面積とすることもできる。
【0048】
次に、ステップS102−4において、移動量算出部12は、ステップS102−3で取得した指先位置点の位置と接触面積を保持する。図8は、図6のステップS102−3で取得された指先位置点の位置の一例を示す図である。図8において、黒丸は指先位置点801、点線の楕円802は接触面積の領域を示している。
【0049】
図9は、図3のステップS105の処理を詳しく説明するためのフローチャートである。まず、ステップS105−1において、移動量算出部12は、操作者に接触領域検知部1の操作面上の手を開くように促すメッセージを通知して4つの初期位置点および接触面積を取得する。
【0050】
次に、ステップS105−2において、移動量算出部12は、ステップS105−1で取得した初期位置点(指先位置点)と、モデル保持部15が当初から保持しているひな形であるひな形手モデルの対応する指先位置点とが重なるように、当該ひな形手モデルを変形して初期手モデルを作成する。ここで、4つの初期位置点は、それぞれ小指、薬指、中指、人差し指に対応する。操作者の操作が左手に限定される場合には、左手のひな形手モデルを使用して、左から小指、薬指、中指、人差し指の順番に初期位置点とが重なるように、当該ひな形手モデルを変形して初期手モデルを作成する。
【0051】
ここで、初期手モデルを作成する際には、接触領域検知部1に対して操作者がどの方向から手を進入させたかを知る必要がある。逆方向から手を進入させた場合には、同じ4つの初期位置点であっても、初期手モデルが反対向きに作成されてしまう。そのため、接触領域検知部1に対して操作者がどの方向から手を進入させるかは、予め分っているものとする。
【0052】
図19は接触領域検知部1の車への設置位置の例を示している。図19(a)は車両のセンターコンソールに取り付けられた場合の一例を示す図である。図19(b)は、接触領域検知部1が車両のドアの操作部に取り付けられた場合の一例を示す図である。図19(c)は、接触領域検知部1が車両のハンドルに取り付けられた場合の一例を示す図である。図19(a)に示すような車両の位置に、接触領域検知部1を取り付けることで、ドライバである操作者は接触領域検知部1に対して左手を矢印1901の方向に進入させることは予め分る。また、図19(b)に示すような車両の位置に、接触領域検知部1を取り付けることで、ドライバである操作者は接触領域検知部1に対して右手を矢印1902の方向に進入させることは予め分る。図19(c)の場合には、ドライバである操作者は接触領域検知部1に対して手を矢印1903の方向に進入させることは予め分る。ただ、この場合には、操作者が右手で操作するか左手で操作するかは分らないため、事前に操作者の好みで右手もしくは左手で操作するかの情報を入力できる様にしておけばよい。
【0053】
また、操作者が右手もしくは左手で操作する場合には、通常は小指は他の指と比較して小さく、操作面との接触面積も小さいため、ステップS105−1で取得した接触面積が最も小さい領域を小指と判断し、他の領域との位置関係から右手か左手かを特定することもできる。すなわち、小指と特定された領域が他の3つの領域より、最も左側に存在すれば左手と判断し、左手のひな形手モデルを変形する。逆に、小指と特定された領域が他の3つの領域より、最も右側に存在すれば右手と判断し、右手のひな形手モデルを変形する。
【0054】
図9に戻り、その後、移動量算出部12は、作成した初期手モデルを、表示部3に表示する。この処理によって、移動量算出部12は、操作者の手の大きさを反映した初期手モデルを作成し、表示部3に表示できる。
【0055】
次に、ステップS105−3において、移動量算出部12は、ステップS105−1で取得した初期位置点の位置、接触面積と、ステップS105−2で作成した初期手モデルとをモデル保持部15に保存し、ステップS102に戻る(図3を参照)。
【0056】
図10は、図3のステップS107およびS108の処理を説明するためのフローチャートである。図3のステップS107およびS108の処理は、一体となって行われる。従って、以下では、図10を参照して、図3のステップS107およびS108の処理を、同時に説明する。また、以下では、説明の都合上、図10の各ステップを実行する主体をモデル移動量決定部13又は指曲り角度決定部14としているが、ステップによってはこの主体は入れ替わってもよい。
【0057】
まず、ステップS178−1において、モデル移動量決定部13は、ステップS106で取得された指先位置点の初期位置点からの移動量から、何れかの指先位置点が移動したか否かを判定する。何れの指先位置点も移動していない場合には、ステップS109へ進み、何れかの指先位置点が移動した場合には、ステップS178−2に進む。
【0058】
次に、ステップS178−2では、モデル移動量決定部13は、4つ全ての指先位置点が同じ方向(図5で示す、上もしくは下の方向)に移動したか否かを判定する。4つ全ての指先位置点が同じ方向に移動した場合には、ステップS178−3へ進み、移動していない場合には、ステップS178−6に進む。
【0059】
次に、ステップS178−3では、モデル移動量決定部13は、ステップS106で取得した指先位置点の接触面積が、初期位置点の接触面積から変化したか否かを判定する。図11は操作者が接触領域検知部1の操作面上の手を動かした時の各指先位置点の接触面積の変化を示している。図11(a)は、操作者が手全体は動かさずに4つの指を曲げた場合を示しており、指を曲げることにより操作面と指との接触位置が、各指の腹の部分から、爪の方に移動するため、接触面積は小さくなる。逆に、指を曲げた状態から伸ばすと、その接触面積は大きくなる。図11(b)は、操作者が接触領域検知部1の操作面上の手全体を下方に動かした場合を示しており、操作面と指との接触位置は各指の腹の部分のままで、その接触面積はあまり変わらない。
【0060】
指先位置点の移動だけでは両者を区別することはできないが、ステップS178−3では、この接触面積の変化の違いを利用して、両者を区別している。すなわち、ステップS106で取得した指先位置点の接触面積の変化が、初期位置点の接触面積からの減少を示している場合には、操作者が指を曲げたと判断して、指の曲り角度を算出する処理(ステップS178−6、S178−7)に進み、ステップS106で取得した指先位置点の接触面積の変化が、初期位置点の接触面積から変化していないことを示している場合には、操作者が接触領域検知部1の操作面上の手全体を下方もしくは上方に動かしたと判断して、手モデルを平行移動させる処理(ステップS178−4、S178−5)に進む。
【0061】
ここで、操作者の手の大きさや接触領域検知部1の操作面への指の押し付け方により、接触面積は多少変わるので、指先位置点の移動前後の接触面積の変化率について所定の閾値を予め設定しておき、接触面積の変化率(絶対値)が所定の閾値より大きい場合に接触面積が変化したと判断しても良い。また、接触面積の変化率の計算は、各指先位置点ごとに行っても良いし、4つの指先位置点に対応する接触面積の総和で変化率を計算しても良い。
【0062】
次に、ステップS178−4では、モデル移動量決定部13は、ステップS106で取得した指先位置点の初期位置からの移動量を、手モデルの平行移動量として決定し、ステップS178−5で、現在の指先位置点を手モデルの初期位置点として、モデル保持部15に保存する。
【0063】
ステップS178−6では、モデル移動量決定部13は、手モデルの付け根点と各指先位置点との距離をそれぞれ算出する。ここで、手モデルの付け根点は、手モデルの下部、中央の掌側の点であり、手モデルの基準位置となる。図12は、手モデル1201の付け根点1202から各指先位置点1211〜1214までの距離R1〜R4を示す図である。操作者は、手全体は移動させずに指を曲げたもしくは伸ばしたため、手モデルの付け根点1202は移動していない。図12に示すR1〜R4の長さの変化量は、それぞれ、指曲げにより生じる移動量である。モデル移動量決定部13は、ステップS106で取得した指先位置点の初期位置からの移動量を、指曲げにより生じる移動量として決定する。
【0064】
次に、ステップS178−7において、指曲り角度決定部14は、ステップS178−6で算出した指曲げによる移動量を用いて、各指の各関節の曲り角度を決定する。
【0065】
ここで、指先の変位から指関節の曲り角度を求める方法として、ロボット工学分野等で周知であるインバースキネマティクス(以下、IKという)技術がある。IK技術は、複数の可動部を持つアームの先端を目的位置に移動させるために用いられる。そして、アームが複数の可動部を持つ場合、IK技術を用いて目的位置にアームの先端を移動させるためには、可動部の曲り角度には複数の解が存在する。
【0066】
本発明においても、指には複数の関節があるので、指関節の曲り角度には複数の解が存在する。このため、本発明では、一例として、操作者の掌および指先は操作面上(同一平面上)に存在するという拘束条件と、各指関節の曲り角度は等しいという拘束条件とを用いて、解を一意に求める。
【0067】
図13(a)は、一例として、人差し指を曲げた場合の指先位置点の変位を示している。図13(b)は、図13(a)に示す曲げた状態の人差し指1300の手モデルを側面から見た図である。図13から分るように、通常、指を曲げると3つの指関節は同時に曲がるので、各指関節の曲り角度1301〜1303は等しいという拘束条件を用いて手モデルを変形すると、操作者は違和感無く操作を行うことができる。また、この様な拘束条件を用いて手モデルを変形すると、演算量が大幅に低減できるので、操作者の手の動きに瞬時に応答する手モデルの変形が可能である。
【0068】
なお、指関節の曲り角度を算出するための拘束条件は、これには限定されず、解を一意に求めらる拘束条件であればよい。しかし、上記したように、指関節の曲り角度を算出するための拘束条件は、操作者が違和感を感じない手モデルとなる拘束条件が好ましく、操作者の操作行為が自然に行える手モデルとなる拘束条件が好ましい。また、IK技術において目的位置からアーム可動部の曲り角度を求める方法として、ヤコビ行列を用いて繰り返し計算を行う方法や幾何学的に算出する方法等が知られているが、本発明においてはいずれを用いてもよい。
【0069】
以上に説明した一連の処理を行うことによって、モデル移動量決定部13および指曲り角度決定部14は、図3のステップS107およびS108の処理を行い、手モデルの平行移動量、各指関節の曲り角度を決定する。
【0070】
図14は、図3のステップS109の処理を説明するためのフローチャートである。図14のフローチャートの処理によって、ステップS107およびS108で決定された各値を用いて手モデルの変形形状が決定される。以下では、図14を参照して、図3のステップS109処理について詳しく説明する。
【0071】
まず、ステップS109−1において、モデル形状決定部16は、ステップS107で決定された手モデルの平行移動量を用いて、手モデルの位置を決定する。
【0072】
次に、ステップS109−2において、モデル形状決定部16は、ステップS108で決定された各指関節の曲り角度を用いて、手モデルの変形形状を決定する。その後、ステップS110に移る。
【0073】
図15は、図3のステップS109における手モデルの変形の具体例を示す図である。図15(a)は、初期位置点(操作者が手を開いた状態の指先位置点)を示す。図15(b)は、図15(a)に示す初期位置点を用いて描画された初期手モデルである。図15(c)は、一例として、操作者が人差し指を曲げた場合の指先位置点を示す。図15(d)は、図15(c)に示す指先位置点を用いて変形された手モデルである。図16(a)、(b)はそれぞれ、図15(b)および(d)に示した手モデルを側面から見た図である。図15および図16に示すように、図3のステップS109において、手モデルは、操作者の手の変形に応じてリアルに変形する。
【0074】
図17は、図3のステップS110の処理を説明するための図である。図17に示す通り、ステップS110において、重畳画像作成部18は、GUIパーツ1701を配置した操作画像1700と、変形された手モデル1710とを重畳して、重畳画像1720を作成し、表示部3に表示する。なお、重畳画像1720を作成する際、手モデルと重なるGUIパーツを視認し易くするために、手モデルを半透過等にしてもよい。
【0075】
図18は、図3のステップS111の処理について説明するための図である。衝突判定部19は、図18の矢印1820で示すように、ステップS110で作成された重畳画像においてGUIパーツ1801〜1804と手モデル1810の指先位置点とが重なった場合には、当該GUIパーツ1801〜1804と手モデル1810の指先位置点とが衝突したと判定する。図18の場合には、衝突判定部19は、衝突が判定されたGUIパーツ1802に割当てられたコマンドをコマンド送信部20に通知する。
【0076】
その後、ステップS112でコマンドが操作対象装置4に送信される。操作対象装置4は、受信したコマンドを実行する。
【0077】
以上に説明したように、本発明に係る入力装置100によれば、操作者は、表示部3から離れている場合でも、タッチパネルディスプレイの直感的な操作感を維持した操作を行うことができる。また、本発明に係る入力装置100は、操作者の指の動きを忠実に再現した手モデルを表示部3に表示することができる。この結果として、本発明に係る入力装置100は、操作者に違和感の無い快適な操作感覚を提供することができる。
【0078】
なお、本実施形態においては、4つの指先位置点と接触面積を取得することとしたが、4つに限られることはない。右手か左手かが分っており、接触する指が特定できる場合には(例えば、人差し指で接触)、手の進入方向が分っていれば手モデルの位置を決定できるため、1〜3つの指先位置点と接触面積を取得することにしてもよい。
【0079】
(実施の形態2)
第2の実施形態に係る入力装置のハードウェア構成、及び機能ブロックについては、図1及び図2を援用して説明する。第2の実施形態に係る入力装置は、第1の実施形態に係る入力装置100と比較して、接触領域検知部の構成が異なる。第1の実施形態に係る接触領域検知部1は、各接触領域を独立して取得できるタッチパッドであったが、第2の実施形態に係る接触領域検知部は、図20に示すように、接触領域のX座標とY座標とをそれぞれ独立に検知し、その交点を接触領域として検出するセンサである。
【0080】
図20(a)は、本発明の第2の実施形態に係る接触領域検知部1aの構成例を示す図である。ただし、接触領域検知部1aの操作面上の領域をX座標とY座標とで表すものとする。また、操作者の手の長手方向をY座標軸の方向とし、Y座標軸と直交する方向をX座標軸の方向と定義する。
【0081】
図20(a)において、接触領域検知部1aは、X座標軸と垂直な方向に光を発する多数の発光部と、多数の発光部が発した光を受光する多数の受光部とを備える。また、接触領域検知部1aは、Y座標軸と垂直な方向に光を発する多数の発光部と、当該多数の発光部が発した光を受光する多数の受光部とを備える。
【0082】
例えば、接触領域検知部1aは、操作面の形状が長方形である場合、X座標軸と平行し、互いに対向する2辺のうち一辺に光を発する多数の発光部と、他の一辺に当該発光部が発した光を受光する多数の受光部とを備える。また、接触領域検知部1aは、Y座標軸と平行し、互いに対向する2辺のうち一辺に光を発する多数の発光部と、他の一辺に当該発光部が発した光を受光する多数の受光部とを備える。
【0083】
操作面に操作者の手が接触した場合、多数の発光部から発した一部の光が、操作者の手によって遮られ、一部の受光部に届かなくなるために、接触領域検知部1aは、接触領域のX座標及びY座標を検知することができる。
【0084】
図20(b)は、本発明の第2の実施形態に係る接触領域検知部1bの構成例を示す図である。図20(b)において、接触領域検知部1bは、X座標方向にストライプ状に電流を流すストライプ状導電膜が形成された基板と、Y座標方向にストライプ状に電流を流すストライプ状導電膜が形成された基板とを、所定の空間を介して導電膜が対向するように上下に重ねて構成されている。この例では、X座標方向のストライブ状導電膜が上側に、Y座標方向のストライブ状導電膜が下側に重ねられている。操作面に手が接触した場合、通常は上下に離れているX座標方向のストライプ状導電膜とY座標方向のストライプ状導電膜が、接触した位置で通電し、接触領域検知部1bは、接触領域のX座標及びY座標を検知することができる。
【0085】
その他、接触領域のX座標とY座標とをそれぞれ独立に検知し、その交点を接触領域として検出するセンサとしては、静電容量方式等も用いることができる。
【0086】
しかしながら、これら検出方式のセンサを接触領域検知部に用いた場合には、以下のような課題がある。図21は、第2の実施形態に係る接触領域検知部の課題を説明する図である。ただし、X座標Y座標で表される領域を(X,Y)領域と記す。接触領域検知部の操作面上において、人間の左手の形状を想定して、操作者の指先が黒丸で示す点で接触している場合を想定する。接触領域検知部は、上記の様な検出方式であるために、(X1,Y2)領域2101、(X2,Y1)領域2102、(X3,Y1)領域2103、及び(X4、Y1)領域2104以外に、(X1,Y1)領域2111、(X2,Y2)領域2112、(X3,Y2)領域2113、(X4,Y2)領域2114の、実際には操作者の指先が接触していない領域を検出してしまう。また、(X2,Y1)領域2102、(X3,Y1)領域2103、及び(X4、Y1)領域2104のY座標が同じになってしまう。これは、例えば接触領域検知部1aで説明すると、薬指、中指、人指し指のY座標が近接しているので、発光部が発した光がこれら3本の指で遮られて、別個に特定できず、領域Y1という幅の広い領域内に有るということだけしか検出できないためである。
【0087】
上述したような課題に対して、第1の実施の形態の図3のステップS105で初期手モデルを作成する際に、操作者が接触領域検知部に各指を置く際の時間差を利用して、接触した領域を特定するなどの方法が考えられる。しかし、第1の実施の形態の図11において示したのと同様に、指先位置点の移動だけでは、操作者が手全体は動かさずに4つの指を曲げた場合と、操作者が接触領域検知部の操作面上の手全体を下方に動かした場合とを区別することはできないという課題がある。
【0088】
そこで、本実施形態においては、上述したような課題に対して、以下のように課題を解決する。図22は図20に示した接触位置検知部1aまたは1bを用いた場合の、両者を区別する方法を説明するための図である。図22(a)は図11(a)同様に操作者が手全体は動かさずに4つの指を曲げた場合を示す図で、図22(b)は図11(b)同様に操作者が接触領域検知部の操作面上の手全体を下方に動かした場合を示す図である。
【0089】
図22(a)では、左から小指、薬指、中指、人差し指に対応する接触領域2201〜2204が、手全体は動かさずに4つの指を曲げたことにより接触領域2211〜2214に移動している。その際、指を曲げることにより操作面と指との接触位置が、各指の腹の部分から、爪の方に移動するため、接触領域の面積は小さくなる。そのため、接触領域検知部1aまたは1bを用いた場合に検出されるY座標の領域は、領域Y1から領域Y3へ、領域Y2から領域Y4へそれぞれ移動し、各領域の幅は小さくなる。
【0090】
図22(b)では、左から小指、薬指、中指、人差し指に対応する接触領域2201〜2204が、接触領域検知部の操作面上の手全体を下方に動かしたことにより接触領域2221〜2224に移動している。その際、操作面と指との接触位置は各指の腹の部分のままで、その接触面積はあまり変わらない。そのため、接触領域検知部1aまたは1bを用いた場合に検出されるY座標の領域は、領域Y1から領域Y5へ、領域Y2から領域Y6へそれぞれ移動し、各領域の幅はあまり変わらない。
【0091】
指先位置点の移動だけでは両者を区別することはできないが、このY座標の領域の幅の変化の違いを利用して、第1の実施の形態と同様に、両者を区別することができる。
【0092】
すなわち、本実施形態においては、第1の実施の形態の図3のステップS102においてモデル移動量決定部は、指先位置点の接触面積としてY座標の領域の幅を取得し、図10のステップS178−3において、モデル移動量決定部は、接触面積の変化としてY座標の領域の幅の変化を検出する。
【0093】
モデル移動量決定部は、接触領域を示すY座標の領域の幅の初期状態からの変化率の絶対値が所定の閾値より小さい場合に、初期状態からの接触領域の移動量をCGモデルの平行移動量として決定し、接触領域を示すY座標の領域の幅の初期状態からの変化率の絶対値が所定の閾値より大きい場合に、初期状態からの接触領域の移動量をCGモデルの指曲げによる移動量として決定する。
【産業上の利用可能性】
【0094】
本発明は、入力装置および入力方法等に利用可能であり、特に、操作者の手のCGモデルを操作者の手の動きに併せてよりリアルに変形させたい場合等に有用である。
【図面の簡単な説明】
【0095】
【図1】本発明の実施形態に係る入力装置100の動作の概要を説明するための図
【図2】本発明の実施形態に係る入力装置100の構成例を示す図
【図3】本発明の実施形態に係る入力装置100の動作を説明するためのフローチャート
【図4】モデル保持部15が保持する手モデルの一例を示す図
【図5】図3のステップS101およびS102における接触領域検知部1の動作について説明するための図で、(a)接触領域検知部1の操作面に操作者の手か置かれた状態の一例を示す図、(b)接触領域検知部1が検知した接触点群を黒丸群で表した図
【図6】図3のステップS102を詳細に説明するためのフローチャート
【図7】図3のステップS102で取得される指先位置点を説明するための図で、(a)接触点群を楕円フィッティング処理した一例を示す図、(b)楕円から指先位置点を決定する一例を示す図
【図8】図6のステップS102−3で取得された指先位置点の位置の一例を示す図
【図9】図3のステップS105の処理を詳しく説明するためのフローチャート
【図10】図3のステップS107およびS108の処理を説明するためのフローチャート
【図11】操作者が接触領域検知部1の操作面上の手を動かした時の各指先位置点の接触面積の変化を示す図で、(a)操作者が手全体は動かさずに4つの指を曲げた場合を示す図、(b)操作者が接触領域検知部1の操作面上の手全体を下方に動かした場合を示す図
【図12】付け根点から各指先位置点までの距離R1〜R4を示す図
【図13】図3のステップS108において、手モデルの指曲り角度を決定する方法を説明するための図で、(a)人差し指1300を曲げた場合の指先位置点の変位を示す図、(b)曲げた状態の人差し指1300の手モデルを側面から見た図
【図14】図3のステップS109の処理を説明するためのフローチャート
【図15】図3のステップS109における手モデルの変形の具体例を示す図で、(a)初期位置点を示す図、(b)初期位置点を用いて描画された初期手モデルを示す図、(c)操作者が人差し指を曲げた場合の指先位置点を示す図、(d)人差し指を曲げた時の指先位置点を用いて変形された手モデルを示す図
【図16】図15に示した手モデルを側面から見た図で、(a)図15bに示した手モデルを側面から見た図、(b)図15dに示した手モデルを側面から見た図
【図17】図3のステップS110の処理を説明するための図
【図18】図3のステップS111の処理について説明するための図
【図19】接触領域検知部1の車への設置位置の例を示す図で、(a)車両のセンターコンソールに取り付けられた場合の一例を示す図、(b)車両のドアの操作部に取り付けられた場合の一例を示す図、(c)車両のハンドルに取り付けられた場合の一例を示す図
【図20】本発明の第2の実施形態に係る接触領域検知部の構成例を示す図で、(a)発光部と受光部により接触位置を検出する構成例を示す図、(b)ストライプ状導電膜により接触位置を検出する構成例を示す図
【図21】第2の実施形態に係る接触領域検知部の課題を説明する図
【図22】接触位置検知部1aまたは1bを用いた場合の、接触領域を示すY座標の領域の変化を示す図で、(a)操作者が手全体は動かさずに4つの指を曲げた場合を示す図、(b)操作者が接触領域検知部の操作面上の手全体を下方に動かした場合を示す図
【符号の説明】
【0096】
1、1a、1b 接触領域検知部
2 演算部
3 表示部
4 操作対象機器
12 移動量算出部
13 モデル移動量決定部
14 指曲り角度決定部
15 モデル保持部
16 モデル形状決定部
17 GUIパーツ保持部
18 重畳画像作成部
19 衝突判定部
20 コマンド送信部
100 入力装置

【特許請求の範囲】
【請求項1】
操作面に置かれた手のCGモデルを表示部に表示して機器を操作する入力装置であって、
前記操作面と前記手との複数の接触領域を検知する接触領域検知部と、
前記手の指を伸ばした初期状態からの前記接触領域の移動量および前記接触領域の面積の変化を算出する移動量算出部と、
前記初期状態からの前記接触領域の移動量および前記接触領域の面積の変化に基づいて、前記CGモデルの平行移動量、指曲げによる移動量を決定するモデル移動量決定部と、
前記指曲げによる移動量に基づいて、前記CGモデルの各指関節の曲り角度を決定する指曲り角度決定部と、
前記CGモデルの平行移動量および各指関節の曲り角度に従って、前記CGモデルの位置および変形形状を決定するモデル形状決定部と、
前記機器に対するコマンドを割り当てたGUIパーツを保持するGUIパーツ保持部と、
前記モデル形状決定部で形状が決定された前記CGモデルと前記GUIパーツ保持部に保持されたGUIパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成部と、
前記GUIパーツと前記CGモデルの指先との衝突を判定する衝突判定部と、
前記衝突判定部によって衝突が判定されると、当該衝突が判定されたGUIパーツに割当てられたコマンドを前記機器に送信するコマンド送信部とを備える、入力装置。
【請求項2】
前記移動量算出部は、前記接触領域中の前記指先に対応する位置を示す指先位置点を決定し、当該指先位置点を用いて、前記指を伸ばした初期状態からの前記接触領域の移動量を算出することを特徴とする、請求項1に記載の入力装置。
【請求項3】
前記モデル移動量決定部は、前記初期状態からの前記接触領域の面積の変化率の絶対値が所定の閾値より小さい場合に、前記初期状態からの前記接触領域の移動量を前記CGモデルの平行移動量として決定し、前記初期状態からの前記接触領域の面積の変化率の絶対値が所定の閾値より大きい場合に、前記初期状態からの前記接触領域の移動量を前記CGモデルの指曲げによる移動量として決定することを特徴とする、請求項1に記載の入力装置。
【請求項4】
前記指曲り角度決定部は、前記CGモデルの同一の指の各指関節の曲り角度は一定という拘束条件を用いて、前記CGモデルの各指関節の曲り角度を決定することを特徴とする、請求項1に記載の入力装置。
【請求項5】
前記接触領域検知部の操作面上の領域をX座標及びY座標で表すと、
前記接触領域検知部は、前記接触領域のX座標とY座標とをそれぞれ独立に検知し、その交点を接触領域として検出するセンサを備え、
前記モデル移動量決定部は、前記接触領域を示すY座標の領域の幅の前記初期状態からの変化率の絶対値が所定の閾値より小さい場合に、前記初期状態からの前記接触領域の移動量を前記CGモデルの平行移動量として決定し、前記接触領域を示すY座標の領域の幅の前記初期状態からの変化率の絶対値が所定の閾値より大きい場合に、前記初期状態からの前記接触領域の移動量を前記CGモデルの指曲げによる移動量として決定することを特徴とする、請求項1に記載の入力装置。
【請求項6】
操作面に置かれた手のCGモデルを表示部に表示して機器を操作する入力方法であって、
前記操作面と前記手との複数の接触領域を検知する接触領域検知ステップと、
前記手の指を伸ばした初期状態からの前記接触領域の移動量および前記接触領域の面積の変化を算出する移動量算出ステップと、
前記初期状態からの前記接触領域の移動量および前記接触領域の面積の変化に基づいて、前記CGモデルの平行移動量、指曲げによる移動量を決定するモデル移動量決定ステップと、
前記指曲げによる移動量に基づいて、前記CGモデルの各指関節の曲り角度を決定する指曲り角度決定ステップと、
前記CGモデルの平行移動量および各指関節の曲り角度に従って、前記CGモデルの位置および変形形状を決定するモデル形状決定ステップと、
前記モデル形状決定ステップで形状が決定された前記CGモデルと、前記機器に対するコマンドを割り当てた予め保持されているGUIパーツとを重畳した画像を作成して前記表示部に表示させる重畳画像作成ステップと、
前記GUIパーツと前記CGモデルの指先との衝突を判定する衝突判定ステップと、
前記衝突判定ステップによって衝突が判定されると、当該衝突が判定されたGUIパーツに割当てられたコマンドを前記機器に送信するコマンド送信ステップとを備える、入力方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2010−97529(P2010−97529A)
【公開日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2008−269444(P2008−269444)
【出願日】平成20年10月20日(2008.10.20)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】