(57)【要約】【課題】機械的操作や比較的細やかな操作を必要とせず、使い勝手を向上させた指示入力装置、指示入力方法、及びプログラムを提供する。【解決手段】指示入力者に装着可能なＬＥＤ１０から発光された光の受光状態に基づいて３Ｄ計測装置２０で計測された該ＬＥＤ１０の３次元位置情報を入力し、入力された３次元位置情報に基づいて、ＬＥＤ１０の動きに伴う速度及び加速度を検出し、検出した速度及び加速度に基づいて、ＬＥＤ１０の動きが予め定められた動きに対応するか否かを判断し、ＬＥＤ１０の動きが予め定められた動きに対応すると判断した場合には、該予め定められた動きに対応付けられた処理の実行を指示する。【選択図】        図５
2004341892.tif 000002
【特許請求の範囲】
【請求項１】
指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力手段と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出手段と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断手段と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示手段と、
を含む指示入力装置。
【請求項２】
各々異なる複数の予め定められた動きを示す動き情報を記憶する記憶手段を備え、
前記判断手段は、
前記記憶された複数の動き情報から前記発光手段の動きに対応する少なくとも１つの動き情報を選択する選択手段と、
前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する検証手段と、
を含む請求項１記載の記載の指示入力装置。
【請求項３】
前記動き情報は、位置の時系列の情報であり、
前記入力手段は、前記位置情報を時系列に入力し、
前記選択手段は、前記時系列に入力された位置情報に基づいて、前記少なくとも１つの動き情報を選択する請求項２記載の指示入力装置。
【請求項４】
前記検証手段は、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する請求項２または請求項３記載の指示入力装置。
【請求項５】
前記速さに関する物理量は、前記発光手段の動きに伴う加速度及び速度の少なくとも１つである請求項１乃至請求項４のいずれか１項記載の記載の指示入力装置。
【請求項６】
処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する表示手段と、
前記入力された位置情報の変化に対応して前記指定情報の位置が変化するように前記表示手段を制御する表示制御手段と、
を更に備え、
前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記指定情報により指定された前記対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示する請求項１乃至請求項５のいずれか１項記載の指示入力装置。
【請求項７】
前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された前記発光手段の動きの中で、前記指定情報により指定された対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示する請求項６記載の指示入力装置。
【請求項８】
前記予め定められた動きは、所定の方向を１往復する動きである請求項１乃至請求項７のいずれか１項記載の指示入力装置。
【請求項９】
前記予め定められた動きは、所定の時間以内の所定の方向を１往復する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項８記載の指示入力装置。
【請求項１０】
前記予め定められた動きは、所定の方向を２往復する動きである請求項１乃至請求項７のいずれか１項記載の指示入力装置。
【請求項１１】
前記予め定められた動きは、所定の時間以内の所定の方向を２往復する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項１０記載の指示入力装置。
【請求項１２】
前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きである請求項１乃至請求項７のいずれか１項記載の指示入力装置。
【請求項１３】
前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、所定の時間経過してから、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項１２記載の指示入力装置。
【請求項１４】
前記予め定められた動きは、所定の方向と逆の方向に移動する動きである請求項１乃至請求項７のいずれか１項記載の指示入力装置。
【請求項１５】
前記予め定められた動きは、静止している状態である請求項１乃至請求項７のいずれか１項記載の指示入力装置。
【請求項１６】
前記予め定められた動きは、所定の時間静止している状態であり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが、前記所定の時間静止している状態であるか否かを判断する請求項１５記載の指示入力装置。
【請求項１７】
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出された時間に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する請求項１乃至請求項７のいずれか１項記載の記載の指示入力装置。
【請求項１８】
前記判断手段が前記発光手段の動きが予め定められた動きに対応するか否かを判断する際、前記発光手段の動き又は前記予め定められた動きに許容量を持たせて判断する請求項１乃至請求項１７のいずれか１項記載の指示入力装置。
【請求項１９】
前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の表示状態を変化させるように制御する請求項６乃至請求項１８のいずれか１項記載の指示入力装置。
【請求項２０】
前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の形状、大きさ、色の少なくとも１つを変化させるように制御する請求項１９記載の指示入力装置。
【請求項２１】
前記表示制御手段は、前記指定情報の位置から所定の距離以内に表示される対象情報の大きさを変化させるように制御する請求項２０記載の指示入力装置。
【請求項２２】
音声を出力するための発音手段と、
前記検出された速さに関する物理量に基づいて発音状態を変化させるように前記発音手段を制御する音声出力制御手段と、
を更に備えた請求項１乃至請求項２１のいずれか１項記載の指示入力装置。
【請求項２３】
指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて該発光手段の位置情報を計測する計測工程と、
前記計測工程で計測された位置情報を入力する入力工程と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、
を含む指示入力方法。
【請求項２４】
コンピュータに、
指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力工程と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、指示入力装置、指示入力方法、及びプログラムに関し、特に、発光手段の位置情報に基づいて指示入力する指示入力装置、指示入力方法、及びプログラムに関するものである。
【０００２】
【従来の技術】
パソコン等に対して指示入力するためのデバイスとして、従来より２次元マウスが広く用いられている。２次元マウスはｘ−ｙ座標値を相対座標値としてパソコンに指示入力する。近年、この２次元マウスを用いて３つ目の座標値を入力する技術が提案されている。
【０００３】
例えば、発光体としてＬＥＤを指に装着し、ＬＥＤからの光を受光する受光部をパソコンの画面の上部に取付けることにより、容易に３次元マウスが達成される（例えば、特許文献１参照。）。ここで用いられるセンサは、光源のセンサに対する角度を求め、三角測量の原理により光源の３次元位置を求めるものである。ＬＥＤは光源としてのパワーをパソコンから受け取り、またマウスの基本動作であるクリックなどのシグナルは有線を通してパソコンの基本ソフトに送られる。即ち、発光体のそばに指で押すことのできるスイッチが装備されている。
【０００４】
また、２次元上の２つのボールを回転させることによって、ｘ、ｙ軸方向の移動量を入力できるのみならず、角度や回転角も入力でき、ｚ軸方向に対する入力も可能となるポインティングデバイス（例えば、特許文献２参照。）や、第一の方向に光変換素子を配列した第１の光センサアレイと、第１の方向とは別の第二の方向に光変換素子を配列した第２の光センサアレイとが移動するときに両者の出力変化に応じた信号を生成し、それにより（カーソルなどの）移動量や移動方向を決定する非接触方式の位置検出装置（例えば、特許文献３参照。）が知られている。
【０００５】
さらに、指標をＣＣＤカメラで認識してパソコンなどに対するコマンドとして解釈するリモコン装置（例えば、特許文献４参照。）や、電子ペンの中に指で回転されるロータリースイッチが設けられ、その回転度合いによってグラフィカルパラメター（線分の太さ、色、陰影、グレイスケール）の変化の度合いを決定する座標入力用電子ペン（例えば、特許文献５参照。）や、ユーザの手首に装着されたＲＦＩＤの動きをアンテナにより認識させてから、ＲＦＩＤの動きのパターンを他のデバイスへの入力コマンドとして解釈する指示入力システム（例えば、特許文献６参照。）が知られている。
【０００６】
また、米国Ｇｙｒａｔｉｏｎ  Ｉｎｃ．社のＧｙｒｏｍｏｕｓｅは、オートジャイロを内臓しており、空中操作でレーザーの方向を変えることができるポインティングデバイスであるが、重量が比較的大きく、大きさもジャイロのために比較的大きく、また多少高価である。
【０００７】
さらに近年、カメラのシャッタ操作における半押しの概念を応用した、パソコンのキーボードで、カメラのシャッタのように強く押さないと文字が入力されないという特性を生かし、キーボードとノートバッドを重ねたデバイスが試作された。
【０００８】
また、本出願人により、五感の少なくとも１つに訴えるようなフィードバック（焦点メタファーや色相等の変化）によって、画面の前面に広がる３次元空間上の分割された複数の領域の各境界に対する発光手段の通過状態をユーザに認知させ、機械的メカニズムを利用せずに、発光手段の各領域の境界に対する通過の仕方に応じて、クリック、ダブルクリック、ドラッグなどの２次元マウスの機能を実行することができる３次元指示入力装置が提案されている（特願２００３−９６３６６号。）。
【０００９】
【特許文献１】
特開平１０−９８１２号公報
【特許文献２】
特開平５−１５０９００号公報
【特許文献３】
特開平１１−２４８３２号公報
【特許文献４】
特開平１１−１１０１２５号公報
【特許文献５】
特開２０００−４７８０５号公報
【特許文献６】
特開２００１−３０６２３５号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、上述した従来の３次元マウスは、発光体のそばに装備されたスイッチを指で押すことによって操作するため、２次元マウスと同様に機械的操作及びそれを実現する部品を必要とする。また、上述した従来のポインティングデバイスや指示入力システム等の他の指示入力デバイスも同様である。
【００１１】
さらに、米国Ｇｙｒａｔｉｏｎ  Ｉｎｃ．社のＧｙｒｏｍｏｕｓｅ  Ｐｒｅｓｅｎｔｅｒも、クリック等の操作は通常の２次元マウス同様、指による機械的操作を必要としている。また、キーボードとノートバッドを重ねたデバイスでも、同様である。
【００１２】
すなわち、従来の指示入力デバイスは、ボタンやスイッチ等を押下するような比較的細かい操作が必要なため、機械的操作を行うことが比較的困難な人にとっては、使い勝手が悪い。
【００１３】
また、本出願人が提案した３次元指示入力装置では、３次元空間を複数の領域に分割するための各境界の位置が固定されているために、ユーザは発光手段を装着した手や指を各境界の位置に合うような位置に移動させて、各境界を確認しながら手や指を動かさなくてはならないため、細やかな操作が必要となる。
【００１４】
本発明は、上述した事実に鑑みてなされたものであり、機械的操作や比較的細やかな操作を必要とせず、使い勝手を向上させた指示入力装置、指示入力方法、及びプログラムを提供することを目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の指示入力装置は指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力手段と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出手段と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断手段と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示手段と、を含んで構成されている。
【００１６】
発光手段は、指示入力者に装着可能であり、指や手などに装着されることが好ましい。発光手段は、光を発するものであれば特に限定されず、例えばＬＥＤとすることができる。計測手段は、発光手段から発光された光の受光状態に基づいて発光手段の位置情報を計測する。
【００１７】
入力手段は、該発光手段の位置情報を入力する。位置情報は、例えば、３次元位置情報のｘ、ｙ、ｚ軸上の位置情報であってもよいし、そのうちの１つ、例えばｚ軸上の位置情報のみであってもよい。
【００１８】
検出手段は、入力手段により入力された位置情報に基づいて、発光手段の動きに伴う速さに関する物理量を検出する。
【００１９】
判断手段は、検出手段により検出された速さに関する物理量に基づいて、発光手段の動きが予め定められた動きに対応するか否かを判断する。例えば、速さに関する物理量に対する閾値を定めておき、該閾値を越えた場合に、発光手段の動きが予め定められた動きに対応すると判断するようにしてもよい。
【００２０】
なお、予め定められた動きは、１つであってもよいし、複数あってもよい。また、複数の細かな動きにより構成された動きであってもよい。
【００２１】
指示手段は、判断手段により発光手段の動きが予め定められた動きに対応すると判断された場合に、該予め定められた動きに対応付けられた処理の実行を指示する。
【００２２】
従って、本発明によれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【００２３】
本発明に係る指示入力装置は、更に、各々異なる複数の予め定められた動きを示す動き情報を記憶する記憶手段を備え、前記判断手段は、前記記憶された複数の動き情報から前記発光手段の動きに対応する少なくとも１つの動き情報を選択する選択手段と、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する検証手段と、を含んで構成されることもできる。
【００２４】
記憶手段は、各々異なる複数の予め定められた動きを示す動き情報を記憶する。この動き情報は、特に限定されず、例えば、予め定められた動きを特徴付ける情報としてもよい。記憶手段は、例えば、揮発性メモリであっても、非揮発性メモリであってもよい。
【００２５】
判断手段は、選択手段と検証手段とを備えることができる。選択手段は、記憶手段に記憶された複数の動き情報から発光手段の動きに対応する少なくとも１つの動き情報を選択する。検証手段は、発光手段の動きが選択手段で選択された動き情報により示される動きに対応するか否かを検証する。
【００２６】
本発明の前記動き情報は、位置の時系列の情報であり、前記入力手段は、前記位置情報を時系列に入力し、前記選択手段は、前記時系列に入力された位置情報に基づいて、前記少なくとも１つの動き情報を選択することもできる。
【００２７】
位置の時系列の情報には、例えば、時間軸上で連続した位置の情報が含まれる。入力手段は、例えば、所定時間毎に位置情報を入力することにより、位置情報を時系列に入力することができ、選択手段は、この時系列に入力された位置情報に基づいて、少なくとも１つの動き情報を選択するが、例えば、その際、該入力された時系列の位置情報と、予め定められた動きを示す動き情報（位置の時系列の情報）とを比較して、選択してもよい。
【００２８】
本発明の前記検証手段は、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証することもできる。
【００２９】
本発明の前記速さに関する物理量は、前記発光手段の動きに伴う加速度及び速度の少なくとも１つとすることができる。
【００３０】
本発明に係る指示入力装置は、処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する表示手段と、前記入力された位置情報の変化に対応して前記指定情報の位置が変化するように前記表示手段を制御する表示制御手段と、を更に備え、前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記指定情報により指定された前記対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示することができる。
【００３１】
表示手段は、処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する。表示手段は、情報を表示するものであれば特に限定されず、テレビの画面や、パソコン等に備えられたディスプレイであってもよいし、ＰＤＡなどに備えられたタッチパネルであってもよい。処理の実行が指示される対象情報は、表示手段が、パソコン等に備えられたディスプレイ等であれば、アイコンや、フォルダ、或いは入力位置そのものとすることができる。また、対象情報を指定するための指定情報手段は、例えばパソコンで用いられるカーソルであってもよい。
【００３２】
表示制御手段は、入力された位置情報の変化に対応して指定情報の位置、例えばカーソルの位置が変化するように表示手段を制御する。
【００３３】
指示手段は、発光手段の動きが予め定められた動きに対応すると判断された場合に、指定情報により指定された対象情報について、予め定められた動きに対応付けられた処理の実行を指示する。
【００３４】
本発明の前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された前記発光手段の動きの中で、前記指定情報により指定された対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示することができる。
【００３５】
例えば、発光手段の動きの中で、その位置情報が変化する場合には、指定情報の位置もその変化に対応して変化する場合がある。例えば、指定情報がパソコンで用いられるカーソルである場合には、カーソルの表示位置が変化し、発光手段の動きの開始点と終了点でカーソルが指定する対象情報が異なる場合が発生することもある。この場合には、いずれの対象情報について予め定められた動きに対応付けられた処理の実行を指示するかを予め設定しておいてもよい。
【００３６】
本発明の前記予め定められた動きは、所定の方向を１往復する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるクリックの動きとみなすことができる。
【００３７】
本発明の前記予め定められた動きは、所定の時間以内の所定の方向を１往復する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【００３８】
本発明の前記予め定められた動きは、所定の方向を２往復する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるダブルクリックの動きとみなすことができる。
【００３９】
本発明の前記予め定められた動きは、所定の時間以内の所定の方向を２往復する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【００４０】
本発明の前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるドラッグの動きとみなすことができる。
【００４１】
本発明の前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、所定の時間経過してから、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【００４２】
本発明の前記予め定められた動きは、所定の方向と逆の方向に移動する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるドロップの動きとみなすことができる。
【００４３】
本発明の前記予め定められた動きは、静止している状態とすることができる。
【００４４】
本発明の前記予め定められた動きは、所定の時間静止している状態であり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが、前記所定の時間静止している状態であるか否かを判断することができる。
【００４５】
本発明の前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出された時間に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断することができる。
【００４６】
このように、検出された速さに関する物理量と共に、算出手段によって算出された、発光手段の動きに伴う時間を発光手段の動きの判断条件として用いることができる。
【００４７】
本発明の前記判断手段が前記発光手段の動きが予め定められた動きに対応するか否かを判断する際、前記発光手段の動き又は前記予め定められた動きに許容量を持たせて判断することができる。
【００４８】
例えば、指示入力者が発光手段を手に装着して動かす場合、手のふらつきによって、意図しない微細なぶれが生じる場合がある。従って、判断手段は、発光手段の動き又は予め定められた動きに許容量を持たせて判断することが好ましい。
【００４９】
本発明の前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の表示状態を変化させるように制御することができる。
【００５０】
本発明の前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の形状、大きさ、色の少なくとも１つを変化させるように制御することができる。
【００５１】
本発明の前記表示制御手段は、前記指定情報の位置から所定の距離以内に表示される対象情報の大きさを変化させるように制御することができる。
【００５２】
本発明に係る指示入力装置は、音声を出力するための発音手段と、前記検出された速さに関する物理量に基づいて発音状態を変化させるように前記発音手段を制御する音声出力制御手段と、を更に備えてもよい。
【００５３】
ここで、発音手段は、音声を発生するものであればよく、例えばスピーカとすることもできる。
【００５４】
本発明に係る指示入力方法は、指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて該発光手段の位置情報を計測する計測工程と、前記計測工程で計測された位置情報を入力する入力工程と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、を含む。
【００５５】
本発明によれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【００５６】
本発明に係るプログラムは、コンピュータに、指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力工程と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、を実行させる。
【００５７】
本発明のプログラムをコンピュータで実行すれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【００５８】
なお、本プログラムを記憶する記憶媒体は、特に限定されず、ハードディスクであってもよいし、ＲＯＭであってもよい。また、ＣＤ−ＲＯＭやＤＶＤディスク、光磁気ディスクやＩＣカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【００５９】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００６０】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る指示入力装置としての機能を備えたパソコン３０を含む指示入力システムの構成を示す図である。
【００６１】
図示されるように、指示入力システムは、ＬＥＤ１０と、３Ｄ計測装置２０と、パソコン３０とを備えている。
【００６２】
ＬＥＤ１０は、指示入力者の指や手等に装着される。
【００６３】
３Ｄ計測装置２０は、ＬＥＤ１０から発光された光の受光状態に基づいて３次元位置を計測する。
【００６４】
なお、この３Ｄ計測装置２０は、ＬＥＤ１０等の発光体から発光された光の受光状態から３次元位置を計測できる装置であれば特に限定されないが、特開平１０−９８１２号公報に記載された位置検出の技術等を用いて構成することができる。
【００６５】
図２は、パソコン３０の具体的な構成を示した図である。
【００６６】
図示されるように、パソコン３０のパソコン３２本体は、ＣＰＵ３４、ＲＯＭ３６、ＲＡＭ３８、及び入出力インタフェース（Ｉ／Ｏ）４０を含んで構成されている。また、Ｉ／Ｏ４０には、３Ｄ計測装置２０と、ディスプレイ４２と、スピーカ４４と、ハードディスクドライブ（ＨＤＤ）４６とが接続されている。
【００６７】
ＨＤＤ４６には、ＬＥＤ１０の動きに伴う速度及び加速度に基づいて所定の処理の実行を指示するための指示入力処理ルーチンのプログラム（以下、指示入力処理プログラムと呼称）及び指示入力処理プログラムを実行するための設定情報等が記憶されている。ＣＰＵ３４は、指示入力処理プログラム及び設定情報をＲＡＭ３８にロードして、該プログラムを実行する。
【００６８】
なお、指示入力処理プログラムを記憶する記憶媒体は、ＨＤＤ４６に限定されず、ＲＯＭ３６であってもよい。また、図示は省略するが、Ｉ／Ｏ４０に接続されたＣＤ−ＲＯＭやＤＶＤディスク、光磁気ディスクやＩＣカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【００６９】
図３は、パソコン本体３２の構成を機能的に示した図である。
【００７０】
図示されるように、パソコン本体３２は、コマンド生成部５０と、マウスドライバ５２と、ＯＳ５４と、イメージ・ドライバ５６とを含んで構成されている。
【００７１】
コマンド生成部５０は、３Ｄ計測装置２０で計測された３次元位置情報を入力して、ＬＥＤ１０の動きに伴う速度及び加速度を検出する。更に、検出した速度及び加速度に基づいて、ＬＥＤ１０の動きが、ボタンが装備された一般的なマウス（以下、これを２次元マウスと呼称する）におけるボタン操作、すなわち、クリック、ダブルクリック、ドラッグ・アンド・ドロップ、のいずれに対応する動きかを判断し、判断結果に対応するコマンドを生成してマウスドライバ５２に出力する。
【００７２】
図４は、クリック、ダブルクリック、ドラッグ・アンド・ドロップの各指示動作の一例を具体的に示した図である。
【００７３】
なお、ここでは、３Ｄ計測装置２０から指示入力者の手に向かう方向をｚ軸とし、ｚ軸に直交する平面をｘ軸及びｙ軸からなるｘ−ｙ平面として、ｘｙｚ座標系を定める。また、ｚ軸上で、３Ｄ計測装置２０から離れる方向をプラスの方向とする。
【００７４】
なお、パソコン３０のディスプレイ４２の画面と３Ｄ計測装置２０の位置が一致していれば、ｚ座標値は該画面からの距離となり、該画面をほぼｘ−ｙ平面と見なすことができる。
【００７５】
本実施の形態では、クリックの動きは、予め設定されている時間以内の、３Ｄ計測装置２０に近づく方向（ｚ軸のマイナスの方向）に急速に移動した後、逆の方向（ｚ軸のプラスの方向）に急速に移動する（すなわち、ｚ軸上を１往復する）動きとして設定されており、図ではＡの動きに相当する。
【００７６】
ダブルクリックの動きは、予め設定されている時間以内の、クリックの動きを連続して２回繰り返す（すなわち、ｚ軸上を２往復する）動きとして設定されており、図ではＢの動きに相当する。
【００７７】
ドラッグ・アンド・ドロップの動きは、ドラッグとドロップの動きとから構成され、図ではＣの動きに相当する。ドラッグは、ｚ軸のマイナスの方向に急速に移動した後、予め設定されている時間経過後、ゆっくりとマイナス方向或いはｘ−ｙ平面上を移動しする動きとして設定されている。なお、ゆっくりとマイナス方向或いはｘ−ｙ平面上を移動する動きには、時間の制限はない。ドロップは、ｚ軸のプラスの方向に急速に移動する動きとして設定されいる。
【００７８】
パソコン３０には、動きに伴う速度及び加速度の閾値（本実施の形態では、Ｖ０、Ａ０）が絶対値で設定されていると共に、動きに伴う時間の閾値（本実施の形態では、Ｔ１０、Ｔ２０）が設定されている。コマンド生成部５０は、検出した速度及び加速度と該設定されている速度及び加速度の閾値とを比較すると共に、ＬＥＤ１０の動きに伴う時間と該設定されている時間の閾値とを比較して、ＬＥＤ１０の動きが上述の予め設定されている動きに対応するか否かを判断する。
【００７９】
なお、加速度を用いて判断することにより、ＬＥＤ１０を急速に動かしている状態とそうでない状態、すなわち、指示入力者が意識して手を動かしている状態と、指示入力する意志がなく、自由に手を動かしている状態とを区別することができる。
【００８０】
また、速度を用いて判断することにより、ＬＥＤ１０をある程度の距離だけ動かしたことを認識でき、実際のＬＥＤ１０の動きを判断することができる。速度を判断材料とすることにより、３次元位置情報から移動距離自体を算出して用いる場合に比して、より小さな動きを認識することが可能となる。
【００８１】
なお、図４においては、加速度の状態は実線の矢印で、速度の状態は点線の矢印で示されている。
【００８２】
マウスドライバ５２は、３Ｄマウス・コマンド生成装置５０からコマンドが入力されて、ＯＳ５４に出力する。
【００８３】
ＯＳ５４は、マウスドライバ５２から入力されたコマンドを解釈して該コマンドに対応した処理を実行する。
【００８４】
イメージドライバ５６は、ＯＳ５４の制御の下で、ディスプレイ４２にＬＥＤ１０の動きに対応した画像を表示させるための処理を行う。
【００８５】
なお、図示を省略するが、パソコン本体３２にはサウンドドライバも備えられている。サウンドドライバは、ＯＳ５４の制御の下で、スピーカ４４にＬＥＤ１０の動きに対応した音声を発音させるための処理を行う。
【００８６】
以下、本実施の形態における指示入力処理について説明する。
【００８７】
指示入力者がＬＥＤ１０を装着した手を３Ｄ計測装置２０の前（受光領域）で動かす。手の動きに応じてＬＥＤ１０の位置が変化する。３次元計測装置２０は、ＬＥＤ１０の３次元位置を所定時間毎に計測する。３次元計測装置２０は、ＬＥＤ１０の３次元位置情報を逐次パソコン３０に出力する。
【００８８】
図５から図７は、パソコン３０のＣＰＵ３４により行われる、指示入力処理のメインルーチンを示したフローチャートである。
【００８９】
図８は、ダブルクリックの動きに対応するＬＥＤ１０の動きの一例を示した図である。
【００９０】
図８において、横軸は時間軸、縦軸はｚ軸を表している。Ｂ０点〜Ｂ４点で示される太実線はＬＥＤ１０の動きの軌跡を表している。細実線矢印は加速度の状態を表し、点線矢印は速度の状態を表している。
【００９１】
なお、太実線で示される時間軸上のＬＥＤ１０の動き、該動きに伴う加速度及び速度は、実際には非常に小さいものであるが、本図では誇張して描かれている。
【００９２】
以下、図５から図７の各フローチャートを用いて、図８と対比させながら、指示入力処理について説明する。
【００９３】
なお、各フローチャートでは図示は省略しているが、パソコン３０は、所定時間毎に３Ｄ計測装置２０からＬＥＤ１０の３次元位置情報を入力する。そして、入力の度に、入力された３次元位置情報に基づいてＬＥＤ１０の動きに伴う速度及び加速度を検出する。本実施の形態では、入力された３次元位置情報に含まれる、ｚ座標値を用いて、ｚ軸上での速度及び加速度を検出する。
【００９４】
例えば、速度は、３次元位置情報のｚ座標値の差分を時間の差分で割ることにより検出し、加速度は、検出した速度を時間の差分で割ることにより検出することができる。なお、３Ｄ計測装置２０から離れる方向がｚ軸のプラスの方向であるため、ＬＥＤ１０を３Ｄ計測装置２０から離れる方向に移動させれば、速さ及び加速度の符号は＋となり、３Ｄ計測装置２０に近づく方向に移動させれば、速さ及び加速度の符号は−となる。
【００９５】
図５のフローチャートのステップ１００で、上述のように検出した加速度に−の符号を付した値が、加速度の閾値Ａ０を越えたか否かを判断する。
【００９６】
前述したように、ＬＥＤ１０を３Ｄ計測装置２０に近づく方向に動かせば、速さ及び加速度の符号は−となる。従って、この場合には、−の符号を付すことにより速さ及び加速度は正の値となる。ＬＥＤ１０を３Ｄ計測装置２０から離れる方向に動かせば、−の符号を付すことにより速度及び加速度は負の値となる。また、前述したように、閾値Ｖ０及び閾値Ａ０は、絶対値で設定されている。
【００９７】
このことから、加速度に−の符号を付した値が、閾値Ａ０を越えたか否かを判断することで、十分な加速度をもってＬＥＤ１０を３Ｄ計測装置２０に近づく方向に移動させたか否かを判断することができる。
【００９８】
ステップ１００で、−加速度≦Ａ０であると判断した場合には、３Ｄ計測装置２０から次の３次元位置情報を入力するまで、待機状態を維持する。図８では、Ｂ０点以前の状態が待機状態に相当する。
【００９９】
また、−加速度＞Ａ０であると判断した場合には（図８では、Ｂ０点に相当）、指示入力者が意志をもって手を動かした状態であるため、ステップ１０２に移行し、タイマＴ１及びタイマＴ２をスタートさせる。
【０１００】
ここで、タイマＴ１は、ある方向への移動を開始してから該ある方向とは逆の方向への移動を開始するまでの時間を計時するために用いられるタイマである。タイマＴ１に対しては、予め閾値Ｔ１０が設定されている。
【０１０１】
タイマＴ２は、ダブルクリックの動きを判断するために用いられるタイマである。タイマＴ２に対しては、予め閾値Ｔ２０が設定されている。
【０１０２】
ステップ１０４で、速度に−の符号を付した値が、閾値Ｖ０を越えたか否かを判断する。加速度と同様に、速度にも−の符号を付して閾値Ｖ０と比較する。
【０１０３】
ステップ１０４で、−速度≦Ｖ０であると判断した場合には、ステップ１１６に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。
【０１０４】
ステップ１０４で、−速度＞Ｖ０であると判断した場合には（図８ではＢ１点に相当）、ステップ１０６に移行し、加速度が閾値Ａ０を越えたか否かを判断する。なお、ここでは、ＬＥＤ１０の移動方向を明瞭にするために便宜上加速度に＋の符号を付す。
【０１０５】
ステップ１０６で、＋加速度≦Ａ０であると判断した場合には、ステップ１０８に移行し、タイマＴ１が閾値Ｔ１０を越えたか否かを判断する。ここで、タイマＴ１≦Ｔ１０であると判断した場合には、ステップ１０６に戻り、次に３Ｄ計測装置２０から入力された３次元位置情報に基づいて速度及び加速度を検出し、判断する。
【０１０６】
ステップ１０６で、＋加速度＞Ａ０であると判断した場合には、ステップ１１０に移行し、タイマＴ１が閾値Ｔ１０以下であるか否かを判断する。
【０１０７】
ステップ１１０で、タイマＴ１＞Ｔ１０であると判断した場合には、ＬＥＤ１０の動きは予め設定されている動きのいずれにも対応しないため、ステップ１１６に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。ステップ１１０で、タイマＴ１≦Ｔ１０であると判断した場合には、ＬＥＤ１０の動きは予め設定されている時間以内の動きであるため、ステップ１１２に移行し、速度が、閾値Ｖ０を越えたか否かを判断する。
【０１０８】
ステップ１１２で、−速度≦Ｖ０であると判断した場合には、ＬＥＤ１０の動きは予め設定されている動きのいずれにも対応しないため、ステップ１１６に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。−速度＞Ｖ０であると判断した場合には、ＬＥＤ１０の動きは前述した予め設定されているクリックの動きに対応するため、ステップ１１４に移行し、クリック処理を行う（図８では、Ｂ２点に相当）。
【０１０９】
具体的に図３の機能構成図を用いて説明すると、コマンド生成部５０が、クリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ５２に出力する。コマンド生成部５０は、該コマンドを２次元マウスにおけるボタン操作によるコマンドと同様の形式で出力する。これにより、マウスドライバ５２を介して該コマンドが入力されたＯＳ５４では、２次元マウスと同様に該コマンドを解釈して適切な処理を実行することができる。
【０１１０】
ステップ１１４のクリック処理を実行した後は、図６のステップ１２０に移行し、タイマＴ１をリセットしてスタートさせる。このステップ以降の処理は、ＬＥＤ１０の動きがダブルクリックの動きであるか否かを判断するための処理となる。
【０１１１】
ステップ１２２では、次に検出した加速度に−の符号を付した値が閾値Ａ０を越えたか否かを判断する。−加速度≦Ａ０であると判断した場合には、ステップ１２４に移行し、タイマＴ１が閾値Ｔ１０を越えたか否かを判断する。
【０１１２】
ステップ１２４で、タイマＴ１＞Ｔ１０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。ステップ１２４で、タイマＴ１≦Ｔ１０であると判断した場合には、ステップ１２２に戻り、次に３Ｄ計測装置２０から入力された３次元位置情報に基づいて速度及び加速度を検出し、判断する。
【０１１３】
ステップ１２２で、−加速度＞Ａ０であると判断した場合には、ステップ１２６に移行し、タイマＴ１が閾値Ｔ１０以下であるか否かを判断する。
【０１１４】
ステップ１２６で、タイマＴ１＞Ｔ１０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。ステップ１２６で、タイマＴ１≦Ｔ１０であると判断した場合には、ステップ１２８に移行し、速度が閾値Ｖ０を越えたか否かを判断する。
【０１１５】
ステップ１２８で、−速度≦Ｖ０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。ステップ１２８で、−速度＞Ｖ０であると判断した場合には、ステップ１３０に移行し、タイマＴ１をリセットしてスタートさせる（図８では、Ｂ３点に相当）。
【０１１６】
ステップ１３２では、次に検出した加速度が閾値Ａ０を越えたか否かを判断する。ここで、＋加速度≦Ａ０であると判断した場合には、ステップ１３４に移行し、タイマＴ１が閾値Ｔ１０を越えたか否かを判断する。
【０１１７】
ステップ１３４で、タイマＴ１＞Ｔ１０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。タイマＴ１≦Ｔ１０であると判断した場合には、ステップ１３２に戻り、次に３Ｄ計測装置２０から入力された３次元位置情報に基づいて速度及び加速度を検出し、判断する。
【０１１８】
ステップ１３２で、＋加速度＞Ａ０であると判断した場合には、ステップ１３６に移行し、タイマＴ１が閾値Ｔ１０以下であるか否かを判断する。
【０１１９】
ステップ１３６で、タイマＴ１＞Ｔ１０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。タイマＴ１≦Ｔ１０であると判断した場合には、ステップ１３８に移行し、タイマＴ２が閾値Ｔ２０以下であるか否かを判断する。
【０１２０】
タイマＴ２は、クリックの動きがスタートしたときからの時間を計時している。閾値Ｔ２０は、ダブルクリックの動きに要する時間の限度として予め設定されている。従って、タイマＴ２と閾値Ｔ２０を比較することにより、ＬＥＤ１０の動きがダブルクリックの動きに対応するか否かを判断することができる。
【０１２１】
ステップ１３８で、タイマＴ２＞Ｔ２０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。タイマＴ２≦Ｔ２０であると判断した場合には、ステップ１４０に移行し、速度が閾値Ｖ０を越えたか否かを判断する。
【０１２２】
ステップ１４０で、＋速度≦Ｖ０であると判断した場合には、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。＋速度＞Ｖ０であると判断した場合には、ＬＥＤ１０の動きは前述した予め設定されているダブルクリックの動きに対応するため、ステップ１４２に移行し、ダブルクリック処理を行う（図８では、Ｂ４点に相当）。
【０１２３】
ダブルクリック処理もクリック処理と同様に、コマンド生成部５０が、ダブルクリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ５２に出力する。マウスドライバ５２を介して該コマンドが入力されたＯＳ５４では、２次元マウスと同様に該コマンドを解釈して、ダブルクリックの動きに対応する適切な処理を実行することができる。
【０１２４】
ステップ１４２の後は、ステップ１４４に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。
【０１２５】
なお、ダブルクリックの動きは、上述の速度、加速度、及び時間の条件を満たした動きであれば、特に図８に限定されるものではない。例えば、２回目のクリックのｚ軸上の始点（すなわち、Ｂ２点）は、１回目のクリックのｚ軸上の始点（すなわち、Ｂ０点）と同じ位置である必要はない。
【０１２６】
一方、図５のステップ１０８で、タイマＴ１＞閾値Ｔ１０であると判断した場合には、ＬＥＤ１０の動きは予め設定されているドラッグの動きに対応するため、図７のステップ１５０に移行し、ドラッグ処理を行う。
【０１２７】
具体的には、コマンド生成部５０が、クリック処理と同様に、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ５２に出力する。マウスドライバ５２を介して該コマンドが入力されたＯＳ５４では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【０１２８】
なお、ドラッグ処理は、通常は、クリック処理の後に行われる処理である。例えば、クリック処理により選択されたアイコンなどのオブジェクトをドラッグ（移動）したりすることができる。
【０１２９】
ステップ１５０の後は、ステップ１５２に移行し、加速度が閾値Ａ０を越えたか否かを判断する。＋加速度≦Ａ０であると判断した場合には、ステップ１５０に戻り、ドラッグ処理を継続する。また、＋加速度＞Ａ０であると判断した場合には、ステップ１５４に移行し、速度が閾値Ｖ０を越えたか否かを判断する。
【０１３０】
ステップ１５４で、＋速度≦Ｖ０であると判断した場合には、ステップ１５０に戻り、ドラッグ処理を継続する。＋速度＞Ｖ０であると判断した場合には、ＬＥＤ１０の動きは予め設定されているドロップの動きに対応するため、ステップ１５６に移行し、ドロップ処理を行う。
【０１３１】
ドロップ処理もドラッグと同様に、コマンド生成部５０が、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ５２に出力する。マウスドライバ５２を介して該コマンドが入力されたＯＳ５４では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【０１３２】
ステップ１５６の後は、ステップ１５８に移行し、タイマＴ１及びＴ２をリセットして、待機状態に戻る。
【０１３３】
上述した指示入力処理のステップ１０８では、ドラッグの動きであるか否かを判断するために閾値Ｔ１０を用いているが、閾値Ｔ１０とは別の閾値を設け、該閾値により判断するようにしてもよい。
【０１３４】
なお、本システムにおいて、クリックやダブルクリックなどの動きに対応付けられた処理の実行を指示する対象となるオブジェクト（オブジェクトには、例えばアイコン、フォルダ、ボタン、或いはデータの入力位置等が含まれる）を指定するためのカーソルをディスプレイ４２に表示する処理を行うための表示処理のルーチンが上記指示入力処理のメインルーチンと同時に行われる。カーソルは、３Ｄ計測装置２０で計測された３次元位置情報に含まれるｘ、ｙ座標値に基づいて、ディスプレイ４２のサイズに応じた位置に表示される。カーソルが指し示す位置（以下、指定位置と呼称する）に表示されるオブジェクトが、処理対象となる。実際には、カーソルの指定位置は、カーソルの表示位置に相当し、ｘ、ｙ座標値で表される。
【０１３５】
また、カーソルはＯＳから呼び出される現行の表示ルーチンを使うことも可能だが、ユーザ定義のカーソルや表現を表示するための該表示処理ルーチンのプログラムは、上述の指示入力処理ルーチンのサブルーチンとして、予め指示入力処理プログラムに組み込まれている。
【０１３６】
図９は、表示処理ルーチンを示すフローチャートである。本表示処理ルーチンは、所定時間毎に実行される。
【０１３７】
ステップ１８０では、３次元位置情報を取り込む。
【０１３８】
ステップ１８２では、３次元位置情報に応じて、カーソルの表示位置を移動する。本実施の形態では、３Ｄ計測装置２０から入力された３次元位置情報に含まれるｘ座標値及びｙ座標値の変化に対応して、カーソルの表示位置を移動する。
【０１３９】
コマンド生成部５０がコマンドをマウスドライバ５２に出力する際、このカーソルの指定位置の情報をコマンドに含ませて出力する。これにより、例えばＬＥＤ１０の動きがクリックの動きである場合、カーソルの指定位置にアイコン等のオブジェクトが表示されていれば、該アイコンを選択する、という処理が実行される。また、アイコン等のオブジェクトが表示されていなくても、カーソルの指定位置そのものを選択する、という処理が実行される。また、カーソルの指定位置に、ボタンが表示されていれば、ボタンを押下する、という処理が実行される。
【０１４０】
このように、３次元位置情報に対応してカーソルを表示させることにより、カーソルの指定位置に表示されるオブジェクトについての処理を、容易に指示入力することができる。
【０１４１】
なお、上述した指示入力処理の流れから明らかなように、クリックのコマンドが出力されてアイコンや位置の選択が行われた後（ステップ１１４）、ＬＥＤ１０をゆっくり動かした場合には（ステップ１２２、Ｎ、且つステップ１２４、Ｙ）、待機状態に戻り、待機状態が維持されるため（ステップ１００、Ｎ）、選択した状態を維持したまま、上述した表示処理ルーチンによりカーソルを移動することが可能である。
【０１４２】
以上説明したように、ＬＥＤ１０の３次元位置情報を入力し、ＬＥＤ１０の動きに伴う速度及び加速度を検出し、検出した速度及び加速度に基づいて、ＬＥＤ１０の動きが予め設定された動きに対応するか否かを判断して、予め設定された動きに対応付けられた処理の実行を指示するようにしたため、ボタン操作等の機械的操作や比較的細やかな操作を行わずとも、指示入力することができる。
【０１４３】
また、時間を含めて予め設定された動きを設定し、速度及び加速度に加え、ＬＥＤ１０の動きに伴う時間も判断材料としたため、より多くの動きを予め設定する動きとして設定できる。
【０１４４】
なお、本実施の形態では、速度及び加速度は３次元位置情報のｚ座標値の差分を用いて検出する例について説明したが、ｚ座標値でなくとも、例えば（ｘ、ｙ、ｚ）座標値から速度及び加速度を検出することも可能である。また、本実施の形態では、ｚ座標値から検出された速度、加速度に基づいて、動きを判断する例について説明したが、他の方向、例えば、指示入力者にとっては上下方向或いは左右方向の速度、加速度に基づいて、動きを判断するようにしてもよい。その場合には、カーソルの位置を、該他の方向と直交する２次元平面上の座標値に基づいて移動させるようにすることもできる。
【０１４５】
また、閾値Ａ０、Ｖ０、Ｔ１０、Ｔ２０を任意に変更することは可能である。例えば、試験的に指示入力者の手等にＬＥＤ１０を装着してその動き（３次元位置）を測定し、指示入力者の手の動きに伴う速度や加速度、時間を検出して、検出した値に基づいて閾値を設定変更することもできる。このように指示入力者に応じた閾値を設定すれば、より使い勝手が向上する。
【０１４６】
また、本実施の形態では、ＬＥＤ１０の動きのみにより指示入力する例について説明したが、例えば、指示入力用のスイッチやボタン等をＬＥＤ１０とは別に備えておき、ＬＥＤ１０の動きによる指示入力とボタン押下等の機械的操作による指示入力とを必要に応じて使い分けることも可能である。
【０１４７】
更に、上述した実施の形態では説明を省略したが、他の動き、例えば、２次元マウスで行われるマウスダウンの動き（ボタンを押下したままの状態で移動する動き）についても、それに対応する動きを予め設定しておき、速度、加速度、時間により判断して、処理の実行を指示するようにすることも可能である。
【０１４８】
［第２の実施の形態］
上述した第１の実施の形態では、ｚ軸上の速度及び加速度に基づいて動きを判断する例について説明したが、ＬＥＤ１０の動きの中でｘ座標値や、ｙ座標値が変化する場合には、ｚ軸上の速度や加速度の条件を満たしている場合であってもその動きを予め設定された動きには対応しないと判断することができる。この場合には、各動きは、各動きの開始から終了までｘ、ｙ座標値が変化しない動きとして設定しておけばよい。
【０１４９】
しかしながら、実際に指示入力者がｘ、ｙ座標値を固定して手を動かすことは困難である。従って、本実施の形態では、ｘ、ｙ座標値の許容範囲を設けて動きを判断する例について説明する。なお、本実施の形態の指示入力処理システムの構成は第１の実施の形態と同様であるため、説明を省略する。
【０１５０】
ダブルクリックの動きにおいては、例えば、第１の実施の形態における図６のステップ１４２に代えて、図１０に示されるステップを用いることができる。
【０１５１】
ステップ１４０の後、ステップ１６０で、１回目のクリックの動きにおけるｘ、ｙ座標値と、２回目のクリックの動きにおけるｘ、ｙ座標値とが、予め設定した許容範囲内（例えば、各座標値毎に、±５ｘ（３／１００）ｍｍ以内）であるか否かを判断する。
【０１５２】
なお、図８において、１回目のクリックの動きにおけるｘ、ｙ座標値は、図８では、Ｂ０点の位置としてもよいし、Ｂ１点の位置としてもよい。同様に、２回目のクリックの動きにおけるｘ、ｙ座標値は、Ｂ２点の位置としてもよいし、Ｂ３点の位置としてもよい。
【０１５３】
ステップ１６０で、許容範囲を越えたと判断した場合には、ダブルクリック処理を行わずに、ステップ１４４に移行する。これにより、ｘ座標値や、ｙ座標値の変化が許容範囲を超えて、ＬＥＤ１０の動きが見た目にもＷ字のような軌跡になる場合にはダブルクリックの動きと見なされない。
【０１５４】
ステップ１６０で、許容範囲内であると判断した場合には、ＬＥＤ１０の動きをダブルクリックの動きであると判断し、ステップ１６２でダブルクリックの処理を行う。
【０１５５】
以上説明したように、動きに許容範囲を設けることによって、指示入力者の負担が比較的軽減される。
【０１５６】
なお、本実施の形態では、図８におけるＢ０（或いはＢ１）点とＢ２（或いはＢ３）点のｘ、ｙ座標値が許容範囲内であるか否かを判断する例について説明したが、例えば、最初のＢ０点におけるｘ、ｙ座標値を記憶しておき、Ｂ１点、Ｂ２点、Ｂ３点、Ｂ４点の各点を通過する際の各ｘ、ｙ座標値とＢ０点のｘ、ｙ座標値との差分を各座標値について求め、許容範囲内であるか否かを判断するようにしてもよい。いずれかの点で、許容範囲を越えたと判断した場合には、ただちに待機状態に戻る。なお、Ｂ３点、Ｂ４点で許容範囲外であると判断した場合は、クリックの動きに対応付けられた処理が行われた状態を維持するようにしてもよい。
【０１５７】
また、本実施の形態では、ｘ、ｙ座標値について許容範囲を設定して動きを判断する例について説明したが、ｘ、ｙ方向の速度について許容範囲を設定して動きを判断するようにすることもできる。例えば、ｚ軸方向の速度と共に、ｘ、ｙ方向の速度についても検出しておき、ＬＥＤ１０の動きの判断に用いる。
【０１５８】
この場合には、ｘ、ｙ方向の速度の差が許容範囲を越えた場合には、ＬＥＤ１０の動きが予め設定されている動きに対応しないと判断する。
【０１５９】
なお、ｘ、ｙ座標値及びｘ、ｙ方向の速度の双方を用いて判断するようにしてもよいし、いずれか一方の許容範囲の設定を用いて判断するようにしてもよい。
【０１６０】
また、許容範囲による判断は、ダブルクリックの動きだけに限定されず、他の動き（クリックやドラッグ等の動き）についても、同様に許容範囲を設けて判断することが可能である。
【０１６１】
更にまた、カーソルの指定位置が指示入力者が処理対象として指定したいオブジェクト（例えば、アイコン等）から若干ずれている場合であっても、該オブジェクトが処理対象として指定されるように、ｘ、ｙ座標値の許容範囲を設定してもよい。これにより、細やかな操作を必要とせずに、所望の対象について処理の実行を指示することができる。
【０１６２】
［第３の実施の形態］
上述した第１の実施の形態では、クリックやダブルクリック等の動きに対応付けられた処理の実行が指示される場合には（ステップ１１４，ステップ１４４、ステップ１５０、ステップ１５６）、カーソルの指定位置に表示されるオブジェクトについて処理の実行が指示される。具体的には、コマンド生成部５０がコマンドをマウスドライバ５２に出力する際、カーソルの指定位置の情報をコマンドに含ませて出力する。
【０１６３】
しかしながら、第２の実施の形態で示した例のように、ｘ、ｙ座標値に許容範囲を設けると、ＬＥＤ１０の動きの中でカーソルの指定位置が変化する場合が発生する。
【０１６４】
この場合には、動きの中の複数の指定位置のどの位置の情報をコマンドに含ませて出力するかを予め設定しておく必要がある。
【０１６５】
例えば、ダブルクリックの動きにおいて、ＬＥＤ１０の１回目のクリックの位置（図８ではＢ０点或いはＢ１点の位置）と２回目のクリックの位置（図８ではＢ２点或いはＢ３点の位置）が異なる場合には、どの位置の情報をマウスドライバ５２に出力するかを予め設定しておく必要がある。一般的には、１回目のクリックの位置が指示入力者の指定したい位置である場合が多いことから、該位置の情報をコマンドに含めるようにしてもよい（以下、この処理を位置ロックと呼称する）。この場合には、１回目のクリックの位置の情報をコマンドを出力するまでＲＡＭ３８の所定の領域に記憶しておき、コマンド出力の際に、該所定の領域から該位置の情報を読み出して用いる処理が必要となる。
【０１６６】
この場合には、ｘ、ｙ座標値の変化が許容範囲内の場合に限るが、カーソルの表示位置を１回目のクリックの位置に固定しておき、指示入力者に該位置を認識させるようにすることもできる。
【０１６７】
しかしながら、ドローイングソフト等で連続する線分を描画して図面を作成したりする場合には、常に最新のｘ、ｙ座標値を用いるようにすることが好ましい。この場合には、最新のｘ、ｙ座標値をコマンドに含めるようにすればよいため、位置ロックの場合と異なり、記憶されている位置の情報を読み出すような特別な処理は必要ない。
【０１６８】
また、位置ロックするか否かについて予め設定しておいてもよいが、実行中のプロセスに応じて位置ロックするか否かを判断するようにしてもよい。
【０１６９】
本実施の形態では、実行中のプロセスに応じて判断する例について図１１を参照しながら説明する。
【０１７０】
ステップ２００では、パソコン３０で実行中のプロセスが位置ロック禁止のプロセスであるか否かが判断される。例えば、上述のように、実行中のプロセスがドローイングソフトでの描画プロセスである場合には、位置ロック禁止と判断される。
【０１７１】
ステップ２００で、肯定判断された場合には、最新の位置情報を用いればよいため、ステップ２０４に移行し、判断した動きに対応付けられた処理の実行を指示する。この場合には、コマンド生成部５０が、最新の位置の情報をコマンドに含めてマウスドライバ５２に出力する。
【０１７２】
ステップ２００で、否定判断された場合には、ステップ２０２で、ＲＡＭ３８の所定の領域に記憶しておいた、すなわちロックした位置情報（例えば、ダブルクリックの動きの場合であれば、１回目のクリックの位置の情報）が読み出される。ステップ２０４で、判断した動きに対応付けられた処理の実行を指示する。この場合には、コマンド生成部５０が、読み出した位置の情報をコマンドに含めてマウスドライバ５２に出力する。
【０１７３】
なお、ＲＡＭ３８に位置の情報を記憶しておくタイミングは、予め設定しておくことができる。例えば、ダブルクリックの動きであれば、図８におけるＢ０点からＢ４点までのいずれの点を記憶しておくかを設定しておくことができる。
【０１７４】
以上説明したように、ＬＥＤ１０の動きの中のいずれかの位置情報を指定してコマンドを出力することによって、動きの中でカーソルの指定位置が変化した場合であっても、適切に処理することができる。
【０１７５】
［第４の実施の形態］
本実施の形態では、予め設定された動きが、所定の時間静止している状態として設定されている場合の処理について説明する。すなわち、速度や加速度ではなく、時間に基づいて動きを判断する。
【０１７６】
なお、本実施の形態の指示入力処理システムの構成は第１の実施の形態と同様であるため、説明を省略する。
【０１７７】
以下、予め設定されているダブルクリックの動きが、第１の実施の形態で示したクリックの動きと、クリックの動きの後に所定時間静止している状態とにより構成されている場合を例に挙げて説明する。なお、本実施の形態においても、第２の実施の形態と同様に許容範囲を設け、ＬＥＤ１０の位置の変化が許容範囲以内であれば静止していると判断する。
【０１７８】
クリック処理（図５のステップ１１４）までの流れは、第１の実施の形態と同様であるため、説明を省略する。ただし、本実施の形態では、タイマＴ２を使用しないため、図５のステップ１０２では、タイマＴ１のみスタートさせる。
【０１７９】
ステップ１１４以降の本実施の形態の処理について、図１２のフローチャートを用いて説明する。
【０１８０】
ステップ３００で、タイマＴ１をリセットしてスタートさせる。
【０１８１】
ステップ３０２で、タイマＴ１が予め設定されている時間の閾値Ｔｔｈ未満であるか否かを判断する。Ｔｔｈは、予め設定されている静止時間の閾値である。
【０１８２】
ステップ３０２で、Ｔ１＜Ｔｔｈであると判断した場合には、ステップ３０４で、ＬＥＤ１０が１回目のクリック位置から許容範囲を越えた位置に移動したか否かを判断する。ここで、否定判断した場合には、ステップ３０２に戻る。また、肯定判断した場合には、ＬＥＤ１０の動きは、静止していない状態であるため、ダブルクリックの動きには対応していないと判断し、ステップ３０８に移行し、タイマＴ１をリセットして、待機状態に戻る。
【０１８３】
ステップ３０２で、Ｔ１≧Ｔｔｈであると判断した場合には、ＬＥＤ１０が所定時間静止している状態であるため、ダブルクリックの動きに対応していると判断し、ステップ３０６に移行し、ダブルクリック処理を行う。
【０１８４】
ステップ３０６の後は、ステップ３０８に移行し、タイマＴ１をリセットして、待機状態に戻る。
【０１８５】
以上説明したように、予め定められた動きに、所定の時間静止している状態を含め、時間を用いてＬＥＤ１０の動きを判断するようにしたため、パソコン３０の処理量が軽減し、容易にＬＥＤ１０の動きを判断できる。指示入力者の操作も比較的容易となる。
【０１８６】
［第５の実施の形態］
第４の実施の形態では、ダブルクリックの動きを時間に基づいて判断する例について説明したが、本実施の形態では、ダブルクリックのみならず、クリックの動きについても、時間に基づいて判断する例について説明する。
【０１８７】
本実施の形態の指示入力処理システムの構成は第１の実施の形態と同様であるため、説明を省略する。
【０１８８】
ここでは、ディスプレイ４２にアイコンが表示され、該アイコンを処理の対象として指定する場合を例に挙げて説明する。また、クリックの動きは、所定時間静止している状態として設定され、ダブルクリックの動きは、クリックの動きから、さらに所定時間静止している状態として設定されている。ＬＥＤ１０の動きがクリックの動きと判断された後に、ＬＥＤ１０がゆっくりと移動する状態が、ドラッグの動きとして設定されている。更に、ドラッグ処理中に、所定の加速度及び速度が発生した状態が、ドロップの動きとして設定されている。
【０１８９】
なお、静止している時間の閾値は任意に設定することが可能である。
【０１９０】
図１３は、パソコン３０のＣＰＵ３４により行われる、指示入力処理のメインルーチンを示したフローチャートである。
【０１９１】
ステップ４００では、カーソルの指定位置がアイコンの表示位置に一致しているか否かを判断する。ここで、一致していないと判断した場合には、待機状態に戻る。一致していると判断した場合には、ステップ４０２に移行し、一致したと判断してから、カーソルの位置が移動しない状態で所定時間経過したか否かを判断する。
【０１９２】
ステップ４０２で、否定判断した場合には、待機状態に戻る。
【０１９３】
ステップ４０２で、肯定判断した場合には、ＬＥＤ１０の動きはクリックの動きに対応するため、ステップ４０４に移行し、クリック処理を行う。
【０１９４】
ステップ４０６で、クリック処理時のカーソルの表示位置（ここでは指定位置に同じ）と、現在のカーソルの表示位置が一致しているか否かを判断する。
【０１９５】
ステップ４０６で、肯定判断した場合には、ステップ４０８で、所定時間経過したか否かを判断する。ステップ４０８で否定判断した場合には、ステップ４０６に戻る。ステップ４０８で肯定判断した場合には、クリックの動きからさらに所定時間静止している状態であり、ＬＥＤ１０の動きはダブルクリックの動きに対応するため、ステップ４１０に移行し、ダブルクリック処理を行う。
【０１９６】
一方、ステップ４０６で、クリック処理時のカーソルの表示位置と、現在のカーソルの表示位置が一致していないと判断した場合には、ステップ４１２に移行し、検出した速度の絶対値（ここではｚ軸上のプラス方向或いはマイナス方向のいずれの方向であってもよい）が閾値Ｖ０未満であるか否かを判断する。
【０１９７】
ステップ４１２で、速度＜Ｖ０であると判断した場合には、ＬＥＤ１０がゆっくりと移動した状態であるため、ステップ４１４に移行し、ドラッグ処理を行う。
【０１９８】
次に、ステップ４１６で、加速度が閾値Ａ０を越えたか否かを判断する。
【０１９９】
ステップ４１６で、加速度≦Ａ０であると判断した場合には、ＬＥＤ１０がゆっくりと移動している状態が継続しているため、ステップ４１４に戻り、ドラッグ処理を継続する。
【０２００】
ステップ４１６で、加速度＞Ａ０であると判断した場合には、ステップ４１８に移行し、速度が閾値Ｖ０を越えたか否かを判断する。
【０２０１】
ステップ４１８で、速度≦Ｖ０であると判断した場合には、ＬＥＤ１０がゆっくりと移動している状態が継続しているため、ステップ４１４に戻り、ドラッグ処理を継続する。
【０２０２】
ステップ４１８で、速度＞Ｖ０であると判断した場合には、ＬＥＤ１０の動きがドロップの動きに対応しているため、ステップ４２０に移行し、ドロップ処理を行う。
【０２０３】
また、ステップ４１２で、速度≧Ｖ０であると判断した場合には、ＬＥＤ１０の動きはいずれの動きにも対応していないため、何もせずに終了する。
【０２０４】
以上説明したように、ＬＥＤ１０の動きにより表示されるカーソルが所定時間同じ位置に表示されている場合（静止している場合）に、該位置のアイコンが選択されたり、あるいはオープンされるようにすることが可能である。
【０２０５】
本実施の形態では、ｘ、ｙ座標値の許容範囲についての判断は省略しているが、本実施の形態においても、第２の実施の形態と同様に許容範囲を設け、ＬＥＤ１０の位置の変化が許容範囲以内であればステップ４０６でクリック処理時のカーソルの表示位置と現在のカーソルの表示位置が一致している（すなわち、静止している）と判断するようにしてもよい。
【０２０６】
この際には、カーソルの表示位置の変化（ｘ、ｙ座標値）の許容範囲を、例えば（±５ｘ３／１００ｍｍ）と設定することも好適である。また、本実施の形態では、ドラッグの動きを判断するために速度を用いる例について説明したが、クリックやダブルクリックの動きを判断するための許容範囲を第１の許容範囲とし、ドラッグの動きを判断するための第２の許容範囲（第１の許容範囲よりも広い範囲）を第１の許容範囲とは別に設け、カーソルが第１の許容範囲を越えて移動し、第２の許容範囲内に所定時間とどまっている状態であれば、ドラッグの動きと判断するようにすることもできる。
【０２０７】
また、所定時間内にＬＥＤ１０のｚ座標値が減少する方向に移動した場合、すなわち、ＬＥＤ１０が３Ｄ計測装置に近づく方向に移動した場合にもドラッグを開始させるようにすることも好適である。
【０２０８】
以上説明したように、時間、加速度、速度の順序（或いは時間のみ）でアルゴリズムを構成することも可能である。
【０２０９】
これにより、パソコン３０の処理量が軽減し、容易にＬＥＤ１０の動きを判断できる。指示入力者の操作も比較的容易となる。
【０２１０】
［第６の実施の形態］
本実施の形態では、クリックやダブルクリック等の動きを示す３次元位置の時系列の情報（以下時系列パターンと呼称する）を、ＨＤＤ４６或いはＲＯＭ３６等に記憶しておき、該時系列パターンを用いて、ＬＥＤ１０の動きを判断する例について説明する。本実施の形態の指示入力処理システムの構成も第１の実施の形態と同様であるため、説明を省略する。
【０２１１】
コマンド生成部５０は、３Ｄ計測装置２０から計測された３次元位置情報を所定の時間毎に入力する。コマンド生成部５０は、入力された位置情報を順にＲＡＭ３８の所定の領域に記憶していき、ＬＥＤ１０の時系列の位置情報を得る。
【０２１２】
入力された位置情報を記憶する領域は、例えば、リング状のデータ構造を有するようにすることができる。新たに入力された３次元位置情報は、リング状の記憶領域の最も古いデータを記憶した領域に上書きされる。
【０２１３】
図１４は、所定時間毎に行われる、位置情報を記憶するための処理ルーチンを示すフローチャートである。
【０２１４】
ステップ５００で、３Ｄ計測装置２０から３次元位置情報を取り込む。
【０２１５】
ステップ５０２で、取り込んだ３次元位置情報を、ＲＡＭ３８中の最も古いデータを記憶した領域に上書きする。
【０２１６】
これにより、３次元位置情報の時系列のデータが得られる。
【０２１７】
図１５は、所定時間毎に行われる、時系列パターンを用いて指示入力処理を行うための指示入力処理ルーチンを示したフローチャートである。この指示入力処理ルーチンのプログラムは、第１の実施の形態と同様に、ＨＤＤ４６等の記憶媒体に記憶されており、ＣＰＵ３４により実行される。
【０２１８】
ステップ６００では、ＲＡＭ３８から現時点から所定の時間Ｔａ前までの時系列の３次元位置情報を取り込む。
【０２１９】
ステップ６０２では、ｐに０をセットする。ｐは、予め記憶されている全ての時系列パターンと取り込んだ位置情報により表される軌跡とを順にマッチングさせていくためのカウンタである。
【０２２０】
ステップ６０４では、ｐをインクリメントする。
【０２２１】
ステップ６０６では、記憶されている第ｐ番目の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる。
【０２２２】
ここで、なお予め記憶されている時系列パターンの例を図１６及び図１７に示す。
【０２２３】
図１６は、クリックの動きを示す時系列パターンの例であり、図１７は、ダブルクリックの動きを示す時系列パターンの例である。本実施の形態では、例えばこれらの時系列パターンを、予め取り込んである軌跡パターンとマッチングさせて、ＬＥＤ１０の動きがいずれの時系列パターンが示す動きに対応するかを判断する。
【０２２４】
ステップ６０８では、マッチング結果をＲＡＭ３８の所定の領域に記憶する。
【０２２５】
例えば、その相似性をスケーリングや最小二乗法等の手法を用いて数値化し、これを第ｐ番目の時系列パターンとのマッチング結果として記憶するようにしてもよい。
【０２２６】
ステップ６１０では、カウンタｐと、予め記憶されている時系列パターンの総数ｐ０とを比較し、ｐ＞ｐ０であるか否かを判断する。ｐ≦ｐ０であると判断した場合には、ステップ６０４に戻り、ｐをインクリメントして、次の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる処理を繰り返す。
【０２２７】
ステップ６１０で、ｐ＞ｐ０であると判断した場合には、取り込んだ位置情報により表される軌跡と全ての時系列パターンとのマッチングが終了したため、ステップ６１２に移行し、全てのマッチング結果から最も相似性の高い時系列パターンを選択する。
【０２２８】
次に、ステップ６１４で、取り込んだ位置情報から、極大値、極小値を決定する。具体的には、選択した時系列パターンがクリックの動きを示す時系列パターンであれば、１つの極大値と１つの極小値を決定する。選択した時系列パターンがダブルクリックの動きを示す時系列パターンであれば、１つの極大値と２つの極小値を決定する。
【０２２９】
ステップ６１６では、極大値及び極小値を基準にして時系列の位置情報を分割する。例えば、ＬＥＤ１０の動きが図８に示される動きであれば、ｚ座標値の２つの極小値及び１つの極大値から時系列の位置情報を４分割する。すなわち、Ｂ４点からＢ３点まで、Ｂ３点からＢ２点まで、Ｂ２点からＢ１点まで、Ｂ１点から時系列の位置情報の終わりまで、の４つのデータに分割する。
【０２３０】
ステップ６１８では、分割されたそれぞれのデータについて、速度と加速度を計算する。ＬＥＤ１０の移動方向によって、速度や加速度の符号が変わるが、ここでは絶対値だけを見れば充分である。
【０２３１】
速度の計算は様々な方法が考えられるが、第１の実施の形態で示したように、分割されたデータのｚ座標値の差分を、時間の差分で割ることにより求めてもよいし、任意の時間枠を設け、該時間枠内の任意の時刻でのｚ座標値と、該時刻から該時間枠分ずれた時刻のｚ座標値との差分を求め、該時間枠で割ることにより求めることもできる。
【０２３２】
加速度については、例えば、以下のように求めることができる。分割されたデータ内で連続する位置情報の差分をとり、新たな時系列データを生成する。生成した時系列データに対して、任意の時間軸上の枠Ｔｍを設け、その枠Ｔｍ内の任意時刻の時系列データと、該時刻から該枠Ｔｍ分だけずれた時刻の時系列データとの差分を求め、それを枠Ｔｍで割れば、加速度が求められる。
【０２３３】
なお、速度や加速度を求める手法は特に限定されず、どのような手法を用いてもよい。
【０２３４】
ステップ６２０で、求めた速度及び加速度に基づいて、ＬＥＤ１０の動きを検証する。
【０２３５】
具体的には、各分割されたデータについての各加速度と速度が、予め設定した閾値を越えているか否かを判断する。ここで、１つでも閾値を越えていないと判断した場合には、検証結果はＮＧとなる。全ての加速度及び速度が閾値を越えていると判断した場合には、検証結果はＯＫとなる。
【０２３６】
図１８は、クリックの動きにおける速度の状態の例を示しており、図１９は、ダブルクリックの動きにおける速度の状態の例を示している。本図では速度を絶対値で表している。図示されるＶ０は速度の閾値である。また、ポイントをわかりやすくするため、速度を単純な山形の形状で表している。
【０２３７】
図示されるように、クリックでは、２つの分割データの各速度が閾値を越えれば検証結果はＯＫとなる。ダブルクリックでは、４つの分割データの各速度が閾値を越えれば検証結果はＯＫとなる。
【０２３８】
ステップ６２２で、検証結果がＯＫか否かを判断する。検証結果がＮＧであると判断した場合には、ＬＥＤ１０の動きは、選択した時系列パターンが示す動きに対応していないため、そのまま終了する。
【０２３９】
ステップ６２２で検証結果がＯＫであると判断した場合には、ステップ６２４に移行し、選択した時系列パターンが示す動きに対応付けられた処理の実行を指示する。
【０２４０】
なお、ステップ６２４の具体的な処理は、第１の実施の形態の、クリックやダブルクリック等の動きに対応付けられた処理の実行を指示する各ステップ（ステップ１１４，ステップ１４４、ステップ１５０、ステップ１５６）と同様であるため、説明を省略する。
【０２４１】
なお、分割されたデータは、各分割データ毎に順次速度及び加速度を計算して閾値と比較していき、ある分割データについて閾値を越えなかったと判断した場合には、残りの分割データに関する速度及び加速度の計算はせずにただちに処理を終了するようにしてもよい。
【０２４２】
また、時系列パターンを選択する方法は、上述した例に限定されず、以下に示す方法を採用することもできる。例えば、クリックやダブルクリックの動きを示す時系列パターンの特徴を、予め記憶しておく。
【０２４３】
例えば、クリックの動きを示す時系列パターンについては、ｚ座標値において１つの極小値が存在するという特徴を予め記憶しておく。また、ダブルクリックの動きを示す時系列パターンについては、ｚ座標値において２つの連続する極小値が存在するという特徴を記憶しておく。
【０２４４】
これにより、取り込んだ位置情報により表される軌跡が、該特徴を有しているか否かを判断して、マッチングする。具体的には、取り込んだ時系列の位置情報により表される軌跡において、１つの極小値のみ存在すると判断した場合には、クリックの動きを示す時系列パターンを選択するようにし、２つの連続する極小値が存在すると判断した場合には、ダブルクリックの動きを示す時系列パターンを選択することができる。
【０２４５】
このように、速度及び加速度に加え、時系列パターンを用いて、ＬＥＤ１０の動きを判断するようにしたため、より精度高く動きを判断することができる。
【０２４６】
［第７の実施の形態］
本実施の形態では、速度及び加速度を計算して検証する処理を行わず、時系列パターンのみでＬＥＤ１０の動きを判断する例について説明する。本実施の形態の指示入力処理システムの構成も第１の実施の形態と同様であるため、説明を省略する。
【０２４７】
ここでは、３Ｄ計測装置２０がＬＥＤ１０の発光を認識するための領域を、３Ｄ計測装置２０の前面の直方体として定義する。
【０２４８】
図２０は、時系列パターンの一例であり、３Ｄ計測装置２０の前面に直方体として定義されている認識領域の中心付近（Ｆ）から、直線的に直方体の上面（Ｅ）、または左面、或いは右面を通りすぎて非認識領域（Ｇ）に移動する動きを示している。
【０２４９】
このような時系列パターンでは、以下の特徴が挙げられる。
【０２５０】
ｘ、ｙ、ｚ座標値の時系列データの変化は、単調変化である。ＬＥＤ１０が認識領域外に移動することから、３Ｄ計測装置２０が認識不可能となる状態が発生する。
【０２５１】
従って、ＬＥＤ１０がこのような特徴を有する動きを示した場合には、この時系列パターンに該当すると判断することができる。
【０２５２】
この時系列パターンが認識された場合に、例えば、本システムをシャットダウンさせるようにしてもよい。
【０２５３】
図２１も、時系列パターンの一例であり、認識領域において、ＬＥＤ１０を一時停止させ、その後、認識領域内で円弧を描く動きを示している。
【０２５４】
この円弧を描く動き（例えば、右回りで、下から上に動かして、また下に戻す動き）では、最初の一時停止の位置から所定の許容範囲内に次の停止位置があるという特徴がある。
【０２５５】
更に、３Ｄ計測装置２０に向かって左上角を原点の０とし、原点から右方向を＋方向とするｘ軸、下方向を＋方向とするｙ軸、手前に向かう方向を＋方向とするｚ軸によりｘ、ｙ、ｚ座標系を定義した場合、以下の特徴が挙げられる。
【０２５６】
２つの停止位置の間のｘ座標値は、単調減少、極小、単調増加、となるように変化する。
【０２５７】
２つの停止位置の間のｙ座標値は、単調減少、極小、単調増加、極大、単調減少、となるように変化する。
【０２５８】
従って、この区間で、ｘ座標値とｙ座標値がこれらの特徴を同時に満たすならば、この時系列パターンに該当すると判断することができる。この時系列パターンが認識された場合には、例えば、ディスプレイの画面全体を拡大表示する処理が実行されるようにしてもよい。
【０２５９】
また、表示を元に戻す処理の実行を指示するために、円弧の描く方向を左回りとする時系列パターンを別途設定するようにしてもよい。更に、円弧を回転する度に、表示を所定の拡大率、縮小率で変化させるようにしても良い。また、円弧の動きをｘ−ｙ軸平面上の動きではなくｘ−ｚ軸平面上の動きとすることもできる。
【０２６０】
なお、空中に円弧を描く際、最初の停止位置から再び正確に同じ位置に手を戻すことは比較的困難なため、最初の停止位置と次の停止位置について、適宜、許容範囲を設けるようにすることが好適である。
【０２６１】
［第８の実施の形態］
本実施の形態では、指示入力者がＬＥＤ１０の動きの状態を認識できるように、速度に基づいてカーソルの表示状態を変化させたり、音声を発生させたりする例について説明する。
【０２６２】
本実施の形態では、一般的なカーソルとは別に拡張カーソルを表示する。
【０２６３】
ここで、拡張カーソルについて説明する。パソコン３０のディスプレイ４２に表示されるデスクトップ上で、一般的なカーソルがオブジェクトを指定する点（前述の指定位置に相当する）を含む小領域を円弧などで囲い、改めて小ウインドウとして表示したものである。
【０２６４】
図２２（ａ）及び図２２（ｂ）に示されるように、指定位置３０を中心とする円形の内部が小ウィンドウ（拡張カーソル）７２に表示されている。一般的なカーソル７４は、拡張カーソル７２の内部、特に中心部に重ねて表示されている。この拡張カーソル３２は、ＯＳ５４がイメージドライバ５６を用いて表示する。
【０２６５】
本実施の形態では、第１の実施の形態において説明した表示処理ルーチンに代えて、図２３で示される処理ルーチンを実行する。本ルーチンは、所定時間毎に実行される。
【０２６６】
ステップ７００で、３次元位置情報を取り込む。
【０２６７】
ステップ７０２で、速度を検出する。検出方法は、第１の実施の形態と同様であるため、ここでは説明を省略する。
【０２６８】
ステップ７０４で、検出した速度Ｖｋが予め設定されている閾値Ｖｔｈを越えたか否かを判断する。ここで肯定判断した場合には、ステップ７０６に移行し、拡張カーソル７２のサイズを拡大する。更にステップ７０８で、拡張カーソル７２内の画像の拡大率を検出した速度Ｖｋの値に応じてアップさせる。更にステップ７１０で、速度に応じた音声をスピーカ４４から発生させる。
【０２６９】
図２２（ａ）は、拡張カーソル７２のサイズを拡大し、拡張カーソル７２内の画像の拡大率をアップした状態を示している。
【０２７０】
ステップ７１２では、３次元位置情報に応じて、カーソル７４及び拡張カーソル７２の表示位置を移動する。
【０２７１】
一方、ステップ７０４で否定判断した場合には、ステップ７１２に移行し、カーソル移動処理のみを行う。
【０２７２】
図２２（ｂ）は、速度が十分でない場合の拡張カーソルの状態を表している。図示されるように、拡張カーソル７２の半径は最小になっており、円形内の画像も背景と同じ、即ち拡大率が１となっている。
【０２７３】
このように、拡張カーソル７２を速度が充分でないときは小さなサイズで表示し、速度があがるにつれてそのサイズを大きくするようにすれば、指示入力者は速度を認識しながら、ＬＥＤ１０を装着した手を動かすことができ、指示入力が容易となる。
【０２７４】
なお、拡張カーソル７２を常に表示せず、速度が所定以上であれば表示し、速度が極端に減ると表示しないように制御することもできる。逆に速度が所定以下であれば表示し、速度が極端に増えると表示しないようにすることも可能である。
【０２７５】
また、上記ステップ７１０で説明したように、速度に応じて固有な音を発生させれば、指示入力者の操作の助けとなり、目の不自由な方にとって好適である。これにより、どの程度の速度で手を動かせばよいかを指示入力者に認識させるようにすることができる。
【０２７６】
更に、速度に応じてカーソル７４や拡張カーソル７２の色相などの色を変化させたりすることもできる。また、こうした表示状態の変化の設定や、拡張カーソルのサイズ（例えば、半径等）を指示入力者が任意に設定できるようにすることもできる。
【０２７７】
以上、各実施の形態で説明したように、ＬＥＤ１０の動きに伴う速度及び加速度に基づいて、ＬＥＤ１０の動きを判断するようにしたため、３Ｄ計測装置２０がＬＥＤ１０の発光を認識できる領域内で、３Ｄ計測装置２０からの距離に関わらず、クリック、ダブルクリック、ドラッグ等の操作を、機械的メカニズムを使わずに行うことが可能となる。
【０２７８】
また、本発明は、上述した実施の形態に限定されず、パソコンの操作だけでなく、例えば、複写機や金融機関のＡＴＭ等のタッチパネルの操作に適用することも可能である。これにより、タッチパネルの操作を画面に触れずに行うことができる。
【０２７９】
また、本発明をスイッチのＯＮ／ＯＦＦ操作等に適用することも可能である。
【０２８０】
【発明の効果】
本発明は、発光手段の動きに伴う速さに関する物理量に基づいて、発光手段の動きが予め定められた動きに対応するか否かを判断し、該予め定められた動きに対応すると判断した場合には、該予め定められた動きに対応付けられた処理の実行を指示するようにしたため、機械的操作や比較的細やかな操作を必要とせずに指示入力できる、という効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る指示入力装置としての機能を備えたパソコンを含む指示入力システムの構成を示す図である。
【図２】パソコンの具体的な構成を示した図である。
【図３】パソコン本体の構成を機能的に示した図である。
【図４】クリック、ダブルクリック、ドラッグ・アンド・ドロップの各指示動作の一例を具体的に示した図である。
【図５】パソコンのＣＰＵにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図６】パソコンのＣＰＵにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図７】パソコンのＣＰＵにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図８】ダブルクリックの動きに対応するＬＥＤの動きの一例を示した図である。
【図９】表示処理ルーチンを示すフローチャートである。
【図１０】第２の実施の形態における、指示入力処理のメインルーチンの一部を示すフローチャートである。
【図１１】第３の実施の形態における、実行中のプロセスに応じて位置ロックするか否かを判断する処理ルーチンを示すフローチャートである。
【図１２】第４の実施の形態における指示入力処理のメインルーチンの一部を示すフローチャートである。
【図１３】第５の実施の形態における指示入力処理のメインルーチンを示したフローチャートである。
【図１４】第６の実施の形態における、位置情報を記憶するための処理ルーチンを示すフローチャートである。
【図１５】第６の実施の形態における、時系列パターンを用いて指示入力処理を行うための指示入力処理ルーチンを示したフローチャートである。
【図１６】クリックの動きを示す時系列パターンの例である。
【図１７】ダブルクリックの動きを示す時系列パターンの例である。
【図１８】クリックの動きにおける速度の状態の例を示した図である。
【図１９】ダブルクリックの動きにおける速度の状態の例を示した図である。
【図２０】第７の実施の形態における時系列パターンの一例である。
【図２１】第７の実施の形態における時系列パターンの一例である。
【図２２】図２２（ａ）は、拡張カーソルのサイズを拡大し、拡張カーソル内の画像の拡大率を増加した状態を示した図であり、図２２（ｂ）は、速度が十分でない場合の、拡張カーソルの状態を示した図である。
【図２３】第８の実施の形態における処理ルーチンを示したフローチャートである。
【符号の説明】
１０  ＬＥＤ
２０  ３Ｄ計測装置
３０  パソコン
３４  ＣＰＵ
３６  ＲＯＭ
３８  ＲＡＭ
４０  Ｉ／Ｏ
４２  ディスプレイ
４４  スピーカ
４６  ＨＤＤ
５０  コマンド生成部
【図１】
2004341892.tif 000003
【図２】
2004341892.tif 000004
【図３】
2004341892.tif 000005
【図４】
2004341892.tif 000006
【図５】
2004341892.tif 000007
【図６】
2004341892.tif 000008
【図７】
2004341892.tif 000009
【図８】
2004341892.tif 000010
【図９】
2004341892.tif 000011
【図１０】
2004341892.tif 000012
【図１１】
2004341892.tif 000013
【図１２】
2004341892.tif 000014
【図１３】
2004341892.tif 000015
【図１４】
2004341892.tif 000016
【図１５】
2004341892.tif 000017
【図１６】
2004341892.tif 000018
【図１７】
2004341892.tif 000019
【図１８】
2004341892.tif 000020
【図１９】
2004341892.tif 000021
【図２０】
2004341892.tif 000022
【図２１】
2004341892.tif 000023
【図２２】
2004341892.tif 000024
【図２３】
2004341892.tif 000025