JP4438351B2 - 指示入力装置、指示入力システム、指示入力方法、及びプログラム - Google Patents

指示入力装置、指示入力システム、指示入力方法、及びプログラム Download PDF

Info

Publication number
JP4438351B2
JP4438351B2 JP2003298251A JP2003298251A JP4438351B2 JP 4438351 B2 JP4438351 B2 JP 4438351B2 JP 2003298251 A JP2003298251 A JP 2003298251A JP 2003298251 A JP2003298251 A JP 2003298251A JP 4438351 B2 JP4438351 B2 JP 4438351B2
Authority
JP
Japan
Prior art keywords
movement
display
intersection
light emitting
emitting means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003298251A
Other languages
English (en)
Other versions
JP2005070996A (ja
Inventor
保憲 黄田
宏之 堀田
隆 小澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2003298251A priority Critical patent/JP4438351B2/ja
Publication of JP2005070996A publication Critical patent/JP2005070996A/ja
Application granted granted Critical
Publication of JP4438351B2 publication Critical patent/JP4438351B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、指示入力装置、指示入力システム、指示入力方法、及びプログラムに関し、特に、操作者の所定部位の動作に従って移動するLED等の発光手段の位置情報に基づいてカーソル等の指示情報の表示位置を制御する指示入力装置、指示入力システム、指示入力方法、及びプログラムに関するものである。
パソコン等に対して指示入力するためのデバイスとして、従来よりx−y座標値を相対座標値としてパソコンに指示入力するマウス(2次元マウス)が広く用いられている。近年、この2次元マウスを用いて3次元座標値を指示入力する技術が提案されている。この技術では、例えば、従来の2次元(x−y)座標値を指示するためのマウスボールに加え、3つ目の座標値(z座標値)を指示するためのマウスボールを別に設け、このマウスボールの回転を用いて3次元座標値を指示入力する。これには複雑な操作が必要とされる。また、2次元マウスの操作は2次元平面上に拘束されており、3次元空間の指示入力装置としては操作性に劣る。
そこで、光源としてのLEDをペンに装備、或いは操作者の指等に装着し、LEDからの光を受光する受光部をパソコンの画面の上部等に取付け、LEDの位置を検出することにより3次元座標値を指示入力することができる装置(3次元マウス)が提案されている(例えば、特許文献1参照。)。この装置では、光源の受光部に対する角度を求め、三角測量の原理により光源の3次元位置を求めている。なお、この装置を用いてマウスの基本動作であるクリック等のシグナルを入力する場合には、操作者が指で押すことのできるスイッチ等をLEDの近傍に設け、該スイッチを押下する等の機械的操作を行うことにより有線を介してパソコンの基本ソフトに入力する必要がある。
また、3次元座標値を指示入力できる装置として、2次元上の2つのボールを回転させることによって、x、y軸方向の移動量を入力できるだけでなく、角度や回転角も入力でき、z軸方向に対する入力も可能となるポインティングデバイス(例えば、特許文献2参照。)や、第一の方向に光変換素子を配列した第1の光センサアレイと、第1の方向とは別の第二の方向に光変換素子を配列した第2の光センサアレイとが移動するときに両者の出力変化に応じた信号を生成し、それにより(カーソル等の)移動量や移動方向を決定する非接触方式の位置検出装置(例えば、特許文献3参照。)が知られている。
更にまた、所定の形を有した物体を(指標)をCCDカメラで認識してパソコン等に対するコマンドとして解釈するリモコン装置(例えば、特許文献4参照。)や、電子ペンの中に指で回転されるロータリースイッチが設けられ、その回転度合いによってグラフィカルパラメター(線分の太さ、色、陰影、グレイスケール)の変化の度合いを決定する座標入力用電子ペン(例えば、特許文献5参照。)や、ユーザの手首に装着されたRFIDの動きをアンテナにより認識させてから、RFIDの動きのパターンを他のデバイスへの入力コマンドとして解釈する指示入力システム(例えば、特許文献6参照。)が知られている。
また、米国Gyration Inc.社のGyromouseも、ポインティングデバイスとして広く知られている。このGyromouseは、オートジャイロを内蔵しており、空中操作でレーザーの方向を変えることができる機構を有している。
更にまた、近年、人の動きやしぐさをCCDカメラにより撮影し、その画像を解析することによって、例えば腕や指の方向を示す特徴点を検出し、指示入力するシステムが提案されている。このシステムではCCDカメラを2台設け、利用者の特定の部位の動きから、例えば指の指し示す方向を検出する。
また、本出願人により、発光手段からの光を受光することにより発光手段の位置を検出する技術を用い、五感の少なくとも1つに訴えるようなフィードバック(焦点メタファーや色相等の変化)によって、画面の前面に広がる3次元空間上の分割された複数の領域の各境界に対する発光手段の通過状態をユーザに認知させ、機械的メカニズムを利用せずに、発光手段の各領域の境界に対する通過の仕方に応じて、クリック、ダブルクリック、ドラッグ等の2次元マウスの機能を実行することができる3次元指示入力装置が提案されている(特願2003−96366参照)。更にまた、操作者に装着された発光手段を3D計測装置から操作者に向かう方向(z軸方向)に沿って前後方向に移動させ、発光手段からの光を受光することにより計測された位置情報から発光手段の動きに伴う加速度、速度を検出し、動きに伴う時間も考慮しながら、発光手段の動きが予め定められた動きに対応しているか否かを判断し、対応していると判断した場合に予め定められた動きに対応付けられた処理(クリック、ダブルクリック、ドラッグ等の機能)の実行を指示することができる指示入力装置が提案されている(特願2003−138645参照)。
また、加速度センサを用いて加速度または速度を検出し、文字や図形を入力する装置も知られている(例えば、特許文献7及び8参照。)。
特開平10−9812号公報 特開平5−150900号公報 特開平11−24832号公報 特開平11−110125号公報 特開2000−47805号公報 特開2001−306235号公報 特開平8−16301号公報 特開2000−268130号公報
しかしながら、上述した従来の3次元マウスは、操作者がLEDの近傍に設けられたスイッチを指で押すことによって操作するため、2次元マウスと同様に機械的操作及びそれを実現する部品を必要とする。また、マウスの基本動作であるクリック等のシグナルは有線を介して入力されるため、操作者が操作する上でわずらわしさが生じる。この点については、ブルートゥースや符号等を付加した赤外線を用いることにより無線での入力が可能となるが、大きさや重量が増加し、またコストがかかる、という問題が生じる。更に、この技術ではLEDの位置を絶対座標で求めるため、指示する方向を入力するには操作者の体の部位に発光体を2つ装着しなくてはならない、といった問題も生じる。
また、上述した従来のポインティングデバイスや指示入力システム等の他の指示入力デバイスも、上述した3次元マウスと同様に機械的操作を必要とするため、操作性に劣る。米国Gyration Inc.社のGyromouseも、クリック等の操作は通常の2次元マウス同様、指による機械的操作を必要としている。また、重量やサイズが比較的大きく、高価である。
すなわち、従来の指示入力デバイスは、ボタンやスイッチ等を押下するような比較的細かい操作が必要なため、機械的操作を行うことが比較的困難な人にとっては、使い勝手が悪い。
一方、人の動きやしぐさをCCDカメラにより撮影し、腕や指の方向を検出するシステムでは、人の部位には個人差があるため、特徴点を必ずしも検出できない場合がある。また、CCDカメラは視野角に限界があり、それを拡張するにはさらにCCDカメラを追加しなければならない、という問題もある。また、特徴点を検出するために画像処理を行うことから、他のシステムにくらべて解析対象が増え、レスポンスが遅くなる、という問題がある。
また、従来の本出願人が提案した3次元指示入力装置や指示入力装置は、定められた空間(領域)或いは平面を確認しながら発光手段が装着された指や手を動かさなくてはならないため、自然な動作で指示入力することが困難である。
更にまた、加速度センサを用いて指示入力する装置では、ペン等の筆記具に加速度センサを内蔵(装着)することから、筆記具のサイズや重量が増加し、使い勝手が悪い、という問題がある。また、発光手段の位置を測定して加速度及び速度を検出する場合に比べて、検出できる加速度及び速度の精度が粗くなるため、利用者の細かな動作を検出することができない、という問題がある。
本発明は、上述した課題を解決するために提案されたものであり、操作性に優れ、無理なく自然な動作で指示入力することができる指示入力装置、指示入力システム、指示入力方法、及びプログラムを提供することを目的とする。
上記目的を達成するために、本発明の指示入力装置は、操作者の発光手段が装着された部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力手段と、前記入力手段により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出手段と、前記検出手段により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出手段と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出手段と、前記表示手段の前記表示用交点算出手段により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御手段と、前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、前記速度ベクトル算出手段により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換する変換手段と、前記変換手段により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行う処理手段と、を含んで構成されている。
本発明の指示入力方法は、操作者の発光手段が装着された部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、前記速度ベクトル算出工程により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換する変換工程と、前記変換工程により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行う処理工程と、を含んでいる。
本発明のプログラムは、コンピュータに、操作者の発光手段が装着された部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、前記速度ベクトル算出工程により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換する変換工程と、前記変換工程により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行う処理工程と、を実行させる。
本発明において、発光手段は、操作者の発光手段が装着された部位の動作に従って移動する。この発光手段は、操作者の指や手等に装着可能とすることもできる。発光手段は、光を発するものであれば特に限定されず、例えばLEDとしてもよい。発光手段の位置は、発光手段から発光された光が検出されることにより計測される。
また、発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して仮想平面が設けられる。表示手段は、パソコン等に備えられているディスプレイであってもよいし、投影機等を用いて表示する大型スクリーンであってもよい。表示手段に表示される指示情報は、特に限定されないが、例えばパソコン等で用いられるカーソルとすることができる。
発光手段の位置を示す位置情報が入力されると、入力された位置情報に基づいて、発光手段の加速度及び速度が検出される。検出された加速度が所定値を越えた場合には、検出された加速度が所定値を越えた位置を基点とする発光手段の移動した方向を示す速度ベクトルが算出される。次に、速度ベクトルを含む線分と仮想平面との交点が表示用交点として算出される。算出された表示用交点の位置に対応する位置に指示情報が表示されるように、表示手段が制御される。
このように、発光手段の移動した方向を示す速度ベクトルと仮想平面との交点(表示用交点)に対応する位置に指示情報を表示するので、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。例えば、指示情報を所望の位置に表示させたい場合には、発光手段を該所望の位置の方向に移動させるだけで、容易に指示情報を表示させることができる。
また、前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換し、変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、所定の処理を行うので、表示手段の画面に対して垂直な方向でなくても、任意の方向に発光手段を移動させることで、速度ベクトルと速度ベクトルに垂直な平面とにより構成されるローカル座標系を用いて所定の処理を行うことができる。従って、操作者にとって自然な動きでスムーズに指示入力することができる。
本発明の指示入力装置は、前記検出手段により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出手段と、前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出手段と、前記平面算出手段により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出手段と、を更に含み、前記表示用交点算出手段は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出手段により検出された加速度が前記所定値を越えた後は、前記交点算出手段により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出することができる。
本発明の指示入力方法は、前記検出工程により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出工程と、前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出することができる。
本発明のプログラムは、前記検出工程により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出工程と、前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出することができる。
検出された加速度が所定値を越えた後は、検出された加速度が所定値を越えた後に発光手段が静止した静止位置を始点とし、発光手段がこの静止位置から移動した移動位置を終点とするベクトルである移動ベクトルが算出される。なお、静止は、完全な静止でなくてもよい。例えば、発光手段の位置の変動が所定範囲内となったときや、発光手段の加速度及び速度が所定値以下となったときを、発光手段が静止したときとして、このときの位置を静止位置とすることができる。
算出された移動ベクトルにより、発光手段の移動方向が示される。続いて、算出された移動ベクトルに垂直で、かつ移動位置を含む平面が算出される。更に、この平面と速度ベクトルを含む線分との交点が算出される。この交点と移動位置とを含む線分と、仮想平面との交点が表示用交点として算出される。算出された表示用交点の位置に対応する位置に指示情報が表示されるように、表示手段が制御される。
このように、検出された加速度が所定値を越えた後、発光手段の静止位置及び移動位置とから新たな表示用交点を求め、該表示用交点に対応する位置に指示情報を表示するようにしたため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。例えば、速度ベクトルと、仮想平面との表示用交点に対応する位置に指示情報を表示した後、この指示情報の表示位置を所望の位置に移動させたい場合には、発光手段を一旦静止させてから所望の位置の方向に移動するだけで、容易に所望の位置に指示情報を移動させることができる。
なお、移動位置は、所定時間毎の移動位置であってもよいし、静止位置から移動して再度静止したときの位置であってもよい。また、移動ベクトルに垂直で、かつ移動位置を含む平面と、速度ベクトルを含む線分と、の交点は、所定時間固定されていてもよい。これにより、移動位置毎に該交点を計算せずにすみ、計算量を軽減させることができる。
前記所定の処理は、前記変換手段により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理である
このように、任意の方向に発光手段を移動させることで、速度ベクトルと速度ベクトルに垂直な平面とにより構成されるローカル座標系を用いて発光手段を動かすことができるため、操作者にとって自然な動きで予め定められた動きを形成することができると共に、発光手段の動きが予め定められた動きに対応するか否かを判断して予め定められた動きに対応付けられた処理の実行をスムーズに指示することができる。
ここで、予め定められた動きは、特に限定されず、1つであってもよいし、複数あってもよい。また、複数の細かな動きにより構成された動きであってもよい。
例えば、パソコンのクリックやダブルクリック、或いはドラッグ&ドロップの動きを予め定めておけば、速度ベクトルと速度ベクトルに垂直な平面とにより構成されるローカル座標系における発光手段の動きが、これら予め定められた動きに対応するか否かを判断し、対応すると判断した場合に、クリックやダブルクリック、或いはドラッグ&ドロップの処理の実行を指示することができる。
また、前記所定の処理としては、例えば、前記ローカル座標系を構成する速度ベクトルをz軸とし、該z軸そのものを上下左右に動かして、表示手段に3次元的に表現された仮想物体のビュー(見方)を変える処理とすることもできる。
また、前記制御手段は、前記表示用交点算出手段により算出された最新の表示用交点及び過去に算出された複数の表示用交点の位置の各々に対応して前記指示情報が複数表示されるように前記表示手段を制御することができる。
これにより、指示情報の位置を複数表示することができ、指示情報の表示位置を見失うことなく、容易に指示位置を確認することができる。
また、前記制御手段は、前記複数の指示情報の表示状態が、時間の経過に従って変化するように前記表示手段を制御することもできる。
これにより、指示情報が表示されてから経過した時間を確認することができると共に、最新の表示位置を見失うことがなくなる。
前記表示手段は、前記指示情報を表示すると共に前記操作者の操作対象であるオブジェクトを表示し、前記制御手段は、前記指示情報の表示位置と前記ブジェクトの表示位置とが一致した場合、及び、前記指示情報の表示位置と前記ブジェクトの表示位置とが一致し、かつ前記処理手段により前記予め定められた動きに対応付けられた処理の実行が指示された場合、のいずれか一方の場合に、前記表示手段の表示状態を変更するように前記表示手段を制御することができる。
このように表示状態が変更されることにより、指示情報とオブジェクトとの位置関係を確認することができる。例えば、このような表示状態の変更は、シューティングゲーム等の表示変更に適用することができる。
また、本発明の指示入力システムは、操作者の発光手段が装着された部位の動作に従って移動する発光手段と、前記発光手段から発光された光を検出することにより前記発光手段の位置を計測する計測装置と、上記指示入力装置と、を含んで構成されている。
本指示入力システムも、上述した本発明の指示入力装置、指示入力方法、及びプログラムと同様に作用するため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。
また、前記発光手段を携帯電話に設けることもできる。このように、ワイヤレスで持ち歩くことができる携帯電話に発光手段を設けることにより、容易に指示入力することができ、携帯電話の電源を発光手段の電源と共有することができる。
なお、上述した本発明のプログラムを記憶する記憶媒体は、特に限定されず、ハードディスクであってもよいし、ROMであってもよい。また、CD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
本発明は、発光手段の移動した方向を示す速度ベクトルと、仮想平面との交点に対応する位置に指示情報を表示すると共に、発光手段が静止してから更に移動したときには、仮想平面上の新たな交点を求め、該交点に対応する位置に指示情報を表示するようにしたため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。また、速度ベクトルと速度ベクトルに垂直な平面とにより構成されるローカル座標系を用いて発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行うようにしたため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコン30を含む指示入力システムの構成を示す図である。図示されるように、指示入力システムは、LED10と、3D計測装置20と、パソコン30とを備えている。
LED10は、操作者の指や手等に装着される。
3D計測装置20は、不図示の受光部がLED10から発光された光を受光することによりLED10からの光を検出し、LED10の3次元位置を計測する。該計測された3次元位置を示す位置情報(x、y、z座標値)はパソコン30に出力される。なお、この3D計測装置20は、LED10等の発光体から発光された光を検出することにより3次元位置を計測できる装置であれば特に限定されないが、特開平10−9812号公報に記載された位置検出の技術等を用いて構成することができる。
本指示入力システムでは、3D計測装置20の受光部をパソコン30のディスプレイの画面の位置と略一致する位置(例えばディスプレイ上部等)に装備することにより、パソコン30のディスプレイの画面前方の空間におけるLED10の3次元位置を計測する。また、パソコン30のディスプレイの画面に略一致する位置には、パソコン30のディスプレイの画面に対応した(実際には存在しない)仮想平面が設定される。LED10を装着した操作者は、該仮想平面に対してLED10を装着した手を移動させることにより、仮想平面に対応したディスプレイの画面の任意の位置にカーソルを表示させることができる。
本指示入力システムの3D計測装置20で用いられる座標系は、仮想平面の左上角に原点があり、仮想平面をx−y平面とし、仮想平面に垂直な軸をz軸とする座標系であり、この座標系では、仮想平面から操作者に向かう方向がz軸の+方向、仮想平面に向かって右方向がx軸の+方向、下方向がy軸の+方向となるように定められている。以下、この座標系を基準座標系と呼称する。
なお、仮想平面はどの平面上に設けてもよいが、ディスプレイの画面に略一致する平面上に設けることにより、操作者が指示入力する際、入力位置を感覚的に認識しやすいため好適である。
図2は、パソコン30の具体的な構成を示した図である。図示されるように、パソコン30のパソコン本体32は、CPU34、ROM36、RAM38、及び入出力インタフェース(I/O)40を含んで構成されている。また、I/O40には、3D計測装置20と、ディスプレイ42と、スピーカ44と、ハードディスクドライブ(HDD)46とが接続されている。
3D計測装置20から出力されたLED10の位置情報は、I/O40を介して入力される。
HDD46には、LED10の加速度及び速度を検出し、該加速度及び速度に基づいてディスプレイ42にLED10により指示される位置を示すためのカーソルを表示すると共に、LED10の動きを検出して所定の処理の実行を指示する指示入力処理ルーチンのプログラム(以下、指示入力処理プログラムと呼称)、及び指示入力処理プログラムを実行する際に用いられる各種設定情報が記憶されている。CPU34は、指示入力処理プログラム及び各種設定情報をRAM38にロードして、該プログラムを実行する。
指示入力処理ルーチンでは、検出した加速度及び速度に基づいて、LED10の指示する方向や、動きが判断される。加速度を用いて判断することにより、LED10を急速に動かしている状態とそうでない状態、すなわち、操作者が意識して手を動かしている状態と、指示入力する意志がなく、自由に手を動かしている状態とを区別することができる。また、速度を用いて判断することにより、LED10をある程度の距離だけ動かしたことを認識でき、実際のLED10の動きを判断することができる。速度を判断材料とすることにより、位置情報から移動距離自体を算出して用いる場合に比して、より小さな動きを認識することが可能となる。
各種設定情報には、LED10の動きに伴う加速度の閾値A0、速度の閾値V0、ポインティングモード(後述)の時間K1、コマンドモード(後述)の時間K2、LED10の動きを判断するための時間の閾値T10及びT20とが含まれている。
指示入力処理プログラムや各種設定情報を記憶する記憶媒体は、HDD46に限定されず、ROM36であってもよい。また、図示は省略するが、I/O40に接続されたCD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
図3は、パソコン本体32の構成を機能的に示した図である。
図示されるように、パソコン本体32は、コマンド生成部50と、マウスドライバ52と、OS54と、イメージドライバ56とを含んで構成されている。
コマンド生成部50は、3D計測装置20で計測された3次元位置を示す位置情報を入力して、LED10の加速度及び速度を検出する。更に、検出した加速度及び速度に基づいて、カーソルがディスプレイ42に表示されるように、ポインティングのためのコマンドを生成してマウスドライバ52に出力する。更にまた、検出した加速度及び速度に基づいて、ローカル座標系(後述)におけるLED10の動きが、ボタンが装備された一般的なマウス(以下、これを2次元マウスと呼称する)におけるボタン操作、すなわち、クリック、ダブルクリック、ドラッグ・アンド・ドロップ、のいずれに対応する動きかを判断し、判断結果に対応するコマンドを生成してマウスドライバ52に出力する。
マウスドライバ52には、コマンド生成部50からコマンドが入力される。マウスドライバ52に入力されたコマンドは、OS54に出力される。
OS54は、マウスドライバ52からのコマンドを解釈して該コマンドに対応した処理を実行する。
イメージドライバ56は、OS54の制御の下で、LED10の位置や動きに対応した画像をディスプレイ42に表示するための処理を行う。
なお、図示を省略するが、パソコン本体32にはサウンドドライバも備えられている。サウンドドライバは、OS54の制御の下で、LED10の動きに対応した音声をスピーカ44から出力するための処理を行う。
以下、本実施の形態に係る指示入力処理の流れについて詳細に説明する。
操作者がLED10を装着した手を3D計測装置20の計測領域内で動かす。手の動きに応じてLED10の位置が変化する。3D計測装置20は、LED10の3次元位置を所定時間毎に計測し、該3次元位置を示す位置情報を逐次パソコン30(パソコン本体32)に出力する。該位置情報は指示入力処理ルーチンで用いられる。
図4及び図5は指示入力処理のメインルーチンを示したフローチャートである。
なお、本フローチャートでは図示を省略しているが、パソコン30(パソコン本体32)には、所定時間毎に3D計測装置20からLED10の位置情報が入力される。そして、CPU34により、入力毎に入力された位置情報に基づいてLED10の加速度及び速度が検出される。例えば、速度は所定の時間内の各座標値の差分を該所定の時間で割ることにより検出し、加速度は速度を該所定の時間で割ることにより検出することができる。
ステップ100では、加速度が閾値A0を越えたか否かを判断する。ここで、加速度≦A0であると判断した場合には、3D計測装置20から次の位置情報を入力するまで、待機状態を維持する。また、加速度>A0であると判断した場合には、操作者が意志をもって手を動かした状態であるため、この時点で、所望の位置にカーソルを表示するためのポインティングモードを開始する。
ステップ102では、ポインティングモードの時間K1を計時するために、タイマTをリセットしてスタートさせる。
ステップ104で、速度が閾値V0を越えたか否かを判断する。ここで判断される速度は、ステップ100で閾値A0を越える加速度を発生させたLED10の動きに伴う速度である。ステップ104で、速度≦V0であると判断した場合には、ポインティングモードを終了してステップ100に戻る。また、速度>V0であると判断した場合には、ステップ106に移行する。
なお、ステップ100及びステップ104で肯定判断される動作は、操作者がLED10を装着した手をポインティング方向に急速に動かす動作である。以下、任意の方向に手を急速に動かす動作をプッシュと呼称する。プッシュによりポインティングモードが開始されるが、このポインティングモードは、ステップ100で閾値A0を越える加速度が検出されたときから時間K1が経過するまで、或いは時間K1が経過するまでの間に新たにプッシュの動作がなされるまで継続される。なお、ステップ100及び104で肯定判断される動作(プッシュ)の方向は、ディスプレイ42の画面或いは仮想平面に対して垂直な方向である必要はなく、任意の方向でよい。
ステップ106では、指示入力処理ルーチンのサブルーチンとして予め指示入力処理プログラムに組み込まれている第1ポインティング処理ルーチンが実行される。
以下、図6の第1ポインティング処理ルーチンを示したフローチャート、及び図8の説明図を参照しながら第1ポインティング処理の流れについて説明する。
ステップ200では、ステップ100で閾値A0を越える加速度が検出された位置(加速度検出位置)を基点とし、LED10の移動方向を示す速度ベクトルSを算出する。検出された速度により(x、y、z)方向のベクトルが得られるため、これにより即座に速度ベクトルSを求めることができる。
ステップ202では、速度ベクトルSを含む線分M1を算出する。速度ベクトルSは幾何学的に簡単に求められるが、線分M1は、速度ベクトルSを一般化しパラメトリックに表現したものである。
ステップ204では、線分M1と仮想平面Vとの交点C1を算出する。仮想平面Vとは、前述したように、ディスプレイ42の画面に略一致する平面上に設定された、ディスプレイ42の画面に対応した平面をいう。交点C1は、仮想平面V上の点として幾何学的に求めることができ、線分M1を示す式と仮想平面Vを示す式とから一意に算出される。
ステップ206では、ポインティング処理を行う。具体的には、ディスプレイ42の画面における、ステップ204で算出した仮想平面V上の点(交点C1)の位置に対応する位置にカーソルが表示されるようにポインティングのためのコマンドを生成してマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54は、該コマンドを解釈し、ディスプレイ42の画面の、交点C1に対応した位置にカーソルが表示されるようにディスプレイ42を制御する。
このように、まず、最初のプッシュにより指示された方向に対応して、仮想平面V上の点(交点C1)が求められ、ディスプレイ42の画面にカーソルが表示される。
ステップ208では、LED10が静止したか否かを判断する。ここでは、LED10のx、y、z座標値の移動平均から所定の範囲内に位置するx、y、z座標値が、所定数以上入力された場合に、LED10が静止したと判断する。なお、静止の判断は特にこれに限定されず、所定時間前のx、y、z座標値と最新のx、y、z座標値との距離が所定距離内となったときに静止したと判断するようにしてもよいし、加速度及び速度が所定値以下となったときに静止したと判断するようにしてもよい。
ステップ208で静止したと判断した場合には、ステップ210で、静止位置Pを検出する。静止したと判断されたときのx、y、z座標値が静止位置Pとなる。ここで検出された静止位置Pは、後述する第2ポインティング処理で用いられる。
図4のステップ106の第1ポインティング処理終了後は、ステップ108に移行する。ステップ108では、加速度が閾値A0を越えたか否かを判断する。ここで、加速度≦A0であると判断した場合には、プッシュの動作は開始されていないと判断し、ステップ110に移行する。ステップ110では、タイマTがポインティングモードの時間K1に到達したか否かを判断する。
ステップ110で、タイマT<K1であると判断した場合には、ポインティングモードの時間K1は経過していないと判断し、ステップ112に移行する。
ステップ112では、指示入力処理ルーチンのサブルーチンとして予め指示入力処理プログラムに組み込まれている第2ポインティング処理ルーチンが実行される。
以下、図7の第2ポインティング処理ルーチンを示したフローチャート、及び図8の説明図を参照しながら第2ポインティング処理の流れについて説明する。
ステップ300では、LED10が移動した移動位置Qを検出する。なお、ここでは、移動位置Qは静止していなくてもよい。
ステップ302では、静止位置Pと移動位置QとからLED10の移動方向を示す移動ベクトルPQを算出する。
ステップ304では、該移動ベクトルPQに垂直で、かつ移動位置Qを含む平面Nを算出する。具体的には、移動ベクトルPQとの内積が0になるベクトル(移動ベクトルPQに直交するベクトル)を2つ求め、この2つのベクトルと移動位置Qとから、移動ベクトルPQに垂直で、移動位置Qを含む平面Nを算出する。
ステップ306では、ステップ304で算出した平面Nと、ステップ206で算出した線分M1との交点Oを算出する。
ステップ308では、移動位置Qと交点Oとを含む線分M2を算出する。
ステップ310では、線分M2と仮想平面Vとの交点C2を算出する。交点C2は、仮想平面V上の点として、線分M2を示す式と仮想平面Vを示す式とから一意に算出される。
ステップ312では、第1ポインティング処理のステップ206と同様にポインティング処理を行う。これにより、ディスプレイ42に表示されるカーソルは、交点C1に対応する位置から交点C2に対応する位置に移動する。
以上説明した第2ポインティング処理は、図4のステップ108及びステップ110で否定判断が続く間(すなわち、新たにプッシュの動作がなされるまで、或いは時間K1が経過するまで)繰り返され、逐次新しい交点C2が算出されてカーソルの表示位置が移動する。静止位置P及び線分M1は変更されないため、移動位置Qを検出するだけで、交点C2を逐次更新していくことができる。なお、ここでは、3D計測装置20から位置情報が所定時間毎に入力されるため、該所定時間毎に第2ポインティング処理が実行される。すなわち、該所定時間毎に移動位置Qが検出されて交点C2が更新される。
一方、ステップ110で、タイマT≧K1であると判断した場合には、新たなプッシュが行われないうちに時間K1に到達したと判断し、ポインティングモードを終了してステップ100に戻る。
また、ステップ108で、加速度>A0であると判断した場合には、新たなプッシュの動作が開始されたと判断し、ステップ114に移行する。ステップ114では、タイマTが時間K1未満か否かを判断する。ここで、タイマT≧K1であると判断した場合には、ポインティングモードを終了してステップ100に戻る。また、タイマT<K1であると判断した場合には、時間K1が経過するまでにプッシュの動作が開始されたと判断し、ステップ116に移行する。
ステップ116では、速度が閾値V0を越えたか否かを判断する。ここで判断される速度は、ステップ108で閾値A0を越える加速度を発生させたLED10の動きに伴う速度である。ステップ116で、速度≦V0であると判断した場合には、ポインティングモードを終了してステップ100に戻る。また、速度>V0であると判断した場合には、新たにプッシュの動作がなされたと判断し、ポインティングモードを終了してステップ118に移行する。
ステップ118では、コマンドモードの時間K2を計時するために、タイマTをスタートさせる。ここで、LED10の動きを判断して判断結果に対応する処理の実行を指示するためのコマンドモードが開始される。
図5のステップ120では、座標系変換式を算出する。
このステップでは、ステップ108及び116で肯定判断されたときのプッシュによる速度ベクトルSと静止位置Pを前述のステップ200〜204と同様に求め、3D計測装置20から入力された基準座標系における位置情報を、速度ベクトルSがz軸に、静止位置Pが原点となるような座標系(以下、この座標系をローカル座標系と呼称する)における位置情報に変換するための式を算出する。
具体的には、まず、基準座標系の原点を平行移動させて静止位置Pに一致させる変換を行い、座標系A1を得る。この座標系A1のz−y平面と、速度ベクトルS及び静止位置Pを含む線分M1とが重なるように、座標系A1を座標系A1のy軸まわりに回転させ、座標系A2を得る。更に線分M1がA2のz座標軸に重なるように、座標系A2を座標系A2のx軸まわりに回転させ、座標系A3を得る。この3つの変換式を1つの行列(例えば3x3)にまとめる。この行列を座標系変換式という。
なお、以下では、z軸が速度ベクトルSに一致し、原点が静止位置Pの座標系(すなわち、変換して得られる座標系A3)をローカル座標系と呼称し、ローカル座標系のx、yz軸を基準座標系のx、y、z軸と区別するため、ローカルx、y、z軸と呼称する。また、ローカルx軸及びローカルy軸により形成される平面をローカル平面Lと呼称する。図9に、ローカル座標系の一例を示す。コマンドモード中は、このローカル座標系が用いられる。すなわち、3D計測装置20から所定時間毎に入力されるx、y、z座標値が、各々座標系変換式によりローカル座標系のx、y、z座標値に変換されて用いられる。
ステップ122では、コマンド処理ルーチン(後述)を起動させて、コマンド処理を実行する。このコマンド処理ルーチンは、ローカルz軸上のLED10の動きを判断し、該動きに対応付けられた処理の実行を指示するための処理ルーチンであり、指示入力処理ルーチンのサブルーチンとして予め指示入力処理プログラムに組み込まれている。
ステップ124では、タイマTがコマンドモードの時間K2に到達したか否かを判断する。ここで、タイマT<K2であると判断した場合には、コマンド処理ルーチンを繰り返す。また、タイマT≧K2であると判断した場合には、コマンドモードの時間K2が経過したと判断し、ステップ100に戻る。これにより、コマンドモードは終了する。
あるいは、コマンド処理ルーチン実行中、メインルーチンは常にタイマTを監視して時間K2が経過したか否かを判断し、時間K2が経過したと判断したときには割込みによりコマンド処理ルーチンを強制終了するようにしてもよい。
ここで、コマンド処理ルーチンの処理について説明する。
まず、図10を参照しながら、コマンド処理ルーチンで判断されるLED10の動きについて説明する。図において、加速度の状態は実線の矢印で、速度の状態は点線の矢印で示されている。
クリックの動きは、予め設定されている時間以内の動きであり、ローカル平面Lに近づく方向(ローカルz軸のマイナス方向)に急速に移動した後、逆の方向(z軸のプラス方向)に急速に移動する(すなわち、ローカルz軸上を1往復する)動きとして設定されており、図ではAの動きに相当する。
ダブルクリックの動きは、予め設定されている時間以内の動きであり、クリックの動きを連続して2回繰り返す(すなわち、ローカルz軸上を2往復する)動きとして設定されており、図ではBの動きに相当する。
ドラッグ・アンド・ドロップの動きは、ドラッグの動きとドロップの動きとから構成され、図ではCの動きに相当する。ドラッグは、ローカルz軸のマイナス方向に急速に移動した後、予め設定されている時間経過後、ゆっくりとマイナス方向或いはローカル平面L上を移動する動きとして設定されている。なお、ゆっくりとマイナス方向或いはローカル平面L上を移動する動きには、時間の制限はない。ドロップは、ローカルz軸のプラス方向に急速に移動する動きとして設定されている。
図11は、図10のダブルクリックの動き(B)のローカルz軸上の動きを時間の経過に従って示した図である。本図において、横軸は時間軸、縦軸はz軸を表している。B0点〜B4点で示される太実線はLED10の動きの軌跡を表している。細実線矢印は加速度の状態を表し、点線矢印は速度の状態を表している。なお、太実線で示される時間軸上のLED10の動き、該動きに伴う加速度及び速度は、実際には非常に小さいものであるが、本図では誇張して描かれている。
以下、図12から図14の各フローチャートを用いて、図11と対比させながら、コマンド処理ルーチンについて説明する。
なお、ここではローカルz軸上のLED10の動きを判断するため、LED10の動きを判断するための加速度及び速度は、ローカル座標系のz座標値を用いて検出する。
また、ローカル平面Lに近づく方向をローカルz軸のマイナス方向とし、ローカル平面Lから離れる方向をローカルz軸のプラス方向として加速度及び速度を検出するため、LED10をローカル平面Lに近づく方向に移動させれば、検出される加速度及び速度の符号は−となり、ローカル平面Lから離れる方向に移動させれば、検出される加速度及び速度の符号は+となる。なお、閾値A0及び閾値V0は絶対値で設定されているため、検出した加速度又は速度と閾値とを比較する際には、加速度及び速度が正の値となるように必要に応じて−の符号を付して処理する。
図12のフローチャートのステップ400で、検出した加速度に−の符号を付した値が、加速度の閾値A0を越えたか否かを判断する。前述したように、LED10をローカル平面Lに近づく方向に動かせば、速さ及び加速度の符号は−となる。従って、この場合には、−の符号を付すことにより速さ及び加速度を正の値にする。
ステップ400で、−加速度≦A0であると判断した場合には、本サブルーチンを終了してメインルーチンに戻る。図11では、B0点以前の状態が待機状態に相当する。メインルーチン(図5)のステップ124でタイマT≦K2と判断されれば、またコマンド処理が繰り返される。またステップ400で−加速度>A0であると判断した場合には(図11では、B0点に相当)、操作者が意志をもって手を動かした状態であるため、ステップ402に移行し、タイマT1及びタイマT2をスタートさせる。
ここで、タイマT1は、ある方向への移動を開始してから該ある方向とは逆の方向への移動を開始するまでの時間を計時するために用いられるタイマである。タイマT1に対しては、予め閾値T10が設定されている。
タイマT2は、ダブルクリックの動きを判断するために用いられるタイマである。タイマT2に対しては、予め閾値T20が設定されている。
ステップ404で、速度に−の符号を付した値が、閾値V0を越えたか否かを判断する。ここで、−速度≦V0であると判断した場合には、ステップ416に移行し、タイマT1及びT2をリセットして終了する。また、−速度>V0であると判断した場合には(図11ではB1点に相当)、ステップ406に移行し、加速度が閾値A0を越えたか否かを判断する。なお、ここでは、LED10の移動方向を明瞭にするために便宜上加速度に+の符号を付す。
ステップ406で、+加速度≦A0であると判断した場合には、ステップ408に移行し、タイマT1が閾値T10を越えたか否かを判断する。ここで、タイマT1≦T10であると判断した場合には、ステップ406に戻る。また、+加速度>A0であると判断した場合には、ステップ410に移行し、タイマT1が閾値T10以下であるか否かを判断する。
ステップ410で、タイマT1>T10であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないと判断し、ステップ416に移行し、タイマT1及びT2をリセットして終了する。また、ステップ410で、タイマT1≦T10であると判断した場合には、LED10の動きは予め設定されている時間以内の動きであるため、ステップ412に移行し、速度が、閾値V0を越えたか否かを判断する。
ステップ412で、+速度≦V0であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないと判断し、ステップ416に移行し、タイマT1及びT2をリセットして終了する。+速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているクリックの動きに対応すると判断し、ステップ414に移行し、クリック処理を行う(図11では、B2点に相当)。
クリック処理を具体的に図3の機能構成図を用いて説明すると、コマンド生成部50が、クリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。コマンド生成部50は、該コマンドを2次元マウスにおけるボタン操作によるコマンドと同様の形式で出力する。これにより、マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して適切な処理を実行することができる。
ステップ414のクリック処理を実行した後は、図13のステップ420に移行し、タイマT1をリセットしてスタートさせる。このステップ以降の処理は、LED10の動きがダブルクリックの動きであるか否かを判断するための処理となる。
ステップ422では、加速度に−の符号を付した値が閾値A0を越えたか否かを判断する。−加速度≦A0であると判断した場合には、ステップ424に移行し、タイマT1が閾値T10を越えたか否かを判断する。
ステップ424で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。ステップ424で、タイマT1≦T10であると判断した場合には、ステップ422に戻る。
ステップ422で、−加速度>A0であると判断した場合には、ステップ426に移行し、タイマT1が閾値T10以下であるか否かを判断する。
ステップ426で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。ステップ426で、タイマT1≦T10であると判断した場合には、ステップ428に移行し、−速度が閾値V0を越えたか否かを判断する。
ステップ428で、−速度≦V0であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。ステップ428で、−速度>V0であると判断した場合には、ステップ430に移行し、タイマT1をリセットしてスタートさせる(図11では、B3点に相当)。
ステップ432では、次に検出した加速度が閾値A0を越えたか否かを判断する。ここで、+加速度≦A0であると判断した場合には、ステップ434に移行し、タイマT1が閾値T10を越えたか否かを判断する。
ステップ434で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。タイマT1≦T10であると判断した場合には、ステップ432に戻る。
ステップ432で、+加速度>A0であると判断した場合には、ステップ436に移行し、タイマT1が閾値T10以下であるか否かを判断する。
ステップ436で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。タイマT1≦T10であると判断した場合には、ステップ438に移行し、タイマT2が閾値T20以下であるか否かを判断する。
タイマT2は、クリックの動きがスタートしたときからの時間を計時している。閾値T20は、ダブルクリックの動きに要する時間の限度として予め設定されている。従って、タイマT2と閾値T20を比較することにより、LED10の動きがダブルクリックの動きに対応するか否かを判断することができる。
ステップ438で、タイマT2>T20であると判断した場合には、LED10の動きはダブルクリックの動きに対応していないと判断し、ステップ444に移行してタイマT1及びT2をリセットし終了する。タイマT2≦T20であると判断した場合には、ステップ440に移行し、+速度が閾値V0を越えたか否かを判断する。
ステップ440で、+速度≦V0であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。+速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているダブルクリックの動きに対応すると判断し、ステップ442に移行してダブルクリック処理を行う(図8では、B4点に相当)。
ダブルクリック処理もクリック処理と同様に、コマンド生成部50が、ダブルクリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して、ダブルクリックの動きに対応する適切な処理を実行することができる。
ステップ442の後は、ステップ444に移行してタイマT1及びT2をリセットし、終了する。
なお、ダブルクリックの動きは、上述の速度、加速度、及び時間の条件を満たした動きであれば、特に図11に限定されるものではない。例えば、2回目のクリックのローカルz軸上の始点(すなわち、B2点)は、1回目のクリックのローカルz軸上の始点(すなわち、B0点)と同じ位置である必要はない。
一方、図12のステップ408で、タイマT1>閾値T10であると判断した場合には、LED10の動きは予め設定されているドラッグの動きに対応すると判断し、図14のステップ450に移行し、ドラッグ処理を行う。
具体的には、コマンド生成部50が、クリック処理と同様に、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
なお、ドラッグ処理は、通常は、クリック処理の後に行われる処理である。例えば、クリック処理により選択されたアイコンなどのオブジェクトをドラッグ(移動)したりすることができる。
ステップ450の後は、ステップ452で、加速度が閾値A0を越えたか否かを判断する。+加速度≦A0であると判断した場合には、ステップ450に戻り、ドラッグ処理を継続する。また、+加速度>A0であると判断した場合には、ステップ454に移行し、速度が閾値V0を越えたか否かを判断する。
ステップ454で、+速度≦V0であると判断した場合には、ステップ450に戻り、ドラッグ処理を継続する。+速度>V0であると判断した場合には、LED10の動きは予め設定されているドロップの動きに対応するため、ステップ456に移行し、ドロップ処理を行う。
ドロップ処理もドラッグと同様に、コマンド生成部50が、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
ステップ456の後は、ステップ458でタイマT1及びT2をリセットして終了する。
以上説明した指示入力処理ルーチンを具体的な例を挙げて説明する。例えば、操作者が、ディスプレイ42に表示されているファイル(のアイコン)をダブルクリックしてオープンさせたい場合には、まず、1回目のプッシュでポインティングモードを開始し、操作者がオープンさせたいファイルのアイコンが表示されている位置とカーソルの表示位置とが一致(ポインティング)するようにLED10を移動させる。該ファイルにポインティングできたところで、2回目のプッシュを行ってコマンドモードを開始し、ダブルクリックの動作を行う。これによりファイルをオープンさせることができる。なお、1回目のプッシュで、カーソルの位置を補正する必要がなければ、直ちに2回目のプッシュを行えばよい。
なお、上述したドロップの動きを、上述のLED10をローカルz軸上のプラス方向に急速に動かす動きではなく、再度ローカル平面に対してプッシュする動き(すなわち、ローカルz軸上のマイナス方向に急速に動かす動き)としてもよい。この場合には、ステップ452を、−加速度>A0であるか否かを判断する処理に置換え、ステップ454を、−速度>V0であるか否かを判断する処理に置換える。これにより、再度ローカル平面に対してプッシュしたときにドロップ処理が行われるという方式になる。この方式によれば、ドロップの動きが、人が”物を置く”という動きに近くなり、操作者はより自然な動きで指示入力できる。
また、LED10の動きが予め定められた動き(クリック、ダブルクリック、ドロップ&ドロップ)に対応するか否かを判断する際、LED10の動き又は予め定められた動きに許容量を持たせて判断するようにしてもよい。例えば、操作者がLED10を手に装着して動かす場合、手のふらつきによって、意図しない微細なぶれが生じる場合がある。従って、判断手段は、LED10の動き又は予め定められた動きに許容量を持たせて判断することにより、より円滑に指示入力できる。
以上説明したように、LED10の位置情報を入力し、位置情報に基づいてLED10の動きに伴う加速度及び速度を検出し、検出した加速度及び速度に基づいてLED10の移動方向を示す速度ベクトルSを算出し、該速度ベクトルS含む線分M1を算出し、該線分M1と表示画面に対応して設けられた仮想平面Vとの交点C1を算出してディスプレイ42の画面の交点C1に対応する位置にカーソルを表示するようにしたため、機械的操作を行うことなく、自然な動作でポインティングすることができる。
また、加速度が所定値を越えた後にLED10が静止した静止位置Pと、静止した位置から移動した移動位置Qとから、移動ベクトルPQを算出し、移動ベクトルPQにより示される方向に垂直な平面Nと、線分M1との交点Oを算出し、該交点Oと移動位置Qとを含む線分M2と仮想平面Vとの交点C2を算出して、カーソルの表示位置を移動するようにしたため、無理なく自然な動作でカーソルの位置を移動したり微調整したりすることができる。
更に、ポインティング動作の最初のLED10の動きで、操作者が指示する方向(速度ベクトルS)を求めることができる。従って、ポインティング動作の最初の段階で所望の方向にLED10を移動させれば、次に続く動作が不安定な状態になっても、所望の位置にポインティングすることができるため、例えば、細やかな操作を安定して行うことが困難な人にとっても使い勝手に優れる。
また、絶対座標値を用いずにLED10の移動方向によりポインティングの処理を行うため、遠隔操作が可能となる。
また、加速度センサを用いずに、1つの発光手段(LED10)からの光を検出することにより3次元位置を測定して操作者の指示する方向や位置を求めることができるため、システムを容易かつ安価に構築することが可能である。
なお、実験によると、手等に装着したLEDの動きを検出するための閾値として、加速度の閾値は3x10-7 m/sec2程度であり、速度の閾値は6x10-6 m/sec程度が好適であることが分かっている。この値は、市販の加速度センサにより検出される加速度より数桁オーダーも小さいため、加速度を検出するための装置として加速度センサを用いることは好適ではない。従って、本発明のように、加速度センサを用いずに、発光手段が発光した光を検出して3次元位置を計測する計測装置を用いて加速度及び速度を検出することにより、精度高くLEDの動きを検出でき、簡単な構造と簡単な計算でかつ安価にシステムを構築することができる。
なお、本実施の形態では、移動位置Qを所定時間毎に検出する例について説明したが、
静止位置Pが検出された後に静止した静止位置を移動位置Qとしてもよい。
また、所定時間交点Oを固定し、固定した交点Oと移動位置Qとを含む線分M2から交点C2を逐次更新していくようにしてもよい。これにより、交点Oを常に算出し直す場合に比して計算量を軽減させることができる。なお、この場合には、時間的なずれと共に誤差が生じてくる場合があるので、一定間隔で交点Oを再計算することも好適である。また、線分M1と線分M2とがなす角度が所定値を越えたときに交点Oを再計算するようにしてもよい。また、交点Oを再計算せずに、一旦カーソルの表示を消して、プッシュの動作からやり直すことができるようにしてもよい。
更にまた、前回の線分M2と今回の線分M2とがなす角度が所定値を越えたときに、ポインティング動作が緩慢になったと判断して、一旦カーソルの表示を消すようにしてもよい。
なお、線分M1と線分M2(平面N)とが平行になってしまった場合には、交点Oを求めることができない。このような場合を想定し、例えば、交点Oを算出するステップの前に、予め線分M1と平面Nとが平行であるか否かを判断するステップを設け、平行であると判断した場合には、カーソルを移動させない、或いはカーソルがディスプレイ42の画面から消えるように制御して、操作者に再度ポインティングのための動作を行わせるようにしてもよい。
また、上述したように、速度ベクトルSに垂直な平面をx−y平面とし、かつ速度ベクトルSをz軸とする座標系におけるLED10の動きが、予め定められた動きか否かを加速度及び速度に基づいて判断し、判断した動きに対応付けられた処理の実行を指示するようにしたため、ディスプレイの画面に対して垂直な方向でなくても、任意の方向にLEDを動かすことで予め定められた動きを形成することができ、操作者にとって自然な動きでスムーズに指示入力することができる。
なお、上述した実施の形態では、2回めのプッシュを、1回めのプッシュと同様の動作とする例について説明したが、例えば、2回目のプッシュについては上述したクリックの動作と同じように、任意の方向に1往復する動作としてもよい。これにより、操作者にとってより自然な動きで指示入力できる。
また、上述した実施の形態では、LED10の移動方向や動きのみにより指示入力する例について説明したが、例えば、指示入力用のスイッチやボタン等をLED10とは別に備えておき、LED10の移動方向や動きによる指示入力とボタン押下等の機械的操作による指示入力とを必要に応じて使い分けることも可能である。
また、LED10に電池を接続し、電池をLED10と同じ手に装着するようにしてもよい。これにより、LED10への電源供給のためのコードが不要となりワイヤレスで操作できる。
また、上述した実施の形態では、LED10を操作者の手や指に装着する例について説明したが、例えば、図15に示されるように、LED10をペン型のツール12に設けてもよい。ペン型のツール12には電池等の電源供給手段を設けるようにすることもできる。また、図16に示されるように、LED10を携帯電話16に設けてもよい。この場合には、携帯電話16の電源をLED10の電源と共有することができる。
[第2の実施の形態]
第1の実施の形態では、LED10が移動すると、算出された最新の交点C2のみに対応する位置にカーソルが表示される例について説明したが、本実施の形態では、最新の交点C2だけでなく、過去算出された交点についても、対応する位置にカーソルを表示すると共に、時間の経過に従ってそれら複数のカーソルの表示状態を変更する例について説明する。
なお、本実施の形態におけるシステム構成及びパソコン30の構成は、第1の実施の形態と同様であるため説明を省略する。
図17は、本実施の形態におけるディスプレイ42に表示されたカーソルの表示状態を示す図である。図示されるように、ディスプレイ42には、最新のカーソルから数ステップ前までの複数のカーソル(ここでは、4ステップ前まで、計5つのカーソル)が表示されている。カーソル60a、60b、60c、60d、60eの順に、表示されてから経過した時間が短い。カーソルの表示色は、表示されてから経過した時間が短い順に濃くなっている。
図18は、本実施の形態に係る表示制御ルーチンの流れを示すフローチャートである。本表示制御ルーチンは、前述の指示入力処理プログラムに含まれている。
ステップ500で、所定時間が経過したか否かを判断する。所定時間経過したと判断したときには、ステップ502で、カーソルの表示状態を変更する。
具体的には、カーソル60a、60b、60c、60d、60eのそれぞれの表示色が同じ程度だけ薄くなるように表示制御する。
なお、図示は省略するが、新たに移動位置Qが検出されて仮想平面Vとの新たな交点C2が検出された場合には、表示されてからの時間が最も長いカーソル60eが消去され、ディスプレイ42の画面の、新たな交点C2に対応する位置に最新のカーソルが表示されるように制御される。また、カーソル60a、60b、60c、60dの表示状態がそれぞれ変更される。すなわち、新たに表示されたカーソルの表示色が最も濃くなり、カーソル60dの表示色が最も薄くなるように表示制御される。
このように、最新の交点C2だけでなく、過去算出された交点についても対応する位置にカーソルを表示すると共に、時間の経過に従ってそれら複数のカーソル表示状態を変更するようにしたため、カーソルの表示位置を見失うことなく、容易に指示入力位置を確認することができる。
[第3の実施の形態]
第1及び第2の実施の形態で説明した指示入力システムをゲーム等の娯楽システムや複写機操作の補助システムに適用した例について説明する。本実施の形態においては、本発明の指示入力装置としての機能を有するパソコン30については、図示が省略されている。
図19は、指示入力システムをモグラたたきゲームに適用した場合を示した図である。図示される画面は、パソコン30のディスプレイ42の画面とする。ディスプレイ42の画面に動物の顔がランダムに現れる。利用者はLED10が設けられたペン型のツール12(以下、LEDペン12と呼称する)を使い、モグラたたきのルールに従って、現れた顔をポインティングするか或いはクリックする。現れた顔をポインティングしたとき或いはクリックしたときには、それに従って点数が加算されるようにする。
図20は、指示入力システムをダーツゲームに適用した場合を示した図である。この場合には、画面上に通常ダーツで使われる模様(複数の同心円等)が表示される。利用者がLEDペン12を投げるふりをすると、パソコン30のCPU34はLED10の進行方向を計算してLED10が指示する位置を算出し(すなわち、第1の実施の形態の交点C1を算出し)、画面に表示されている模様に当たったか否かを判断し、当たった場所に応じて点数を加算する。
図21は、指示入力システムをインベーダーゲームに適用した場合を示した図である。画面に爆弾等の落下物が表示される。落下物は画面の上方から下方に向かって落下する。利用者は落下物をLEDペン12によりポインティングまたはクリックする。落下物をポインティング或いはクリックできた場合には、落下物が爆発し、点数が加算される。落下物の種類に応じて点数が加算されるようにしてもよい。落下物が地表(画面の底辺)まで辿りついた場合には、落下物の種類に応じて点数を減算するようにしてもよい。
図22(A)は、指示入力システムをハンマーゲームに適用した場合を示した図である。画面には、VRML(Virtual Reality Modeling Language)等を用いて3次元表現で表示する。画面の中心部にはハンマー62を表示し、画面上ではハンマー62の柄の最下部が基点となるように固定される。利用者は、LEDペン12のドラッグの動きにより、ハンマー62を基点を中心に動かすことが可能である。画面に表現されている3次元空間には彗星のような複数の物体が自由に、かつ各々異なった速さで動いている。利用者は、LEDペン12のドラッグの動きにより、物体をたたくようにハンマー62を動かす。ハンマー62が物体に当たったときには点数が加算される。基点はLEDペン12のドラッグ&ドロップの動きにより3次元空間上で移動させることも可能である。また、図22(B)に示されるように、ハンマー62の代わりに昆虫網64を表示し、昆虫網64により物体を捉えるようなゲームにしてもよい。なお、ハンマー62も昆虫網64も3次元の奥行き表現を誇張してやると好適である。
図23は、図22(A)及び図22(B)に示したゲームの仕組みを大掛りにしたものである。図示されるように、ディスプレイ42の代わりに大型スクリーン42aを用いて3次元空間を表現し、実物の昆虫網68の柄の最上部及び最下部の2カ所にLED10を設ける。大型スクリーン42aには、複数の仮想昆虫(トンボ等)と、実物の昆虫網68に対応した仮想昆虫網72が表示される。また、大型スクリーン42a手前には、3D計測装置20の受光部70を4カ所に配設した3次元認識領域を設ける。3D計測装置20は、2つのLED10の3次元位置を計測し、2つの位置情報をパソコン30に出力することにより、昆虫網68の位置及び動きをパソコン30側で認識することができる。
利用者は、該3次元認識領域内で、LED10を2カ所に設けた昆虫網68を動かすことにより、その動きがパソコン30側で認識され、それにより、大型スクリーン42aに表示された仮想昆虫網72を動かすことができる。利用者は、昆虫網68を動かして仮想昆虫網72を動かし、仮想空間内を自由な方向で、かつ予め設定されたスピードで動いている仮想昆虫を捕らえる。捕らえた仮想昆虫の種類に応じて異なった得点が加算される。
ここでは、昆虫網68の柄の最下部のドラッグの動きによって、仮想昆虫網72の柄の最下部(基点)を動かすものとする。また、昆虫網68の柄の最上部の動きを認識することで、3次元空間の基点に対する位置を第1の実施の形態と同様に計算することができる。なお、柄の長さは決まっているので、柄の基点に対して定数を加算するだけでよい。
同様に昆虫網68のネット部分の大きさも決まっているので、ネット部分の位置も簡単に求められる。よって、ネットの動き、或いは軌跡をリアルタイムで計算することができ、仮想昆虫が仮想昆虫網72のネットに入ったか否かを判断することができる。
このゲームは、ゲームセンタや、大型投影機や大型スクリーンがある家庭内等で利用できる。なお、モーションキャプチャー装置を用いて同様のゲームを提供することは可能ではあるが、費用がかかる。一方、本指示入力システムを用いれば安価に実現可能であり、かつ、2つの光源を設けるだけでよいため、電源(電池)の消費が少なくてすむ。また、モーションキャプチャーの場合には、通常、電源はコードにより有線で供給されており、利用者の動作がある程度制限されるが、本指示入力システムでは大きな電力は消費されないため電池等で電源を供給するだけでよく、動作の制限は少なくてすむ。
また、VR(バーチャルリアリティー)を実現する際に通常必要とされるHMD(ヘッドマウントディスプレー)やデータグローブが、本指示入力システムでは不要となるため、利用者の使用快感度が向上し、コストの面においても有利である。
図24は、指示入力システムを落下物捕獲ゲームに適用した場合を示した図である。投影機74により大型スクリーン42aに落下物を投影する。落下物はランダムに落下させる。大型スクリーン42a上部には3D計測装置20の受光部70が設けられ、利用者の手や指等に装着されたLED10等の光源の位置が測定される。
利用者は、大型スクリーン42aに表示された落下物に対して、たたくような動作を行う。3D計測装置20は、LED10の3次元位置を測定し、3次元位置を示す位置情報により、LED10の動きに伴う加速度、速度、方向などが検出され、LED10の移動方向や動きが検出される。更に、落下物の位置と予め設定されている許容量とから、落下物がたたかれたか否かを判断する。たたかれたと判断した場合には、爆発の画像を表示して、たたかれた落下物の表示を消す。これらの処理はパソコン30により行われる。
落下物の大きさや種類によって得点は異なり、また落下物が地表(大型スクリーン42aの底辺)まで落下した場合には、落下物の種類によって得点が差し引かれるようにしてもよい。なお、この差し引かれる得点は加算される得点の負数とは限らない。
また、ゲームの進行とともに、残り時間を大型スクリーン42aに表示したり、音楽を流したりして、ゲームの興奮度を高めることも可能である。本ゲームは、図23で示したハンマーゲームと異なり、VRMLソフトは必要ないため、より安価に実現できる。
図25は、指示入力システムを複写機操作の補助に用いる場合を示した図である。現在普及している複写機の中には、操作画面(タッチパネルディスプレイ)82が、図示されるように複写機80の上後端部に設けられているものがある。このように、操作画面82が比較的離れた位置にあると、子供や背が比較的低い人、或いは体の不自由な人にとっては、操作画面82に触れること自体が困難となり、指示入力しづらい。
従って、複写機80の側面や、操作画面82の側面に3D計測装置20の受光部を配備し、LED10を利用者の指に装着したり、或るいはLEDペン12等のツールを用いることにより、比較的離れた位置に設けられた操作画面82に対して容易に指示入力することができる。
このように、指示入力システムを複写機等に適用すれば、タッチパネルディスプレイの操作を画面に触れずに比較的離れたところから行うことができる。
また、複写機だけでなく、金融機関のATM等のタッチパネルディスプレイの操作にも適用することができる。スイッチのON/OFF操作等に適用することができる。
本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコンを含む指示入力システムの構成を示す図である。 パソコンの具体的な構成を示した図である。 パソコン本体の構成を機能的に示した図である。 指示入力処理のメインルーチンを示したフローチャートである。 指示入力処理のメインルーチンを示したフローチャートである。 第1ポインティング処理ルーチンを示したフローチャートである。 第2ポインティング処理ルーチンを示したフローチャートである。 第1ポインティング処理及び第2ポインティング処理における処理を幾何学的に説明した説明図である。 ローカル座標系の一例を示した図である。 ローカル座標系における指示動作の具体例を示した図である。 図10のダブルクリックの動き(B)のローカルz軸上の動きを時間の経過に従って示した図である。 コマンド処理ルーチンを示したフローチャートである。 コマンド処理ルーチンを示したフローチャートである。 コマンド処理ルーチンを示したフローチャートである。 LED10が設けられたペン型のツールを示した図である。 LED10が設けられた携帯電話を示した図である。 第2の実施の形態におけるディスプレイに表示されたカーソルの表示状態を示す図である。 表示制御ルーチンを示したフローチャートである。 指示入力システムをモグラたたきゲームに適用した場合を示した図である。 指示入力システムをダーツゲームに適用した場合を示した図である。 指示入力システムをインベーダーゲームに適用した場合を示した図である。 図22(A)は、指示入力システムをハンマーゲームに適用した場合を示した図であり、図22(B)は、図22(A)のハンマーの代わりに表示する昆虫網を示した図である。 図22(A)及び図22(B)に示したゲームの仕組みを大掛りにしたゲームを示した図である。 指示入力システムを落下物捕獲ゲームに適用した場合を示した図である。 指示入力システムを複写機操作の補助に用いる場合を示した図である。
符号の説明
10 LED
16 携帯電話
20 3D計測装置
30 パソコン
32 パソコン本体
34 CPU
36 ROM
38 RAM
40 I/O
42 ディスプレイ
46 HDD
50 コマンド生成部

Claims (11)

  1. 操作者の発光手段が装着された部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力手段と、
    前記入力手段により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出手段と、
    前記検出手段により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出手段と、
    前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出手段と、
    前記表示手段の前記表示用交点算出手段により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御手段と、
    前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、前記速度ベクトル算出手段により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換する変換手段と、
    前記変換手段により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行う処理手段と、
    を含む指示入力装置。
  2. 前記検出手段により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出手段と、
    前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出手段と、
    前記平面算出手段により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出手段と、を更に含み、
    前記表示用交点算出手段は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出手段により検出された加速度が前記所定値を越えた後は、前記交点算出手段により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出する請求項1記載の指示入力装置。
  3. 前記制御手段は、前記表示用交点算出手段により算出された最新の表示用交点及び過去に算出された複数の表示用交点の位置の各々に対応して前記指示情報が複数表示されるように前記表示手段を制御する請求項1又は請求項2記載の指示入力装置。
  4. 前記制御手段は、前記複数の指示情報の表示状態が、時間の経過に従って変化するように前記表示手段を制御する請求項記載の指示入力装置。
  5. 前記表示手段は、前記指示情報を表示すると共に前記操作者の操作対象であるオブジェクトを表示し、
    前記制御手段は、前記指示情報の表示位置と前記ブジェクトの表示位置とが一致した場合、及び、前記指示情報の表示位置と前記ブジェクトの表示位置とが一致し、かつ前記処理手段により前記予め定められた動きに対応付けられた処理の実行が指示された場合、のいずれか一方の場合に、前記表示手段の表示状態を変更するように前記表示手段を制御する請求項乃至請求項のいずれか1項記載の指示入力装置。
  6. 操作者の発光手段が装着された部位の動作に従って移動する発光手段と、
    前記発光手段から発光された光を検出することにより前記発光手段の位置を計測する計測装置と、
    請求項1乃至請求項のいずれか1項記載の指示入力装置と、
    を含む指示入力システム。
  7. 前記発光手段を携帯電話に設けた請求項記載の指示入力システム。
  8. 操作者の発光手段が装着された部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、
    前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、
    前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、
    前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、
    前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、
    前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、前記速度ベクトル算出工程により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換する変換工程と、
    前記変換工程により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行う処理工程と、
    を含む指示入力方法。
  9. 前記検出工程により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出工程と、
    前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、
    前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、
    前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出する請求項記載の指示入力方法。
  10. コンピュータに、
    操作者の発光手段が装着された部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、
    前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、
    前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、
    前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、
    前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、
    前記仮想平面と、該仮想平面に垂直な軸と、により構成される基準座標系における前記位置情報を、前記速度ベクトル算出工程により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成されるローカル座標系の位置情報に変換する変換工程と、
    前記変換工程により変換された前記ローカル座標系の位置情報に基づいて検出した前記ローカル座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理を行う処理工程と、
    を実行させるためのプログラム。
  11. 前記検出工程により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出工程と、
    前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、
    前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、
    前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出する請求項10記載のプログラム。
JP2003298251A 2003-08-22 2003-08-22 指示入力装置、指示入力システム、指示入力方法、及びプログラム Expired - Fee Related JP4438351B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003298251A JP4438351B2 (ja) 2003-08-22 2003-08-22 指示入力装置、指示入力システム、指示入力方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003298251A JP4438351B2 (ja) 2003-08-22 2003-08-22 指示入力装置、指示入力システム、指示入力方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2005070996A JP2005070996A (ja) 2005-03-17
JP4438351B2 true JP4438351B2 (ja) 2010-03-24

Family

ID=34403800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003298251A Expired - Fee Related JP4438351B2 (ja) 2003-08-22 2003-08-22 指示入力装置、指示入力システム、指示入力方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP4438351B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008059614A1 (fr) * 2006-11-15 2008-05-22 Kabushiki Kaisha Sega Doing Business As Sega Corporation Programme pour commander le mouvement d'un objet affiché exécuté dans un dispositif de jeu à l'aide d'un dispositif de pointage direct
JP5192144B2 (ja) * 2006-12-12 2013-05-08 株式会社ミツトヨ 測定器
JP4318056B1 (ja) 2008-06-03 2009-08-19 島根県 画像認識装置および操作判定方法
WO2015030264A1 (ja) * 2013-08-30 2015-03-05 国立大学法人山梨大学 クリック動作検出装置,方法およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01188925A (ja) * 1988-01-22 1989-07-28 Nippon Telegr & Teleph Corp <Ntt> カーソル移動方法及びそのための慣性入力装置
JPH09212288A (ja) * 1996-01-31 1997-08-15 Canon Inc 情報入力システムおよび情報入力方法
JP3243788B2 (ja) * 1997-01-07 2002-01-07 日本電信電話株式会社 単一センサ型常装着入力装置
US6747632B2 (en) * 1997-03-06 2004-06-08 Harmonic Research, Inc. Wireless control device
JPH1131047A (ja) * 1997-07-10 1999-02-02 Rikagaku Kenkyusho 記号信号生成装置
JP4172307B2 (ja) * 2003-03-31 2008-10-29 富士ゼロックス株式会社 3次元指示入力装置
JP2004341892A (ja) * 2003-05-16 2004-12-02 Fuji Xerox Co Ltd 指示入力装置、指示入力方法、及びプログラム

Also Published As

Publication number Publication date
JP2005070996A (ja) 2005-03-17

Similar Documents

Publication Publication Date Title
US11886638B2 (en) External user interface for head worn computing
US11816296B2 (en) External user interface for head worn computing
US20220083880A1 (en) Interactions with virtual objects for machine control
KR101711619B1 (ko) 컴퓨터 장치의 원격 제어
US10739965B2 (en) Virtual interactions for machine control
US20170336872A1 (en) External user interface for head worn computing
JP6074170B2 (ja) 近距離動作のトラッキングのシステムおよび方法
US20170017323A1 (en) External user interface for head worn computing
US20170100664A1 (en) External user interface for head worn computing
US20160026239A1 (en) External user interface for head worn computing
US20150205351A1 (en) External user interface for head worn computing
US20160027211A1 (en) External user interface for head worn computing
CN108700957B (zh) 用于虚拟环境中文本输入的电子系统和方法
CN116097209A (zh) 人工现实交互模式的整合
WO2017015093A1 (en) External user interface for head worn computing
US20040227741A1 (en) Instruction inputting device and instruction inputting method
TWI705356B (zh) 虛擬實境場景下的輸入方法和裝置
JP2013037675A5 (ja)
JP6534011B2 (ja) 情報処理装置、情報処理プログラム、情報処理システム、および、情報処理方法
JP4172307B2 (ja) 3次元指示入力装置
JP6519075B2 (ja) 情報処理装置、情報処理プログラム、情報処理システム、および、情報処理方法
US10095269B2 (en) Motion control assembly with battery pack
JP6561400B2 (ja) 情報処理装置、情報処理プログラム、情報処理システム、および、情報処理方法
JP4438351B2 (ja) 指示入力装置、指示入力システム、指示入力方法、及びプログラム
JP2005078310A (ja) 触覚呈示装置、触覚呈示方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091228

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4438351

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees