JP2005070996A - Instruction input device, instruction input system, instruction input method, and program - Google Patents
Instruction input device, instruction input system, instruction input method, and program Download PDFInfo
- Publication number
- JP2005070996A JP2005070996A JP2003298251A JP2003298251A JP2005070996A JP 2005070996 A JP2005070996 A JP 2005070996A JP 2003298251 A JP2003298251 A JP 2003298251A JP 2003298251 A JP2003298251 A JP 2003298251A JP 2005070996 A JP2005070996 A JP 2005070996A
- Authority
- JP
- Japan
- Prior art keywords
- movement
- display
- intersection
- light emitting
- calculated
- 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.)
- Granted
Links
Images
Landscapes
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
本発明は、指示入力装置、指示入力システム、指示入力方法、及びプログラムに関し、特に、操作者の所定部位の動作に従って移動するLED等の発光手段の位置情報に基づいてカーソル等の指示情報の表示位置を制御する指示入力装置、指示入力システム、指示入力方法、及びプログラムに関するものである。 The present invention relates to an instruction input device, an instruction input system, an instruction input method, and a program, and in particular, display of instruction information such as a cursor based on position information of light emitting means such as an LED that moves according to an operation of a predetermined part of an operator. The present invention relates to an instruction input device, an instruction input system, an instruction input method, and a program for controlling a position.
パソコン等に対して指示入力するためのデバイスとして、従来よりx−y座標値を相対座標値としてパソコンに指示入力するマウス(2次元マウス)が広く用いられている。近年、この2次元マウスを用いて3次元座標値を指示入力する技術が提案されている。この技術では、例えば、従来の2次元(x−y)座標値を指示するためのマウスボールに加え、3つ目の座標値(z座標値)を指示するためのマウスボールを別に設け、このマウスボールの回転を用いて3次元座標値を指示入力する。これには複雑な操作が必要とされる。また、2次元マウスの操作は2次元平面上に拘束されており、3次元空間の指示入力装置としては操作性に劣る。 As a device for inputting an instruction to a personal computer or the like, a mouse (two-dimensional mouse) that inputs an instruction to a personal computer using an xy coordinate value as a relative coordinate value has been widely used. In recent years, a technique for instructing and inputting a three-dimensional coordinate value using the two-dimensional mouse has been proposed. In this technique, for example, in addition to a conventional mouse ball for indicating a two-dimensional (xy) coordinate value, a mouse ball for indicating a third coordinate value (z coordinate value) is separately provided. A three-dimensional coordinate value is designated and input using the rotation of the mouse ball. This requires complex operations. Further, the operation of the two-dimensional mouse is constrained on a two-dimensional plane, and the operability is inferior as an instruction input device in a three-dimensional space.
そこで、光源としてのLEDをペンに装備、或いは操作者の指等に装着し、LEDからの光を受光する受光部をパソコンの画面の上部等に取付け、LEDの位置を検出することにより3次元座標値を指示入力することができる装置(3次元マウス)が提案されている(例えば、特許文献1参照。)。この装置では、光源の受光部に対する角度を求め、三角測量の原理により光源の3次元位置を求めている。なお、この装置を用いてマウスの基本動作であるクリック等のシグナルを入力する場合には、操作者が指で押すことのできるスイッチ等をLEDの近傍に設け、該スイッチを押下する等の機械的操作を行うことにより有線を介してパソコンの基本ソフトに入力する必要がある。 Therefore, the LED as a light source is mounted on the pen or attached to the operator's finger, etc., and a light receiving part for receiving light from the LED is attached to the upper part of the screen of the personal computer, and the position of the LED is detected to make it three-dimensional. An apparatus (three-dimensional mouse) capable of instructing and inputting coordinate values has been proposed (see, for example, Patent Document 1). In this apparatus, the angle of the light source with respect to the light receiving portion is obtained, and the three-dimensional position of the light source is obtained by the principle of triangulation. In addition, when inputting a signal such as a click, which is the basic operation of the mouse, using this device, a machine such as a switch that can be pressed by the operator with a finger is provided near the LED, and the switch is pressed. It is necessary to input to the basic software of a personal computer via a cable by performing a manual operation.
また、3次元座標値を指示入力できる装置として、2次元上の2つのボールを回転させることによって、x、y軸方向の移動量を入力できるだけでなく、角度や回転角も入力でき、z軸方向に対する入力も可能となるポインティングデバイス(例えば、特許文献2参照。)や、第一の方向に光変換素子を配列した第1の光センサアレイと、第1の方向とは別の第二の方向に光変換素子を配列した第2の光センサアレイとが移動するときに両者の出力変化に応じた信号を生成し、それにより(カーソル等の)移動量や移動方向を決定する非接触方式の位置検出装置(例えば、特許文献3参照。)が知られている。 In addition, as a device that can instruct and input a three-dimensional coordinate value, by rotating two two-dimensional balls, not only the movement amount in the x and y axis directions but also the angle and the rotation angle can be input, and the z axis A pointing device (see, for example, Patent Document 2) that can also input the direction, a first photosensor array in which light conversion elements are arranged in the first direction, and a second direction different from the first direction A non-contact method that generates a signal corresponding to a change in the output of a second optical sensor array in which light conversion elements are arranged in a direction, thereby determining the amount of movement (such as a cursor) and the direction of movement. There is known a position detection apparatus (see, for example, Patent Document 3).
更にまた、所定の形を有した物体を(指標)をCCDカメラで認識してパソコン等に対するコマンドとして解釈するリモコン装置(例えば、特許文献4参照。)や、電子ペンの中に指で回転されるロータリースイッチが設けられ、その回転度合いによってグラフィカルパラメター(線分の太さ、色、陰影、グレイスケール)の変化の度合いを決定する座標入力用電子ペン(例えば、特許文献5参照。)や、ユーザの手首に装着されたRFIDの動きをアンテナにより認識させてから、RFIDの動きのパターンを他のデバイスへの入力コマンドとして解釈する指示入力システム(例えば、特許文献6参照。)が知られている。 Furthermore, an object having a predetermined shape is recognized by a CCD camera and interpreted as a command for a personal computer or the like (for example, see Patent Document 4), or rotated with a finger in an electronic pen. A coordinate input electronic pen (see, for example, Patent Document 5) that determines the degree of change in graphical parameters (line thickness, color, shading, gray scale) according to the degree of rotation. An instruction input system (see, for example, Patent Document 6) that recognizes the movement of an RFID attached to a user's wrist with an antenna and interprets the movement pattern of the RFID as an input command to another device is known. Yes.
また、米国Gyration Inc.社のGyromouseも、ポインティングデバイスとして広く知られている。このGyromouseは、オートジャイロを内蔵しており、空中操作でレーザーの方向を変えることができる機構を有している。 Gyromouse of Gyration Inc. in the United States is also widely known as a pointing device. This Gyromouse has a built-in auto gyro and has a mechanism that can change the direction of the laser by aerial operation.
更にまた、近年、人の動きやしぐさをCCDカメラにより撮影し、その画像を解析することによって、例えば腕や指の方向を示す特徴点を検出し、指示入力するシステムが提案されている。このシステムではCCDカメラを2台設け、利用者の特定の部位の動きから、例えば指の指し示す方向を検出する。 Furthermore, in recent years, a system has been proposed in which, for example, a feature point indicating the direction of an arm or a finger is detected and an instruction is input by photographing a person's movement or gesture with a CCD camera and analyzing the image. In this system, two CCD cameras are provided, and for example, the direction indicated by the finger is detected from the movement of a specific part of the user.
また、本出願人により、発光手段からの光を受光することにより発光手段の位置を検出する技術を用い、五感の少なくとも1つに訴えるようなフィードバック(焦点メタファーや色相等の変化)によって、画面の前面に広がる3次元空間上の分割された複数の領域の各境界に対する発光手段の通過状態をユーザに認知させ、機械的メカニズムを利用せずに、発光手段の各領域の境界に対する通過の仕方に応じて、クリック、ダブルクリック、ドラッグ等の2次元マウスの機能を実行することができる3次元指示入力装置が提案されている(特願2003−96366参照)。更にまた、操作者に装着された発光手段を3D計測装置から操作者に向かう方向(z軸方向)に沿って前後方向に移動させ、発光手段からの光を受光することにより計測された位置情報から発光手段の動きに伴う加速度、速度を検出し、動きに伴う時間も考慮しながら、発光手段の動きが予め定められた動きに対応しているか否かを判断し、対応していると判断した場合に予め定められた動きに対応付けられた処理(クリック、ダブルクリック、ドラッグ等の機能)の実行を指示することができる指示入力装置が提案されている(特願2003−138645参照)。 In addition, the present applicant uses a technique for detecting the position of the light emitting means by receiving light from the light emitting means, and uses feedback (change in focus metaphor, hue, etc.) to appeal to at least one of the five senses. To allow the user to recognize the passage state of the light emitting means with respect to each boundary of a plurality of divided areas in the three-dimensional space extending in front of the light, and to pass the boundary of each region of the light emitting means without using a mechanical mechanism In response to this, a three-dimensional instruction input device that can execute a two-dimensional mouse function such as click, double click, and drag has been proposed (see Japanese Patent Application No. 2003-96366). Furthermore, the position information measured by moving the light emitting means attached to the operator in the front-rear direction along the direction (z-axis direction) from the 3D measuring device toward the operator and receiving the light from the light emitting means. From the above, the acceleration and speed associated with the movement of the light emitting means are detected, and it is determined whether or not the movement of the light emitting means corresponds to a predetermined movement while taking into account the time associated with the movement. In such a case, there has been proposed an instruction input device that can instruct execution of processing (functions such as click, double click, and drag) associated with a predetermined motion (see Japanese Patent Application No. 2003-138645).
また、加速度センサを用いて加速度または速度を検出し、文字や図形を入力する装置も知られている(例えば、特許文献7及び8参照。)。
しかしながら、上述した従来の3次元マウスは、操作者がLEDの近傍に設けられたスイッチを指で押すことによって操作するため、2次元マウスと同様に機械的操作及びそれを実現する部品を必要とする。また、マウスの基本動作であるクリック等のシグナルは有線を介して入力されるため、操作者が操作する上でわずらわしさが生じる。この点については、ブルートゥースや符号等を付加した赤外線を用いることにより無線での入力が可能となるが、大きさや重量が増加し、またコストがかかる、という問題が生じる。更に、この技術ではLEDの位置を絶対座標で求めるため、指示する方向を入力するには操作者の体の部位に発光体を2つ装着しなくてはならない、といった問題も生じる。 However, since the conventional three-dimensional mouse described above is operated by the operator pressing a switch provided in the vicinity of the LED with a finger, mechanical operation and components for realizing the same are required as in the two-dimensional mouse. To do. Further, since a signal such as a click, which is a basic operation of the mouse, is input via a wire, troublesome operations are caused when the operator operates. With respect to this point, wireless input is possible by using infrared rays to which Bluetooth or a code is added, but there arises a problem that the size and weight are increased and the cost is increased. Furthermore, since the position of the LED is obtained with absolute coordinates in this technique, there arises a problem that two light emitters must be mounted on the body part of the operator in order to input the indicated direction.
また、上述した従来のポインティングデバイスや指示入力システム等の他の指示入力デバイスも、上述した3次元マウスと同様に機械的操作を必要とするため、操作性に劣る。米国Gyration Inc.社のGyromouseも、クリック等の操作は通常の2次元マウス同様、指による機械的操作を必要としている。また、重量やサイズが比較的大きく、高価である。 In addition, other instruction input devices such as the above-described conventional pointing device and instruction input system also require mechanical operation in the same manner as the above-described three-dimensional mouse, and thus have poor operability. Gyromouse of Gyration Inc. of the United States also requires a mechanical operation with a finger, like a normal two-dimensional mouse, for operations such as clicking. In addition, the weight and size are relatively large and expensive.
すなわち、従来の指示入力デバイスは、ボタンやスイッチ等を押下するような比較的細かい操作が必要なため、機械的操作を行うことが比較的困難な人にとっては、使い勝手が悪い。 That is, the conventional instruction input device requires a relatively fine operation such as pressing a button, a switch, or the like, so that it is not convenient for a person who is relatively difficult to perform a mechanical operation.
一方、人の動きやしぐさをCCDカメラにより撮影し、腕や指の方向を検出するシステムでは、人の部位には個人差があるため、特徴点を必ずしも検出できない場合がある。また、CCDカメラは視野角に限界があり、それを拡張するにはさらにCCDカメラを追加しなければならない、という問題もある。また、特徴点を検出するために画像処理を行うことから、他のシステムにくらべて解析対象が増え、レスポンスが遅くなる、という問題がある。 On the other hand, in a system in which a person's movements and gestures are photographed with a CCD camera and the direction of an arm or finger is detected, there are cases in which feature points cannot always be detected because there are individual differences in human parts. In addition, the CCD camera has a limited viewing angle, and there is a problem that an additional CCD camera must be added to expand it. In addition, since image processing is performed to detect feature points, there are problems that the number of objects to be analyzed is increased and the response is slow compared to other systems.
また、従来の本出願人が提案した3次元指示入力装置や指示入力装置は、定められた空間(領域)或いは平面を確認しながら発光手段が装着された指や手を動かさなくてはならないため、自然な動作で指示入力することが困難である。 In addition, the conventional three-dimensional instruction input device and instruction input device proposed by the present applicant must move the finger or hand on which the light emitting means is mounted while confirming a predetermined space (area) or plane. It is difficult to input instructions with natural movement.
更にまた、加速度センサを用いて指示入力する装置では、ペン等の筆記具に加速度センサを内蔵(装着)することから、筆記具のサイズや重量が増加し、使い勝手が悪い、という問題がある。また、発光手段の位置を測定して加速度及び速度を検出する場合に比べて、検出できる加速度及び速度の精度が粗くなるため、利用者の細かな動作を検出することができない、という問題がある。 Furthermore, in an apparatus for inputting instructions using an acceleration sensor, there is a problem that the size and weight of the writing instrument increases and the usability is poor because the acceleration sensor is built in (attached to) a writing instrument such as a pen. In addition, since the accuracy of the acceleration and speed that can be detected becomes coarser than when the position of the light emitting means is measured and the acceleration and speed are detected, there is a problem that it is impossible to detect the detailed operation of the user. .
本発明は、上述した課題を解決するために提案されたものであり、操作性に優れ、無理なく自然な動作で指示入力することができる指示入力装置、指示入力システム、指示入力方法、及びプログラムを提供することを目的とする。 The present invention has been proposed in order to solve the above-described problems, and is an instruction input device, an instruction input system, an instruction input method, and a program that are excellent in operability and can input instructions with a natural operation without difficulty. The purpose is to provide.
上記目的を達成するために、本発明の指示入力装置は、操作者の所定部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力手段と、前記入力手段により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出手段と、前記検出手段により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出手段と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出手段と、前記表示手段の前記表示用交点算出手段により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御手段と、を含んで構成されている。 In order to achieve the above object, the instruction input device of the present invention is position information indicating the position of the light emitting means measured by detecting the light emitted from the light emitting means that moves according to the operation of the predetermined part of the operator. Based on the position information input by the input means, a detection means for detecting the acceleration and speed of the light emitting means, and a position where the acceleration detected by the detection means exceeds a predetermined value. A velocity vector calculating unit that calculates a velocity vector indicating a moving direction of the light emitting unit as a base point based on the detected velocity, a line segment including the velocity vector calculated by the velocity vector calculating unit, and the light emission A table for calculating the intersection point with the virtual plane provided corresponding to the display means for displaying the instruction information for indicating the position indicated by the means as a display intersection point And a control means for controlling the display means so that the instruction information is displayed at a position corresponding to the position of the display intersection calculated by the display intersection calculation means of the display means. It is configured to include.
本発明の指示入力方法は、操作者の所定部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、を含んでいる。 The instruction input method of the present invention includes an input step of inputting position information indicating the position of the light emitting means measured by detecting light emitted from the light emitting means that moves according to the operation of the predetermined part of the operator; A detection step of detecting acceleration and speed of the light emitting means based on the positional information input in the input step, and a movement of the light emitting means based on a position where the acceleration detected by the detection step exceeds a predetermined value A velocity vector calculation step for calculating a velocity vector indicating the direction of the movement based on the detected velocity, a line segment including the velocity vector calculated by the velocity vector calculation step, and a position indicated by the light emitting means. A display intersection calculation step of calculating an intersection of a virtual plane provided corresponding to a display means for displaying instruction information for display as a display intersection; Includes a control step for controlling the display means such that the indication information at a position corresponding to the position of the display intersection calculated by the display intersection calculation step means is displayed, the.
本発明のプログラムは、コンピュータに、操作者の所定部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、を実行させる。 The program of the present invention includes an input step of inputting position information indicating the position of the light emitting means measured by detecting light emitted from the light emitting means moving according to the operation of the predetermined part of the operator to the computer, Based on the positional information input in the input step, a detection step of detecting the acceleration and speed of the light emitting means, and the light emitting means based on the position where the acceleration detected by the detection step exceeds a predetermined value A speed vector calculating step for calculating a speed vector indicating a moving direction based on the detected speed, a line segment including the speed vector calculated by the speed vector calculating step, and a position indicated by the light emitting means. Display intersection calculation for calculating an intersection with a virtual plane provided corresponding to a display means for displaying instruction information for display as a display intersection Degree and to execute a control process of controlling the display means so that said instruction information at a position corresponding to the position of the display intersections calculated by the display intersection calculating step of said display means is displayed.
本発明において、発光手段は、操作者の所定部位の動作に従って移動する。この発光手段は、操作者の指や手等に装着可能とすることもできる。発光手段は、光を発するものであれば特に限定されず、例えばLEDとしてもよい。発光手段の位置は、発光手段から発光された光が検出されることにより計測される。 In the present invention, the light emitting means moves according to the operation of the predetermined part of the operator. This light emitting means may be attachable to an operator's finger or hand. The light emitting means is not particularly limited as long as it emits light, and may be, for example, an LED. The position of the light emitting means is measured by detecting the light emitted from the light emitting means.
また、発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して仮想平面が設けられる。表示手段は、パソコン等に備えられているディスプレイであってもよいし、投影機等を用いて表示する大型スクリーンであってもよい。表示手段に表示される指示情報は、特に限定されないが、例えばパソコン等で用いられるカーソルとすることができる。 A virtual plane is provided corresponding to the display means for displaying the instruction information for indicating the position indicated by the light emitting means. The display means may be a display provided in a personal computer or the like, or may be a large screen that displays using a projector or the like. The instruction information displayed on the display means is not particularly limited, but can be a cursor used in, for example, a personal computer.
発光手段の位置を示す位置情報が入力されると、入力された位置情報に基づいて、発光手段の加速度及び速度が検出される。検出された加速度が所定値を越えた場合には、検出された加速度が所定値を越えた位置を基点とする発光手段の移動した方向を示す速度ベクトルが算出される。次に、速度ベクトルを含む線分と仮想平面との交点が表示用交点として算出される。算出された表示用交点の位置に対応する位置に指示情報が表示されるように、表示手段が制御される。 When position information indicating the position of the light emitting means is input, the acceleration and speed of the light emitting means are detected based on the input position information. When the detected acceleration exceeds a predetermined value, a velocity vector indicating the moving direction of the light emitting means with the position where the detected acceleration exceeds the predetermined value as a base point is calculated. Next, the intersection between the line segment including the velocity vector and the virtual plane is calculated as a display intersection. The display means is controlled so that the instruction information is displayed at a position corresponding to the calculated position of the intersection for display.
このように、発光手段の移動した方向を示す速度ベクトルと仮想平面との交点(表示用交点)に対応する位置に指示情報を表示するので、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。例えば、指示情報を所望の位置に表示させたい場合には、発光手段を該所望の位置の方向に移動させるだけで、容易に指示情報を表示させることができる。 In this way, since the instruction information is displayed at the position corresponding to the intersection (display intersection) between the speed vector indicating the direction in which the light emitting unit has moved and the virtual plane, no mechanical operation is required, and the operability is excellent. It is possible to input instructions with natural operation without difficulty. For example, when it is desired to display the instruction information at a desired position, the instruction information can be easily displayed only by moving the light emitting means in the direction of the desired position.
本発明の指示入力装置は、前記検出手段により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出手段と、前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出手段と、前記平面算出手段により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出手段と、を更に含み、前記表示用交点算出手段は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出手段により検出された加速度が前記所定値を越えた後は、前記交点算出手段により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出することができる。 The instruction input device of the present invention has a stationary position where the light emitting means stops after the acceleration detected by the detecting means exceeds a predetermined value, and a movement position where the light emitting means moves from the stationary position as an end point. A movement vector calculation means for calculating a movement vector, a plane calculation means for calculating a plane perpendicular to the movement vector calculated by the movement vector calculation means and including the movement position, and the plane calculation means. An intersection calculation means for calculating an intersection of the calculated plane and a line segment including the speed vector calculated by the speed vector calculation means; and the display intersection calculation means includes the speed vector. After calculating the intersection of the line segment and the virtual plane as a display intersection, and after the acceleration detected by the detection means exceeds the predetermined value Can be calculated as a line segment and, display intersection the intersection of said imaginary plane, including said movement position and the intersection calculated by the intersection point calculation means.
本発明の指示入力方法は、前記検出工程により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出工程と、前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出することができる。 In the instruction input method of the present invention, the stationary position where the light emitting means stops after the acceleration detected by the detecting step exceeds a predetermined value is set as a starting point, and the moving position where the light emitting means moves from the stationary position is set as an end point. A movement vector calculation step of calculating a movement vector that is a vector to be moved, a plane calculation step of calculating a plane perpendicular to the movement vector calculated by the movement vector calculation means and including the movement position, and the plane calculation step An intersection calculation step of calculating an intersection of the calculated plane and a line segment including the velocity vector calculated by the velocity vector calculation means, wherein the display intersection calculation step includes the velocity vector After calculating the intersection of the line segment and the virtual plane as a display intersection, and after the acceleration detected by the detection step exceeds the predetermined value Can be calculated as a line segment and, display intersection the intersection of said imaginary plane, including said movement position and the intersection calculated by the intersection calculation step.
本発明のプログラムは、前記検出工程により検出された加速度が所定値を越えた後に前記発光手段が静止した静止位置を始点とし、前記発光手段が該静止位置から移動した移動位置を終点とするベクトルである移動ベクトルを算出する移動ベクトル算出工程と、前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出することができる。 The program of the present invention is a vector in which a starting position is a stationary position where the light emitting means is stationary after the acceleration detected by the detecting step exceeds a predetermined value, and a moving position where the light emitting means is moved from the stationary position is an end point. A movement vector calculation step for calculating the movement vector, a plane calculation step for calculating a plane perpendicular to the movement vector calculated by the movement vector calculation means and including the movement position, and the plane calculation step. And an intersection calculation step for calculating an intersection of the line segment including the velocity vector calculated by the velocity vector calculation means, and the display intersection calculation step includes a line segment including the velocity vector. And the intersection between the virtual plane and the virtual plane is calculated as an intersection for display, and after the acceleration detected by the detection step exceeds the predetermined value, Serial intersection intersection calculated by the calculating step and the segment containing said movement position, wherein it is possible to calculate the virtual plane, an intersection of the display intersection.
検出された加速度が所定値を越えた後は、検出された加速度が所定値を越えた後に発光手段が静止した静止位置を始点とし、発光手段がこの静止位置から移動した移動位置を終点とするベクトルである移動ベクトルが算出される。なお、静止は、完全な静止でなくてもよい。例えば、発光手段の位置の変動が所定範囲内となったときや、発光手段の加速度及び速度が所定値以下となったときを、発光手段が静止したときとして、このときの位置を静止位置とすることができる。 After the detected acceleration exceeds a predetermined value, the stationary position where the light emitting means stops after the detected acceleration exceeds the predetermined value is a starting point, and the moving position where the light emitting means moves from this stationary position is the end point. A movement vector which is a vector is calculated. Note that the stillness does not have to be completely stationary. For example, when the variation in the position of the light emitting means falls within a predetermined range, or when the acceleration and speed of the light emitting means are less than or equal to a predetermined value, the light emitting means is assumed to be stationary. can do.
算出された移動ベクトルにより、発光手段の移動方向が示される。続いて、算出された移動ベクトルに垂直で、かつ移動位置を含む平面が算出される。更に、この平面と速度ベクトルを含む線分との交点が算出される。この交点と移動位置とを含む線分と、仮想平面との交点が表示用交点として算出される。算出された表示用交点の位置に対応する位置に指示情報が表示されるように、表示手段が制御される。 The movement direction of the light emitting means is indicated by the calculated movement vector. Subsequently, a plane perpendicular to the calculated movement vector and including the movement position is calculated. Further, the intersection of this plane and the line segment including the velocity vector is calculated. An intersection between the line segment including the intersection and the moving position and the virtual plane is calculated as a display intersection. The display means is controlled so that the instruction information is displayed at a position corresponding to the calculated position of the intersection for display.
このように、検出された加速度が所定値を越えた後、発光手段の静止位置及び移動位置とから新たな表示用交点を求め、該表示用交点に対応する位置に指示情報を表示するようにしたため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。例えば、速度ベクトルと、仮想平面との表示用交点に対応する位置に指示情報を表示した後、この指示情報の表示位置を所望の位置に移動させたい場合には、発光手段を一旦静止させてから所望の位置の方向に移動するだけで、容易に所望の位置に指示情報を移動させることができる。 In this way, after the detected acceleration exceeds a predetermined value, a new display intersection is obtained from the stationary position and the moving position of the light emitting means, and the instruction information is displayed at a position corresponding to the display intersection. Therefore, no mechanical operation is required, the operability is excellent, and instructions can be input with a natural operation without difficulty. For example, after displaying the instruction information at a position corresponding to the display intersection between the velocity vector and the virtual plane, if the display position of the instruction information is to be moved to a desired position, the light emitting means is temporarily stopped. The instruction information can be easily moved to the desired position simply by moving from to the desired position.
なお、移動位置は、所定時間毎の移動位置であってもよいし、静止位置から移動して再度静止したときの位置であってもよい。また、移動ベクトルに垂直で、かつ移動位置を含む平面と、速度ベクトルを含む線分と、の交点は、所定時間固定されていてもよい。これにより、移動位置毎に該交点を計算せずにすみ、計算量を軽減させることができる。 The moving position may be a moving position at every predetermined time, or may be a position when moving from a stationary position and resting again. Moreover, the intersection of the plane perpendicular to the movement vector and including the movement position and the line segment including the velocity vector may be fixed for a predetermined time. Thereby, it is not necessary to calculate the intersection for each movement position, and the amount of calculation can be reduced.
本発明の指示入力装置は、前記速度ベクトル算出手段により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成される座標系を用いて所定の処理を行う処理手段を更に含むこともできる。 The instruction input device of the present invention further includes processing means for performing predetermined processing using a coordinate system including a speed vector calculated by the speed vector calculation means and a plane perpendicular to the speed vector. You can also.
本発明の指示入力方法は、前記速度ベクトル算出工程により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成される座標系を用いて所定の処理を行う処理工程を更に含むこともできる。 The instruction input method of the present invention further includes a processing step of performing a predetermined process using a coordinate system constituted by the velocity vector calculated by the velocity vector calculating step and a plane perpendicular to the velocity vector. You can also.
本発明のプログラムは、前記速度ベクトル算出工程により算出された速度ベクトルと、該速度ベクトルに垂直な平面と、により構成される座標系を用いて所定の処理を行う処理工程を更に含むこともできる。 The program of the present invention may further include a processing step of performing a predetermined process using a coordinate system constituted by the velocity vector calculated by the velocity vector calculating step and a plane perpendicular to the velocity vector. .
すなわち、表示手段の画面に対して垂直な方向でなくても、任意の方向に発光手段を移動させることで、速度ベクトルと速度ベクトルに垂直な平面とにより構成される座標系を用いて所定の処理を行うことができる。従って、操作者にとって自然な動きでスムーズに指示入力することができる。 That is, even if the light emitting means is moved in an arbitrary direction even if the direction is not perpendicular to the screen of the display means, a predetermined coordinate system using a coordinate system composed of a velocity vector and a plane perpendicular to the velocity vector is used. Processing can be performed. Therefore, it is possible to input instructions smoothly with natural movement for the operator.
ここで、前記所定の処理は、前記検出手段により検出された、前記座標系における前記発光手段の加速度及び速度に基づいて、前記発光手段の動きが予め定められた動きに対応するか否かを判断すると共に、前記発光手段の動きが予め定められた動きに対応すると判断した場合に、該予め定められた動きに対応付けられた処理の実行を指示する処理とすることもできる。 Here, the predetermined process determines whether or not the movement of the light emitting means corresponds to a predetermined movement based on the acceleration and speed of the light emitting means in the coordinate system detected by the detection means. In addition to the determination, when it is determined that the movement of the light emitting means corresponds to a predetermined movement, a process for instructing execution of a process associated with the predetermined movement may be performed.
このように、任意の方向に発光手段を移動させることで、速度ベクトルと速度ベクトルに垂直な平面とにより構成される座標系を用いて発光手段を動かすことができるため、操作者にとって自然な動きで予め定められた動きを形成することができると共に、発光手段の動きが予め定められた動きに対応するか否かを判断して予め定められた動きに対応付けられた処理の実行をスムーズに指示することができる。 In this way, by moving the light emitting means in an arbitrary direction, the light emitting means can be moved using a coordinate system composed of a velocity vector and a plane perpendicular to the velocity vector. In addition to forming a predetermined movement, it is possible to determine whether the movement of the light emitting means corresponds to the predetermined movement and smoothly execute the process associated with the predetermined movement. Can be directed.
ここで、予め定められた動きは、特に限定されず、1つであってもよいし、複数あってもよい。また、複数の細かな動きにより構成された動きであってもよい。 Here, the predetermined movement is not particularly limited, and may be one or plural. Moreover, the movement comprised by the some fine movement may be sufficient.
例えば、パソコンのクリックやダブルクリック、或いはドラッグ&ドロップの動きを予め定めておけば、速度ベクトルと速度ベクトルに垂直な平面とにより構成される座標系における発光手段の動きが、これら予め定められた動きに対応するか否かを判断し、対応すると判断した場合に、クリックやダブルクリック、或いはドラッグ&ドロップの処理の実行を指示することができる。 For example, if the movement of a click, double click, or drag and drop on a personal computer is determined in advance, the movement of the light emitting means in a coordinate system composed of a velocity vector and a plane perpendicular to the velocity vector is determined in advance. It is determined whether or not it corresponds to the movement, and when it is determined that it corresponds, it is possible to instruct execution of click, double click, or drag and drop processing.
また、前記所定の処理としては、例えば、前記座標系を構成する速度ベクトルをz軸とし、該z軸そのものを上下左右に動かして、表示手段に3次元的に表現された仮想物体のビュー(見方)を変える処理とすることもできる。 Further, as the predetermined processing, for example, a velocity vector constituting the coordinate system is set as a z-axis, the z-axis itself is moved up and down, left and right, and a virtual object view (three-dimensionally expressed on the display means ( It is also possible to change the view).
また、前記制御手段は、前記表示用交点算出手段により算出された最新の表示用交点及び過去に算出された複数の表示用交点の位置の各々に対応して前記指示情報が複数表示されるように前記表示手段を制御することができる。 The control means may display a plurality of the instruction information corresponding to each of the latest display intersection calculated by the display intersection calculation means and a plurality of display intersection positions calculated in the past. The display means can be controlled.
これにより、指示情報の位置を複数表示することができ、指示情報の表示位置を見失うことなく、容易に指示位置を確認することができる。 Thereby, a plurality of positions of the instruction information can be displayed, and the instruction position can be easily confirmed without losing sight of the display position of the instruction information.
また、前記制御手段は、前記複数の指示情報の表示状態が、時間の経過に従って変化するように前記表示手段を制御することもできる。 The control means can also control the display means so that the display state of the plurality of instruction information changes as time passes.
これにより、指示情報が表示されてから経過した時間を確認することができると共に、最新の表示位置を見失うことがなくなる。 As a result, it is possible to check the time that has elapsed since the instruction information was displayed, and the latest display position is not lost.
前記表示手段は、前記指示情報を表示すると共に所定のオブジェクトを表示し、前記制御手段は、前記指示情報の表示位置と前記所定のオブジェクトの表示位置とが一致した場合、及び、前記指示情報の表示位置と前記所定のオブジェクトの表示位置とが一致し、かつ前記処理手段により前記予め定められた動きに対応付けられた処理の実行が指示された場合、のいずれか一方の場合に、前記表示手段の表示状態を変更するように前記表示手段を制御することができる。 The display means displays the instruction information and displays a predetermined object, and the control means displays the instruction information when the display position of the instruction information matches the display position of the predetermined object, and When the display position coincides with the display position of the predetermined object and the execution of the process associated with the predetermined movement is instructed by the processing means, the display is performed. The display means can be controlled to change the display state of the means.
このように表示状態が変更されることにより、指示情報とオブジェクトとの位置関係を確認することができる。例えば、このような表示状態の変更は、シューティングゲーム等の表示変更に適用することができる。 By changing the display state in this way, the positional relationship between the instruction information and the object can be confirmed. For example, such a change in display state can be applied to a display change in a shooting game or the like.
また、本発明の指示入力システムは、操作者の所定部位の動作に従って移動する発光手段と、前記発光手段から発光された光を検出することにより前記発光手段の位置を計測する計測装置と、上記指示入力装置と、を含んで構成されている。 The instruction input system of the present invention includes a light emitting means that moves according to an operation of a predetermined part of an operator, a measuring device that measures the position of the light emitting means by detecting light emitted from the light emitting means, And an instruction input device.
本指示入力システムも、上述した本発明の指示入力装置、指示入力方法、及びプログラムと同様に作用するため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。 Since this instruction input system also operates in the same manner as the above-described instruction input device, instruction input method, and program of the present invention, it does not require mechanical operation, has excellent operability, and inputs instructions with natural operation without difficulty. be able to.
また、前記発光手段を携帯電話に設けることもできる。このように、ワイヤレスで持ち歩くことができる携帯電話に発光手段を設けることにより、容易に指示入力することができ、携帯電話の電源を発光手段の電源と共有することができる。 Further, the light emitting means can be provided in a mobile phone. In this way, by providing the light emitting means on the mobile phone that can be carried wirelessly, it is possible to easily input an instruction, and the power supply of the mobile phone can be shared with the power supply of the light emitting means.
なお、上述した本発明のプログラムを記憶する記憶媒体は、特に限定されず、ハードディスクであってもよいし、ROMであってもよい。また、CD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。 The storage medium for storing the above-described program of the present invention 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 the network.
本発明は、発光手段の移動した方向を示す速度ベクトルと、仮想平面との交点に対応する位置に指示情報を表示すると共に、発光手段が静止してから更に移動したときには、仮想平面上の新たな交点を求め、該交点に対応する位置に指示情報を表示するようにしたため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。また、速度ベクトルと速度ベクトルに垂直な平面とにより構成される座標系を用いて所定の処理を行うようにしたため、機械的操作を必要とせず、操作性に優れ、無理なく自然な動作で指示入力することができる。 The present invention displays the instruction information at a position corresponding to the intersection of the velocity vector indicating the moving direction of the light emitting means and the virtual plane, and when the light emitting means further moves after the light emitting means is stationary, the new information on the virtual plane is displayed. Since a point of intersection is obtained and the instruction information is displayed at a position corresponding to the point of intersection, no mechanical operation is required, the operability is excellent, and the instruction can be input with a natural operation without difficulty. In addition, since a predetermined process is performed using a coordinate system composed of a velocity vector and a plane perpendicular to the velocity vector, no mechanical operation is required, the operability is excellent, and instructions are given with natural motion without difficulty. Can be entered.
以下、図面を参照して、本発明の実施の形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る指示入力装置としての機能を備えたパソコン30を含む指示入力システムの構成を示す図である。図示されるように、指示入力システムは、LED10と、3D計測装置20と、パソコン30とを備えている。
[First Embodiment]
FIG. 1 is a diagram showing a configuration of an instruction input system including a
LED10は、操作者の指や手等に装着される。
The
3D計測装置20は、不図示の受光部がLED10から発光された光を受光することによりLED10からの光を検出し、LED10の3次元位置を計測する。該計測された3次元位置を示す位置情報(x、y、z座標値)はパソコン30に出力される。なお、この3D計測装置20は、LED10等の発光体から発光された光を検出することにより3次元位置を計測できる装置であれば特に限定されないが、特開平10−9812号公報に記載された位置検出の技術等を用いて構成することができる。
In the
本指示入力システムでは、3D計測装置20の受光部をパソコン30のディスプレイの画面の位置と略一致する位置(例えばディスプレイ上部等)に装備することにより、パソコン30のディスプレイの画面前方の空間におけるLED10の3次元位置を計測する。また、パソコン30のディスプレイの画面に略一致する位置には、パソコン30のディスプレイの画面に対応した(実際には存在しない)仮想平面が設定される。LED10を装着した操作者は、該仮想平面に対してLED10を装着した手を移動させることにより、仮想平面に対応したディスプレイの画面の任意の位置にカーソルを表示させることができる。
In this instruction input system, the
本指示入力システムの3D計測装置20で用いられる座標系は、仮想平面の左上角に原点があり、仮想平面をx−y平面とし、仮想平面に垂直な軸をz軸とする座標系であり、この座標系では、仮想平面から操作者に向かう方向がz軸の+方向、仮想平面に向かって右方向がx軸の+方向、下方向がy軸の+方向となるように定められている。以下、この座標系を基準座標系と呼称する。
The coordinate system used in the
なお、仮想平面はどの平面上に設けてもよいが、ディスプレイの画面に略一致する平面上に設けることにより、操作者が指示入力する際、入力位置を感覚的に認識しやすいため好適である。 The virtual plane may be provided on any plane, but it is preferable to provide the virtual plane on a plane that substantially matches the screen of the display because the input position can be easily perceived when the operator inputs instructions. .
図2は、パソコン30の具体的な構成を示した図である。図示されるように、パソコン30のパソコン本体32は、CPU34、ROM36、RAM38、及び入出力インタフェース(I/O)40を含んで構成されている。また、I/O40には、3D計測装置20と、ディスプレイ42と、スピーカ44と、ハードディスクドライブ(HDD)46とが接続されている。
FIG. 2 is a diagram showing a specific configuration of the
3D計測装置20から出力されたLED10の位置情報は、I/O40を介して入力される。
The position information of the
HDD46には、LED10の加速度及び速度を検出し、該加速度及び速度に基づいてディスプレイ42にLED10により指示される位置を示すためのカーソルを表示すると共に、LED10の動きを検出して所定の処理の実行を指示する指示入力処理ルーチンのプログラム(以下、指示入力処理プログラムと呼称)、及び指示入力処理プログラムを実行する際に用いられる各種設定情報が記憶されている。CPU34は、指示入力処理プログラム及び各種設定情報をRAM38にロードして、該プログラムを実行する。
The
指示入力処理ルーチンでは、検出した加速度及び速度に基づいて、LED10の指示する方向や、動きが判断される。加速度を用いて判断することにより、LED10を急速に動かしている状態とそうでない状態、すなわち、操作者が意識して手を動かしている状態と、指示入力する意志がなく、自由に手を動かしている状態とを区別することができる。また、速度を用いて判断することにより、LED10をある程度の距離だけ動かしたことを認識でき、実際のLED10の動きを判断することができる。速度を判断材料とすることにより、位置情報から移動距離自体を算出して用いる場合に比して、より小さな動きを認識することが可能となる。
In the instruction input processing routine, the direction or movement indicated by the
各種設定情報には、LED10の動きに伴う加速度の閾値A0、速度の閾値V0、ポインティングモード(後述)の時間K1、コマンドモード(後述)の時間K2、LED10の動きを判断するための時間の閾値T10及びT20とが含まれている。
The various setting information includes an acceleration threshold A 0 associated with the movement of the
指示入力処理プログラムや各種設定情報を記憶する記憶媒体は、HDD46に限定されず、ROM36であってもよい。また、図示は省略するが、I/O40に接続されたCD−ROMやDVDディスク、光磁気ディスクやICカードであってもよい。更にまた、該プログラムを、ネットワークに接続されたサーバ等からダウンロードするようにしてもよい。
The storage medium for storing the instruction input processing program and various setting information is not limited to the
図3は、パソコン本体32の構成を機能的に示した図である。
FIG. 3 is a diagram functionally showing the configuration of the personal computer
図示されるように、パソコン本体32は、コマンド生成部50と、マウスドライバ52と、OS54と、イメージドライバ56とを含んで構成されている。
As shown in the figure, the personal computer
コマンド生成部50は、3D計測装置20で計測された3次元位置を示す位置情報を入力して、LED10の加速度及び速度を検出する。更に、検出した加速度及び速度に基づいて、カーソルがディスプレイ42に表示されるように、ポインティングのためのコマンドを生成してマウスドライバ52に出力する。更にまた、検出した加速度及び速度に基づいて、ローカル座標系(後述)におけるLED10の動きが、ボタンが装備された一般的なマウス(以下、これを2次元マウスと呼称する)におけるボタン操作、すなわち、クリック、ダブルクリック、ドラッグ・アンド・ドロップ、のいずれに対応する動きかを判断し、判断結果に対応するコマンドを生成してマウスドライバ52に出力する。
The
マウスドライバ52には、コマンド生成部50からコマンドが入力される。マウスドライバ52に入力されたコマンドは、OS54に出力される。
A command is input from the
OS54は、マウスドライバ52からのコマンドを解釈して該コマンドに対応した処理を実行する。
The
イメージドライバ56は、OS54の制御の下で、LED10の位置や動きに対応した画像をディスプレイ42に表示するための処理を行う。
The
なお、図示を省略するが、パソコン本体32にはサウンドドライバも備えられている。サウンドドライバは、OS54の制御の下で、LED10の動きに対応した音声をスピーカ44から出力するための処理を行う。
Although not shown, the personal computer
以下、本実施の形態に係る指示入力処理の流れについて詳細に説明する。 Hereinafter, the flow of instruction input processing according to the present embodiment will be described in detail.
操作者がLED10を装着した手を3D計測装置20の計測領域内で動かす。手の動きに応じてLED10の位置が変化する。3D計測装置20は、LED10の3次元位置を所定時間毎に計測し、該3次元位置を示す位置情報を逐次パソコン30(パソコン本体32)に出力する。該位置情報は指示入力処理ルーチンで用いられる。
The operator moves the hand wearing the
図4及び図5は指示入力処理のメインルーチンを示したフローチャートである。 4 and 5 are flowcharts showing the main routine of the instruction input process.
なお、本フローチャートでは図示を省略しているが、パソコン30(パソコン本体32)には、所定時間毎に3D計測装置20からLED10の位置情報が入力される。そして、CPU34により、入力毎に入力された位置情報に基づいてLED10の加速度及び速度が検出される。例えば、速度は所定の時間内の各座標値の差分を該所定の時間で割ることにより検出し、加速度は速度を該所定の時間で割ることにより検出することができる。
In addition, although illustration is abbreviate | omitted in this flowchart, the positional information on LED10 is input into the personal computer 30 (PC main body 32) from the
ステップ100では、加速度が閾値A0を越えたか否かを判断する。ここで、加速度≦A0であると判断した場合には、3D計測装置20から次の位置情報を入力するまで、待機状態を維持する。また、加速度>A0であると判断した場合には、操作者が意志をもって手を動かした状態であるため、この時点で、所望の位置にカーソルを表示するためのポインティングモードを開始する。
At
ステップ102では、ポインティングモードの時間K1を計時するために、タイマTをリセットしてスタートさせる。 In step 102, the timer T is reset and started to measure the pointing mode time K1.
ステップ104で、速度が閾値V0を越えたか否かを判断する。ここで判断される速度は、ステップ100で閾値A0を越える加速度を発生させたLED10の動きに伴う速度である。ステップ104で、速度≦V0であると判断した場合には、ポインティングモードを終了してステップ100に戻る。また、速度>V0であると判断した場合には、ステップ106に移行する。
In
なお、ステップ100及びステップ104で肯定判断される動作は、操作者がLED10を装着した手をポインティング方向に急速に動かす動作である。以下、任意の方向に手を急速に動かす動作をプッシュと呼称する。プッシュによりポインティングモードが開始されるが、このポインティングモードは、ステップ100で閾値A0を越える加速度が検出されたときから時間K1が経過するまで、或いは時間K1が経過するまでの間に新たにプッシュの動作がなされるまで継続される。なお、ステップ100及び104で肯定判断される動作(プッシュ)の方向は、ディスプレイ42の画面或いは仮想平面に対して垂直な方向である必要はなく、任意の方向でよい。
In addition, the operation | movement by which the affirmation determination is carried out by
ステップ106では、指示入力処理ルーチンのサブルーチンとして予め指示入力処理プログラムに組み込まれている第1ポインティング処理ルーチンが実行される。 In step 106, a first pointing process routine incorporated in advance in the instruction input process program is executed as a subroutine of the instruction input process routine.
以下、図6の第1ポインティング処理ルーチンを示したフローチャート、及び図8の説明図を参照しながら第1ポインティング処理の流れについて説明する。 The flow of the first pointing process will be described below with reference to the flowchart showing the first pointing process routine of FIG. 6 and the explanatory diagram of FIG.
ステップ200では、ステップ100で閾値A0を越える加速度が検出された位置(加速度検出位置)を基点とし、LED10の移動方向を示す速度ベクトルSを算出する。検出された速度により(x、y、z)方向のベクトルが得られるため、これにより即座に速度ベクトルSを求めることができる。
In
ステップ202では、速度ベクトルSを含む線分M1を算出する。速度ベクトルSは幾何学的に簡単に求められるが、線分M1は、速度ベクトルSを一般化しパラメトリックに表現したものである。
In
ステップ204では、線分M1と仮想平面Vとの交点C1を算出する。仮想平面Vとは、前述したように、ディスプレイ42の画面に略一致する平面上に設定された、ディスプレイ42の画面に対応した平面をいう。交点C1は、仮想平面V上の点として幾何学的に求めることができ、線分M1を示す式と仮想平面Vを示す式とから一意に算出される。
In
ステップ206では、ポインティング処理を行う。具体的には、ディスプレイ42の画面における、ステップ204で算出した仮想平面V上の点(交点C1)の位置に対応する位置にカーソルが表示されるようにポインティングのためのコマンドを生成してマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54は、該コマンドを解釈し、ディスプレイ42の画面の、交点C1に対応した位置にカーソルが表示されるようにディスプレイ42を制御する。
In
このように、まず、最初のプッシュにより指示された方向に対応して、仮想平面V上の点(交点C1)が求められ、ディスプレイ42の画面にカーソルが表示される。
Thus, first, a point (intersection point C1) on the virtual plane V corresponding to the direction instructed by the first push is obtained, and the cursor is displayed on the screen of the
ステップ208では、LED10が静止したか否かを判断する。ここでは、LED10のx、y、z座標値の移動平均から所定の範囲内に位置するx、y、z座標値が、所定数以上入力された場合に、LED10が静止したと判断する。なお、静止の判断は特にこれに限定されず、所定時間前のx、y、z座標値と最新のx、y、z座標値との距離が所定距離内となったときに静止したと判断するようにしてもよいし、加速度及び速度が所定値以下となったときに静止したと判断するようにしてもよい。
In
ステップ208で静止したと判断した場合には、ステップ210で、静止位置Pを検出する。静止したと判断されたときのx、y、z座標値が静止位置Pとなる。ここで検出された静止位置Pは、後述する第2ポインティング処理で用いられる。
If it is determined in
図4のステップ106の第1ポインティング処理終了後は、ステップ108に移行する。ステップ108では、加速度が閾値A0を越えたか否かを判断する。ここで、加速度≦A0であると判断した場合には、プッシュの動作は開始されていないと判断し、ステップ110に移行する。ステップ110では、タイマTがポインティングモードの時間K1に到達したか否かを判断する。
After the completion of the first pointing process at step 106 in FIG. At
ステップ110で、タイマT<K1であると判断した場合には、ポインティングモードの時間K1は経過していないと判断し、ステップ112に移行する。
If it is determined in
ステップ112では、指示入力処理ルーチンのサブルーチンとして予め指示入力処理プログラムに組み込まれている第2ポインティング処理ルーチンが実行される。
In
以下、図7の第2ポインティング処理ルーチンを示したフローチャート、及び図8の説明図を参照しながら第2ポインティング処理の流れについて説明する。 The flow of the second pointing process will be described below with reference to the flowchart showing the second pointing process routine of FIG. 7 and the explanatory diagram of FIG.
ステップ300では、LED10が移動した移動位置Qを検出する。なお、ここでは、移動位置Qは静止していなくてもよい。
In
ステップ302では、静止位置Pと移動位置QとからLED10の移動方向を示す移動ベクトルPQを算出する。
In
ステップ304では、該移動ベクトルPQに垂直で、かつ移動位置Qを含む平面Nを算出する。具体的には、移動ベクトルPQとの内積が0になるベクトル(移動ベクトルPQに直交するベクトル)を2つ求め、この2つのベクトルと移動位置Qとから、移動ベクトルPQに垂直で、移動位置Qを含む平面Nを算出する。
In
ステップ306では、ステップ304で算出した平面Nと、ステップ206で算出した線分M1との交点Oを算出する。
In
ステップ308では、移動位置Qと交点Oとを含む線分M2を算出する。
In
ステップ310では、線分M2と仮想平面Vとの交点C2を算出する。交点C2は、仮想平面V上の点として、線分M2を示す式と仮想平面Vを示す式とから一意に算出される。
In
ステップ312では、第1ポインティング処理のステップ206と同様にポインティング処理を行う。これにより、ディスプレイ42に表示されるカーソルは、交点C1に対応する位置から交点C2に対応する位置に移動する。
In
以上説明した第2ポインティング処理は、図4のステップ108及びステップ110で否定判断が続く間(すなわち、新たにプッシュの動作がなされるまで、或いは時間K1が経過するまで)繰り返され、逐次新しい交点C2が算出されてカーソルの表示位置が移動する。静止位置P及び線分M1は変更されないため、移動位置Qを検出するだけで、交点C2を逐次更新していくことができる。なお、ここでは、3D計測装置20から位置情報が所定時間毎に入力されるため、該所定時間毎に第2ポインティング処理が実行される。すなわち、該所定時間毎に移動位置Qが検出されて交点C2が更新される。
The second pointing process described above is repeated while negative determination continues in
一方、ステップ110で、タイマT≧K1であると判断した場合には、新たなプッシュが行われないうちに時間K1に到達したと判断し、ポインティングモードを終了してステップ100に戻る。
On the other hand, if it is determined in
また、ステップ108で、加速度>A0であると判断した場合には、新たなプッシュの動作が開始されたと判断し、ステップ114に移行する。ステップ114では、タイマTが時間K1未満か否かを判断する。ここで、タイマT≧K1であると判断した場合には、ポインティングモードを終了してステップ100に戻る。また、タイマT<K1であると判断した場合には、時間K1が経過するまでにプッシュの動作が開始されたと判断し、ステップ116に移行する。
If it is determined in
ステップ116では、速度が閾値V0を越えたか否かを判断する。ここで判断される速度は、ステップ108で閾値A0を越える加速度を発生させたLED10の動きに伴う速度である。ステップ116で、速度≦V0であると判断した場合には、ポインティングモードを終了してステップ100に戻る。また、速度>V0であると判断した場合には、新たにプッシュの動作がなされたと判断し、ポインティングモードを終了してステップ118に移行する。
At
ステップ118では、コマンドモードの時間K2を計時するために、タイマTをスタートさせる。ここで、LED10の動きを判断して判断結果に対応する処理の実行を指示するためのコマンドモードが開始される。
In
図5のステップ120では、座標系変換式を算出する。
In
このステップでは、ステップ108及び116で肯定判断されたときのプッシュによる速度ベクトルSと静止位置Pを前述のステップ200〜204と同様に求め、3D計測装置20から入力された基準座標系における位置情報を、速度ベクトルSがz軸に、静止位置Pが原点となるような座標系(以下、この座標系をローカル座標系と呼称する)における位置情報に変換するための式を算出する。
In this step, the speed vector S and the stationary position P by the push when the affirmative determination is made in
具体的には、まず、基準座標系の原点を平行移動させて静止位置Pに一致させる変換を行い、座標系A1を得る。この座標系A1のz−y平面と、速度ベクトルS及び静止位置Pを含む線分M1とが重なるように、座標系A1を座標系A1のy軸まわりに回転させ、座標系A2を得る。更に線分M1がA2のz座標軸に重なるように、座標系A2を座標系A2のx軸まわりに回転させ、座標系A3を得る。この3つの変換式を1つの行列(例えば3x3)にまとめる。この行列を座標系変換式という。 Specifically, first, the coordinate system A1 is obtained by performing a conversion in which the origin of the reference coordinate system is translated to match the stationary position P. The coordinate system A1 is rotated around the y-axis of the coordinate system A1 so that the zy plane of the coordinate system A1 and the line segment M1 including the velocity vector S and the stationary position P are overlapped to obtain the coordinate system A2. Further, the coordinate system A2 is rotated around the x-axis of the coordinate system A2 so that the line segment M1 overlaps the z-coordinate axis of A2, thereby obtaining the coordinate system A3. These three conversion expressions are combined into one matrix (for example, 3 × 3). This matrix is called a coordinate system conversion formula.
なお、以下では、z軸が速度ベクトルSに一致し、原点が静止位置Pの座標系(すなわち、変換して得られる座標系A3)をローカル座標系と呼称し、ローカル座標系のx、yz軸を基準座標系のx、y、z軸と区別するため、ローカルx、y、z軸と呼称する。また、ローカルx軸及びローカルy軸により形成される平面をローカル平面Lと呼称する。図9に、ローカル座標系の一例を示す。コマンドモード中は、このローカル座標系が用いられる。すなわち、3D計測装置20から所定時間毎に入力されるx、y、z座標値が、各々座標系変換式によりローカル座標系のx、y、z座標値に変換されて用いられる。
Hereinafter, a coordinate system in which the z axis coincides with the velocity vector S and the origin is the stationary position P (that is, the coordinate system A3 obtained by conversion) is referred to as a local coordinate system, and x, yz in the local coordinate system. In order to distinguish the axis from the x, y, and z axes of the reference coordinate system, they are called local x, y, and z axes. A plane formed by the local x axis and the local y axis is referred to as a local plane L. FIG. 9 shows an example of the local coordinate system. This local coordinate system is used during the command mode. That is, the x, y, and z coordinate values input from the
ステップ122では、コマンド処理ルーチン(後述)を起動させて、コマンド処理を実行する。このコマンド処理ルーチンは、ローカルz軸上のLED10の動きを判断し、該動きに対応付けられた処理の実行を指示するための処理ルーチンであり、指示入力処理ルーチンのサブルーチンとして予め指示入力処理プログラムに組み込まれている。
In
ステップ124では、タイマTがコマンドモードの時間K2に到達したか否かを判断する。ここで、タイマT<K2であると判断した場合には、コマンド処理ルーチンを繰り返す。また、タイマT≧K2であると判断した場合には、コマンドモードの時間K2が経過したと判断し、ステップ100に戻る。これにより、コマンドモードは終了する。
In
あるいは、コマンド処理ルーチン実行中、メインルーチンは常にタイマTを監視して時間K2が経過したか否かを判断し、時間K2が経過したと判断したときには割込みによりコマンド処理ルーチンを強制終了するようにしてもよい。 Alternatively, during execution of the command processing routine, the main routine always monitors the timer T to determine whether or not the time K2 has elapsed, and when it is determined that the time K2 has elapsed, the command processing routine is forcibly terminated by an interrupt. May be.
ここで、コマンド処理ルーチンの処理について説明する。 Here, the processing of the command processing routine will be described.
まず、図10を参照しながら、コマンド処理ルーチンで判断されるLED10の動きについて説明する。図において、加速度の状態は実線の矢印で、速度の状態は点線の矢印で示されている。
First, the movement of the
クリックの動きは、予め設定されている時間以内の動きであり、ローカル平面Lに近づく方向(ローカルz軸のマイナス方向)に急速に移動した後、逆の方向(z軸のプラス方向)に急速に移動する(すなわち、ローカルz軸上を1往復する)動きとして設定されており、図ではAの動きに相当する。 The click movement is a movement within a preset time, and after rapidly moving in the direction approaching the local plane L (minus direction of the local z axis), it rapidly moves in the opposite direction (plus direction of the z axis). (That is, reciprocates once on the local z axis), and corresponds to the movement A in the figure.
ダブルクリックの動きは、予め設定されている時間以内の動きであり、クリックの動きを連続して2回繰り返す(すなわち、ローカルz軸上を2往復する)動きとして設定されており、図ではBの動きに相当する。 The double-click movement is a movement within a preset time, and is set as a movement that repeats the click movement twice continuously (that is, reciprocates twice on the local z-axis). Corresponds to the movement of
ドラッグ・アンド・ドロップの動きは、ドラッグの動きとドロップの動きとから構成され、図ではCの動きに相当する。ドラッグは、ローカルz軸のマイナス方向に急速に移動した後、予め設定されている時間経過後、ゆっくりとマイナス方向或いはローカル平面L上を移動する動きとして設定されている。なお、ゆっくりとマイナス方向或いはローカル平面L上を移動する動きには、時間の制限はない。ドロップは、ローカルz軸のプラス方向に急速に移動する動きとして設定されている。 The drag-and-drop movement is composed of a drag movement and a drop movement, and corresponds to the movement C in the figure. The drag is set as a movement that moves rapidly in the minus direction or on the local plane L after a predetermined time has elapsed after rapidly moving in the minus direction of the local z axis. Note that there is no time limit for the movement that slowly moves in the minus direction or on the local plane L. The drop is set as a movement that moves rapidly in the positive direction of the local z-axis.
図11は、図10のダブルクリックの動き(B)のローカルz軸上の動きを時間の経過に従って示した図である。本図において、横軸は時間軸、縦軸はz軸を表している。B0点〜B4点で示される太実線はLED10の動きの軌跡を表している。細実線矢印は加速度の状態を表し、点線矢印は速度の状態を表している。なお、太実線で示される時間軸上のLED10の動き、該動きに伴う加速度及び速度は、実際には非常に小さいものであるが、本図では誇張して描かれている。
FIG. 11 is a diagram showing the movement on the local z-axis of the double-click movement (B) of FIG. 10 as time elapses. In this figure, the horizontal axis represents the time axis, and the vertical axis represents the z-axis. A thick solid line indicated by points B0 to B4 represents the locus of movement of the
以下、図12から図14の各フローチャートを用いて、図11と対比させながら、コマンド処理ルーチンについて説明する。 Hereinafter, the command processing routine will be described using the flowcharts of FIGS. 12 to 14 while comparing with FIG.
なお、ここではローカルz軸上のLED10の動きを判断するため、LED10の動きを判断するための加速度及び速度は、ローカル座標系のz座標値を用いて検出する。
Here, in order to determine the movement of the
また、ローカル平面Lに近づく方向をローカルz軸のマイナス方向とし、ローカル平面Lから離れる方向をローカルz軸のプラス方向として加速度及び速度を検出するため、LED10をローカル平面Lに近づく方向に移動させれば、検出される加速度及び速度の符号は−となり、ローカル平面Lから離れる方向に移動させれば、検出される加速度及び速度の符号は+となる。なお、閾値A0及び閾値V0は絶対値で設定されているため、検出した加速度又は速度と閾値とを比較する際には、加速度及び速度が正の値となるように必要に応じて−の符号を付して処理する。
Also, in order to detect acceleration and speed with the direction approaching the local plane L as the negative direction of the local z axis and the direction away from the local plane L as the positive direction of the local z axis, the
図12のフローチャートのステップ400で、検出した加速度に−の符号を付した値が、加速度の閾値A0を越えたか否かを判断する。前述したように、LED10をローカル平面Lに近づく方向に動かせば、速さ及び加速度の符号は−となる。従って、この場合には、−の符号を付すことにより速さ及び加速度を正の値にする。
In
ステップ400で、−加速度≦A0であると判断した場合には、本サブルーチンを終了してメインルーチンに戻る。図11では、B0点以前の状態が待機状態に相当する。メインルーチン(図5)のステップ124でタイマT≦K2と判断されれば、またコマンド処理が繰り返される。またステップ400で−加速度>A0であると判断した場合には(図11では、B0点に相当)、操作者が意志をもって手を動かした状態であるため、ステップ402に移行し、タイマT1及びタイマT2をスタートさせる。
If it is determined in
ここで、タイマT1は、ある方向への移動を開始してから該ある方向とは逆の方向への移動を開始するまでの時間を計時するために用いられるタイマである。タイマT1に対しては、予め閾値T10が設定されている。 Here, the timer T1 is a timer used for measuring the time from the start of movement in a certain direction to the start of movement in a direction opposite to the certain direction. A threshold T1 0 is set in advance for the timer T1.
タイマT2は、ダブルクリックの動きを判断するために用いられるタイマである。タイマT2に対しては、予め閾値T20が設定されている。 The timer T2 is a timer used for determining the double click movement. For timer T2, it is previously threshold T2 0 is set.
ステップ404で、速度に−の符号を付した値が、閾値V0を越えたか否かを判断する。ここで、−速度≦V0であると判断した場合には、ステップ416に移行し、タイマT1及びT2をリセットして終了する。また、−速度>V0であると判断した場合には(図11ではB1点に相当)、ステップ406に移行し、加速度が閾値A0を越えたか否かを判断する。なお、ここでは、LED10の移動方向を明瞭にするために便宜上加速度に+の符号を付す。
In
ステップ406で、+加速度≦A0であると判断した場合には、ステップ408に移行し、タイマT1が閾値T10を越えたか否かを判断する。ここで、タイマT1≦T10であると判断した場合には、ステップ406に戻る。また、+加速度>A0であると判断した場合には、ステップ410に移行し、タイマT1が閾値T10以下であるか否かを判断する。
If it is determined in
ステップ410で、タイマT1>T10であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないと判断し、ステップ416に移行し、タイマT1及びT2をリセットして終了する。また、ステップ410で、タイマT1≦T10であると判断した場合には、LED10の動きは予め設定されている時間以内の動きであるため、ステップ412に移行し、速度が、閾値V0を越えたか否かを判断する。
If it is determined in
ステップ412で、+速度≦V0であると判断した場合には、LED10の動きは予め設定されている動きのいずれにも対応しないと判断し、ステップ416に移行し、タイマT1及びT2をリセットして終了する。+速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているクリックの動きに対応すると判断し、ステップ414に移行し、クリック処理を行う(図11では、B2点に相当)。
If it is determined in
クリック処理を具体的に図3の機能構成図を用いて説明すると、コマンド生成部50が、クリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。コマンド生成部50は、該コマンドを2次元マウスにおけるボタン操作によるコマンドと同様の形式で出力する。これにより、マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して適切な処理を実行することができる。
The click process will be specifically described with reference to the functional configuration diagram of FIG. 3. The
ステップ414のクリック処理を実行した後は、図13のステップ420に移行し、タイマT1をリセットしてスタートさせる。このステップ以降の処理は、LED10の動きがダブルクリックの動きであるか否かを判断するための処理となる。
After executing the click process in
ステップ422では、加速度に−の符号を付した値が閾値A0を越えたか否かを判断する。−加速度≦A0であると判断した場合には、ステップ424に移行し、タイマT1が閾値T10を越えたか否かを判断する。
In
ステップ424で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。ステップ424で、タイマT1≦T10であると判断した場合には、ステップ422に戻る。
If it is determined in
ステップ422で、−加速度>A0であると判断した場合には、ステップ426に移行し、タイマT1が閾値T10以下であるか否かを判断する。
If it is determined in
ステップ426で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。ステップ426で、タイマT1≦T10であると判断した場合には、ステップ428に移行し、−速度が閾値V0を越えたか否かを判断する。
In
ステップ428で、−速度≦V0であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。ステップ428で、−速度>V0であると判断した場合には、ステップ430に移行し、タイマT1をリセットしてスタートさせる(図11では、B3点に相当)。
If it is determined in
ステップ432では、次に検出した加速度が閾値A0を越えたか否かを判断する。ここで、+加速度≦A0であると判断した場合には、ステップ434に移行し、タイマT1が閾値T10を越えたか否かを判断する。
At
ステップ434で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。タイマT1≦T10であると判断した場合には、ステップ432に戻る。
In
ステップ432で、+加速度>A0であると判断した場合には、ステップ436に移行し、タイマT1が閾値T10以下であるか否かを判断する。
If it is determined in
ステップ436で、タイマT1>T10であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。タイマT1≦T10であると判断した場合には、ステップ438に移行し、タイマT2が閾値T20以下であるか否かを判断する。
In
タイマT2は、クリックの動きがスタートしたときからの時間を計時している。閾値T20は、ダブルクリックの動きに要する時間の限度として予め設定されている。従って、タイマT2と閾値T20を比較することにより、LED10の動きがダブルクリックの動きに対応するか否かを判断することができる。 The timer T2 measures the time from when the click movement starts. Threshold T2 0 is previously set as the limit of the time required for the movement of a double-click. Therefore, by comparing the timer T2 and the threshold T2 0, it can be determined whether the movement of the LED10 corresponds to double-clicking movement.
ステップ438で、タイマT2>T20であると判断した場合には、LED10の動きはダブルクリックの動きに対応していないと判断し、ステップ444に移行してタイマT1及びT2をリセットし終了する。タイマT2≦T20であると判断した場合には、ステップ440に移行し、+速度が閾値V0を越えたか否かを判断する。
In
ステップ440で、+速度≦V0であると判断した場合には、ステップ444に移行し、タイマT1及びT2をリセットして終了する。+速度>V0であると判断した場合には、LED10の動きは前述した予め設定されているダブルクリックの動きに対応すると判断し、ステップ442に移行してダブルクリック処理を行う(図8では、B4点に相当)。
If it is determined in
ダブルクリック処理もクリック処理と同様に、コマンド生成部50が、ダブルクリックの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、2次元マウスと同様に該コマンドを解釈して、ダブルクリックの動きに対応する適切な処理を実行することができる。
Similarly to the click process, in the double click process, the
ステップ442の後は、ステップ444に移行してタイマT1及びT2をリセットし、終了する。
After
なお、ダブルクリックの動きは、上述の速度、加速度、及び時間の条件を満たした動きであれば、特に図11に限定されるものではない。例えば、2回目のクリックのローカルz軸上の始点(すなわち、B2点)は、1回目のクリックのローカルz軸上の始点(すなわち、B0点)と同じ位置である必要はない。 Note that the double-click movement is not particularly limited to that shown in FIG. 11 as long as it satisfies the speed, acceleration, and time conditions described above. For example, the start point on the local z-axis of the second click (ie, point B2) need not be the same position as the start point on the local z-axis of the first click (ie, point B0).
一方、図12のステップ408で、タイマT1>閾値T10であると判断した場合には、LED10の動きは予め設定されているドラッグの動きに対応すると判断し、図14のステップ450に移行し、ドラッグ処理を行う。
On the other hand, in
具体的には、コマンド生成部50が、クリック処理と同様に、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
Specifically, the
なお、ドラッグ処理は、通常は、クリック処理の後に行われる処理である。例えば、クリック処理により選択されたアイコンなどのオブジェクトをドラッグ(移動)したりすることができる。 The drag process is usually a process performed after the click process. For example, an object such as an icon selected by the click process can be dragged (moved).
ステップ450の後は、ステップ452で、加速度が閾値A0を越えたか否かを判断する。+加速度≦A0であると判断した場合には、ステップ450に戻り、ドラッグ処理を継続する。また、+加速度>A0であると判断した場合には、ステップ454に移行し、速度が閾値V0を越えたか否かを判断する。
After
ステップ454で、+速度≦V0であると判断した場合には、ステップ450に戻り、ドラッグ処理を継続する。+速度>V0であると判断した場合には、LED10の動きは予め設定されているドロップの動きに対応するため、ステップ456に移行し、ドロップ処理を行う。
If it is determined in
ドロップ処理もドラッグと同様に、コマンド生成部50が、ドラッグの動きに対応付けられた処理の実行を指示するためのコマンドをマウスドライバ52に出力する。マウスドライバ52を介して該コマンドが入力されたOS54では、該コマンドを解釈して、ドラッグの動きに対応する適切な処理を実行する。
In the drop process as well as the drag, the
ステップ456の後は、ステップ458でタイマT1及びT2をリセットして終了する。
After
以上説明した指示入力処理ルーチンを具体的な例を挙げて説明する。例えば、操作者が、ディスプレイ42に表示されているファイル(のアイコン)をダブルクリックしてオープンさせたい場合には、まず、1回目のプッシュでポインティングモードを開始し、操作者がオープンさせたいファイルのアイコンが表示されている位置とカーソルの表示位置とが一致(ポインティング)するようにLED10を移動させる。該ファイルにポインティングできたところで、2回目のプッシュを行ってコマンドモードを開始し、ダブルクリックの動作を行う。これによりファイルをオープンさせることができる。なお、1回目のプッシュで、カーソルの位置を補正する必要がなければ、直ちに2回目のプッシュを行えばよい。
The instruction input processing routine described above will be described with a specific example. For example, if the operator wants to open a file (its icon) displayed on the
なお、上述したドロップの動きを、上述のLED10をローカルz軸上のプラス方向に急速に動かす動きではなく、再度ローカル平面に対してプッシュする動き(すなわち、ローカルz軸上のマイナス方向に急速に動かす動き)としてもよい。この場合には、ステップ452を、−加速度>A0であるか否かを判断する処理に置換え、ステップ454を、−速度>V0であるか否かを判断する処理に置換える。これにより、再度ローカル平面に対してプッシュしたときにドロップ処理が行われるという方式になる。この方式によれば、ドロップの動きが、人が”物を置く”という動きに近くなり、操作者はより自然な動きで指示入力できる。
Note that the above-described drop movement is not the movement of rapidly moving the
また、LED10の動きが予め定められた動き(クリック、ダブルクリック、ドロップ&ドロップ)に対応するか否かを判断する際、LED10の動き又は予め定められた動きに許容量を持たせて判断するようにしてもよい。例えば、操作者がLED10を手に装着して動かす場合、手のふらつきによって、意図しない微細なぶれが生じる場合がある。従って、判断手段は、LED10の動き又は予め定められた動きに許容量を持たせて判断することにより、より円滑に指示入力できる。
Further, when determining whether or not the movement of the
以上説明したように、LED10の位置情報を入力し、位置情報に基づいてLED10の動きに伴う加速度及び速度を検出し、検出した加速度及び速度に基づいてLED10の移動方向を示す速度ベクトルSを算出し、該速度ベクトルS含む線分M1を算出し、該線分M1と表示画面に対応して設けられた仮想平面Vとの交点C1を算出してディスプレイ42の画面の交点C1に対応する位置にカーソルを表示するようにしたため、機械的操作を行うことなく、自然な動作でポインティングすることができる。
As described above, the position information of the
また、加速度が所定値を越えた後にLED10が静止した静止位置Pと、静止した位置から移動した移動位置Qとから、移動ベクトルPQを算出し、移動ベクトルPQにより示される方向に垂直な平面Nと、線分M1との交点Oを算出し、該交点Oと移動位置Qとを含む線分M2と仮想平面Vとの交点C2を算出して、カーソルの表示位置を移動するようにしたため、無理なく自然な動作でカーソルの位置を移動したり微調整したりすることができる。
Further, a movement vector PQ is calculated from the stationary position P where the
更に、ポインティング動作の最初のLED10の動きで、操作者が指示する方向(速度ベクトルS)を求めることができる。従って、ポインティング動作の最初の段階で所望の方向にLED10を移動させれば、次に続く動作が不安定な状態になっても、所望の位置にポインティングすることができるため、例えば、細やかな操作を安定して行うことが困難な人にとっても使い勝手に優れる。
Furthermore, the direction (speed vector S) indicated by the operator can be obtained by the movement of the
また、絶対座標値を用いずにLED10の移動方向によりポインティングの処理を行うため、遠隔操作が可能となる。
Further, since the pointing process is performed according to the moving direction of the
また、加速度センサを用いずに、1つの発光手段(LED10)からの光を検出することにより3次元位置を測定して操作者の指示する方向や位置を求めることができるため、システムを容易かつ安価に構築することが可能である。 In addition, by detecting light from one light emitting means (LED 10) without using an acceleration sensor, the three-dimensional position can be measured to determine the direction and position indicated by the operator, which makes the system easy and It can be constructed at low cost.
なお、実験によると、手等に装着したLEDの動きを検出するための閾値として、加速度の閾値は3x10-7 m/sec2程度であり、速度の閾値は6x10-6 m/sec程度が好適であることが分かっている。この値は、市販の加速度センサにより検出される加速度より数桁オーダーも小さいため、加速度を検出するための装置として加速度センサを用いることは好適ではない。従って、本発明のように、加速度センサを用いずに、発光手段が発光した光を検出して3次元位置を計測する計測装置を用いて加速度及び速度を検出することにより、精度高くLEDの動きを検出でき、簡単な構造と簡単な計算でかつ安価にシステムを構築することができる。 According to the experiment, the threshold for acceleration is about 3x10 -7 m / sec 2 and the threshold for velocity is preferably about 6x10 -6 m / sec. I know that. Since this value is several orders of magnitude smaller than the acceleration detected by a commercially available acceleration sensor, it is not suitable to use an acceleration sensor as a device for detecting the acceleration. Therefore, as in the present invention, the movement of the LED can be detected with high accuracy by detecting the acceleration and speed using a measuring device that detects the light emitted by the light emitting means and measures the three-dimensional position without using the acceleration sensor. The system can be constructed at a low cost with a simple structure and simple calculation.
なお、本実施の形態では、移動位置Qを所定時間毎に検出する例について説明したが、
静止位置Pが検出された後に静止した静止位置を移動位置Qとしてもよい。
In the present embodiment, the example in which the movement position Q is detected every predetermined time has been described.
The moving position Q may be a stationary position that is stationary after the stationary position P is detected.
また、所定時間交点Oを固定し、固定した交点Oと移動位置Qとを含む線分M2から交点C2を逐次更新していくようにしてもよい。これにより、交点Oを常に算出し直す場合に比して計算量を軽減させることができる。なお、この場合には、時間的なずれと共に誤差が生じてくる場合があるので、一定間隔で交点Oを再計算することも好適である。また、線分M1と線分M2とがなす角度が所定値を越えたときに交点Oを再計算するようにしてもよい。また、交点Oを再計算せずに、一旦カーソルの表示を消して、プッシュの動作からやり直すことができるようにしてもよい。 Alternatively, the intersection point O may be fixed for a predetermined time, and the intersection point C2 may be sequentially updated from the line segment M2 including the fixed intersection point O and the movement position Q. Thereby, the amount of calculation can be reduced compared with the case where the intersection point O is always recalculated. In this case, since an error may occur with a time lag, it is also preferable to recalculate the intersection point O at regular intervals. Further, the intersection point O may be recalculated when the angle formed by the line segment M1 and the line segment M2 exceeds a predetermined value. Further, without recalculating the intersection point O, the display of the cursor may be temporarily deleted and the push operation may be performed again.
更にまた、前回の線分M2と今回の線分M2とがなす角度が所定値を越えたときに、ポインティング動作が緩慢になったと判断して、一旦カーソルの表示を消すようにしてもよい。 Furthermore, when the angle formed by the previous line segment M2 and the current line segment M2 exceeds a predetermined value, it may be determined that the pointing operation has become slow and the cursor display may be temporarily turned off.
なお、線分M1と線分M2(平面N)とが平行になってしまった場合には、交点Oを求めることができない。このような場合を想定し、例えば、交点Oを算出するステップの前に、予め線分M1と平面Nとが平行であるか否かを判断するステップを設け、平行であると判断した場合には、カーソルを移動させない、或いはカーソルがディスプレイ42の画面から消えるように制御して、操作者に再度ポインティングのための動作を行わせるようにしてもよい。
If the line segment M1 and the line segment M2 (plane N) are parallel, the intersection point O cannot be obtained. Assuming such a case, for example, before the step of calculating the intersection point O, a step for determining whether or not the line segment M1 and the plane N are parallel is provided in advance, and when it is determined that they are parallel The cursor may not be moved, or may be controlled so that the cursor disappears from the screen of the
また、上述したように、速度ベクトルSに垂直な平面をx−y平面とし、かつ速度ベクトルSをz軸とする座標系におけるLED10の動きが、予め定められた動きか否かを加速度及び速度に基づいて判断し、判断した動きに対応付けられた処理の実行を指示するようにしたため、ディスプレイの画面に対して垂直な方向でなくても、任意の方向にLEDを動かすことで予め定められた動きを形成することができ、操作者にとって自然な動きでスムーズに指示入力することができる。
Further, as described above, whether the movement of the
なお、上述した実施の形態では、2回めのプッシュを、1回めのプッシュと同様の動作とする例について説明したが、例えば、2回目のプッシュについては上述したクリックの動作と同じように、任意の方向に1往復する動作としてもよい。これにより、操作者にとってより自然な動きで指示入力できる。 In the above-described embodiment, the example in which the second push is the same operation as the first push has been described. For example, the second push is the same as the click operation described above. Further, it may be an operation that makes one reciprocation in an arbitrary direction. Thereby, it is possible to input an instruction with a more natural movement for the operator.
また、上述した実施の形態では、LED10の移動方向や動きのみにより指示入力する例について説明したが、例えば、指示入力用のスイッチやボタン等をLED10とは別に備えておき、LED10の移動方向や動きによる指示入力とボタン押下等の機械的操作による指示入力とを必要に応じて使い分けることも可能である。
In the above-described embodiment, an example in which an instruction is input only by the movement direction or movement of the
また、LED10に電池を接続し、電池をLED10と同じ手に装着するようにしてもよい。これにより、LED10への電源供給のためのコードが不要となりワイヤレスで操作できる。
Alternatively, a battery may be connected to the
また、上述した実施の形態では、LED10を操作者の手や指に装着する例について説明したが、例えば、図15に示されるように、LED10をペン型のツール12に設けてもよい。ペン型のツール12には電池等の電源供給手段を設けるようにすることもできる。また、図16に示されるように、LED10を携帯電話16に設けてもよい。この場合には、携帯電話16の電源をLED10の電源と共有することができる。
In the above-described embodiment, the example in which the
[第2の実施の形態]
第1の実施の形態では、LED10が移動すると、算出された最新の交点C2のみに対応する位置にカーソルが表示される例について説明したが、本実施の形態では、最新の交点C2だけでなく、過去算出された交点についても、対応する位置にカーソルを表示すると共に、時間の経過に従ってそれら複数のカーソルの表示状態を変更する例について説明する。
[Second Embodiment]
In the first embodiment, an example has been described in which when the
なお、本実施の形態におけるシステム構成及びパソコン30の構成は、第1の実施の形態と同様であるため説明を省略する。
Note that the system configuration and the configuration of the
図17は、本実施の形態におけるディスプレイ42に表示されたカーソルの表示状態を示す図である。図示されるように、ディスプレイ42には、最新のカーソルから数ステップ前までの複数のカーソル(ここでは、4ステップ前まで、計5つのカーソル)が表示されている。カーソル60a、60b、60c、60d、60eの順に、表示されてから経過した時間が短い。カーソルの表示色は、表示されてから経過した時間が短い順に濃くなっている。
FIG. 17 is a diagram showing a display state of the cursor displayed on the
図18は、本実施の形態に係る表示制御ルーチンの流れを示すフローチャートである。本表示制御ルーチンは、前述の指示入力処理プログラムに含まれている。 FIG. 18 is a flowchart showing the flow of the display control routine according to the present embodiment. This display control routine is included in the aforementioned instruction input processing program.
ステップ500で、所定時間が経過したか否かを判断する。所定時間経過したと判断したときには、ステップ502で、カーソルの表示状態を変更する。
In
具体的には、カーソル60a、60b、60c、60d、60eのそれぞれの表示色が同じ程度だけ薄くなるように表示制御する。
Specifically, display control is performed so that the display colors of the
なお、図示は省略するが、新たに移動位置Qが検出されて仮想平面Vとの新たな交点C2が検出された場合には、表示されてからの時間が最も長いカーソル60eが消去され、ディスプレイ42の画面の、新たな交点C2に対応する位置に最新のカーソルが表示されるように制御される。また、カーソル60a、60b、60c、60dの表示状態がそれぞれ変更される。すなわち、新たに表示されたカーソルの表示色が最も濃くなり、カーソル60dの表示色が最も薄くなるように表示制御される。
Although illustration is omitted, when the moving position Q is newly detected and a new intersection C2 with the virtual plane V is detected, the
このように、最新の交点C2だけでなく、過去算出された交点についても対応する位置にカーソルを表示すると共に、時間の経過に従ってそれら複数のカーソル表示状態を変更するようにしたため、カーソルの表示位置を見失うことなく、容易に指示入力位置を確認することができる。
[第3の実施の形態]
第1及び第2の実施の形態で説明した指示入力システムをゲーム等の娯楽システムや複写機操作の補助システムに適用した例について説明する。本実施の形態においては、本発明の指示入力装置としての機能を有するパソコン30については、図示が省略されている。
As described above, since the cursor is displayed at the corresponding position not only for the latest intersection C2 but also for the intersection calculated in the past, the display state of the cursors is changed as time elapses. The instruction input position can be easily confirmed without losing sight.
[Third Embodiment]
An example in which the instruction input system described in the first and second embodiments is applied to an entertainment system such as a game and an auxiliary system for operating a copying machine will be described. In the present embodiment, the
図19は、指示入力システムをモグラたたきゲームに適用した場合を示した図である。図示される画面は、パソコン30のディスプレイ42の画面とする。ディスプレイ42の画面に動物の顔がランダムに現れる。利用者はLED10が設けられたペン型のツール12(以下、LEDペン12と呼称する)を使い、モグラたたきのルールに従って、現れた顔をポインティングするか或いはクリックする。現れた顔をポインティングしたとき或いはクリックしたときには、それに従って点数が加算されるようにする。
FIG. 19 is a diagram showing a case where the instruction input system is applied to a mole-tapping game. The screen shown is the screen of the
図20は、指示入力システムをダーツゲームに適用した場合を示した図である。この場合には、画面上に通常ダーツで使われる模様(複数の同心円等)が表示される。利用者がLEDペン12を投げるふりをすると、パソコン30のCPU34はLED10の進行方向を計算してLED10が指示する位置を算出し(すなわち、第1の実施の形態の交点C1を算出し)、画面に表示されている模様に当たったか否かを判断し、当たった場所に応じて点数を加算する。
FIG. 20 is a diagram showing a case where the instruction input system is applied to a dart game. In this case, a pattern (such as a plurality of concentric circles) normally used for darts is displayed on the screen. When the user pretends to throw the
図21は、指示入力システムをインベーダーゲームに適用した場合を示した図である。画面に爆弾等の落下物が表示される。落下物は画面の上方から下方に向かって落下する。利用者は落下物をLEDペン12によりポインティングまたはクリックする。落下物をポインティング或いはクリックできた場合には、落下物が爆発し、点数が加算される。落下物の種類に応じて点数が加算されるようにしてもよい。落下物が地表(画面の底辺)まで辿りついた場合には、落下物の種類に応じて点数を減算するようにしてもよい。
FIG. 21 is a diagram showing a case where the instruction input system is applied to an invader game. Falling objects such as bombs are displayed on the screen. Falling objects fall from the top to the bottom of the screen. The user points or clicks the fallen object with the
図22(A)は、指示入力システムをハンマーゲームに適用した場合を示した図である。画面には、VRML(Virtual Reality Modeling Language)等を用いて3次元表現で表示する。画面の中心部にはハンマー62を表示し、画面上ではハンマー62の柄の最下部が基点となるように固定される。利用者は、LEDペン12のドラッグの動きにより、ハンマー62を基点を中心に動かすことが可能である。画面に表現されている3次元空間には彗星のような複数の物体が自由に、かつ各々異なった速さで動いている。利用者は、LEDペン12のドラッグの動きにより、物体をたたくようにハンマー62を動かす。ハンマー62が物体に当たったときには点数が加算される。基点はLEDペン12のドラッグ&ドロップの動きにより3次元空間上で移動させることも可能である。また、図22(B)に示されるように、ハンマー62の代わりに昆虫網64を表示し、昆虫網64により物体を捉えるようなゲームにしてもよい。なお、ハンマー62も昆虫網64も3次元の奥行き表現を誇張してやると好適である。
FIG. 22A is a diagram showing a case where the instruction input system is applied to a hammer game. The screen is displayed in a three-dimensional representation using VRML (Virtual Reality Modeling Language) or the like. A
図23は、図22(A)及び図22(B)に示したゲームの仕組みを大掛りにしたものである。図示されるように、ディスプレイ42の代わりに大型スクリーン42aを用いて3次元空間を表現し、実物の昆虫網68の柄の最上部及び最下部の2カ所にLED10を設ける。大型スクリーン42aには、複数の仮想昆虫(トンボ等)と、実物の昆虫網68に対応した仮想昆虫網72が表示される。また、大型スクリーン42a手前には、3D計測装置20の受光部70を4カ所に配設した3次元認識領域を設ける。3D計測装置20は、2つのLED10の3次元位置を計測し、2つの位置情報をパソコン30に出力することにより、昆虫網68の位置及び動きをパソコン30側で認識することができる。
FIG. 23 shows a large scale of the game mechanism shown in FIGS. 22 (A) and 22 (B). As shown in the drawing, a three-dimensional space is expressed using a
利用者は、該3次元認識領域内で、LED10を2カ所に設けた昆虫網68を動かすことにより、その動きがパソコン30側で認識され、それにより、大型スクリーン42aに表示された仮想昆虫網72を動かすことができる。利用者は、昆虫網68を動かして仮想昆虫網72を動かし、仮想空間内を自由な方向で、かつ予め設定されたスピードで動いている仮想昆虫を捕らえる。捕らえた仮想昆虫の種類に応じて異なった得点が加算される。
The user moves the
ここでは、昆虫網68の柄の最下部のドラッグの動きによって、仮想昆虫網72の柄の最下部(基点)を動かすものとする。また、昆虫網68の柄の最上部の動きを認識することで、3次元空間の基点に対する位置を第1の実施の形態と同様に計算することができる。なお、柄の長さは決まっているので、柄の基点に対して定数を加算するだけでよい。
Here, it is assumed that the lowermost part (base point) of the pattern of the
同様に昆虫網68のネット部分の大きさも決まっているので、ネット部分の位置も簡単に求められる。よって、ネットの動き、或いは軌跡をリアルタイムで計算することができ、仮想昆虫が仮想昆虫網72のネットに入ったか否かを判断することができる。
Similarly, since the size of the net part of the
このゲームは、ゲームセンタや、大型投影機や大型スクリーンがある家庭内等で利用できる。なお、モーションキャプチャー装置を用いて同様のゲームを提供することは可能ではあるが、費用がかかる。一方、本指示入力システムを用いれば安価に実現可能であり、かつ、2つの光源を設けるだけでよいため、電源(電池)の消費が少なくてすむ。また、モーションキャプチャーの場合には、通常、電源はコードにより有線で供給されており、利用者の動作がある程度制限されるが、本指示入力システムでは大きな電力は消費されないため電池等で電源を供給するだけでよく、動作の制限は少なくてすむ。 This game can be used in game centers, homes with large projectors, and large screens. Although it is possible to provide a similar game using a motion capture device, it is expensive. On the other hand, if this instruction input system is used, it can be realized at a low cost, and only two light sources need be provided, so that power consumption (battery) can be reduced. In the case of motion capture, the power is usually supplied in a wired manner with a cord, and the user's operation is limited to some extent. However, since this instruction input system does not consume a large amount of power, it is supplied with a battery or the like. You only need to do this, and there are fewer restrictions on the operation.
また、VR(バーチャルリアリティー)を実現する際に通常必要とされるHMD(ヘッドマウントディスプレー)やデータグローブが、本指示入力システムでは不要となるため、利用者の使用快感度が向上し、コストの面においても有利である。 In addition, the HMD (head-mounted display) and data glove that are normally required for realizing VR (virtual reality) are not required in this instruction input system, so that the user's pleasant feeling of use is improved and the cost is reduced. This is also advantageous in terms of the aspect.
図24は、指示入力システムを落下物捕獲ゲームに適用した場合を示した図である。投影機74により大型スクリーン42aに落下物を投影する。落下物はランダムに落下させる。大型スクリーン42a上部には3D計測装置20の受光部70が設けられ、利用者の手や指等に装着されたLED10等の光源の位置が測定される。
FIG. 24 is a diagram showing a case where the instruction input system is applied to a falling object capturing game. The falling object is projected onto the
利用者は、大型スクリーン42aに表示された落下物に対して、たたくような動作を行う。3D計測装置20は、LED10の3次元位置を測定し、3次元位置を示す位置情報により、LED10の動きに伴う加速度、速度、方向などが検出され、LED10の移動方向や動きが検出される。更に、落下物の位置と予め設定されている許容量とから、落下物がたたかれたか否かを判断する。たたかれたと判断した場合には、爆発の画像を表示して、たたかれた落下物の表示を消す。これらの処理はパソコン30により行われる。
The user performs an operation of hitting the falling object displayed on the
落下物の大きさや種類によって得点は異なり、また落下物が地表(大型スクリーン42aの底辺)まで落下した場合には、落下物の種類によって得点が差し引かれるようにしてもよい。なお、この差し引かれる得点は加算される得点の負数とは限らない。
The score differs depending on the size and type of the fallen object, and when the fallen object falls to the ground (the bottom of the
また、ゲームの進行とともに、残り時間を大型スクリーン42aに表示したり、音楽を流したりして、ゲームの興奮度を高めることも可能である。本ゲームは、図23で示したハンマーゲームと異なり、VRMLソフトは必要ないため、より安価に実現できる。
Further, as the game progresses, the remaining time can be displayed on the
図25は、指示入力システムを複写機操作の補助に用いる場合を示した図である。現在普及している複写機の中には、操作画面(タッチパネルディスプレイ)82が、図示されるように複写機80の上後端部に設けられているものがある。このように、操作画面82が比較的離れた位置にあると、子供や背が比較的低い人、或いは体の不自由な人にとっては、操作画面82に触れること自体が困難となり、指示入力しづらい。
FIG. 25 is a diagram showing a case where the instruction input system is used to assist the copying machine operation. Among copying machines currently in widespread use, an operation screen (touch panel display) 82 is provided at the upper rear end of the copying
従って、複写機80の側面や、操作画面82の側面に3D計測装置20の受光部を配備し、LED10を利用者の指に装着したり、或るいはLEDペン12等のツールを用いることにより、比較的離れた位置に設けられた操作画面82に対して容易に指示入力することができる。
Accordingly, the light receiving unit of the
このように、指示入力システムを複写機等に適用すれば、タッチパネルディスプレイの操作を画面に触れずに比較的離れたところから行うことができる。 Thus, if the instruction input system is applied to a copying machine or the like, the operation of the touch panel display can be performed from a relatively remote place without touching the screen.
また、複写機だけでなく、金融機関のATM等のタッチパネルディスプレイの操作にも適用することができる。スイッチのON/OFF操作等に適用することができる。 Further, the present invention can be applied not only to copying machines but also to operation of touch panel displays such as ATMs of financial institutions. It can be applied to ON / OFF operation of a switch.
10 LED
16 携帯電話
20 3D計測装置
30 パソコン
32 パソコン本体
34 CPU
36 ROM
38 RAM
40 I/O
42 ディスプレイ
46 HDD
50 コマンド生成部
10 LED
16
36 ROM
38 RAM
40 I / O
42
50 Command generator
Claims (17)
前記入力手段により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出手段と、
前記検出手段により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出手段と、
前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出手段と、
前記表示手段の前記表示用交点算出手段により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御手段と、
を含む指示入力装置。 Input means for inputting position information indicating the position of the light emitting means measured by detecting light emitted from the light emitting means that moves according to the operation of the predetermined part of the operator;
Detecting means for detecting acceleration and speed of the light emitting means based on the positional information input by the input means;
A speed vector calculating means for calculating a speed vector indicating a moving direction of the light emitting means based on a position where the acceleration detected by the detecting means exceeds a predetermined value based on the detected speed;
An intersection between a line segment including the velocity vector calculated by the velocity vector calculating unit and a virtual plane provided corresponding to a display unit that displays instruction information for indicating a position instructed by the light emitting unit. A display intersection calculating means for calculating as a display intersection;
Control means for controlling the display means so that the instruction information is displayed at a position corresponding to the position of the display intersection calculated by the display intersection calculation means of the display means;
Instruction input device including
前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出手段と、
前記平面算出手段により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出手段と、を更に含み、
前記表示用交点算出手段は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出手段により検出された加速度が前記所定値を越えた後は、前記交点算出手段により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出する請求項1記載の指示入力装置。 Calculates a movement vector, which is a vector whose starting point is the rest position where the light emitting means is stationary after the acceleration detected by the detecting means exceeds a predetermined value, and whose moving position is the end point where the light emitting means has moved from the stationary position. Movement vector calculation means for
Plane calculation means for calculating a plane perpendicular to the movement vector calculated by the movement vector calculation means and including the movement position;
An intersection calculation unit for calculating an intersection of the plane calculated by the plane calculation unit and a line segment including the velocity vector calculated by the velocity vector calculation unit;
The display intersection calculation means calculates an intersection between the line segment including the velocity vector and the virtual plane as a display intersection, and after the acceleration detected by the detection means exceeds the predetermined value, The instruction input device according to claim 1, wherein an intersection of the line segment including the intersection calculated by the intersection calculation means and the movement position and the virtual plane is calculated as a display intersection.
前記制御手段は、前記指示情報の表示位置と前記所定のオブジェクトの表示位置とが一致した場合、及び、前記指示情報の表示位置と前記所定のオブジェクトの表示位置とが一致し、かつ前記処理手段により前記予め定められた動きに対応付けられた処理の実行が指示された場合、のいずれか一方の場合に、前記表示手段の表示状態を変更するように前記表示手段を制御する請求項4乃至請求項6のいずれか1項記載の指示入力装置。 The display means displays the instruction information and a predetermined object,
The control means matches the display position of the instruction information with the display position of the predetermined object, the display position of the instruction information and the display position of the predetermined object, and the processing means. 5. The display means is controlled so as to change the display state of the display means in any one of the cases where execution of processing associated with the predetermined movement is instructed by The instruction input device according to claim 6.
前記発光手段から発光された光を検出することにより前記発光手段の位置を計測する計測装置と、
請求項1乃至請求項7のいずれか1項記載の指示入力装置と、
を含む指示入力システム。 Light emitting means that moves according to the operation of a predetermined part of the operator;
A measuring device that measures the position of the light emitting means by detecting light emitted from the light emitting means;
The instruction input device according to any one of claims 1 to 7,
Including instruction input system.
前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、
前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、
前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、
前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、
を含む指示入力方法。 An input step of inputting position information indicating the position of the light emitting means measured by detecting light emitted from the light emitting means that moves according to the operation of a predetermined part of the operator;
A detection step of detecting the acceleration and speed of the light emitting means based on the positional information input in the input step;
A velocity vector calculation step of calculating a velocity vector indicating the direction of movement of the light emitting means based on a position where the acceleration detected by the detection step exceeds a predetermined value, based on the detected velocity;
An intersection of a line segment including the velocity vector calculated by the velocity vector calculating step and a virtual plane provided corresponding to a display unit that displays instruction information for indicating a position instructed by the light emitting unit. A display intersection calculation step for calculating as a display intersection;
A control step of controlling the display means so that the instruction information is displayed at a position corresponding to the position of the display intersection calculated by the display intersection calculation step of the display means;
Instruction input method including
前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、
前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、
前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出する請求項10記載の指示入力方法。 Calculates a movement vector, which is a vector whose starting point is the rest position where the light emitting means is stationary after the acceleration detected in the detection step exceeds a predetermined value, and whose moving position is the end point where the light emitting means has moved from the stationary position. A moving vector calculation step to perform,
A plane calculation step of calculating a plane perpendicular to the movement vector calculated by the movement vector calculation means and including the movement position;
An intersection calculation step of calculating an intersection of the plane calculated by the plane calculation step and a line segment including the velocity vector calculated by the velocity vector calculation means;
The display intersection calculation step calculates an intersection between the line segment including the velocity vector and the virtual plane as a display intersection, and after the acceleration detected by the detection step exceeds the predetermined value, The instruction input method according to claim 10, wherein an intersection of the line segment including the intersection calculated by the intersection calculation step and the movement position and the virtual plane is calculated as a display intersection.
操作者の所定部位の動作に従って移動する発光手段から発光された光を検出することにより計測された該発光手段の位置を示す位置情報を入力する入力工程と、
前記入力工程により入力された位置情報に基づいて、前記発光手段の加速度及び速度を検出する検出工程と、
前記検出工程により検出された加速度が所定値を越えた位置を基点とする前記発光手段の移動した方向を示す速度ベクトルを前記検出された速度に基づいて算出する速度ベクトル算出工程と、
前記速度ベクトル算出工程により算出された速度ベクトルを含む線分と、前記発光手段により指示される位置を示すための指示情報を表示する表示手段に対応して設けられた仮想平面と、の交点を表示用交点として算出する表示用交点算出工程と、
前記表示手段の前記表示用交点算出工程により算出された表示用交点の位置に対応する位置に前記指示情報が表示されるように前記表示手段を制御する制御工程と、
を実行させるためのプログラム。 On the computer,
An input step of inputting position information indicating the position of the light emitting means measured by detecting light emitted from the light emitting means that moves according to the operation of a predetermined part of the operator;
A detection step of detecting the acceleration and speed of the light emitting means based on the positional information input in the input step;
A velocity vector calculation step of calculating a velocity vector indicating the direction of movement of the light emitting means based on a position where the acceleration detected by the detection step exceeds a predetermined value, based on the detected velocity;
An intersection of a line segment including the velocity vector calculated by the velocity vector calculating step and a virtual plane provided corresponding to a display unit that displays instruction information for indicating a position instructed by the light emitting unit. A display intersection calculation step for calculating as a display intersection;
A control step of controlling the display means so that the instruction information is displayed at a position corresponding to the position of the display intersection calculated by the display intersection calculation step of the display means;
A program for running
前記移動ベクトル算出手段により算出された移動ベクトルに垂直で、かつ前記移動位置を含む平面を算出する平面算出工程と、
前記平面算出工程により算出された平面と、前記速度ベクトル算出手段により算出された速度ベクトルを含む線分と、の交点を算出する交点算出工程と、を更に含み、
前記表示用交点算出工程は、前記速度ベクトルを含む線分と前記仮想平面との交点を表示用交点として算出すると共に、前記検出工程により検出された加速度が前記所定値を越えた後は、前記交点算出工程により算出された交点と前記移動位置とを含む線分と、前記仮想平面と、の交点を表示用交点として算出する請求項14記載のプログラム。 Calculates a movement vector, which is a vector whose starting point is the rest position where the light emitting means is stationary after the acceleration detected in the detection step exceeds a predetermined value, and whose moving position is the end point where the light emitting means has moved from the stationary position. A moving vector calculation step to perform,
A plane calculation step of calculating a plane perpendicular to the movement vector calculated by the movement vector calculation means and including the movement position;
An intersection calculation step of calculating an intersection of the plane calculated by the plane calculation step and a line segment including the velocity vector calculated by the velocity vector calculation means;
The display intersection calculation step calculates an intersection between the line segment including the velocity vector and the virtual plane as a display intersection, and after the acceleration detected by the detection step exceeds the predetermined value, The program according to claim 14, wherein an intersection of the line segment including the intersection calculated by the intersection calculation step and the moving position and the virtual plane is calculated as a display intersection.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003298251A JP4438351B2 (en) | 2003-08-22 | 2003-08-22 | Instruction input device, instruction input system, instruction input method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003298251A JP4438351B2 (en) | 2003-08-22 | 2003-08-22 | Instruction input device, instruction input system, instruction input method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005070996A true JP2005070996A (en) | 2005-03-17 |
JP4438351B2 JP4438351B2 (en) | 2010-03-24 |
Family
ID=34403800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003298251A Expired - Fee Related JP4438351B2 (en) | 2003-08-22 | 2003-08-22 | Instruction input device, instruction input system, instruction input method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4438351B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008059614A1 (en) * | 2006-11-15 | 2008-05-22 | Kabushiki Kaisha Sega Doing Business As Sega Corporation | Program for controlling motion of displayed object executed in game device using direct pointing device |
US8456416B2 (en) | 2008-06-03 | 2013-06-04 | Shimane Prefectural Government | Image recognition apparatus, and operation determination method and program therefor |
EP1933109A3 (en) * | 2006-12-12 | 2014-06-04 | Mitutoyo Corporation | Displacement measuring tool |
JPWO2015030264A1 (en) * | 2013-08-30 | 2017-03-02 | 国立大学法人山梨大学 | Click motion detection device, method and program |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01188925A (en) * | 1988-01-22 | 1989-07-28 | Nippon Telegr & Teleph Corp <Ntt> | Cursor moving method and inertia input device for said moving method |
JPH09212288A (en) * | 1996-01-31 | 1997-08-15 | Canon Inc | System and method for information input |
JPH10198479A (en) * | 1997-01-07 | 1998-07-31 | Nippon Telegr & Teleph Corp <Ntt> | Single sensor type full-time mounted input device |
JPH1131047A (en) * | 1997-07-10 | 1999-02-02 | Rikagaku Kenkyusho | Symbol signal generation device |
WO2003023755A1 (en) * | 2001-09-07 | 2003-03-20 | Harmonic Research, Inc. | Improved wireless control device |
JP2004303000A (en) * | 2003-03-31 | 2004-10-28 | Fuji Xerox Co Ltd | Three-dimensional instruction input device |
JP2004341892A (en) * | 2003-05-16 | 2004-12-02 | Fuji Xerox Co Ltd | Instruction input device, instruction input method, and program |
-
2003
- 2003-08-22 JP JP2003298251A patent/JP4438351B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01188925A (en) * | 1988-01-22 | 1989-07-28 | Nippon Telegr & Teleph Corp <Ntt> | Cursor moving method and inertia input device for said moving method |
JPH09212288A (en) * | 1996-01-31 | 1997-08-15 | Canon Inc | System and method for information input |
JPH10198479A (en) * | 1997-01-07 | 1998-07-31 | Nippon Telegr & Teleph Corp <Ntt> | Single sensor type full-time mounted input device |
JPH1131047A (en) * | 1997-07-10 | 1999-02-02 | Rikagaku Kenkyusho | Symbol signal generation device |
WO2003023755A1 (en) * | 2001-09-07 | 2003-03-20 | Harmonic Research, Inc. | Improved wireless control device |
JP2004303000A (en) * | 2003-03-31 | 2004-10-28 | Fuji Xerox Co Ltd | Three-dimensional instruction input device |
JP2004341892A (en) * | 2003-05-16 | 2004-12-02 | Fuji Xerox Co Ltd | Instruction input device, instruction input method, and program |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008059614A1 (en) * | 2006-11-15 | 2008-05-22 | Kabushiki Kaisha Sega Doing Business As Sega Corporation | Program for controlling motion of displayed object executed in game device using direct pointing device |
EP1933109A3 (en) * | 2006-12-12 | 2014-06-04 | Mitutoyo Corporation | Displacement measuring tool |
US8456416B2 (en) | 2008-06-03 | 2013-06-04 | Shimane Prefectural Government | Image recognition apparatus, and operation determination method and program therefor |
JPWO2015030264A1 (en) * | 2013-08-30 | 2017-03-02 | 国立大学法人山梨大学 | Click motion detection device, method and program |
Also Published As
Publication number | Publication date |
---|---|
JP4438351B2 (en) | 2010-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886638B2 (en) | External user interface for head worn computing | |
US11816296B2 (en) | External user interface for head worn computing | |
US20220083880A1 (en) | Interactions with virtual objects for machine control | |
KR101711619B1 (en) | Remote control of computer devices | |
US10739965B2 (en) | Virtual interactions for machine control | |
US10545584B2 (en) | Virtual/augmented reality input device | |
US20220129082A1 (en) | Integration of Artificial Reality Interaction Modes | |
JP6074170B2 (en) | Short range motion tracking system and method | |
US20170336872A1 (en) | External user interface for head worn computing | |
US20170017323A1 (en) | External user interface for head worn computing | |
US20170100664A1 (en) | External user interface for head worn computing | |
US20150205351A1 (en) | External user interface for head worn computing | |
US20160026239A1 (en) | External user interface for head worn computing | |
US20040227741A1 (en) | Instruction inputting device and instruction inputting method | |
TWI705356B (en) | Input method and device in virtual reality scene | |
JP2013037675A5 (en) | ||
WO2017015093A1 (en) | External user interface for head worn computing | |
CN108700957A (en) | Electronic system and method for text input in virtual environment | |
JP4172307B2 (en) | 3D instruction input device | |
US10095269B2 (en) | Motion control assembly with battery pack | |
JP6519075B2 (en) | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING PROGRAM, INFORMATION PROCESSING SYSTEM, AND INFORMATION PROCESSING METHOD | |
JP4438351B2 (en) | Instruction input device, instruction input system, instruction input method, and program | |
JP2016148898A (en) | Information processing program, information processing apparatus, information processing system, and information processing method | |
JP2005078310A (en) | Tactile presentation device, tactile presentation method and program thereof | |
US12131011B2 (en) | Virtual interactions for machine control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090324 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091215 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091228 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130115 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4438351 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130115 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140115 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |