JP2004341892A - Instruction input device, instruction input method, and program - Google Patents

Instruction input device, instruction input method, and program Download PDF

Info

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
Application number
JP2003138645A
Other languages
Japanese (ja)
Inventor
Yasunori Oda
保憲 黄田
Hiroyuki Hotta
宏之 堀田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2003138645A priority Critical patent/JP2004341892A/en
Priority to US10/754,706 priority patent/US20040227741A1/en
Publication of JP2004341892A publication Critical patent/JP2004341892A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an instruction input device which is improved in the operability of the device without requiring mechanical operation or comparatively particular operation, and also to provide an instruction input method and a program. <P>SOLUTION: The 3D positional information of an LED 10 to be fitted to an instruction inputting user which is measured by a 3D measuring instrument 20 on the basis of the receiving state of light emitted from the LED 10 is inputted; speed and acceleration following the movement of the LED 10 are detected on the basis of the inputted 3D positional information; whether the movement of the LED 10 corresponds to previously determined movement is judged on the basis of the detected speed and acceleration; and at the time of judging that the movement of the LED 10 corresponds to the previously determined movement, the execution of processing allowed to correspond to the previously determined movement is instructed. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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には、動きに伴う速度及び加速度の閾値(本実施の形態では、V、A)が絶対値で設定されていると共に、動きに伴う時間の閾値(本実施の形態では、T1、T2)が設定されている。コマンド生成部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で、上述のように検出した加速度に−の符号を付した値が、加速度の閾値Aを越えたか否かを判断する。
【0096】
前述したように、LED10を3D計測装置20に近づく方向に動かせば、速さ及び加速度の符号は−となる。従って、この場合には、−の符号を付すことにより速さ及び加速度は正の値となる。LED10を3D計測装置20から離れる方向に動かせば、−の符号を付すことにより速度及び加速度は負の値となる。また、前述したように、閾値V及び閾値Aは、絶対値で設定されている。
【0097】
このことから、加速度に−の符号を付した値が、閾値Aを越えたか否かを判断することで、十分な加速度をもってLED10を3D計測装置20に近づく方向に移動させたか否かを判断することができる。
【0098】
ステップ100で、−加速度≦Aであると判断した場合には、3D計測装置20から次の3次元位置情報を入力するまで、待機状態を維持する。図8では、B0点以前の状態が待機状態に相当する。
【0099】
また、−加速度>Aであると判断した場合には(図8では、B0点に相当)、指示入力者が意志をもって手を動かした状態であるため、ステップ102に移行し、タイマT1及びタイマT2をスタートさせる。
【0100】
ここで、タイマT1は、ある方向への移動を開始してから該ある方向とは逆の方向への移動を開始するまでの時間を計時するために用いられるタイマである。タイマT1に対しては、予め閾値T1が設定されている。
【0101】
タイマT2は、ダブルクリックの動きを判断するために用いられるタイマである。タイマT2に対しては、予め閾値T2が設定されている。
【0102】
ステップ104で、速度に−の符号を付した値が、閾値Vを越えたか否かを判断する。加速度と同様に、速度にも−の符号を付して閾値Vと比較する。
【0103】
ステップ104で、−速度≦Vであると判断した場合には、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0104】
ステップ104で、−速度>Vであると判断した場合には(図8ではB1点に相当)、ステップ106に移行し、加速度が閾値Aを越えたか否かを判断する。なお、ここでは、LED10の移動方向を明瞭にするために便宜上加速度に+の符号を付す。
【0105】
ステップ106で、+加速度≦Aであると判断した場合には、ステップ108に移行し、タイマT1が閾値T1を越えたか否かを判断する。ここで、タイマT1≦T1であると判断した場合には、ステップ106に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0106】
ステップ106で、+加速度>Aであると判断した場合には、ステップ110に移行し、タイマT1が閾値T1以下であるか否かを判断する。
【0107】
ステップ110で、タイマT1>T1であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないため、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ110で、タイマT1≦T1であると判断した場合には、LED10の動きは予め設定されている時間以内の動きであるため、ステップ112に移行し、速度が、閾値Vを越えたか否かを判断する。
【0108】
ステップ112で、−速度≦Vであると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないため、ステップ116に移行し、タイマT1及びT2をリセットして、待機状態に戻る。−速度>Vであると判断した場合には、LED10の動きは前述した予め設定されているクリックの動きに対応するため、ステップ114に移行し、クリック処理を行う(図8では、B2点に相当)。
【0109】
具体的に図3の機能構成図を用いて説明すると、コマンド生成部50が、クリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。コマンド生成部50は、該コマンドを2次元マウスにおけるボタン操作によるコマンドと同様の形式で出力する。これにより、マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して適切な処理を実行することができる。
【0110】
ステップ114のクリック処理を実行した後は、図6のステップ120に移行し、タイマT1をリセットしてスタートさせる。このステップ以降の処理は、LED10の動きがダブルクリックの動きであるか否かを判断するための処理となる。
【0111】
ステップ122では、次に検出した加速度に−の符号を付した値が閾値Aを越えたか否かを判断する。−加速度≦Aであると判断した場合には、ステップ124に移行し、タイマT1が閾値T1を越えたか否かを判断する。
【0112】
ステップ124で、タイマT1>T1であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ124で、タイマT1≦T1であると判断した場合には、ステップ122に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0113】
ステップ122で、−加速度>Aであると判断した場合には、ステップ126に移行し、タイマT1が閾値T1以下であるか否かを判断する。
【0114】
ステップ126で、タイマT1>T1であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ126で、タイマT1≦T1であると判断した場合には、ステップ128に移行し、速度が閾値Vを越えたか否かを判断する。
【0115】
ステップ128で、−速度≦Vであると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。ステップ128で、−速度>Vであると判断した場合には、ステップ130に移行し、タイマT1をリセットしてスタートさせる(図8では、B3点に相当)。
【0116】
ステップ132では、次に検出した加速度が閾値Aを越えたか否かを判断する。ここで、+加速度≦Aであると判断した場合には、ステップ134に移行し、タイマT1が閾値T1を越えたか否かを判断する。
【0117】
ステップ134で、タイマT1>T1であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT1≦T1であると判断した場合には、ステップ132に戻り、次に3D計測装置20から入力された3次元位置情報に基づいて速度及び加速度を検出し、判断する。
【0118】
ステップ132で、+加速度>Aであると判断した場合には、ステップ136に移行し、タイマT1が閾値T1以下であるか否かを判断する。
【0119】
ステップ136で、タイマT1>T1であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT1≦T1であると判断した場合には、ステップ138に移行し、タイマT2が閾値T2以下であるか否かを判断する。
【0120】
タイマT2は、クリックの動きがスタートしたときからの時間を計時している。閾値T2は、ダブルクリックの動きに要する時間の限度として予め設定されている。従って、タイマT2と閾値T2を比較することにより、LED10の動きがダブルクリックの動きに対応するか否かを判断することができる。
【0121】
ステップ138で、タイマT2>T2であると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。タイマT2≦T2であると判断した場合には、ステップ140に移行し、速度が閾値Vを越えたか否かを判断する。
【0122】
ステップ140で、+速度≦Vであると判断した場合には、ステップ144に移行し、タイマT1及びT2をリセットして、待機状態に戻る。+速度>Vであると判断した場合には、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>閾値T1であると判断した場合には、LED10の動きは予め設定されているドラッグの動きに対応するため、図7のステップ150に移行し、ドラッグ処理を行う。
【0127】
具体的には、コマンド生成部50が、クリック処理と同様に、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【0128】
なお、ドラッグ処理は、通常は、クリック処理の後に行われる処理である。例えば、クリック処理により選択されたアイコンなどのオブジェクトをドラッグ(移動)したりすることができる。
【0129】
ステップ150の後は、ステップ152に移行し、加速度が閾値Aを越えたか否かを判断する。+加速度≦Aであると判断した場合には、ステップ150に戻り、ドラッグ処理を継続する。また、+加速度>Aであると判断した場合には、ステップ154に移行し、速度が閾値Vを越えたか否かを判断する。
【0130】
ステップ154で、+速度≦Vであると判断した場合には、ステップ150に戻り、ドラッグ処理を継続する。+速度>Vであると判断した場合には、LED10の動きは予め設定されているドロップの動きに対応するため、ステップ156に移行し、ドロップ処理を行う。
【0131】
ドロップ処理もドラッグと同様に、コマンド生成部50が、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
【0132】
ステップ156の後は、ステップ158に移行し、タイマT1及びT2をリセットして、待機状態に戻る。
【0133】
上述した指示入力処理のステップ108では、ドラッグの動きであるか否かを判断するために閾値T1を用いているが、閾値T1とは別の閾値を設け、該閾値により判断するようにしてもよい。
【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】
また、閾値A、V、T1、T2を任意に変更することは可能である。例えば、試験的に指示入力者の手等に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軸上のプラス方向或いはマイナス方向のいずれの方向であってもよい)が閾値V未満であるか否かを判断する。
【0197】
ステップ412で、速度<Vであると判断した場合には、LED10がゆっくりと移動した状態であるため、ステップ414に移行し、ドラッグ処理を行う。
【0198】
次に、ステップ416で、加速度が閾値Aを越えたか否かを判断する。
【0199】
ステップ416で、加速度≦Aであると判断した場合には、LED10がゆっくりと移動している状態が継続しているため、ステップ414に戻り、ドラッグ処理を継続する。
【0200】
ステップ416で、加速度>Aであると判断した場合には、ステップ418に移行し、速度が閾値Vを越えたか否かを判断する。
【0201】
ステップ418で、速度≦Vであると判断した場合には、LED10がゆっくりと移動している状態が継続しているため、ステップ414に戻り、ドラッグ処理を継続する。
【0202】
ステップ418で、速度>Vであると判断した場合には、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と、予め記憶されている時系列パターンの総数pとを比較し、p>pであるか否かを判断する。p≦pであると判断した場合には、ステップ604に戻り、pをインクリメントして、次の時系列パターンと取り込んだ位置情報により表される軌跡とをマッチングさせる処理を繰り返す。
【0227】
ステップ610で、p>pであると判断した場合には、取り込んだ位置情報により表される軌跡と全ての時系列パターンとのマッチングが終了したため、ステップ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は、ダブルクリックの動きにおける速度の状態の例を示している。本図では速度を絶対値で表している。図示されるVは速度の閾値である。また、ポイントをわかりやすくするため、速度を単純な山形の形状で表している。
【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 コマンド生成部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an instruction input device, an instruction input method, and a program, and more particularly to an instruction input device, an instruction input method, and a program for inputting an instruction based on position information of a light emitting unit.
[0002]
[Prior art]
Conventionally, a two-dimensional mouse has been widely used as a device for inputting instructions to a personal computer or the like. The two-dimensional mouse inputs and inputs xy coordinate values to a personal computer as relative coordinate values. In recent years, a technique for inputting a third coordinate value using this two-dimensional mouse has been proposed.
[0003]
For example, a three-dimensional mouse can be easily achieved by attaching an LED as a light emitter to a finger and attaching a light receiving unit for receiving light from the LED to an upper portion of a screen of a personal computer (for example, see Patent Document 1). . The sensor used here determines the angle of the light source with respect to the sensor, and determines the three-dimensional position of the light source based on the principle of triangulation. The LED receives power as a light source from a personal computer, and signals such as a click, which is a basic operation of a mouse, are sent to the basic software of the personal computer through a wire. That is, a switch that can be pressed by a finger is provided near the light emitting body.
[0004]
In addition, by rotating two balls in two dimensions, not only a movement amount in the x and y axis directions can be input, but also an angle and a rotation angle can be input, and a pointing device that enables input in the z axis direction ( For example, see Patent Document 2), a first optical sensor array in which light converting elements are arranged in a first direction, and a second optical sensor array in which light converting elements are arranged in a second direction different from the first direction. Non-contact type position detection device that generates a signal corresponding to the output change of the optical sensor array when the optical sensor array moves, and thereby determines the amount of movement and the direction of movement (for example, Patent Document 3) Cf.) is known.
[0005]
Further, a remote control device (for example, see Patent Document 4) for recognizing an index with a CCD camera and interpreting the index as a command for a personal computer or the like, and a rotary switch rotated by a finger in an electronic pen are provided. A coordinate input electronic pen (see, for example, Patent Document 5) that determines the degree of change in graphical parameters (line segment thickness, color, shading, gray scale), and movement of an RFID attached to a user's wrist. 2. Description of the Related Art There is known an instruction input system (for example, see Patent Literature 6) that interprets an RFID movement pattern as an input command to another device after recognition by an antenna.
[0006]
Gyration Inc., USA Gyromouse has a built-in auto gyro and is a pointing device that can change the direction of the laser by air operation, but it is relatively heavy, the size is relatively large for the gyro, and it is somewhat expensive. is there.
[0007]
Furthermore, in recent years, a prototype of a device that combines a keyboard and a notepad with a keyboard of a personal computer that applies the concept of half-pressing in the shutter operation of a camera, taking advantage of the characteristic that characters are not input unless you press it strongly like a camera shutter. Was done.
[0008]
In addition, the present applicant provides feedback (change in focus metaphor, hue, and the like) that appeals to at least one of the five senses, and emits light to each boundary of a plurality of divided regions in a three-dimensional space spread in front of the screen. To execute the functions of a two-dimensional mouse, such as clicking, double-clicking, and dragging, according to how the light-emitting means passes through the boundary of each area without using a mechanical mechanism, without using a mechanical mechanism. (Japanese Patent Application No. 2003-96366) has been proposed.
[0009]
[Patent Document 1]
JP-A-10-9812
[Patent Document 2]
JP-A-5-150900
[Patent Document 3]
JP-A-11-24832
[Patent Document 4]
JP-A-11-110125
[Patent Document 5]
JP 2000-47805 A
[Patent Document 6]
JP 2001-306235 A
[0010]
[Problems to be solved by the invention]
However, the above-described conventional three-dimensional mouse is operated by pressing a switch provided near the light emitter with a finger, and thus requires mechanical operation and components for realizing the same as the two-dimensional mouse. The same applies to other instruction input devices such as the above-mentioned conventional pointing device and instruction input system.
[0011]
Further, US Gyration Inc. Gyrmouse Presenter also requires mechanical operation with a finger for operations such as clicking, like a normal two-dimensional mouse. The same applies to a device in which a keyboard and a notepad are stacked.
[0012]
That is, the conventional instruction input device requires relatively fine operations such as pressing a button or a switch, so that it is inconvenient for a person who has relatively difficult mechanical operations.
[0013]
Further, in the three-dimensional instruction input device proposed by the present applicant, since the position of each boundary for dividing the three-dimensional space into a plurality of regions is fixed, the user can use his or her hand or finger on which the light emitting means is mounted. Since it is necessary to move the hand or finger while checking each boundary by moving it to a position that matches the position of each boundary, a detailed operation is required.
[0014]
The present invention has been made in view of the above-described facts, and provides an instruction input device, an instruction input method, and a program that do not require a mechanical operation or a relatively delicate operation and have improved usability. Aim.
[0015]
[Means for Solving the Problems]
In order to achieve the above object, an instruction input device of the present invention has input means for inputting position information of a light emitting unit measured based on a light receiving state of light emitted from a light emitting unit attachable to an instruction input person. Detecting means for detecting a physical quantity related to the speed associated with the movement of the light emitting means based on the input position information; and wherein the movement of the light emitting means is predetermined based on the detected physical quantity related to the speed. Determining means for determining whether or not the movement corresponds to the predetermined movement; and executing the processing associated with the predetermined movement when it is determined that the movement of the light emitting means corresponds to the predetermined movement. And instruction means for instructing.
[0016]
The light emitting means can be mounted on the instruction input person, and is preferably mounted on a finger or a hand. The light emitting means is not particularly limited as long as it emits light, and may be, for example, an LED. The measuring means measures position information of the light emitting means based on a light receiving state of the light emitted from the light emitting means.
[0017]
The input means inputs the position information of the light emitting means. The position information may be, for example, position information on the x, y, and z axes of the three-dimensional position information, or may be only one of them, for example, only the position information on the z axis.
[0018]
The detecting means detects a physical quantity relating to the speed accompanying the movement of the light emitting means based on the position information input by the input means.
[0019]
The determining means determines whether or not the movement of the light emitting means corresponds to a predetermined movement based on the physical quantity relating to the speed detected by the detecting means. For example, a threshold value for a physical quantity related to speed may be determined, and when the threshold value is exceeded, it may be determined that the movement of the light emitting unit corresponds to a predetermined movement.
[0020]
In addition, the predetermined movement may be one or plural. Further, the movement may be constituted by a plurality of fine movements.
[0021]
The instructing means instructs, when the determining means determines that the movement of the light emitting means corresponds to a predetermined movement, execution of a process associated with the predetermined movement.
[0022]
Therefore, according to the present invention, it is possible to input an instruction without requiring a mechanical operation or a relatively fine operation.
[0023]
The instruction input device according to the present invention further includes a storage unit that stores motion information indicating a plurality of different predetermined motions, and the determination unit determines the light emitting unit based on the stored plurality of motion information. Selecting means for selecting at least one piece of motion information corresponding to the motion; and verification means for verifying whether or not the motion of the light emitting means corresponds to the motion indicated by the motion information selected by the selecting means. Can also be configured.
[0024]
The storage unit stores motion information indicating a plurality of different predetermined motions. The motion information is not particularly limited, and may be, for example, information characterizing a predetermined motion. The storage means may be, for example, a volatile memory or a non-volatile memory.
[0025]
The determining means may include a selecting means and a verifying means. The selecting means selects at least one piece of motion information corresponding to the motion of the light emitting means from the plurality of pieces of motion information stored in the storage means. The verification unit verifies whether or not the movement of the light emitting unit corresponds to the movement indicated by the movement information selected by the selection unit.
[0026]
The motion information of the present invention is time-series information of a position, the input unit inputs the position information in a time-series, the selection unit, based on the position information input in the time-series, The at least one motion information may be selected.
[0027]
The information on the time series of the position includes, for example, information on a continuous position on the time axis. The input means can input the position information in time series by inputting the position information at predetermined time intervals, for example, and the selecting means can select at least one of the position information based on the position information input in the time series. When the motion information is selected, for example, at this time, the input time-series position information is compared with motion information (positional time-series information) indicating a predetermined motion. Good.
[0028]
The verification means of the present invention may also verify whether or not the movement of the light emitting means corresponds to the movement indicated by the movement information selected by the selection means based on the detected physical quantity relating to the speed. it can.
[0029]
The physical quantity related to the speed according to the present invention may be at least one of an acceleration and a speed accompanying the movement of the light emitting unit.
[0030]
The instruction input device according to the present invention includes: target information for which execution of a process is instructed; display means for displaying designation information for designating the target information; and the display means for responding to a change in the input position information. Display control means for controlling the display means so that the position of the designated information changes, wherein the instruction means determines that the movement of the light emitting means corresponds to a predetermined movement, For the target information specified by the specification information, it is possible to instruct execution of a process associated with the predetermined movement.
[0031]
The display unit displays target information for which execution of a process is instructed, and designation information for designating the target information. The display means is not particularly limited as long as it displays information, and may be a television screen, a display provided in a personal computer or the like, or a touch panel provided in a PDA or the like. The target information for which the execution of the process is instructed can be an icon, a folder, or the input position itself if the display means is a display or the like provided in a personal computer or the like. The designation information means for designating the target information may be, for example, a cursor used in a personal computer.
[0032]
The display control means controls the display means so that the position of the designated information, for example, the position of the cursor, changes in response to the change of the input position information.
[0033]
The instructing unit instructs, when it is determined that the movement of the light emitting unit corresponds to the predetermined movement, execution of a process associated with the predetermined movement with respect to the target information specified by the specifying information.
[0034]
The instruction means of the present invention is configured such that, among the movements of the light emitting means, which are determined that the movement of the light emitting means corresponds to a predetermined movement, for the target information designated by the designation information, It is possible to instruct execution of a process associated with the movement.
[0035]
For example, when the position information changes during the movement of the light emitting means, the position of the designated information may change corresponding to the change. For example, when the designated information is a cursor used in a personal computer, the display position of the cursor changes, and the target information designated by the cursor may differ between the start point and the end point of the movement of the light emitting unit. . In this case, it may be set in advance which target information is to be instructed to execute a process associated with a predetermined motion.
[0036]
The predetermined movement of the present invention may be a movement that makes one reciprocation in a predetermined direction. For example, this movement can be regarded as a click movement operated by a mouse of a personal computer.
[0037]
The predetermined movement of the present invention is a movement that makes one reciprocation in a predetermined direction within a predetermined time, and includes calculation means for calculating a time accompanying the movement of the light emitting means. It is possible to determine whether or not the movement of the light emitting means is the predetermined movement based on the calculated physical quantity relating to the speed and the time calculated by the calculating means.
[0038]
The predetermined motion of the present invention may be a motion of reciprocating two times in a predetermined direction. For example, this movement can be regarded as a double-click movement operated by a mouse of a personal computer.
[0039]
The predetermined movement according to the present invention is a movement that makes two reciprocations in a predetermined direction within a predetermined time, and includes a calculation unit that calculates a time accompanying the movement of the light emitting unit. It is possible to determine whether or not the movement of the light emitting means is the predetermined movement based on the calculated physical quantity relating to the speed and the time calculated by the calculating means.
[0040]
The predetermined movement of the present invention is such that, after moving in a predetermined direction, after moving in the predetermined direction, further moving in the predetermined direction, a direction orthogonal to the predetermined direction, or a direction sandwiched in both directions. Can be a movement to move. For example, this movement can be regarded as a drag movement operated by a mouse of a personal computer.
[0041]
In the present invention, the predetermined movement is to move in a predetermined direction, and after moving in the predetermined direction, after a lapse of a predetermined time, further in the predetermined direction or a direction orthogonal to the predetermined direction. Alternatively, the moving means includes a calculating means for calculating a time accompanying the movement of the light emitting means, wherein the calculating means calculates a time associated with the movement of the light emitting means, and the determining means calculates the physical quantity relating to the detected speed and the calculating means. It is possible to determine whether or not the movement of the light emitting means is the predetermined movement based on the performed time.
[0042]
The predetermined movement of the present invention may be a movement moving in a direction opposite to a predetermined direction. For example, this movement can be regarded as a movement of a drop operated by a mouse of a personal computer.
[0043]
The predetermined movement of the present invention may be a stationary state.
[0044]
The predetermined movement according to the present invention is a state in which the predetermined movement is stationary for a predetermined time, and further includes calculation means for calculating a time accompanying the movement of the light emitting means, wherein the determination means relates to the detected speed. Based on the physical quantity and the time calculated by the calculating means, it can be determined whether or not the movement of the light emitting means is stationary for the predetermined time.
[0045]
The calculating means for calculating the time accompanying the movement of the light emitting means of the present invention, wherein the determining means determines the movement of the light emitting means in advance based on the detected physical quantity relating to the speed and the calculated time. It can be determined whether or not the movement corresponds to the performed movement.
[0046]
In this way, the time associated with the movement of the light emitting means, which is calculated by the calculating means, can be used as a condition for determining the movement of the light emitting means, together with the physical quantity relating to the detected speed.
[0047]
When the determining means of the present invention determines whether or not the movement of the light emitting means corresponds to a predetermined movement, the determination is made by giving an allowable amount to the movement of the light emitting means or the predetermined movement. be able to.
[0048]
For example, when the instructing person moves the light-emitting unit while wearing it on the hand, unintended minute blurring may occur due to hand wobble. Therefore, it is preferable that the determination unit determines the movement of the light emitting unit or a predetermined movement by giving an allowance.
[0049]
The display control means of the present invention can perform control so as to change a display state of the instruction information based on a physical quantity relating to the detected speed.
[0050]
The display control means of the present invention can control so as to change at least one of a shape, a size, and a color of the instruction information based on a physical quantity related to the detected speed.
[0051]
The display control means of the present invention can control so as to change the size of the target information displayed within a predetermined distance from the position of the designated information.
[0052]
The instruction input device according to the present invention includes: a sound generating unit for outputting a sound; and a sound output control unit for controlling the sound generating unit to change a sound generating state based on a physical quantity related to the detected speed. It may be further provided.
[0053]
Here, the sounding means only needs to generate sound, and may be, for example, a speaker.
[0054]
An instruction input method according to the present invention includes a measurement step of measuring position information of a light emitting unit based on a light receiving state of light emitted from a light emitting unit that can be worn by an instruction input person; and a position measured in the measurement step. An input step of inputting information, a detection step of detecting a physical quantity related to a speed associated with the movement of the light emitting unit based on the input position information, and the light emission based on the detected physical quantity related to the speed. A determining step of determining whether the movement of the means corresponds to a predetermined movement; and, if determining that the movement of the light emitting means corresponds to a predetermined movement, the determining step corresponds to the predetermined movement. And an instruction step of instructing execution of the attached process.
[0055]
According to the present invention, it is possible to input an instruction without requiring a mechanical operation or a relatively detailed operation.
[0056]
The program according to the present invention includes an input step of inputting, to a computer, positional information of the light emitting unit measured based on a light receiving state of light emitted from the light emitting unit that can be worn by the instruction input person; A detection step of detecting a physical quantity related to the speed associated with the movement of the light emitting unit based on the position information; and a movement of the light emitting unit corresponding to a predetermined movement based on the detected physical quantity related to the speed. A determining step of determining whether or not the movement of the light emitting unit corresponds to a predetermined movement, and an instruction step of instructing execution of a process associated with the predetermined movement. And let it run.
[0057]
When the program of the present invention is executed by a computer, it is possible to input instructions without requiring a mechanical operation or a relatively detailed operation.
[0058]
The storage medium for storing the program is not particularly limited, and may be a hard disk or a ROM. Further, it may be a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card. Furthermore, the program may be downloaded from a server or the like connected to a network.
[0059]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0060]
[First Embodiment]
FIG. 1 is a diagram showing a configuration of an instruction input system including a personal computer 30 having a function as an instruction input device according to the first embodiment of the present invention.
[0061]
As illustrated, the instruction input system includes an LED 10, a 3D measuring device 20, and a personal computer 30.
[0062]
The LED 10 is mounted on a finger, a hand, or the like of an instruction input person.
[0063]
The 3D measuring device 20 measures a three-dimensional position based on a light receiving state of light emitted from the LED 10.
[0064]
The 3D measuring device 20 is not particularly limited as long as it can measure a three-dimensional position from a light receiving state of light emitted from a light emitting body such as the LED 10, but the position described in Japanese Patent Application Laid-Open No. 10-9812 can be used. It can be configured using a detection technique or the like.
[0065]
FIG. 2 is a diagram showing a specific configuration of the personal computer 30.
[0066]
As shown in the figure, the personal computer 32 of the personal computer 30 includes a CPU 34, a ROM 36, a RAM 38, and an input / output interface (I / O) 40. The 3D measuring device 20, the display 42, the speaker 44, and the hard disk drive (HDD) 46 are connected to the I / O 40.
[0067]
The HDD 46 is used to execute an instruction input processing routine program (hereinafter, referred to as an instruction input processing program) and an instruction input processing program for instructing execution of predetermined processing based on the speed and acceleration accompanying the movement of the LED 10. And the like are stored. The CPU 34 loads the instruction input processing program and the setting information into the RAM 38 and executes the program.
[0068]
The storage medium for storing the instruction input processing program is not limited to the HDD 46, but may be the ROM 36. Although not shown, a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card connected to the I / O 40 may be used. Furthermore, the program may be downloaded from a server or the like connected to a network.
[0069]
FIG. 3 is a diagram functionally showing the configuration of the personal computer main body 32.
[0070]
As shown in the figure, the personal computer 32 includes a command generation unit 50, a mouse driver 52, an OS 54, and an image driver 56.
[0071]
The command generation unit 50 receives the three-dimensional position information measured by the 3D measurement device 20 and detects the speed and acceleration accompanying the movement of the LED 10. Further, based on the detected speed and acceleration, the movement of the LED 10 is determined by a button operation on a general mouse equipped with buttons (hereinafter referred to as a two-dimensional mouse), ie, click, double-click, drag, It determines which of the movements corresponds to AND and drop, generates a command corresponding to the determination result, and outputs it to the mouse driver 52.
[0072]
FIG. 4 is a diagram specifically illustrating an example of each of the click, double-click, and drag-and-drop instruction operations.
[0073]
Here, the xyz coordinate system is defined by setting the direction from the 3D measuring device 20 toward the hand of the instruction input user as the z-axis and a plane orthogonal to the z-axis as an xy plane including the x-axis and the y-axis. The direction away from the 3D measurement device 20 on the z-axis is defined as a plus direction.
[0074]
If the screen of the display 42 of the personal computer 30 and the position of the 3D measuring device 20 match, the z-coordinate value is the distance from the screen, and the screen can be regarded as a substantially xy plane.
[0075]
In the present embodiment, the movement of the click rapidly moves in a direction approaching the 3D measuring device 20 (minus direction of the z-axis) within a preset time, and then moves in the opposite direction (plus direction of the z-axis). ) (That is, one reciprocation on the z-axis), which corresponds to the movement A in the figure.
[0076]
The double-click movement is set as a movement in which the click movement is repeated twice continuously (that is, makes two reciprocations on the z-axis) within a preset time, and corresponds to the movement of B in the figure. I do.
[0077]
The movement of drag and drop is composed of the movement of drag and drop, and corresponds to the movement of C in the figure. The drag is set as a movement of rapidly moving in the minus direction of the z-axis and then slowly moving in the minus direction or on the xy plane after a preset time has elapsed. Note that there is no time limit for the movement of slowly moving in the minus direction or on the xy plane. Drop is set as a movement that moves rapidly in the positive direction of the z-axis.
[0078]
The personal computer 30 has a threshold value of the speed and acceleration associated with the movement (in this embodiment, V 0 , A 0 ) Is set as an absolute value, and a threshold value of the time associated with the movement (in this embodiment, T1 0 , T2 0 ) Is set. The command generation unit 50 compares the detected speed and acceleration with the set speed and acceleration thresholds, compares the time associated with the movement of the LED 10 with the set time threshold, and It is determined whether or not the movement corresponds to the previously set movement.
[0079]
In addition, by making a determination using the acceleration, the state where the LED 10 is rapidly moving and the state where the LED 10 is not moving, that is, the state where the instruction input person is consciously moving his / her hand, and the state where the instruction input person is consciously moving the hand, are free from the intention to input the instruction. It can be distinguished from the state where the hand is moving.
[0080]
Further, by making a determination using the speed, it is possible to recognize that the LED 10 has been moved by a certain distance, and it is possible to determine the actual movement of the LED 10. By using the speed as a judgment factor, it is possible to recognize a smaller movement as compared with a case where the movement distance itself is calculated and used from the three-dimensional position information.
[0081]
In FIG. 4, the state of acceleration is indicated by a solid arrow, and the state of speed is indicated by a dotted arrow.
[0082]
The mouse driver 52 receives a command from the 3D mouse / command generation device 50 and outputs the command to the OS 54.
[0083]
The OS 54 interprets a command input from the mouse driver 52 and executes a process corresponding to the command.
[0084]
The image driver 56 performs a process for displaying an image corresponding to the movement of the LED 10 on the display 42 under the control of the OS 54.
[0085]
Although not shown, the personal computer 32 also has a sound driver. The sound driver performs processing for causing the speaker 44 to emit a sound corresponding to the movement of the LED 10 under the control of the OS 54.
[0086]
Hereinafter, the instruction input processing according to the present embodiment will be described.
[0087]
The instruction input person moves the hand wearing the LED 10 in front of the 3D measuring device 20 (light receiving area). The position of the LED 10 changes according to the movement of the hand. The three-dimensional measuring device 20 measures the three-dimensional position of the LED 10 at predetermined time intervals. The three-dimensional measuring device 20 sequentially outputs the three-dimensional position information of the LED 10 to the personal computer 30.
[0088]
FIGS. 5 to 7 are flowcharts showing a main routine of the instruction input process performed by the CPU 34 of the personal computer 30.
[0089]
FIG. 8 is a diagram illustrating an example of the movement of the LED 10 corresponding to the double-click movement.
[0090]
8, the horizontal axis represents the time axis, and the vertical axis represents the z axis. Thick solid lines indicated by points B0 to B4 indicate the locus of movement of the LED 10. The thin solid arrow indicates the state of acceleration, and the dotted arrow indicates the state of speed.
[0091]
The movement of the LED 10 on the time axis indicated by the bold solid line, and the acceleration and speed associated with the movement are actually very small, but are exaggerated in the drawing.
[0092]
Hereinafter, the instruction input process will be described using the flowcharts of FIGS. 5 to 7 in comparison with FIG.
[0093]
Although not shown in each flowchart, the personal computer 30 inputs the three-dimensional position information of the LED 10 from the 3D measuring device 20 at predetermined time intervals. Then, every time an input is made, the speed and acceleration accompanying the movement of the LED 10 are detected based on the input three-dimensional position information. In the present embodiment, the velocity and acceleration on the z-axis are detected using the z-coordinate values included in the input three-dimensional position information.
[0094]
For example, the speed can be detected by dividing the difference between the z coordinate values of the three-dimensional position information by the time difference, and the acceleration can be detected by dividing the detected speed by the time difference. Since the direction away from the 3D measurement device 20 is the positive direction of the z-axis, if the LED 10 is moved in a direction away from the 3D measurement device 20, the signs of the speed and acceleration become +, and the 3D measurement device 20 If it is moved in the approaching direction, the signs of the speed and the acceleration become-.
[0095]
In step 100 of the flowchart of FIG. 5, the value obtained by adding a minus sign to the acceleration detected as described above is the acceleration threshold A 0 It is determined whether or not it has exceeded.
[0096]
As described above, if the LED 10 is moved in a direction approaching the 3D measuring device 20, the signs of the speed and the acceleration become-. Therefore, in this case, the speed and the acceleration have positive values by adding a minus sign. If the LED 10 is moved in a direction away from the 3D measurement device 20, the speed and the acceleration become negative values by adding a minus sign. Also, as described above, the threshold V 0 And threshold A 0 Is set as an absolute value.
[0097]
From this, the value obtained by adding a minus sign to the acceleration is the threshold A 0 Is determined, it is possible to determine whether or not the LED 10 has been moved in a direction approaching the 3D measurement device 20 with a sufficient acceleration.
[0098]
In step 100, -acceleration ≦ A 0 If it is determined that the above-mentioned condition is satisfied, the standby state is maintained until the next three-dimensional position information is input from the 3D measuring device 20. In FIG. 8, the state before the point B0 corresponds to the standby state.
[0099]
Also, -acceleration> A 0 If it is determined that this is the case (corresponding to the point B0 in FIG. 8), the instruction input person has moved his hand with his or her will, so the flow shifts to step 102 to start the timers T1 and T2.
[0100]
Here, the timer T1 is a timer used to measure the time from the start of movement in a certain direction to the start of movement in a direction opposite to the certain direction. For the timer T1, the threshold T1 0 Is set.
[0101]
The timer T2 is a timer used to determine a double-click movement. For the timer T2, the threshold T2 0 Is set.
[0102]
In step 104, the value obtained by adding a minus sign to the speed is the threshold value V 0 It is determined whether or not it has exceeded. Similarly to the acceleration, the speed is also given a minus sign so that the threshold V 0 Compare with
[0103]
In step 104, -speed≤V 0 If it is determined that the above is true, the process proceeds to step 116, the timers T1 and T2 are reset, and the process returns to the standby state.
[0104]
In step 104, -speed> V 0 If it is determined that the acceleration is equal to the point B1 in FIG. 0 It is determined whether or not it has exceeded. Here, for the sake of clarity of the movement direction of the LED 10, the acceleration is given a + sign for convenience.
[0105]
In step 106, + acceleration ≤ A 0 If it is determined that the threshold value T1 is satisfied, the process proceeds to step 108. 0 It is determined whether or not it has exceeded. Here, the timer T1 ≦ T1 0 If it is determined that is, the process returns to step 106, and then the speed and acceleration are detected and determined based on the three-dimensional position information input from the 3D measuring device 20.
[0106]
In step 106, + acceleration> A 0 If it is determined that the threshold value T1 is satisfied, the process proceeds to step 110. 0 It is determined whether or not:
[0107]
At step 110, the timer T1> T1 0 If it is determined that the movement of the LED 10 is not satisfied, the movement of the LED 10 does not correspond to any of the movements set in advance. Therefore, the processing shifts to step 116, the timers T1 and T2 are reset, and the processing returns to the standby state. At step 110, the timer T1 ≦ T1 0 If it is determined that the speed is less than or equal to the predetermined time, the operation of the LED 10 is performed within a preset time. 0 It is determined whether or not it has exceeded.
[0108]
In step 112, −speed ≦ V 0 If it is determined that the movement of the LED 10 is not satisfied, the movement of the LED 10 does not correspond to any of the movements set in advance. Therefore, the processing shifts to step 116, the timers T1 and T2 are reset, and the processing returns to the standby state. -Speed> V 0 If it is determined that the movement of the LED 10 is satisfied, the process proceeds to step 114 to perform a click process (corresponding to the point B2 in FIG. 8) because the movement of the LED 10 corresponds to the previously set movement of the click.
[0109]
More specifically, referring to the functional configuration diagram of FIG. 3, the command generation unit 50 outputs a command for instructing execution of a process associated with a click movement to the mouse driver 52. The command generation unit 50 outputs the command in the same format as a command by a button operation on the two-dimensional mouse. As a result, the OS 54 to which the command has been input via the mouse driver 52 can interpret the command and execute appropriate processing in the same manner as a two-dimensional mouse.
[0110]
After executing the click process in step 114, the process proceeds to step 120 in FIG. 6, where the timer T1 is reset and started. The processing after this step is processing for determining whether or not the movement of the LED 10 is a double-click movement.
[0111]
In step 122, the value obtained by adding a minus sign to the next detected acceleration is the threshold A 0 It is determined whether or not it has exceeded. -Acceleration ≤ A 0 If it is determined that the timer T1 is equal to 0 It is determined whether or not it has exceeded.
[0112]
At step 124, the timer T1> T1 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. At step 124, the timer T1 ≦ T1 0 If it is determined that is, the process returns to step 122, and then the speed and acceleration are detected and determined based on the three-dimensional position information input from the 3D measuring device 20.
[0113]
In step 122, -acceleration> A 0 If it is determined that the timer T1 is equal to 0 It is determined whether or not:
[0114]
At step 126, the timer T1> T1 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. At step 126, the timer T1 ≦ T1 0 If it is determined that the speed is the threshold V, 0 It is determined whether or not it has exceeded.
[0115]
In step 128, -speed ≦ V 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. In step 128, -speed> V 0 If it is determined that the time is not longer, the process proceeds to step 130, where the timer T1 is reset and started (corresponding to the point B3 in FIG. 8).
[0116]
In step 132, the next detected acceleration is the threshold A 0 It is determined whether or not it has exceeded. Here, + acceleration ≤ A 0 If it is determined that the timer T1 is equal to 0 It is determined whether or not it has exceeded.
[0117]
At step 134, the timer T1> T1 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. Timer T1 ≦ T1 0 If it is determined that is, the process returns to step 132, and then the speed and acceleration are detected and determined based on the three-dimensional position information input from the 3D measuring device 20.
[0118]
In step 132, + acceleration> A 0 If it is determined that the timer T1 is equal to the threshold T1, the process proceeds to step 136. 0 It is determined whether or not:
[0119]
In step 136, the timer T1> T1 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. Timer T1 ≦ T1 0 If it is determined that the timer T2 is equal to the threshold T2, the process proceeds to step 138. 0 It is determined whether or not:
[0120]
The timer T2 measures the time from when the click motion starts. Threshold T2 0 Is set in advance as the limit of the time required for the double-click movement. Therefore, the timer T2 and the threshold T2 0 Can be determined whether the movement of the LED 10 corresponds to the movement of the double click.
[0121]
At step 138, the timer T2> T2 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. Timer T2 ≦ T2 0 If it is determined that the speed is the threshold V, 0 It is determined whether or not it has exceeded.
[0122]
In step 140, + speed ≦ V 0 If it is determined that the time is not longer, the process proceeds to step 144, the timers T1 and T2 are reset, and the process returns to the standby state. + Speed> V 0 If it is determined that the movement of the LED 10 is satisfied, the process proceeds to step 142 to perform the double-click processing (corresponding to the point B4 in FIG. 8), since the movement of the LED 10 corresponds to the previously set double-click movement. .
[0123]
In the double-click processing, similarly to the click processing, the command generation unit 50 outputs a command for instructing execution of the processing associated with the double-click movement to the mouse driver 52. The OS 54 to which the command has been input via the mouse driver 52 can interpret the command in the same manner as a two-dimensional mouse, and execute appropriate processing corresponding to the double-click movement.
[0124]
After step 142, the process moves to step 144, resets the timers T1 and T2, and returns to the standby state.
[0125]
Note that the double-click motion is not particularly limited to FIG. 8 as long as the motion satisfies the above-described conditions of speed, acceleration, and time. For example, the start point of the second click on the z-axis (ie, point B2) does not need to be the same position as the start point of the first click on the z-axis (ie, point B0).
[0126]
On the other hand, in step 108 of FIG. 5, the timer T1> the threshold T1 0 If it is determined that the movement of the LED 10 is satisfied, the process moves to step 150 in FIG. 7 to perform the drag process because the movement of the LED 10 corresponds to the movement of the drag set in advance.
[0127]
Specifically, the command generation unit 50 outputs to the mouse driver 52 a command for instructing execution of the process associated with the drag motion, similarly to the click process. The OS 54 to which the command has been input via the mouse driver 52 interprets the command and executes an appropriate process corresponding to the drag movement.
[0128]
The drag process is a process that is usually performed after the click process. For example, an object such as an icon selected by the click process can be dragged (moved).
[0129]
After step 150, the process proceeds to step 152, where 0 It is determined whether or not it has exceeded. + Acceleration ≤ A 0 If it is determined that the drag process is performed, the process returns to step 150, and the drag process is continued. Also, + acceleration> A 0 If it is determined that the speed is equal to or smaller than the threshold V, 0 It is determined whether or not it has exceeded.
[0130]
In step 154, + speed ≦ V 0 If it is determined that the drag process is performed, the process returns to step 150, and the drag process is continued. + Speed> V 0 When it is determined that the movement of the LED 10 is satisfied, the process proceeds to step 156 to perform a drop process because the movement of the LED 10 corresponds to the movement of the preset drop.
[0131]
In the drop process, similarly to the drag, the command generation unit 50 outputs a command for instructing execution of the process associated with the drag motion to the mouse driver 52. The OS 54 to which the command has been input via the mouse driver 52 interprets the command and executes an appropriate process corresponding to the drag movement.
[0132]
After step 156, the process moves to step 158, resets the timers T1 and T2, and returns to the standby state.
[0133]
In step 108 of the above-described instruction input processing, the threshold value T1 is determined in order to determine whether the movement is a drag movement. 0 Is used, but the threshold T1 0 Alternatively, another threshold value may be provided, and the determination may be made based on the threshold value.
[0134]
In the present system, an object to be instructed to execute a process associated with a movement such as a click or a double-click (an object includes, for example, an icon, a folder, a button, or a data input position). Is performed at the same time as the main routine of the above-described instruction input process for performing a process of displaying a cursor for designating on the display 42. The cursor is displayed at a position corresponding to the size of the display 42 based on the x and y coordinate values included in the three-dimensional position information measured by the 3D measuring device 20. An object displayed at a position indicated by the cursor (hereinafter, referred to as a designated position) is to be processed. Actually, the designated position of the cursor corresponds to the display position of the cursor, and is represented by x and y coordinate values.
[0135]
Although the cursor can use the current display routine called from the OS, the program of the display processing routine for displaying the user-defined cursor or expression is previously designated as a subroutine of the above-mentioned instruction input processing routine. It is included in the input processing program.
[0136]
FIG. 9 is a flowchart showing a display processing routine. This display processing routine is executed every predetermined time.
[0137]
In step 180, three-dimensional position information is acquired.
[0138]
In step 182, the display position of the cursor is moved according to the three-dimensional position information. In the present embodiment, the display position of the cursor is moved according to the change in the x coordinate value and the y coordinate value included in the three-dimensional position information input from the 3D measuring device 20.
[0139]
When the command generation unit 50 outputs a command to the mouse driver 52, the command generation unit 50 includes information on the designated position of the cursor in the command and outputs the command. Accordingly, for example, when the movement of the LED 10 is a click movement, if an object such as an icon is displayed at the designated position of the cursor, a process of selecting the icon is executed. Further, even if an object such as an icon is not displayed, a process of selecting the designated position of the cursor itself is executed. Further, if a button is displayed at the designated position of the cursor, a process of pressing the button is executed.
[0140]
As described above, by displaying the cursor in accordance with the three-dimensional position information, it is possible to easily input and instruct the processing for the object displayed at the designated position of the cursor.
[0141]
As is clear from the flow of the instruction input process described above, after the click command is output and the icon or the position is selected (step 114), when the LED 10 is slowly moved (step 122, N In addition, since the standby state is maintained (Step 100, N), the cursor can be moved by the above-described display processing routine while maintaining the selected state. .
[0142]
As described above, the three-dimensional position information of the LED 10 is input, the speed and acceleration accompanying the movement of the LED 10 are detected, and based on the detected speed and acceleration, whether the movement of the LED 10 corresponds to the preset movement. Since it is determined whether or not to execute the process associated with the preset motion, it is possible to input the instruction without performing a mechanical operation such as a button operation or a relatively fine operation. it can.
[0143]
In addition, since a preset movement including time is set, and the time associated with the movement of the LED 10 is used as a judgment material in addition to the speed and acceleration, more movements can be set as preset movements.
[0144]
Note that, in the present embodiment, an example has been described in which the speed and the acceleration are detected using the difference between the z coordinate values of the three-dimensional position information, but the (x, y, z) coordinate values may be used instead of the z coordinate values. It is also possible to detect the speed and acceleration from. Further, in the present embodiment, an example has been described in which the motion is determined based on the speed and acceleration detected from the z-coordinate value. However, in other directions, for example, the speed in the up-down direction or the left-right direction for the instruction input person. Alternatively, the motion may be determined based on the acceleration. In that case, the position of the cursor may be moved based on a coordinate value on a two-dimensional plane orthogonal to the other direction.
[0145]
Also, the threshold A 0 , V 0 , T1 0 , T2 0 Can be arbitrarily changed. For example, the LED 10 is mounted on the hand of the user who inputs the instruction on a trial basis, the movement (three-dimensional position) is measured, and the speed, acceleration, and time associated with the movement of the hand of the input user are detected, and the detected value is detected. The setting of the threshold can be changed based on the threshold value. By setting the threshold value according to the instruction input person in this way, usability is further improved.
[0146]
In the present embodiment, an example in which an instruction is input only by the movement of the LED 10 has been described. However, for example, a switch or button for instruction input is provided separately from the LED 10, and the instruction input and the button press by the movement of the LED 10 are provided. It is also possible to properly use the instruction input by a mechanical operation such as.
[0147]
Further, although the description has been omitted in the above-described embodiment, other movements, for example, a mouse-down movement performed by a two-dimensional mouse (a movement in a state where a button is kept pressed) are also corresponding movements. Can be set in advance, and the execution of the process can be instructed by judging from the speed, acceleration, and time.
[0148]
[Second embodiment]
In the above-described first embodiment, an example has been described in which the movement is determined based on the speed and acceleration on the z-axis. However, when the x-coordinate value or the y-coordinate value changes during the movement of the LED 10, , Even if the conditions of the velocity and acceleration on the z-axis are satisfied, it can be determined that the movement does not correspond to the preset movement. In this case, each movement may be set as a movement in which the x and y coordinate values do not change from the start to the end of each movement.
[0149]
However, it is difficult for the user to actually move the hand while fixing the x and y coordinate values. Therefore, in the present embodiment, an example will be described in which an allowable range of x and y coordinate values is provided to determine a motion. Note that the configuration of the instruction input processing system of the present embodiment is the same as that of the first embodiment, and a description thereof will be omitted.
[0150]
In the double-click movement, for example, the step shown in FIG. 10 can be used instead of step 142 in FIG. 6 in the first embodiment.
[0151]
After step 140, in step 160, the x, y coordinate values in the first click movement and the x, y coordinate values in the second click movement are within a predetermined allowable range (for example, each coordinate value). Each time, it is determined whether it is within ± 5 × (3/100) mm).
[0152]
In FIG. 8, the x and y coordinate values in the first click movement may be the position of point B0 or the position of point B1 in FIG. Similarly, the x and y coordinate values in the second click movement may be the position of point B2 or the position of point B3.
[0153]
If it is determined in step 160 that the value exceeds the allowable range, the process proceeds to step 144 without performing the double-click process. Accordingly, if the change in the x-coordinate value or the y-coordinate value exceeds the allowable range and the movement of the LED 10 looks like a W-shaped locus, it is not regarded as a double-click movement.
[0154]
If it is determined in step 160 that the movement is within the allowable range, the movement of the LED 10 is determined to be a double-click movement, and a double-click process is performed in step 162.
[0155]
As described above, by providing an allowable range for the movement, the burden on the instruction input person is relatively reduced.
[0156]
In the present embodiment, an example has been described in which it is determined whether the x and y coordinate values of the points B0 (or B1) and B2 (or B3) in FIG. 8 are within an allowable range. The x and y coordinate values at the first B0 point are stored, and the x and y coordinate values of the B0 point when passing through the B1, B2, B3, and B4 points. May be determined for each coordinate value to determine whether the difference is within an allowable range. If it is determined at any point that it has exceeded the allowable range, it immediately returns to the standby state. When it is determined that the points B3 and B4 are out of the allowable range, the state in which the processing associated with the click movement is performed may be maintained.
[0157]
Further, in the present embodiment, an example has been described in which an allowable range is set for the x and y coordinate values and the motion is determined. However, the motion is determined by setting an allowable range for the speed in the x and y directions. You can also. For example, the speed in the x and y directions is detected together with the speed in the z-axis direction, and is used for determining the movement of the LED 10.
[0158]
In this case, if the difference between the velocities in the x and y directions exceeds the allowable range, it is determined that the movement of the LED 10 does not correspond to a preset movement.
[0159]
The determination may be made using both the x and y coordinate values and the speed in the x and y directions, or may be made using one of the allowable ranges.
[0160]
Further, the determination based on the allowable range is not limited to the double-click motion, and other motions (movements such as click and drag) can be similarly determined by providing an allowable range.
[0161]
Furthermore, even when the designated position of the cursor is slightly deviated from the object (for example, an icon, etc.) that the instruction input person wants to specify as a processing target, x and y are set so that the object is specified as a processing target. An allowable range of coordinate values may be set. Thus, it is possible to instruct execution of a process on a desired target without requiring a detailed operation.
[0162]
[Third Embodiment]
In the above-described first embodiment, when execution of a process associated with a movement such as a click or a double click is instructed (step 114, step 144, step 150, step 156), the designated position of the cursor is set. Is instructed to execute the process for the object displayed in. Specifically, when the command generation unit 50 outputs a command to the mouse driver 52, the command generation unit 50 includes information on the designated position of the cursor and outputs the command.
[0163]
However, as in the example shown in the second embodiment, if an allowable range is provided for the x and y coordinate values, the designated position of the cursor may change during the movement of the LED 10.
[0164]
In this case, it is necessary to set in advance which position information of a plurality of designated positions in the movement is to be included in the command and output.
[0165]
For example, when the position of the first click (the position of the point B0 or B1 in FIG. 8) of the LED 10 is different from the position of the second click (the position of the point B2 or B3 in FIG. 8) in the double-click movement. It is necessary to set in advance which position information is to be output to the mouse driver 52. In general, the position of the first click is often the position that the instruction input person wants to specify, so that information on the position may be included in the command (hereinafter, this processing is referred to as position lock). Do). In this case, information on the position of the first click is stored in a predetermined area of the RAM 38 until a command is output, and when the command is output, the information on the position is read from the predetermined area and used. Is required.
[0166]
In this case, the change of the x and y coordinate values is limited to the allowable range, but the display position of the cursor is fixed to the position of the first click, and the instruction input person is made to recognize the position. You can also.
[0167]
However, when drawing a continuous line segment with drawing software or the like to create a drawing, it is preferable to always use the latest x, y coordinate values. In this case, since the latest x and y coordinate values may be included in the command, unlike the case of position lock, there is no need for special processing such as reading out the stored position information.
[0168]
Although whether or not to lock the position may be set in advance, it may be determined whether or not to lock the position according to the process being executed.
[0169]
In the present embodiment, an example in which a determination is made according to a process being executed will be described with reference to FIG.
[0170]
In step 200, it is determined whether or not the process being executed on the personal computer 30 is a position lock prohibition process. For example, as described above, if the process being executed is a drawing process using drawing software, it is determined that position lock is prohibited.
[0171]
If an affirmative determination is made in step 200, the latest position information may be used, so the process proceeds to step 204, and an instruction is issued to execute a process associated with the determined movement. In this case, the command generation unit 50 includes the latest position information in the command and outputs the information to the mouse driver 52.
[0172]
If a negative determination is made in step 200, in step 202, the locked position information stored in a predetermined area of the RAM 38 (for example, in the case of a double-click movement, the first click Is read out. In step 204, execution of the process associated with the determined movement is instructed. In this case, the command generation unit 50 includes the information of the read position in the command and outputs it to the mouse driver 52.
[0173]
The timing at which the position information is stored in the RAM 38 can be set in advance. For example, in the case of a double-click movement, it is possible to set which point from point B0 to point B4 in FIG. 8 is stored.
[0174]
As described above, by outputting a command by designating any position information in the movement of the LED 10, it is possible to appropriately process even if the designated position of the cursor changes during the movement. Can be.
[0175]
[Fourth Embodiment]
In the present embodiment, a description will be given of a process in a case where a preset motion is set as a stationary state for a predetermined time. That is, the movement is determined based on time, not speed or acceleration.
[0176]
Note that the configuration of the instruction input processing system of the present embodiment is the same as that of the first embodiment, and a description thereof will be omitted.
[0177]
Hereinafter, a case will be described as an example where the preset double-click movement is constituted by the click movement shown in the first embodiment and a state in which the double-click movement is stationary for a predetermined time after the click movement. Will be explained. In this embodiment, as in the second embodiment, an allowable range is provided, and if the change in the position of the LED 10 is within the allowable range, it is determined that the LED 10 is stationary.
[0178]
The flow up to the click processing (step 114 in FIG. 5) is the same as that of the first embodiment, and thus the description is omitted. However, in this embodiment, since the timer T2 is not used, only the timer T1 is started in step 102 of FIG.
[0179]
The processing of this embodiment after step 114 will be described with reference to the flowchart in FIG.
[0180]
In step 300, the timer T1 is reset and started.
[0181]
In step 302, it is determined whether or not the timer T1 is less than a preset time threshold Tth. Tth is a preset threshold value of the stationary time.
[0182]
If it is determined in step 302 that T1 <Tth, in step 304, it is determined whether or not the LED 10 has moved from the first click position to a position beyond the allowable range. If a negative determination is made here, the process returns to step 302. If the determination is affirmative, it is determined that the movement of the LED 10 does not correspond to the double-click movement because the movement of the LED 10 is not stationary, and the process proceeds to step 308, where the timer T1 is reset. Return to the standby state.
[0183]
If it is determined in step 302 that T1 ≧ Tth, it is determined that the LED 10 is in a state of being stationary for a predetermined time, and thus it is determined that the LED 10 corresponds to a double-click movement. Perform processing.
[0184]
After step 306, the process proceeds to step 308, resets the timer T1, and returns to the standby state.
[0185]
As described above, since the movement of the LED 10 is determined using the time including the stationary state for a predetermined time in the predetermined movement, the processing amount of the personal computer 30 is reduced, and the LED 10 Can judge the movement. The operation of the instruction input person becomes relatively easy.
[0186]
[Fifth Embodiment]
In the fourth embodiment, the example in which the movement of the double click is determined based on the time has been described. In the present embodiment, not only the double click but also the movement of the click is determined based on the time. Will be described.
[0187]
The configuration of the instruction input processing system of the present embodiment is the same as that of the first embodiment, and a description thereof will be omitted.
[0188]
Here, an example will be described in which an icon is displayed on the display 42 and the icon is designated as a processing target. In addition, the click movement is set as a state of being stationary for a predetermined time, and the double-click movement is set as a state of being still for a predetermined time after the click movement. A state in which the LED 10 moves slowly after the movement of the LED 10 is determined to be a click movement is set as a drag movement. Further, a state in which a predetermined acceleration and speed are generated during the drag process is set as a drop motion.
[0189]
Note that the threshold value of the stationary time can be arbitrarily set.
[0190]
FIG. 13 is a flowchart showing a main routine of the instruction input process performed by the CPU 34 of the personal computer 30.
[0191]
In step 400, it is determined whether or not the designated position of the cursor matches the display position of the icon. If it is determined that they do not match, the process returns to the standby state. When it is determined that they match, the process proceeds to step 402, and after determining that they match, it is determined whether or not a predetermined time has elapsed without moving the cursor position.
[0192]
If a negative determination is made in step 402, the process returns to the standby state.
[0193]
If an affirmative determination is made in step 402, the movement of the LED 10 corresponds to the click movement.
[0194]
In step 406, it is determined whether or not the display position of the cursor at the time of the click processing (here, the same as the designated position) matches the current display position of the cursor.
[0195]
If an affirmative determination is made in step 406, it is determined in step 408 whether a predetermined time has elapsed. If a negative determination is made in step 408, the process returns to step 406. If an affirmative determination is made in step 408, the state is still for a predetermined period of time after the movement of the click, and the movement of the LED 10 corresponds to the movement of the double click.
[0196]
On the other hand, if it is determined in step 406 that the display position of the cursor at the time of the click processing does not match the current display position of the cursor, the process proceeds to step 412, where the absolute value of the detected speed (here, z (In either the plus direction or the minus direction on the axis) 0 It is determined whether it is less than.
[0197]
At step 412, speed <V 0 If it is determined that the LED is moving, the process moves to step 414 and the drag process is performed because the LED 10 is moving slowly.
[0198]
Next, in step 416, the acceleration is set to the threshold value A. 0 It is determined whether or not it has exceeded.
[0199]
At step 416, acceleration ≦ A 0 If it is determined that the state is “1”, the state in which the LED 10 is moving slowly is continued, and the process returns to step 414 to continue the drag process.
[0200]
In step 416, acceleration> A 0 If it is determined that the speed is equal to or less than the threshold V 0 It is determined whether or not it has exceeded.
[0201]
At step 418, speed ≦ V 0 If it is determined that the state is “1”, the state in which the LED 10 is moving slowly is continued, and the process returns to step 414 to continue the drag process.
[0202]
In step 418, speed> V 0 If it is determined that the movement of the LED 10 corresponds to the movement of the drop, the process proceeds to step 420 to perform the drop processing.
[0203]
If it is determined in step 412 that the speed is equal to or greater than V0, the operation of the LED 10 does not correspond to any of the operations, and the process ends without performing any operation.
[0204]
As described above, when the cursor displayed by the movement of the LED 10 is displayed at the same position for a predetermined time (when it is stationary), the icon at that position is selected or opened. It is possible.
[0205]
In the present embodiment, the judgment on the allowable range of the x and y coordinate values is omitted, but in the present embodiment, an allowable range is provided similarly to the second embodiment, and the position of the LED 10 is changed. If is within the allowable range, it may be determined in step 406 that the display position of the cursor at the time of the click processing matches the current display position of the cursor (that is, the cursor is stationary).
[0206]
At this time, it is also preferable to set the allowable range of the change (x, y coordinate values) of the display position of the cursor to, for example, (± 5 × 3/100 mm). Further, in the present embodiment, an example in which the speed is used to determine the movement of the drag has been described. However, the allowable range for determining the movement of the click or the double click is the first allowable range, and the movement of the drag is determined. A second permissible range (a range wider than the first permissible range) for determination is provided separately from the first permissible range, and the cursor moves beyond the first permissible range to be within the second permissible range. If the state remains for a predetermined period of time, it may be determined that the movement is a drag movement.
[0207]
It is also preferable to start dragging when the z-coordinate value of the LED 10 moves in a direction in which the z-coordinate value decreases within a predetermined time, that is, when the LED 10 moves in a direction approaching the 3D measurement device.
[0208]
As described above, it is also possible to configure an algorithm in the order of time, acceleration, and speed (or only time).
[0209]
Thereby, the processing amount of the personal computer 30 is reduced, and the movement of the LED 10 can be easily determined. The operation of the instruction input person becomes relatively easy.
[0210]
[Sixth Embodiment]
In the present embodiment, time-series information (hereinafter, referred to as a time-series pattern) of a three-dimensional position indicating a movement such as a click or a double-click is stored in the HDD 46 or the ROM 36, and the time-series pattern is used. Next, an example of determining the movement of the LED 10 will be described. The configuration of the instruction input processing system of the present embodiment is also the same as that of the first embodiment, and a description thereof will be omitted.
[0211]
The command generation unit 50 inputs the three-dimensional position information measured from the 3D measurement device 20 at predetermined time intervals. The command generation unit 50 sequentially stores the input position information in a predetermined area of the RAM 38 to obtain time-series position information of the LED 10.
[0212]
The area for storing the input position information may have, for example, a ring-shaped data structure. The newly input three-dimensional position information is overwritten on the area storing the oldest data in the ring-shaped storage area.
[0213]
FIG. 14 is a flowchart showing a processing routine for storing position information, which is performed every predetermined time.
[0214]
In step 500, three-dimensional position information is acquired from the 3D measuring device 20.
[0215]
In step 502, the acquired three-dimensional position information is overwritten on the area in the RAM 38 where the oldest data is stored.
[0216]
Thereby, time-series data of the three-dimensional position information is obtained.
[0219]
FIG. 15 is a flowchart showing an instruction input processing routine for performing instruction input processing using a time-series pattern, which is performed at predetermined time intervals. The program of this instruction input processing routine is stored in a storage medium such as the HDD 46 and executed by the CPU 34 as in the first embodiment.
[0218]
In step 600, time-series three-dimensional position information from the current time to a time before a predetermined time Ta is fetched from the RAM.
[0219]
In step 602, p is set to 0. p is a counter for sequentially matching all the time-series patterns stored in advance with the trajectory represented by the acquired position information.
[0220]
In step 604, p is incremented.
[0221]
In step 606, the stored p-th time-series pattern is matched with the trajectory represented by the acquired position information.
[0222]
Here, an example of a time-series pattern that is stored in advance is shown in FIGS. 16 and 17.
[0223]
FIG. 16 is an example of a time-series pattern showing a click movement, and FIG. 17 is an example of a time-series pattern showing a double-click movement. In the present embodiment, for example, these time-series patterns are matched with a previously acquired trajectory pattern to determine which time-series pattern the movement of the LED 10 corresponds to.
[0224]
In step 608, the matching result is stored in a predetermined area of the RAM 38.
[0225]
For example, the similarity may be converted into a numerical value by using a method such as scaling or the least squares method, and this may be stored as a matching result with the p-th time-series pattern.
[0226]
In step 610, the counter p and the total number p of the time series patterns stored in advance are set. 0 And p> p 0 Is determined. p ≦ p 0 If it is determined that is, the process returns to step 604, and the process of incrementing p and matching the next time-series pattern with the trajectory represented by the captured position information is repeated.
[0227]
In step 610, p> p 0 When it is determined that the matching is completed, the matching between the trajectory represented by the acquired position information and all the time-series patterns is completed. Select
[0228]
Next, in step 614, a local maximum value and a local minimum value are determined from the acquired position information. Specifically, if the selected time-series pattern is a time-series pattern indicating a click movement, one maximum value and one minimum value are determined. If the selected time-series pattern is a time-series pattern indicating a double-click movement, one maximum value and two minimum values are determined.
[0229]
In step 616, time-series position information is divided based on the local maximum value and the local minimum value. For example, if the movement of the LED 10 is the movement shown in FIG. 8, the time-series position information is divided into four from the two minimum values and one maximum value of the z coordinate value. That is, the data is divided into four pieces of data from point B4 to point B3, point B3 to point B2, point B2 to point B1, and point B1 to the end of the time-series position information.
[0230]
In step 618, the speed and the acceleration are calculated for each of the divided data. The sign of the speed or the acceleration changes depending on the moving direction of the LED 10, but it is sufficient to see only the absolute value here.
[0231]
Various methods can be used for calculating the speed. As described in the first embodiment, the speed may be calculated by dividing the difference between the z-coordinate values of the divided data by the time difference. Is determined by calculating the difference between the z-coordinate value at an arbitrary time within the time frame and the z-coordinate value at a time shifted by the time frame from the time, and dividing by the time frame. You can also.
[0232]
The acceleration can be obtained, for example, as follows. A difference between continuous position information in the divided data is obtained to generate new time-series data. A frame Tm on an arbitrary time axis is provided for the generated time-series data, and time-series data at an arbitrary time within the frame Tm and time-series data at a time shifted from the time by the frame Tm are provided. When the difference is obtained and divided by the frame Tm, the acceleration is obtained.
[0233]
The method for obtaining the speed and acceleration is not particularly limited, and any method may be used.
[0234]
In step 620, the movement of the LED 10 is verified based on the obtained speed and acceleration.
[0235]
Specifically, it is determined whether or not each of the acceleration and the speed for each of the divided data exceeds a preset threshold. Here, if it is determined that at least one does not exceed the threshold, the verification result is NG. If it is determined that all the accelerations and velocities exceed the threshold, the verification result is OK.
[0236]
FIG. 18 shows an example of the state of the speed in the movement of the click, and FIG. 19 shows an example of the state of the speed in the movement of the double click. In this figure, the speed is represented by an absolute value. V shown 0 Is the speed threshold. In addition, in order to make the points easy to understand, the speed is represented by a simple mountain shape.
[0237]
As shown in the drawing, if the speed of each of the two divided data exceeds the threshold value, the verification result is OK. In the double click, if each speed of the four divided data exceeds the threshold value, the verification result is OK.
[0238]
In step 622, it is determined whether the verification result is OK. When it is determined that the verification result is NG, the movement of the LED 10 does not correspond to the movement indicated by the selected time-series pattern, and thus the process ends.
[0239]
If it is determined in step 622 that the verification result is OK, the process proceeds to step 624 to instruct execution of a process associated with the motion indicated by the selected time-series pattern.
[0240]
It should be noted that the specific processing of step 624 is performed in each step (step 114, step 144, step 150, step 150, and step 150) of instructing the execution of the processing associated with the movement such as the click or the double click in the first embodiment. 156), and the description is omitted.
[0241]
For the divided data, the speed and acceleration are sequentially calculated for each of the divided data and compared with the threshold. If it is determined that the threshold has not been exceeded for a certain divided data, the speed and the acceleration for the remaining divided data are determined. The processing may be terminated immediately without calculating the acceleration.
[0242]
Further, the method of selecting the time-series pattern is not limited to the above-described example, and the following method can be adopted. For example, characteristics of a time-series pattern indicating a click or a double-click movement are stored in advance.
[0243]
For example, for a time-series pattern indicating a click movement, a feature that one minimum value exists in the z-coordinate value is stored in advance. In addition, as for the time-series pattern indicating the movement of the double click, the feature that two consecutive local minimum values exist in the z coordinate value is stored.
[0244]
Thereby, it is determined whether or not the trajectory represented by the acquired position information has the characteristic, and matching is performed. Specifically, when it is determined that only one local minimum exists in the trajectory represented by the captured time-series position information, a time-series pattern indicating a click movement is selected, and two consecutive patterns are displayed. If it is determined that a local minimum exists, a time-series pattern indicating a double-click movement can be selected.
[0245]
As described above, since the movement of the LED 10 is determined using the time-series pattern in addition to the speed and the acceleration, the movement can be determined with higher accuracy.
[0246]
[Seventh Embodiment]
In the present embodiment, an example will be described in which the movement of the LED 10 is determined only by the time-series pattern without performing the processing for calculating and verifying the speed and the acceleration. The configuration of the instruction input processing system of the present embodiment is also the same as that of the first embodiment, and a description thereof will be omitted.
[0247]
Here, an area in which the 3D measuring device 20 recognizes light emission of the LED 10 is defined as a rectangular parallelepiped on the front surface of the 3D measuring device 20.
[0248]
FIG. 20 shows an example of a time-series pattern. From the vicinity (F) of the recognition area defined as a rectangular parallelepiped on the front surface of the 3D measuring device 20, the upper surface (E) of the rectangular parallelepiped, or the left surface or the right surface , And moves to the non-recognition area (G).
[0249]
Such a time-series pattern has the following features.
[0250]
The change in the time-series data of the x, y, and z coordinate values is a monotonous change. Since the LED 10 moves out of the recognition area, a state occurs in which the 3D measurement device 20 cannot recognize.
[0251]
Therefore, when the LED 10 shows a movement having such characteristics, it can be determined that the movement corresponds to this time-series pattern.
[0252]
When the time series pattern is recognized, for example, the present system may be shut down.
[0253]
FIG. 21 is also an example of a time-series pattern, and shows a movement in which the LED 10 is temporarily stopped in the recognition area, and thereafter, an arc is drawn in the recognition area.
[0254]
This arc-drawing motion (eg, clockwise, moving from bottom to top, and back again) has the characteristic that the next stop position is within a predetermined allowable range from the first pause position. .
[0255]
Further, the upper left corner toward the 3D measuring device 20 is defined as 0 as the origin, the x axis is defined as the + direction from the origin, the y axis is defined as the + direction, and the z axis is defined as the + direction as the forward direction. When the x, y, z coordinate system is defined by the following, the following features are provided.
[0256]
The x-coordinate value between the two stop positions changes so as to be monotonically decreasing, extremely small, and monotonically increasing.
[0257]
The y-coordinate value between the two stop positions changes to be monotonically decreasing, minimal, monotonically increasing, maximal, monotonically decreasing.
[0258]
Therefore, if the x-coordinate value and the y-coordinate value simultaneously satisfy these characteristics in this section, it can be determined that the time-series pattern is applicable. When the time-series pattern is recognized, for example, a process of enlarging and displaying the entire screen of the display may be executed.
[0259]
Further, in order to instruct execution of the process of restoring the display, a time-series pattern in which the drawing direction of the arc is counterclockwise may be separately set. Further, each time the arc is rotated, the display may be changed at a predetermined enlargement ratio and reduction ratio. Further, the movement of the arc may be a movement on the xz-axis plane instead of the movement on the xy-axis plane.
[0260]
Note that when drawing an arc in the air, it is relatively difficult to return the hand to the exact same position again from the first stop position, so that the first stop position and the next stop position are provided with an allowable range as appropriate. It is preferred to do so.
[0261]
[Eighth Embodiment]
In the present embodiment, an example will be described in which the display state of the cursor is changed or the sound is generated based on the speed so that the instruction input person can recognize the state of the movement of the LED 10.
[0262]
In the present embodiment, an extended cursor is displayed separately from a general cursor.
[0263]
Here, the extended cursor will be described. On the desktop displayed on the display 42 of the personal computer 30, a small area including a point at which a general cursor designates an object (corresponding to the designated position described above) is surrounded by an arc or the like and displayed again as a small window. is there.
[0264]
As shown in FIGS. 22A and 22B, the inside of a circle centered on the designated position 30 is displayed in a small window (extended cursor) 72. The general cursor 74 is displayed so as to be superimposed on the inside of the extended cursor 72, particularly at the center. The extended cursor 32 is displayed by the OS 54 using the image driver 56.
[0265]
In the present embodiment, a processing routine shown in FIG. 23 is executed instead of the display processing routine described in the first embodiment. This routine is executed every predetermined time.
[0266]
In step 700, three-dimensional position information is fetched.
[0267]
At step 702, the speed is detected. Since the detection method is the same as that of the first embodiment, the description is omitted here.
[0268]
At step 704, it is determined whether or not the detected speed Vk has exceeded a preset threshold value Vth. If an affirmative determination is made here, the process proceeds to step 706, where the size of the extended cursor 72 is enlarged. Further, in step 708, the enlargement ratio of the image in the extended cursor 72 is increased according to the detected speed Vk. Further, in step 710, a sound corresponding to the speed is generated from the speaker 44.
[0269]
FIG. 22A shows a state where the size of the extension cursor 72 is enlarged and the enlargement ratio of the image in the extension cursor 72 is increased.
[0270]
In step 712, the display positions of the cursor 74 and the extended cursor 72 are moved according to the three-dimensional position information.
[0271]
On the other hand, if a negative determination is made in step 704, the process moves to step 712, where only cursor movement processing is performed.
[0272]
FIG. 22B shows a state of the extended cursor when the speed is not sufficient. As shown in the figure, the radius of the extended cursor 72 is minimum, and the image in the circle is the same as the background, that is, the magnification is 1.
[0273]
As described above, when the speed of the extended cursor 72 is not sufficient, the extended cursor 72 is displayed in a small size, and as the speed increases, the size is increased. It can be moved, and instruction input becomes easy.
[0274]
It is also possible to control so that the extended cursor 72 is not always displayed, but is displayed if the speed is higher than a predetermined value, and is not displayed if the speed is extremely reduced. Conversely, it is also possible to display when the speed is lower than a predetermined value, and not to display when the speed is extremely increased.
[0275]
In addition, as described in step 710, generating a unique sound in accordance with the speed assists the operation of the instruction input person, and is suitable for the visually impaired. This allows the instruction input person to recognize how fast the hand should be moved.
[0276]
Further, the color such as the hue of the cursor 74 or the extended cursor 72 can be changed according to the speed. Further, it is also possible to allow the instruction input user to arbitrarily set the change of the display state and the size (for example, radius or the like) of the extended cursor.
[0277]
As described above, as described in each embodiment, the movement of the LED 10 is determined based on the speed and the acceleration accompanying the movement of the LED 10. Regardless of the distance from the measurement device 20, operations such as click, double-click, and drag can be performed without using a mechanical mechanism.
[0278]
Further, the present invention is not limited to the above-described embodiment, and can be applied not only to the operation of a personal computer but also to the operation of a touch panel such as a copier or an ATM of a financial institution. Thereby, the operation of the touch panel can be performed without touching the screen.
[0279]
Further, the present invention can be applied to ON / OFF operation of a switch.
[0280]
【The invention's effect】
The present invention determines whether or not the movement of the light emitting unit corresponds to a predetermined movement based on a physical quantity related to the speed accompanying the movement of the light emitting unit, and determines that the movement of the light emitting unit corresponds to the predetermined movement. In this case, the user is instructed to execute a process associated with the predetermined motion, so that there is an effect that an instruction can be input without requiring a mechanical operation or a relatively fine operation.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration of an instruction input system including a personal computer having a function as an instruction input device according to a first embodiment of the present invention.
FIG. 2 is a diagram showing a specific configuration of a personal computer.
FIG. 3 is a diagram functionally showing a configuration of a personal computer main body.
FIG. 4 is a diagram specifically showing an example of each of click, double-click, and drag-and-drop instruction operations.
FIG. 5 is a flowchart showing a main routine of an instruction input process performed by a CPU of the personal computer.
FIG. 6 is a flowchart showing a main routine of an instruction input process performed by a CPU of a personal computer.
FIG. 7 is a flowchart illustrating a main routine of an instruction input process performed by a CPU of the personal computer.
FIG. 8 is a diagram illustrating an example of the movement of an LED corresponding to the movement of a double click.
FIG. 9 is a flowchart illustrating a display processing routine.
FIG. 10 is a flowchart illustrating a part of a main routine of an instruction input process according to the second embodiment.
FIG. 11 is a flowchart illustrating a processing routine for determining whether or not to lock a position according to a process being executed in the third embodiment;
FIG. 12 is a flowchart illustrating a part of a main routine of an instruction input process according to the fourth embodiment.
FIG. 13 is a flowchart illustrating a main routine of an instruction input process according to the fifth embodiment.
FIG. 14 is a flowchart illustrating a processing routine for storing position information according to a sixth embodiment.
FIG. 15 is a flowchart illustrating an instruction input processing routine for performing instruction input processing using a time-series pattern according to the sixth embodiment.
FIG. 16 is an example of a time-series pattern showing a click movement.
FIG. 17 is an example of a time-series pattern showing a double-click movement.
FIG. 18 is a diagram illustrating an example of a speed state in a click movement.
FIG. 19 is a diagram illustrating an example of a speed state in a double-click movement.
FIG. 20 is an example of a time-series pattern according to the seventh embodiment.
FIG. 21 is an example of a time-series pattern according to the seventh embodiment.
FIG. 22A is a diagram showing a state where the size of the extension cursor is enlarged and the enlargement ratio of an image in the extension cursor is increased. FIG. 22B shows a case where the speed is not sufficient. 5 is a diagram showing a state of an extended cursor of FIG.
FIG. 23 is a flowchart showing a processing routine according to the eighth embodiment.
[Explanation of symbols]
10 LED
20 3D measuring device
30 PC
34 CPU
36 ROM
38 RAM
40 I / O
42 Display
44 Speaker
46 HDD
50 Command generator

Claims (24)

指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力手段と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出手段と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断手段と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示手段と、
を含む指示入力装置。
Input means for inputting position information of the light emitting means measured based on a light receiving state of light emitted from the light emitting means which can be worn by the instruction input person;
Based on the input position information, detecting means for detecting a physical quantity related to the speed accompanying the movement of the light emitting means,
Determining means for determining whether or not the movement of the light emitting means corresponds to a predetermined movement based on the detected physical quantity relating to the speed;
Instructing means for instructing execution of a process associated with the predetermined movement, when it is determined that the movement of the light emitting means corresponds to a predetermined movement,
An instruction input device including:
各々異なる複数の予め定められた動きを示す動き情報を記憶する記憶手段を備え、
前記判断手段は、
前記記憶された複数の動き情報から前記発光手段の動きに対応する少なくとも1つの動き情報を選択する選択手段と、
前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する検証手段と、
を含む請求項1記載の記載の指示入力装置。
Comprising storage means for storing movement information indicating a plurality of different predetermined movements,
The determining means includes:
Selecting means for selecting at least one piece of motion information corresponding to the motion of the light emitting means from the plurality of stored pieces of motion information;
Verification means for verifying whether or not the movement of the light emitting means corresponds to the movement indicated by the movement information selected by the selection means,
The instruction input device according to claim 1, further comprising:
前記動き情報は、位置の時系列の情報であり、
前記入力手段は、前記位置情報を時系列に入力し、
前記選択手段は、前記時系列に入力された位置情報に基づいて、前記少なくとも1つの動き情報を選択する請求項2記載の指示入力装置。
The motion information is time-series information of a position,
The input means inputs the position information in time series,
The instruction input device according to claim 2, wherein the selection unit selects the at least one piece of motion information based on the position information input in a time series.
前記検証手段は、前記検出された速さに関する物理量に基づいて、前記発光手段の動きが前記選択手段で選択された動き情報により示される動きに対応するか否かを検証する請求項2または請求項3記載の指示入力装置。3. The method according to claim 2, wherein the verification unit verifies whether or not the movement of the light emitting unit corresponds to the movement indicated by the movement information selected by the selection unit based on the detected physical quantity related to the speed. Item 3. The instruction input device according to Item 3. 前記速さに関する物理量は、前記発光手段の動きに伴う加速度及び速度の少なくとも1つである請求項1乃至請求項4のいずれか1項記載の記載の指示入力装置。The instruction input device according to any one of claims 1 to 4, wherein the physical quantity related to the speed is at least one of an acceleration and a speed associated with a movement of the light emitting unit. 処理の実行が指示される対象情報、及び該対象情報を指定するための指定情報を表示する表示手段と、
前記入力された位置情報の変化に対応して前記指定情報の位置が変化するように前記表示手段を制御する表示制御手段と、
を更に備え、
前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記指定情報により指定された前記対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示する請求項1乃至請求項5のいずれか1項記載の指示入力装置。
Display means for displaying target information for which execution of processing is instructed, and designation information for designating the target information;
Display control means for controlling the display means such that the position of the designated information changes in response to the change of the input position information,
Further comprising
The instruction means, when it is determined that the movement of the light emitting means corresponds to a predetermined movement, for the target information designated by the designation information, a process associated with the predetermined movement The instruction input device according to any one of claims 1 to 5, which instructs execution.
前記指示手段は、前記発光手段の動きが予め定められた動きに対応すると判断された前記発光手段の動きの中で、前記指定情報により指定された対象情報について、前記予め定められた動きに対応付けられた処理の実行を指示する請求項6記載の指示入力装置。The instructing means may correspond to the predetermined movement for the target information designated by the designation information, among the movements of the light emitting means determined to correspond to the movement of the light emitting means. 7. The instruction input device according to claim 6, which instructs execution of the attached processing. 前記予め定められた動きは、所定の方向を1往復する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。The instruction input device according to any one of claims 1 to 7, wherein the predetermined movement is a movement that makes one reciprocation in a predetermined direction. 前記予め定められた動きは、所定の時間以内の所定の方向を1往復する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項8記載の指示入力装置。
The predetermined motion is a motion that makes one reciprocation in a predetermined direction within a predetermined time,
Comprising calculating means for calculating the time accompanying the movement of the light emitting means,
9. The method according to claim 8, wherein the determining unit determines whether the movement of the light emitting unit is the predetermined movement based on the detected physical quantity relating to the speed and the time calculated by the calculating unit. Instruction input device.
前記予め定められた動きは、所定の方向を2往復する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。The instruction input device according to any one of claims 1 to 7, wherein the predetermined movement is a movement that reciprocates two times in a predetermined direction. 前記予め定められた動きは、所定の時間以内の所定の方向を2往復する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項10記載の指示入力装置。
The predetermined motion is a motion of reciprocating two times in a predetermined direction within a predetermined time,
Comprising calculating means for calculating the time accompanying the movement of the light emitting means,
The method according to claim 10, wherein the determining unit determines whether the movement of the light emitting unit is the predetermined movement based on a physical quantity related to the detected speed and a time calculated by the calculating unit. Instruction input device.
前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。The predetermined movement is to move in a predetermined direction, move in the predetermined direction, and further move in the predetermined direction, a direction orthogonal to the predetermined direction, or a direction sandwiched by both directions. The instruction input device according to any one of claims 1 to 7, wherein the instruction is a movement. 前記予め定められた動きは、所定の方向に移動すると共に、該所定の方向に移動した後、所定の時間経過してから、更に該所定の方向或いは該所定の方向と直交する方向或いは該両方向に挟まれた方向に移動する動きであり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが前記予め定められた動きであるか否かを判断する請求項12記載の指示入力装置。
The predetermined movement is to move in a predetermined direction, and after moving in the predetermined direction, after a predetermined time has elapsed, further move in the predetermined direction, a direction orthogonal to the predetermined direction, or both directions. It is a movement that moves in the direction between
Comprising calculating means for calculating the time accompanying the movement of the light emitting means,
13. The method according to claim 12, wherein the determination unit determines whether the movement of the light emitting unit is the predetermined movement based on a physical quantity related to the detected speed and a time calculated by the calculation unit. Instruction input device.
前記予め定められた動きは、所定の方向と逆の方向に移動する動きである請求項1乃至請求項7のいずれか1項記載の指示入力装置。The instruction input device according to claim 1, wherein the predetermined movement is a movement that moves in a direction opposite to a predetermined direction. 前記予め定められた動きは、静止している状態である請求項1乃至請求項7のいずれか1項記載の指示入力装置。The instruction input device according to claim 1, wherein the predetermined movement is a stationary state. 前記予め定められた動きは、所定の時間静止している状態であり、
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出手段により算出された時間に基づいて、前記発光手段の動きが、前記所定の時間静止している状態であるか否かを判断する請求項15記載の指示入力装置。
The predetermined movement is a state in which the predetermined movement is stationary for a predetermined time,
Comprising calculating means for calculating the time accompanying the movement of the light emitting means,
The determining means determines whether or not the movement of the light emitting means is in a stationary state for the predetermined time based on the physical quantity relating to the detected speed and the time calculated by the calculating means. The instruction input device according to claim 15.
前記発光手段の動きに伴う時間を算出する算出手段を備え、
前記判断手段は、前記検出された速さに関する物理量及び前記算出された時間に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する請求項1乃至請求項7のいずれか1項記載の記載の指示入力装置。
Comprising calculating means for calculating the time accompanying the movement of the light emitting means,
8. The method according to claim 1, wherein the determining unit determines whether the movement of the light emitting unit corresponds to a predetermined movement based on the detected physical quantity related to the speed and the calculated time. The instruction input device according to any one of the preceding claims.
前記判断手段が前記発光手段の動きが予め定められた動きに対応するか否かを判断する際、前記発光手段の動き又は前記予め定められた動きに許容量を持たせて判断する請求項1乃至請求項17のいずれか1項記載の指示入力装置。2. The method according to claim 1, wherein the determining unit determines whether the movement of the light emitting unit corresponds to a predetermined movement by giving an allowable amount to the movement of the light emitting unit or the predetermined movement. The instruction input device according to claim 17. 前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の表示状態を変化させるように制御する請求項6乃至請求項18のいずれか1項記載の指示入力装置。19. The instruction input device according to claim 6, wherein the display control unit controls to change a display state of the instruction information based on a physical quantity related to the detected speed. 前記表示制御手段は、前記検出された速さに関する物理量に基づいて前記指示情報の形状、大きさ、色の少なくとも1つを変化させるように制御する請求項19記載の指示入力装置。20. The instruction input device according to claim 19, wherein the display control unit controls to change at least one of a shape, a size, and a color of the instruction information based on a physical quantity related to the detected speed. 前記表示制御手段は、前記指定情報の位置から所定の距離以内に表示される対象情報の大きさを変化させるように制御する請求項20記載の指示入力装置。21. The instruction input device according to claim 20, wherein the display control unit controls to change a size of target information displayed within a predetermined distance from a position of the designated information. 音声を出力するための発音手段と、
前記検出された速さに関する物理量に基づいて発音状態を変化させるように前記発音手段を制御する音声出力制御手段と、
を更に備えた請求項1乃至請求項21のいずれか1項記載の指示入力装置。
Sounding means for outputting voice;
Sound output control means for controlling the sounding means so as to change a sounding state based on the physical quantity relating to the detected speed,
The instruction input device according to any one of claims 1 to 21, further comprising:
指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて該発光手段の位置情報を計測する計測工程と、
前記計測工程で計測された位置情報を入力する入力工程と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、
を含む指示入力方法。
A measuring step of measuring position information of the light emitting means based on a light receiving state of light emitted from the light emitting means that can be worn by the instruction input person,
An input step of inputting the position information measured in the measurement step,
Based on the input position information, a detection step of detecting a physical quantity related to the speed accompanying the movement of the light emitting unit,
A determining step of determining whether or not the movement of the light emitting unit corresponds to a predetermined movement based on the detected physical quantity related to the speed;
An instruction step of instructing execution of a process associated with the predetermined movement when it is determined that the movement of the light emitting unit corresponds to a predetermined movement;
Instruction input method including.
コンピュータに、
指示入力者に装着可能な発光手段から発光された光の受光状態に基づいて計測された該発光手段の位置情報を入力する入力工程と、
前記入力された位置情報に基づいて、前記発光手段の動きに伴う速さに関する物理量を検出する検出工程と、
前記検出された速さに関する物理量に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断する判断工程と、
前記発光手段の動きが予め定められた動きに対応すると判断された場合に、前記予め定められた動きに対応付けられた処理の実行を指示する指示工程と、
を実行させるためのプログラム。
On the computer,
An input step of inputting position information of the light emitting unit measured based on a light receiving state of light emitted from the light emitting unit that can be worn by the instruction input person;
Based on the input position information, a detection step of detecting a physical quantity related to the speed accompanying the movement of the light emitting unit,
A determining step of determining whether or not the movement of the light emitting unit corresponds to a predetermined movement based on the detected physical quantity related to the speed;
An instruction step of instructing execution of a process associated with the predetermined movement when it is determined that the movement of the light emitting unit corresponds to a predetermined movement;
The program to execute.
JP2003138645A 2003-05-16 2003-05-16 Instruction input device, instruction input method, and program Pending JP2004341892A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003138645A JP2004341892A (en) 2003-05-16 2003-05-16 Instruction input device, instruction input method, and program
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 (en) 2003-05-16 2003-05-16 Instruction input device, instruction input method, and program

Publications (1)

Publication Number Publication Date
JP2004341892A true JP2004341892A (en) 2004-12-02

Family

ID=33410809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003138645A Pending JP2004341892A (en) 2003-05-16 2003-05-16 Instruction input device, instruction input method, and program

Country Status (2)

Country Link
US (1) US20040227741A1 (en)
JP (1) JP2004341892A (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005070996A (en) * 2003-08-22 2005-03-17 Fuji Xerox Co Ltd Instruction input device, instruction input system, instruction input method, and program
JP2007104523A (en) * 2005-10-07 2007-04-19 Sony Corp Remote control system, device and method for remote control, device and method for information processing, and computer program
JP2009252241A (en) * 2008-04-01 2009-10-29 Crucialtec Co Ltd Optical pointing device, and click recognition method using the same
JP2018032426A (en) * 2005-12-30 2018-03-01 アップル インコーポレイテッド Portable electronic apparatus including interface reconfiguration mode
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 (en) * 2015-10-14 2020-05-14 マクセル株式会社 Operation method
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)

* Cited by examiner, † Cited by third party
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 (en) * 2005-02-23 2006-10-05 Matsushita Electric Works Ltd Input unit and environment control system using the same
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 (en) * 2008-04-07 2009-10-08 Volkswagen Ag Displaying and operating device for vehicle, has display device, touch-sensitive position detection unit coupled with display device, and controller which is coupled with display device and position detection unit
US10019081B2 (en) * 2009-01-15 2018-07-10 International Business Machines Corporation Functionality switching in pointer input devices
JP2010170388A (en) * 2009-01-23 2010-08-05 Sony Corp Input device and method, information processing apparatus and method, information processing system, and program
KR101789683B1 (en) * 2011-06-13 2017-11-20 삼성전자주식회사 Display apparatus and Method for controlling display apparatus and remote controller
CN103197889B (en) * 2013-04-03 2017-02-08 锤子科技(北京)有限公司 Brightness adjusting method and device and electronic device
CN107329395B (en) * 2017-07-31 2020-03-27 歌尔科技有限公司 Method, device and system for judging time-travelling accuracy of watch hand

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68921543T2 (en) * 1988-10-26 1995-07-20 Wacom Co Ltd Optical coordinate input device and position pointer therefor.
JPH05127809A (en) * 1991-04-19 1993-05-25 Sharp Corp Three-dimensional spatial coordinate input device

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005070996A (en) * 2003-08-22 2005-03-17 Fuji Xerox Co Ltd Instruction input device, instruction input system, instruction input method, and program
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 (en) * 2005-10-07 2007-04-19 Sony Corp Remote control system, device and method for remote control, device and method for information processing, and computer program
JP4622792B2 (en) * 2005-10-07 2011-02-02 ソニー株式会社 Remote operation system, remote operation device, information processing device, remote operation method, information processing method, and computer program
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
US10359907B2 (en) 2005-12-30 2019-07-23 Apple Inc. Portable electronic device with interface reconfiguration mode
JP2018032426A (en) * 2005-12-30 2018-03-01 アップル インコーポレイテッド Portable electronic apparatus including interface reconfiguration mode
US10915224B2 (en) 2005-12-30 2021-02-09 Apple Inc. Portable electronic device with interface reconfiguration mode
US12026352B2 (en) 2005-12-30 2024-07-02 Apple Inc. Portable electronic device with interface reconfiguration mode
US11650713B2 (en) 2005-12-30 2023-05-16 Apple Inc. Portable electronic device with interface reconfiguration mode
US10778828B2 (en) 2006-09-06 2020-09-15 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
US10313505B2 (en) 2006-09-06 2019-06-04 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
US11240362B2 (en) 2006-09-06 2022-02-01 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
US12028473B2 (en) 2006-09-06 2024-07-02 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
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
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
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
US11604559B2 (en) 2007-09-04 2023-03-14 Apple Inc. Editing interface
US11861138B2 (en) 2007-09-04 2024-01-02 Apple Inc. Application menu user interface
US11126321B2 (en) 2007-09-04 2021-09-21 Apple Inc. Application menu user interface
US10620780B2 (en) 2007-09-04 2020-04-14 Apple Inc. Editing interface
US11010017B2 (en) 2007-09-04 2021-05-18 Apple Inc. Editing interface
US10628028B2 (en) 2008-01-06 2020-04-21 Apple Inc. Replacing display of icons in response to a gesture
JP2009252241A (en) * 2008-04-01 2009-10-29 Crucialtec Co Ltd Optical pointing device, and click recognition method using the same
US11809700B2 (en) 2010-04-07 2023-11-07 Apple Inc. Device, method, and graphical user interface for managing folders with multiple pages
US11281368B2 (en) 2010-04-07 2022-03-22 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
US11500516B2 (en) 2010-04-07 2022-11-15 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 (en) * 2015-10-14 2020-05-14 マクセル株式会社 Operation method
US11775129B2 (en) 2015-10-14 2023-10-03 Maxell, Ltd. Input terminal device and operation input method
US10915220B2 (en) 2015-10-14 2021-02-09 Maxell, Ltd. Input terminal device and operation input method
US11733656B2 (en) 2016-06-11 2023-08-22 Apple Inc. Configuring context-specific user interfaces
US11073799B2 (en) 2016-06-11 2021-07-27 Apple Inc. Configuring context-specific user interfaces
US10739974B2 (en) 2016-06-11 2020-08-11 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
JP2023099106A (en) * 2019-10-10 2023-07-11 マクセル株式会社 Operation method
JP7273098B2 (en) 2019-10-10 2023-05-12 マクセル株式会社 Method of operation
JP2021121962A (en) * 2019-10-10 2021-08-26 マクセル株式会社 Operation method
JP7453450B2 (en) 2019-10-10 2024-03-19 マクセル株式会社 Method of operation

Also Published As

Publication number Publication date
US20040227741A1 (en) 2004-11-18

Similar Documents

Publication Publication Date Title
JP2004341892A (en) Instruction input device, instruction input method, and program
JP6348211B2 (en) Remote control of computer equipment
JP5802667B2 (en) Gesture input device and gesture input method
KR101953165B1 (en) Gesture recognition devices and methods
US20220261066A1 (en) Systems, Methods, and Graphical User Interfaces for Automatic Measurement in Augmented Reality Environments
KR100851977B1 (en) Controlling Method and apparatus for User Interface of electronic machine using Virtual plane.
US20200004403A1 (en) Interaction strength using virtual objects for machine control
JP4172307B2 (en) 3D instruction input device
US20060288314A1 (en) Facilitating cursor interaction with display objects
US9645654B2 (en) Initializing predictive information for free space gesture control and communication
KR101318244B1 (en) System and Method for Implemeting 3-Dimensional User Interface
KR20160134799A (en) System, method and computer-readable medium for force-based object manipulation and haptic sensations
JP2010224764A (en) Portable game machine with touch panel display
CN105488832B (en) Optical digital ruler
Zeleznik et al. Look-that-there: Exploiting gaze in virtual reality interactions
JP2008282367A (en) Pointing system
JP2005078310A (en) Tactile presentation device, tactile presentation method and program thereof
JP4438351B2 (en) Instruction input device, instruction input system, instruction input method, and program
KR20080017194A (en) Wireless mouse and driving method thereof
JP2019008631A (en) Image processing device, image processing method, and program
EP3374847B1 (en) Controlling operation of a 3d tracking device
EP4291970A1 (en) Systems, methods, and graphical user interfaces for automatic measurement in augmented reality environments
JP5769765B2 (en) Portable game device with touch panel display
JP2011172939A (en) Portable game device with touch panel type display
Schulze Look-That-There: Exploiting Gaze in Virtual Reality Interactions Robert C. Zeleznik, Andrew S. Forsberg