以下、本発明のさらに具体的な実施の形態のいくつかを図面に基づいて詳細に説明する。
図1には、本発明の第1実施形態に従う入力支援装置10の外観が平面図と側面図とで示され、図2には、この入力支援装置10のうちの電気的構成部がブロック図で概念的に表されている。
この入力支援装置10は、ユーザの意思に応じた座標入力とシンボル選択とのうちの少なくとも一方を含む入力処理を被制御装置12に実行させるためにその被制御装置12に対してユーザが入力を行うことを支援する。
被制御装置12は、入力支援装置10から供給される情報(座標値やシンボル)に基づいて一定の入力処置を実行する装置である。この被制御装置12は、典型的には、例えば、コンピュータ本体、コンピュータ端末や携帯情報端末PDAであるが、携帯電話、PHS等の移動電話とすることも可能である。
図1に示すように、この入力支援装置10は、筐体20を備えている。この筐体20内に入力支援装置10の電気的構成部が収容されている。図3(a)には、その筐体20が側面図で示され、同図(b)には、その筐体20が、ユーザに手(図に示す例においては右手)で握られて使用される使用状態において、斜視図で示されている。
図3(a)に示すように、筐体20は、3個の部分すなわち先端部22、操作部24およびグリップ部26が同一平面上において互いに直列に連結されることによって構成されている。いずれの部分22,24,26も、側面視において概して直線的に延びている。それら部分22,24,26のうち互いに隣接する2個の部分は、それらの間に鈍角が形成されるように互いに連結されている。
グリップ部26は、筐体20のうちユーザの手によって握られる部分である。入力支援装置10は、その使用中、操作部24において概して水平である姿勢で使用される。この使用状態においては、グリップ部26が、鉛直方向に対して少し前方に傾斜した方向に延びる姿勢を示す。
操作部24の上面は、手の親指のための操作面30(これが前記(1)項における「基準平面RP」の一例である。)として使用される。ユーザは、親指でその操作面30をこするように筐体20を操作したり、その操作面30を叩くように筐体20を操作することが可能である。さらに、ユーザは、その操作面30の上方位置において、親指によって特定のジェスチャーを表現するように筐体20を操作することも可能である。
図3(a)および(b)に示すように、操作部24の両側面のうち、その操作部24が手によって握られている状態においてその手の5本の指のうち親指を除く4本の指に対向する側面にスイッチ類30が配置されている。このスイッチ類30は、それら4本の指と同数のスイッチ30a,30b,30c,30dを備えている。それら4個のスイッチ30a,30b,30c,30dは、対応する各指の先端位置に接触可能な位置にそれぞれ配置されている。
それらスイッチ30a,30b,30c,30dは、後述の入力モード(2次元マウス入力モード、2次元キーボード入力モード、3次元ポインタ入力モードおよび3次元キーボード)を切り換えるためにユーザによって操作されるスイッチを含んでいる。また、それらスイッチは、表示画面のレイヤを切り換えるためにユーザによって操作されるスイッチを含むようにすることが可能である。
図3(b)に示すように、操作部24の上方に、ユーザの手の親指が入力指として位置決めされる。その親指の動作および形状を3次元的にかつ光学的に検出するために、先端部22に投影部34と撮像部36とが装着されている。
具体的には、図1に示すように、操作部24の上方であって先端部22の後方である空間が、入力を行うための入力領域40に設定されている。投影部34は、その入力領域40に沿って光(例えば、空間コード化法を実施するためのパターン光)を出射する。したがって、その入力領域40内に親指が位置すれば、その親指に光が照射される。投影部34には、入力領域40を通過して前後方向に延びる光軸42が設定されており、この光軸42を基準にして、この投影部34による投影が可能な投影範囲44が決まる。
その結果、その親指からの反射光が生成され、その反射光の一部は撮像部36に入射光として入射する。その撮像部36は、その入射光に基づいて親指を撮像する。この撮像部36には、入力領域40を通過して前後方向に延びる光軸46が設定されており、この光軸46を基準にして、この撮像部36による撮像が可能な撮像範囲48が決まる。
図4には、入力支援装置10と、この入力支援装置10と通信する被制御装置12のディスプレイとが斜視図で示されている。例えば、入力支援装置10が、バーチャルな2次元キーボード上の任意のキーをユーザの親指のアクションまたはジェスチャーに応じて押下するように作動する場合には、その2次元キーボードが、被制御装置12のディスプレイ上に、そのうちの特定のキーがユーザによって押下された様子と共に、映像として表示される。
被制御装置12のディスプレイは、その被制御装置12に一体的に装着されるものとしたり、分離して装着されるものとすることができる。また、そのディスプレイは、デスクトップ型のディスプレイとしたり、図13に示すように、ユーザの頭部に装着されて使用されるヘッドマウント型のディスプレイとすることができる。また、そのディスプレイは、ユーザに表示画像に奥行き感を感じさせる奥行き表示(例えば、視差等を利用した立体表示や、3DCAD等の2D画面での奥行き表示)を行うものとすることができる。
図2に示すように、入力支援装置10の電気的構成部は、コンピュータ50を備えている。コンピュータ50は、よく知られているように、CPU52と、ROM54と、RAM56とが複数のバス58を介して接続されることによって構成されている。このコンピュータ50は、バス60を介して複数の装置やスイッチ類30に接続されている。そのスイッチ類30に前述の4個のスイッチ30a,30b,30c,30dが含まれる。
図2に示すように、それら複数の装置は、外部メモリ64と、電源インタフェース66と、RFドライバ68とを含んでいる。外部メモリ64は、必要なデータを保存するために設けられ、電源インタフェース66は、入力支援装置10への電力供給のために設けられ、RFドライバ68は、必要な情報を被制御装置12との間において無線で通信するために設けられている。
前記撮像部36は、受光素子としてのCCD72を主体として構成されており、そのCCD72はCCDインタフェース74および前記バス60を順に介してコンピュータ50に接続されている。
一方、前記投影部34は、発光素子としてのLEDアレイ76を主体として構成されており、そのLEDアレイ76は光源ドライバ78および前記バス60を順に介してコンピュータ50に接続されている。この投影部34は、さらに、ユーザの親指に投光されるパターン光のパターン(投光パターン)を変化させる投光パターン変化手段としての投影LCD82を含んでいる。その投影LCDは、投影LCDドライバ84および前記バス60を順に介してコンピュータ50に接続されている。
図2に示すように、ROM54には、装置制御プログラム、3次元形状計測プログラムおよび空間コード化光投光制御プログラムが記憶されている。
それらプログラムを概略的に説明すれば、装置制御プログラムは、この入力支援装置10の全体を制御するためにコンピュータ50によって実行される。3次元形状計測プログラムは、計測対象すなわちユーザの親指の3次元形状を空間コード化法によって計測するためにコンピュータ50によって実行される。空間コード化光投光制御プログラムは、計測対象すなわちユーザの親指の3次元計測のためにその親指に投影されるパターン光のパターンを投影LCD82を介して制御するためにコンピュータ50によって実行される。空間コード化法による3次元形状計測は、既に広く知られている技術であるため、更なる説明を省略する。
図2に示すように、ROM54には、さらに、2次元マウス入力制御プログラムと、2次元キーボード入力制御プログラムと、3次元ポインタ入力制御プログラムと、3次元キーボード入力制御プログラムとが記憶されている。それらの詳細は後述する。
図2に示すように、ROM54には、さらに、それら制御プログラムによって呼び出されて実行されるサブルーチンとして、親指位置検出プログラムと、親指重心座標算出プログラム、押下判定プログラムと、移動方向・移動量算出プログラムと、ジェスチャー判定プログラムとが記憶されている。それらの詳細は後述する。
これに対し、RAM56には、図2に示すように、撮像画像格納部90と、コード光境界座標格納部92と、3次元座標格納部94と、親指位置座標格納部96と、ワーキングエリア98とが割り当てられている。それらのうち少なくとも撮像画像格納部90およびコード光境界座標格納部92は、ユーザの親指の3次元形状を空間コード化法によって計測するために使用される。
ここで、前記2次元マウス入力制御プログラムを説明する。
この2次元マウス入力制御プログラムは、2次元マウス入力モードの実行時に、ユーザの親指の動きおよびジェスチャに応じて、2次元的に移動可能なマウスをユーザが操作することをバーチャルに実現することにより、座標入力およびシンボル選択を行うためにコンピュータ50によって実行される。
図5には、このバーチャルな2次元マウス入力のためのユーザの親指の動きが示されている。
図5(a)に示すように、ユーザが親指で操作面30を前後にこするか、または左右にこすれば、その親指の相対移動量に応じて、バーチャルなマウスのポインタ(被制御装置12のディスプレイ上に表示される。)の相対移動量が被制御装置12に入力される。すなわち、操作面30内の指の動きを検知することにより、マウスの動作が入力されるのである。
また、図5(b)に示すように、ユーザが親指で操作面30を叩くと、バーチャルなマウスがクリックされたことが被制御装置12に入力される。すなわち、指の上下の動きを検知することにより、クリックが入力されるのである。
本実施形態においては、後に詳述するが、バーチャルなマウスのポインタを所望位置まで移動させて停止させ、その停止位置においてマウスをクリックするためにユーザによって行われる親指の一連の動作が、次の複数の個別運動が複合されたものとして定義されている。
(1)所望の座標値を入力するためにユーザによって行われる親指の操作面30上における平面運動
(2)その平面運動の終了後、ユーザによって能動的に行われる、親指を操作面30から退避させる能動退避運動
(3)その能動退避運動の終了後、ユーザによって能動的に行われる、親指を操作面30に接近させて接触させる接近運動
(4)その接近運動の終了後、親指が操作面30に接触した反動で親指が操作面30から受動的にすなわち無意識に退避する受動退避運動
図5(c)および(d)に示すように、ユーザが親指によって特定のジェスチャーを操作面30の上方位置において表現すると、それに応じたシンボル選択が行われ、特定の入力処理が被制御装置12において実行される。すなわち、操作面30内に指が位置しない場合には、指によるジェスチャーによってシンボルが選択されるのである。
例えば、図5(c)に示すように、ユーザが親指を立てた場合には、被制御装置12のディスプレイ上の情報のうち予め選択された部分をコピーするというコマンドが被制御装置12に入力される。また、図5(d)に示すように、ユーザが親指を第1関節においてほぼ直角に折り曲げて親指の爪がほぼ水平となるようにした場合には、被制御装置12のディスプレイ上の情報のうち予めコピーされた部分を特定の位置に貼り付けるというコマンドが被制御装置12に入力される。
図6には、前記2次元マウス入力制御プログラムがフローチャートで概念的に表されている。この2次元マウス入力制御プログラムは、入力支援装置10の起動後に、2次元マウス入力モードがユーザによって選択されていることを条件に、繰り返し実行される。
この2次元マウス入力制御プログラムの実行時には、まず、ステップS1(以下、単に「S1」で表す。他のステップについても同じとする。)において、基準時刻t0における親指の位置(x0,y0,z0)が3次元的に検出される。このS1においては、前記親指位置検出プログラムが呼び出されて実行される。
本実施形態においては、親指位置を記述するためにxyz直交座標系が用いられる。そのxyz座標系は、それのx座標軸は操作面30の左右方向に平行であり、y座標軸方向は操作面30の前後方向に平行であり、z座標軸方向は操作面30に直角な方向であるように、操作面30および筐体20に固定されている。
図7には、その親指位置検出プログラムがフローチャートで概念的に表されている。この親指位置検出プログラムの実行時には、まず、S101において、前記3次元形状計測プログラムが呼び出されて実行されることにより、親指の3次元形状が計測される。この計測のために、前述の投影部34および撮像部36が用いられるとともに、画像処理手法として空間コード化法が実行される。その親指の3次元形状の計測結果を表すデータはRAM56の3次元座標格納部94に格納される。
親指の3次元形状を計測する具体的な手法の一例は、本出願人の特願2004−105426号明細書に詳細に開示されているため、それを参照することによって引用することにより、本明細書においては詳細な説明を省略する。
次に、S102において、前記親指重心座標算出プログラムが呼び出されて実行されることにより、その計測された3次元形状を有する親指の重心座標が算出される。親指の重心座標は、その計測された3次元形状を表すデータに基づいて算出される。
続いて、S103において、その算出された重心座標が、基準時刻t0における親指位置のxyz座標(x0,y0,z0)として出力される。その出力された親指位置のxyz座標(x0,y0,z0)はRAM56の親指位置座標格納部96に格納される。
以上で、この親指位置検出プログラムの一回の実行が終了する。
その後、図6のS2において、前記出力された親指位置のz座標値z0すなわち親指の高さが基準値Zより小さいか否かが判定され、それにより、親指が基準平面RP(操作面30)内にあるか否かが判定される。今回は、親指が前述の平面運動を行わせられているために親指が基準平面RP内にあると仮定すれば、S2の判定がYESとなり、S2aに移行する。
このS2aにおいては、基準時刻t0から時間n(秒)が経過するのが待たれる。時間n(秒)が経過した時刻を時刻t1で表す。
続いて、S3において、前記親指位置検出プログラムが再度呼び出されて実行されることにより、時刻t1における親指位置(x1,y1,z1)が、前述の場合と同様にして、検出される。その検出された親指位置のxyz座標(x1,y1,z1)はRAM56の親指位置座標格納部96に格納される。
続いて、S4において、S2と同様にして、その検出された親指位置のz座標値z1が基準値Zより小さいか否かが判定され、それにより、親指が依然として基準平面RP(操作面30)内にあるか否かが判定される。今回も、親指が前述の平面運動を行わせられているために親指が基準平面RP内にあると仮定すれば、S4の判定がYESとなり、S5に移行する。
このS5においては、前記移動方向・移動量算出プログラムが呼び出されて実行されることにより、親指位置が基準時刻t0から現在時刻t1までの期間に移動した方向と量とが算出される。
図8には、その移動方向・移動量算出プログラムがフローチャートで概念的に表されている。この移動方向・移動量算出プログラムの実行時には、まず、S201において、基準時刻t0におけるxy座標値(x0,y0)と、現在時刻t1におけるxy座標値(x1,y1)とがRAM56の親指位置座標格納部96から読み出されて入力される。
次に、S202において、y座標軸方向における移動量(=y1−y0)が、x座標軸方向移動量(=x1−x0)で割り算され、その結果値のarctanとして、親指位置が基準時刻t0から現在時刻t1までに移動した移動方向(角度)が算出される。
このS202においては、さらに、y座標軸方向における移動量(=y1−y0)とx座標軸方向移動量(=x1−x0)との二乗和の平方根として、親指位置が基準時刻t0から現在時刻t1までに移動した移動量が算出される。
以上で、この移動方向・移動量算出プログラムの一回の実行が終了する。
その後、図6のS6において、その算出された移動方向および移動量が被制御装置12に対して出力される。具体的には、その算出された移動方向および移動量を表す制御信号(指令信号)が無線によって被制御装置12に送信される。
その結果、その被制御装置12は、その入力された移動方向および移動量に従い、被制御装置12のディスプレイ上においてポインタ(またはカーソル)を移動させて表示する。そのポインタは、例えば図4に示すキーボード映像を用いることにより、バーチャルなキーボード上においてポインタを移動させつつ表示することが可能である。
続いて、S7において、現在もなお、2次元マウス入力モードが選択されているか否かが判定される。今回は、2次元マウス入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元マウス入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元マウス入力モードが選択されていると仮定すれば、S7の判定がYESとなり、S1に戻る。
以上、S2の判定もS4の判定もYESである場合を説明したが、S2の判定はYESであったが親指が平面運動から能動退避運動に転じたためにS4の判定がNOであった場合には、S8を経てS2bおよびS9に移行するのに対し、親指が能動退避運動を行わせられたためにS2の判定がNOであった場合には直ちにS2bおよびS9に移行する。
いずれにしても、それらS2bおよびS9に移行する場合には、それに先立ち、親指が操作面30から退避する能動退避運動が行われる。S2bにおいては、前回時刻から時間n(秒)が経過するのが待たれる。時間n(秒)が経過した時刻を時刻tnで表す。その後、S9において、S3と同様にして、その現在時刻tnにおける親指位置(x2,y2,z2)が算出される。
ここに、前回時刻は、S2の判定がNOであるためにS9に移行した場合には、時刻t0に等しいが、S4の判定がNOであるためにS9に移行した場合には、時刻t1に等しい。しかしながら、時刻t1は、前回時刻である点で時刻t0と共通するため、説明の便宜上、時刻t1を時刻t0とみなされ、それに伴い、時刻t1における親指位置(x1,y1,z1)が時刻t0における親指位置(x0,y0,z0)として取り扱われる。
この取扱いが行われるようにするために、S4の判定がNOである場合には、直ちにS9に移行するのではなく、S8を経てS9に移行するようになっている。
S9が実行されると、S10において、S2と同様にして、その算出された親指位置のz座標値z2が前記基準値Zより小さいか否か、すなわち、親指位置が基準平面RP内に位置するか否かが判定される。
今回は、親指が前述の能動退避運動から前述の接近運動に転じたために親指位置が基準平面RP内に位置すると仮定すれば、このS10の判定がYESとなり、S10aにおいて、さらに時間nが経過するのが待たれる。時間nが経過した時刻を時刻t3で表す。続いて、S11において、その時刻t3における親指位置(x3、y3,z3)が、S1と同様にして算出される。
その後、S12において、S9と同様にして、その算出された親指位置のz座標値z3が前記基準値Zより小さいか否か、すなわち、親指位置が基準平面RP内に位置するか否かが判定される。
今回は、親指が前述の平面運動を行わせられているために親指位置が基準平面RP内に位置すると仮定すれば、S12の判定がYESとなり、その後、S13において、後続するS5以下のステップの実行に備えて変数変換が行われる。具体的には、親指位置(x0,y0,z0)の各値が親指位置(x2,y2,z2)の各値と等しい値に置換され、親指位置(x1,y1,z1)の各値が親指位置(x3,y3,z3)の各値と等しい値に置換される。
その後、S5に移行し、親指位置(x0,y0,z0)の各最新値と親指位置(x1,y1,z1)の各最新値とに基づき、前述のようにして、親指位置の最新の移動方向および移動量が算出される。続いて、S6以下のステップが前述のようにして実行される。
これに対し、今回は、親指が前述の接近運動から前述の受動退避運動に転じたために親指位置が基準平面RP内に位置しないと仮定すれば、S12の判定がNOとなり、S14において、前記押下判定プログラムが呼び出されて実行される。
図9には、この押下判定プログラムがフローチャートで概念的に表されている。この押下判定プログラムの実行時には、まず、S301において、時間nずつ互いに隔てて取得された最新の3回分の親指位置、すなわち、前々回の親指位置(x0,y0,z0)と、前回の親指位置(x2,y2,z2)と、最新の親指位置(x3,y3,z3)とがRAM56から読み出されて入力される。
次に、S302において、それら3回分の親指位置が、z座標軸の方向において見た場合において互いに実質的に一致するか否か(例えば、それら3回分の親指位置が操作面30に対する平面視において互いに実質的に一致するか否か)が判定される。
その判定は、x座標値に関し、前々回の親指位置x0と、前回の親指位置x2と、最新の親指位置x3とが互いに実質的に一致し、かつ、y座標値に関し、前々回の親指位置y0と、前回の親指位置y2と、最新の親指位置y3とが互いに実質的に一致するか否かの判定として行われる。
この判定は、例えば、x座標値に関し、前々回の親指位置x0と、前回の親指位置x2と、最新の親指位置x3とから計算される複数の差分のうちの最大値がしきい値(例えば、10分の数mm)以下であり、かつ、y座標値に関し、前々回の親指位置y0と、前回の親指位置y2と、最新の親指位置y3とから計算される複数の差分のうちの最大値がしきい値(例えば、10分の数mm)以下であるか否かの判定として行われる。
今回は、それら3回分の親指位置がz座標軸の方向において見た場合において互いに実質的に一致すると仮定すれば、S302の判定がYESとなり、S303において、親指によって操作面30が押下されたと判定されることが2次元マウス入力制御プログラムに対して出力される。この押下判定は、ユーザによってバーチャルなマウスがクリックされたと判定されることに等しい。
これに対し、それら3回分の親指位置がz座標軸の方向において見た場合において互いに実質的に一致するわけではないと仮定すれば、S302の判定がNOとなり、S303がスキップされる。
いずれの場合にも、以上で、この押下判定プログラムの一回の実行が終了する。
その後、図6のS15において、S14において親指によって操作面30が押下されたと判定されたか否かが判定される。そうであればこのS15の判定がYESとなり、S16において、親指によって操作面30が押下されたと判定されたことが被制御装置12に対して出力される。その結果、その被制御装置12は、例えば、ディスプレイ上のキーボード映像のうち、ポインタが指し示しているキーが選択されて押下された様子が動画的に表示される。
続いて、S17において、現在もなお、2次元マウス入力モードが選択されているか否かが判定される。今回は、2次元マウス入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元マウス入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元マウス入力モードが選択されていると仮定すれば、S17の判定がYESとなり、S1に戻る。
以上、S10の判定がYESである場合、すなわち、親指が能動退避運動から接近運動に転じたために親指が操作面30に再び接触した場合を説明したが、親指が操作面30から浮上した位置にあり続ける場合には、S10の判定がNOとなる。
この場合には、その後、S10bにおいて、前回時刻から時間nが経過するのが待たれる。時間nが経過した時刻を時刻tnで表す。続いて、S18において、S9と同様にして、その現在時刻tnにおける親指位置(x4,y4,z4)が算出される。続いて、S19において、S10と同様にして、その算出された親指位置のz座標値z4が前記基準値Zより小さいか否か、すなわち、親指位置が基準平面RP内に位置するか否かが判定される。
今回は、親指位置が基準平面RP内に位置すると仮定すれば、S19の判定がYESとなり、その後、S20において、後続するS11以下のステップ(特にS13およびS14)の実行に備えて変数変換が行われる。具体的には、親指位置(x0,y0,z0)の各値が親指位置(x2,y2,z2)の各値と等しい値に置換され、親指位置(x2,y2,z2)の各値が親指位置(x4,y4,z4)の各値と等しい値に置換される。続いて、S11に移行する。
これに対し、今回は、親指が操作面30から浮上し続けているために親指位置が基準平面RP内に位置しないと仮定すれば、S19の判定がNOとなる。その後、S21において、前記ジェスチャー判定プログラムが呼び出されて実行される。
図10には、そのジェスチャー判定プログラムがフローチャートで概念的に表されている。このジェスチャー判定プログラムの実行時には、まず、S401において、前記3次元形状計測プログラムの実行によって計測された親指の3次元形状の計測結果を表すデータがRAM56の3次元座標格納部94から読み出されて入力される。
次に、S402において、その入力されたデータによって表される3次元形状(親指についての計測形状)が、予定されたジェスチャーとしてRAM56に登録されている3次元形状(登録形状)と比較される。その登録形状はROM54に予め記憶されている。その比較の結果、計測形状が登録形状に合致すれば、親指の今回の形状はジェスチャーを表現していると判定される。
以上で、このジェスチャー判定プログラムの一回の実行が終了する。
その後、図6のS22において、親指の今回の形状はジェスチャーを表現していると判定されたか否かが判定される。そうであれば、判定がYESとなり、S23において、その親指によるジェスチャーがそれ単独で完結するジェスチャー、すなわち、単独ジェスチャーであるか、一連の複数の個別ジェスチャーが複合されて成る複合ジェスチャーのうちのいずれかの個別ジェスチャーであるかが判定される。
今回は、親指によるジェスチャーが単独ジェスチャーであると仮定すれば、S23の判定がYESとなり、その後、S24において、その単独ジェスチャーに予め割り付けられたシンボルが被制御装置12に対して出力される。その被制御装置12は、そのシンボルを受けると、そのシンボルに予め割り付けられた種類の入力処理を実行する。
続いて、S25において、現在もなお、2次元マウス入力モードが選択されているか否かが判定される。今回は、2次元マウス入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元マウス入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元マウス入力モードが選択されていると仮定すれば、S25の判定がYESとなり、S1に戻る。
また、親指の形状がジェスチャーを表現するものではない場合には、S22の判定がNOとなり、S23およびS24がスキップされてS25に移行する。
以上、親指によるジェスチャーが単独ジェスチャーであるためにS23の判定がYESである場合を説明したが、複合ジェスチャーである場合には、その判定がNOとなる。その後、S23aにおいて、前回時刻から時間nが経過するのが待たれる。時間nが経過した時刻を時刻tnで表す。続いて、S26において、S18と同様にして、その現在時刻tnにおける親指位置(x5,y5,z5)が算出される。続いて、S27において、S19と同様にして、その算出された親指位置のz座標値z5が前記基準値Zより小さいか否か、すなわち、親指位置が基準平面RP内に位置するか否かが判定される。すなわち、このS27においては、親指によるジェスチャーが終了したために親指が浮上位置から平面位置に移動させられたか否かが判定されるのである。
今回は、親指位置が基準平面RP内に位置すると仮定すれば、S27の判定がYESとなり、その後、S28において、後続するS10以下のステップ(特にS13およびS14)の実行に備えて変数変換が行われる。具体的には、親指位置(x2,y2,z2)の各値が親指位置(x5,y5,z5)の各値と等しい値に置換される。続いて、S10bに移行する。
これに対し、今回は、親指が操作面30から浮上し続けているために親指位置が基準平面RP内に位置しないと仮定すれば、S27の判定がNOとなる。その後、S29において、再度、前記ジェスチャー判定プログラムが呼び出されて実行される。
続いて、S30において、親指の今回の形状はジェスチャーを表現していると判定されたか否かが判定される。そうであれば、判定がYESとなり、S31において、その親指によるジェスチャー、すなわち、今回は複合ジェスチャーであるものに予め割り付けられたシンボルが被制御装置12に対して出力される。その被制御装置12は、そのシンボルを受けると、そのシンボルに予め割り付けられた種類の入力処理を実行する。
続いて、S32において、現在もなお、2次元マウス入力モードが選択されているか否かが判定される。今回は、2次元マウス入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元マウス入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元マウス入力モードが選択されていると仮定すれば、S32の判定がYESとなり、S1に戻る。
また、親指の形状がジェスチャーを表現するものではない場合には、S30の判定がNOとなり、S31がスキップされてS32に移行する。
なお付言するに、この2次元マウス入力制御プログラムにおいては、一定時間間隔で親指の3次元位置が逐次検出され、前回の検出位置と今回の検出位置との相対的関係に基づいて親指の位置変化すなわち動作が検出される。
したがって、この2次元マウス入力制御プログラムにおいては、親指の動作が、その親指の位置の変化パターンとその変化速度との双方が考慮されて判定されることになる。すなわち、親指の位置の変化パターンが同じでも、親指の位置変化の速度が設定速度範囲より速すぎたり遅すぎたりすれば、そのときの動作が、検出すべき動作から除外されるようになっているのである。
次に、図2に示す前述の2次元キーボード入力制御プログラムを説明する。
この2次元キーボード入力制御プログラムは、2次元キーボード入力モードの実行時に、ユーザの親指の動きに応じて、2次元的なキーボードをユーザが操作することをバーチャルに実現することにより、座標入力およびシンボル選択を行うためにコンピュータ50によって実行される。
図11には、このバーチャルな2次元キーボード入力のためのユーザの親指の動きが示されている。
図11(a)に示すように、この2次元キーボード入力モードにおいては、バーチャルな2次元キーボードが操作面30上に常時または適時表示される。その2次元キーボードの像は、可変表示であっても不動表示であってもよい。
いずれにしても、この2次元キーボード入力モードにおいては、親指の操作面30上における絶対座標が検出される。図11(b)に示すように、親指位置を前後方向または左右方向に移動させれば、その移動に親指位置の絶対座標が追従する。さらに、バーチャルな2次元キーボードにおける複数のキーのうち、その検出された絶対座標に適合する絶対座標が予め割り付けられたキーが、ユーザによって選択されたキーであるとして、他のキーとは区別して表示される。
その2次元キーボードのすべてのキーが一斉に操作面30上に表示されるようにすることは可能であるが、このようにすると、ユーザの操作性を確保するためにキー1個分の大きさをある程度確保することが必要であるために、操作面30が大型化して筐体20も大型化してしまう可能性がある。
そこで、本実施形態においては、その2次元キーボードにおける複数のキーが複数のキーブロック、例えば、図11(a)に示すように、5個のキーブロックに分割される。さらに、それら複数のキーブロックのうち選択された1個のキーブロックのみが操作面30上においてアクティブにされる。選択的にアクティブにされるキーブロックも、親指の動きによって選択し得る。
図11(a)に示すように、本実施形態においては、それら複数のキーブロックが、一中心点から延びる複数本の放射線に沿って配置されている。それら複数のキーブロックのうちのいずれかがアクティブにされている状態において、親指がある方向に移動させられると、これからアクティブにされるキーブロックが、現在アクティブにされているキーブロックに対して親指の移動方向にずれて位置するものに決定される。
さらに、この2次元キーボード入力モードにおいては、前述の2次元マウス入力モードと同様に、図5(c)および(d)に示すように、親指によるジェスチャーによって所望のシンボルを選択することが可能となっている。
図12には、この2次元キーボード入力制御プログラムがフローチャートで概念的に表されている。この2次元キーボード入力制御プログラムは、この入力支援装置10の起動後に、2次元キーボード入力モードがユーザによって選択されていることを条件に、繰り返し実行される。
以下、この2次元キーボード入力制御プログラムを図12を参照して説明するが、図6を参照して前述した2次元マウス入力制御プログラムと共通するステップについては、対応するステップの番号を参照して引用することにより、重複した説明を省略する。
この2次元キーボード入力制御プログラムの実行時には、まず、S501において、S1と同様にして、基準時刻t0における親指の位置(x0,y0,z0)が3次元的に検出される。
次に、S502において、S2と同様にして、その検出された親指位置のz座標値z0が前記基準値Zより小さいか否かが判定される。今回は、親指が前述の平面運動を行わせられているために親指が基準平面RP内にあると仮定すれば、S502の判定がYESとなり、S502aに移行する。
このS502aにおいては、基準時刻t0から時間nが経過するのが待たれる。時間nが経過した時刻を時刻t1で表す。続いて、S503において、S3と同様にして、その時刻t1における親指位置(x1,y1,z1)が検出される。その検出された親指位置のxyz座標(x1,y1,z1)はRAM56の親指位置座標格納部96に格納される。
続いて、S504において、S502と同様にして、その検出された親指位置のz座標値z1が基準値Zより小さいか否かが判定される。今回も、親指が前述の平面運動を行わせられているために親指が基準平面RP内にあると仮定すれば、S504の判定がYESとなり、S505に移行する。
このS505においては、S5と同様にして、親指位置が基準時刻t0から現在時刻t1までの期間に移動した方向と量とが算出される。その後、S506において、5個のキーブロックのうちこれからアクティブにされるものが、現在アクティブにされているものに対して、前記算出された移動方向と同じ方向にずれているものに決定される。
続いて、S507において、現在もなお、2次元キーボード入力モードが選択されているか否かが判定される。今回は、2次元キーボード入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元キーボード入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元キーボード入力モードが選択されていると仮定すれば、S507の判定がYESとなり、S501に戻る。
以上、S502の判定もS504の判定もYESである場合を説明したが、S502の判定はYESであったがS504の判定がNOであった場合には、S8と同様にして実行されるS508を経てS502bおよびS509に移行するのに対し、S502の判定がNOであった場合には直ちにS502bおよびS509に移行する。
S502bにおいては、前回時刻から時間nが経過するのが待たれる。時間nが経過した時刻を時刻tnで表す。続いて、S509において、S9と同様にして、その現在時刻tnにおける親指位置(x2,y2,z2)が算出される。
このS509が実行されると、S510において、S10と同様にして、その算出された親指位置のz座標値z2が前記基準値Zより小さいか否かが判定される。このS510の判定がYESである場合には、S511において、S11と同様にして、さらに時間n経過した時刻t3における親指位置(x3,y3,z3)が算出される。
その後、S512において、S12と同様にして、その算出された親指位置のz座標値z3が前記基準値Zより小さいか否かが判定される。このS512の判定がYESである場合には、S513において、S13と同様にして、後続するS505以下のステップの実行に備えて変数変換が行われる。
その後、S505に移行し、親指位置(x0,y0,z0)の各最新値と親指位置(x1,y1,z1)の各最新値とに基づき、前述のようにして、親指位置の最新の移動方向および移動量が算出される。続いて、S506以下のステップが前述のようにして実行される。
これに対し、S512の判定がNOである場合には、S514において、S14と同様にして、親指によって操作面30が押下されたか否かが判定され、親指によって操作面30が押下されたと判定された場合には、そのことがこの2次元キーボード入力制御プログラムに対して出力される。前述のように、この押下判定は、ユーザによってバーチャルなマウスがクリックされたと判定されることに等しい。
その後、S515において、S15と同様にして、S514において親指によって操作面30が押下されたと判定されたか否かが判定される。そうであればこのS515の判定がYESとなり、S516において、S16と同様にして、親指によって操作面30が押下されたと判定されたことが被制御装置12に対して出力される。その結果、その被制御装置12は、例えば、ディスプレイ上のキーボード映像のうち、ポインタが指し示しているキーが選択されて押下された様子が動画的に表示される。
続いて、S517において、現在もなお、2次元キーボード入力モードが選択されているか否かが判定される。今回は、2次元キーボード入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元キーボード入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元キーボード入力モードが選択されていると仮定すれば、S517の判定がYESとなり、S501に戻る。
以上、S510の判定がYESである場合を説明したが、親指が操作面30から浮上した位置にあり続ける場合には、S510の判定がNOとなる。
この場合には、その後、S510bにおいて、前回時刻から時間nが経過するのが待たれる。時間nが経過した時刻を時刻tnで表す。続いて、S518において、S18と同様にして、その現在時刻tnにおける親指位置(x4,y4,z4)が算出される。続いて、S519において、S19と同様にして、その算出された親指位置のz座標値z4が前記基準値Zより小さいか否かが判定される。
今回は、親指位置が基準平面RP内に位置すると仮定すれば、S519の判定がYESとなり、その後、S520において、S20と同様にして、後続するS511以下のステップ(特にS513およびS514)の実行に備えて変数変換が行われる。続いて、S511に移行する。
これに対し、今回は、親指が操作面30から浮上し続けているために親指位置が基準平面RP内に位置しないと仮定すれば、S519の判定がNOとなる。その後、S521において、S21と同様にして、親指の今回の形状がジェスチャーを表現しているか否かが判定される。
その後、S522において、S22と同様にして、親指の今回の形状はジェスチャーを表現していると判定されたか否かが判定される。そうであれば、判定がYESとなり、S523において、S23と同様にして、その親指によるジェスチャーが単独ジェスチャーであるか否かが判定される。
今回は、親指によるジェスチャーが単独ジェスチャーであると仮定すれば、S523の判定がYESとなり、その後、S524において、S24と同様にして、その単独ジェスチャーに予め割り付けられたシンボルが被制御装置12に対して出力される。その被制御装置12は、そのシンボルを受けると、そのシンボルに予め割り付けられた種類の入力処理を実行する。
続いて、S525において、現在もなお、2次元キーボード入力モードが選択されているか否かが判定される。今回は、2次元キーボード入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元キーボード入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元キーボード入力モードが選択されていると仮定すれば、S525の判定がYESとなり、S501に戻る。
また、親指の形状がジェスチャーを表現するものではない場合には、S522の判定がNOとなり、S523およびS524がスキップされてS525に移行する。
以上、親指によるジェスチャーが単独ジェスチャーであるためにS523の判定がYESである場合を説明したが、複合ジェスチャーである場合には、その判定がNOとなる。その後、S523aにおいて、前回時刻から時間nが経過するのが待たれる。時間nが経過した時刻を時刻tnで表す。
続いて、S526において、S26と同様にして、その現在時刻tnにおける親指位置(x5,y5,z5)が算出される。続いて、S527において、S27と同様にして、その算出された親指位置のz座標値z5が前記基準値Zより小さいか否かが判定される。
このS527の判定がYESである場合には、その後、S528において、S28と同様にして、後続するS510以下のステップ(特にS513およびS514)の実行に備えて変数変換が行われる。続いて、S510bに移行する。
これに対し、S527の判定がNOである場合には、その後、S529において、S29と同様にして、再度、親指の今回の形状がジェスチャーを表現しているか否かが判定される。
続いて、S530において、親指の今回の形状はジェスチャーを表現していると判定されたか否かが判定される。そうであれば、判定がYESとなり、S531において、その親指によるジェスチャー、すなわち、今回は複合ジェスチャーであるものに予め割り付けられたシンボルが被制御装置12に対して出力される。その被制御装置12は、そのシンボルを受けると、そのシンボルに予め割り付けられた種類の入力処理を実行する。
続いて、S532において、現在もなお、2次元キーボード入力モードが選択されているか否かが判定される。今回は、2次元キーボード入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの2次元キーボード入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として2次元キーボード入力モードが選択されていると仮定すれば、S532の判定がYESとなり、S501に戻る。
また、親指の形状がジェスチャーを表現するものではない場合には、S530の判定がNOとなり、S531がスキップされてS532に移行する。
次に、図2における3次元ポインタ入力制御プログラムを説明する。
この3次元ポインタ入力制御プログラムは、観察者でもあるユーザに表示画像に奥行き感を感じさせる奥行き表示が実現可能な環境において、図13(a)に示すように、3次元仮想空間xyz内においてポインタを、ユーザによって入力された位置と方向とに関連付けて表示するためにコンピュータ50によって実行される。その奥行き表示を実現するため、入力支援装置10は、図13(b)に示すヘッドマウントディスプレイ110(以下、「HMD」と略称する。)と共に使用される。このHMD110は、被制御装置12の指令に応じて作動させられる。
この3次元ポインタ入力制御プログラムの実行中には、筐体20を握る手の親指が操作面30上およびその操作面30より上方の立体的な入力領域40(図1参照)において、左右方向、前後方向および上下方向にそれぞれ動作させられると、各方向の動作に連動してポインタの位置および方向が変化させられる。
図14には、この3次元ポインタ入力制御プログラムがフローチャートで概念的に表されている。この3次元ポインタ入力制御プログラムは、入力支援装置10の起動後に、3次元ポインタ入力モードがユーザによって選択されていることを条件に、繰り返し実行される。
この3次元ポインタ入力制御プログラムの実行時には、まず、S601において、図6におけるS1と同様にして、親指の3次元位置が位置A(x0,y0,z0)として検出される。次に、S602において、時間n(秒)が経過するのが待たれる。
時間nが経過したならば、S603において、S601と同様にして、親指の3次元位置が再度検出されるが、その検出結果は、位置B(x1,y1,z1)とされる。
その後、S604において、検出された位置Aと位置Bとが互いに実質的に一致するか否かが判定される。例えば、位置Aと位置Bとが、x座標値とy座標値とz座標値とのそれぞれに関し、差がしきい値以下であるか否かが判定される。
それら位置Aと位置Bとが互いに実質的に一致する場合には、S604の判定がYESとなり、S601に戻るが、それら位置Aと位置Bとが互いに実質的に一致しない場合には、S604の判定がNOとなり、S605に移行する。
このS605においては、それら検出された位置Aと位置Bとの各座標値ごとの差に基づき、S202と同様にして、ポインタを移動させるべき方向および量が算出される。さらに、その算出されたポインタの移動量を、親指の移動時間すなわちn秒で割り算することにより、ポインタを移動させるべき速度が算出される。
その後、S606において、それら算出されたポインタの移動方向、移動量および移動速度が被制御装置12に対して出力される。その被制御装置12は、その入力されたポインタの移動方向、移動量および移動速度に従い、HMD110上においてポインタを3次元的に表示する。
続いて、S607において、現在もなお、3次元ポインタ入力モードが選択されているか否かが判定される。今回は、3次元ポインタ入力モードがすでに解除されていると仮定すれば、S607の判定がNOとなり、直ちにこの3次元ポインタ入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として3次元ポインタ入力モードが選択されていると仮定すれば、S607の判定がYESとなり、S601に戻る。
次に、図2における3次元キーボード入力制御プログラムを説明する。
この3次元キーボード入力制御プログラムは、観察者でもあるユーザに表示画像に奥行き感を感じさせる奥行き表示が実現可能な環境において、図15(a)に示すように、3次元仮想空間xyz内において3次元キーボードを表示するとともに、その3次元キーボードのうちユーザによって選択されたキーを表示するためにコンピュータ50によって実行される。その3次元キーボードにおいては、図15(a)に示すように、一平面に沿って2次元的に並ぶ複数のキーが1個のキー群とされて、そのキー群が各平面に直交する方向に複数並んで配置されている。
図15(b)に示すように、操作面30の上方に、立体的な入力領域40が設定されている。この入力領域40内の各絶対位置が、3次元キーボード内の各絶対位置に1対1の関係を有するように予め割り付けられている。したがって、その入力領域40内において親指位置が移動すれば、それにつれて、3次元キーボードのうち選択されたキーの位置も移動する。
図16には、この3次元キーボード入力制御プログラムがフローチャートで概念的に表されている。この3次元キーボード入力制御プログラムは、入力支援装置10の起動後に、3次元キーボード入力モードがユーザによって選択されていることを条件に、繰り返し実行される。
この3次元キーボード入力制御プログラムの実行時には、まず、S701において、図6におけるS1と同様にして、親指の3次元位置が検出される。次に、S702において、4個のスイッチのうち、選択キーを確定するためにユーザによって操作される確定スイッチがユーザによって押下されたか否かが判定される。
未だ確定スイッチが押下されない場合には、S702の判定がNOとなり、S701に戻るが、確定スイッチが押下された場合には、S702の判定がYESとなり、S703に移行する。
このS703においては、3次元キーボードにおける複数のキー(またはシンボル)のうち、今回の親指位置に対して予め割り付けられたものを表すデータが被制御装置12に対して出力される。その被制御装置12は、その入力されたデータに従い、HMD110上において、3次元キーボードのうち選択されたキーを3次元的に表示する。
その後、S704おいて、現在もなお、3次元キーボード入力モードが選択されているか否かが判定される。今回は、3次元キーボード入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの3次元キーボード入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として3次元キーボード入力モードが選択されていると仮定すれば、S704の判定がYESとなり、S701に戻る。
なお付言するに、図16に示す3次元キーボード入力制御プログラムにおいては、確定スイッチが押下されるまで、親指位置が繰返し検出され、その確定スイッチが押下される直前に検出された親指位置に応じてキーまたはシンボルが選択される。
これに対し、確定スイッチが押下されるまでは、親指位置の検出を行わず、その確定スイッチが押下された直後に、その時点における親指位置を検出する態様で本発明を実施することが可能である。この態様によれば、コンピュータ50の、親指位置の検出に対する負担を軽減することが容易となる。
以上の説明から明らかなように、本実施形態によれば、入力支援装置10が可搬式であるため、例えば、ユーザは、歩行中でも入力を行うことが可能となる。さらに、入力支援装置10は、ユーザによって片手で握られて使用されるものであるため、ユーザは、別の片手で別の作業を並行的に遂行することが可能である。さらにまた、ユーザは、入力支援装置10の操作に慣れれば、入力支援装置10を見ずに操作することが可能となり、その結果、ブラインドタッチが可能になる。
以上の説明から明らかなように、本実施形態においては、2次元マウス入力、2次元キーボード入力、3次元ポインタ入力および3次元キーボード入力がそれぞれ前記(1)項における「入力処理」の一例を構成し、親指が同項における「動作部位」の一例を構成し、投影部34および撮像部36のうち少なくとも撮像部36が同項における「検出部」の一例を構成し、コンピュータ50が同項における「決定部」の一例を構成しているのである。
さらに、本実施形態においては、親指の左右方向および前後方向の動作が前記(2)項における「2次元動作」の一例を構成し、親指の上下方向の動作が同項における「1次元動作」の一例を構成し、コンピュータ50のうち、例えば、図6におけるS1ないしS4、S9ないしS12、S18、S19等を実行する部分が同項における「第1抽出部」の一例を構成しているのである。
さらに、本実施形態においては、親指の左右方向および前後方向の動作が前記(4)項における「平面動作」の一例を構成し、親指の上下方向の動作が同項における「交差動作」の一例を構成しているのである。
さらに、本実施形態においては、コンピュータ50のうち、例えば、図14におけるS601およびS603、図16におけるS701等を実行する部分が前記(7)項における「第2抽出部」の一例を構成し、コンピュータ50のうち、図6におけるS21ないしS24、S26、S27、S29ないしS31等を実行する部分が前記(12)項における「ジェスチャー判定部」の一例を構成しているのである。
さらに、本実施形態においては、親指が前記(13)項における「入力指」の一例を構成し、4個のスイッチ30a,30b,30c,30dが前記(15)項における「選択部」の一例を構成しているのである。
次に、本発明の第2実施形態を説明する。ただし、本実施形態は、第1実施形態と3次元ポインタ入力制御プログラムのみが異なり、他の要素については共通するため、3次元ポインタ入力制御プログラムのみを説明し、共通する要素については、同一の符号または名称を使用して引用することにより、説明を省略する。
図17には、本実施形態に従う入力支援装置10においてコンピュータ50によって実行される3次元ポインタ入力制御プログラムがフローチャートで概念的に表されている。以下、この3次元ポインタ入力制御プログラムを説明するが、図14に示す3次元ポインタ入力制御プログラムと共通するステップについては、対応するステップの番号を明示して引用することにより、詳細な説明を省略する。
この3次元ポインタ入力制御プログラムは、入力支援装置10の起動後に、3次元ポインタ入力モードがユーザによって選択されていることを条件に、繰り返し実行される。
この3次元ポインタ入力制御プログラムの実行時には、まず、S621において、S601と同様にして、親指の3次元位置が検出される。次に、S622において、親指が同じ位置に時間n(秒)停止させられるのが待たれる。すなわち、ユーザが、入力座標値を確定する意思を表示するのが待たれるのである。
親指が同じ位置に時間n停止させられたならば、S622の判定がYESとなり、S623において、S603と同様にして、ポインタの方向が算出される。続いて、S624において、S604と同様にして、その算出されたポインタの方向が被制御装置12に対して出力される。
その後、S625において、現在もなお、3次元ポインタ入力モードが選択されているか否かが判定される。今回は、3次元ポインタ入力モードがすでに解除されていると仮定すれば、判定がNOとなり、直ちにこの3次元ポインタ入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として3次元ポインタ入力モードが選択されていると仮定すれば、S625の判定がYESとなり、S621に戻る。
次に、本発明の第3実施形態を説明する。ただし、本実施形態は、第1実施形態と3次元キーボード入力制御プログラムのみが異なり、他の要素については共通するため、3次元キーボード入力制御プログラムのみを説明し、共通する要素については、同一の符号または名称を使用して引用することにより、説明を省略する。
図18には、本実施形態に従う入力支援装置10においてコンピュータ50によって実行される3次元キーボード入力制御プログラムがフローチャートで概念的に表されている。以下、この3次元キーボード入力制御プログラムを説明するが、図16に示す3次元キーボード入力制御プログラムと共通するステップについては、対応するステップの番号を明示して引用することにより、詳細な説明を省略する。
この3次元キーボード入力制御プログラムは、入力支援装置10の起動後に、3次元キーボード入力モードがユーザによって選択されていることを条件に、繰り返し実行される。
この3次元キーボード入力制御プログラムの実行時には、まず、S721において、S701と同様にして、親指の3次元位置が位置Aとして検出される。次に、S722において、時間n(秒)が経過するのが待たれる。
時間nが経過したならば、S723において、S703と同様にして、親指の3次元位置が再度検出されるが、その検出結果は、位置B(x1,y1,z1)とされる。
その後、S724において、検出された位置Aと位置Bとが互いに実質的に一致するか否かが判定される。例えば、位置Aと位置Bとが、x座標値とy座標値とz座標値とのそれぞれに関し、差がしきい値以下であるか否かが判定される。
それら位置Aと位置Bとが互いに実質的に一致しない場合には、S724の判定がNOとなり、S721に戻るが、それら位置Aと位置Bとが互いに実質的に一致する場合には、S724の判定がYESとなり、S725に移行する。
このS725においては、3次元キーボードにおける複数のキー(またはシンボル)のうち、今回の親指位置に対して予め割り付けられたものを表すデータが被制御装置12に対して出力される。
その後、S726おいて、現在もなお、3次元キーボード入力モードが選択されているか否かが判定される。今回は、3次元キーボード入力モードがすでに解除されていると仮定すれば、このS726の判定がNOとなり、直ちにこの3次元キーボード入力制御プログラムの一回の実行が終了する。
これに対し、今回は、依然として3次元キーボード入力モードが選択されていると仮定すれば、S726の判定がYESとなり、S721に戻る。
次に、本発明の第4実施形態を説明する。ただし、本実施形態は、第1実施形態と筐体20の形状のみが異なり、他の要素については共通するため、筐体20の形状のみを説明し、共通する要素については、同一の符号または名称を使用して引用することにより、説明を省略する。
図1および図5に示すように、第1実施形態においては、ユーザが筐体20を握る手をほぼ水平に伸ばした状態において操作面30がほぼ水平となるように、操作面30と、グリップ部26の長手方向との成す角度の大きさが設定されている。
これに対し、本実施形態においては、図19に示すように、ユーザが筐体20を握る手をほぼ水平に伸ばした状態において操作面30が水平面に対して前上がりに傾斜するように、操作面30と、グリップ部26の長手方向との成す角度θの大きさが設定されている。その角度θは例えば、130度であるが、120度ないし140度の範囲内の別の値とすることが可能である。
角度θがそのような値を有するように筐体20の形状が設計されれば、ユーザが筐体20を手で握る状態においてその手の親指を操作面30に接触させる動作が必要である場合に、親指を無理に大きく屈曲させずに済む。したがって、このような形状を有するように筐体20を設計すれば、筐体20の操作性を向上させることが容易となる。
さらに、本実施形態においては、図19に示すように、先端部22とグリップ部26とが概して互いに平行に延びるとともに、それら先端部22とグリップ部26とに直角な仮想平面に対して傾斜する向きに延びるように操作面30が配置されている。
したがって、本実施形態によれば、操作面30が、先端部22とグリップ部26とに直角な仮想平面に平行に配置される場合に比較し、その操作面30の面積を増加させて操作性を向上させることが容易となる。すなわち、先端部22とグリップ部26との距離であって筐体20の主寸法の一つを支配するものの長さの割に大きな面積を有するように操作面30を設計することが容易となるのである。
なお付言するに、以上説明したいくつかの実施形態においてはいずれも、入力支援装置10が、他の物体から物理的に独立するように構成されているが、そのようにして本発明を実施することは不可欠ではない。
例えば、自転車、オートバイ、自動車等、移動体であって人間による操作部の操作によって操縦されるものにおいて、その操作部の一部としてこの入力支援装置10を組み込むことが可能である。そのような操作部は、自転車やオートバイにあっては、ハンドルのうちのグリップ部であり、また、自動車にあっては、ステアリングホイールのうちのグリップ部である。
また、人間によって握られる部分を有して操縦される対象として、例えば、店舗内において顧客によって使用されるショッピングカートや、ゴルフ場においてプレイヤによって使用されるゴルフカートがある。そのような対象においても、握られる部分にこの入力支援装置10を組み込むことが可能である。
また、人間によって握られて使用される対象として、例えば、ペン等、筆記具がある。そのような対象においても、握られる部分にこの入力支援装置10を組み込むことが可能である。
さらに付言するに、以上説明したいくつかの実施形態においてはいずれも、人間のうちの動作部位の一例である手の親指の3次元形状を入力するためにこの入力支援装置10が使用されるが、同様な構成を有する装置は、入力対象が人間のある部位に限定されない3次元形状入力装置として構成することが可能である。
この3次元形状入力装置を実施する場合、それの操作面に関連して設定された入力領域内に人間以外の対象物が位置決めされれば、その対象物の3次元形状が入力される。その対象物の一例は、フィギュアである。
この場合、例えば、その入力領域に位置決めされるフィギュア等、対象物の形状、種類等、幾何学特性に基づき、その対象物に対応するシンボルが被制御装置12に入力されるようにすることが可能である。
さらに付言するに、本実施形態においては、図11(a)に示すように、操作面30上に2次元キーボードが画像として電気的に表示される。この電気的表示は、その操作面30上における親指の現在の接触位置をユーザが操作面30上において視覚的に確認することを支援する形象の一例である。
これに対し、操作面30上における親指の現在の接触位置をユーザに操作面30上において触覚的に確認することを支援する立体的形状が操作面30に形成される態様で本発明を実施することが可能である。そのような立体的形状の一具体例は、突起状の複数個のドットを一定の方式で組み合わせた点字であり、または、操作面30上において一定のパターンで形成された複数個の凹部または凸部による識別子である。このような立体的な識別子を操作面30上に形成すれば、ユーザは、被制御装置12への入力に際し、入力支援装置10に対するブラインドタッチが容易になり、その結果、入力支援装置10の操作性が向上する。
さらに付言するに、本実施形態においては、前記形象の一例である2次元キーボードの画像が、その2次元キーボードにおけるすべてのキーが常時一斉に表示されるのではなく、一部のキーブロックのみがアクティブにされて操作面30上に表示される。アクティブにされるキーブロックは、親指の移動方向に応じて切り換わる。
すなわち、本実施形態においては、操作面30に表示される形象がユーザの操作に応じて変化させられるのであるが、このような可変表示技術は、前述の複数の入力モードのうちユーザによって選択されたものに応じた表示が操作面30上において行われるようにするためにも使用することが可能である。
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記[発明の開示]の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。