JP2004341892A - 指示入力装置、指示入力方法、及びプログラム - Google Patents
指示入力装置、指示入力方法、及びプログラム Download PDFInfo
- Publication number
- JP2004341892A JP2004341892A JP2003138645A JP2003138645A JP2004341892A JP 2004341892 A JP2004341892 A JP 2004341892A JP 2003138645 A JP2003138645 A JP 2003138645A JP 2003138645 A JP2003138645 A JP 2003138645A JP 2004341892 A JP2004341892 A JP 2004341892A
- Authority
- JP
- Japan
- Prior art keywords
- movement
- predetermined
- light emitting
- instruction input
- speed
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
Abstract
【課題】機械的操作や比較的細やかな操作を必要とせず、使い勝手を向上させた指示入力装置、指示入力方法、及びプログラムを提供する。
【解決手段】指示入力者に装着可能なLED10から発光された光の受光状態に基づいて3D計測装置20で計測された該LED10の3次元位置情報を入力し、入力された3次元位置情報に基づいて、LED10の動きに伴う速度及び加速度を検出し、検出した速度及び加速度に基づいて、LED10の動きが予め定められた動きに対応するか否かを判断し、LED10の動きが予め定められた動きに対応すると判断した場合には、該予め定められた動きに対応付けられた処理の実行を指示する。
【選択図】 図5
【解決手段】指示入力者に装着可能なLED10から発光された光の受光状態に基づいて3D計測装置20で計測された該LED10の3次元位置情報を入力し、入力された3次元位置情報に基づいて、LED10の動きに伴う速度及び加速度を検出し、検出した速度及び加速度に基づいて、LED10の動きが予め定められた動きに対応するか否かを判断し、LED10の動きが予め定められた動きに対応すると判断した場合には、該予め定められた動きに対応付けられた処理の実行を指示する。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
本発明は、指示入力装置、指示入力方法、及びプログラムに関し、特に、発光手段の位置情報に基づいて指示入力する指示入力装置、指示入力方法、及びプログラムに関するものである。
【0002】
【従来の技術】
パソコン等に対して指示入力するためのデバイスとして、従来より2次元マウスが広く用いられている。2次元マウスはx−y座標値を相対座標値としてパソコンに指示入力する。近年、この2次元マウスを用いて3つ目の座標値を入力する技術が提案されている。
【0003】
例えば、発光体としてLEDを指に装着し、LEDからの光を受光する受光部をパソコンの画面の上部に取付けることにより、容易に3次元マウスが達成される(例えば、特許文献1参照。)。ここで用いられるセンサは、光源のセンサに対する角度を求め、三角測量の原理により光源の3次元位置を求めるものである。LEDは光源としてのパワーをパソコンから受け取り、またマウスの基本動作であるクリックなどのシグナルは有線を通してパソコンの基本ソフトに送られる。即ち、発光体のそばに指で押すことのできるスイッチが装備されている。
【0004】
また、2次元上の2つのボールを回転させることによって、x、y軸方向の移動量を入力できるのみならず、角度や回転角も入力でき、z軸方向に対する入力も可能となるポインティングデバイス(例えば、特許文献2参照。)や、第一の方向に光変換素子を配列した第1の光センサアレイと、第1の方向とは別の第二の方向に光変換素子を配列した第2の光センサアレイとが移動するときに両者の出力変化に応じた信号を生成し、それにより(カーソルなどの)移動量や移動方向を決定する非接触方式の位置検出装置(例えば、特許文献3参照。)が知られている。
【0005】
さらに、指標をCCDカメラで認識してパソコンなどに対するコマンドとして解釈するリモコン装置(例えば、特許文献4参照。)や、電子ペンの中に指で回転されるロータリースイッチが設けられ、その回転度合いによってグラフィカルパラメター(線分の太さ、色、陰影、グレイスケール)の変化の度合いを決定する座標入力用電子ペン(例えば、特許文献5参照。)や、ユーザの手首に装着されたRFIDの動きをアンテナにより認識させてから、RFIDの動きのパターンを他のデバイスへの入力コマンドとして解釈する指示入力システム(例えば、特許文献6参照。)が知られている。
【0006】
また、米国Gyration Inc.社のGyromouseは、オートジャイロを内臓しており、空中操作でレーザーの方向を変えることができるポインティングデバイスであるが、重量が比較的大きく、大きさもジャイロのために比較的大きく、また多少高価である。
【0007】
さらに近年、カメラのシャッタ操作における半押しの概念を応用した、パソコンのキーボードで、カメラのシャッタのように強く押さないと文字が入力されないという特性を生かし、キーボードとノートバッドを重ねたデバイスが試作された。
【0008】
また、本出願人により、五感の少なくとも1つに訴えるようなフィードバック(焦点メタファーや色相等の変化)によって、画面の前面に広がる3次元空間上の分割された複数の領域の各境界に対する発光手段の通過状態をユーザに認知させ、機械的メカニズムを利用せずに、発光手段の各領域の境界に対する通過の仕方に応じて、クリック、ダブルクリック、ドラッグなどの2次元マウスの機能を実行することができる3次元指示入力装置が提案されている(特願2003−96366号。)。
【0009】
【特許文献1】
特開平10−9812号公報
【特許文献2】
特開平5−150900号公報
【特許文献3】
特開平11−24832号公報
【特許文献4】
特開平11−110125号公報
【特許文献5】
特開2000−47805号公報
【特許文献6】
特開2001−306235号公報
【0010】
【発明が解決しようとする課題】
しかしながら、上述した従来の3次元マウスは、発光体のそばに装備されたスイッチを指で押すことによって操作するため、2次元マウスと同様に機械的操作及びそれを実現する部品を必要とする。また、上述した従来のポインティングデバイスや指示入力システム等の他の指示入力デバイスも同様である。
【0011】
さらに、米国Gyration Inc.社のGyromouse Presenterも、クリック等の操作は通常の2次元マウス同様、指による機械的操作を必要としている。また、キーボードとノートバッドを重ねたデバイスでも、同様である。
【0012】
すなわち、従来の指示入力デバイスは、ボタンやスイッチ等を押下するような比較的細かい操作が必要なため、機械的操作を行うことが比較的困難な人にとっては、使い勝手が悪い。
【0013】
また、本出願人が提案した3次元指示入力装置では、3次元空間を複数の領域に分割するための各境界の位置が固定されているために、ユーザは発光手段を装着した手や指を各境界の位置に合うような位置に移動させて、各境界を確認しながら手や指を動かさなくてはならないため、細やかな操作が必要となる。
【0014】
本発明は、上述した事実に鑑みてなされたものであり、機械的操作や比較的細やかな操作を必要とせず、使い勝手を向上させた指示入力装置、指示入力方法、及びプログラムを提供することを目的とする。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明の指示入力装置は指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力手段と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出手段と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断手段と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示手段と、を含んで構成されている。
【0016】
発光手段は、指示入力者に装着可能であり、指や手などに装着されることが好ましい。発光手段は、光を発するものであれば特に限定されず、例えばLEDとすることができる。計測手段は、発光手段から発光された光の受光状態に基づいて発光手段の位置情報を計測する。
【0017】
入力手段は、該発光手段の位置情報を入力する。位置情報は、例えば、3次元位置情報のx、y、z軸上の位置情報であってもよいし、そのうちの1つ、例えばz軸上の位置情報のみであってもよい。
【0018】
検出手段は、入力手段により入力された位置情報に基づいて、発光手段の動きに伴う速さに関する物理量を検出する。
【0019】
判断手段は、検出手段により検出された速さに関する物理量に基づいて、発光手段の動きが予め定められた動きに対応するか否かを判断する。例えば、速さに関する物理量に対する閾値を定めておき、該閾値を越えた場合に、発光手段の動きが予め定められた動きに対応すると判断するようにしてもよい。
【0020】
なお、予め定められた動きは、1つであってもよいし、複数あってもよい。また、複数の細かな動きにより構成された動きであってもよい。
【0021】
指示手段は、判断手段により発光手段の動きが予め定められた動きに対応すると判断された場合に、該予め定められた動きに対応付けられた処理の実行を指示する。
【0022】
従って、本発明によれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【0023】
本発明に係る指示入力装置は、更に、各々異なる複数の予め定められた動きを示す動き情報を記憶する記憶手段を備え、前記判断手段は、前記記憶された複数の動き情報から前記発光手段の動きに対応する少なくとも1つの動き情報を選択する選択手段と、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する検証手段と、を含んで構成されることもできる。
【0024】
記憶手段は、各々異なる複数の予め定められた動きを示す動き情報を記憶する。この動き情報は、特に限定されず、例えば、予め定められた動きを特徴付ける情報としてもよい。記憶手段は、例えば、揮発性メモリであっても、非揮発性メモリであってもよい。
【0025】
判断手段は、選択手段と検証手段とを備えることができる。選択手段は、記憶手段に記憶された複数の動き情報から発光手段の動きに対応する少なくとも1つの動き情報を選択する。検証手段は、発光手段の動きが選択手段で選択された動き情報により示される動きに対応するか否かを検証する。
【0026】
本発明の前記動き情報は、位置の時系列の情報であり、前記入力手段は、前記位置情報を時系列に入力し、前記選択手段は、前記時系列に入力された位置情報に基づいて、前記少なくとも1つの動き情報を選択することもできる。
【0027】
位置の時系列の情報には、例えば、時間軸上で連続した位置の情報が含まれる。入力手段は、例えば、所定時間毎に位置情報を入力することにより、位置情報を時系列に入力することができ、選択手段は、この時系列に入力された位置情報に基づいて、少なくとも1つの動き情報を選択するが、例えば、その際、該入力された時系列の位置情報と、予め定められた動きを示す動き情報(位置の時系列の情報)とを比較して、選択してもよい。
【0028】
本発明の前記検証手段は、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証することもできる。
【0029】
本発明の前記速さに関する物理量は、前記発光手段の動きに伴う加速度及び速度の少なくとも1つとすることができる。
【0030】
本発明に係る指示入力装置は、処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する表示手段と、前記入力された位置情報の変化に対応して前記指定情報の位置が変化するように前記表示手段を制御する表示制御手段と、を更に備え、前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記指定情報により指定された前記対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示することができる。
【0031】
表示手段は、処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する。表示手段は、情報を表示するものであれば特に限定されず、テレビの画面や、パソコン等に備えられたディスプレイであってもよいし、PDAなどに備えられたタッチパネルであってもよい。処理の実行が指示される対象情報は、表示手段が、パソコン等に備えられたディスプレイ等であれば、アイコンや、フォルダ、或いは入力位置そのものとすることができる。また、対象情報を指定するための指定情報手段は、例えばパソコンで用いられるカーソルであってもよい。
【0032】
表示制御手段は、入力された位置情報の変化に対応して指定情報の位置、例えばカーソルの位置が変化するように表示手段を制御する。
【0033】
指示手段は、発光手段の動きが予め定められた動きに対応すると判断された場合に、指定情報により指定された対象情報について、予め定められた動きに対応付けられた処理の実行を指示する。
【0034】
本発明の前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された前記発光手段の動きの中で、前記指定情報により指定された対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示することができる。
【0035】
例えば、発光手段の動きの中で、その位置情報が変化する場合には、指定情報の位置もその変化に対応して変化する場合がある。例えば、指定情報がパソコンで用いられるカーソルである場合には、カーソルの表示位置が変化し、発光手段の動きの開始点と終了点でカーソルが指定する対象情報が異なる場合が発生することもある。この場合には、いずれの対象情報について予め定められた動きに対応付けられた処理の実行を指示するかを予め設定しておいてもよい。
【0036】
本発明の前記予め定められた動きは、所定の方向を1往復する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるクリックの動きとみなすことができる。
【0037】
本発明の前記予め定められた動きは、所定の時間以内の所定の方向を1往復する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【0038】
本発明の前記予め定められた動きは、所定の方向を2往復する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるダブルクリックの動きとみなすことができる。
【0039】
本発明の前記予め定められた動きは、所定の時間以内の所定の方向を2往復する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【0040】
本発明の前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるドラッグの動きとみなすことができる。
【0041】
本発明の前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、所定の時間経過してから、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【0042】
本発明の前記予め定められた動きは、所定の方向と逆の方向に移動する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるドロップの動きとみなすことができる。
【0043】
本発明の前記予め定められた動きは、静止している状態とすることができる。
【0044】
本発明の前記予め定められた動きは、所定の時間静止している状態であり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが、前記所定の時間静止している状態であるか否かを判断することができる。
【0045】
本発明の前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出された時間に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断することができる。
【0046】
このように、検出された速さに関する物理量と共に、算出手段によって算出された、発光手段の動きに伴う時間を発光手段の動きの判断条件として用いることができる。
【0047】
本発明の前記判断手段が前記発光手段の動きが予め定められた動きに対応するか否かを判断する際、前記発光手段の動き又は前記予め定められた動きに許容量を持たせて判断することができる。
【0048】
例えば、指示入力者が発光手段を手に装着して動かす場合、手のふらつきによって、意図しない微細なぶれが生じる場合がある。従って、判断手段は、発光手段の動き又は予め定められた動きに許容量を持たせて判断することが好ましい。
【0049】
本発明の前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の表示状態を変化させるように制御することができる。
【0050】
本発明の前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の形状、大きさ、色の少なくとも1つを変化させるように制御することができる。
【0051】
本発明の前記表示制御手段は、前記指定情報の位置から所定の距離以内に表示される対象情報の大きさを変化させるように制御することができる。
【0052】
本発明に係る指示入力装置は、音声を出力するための発音手段と、前記検出された速さに関する物理量に基づいて発音状態を変化させるように前記発音手段を制御する音声出力制御手段と、を更に備えてもよい。
【0053】
ここで、発音手段は、音声を発生するものであればよく、例えばスピーカとすることもできる。
【0054】
本発明に係る指示入力方法は、指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて該発光手段の位置情報を計測する計測工程と、前記計測工程で計測された位置情報を入力する入力工程と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、を含む。
【0055】
本発明によれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【0056】
本発明に係るプログラムは、コンピュータに、指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力工程と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、を実行させる。
【0057】
本発明のプログラムをコンピュータで実行すれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【0058】
なお、本プログラムを記憶する記憶媒体は、特に限定されず、ハードディスクであってもよいし、ROMであってもよい。また、CD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【0059】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【0060】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコン30を含む指示入力システムの構成を示す図である。
【0061】
図示されるように、指示入力システムは、LED10と、3D計測装置20と、パソコン30とを備えている。
【0062】
LED10は、指示入力者の指や手等に装着される。
【0063】
3D計測装置20は、LED10から発光された光の受光状態に基づいて3次元位置を計測する。
【0064】
なお、この3D計測装置20は、LED10等の発光体から発光された光の受光状態から3次元位置を計測できる装置であれば特に限定されないが、特開平10−9812号公報に記載された位置検出の技術等を用いて構成することができる。
【0065】
図2は、パソコン30の具体的な構成を示した図である。
【0066】
図示されるように、パソコン30のパソコン32本体は、CPU34、ROM36、RAM38、及び入出力インタフェース(I/O)40を含んで構成されている。また、I/O40には、3D計測装置20と、ディスプレイ42と、スピーカ44と、ハードディスクドライブ(HDD)46とが接続されている。
【0067】
HDD46には、LED10の動きに伴う速度及び加速度に基づいて所定の処理の実行を指示するための指示入力処理ルーチンのプログラム(以下、指示入力処理プログラムと呼称)及び指示入力処理プログラムを実行するための設定情報等が記憶されている。CPU34は、指示入力処理プログラム及び設定情報をRAM38にロードして、該プログラムを実行する。
【0068】
なお、指示入力処理プログラムを記憶する記憶媒体は、HDD46に限定されず、ROM36であってもよい。また、図示は省略するが、I/O40に接続されたCD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【0069】
図3は、パソコン本体32の構成を機能的に示した図である。
【0070】
図示されるように、パソコン本体32は、コマンド生成部50と、マウスドライバ52と、OS54と、イメージ・ドライバ56とを含んで構成されている。
【0071】
コマンド生成部50は、3D計測装置20で計測された3次元位置情報を入力して、LED10の動きに伴う速度及び加速度を検出する。更に、検出した速度及び加速度に基づいて、LED10の動きが、ボタンが装備された一般的なマウス(以下、これを2次元マウスと呼称する)におけるボタン操作、すなわち、クリック、ダブルクリック、ドラッグ・アンド・ドロップ、のいずれに対応する動きかを判断し、判断結果に対応するコマンドを生成してマウスドライバ52に出力する。
【0072】
図4は、クリック、ダブルクリック、ドラッグ・アンド・ドロップの各指示動作の一例を具体的に示した図である。
【0073】
なお、ここでは、3D計測装置20から指示入力者の手に向かう方向をz軸とし、z軸に直交する平面をx軸及びy軸からなるx−y平面として、xyz座標系を定める。また、z軸上で、3D計測装置20から離れる方向をプラスの方向とする。
【0074】
なお、パソコン30のディスプレイ42の画面と3D計測装置20の位置が一致していれば、z座標値は該画面からの距離となり、該画面をほぼx−y平面と見なすことができる。
【0075】
本実施の形態では、クリックの動きは、予め設定されている時間以内の、3D計測装置20に近づく方向(z軸のマイナスの方向)に急速に移動した後、逆の方向(z軸のプラスの方向)に急速に移動する(すなわち、z軸上を1往復する)動きとして設定されており、図ではAの動きに相当する。
【0076】
ダブルクリックの動きは、予め設定されている時間以内の、クリックの動きを連続して2回繰り返す(すなわち、z軸上を2往復する)動きとして設定されており、図ではBの動きに相当する。
【0077】
ドラッグ・アンド・ドロップの動きは、ドラッグとドロップの動きとから構成され、図ではCの動きに相当する。ドラッグは、z軸のマイナスの方向に急速に移動した後、予め設定されている時間経過後、ゆっくりとマイナス方向或いはx−y平面上を移動しする動きとして設定されている。なお、ゆっくりとマイナス方向或いはx−y平面上を移動する動きには、時間の制限はない。ドロップは、z軸のプラスの方向に急速に移動する動きとして設定されいる。
【0078】
パソコン30には、動きに伴う速度及び加速度の閾値(本実施の形態では、V0、A0)が絶対値で設定されていると共に、動きに伴う時間の閾値(本実施の形態では、T10、T20)が設定されている。コマンド生成部50は、検出した速度及び加速度と該設定されている速度及び加速度の閾値とを比較すると共に、LED10の動きに伴う時間と該設定されている時間の閾値とを比較して、LED10の動きが上述の予め設定されている動きに対応するか否かを判断する。
【0079】
なお、加速度を用いて判断することにより、LED10を急速に動かしている状態とそうでない状態、すなわち、指示入力者が意識して手を動かしている状態と、指示入力する意志がなく、自由に手を動かしている状態とを区別することができる。
【0080】
また、速度を用いて判断することにより、LED10をある程度の距離だけ動かしたことを認識でき、実際のLED10の動きを判断することができる。速度を判断材料とすることにより、3次元位置情報から移動距離自体を算出して用いる場合に比して、より小さな動きを認識することが可能となる。
【0081】
なお、図4においては、加速度の状態は実線の矢印で、速度の状態は点線の矢印で示されている。
【0082】
マウスドライバ52は、3Dマウス・コマンド生成装置50からコマンドが入力されて、OS54に出力する。
【0083】
OS54は、マウスドライバ52から入力されたコマンドを解釈して該コマンドに対応した処理を実行する。
【0084】
イメージドライバ56は、OS54の制御の下で、ディスプレイ42にLED10の動きに対応した画像を表示させるための処理を行う。
【0085】
なお、図示を省略するが、パソコン本体32にはサウンドドライバも備えられている。サウンドドライバは、OS54の制御の下で、スピーカ44にLED10の動きに対応した音声を発音させるための処理を行う。
【0086】
以下、本実施の形態における指示入力処理について説明する。
【0087】
指示入力者がLED10を装着した手を3D計測装置20の前(受光領域)で動かす。手の動きに応じてLED10の位置が変化する。3次元計測装置20は、LED10の3次元位置を所定時間毎に計測する。3次元計測装置20は、LED10の3次元位置情報を逐次パソコン30に出力する。
【0088】
図5から図7は、パソコン30のCPU34により行われる、指示入力処理のメインルーチンを示したフローチャートである。
【0089】
図8は、ダブルクリックの動きに対応するLED10の動きの一例を示した図である。
【0090】
図8において、横軸は時間軸、縦軸はz軸を表している。B0点〜B4点で示される太実線はLED10の動きの軌跡を表している。細実線矢印は加速度の状態を表し、点線矢印は速度の状態を表している。
【0091】
なお、太実線で示される時間軸上のLED10の動き、該動きに伴う加速度及び速度は、実際には非常に小さいものであるが、本図では誇張して描かれている。
【0092】
以下、図5から図7の各フローチャートを用いて、図8と対比させながら、指示入力処理について説明する。
【0093】
なお、各フローチャートでは図示は省略しているが、パソコン30は、所定時間毎に3D計測装置20からLED10の3次元位置情報を入力する。そして、入力の度に、入力された3次元位置情報に基づいてLED10の動きに伴う速度及び加速度を検出する。本実施の形態では、入力された3次元位置情報に含まれる、z座標値を用いて、z軸上での速度及び加速度を検出する。
【0094】
例えば、速度は、3次元位置情報のz座標値の差分を時間の差分で割ることにより検出し、加速度は、検出した速度を時間の差分で割ることにより検出することができる。なお、3D計測装置20から離れる方向がz軸のプラスの方向であるため、LED10を3D計測装置20から離れる方向に移動させれば、速さ及び加速度の符号は+となり、3D計測装置20に近づく方向に移動させれば、速さ及び加速度の符号は−となる。
【0095】
図5のフローチャートのステップ100で、上述のように検出した加速度に−の符号を付した値が、加速度の閾値A0を越えたか否かを判断する。
【0096】
前述したように、LED10を3D計測装置20に近づく方向に動かせば、速さ及び加速度の符号は−となる。従って、この場合には、−の符号を付すことにより速さ及び加速度は正の値となる。LED10を3D計測装置20から離れる方向に動かせば、−の符号を付すことにより速度及び加速度は負の値となる。また、前述したように、閾値V0及び閾値A0は、絶対値で設定されている。
【0097】
このことから、加速度に−の符号を付した値が、閾値A0を越えたか否かを判断することで、十分な加速度をもってLED10を3D計測装置20に近づく方向に移動させたか否かを判断することができる。
【0098】
ステップ100で、−加速度≦A0であると判断した場合には、3D計測装置20から次の3次元位置情報を入力するまで、待機状態を維持する。図8では、B0点以前の状態が待機状態に相当する。
【0099】
また、−加速度>A0であると判断した場合には(図8では、B0点に相当)、指示入力者が意志をもって手を動かした状態であるため、ステップ102に移行し、タイマT1及びタイマT2をスタートさせる。
【0100】
ここで、タイマT1は、ある方向への移動を開始してから該ある方向とは逆の方向への移動を開始するまでの時間を計時するために用いられるタイマである。タイマT1に対しては、予め閾値T10が設定されている。
【0101】
タイマT2は、ダブルクリックの動きを判断するために用いられるタイマである。タイマT2に対しては、予め閾値T20が設定されている。
【0102】
ステップ104で、速度に−の符号を付した値が、閾値V0を越えたか否かを判断する。加速度と同様に、速度にも−の符号を付して閾値V0と比較する。
【0103】
ステップ104で、−速度≦V0であると判断した場合には、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0104】
ステップ104で、−速度>V0であると判断した場合には(図8ではB1点に相当)、ステップ106に移行し、加速度が閾値A0を越えたか否かを判断する。なお、ここでは、LED10の移動方向を明瞭にするために便宜上加速度に+の符号を付す。
【0105】
ステップ106で、+加速度≦A0であると判断した場合には、ステップ108に移行し、タイマT1が閾値T10を越えたか否かを判断する。ここで、タイマT1≦T10であると判断した場合には、ステップ106に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0106】
ステップ106で、+加速度>A0であると判断した場合には、ステップ110に移行し、タイマT1が閾値T10以下であるか否かを判断する。
【0107】
ステップ110で、タイマT1>T10であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないため、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ110で、タイマT1≦T10であると判断した場合には、LED10の動きは予め設定されている時間以内の動きであるため、ステップ112に移行し、速度が、閾値V0を越えたか否かを判断する。
【0108】
ステップ112で、−速度≦V0であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないため、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。−速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているクリックの動きに対応するため、ステップ114に移行し、クリック処理を行う(図8では、B2点に相当)。
【0109】
具体的に図3の機能構成図を用いて説明すると、コマンド生成部50が、クリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。コマンド生成部50は、該コマンドを2次元マウスにおけるボタン操作によるコマンドと同様の形式で出力する。これにより、マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して適切な処理を実行することができる。
【0110】
ステップ114のクリック処理を実行した後は、図6のステップ120に移行し、タイマT1をリセットしてスタートさせる。このステップ以降の処理は、LED10の動きがダブルクリックの動きであるか否かを判断するための処理となる。
【0111】
ステップ122では、次に検出した加速度に−の符号を付した値が閾値A0を越えたか否かを判断する。−加速度≦A0であると判断した場合には、ステップ124に移行し、タイマT1が閾値T10を越えたか否かを判断する。
【0112】
ステップ124で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ124で、タイマT1≦T10であると判断した場合には、ステップ122に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0113】
ステップ122で、−加速度>A0であると判断した場合には、ステップ126に移行し、タイマT1が閾値T10以下であるか否かを判断する。
【0114】
ステップ126で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ126で、タイマT1≦T10であると判断した場合には、ステップ128に移行し、速度が閾値V0を越えたか否かを判断する。
【0115】
ステップ128で、−速度≦V0であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ128で、−速度>V0であると判断した場合には、ステップ130に移行し、タイマT1をリセットしてスタートさせる(図8では、B3点に相当)。
【0116】
ステップ132では、次に検出した加速度が閾値A0を越えたか否かを判断する。ここで、+加速度≦A0であると判断した場合には、ステップ134に移行し、タイマT1が閾値T10を越えたか否かを判断する。
【0117】
ステップ134で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT1≦T10であると判断した場合には、ステップ132に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0118】
ステップ132で、+加速度>A0であると判断した場合には、ステップ136に移行し、タイマT1が閾値T10以下であるか否かを判断する。
【0119】
ステップ136で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT1≦T10であると判断した場合には、ステップ138に移行し、タイマT2が閾値T20以下であるか否かを判断する。
【0120】
タイマT2は、クリックの動きがスタートしたときからの時間を計時している。閾値T20は、ダブルクリックの動きに要する時間の限度として予め設定されている。従って、タイマT2と閾値T20を比較することにより、LED10の動きがダブルクリックの動きに対応するか否かを判断することができる。
【0121】
ステップ138で、タイマT2>T20であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT2≦T20であると判断した場合には、ステップ140に移行し、速度が閾値V0を越えたか否かを判断する。
【0122】
ステップ140で、+速度≦V0であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。+速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているダブルクリックの動きに対応するため、ステップ142に移行し、ダブルクリック処理を行う(図8では、B4点に相当)。
【0123】
ダブルクリック処理もクリック処理と同様に、コマンド生成部50が、ダブルクリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して、ダブルクリックの動きに対応する適切な処理を実行することができる。
【0124】
ステップ142の後は、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0125】
なお、ダブルクリックの動きは、上述の速度、加速度、及び時間の条件を満たした動きであれば、特に図8に限定されるものではない。例えば、2回目のクリックのz軸上の始点(すなわち、B2点)は、1回目のクリックのz軸上の始点(すなわち、B0点)と同じ位置である必要はない。
【0126】
一方、図5のステップ108で、タイマT1>閾値T10であると判断した場合には、LED10の動きは予め設定されているドラッグの動きに対応するため、図7のステップ150に移行し、ドラッグ処理を行う。
【0127】
具体的には、コマンド生成部50が、クリック処理と同様に、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【0128】
なお、ドラッグ処理は、通常は、クリック処理の後に行われる処理である。例えば、クリック処理により選択されたアイコンなどのオブジェクトをドラッグ(移動)したりすることができる。
【0129】
ステップ150の後は、ステップ152に移行し、加速度が閾値A0を越えたか否かを判断する。+加速度≦A0であると判断した場合には、ステップ150に戻り、ドラッグ処理を継続する。また、+加速度>A0であると判断した場合には、ステップ154に移行し、速度が閾値V0を越えたか否かを判断する。
【0130】
ステップ154で、+速度≦V0であると判断した場合には、ステップ150に戻り、ドラッグ処理を継続する。+速度>V0であると判断した場合には、LED10の動きは予め設定されているドロップの動きに対応するため、ステップ156に移行し、ドロップ処理を行う。
【0131】
ドロップ処理もドラッグと同様に、コマンド生成部50が、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【0132】
ステップ156の後は、ステップ158に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0133】
上述した指示入力処理のステップ108では、ドラッグの動きであるか否かを判断するために閾値T10を用いているが、閾値T10とは別の閾値を設け、該閾値により判断するようにしてもよい。
【0134】
なお、本システムにおいて、クリックやダブルクリックなどの動きに対応付けられた処理の実行を指示する対象となるオブジェクト(オブジェクトには、例えばアイコン、フォルダ、ボタン、或いはデータの入力位置等が含まれる)を指定するためのカーソルをディスプレイ42に表示する処理を行うための表示処理のルーチンが上記指示入力処理のメインルーチンと同時に行われる。カーソルは、3D計測装置20で計測された3次元位置情報に含まれるx、y座標値に基づいて、ディスプレイ42のサイズに応じた位置に表示される。カーソルが指し示す位置(以下、指定位置と呼称する)に表示されるオブジェクトが、処理対象となる。実際には、カーソルの指定位置は、カーソルの表示位置に相当し、x、y座標値で表される。
【0135】
また、カーソルはOSから呼び出される現行の表示ルーチンを使うことも可能だが、ユーザ定義のカーソルや表現を表示するための該表示処理ルーチンのプログラムは、上述の指示入力処理ルーチンのサブルーチンとして、予め指示入力処理プログラムに組み込まれている。
【0136】
図9は、表示処理ルーチンを示すフローチャートである。本表示処理ルーチンは、所定時間毎に実行される。
【0137】
ステップ180では、3次元位置情報を取り込む。
【0138】
ステップ182では、3次元位置情報に応じて、カーソルの表示位置を移動する。本実施の形態では、3D計測装置20から入力された3次元位置情報に含まれるx座標値及びy座標値の変化に対応して、カーソルの表示位置を移動する。
【0139】
コマンド生成部50がコマンドをマウスドライバ52に出力する際、このカーソルの指定位置の情報をコマンドに含ませて出力する。これにより、例えばLED10の動きがクリックの動きである場合、カーソルの指定位置にアイコン等のオブジェクトが表示されていれば、該アイコンを選択する、という処理が実行される。また、アイコン等のオブジェクトが表示されていなくても、カーソルの指定位置そのものを選択する、という処理が実行される。また、カーソルの指定位置に、ボタンが表示されていれば、ボタンを押下する、という処理が実行される。
【0140】
このように、3次元位置情報に対応してカーソルを表示させることにより、カーソルの指定位置に表示されるオブジェクトについての処理を、容易に指示入力することができる。
【0141】
なお、上述した指示入力処理の流れから明らかなように、クリックのコマンドが出力されてアイコンや位置の選択が行われた後(ステップ114)、LED10をゆっくり動かした場合には(ステップ122、N、且つステップ124、Y)、待機状態に戻り、待機状態が維持されるため(ステップ100、N)、選択した状態を維持したまま、上述した表示処理ルーチンによりカーソルを移動することが可能である。
【0142】
以上説明したように、LED10の3次元位置情報を入力し、LED10の動きに伴う速度及び加速度を検出し、検出した速度及び加速度に基づいて、LED10の動きが予め設定された動きに対応するか否かを判断して、予め設定された動きに対応付けられた処理の実行を指示するようにしたため、ボタン操作等の機械的操作や比較的細やかな操作を行わずとも、指示入力することができる。
【0143】
また、時間を含めて予め設定された動きを設定し、速度及び加速度に加え、LED10の動きに伴う時間も判断材料としたため、より多くの動きを予め設定する動きとして設定できる。
【0144】
なお、本実施の形態では、速度及び加速度は3次元位置情報のz座標値の差分を用いて検出する例について説明したが、z座標値でなくとも、例えば(x、y、z)座標値から速度及び加速度を検出することも可能である。また、本実施の形態では、z座標値から検出された速度、加速度に基づいて、動きを判断する例について説明したが、他の方向、例えば、指示入力者にとっては上下方向或いは左右方向の速度、加速度に基づいて、動きを判断するようにしてもよい。その場合には、カーソルの位置を、該他の方向と直交する2次元平面上の座標値に基づいて移動させるようにすることもできる。
【0145】
また、閾値A0、V0、T10、T20を任意に変更することは可能である。例えば、試験的に指示入力者の手等にLED10を装着してその動き(3次元位置)を測定し、指示入力者の手の動きに伴う速度や加速度、時間を検出して、検出した値に基づいて閾値を設定変更することもできる。このように指示入力者に応じた閾値を設定すれば、より使い勝手が向上する。
【0146】
また、本実施の形態では、LED10の動きのみにより指示入力する例について説明したが、例えば、指示入力用のスイッチやボタン等をLED10とは別に備えておき、LED10の動きによる指示入力とボタン押下等の機械的操作による指示入力とを必要に応じて使い分けることも可能である。
【0147】
更に、上述した実施の形態では説明を省略したが、他の動き、例えば、2次元マウスで行われるマウスダウンの動き(ボタンを押下したままの状態で移動する動き)についても、それに対応する動きを予め設定しておき、速度、加速度、時間により判断して、処理の実行を指示するようにすることも可能である。
【0148】
[第2の実施の形態]
上述した第1の実施の形態では、z軸上の速度及び加速度に基づいて動きを判断する例について説明したが、LED10の動きの中でx座標値や、y座標値が変化する場合には、z軸上の速度や加速度の条件を満たしている場合であってもその動きを予め設定された動きには対応しないと判断することができる。この場合には、各動きは、各動きの開始から終了までx、y座標値が変化しない動きとして設定しておけばよい。
【0149】
しかしながら、実際に指示入力者がx、y座標値を固定して手を動かすことは困難である。従って、本実施の形態では、x、y座標値の許容範囲を設けて動きを判断する例について説明する。なお、本実施の形態の指示入力処理システムの構成は第1の実施の形態と同様であるため、説明を省略する。
【0150】
ダブルクリックの動きにおいては、例えば、第1の実施の形態における図6のステップ142に代えて、図10に示されるステップを用いることができる。
【0151】
ステップ140の後、ステップ160で、1回目のクリックの動きにおけるx、y座標値と、2回目のクリックの動きにおけるx、y座標値とが、予め設定した許容範囲内(例えば、各座標値毎に、±5x(3/100)mm以内)であるか否かを判断する。
【0152】
なお、図8において、1回目のクリックの動きにおけるx、y座標値は、図8では、B0点の位置としてもよいし、B1点の位置としてもよい。同様に、2回目のクリックの動きにおけるx、y座標値は、B2点の位置としてもよいし、B3点の位置としてもよい。
【0153】
ステップ160で、許容範囲を越えたと判断した場合には、ダブルクリック処理を行わずに、ステップ144に移行する。これにより、x座標値や、y座標値の変化が許容範囲を超えて、LED10の動きが見た目にもW字のような軌跡になる場合にはダブルクリックの動きと見なされない。
【0154】
ステップ160で、許容範囲内であると判断した場合には、LED10の動きをダブルクリックの動きであると判断し、ステップ162でダブルクリックの処理を行う。
【0155】
以上説明したように、動きに許容範囲を設けることによって、指示入力者の負担が比較的軽減される。
【0156】
なお、本実施の形態では、図8におけるB0(或いはB1)点とB2(或いはB3)点のx、y座標値が許容範囲内であるか否かを判断する例について説明したが、例えば、最初のB0点におけるx、y座標値を記憶しておき、B1点、B2点、B3点、B4点の各点を通過する際の各x、y座標値とB0点のx、y座標値との差分を各座標値について求め、許容範囲内であるか否かを判断するようにしてもよい。いずれかの点で、許容範囲を越えたと判断した場合には、ただちに待機状態に戻る。なお、B3点、B4点で許容範囲外であると判断した場合は、クリックの動きに対応付けられた処理が行われた状態を維持するようにしてもよい。
【0157】
また、本実施の形態では、x、y座標値について許容範囲を設定して動きを判断する例について説明したが、x、y方向の速度について許容範囲を設定して動きを判断するようにすることもできる。例えば、z軸方向の速度と共に、x、y方向の速度についても検出しておき、LED10の動きの判断に用いる。
【0158】
この場合には、x、y方向の速度の差が許容範囲を越えた場合には、LED10の動きが予め設定されている動きに対応しないと判断する。
【0159】
なお、x、y座標値及びx、y方向の速度の双方を用いて判断するようにしてもよいし、いずれか一方の許容範囲の設定を用いて判断するようにしてもよい。
【0160】
また、許容範囲による判断は、ダブルクリックの動きだけに限定されず、他の動き(クリックやドラッグ等の動き)についても、同様に許容範囲を設けて判断することが可能である。
【0161】
更にまた、カーソルの指定位置が指示入力者が処理対象として指定したいオブジェクト(例えば、アイコン等)から若干ずれている場合であっても、該オブジェクトが処理対象として指定されるように、x、y座標値の許容範囲を設定してもよい。これにより、細やかな操作を必要とせずに、所望の対象について処理の実行を指示することができる。
【0162】
[第3の実施の形態]
上述した第1の実施の形態では、クリックやダブルクリック等の動きに対応付けられた処理の実行が指示される場合には(ステップ114,ステップ144、ステップ150、ステップ156)、カーソルの指定位置に表示されるオブジェクトについて処理の実行が指示される。具体的には、コマンド生成部50がコマンドをマウスドライバ52に出力する際、カーソルの指定位置の情報をコマンドに含ませて出力する。
【0163】
しかしながら、第2の実施の形態で示した例のように、x、y座標値に許容範囲を設けると、LED10の動きの中でカーソルの指定位置が変化する場合が発生する。
【0164】
この場合には、動きの中の複数の指定位置のどの位置の情報をコマンドに含ませて出力するかを予め設定しておく必要がある。
【0165】
例えば、ダブルクリックの動きにおいて、LED10の1回目のクリックの位置(図8ではB0点或いはB1点の位置)と2回目のクリックの位置(図8ではB2点或いはB3点の位置)が異なる場合には、どの位置の情報をマウスドライバ52に出力するかを予め設定しておく必要がある。一般的には、1回目のクリックの位置が指示入力者の指定したい位置である場合が多いことから、該位置の情報をコマンドに含めるようにしてもよい(以下、この処理を位置ロックと呼称する)。この場合には、1回目のクリックの位置の情報をコマンドを出力するまでRAM38の所定の領域に記憶しておき、コマンド出力の際に、該所定の領域から該位置の情報を読み出して用いる処理が必要となる。
【0166】
この場合には、x、y座標値の変化が許容範囲内の場合に限るが、カーソルの表示位置を1回目のクリックの位置に固定しておき、指示入力者に該位置を認識させるようにすることもできる。
【0167】
しかしながら、ドローイングソフト等で連続する線分を描画して図面を作成したりする場合には、常に最新のx、y座標値を用いるようにすることが好ましい。この場合には、最新のx、y座標値をコマンドに含めるようにすればよいため、位置ロックの場合と異なり、記憶されている位置の情報を読み出すような特別な処理は必要ない。
【0168】
また、位置ロックするか否かについて予め設定しておいてもよいが、実行中のプロセスに応じて位置ロックするか否かを判断するようにしてもよい。
【0169】
本実施の形態では、実行中のプロセスに応じて判断する例について図11を参照しながら説明する。
【0170】
ステップ200では、パソコン30で実行中のプロセスが位置ロック禁止のプロセスであるか否かが判断される。例えば、上述のように、実行中のプロセスがドローイングソフトでの描画プロセスである場合には、位置ロック禁止と判断される。
【0171】
ステップ200で、肯定判断された場合には、最新の位置情報を用いればよいため、ステップ204に移行し、判断した動きに対応付けられた処理の実行を指示する。この場合には、コマンド生成部50が、最新の位置の情報をコマンドに含めてマウスドライバ52に出力する。
【0172】
ステップ200で、否定判断された場合には、ステップ202で、RAM38の所定の領域に記憶しておいた、すなわちロックした位置情報(例えば、ダブルクリックの動きの場合であれば、1回目のクリックの位置の情報)が読み出される。ステップ204で、判断した動きに対応付けられた処理の実行を指示する。この場合には、コマンド生成部50が、読み出した位置の情報をコマンドに含めてマウスドライバ52に出力する。
【0173】
なお、RAM38に位置の情報を記憶しておくタイミングは、予め設定しておくことができる。例えば、ダブルクリックの動きであれば、図8におけるB0点からB4点までのいずれの点を記憶しておくかを設定しておくことができる。
【0174】
以上説明したように、LED10の動きの中のいずれかの位置情報を指定してコマンドを出力することによって、動きの中でカーソルの指定位置が変化した場合であっても、適切に処理することができる。
【0175】
[第4の実施の形態]
本実施の形態では、予め設定された動きが、所定の時間静止している状態として設定されている場合の処理について説明する。すなわち、速度や加速度ではなく、時間に基づいて動きを判断する。
【0176】
なお、本実施の形態の指示入力処理システムの構成は第1の実施の形態と同様であるため、説明を省略する。
【0177】
以下、予め設定されているダブルクリックの動きが、第1の実施の形態で示したクリックの動きと、クリックの動きの後に所定時間静止している状態とにより構成されている場合を例に挙げて説明する。なお、本実施の形態においても、第2の実施の形態と同様に許容範囲を設け、LED10の位置の変化が許容範囲以内であれば静止していると判断する。
【0178】
クリック処理(図5のステップ114)までの流れは、第1の実施の形態と同様であるため、説明を省略する。ただし、本実施の形態では、タイマT2を使用しないため、図5のステップ102では、タイマT1のみスタートさせる。
【0179】
ステップ114以降の本実施の形態の処理について、図12のフローチャートを用いて説明する。
【0180】
ステップ300で、タイマT1をリセットしてスタートさせる。
【0181】
ステップ302で、タイマT1が予め設定されている時間の閾値Tth未満であるか否かを判断する。Tthは、予め設定されている静止時間の閾値である。
【0182】
ステップ302で、T1<Tthであると判断した場合には、ステップ304で、LED10が1回目のクリック位置から許容範囲を越えた位置に移動したか否かを判断する。ここで、否定判断した場合には、ステップ302に戻る。また、肯定判断した場合には、LED10の動きは、静止していない状態であるため、ダブルクリックの動きには対応していないと判断し、ステップ308に移行し、タイマT1をリセットして、待機状態に戻る。
【0183】
ステップ302で、T1≧Tthであると判断した場合には、LED10が所定時間静止している状態であるため、ダブルクリックの動きに対応していると判断し、ステップ306に移行し、ダブルクリック処理を行う。
【0184】
ステップ306の後は、ステップ308に移行し、タイマT1をリセットして、待機状態に戻る。
【0185】
以上説明したように、予め定められた動きに、所定の時間静止している状態を含め、時間を用いてLED10の動きを判断するようにしたため、パソコン30の処理量が軽減し、容易にLED10の動きを判断できる。指示入力者の操作も比較的容易となる。
【0186】
[第5の実施の形態]
第4の実施の形態では、ダブルクリックの動きを時間に基づいて判断する例について説明したが、本実施の形態では、ダブルクリックのみならず、クリックの動きについても、時間に基づいて判断する例について説明する。
【0187】
本実施の形態の指示入力処理システムの構成は第1の実施の形態と同様であるため、説明を省略する。
【0188】
ここでは、ディスプレイ42にアイコンが表示され、該アイコンを処理の対象として指定する場合を例に挙げて説明する。また、クリックの動きは、所定時間静止している状態として設定され、ダブルクリックの動きは、クリックの動きから、さらに所定時間静止している状態として設定されている。LED10の動きがクリックの動きと判断された後に、LED10がゆっくりと移動する状態が、ドラッグの動きとして設定されている。更に、ドラッグ処理中に、所定の加速度及び速度が発生した状態が、ドロップの動きとして設定されている。
【0189】
なお、静止している時間の閾値は任意に設定することが可能である。
【0190】
図13は、パソコン30のCPU34により行われる、指示入力処理のメインルーチンを示したフローチャートである。
【0191】
ステップ400では、カーソルの指定位置がアイコンの表示位置に一致しているか否かを判断する。ここで、一致していないと判断した場合には、待機状態に戻る。一致していると判断した場合には、ステップ402に移行し、一致したと判断してから、カーソルの位置が移動しない状態で所定時間経過したか否かを判断する。
【0192】
ステップ402で、否定判断した場合には、待機状態に戻る。
【0193】
ステップ402で、肯定判断した場合には、LED10の動きはクリックの動きに対応するため、ステップ404に移行し、クリック処理を行う。
【0194】
ステップ406で、クリック処理時のカーソルの表示位置(ここでは指定位置に同じ)と、現在のカーソルの表示位置が一致しているか否かを判断する。
【0195】
ステップ406で、肯定判断した場合には、ステップ408で、所定時間経過したか否かを判断する。ステップ408で否定判断した場合には、ステップ406に戻る。ステップ408で肯定判断した場合には、クリックの動きからさらに所定時間静止している状態であり、LED10の動きはダブルクリックの動きに対応するため、ステップ410に移行し、ダブルクリック処理を行う。
【0196】
一方、ステップ406で、クリック処理時のカーソルの表示位置と、現在のカーソルの表示位置が一致していないと判断した場合には、ステップ412に移行し、検出した速度の絶対値(ここではz軸上のプラス方向或いはマイナス方向のいずれの方向であってもよい)が閾値V0未満であるか否かを判断する。
【0197】
ステップ412で、速度<V0であると判断した場合には、LED10がゆっくりと移動した状態であるため、ステップ414に移行し、ドラッグ処理を行う。
【0198】
次に、ステップ416で、加速度が閾値A0を越えたか否かを判断する。
【0199】
ステップ416で、加速度≦A0であると判断した場合には、LED10がゆっくりと移動している状態が継続しているため、ステップ414に戻り、ドラッグ処理を継続する。
【0200】
ステップ416で、加速度>A0であると判断した場合には、ステップ418に移行し、速度が閾値V0を越えたか否かを判断する。
【0201】
ステップ418で、速度≦V0であると判断した場合には、LED10がゆっくりと移動している状態が継続しているため、ステップ414に戻り、ドラッグ処理を継続する。
【0202】
ステップ418で、速度>V0であると判断した場合には、LED10の動きがドロップの動きに対応しているため、ステップ420に移行し、ドロップ処理を行う。
【0203】
また、ステップ412で、速度≧V0であると判断した場合には、LED10の動きはいずれの動きにも対応していないため、何もせずに終了する。
【0204】
以上説明したように、LED10の動きにより表示されるカーソルが所定時間同じ位置に表示されている場合(静止している場合)に、該位置のアイコンが選択されたり、あるいはオープンされるようにすることが可能である。
【0205】
本実施の形態では、x、y座標値の許容範囲についての判断は省略しているが、本実施の形態においても、第2の実施の形態と同様に許容範囲を設け、LED10の位置の変化が許容範囲以内であればステップ406でクリック処理時のカーソルの表示位置と現在のカーソルの表示位置が一致している(すなわち、静止している)と判断するようにしてもよい。
【0206】
この際には、カーソルの表示位置の変化(x、y座標値)の許容範囲を、例えば(±5x3/100mm)と設定することも好適である。また、本実施の形態では、ドラッグの動きを判断するために速度を用いる例について説明したが、クリックやダブルクリックの動きを判断するための許容範囲を第1の許容範囲とし、ドラッグの動きを判断するための第2の許容範囲(第1の許容範囲よりも広い範囲)を第1の許容範囲とは別に設け、カーソルが第1の許容範囲を越えて移動し、第2の許容範囲内に所定時間とどまっている状態であれば、ドラッグの動きと判断するようにすることもできる。
【0207】
また、所定時間内にLED10のz座標値が減少する方向に移動した場合、すなわち、LED10が3D計測装置に近づく方向に移動した場合にもドラッグを開始させるようにすることも好適である。
【0208】
以上説明したように、時間、加速度、速度の順序(或いは時間のみ)でアルゴリズムを構成することも可能である。
【0209】
これにより、パソコン30の処理量が軽減し、容易にLED10の動きを判断できる。指示入力者の操作も比較的容易となる。
【0210】
[第6の実施の形態]
本実施の形態では、クリックやダブルクリック等の動きを示す3次元位置の時系列の情報(以下時系列パターンと呼称する)を、HDD46或いはROM36等に記憶しておき、該時系列パターンを用いて、LED10の動きを判断する例について説明する。本実施の形態の指示入力処理システムの構成も第1の実施の形態と同様であるため、説明を省略する。
【0211】
コマンド生成部50は、3D計測装置20から計測された3次元位置情報を所定の時間毎に入力する。コマンド生成部50は、入力された位置情報を順にRAM38の所定の領域に記憶していき、LED10の時系列の位置情報を得る。
【0212】
入力された位置情報を記憶する領域は、例えば、リング状のデータ構造を有するようにすることができる。新たに入力された3次元位置情報は、リング状の記憶領域の最も古いデータを記憶した領域に上書きされる。
【0213】
図14は、所定時間毎に行われる、位置情報を記憶するための処理ルーチンを示すフローチャートである。
【0214】
ステップ500で、3D計測装置20から3次元位置情報を取り込む。
【0215】
ステップ502で、取り込んだ3次元位置情報を、RAM38中の最も古いデータを記憶した領域に上書きする。
【0216】
これにより、3次元位置情報の時系列のデータが得られる。
【0217】
図15は、所定時間毎に行われる、時系列パターンを用いて指示入力処理を行うための指示入力処理ルーチンを示したフローチャートである。この指示入力処理ルーチンのプログラムは、第1の実施の形態と同様に、HDD46等の記憶媒体に記憶されており、CPU34により実行される。
【0218】
ステップ600では、RAM38から現時点から所定の時間Ta前までの時系列の3次元位置情報を取り込む。
【0219】
ステップ602では、pに0をセットする。pは、予め記憶されている全ての時系列パターンと取り込んだ位置情報により表される軌跡とを順にマッチングさせていくためのカウンタである。
【0220】
ステップ604では、pをインクリメントする。
【0221】
ステップ606では、記憶されている第p番目の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる。
【0222】
ここで、なお予め記憶されている時系列パターンの例を図16及び図17に示す。
【0223】
図16は、クリックの動きを示す時系列パターンの例であり、図17は、ダブルクリックの動きを示す時系列パターンの例である。本実施の形態では、例えばこれらの時系列パターンを、予め取り込んである軌跡パターンとマッチングさせて、LED10の動きがいずれの時系列パターンが示す動きに対応するかを判断する。
【0224】
ステップ608では、マッチング結果をRAM38の所定の領域に記憶する。
【0225】
例えば、その相似性をスケーリングや最小二乗法等の手法を用いて数値化し、これを第p番目の時系列パターンとのマッチング結果として記憶するようにしてもよい。
【0226】
ステップ610では、カウンタpと、予め記憶されている時系列パターンの総数p0とを比較し、p>p0であるか否かを判断する。p≦p0であると判断した場合には、ステップ604に戻り、pをインクリメントして、次の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる処理を繰り返す。
【0227】
ステップ610で、p>p0であると判断した場合には、取り込んだ位置情報により表される軌跡と全ての時系列パターンとのマッチングが終了したため、ステップ612に移行し、全てのマッチング結果から最も相似性の高い時系列パターンを選択する。
【0228】
次に、ステップ614で、取り込んだ位置情報から、極大値、極小値を決定する。具体的には、選択した時系列パターンがクリックの動きを示す時系列パターンであれば、1つの極大値と1つの極小値を決定する。選択した時系列パターンがダブルクリックの動きを示す時系列パターンであれば、1つの極大値と2つの極小値を決定する。
【0229】
ステップ616では、極大値及び極小値を基準にして時系列の位置情報を分割する。例えば、LED10の動きが図8に示される動きであれば、z座標値の2つの極小値及び1つの極大値から時系列の位置情報を4分割する。すなわち、B4点からB3点まで、B3点からB2点まで、B2点からB1点まで、B1点から時系列の位置情報の終わりまで、の4つのデータに分割する。
【0230】
ステップ618では、分割されたそれぞれのデータについて、速度と加速度を計算する。LED10の移動方向によって、速度や加速度の符号が変わるが、ここでは絶対値だけを見れば充分である。
【0231】
速度の計算は様々な方法が考えられるが、第1の実施の形態で示したように、分割されたデータのz座標値の差分を、時間の差分で割ることにより求めてもよいし、任意の時間枠を設け、該時間枠内の任意の時刻でのz座標値と、該時刻から該時間枠分ずれた時刻のz座標値との差分を求め、該時間枠で割ることにより求めることもできる。
【0232】
加速度については、例えば、以下のように求めることができる。分割されたデータ内で連続する位置情報の差分をとり、新たな時系列データを生成する。生成した時系列データに対して、任意の時間軸上の枠Tmを設け、その枠Tm内の任意時刻の時系列データと、該時刻から該枠Tm分だけずれた時刻の時系列データとの差分を求め、それを枠Tmで割れば、加速度が求められる。
【0233】
なお、速度や加速度を求める手法は特に限定されず、どのような手法を用いてもよい。
【0234】
ステップ620で、求めた速度及び加速度に基づいて、LED10の動きを検証する。
【0235】
具体的には、各分割されたデータについての各加速度と速度が、予め設定した閾値を越えているか否かを判断する。ここで、1つでも閾値を越えていないと判断した場合には、検証結果はNGとなる。全ての加速度及び速度が閾値を越えていると判断した場合には、検証結果はOKとなる。
【0236】
図18は、クリックの動きにおける速度の状態の例を示しており、図19は、ダブルクリックの動きにおける速度の状態の例を示している。本図では速度を絶対値で表している。図示されるV0は速度の閾値である。また、ポイントをわかりやすくするため、速度を単純な山形の形状で表している。
【0237】
図示されるように、クリックでは、2つの分割データの各速度が閾値を越えれば検証結果はOKとなる。ダブルクリックでは、4つの分割データの各速度が閾値を越えれば検証結果はOKとなる。
【0238】
ステップ622で、検証結果がOKか否かを判断する。検証結果がNGであると判断した場合には、LED10の動きは、選択した時系列パターンが示す動きに対応していないため、そのまま終了する。
【0239】
ステップ622で検証結果がOKであると判断した場合には、ステップ624に移行し、選択した時系列パターンが示す動きに対応付けられた処理の実行を指示する。
【0240】
なお、ステップ624の具体的な処理は、第1の実施の形態の、クリックやダブルクリック等の動きに対応付けられた処理の実行を指示する各ステップ(ステップ114,ステップ144、ステップ150、ステップ156)と同様であるため、説明を省略する。
【0241】
なお、分割されたデータは、各分割データ毎に順次速度及び加速度を計算して閾値と比較していき、ある分割データについて閾値を越えなかったと判断した場合には、残りの分割データに関する速度及び加速度の計算はせずにただちに処理を終了するようにしてもよい。
【0242】
また、時系列パターンを選択する方法は、上述した例に限定されず、以下に示す方法を採用することもできる。例えば、クリックやダブルクリックの動きを示す時系列パターンの特徴を、予め記憶しておく。
【0243】
例えば、クリックの動きを示す時系列パターンについては、z座標値において1つの極小値が存在するという特徴を予め記憶しておく。また、ダブルクリックの動きを示す時系列パターンについては、z座標値において2つの連続する極小値が存在するという特徴を記憶しておく。
【0244】
これにより、取り込んだ位置情報により表される軌跡が、該特徴を有しているか否かを判断して、マッチングする。具体的には、取り込んだ時系列の位置情報により表される軌跡において、1つの極小値のみ存在すると判断した場合には、クリックの動きを示す時系列パターンを選択するようにし、2つの連続する極小値が存在すると判断した場合には、ダブルクリックの動きを示す時系列パターンを選択することができる。
【0245】
このように、速度及び加速度に加え、時系列パターンを用いて、LED10の動きを判断するようにしたため、より精度高く動きを判断することができる。
【0246】
[第7の実施の形態]
本実施の形態では、速度及び加速度を計算して検証する処理を行わず、時系列パターンのみでLED10の動きを判断する例について説明する。本実施の形態の指示入力処理システムの構成も第1の実施の形態と同様であるため、説明を省略する。
【0247】
ここでは、3D計測装置20がLED10の発光を認識するための領域を、3D計測装置20の前面の直方体として定義する。
【0248】
図20は、時系列パターンの一例であり、3D計測装置20の前面に直方体として定義されている認識領域の中心付近(F)から、直線的に直方体の上面(E)、または左面、或いは右面を通りすぎて非認識領域(G)に移動する動きを示している。
【0249】
このような時系列パターンでは、以下の特徴が挙げられる。
【0250】
x、y、z座標値の時系列データの変化は、単調変化である。LED10が認識領域外に移動することから、3D計測装置20が認識不可能となる状態が発生する。
【0251】
従って、LED10がこのような特徴を有する動きを示した場合には、この時系列パターンに該当すると判断することができる。
【0252】
この時系列パターンが認識された場合に、例えば、本システムをシャットダウンさせるようにしてもよい。
【0253】
図21も、時系列パターンの一例であり、認識領域において、LED10を一時停止させ、その後、認識領域内で円弧を描く動きを示している。
【0254】
この円弧を描く動き(例えば、右回りで、下から上に動かして、また下に戻す動き)では、最初の一時停止の位置から所定の許容範囲内に次の停止位置があるという特徴がある。
【0255】
更に、3D計測装置20に向かって左上角を原点の0とし、原点から右方向を+方向とするx軸、下方向を+方向とするy軸、手前に向かう方向を+方向とするz軸によりx、y、z座標系を定義した場合、以下の特徴が挙げられる。
【0256】
2つの停止位置の間のx座標値は、単調減少、極小、単調増加、となるように変化する。
【0257】
2つの停止位置の間のy座標値は、単調減少、極小、単調増加、極大、単調減少、となるように変化する。
【0258】
従って、この区間で、x座標値とy座標値がこれらの特徴を同時に満たすならば、この時系列パターンに該当すると判断することができる。この時系列パターンが認識された場合には、例えば、ディスプレイの画面全体を拡大表示する処理が実行されるようにしてもよい。
【0259】
また、表示を元に戻す処理の実行を指示するために、円弧の描く方向を左回りとする時系列パターンを別途設定するようにしてもよい。更に、円弧を回転する度に、表示を所定の拡大率、縮小率で変化させるようにしても良い。また、円弧の動きをx−y軸平面上の動きではなくx−z軸平面上の動きとすることもできる。
【0260】
なお、空中に円弧を描く際、最初の停止位置から再び正確に同じ位置に手を戻すことは比較的困難なため、最初の停止位置と次の停止位置について、適宜、許容範囲を設けるようにすることが好適である。
【0261】
[第8の実施の形態]
本実施の形態では、指示入力者がLED10の動きの状態を認識できるように、速度に基づいてカーソルの表示状態を変化させたり、音声を発生させたりする例について説明する。
【0262】
本実施の形態では、一般的なカーソルとは別に拡張カーソルを表示する。
【0263】
ここで、拡張カーソルについて説明する。パソコン30のディスプレイ42に表示されるデスクトップ上で、一般的なカーソルがオブジェクトを指定する点(前述の指定位置に相当する)を含む小領域を円弧などで囲い、改めて小ウインドウとして表示したものである。
【0264】
図22(a)及び図22(b)に示されるように、指定位置30を中心とする円形の内部が小ウィンドウ(拡張カーソル)72に表示されている。一般的なカーソル74は、拡張カーソル72の内部、特に中心部に重ねて表示されている。この拡張カーソル32は、OS54がイメージドライバ56を用いて表示する。
【0265】
本実施の形態では、第1の実施の形態において説明した表示処理ルーチンに代えて、図23で示される処理ルーチンを実行する。本ルーチンは、所定時間毎に実行される。
【0266】
ステップ700で、3次元位置情報を取り込む。
【0267】
ステップ702で、速度を検出する。検出方法は、第1の実施の形態と同様であるため、ここでは説明を省略する。
【0268】
ステップ704で、検出した速度Vkが予め設定されている閾値Vthを越えたか否かを判断する。ここで肯定判断した場合には、ステップ706に移行し、拡張カーソル72のサイズを拡大する。更にステップ708で、拡張カーソル72内の画像の拡大率を検出した速度Vkの値に応じてアップさせる。更にステップ710で、速度に応じた音声をスピーカ44から発生させる。
【0269】
図22(a)は、拡張カーソル72のサイズを拡大し、拡張カーソル72内の画像の拡大率をアップした状態を示している。
【0270】
ステップ712では、3次元位置情報に応じて、カーソル74及び拡張カーソル72の表示位置を移動する。
【0271】
一方、ステップ704で否定判断した場合には、ステップ712に移行し、カーソル移動処理のみを行う。
【0272】
図22(b)は、速度が十分でない場合の拡張カーソルの状態を表している。図示されるように、拡張カーソル72の半径は最小になっており、円形内の画像も背景と同じ、即ち拡大率が1となっている。
【0273】
このように、拡張カーソル72を速度が充分でないときは小さなサイズで表示し、速度があがるにつれてそのサイズを大きくするようにすれば、指示入力者は速度を認識しながら、LED10を装着した手を動かすことができ、指示入力が容易となる。
【0274】
なお、拡張カーソル72を常に表示せず、速度が所定以上であれば表示し、速度が極端に減ると表示しないように制御することもできる。逆に速度が所定以下であれば表示し、速度が極端に増えると表示しないようにすることも可能である。
【0275】
また、上記ステップ710で説明したように、速度に応じて固有な音を発生させれば、指示入力者の操作の助けとなり、目の不自由な方にとって好適である。これにより、どの程度の速度で手を動かせばよいかを指示入力者に認識させるようにすることができる。
【0276】
更に、速度に応じてカーソル74や拡張カーソル72の色相などの色を変化させたりすることもできる。また、こうした表示状態の変化の設定や、拡張カーソルのサイズ(例えば、半径等)を指示入力者が任意に設定できるようにすることもできる。
【0277】
以上、各実施の形態で説明したように、LED10の動きに伴う速度及び加速度に基づいて、LED10の動きを判断するようにしたため、3D計測装置20がLED10の発光を認識できる領域内で、3D計測装置20からの距離に関わらず、クリック、ダブルクリック、ドラッグ等の操作を、機械的メカニズムを使わずに行うことが可能となる。
【0278】
また、本発明は、上述した実施の形態に限定されず、パソコンの操作だけでなく、例えば、複写機や金融機関のATM等のタッチパネルの操作に適用することも可能である。これにより、タッチパネルの操作を画面に触れずに行うことができる。
【0279】
また、本発明をスイッチのON/OFF操作等に適用することも可能である。
【0280】
【発明の効果】
本発明は、発光手段の動きに伴う速さに関する物理量に基づいて、発光手段の動きが予め定められた動きに対応するか否かを判断し、該予め定められた動きに対応すると判断した場合には、該予め定められた動きに対応付けられた処理の実行を指示するようにしたため、機械的操作や比較的細やかな操作を必要とせずに指示入力できる、という効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコンを含む指示入力システムの構成を示す図である。
【図2】パソコンの具体的な構成を示した図である。
【図3】パソコン本体の構成を機能的に示した図である。
【図4】クリック、ダブルクリック、ドラッグ・アンド・ドロップの各指示動作の一例を具体的に示した図である。
【図5】パソコンのCPUにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図6】パソコンのCPUにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図7】パソコンのCPUにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図8】ダブルクリックの動きに対応するLEDの動きの一例を示した図である。
【図9】表示処理ルーチンを示すフローチャートである。
【図10】第2の実施の形態における、指示入力処理のメインルーチンの一部を示すフローチャートである。
【図11】第3の実施の形態における、実行中のプロセスに応じて位置ロックするか否かを判断する処理ルーチンを示すフローチャートである。
【図12】第4の実施の形態における指示入力処理のメインルーチンの一部を示すフローチャートである。
【図13】第5の実施の形態における指示入力処理のメインルーチンを示したフローチャートである。
【図14】第6の実施の形態における、位置情報を記憶するための処理ルーチンを示すフローチャートである。
【図15】第6の実施の形態における、時系列パターンを用いて指示入力処理を行うための指示入力処理ルーチンを示したフローチャートである。
【図16】クリックの動きを示す時系列パターンの例である。
【図17】ダブルクリックの動きを示す時系列パターンの例である。
【図18】クリックの動きにおける速度の状態の例を示した図である。
【図19】ダブルクリックの動きにおける速度の状態の例を示した図である。
【図20】第7の実施の形態における時系列パターンの一例である。
【図21】第7の実施の形態における時系列パターンの一例である。
【図22】図22(a)は、拡張カーソルのサイズを拡大し、拡張カーソル内の画像の拡大率を増加した状態を示した図であり、図22(b)は、速度が十分でない場合の、拡張カーソルの状態を示した図である。
【図23】第8の実施の形態における処理ルーチンを示したフローチャートである。
【符号の説明】
10 LED
20 3D計測装置
30 パソコン
34 CPU
36 ROM
38 RAM
40 I/O
42 ディスプレイ
44 スピーカ
46 HDD
50 コマンド生成部
【発明の属する技術分野】
本発明は、指示入力装置、指示入力方法、及びプログラムに関し、特に、発光手段の位置情報に基づいて指示入力する指示入力装置、指示入力方法、及びプログラムに関するものである。
【0002】
【従来の技術】
パソコン等に対して指示入力するためのデバイスとして、従来より2次元マウスが広く用いられている。2次元マウスはx−y座標値を相対座標値としてパソコンに指示入力する。近年、この2次元マウスを用いて3つ目の座標値を入力する技術が提案されている。
【0003】
例えば、発光体としてLEDを指に装着し、LEDからの光を受光する受光部をパソコンの画面の上部に取付けることにより、容易に3次元マウスが達成される(例えば、特許文献1参照。)。ここで用いられるセンサは、光源のセンサに対する角度を求め、三角測量の原理により光源の3次元位置を求めるものである。LEDは光源としてのパワーをパソコンから受け取り、またマウスの基本動作であるクリックなどのシグナルは有線を通してパソコンの基本ソフトに送られる。即ち、発光体のそばに指で押すことのできるスイッチが装備されている。
【0004】
また、2次元上の2つのボールを回転させることによって、x、y軸方向の移動量を入力できるのみならず、角度や回転角も入力でき、z軸方向に対する入力も可能となるポインティングデバイス(例えば、特許文献2参照。)や、第一の方向に光変換素子を配列した第1の光センサアレイと、第1の方向とは別の第二の方向に光変換素子を配列した第2の光センサアレイとが移動するときに両者の出力変化に応じた信号を生成し、それにより(カーソルなどの)移動量や移動方向を決定する非接触方式の位置検出装置(例えば、特許文献3参照。)が知られている。
【0005】
さらに、指標をCCDカメラで認識してパソコンなどに対するコマンドとして解釈するリモコン装置(例えば、特許文献4参照。)や、電子ペンの中に指で回転されるロータリースイッチが設けられ、その回転度合いによってグラフィカルパラメター(線分の太さ、色、陰影、グレイスケール)の変化の度合いを決定する座標入力用電子ペン(例えば、特許文献5参照。)や、ユーザの手首に装着されたRFIDの動きをアンテナにより認識させてから、RFIDの動きのパターンを他のデバイスへの入力コマンドとして解釈する指示入力システム(例えば、特許文献6参照。)が知られている。
【0006】
また、米国Gyration Inc.社のGyromouseは、オートジャイロを内臓しており、空中操作でレーザーの方向を変えることができるポインティングデバイスであるが、重量が比較的大きく、大きさもジャイロのために比較的大きく、また多少高価である。
【0007】
さらに近年、カメラのシャッタ操作における半押しの概念を応用した、パソコンのキーボードで、カメラのシャッタのように強く押さないと文字が入力されないという特性を生かし、キーボードとノートバッドを重ねたデバイスが試作された。
【0008】
また、本出願人により、五感の少なくとも1つに訴えるようなフィードバック(焦点メタファーや色相等の変化)によって、画面の前面に広がる3次元空間上の分割された複数の領域の各境界に対する発光手段の通過状態をユーザに認知させ、機械的メカニズムを利用せずに、発光手段の各領域の境界に対する通過の仕方に応じて、クリック、ダブルクリック、ドラッグなどの2次元マウスの機能を実行することができる3次元指示入力装置が提案されている(特願2003−96366号。)。
【0009】
【特許文献1】
特開平10−9812号公報
【特許文献2】
特開平5−150900号公報
【特許文献3】
特開平11−24832号公報
【特許文献4】
特開平11−110125号公報
【特許文献5】
特開2000−47805号公報
【特許文献6】
特開2001−306235号公報
【0010】
【発明が解決しようとする課題】
しかしながら、上述した従来の3次元マウスは、発光体のそばに装備されたスイッチを指で押すことによって操作するため、2次元マウスと同様に機械的操作及びそれを実現する部品を必要とする。また、上述した従来のポインティングデバイスや指示入力システム等の他の指示入力デバイスも同様である。
【0011】
さらに、米国Gyration Inc.社のGyromouse Presenterも、クリック等の操作は通常の2次元マウス同様、指による機械的操作を必要としている。また、キーボードとノートバッドを重ねたデバイスでも、同様である。
【0012】
すなわち、従来の指示入力デバイスは、ボタンやスイッチ等を押下するような比較的細かい操作が必要なため、機械的操作を行うことが比較的困難な人にとっては、使い勝手が悪い。
【0013】
また、本出願人が提案した3次元指示入力装置では、3次元空間を複数の領域に分割するための各境界の位置が固定されているために、ユーザは発光手段を装着した手や指を各境界の位置に合うような位置に移動させて、各境界を確認しながら手や指を動かさなくてはならないため、細やかな操作が必要となる。
【0014】
本発明は、上述した事実に鑑みてなされたものであり、機械的操作や比較的細やかな操作を必要とせず、使い勝手を向上させた指示入力装置、指示入力方法、及びプログラムを提供することを目的とする。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明の指示入力装置は指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力手段と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出手段と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断手段と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示手段と、を含んで構成されている。
【0016】
発光手段は、指示入力者に装着可能であり、指や手などに装着されることが好ましい。発光手段は、光を発するものであれば特に限定されず、例えばLEDとすることができる。計測手段は、発光手段から発光された光の受光状態に基づいて発光手段の位置情報を計測する。
【0017】
入力手段は、該発光手段の位置情報を入力する。位置情報は、例えば、3次元位置情報のx、y、z軸上の位置情報であってもよいし、そのうちの1つ、例えばz軸上の位置情報のみであってもよい。
【0018】
検出手段は、入力手段により入力された位置情報に基づいて、発光手段の動きに伴う速さに関する物理量を検出する。
【0019】
判断手段は、検出手段により検出された速さに関する物理量に基づいて、発光手段の動きが予め定められた動きに対応するか否かを判断する。例えば、速さに関する物理量に対する閾値を定めておき、該閾値を越えた場合に、発光手段の動きが予め定められた動きに対応すると判断するようにしてもよい。
【0020】
なお、予め定められた動きは、1つであってもよいし、複数あってもよい。また、複数の細かな動きにより構成された動きであってもよい。
【0021】
指示手段は、判断手段により発光手段の動きが予め定められた動きに対応すると判断された場合に、該予め定められた動きに対応付けられた処理の実行を指示する。
【0022】
従って、本発明によれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【0023】
本発明に係る指示入力装置は、更に、各々異なる複数の予め定められた動きを示す動き情報を記憶する記憶手段を備え、前記判断手段は、前記記憶された複数の動き情報から前記発光手段の動きに対応する少なくとも1つの動き情報を選択する選択手段と、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する検証手段と、を含んで構成されることもできる。
【0024】
記憶手段は、各々異なる複数の予め定められた動きを示す動き情報を記憶する。この動き情報は、特に限定されず、例えば、予め定められた動きを特徴付ける情報としてもよい。記憶手段は、例えば、揮発性メモリであっても、非揮発性メモリであってもよい。
【0025】
判断手段は、選択手段と検証手段とを備えることができる。選択手段は、記憶手段に記憶された複数の動き情報から発光手段の動きに対応する少なくとも1つの動き情報を選択する。検証手段は、発光手段の動きが選択手段で選択された動き情報により示される動きに対応するか否かを検証する。
【0026】
本発明の前記動き情報は、位置の時系列の情報であり、前記入力手段は、前記位置情報を時系列に入力し、前記選択手段は、前記時系列に入力された位置情報に基づいて、前記少なくとも1つの動き情報を選択することもできる。
【0027】
位置の時系列の情報には、例えば、時間軸上で連続した位置の情報が含まれる。入力手段は、例えば、所定時間毎に位置情報を入力することにより、位置情報を時系列に入力することができ、選択手段は、この時系列に入力された位置情報に基づいて、少なくとも1つの動き情報を選択するが、例えば、その際、該入力された時系列の位置情報と、予め定められた動きを示す動き情報(位置の時系列の情報)とを比較して、選択してもよい。
【0028】
本発明の前記検証手段は、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証することもできる。
【0029】
本発明の前記速さに関する物理量は、前記発光手段の動きに伴う加速度及び速度の少なくとも1つとすることができる。
【0030】
本発明に係る指示入力装置は、処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する表示手段と、前記入力された位置情報の変化に対応して前記指定情報の位置が変化するように前記表示手段を制御する表示制御手段と、を更に備え、前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記指定情報により指定された前記対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示することができる。
【0031】
表示手段は、処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する。表示手段は、情報を表示するものであれば特に限定されず、テレビの画面や、パソコン等に備えられたディスプレイであってもよいし、PDAなどに備えられたタッチパネルであってもよい。処理の実行が指示される対象情報は、表示手段が、パソコン等に備えられたディスプレイ等であれば、アイコンや、フォルダ、或いは入力位置そのものとすることができる。また、対象情報を指定するための指定情報手段は、例えばパソコンで用いられるカーソルであってもよい。
【0032】
表示制御手段は、入力された位置情報の変化に対応して指定情報の位置、例えばカーソルの位置が変化するように表示手段を制御する。
【0033】
指示手段は、発光手段の動きが予め定められた動きに対応すると判断された場合に、指定情報により指定された対象情報について、予め定められた動きに対応付けられた処理の実行を指示する。
【0034】
本発明の前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された前記発光手段の動きの中で、前記指定情報により指定された対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示することができる。
【0035】
例えば、発光手段の動きの中で、その位置情報が変化する場合には、指定情報の位置もその変化に対応して変化する場合がある。例えば、指定情報がパソコンで用いられるカーソルである場合には、カーソルの表示位置が変化し、発光手段の動きの開始点と終了点でカーソルが指定する対象情報が異なる場合が発生することもある。この場合には、いずれの対象情報について予め定められた動きに対応付けられた処理の実行を指示するかを予め設定しておいてもよい。
【0036】
本発明の前記予め定められた動きは、所定の方向を1往復する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるクリックの動きとみなすことができる。
【0037】
本発明の前記予め定められた動きは、所定の時間以内の所定の方向を1往復する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【0038】
本発明の前記予め定められた動きは、所定の方向を2往復する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるダブルクリックの動きとみなすことができる。
【0039】
本発明の前記予め定められた動きは、所定の時間以内の所定の方向を2往復する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【0040】
本発明の前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるドラッグの動きとみなすことができる。
【0041】
本発明の前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、所定の時間経過してから、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きであり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断することができる。
【0042】
本発明の前記予め定められた動きは、所定の方向と逆の方向に移動する動きとすることができる。例えば、この動きを、パソコンのマウスで操作されるドロップの動きとみなすことができる。
【0043】
本発明の前記予め定められた動きは、静止している状態とすることができる。
【0044】
本発明の前記予め定められた動きは、所定の時間静止している状態であり、前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが、前記所定の時間静止している状態であるか否かを判断することができる。
【0045】
本発明の前記発光手段の動きに伴う時間を算出する算出手段を備え、前記判断手段は、前記検出された速さに関する物理量及び前記算出された時間に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断することができる。
【0046】
このように、検出された速さに関する物理量と共に、算出手段によって算出された、発光手段の動きに伴う時間を発光手段の動きの判断条件として用いることができる。
【0047】
本発明の前記判断手段が前記発光手段の動きが予め定められた動きに対応するか否かを判断する際、前記発光手段の動き又は前記予め定められた動きに許容量を持たせて判断することができる。
【0048】
例えば、指示入力者が発光手段を手に装着して動かす場合、手のふらつきによって、意図しない微細なぶれが生じる場合がある。従って、判断手段は、発光手段の動き又は予め定められた動きに許容量を持たせて判断することが好ましい。
【0049】
本発明の前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の表示状態を変化させるように制御することができる。
【0050】
本発明の前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の形状、大きさ、色の少なくとも1つを変化させるように制御することができる。
【0051】
本発明の前記表示制御手段は、前記指定情報の位置から所定の距離以内に表示される対象情報の大きさを変化させるように制御することができる。
【0052】
本発明に係る指示入力装置は、音声を出力するための発音手段と、前記検出された速さに関する物理量に基づいて発音状態を変化させるように前記発音手段を制御する音声出力制御手段と、を更に備えてもよい。
【0053】
ここで、発音手段は、音声を発生するものであればよく、例えばスピーカとすることもできる。
【0054】
本発明に係る指示入力方法は、指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて該発光手段の位置情報を計測する計測工程と、前記計測工程で計測された位置情報を入力する入力工程と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、を含む。
【0055】
本発明によれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【0056】
本発明に係るプログラムは、コンピュータに、指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力工程と、前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、を実行させる。
【0057】
本発明のプログラムをコンピュータで実行すれば、機械的操作や比較的細やかな操作を必要とせずに指示入力することができる。
【0058】
なお、本プログラムを記憶する記憶媒体は、特に限定されず、ハードディスクであってもよいし、ROMであってもよい。また、CD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【0059】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【0060】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコン30を含む指示入力システムの構成を示す図である。
【0061】
図示されるように、指示入力システムは、LED10と、3D計測装置20と、パソコン30とを備えている。
【0062】
LED10は、指示入力者の指や手等に装着される。
【0063】
3D計測装置20は、LED10から発光された光の受光状態に基づいて3次元位置を計測する。
【0064】
なお、この3D計測装置20は、LED10等の発光体から発光された光の受光状態から3次元位置を計測できる装置であれば特に限定されないが、特開平10−9812号公報に記載された位置検出の技術等を用いて構成することができる。
【0065】
図2は、パソコン30の具体的な構成を示した図である。
【0066】
図示されるように、パソコン30のパソコン32本体は、CPU34、ROM36、RAM38、及び入出力インタフェース(I/O)40を含んで構成されている。また、I/O40には、3D計測装置20と、ディスプレイ42と、スピーカ44と、ハードディスクドライブ(HDD)46とが接続されている。
【0067】
HDD46には、LED10の動きに伴う速度及び加速度に基づいて所定の処理の実行を指示するための指示入力処理ルーチンのプログラム(以下、指示入力処理プログラムと呼称)及び指示入力処理プログラムを実行するための設定情報等が記憶されている。CPU34は、指示入力処理プログラム及び設定情報をRAM38にロードして、該プログラムを実行する。
【0068】
なお、指示入力処理プログラムを記憶する記憶媒体は、HDD46に限定されず、ROM36であってもよい。また、図示は省略するが、I/O40に接続されたCD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
【0069】
図3は、パソコン本体32の構成を機能的に示した図である。
【0070】
図示されるように、パソコン本体32は、コマンド生成部50と、マウスドライバ52と、OS54と、イメージ・ドライバ56とを含んで構成されている。
【0071】
コマンド生成部50は、3D計測装置20で計測された3次元位置情報を入力して、LED10の動きに伴う速度及び加速度を検出する。更に、検出した速度及び加速度に基づいて、LED10の動きが、ボタンが装備された一般的なマウス(以下、これを2次元マウスと呼称する)におけるボタン操作、すなわち、クリック、ダブルクリック、ドラッグ・アンド・ドロップ、のいずれに対応する動きかを判断し、判断結果に対応するコマンドを生成してマウスドライバ52に出力する。
【0072】
図4は、クリック、ダブルクリック、ドラッグ・アンド・ドロップの各指示動作の一例を具体的に示した図である。
【0073】
なお、ここでは、3D計測装置20から指示入力者の手に向かう方向をz軸とし、z軸に直交する平面をx軸及びy軸からなるx−y平面として、xyz座標系を定める。また、z軸上で、3D計測装置20から離れる方向をプラスの方向とする。
【0074】
なお、パソコン30のディスプレイ42の画面と3D計測装置20の位置が一致していれば、z座標値は該画面からの距離となり、該画面をほぼx−y平面と見なすことができる。
【0075】
本実施の形態では、クリックの動きは、予め設定されている時間以内の、3D計測装置20に近づく方向(z軸のマイナスの方向)に急速に移動した後、逆の方向(z軸のプラスの方向)に急速に移動する(すなわち、z軸上を1往復する)動きとして設定されており、図ではAの動きに相当する。
【0076】
ダブルクリックの動きは、予め設定されている時間以内の、クリックの動きを連続して2回繰り返す(すなわち、z軸上を2往復する)動きとして設定されており、図ではBの動きに相当する。
【0077】
ドラッグ・アンド・ドロップの動きは、ドラッグとドロップの動きとから構成され、図ではCの動きに相当する。ドラッグは、z軸のマイナスの方向に急速に移動した後、予め設定されている時間経過後、ゆっくりとマイナス方向或いはx−y平面上を移動しする動きとして設定されている。なお、ゆっくりとマイナス方向或いはx−y平面上を移動する動きには、時間の制限はない。ドロップは、z軸のプラスの方向に急速に移動する動きとして設定されいる。
【0078】
パソコン30には、動きに伴う速度及び加速度の閾値(本実施の形態では、V0、A0)が絶対値で設定されていると共に、動きに伴う時間の閾値(本実施の形態では、T10、T20)が設定されている。コマンド生成部50は、検出した速度及び加速度と該設定されている速度及び加速度の閾値とを比較すると共に、LED10の動きに伴う時間と該設定されている時間の閾値とを比較して、LED10の動きが上述の予め設定されている動きに対応するか否かを判断する。
【0079】
なお、加速度を用いて判断することにより、LED10を急速に動かしている状態とそうでない状態、すなわち、指示入力者が意識して手を動かしている状態と、指示入力する意志がなく、自由に手を動かしている状態とを区別することができる。
【0080】
また、速度を用いて判断することにより、LED10をある程度の距離だけ動かしたことを認識でき、実際のLED10の動きを判断することができる。速度を判断材料とすることにより、3次元位置情報から移動距離自体を算出して用いる場合に比して、より小さな動きを認識することが可能となる。
【0081】
なお、図4においては、加速度の状態は実線の矢印で、速度の状態は点線の矢印で示されている。
【0082】
マウスドライバ52は、3Dマウス・コマンド生成装置50からコマンドが入力されて、OS54に出力する。
【0083】
OS54は、マウスドライバ52から入力されたコマンドを解釈して該コマンドに対応した処理を実行する。
【0084】
イメージドライバ56は、OS54の制御の下で、ディスプレイ42にLED10の動きに対応した画像を表示させるための処理を行う。
【0085】
なお、図示を省略するが、パソコン本体32にはサウンドドライバも備えられている。サウンドドライバは、OS54の制御の下で、スピーカ44にLED10の動きに対応した音声を発音させるための処理を行う。
【0086】
以下、本実施の形態における指示入力処理について説明する。
【0087】
指示入力者がLED10を装着した手を3D計測装置20の前(受光領域)で動かす。手の動きに応じてLED10の位置が変化する。3次元計測装置20は、LED10の3次元位置を所定時間毎に計測する。3次元計測装置20は、LED10の3次元位置情報を逐次パソコン30に出力する。
【0088】
図5から図7は、パソコン30のCPU34により行われる、指示入力処理のメインルーチンを示したフローチャートである。
【0089】
図8は、ダブルクリックの動きに対応するLED10の動きの一例を示した図である。
【0090】
図8において、横軸は時間軸、縦軸はz軸を表している。B0点〜B4点で示される太実線はLED10の動きの軌跡を表している。細実線矢印は加速度の状態を表し、点線矢印は速度の状態を表している。
【0091】
なお、太実線で示される時間軸上のLED10の動き、該動きに伴う加速度及び速度は、実際には非常に小さいものであるが、本図では誇張して描かれている。
【0092】
以下、図5から図7の各フローチャートを用いて、図8と対比させながら、指示入力処理について説明する。
【0093】
なお、各フローチャートでは図示は省略しているが、パソコン30は、所定時間毎に3D計測装置20からLED10の3次元位置情報を入力する。そして、入力の度に、入力された3次元位置情報に基づいてLED10の動きに伴う速度及び加速度を検出する。本実施の形態では、入力された3次元位置情報に含まれる、z座標値を用いて、z軸上での速度及び加速度を検出する。
【0094】
例えば、速度は、3次元位置情報のz座標値の差分を時間の差分で割ることにより検出し、加速度は、検出した速度を時間の差分で割ることにより検出することができる。なお、3D計測装置20から離れる方向がz軸のプラスの方向であるため、LED10を3D計測装置20から離れる方向に移動させれば、速さ及び加速度の符号は+となり、3D計測装置20に近づく方向に移動させれば、速さ及び加速度の符号は−となる。
【0095】
図5のフローチャートのステップ100で、上述のように検出した加速度に−の符号を付した値が、加速度の閾値A0を越えたか否かを判断する。
【0096】
前述したように、LED10を3D計測装置20に近づく方向に動かせば、速さ及び加速度の符号は−となる。従って、この場合には、−の符号を付すことにより速さ及び加速度は正の値となる。LED10を3D計測装置20から離れる方向に動かせば、−の符号を付すことにより速度及び加速度は負の値となる。また、前述したように、閾値V0及び閾値A0は、絶対値で設定されている。
【0097】
このことから、加速度に−の符号を付した値が、閾値A0を越えたか否かを判断することで、十分な加速度をもってLED10を3D計測装置20に近づく方向に移動させたか否かを判断することができる。
【0098】
ステップ100で、−加速度≦A0であると判断した場合には、3D計測装置20から次の3次元位置情報を入力するまで、待機状態を維持する。図8では、B0点以前の状態が待機状態に相当する。
【0099】
また、−加速度>A0であると判断した場合には(図8では、B0点に相当)、指示入力者が意志をもって手を動かした状態であるため、ステップ102に移行し、タイマT1及びタイマT2をスタートさせる。
【0100】
ここで、タイマT1は、ある方向への移動を開始してから該ある方向とは逆の方向への移動を開始するまでの時間を計時するために用いられるタイマである。タイマT1に対しては、予め閾値T10が設定されている。
【0101】
タイマT2は、ダブルクリックの動きを判断するために用いられるタイマである。タイマT2に対しては、予め閾値T20が設定されている。
【0102】
ステップ104で、速度に−の符号を付した値が、閾値V0を越えたか否かを判断する。加速度と同様に、速度にも−の符号を付して閾値V0と比較する。
【0103】
ステップ104で、−速度≦V0であると判断した場合には、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0104】
ステップ104で、−速度>V0であると判断した場合には(図8ではB1点に相当)、ステップ106に移行し、加速度が閾値A0を越えたか否かを判断する。なお、ここでは、LED10の移動方向を明瞭にするために便宜上加速度に+の符号を付す。
【0105】
ステップ106で、+加速度≦A0であると判断した場合には、ステップ108に移行し、タイマT1が閾値T10を越えたか否かを判断する。ここで、タイマT1≦T10であると判断した場合には、ステップ106に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0106】
ステップ106で、+加速度>A0であると判断した場合には、ステップ110に移行し、タイマT1が閾値T10以下であるか否かを判断する。
【0107】
ステップ110で、タイマT1>T10であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないため、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ110で、タイマT1≦T10であると判断した場合には、LED10の動きは予め設定されている時間以内の動きであるため、ステップ112に移行し、速度が、閾値V0を越えたか否かを判断する。
【0108】
ステップ112で、−速度≦V0であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないため、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。−速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているクリックの動きに対応するため、ステップ114に移行し、クリック処理を行う(図8では、B2点に相当)。
【0109】
具体的に図3の機能構成図を用いて説明すると、コマンド生成部50が、クリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。コマンド生成部50は、該コマンドを2次元マウスにおけるボタン操作によるコマンドと同様の形式で出力する。これにより、マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して適切な処理を実行することができる。
【0110】
ステップ114のクリック処理を実行した後は、図6のステップ120に移行し、タイマT1をリセットしてスタートさせる。このステップ以降の処理は、LED10の動きがダブルクリックの動きであるか否かを判断するための処理となる。
【0111】
ステップ122では、次に検出した加速度に−の符号を付した値が閾値A0を越えたか否かを判断する。−加速度≦A0であると判断した場合には、ステップ124に移行し、タイマT1が閾値T10を越えたか否かを判断する。
【0112】
ステップ124で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ124で、タイマT1≦T10であると判断した場合には、ステップ122に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0113】
ステップ122で、−加速度>A0であると判断した場合には、ステップ126に移行し、タイマT1が閾値T10以下であるか否かを判断する。
【0114】
ステップ126で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ126で、タイマT1≦T10であると判断した場合には、ステップ128に移行し、速度が閾値V0を越えたか否かを判断する。
【0115】
ステップ128で、−速度≦V0であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ128で、−速度>V0であると判断した場合には、ステップ130に移行し、タイマT1をリセットしてスタートさせる(図8では、B3点に相当)。
【0116】
ステップ132では、次に検出した加速度が閾値A0を越えたか否かを判断する。ここで、+加速度≦A0であると判断した場合には、ステップ134に移行し、タイマT1が閾値T10を越えたか否かを判断する。
【0117】
ステップ134で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT1≦T10であると判断した場合には、ステップ132に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0118】
ステップ132で、+加速度>A0であると判断した場合には、ステップ136に移行し、タイマT1が閾値T10以下であるか否かを判断する。
【0119】
ステップ136で、タイマT1>T10であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT1≦T10であると判断した場合には、ステップ138に移行し、タイマT2が閾値T20以下であるか否かを判断する。
【0120】
タイマT2は、クリックの動きがスタートしたときからの時間を計時している。閾値T20は、ダブルクリックの動きに要する時間の限度として予め設定されている。従って、タイマT2と閾値T20を比較することにより、LED10の動きがダブルクリックの動きに対応するか否かを判断することができる。
【0121】
ステップ138で、タイマT2>T20であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT2≦T20であると判断した場合には、ステップ140に移行し、速度が閾値V0を越えたか否かを判断する。
【0122】
ステップ140で、+速度≦V0であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。+速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているダブルクリックの動きに対応するため、ステップ142に移行し、ダブルクリック処理を行う(図8では、B4点に相当)。
【0123】
ダブルクリック処理もクリック処理と同様に、コマンド生成部50が、ダブルクリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して、ダブルクリックの動きに対応する適切な処理を実行することができる。
【0124】
ステップ142の後は、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0125】
なお、ダブルクリックの動きは、上述の速度、加速度、及び時間の条件を満たした動きであれば、特に図8に限定されるものではない。例えば、2回目のクリックのz軸上の始点(すなわち、B2点)は、1回目のクリックのz軸上の始点(すなわち、B0点)と同じ位置である必要はない。
【0126】
一方、図5のステップ108で、タイマT1>閾値T10であると判断した場合には、LED10の動きは予め設定されているドラッグの動きに対応するため、図7のステップ150に移行し、ドラッグ処理を行う。
【0127】
具体的には、コマンド生成部50が、クリック処理と同様に、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【0128】
なお、ドラッグ処理は、通常は、クリック処理の後に行われる処理である。例えば、クリック処理により選択されたアイコンなどのオブジェクトをドラッグ(移動)したりすることができる。
【0129】
ステップ150の後は、ステップ152に移行し、加速度が閾値A0を越えたか否かを判断する。+加速度≦A0であると判断した場合には、ステップ150に戻り、ドラッグ処理を継続する。また、+加速度>A0であると判断した場合には、ステップ154に移行し、速度が閾値V0を越えたか否かを判断する。
【0130】
ステップ154で、+速度≦V0であると判断した場合には、ステップ150に戻り、ドラッグ処理を継続する。+速度>V0であると判断した場合には、LED10の動きは予め設定されているドロップの動きに対応するため、ステップ156に移行し、ドロップ処理を行う。
【0131】
ドロップ処理もドラッグと同様に、コマンド生成部50が、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【0132】
ステップ156の後は、ステップ158に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0133】
上述した指示入力処理のステップ108では、ドラッグの動きであるか否かを判断するために閾値T10を用いているが、閾値T10とは別の閾値を設け、該閾値により判断するようにしてもよい。
【0134】
なお、本システムにおいて、クリックやダブルクリックなどの動きに対応付けられた処理の実行を指示する対象となるオブジェクト(オブジェクトには、例えばアイコン、フォルダ、ボタン、或いはデータの入力位置等が含まれる)を指定するためのカーソルをディスプレイ42に表示する処理を行うための表示処理のルーチンが上記指示入力処理のメインルーチンと同時に行われる。カーソルは、3D計測装置20で計測された3次元位置情報に含まれるx、y座標値に基づいて、ディスプレイ42のサイズに応じた位置に表示される。カーソルが指し示す位置(以下、指定位置と呼称する)に表示されるオブジェクトが、処理対象となる。実際には、カーソルの指定位置は、カーソルの表示位置に相当し、x、y座標値で表される。
【0135】
また、カーソルはOSから呼び出される現行の表示ルーチンを使うことも可能だが、ユーザ定義のカーソルや表現を表示するための該表示処理ルーチンのプログラムは、上述の指示入力処理ルーチンのサブルーチンとして、予め指示入力処理プログラムに組み込まれている。
【0136】
図9は、表示処理ルーチンを示すフローチャートである。本表示処理ルーチンは、所定時間毎に実行される。
【0137】
ステップ180では、3次元位置情報を取り込む。
【0138】
ステップ182では、3次元位置情報に応じて、カーソルの表示位置を移動する。本実施の形態では、3D計測装置20から入力された3次元位置情報に含まれるx座標値及びy座標値の変化に対応して、カーソルの表示位置を移動する。
【0139】
コマンド生成部50がコマンドをマウスドライバ52に出力する際、このカーソルの指定位置の情報をコマンドに含ませて出力する。これにより、例えばLED10の動きがクリックの動きである場合、カーソルの指定位置にアイコン等のオブジェクトが表示されていれば、該アイコンを選択する、という処理が実行される。また、アイコン等のオブジェクトが表示されていなくても、カーソルの指定位置そのものを選択する、という処理が実行される。また、カーソルの指定位置に、ボタンが表示されていれば、ボタンを押下する、という処理が実行される。
【0140】
このように、3次元位置情報に対応してカーソルを表示させることにより、カーソルの指定位置に表示されるオブジェクトについての処理を、容易に指示入力することができる。
【0141】
なお、上述した指示入力処理の流れから明らかなように、クリックのコマンドが出力されてアイコンや位置の選択が行われた後(ステップ114)、LED10をゆっくり動かした場合には(ステップ122、N、且つステップ124、Y)、待機状態に戻り、待機状態が維持されるため(ステップ100、N)、選択した状態を維持したまま、上述した表示処理ルーチンによりカーソルを移動することが可能である。
【0142】
以上説明したように、LED10の3次元位置情報を入力し、LED10の動きに伴う速度及び加速度を検出し、検出した速度及び加速度に基づいて、LED10の動きが予め設定された動きに対応するか否かを判断して、予め設定された動きに対応付けられた処理の実行を指示するようにしたため、ボタン操作等の機械的操作や比較的細やかな操作を行わずとも、指示入力することができる。
【0143】
また、時間を含めて予め設定された動きを設定し、速度及び加速度に加え、LED10の動きに伴う時間も判断材料としたため、より多くの動きを予め設定する動きとして設定できる。
【0144】
なお、本実施の形態では、速度及び加速度は3次元位置情報のz座標値の差分を用いて検出する例について説明したが、z座標値でなくとも、例えば(x、y、z)座標値から速度及び加速度を検出することも可能である。また、本実施の形態では、z座標値から検出された速度、加速度に基づいて、動きを判断する例について説明したが、他の方向、例えば、指示入力者にとっては上下方向或いは左右方向の速度、加速度に基づいて、動きを判断するようにしてもよい。その場合には、カーソルの位置を、該他の方向と直交する2次元平面上の座標値に基づいて移動させるようにすることもできる。
【0145】
また、閾値A0、V0、T10、T20を任意に変更することは可能である。例えば、試験的に指示入力者の手等にLED10を装着してその動き(3次元位置)を測定し、指示入力者の手の動きに伴う速度や加速度、時間を検出して、検出した値に基づいて閾値を設定変更することもできる。このように指示入力者に応じた閾値を設定すれば、より使い勝手が向上する。
【0146】
また、本実施の形態では、LED10の動きのみにより指示入力する例について説明したが、例えば、指示入力用のスイッチやボタン等をLED10とは別に備えておき、LED10の動きによる指示入力とボタン押下等の機械的操作による指示入力とを必要に応じて使い分けることも可能である。
【0147】
更に、上述した実施の形態では説明を省略したが、他の動き、例えば、2次元マウスで行われるマウスダウンの動き(ボタンを押下したままの状態で移動する動き)についても、それに対応する動きを予め設定しておき、速度、加速度、時間により判断して、処理の実行を指示するようにすることも可能である。
【0148】
[第2の実施の形態]
上述した第1の実施の形態では、z軸上の速度及び加速度に基づいて動きを判断する例について説明したが、LED10の動きの中でx座標値や、y座標値が変化する場合には、z軸上の速度や加速度の条件を満たしている場合であってもその動きを予め設定された動きには対応しないと判断することができる。この場合には、各動きは、各動きの開始から終了までx、y座標値が変化しない動きとして設定しておけばよい。
【0149】
しかしながら、実際に指示入力者がx、y座標値を固定して手を動かすことは困難である。従って、本実施の形態では、x、y座標値の許容範囲を設けて動きを判断する例について説明する。なお、本実施の形態の指示入力処理システムの構成は第1の実施の形態と同様であるため、説明を省略する。
【0150】
ダブルクリックの動きにおいては、例えば、第1の実施の形態における図6のステップ142に代えて、図10に示されるステップを用いることができる。
【0151】
ステップ140の後、ステップ160で、1回目のクリックの動きにおけるx、y座標値と、2回目のクリックの動きにおけるx、y座標値とが、予め設定した許容範囲内(例えば、各座標値毎に、±5x(3/100)mm以内)であるか否かを判断する。
【0152】
なお、図8において、1回目のクリックの動きにおけるx、y座標値は、図8では、B0点の位置としてもよいし、B1点の位置としてもよい。同様に、2回目のクリックの動きにおけるx、y座標値は、B2点の位置としてもよいし、B3点の位置としてもよい。
【0153】
ステップ160で、許容範囲を越えたと判断した場合には、ダブルクリック処理を行わずに、ステップ144に移行する。これにより、x座標値や、y座標値の変化が許容範囲を超えて、LED10の動きが見た目にもW字のような軌跡になる場合にはダブルクリックの動きと見なされない。
【0154】
ステップ160で、許容範囲内であると判断した場合には、LED10の動きをダブルクリックの動きであると判断し、ステップ162でダブルクリックの処理を行う。
【0155】
以上説明したように、動きに許容範囲を設けることによって、指示入力者の負担が比較的軽減される。
【0156】
なお、本実施の形態では、図8におけるB0(或いはB1)点とB2(或いはB3)点のx、y座標値が許容範囲内であるか否かを判断する例について説明したが、例えば、最初のB0点におけるx、y座標値を記憶しておき、B1点、B2点、B3点、B4点の各点を通過する際の各x、y座標値とB0点のx、y座標値との差分を各座標値について求め、許容範囲内であるか否かを判断するようにしてもよい。いずれかの点で、許容範囲を越えたと判断した場合には、ただちに待機状態に戻る。なお、B3点、B4点で許容範囲外であると判断した場合は、クリックの動きに対応付けられた処理が行われた状態を維持するようにしてもよい。
【0157】
また、本実施の形態では、x、y座標値について許容範囲を設定して動きを判断する例について説明したが、x、y方向の速度について許容範囲を設定して動きを判断するようにすることもできる。例えば、z軸方向の速度と共に、x、y方向の速度についても検出しておき、LED10の動きの判断に用いる。
【0158】
この場合には、x、y方向の速度の差が許容範囲を越えた場合には、LED10の動きが予め設定されている動きに対応しないと判断する。
【0159】
なお、x、y座標値及びx、y方向の速度の双方を用いて判断するようにしてもよいし、いずれか一方の許容範囲の設定を用いて判断するようにしてもよい。
【0160】
また、許容範囲による判断は、ダブルクリックの動きだけに限定されず、他の動き(クリックやドラッグ等の動き)についても、同様に許容範囲を設けて判断することが可能である。
【0161】
更にまた、カーソルの指定位置が指示入力者が処理対象として指定したいオブジェクト(例えば、アイコン等)から若干ずれている場合であっても、該オブジェクトが処理対象として指定されるように、x、y座標値の許容範囲を設定してもよい。これにより、細やかな操作を必要とせずに、所望の対象について処理の実行を指示することができる。
【0162】
[第3の実施の形態]
上述した第1の実施の形態では、クリックやダブルクリック等の動きに対応付けられた処理の実行が指示される場合には(ステップ114,ステップ144、ステップ150、ステップ156)、カーソルの指定位置に表示されるオブジェクトについて処理の実行が指示される。具体的には、コマンド生成部50がコマンドをマウスドライバ52に出力する際、カーソルの指定位置の情報をコマンドに含ませて出力する。
【0163】
しかしながら、第2の実施の形態で示した例のように、x、y座標値に許容範囲を設けると、LED10の動きの中でカーソルの指定位置が変化する場合が発生する。
【0164】
この場合には、動きの中の複数の指定位置のどの位置の情報をコマンドに含ませて出力するかを予め設定しておく必要がある。
【0165】
例えば、ダブルクリックの動きにおいて、LED10の1回目のクリックの位置(図8ではB0点或いはB1点の位置)と2回目のクリックの位置(図8ではB2点或いはB3点の位置)が異なる場合には、どの位置の情報をマウスドライバ52に出力するかを予め設定しておく必要がある。一般的には、1回目のクリックの位置が指示入力者の指定したい位置である場合が多いことから、該位置の情報をコマンドに含めるようにしてもよい(以下、この処理を位置ロックと呼称する)。この場合には、1回目のクリックの位置の情報をコマンドを出力するまでRAM38の所定の領域に記憶しておき、コマンド出力の際に、該所定の領域から該位置の情報を読み出して用いる処理が必要となる。
【0166】
この場合には、x、y座標値の変化が許容範囲内の場合に限るが、カーソルの表示位置を1回目のクリックの位置に固定しておき、指示入力者に該位置を認識させるようにすることもできる。
【0167】
しかしながら、ドローイングソフト等で連続する線分を描画して図面を作成したりする場合には、常に最新のx、y座標値を用いるようにすることが好ましい。この場合には、最新のx、y座標値をコマンドに含めるようにすればよいため、位置ロックの場合と異なり、記憶されている位置の情報を読み出すような特別な処理は必要ない。
【0168】
また、位置ロックするか否かについて予め設定しておいてもよいが、実行中のプロセスに応じて位置ロックするか否かを判断するようにしてもよい。
【0169】
本実施の形態では、実行中のプロセスに応じて判断する例について図11を参照しながら説明する。
【0170】
ステップ200では、パソコン30で実行中のプロセスが位置ロック禁止のプロセスであるか否かが判断される。例えば、上述のように、実行中のプロセスがドローイングソフトでの描画プロセスである場合には、位置ロック禁止と判断される。
【0171】
ステップ200で、肯定判断された場合には、最新の位置情報を用いればよいため、ステップ204に移行し、判断した動きに対応付けられた処理の実行を指示する。この場合には、コマンド生成部50が、最新の位置の情報をコマンドに含めてマウスドライバ52に出力する。
【0172】
ステップ200で、否定判断された場合には、ステップ202で、RAM38の所定の領域に記憶しておいた、すなわちロックした位置情報(例えば、ダブルクリックの動きの場合であれば、1回目のクリックの位置の情報)が読み出される。ステップ204で、判断した動きに対応付けられた処理の実行を指示する。この場合には、コマンド生成部50が、読み出した位置の情報をコマンドに含めてマウスドライバ52に出力する。
【0173】
なお、RAM38に位置の情報を記憶しておくタイミングは、予め設定しておくことができる。例えば、ダブルクリックの動きであれば、図8におけるB0点からB4点までのいずれの点を記憶しておくかを設定しておくことができる。
【0174】
以上説明したように、LED10の動きの中のいずれかの位置情報を指定してコマンドを出力することによって、動きの中でカーソルの指定位置が変化した場合であっても、適切に処理することができる。
【0175】
[第4の実施の形態]
本実施の形態では、予め設定された動きが、所定の時間静止している状態として設定されている場合の処理について説明する。すなわち、速度や加速度ではなく、時間に基づいて動きを判断する。
【0176】
なお、本実施の形態の指示入力処理システムの構成は第1の実施の形態と同様であるため、説明を省略する。
【0177】
以下、予め設定されているダブルクリックの動きが、第1の実施の形態で示したクリックの動きと、クリックの動きの後に所定時間静止している状態とにより構成されている場合を例に挙げて説明する。なお、本実施の形態においても、第2の実施の形態と同様に許容範囲を設け、LED10の位置の変化が許容範囲以内であれば静止していると判断する。
【0178】
クリック処理(図5のステップ114)までの流れは、第1の実施の形態と同様であるため、説明を省略する。ただし、本実施の形態では、タイマT2を使用しないため、図5のステップ102では、タイマT1のみスタートさせる。
【0179】
ステップ114以降の本実施の形態の処理について、図12のフローチャートを用いて説明する。
【0180】
ステップ300で、タイマT1をリセットしてスタートさせる。
【0181】
ステップ302で、タイマT1が予め設定されている時間の閾値Tth未満であるか否かを判断する。Tthは、予め設定されている静止時間の閾値である。
【0182】
ステップ302で、T1<Tthであると判断した場合には、ステップ304で、LED10が1回目のクリック位置から許容範囲を越えた位置に移動したか否かを判断する。ここで、否定判断した場合には、ステップ302に戻る。また、肯定判断した場合には、LED10の動きは、静止していない状態であるため、ダブルクリックの動きには対応していないと判断し、ステップ308に移行し、タイマT1をリセットして、待機状態に戻る。
【0183】
ステップ302で、T1≧Tthであると判断した場合には、LED10が所定時間静止している状態であるため、ダブルクリックの動きに対応していると判断し、ステップ306に移行し、ダブルクリック処理を行う。
【0184】
ステップ306の後は、ステップ308に移行し、タイマT1をリセットして、待機状態に戻る。
【0185】
以上説明したように、予め定められた動きに、所定の時間静止している状態を含め、時間を用いてLED10の動きを判断するようにしたため、パソコン30の処理量が軽減し、容易にLED10の動きを判断できる。指示入力者の操作も比較的容易となる。
【0186】
[第5の実施の形態]
第4の実施の形態では、ダブルクリックの動きを時間に基づいて判断する例について説明したが、本実施の形態では、ダブルクリックのみならず、クリックの動きについても、時間に基づいて判断する例について説明する。
【0187】
本実施の形態の指示入力処理システムの構成は第1の実施の形態と同様であるため、説明を省略する。
【0188】
ここでは、ディスプレイ42にアイコンが表示され、該アイコンを処理の対象として指定する場合を例に挙げて説明する。また、クリックの動きは、所定時間静止している状態として設定され、ダブルクリックの動きは、クリックの動きから、さらに所定時間静止している状態として設定されている。LED10の動きがクリックの動きと判断された後に、LED10がゆっくりと移動する状態が、ドラッグの動きとして設定されている。更に、ドラッグ処理中に、所定の加速度及び速度が発生した状態が、ドロップの動きとして設定されている。
【0189】
なお、静止している時間の閾値は任意に設定することが可能である。
【0190】
図13は、パソコン30のCPU34により行われる、指示入力処理のメインルーチンを示したフローチャートである。
【0191】
ステップ400では、カーソルの指定位置がアイコンの表示位置に一致しているか否かを判断する。ここで、一致していないと判断した場合には、待機状態に戻る。一致していると判断した場合には、ステップ402に移行し、一致したと判断してから、カーソルの位置が移動しない状態で所定時間経過したか否かを判断する。
【0192】
ステップ402で、否定判断した場合には、待機状態に戻る。
【0193】
ステップ402で、肯定判断した場合には、LED10の動きはクリックの動きに対応するため、ステップ404に移行し、クリック処理を行う。
【0194】
ステップ406で、クリック処理時のカーソルの表示位置(ここでは指定位置に同じ)と、現在のカーソルの表示位置が一致しているか否かを判断する。
【0195】
ステップ406で、肯定判断した場合には、ステップ408で、所定時間経過したか否かを判断する。ステップ408で否定判断した場合には、ステップ406に戻る。ステップ408で肯定判断した場合には、クリックの動きからさらに所定時間静止している状態であり、LED10の動きはダブルクリックの動きに対応するため、ステップ410に移行し、ダブルクリック処理を行う。
【0196】
一方、ステップ406で、クリック処理時のカーソルの表示位置と、現在のカーソルの表示位置が一致していないと判断した場合には、ステップ412に移行し、検出した速度の絶対値(ここではz軸上のプラス方向或いはマイナス方向のいずれの方向であってもよい)が閾値V0未満であるか否かを判断する。
【0197】
ステップ412で、速度<V0であると判断した場合には、LED10がゆっくりと移動した状態であるため、ステップ414に移行し、ドラッグ処理を行う。
【0198】
次に、ステップ416で、加速度が閾値A0を越えたか否かを判断する。
【0199】
ステップ416で、加速度≦A0であると判断した場合には、LED10がゆっくりと移動している状態が継続しているため、ステップ414に戻り、ドラッグ処理を継続する。
【0200】
ステップ416で、加速度>A0であると判断した場合には、ステップ418に移行し、速度が閾値V0を越えたか否かを判断する。
【0201】
ステップ418で、速度≦V0であると判断した場合には、LED10がゆっくりと移動している状態が継続しているため、ステップ414に戻り、ドラッグ処理を継続する。
【0202】
ステップ418で、速度>V0であると判断した場合には、LED10の動きがドロップの動きに対応しているため、ステップ420に移行し、ドロップ処理を行う。
【0203】
また、ステップ412で、速度≧V0であると判断した場合には、LED10の動きはいずれの動きにも対応していないため、何もせずに終了する。
【0204】
以上説明したように、LED10の動きにより表示されるカーソルが所定時間同じ位置に表示されている場合(静止している場合)に、該位置のアイコンが選択されたり、あるいはオープンされるようにすることが可能である。
【0205】
本実施の形態では、x、y座標値の許容範囲についての判断は省略しているが、本実施の形態においても、第2の実施の形態と同様に許容範囲を設け、LED10の位置の変化が許容範囲以内であればステップ406でクリック処理時のカーソルの表示位置と現在のカーソルの表示位置が一致している(すなわち、静止している)と判断するようにしてもよい。
【0206】
この際には、カーソルの表示位置の変化(x、y座標値)の許容範囲を、例えば(±5x3/100mm)と設定することも好適である。また、本実施の形態では、ドラッグの動きを判断するために速度を用いる例について説明したが、クリックやダブルクリックの動きを判断するための許容範囲を第1の許容範囲とし、ドラッグの動きを判断するための第2の許容範囲(第1の許容範囲よりも広い範囲)を第1の許容範囲とは別に設け、カーソルが第1の許容範囲を越えて移動し、第2の許容範囲内に所定時間とどまっている状態であれば、ドラッグの動きと判断するようにすることもできる。
【0207】
また、所定時間内にLED10のz座標値が減少する方向に移動した場合、すなわち、LED10が3D計測装置に近づく方向に移動した場合にもドラッグを開始させるようにすることも好適である。
【0208】
以上説明したように、時間、加速度、速度の順序(或いは時間のみ)でアルゴリズムを構成することも可能である。
【0209】
これにより、パソコン30の処理量が軽減し、容易にLED10の動きを判断できる。指示入力者の操作も比較的容易となる。
【0210】
[第6の実施の形態]
本実施の形態では、クリックやダブルクリック等の動きを示す3次元位置の時系列の情報(以下時系列パターンと呼称する)を、HDD46或いはROM36等に記憶しておき、該時系列パターンを用いて、LED10の動きを判断する例について説明する。本実施の形態の指示入力処理システムの構成も第1の実施の形態と同様であるため、説明を省略する。
【0211】
コマンド生成部50は、3D計測装置20から計測された3次元位置情報を所定の時間毎に入力する。コマンド生成部50は、入力された位置情報を順にRAM38の所定の領域に記憶していき、LED10の時系列の位置情報を得る。
【0212】
入力された位置情報を記憶する領域は、例えば、リング状のデータ構造を有するようにすることができる。新たに入力された3次元位置情報は、リング状の記憶領域の最も古いデータを記憶した領域に上書きされる。
【0213】
図14は、所定時間毎に行われる、位置情報を記憶するための処理ルーチンを示すフローチャートである。
【0214】
ステップ500で、3D計測装置20から3次元位置情報を取り込む。
【0215】
ステップ502で、取り込んだ3次元位置情報を、RAM38中の最も古いデータを記憶した領域に上書きする。
【0216】
これにより、3次元位置情報の時系列のデータが得られる。
【0217】
図15は、所定時間毎に行われる、時系列パターンを用いて指示入力処理を行うための指示入力処理ルーチンを示したフローチャートである。この指示入力処理ルーチンのプログラムは、第1の実施の形態と同様に、HDD46等の記憶媒体に記憶されており、CPU34により実行される。
【0218】
ステップ600では、RAM38から現時点から所定の時間Ta前までの時系列の3次元位置情報を取り込む。
【0219】
ステップ602では、pに0をセットする。pは、予め記憶されている全ての時系列パターンと取り込んだ位置情報により表される軌跡とを順にマッチングさせていくためのカウンタである。
【0220】
ステップ604では、pをインクリメントする。
【0221】
ステップ606では、記憶されている第p番目の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる。
【0222】
ここで、なお予め記憶されている時系列パターンの例を図16及び図17に示す。
【0223】
図16は、クリックの動きを示す時系列パターンの例であり、図17は、ダブルクリックの動きを示す時系列パターンの例である。本実施の形態では、例えばこれらの時系列パターンを、予め取り込んである軌跡パターンとマッチングさせて、LED10の動きがいずれの時系列パターンが示す動きに対応するかを判断する。
【0224】
ステップ608では、マッチング結果をRAM38の所定の領域に記憶する。
【0225】
例えば、その相似性をスケーリングや最小二乗法等の手法を用いて数値化し、これを第p番目の時系列パターンとのマッチング結果として記憶するようにしてもよい。
【0226】
ステップ610では、カウンタpと、予め記憶されている時系列パターンの総数p0とを比較し、p>p0であるか否かを判断する。p≦p0であると判断した場合には、ステップ604に戻り、pをインクリメントして、次の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる処理を繰り返す。
【0227】
ステップ610で、p>p0であると判断した場合には、取り込んだ位置情報により表される軌跡と全ての時系列パターンとのマッチングが終了したため、ステップ612に移行し、全てのマッチング結果から最も相似性の高い時系列パターンを選択する。
【0228】
次に、ステップ614で、取り込んだ位置情報から、極大値、極小値を決定する。具体的には、選択した時系列パターンがクリックの動きを示す時系列パターンであれば、1つの極大値と1つの極小値を決定する。選択した時系列パターンがダブルクリックの動きを示す時系列パターンであれば、1つの極大値と2つの極小値を決定する。
【0229】
ステップ616では、極大値及び極小値を基準にして時系列の位置情報を分割する。例えば、LED10の動きが図8に示される動きであれば、z座標値の2つの極小値及び1つの極大値から時系列の位置情報を4分割する。すなわち、B4点からB3点まで、B3点からB2点まで、B2点からB1点まで、B1点から時系列の位置情報の終わりまで、の4つのデータに分割する。
【0230】
ステップ618では、分割されたそれぞれのデータについて、速度と加速度を計算する。LED10の移動方向によって、速度や加速度の符号が変わるが、ここでは絶対値だけを見れば充分である。
【0231】
速度の計算は様々な方法が考えられるが、第1の実施の形態で示したように、分割されたデータのz座標値の差分を、時間の差分で割ることにより求めてもよいし、任意の時間枠を設け、該時間枠内の任意の時刻でのz座標値と、該時刻から該時間枠分ずれた時刻のz座標値との差分を求め、該時間枠で割ることにより求めることもできる。
【0232】
加速度については、例えば、以下のように求めることができる。分割されたデータ内で連続する位置情報の差分をとり、新たな時系列データを生成する。生成した時系列データに対して、任意の時間軸上の枠Tmを設け、その枠Tm内の任意時刻の時系列データと、該時刻から該枠Tm分だけずれた時刻の時系列データとの差分を求め、それを枠Tmで割れば、加速度が求められる。
【0233】
なお、速度や加速度を求める手法は特に限定されず、どのような手法を用いてもよい。
【0234】
ステップ620で、求めた速度及び加速度に基づいて、LED10の動きを検証する。
【0235】
具体的には、各分割されたデータについての各加速度と速度が、予め設定した閾値を越えているか否かを判断する。ここで、1つでも閾値を越えていないと判断した場合には、検証結果はNGとなる。全ての加速度及び速度が閾値を越えていると判断した場合には、検証結果はOKとなる。
【0236】
図18は、クリックの動きにおける速度の状態の例を示しており、図19は、ダブルクリックの動きにおける速度の状態の例を示している。本図では速度を絶対値で表している。図示されるV0は速度の閾値である。また、ポイントをわかりやすくするため、速度を単純な山形の形状で表している。
【0237】
図示されるように、クリックでは、2つの分割データの各速度が閾値を越えれば検証結果はOKとなる。ダブルクリックでは、4つの分割データの各速度が閾値を越えれば検証結果はOKとなる。
【0238】
ステップ622で、検証結果がOKか否かを判断する。検証結果がNGであると判断した場合には、LED10の動きは、選択した時系列パターンが示す動きに対応していないため、そのまま終了する。
【0239】
ステップ622で検証結果がOKであると判断した場合には、ステップ624に移行し、選択した時系列パターンが示す動きに対応付けられた処理の実行を指示する。
【0240】
なお、ステップ624の具体的な処理は、第1の実施の形態の、クリックやダブルクリック等の動きに対応付けられた処理の実行を指示する各ステップ(ステップ114,ステップ144、ステップ150、ステップ156)と同様であるため、説明を省略する。
【0241】
なお、分割されたデータは、各分割データ毎に順次速度及び加速度を計算して閾値と比較していき、ある分割データについて閾値を越えなかったと判断した場合には、残りの分割データに関する速度及び加速度の計算はせずにただちに処理を終了するようにしてもよい。
【0242】
また、時系列パターンを選択する方法は、上述した例に限定されず、以下に示す方法を採用することもできる。例えば、クリックやダブルクリックの動きを示す時系列パターンの特徴を、予め記憶しておく。
【0243】
例えば、クリックの動きを示す時系列パターンについては、z座標値において1つの極小値が存在するという特徴を予め記憶しておく。また、ダブルクリックの動きを示す時系列パターンについては、z座標値において2つの連続する極小値が存在するという特徴を記憶しておく。
【0244】
これにより、取り込んだ位置情報により表される軌跡が、該特徴を有しているか否かを判断して、マッチングする。具体的には、取り込んだ時系列の位置情報により表される軌跡において、1つの極小値のみ存在すると判断した場合には、クリックの動きを示す時系列パターンを選択するようにし、2つの連続する極小値が存在すると判断した場合には、ダブルクリックの動きを示す時系列パターンを選択することができる。
【0245】
このように、速度及び加速度に加え、時系列パターンを用いて、LED10の動きを判断するようにしたため、より精度高く動きを判断することができる。
【0246】
[第7の実施の形態]
本実施の形態では、速度及び加速度を計算して検証する処理を行わず、時系列パターンのみでLED10の動きを判断する例について説明する。本実施の形態の指示入力処理システムの構成も第1の実施の形態と同様であるため、説明を省略する。
【0247】
ここでは、3D計測装置20がLED10の発光を認識するための領域を、3D計測装置20の前面の直方体として定義する。
【0248】
図20は、時系列パターンの一例であり、3D計測装置20の前面に直方体として定義されている認識領域の中心付近(F)から、直線的に直方体の上面(E)、または左面、或いは右面を通りすぎて非認識領域(G)に移動する動きを示している。
【0249】
このような時系列パターンでは、以下の特徴が挙げられる。
【0250】
x、y、z座標値の時系列データの変化は、単調変化である。LED10が認識領域外に移動することから、3D計測装置20が認識不可能となる状態が発生する。
【0251】
従って、LED10がこのような特徴を有する動きを示した場合には、この時系列パターンに該当すると判断することができる。
【0252】
この時系列パターンが認識された場合に、例えば、本システムをシャットダウンさせるようにしてもよい。
【0253】
図21も、時系列パターンの一例であり、認識領域において、LED10を一時停止させ、その後、認識領域内で円弧を描く動きを示している。
【0254】
この円弧を描く動き(例えば、右回りで、下から上に動かして、また下に戻す動き)では、最初の一時停止の位置から所定の許容範囲内に次の停止位置があるという特徴がある。
【0255】
更に、3D計測装置20に向かって左上角を原点の0とし、原点から右方向を+方向とするx軸、下方向を+方向とするy軸、手前に向かう方向を+方向とするz軸によりx、y、z座標系を定義した場合、以下の特徴が挙げられる。
【0256】
2つの停止位置の間のx座標値は、単調減少、極小、単調増加、となるように変化する。
【0257】
2つの停止位置の間のy座標値は、単調減少、極小、単調増加、極大、単調減少、となるように変化する。
【0258】
従って、この区間で、x座標値とy座標値がこれらの特徴を同時に満たすならば、この時系列パターンに該当すると判断することができる。この時系列パターンが認識された場合には、例えば、ディスプレイの画面全体を拡大表示する処理が実行されるようにしてもよい。
【0259】
また、表示を元に戻す処理の実行を指示するために、円弧の描く方向を左回りとする時系列パターンを別途設定するようにしてもよい。更に、円弧を回転する度に、表示を所定の拡大率、縮小率で変化させるようにしても良い。また、円弧の動きをx−y軸平面上の動きではなくx−z軸平面上の動きとすることもできる。
【0260】
なお、空中に円弧を描く際、最初の停止位置から再び正確に同じ位置に手を戻すことは比較的困難なため、最初の停止位置と次の停止位置について、適宜、許容範囲を設けるようにすることが好適である。
【0261】
[第8の実施の形態]
本実施の形態では、指示入力者がLED10の動きの状態を認識できるように、速度に基づいてカーソルの表示状態を変化させたり、音声を発生させたりする例について説明する。
【0262】
本実施の形態では、一般的なカーソルとは別に拡張カーソルを表示する。
【0263】
ここで、拡張カーソルについて説明する。パソコン30のディスプレイ42に表示されるデスクトップ上で、一般的なカーソルがオブジェクトを指定する点(前述の指定位置に相当する)を含む小領域を円弧などで囲い、改めて小ウインドウとして表示したものである。
【0264】
図22(a)及び図22(b)に示されるように、指定位置30を中心とする円形の内部が小ウィンドウ(拡張カーソル)72に表示されている。一般的なカーソル74は、拡張カーソル72の内部、特に中心部に重ねて表示されている。この拡張カーソル32は、OS54がイメージドライバ56を用いて表示する。
【0265】
本実施の形態では、第1の実施の形態において説明した表示処理ルーチンに代えて、図23で示される処理ルーチンを実行する。本ルーチンは、所定時間毎に実行される。
【0266】
ステップ700で、3次元位置情報を取り込む。
【0267】
ステップ702で、速度を検出する。検出方法は、第1の実施の形態と同様であるため、ここでは説明を省略する。
【0268】
ステップ704で、検出した速度Vkが予め設定されている閾値Vthを越えたか否かを判断する。ここで肯定判断した場合には、ステップ706に移行し、拡張カーソル72のサイズを拡大する。更にステップ708で、拡張カーソル72内の画像の拡大率を検出した速度Vkの値に応じてアップさせる。更にステップ710で、速度に応じた音声をスピーカ44から発生させる。
【0269】
図22(a)は、拡張カーソル72のサイズを拡大し、拡張カーソル72内の画像の拡大率をアップした状態を示している。
【0270】
ステップ712では、3次元位置情報に応じて、カーソル74及び拡張カーソル72の表示位置を移動する。
【0271】
一方、ステップ704で否定判断した場合には、ステップ712に移行し、カーソル移動処理のみを行う。
【0272】
図22(b)は、速度が十分でない場合の拡張カーソルの状態を表している。図示されるように、拡張カーソル72の半径は最小になっており、円形内の画像も背景と同じ、即ち拡大率が1となっている。
【0273】
このように、拡張カーソル72を速度が充分でないときは小さなサイズで表示し、速度があがるにつれてそのサイズを大きくするようにすれば、指示入力者は速度を認識しながら、LED10を装着した手を動かすことができ、指示入力が容易となる。
【0274】
なお、拡張カーソル72を常に表示せず、速度が所定以上であれば表示し、速度が極端に減ると表示しないように制御することもできる。逆に速度が所定以下であれば表示し、速度が極端に増えると表示しないようにすることも可能である。
【0275】
また、上記ステップ710で説明したように、速度に応じて固有な音を発生させれば、指示入力者の操作の助けとなり、目の不自由な方にとって好適である。これにより、どの程度の速度で手を動かせばよいかを指示入力者に認識させるようにすることができる。
【0276】
更に、速度に応じてカーソル74や拡張カーソル72の色相などの色を変化させたりすることもできる。また、こうした表示状態の変化の設定や、拡張カーソルのサイズ(例えば、半径等)を指示入力者が任意に設定できるようにすることもできる。
【0277】
以上、各実施の形態で説明したように、LED10の動きに伴う速度及び加速度に基づいて、LED10の動きを判断するようにしたため、3D計測装置20がLED10の発光を認識できる領域内で、3D計測装置20からの距離に関わらず、クリック、ダブルクリック、ドラッグ等の操作を、機械的メカニズムを使わずに行うことが可能となる。
【0278】
また、本発明は、上述した実施の形態に限定されず、パソコンの操作だけでなく、例えば、複写機や金融機関のATM等のタッチパネルの操作に適用することも可能である。これにより、タッチパネルの操作を画面に触れずに行うことができる。
【0279】
また、本発明をスイッチのON/OFF操作等に適用することも可能である。
【0280】
【発明の効果】
本発明は、発光手段の動きに伴う速さに関する物理量に基づいて、発光手段の動きが予め定められた動きに対応するか否かを判断し、該予め定められた動きに対応すると判断した場合には、該予め定められた動きに対応付けられた処理の実行を指示するようにしたため、機械的操作や比較的細やかな操作を必要とせずに指示入力できる、という効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコンを含む指示入力システムの構成を示す図である。
【図2】パソコンの具体的な構成を示した図である。
【図3】パソコン本体の構成を機能的に示した図である。
【図4】クリック、ダブルクリック、ドラッグ・アンド・ドロップの各指示動作の一例を具体的に示した図である。
【図5】パソコンのCPUにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図6】パソコンのCPUにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図7】パソコンのCPUにより行われる、指示入力処理のメインルーチンを示したフローチャートである。
【図8】ダブルクリックの動きに対応するLEDの動きの一例を示した図である。
【図9】表示処理ルーチンを示すフローチャートである。
【図10】第2の実施の形態における、指示入力処理のメインルーチンの一部を示すフローチャートである。
【図11】第3の実施の形態における、実行中のプロセスに応じて位置ロックするか否かを判断する処理ルーチンを示すフローチャートである。
【図12】第4の実施の形態における指示入力処理のメインルーチンの一部を示すフローチャートである。
【図13】第5の実施の形態における指示入力処理のメインルーチンを示したフローチャートである。
【図14】第6の実施の形態における、位置情報を記憶するための処理ルーチンを示すフローチャートである。
【図15】第6の実施の形態における、時系列パターンを用いて指示入力処理を行うための指示入力処理ルーチンを示したフローチャートである。
【図16】クリックの動きを示す時系列パターンの例である。
【図17】ダブルクリックの動きを示す時系列パターンの例である。
【図18】クリックの動きにおける速度の状態の例を示した図である。
【図19】ダブルクリックの動きにおける速度の状態の例を示した図である。
【図20】第7の実施の形態における時系列パターンの一例である。
【図21】第7の実施の形態における時系列パターンの一例である。
【図22】図22(a)は、拡張カーソルのサイズを拡大し、拡張カーソル内の画像の拡大率を増加した状態を示した図であり、図22(b)は、速度が十分でない場合の、拡張カーソルの状態を示した図である。
【図23】第8の実施の形態における処理ルーチンを示したフローチャートである。
【符号の説明】
10 LED
20 3D計測装置
30 パソコン
34 CPU
36 ROM
38 RAM
40 I/O
42 ディスプレイ
44 スピーカ
46 HDD
50 コマンド生成部
Claims (24)
- 指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力手段と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出手段と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断手段と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示手段と、
を含む指示入力装置。 - 各々異なる複数の予め定められた動きを示す動き情報を記憶する記憶手段を備え、
前記判断手段は、
前記記憶された複数の動き情報から前記発光手段の動きに対応する少なくとも1つの動き情報を選択する選択手段と、
前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する検証手段と、
を含む請求項1記載の記載の指示入力装置。 - 前記動き情報は、位置の時系列の情報であり、
前記入力手段は、前記位置情報を時系列に入力し、
前記選択手段は、前記時系列に入力された位置情報に基づいて、前記少なくとも1つの動き情報を選択する請求項2記載の指示入力装置。 - 前記検証手段は、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する請求項2または請求項3記載の指示入力装置。
- 前記速さに関する物理量は、前記発光手段の動きに伴う加速度及び速度の少なくとも1つである請求項1乃至請求項4のいずれか1項記載の記載の指示入力装置。
- 処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する表示手段と、
前記入力された位置情報の変化に対応して前記指定情報の位置が変化するように前記表示手段を制御する表示制御手段と、
を更に備え、
前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記指定情報により指定された前記対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示する請求項1乃至請求項5のいずれか1項記載の指示入力装置。 - 前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された前記発光手段の動きの中で、前記指定情報により指定された対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示する請求項6記載の指示入力装置。
- 前記予め定められた動きは、所定の方向を1往復する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。
- 前記予め定められた動きは、所定の時間以内の所定の方向を1往復する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項8記載の指示入力装置。 - 前記予め定められた動きは、所定の方向を2往復する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。
- 前記予め定められた動きは、所定の時間以内の所定の方向を2往復する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項10記載の指示入力装置。 - 前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。
- 前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、所定の時間経過してから、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項12記載の指示入力装置。 - 前記予め定められた動きは、所定の方向と逆の方向に移動する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。
- 前記予め定められた動きは、静止している状態である請求項1乃至請求項7のいずれか1項記載の指示入力装置。
- 前記予め定められた動きは、所定の時間静止している状態であり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが、前記所定の時間静止している状態であるか否かを判断する請求項15記載の指示入力装置。 - 前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出された時間に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する請求項1乃至請求項7のいずれか1項記載の記載の指示入力装置。 - 前記判断手段が前記発光手段の動きが予め定められた動きに対応するか否かを判断する際、前記発光手段の動き又は前記予め定められた動きに許容量を持たせて判断する請求項1乃至請求項17のいずれか1項記載の指示入力装置。
- 前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の表示状態を変化させるように制御する請求項6乃至請求項18のいずれか1項記載の指示入力装置。
- 前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の形状、大きさ、色の少なくとも1つを変化させるように制御する請求項19記載の指示入力装置。
- 前記表示制御手段は、前記指定情報の位置から所定の距離以内に表示される対象情報の大きさを変化させるように制御する請求項20記載の指示入力装置。
- 音声を出力するための発音手段と、
前記検出された速さに関する物理量に基づいて発音状態を変化させるように前記発音手段を制御する音声出力制御手段と、
を更に備えた請求項1乃至請求項21のいずれか1項記載の指示入力装置。 - 指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて該発光手段の位置情報を計測する計測工程と、
前記計測工程で計測された位置情報を入力する入力工程と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、
を含む指示入力方法。 - コンピュータに、
指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力工程と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、
を実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003138645A JP2004341892A (ja) | 2003-05-16 | 2003-05-16 | 指示入力装置、指示入力方法、及びプログラム |
US10/754,706 US20040227741A1 (en) | 2003-05-16 | 2004-01-12 | Instruction inputting device and instruction inputting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003138645A JP2004341892A (ja) | 2003-05-16 | 2003-05-16 | 指示入力装置、指示入力方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004341892A true JP2004341892A (ja) | 2004-12-02 |
Family
ID=33410809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003138645A Pending JP2004341892A (ja) | 2003-05-16 | 2003-05-16 | 指示入力装置、指示入力方法、及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20040227741A1 (ja) |
JP (1) | JP2004341892A (ja) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005070996A (ja) * | 2003-08-22 | 2005-03-17 | Fuji Xerox Co Ltd | 指示入力装置、指示入力システム、指示入力方法、及びプログラム |
JP2007104523A (ja) * | 2005-10-07 | 2007-04-19 | Sony Corp | 遠隔操作システム,遠隔操作装置,情報処理装置,遠隔操作方法,情報処理方法,およびコンピュータプログラム |
JP2009252241A (ja) * | 2008-04-01 | 2009-10-29 | Crucialtec Co Ltd | 光ポインティング装置および光ポインティング装置を用いたクリック認識方法 |
JP2018032426A (ja) * | 2005-12-30 | 2018-03-01 | アップル インコーポレイテッド | インターフェース再構成モードを有する携帯用電子装置 |
US10250735B2 (en) | 2013-10-30 | 2019-04-02 | Apple Inc. | Displaying relevant user interface objects |
US10254949B2 (en) | 2007-01-07 | 2019-04-09 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
US10313505B2 (en) | 2006-09-06 | 2019-06-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US10620780B2 (en) | 2007-09-04 | 2020-04-14 | Apple Inc. | Editing interface |
US10628028B2 (en) | 2008-01-06 | 2020-04-21 | Apple Inc. | Replacing display of icons in response to a gesture |
JP2020074081A (ja) * | 2015-10-14 | 2020-05-14 | マクセル株式会社 | 操作方法 |
US10739974B2 (en) | 2016-06-11 | 2020-08-11 | Apple Inc. | Configuring context-specific user interfaces |
US10761691B2 (en) | 2007-06-29 | 2020-09-01 | Apple Inc. | Portable multifunction device with animated user interface transitions |
US10788953B2 (en) | 2010-04-07 | 2020-09-29 | Apple Inc. | Device, method, and graphical user interface for managing folders |
US10915220B2 (en) | 2015-10-14 | 2021-02-09 | Maxell, Ltd. | Input terminal device and operation input method |
US11126321B2 (en) | 2007-09-04 | 2021-09-21 | Apple Inc. | Application menu user interface |
US11281368B2 (en) | 2010-04-07 | 2022-03-22 | Apple Inc. | Device, method, and graphical user interface for managing folders with multiple pages |
US11675476B2 (en) | 2019-05-05 | 2023-06-13 | Apple Inc. | User interfaces for widgets |
US11816325B2 (en) | 2016-06-12 | 2023-11-14 | Apple Inc. | Application shortcuts for carplay |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7576729B2 (en) * | 2004-12-09 | 2009-08-18 | Medina Carlos A | Foot controlled computer mouse with finger clickers |
JP2006270913A (ja) * | 2005-02-23 | 2006-10-05 | Matsushita Electric Works Ltd | 入力装置及びそれを用いた環境制御システム。 |
US20080136775A1 (en) * | 2006-12-08 | 2008-06-12 | Conant Carson V | Virtual input device for computing |
US8031272B2 (en) * | 2007-07-19 | 2011-10-04 | International Business Machines Corporation | System and method of adjusting viewing angle for display |
US8115877B2 (en) * | 2008-01-04 | 2012-02-14 | International Business Machines Corporation | System and method of adjusting viewing angle for display based on viewer positions and lighting conditions |
DE102008017716A1 (de) * | 2008-04-07 | 2009-10-08 | Volkswagen Ag | Anzeige- und Bedienvorrichtung für ein Kraftfahrzeug sowie Verfahren zum Betreiben einer solchen |
US10019081B2 (en) * | 2009-01-15 | 2018-07-10 | International Business Machines Corporation | Functionality switching in pointer input devices |
JP2010170388A (ja) * | 2009-01-23 | 2010-08-05 | Sony Corp | 入力装置および方法、情報処理装置および方法、情報処理システム、並びにプログラム |
KR101789683B1 (ko) * | 2011-06-13 | 2017-11-20 | 삼성전자주식회사 | 디스플레이 장치 및 그의 제어 방법, 그리고 리모컨 장치 |
CN103197889B (zh) * | 2013-04-03 | 2017-02-08 | 锤子科技(北京)有限公司 | 一种亮度调整方法、装置及一种电子设备 |
CN107329395B (zh) * | 2017-07-31 | 2020-03-27 | 歌尔科技有限公司 | 一种判定手表表针走时准确性的方法、装置和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68921543T2 (de) * | 1988-10-26 | 1995-07-20 | Wacom Co Ltd | Optische Koordinateneingabevorrichtung und Positionszeiger dafür. |
JPH05127809A (ja) * | 1991-04-19 | 1993-05-25 | Sharp Corp | 三次元空間座標入力装置 |
-
2003
- 2003-05-16 JP JP2003138645A patent/JP2004341892A/ja active Pending
-
2004
- 2004-01-12 US US10/754,706 patent/US20040227741A1/en not_active Abandoned
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005070996A (ja) * | 2003-08-22 | 2005-03-17 | Fuji Xerox Co Ltd | 指示入力装置、指示入力システム、指示入力方法、及びプログラム |
US8018325B2 (en) | 2005-10-07 | 2011-09-13 | Sony Corporation | Remote control system, remote controller, information processing apparatus, remote control method, information processing method, and computer program therefor |
JP2007104523A (ja) * | 2005-10-07 | 2007-04-19 | Sony Corp | 遠隔操作システム,遠隔操作装置,情報処理装置,遠隔操作方法,情報処理方法,およびコンピュータプログラム |
JP4622792B2 (ja) * | 2005-10-07 | 2011-02-02 | ソニー株式会社 | 遠隔操作システム,遠隔操作装置,情報処理装置,遠隔操作方法,情報処理方法,およびコンピュータプログラム |
US11650713B2 (en) | 2005-12-30 | 2023-05-16 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
JP2018032426A (ja) * | 2005-12-30 | 2018-03-01 | アップル インコーポレイテッド | インターフェース再構成モードを有する携帯用電子装置 |
US10915224B2 (en) | 2005-12-30 | 2021-02-09 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US10359907B2 (en) | 2005-12-30 | 2019-07-23 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US10884579B2 (en) | 2005-12-30 | 2021-01-05 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US11449194B2 (en) | 2005-12-30 | 2022-09-20 | Apple Inc. | Portable electronic device with interface reconfiguration mode |
US11240362B2 (en) | 2006-09-06 | 2022-02-01 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US10313505B2 (en) | 2006-09-06 | 2019-06-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US11736602B2 (en) | 2006-09-06 | 2023-08-22 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US10778828B2 (en) | 2006-09-06 | 2020-09-15 | Apple Inc. | Portable multifunction device, method, and graphical user interface for configuring and displaying widgets |
US11586348B2 (en) | 2007-01-07 | 2023-02-21 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
US10732821B2 (en) | 2007-01-07 | 2020-08-04 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
US11169691B2 (en) | 2007-01-07 | 2021-11-09 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
US10254949B2 (en) | 2007-01-07 | 2019-04-09 | Apple Inc. | Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display |
US10761691B2 (en) | 2007-06-29 | 2020-09-01 | Apple Inc. | Portable multifunction device with animated user interface transitions |
US11507255B2 (en) | 2007-06-29 | 2022-11-22 | Apple Inc. | Portable multifunction device with animated sliding user interface transitions |
US11010017B2 (en) | 2007-09-04 | 2021-05-18 | Apple Inc. | Editing interface |
US11861138B2 (en) | 2007-09-04 | 2024-01-02 | Apple Inc. | Application menu user interface |
US11604559B2 (en) | 2007-09-04 | 2023-03-14 | Apple Inc. | Editing interface |
US10620780B2 (en) | 2007-09-04 | 2020-04-14 | Apple Inc. | Editing interface |
US11126321B2 (en) | 2007-09-04 | 2021-09-21 | Apple Inc. | Application menu user interface |
US10628028B2 (en) | 2008-01-06 | 2020-04-21 | Apple Inc. | Replacing display of icons in response to a gesture |
JP2009252241A (ja) * | 2008-04-01 | 2009-10-29 | Crucialtec Co Ltd | 光ポインティング装置および光ポインティング装置を用いたクリック認識方法 |
US11500516B2 (en) | 2010-04-07 | 2022-11-15 | Apple Inc. | Device, method, and graphical user interface for managing folders |
US11281368B2 (en) | 2010-04-07 | 2022-03-22 | Apple Inc. | Device, method, and graphical user interface for managing folders with multiple pages |
US11809700B2 (en) | 2010-04-07 | 2023-11-07 | Apple Inc. | Device, method, and graphical user interface for managing folders with multiple pages |
US10788953B2 (en) | 2010-04-07 | 2020-09-29 | Apple Inc. | Device, method, and graphical user interface for managing folders |
US10972600B2 (en) | 2013-10-30 | 2021-04-06 | Apple Inc. | Displaying relevant user interface objects |
US11316968B2 (en) | 2013-10-30 | 2022-04-26 | Apple Inc. | Displaying relevant user interface objects |
US10250735B2 (en) | 2013-10-30 | 2019-04-02 | Apple Inc. | Displaying relevant user interface objects |
JP2020074081A (ja) * | 2015-10-14 | 2020-05-14 | マクセル株式会社 | 操作方法 |
US10915220B2 (en) | 2015-10-14 | 2021-02-09 | Maxell, Ltd. | Input terminal device and operation input method |
US11775129B2 (en) | 2015-10-14 | 2023-10-03 | Maxell, Ltd. | Input terminal device and operation input method |
US11733656B2 (en) | 2016-06-11 | 2023-08-22 | Apple Inc. | Configuring context-specific user interfaces |
US10739974B2 (en) | 2016-06-11 | 2020-08-11 | Apple Inc. | Configuring context-specific user interfaces |
US11073799B2 (en) | 2016-06-11 | 2021-07-27 | Apple Inc. | Configuring context-specific user interfaces |
US11816325B2 (en) | 2016-06-12 | 2023-11-14 | Apple Inc. | Application shortcuts for carplay |
US11675476B2 (en) | 2019-05-05 | 2023-06-13 | Apple Inc. | User interfaces for widgets |
JP7273098B2 (ja) | 2019-10-10 | 2023-05-12 | マクセル株式会社 | 操作方法 |
JP2021121962A (ja) * | 2019-10-10 | 2021-08-26 | マクセル株式会社 | 操作方法 |
JP7453450B2 (ja) | 2019-10-10 | 2024-03-19 | マクセル株式会社 | 操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20040227741A1 (en) | 2004-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004341892A (ja) | 指示入力装置、指示入力方法、及びプログラム | |
JP6348211B2 (ja) | コンピュータ装置の遠隔制御 | |
JP5802667B2 (ja) | ジェスチャ入力装置およびジェスチャ入力方法 | |
KR101953165B1 (ko) | 제스처 인식 디바이스들 및 방법들 | |
KR100851977B1 (ko) | 가상 평면을 이용하여 전자 기기의 사용자 인터페이스를제어하는 방법 및 장치. | |
US20220261066A1 (en) | Systems, Methods, and Graphical User Interfaces for Automatic Measurement in Augmented Reality Environments | |
US20100238137A1 (en) | Multi-telepointer, virtual object display device, and virtual object control method | |
US20200004403A1 (en) | Interaction strength using virtual objects for machine control | |
JP4172307B2 (ja) | 3次元指示入力装置 | |
US20060288314A1 (en) | Facilitating cursor interaction with display objects | |
KR101318244B1 (ko) | 3차원 사용자 인터페이스 구현 시스템 및 구현 방법 | |
KR20160134799A (ko) | 힘-기반 물체 조작 및 햅틱 감각들을 위한 시스템, 방법 및 컴퓨터-판독가능 매체 | |
JP2010224764A (ja) | タッチパネル式ディスプレイを持った携帯型ゲーム装置 | |
US20150153835A1 (en) | Initializing predictive information for free space gesture control and communication | |
KR20150097984A (ko) | 비전 센서를 이용한 사용자 입력 처리 장치 및 사용자 입력 처리 방법 | |
CN105488832B (zh) | 光学数字尺 | |
Zeleznik et al. | Look-that-there: Exploiting gaze in virtual reality interactions | |
JP2008282367A (ja) | ポインティングシステム | |
JP2005078310A (ja) | 触覚呈示装置、触覚呈示方法、及びプログラム | |
JP4438351B2 (ja) | 指示入力装置、指示入力システム、指示入力方法、及びプログラム | |
KR20080017194A (ko) | 무선 마우스 및 그의 구동 방법 | |
JP2019008631A (ja) | 情報処理装置、情報処理方法及びプログラム | |
EP3374847B1 (en) | Controlling operation of a 3d tracking device | |
EP4291970A1 (en) | Systems, methods, and graphical user interfaces for automatic measurement in augmented reality environments | |
JP6204414B2 (ja) | ゲーム装置及びプログラム |