JPWO2009008372A1 - 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 - Google Patents
入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 Download PDFInfo
- Publication number
- JPWO2009008372A1 JPWO2009008372A1 JP2009522628A JP2009522628A JPWO2009008372A1 JP WO2009008372 A1 JPWO2009008372 A1 JP WO2009008372A1 JP 2009522628 A JP2009522628 A JP 2009522628A JP 2009522628 A JP2009522628 A JP 2009522628A JP WO2009008372 A1 JPWO2009008372 A1 JP WO2009008372A1
- Authority
- JP
- Japan
- Prior art keywords
- acceleration
- axis
- angular velocity
- angle
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 221
- 230000001133 acceleration Effects 0.000 claims abstract description 2002
- 238000004364 calculation method Methods 0.000 claims abstract description 310
- 238000012937 correction Methods 0.000 claims abstract description 263
- 238000006243 chemical reaction Methods 0.000 claims abstract description 131
- 238000012545 processing Methods 0.000 claims description 176
- 239000013598 vector Substances 0.000 claims description 170
- 230000008569 process Effects 0.000 claims description 164
- 238000001514 detection method Methods 0.000 claims description 160
- 230000033001 locomotion Effects 0.000 claims description 146
- 230000008859 change Effects 0.000 claims description 89
- 230000001629 suppression Effects 0.000 claims description 42
- 230000009466 transformation Effects 0.000 claims description 19
- 230000004069 differentiation Effects 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000005484 gravity Effects 0.000 abstract description 94
- 239000011295 pitch Substances 0.000 description 93
- 238000010586 diagram Methods 0.000 description 50
- 230000015654 memory Effects 0.000 description 50
- 210000000707 wrist Anatomy 0.000 description 24
- 230000006870 function Effects 0.000 description 22
- 238000006073 displacement reaction Methods 0.000 description 20
- 230000010354 integration Effects 0.000 description 20
- 230000014509 gene expression Effects 0.000 description 17
- 239000002131 composite material Substances 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 239000000758 substrate Substances 0.000 description 8
- 210000003811 finger Anatomy 0.000 description 6
- 210000003127 knee Anatomy 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 4
- 239000013078 crystal Substances 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 238000005401 electroluminescence Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 230000005389 magnetism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 229920006395 saturated elastomer Polymers 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 206010044565 Tremor Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003796 beauty Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 210000004247 hand Anatomy 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 210000000689 upper leg Anatomy 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F3/0383—Signal control means within the pointing device
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B21/00—Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B21/00—Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
- G01B21/22—Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring angles or tapers; for testing the alignment of axes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】入力装置が本来の姿勢から傾いたときの加速度センサに及ぶ重力の問題をなくし、かつ、計算量を少なくすることができる入力装置、制御装置、制御システム及びその制御方法を提供すること。【解決手段】入力装置1のMPU19は、算出したロール角に応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正値である補正角速度値(第2及び第1の補正角速度値(ωψ’、ωθ’))を得る(ステップ103)。これにより、入力装置がZ軸の周りで、重力方向の軸(以下、垂直軸という)に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生するX’軸及びY’軸方向の重力加速度成分による影響を除去することができる。【選択図】図10
Description
本発明は、画面上のポインタを操作するための空間操作型の入力装置、その操作情報に応じてポインタを制御する制御装置、これらの装置を含む制御システム、制御方法及びハンドヘルド装置に関する。
PC(Personal Computer)で普及しているGUI(Graphical User Interface)のコントローラとして、主にマウスやタッチパッド等のポインティングデバイスが用いられている。GUIは、従来のPCのHI(Human Interface)にとどまらず、例えばテレビを画像媒体としてリビングルーム等で使用されるAV機器やゲーム機のインターフェースとして使用され始めている。このようなGUIのコントローラとして、ユーザが空間で操作することができるポインティングデバイスが多種提案されている(例えば、特許文献1、2参照)。
特許文献1には、2軸の角速度ジャイロスコープ、つまり2つの角速度センサを備えた入力装置が開示されている。この角速度センサは、振動型の角速度センサである。例えば共振周波数で圧電振動する振動体に回転角速度が加えられると、振動体の振動方向に直交する方向にコリオリ力が生じる。このコリオリ力は、角速度に比例するので、コリオリ力が検出されることで、回転角速度が検出される。特許文献1の入力装置は、角速度センサにより直交する2軸の回りの角速度を検出し、その角速度に応じて、表示手段により表示されるカーソル等の位置情報としてのコマンド信号を生成し、これを制御機器に送信する。
特許文献2には、3つ(3軸)の加速度センサ及び3つ(3軸)の角速度センサ(ジャイロ)を備えたペン型入力装置が開示されている。このペン型入力装置は、それぞれ3つの加速度センサ及び角速度センサにより得られる信号に基いて種々の演算を行い、ペン型入力装置の姿勢角を算出している。
一般的に加速度センサは、ユーザの入力装置の操作時の加速度だけでなく、重力加速度を検出する。入力装置に働く重力と、入力装置が動くときの入力装置の慣性力とは同じ物理量であるので、入力装置にはその区別が付かない。例えばユーザが、本来の姿勢から傾けるようにして入力装置を握ると、その傾きに応じた重力加速度の分力がそれぞれの軸に対応する加速度センサに働き、加速度センサはこれを検出してしまう。
しかし、上記特許文献2のペン型入力装置では、3軸の回転角速度、3軸方向の加速度が検出され、すなわち、6自由度すべての量が検出されるので、このような慣性力と重力の問題が解決される。
特許文献2のペン型入力装置では、3つの加速度センサ及び3つの角速度センサが用いられるので、構成が複雑であり、また、計算量が多くなるので遅延時間が発生するおそれがある。そのため、ユーザの操作タイミングとGUIの動作タイミングに時間的ずれが生じ、ユーザに違和感を与える。また、計算量が多くなると、消費電力も多くなる。例えば電池が内蔵されるタイプの入力装置にとっては消費電力の問題は重要である。
上記の遅延時間をなくすために、高速のCPUまたはMPUが用いられる場合、さらに消費電力及びコストが増大するという問題がある。
また、特許文献2のペン型入力装置は6つのセンサを備えているので、6つのA/D(Analog / Digital)ポートを備えたCPUもしくはA/Dコンバータが必要になる。したがって、回路構成が複雑となり、またコストが増えるという問題もある。
さらに、特許文献2のペン型入力装置では、演算に加速度の積分項目が存在するため、積分誤差が蓄積されるという問題もある。これを解消するために、特定の条件の時に積分値をリセットすることも提案されているが、積分誤差が実用上支障の無いレベルに収まるために必要な時間間隔でリセット条件が得られる確証がないという問題点もある。
以上のような事情に鑑み、本発明の目的は、入力装置が本来の姿勢から傾いたときの加速度センサに及ぶ重力の問題をなくし、かつ、計算量を少なくすることができる入力装置、制御装置、制御システム、その制御方法及びハンドヘルド装置を提供することにある。
本発明の別の目的は、入力装置が本体の姿勢から傾き、加速度センサを利用してその傾きの角度を計算する場合に、ユーザが入力装置を動かして加速度センサで検出される検出値に含まれる慣性加速度成分の影響を抑制することができる入力装置、制御装置、制御システム、その制御方法及びハンドヘルド装置を提供することにある。
本発明の一形態に係る入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第1の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第2の軸の回りの第2の角速度を検出する第2の角速度センサと、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段とを具備する。
本発明では、第1及び第2の加速度に基き入力装置の角度が算出され、その角度に応じた回転座標変換によって第1及び第2の角速度が補正される。つまり、入力装置が第3の軸の回りで垂直軸に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生する第1及び第2の軸方向の重力加速度成分による影響を除去することができる。したがって、GUIが適切な動きになるようにそのGUIの表示が制御される。
「算出する」とは、演算により値が算出される場合と、求められるべき各種の値が対応テーブルとしてメモリ等に記憶され、その各種の値のいずれかの値がメモリから読み出される場合の両方を意味を含む。
本発明の一形態に係る制御装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第1の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第2の軸の回りの第2の角速度を検出する第2の角速度センサとを備える入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置であって、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する受信手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを具備する。
本発明の一形態に係る制御システムは、入力情報を出力する入力装置と、前記入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置とを備える制御システムであって、前記入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第1の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第2の軸の回りの第2の角速度を検出する第2の角速度センサと、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出する角度算出手段と、前記角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段とを有し、前記制御装置は、前記第1の補正角速度及び前記第2の補正角速度の情報を、前記入力情報として受信する受信手段と、前記受信された第1及び第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御システムは、入力情報を出力する入力装置と、前記入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置とを備える制御システムであって、前記入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第1の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第2の軸の回りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として出力する出力手段とを有し、前記制御装置は、前記入力情報を受信する受信手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出する角度算出手段と、前記角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御方法は、入力装置の動きに応じて画面上のUIを制御する制御方法であって、前記入力装置の、第1の軸に沿う方向の第1の加速度を検出し、前記入力装置の、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出し、前記入力装置の、前記第1の軸の回りの第1の角速度を検出し、前記入力装置の、前記第2の軸の回りの第2の角速度を検出し、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力し、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する。
本発明の一形態に係る入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段とを具備する。
以降の説明では、第1の加速度センサまたは第2の加速度センサを、単に加速度センサという場合もある。同様に、第1の角速度センサまたは第2の角速度センサを、単に角速度センサという場合もある。同様に、第1の加速度値または第2の加速度値を、単に加速度値という場合もあり、第1の角速度値または第2の角速度値を、単に角速度値という場合もある。同様に、第1の速度値または第2の速度値を、単に速度値という場合もあり、第1の補正速度値または第2の補正速度値を、単に補正速度値という場合もある。
角速度センサにより角速度値が算出されるときは、ユーザが入力装置を自然に動かして操作するときである。すなわち、人間が入力装置を動かすとき、ユーザは、肩、肘及び手首のうち少なくとも1つを中心として、入力装置を回転させるように動かすからである。したがって、本発明では、加速度値だけでなく角速度値も用いられて、演算により入力装置の速度値が求められ、その速度値の微分演算により加速度値(演算加速度値)が求められる。これにより、実質的に入力装置の動きに合致した速度値及び演算加速度値が得られる。
一方、第3の軸の周りの角度、すなわち入力装置の理想的な姿勢からの第3の軸の周りの傾きの角度が算出される。その算出角度に応じた回転座標変換によって速度値が補正される。これにより、入力装置が第3の軸の周りで垂直軸に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生する第1及び第2の軸方向の重力加速度成分による影響を除去することができる。
しかし、速度値が補正されても、ユーザが入力装置を意識的に動かして操作する場合、算出角度が変動しないとも限らない。ユーザが入力装置を動かす場合、加速度センサは、入力装置の傾きによる例えば第1の軸方向の重力加速度成分値と、その入力装置の動きによる例えばその第1の軸方向の加速度値との合成の値を、第1の加速度値として検出するからである。
このような算出角度の変動を防止するため、傾き角度が算出されるときに、演算加速度値が加速度センサで検出される加速度値から減じられる。上記したように演算加速度値は、角速度値も考慮して算出されており、ユーザが入力装置を意識的に動かしているときの加速度値である。つまり、加速度センサで検出される加速度値から演算加速度値が減じられることにより、実質的には第1及び第2の軸方向の重力加速度の成分値が残る。したがって、角度算出手段は、ユーザの入力装置の操作により、算出角度が変動しても、実質的に重力の影響のみによる角度を算出することができる。これにより、ユーザの入力装置の動きに合致した補正速度値を得ることができる。
また、2つの加速度センサ及び2つの角速度センサが用いられるので、3軸の加速度センサ及び3軸の角速度センサが用いられる場合に比べ、計算量を少なくすることができ、また、コストを低減することができる。
本発明の一形態に係る制御装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサとを備える入力装置から送信された入力情報に応じて、画面上に表示されるUIを制御する制御装置である。制御装置は、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び第2の角速度値の各情報を、前記入力情報として受信する受信手段と、前記受信された前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを具備する。
本発明の一形態に係る制御システムは、画面上に表示されるUIを制御する制御システムであって、入力装置と制御装置とを備える。入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、前記第1及び第2の補正速度値の情報を入力情報として送信する送信手段とを有する。制御装置は、前記入力情報を受信する受信手段と、前記受信された入力情報の前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御システムは、画面上に表示されるUIを制御する制御システムであって、入力装置と制御装置とを備える。入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び第2の角速度値の各情報を、前記入力情報として送信する送信手段とを有する。制御装置は、前記入力情報として受信する受信手段と、前記受信された入力情報の前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御方法は、入力装置の、第1の軸に沿う方向の第1の加速度を検出し、前記入力装置の、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出し、前記入力装置の、前記第2の軸の周りの第1の角速度を検出し、前記入力装置の、前記第1の軸の周りの第2の角速度を検出し、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出し、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出し、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、前記補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力し、前記第1の補正速度値及び前記第2の補正速度値に応じた、UIの画面上の座標情報を生成する。
本発明の一形態に係る入力装置は、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段とを具備する。
前記加速度出力手段は、加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する。
前記角速度出力手段は、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
前記加速度出力手段は、加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する。
前記角速度出力手段は、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
第1及び第2の加速度に基き入力装置の角度が算出され、その角度に応じた回転座標変換によって第1及び第2の角速度が補正される。つまり、入力装置が第5の軸の回りで垂直軸に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生する第1及び第2の軸方向の重力加速度成分による影響を除去することができる。したがって、ポインタが適切な動きになるようにそのポインタの表示が制御される。
しかし、角速度値が補正されても、ユーザが入力装置を意識的に動かして操作する場合、算出角度が変動しないとも限らない。ユーザが入力装置を動かす場合、加速度センサは、入力装置の傾きによる例えば第1の軸方向の重力加速度成分と、その入力装置の動きによる例えばその第1の軸方向の慣性加速度との合成の値を、第1の加速度として検出するからである。
そこで、抑制手段は、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。これにより、実質的に重力の影響のみによる角度を算出することができ、ユーザの入力装置の動きに合致した補正角速度値を得ることができる。
「算出する」とは、演算により値が算出される場合と、求められるべき各種の値が対応テーブルとしてメモリ等に記憶され、その各種の値のいずれかの値がメモリから読み出される場合の両方を意味を含む。
典型的には、第1の軸と第4の軸とが一致し、第2の軸と第3の軸とが一致するが、それらは必ずしも一致しなくてもよい。
角速度出力手段は、角速度センサ、角度センサ、または、角加速度センサを有してもよい。角速度出力手段が角度センサを含む場合、検出された角度を微分することで角速度を出力する。角速度出力手段が角加速度センサを含む場合、検出された角加速度を積分することで角速度を出力する。
入力装置は、前記補正により得られる前記第1の補正角速度及び前記第2の補正角速度を更新する更新手段をさらに具備してもよい。その場合、前記情報出力手段は、前記第1の補正角速度及び前記第2の補正角速度の更新を停止し、最後に前記更新された前記第1の補正角速度及び前記第2の補正角速度の情報を、前記第2の情報として出力してもよい。
入力装置は、前記補正により得られる前記第1の補正角速度及び前記第2の補正角速度を更新する更新手段をさらに具備してもよい。その場合、前記停止手段は、前記第1の補正角速度及び前記第2の補正角速度の更新を停止し、前記情報出力手段は、最後に前記更新された第1の補正角速度及び第2の補正角速度の情報を、前記第2の情報として出力すればよい。
前記停止手段は、ユーザが前記情報出力手段による前記所定の処理の停止及び開始を切り替えるためのスイッチを有してもよい。スイッチは、メカニカルなディップスイッチ、プッシュボタン式のスイッチ、センサを利用したスイッチ等が挙げられる。センサとしては、電気、磁気、光等を利用したものがある。例えば、スイッチがON/OFF式のプッシュボタンである場合、ユーザがそのボタンを押すと、情報出力手段による処理が停止し、もう一度そのボタンを押すとその処理が再開されてもよい。あるいは、ユーザがそのボタンを押している間は、その処理が停止する(またはその処理が実行される)といった形態も考えられる。
前記停止手段は、前記加速度検出面が、絶対的な垂直面から傾いたときの、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルの量が閾値以下である場合、前記所定の処理を停止してもよい。その場合、前記開始手段は、前記合成加速度ベクトル量が前記閾値を超えた場合、前記所定の処理を開始してもよい。加速度検出面が垂直面から傾く角度が大きくなり過ぎる場合、合成加速度ベクトル量が小さくなる場合があり、その結果、正確な角度が算出されない。したがって、合成加速度ベクトル量が閾値以下の場合、所定の処理が停止され、例えば前回の角度の値が第1の角速度及び第2の角速度の補正に用いられるか、または、前回(最後)の第1の補正角速度及び第2の補正角速度が出力されればよい。
絶対的な垂直面とは、重力方向、すなわち地面に垂直な軸を含む面である。上記垂直軸は重力方向の軸とすると計算が容易になる。
前記停止手段は、前記所定の処理として前記角度の算出を停止し、前記入力装置は、前記角度の算出を停止したときの第1の角度と、前記角度の算出を再開したときの第2の角度との角度差が、閾値以上であるか否かを判定する判定手段をさらに具備してもよい。その場合、前記情報出力手段は、前記角度差が前記閾値以上であった場合、前記第2の角度に180deg加算した第3の角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正してもよい。ユーザが、角度の算出が停止されたときから再開されるまでの間に角度が大きくなるように入力装置を動かす場合、第1の加速度または第2の加速度の検出方向が反転する場合がある。その場合、本発明によれば、入力装置による該入力装置の姿勢の認識精度が向上し、適切な方向にGUIが動くような表示が可能となる。
入力装置は、前記角度の算出を停止したとき及び該算出を再開したときにおける前記第1の角速度のそれぞれの方向が同じであるか否かを判定する角速度方向判定手段をさらに具備してもよい。その場合、前記情報出力手段は、前記第1の角速度の方向が同じである場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正してもよい。第1の角速度の方向の連続性が確認されることで、入力装置による該入力装置の姿勢の認識精度がさらに向上する。
第1の角速度の方向の判定に代えてまたは第1の角速度の方向の判定に加えて、角速度方向判定手段は、第2の角速度の方向が同じであるか否かを判定してもよい。
あるいは、入力装置は、前記角度の算出を停止したときの、前記第1の角速度及び前記第2の角速度の第1の合成角速度ベクトル量と、前記角度の算出を再開したときの前記第1の角速度及び前記第2の角速度の第2の合成角速度ベクトル量との差が閾値以上である否かを判定する角速度ベクトル判定手段をさらに具備してもよい。その場合、前記情報出力手段は、前記第1及び第2の合成角速度ベクトル量の差が閾値以上である場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正してもよい。
前記抑制手段は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方の信号が入力されるローパスフィルタを有し、前記情報出力手段は、前記ローパスフィルタを通過した信号に基いて前記角度を算出してもよい。ユーザが入力装置を動かしたときに発生する加速度の信号は、当然であるが、常に働く重力加速度に比べ高周波の信号である。したがって、そのような信号の高周波成分がローパスフィルタにより除去されることにより、角度の算出時において、ユーザが入力装置を動かすときに発生する慣性加速度の影響を除去することができる。
前記抑制手段は、前記第1の角速度に基き得られる前記第3の軸の回りの第1の角加速度、及び、前記第2の角速度に基き得られる前記第4の軸の回りの第2の角加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止してもよい。ユーザが入力装置を自然に操作するとき、入力装置に角加速度が発生する。角度は、第1及び第2の加速度に基き、所定の計算式により算出される。また、第1または第2の加速度は、さらに別の計算式によって上記角加速度に基いて算出される。したがって、ユーザが入力装置を動かしたときに入力装置に加速度が発生しても、それによる例えば角度の算出誤差を許容範囲内に抑えるための所望の第1または第2の加速度を、角加速度から算出することができる。つまり、角加速度の閾値が設定されることで、角度の算出誤差を許容範囲内に抑えることができる。
前記抑制手段は、前記第1の角速度及び前記第2の角速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止してもよい。ユーザが高速でポインタを動作させたとき、つまり角速度が高速のときは、角度を算出しない方が人間の感覚として違和感が少ないことが実験で分かっている。
前記抑制手段は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止してもよい。
前記抑制手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の第1の速度及び前記第2の軸に沿う方向の第2の速度を算出し、前記第1の速度及び前記第2の速度をそれぞれ微分することで、第1の演算加速度及び第2の演算加速度を算出し、前記第1の加速度から前記第1の演算加速度を減じた値、及び、前記第2の加速度から前記第2の演算加速度を減じた値に基いて、前記情報出力手段により前記角度を算出させる。
角速度出力手段により角速度が算出されるときは、ユーザが入力装置を自然に動かして操作するときである。すなわち、人間が入力装置を動かすとき、ユーザは、肩、肘及び手首のうち少なくとも1つを中心として、入力装置を回転させるように動かすからである。したがって、加速度だけでなく角速度も用いられて、演算により入力装置の速度が求められ、その速度の微分演算により加速度(演算加速度)が求められる。これにより、実質的に入力装置の動きに合致した速度及び演算加速度が得られる。
入力装置は、前記第1の演算加速度及び前記第2の演算加速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、前記第1の演算加速度及び前記第2の演算加速度の両方が前記閾値以下の場合、前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。演算加速度が極端に大きい場合、角度の演算の誤差が大きくなり、正確な角度が算出されない場合がある。このように閾値判定されることにより、適切な傾き角度が算出される。本発明の場合、第1及び第2の加速度のうち少なくとも一方が閾値を超える場合、前回に更新されて記憶された第2の角度に応じた回転座標変換が行われることで、速度値が正確に算出される。
入力装置は、前記第1の演算加速度及び前記第2の演算加速度に基き得られる演算値が閾値を超えるか否かを判定する判定手段と、前記演算値が前記閾値以下の場合、前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。
閾値判定の対象として、演算加速度に限られない。例えば加速度センサで検出された加速度値(またはその演算値)、角速度センサで検出された角速度(またはその演算値)、角速度の微分演算により算出された角加速度(またはその演算値)等が、閾値判定の対象とされてもよい。
演算値とは、各軸に関する検出値の合成ベクトルの絶対値、その加算値、その平均値、あるいは、他の演算式により算出された値である。
入力装置は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、前記第1の加速度及び前記第2の加速度の両方が前記閾値以下の場合、前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。
前記加速度出力手段は、前記第5の軸に沿う方向の第3の加速度を出力してもよい。その場合、前記入力装置は、前記第3の加速度が閾値以上であるか否かを判定する判定手段と、前記第3の加速度が閾値より小さい場合、前記記憶された前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。例えば、加速度検出面に対する第5の軸の角度が大きい場合(90°に近い場合)、加速度検出面が、絶対的な垂直面に実質的に平行に近くなるほど、第3の加速度(の絶対値)は実質的にゼロに近くなる。すなわち、その面の垂直面からの傾きが大きくなるにしたがって、第3の加速度が大きくなる。したがって、第3の加速度が閾値判定の対象とされてもよい。この場合、第3の加速度が十分に大きな値となる範囲に閾値を設定することができる。これにより、第3の加速度に対して相対的に低いノイズレベルが発生する状態で、つまり、高いS/Nが得られる状態で閾値判定されるので、その判定の精度を高めることができる。
本発明の一形態に係る制御装置は、加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段とを備える入力装置から出力された入力情報に応じて、画面上に表示されるポインタを制御する制御装置である。
前記制御装置は、受信手段と、情報出力手段と、座標情報生成手段とを具備する。
前記受信手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
前記制御装置は、受信手段と、情報出力手段と、座標情報生成手段とを具備する。
前記受信手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
前記座標情報生成手段は、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記ポインタの前記画面上の座標情報を生成する。
前記制御装置は、前記情報出力手段による所定の処理を停止させる停止手段をさらに具備してもよい。その場合、前記情報出力手段は、前記所定の処理を停止しているとき、前記第1の情報とは異なる第2の情報を出力してもよい。制御装置は、前記情報出力手段による前記所定の処理を再開させる開始手段をさらに具備してもよい。
前記停止手段は、ユーザが前記情報出力手段による前記所定の処理の停止及び開始を切り替えるための切り替え手段を有してもよい。切り替え手段は、上記したスイッチでもよいし、GUIを用いたソフトウェアを含む手段により実現されてもよい。
本発明の一形態に係る制御システムは、入力装置と、制御装置とを具備する。
前記入力装置は、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段とを有する。前記制御装置は、受信手段と、座標情報生成手段とを有する。これらの手段は、上述したものと同様のものである。
前記入力装置は、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段とを有する。前記制御装置は、受信手段と、座標情報生成手段とを有する。これらの手段は、上述したものと同様のものである。
あるいは本発明の他の形態に係る制御システムでは、入力装置が、加速度出力手段と、角速度出力手段とを有し、制御装置が、受信手段と、情報出力手段と、抑制手段と、座標情報生成手段とを有する。
本発明の一形態に係るハンドヘルド装置は、上述した、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段と、座標情報生成手段とを具備する。
本発明の一形態に係る制御方法は、加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力し、前記第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力し、ことを含む。
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度が、前記第1の加速度及び前記第2の加速度に基いて算出される。
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度がそれぞれ補正される。
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動が抑制される。
前記補正により得られる第1の補正角速度及び第2の補正角速度に応じた、ポインタの画面上の座標情報が生成される。
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度がそれぞれ補正される。
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動が抑制される。
前記補正により得られる第1の補正角速度及び第2の補正角速度に応じた、ポインタの画面上の座標情報が生成される。
本発明の他の形態に係る入力装置は、加速度出力手段、角速度出力手段、算出手段、情報出力手段及び抑制手段を具備する。
前記算出手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する。
加速度出力手段、角速度出力手段及び抑制手段は、上述のものと同様である。
前記算出手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する。
加速度出力手段、角速度出力手段及び抑制手段は、上述のものと同様である。
制御装置、制御システム、ハンドヘルド装置及び制御方法についても、同様に、上記算出手段が設けられていてもよい。
入力装置は、前記情報出力手段による所定の処理を停止させる停止手段をさらに具備してもよい。その場合、前記情報出力手段は、前記所定の処理を停止しているとき、前記第1の情報とは異なる第2の情報を出力してもよい。
前記停止手段は、前記所定の処理として前記第1の情報の出力を停止してもよい。前記停止手段は、前記所定の処理として前記角度の算出を停止してもよい。前記停止手段は、前記所定の処理として前記回転座標変換による補正を停止してもよい。
入力装置は、前記情報出力手段による前記所定の処理を再開させる開始手段をさらに具備してもよい。
前記情報出力手段は、前記回転座標変換により補正されていない値である前記第1の角速度及び前記第2の角速度の情報を、前記第2の情報として出力してもよい。すなわち、停止手段により第1の情報の出力が停止しているときは補正されていない第1及び第2の角速度の情報が出力される。例えば、この入力装置を使い慣れているユーザが、入力装置を動かして操作するときに、回転座標変換による補正が実行されると、操作しにくいと感じる場合も考えられる。その場合、ユーザの手動で停止手段により第1の情報の出力を停止させることができれば、そのような不都合を解消することができる。
以上のように、本発明によれば、入力装置が傾いたときの加速度センサに及ぶ重力の問題をなくし、かつ、計算量を少なくすることができる。
本発明によれば、入力装置が傾き、加速度センサを利用してその傾きの角度を計算する場合に、ユーザが入力装置を動かして加速度センサで検出される検出値に含まれる慣性加速度成分の影響を抑制することができる。
以下、本発明の実施の形態を図面を参照しながら説明する。
図1は、本発明の一実施の形態に係る制御システムを示す図である。制御システム100は、表示装置5、制御装置40及び入力装置1を含む。
図2は、入力装置1を示す斜視図である。入力装置1は、ユーザが持つことができる程度の大きさとされている。入力装置1は、筐体10、筐体10の上部に設けられた例えば2つのボタン11、12、回転式のホイールボタン13等の操作部を備えている。筐体10の上部の中央よりに設けられたボタン11は、例えばPCで用いられる入力デバイスとしてのマウスの左ボタンの機能を有し、ボタン11に隣接するボタン12は右ボタンの機能を有する。
例えば、ボタン11を長押して入力装置1を移動させることにより「ドラッグアンドドロップ」、ボタン11のダブルクリックによりファイルを開く操作、ホイールボタン13により画面3のスクロール操作が行われるようにしてもよい。ボタン11、12、ホイールボタン13の配置、発行されるコマンドの内容等は、適宜変更可能である。
図3は、入力装置1の内部の構成を模式的に示す図である。図4は、入力装置1の電気的な構成を示すブロック図である。
入力装置1は、センサユニット17、制御ユニット30、バッテリー14を備えている。
図8は、センサユニット17を示す斜視図である。センサユニット17は、互いに異なる角度、例えば直交する2軸(X軸及びY軸)に沿った加速度を検出する加速度センサユニット16を有する。すなわち、加速度センサユニット16は、第1の加速度センサ161及び第2の加速度センサ162の2つセンサを含む。また、センサユニット17は、その直交する2軸の回りの角加速度を検出する角速度センサユニット15を有する。すなわち、角速度センサユニット15は、第1の角速度センサ151及び第2の角速度センサ152の2つのセンサを含む。これらの加速度センサユニット16及び角速度センサユニット15はパッケージングされ、回路基板25上に搭載されている。
第1、第2の角速度センサ151、152としては、角速度に比例したコリオリ力を検出する振動型のジャイロセンサが用いられる。第1、第2の加速度センサ161、162としては、ピエゾ抵抗型、圧電型、静電容量型等、どのようなタイプのセンサであってもよい。
図2及び図3の説明では、便宜上、筐体10の長手方向をZ’方向とし、筐体10の厚さ方向をX’方向とし、筐体10の幅方向をY’方向とする。この場合、上記センサユニット17は、回路基板25の、加速度センサユニット16及び角速度センサユニット15を搭載する面がX’−Y’平面に実質的に平行となるように、筐体10に内蔵され、上記したように、両センサユニット16、15はX軸及びY軸の2軸に関する物理量を検出する。X’軸(ピッチ軸)及びY’軸(ヨー軸)を含む平面が加速度検出面、つまり回路基板25の主面に実質的に平行な面(以下、単に検出面という。)である。
説明の便宜上、以降では、入力装置1とともに動く座標系、つまり、入力装置1に固定された座標系をX’軸、Y’軸、Z’軸で表す。また、静止した地球上の座標系、つまり慣性座標系をX軸、Y軸、Z軸で表す。また、入力装置1の動きに関し、X’軸の回りの方向をピッチ方向、Y’軸の回りの方向をヨー方向といい、Z’軸(ロール軸)方向の周りの回りの方向をロール方向という場合もある。
制御ユニット30は、メイン基板18、メイン基板18上にマウントされたMPU19(Micro Processing Unit)(あるいはCPU)、水晶発振器20、送信機21、メイン基板18上にプリントされたアンテナ22を含む。
MPU19は、必要な揮発性及び不揮発性メモリを内蔵している。MPU19は、センサユニット17による検出信号、操作部による操作信号等を入力し、これらの入力信号に応じた所定の制御信号を生成するため、各種の演算処理等を行う。
送信機21は、MPU19で生成された制御信号(入力情報)をRF無線信号として、アンテナ22を介して制御装置40に送信する。
水晶発振器20は、クロックを生成し、これをMPU19に供給する。バッテリー14としては、乾電池または充電式電池等が用いられる。
制御装置40はコンピュータであり、MPU35(あるいはCPU)、RAM36、ROM37、ビデオRAM41、アンテナ39及び受信機38等を含む。
受信機38は、入力装置1から送信された制御信号(または入力情報)を、アンテナ39を介して受信する。MPU35は、その制御信号を解析し、各種の演算処理を行う。これにより、表示装置5の画面3を制御する表示制御信号が生成される。ビデオRAM41は、その表示制御信号に応じて生成される、表示装置5に表示される画面データを格納する。
制御装置40は、入力装置1に専用の機器であってもよいが、PC等であってもよい。制御装置40は、PCに限られず、表示装置5と一体となったコンピュータであってもよいし、オーディオ/ビジュアル機器、プロジェクタ、ゲーム機器、またはカーナビゲーション機器等であってもよい。
表示装置5は、例えば液晶ディスプレイ、EL(Electro-Luminescence)ディスプレイ等が挙げられるが、これらに限られない。あるいは、表示装置5は、テレビジョン放送等を受信できるディスプレイと一体となった装置でもよい。
図5は、表示装置5に表示される画面3の例を示す図である。画面3上には、アイコン4やポインタ2等のUIが表示されている。アイコンとは、コンピュータ上のプログラムの機能、実行コマンド、またはファイルの内容等が画面3上で画像化されたものである。なお、画面3上の水平方向をX軸方向とし、垂直方向をY軸方向とする。
図6は、ユーザが入力装置1を握った様子を示す図である。図6に示すように、入力装置1は、上記ボタン11、12、13のほか、例えばテレビ等を操作するリモートコントローラに設けられるような各種の操作ボタンや電源スイッチ等の操作部を備えていてもよい。このようにユーザが入力装置1を握った状態で、入力装置1を空中で移動させ、あるいは操作部を操作することにより、その入力情報が制御装置40に出力され、制御装置40によりポインタが制御される。
次に、入力装置1の動かし方及びこれによる画面3上のポインタ2の動きの典型的な例を説明する。図7はその説明図である。
図7(A)、(B)に示すように、ユーザが入力装置1を握った状態で、入力装置1のボタン11、12が配置されている側を表示装置5側に向ける。ユーザは、親指を上にし子指を下にした状態、いわば握手する状態で入力装置1を握る。この状態で、センサユニット17の回路基板25(図8参照)は、表示装置5の画面3に対して平行に近くなり、センサユニット17の検出軸である2軸が、画面3上の水平軸(X軸)(ピッチ軸)及び垂直軸(Y軸)(ヨー軸)に対応するようになる。以下、このような図7(A)、(B)に示す入力装置1の姿勢を基本姿勢という。
図7(A)に示すように、基本姿勢の状態で、ユーザが手首や腕を上下方向、またはピッチ方向に振る。このとき、第2の加速度センサ162は、Y軸方向の加速度(第2の加速度)を検出し、第2の角速度センサ152は、Y軸の回りの角速度(第1の角速度)ωψを検出する。これらの検出値に基き、制御装置40は、ポインタ2がX軸方向に移動するようにそのポインタ2の表示を制御する。
一方、図7(B)に示すように、基本姿勢の状態で、ユーザが手首や腕を左右方向、またはヨー方向に振る。このとき、第1の加速度センサ161は、X軸方向の加速度(第1の加速度)を検出し、第1の角速度センサ151は、Y軸の回りの角速度(第2の角速度)ωθを検出する。これらの検出値に基き、制御装置40は、ポインタ2がY軸方向に移動するようにそのポインタ2の表示を制御する。
次に、加速度センサユニット16への重力の影響について説明する。図9はその説明のための図である。図9は、入力装置1をZ方向で見た図である。
図9(A)では、入力装置1が基本姿勢とされ、静止しているとする。このとき、第1の加速度センサ161の出力は実質的に0であり、第2の加速度センサ162の出力は、重力加速度G分の出力とされている。しかし、例えば図9(B)に示すように、入力装置1がロール方向に傾いた状態では、第1、第2の加速度センサ161、162は、重力加速度Gのそれぞれの傾き成分の加速度値を検出する。
この場合、特に、入力装置1が実際にヨー方向には動いていないにも関わらず、第1の加速度センサ161はX軸方向の加速度を検出することになる。この図9(B)に示す状態は、図9(C)のように入力装置1が基本姿勢にあるときに、加速度センサユニット16が破線の矢印で示すような慣性力Ix、Iyを受けた状態と等価であり、加速度センサユニット16にとって区別が付かない。その結果、加速度センサユニット16は、矢印Fで示すような左に斜め下方向の加速度が入力装置1に加わったと判断し、入力装置1の実際の動きとは違った検出信号を出力する。しかも、重力加速度Gは常に加速度センサユニット16に作用するため、積分値は増大し、ポインタ2を斜め下方に変位させる量は加速度的に増大してしまう。図9(A)から図9(B)に状態が移行した場合、本来、画面3上のポインタ2が動かないようにすることが、ユーザの直感に合った操作と言える。
以上のような加速度センサユニット16への重力の影響を極力減らすために、本実施の形態に係る入力装置1は、ロール方向の角度を算出し、これを用いて第1及び第2の角速度を補正する。以下、この補正処理を含む、制御システム100の動作について説明する。図10は、その動作を示すフローチャートである。
入力装置1に電源が投入される。例えば、ユーザが入力装置1または制御装置40に設けられた電源スイッチ等を入れることにより、入力装置1に電源が投入される。電源が投入されると、加速度センサユニット16から2軸の加速度信号(第1、第2の加速度値ax、ay)が出力され(ステップ101a)、これがMPU19に供給される。この加速度信号は、電源が投入された時点での入力装置1の姿勢(以下、初期姿勢という)に対応する信号である。
初期姿勢は、上記基本姿勢になることも考えられる。しかし、X軸方向に重力加速度のすべての量が検出される姿勢、すなわち第1の加速度センサ161の出力が重力加速度分の加速度値を検出し、第2の加速度センサ162の出力が0である場合もある。もちろん初期姿勢は、図9(B)に示したようにロール方向に傾いた姿勢であることも考えられる。
MPU19は、重力加速度の成分値(ax、ay)に基き、下記の式(1)によりロール角φを算出する(ステップ102)。
φ=arctan(ax /ay)・・・(1)。
ここでいうロール角は、X’軸及びY’軸方向の合成加速度ベクトルと、Y’軸との間の角度をいう(図9(B)参照)。しかし、これに限られることはなく、その合成加速度ベクトルと、X’軸及びY’軸を含む面内の軸(基準軸)との間の角度であれば、ロール角は何でもよい。つまり、本実施形態では、Y’軸を基準軸としたが、基準軸はその面内であればどのような軸であってもよく、ロール角に応じた回転座標変換が実行される、という本質は変わらない。
また、入力装置1に電源が投入されると、角速度センサユニット15から2軸の角速度信号(第1の角速度値ωθ及び第2の角速度値ωψ)が出力され(ステップ101b)、これがMPU19に供給される。
MPU19は、算出したロール角に応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正値である補正角速度値(第1及び第2の補正角速度値(ωψ’、ωθ’))を得る(ステップ103)。すなわち、MPU19は、図11に示す回転座標変換の式(3)を用いて、角速度値(ωψ、ωθ)を補正する。MPU19は、補正角速度値(ωψ’、ωθ’)の情報を制御装置40に出力する(ステップ104)。
制御装置40のMPU35は、補正角速度値(ωψ’、ωθ’)の情報を受信する(ステップ105)。入力装置1は、所定のクロックごとに、つまり単位時間ごとに補正角速度値(ωψ’、ωθ’)を出力するので、制御装置40は、これを受信し、単位時間ごとのヨー角及びピッチ角の変化量を取得することができる。MPU35は、取得した単位時間当りのヨー角ψ(t)及びピッチ角θ(t)の変化量に応じた、ポインタ2の画面3上における座標値を生成し(ステップ106)、ポインタ2が画面3上で移動するように表示を制御する(ステップ107)(座標情報生成手段)。
ステップ106では、MPU35は上記単位時間当りのヨー角及びピッチ角の変位量に応じたポインタ2の画面3上での単位時間当りの変位量を、演算により、または予めROM37に記憶された対応テーブルにより求める。あるいは、MPU35は、上記補正角速度値の信号にローパスフィルタ(デジタルでもアナログでもよい)をかけて出力してもよい。以上のようにして、MPU35は、ポインタ2の座標値を生成することができる。
以上のように、重力加速度の成分値(ax、ay)に基き入力装置1のロール角φが算出され、そのロール角φに応じた回転座標変換によって角速度(ωψ、ωθ)が補正される。つまり、入力装置1がZ軸の回りで、重力方向の軸(以下、垂直軸という)に対して傾いた状態でユーザが入力装置1を動かしても、その傾きによりそれぞれ発生するX’軸及びY’軸方向の重力加速度成分による影響を除去することができる。
なお、以上のようにロール方向の入力装置1の傾きによる重力加速度成分の影響が除去された後、ユーザが実際に入力装置1を動かして操作する場合、その入力装置1に加速度が発生する(慣性加速度)。加速度センサユニット16は、重力加速度にその慣性加速度が合成された加速度を検出するので、その慣性加速度に起因して、ステップ102で算出したロール角φが変動すると考えられる。このロール角φの変動は後述する方法によって抑制される。
図12は、制御システム100の他の実施の形態に係る動作を示すフローチャートである。
図10に示したフローでは、入力装置1が角速度値を補正したが、図12では制御装置40が角速度値を補正する点が異なる。
例えば、入力装置1のMPU19は、加速度センサユニット16から得られる重力加速度の成分値(ax、ay)及び角速度センサユニット15から得られる角速度値(ωψ、ωθ)の各情報を入力情報として出力する(ステップ202)。
制御装置40のMPU35は、重力加速度の成分値(ax、ay)及び角速度値(ωψ、ωθ)の各情報を受信する(ステップ203)。MPU35は、重力加速度の成分値(ax、ay)に基き、ロール角φを算出する(ステップ204)。MPU35は、このロール角φに応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正値である補正角速度値(ωψ’、ωθ’)を得る(ステップ205)。あとは、MPU35は、図12で示すステップ106、107と同様の処理を行う(ステップ206、207)。
このように、入力装置1は検出信号の検出値の情報を送信し、制御装置40が角速度値の補正処理を行うことも可能である。
図12において、入力装置1がステップ201a及び201bまでの処理を実行し、制御装置40がその検出信号の情報を受信し、その受信された情報に基づいてステップ202以降の処理を実行してもよい。
あるいは、入力装置1がステップ204まで、またはステップ205までの処理を実行してもよい。
以上では、センサユニット17の検出面が、垂直軸を含む絶対的な垂直面と実質的に平行の状態のまま、入力装置1がロール方向に傾いた状態でユーザが入力装置1を操作する形態を説明した。しかし、検出面が垂直面から傾いて入力装置1が操作される場合も考えられる。以下、そのような場合の制御システム100の動作について説明する。図14は、その動作を示すフローチャートである。
図13(A)は、検出面が垂直面から傾き、かつ、ロール方向にも傾いて静止している状態にある加速度センサユニット16を示す図である。加速度センサユニット16は、この状態でX’軸方向及びY’軸方向の重力加速度の成分値(ax、ay)をそれぞれ検出している。
図13(A)では、垂直面と実質的に平行な画面3をロール方向に傾けて図示しており、図中、太い矢印Gは重力加速度ベクトルを示している。矢印G1で示すベクトルは、加速度センサユニット16が検出しているX’軸及びY’軸方向の重力加速度ベクトル(GX’,GY’)の合成加速度ベクトルG1である。したがって、この合成加速度ベクトルG1は、重力加速度ベクトルGのピッチ方向(θ方向)で回転させた成分のベクトルである。図13(B)は、図13(A)の状態にある加速度センサユニット16を絶対的なX−Z平面で見た図である。
図14を参照して、入力装置1のMPU19は、ステップ301、302で出力される重力加速度成分値(ax、ay)及び角速度(ωψ、ωθ)を取得する。ステップ301及び302について、図14での記載の仕方が図10の記載の仕方と異なるが、ステップ101a及び101bの処理と実施的に同じ処理である。
MPU19は、重力加速度成分値(ax、ay)に基き、合成加速度ベクトル量|a|を算出する(ステップ303)。合成加速度ベクトル量|a|は、[(ax)2+(ay)2]1/2より算出することができる。MPU19は、算出した合成加速度ベクトル量|a|が閾値Th1以下であるかを判定し(ステップ304)、|a|が閾値Th1を超える場合、ロール角φを算出する(ステップ305)。MPU19は、算出されたロール角φに応じた回転座標変換による補正を行い(ステップ306)、補正により得られた補正角速度値(ωψ’、ωθ’)を出力する(ステップ307)。
垂直面からの検出面の傾きが大きい場合、すなわちピッチ角θが大きい場合、重力加速度成分値(ax、ay)が小さくなり、ロール角φの算出結果の精度が落ちる。したがって、本実施形態では、重力加速度成分値(ax、ay)に基き算出されるロール角φがノイズに埋もれるほど、ピッチ角θが大きくなる場合には、正確なロール角φの算出は困難となる。したがって、|a|が閾値Th1以下である場合、MPU19は、以下のような所定の処理を停止する(停止手段)(ステップ308)。
所定の処理とは、補正角速度値(ωψ’、ωθ’)を出力すること、ロール角を算出すること、及び、回転座標変換による補正を実行すること、のうちいずれか1つである。
ロール角の算出を停止する場合、MPU19は、例えば最後に更新されてメモリに記憶されたロール角に基づき、回転座標変換を行い、それにより得られた補正角速度値(ωψ’、ωθ’)を出力すればよい(ステップ309)。あるいは、ロール角の算出を停止する場合、MPU19は、最後に更新されてメモリに記憶された、補正角速度値(ωψ’、ωθ’)を出力すればよい(ステップ309)。
回転座標変換による補正を停止する場合、MPU19は、例えば最後に更新されてメモリに記憶された、補正角速度値(ωψ’、ωθ’)を出力すればよい(ステップ309)。
補正角速度値(ωψ’、ωθ’)の出力が停止される場合、ポインタ2の動きが停止するか、ポインタ2の表示が消えるような制御が実行されるか、あるいは、ポインタ2が所定の位置に移動する等の処理が実行されればよい。
上記閾値Th1は、ノイズ等を考慮して適宜設定されればよい。
ステップ310〜312は、図10におけるステップ105〜107と同様である。
ステップ308でMPUはロール角φの算出を停止した後、供給される重力加速度成分値(ax、ay)に基き算出された合成加速度ベクトル量|a|が閾値Th1を超えた場合、ロール角φの算出を再開し、ステップ305以降の処理が実行される。
本実施の形態によれば、ピッチ角θが大きい場合であっても、MPU19は補正角速度値の出力を停止するか、最後に更新された補正角速度値を出力するので、正確なロール角φを算出することができる。
図12における処理と同様の趣旨により、図14における処理について入力装置1が実行する処理の一部を、制御装置40が実行してもよい。例えばステップ303〜309の処理、ステップ304〜309の処理、ステップ305〜309の処理、・・・、または、ステップ309の処理を制御装置40が実行してもよい。
ここで、上記ステップ308で所定の処理が停止されてから、次に所定の処理が再開されるまでの間に、例えばY’軸方向で検出される第2の加速度値ayの正負が変わる場合がある。所定の処理の再開とは、ロール角の算出が停止されていた場合は、ステップ305〜307、回転座標変換による補正が停止されていた場合は、ステップ306〜307の再開、補正角速度値の出力が停止されていた場合は、ステップ307の再開、を意味する。
図15(A)、(B)は、そのときの様子を示す図である。図15(A)は、ロール角φの算出が停止された瞬間の加速度センサユニット16の姿勢を示す。図15(B)は、例えば所定の処理が再開された瞬間の加速度センサユニット16の姿勢を示す。このようなとき、Y’軸方向の重力加速度ベクトルGY’の加速度値ayの正負が変わる。これは、Y’軸方向に限らず、X’軸方向も同様のことが言える。図15(A)、(B)では、例えば入力装置1がペン型の装置であって、そのペンの先端部にセンサユニット17が配置されている形態が想定される。ユーザはこのペン型の入力装置をペンを持つように握る場合、加速度センサユニット16は図15(A)、(B)に示すように、検出面が下に向くような姿勢となる。
重力加速度ベクトルGY’の加速度値ayの符号が変わると、そのままではロール角φの計算にもエラーが発生する。図16は、このような現象を回避するための、入力装置1の処理の動作を示すフローチャートである。
図16では、所定の処理の停止のうち、ロール角の算出の停止を例に挙げているが、これに限られず、回転座標変換による補正の停止、または、補正角速度値の出力の停止、であってもよい。このことは、図17、図49及び図50における処理においても同様である。
図16を参照して、MPU19は、ステップ304(図14参照)の条件下でロール角φの算出を停止する(ステップ401)。すると、MPU19は前回のロール角φに応じた回転座標変換により角速度値(ωψ、ωθ)を補正し、補正角速度値(ωψ’、ωθ’)を得るか、または、前回の補正角速度値を得、これを出力する(ステップ402)。合成加速度ベクトル量|a|が閾値Th1を超えた場合(ステップ403のNO)、MPU19は、供給される重力加速度値(ax、ay)に基きロール角を算出する。
MPU19は、ロール角φの算出を停止したときのロール角、すなわち停止する直前に算出したロール角(第1のロール角)と、算出の再開直後の(ステップ404で算出された)ロール角(第2のロール角)との差を算出する(ステップ405)。MPU19は、その差|Δφ|が閾値Th2以上であった場合(ステップ406のYES)、最新のロール角である上記第2のロール角に180degを加える。
MPU19は、第2のロール角に180degを加えられた第3のロール角に応じた回転座標変換により補正角速度値(ωψ’、ωθ’)を取得し、これを出力する(ステップ407)。このようにして、本実施の形態では、入力装置1による該入力装置1の姿勢の認識精度が向上し、適切な方向にポインタ2が動くような表示が可能となる。
閾値Th2は、例えば60deg(=±30deg)〜90deg(=±45deg)等に設定することができる。しかし、これらの範囲に限られない。
図12における処理と同様の趣旨により、図16における処理の一部または全部を、制御装置40が実行してもよい。
図17は、図16に示した処理についての他の形態に係る動作を示すフローチャートである。
ステップ501〜504は、図16のステップ401〜404と同様の処理である。MPU19は、ロール角φの算出停止直前のピッチ方向の角速度ωθの方向と、算出開始直後のピッチ方向での角速度ωθの方向とが同じ方向であるか否かを判定する(ステップ505)。つまりωθ正負が、ロール角φの算出停止前及び開始後で一致しているか否かが判定される。ピッチ方向に代えて、あるいは、ピッチ方向に加えて、ヨー方向の角速度ωψの正負が一致しているか否かが判定されてもよい。
ステップ505においてYESの場合、ピッチ方向での角速度の方向が連続しているので、図15(A)、(B)に示すようにGY’の向きが変わっていると判断することができる。この場合、MPU19は、第2のロール角に180degを加えられた第3のロール角に応じた回転座標変換により補正角速度値(ωψ’、ωθ’)を取得し、これを出力する(ステップ507)。
このように、ピッチ方向の角速度ωθ(またはヨー方向の角速度ωψ)の連続性が確認さえることで、入力装置1による該入力装置1の姿勢の認識精度がさらに向上する。
図12における処理と同様の趣旨により、図17における処理の一部または全部を、制御装置40が実行してもよい。
図16及び図17の処理のさらに別の実施の形態として、ロール角の算出が停止されたときの第1及び第2の角速度の合成角速度ベクトル量(第1の合成角速度ベクトル量)と、ロール角の算出が再開されたときの当該合成角速度ベクトル量(第2の合成角速度ベクトル量)との差が閾値以上であるか否かが判定されてもよい。合成角速度ベクトル量は、[(ωψ)2+(ωθ)2]1/2より算出することができる。第1の合成角速度ベクトル量と第2の合成角速度ベクトル量との差が大きい場合は、姿勢の変化が大きいと判断される。MPU19は、その差が閾値以上と判定した場合、ステップ408、507と同様な処理を実行する。
このような入力装置1の処理についても、制御装置40が実行してもよい。
[ロール角φの変動の抑制]
次に、上記したように、ロール方向の入力装置1の傾きによる重力加速度成分の影響が除去された後、ユーザが実際に入力装置1を動かして操作する場合に発生するロール角φの変動を抑制する4つの実施の形態について説明する。
次に、上記したように、ロール方向の入力装置1の傾きによる重力加速度成分の影響が除去された後、ユーザが実際に入力装置1を動かして操作する場合に発生するロール角φの変動を抑制する4つの実施の形態について説明する。
図18は、そのうち1つの実施の形態に係る入力装置を示すブロック図である。入力装置101は、加速度センサユニット16により得られるX’軸方向及びY’軸方向のうち少なくとも一方の加速度信号が入力されるローパスフィルタ(LPF)102を備えている。このLPF102により、加速度信号のインパルス状の成分が除去される。
図19(A)は、LPF102を通過する前の、X’軸方向またはY’軸方向の加速度信号を示し、図19(B)はLPF102を通過後の加速度信号を示している。インパルス状の成分は、ユーザが入力装置101を動かしたときに検出される加速度信号である。図中のDCオフセット成分は、重力加速度による成分値であり、この部分はLPF102を通過する。
典型的には、上記インパルスの波形は十〜数十Hzであることから、LPF102は数Hzのカットオフ周波数を持つ。カットオフ周波数が低すぎると、位相遅れによるφの遅れが操作時の違和感としてユーザにより感じられるため、実用的な下限が規定されればよい。
このように、LPF102によりインパルス状の成分が除去されることで、ロール角φの算出時において、ユーザが入力装置101を動かすときに発生する加速度の影響を除去することができる。
ロール角φの変動を抑制する第2の実施の形態として、ロール角φの算出時において角加速度値が監視される方法が考えられる。図20は、その動作を示すフローチャートである。
ステップ601、602、603は、図14に示したステップ301、302、303と同様である。MPU19は、供給される角速度値(ωψ、ωθ)に基き、微分演算により角加速度値(Δωψ、Δωθ)を算出する(ステップ604)。
MPU19は、算出された両方向の角速度値のうち例えば一方のヨー方向の角速度値|Δωψ|が閾値Th3以上であるか否かを判定する(ステップ605)。それが閾値Th3以上である場合、MPU19は、所定の処理を停止する(ステップ609)。このように処理する理由は、次のような理由による。
ユーザが入力装置1を自然に操作するとき、入力装置1に角加速度が発生する。ロール角φは、上記式(1)により算出される。また、X軸またはY軸の回りの角速度値(Δωθ、Δωψ)は、後述する式(4)によって加速度値(ax、ay)に基いて算出される。ユーザが入力装置1を動かしたときに入力装置1に加速度が発生しても、それによるロール角φの算出誤差を許容範囲内に抑えるための所望の第1または第2の加速度値を、式(4)によって算出することができる。つまり、角加速度の閾値Th3が設定されることで、ロール角φの算出誤差を許容範囲内に抑えることができる。
以下、角加速度の閾値Th3について説明する。
例えば、ユーザが入力装置1を動かしたときに、入力装置1がピッチ方向にθ1=60deg傾いた状態にあっても、それによって発生する慣性力によって重力方向のMPU19の認識誤差の結果生じるロール角φの誤差を10deg以内に抑えたい場合の閾値Th3を考える。
入力装置1がピッチ方向に60deg傾いた状態では、
ay=1G・cos60°=0.5G
となる。したがって、φ=10degとして式(1)は、
10°=arctan(ax /0.5G)
となり、ax=0.09Gとなる。したがって、axが0.09Gとなるような最小の|Δωψ|を求めればよい。
ay=1G・cos60°=0.5G
となる。したがって、φ=10degとして式(1)は、
10°=arctan(ax /0.5G)
となり、ax=0.09Gとなる。したがって、axが0.09Gとなるような最小の|Δωψ|を求めればよい。
そこで、ユーザが腕を振るとき発生する加速度と角加速度の関係を考える。ユーザが入力装置1を振る半径が大きいほど、同一加速度ax当りの角加速度|Δωψ|は小さくなる。その半径が最大となるのは、肩を回転中心として腕全体を振る場合と仮定する。ここで、腕の長さをLarmとすると、Δωψは下記式(4)で表される。
|Δωψ|=ax /Larm・・・(4)。
|Δωψ|=ax /Larm・・・(4)。
一般的な例として、半径rの円において中心角θでなる円弧の長さlについて、l = rθであることから式(4)が成立する。
ax=0.09G=0.09×9.8(m/s)、Larm =0.8m(腕の長いユーザと仮定)を式(4)に代入すると、
Δωx=1.1rad/s2=63deg/s 2
となる。つまり、|Δωψ|>63°/s2なる角加速度が検出されたときに、MPU19は例えば所定の処理を停止する処理として、φの更新を停止することにより、ユーザが入力装置1をピッチ方向に最大60deg傾けたときにも、そのロール角φの算出誤差を10deg以下に抑えることが可能となる。ロール角φの算出誤差の設定範囲は、10deg以下に限られず、適宜設定可能である。
Δωx=1.1rad/s2=63deg/s 2
となる。つまり、|Δωψ|>63°/s2なる角加速度が検出されたときに、MPU19は例えば所定の処理を停止する処理として、φの更新を停止することにより、ユーザが入力装置1をピッチ方向に最大60deg傾けたときにも、そのロール角φの算出誤差を10deg以下に抑えることが可能となる。ロール角φの算出誤差の設定範囲は、10deg以下に限られず、適宜設定可能である。
ユーザが、肘を回転中心として、または、手首を回転中心として入力装置1を操作する場合には、この角加速度のときのaxはさらに小さな値となるので、慣性力の影響による重力方向の誤差角度は10°を下回る値であり、誤差の小さくなる方向となる。
ステップ606〜608、610〜613は、図14におけるステップ305〜307、309〜312と同様の処理である。
以上の説明では、ヨー方向の角速度について言及したが、ピッチ方向の角速度についても同様のことが言える。したがって、ステップ605の後に、|Δωθ|が閾値以上であるか否かが判定されるステップが加えられ、それが閾値以上であるときに、所定の処理が停止されてもよい。
ところで、ヨー方向及びピッチ方向の角速度のうち少なくとも一方が閾値以上である場合に、MPU19はロール角の算出を停止し、ステップ609、610の処理を行うようにしてもよい。ユーザがかなりの高速でポインタ2を動作させたとき(角速度が高速のとき)、例えば0.1〜0.2秒で画面3の端から端までポインタ2を動かすときは、所定の処理を実行しない方が人間の感覚として違和感が少ないことが実験で分かっている。このようにユーザが画面上でポインタの細かな動作をさせない粗動作時には、所定の処理が停止されることでユーザの直感に合致した動作が可能となる。例えば、角速度センサ151または152の出力値を−512〜+512に分割した場合、−200以下、+200以上のときは所定の処理が停止されるようにすればよい。しかし、この値に限られない。
ロール角φの変動を抑制する第3の実施の形態として、加速度センサユニット16により検出される加速度に閾値を設ける方法がある。例えば、MPU19は、検出されたX’軸方向及びY’軸方向の加速度値(ax、ay)のうち少なくとも一方が閾値以上となった場合、所定の処理を停止し、閾値未満となってから所定の処理を再開する。あるいは、加速度値が一定以上になると、単に検出電圧が飽和するのでそのときに自動的にφの更新が停止される、といった処理であってもよい。
図12における処理と同様の趣旨により、図20に示したステップ603〜610の処理、ステップ604〜610の処理、ステップ605〜650の処理、・・・、または、ステップ610の処理を、制御装置40が実行してもよい。
次に、ロール角φの変動を抑制する第4の実施の形態について説明する。図34は、その動作を示すフローチャートである。
入力装置1に電源が投入される。例えば、ユーザが入力装置1または制御装置40に設けられた電源スイッチ等を入れることにより、入力装置1に電源が投入される。電源が投入されると、角速度センサユニット15から2軸の角速度信号が出力される。MPU19は、この2軸の角速度信号による第1の角速度値ωψ及び第2の角速度値ωθを取得する(ステップ1101)。
また、入力装置1に電源が投入されると、加速度センサユニット16から2軸の加速度信号が出力される。MPU19は、この2軸の加速度信号による第1の加速度値ax及び第2の加速度値ayを取得する(ステップ1102)。この加速度値の信号は、電源が投入された時点での入力装置1の姿勢(以下、初期姿勢という)に対応する信号である。
なお、MPU19は、典型的にはステップ1101及び1102を同期して行う。しかし、MPU19は、ステップ1101を実行した後、ステップ1102を実行してもよいし、ステップ1102を実行した後、ステップ1101を実行してもよい。このことは、図10、12、14、20、22、43〜45、48、51、52及び54も同様である。
初期姿勢は、上記基本姿勢になることも考えられる。しかし、X軸方向に重力加速度のすべての量が検出される姿勢、すなわち第1の加速度センサ161の出力が重力加速度分の加速度値を検出し、第2の加速度センサ162の出力が0である場合もある。もちろん初期姿勢は、図9(B)に示したようにロール方向に傾いた姿勢であることも考えられる。
MPU19は、加速度値(ax、ay)及び角速度値(ωψ、ωθ)に基いて、積分演算により速度値(Vx、Vy)を算出する(ステップ1103)(算出手段)。算出された速度値は、後述するように角速度値が用いられて演算により求められるので、実質的に入力装置1の動きに合致した速度値が得られる。この速度値の算出についての詳細は後述する。
MPU19は、算出した速度値(Vx、Vy)を微分演算する(ステップ1104)。これにより、演算加速度値(axi、ayi)が求められる。微分演算は、例えば2つの速度値サンプルごとにその間の傾きが計算されればよい。
MPU19は、重力加速度の成分値(ax、ay)に基き、下記の式(1’)によりロール角φを算出する(ステップ1105)。
φ=arctan[(ax−axi)/(ay−ayi)]・・・(1’)。
なお、式(1’)における、加速度値(ax、ay)及び演算加速度値(axi、ayi)の各値は絶対値として計算される。
式(1’)が計算されるとき、速度値(Vx、Vy)が0であれば、φは、実質的に重力加速度の成分値(ax、ay)のみから算出されることになる。
速度値(Vx、Vy)が発生していると、ユーザが入力装置1を動かしているので、演算加速度値(axi、ayi)も発生する。この場合、式(1’)では、その入力装置1の動きによる演算加速度値、つまり正確な慣性加速度値が重力加速度の成分値から減算された上でロール角φが算出される。
MPU19は、算出したロール角φに応じた回転座標変換により、速度値(Vx、Vy)をそれぞれ補正し、補正値である補正速度値(第1及び第2の補正速度値(Vx’、Vy’))を得る(ステップ1106)。すなわち、MPU19は、図35に示す回転座標変換の式(5)を用いて、速度値(Vx、Vy)を補正し、これを出力する。MPU19は、送信機21により、補正速度値(Vx’、Vy’)の情報を制御装置40に送信する(ステップ1107)。
制御装置40のMPU35は、補正速度値(Vx’、Vy’)の情報を受信する(ステップ1108)。入力装置1は、所定のクロックごとに、つまり単位時間ごとに補正速度値(Vx’、Vy’)を送信するので、制御装置40は、これを受信し、単位時間ごとのX軸及びY軸方向の変位量を取得することができる。MPU35は、下の式(6)、(7)より、取得した単位時間当りのX軸及びY軸方向の変位量に応じた、ポインタ2の画面3上における座標値(X(t)、Y(t))を生成する(ステップ1109)。この座標値の生成により、MPU35は、ポインタ2が画面3上で移動するように表示を制御する(ステップ1110)(座標情報生成手段)。
X(t) =X(t-1)+Vx・・・(6)
Y(t) =Y(t-1)+Vy・・・(7)。
Y(t) =Y(t-1)+Vy・・・(7)。
本実施の形態では、重力加速度の成分値(ax、ay)から演算加速度値(axi、ayi)が減算された上でロール角φが算出される。つまり、実質的に重力加速度の成分値(ax、ay)のみに基いたロール角φが算出される。したがって、結果的に、入力装置の動きに合致した補正速度値(Vx’、Vy’)を得ることができ、ユーザは違和感を感じることなくポインタ2を動かすことができる。
また、本実施の形態では、2つの加速度センサ161及び162、2つの角速度センサ151及び152が用いられるので、3軸の加速度センサ及び3軸の角速度センサが用いられる場合に比べ、計算量を少なくすることができ、また、コストを低減することができる。
次に、ステップ1103における速度値(Vx、Vy)の算出方法について説明する。図36は、その入力装置1の動作を示すフローチャートである。図37は、この速度値の算出方法の基本的な考え方を説明するための図である。
図37では、入力装置1を例えば左右方向(ヨー方向)へ振って操作するユーザを上から見た図である。図37に示すように、ユーザが自然に入力装置1を操作する場合、手首の回転、肘の回転及び腕の付け根の回転のうち少なくとも1つによって操作する。したがって、入力装置1の動きと、この手首、肘及び腕の付け根の回転とを比較すると、以下に示す1.2.の関係があることが分かる。
1.入力装置1の加速度センサユニット16が配置された部分(以下、先端部)のY軸周りの角速度値ωψは、手首の回転による角速度、肘の回転による角速度、及び腕の付け根の回転による角速度の合成値である。
2.入力装置1の先端部のヨー方向の速度値Vxは、手首、肘、及び腕の付け根の角速度に、それぞれ、手首と先端部との距離、肘と先端部との距離、腕の付け根と先端部との距離を乗じた値の合成値である。
2.入力装置1の先端部のヨー方向の速度値Vxは、手首、肘、及び腕の付け根の角速度に、それぞれ、手首と先端部との距離、肘と先端部との距離、腕の付け根と先端部との距離を乗じた値の合成値である。
ここで、微小時間での入力装置1の回転運動について、入力装置1は、Y軸に平行であり、時間ごとに位置が変化する中心軸(第1の中心軸、または第2の中心軸)を中心に回転していると考えることができる。この時間ごとに位置が変化する中心軸と、入力装置1の先端部との距離を、Y軸周りの回転半径Rψ(t)(第1の回転半径、または第2の回転半径)とすると、入力装置1の先端部の速度値Vxと、角速度値ωψとの関係は、以下の式(8)で表される。すなわち、ヨー方向の速度値Vxは、Y軸周りの角速度値ωψに、中心軸と先端部との距離Rψ(t)を乗じた値となる。
なお、本実施の形態では、センサユニット17の回路基板25上に、加速度センサユニット16及び角速度センサユニット15が一体的に配置されている。したがって、回転半径R(t)は中心軸からセンサユニット17までの距離となる。しかし、加速度センサユニット16と角速度センサユニット15とが、筐体10内で離れて配置される場合には、上記したように、中心軸から加速度センサユニット16までの距離が回転半径R(t)となる。
Vx=Rψ(t)・ωψ・・・(8)。
式(8)に示すように、入力装置1の先端部の速度値と、角速度値との関係は、比例定数をR(t)とした比例関係、つまり、相関関係にある。
上記式(8)を変形して式(9)を得る。
Rψ(t)=Vx/ωψ・・・(9)。
Rψ(t)=Vx/ωψ・・・(9)。
式(9)の右辺は、速度のディメンジョンである。この式(9)の右辺に表されている速度値と角速度値とがそれぞれ微分され、加速度、あるいは加速度の時間変化率のディメンジョンとされても相関関係は失われない。同様に、速度値と角速度値とがそれぞれ積分され、変位のディメンジョンとされても相関関係は失われない。
したがって、式(9)の右辺に表されている速度及び角速度をそれぞれ変位、加速度、加速度の時間変化率のディメンジョンとして、以下の式(10)、(11)、(12)が得られる。
Rψ(t)=x/ψ・・・(10)
Rψ(t)=ax/Δωψ・・・(11)
Rψ(t)=Δax/Δ(Δωψ)・・・(12)。
Rψ(t)=ax/Δωψ・・・(11)
Rψ(t)=Δax/Δ(Δωψ)・・・(12)。
上記式(9)、(10)、(11)、(12)のうち、例えば式(11)に注目すると、加速度値axと、角速度値Δωψが既知であれば、回転半径Rψ(t)が求められることが分かる。上述のように、第1の加速度センサ161は、ヨー方向の加速度値axを検出し、第1の角速度センサ151は、Y軸の周りの角速度値ωψを検出する。したがって、Y軸周りの角速度値ωψが微分され、Y軸周りの角加速度値Δωψが算出されれば、Y軸周りの回転半径Rψ(t)が求められる。
Y軸周りの回転半径Rψ(t)が既知であれば、この回転半径Rψ(t)に、第1の角速度センサ151によって検出されたY軸の周りの角速度値ωψを乗じることで、入力装置1のX軸方向の速度値Vxが求められる(式(8)参照)。すなわち、ユーザの回転の操作量そのものがX軸方向の線速度値に変換され、ユーザの直感に合致した速度値となる。したがって、ポインタ2の動きが入力装置1の動きに対して自然な動きとなるため、ユーザによる入力装置の操作性が向上する。
この速度値の算出方法については、ユーザが入力装置1を上下方向(ピッチ方向)へ振って操作する場合にも適用することができる。
図36では、式(11)が用いられる例について説明する。図36を参照して、入力装置1のMPU19は、ステップ1101で取得した角速度値(ωψ、ωθ)を微分演算することで、角加速度値(Δωψ、Δωθ)を算出する(ステップ1201)。
MPU19は、ステップ1102で取得した加速度値(ax、ay)と、角加速度値(Δωψ、Δωθ)とを用いて、式(11)、(13)により、それぞれY軸周り及びX軸周りの回転半径(Rψ(t)、Rθ(t))を算出する(ステップ1202)。
Rψ(t)=ax/Δωψ・・・(11)
Rθ(t)=ay/Δωθ・・・(13)。
Rψ(t)=ax/Δωψ・・・(11)
Rθ(t)=ay/Δωθ・・・(13)。
回転半径が算出されれば、式(8)、(14)により、速度値(Vx、Vy)が算出される(ステップ1203)。
Vx=Rψ(t)・ωψ・・・(8)
Vy=Rθ(t)・ωθ・・・(14)
このように、ユーザによる入力装置1の回転の操作量そのものがX軸及びY軸方向の線速度値に変換され、ユーザの直感に合致した速度値となる。
Vy=Rθ(t)・ωθ・・・(14)
このように、ユーザによる入力装置1の回転の操作量そのものがX軸及びY軸方向の線速度値に変換され、ユーザの直感に合致した速度値となる。
また、加速度センサユニット16で検出された加速度値(ax、ay)が、そのまま用いられることにより、計算量が少なくなり、入力装置1の消費電力を減らすことができる。
MPU19は、加速度センサユニット16から所定のクロックごとに(ax、ay)を取得し、例えば、それに同期するように速度値(Vx、Vy)を算出すればよい。あるいは、MPU19は、複数の加速度値(ax、ay)のサンプルごとに、速度値(Vx、Vy)を1回算出してもよい。このことは、図38、図39、図40においても同様である。
また、図34の処理において、MPU19は、その速度値(Vx、Vy)の算出に同期してロール角φを算出してもよいし、複数の速度値(Vx、Vy)の算出ごとにロール角φを1回算出してもよい。このことは、後に説明する図44、45、48、49〜51においても同様である。
次に、図36と同様に、回転半径を利用して速度値(Vx、Vy)を算出する他の実施形態について説明する。図38は、その入力装置1の動作を示すフローチャートである。図38では、上記式(12)が用いられる例について説明する。
図38を参照して、入力装置1のMPU19は、取得した加速度値(ax、ay)の微分演算を行う。これにより、加速度の時間変化率(Δax、Δay)が算出される(ステップ1401)。同様に、MPU19は、取得した角加速度値(ωψ、ωθ)の2階の微分演算を行うことで、角加速度の時間変化率(Δ(Δωψ))、Δ(Δωθ))を算出する(ステップ1402)。
角速度の時間変化率が算出されると、MPU19は、Y軸周りの角加速度の時間変化率の絶対値|Δ(Δωθ)|が、閾値th1を超えるか否かを判定する(ステップ1403)。上記|Δ(Δωθ)|が閾値th1を超える場合には、MPU19は、X軸方向の加速度の時間変化率Δaxを、Y軸周りの角速度の時間変化率Δ(Δωθ)で除することで、Y軸周りの回転半径Rψ(t)を算出する(ステップ1404)。すなわち、X軸方向の加速度の時間変化率Δaxと、Y軸周りの角速度の時間変化率Δ(Δωθ)との比を回転半径Rψ(t)として算出する(式(12))。|Δ(Δωθ)|の閾値th1は適宜設定可能である。
この回転半径Rψ(t)の信号は、例えばローパスフィルタに通される(ステップ1405)。ローパスフィルタで高周波数域のノイズが除去された回転半径Rψ(t)の情報はメモリに記憶される(ステップ1406)。このメモリには、回転半径Rψ(t)の信号が所定のクロックごとに更新して記憶される。
入力装置1のMPU19は、この回転半径Rψ(t)に、Y軸周りの角速度値ωθを乗じることで、X軸方向の速度値Vxを算出する(ステップ1408)。
一方で、MPU19は、上記|Δ(Δωθ)|が、閾値th1以下である場合には、メモリに記憶された回転半径Rψ(t)を読み出す(ステップ1407)。この読み出された回転半径Rψ(t)に、Y軸周りの角速度値ωθを乗じることで、X軸方向の速度値Vxを算出する(ステップ1408)。
上記ステップ1401〜1408の処理が行われる理由として、以下の2つの理由がある。
1つは、上記式(12)の回転半径Rψ(t)を求めて、ユーザの直感に合致した線速度を求めるためである。
2つ目は、この速度値(Vx、Vy)が算出される過程においても、上記したような重力の影響を除去するためである。入力装置1が基本姿勢から、ロール方向またはピッチ方向に傾いた場合、重力の影響によって、入力装置1の実際の動きとは違った検出信号を出力してしまう。例えば入力装置1がピッチ方向に傾いた場合、加速度センサ162からそれぞれ重力加速度の成分値が出力される。したがって、この重力加速度の各成分値の影響を除去しない場合には、ポインタ2の動きがユーザの感覚にそぐわない動きとなってしまう。
図39は、入力装置1がピッチ方向に振られたときにおける重力加速度の影響を説明するための図であり、入力装置1をX方向で見た図である。なお、ロール方向における重力加速度の影響については、図9で既に説明した。
例えば、図39(A)に示すような入力装置1の基本姿勢の状態から、図39(B)に示すような、入力装置1がピッチ方向で回転して傾いたとき、入力装置1が基本姿勢にあるときの第2の加速度センサ162が検出する重力加速度Gが減少する。図39(C)に示すように、入力装置1は、上のピッチ方向の慣性力Iと区別が付かない。
そこで、ユーザの操作による入力装置1の移動時の慣性成分、すなわち慣性加速度に着目した加速度値の時間変化率に比べ、その入力装置1の動きにより発生する重力加速度の成分値の時間変化率の方が小さいことを利用する。その重力加速度の成分値の時間変化率は、ユーザの操作による慣性加速度成分値の時間変化率の1/10のオーダーである。加速度センサユニット16から出力される値は、その両者が合成された値である、すなわち、加速度センサユニット16から出力される信号は、ユーザの操作による慣性加速度成分値の時間変化率に、重力加速度の成分値である低周波成分値が重畳された信号となる。
したがって、ステップ1401では、加速度値が微分演算されることで、加速度の時間変化率が求められ、これにより、重力加速度の成分値の時間変化率が除去される。これにより、入力装置1の傾きによる重力加速度の分力の変化が生じる場合であっても、適切に回転半径を求めることができ、この回転半径から適切な速度値を算出することができる。
なお、上記低周波成分値には、重力加速度の成分値のほか、例えば加速度センサユニット16の温度ドリフト、あるいは、DCオフセット値が含まれる場合もある。
また、本実施の形態では、式(12)が用いられるので、ステップ1402では、角速度値ωθが2階微分され、高周波数域のノイズがその角速度の演算値に乗ってしまう。この|Δ(Δωθ)|が大きい場合問題ないが、小さい場合S/Nが悪化する。S/Nの悪化した|Δ(Δωθ)|が、ステップ1408でのRψ(t)の算出に用いられると、Rψ(t)や速度値Vxの精度が劣化する。
そこで、ステップ1403では、ステップ1402で算出されたY軸周りの角速度の時間変化率Δ(Δωθ)が利用される。Δ(Δωθ)が閾値th1以下の場合、以前にメモリに記憶されたノイズの少ない回転半径Rψ(t)が読み出され(ステップ1407)、読み出された回転半径Rψ(t)がステップ1408における速度値Vxの算出に用いられる。
ステップ1409〜1414では、以上のステップ1403〜1408までの処理と同様に、MPU19は、Y軸方向の速度値Vyを算出する。つまり、MPU19は、X軸周りの角速度の時間変化率の絶対値|Δ(Δωθ)|が、閾値th1を超えるか否かを判定し(ステップ1409)、閾値th1を超える場合には、この角速度の時間変化率を用いてX軸周りの回転半径Rθ(t)を算出する(ステップ1410)。
回転半径Rθ(t)の信号は、ローパスフィルタに通され(ステップ1411)、メモリに記憶される(ステップ1412)。閾値th1以下である場合には、メモリに記憶された回転半径Rθ(t)が読み出され(ステップ1413)、この回転半径Rθ(t)に基いてピッチ方向の速度値Vyが算出される(ステップ1414)。
なお、本実施の形態では、ヨー方向及びピッチ方向の両方向について閾値を同じ値th1としたが、両方向で異なる閾値が用いられてもよい。
ステップ1403において、Δ(Δωθ)に代えて、角加速度値(Δωθ)が閾値に基き判定されてもよい。ステップ1409についても同様に、Δ(Δωψ)に代えて、角加速度値(Δωψ)が閾値に基き判定されてもよい。図38に示したフローチャートでは、回転半径R(t)を算出するために式(12)が用いられたが、式(11)が用いられる場合、角加速度値(Δωψ、Δωθ)が算出されるので、角加速度値(Δωψ、Δωθ)が閾値に基き判定されてもよい。
次に、ステップ1404または1410で説明した回転半径(Rθ(t)、Rψ(t))の算出方法についての他の実施の形態を説明する。図40は、そのときの入力装置1の動作を示すフローチャートである。
本実施形態では、回帰直線の傾きを利用して、回転半径を算出する。上述のように、回転半径は、加速度変化率と角加速度変化率との比である。本実施形態は、この加速度変化率と角加速度変化率との比を算出するために、回帰直線の傾きを利用する。
MPU19は、加速度値(ax、ay)及び角速度値(ωψ、ωθ)をそれぞれ、1階微分、2階微分し、加速度変化率(Δax、Δay)及び角加速度変化率(Δ(Δωψ))、Δ(Δωθ))を算出する(ステップ1501、1502)。この加速度変化率(Δax、Δay)、及び角加速度変化率(Δ(Δωψ))、Δ(Δωθ))のn回分の履歴が、例えばメモリに記憶され、以下の式(15)、(16)により、回帰直線の傾き(A1、A2)が算出される(ステップ1503)。この回帰直線の傾きは、加速度変化率と角加速度変化率との比、つまり、回転半径(Rθ(t)、Rψ(t))である。なお、参考として、回帰直線の切片(B1、B2)の算出方法を式(17)、(18)に示す。
A1=Rθ(t)=[{Σ(Δ(Δωψj))2・Σ(Δayj)2}−{ΣΔ(Δωψj)・ΣΔ(Δωψj)・Δayj}]/[n・Σ(Δ(Δωψj))2−{ΣΔ(Δωψj)}2]・・・(15)
A2=Rψ(t)=[{Σ(Δ(Δωθωθj))2・Σ(Δaxj)2}−{ΣΔ(Δωθj)・ΣΔ(Δωθj)・Δaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(16)
B1=[{n・ΣΔ(Δωψj)・Δayj}−{ΣΔ(Δωψj)・ΣΔayj}]/[n・Σ(Δ(Δωψj))2−{ΣΔ(Δωψj)}2]・・・(17)
B2=[{n・ΣΔ(Δωθj)・Δaxj}−{ΣΔ(Δωθj)・ΣΔaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(18)。
A2=Rψ(t)=[{Σ(Δ(Δωθωθj))2・Σ(Δaxj)2}−{ΣΔ(Δωθj)・ΣΔ(Δωθj)・Δaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(16)
B1=[{n・ΣΔ(Δωψj)・Δayj}−{ΣΔ(Δωψj)・ΣΔayj}]/[n・Σ(Δ(Δωψj))2−{ΣΔ(Δωψj)}2]・・・(17)
B2=[{n・ΣΔ(Δωθj)・Δaxj}−{ΣΔ(Δωθj)・ΣΔaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(18)。
上記式(15)〜(18)中のnは、加速度値(Δax、Δay)、及び角加速度変化率(Δ(Δωψ))、Δ(Δωθ))のサンプリング数を示す。このサンプリング数nは、演算誤差が最小となるように適宜設定される。
回転半径が算出されると、図38のステップ404及び410と同様に、回転半径に基づいて速度値が算出される(ステップ1504)。
なお、回転半径の信号、または速度値の信号がローパスフィルタ47にかけられることで、高周波数のノイズによる影響を軽減してもよい。
図39に示した実施の形態では、回帰直線の傾きを回転半径として算出することで、より正確な回転半径及び速度値(Vx、Vy)を算出することができる。したがって、画面3上に表示されるポインタ2の動きを、ユーザの直感に合致した自然な動きとすることができる。
以上の説明では、加速度変化率及び角加速度変化率のディメンジョンでの回帰直線の傾きの算出方法について説明した。しかし、これに限られず、変位及び角度、速度及び角速度、または、加速度及び角加速度のディメンジョンで、回帰直線の傾きが算出されてもよい。
次に、図34のステップ103の速度値(Vx、Vy)の算出方法の他の実施の形態について説明する。図41は、そのときの入力装置1の動作を示すフローチャートである。
MPU19は、センサユニット17から加速度値(ax、ay)及び角速度値(ωψ、ωθ)をそれぞれ取得すると、重力の影響を除去するために、次のような演算を行う。すなわちMPU19は、下記の式(19)、(20)のように、今回の加速度値ax、ayから、前回のそれぞれX軸及びY軸方向で検出された重力加速度成分(1回目のax(=arefx)、ay(=arefy))を差し引き、それぞれ第1の補正加速度値acorx、第2の補正加速度値acoryを生成する(ステップ1601)。
acorx =ax−arefx・・・(19)
acory =ay−arefy・・・(20)。
acory =ay−arefy・・・(20)。
arefx、arefyを、以降、それぞれX軸及びY軸の基準加速度値(第1の基準加速度値、第2の基準加速度値)という。電源が投入されてから最初にステップ1102の計算をするとき、arefx、arefyは電源投入直後に検出された加速度信号ax、ayとなる。
MPU19は、式(21)、(22)に示すように、第1、第2の補正加速度値acorx、acoryを加算していく、つまり積分演算により、それぞれ第1の速度値Vx、第2の速度値Vyを算出する(ステップ1615)。
Vx(t) =Vx(t-1)+acorx・・・(21)
Vy(t) =Vy(t-1)+acory・・・(22)
Vx(t)、Vy(t)は今回の速度値を表し、Vx(t-1)、Vy(t-1)は前回の速度値を表している。
Vy(t) =Vy(t-1)+acory・・・(22)
Vx(t)、Vy(t)は今回の速度値を表し、Vx(t-1)、Vy(t-1)は前回の速度値を表している。
一方、MPU19は、取得した角速度値(ωψ、ωθ)を微分演算し、それぞれの角加速度値(Δωψ、Δωθ)を算出する(ステップ1602)。
MPU19は、上記Δωψ、Δωθの絶対値|Δωθ|、|Δωψ|がそれぞれ閾値th2より小さいか否かを判定する(ステップ1603、ステップ1606)。|Δωψ|≧th2の場合、MPU19は、第1の基準加速度値arefxをそのまま用い、これを更新しない(ステップ1604)。同様に、|Δωθ|≧th2の場合、MPU19は、第2の基準加速度値arefyをそのまま用い、これを更新しない(ステップ1607)。
閾値th2は、0に近い値が設定される。閾値th2は、ユーザが意識的に入力装置1を静止させているにも関わらず、DCオフセット等により検出されてしまう角速度値が考慮される。こうすることで、ユーザが意識的に入力装置1を静止させた場合に、DCオフセットによりポインタ2が動いて表示されてしまうことを防止できる。
以上のように処理するのは以下の理由による。
図37に示したように、ユーザが自然に入力装置1を操作する場合、腕の付け根の回転、肘の回転及び手首の回転のうち少なくとも1つによって操作する。したがって、加速度が発生すれば、角加速度も発生すると考える。すなわち、加速度は、その加速度の方向と同じ方向の角加速度に従属するものとみなすことができる。したがって、MPU19は、角加速度値|Δωψ|を監視することで、それと同じ方向である第1の基準加速度値arefxを更新するか否かを判定し、式(19)から結果的に第1の補正加速度値acorxを校正するか否かを判定することができる。角加速度値|Δωθ|についても同様である。
さらに詳しく説明すると、角加速度値|Δωψ|が閾値th2以上であるときは、MPU19は、入力装置1がヨー方向に動いていると判定する。この場合、MPU19は、第1の基準加速度値arefxを更新せず、結果的に、第1の補正加速度値acorxを校正せず、そのacorxに基き、式(21)の積分演算を続ける。
また、角加速度値|Δωθ|が閾値th2以上であるときは、MPU19は、入力装置1がピッチ方向に動いていると判定する。この場合、MPU19は、第2の基準加速度値arefyを更新せず、結果的に、第2の補正加速度値acoryを校正せず、そのacoryに基き、式(22)の積分演算を続ける。
一方、ステップ1603において、角加速度値|Δωψ|が閾値th2より小さいときは、MPU19は、入力装置1がヨー方向では静止していると判定する。この場合、MPU19は、基準加速度値arefxを今回の(最新の)検出値axに更新することで、式(19)により、第1の補正加速度値acorxを校正する(ステップ1605)。最新の検出値axとは、つまり、入力装置1がほぼ静止している状態での検出値であるので、これは重力加速度による成分値となる。
同様に、ステップ1606において、角加速度値|Δωθ|が閾値th2より小さいときは、MPU19は、入力装置1がピッチ方向では静止していると判定する。この場合、MPU19は、第2の基準加速度値arefyを今回の(最新の)検出値ayに更新することで、式(20)により、第2の補正加速度値acoryを校正する(ステップ1608)。
なお、本実施の形態では、ヨー方向及びピッチ方向の両方向について閾値を同じ値th2としたが、両方向で異なる閾値が用いられてもよい。
上記では、角加速度値Δωψ、Δωθが監視されたが、さらにMPU19は、角速度値ωψ、ωθを監視することで、式(21)、(22)で算出された速度値を補正することも可能である。図37の考え方により、速度が発生すれば、角速度も発生すると考え、速度は、その速度の方向と同じ方向の角速度に従属するものとみなすことができる。
詳しくは、角速度値ωψの絶対値|ωψ|が閾値th3以上であるときは(ステップ1609のNO)、MPU19は、入力装置1がヨー方向に動いていると判定する。この場合、MPU19は、第1の速度値Vxを補正しない(ステップ1610)。角速度値ωθの絶対値|ωθ|についても同様である(ステップ1612のNO、ステップ1613)。
閾値th3も、上記閾値th2の設定と同様な趣旨で設定されればよい。
一方、|ωψ|が閾値th3より小さいときは(ステップ1609のYES)、MPU19は、入力装置1がヨー方向では静止していると判定する。この場合、MPU19は、第1の速度値Vxを補正し、例えばゼロにリセットされる(ステップ1611)。|ωθ|についても同様である(ステップ1612のYES、ステップ1614)。
以上のように、入力装置1がほぼ静止したときには基準加速度値arefx、arefyが更新され、補正加速度値acorx、acoryが校正されるので、加速度センサユニット16への重力の影響を抑えることができる。また、基準加速度値arefx、arefyが更新されると、式(19)、(20)より加速度値acorx、acoryが補正されるため、DCレベルも補正され、DCオフセットの問題も解決される。さらに、入力装置1がほぼ静止したときには速度値もゼロリセットされるように補正されるので、積分誤差も抑えることができる。積分誤差が発生すると、ユーザが入力装置1の移動を停止させたにも関わらず、ポインタ2が画面3上で動く現象が起こる。
このように、図34のステップ103において速度値(Vx、Vy)が算出される過程においても、重力加速度の影響が除去されることにより、より正確な速度値が算出される。
また、本実施の形態では、第1の基準加速度値arefx及び第2の基準加速度値arefyの更新が個別に行われることにより、例えばヨー及びピッチ方向のうち一方の角加速度値のみが閾値より小さくなれば、その校正が行われることになる。したがって、実用的に十分短い時間間隔で、第1の基準加速度値arefxまたは第2の基準加速度値arefyを更新することができる。第1の速度値Vx及び第2の速度値Vyの補正が個別に行われることについても同様のことが言える。図42は、このことをわかりやすく説明するための図である。
図42では、X軸及びY軸の平面で見た入力装置1の軌跡を示している。ヨー方向での角速度値ωψがほぼゼロ(閾値th3より小さい)であれば、Vxがゼロリセットされる。ピッチ方向での角速度値ωθがほぼゼロ(閾値th3より小さい)であれば、Vxがゼロリセットされる。
これまでは、入力装置1が主要な演算を行って速度値(Vx、Vy)を算出していた。図43に示す実施の形態では、制御装置40が主要な演算を行う。この図43に示す動作は、図34に対応する。
入力装置1が、例えばセンサユニット17から出力された2軸の加速度値及び2軸の角速度値を入力情報として制御装置40に送信する(ステップ1703)。制御装置40のMPU35は、この入力情報を受信し(ステップ1704)、ステップ1103〜1106、1109、1110と同様の処理行う(ステップ1705〜1710)。ステップ1705における速度値の算出方法は、図36〜図42で説明した方法が用いられてもよい。
入力装置1がステップ1705(または、1706、1707、1708、または1709)までの処理を実行し、制御装置40がステップ1706(または、1707、1708、1709、または1710)以降の処理を実行してもよい。
次に、入力装置1のロール方向の傾きによる重力加速度の影響の除去、及び、慣性加速度成分の除去の動作についての他の実施の形態(図34に示した動作の他の実施の形態)について説明する。図44は、その動作を示すフローチャートである。
ステップ1301〜1304は、ステップ1101〜1104と同様の処理である。
ステップ1305では、MPU19は、ステップ1304で算出した演算加速度値(axi、ayi)の絶対値| axi|及び|ayi|のうち少なくとも一方が閾値th4を超えるか否かを判定する(判定手段)。これは、演算加速度値(|axi|、|ayi|)が大きすぎる場合、式(1’)によるロール角φの算出の誤差が大きくなる場合があるからである。
この閾値th4は適宜設定され、例えば重力加速度以下の値に設定されるが、これに限られない。
ステップ1304では、絶対値|axi|及び|ayi|に基き算出される演算値が閾値を超えるか否かが判定されてもよい。|axi|及び|ayi|の演算値とは、例えば合成ベクトル量[(ax)2+(ay)2]1/2である。あるいは、演算値とは、|axi|及び|ayi|の加算値または平均値等でもよい。
MPU19は、絶対値|axi|及び|ayi|の両方、または、その演算値が閾値以下である場合、計算の誤差は生じないとみなし、式(1’)によりロール角φを算出する(ステップ1306)。
MPU19は、算出したロール角φをメモリに順次記憶しておく。MPU19は、上記のように所定の時間間隔でロール角φを算出するので、典型的には、これを随時更新してメモリに記憶する(更新手段)(ステップ1307)。
一方、絶対値|axi|及び|ayi|のうち少なくとも一方が閾値を超える場合、MPU19は、例えばメモリへのロール角φの記憶の更新を停止する。すなわちこの場合、MPU19は、メモリに記憶された前回のロール角φを読み出す(ステップ1308)。MPU19は、読み出したロール角φに応じた回転座標変換(図35の式(5))により、速度値(Vx、Vy)を補正し、補正速度値(Vx’、Vy’)を出力する(ステップ1309)。
MPU19は、前回のロール角φを読み出す代わりに、次のような処理を実行してもよい。例えばMPU19は、算出された速度値(Vx、Vy)を随時更新してメモリに記憶しておく。MPU19は、絶対値|axi|及び|ayi|のうち少なくとも一方が閾値を超える場合に、その速度値の更新を停止、前回の更新されて記憶された速度値を出力してもよい。あるいは、MPU19は、ステップ1308の代わりに、図14のステップ308に示したように、所定の処理を停止してもよい。
ステップ1310〜1313は、図34におけるステップ1107〜1110と同様の処理である。
以上のように、図44に示す処理では、演算加速度値が閾値th4より大きい場合であっても、演算加速度値が正常な範囲で計算された前回のロール角φが用いられるので、速度値が正確に算出される。
図43に示した処理の趣旨と同様に、図44に示したステップ1303〜1309、1312、1313の処理を制御装置40が実行してもよい。あるいは、制御装置40がステップ1304(または、1305、1306、・・・、または1309)以降の処理を実行してもよい。
図44の処理では、演算加速度値(axi、ayi)が閾値判定の対象とされた。しかし、加速度センサユニット16で検出された加速度値(ax、ay)が閾値判定の対象とされてもよい。その場合、加速度値(ax、ay)が閾値判定された後、ステップ1306以降の処理と同様である。あるいは、検出された加速度値(ax、ay)が一定以上になると、単に検出電圧が飽和するのでそのときに自動的にロール角φの記憶の更新が停止される、といった処理であってもよい。
あるいは、閾値判定の対象は、演算加速度値(axi、ayi)、または加速度値(ax、ay)に限られない。例えば角速度センサユニット15により検出された角速度値(ωψ、ωθ)、その微分演算により算出された角加速度値(Δωψ、Δωθ)、または、ステップ1103で算出された速度値(Vx、Vy)が閾値判定の対象として用いられてもよい。これら、演算加速度値、加速度値、角速度値、角加速度値、または速度値のそれぞれの閾値判定は、入力装置1の動きが速すぎる(加速度が大きすぎる)ことによるロール角φの演算誤差を抑えることを趣旨として実行される。
これに対し、加速度値(図48〜図50参照)、角速度値(図50参照)、角加速度値(図51参照)が閾値判定される実施の形態について後に説明するが、これらの実施の形態で実行される閾値判定は、図34の処理の閾値判定の趣旨とは異なる趣旨で実行される。
次に、上記したようにロール角φの演算により慣性加速度成分を除去した後に、さらに残余の慣性加速度成分を除去する実施の形態について説明する。図45は、その処理の動作を示すフローチャートである。
本実施の形態では、入力装置1は、ステップ1905で算出されるロール角φの式(1’)の演算加速度値(axi、ayi)に含まれる、残余の慣性加速度成分値の少なくとも一方の信号が入力される図示しないローパスフィルタ(LPF)の機能を備えている。このLPFは、典型的にはMPU19が持つ機能である。このLPFにより、加速度信号のインパルス状の成分が除去され、結果としてロール角φの信号に含まれる残余の慣性加速度成分が除去される。このようにLPFによる処理の趣旨は、図18及び図19の箇所で説明した処理の趣旨と同様である。
ステップ1901〜1905は、ステップ1101〜1105と同様の処理である。ステップ1906において、MPU19は、ロール角φのデータに含まれる、上記加速度成分信号のインパルス状の成分を除去する。その後の処理は、ステップ1106〜1110と同様の処理である。
図43に示した処理の趣旨と同様に、図45に示したステップ1903〜1909、1912、1913の処理を制御装置40が実行してもよい。あるいは、制御装置40がステップ1904(または、1905、1906、または1907)以降の処理を実行してもよい。
図46(A)は、慣性加速度成分の補償が行われずに(演算加速度値(axi、ayi)が減じられずに)ロール角φが補正された場合の、ポインタ2の実際の軌跡を示した図である。すなわち、図46(A)は、上記式(1)によりロール角φが補正された場合を示す。
図46(A)では、本発明者が入力装置1を水平方向に直線状に動かしたにもかかわらず、ポインタ2の軌跡は、上に凸となる弧状の軌跡となる。このような軌跡になる理由を説明する。図47はその説明のための図である。
図47に示すように、ポインタ2が動き始めたとき及び停止するときに、例えば入力装置1にX軸の+方向に慣性力Iが働く。この場合、式(1)によりロール角φが補正される結果、入力装置は、入力装置の重力Gとその慣性力Iとの合成ベクトルCを、真の重力として誤認識する。その結果、例えばポインタ2の始点において、実際にはX軸に沿って水平に入力装置が動くにもかかわらず、斜め上方向に動いているものと誤検出するからである。
図46(B)は、ロール角φが補正された場合の、ポインタ2の実際の軌跡を示した図である。図46(B)では、上記した図44のステップ1305による閾値判定と、図45のステップ1906によるLPFを用いる例との組み合わせの処理が行われた。図から分かるように、ポインタ2の軌跡は、入力装置1の水平の動きに合致している。
図48は、加速度センサユニット16の検出面が垂直面から傾いて入力装置1がユーザにより操作される場合の、制御システム40の動作を示すフローチャートである。
図48を参照して、ステップ1801〜1804は、ステップ1101〜1104と同様の処理である。
ステップ1805では、MPU19は、重力加速度成分値(ax、ay)に基き、合成加速度ベクトル量|a|を算出する。合成加速度ベクトル量|a|は、[(ax)2+(ay)2]1/2より算出することができる。MPU19は、算出した合成加速度ベクトル量|a|が閾値th5以下であるかを判定し(ステップ1806)、|a|が閾値th5を超える場合、ロール角φを算出する(ステップ1807)。算出されたロール角φは、メモリに記憶され更新される(ステップ1808)。
垂直面からの検出面の傾きが大きい場合、すなわち、例えばピッチ角θが大きい場合、重力加速度成分値(ax、ay)が小さくなり、ロール角φの算出結果の精度が落ちる。したがって、本実施形態では、重力加速度成分値(ax、ay)に基き算出されるロール角φがノイズに埋もれるほど、ピッチ角θが大きくなる場合には、正確なロール角φの算出は困難となる。したがって、|a|が閾値th5以下である場合、MPU19は、メモリへのロール角φの記憶の更新を停止する(ステップ1809)。この場合、MPU19は、式(1)により、前回に更新されたロール角φに応じた回転座標変換により速度値(Vx、Vy)を補正し、補正速度値(Vx’、Vy’)を得る(ステップ1810)。あるいは、MPU19は、前回の更新された補正速度値(Vx’、Vy’)を出力してもよい。
あるいは、MPU19は、ステップ1809の代わりに、図14のステップ308に示したように、所定の処理を停止してもよい。このことは、図51についても同様である。
図48の処理では、合成加速度ベクトル量が閾値判定の対象とされたが、これに限られない。例えば、加速度値|ax|と|ay|とが比較され(比較手段)、その比較の結果、それらの値のうち小さい方の値が閾値以下である場合、メモリへのロール角φの記憶の更新が停止されるようにしてもよい。
あるいは、重力加速度成分値(ax、ay)に基く演算値が閾値以下である場合、メモリへのロール角φの記憶の更新が停止されるようにしてもよい。演算値とは、例えば、(ax)2+(ay)2、|ax|+|ay|、その他の加減乗除、これらの組み合わせ、あるいは他の演算式により算出される値が挙げられる。
上記閾値th5は、ノイズ等を考慮して適宜設定されればよい。
本実施の形態によれば、ピッチ角θが大きい場合であっても、MPU19はロール角φの更新を停止するので、正確なロール角φを算出することができる。
図43に示した処理の趣旨と同様に、図48に示したステップ1803〜1810、1813、1814の処理を制御装置40が実行してもよい。
次に、図48に示した処理の他の実施形態について説明する。図52は、その場合の制御システムの動作を示すフローチャートである。図53(A)は、図52に示す処理を実現するための入力装置の構成を示す模式図である。
図53(A)に示すように、入力装置91は、上記したセンサユニット17のほか、第3の加速度センサ163を備えている。第3の加速度センサ163は、典型的には第1及び第2の加速度センサ161及び162のそれぞれの検出軸であるX’及びY’軸と実質的に直交するZ’軸に沿う方向の加速度(第3の加速度)を検出する。つまり、入力装置91は、3軸での加速度をそれぞれ検出することができる。
図53(A)では、第3の加速度センサ163は、回路基板25とは、別の基板26に搭載されているが、回路基板25と一体的に形成された基板に搭載されていてもよい。あるいは、第3の加速度センサ163は、メイン基板18(図3参照)に搭載されていてもよい。
図52を参照して、ステップ2302では、MPU19は、加速度センサユニット16及び第3の加速度センサ163から3軸の加速度値(ax、ay、az)を取得する。ステップ2303、2304は、ステップ1803、1804と同様の処理である。
例えば、入力装置91が、図52(A)に示すような基本姿勢の状態にあるとき、加速度値|az|は実質的にゼロとなる。しかし、例えば入力装置91が、基本姿勢にある状態からピッチ方向(またはピッチ方向を含む方向)で回転すると、加速度値|az|が発生し、その傾きが大きくなるにしたがって、|az|も大きくなる。入力装置91が、ピッチ方向に回転する場合であって、重力成分値のみに着目する場合の加速度値|az|は、図52(B)に示すように、G・sinθ’(θ’=90°−θ)となり、最大1Gとなる。
ステップ2305において、上記取得した加速度値|az|が閾値th8より小さい場合、ステップ2306、2307、2309〜2313の処理が実行される。ステップ2306、2307、2309〜2313は、図48のステップ1807、1808、1810〜1814と同様の処理である。
一方、ステップ2305において、加速度値|az|が閾値th8以上である場合、つまり、垂直面(X−Y平面)からの検出面の傾きθが比較的大きい場合、センサユニット17の重力加速度成分値(ax、ay)が小さくなり、ロール角φの算出結果の精度が落ちる。したがって、この場合、メモリへのロール角φの記憶の更新が停止される(ステップ2308)。
このように、加速度値|az|が十分に大きな値となる範囲に閾値th8を設定することができる。これにより、加速度値|az|に対して相対的に低いノイズレベルが発生する状態で、つまり、高いS/Nが得られる状態で閾値判定されるので、その判定の精度を高めることができる。
ここで、図15で説明したように、図48に示したステップ1808でロール角φの更新が停止される直前から、次にその更新が再開されるまでの間に、例えばY’軸方向で検出される第2の加速度値ayの正負が変わる場合がある。
図15に示すように、重力加速度ベクトルGY’の加速度値ayの符号が変わると、そのままではロール角φの計算にもエラーが発生する。図49は、このような現象を回避するための、入力装置1の処理の動作を示すフローチャートである。
図49を参照して、MPU19は、ステップ1806(図48参照)の条件下でロール角φの更新を停止する(ステップ2001)。すると、MPU19は前回に更新されたロール角φに応じた回転座標変換により速度値(Vx、Vy)を補正することで、補正速度値(Vx’、Vy’)を取得し、これを出力する(ステップ2002)。あるいは、MPU19は前回に更新された補正速度値を出力してもよい。
合成加速度ベクトル量|a|が閾値th5を超えた場合(ステップ2003のNO)、MPU19は、取得する重力加速度値(ax、ay)に基きロール角φを算出する(ステップ2004)。
MPU19は、ロール角φの更新を停止したときのロール角、すなわち停止する直前に算出したロール角φ1(第1のロール角)と、算出の再開直後の(ステップ2004で算出された)ロール角φ2(第2のロール角)との差を算出する(ステップ2005)。MPU19は、その差|Δφ|が閾値th6以上であった場合(ステップ2006のYES)、最新のロール角である上記第2のロール角φ2に180degを加える。180degが減じられてもよい。(角度差判定手段)。
MPU19は、第2のロール角φ2に180degを加えられた第3のロール角φ3に応じた回転座標変換に補正速度値(Vx’、Vy’)を算出し、これを出力する(ステップ2008)。このようにして、本実施の形態では、入力装置1による該入力装置1の姿勢の認識精度が向上し、適切な方向にポインタ2が動くような表示が可能となる。
閾値th6は、例えば60deg(=±30deg)〜90deg(=±45deg)等に設定することができる。しかし、これらの範囲に限られない。
図43に示した処理の趣旨と同様に、図49に示した処理を制御装置40が実行してもよい。
図50は、図49に示した処理についての他の形態に係る動作を示すフローチャートである。
ステップ2101〜2104は、図49のステップ2001〜2004と同様の処理である。MPU19は、ロール角φの算出停止直前のピッチ方向の角速度ωθの方向と、算出開始直後のピッチ方向での角速度ωθの方向とが同じ方向であるか否かを判定する(ステップ2105)(角速度方向判定手段)。つまりωθのベクトルの正負が、ロール角φの算出停止前及び開始後で一致しているか否かが判定される。ピッチ方向に代えて、あるいは、ピッチ方向に加えて、ヨー方向の角速度ωψの正負が一致しているか否かが判定されてもよい。
ステップ2105においてYESの場合、ピッチ方向での角速度の方向が連続しているので、図15(A)、(B)に示すようにGY’の向きが変わっていると判断することができる。この場合、MPU19は、第2のロール角φ2に180degを加えられた第3のロール角φ3に応じた回転座標変換により補正速度値(Vx’、Vy’)を算出し、これを出力する(ステップ2107)。
このように、ピッチ方向の角速度ωθ(またはヨー方向の角速度ωψ)の連続性が確認さえることで、入力装置1による該入力装置1の姿勢の認識精度がさらに向上する。
図19に示した処理の趣旨と同様に、図50に示した処理を制御装置40が実行してもよい。
図49及び図50の処理のさらに別の実施の形態として、次のような例が挙げられる。例えば、ロール角φの更新が停止されたときの第1及び第2の角速度の合成角速度ベクトル量(第1の合成角速度ベクトル量)と、ロール角の更新が再開されたときの当該合成角速度ベクトル量(第2の合成角速度ベクトル量)との差が閾値以上であるか否かが判定される(角速度ベクトル判定手段)。合成角速度ベクトル量は、[(ωψ)2+(ωθ)2]1/2より算出することができる。第1の合成角速度ベクトル量と第2の合成角速度ベクトル量との差が大きい場合は、姿勢の変化が大きいと判断される。MPU19は、その差が閾値以上と判定した場合、ステップ2008、2107と同様な処理を実行する。
このような入力装置1の処理についても、制御装置40が実行してもよい。
次に、垂直面からの入力装置1の検出面の傾きによる重力加速度の影響の除去の動作についてのさらに別の実施の形態について説明する。図51は、その動作を示すフローチャートである。本実施の形態は、ロール角φの算出時において角加速度値が監視される方法である。
ステップ2201〜2204は、ステップ1101〜1104と同様の処理である。
ステップ2205では、MPU19は、取得した角速度値(ωψ、ωθ)に基き、微分演算により角加速度値(Δωψ、Δωθ)を算出する(角速度微分手段)。
MPU19は、算出された両方向の角速度値のうち例えば一方のヨー方向の角速度値|Δωψ|が閾値th7を超えるか否かを判定する(ステップ2206)(判定手段)。それが閾値th7を超える場合、MPU19は、ロール角φの更新を停止する(ステップ2209)。このように処理する理由は、次のような理由による。
X軸またはY軸の周りの角速度値(Δωθ、Δωψ)は、上式(4)によって加速度値(ax、ay)に基いて算出される。ユーザが入力装置1を動かしたときに入力装置1に加速度が発生しても、それによるロール角φの算出誤差を許容範囲内に抑えるための所望の第1の許容加速度値または第2の許容加速度値を、式(4)によって算出することができる。つまり、角加速度の閾値th7が設定されることで、ロール角φの算出誤差を許容範囲内に抑えることができる。
図21は、さらに別の実施の形態に係る入力装置の構成を示す模式図である。
この入力装置141の制御ユニット130は、メイン基板18の下部に配置された加速度センサユニット116を備える。加速度センサユニット116は、2軸(X’及びY’軸)を検出するものであってもよいし、3軸(X’、Y’及びZ’軸)を検出するものであってもよい。
上記入力装置1と比べ、加速度センサユニット116が配置される位置は、ユーザが入力装置141を握ったときに手首に近くなる。このような位置に加速度センサユニット116が配置されることにより、ユーザの手首の振りによって発生する慣性加速度の影響を最小とすることができる。
また、例えば加速度センサユニット116として3軸タイプが用いられることで、若干計算量が増加するものの、どのような実装面に加速度センサユニット116が配置されても、X’−Y’面内の加速度成分を抽出することができる。その結果、基板のレイアウトの自由度を増やすことが可能となる。
図22は、制御システムのさらに別の実施の形態に係る動作を示すフローチャートである。
MPU19は、ステップ701a、701b、702において、ステップ101a、101b、102と同様の処理を実行する。MPU19は、ステップ702で算出されたロール角φに基き、ロール方向の角速度値ωφを算出する(ステップ703)。
ロール方向の角速度値ωφは、ロール角φの時間微分で求められる。MPU19は、ロール角φを複数サンプルして微分すればよく、あるいは、所定のクロックごとに算出するロール角φを角速度値ωφ(ロール角速度)として出力してもよい。
MPU19は、ロール角φに応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正角速度値(ωψ’、ωθ’)を得る(ステップ704)。MPU19は、補正角速度値ωψ’、ωφに、所定の比率で表された移動係数α、βをそれぞれ乗じる。α、βの値は任意の実数または関数であり、ROM等やその他の記憶デバイスに記憶されていればよい。入力装置1または制御装置40が、ユーザがα、βを設定できるプログラムを備えていてもよい。MPU19は、移動係数α、βを乗じたことにより得られる2つの角速度値ωψ’’、ωφ’の合成角速度値ωγを算出する(ステップ704)(合成算出手段)。
合成の計算式としては、典型的には式(23)の加算式が挙げられる。
ωγ=ωψ’’+ωφ’(=αωψ+βωφ)・・・(23)
合成の計算式としては、(23)に限られず、ωψ’’・ωφ’であってもよいし、[(ωψ’’)2+(ωφ’)2]1/2であってもよい。MPU19は、これにより得られた合成角速度値ωγと、ステップ704で得られた補正角速度値ωθ’の情報を、入力情報として出力する(ステップ706)
この合成角速度値ωγは画面3上のX軸方向でのポインタ2の変位量となり、ピッチ方向の補正角速度値ωθ’は画面3上のY軸方向でのポインタ2の変位量となる。つまり、ポインタ2の両軸の変位量(dX,dY)は下記の式(24)、(25)として表すことができる。
合成の計算式としては、(23)に限られず、ωψ’’・ωφ’であってもよいし、[(ωψ’’)2+(ωφ’)2]1/2であってもよい。MPU19は、これにより得られた合成角速度値ωγと、ステップ704で得られた補正角速度値ωθ’の情報を、入力情報として出力する(ステップ706)
この合成角速度値ωγは画面3上のX軸方向でのポインタ2の変位量となり、ピッチ方向の補正角速度値ωθ’は画面3上のY軸方向でのポインタ2の変位量となる。つまり、ポインタ2の両軸の変位量(dX,dY)は下記の式(24)、(25)として表すことができる。
dX =ωψ’’+ωφ’=ωγ・・・(24)
dY =ωθ’(=δωθ)(δは実数または関数)・・・(25)。
dY =ωθ’(=δωθ)(δは実数または関数)・・・(25)。
制御装置40のMPU35は、ステップ707〜709において、図10に示したステップ105〜107と同様な処理を実行する。
図22に示したステップ702〜706の処理を、図12のように制御装置40が実行してもよい。
以上のように、本実施の形態では、例えばユーザは、Z’軸の回りに入力装置1を回転させること及びX’軸方向へ入力装置1を動かすことのうち少なくとも一方の操作で、ポインタの第1の軸方向での動きが制御される。これにより、ユーザは入力装置1をX軸方向へ動かすときの移動量を少なくすることができ、容易にポインタをX軸方向へ動かすことができる。
特に、例えば水平方向に長い画面が用いられる場合、ユーザは水平方向へポインタ2を容易に動かすことができる。また、ユーザはZ軸の回りに入力装置1を回転させることで水平方向にポインタ2を動かすことができるので、直感的な操作が可能となる。
図23は、本発明のさらに別の実施の形態に係る入力装置の電気的な構成を示すブロック図である。この入力装置201は、上記センサユニット17を備えておらず、3軸の角速度センサユニット215を備えている点で、上記の入力装置1、101、151と異なる。
3軸の角速度センサユニット215は、X’軸の回りの角速度(第2の角速度)を検出する第1の角速度センサ、Y’軸の回りの角速度(第1の角速度)を検出する第2の角速度センサ、Z’軸の回りの角速度(第3の角速度)を検出する第3の角速度センサを有している。これらの角速度センサは、角速度値(ωθ、ωψ、ωφ)の信号をそれぞれ出力する。
図24は、この入力装置201を含む制御システムの動作を示すフローチャートである。制御装置としては、上記各実施の形態で示した制御装置40が用いられればよい。
角速度センサユニット215から3軸の角速度信号が出力され(ステップ901)、MPU19はこれらの角速度値(ωθ、ωψ、ωφ)を取得する。MPU19は、下記の式(26)の積分演算によりロール角φを算出する(ステップ902)。
φ=φ0 +∫ωφdt ・・・(26)
φ0はロール角の初期値である。
φ0はロール角の初期値である。
上記各実施の形態では、入力装置1のロール方向の傾きが回転座標変換により補正されていたが、本実施の形態では、入力装置201の初期姿勢における初期値φ0が発生し、また、何も対策をしないと積分誤差が発生することになる。
式(26)において、積分誤差を除去する現実的かつ簡便な方法として、以下に述べる方法が挙げられる。
例えば入力装置201には、図示しないリセットボタンが設けられる。このリセットボタンは、典型的にはボタン11、12、ホイールボタン13とは別に設けられたボタンである。ユーザがリセットボタンを押している間は、入力装置201の操作により制御装置40は、ポインタ2を画面上で動かすように表示させる。または、ユーザがリセットボタンを押した直後から次回に再度リセット押すまでの間は、入力装置201の操作により制御装置40は、ポインタ2を画面上で動かすように表示させる。すなわち、リセットボタンが押されることを積分誤差低減のための動作開始のトリガーとする。
ここで、トリガーの発効直後に、MPU19または制御装置40のMPU35は、φ0=0、φ=0にリセットする(リセット手段)。あるいは式(26)にφ0の項を最初から入れないこととしてもよい。
この方法では、1回の入力装置201の操作(ユーザがリセットボタンを押している時間、または押した直後から次に押すまでの間)ごとにφが0にリセットされるため、実用的には積分誤差が拡大しない。
この場合、ユーザはリセットスイッチの押圧時に、入力装置201をおおよそ基本姿勢になるように注意する必要があるが難易度は低く、容易に習熟できる範囲である。
なお、リセットボタンが設けられる構成ではなく、入力装置1のMPU19または制御装置40のMPU35が所定の条件の下でリセットするようにしてもよい。所定の条件とは、例えば入力装置1が基本姿勢になったとき等が挙げられる。入力装置1が基本姿勢になったことを検出するためには、例えば上記加速度センサユニット16等が設けられていればよい。
ステップ902の後、MPU19は、ヨー角速度値ωψ及びロール角速度ωφに、所定の移動係数α、βをそれぞれ乗じ、これにより得られるヨー演算角速度値ωψ’及びロール演算角速度値ωφ’の合成角速度値ωγを算出する(ステップ903)。MPU19は、算出した合成角速度値ωγ、及び、角速度センサユニット215から得られたピッチ角速度値ωθの情報を入力情報として出力する(ステップ904)。
制御装置40は、その入力情報を受信し(ステップ905)、これに応じたポインタ2の座標値を生成し(ステップ906)、そのポインタ2の表示を制御する(ステップ907)。
図24に示したステップ902〜904の処理を、図12のように制御装置40が実行してもよい。
図25は、図24の処理についての他の実施の形態に係る動作を示すフローチャートである。
角速度センサユニット215から3軸の角速度信号が出力され(ステップ801)、MPU19はこれらの角速度値(ωθ、ωψ、ωφ)を取得する。MPU19は、下記の式(27)よりロール角φを算出する(ステップ802)。
φ=∫ωφdt ・・・(27)。
MPU19は、図22で示したステップ704〜706と同様の処理を実行し(ステップ803〜805)、制御装置40のMPU35は、ステップ707〜709(806〜808)と同様の処理を実行する。
式(27)においては積分誤差が発生するが、ステップ803においてロール角φに応じた回転座標変換が行われるので問題ない。また、上記式(26)のロール角の初期値φ0も、回転座標変換が行われることにより除去される。
図25に示したステップ802〜805の処理を、図12のように制御装置40が実行してもよい。
次に、入力装置の他の実施の形態について説明する。
図26は、その入力装置51を示す斜視図である。図27は、その入力装置51のホイールボタン13側から見た側面図である。これ以降の説明では、図2等に示した実施の形態に係る入力装置1が含む部材や機能等について同様のものは説明を簡略または省略し、異なる点を中心に説明する。
入力装置51の筐体50は、その筐体50の表面の所定の位置に設けられた球面の一部または二次曲面の一部50aを有する。以下、球面の一部または二次曲面の一部(50a)を便宜的に「下部曲面」(50a)という。
下部曲面50aが配置される位置は、例えば、ボタン11、12とはほぼ反対側の位置であり、ユーザが入力装置51を握ったときに、子指が他の指より最もその下部曲面50aの位置に近くなるような位置である。あるいは、ある一方向(Z’軸方向とする。)の長い筐体50において、筐体50のそのZ’軸方向の長さの中心からZ’軸の正の側にセンサユニット17が配置される場合、下部曲面50aはZ’軸の負の側に配置された位置となる。
球面の一部とは、典型的には、実質的に半球面が挙げられるが必ずしも半分である必要はない。二次曲面とは、2次元で描かれる円錐曲線(二次曲線)を3次元まで拡張されたときの曲面をいう。二次曲面として、例えば楕円面、楕円放物面、または双曲面等がある。
このような入力装置51の筐体50の形状により、ユーザは、入力装置51の下部曲面50aを、テーブル、椅子、床、ユーザの膝や太もも等の当接対象物49に当てた状態で、下部曲面50aを支点として入力装置51を操作しやすくなる。つまり、入力装置51の下部曲面50aを当接対象物49に当てた状態でも、ユーザは入力装置51をあらゆる角度に傾けることを容易に行うことができるので、ポインタをアイコンに合わせる等の細かい操作を行うことができるようになる。図28は、ユーザが入力装置51の下部曲面50aを膝に当てて操作する様子を示す図である。
あるいは、本実施形態では、手ぶれ補正回路では抑制できない手の震え等による誤操作を防止したり、ユーザが入力装置51を空中で持ち上げ続けて操作する場合のユーザの疲労を予防することができる。
図29は、本発明のさらに別の実施の形態に係る入力装置を示す斜視図である。
入力装置61の筐体60は、図26、図27で示した入力装置51と同様に、球面の一部でなる下部曲面60aを有する。入力装置61の筐体60の最大長さの方向(Z’軸方向)に垂直な平面であって、下部曲面60aに接する平面(以下、便宜的に下端平面55という。)は、角速度センサユニット15の検出軸であるX軸及びY軸(図8参照)が作る平面(X−Y平面)と実質的に平行な平面となっている。
このような入力装置61の構成により、ユーザが下部曲面60aを下端平面55に当てて操作する場合に、入力装置61に加えられる角速度がそのまま角速度センサユニット15に入力される。したがって、角速度センサユニット15からの検出信号から検出値を得る過程での計算量を減らすことができる。
図30は、本発明のさらに別の実施の形態に係る入力装置を示す正面図である。図31は、その入力装置を示す側面図である。
入力装置71の筐体70の下部曲面70aは、例えば球面の一部とされている。この下部曲面70aは、図26、図29で示した入力装置51、61の下部曲面50a、60aより曲率半径が大きく設定されている。角速度センサユニット15は、その角速度センサユニット15の検出軸であるX軸及びY軸で構成されるX−Y平面に含まれる直線が、X軸方向及びY軸方向で見て、上記球面を通る仮想的に描かれた円56の接線に相当するような位置に配置されている。このような条件を満たす限り、角速度センサユニット15のX−Y平面が、入力装置71の長手方向に対して傾くように(図30参照)、角速度センサユニット15が筐体70に対して配置されてもよい。
これにより、ユーザが下部曲面70aを当接対象物49に当てて入力装置71を操作する場合に発生する角速度のベクトル方向と、角速度センサユニット15の検出方向が一致するので、リニアな入力が可能となる。
図32は、本発明のさらに別の実施の形態に係る入力装置を示す正面図である。
この入力装置81の筐体80の下部曲面80aである球面の曲率半径は、例えば図29に示したものと同じ、または近く設定されている。角速度センサユニット15は、該角速度センサユニット15の中心点である2つのX軸及びY軸の交点を通りそのX軸及びY軸に直交する仮想的な直線が、下部曲面80aを含む第1の球62の中心点Oを通る。このような構成により、下部曲面80aを含む第1の球62と、角速度センサユニット15のX−Y平面に含まれる直線が接線となる第2の球63が同心となる。したがって、入力装置81は、図30で示した入力装置71の効果と同様の効果を奏する。
なお、以上説明した球面の一部または二次曲面の一部を備える入力装置51、61、71、または81について、ユーザが必ずしも下部曲面50a、60a、70a、または80aを当接対象物49に当てて操作しなければならないわけではなく、空中で操作してももちろんかまわない。
図26〜図32に示した入力装置51、61、71、または81が、図21に示した入力装置141及びこの入力装置141が実行する処理に適用されてもよいし、図23に示した構成を有する入力装置201及びこの入力装置201が実行する処理に適用されてもよい。
本発明に係る実施の形態は、以上説明した実施の形態に限定されず、他の種々の実施形態が考えられる。
図44、45、48〜52に対応する実施形態に示したように演算加速度値(axi、ayi)が求められる場合、例えば図35に示した式(5)により「速度値」が回転座標変換により補正された。しかし、演算加速度値(axi、ayi)が求められる場合であっても、図10、図12等で説明したように、図11で示した式(3)により「角速度値」が回転座標変換により補正され、これら補正角速度値が速度値に変換されてもよい。図54は、図44に示した処理の変形例を示すフローチャートを示し、「角速度値」が回転座標変換により補正される場合を示している(特に、ステップ2409参照)。このことは、図44に限られず、図45、48〜52に示した処理でも同様である。
以上の各実施の形態で説明したセンサユニット17について、角速度センサユニット15のX’及びY’の検出軸と、加速度センサユニット16のX’及びY’軸の検出軸がそれぞれ一致している形態を説明した。しかし、それら各軸は、必ずしも一致していなくてもよい。例えば、角速度センサユニット15及び加速度センサユニット16が基板上に搭載される場合、角速度センサユニット15及び加速度センサユニット16の検出軸のそれぞれが一致しないように、角速度センサユニット15及び加速度センサユニット16がその基板の主面内で所定の回転角度だけずれて搭載されていてもよい。その場合、三角関数を用いた計算によって、各軸の加速度及び角速度を得ることができる。
図14では、ステップ304において加速度が判定処理の対象とされ、加速度の絶対値が閾値Th1以下の場合に、所定の処理が停止された。これに代えて、ユーザが、その所定の処理を停止及びその再開を切り替えるためのスイッチが、例えば入力装置1に設けられていてもよい。スイッチは、メカニカルなディップスイッチ、プッシュボタン式のスイッチ、センサを利用したスイッチ等が挙げられる。センサとしては、電気、磁気、光等を利用したものがある。例えば、スイッチがON/OFF式のプッシュボタンである場合、ユーザがそのボタンを押すと、情報出力手段による処理が停止し、もう一度そのボタンを押すとその処理が再開されてもよい。あるいは、ユーザがそのボタンを押している間は、その処理が停止する(またはその処理が実行される)といった形態も考えられる。
あるいは、その所定の処理を停止及びその再開を切り替えるための手段として、GUIを用いたソフトウェアを入力装置または制御装置が備えていてもよい。例えば、画面上に表示されたスイッチ、その他のGUIを用いて所定の処理の停止及び開始を切り変えてもよい。
センサユニット17の、角速度センサユニット15及び加速度センサユニット16の検出軸は、上述のX’軸及びY’軸のように必ずしも互いに直交していなくてもよい。その場合、三角関数を用いた計算によって、互いに直交する軸方向に投影されたそれぞれの加速度が得られる。また同様に、三角関数を用いた計算によって、互いに直交する軸の周りのそれぞれの角速度を得ることができる。
図10、12、14、20、22、24、25、44、45、48〜52に示したフローチャートにおいて、入力装置及び制御装置が互いに通信しながら、入力装置の処理の一部を制御装置が行ってもよいし、制御装置の処理の一部を入力装置が行ってもよい。
上記の入力装置1は、加速度センサユニット16及び角速度センサユニット15を備えていた。しかし、図22、24、25の処理を実現する入力装置として、角度センサ及び角速度センサを備えたものであってもよい。この角度センサは、図53(A)に示すX’軸(第1の軸)の回りの角度(第1の角度)θと、図53(B)に示すZ’軸の回りの角度(第3の角度)φとを検出する2つの角度センサを有する。θは、垂直軸からのX’−Y’平面の角度である。もちろん、入力装置は、Y’軸(第2の軸)の回りの角度(第2の角度)ψをも検出する3軸の角度センサを備えていてもよい。
図53(A)に示すように、角度センサは、2軸の場合上記加速度センサユニット16により構成される。重力加速度GのY’方向成分であるG・sinθがY’軸方向での加速度値ayである。これによりθが求められる。また、図53(B)に示すように、Z’軸方向での角度はG・cosφ=ay、またはG・sinφ=ax(X’方向成分の加速度値)によりφが求められる。このように、角度θ、φが算出されることで、微分演算(微分手段)によりωθ、ωφが算出される。この場合、Y’軸方向の回りの角速度(第2の角速度)ψは、角速度センサから直接得られる。
あるいは、角度θ及びφのうちいずれか一方だけ算出され、例えば角度θのみ(またはφ)が上記角度センサによって算出され、微分演算によりωθ(またはωφ)が算出されてもよい。この場合、ωφ(またはωθ)及びωψは角速度センサにより直接得られる。
このように入力装置が角度センサを有する場合であっても、入力装置または制御装置は、上記ロール角φに応じた回転座標変換処理や、移動係数α、βの乗算処理及びこれにより得られる2つの角速度の合成演算処理を行うことが可能である。
上記角度センサは、加速度センサに代えて、あるいは加速度センサに加えて、地磁気センサ(1軸または2軸のもの)、またはイメージセンサにより構成されてもよい。
上記角速度センサユニット15の代わりとして、上記角度センサあるいは角加速度センサが用いられてもよい。角度センサとして、例えば3軸地磁気センサが用いられる場合、角度値の変化量が検出されるので、その場合、角度値が微分演算されることで角速度値が得られる。角加速度センサは、複数の加速度センサの組み合わせにより構成され、角加速度センサにより得られる角加速度値が積分演算されることで、角速度値が得られる。
速度値(Vx、Vy)の算出方法としては、MPU19が、例えば加速度値(ax、ay)を積分して速度値を求め、かつ、角速度値(ωψ、ωθ)をその積分演算の補助して用いる方法がある。逆に、MPU19が、角速度値(ωψ、ωθ)に対応する速度値を演算またはルックアップテーブルにより求め、加速度値を例えばその演算の補助して用いる方法がある。
あるいは、MPU19は、加速度値(ax、ay)を、角速度値(ωψ、ωθ)の微分値(Δωψ、Δωθ)で割ることで筐体10の動きの回転半径(Rψ、Rθ)を求める。その回転半径(R、R)に角速度値(ωψ、ωθ)が乗じられることにより速度値(Vx、Vy)が得られる。
あるいは、動きセンサとして、角速度センサユニット15が設けられず、加速度センサユニット16が設けられ、加速度値(ax、ay)が単に積分されることで速度値(Vx、Vy)が算出されてもよい。逆に、動きセンサとして、加速度センサユニット16が設けられず、角速度センサユニット15が設けられ、角速度値(ωψ、ωθ)に対応する速度値(Vx、Vy)が演算またはルックアップテーブルにより算出されてもよい。
上記各実施の形態に係る各入力装置は、無線で入力情報を制御装置に送信する形態を示したが、有線により入力情報が送信されてもよい。
本発明は、例えば、表示部を備えるハンドヘルド型の情報処理装置(ハンドヘルド装置)に適用されてもよい。この場合、ユーザは、ハンドヘルド装置の本体を動かすことで、その表示部に表示されたポインタが動く。ハンドヘルド装置として、例えば、PDA(Personal Digital Assistance)、携帯電話機、携帯音楽プレイヤー、デジタルカメラ等が挙げられる。
上記各実施の形態では、各入力装置等の動きに応じて画面上で動くポインタ2を、矢印の画像として表した。しかし、ポインタ2の画像は矢印に限られず、単純な円形、角形等でもよいし、キャラクタ画像、またはその他の画像であってもよい。
1、51、61、71、81、101、141、201…入力装置
2…ポインタ
3…画面
15、215…角速度センサユニット
16、116…加速度センサユニット
17…センサユニット
40…制御装置
100…制御システム
102…ローパスフィルタ
151…第1の角速度センサ
152…第2の角速度センサ
161…第1の加速度センサ
162…第2の加速度センサ
2…ポインタ
3…画面
15、215…角速度センサユニット
16、116…加速度センサユニット
17…センサユニット
40…制御装置
100…制御システム
102…ローパスフィルタ
151…第1の角速度センサ
152…第2の角速度センサ
161…第1の加速度センサ
162…第2の加速度センサ
本発明は、画面上のポインタを操作するための空間操作型の入力装置、その操作情報に応じてポインタを制御する制御装置、これらの装置を含む制御システム、制御方法及びハンドヘルド装置に関する。
PC(Personal Computer)で普及しているGUI(Graphical User Interface)のコントローラとして、主にマウスやタッチパッド等のポインティングデバイスが用いられている。GUIは、従来のPCのHI(Human Interface)にとどまらず、例えばテレビを画像媒体としてリビングルーム等で使用されるAV機器やゲーム機のインターフェースとして使用され始めている。このようなGUIのコントローラとして、ユーザが空間で操作することができるポインティングデバイスが多種提案されている(例えば、特許文献1、2参照)。
特許文献1には、2軸の角速度ジャイロスコープ、つまり2つの角速度センサを備えた入力装置が開示されている。この角速度センサは、振動型の角速度センサである。例えば共振周波数で圧電振動する振動体に回転角速度が加えられると、振動体の振動方向に直交する方向にコリオリ力が生じる。このコリオリ力は、角速度に比例するので、コリオリ力が検出されることで、回転角速度が検出される。特許文献1の入力装置は、角速度センサにより直交する2軸の回りの角速度を検出し、その角速度に応じて、表示手段により表示されるカーソル等の位置情報としてのコマンド信号を生成し、これを制御機器に送信する。
特許文献2には、3つ(3軸)の加速度センサ及び3つ(3軸)の角速度センサ(ジャイロ)を備えたペン型入力装置が開示されている。このペン型入力装置は、それぞれ3つの加速度センサ及び角速度センサにより得られる信号に基いて種々の演算を行い、ペン型入力装置の姿勢角を算出している。
一般的に加速度センサは、ユーザの入力装置の操作時の加速度だけでなく、重力加速度を検出する。入力装置に働く重力と、入力装置が動くときの入力装置の慣性力とは同じ物理量であるので、入力装置にはその区別が付かない。例えばユーザが、本来の姿勢から傾けるようにして入力装置を握ると、その傾きに応じた重力加速度の分力がそれぞれの軸に対応する加速度センサに働き、加速度センサはこれを検出してしまう。
しかし、上記特許文献2のペン型入力装置では、3軸の回転角速度、3軸方向の加速度が検出され、すなわち、6自由度すべての量が検出されるので、このような慣性力と重力の問題が解決される。
特許文献2のペン型入力装置では、3つの加速度センサ及び3つの角速度センサが用いられるので、構成が複雑であり、また、計算量が多くなるので遅延時間が発生するおそれがある。そのため、ユーザの操作タイミングとGUIの動作タイミングに時間的ずれが生じ、ユーザに違和感を与える。また、計算量が多くなると、消費電力も多くなる。例えば電池が内蔵されるタイプの入力装置にとっては消費電力の問題は重要である。
上記の遅延時間をなくすために、高速のCPUまたはMPUが用いられる場合、さらに消費電力及びコストが増大するという問題がある。
また、特許文献2のペン型入力装置は6つのセンサを備えているので、6つのA/D(Analog / Digital)ポートを備えたCPUもしくはA/Dコンバータが必要になる。したがって、回路構成が複雑となり、またコストが増えるという問題もある。
さらに、特許文献2のペン型入力装置では、演算に加速度の積分項目が存在するため、積分誤差が蓄積されるという問題もある。これを解消するために、特定の条件の時に積分値をリセットすることも提案されているが、積分誤差が実用上支障の無いレベルに収まるために必要な時間間隔でリセット条件が得られる確証がないという問題点もある。
以上のような事情に鑑み、本発明の目的は、入力装置が本来の姿勢から傾いたときの加速度センサに及ぶ重力の問題をなくし、かつ、計算量を少なくすることができる入力装置、制御装置、制御システム、その制御方法及びハンドヘルド装置を提供することにある。
本発明の別の目的は、入力装置が本来の姿勢から傾き、加速度センサを利用してその傾きの角度を計算する場合に、ユーザが入力装置を動かして加速度センサで検出される検出値に含まれる慣性加速度成分の影響を抑制することができる入力装置、制御装置、制御システム、その制御方法及びハンドヘルド装置を提供することにある。
本発明の一形態に係る入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の回りの第2の角速度を検出する第2の角速度センサと、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段とを具備する。
本発明では、第1及び第2の加速度に基き入力装置の角度が算出され、その角度に応じた回転座標変換によって第1及び第2の角速度が補正される。つまり、入力装置が第3の軸の回りで垂直軸に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生する第1及び第2の軸方向の重力加速度成分による影響を除去することができる。したがって、GUIが適切な動きになるようにそのGUIの表示が制御される。
「算出する」とは、演算により値が算出される場合と、求められるべき各種の値が対応テーブルとしてメモリ等に記憶され、その各種の値のいずれかの値がメモリから読み出される場合の両方を意味を含む。
本発明の一形態に係る制御装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の回りの第2の角速度を検出する第2の角速度センサとを備える入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置であって、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する受信手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを具備する。
本発明の一形態に係る制御システムは、入力情報を出力する入力装置と、前記入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置とを備える制御システムであって、前記入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の回りの第2の角速度を検出する第2の角速度センサと、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出する角度算出手段と、前記角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段とを有し、前記制御装置は、前記第1の補正角速度及び前記第2の補正角速度の情報を、前記入力情報として受信する受信手段と、前記受信された第1及び第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御システムは、入力情報を出力する入力装置と、前記入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置とを備える制御システムであって、前記入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の回りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の回りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として出力する出力手段とを有し、前記制御装置は、前記入力情報を受信する受信手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出する角度算出手段と、前記角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御方法は、入力装置の動きに応じて画面上のUIを制御する制御方法であって、前記入力装置の、第1の軸に沿う方向の第1の加速度を検出し、前記入力装置の、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出し、前記入力装置の、前記第2の軸の回りの第1の角速度を検出し、前記入力装置の、前記第1の軸の回りの第2の角速度を検出し、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力し、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する。
本発明の一形態に係る入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段とを具備する。
以降の説明では、第1の加速度センサまたは第2の加速度センサを、単に加速度センサという場合もある。同様に、第1の角速度センサまたは第2の角速度センサを、単に角速度センサという場合もある。同様に、第1の加速度値または第2の加速度値を、単に加速度値という場合もあり、第1の角速度値または第2の角速度値を、単に角速度値という場合もある。同様に、第1の速度値または第2の速度値を、単に速度値という場合もあり、第1の補正速度値または第2の補正速度値を、単に補正速度値という場合もある。
角速度センサにより角速度値が算出されるときは、ユーザが入力装置を自然に動かして操作するときである。すなわち、人間が入力装置を動かすとき、ユーザは、肩、肘及び手首のうち少なくとも1つを中心として、入力装置を回転させるように動かすからである。したがって、本発明では、加速度値だけでなく角速度値も用いられて、演算により入力装置の速度値が求められ、その速度値の微分演算により加速度値(演算加速度値)が求められる。これにより、実質的に入力装置の動きに合致した速度値及び演算加速度値が得られる。
一方、第3の軸の周りの角度、すなわち入力装置の理想的な姿勢からの第3の軸の周りの傾きの角度が算出される。その算出角度に応じた回転座標変換によって速度値が補正される。これにより、入力装置が第3の軸の周りで垂直軸に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生する第1及び第2の軸方向の重力加速度成分による影響を除去することができる。
しかし、速度値が補正されても、ユーザが入力装置を意識的に動かして操作する場合、算出角度が変動しないとも限らない。ユーザが入力装置を動かす場合、加速度センサは、入力装置の傾きによる例えば第1の軸方向の重力加速度成分値と、その入力装置の動きによる例えばその第1の軸方向の加速度値との合成の値を、第1の加速度値として検出するからである。
このような算出角度の変動を防止するため、傾き角度が算出されるときに、演算加速度値が加速度センサで検出される加速度値から減じられる。上記したように演算加速度値は、角速度値も考慮して算出されており、ユーザが入力装置を意識的に動かしているときの加速度値である。つまり、加速度センサで検出される加速度値から演算加速度値が減じられることにより、実質的には第1及び第2の軸方向の重力加速度の成分値が残る。したがって、角度算出手段は、ユーザの入力装置の操作により、算出角度が変動しても、実質的に重力の影響のみによる角度を算出することができる。これにより、ユーザの入力装置の動きに合致した補正速度値を得ることができる。
また、2つの加速度センサ及び2つの角速度センサが用いられるので、3軸の加速度センサ及び3軸の角速度センサが用いられる場合に比べ、計算量を少なくすることができ、また、コストを低減することができる。
本発明の一形態に係る制御装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサとを備える入力装置から送信された入力情報に応じて、画面上に表示されるUIを制御する制御装置である。制御装置は、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び第2の角速度値の各情報を、前記入力情報として受信する受信手段と、前記受信された前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを具備する。
本発明の一形態に係る制御システムは、画面上に表示されるUIを制御する制御システムであって、入力装置と制御装置とを備える。入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、前記第1及び第2の補正速度値の情報を入力情報として送信する送信手段とを有する。制御装置は、前記入力情報を受信する受信手段と、前記受信された入力情報の前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御システムは、画面上に表示されるUIを制御する制御システムであって、入力装置と制御装置とを備える。入力装置は、第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び第2の角速度値の各情報を、前記入力情報として送信する送信手段とを有する。制御装置は、前記入力情報として受信する受信手段と、前記受信された入力情報の前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する。
本発明の一形態に係る制御方法は、入力装置の、第1の軸に沿う方向の第1の加速度を検出し、前記入力装置の、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出し、前記入力装置の、前記第2の軸の周りの第1の角速度を検出し、前記入力装置の、前記第1の軸の周りの第2の角速度を検出し、前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出し、前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出し、前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、前記補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力し、前記第1の補正速度値及び前記第2の補正速度値に応じた、UIの画面上の座標情報を生成する。
本発明の一形態に係る入力装置は、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段とを具備する。
前記加速度出力手段は、加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する。
前記角速度出力手段は、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
前記加速度出力手段は、加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する。
前記角速度出力手段は、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
第1及び第2の加速度に基き入力装置の角度が算出され、その角度に応じた回転座標変換によって第1及び第2の角速度が補正される。つまり、入力装置が第5の軸の回りで垂直軸に対して傾いた状態でユーザが入力装置を動かしても、その傾きによりそれぞれ発生する第1及び第2の軸方向の重力加速度成分による影響を除去することができる。したがって、ポインタが適切な動きになるようにそのポインタの表示が制御される。
しかし、角速度値が補正されても、ユーザが入力装置を意識的に動かして操作する場合、算出角度が変動しないとも限らない。ユーザが入力装置を動かす場合、加速度センサは、入力装置の傾きによる例えば第1の軸方向の重力加速度成分と、その入力装置の動きによる例えばその第1の軸方向の慣性加速度との合成の値を、第1の加速度として検出するからである。
そこで、抑制手段は、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。これにより、実質的に重力の影響のみによる角度を算出することができ、ユーザの入力装置の動きに合致した補正角速度値を得ることができる。
「算出する」とは、演算により値が算出される場合と、求められるべき各種の値が対応テーブルとしてメモリ等に記憶され、その各種の値のいずれかの値がメモリから読み出される場合の両方を意味を含む。
典型的には、第1の軸と第4の軸とが一致し、第2の軸と第3の軸とが一致するが、それらは必ずしも一致しなくてもよい。
角速度出力手段は、角速度センサ、角度センサ、または、角加速度センサを有してもよい。角速度出力手段が角度センサを含む場合、検出された角度を微分することで角速度を出力する。角速度出力手段が角加速度センサを含む場合、検出された角加速度を積分することで角速度を出力する。
入力装置は、前記補正により得られる前記第1の補正角速度及び前記第2の補正角速度を更新する更新手段をさらに具備してもよい。その場合、前記情報出力手段は、前記第1の補正角速度及び前記第2の補正角速度の更新を停止し、最後に前記更新された前記第1の補正角速度及び前記第2の補正角速度の情報を、前記第2の情報として出力してもよい。
入力装置は、前記補正により得られる前記第1の補正角速度及び前記第2の補正角速度を更新する更新手段をさらに具備してもよい。その場合、前記停止手段は、前記第1の補正角速度及び前記第2の補正角速度の更新を停止し、前記情報出力手段は、最後に前記更新された第1の補正角速度及び第2の補正角速度の情報を、前記第2の情報として出力すればよい。
前記停止手段は、ユーザが前記情報出力手段による前記所定の処理の停止及び開始を切り替えるためのスイッチを有してもよい。スイッチは、メカニカルなディップスイッチ、プッシュボタン式のスイッチ、センサを利用したスイッチ等が挙げられる。センサとしては、電気、磁気、光等を利用したものがある。例えば、スイッチがON/OFF式のプッシュボタンである場合、ユーザがそのボタンを押すと、情報出力手段による処理が停止し、もう一度そのボタンを押すとその処理が再開されてもよい。あるいは、ユーザがそのボタンを押している間は、その処理が停止する(またはその処理が実行される)といった形態も考えられる。
前記停止手段は、前記加速度検出面が、絶対的な垂直面から傾いたときの、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルの量が閾値以下である場合、前記所定の処理を停止してもよい。その場合、前記開始手段は、前記合成加速度ベクトル量が前記閾値を超えた場合、前記所定の処理を開始してもよい。加速度検出面が垂直面から傾く角度が大きくなり過ぎる場合、合成加速度ベクトル量が小さくなる場合があり、その結果、正確な角度が算出されない。したがって、合成加速度ベクトル量が閾値以下の場合、所定の処理が停止され、例えば前回の角度の値が第1の角速度及び第2の角速度の補正に用いられるか、または、前回(最後)の第1の補正角速度及び第2の補正角速度が出力されればよい。
絶対的な垂直面とは、重力方向、すなわち地面に垂直な軸を含む面である。上記垂直軸は重力方向の軸とすると計算が容易になる。
前記停止手段は、前記所定の処理として前記角度の算出を停止し、前記入力装置は、前記角度の算出を停止したときの第1の角度と、前記角度の算出を再開したときの第2の角度との角度差が、閾値以上であるか否かを判定する判定手段をさらに具備してもよい。その場合、前記情報出力手段は、前記角度差が前記閾値以上であった場合、前記第2の角度に180deg加算した第3の角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正してもよい。ユーザが、角度の算出が停止されたときから再開されるまでの間に角度が大きくなるように入力装置を動かす場合、第1の加速度または第2の加速度の検出方向が反転する場合がある。その場合、本発明によれば、入力装置による該入力装置の姿勢の認識精度が向上し、適切な方向にGUIが動くような表示が可能となる。
入力装置は、前記角度の算出を停止したとき及び該算出を再開したときにおける前記第1の角速度のそれぞれの方向が同じであるか否かを判定する角速度方向判定手段をさらに具備してもよい。その場合、前記情報出力手段は、前記第1の角速度の方向が同じである場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正してもよい。第1の角速度の方向の連続性が確認されることで、入力装置による該入力装置の姿勢の認識精度がさらに向上する。
第1の角速度の方向の判定に代えてまたは第1の角速度の方向の判定に加えて、角速度方向判定手段は、第2の角速度の方向が同じであるか否かを判定してもよい。
あるいは、入力装置は、前記角度の算出を停止したときの、前記第1の角速度及び前記第2の角速度の第1の合成角速度ベクトル量と、前記角度の算出を再開したときの前記第1の角速度及び前記第2の角速度の第2の合成角速度ベクトル量との差が閾値以上である否かを判定する角速度ベクトル判定手段をさらに具備してもよい。その場合、前記情報出力手段は、前記第1及び第2の合成角速度ベクトル量の差が閾値以上である場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正してもよい。
前記抑制手段は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方の信号が入力されるローパスフィルタを有し、前記情報出力手段は、前記ローパスフィルタを通過した信号に基いて前記角度を算出してもよい。ユーザが入力装置を動かしたときに発生する加速度の信号は、当然であるが、常に働く重力加速度に比べ高周波の信号である。したがって、そのような信号の高周波成分がローパスフィルタにより除去されることにより、角度の算出時において、ユーザが入力装置を動かすときに発生する慣性加速度の影響を除去することができる。
前記抑制手段は、前記第1の角速度に基き得られる前記第3の軸の回りの第1の角加速度、及び、前記第2の角速度に基き得られる前記第4の軸の回りの第2の角加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止してもよい。ユーザが入力装置を自然に操作するとき、入力装置に角加速度が発生する。角度は、第1及び第2の加速度に基き、所定の計算式により算出される。また、第1または第2の加速度は、さらに別の計算式によって上記角加速度に基いて算出される。したがって、ユーザが入力装置を動かしたときに入力装置に加速度が発生しても、それによる例えば角度の算出誤差を許容範囲内に抑えるための所望の第1または第2の加速度を、角加速度から算出することができる。つまり、角加速度の閾値が設定されることで、角度の算出誤差を許容範囲内に抑えることができる。
前記抑制手段は、前記第1の角速度及び前記第2の角速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止してもよい。ユーザが高速でポインタを動作させたとき、つまり角速度が高速のときは、角度を算出しない方が人間の感覚として違和感が少ないことが実験で分かっている。
前記抑制手段は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止してもよい。
前記抑制手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の第1の速度及び前記第2の軸に沿う方向の第2の速度を算出し、前記第1の速度及び前記第2の速度をそれぞれ微分することで、第1の演算加速度及び第2の演算加速度を算出し、前記第1の加速度から前記第1の演算加速度を減じた値、及び、前記第2の加速度から前記第2の演算加速度を減じた値に基いて、前記情報出力手段により前記角度を算出させる。
角速度出力手段により角速度が算出されるときは、ユーザが入力装置を自然に動かして操作するときである。すなわち、人間が入力装置を動かすとき、ユーザは、肩、肘及び手首のうち少なくとも1つを中心として、入力装置を回転させるように動かすからである。したがって、加速度だけでなく角速度も用いられて、演算により入力装置の速度が求められ、その速度の微分演算により加速度(演算加速度)が求められる。これにより、実質的に入力装置の動きに合致した速度及び演算加速度が得られる。
入力装置は、前記第1の演算加速度及び前記第2の演算加速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、前記第1の演算加速度及び前記第2の演算加速度の両方が前記閾値以下の場合、前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。演算加速度が極端に大きい場合、角度の演算の誤差が大きくなり、正確な角度が算出されない場合がある。このように閾値判定されることにより、適切な傾き角度が算出される。本発明の場合、第1及び第2の加速度のうち少なくとも一方が閾値を超える場合、前回に更新されて記憶された第2の角度に応じた回転座標変換が行われることで、速度値が正確に算出される。
入力装置は、前記第1の演算加速度及び前記第2の演算加速度に基き得られる演算値が閾値を超えるか否かを判定する判定手段と、前記演算値が前記閾値以下の場合、前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。
閾値判定の対象として、演算加速度に限られない。例えば加速度センサで検出された加速度値(またはその演算値)、角速度センサで検出された角速度(またはその演算値)、角速度の微分演算により算出された角加速度(またはその演算値)等が、閾値判定の対象とされてもよい。
演算値とは、各軸に関する検出値の合成ベクトルの絶対値、その加算値、その平均値、あるいは、他の演算式により算出された値である。
入力装置は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、前記第1の加速度及び前記第2の加速度の両方が前記閾値以下の場合、前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。
前記加速度出力手段は、前記第5の軸に沿う方向の第3の加速度を出力してもよい。その場合、前記入力装置は、前記第3の加速度が閾値以上であるか否かを判定する判定手段と、前記第3の加速度が閾値より小さい場合、前記記憶された前記角度を更新する更新手段と、前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段とをさらに具備してもよい。例えば、加速度検出面に対する第5の軸の角度が大きい場合(90°に近い場合)、加速度検出面が、絶対的な垂直面に実質的に平行に近くなるほど、第3の加速度(の絶対値)は実質的にゼロに近くなる。すなわち、その面の垂直面からの傾きが大きくなるにしたがって、第3の加速度が大きくなる。したがって、第3の加速度が閾値判定の対象とされてもよい。この場合、第3の加速度が十分に大きな値となる範囲に閾値を設定することができる。これにより、第3の加速度に対して相対的に低いノイズレベルが発生する状態で、つまり、高いS/Nが得られる状態で閾値判定されるので、その判定の精度を高めることができる。
本発明の一形態に係る制御装置は、加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段とを備える入力装置から出力された入力情報に応じて、画面上に表示されるポインタを制御する制御装置である。
前記制御装置は、受信手段と、情報出力手段と、抑制手段と、座標情報生成手段とを具備する。
前記受信手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
前記制御装置は、受信手段と、情報出力手段と、抑制手段と、座標情報生成手段とを具備する。
前記受信手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する。
前記抑制手段は、前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する。
前記座標情報生成手段は、前記第1の補正角速度及び前記第2の補正角速度に応じた、前記ポインタの前記画面上の座標情報を生成する。
前記制御装置は、前記情報出力手段による所定の処理を停止させる停止手段をさらに具備してもよい。その場合、前記情報出力手段は、前記所定の処理を停止しているとき、前記第1の情報とは異なる第2の情報を出力してもよい。制御装置は、前記情報出力手段による前記所定の処理を再開させる開始手段をさらに具備してもよい。
前記停止手段は、ユーザが前記情報出力手段による前記所定の処理の停止及び開始を切り替えるための切り替え手段を有してもよい。切り替え手段は、上記したスイッチでもよいし、GUIを用いたソフトウェアを含む手段により実現されてもよい。
本発明の一形態に係る制御システムは、入力装置と、制御装置とを具備する。
前記入力装置は、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段とを有する。前記制御装置は、受信手段と、座標情報生成手段とを有する。これらの手段は、上述したものと同様のものである。
前記入力装置は、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段とを有する。前記制御装置は、受信手段と、座標情報生成手段とを有する。これらの手段は、上述したものと同様のものである。
あるいは本発明の他の形態に係る制御システムでは、入力装置が、加速度出力手段と、角速度出力手段とを有し、制御装置が、受信手段と、情報出力手段と、抑制手段と、座標情報生成手段とを有する。
本発明の一形態に係るハンドヘルド装置は、上述した、加速度出力手段と、角速度出力手段と、情報出力手段と、抑制手段と、座標情報生成手段とを具備する。
本発明の一形態に係る制御方法は、加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力し、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力し、ことを含む。
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度が、前記第1の加速度及び前記第2の加速度に基いて算出される。
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度がそれぞれ補正される。
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動が抑制される。
前記補正により得られる第1の補正角速度及び第2の補正角速度に応じた、ポインタの画面上の座標情報が生成される。
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度がそれぞれ補正される。
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動が抑制される。
前記補正により得られる第1の補正角速度及び第2の補正角速度に応じた、ポインタの画面上の座標情報が生成される。
本発明の他の形態に係る入力装置は、加速度出力手段、角速度出力手段、算出手段、情報出力手段及び抑制手段を具備する。
前記算出手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する。
加速度出力手段、角速度出力手段及び抑制手段は、上述のものと同様である。
前記算出手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する。
前記情報出力手段は、前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する。
加速度出力手段、角速度出力手段及び抑制手段は、上述のものと同様である。
制御装置、制御システム、ハンドヘルド装置及び制御方法についても、同様に、上記算出手段が設けられていてもよい。
入力装置は、前記情報出力手段による所定の処理を停止させる停止手段をさらに具備してもよい。その場合、前記情報出力手段は、前記所定の処理を停止しているとき、前記第1の情報とは異なる第2の情報を出力してもよい。
前記停止手段は、前記所定の処理として前記第1の情報の出力を停止してもよい。前記停止手段は、前記所定の処理として前記角度の算出を停止してもよい。前記停止手段は、前記所定の処理として前記回転座標変換による補正を停止してもよい。
入力装置は、前記情報出力手段による前記所定の処理を再開させる開始手段をさらに具備してもよい。
前記情報出力手段は、前記回転座標変換により補正されていない値である前記第1の角速度及び前記第2の角速度の情報を、前記第2の情報として出力してもよい。すなわち、停止手段により第1の情報の出力が停止しているときは補正されていない第1及び第2の角速度の情報が出力される。例えば、この入力装置を使い慣れているユーザが、入力装置を動かして操作するときに、回転座標変換による補正が実行されると、操作しにくいと感じる場合も考えられる。その場合、ユーザの手動で停止手段により第1の情報の出力を停止させることができれば、そのような不都合を解消することができる。
以上のように、本発明によれば、入力装置が傾いたときの加速度センサに及ぶ重力の問題をなくし、かつ、計算量を少なくすることができる。
本発明によれば、入力装置が傾き、加速度センサを利用してその傾きの角度を計算する場合に、ユーザが入力装置を動かして加速度センサで検出される検出値に含まれる慣性加速度成分の影響を抑制することができる。
以下、本発明の実施の形態を図面を参照しながら説明する。
図1は、本発明の一実施の形態に係る制御システムを示す図である。制御システム100は、表示装置5、制御装置40及び入力装置1を含む。
図2は、入力装置1を示す斜視図である。入力装置1は、ユーザが持つことができる程度の大きさとされている。入力装置1は、筐体10、筐体10の上部に設けられた例えば2つのボタン11、12、回転式のホイールボタン13等の操作部を備えている。筐体10の上部の中央よりに設けられたボタン11は、例えばPCで用いられる入力デバイスとしてのマウスの左ボタンの機能を有し、ボタン11に隣接するボタン12は右ボタンの機能を有する。
例えば、ボタン11を長押して入力装置1を移動させることにより「ドラッグアンドドロップ」、ボタン11のダブルクリックによりファイルを開く操作、ホイールボタン13により画面3のスクロール操作が行われるようにしてもよい。ボタン11、12、ホイールボタン13の配置、発行されるコマンドの内容等は、適宜変更可能である。
図3は、入力装置1の内部の構成を模式的に示す図である。図4は、入力装置1の電気的な構成を示すブロック図である。
入力装置1は、センサユニット17、制御ユニット30、バッテリー14を備えている。
図8は、センサユニット17を示す斜視図である。センサユニット17は、互いに異なる角度、例えば直交する2軸(X軸及びY軸)に沿った加速度を検出する加速度センサユニット16を有する。すなわち、加速度センサユニット16は、第1の加速度センサ161及び第2の加速度センサ162の2つセンサを含む。また、センサユニット17は、その直交する2軸の回りの角加速度を検出する角速度センサユニット15を有する。すなわち、角速度センサユニット15は、角速度センサ151及び152の2つのセンサを含む。これらの加速度センサユニット16及び角速度センサユニット15はパッケージングされ、回路基板25上に搭載されている。
角速度センサ151、152としては、角速度に比例したコリオリ力を検出する振動型のジャイロセンサが用いられる。第1、第2の加速度センサ161、162としては、ピエゾ抵抗型、圧電型、静電容量型等、どのようなタイプのセンサであってもよい。
図2及び図3の説明では、便宜上、筐体10の長手方向をZ’方向とし、筐体10の厚さ方向をX’方向とし、筐体10の幅方向をY’方向とする。この場合、上記センサユニット17は、回路基板25の、加速度センサユニット16及び角速度センサユニット15を搭載する面がX’−Y’平面に実質的に平行となるように、筐体10に内蔵され、上記したように、両センサユニット16、15はX軸及びY軸の2軸に関する物理量を検出する。X’軸及びY’軸を含む平面が加速度検出面、つまり回路基板25の主面に実質的に平行な面(以下、単に検出面という。)である。
説明の便宜上、以降では、入力装置1とともに動く座標系、つまり、入力装置1に固定された座標系をX’軸、Y’軸、Z’軸で表す。また、静止した地球上の座標系、つまり慣性座標系をX軸、Y軸、Z軸で表す。また、入力装置1の動きに関し、X’軸の回りの方向をピッチ方向、Y’軸の回りの方向をヨー方向といい、Z’軸(ロール軸)の回りの方向をロール方向という場合もある。
制御ユニット30は、メイン基板18、メイン基板18上にマウントされたMPU19(Micro Processing Unit)(あるいはCPU)、水晶発振器20、送信機21、メイン基板18上にプリントされたアンテナ22を含む。
MPU19は、必要な揮発性及び不揮発性メモリを内蔵している。MPU19は、センサユニット17による検出信号、操作部による操作信号等を入力し、これらの入力信号に応じた所定の制御信号を生成するため、各種の演算処理等を行う。
送信機21は、MPU19で生成された制御信号(入力情報)をRF無線信号として、アンテナ22を介して制御装置40に送信する。
水晶発振器20は、クロックを生成し、これをMPU19に供給する。バッテリー14としては、乾電池または充電式電池等が用いられる。
制御装置40はコンピュータであり、MPU35(あるいはCPU)、RAM36、ROM37、ビデオRAM41、アンテナ39及び受信機38等を含む。
受信機38は、入力装置1から送信された制御信号(または入力情報)を、アンテナ39を介して受信する。MPU35は、その制御信号を解析し、各種の演算処理を行う。これにより、表示装置5の画面3を制御する表示制御信号が生成される。ビデオRAM41は、その表示制御信号に応じて生成される、表示装置5に表示される画面データを格納する。
制御装置40は、入力装置1に専用の機器であってもよいが、PC等であってもよい。制御装置40は、PCに限られず、表示装置5と一体となったコンピュータであってもよいし、オーディオ/ビジュアル機器、プロジェクタ、ゲーム機器、またはカーナビゲーション機器等であってもよい。
表示装置5は、例えば液晶ディスプレイ、EL(Electro-Luminescence)ディスプレイ等が挙げられるが、これらに限られない。あるいは、表示装置5は、テレビジョン放送等を受信できるディスプレイと一体となった装置でもよい。
図5は、表示装置5に表示される画面3の例を示す図である。画面3上には、アイコン4やポインタ2等のUIが表示されている。アイコンとは、コンピュータ上のプログラムの機能、実行コマンド、またはファイルの内容等が画面3上で画像化されたものである。なお、画面3上の水平方向をX軸方向とし、垂直方向をY軸方向とする。
図6は、ユーザが入力装置1を握った様子を示す図である。図6に示すように、入力装置1は、上記ボタン11、12、13のほか、例えばテレビ等を操作するリモートコントローラに設けられるような各種の操作ボタンや電源スイッチ等の操作部を備えていてもよい。このようにユーザが入力装置1を握った状態で、入力装置1を空中で移動させ、あるいは操作部を操作することにより、その入力情報が制御装置40に出力され、制御装置40によりポインタが制御される。
次に、入力装置1の動かし方及びこれによる画面3上のポインタ2の動きの典型的な例を説明する。図7はその説明図である。
図7(A)、(B)に示すように、ユーザが入力装置1を握った状態で、入力装置1のボタン11、12が配置されている側を表示装置5側に向ける。ユーザは、親指を上にし子指を下にした状態、いわば握手する状態で入力装置1を握る。この状態で、センサユニット17の回路基板25(図8参照)は、表示装置5の画面3に対して平行に近くなり、センサユニット17の検出軸である2軸が、画面3上の水平軸(X軸)及び垂直軸(Y軸)に対応するようになる。以下、このような図7(A)、(B)に示す入力装置1の姿勢を基本姿勢という。
図7(A)に示すように、基本姿勢の状態で、ユーザが手首や腕を上下方向、またはピッチ方向に振る。このとき、第2の加速度センサ162は、Y軸方向の加速度(第2の加速度)を検出し、角速度センサ151は、X軸の回りの角速度ω θ を検出する。これらの検出値に基き、制御装置40は、ポインタ2がY軸方向に移動するようにそのポインタ2の表示を制御する。
一方、図7(B)に示すように、基本姿勢の状態で、ユーザが手首や腕を左右方向、またはヨー方向に振る。このとき、第1の加速度センサ161は、X軸方向の加速度(第1の加速度)を検出し、角速度センサ152は、Y軸の回りの角速度ω ψ を検出する。これらの検出値に基き、制御装置40は、ポインタ2がX軸方向に移動するようにそのポインタ2の表示を制御する。
次に、加速度センサユニット16への重力の影響について説明する。図9はその説明のための図である。図9は、入力装置1をZ方向で見た図である。
図9(A)では、入力装置1が基本姿勢とされ、静止しているとする。このとき、第1の加速度センサ161の出力は実質的に0であり、第2の加速度センサ162の出力は、重力加速度G分の出力とされている。しかし、例えば図9(B)に示すように、入力装置1がロール方向に傾いた状態では、第1、第2の加速度センサ161、162は、重力加速度Gのそれぞれの傾き成分の加速度値を検出する。
この場合、特に、入力装置1が実際にヨー方向には動いていないにも関わらず、第1の加速度センサ161はX軸方向の加速度を検出することになる。この図9(B)に示す状態は、図9(C)のように入力装置1が基本姿勢にあるときに、加速度センサユニット16が破線の矢印で示すような慣性力Ix、Iyを受けた状態と等価であり、加速度センサユニット16にとって区別が付かない。その結果、加速度センサユニット16は、矢印Fで示すような左に斜め下方向の加速度が入力装置1に加わったと判断し、入力装置1の実際の動きとは違った検出信号を出力する。しかも、重力加速度Gは常に加速度センサユニット16に作用するため、積分値は増大し、ポインタ2を斜め下方に変位させる量は加速度的に増大してしまう。図9(A)から図9(B)に状態が移行した場合、本来、画面3上のポインタ2が動かないようにすることが、ユーザの直感に合った操作と言える。
以上のような加速度センサユニット16への重力の影響を極力減らすために、本実施の形態に係る入力装置1は、ロール方向の角度を算出し、これを用いて角速度を補正する。以下、この補正処理を含む、制御システム100の動作について説明する。図10は、その動作を示すフローチャートである。
入力装置1に電源が投入される。例えば、ユーザが入力装置1または制御装置40に設けられた電源スイッチ等を入れることにより、入力装置1に電源が投入される。電源が投入されると、加速度センサユニット16から2軸の加速度信号(第1、第2の加速度値ax、ay)が出力され(ステップ101a)、これがMPU19に供給される。この加速度信号は、電源が投入された時点での入力装置1の姿勢(以下、初期姿勢という)に対応する信号である。
初期姿勢は、上記基本姿勢になることも考えられる。しかし、X軸方向に重力加速度のすべての量が検出される姿勢、すなわち第1の加速度センサ161の出力が重力加速度分の加速度値を検出し、第2の加速度センサ162の出力が0である場合もある。もちろん初期姿勢は、図9(B)に示したようにロール方向に傾いた姿勢であることも考えられる。
MPU19は、重力加速度の成分値(ax、ay)に基き、下記の式(1)によりロール角φを算出する(ステップ102)。
φ=arctan(ax /ay)・・・(1)。
ここでいうロール角は、X’軸及びY’軸方向の合成加速度ベクトルと、Y’軸との間の角度をいう(図9(B)参照)。しかし、これに限られることはなく、その合成加速度ベクトルと、X’軸及びY’軸を含む面内の軸(基準軸)との間の角度であれば、ロール角は何でもよい。つまり、本実施形態では、Y’軸を基準軸としたが、基準軸はその面内であればどのような軸であってもよく、ロール角に応じた回転座標変換が実行される、という本質は変わらない。
また、入力装置1に電源が投入されると、角速度センサユニット15から2軸の角速度信号(角速度値ω θ 及びω ψ )が出力され(ステップ101b)、これがMPU19に供給される。
MPU19は、算出したロール角に応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正値である補正角速度値(第1及び第2の補正角速度値(ωψ’、ωθ’))を得る(ステップ103)。すなわち、MPU19は、図11に示す回転座標変換の式(3)を用いて、角速度値(ωψ、ωθ)を補正する。MPU19は、補正角速度値(ωψ’、ωθ’)の情報を制御装置40に出力する(ステップ104)。
制御装置40のMPU35は、補正角速度値(ωψ’、ωθ’)の情報を受信する(ステップ105)。入力装置1は、所定のクロックごとに、つまり単位時間ごとに補正角速度値(ωψ’、ωθ’)を出力するので、制御装置40は、これを受信し、単位時間ごとのヨー角及びピッチ角の変化量を取得することができる。MPU35は、取得した単位時間当りのヨー角ψ(t)及びピッチ角θ(t)の変化量に応じた、ポインタ2の画面3上における座標値を生成し(ステップ106)、ポインタ2が画面3上で移動するように表示を制御する(ステップ107)(座標情報生成手段)。
ステップ106では、MPU35は上記単位時間当りのヨー角及びピッチ角の変位量に応じたポインタ2の画面3上での単位時間当りの変位量を、演算により、または予めROM37に記憶された対応テーブルにより求める。あるいは、MPU35は、上記補正角速度値の信号にローパスフィルタ(デジタルでもアナログでもよい)をかけて出力してもよい。以上のようにして、MPU35は、ポインタ2の座標値を生成することができる。
以上のように、重力加速度の成分値(ax、ay)に基き入力装置1のロール角φが算出され、そのロール角φに応じた回転座標変換によって角速度(ωψ、ωθ)が補正される。つまり、入力装置1がZ軸の回りで、重力方向の軸(以下、垂直軸という)に対して傾いた状態でユーザが入力装置1を動かしても、その傾きによりそれぞれ発生するX’軸及びY’軸方向の重力加速度成分による影響を除去することができる。
なお、以上のようにロール方向の入力装置1の傾きによる重力加速度成分の影響が除去された後、ユーザが実際に入力装置1を動かして操作する場合、その入力装置1に加速度が発生する(慣性加速度)。加速度センサユニット16は、重力加速度にその慣性加速度が合成された加速度を検出するので、その慣性加速度に起因して、ステップ102で算出したロール角φが変動すると考えられる。このロール角φの変動は後述する方法によって抑制される。
図12は、制御システム100の他の実施の形態に係る動作を示すフローチャートである。
図10に示したフローでは、入力装置1が角速度値を補正したが、図12では制御装置40が角速度値を補正する点が異なる。
例えば、入力装置1のMPU19は、加速度センサユニット16から得られる重力加速度の成分値(ax、ay)及び角速度センサユニット15から得られる角速度値(ωψ、ωθ)の各情報を入力情報として出力する(ステップ202)。
制御装置40のMPU35は、重力加速度の成分値(ax、ay)及び角速度値(ωψ、ωθ)の各情報を受信する(ステップ203)。MPU35は、重力加速度の成分値(ax、ay)に基き、ロール角φを算出する(ステップ204)。MPU35は、このロール角φに応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正値である補正角速度値(ωψ’、ωθ’)を得る(ステップ205)。あとは、MPU35は、図10で示すステップ106、107と同様の処理を行う(ステップ206、207)。
このように、入力装置1は検出信号の検出値の情報を送信し、制御装置40が角速度値の補正処理を行うことも可能である。
図12において、入力装置1がステップ201a及び201bまでの処理を実行し、制御装置40がその検出信号の情報を受信し、その受信された情報に基づいてステップ202以降の処理を実行してもよい。
あるいは、入力装置1がステップ204まで、またはステップ205までの処理を実行してもよい。
以上では、センサユニット17の検出面が、垂直軸を含む絶対的な垂直面と実質的に平行の状態のまま、入力装置1がロール方向に傾いた状態でユーザが入力装置1を操作する形態を説明した。しかし、検出面が垂直面から傾いて入力装置1が操作される場合も考えられる。以下、そのような場合の制御システム100の動作について説明する。図14は、その動作を示すフローチャートである。
図13(A)は、検出面が垂直面から傾き、かつ、ロール方向にも傾いて静止している状態にある加速度センサユニット16を示す図である。加速度センサユニット16は、この状態でX’軸方向及びY’軸方向の重力加速度の成分値(ax、ay)をそれぞれ検出している。
図13(A)では、垂直面と実質的に平行な画面3をロール方向に傾けて図示しており、図中、太い矢印Gは重力加速度ベクトルを示している。矢印G1で示すベクトルは、加速度センサユニット16が検出しているX’軸及びY’軸方向の重力加速度ベクトル(GX’,GY’)の合成加速度ベクトルG1である。したがって、この合成加速度ベクトルG1は、重力加速度ベクトルGのピッチ方向(θ方向)で回転させた成分のベクトルである。図13(B)は、図13(A)の状態にある加速度センサユニット16を絶対的なY−Z平面で見た図である。
図14を参照して、入力装置1のMPU19は、ステップ301、302で出力される重力加速度成分値(ax、ay)及び角速度(ωψ、ωθ)を取得する。ステップ301及び302について、図14での記載の仕方が図10の記載の仕方と異なるが、ステップ101a及び101bの処理と実質的に同じ処理である。
MPU19は、重力加速度成分値(ax、ay)に基き、合成加速度ベクトル量|a|を算出する(ステップ303)。合成加速度ベクトル量|a|は、[(ax)2+(ay)2]1/2より算出することができる。MPU19は、算出した合成加速度ベクトル量|a|が閾値Th1以下であるかを判定し(ステップ304)、|a|が閾値Th1を超える場合、ロール角φを算出する(ステップ305)。MPU19は、算出されたロール角φに応じた回転座標変換による補正を行い(ステップ306)、補正により得られた補正角速度値(ωψ’、ωθ’)を出力する(ステップ307)。
垂直面からの検出面の傾きが大きい場合、すなわちピッチ角θが大きい場合、重力加速度成分値(ax、ay)が小さくなり、ロール角φの算出結果の精度が落ちる。したがって、本実施形態では、重力加速度成分値(ax、ay)に基き算出されるロール角φがノイズに埋もれるほど、ピッチ角θが大きくなる場合には、正確なロール角φの算出は困難となる。したがって、|a|が閾値Th1以下である場合、MPU19は、以下のような所定の処理を停止する(停止手段)(ステップ308)。
所定の処理とは、補正角速度値(ωψ’、ωθ’)を出力すること、ロール角を算出すること、及び、回転座標変換による補正を実行すること、のうちいずれか1つである。
ロール角の算出を停止する場合、MPU19は、例えば最後に更新されてメモリに記憶されたロール角に基づき、回転座標変換を行い、それにより得られた補正角速度値(ωψ’、ωθ’)を出力すればよい(ステップ309)。あるいは、ロール角の算出を停止する場合、MPU19は、最後に更新されてメモリに記憶された、補正角速度値(ωψ’、ωθ’)を出力すればよい(ステップ309)。
回転座標変換による補正を停止する場合、MPU19は、例えば最後に更新されてメモリに記憶された、補正角速度値(ωψ’、ωθ’)を出力すればよい(ステップ309)。
補正角速度値(ωψ’、ωθ’)の出力が停止される場合、ポインタ2の動きが停止するか、ポインタ2の表示が消えるような制御が実行されるか、あるいは、ポインタ2が所定の位置に移動する等の処理が実行されればよい。
上記閾値Th1は、ノイズ等を考慮して適宜設定されればよい。
ステップ310〜312は、図10におけるステップ105〜107と同様である。
ステップ308でMPU19はロール角φの算出を停止した後、供給される重力加速度成分値(ax、ay)に基き算出された合成加速度ベクトル量|a|が閾値Th1を超えた場合、ロール角φの算出を再開し、ステップ305以降の処理が実行される。
本実施の形態によれば、ピッチ角θが大きい場合であっても、MPU19は補正角速度値の出力を停止するか、最後に更新された補正角速度値を出力するので、正確なロール角φを算出することができる。
図12における処理と同様の趣旨により、図14における処理について入力装置1が実行する処理の一部を、制御装置40が実行してもよい。例えばステップ303〜309の処理、ステップ304〜309の処理、ステップ305〜309の処理、・・・、または、ステップ309の処理を制御装置40が実行してもよい。
ここで、上記ステップ308で所定の処理が停止されてから、次に所定の処理が再開されるまでの間に、例えばY’軸方向で検出される第2の加速度値ayの正負が変わる場合がある。所定の処理の再開とは、ロール角の算出が停止されていた場合は、ステップ305〜307、回転座標変換による補正が停止されていた場合は、ステップ306〜307の再開、補正角速度値の出力が停止されていた場合は、ステップ307の再開、を意味する。
図15(A)、(B)は、そのときの様子を示す図である。図15(A)は、ロール角φの算出が停止された瞬間の加速度センサユニット16の姿勢を示す。図15(B)は、例えば所定の処理が再開された瞬間の加速度センサユニット16の姿勢を示す。このようなとき、Y’軸方向の重力加速度ベクトルGY’の加速度値ayの正負が変わる。これは、Y’軸方向に限らず、X’軸方向も同様のことが言える。図15(A)、(B)では、例えば入力装置1がペン型の装置であって、そのペンの先端部にセンサユニット17が配置されている形態が想定される。ユーザはこのペン型の入力装置をペンを持つように握る場合、加速度センサユニット16は図15(A)、(B)に示すように、検出面が下に向くような姿勢となる。
重力加速度ベクトルGY’の加速度値ayの符号が変わると、そのままではロール角φの計算にもエラーが発生する。図16は、このような現象を回避するための、入力装置1の処理の動作を示すフローチャートである。
図16では、所定の処理の停止のうち、ロール角の算出の停止を例に挙げているが、これに限られず、回転座標変換による補正の停止、または、補正角速度値の出力の停止、であってもよい。このことは、図17、図49及び図50における処理においても同様である。
図16を参照して、MPU19は、ステップ304(図14参照)の条件下でロール角φの算出を停止する(ステップ401)。すると、MPU19は前回のロール角φに応じた回転座標変換により角速度値(ωψ、ωθ)を補正し、補正角速度値(ωψ’、ωθ’)を得るか、または、前回の補正角速度値を得、これを出力する(ステップ402)。合成加速度ベクトル量|a|が閾値Th1を超えた場合(ステップ403のNO)、MPU19は、供給される重力加速度値(ax、ay)に基きロール角を算出する。
MPU19は、ロール角φの算出を停止したときのロール角、すなわち停止する直前に算出したロール角(第1のロール角)と、算出の再開直後の(ステップ404で算出された)ロール角(第2のロール角)との差を算出する(ステップ405)。MPU19は、その差|Δφ|が閾値Th2以上であった場合(ステップ406のYES)、最新のロール角である上記第2のロール角に180degを加える。
MPU19は、第2のロール角に180degを加えられた第3のロール角に応じた回転座標変換により補正角速度値(ωψ’、ωθ’)を取得し、これを出力する(ステップ407)。このようにして、本実施の形態では、入力装置1による該入力装置1の姿勢の認識精度が向上し、適切な方向にポインタ2が動くような表示が可能となる。
閾値Th2は、例えば60deg(=±30deg)〜90deg(=±45deg)等に設定することができる。しかし、これらの範囲に限られない。
図12における処理と同様の趣旨により、図16における処理の一部または全部を、制御装置40が実行してもよい。
図17は、図16に示した処理についての他の形態に係る動作を示すフローチャートである。
ステップ501〜504は、図16のステップ401〜404と同様の処理である。MPU19は、ロール角φの算出停止直前のピッチ方向の角速度ωθの方向と、算出開始直後のピッチ方向での角速度ωθの方向とが同じ方向であるか否かを判定する(ステップ505)。つまりωθ正負が、ロール角φの算出停止前及び開始後で一致しているか否かが判定される。ピッチ方向に代えて、あるいは、ピッチ方向に加えて、ヨー方向の角速度ωψの正負が一致しているか否かが判定されてもよい。
ステップ505においてYESの場合、ピッチ方向での角速度の方向が連続しているので、図15(A)、(B)に示すようにGY’の向きが変わっていると判断することができる。この場合、MPU19は、第2のロール角に180degを加えられた第3のロール角に応じた回転座標変換により補正角速度値(ωψ’、ωθ’)を取得し、これを出力する(ステップ507)。
このように、ピッチ方向の角速度ωθ(またはヨー方向の角速度ωψ)の連続性が確認さえることで、入力装置1による該入力装置1の姿勢の認識精度がさらに向上する。
図12における処理と同様の趣旨により、図17における処理の一部または全部を、制御装置40が実行してもよい。
図16及び図17の処理のさらに別の実施の形態として、ロール角の算出が停止されたときの2つの角速度の合成角速度ベクトル量(第1の合成角速度ベクトル量)と、ロール角の算出が再開されたときの当該合成角速度ベクトル量(第2の合成角速度ベクトル量)との差が閾値以上であるか否かが判定されてもよい。合成角速度ベクトル量は、[(ωψ)2+(ωθ)2]1/2より算出することができる。第1の合成角速度ベクトル量と第2の合成角速度ベクトル量との差が大きい場合は、姿勢の変化が大きいと判断される。MPU19は、その差が閾値以上と判定した場合、ステップ408、507と同様な処理を実行する。
このような入力装置1の処理についても、制御装置40が実行してもよい。
[ロール角φの変動の抑制]
次に、上記したように、ロール方向の入力装置1の傾きによる重力加速度成分の影響が除去された後、ユーザが実際に入力装置1を動かして操作する場合に発生するロール角φの変動を抑制する4つの実施の形態について説明する。
次に、上記したように、ロール方向の入力装置1の傾きによる重力加速度成分の影響が除去された後、ユーザが実際に入力装置1を動かして操作する場合に発生するロール角φの変動を抑制する4つの実施の形態について説明する。
図18は、そのうち1つの実施の形態に係る入力装置を示すブロック図である。入力装置101は、加速度センサユニット16により得られるX’軸方向及びY’軸方向のうち少なくとも一方の加速度信号が入力されるローパスフィルタ(LPF)102を備えている。このLPF102により、加速度信号のインパルス状の成分が除去される。
図19(A)は、LPF102を通過する前の、X’軸方向またはY’軸方向の加速度信号を示し、図19(B)はLPF102を通過後の加速度信号を示している。インパルス状の成分は、ユーザが入力装置101を動かしたときに検出される加速度信号である。図中のDCオフセット成分は、重力加速度による成分値であり、この部分はLPF102を通過する。
典型的には、上記インパルスの波形は十〜数十Hzであることから、LPF102は数Hzのカットオフ周波数を持つ。カットオフ周波数が低すぎると、位相遅れによるφの遅れが操作時の違和感としてユーザにより感じられるため、実用的な下限が規定されればよい。
このように、LPF102によりインパルス状の成分が除去されることで、ロール角φの算出時において、ユーザが入力装置101を動かすときに発生する加速度の影響を除去することができる。
ロール角φの変動を抑制する第2の実施の形態として、ロール角φの算出時において角加速度値が監視される方法が考えられる。図20は、その動作を示すフローチャートである。
ステップ601、602、603は、図14に示したステップ301、302、303と同様である。MPU19は、供給される角速度値(ωψ、ωθ)に基き、微分演算により角加速度値(Δωψ、Δωθ)を算出する(ステップ604)。
MPU19は、算出された両方向の角加速度値のうち例えば一方のヨー方向の角加速度値|Δωψ|が閾値Th3以上であるか否かを判定する(ステップ605)。それが閾値Th3以上である場合、MPU19は、所定の処理を停止する(ステップ609)。このように処理する理由は、次のような理由による。
ユーザが入力装置1を自然に操作するとき、入力装置1に角加速度が発生する。ロール角φは、上記式(1)により算出される。また、X軸またはY軸の回りの角速度値(Δωθ、Δωψ)は、後述する式(4)によって加速度値(ax、ay)に基いて算出される。ユーザが入力装置1を動かしたときに入力装置1に加速度が発生しても、それによるロール角φの算出誤差を許容範囲内に抑えるための所望の第1または第2の加速度値を、式(4)によって算出することができる。つまり、角加速度の閾値Th3が設定されることで、ロール角φの算出誤差を許容範囲内に抑えることができる。
以下、角加速度の閾値Th3について説明する。
例えば、ユーザが入力装置1を動かしたときに、入力装置1がピッチ方向にθ1=60deg傾いた状態にあっても、それによって発生する慣性力によって重力方向のMPU19の認識誤差の結果生じるロール角φの誤差を10deg以内に抑えたい場合の閾値Th3を考える。
入力装置1がピッチ方向に60deg傾いた状態では、
ay=1G・cos60°=0.5G
となる。したがって、φ=10degとして式(1)は、
10°=arctan(ax /0.5G)
となり、ax=0.09Gとなる。したがって、axが0.09Gとなるような最小の|Δωψ|を求めればよい。
ay=1G・cos60°=0.5G
となる。したがって、φ=10degとして式(1)は、
10°=arctan(ax /0.5G)
となり、ax=0.09Gとなる。したがって、axが0.09Gとなるような最小の|Δωψ|を求めればよい。
そこで、ユーザが腕を振るとき発生する加速度と角加速度の関係を考える。ユーザが入力装置1を振る半径が大きいほど、同一加速度ax当りの角加速度|Δωψ|は小さくなる。その半径が最大となるのは、肩を回転中心として腕全体を振る場合と仮定する。ここで、腕の長さをLarmとすると、Δωψは下記式(4)で表される。
|Δωψ|=ax /Larm・・・(4)。
|Δωψ|=ax /Larm・・・(4)。
一般的な例として、半径rの円において中心角θでなる円弧の長さlについて、l = rθであることから式(4)が成立する。
ax=0.09G=0.09×9.8(m/s)、Larm =0.8m(腕の長いユーザと仮定)を式(4)に代入すると、
Δωx=1.1rad/s2=63deg/s 2
となる。つまり、|Δωψ|>63°/s2なる角加速度が検出されたときに、MPU19は例えば所定の処理を停止する処理として、φの更新を停止することにより、ユーザが入力装置1をピッチ方向に最大60deg傾けたときにも、そのロール角φの算出誤差を10deg以下に抑えることが可能となる。ロール角φの算出誤差の設定範囲は、10deg以下に限られず、適宜設定可能である。
Δωx=1.1rad/s2=63deg/s 2
となる。つまり、|Δωψ|>63°/s2なる角加速度が検出されたときに、MPU19は例えば所定の処理を停止する処理として、φの更新を停止することにより、ユーザが入力装置1をピッチ方向に最大60deg傾けたときにも、そのロール角φの算出誤差を10deg以下に抑えることが可能となる。ロール角φの算出誤差の設定範囲は、10deg以下に限られず、適宜設定可能である。
ユーザが、肘を回転中心として、または、手首を回転中心として入力装置1を操作する場合には、この角加速度のときのaxはさらに小さな値となるので、慣性力の影響による重力方向の誤差角度は10°を下回る値であり、誤差の小さくなる方向となる。
ステップ606〜608、610〜613は、図14におけるステップ305〜307、309〜312と同様の処理である。
以上の説明では、ヨー方向の角速度について言及したが、ピッチ方向の角速度についても同様のことが言える。したがって、ステップ605の後に、|Δωθ|が閾値以上であるか否かが判定されるステップが加えられ、それが閾値以上であるときに、所定の処理が停止されてもよい。
ところで、ヨー方向及びピッチ方向の角速度のうち少なくとも一方が閾値以上である場合に、MPU19はロール角の算出を停止し、ステップ609、610の処理を行うようにしてもよい。ユーザがかなりの高速でポインタ2を動作させたとき(角速度が高速のとき)、例えば0.1〜0.2秒で画面3の端から端までポインタ2を動かすときは、所定の処理を実行しない方が人間の感覚として違和感が少ないことが実験で分かっている。このようにユーザが画面上でポインタの細かな動作をさせない粗動作時には、所定の処理が停止されることでユーザの直感に合致した動作が可能となる。例えば、角速度センサ151または152の出力値を−512〜+512に分割した場合、−200以下、+200以上のときは所定の処理が停止されるようにすればよい。しかし、この値に限られない。
ロール角φの変動を抑制する第3の実施の形態として、加速度センサユニット16により検出される加速度に閾値を設ける方法がある。例えば、MPU19は、検出されたX’軸方向及びY’軸方向の加速度値(ax、ay)のうち少なくとも一方が閾値以上となった場合、所定の処理を停止し、閾値未満となってから所定の処理を再開する。あるいは、加速度値が一定以上になると、単に検出電圧が飽和するのでそのときに自動的にφの更新が停止される、といった処理であってもよい。
図12における処理と同様の趣旨により、図20に示したステップ603〜610の処理、ステップ604〜610の処理、ステップ605〜610の処理、・・・、または、ステップ610の処理を、制御装置40が実行してもよい。
次に、ロール角φの変動を抑制する第4の実施の形態について説明する。図34は、その動作を示すフローチャートである。
入力装置1に電源が投入される。例えば、ユーザが入力装置1または制御装置40に設けられた電源スイッチ等を入れることにより、入力装置1に電源が投入される。電源が投入されると、角速度センサユニット15から2軸の角速度信号が出力される。MPU19は、この2軸の角速度信号による角速度値ω ψ 及びω θ を取得する(ステップ1101)。
また、入力装置1に電源が投入されると、加速度センサユニット16から2軸の加速度信号が出力される。MPU19は、この2軸の加速度信号による第1の加速度値ax及び第2の加速度値ayを取得する(ステップ1102)。この加速度値の信号は、電源が投入された時点での入力装置1の姿勢(以下、初期姿勢という)に対応する信号である。
なお、MPU19は、典型的にはステップ1101及び1102を同期して行う。しかし、MPU19は、ステップ1101を実行した後、ステップ1102を実行してもよいし、ステップ1102を実行した後、ステップ1101を実行してもよい。このことは、図10、12、14、20、22、43〜45、48、51、52及び54も同様である。
初期姿勢は、上記基本姿勢になることも考えられる。しかし、X軸方向に重力加速度のすべての量が検出される姿勢、すなわち第1の加速度センサ161の出力が重力加速度分の加速度値を検出し、第2の加速度センサ162の出力が0である場合もある。もちろん初期姿勢は、図9(B)に示したようにロール方向に傾いた姿勢であることも考えられる。
MPU19は、加速度値(ax、ay)及び角速度値(ωψ、ωθ)に基いて、積分演算により速度値(Vx、Vy)を算出する(ステップ1103)(算出手段)。算出された速度値は、後述するように角速度値が用いられて演算により求められるので、実質的に入力装置1の動きに合致した速度値が得られる。この速度値の算出についての詳細は後述する。
MPU19は、算出した速度値(Vx、Vy)を微分演算する(ステップ1104)。これにより、演算加速度値(axi、ayi)が求められる。微分演算は、例えば2つの速度値サンプルごとにその間の傾きが計算されればよい。
MPU19は、重力加速度の成分値(ax、ay)に基き、下記の式(1’)によりロール角φを算出する(ステップ1105)。
φ=arctan[(ax−axi)/(ay−ayi)]・・・(1’)。
なお、式(1’)における、加速度値(ax、ay)及び演算加速度値(axi、ayi)の各値は絶対値として計算される。
式(1’)が計算されるとき、速度値(Vx、Vy)が0であれば、φは、実質的に重力加速度の成分値(ax、ay)のみから算出されることになる。
速度値(Vx、Vy)が発生していると、ユーザが入力装置1を動かしているので、演算加速度値(axi、ayi)も発生する。この場合、式(1’)では、その入力装置1の動きによる演算加速度値、つまり正確な慣性加速度値が重力加速度の成分値から減算された上でロール角φが算出される。
MPU19は、算出したロール角φに応じた回転座標変換により、速度値(Vx、Vy)をそれぞれ補正し、補正値である補正速度値(第1及び第2の補正速度値(Vx’、Vy’))を得る(ステップ1106)。すなわち、MPU19は、図35に示す回転座標変換の式(5)を用いて、速度値(Vx、Vy)を補正し、これを出力する。MPU19は、送信機21により、補正速度値(Vx’、Vy’)の情報を制御装置40に送信する(ステップ1107)。
制御装置40のMPU35は、補正速度値(Vx’、Vy’)の情報を受信する(ステップ1108)。入力装置1は、所定のクロックごとに、つまり単位時間ごとに補正速度値(Vx’、Vy’)を送信するので、制御装置40は、これを受信し、単位時間ごとのX軸及びY軸方向の変位量を取得することができる。MPU35は、下の式(6)、(7)より、取得した単位時間当りのX軸及びY軸方向の変位量に応じた、ポインタ2の画面3上における座標値(X(t)、Y(t))を生成する(ステップ1109)。この座標値の生成により、MPU35は、ポインタ2が画面3上で移動するように表示を制御する(ステップ1110)(座標情報生成手段)。
X(t) =X(t-1)+Vx・・・(6)
Y(t) =Y(t-1)+Vy・・・(7)。
Y(t) =Y(t-1)+Vy・・・(7)。
本実施の形態では、重力加速度の成分値(ax、ay)から演算加速度値(axi、ayi)が減算された上でロール角φが算出される。つまり、実質的に重力加速度の成分値(ax、ay)のみに基いたロール角φが算出される。したがって、結果的に、入力装置の動きに合致した補正速度値(Vx’、Vy’)を得ることができ、ユーザは違和感を感じることなくポインタ2を動かすことができる。
また、本実施の形態では、2つの加速度センサ161及び162、2つの角速度センサ151及び152が用いられるので、3軸の加速度センサ及び3軸の角速度センサが用いられる場合に比べ、計算量を少なくすることができ、また、コストを低減することができる。
次に、ステップ1103における速度値(Vx、Vy)の算出方法について説明する。図36は、その入力装置1の動作を示すフローチャートである。図37は、この速度値の算出方法の基本的な考え方を説明するための図である。
図37では、入力装置1を例えば左右方向(ヨー方向)へ振って操作するユーザを上から見た図である。図37に示すように、ユーザが自然に入力装置1を操作する場合、手首の回転、肘の回転及び腕の付け根の回転のうち少なくとも1つによって操作する。したがって、入力装置1の動きと、この手首、肘及び腕の付け根の回転とを比較すると、以下に示す1.2.の関係があることが分かる。
1.入力装置1の加速度センサユニット16が配置された部分(以下、先端部)のY軸周りの角速度値ωψは、手首の回転による角速度、肘の回転による角速度、及び腕の付け根の回転による角速度の合成値である。
2.入力装置1の先端部のヨー方向の速度値Vxは、手首、肘、及び腕の付け根の角速度に、それぞれ、手首と先端部との距離、肘と先端部との距離、腕の付け根と先端部との距離を乗じた値の合成値である。
2.入力装置1の先端部のヨー方向の速度値Vxは、手首、肘、及び腕の付け根の角速度に、それぞれ、手首と先端部との距離、肘と先端部との距離、腕の付け根と先端部との距離を乗じた値の合成値である。
ここで、微小時間での入力装置1の回転運動について、入力装置1は、Y軸に平行であり、時間ごとに位置が変化する中心軸(第1の中心軸、または第2の中心軸)を中心に回転していると考えることができる。この時間ごとに位置が変化する中心軸と、入力装置1の先端部との距離を、Y軸周りの回転半径Rψ(t)(第1の回転半径、または第2の回転半径)とすると、入力装置1の先端部の速度値Vxと、角速度値ωψとの関係は、以下の式(8)で表される。すなわち、ヨー方向の速度値Vxは、Y軸周りの角速度値ωψに、中心軸と先端部との距離Rψ(t)を乗じた値となる。
なお、本実施の形態では、センサユニット17の回路基板25上に、加速度センサユニット16及び角速度センサユニット15が一体的に配置されている。したがって、回転半径R(t)は中心軸からセンサユニット17までの距離となる。しかし、加速度センサユニット16と角速度センサユニット15とが、筐体10内で離れて配置される場合には、上記したように、中心軸から加速度センサユニット16までの距離が回転半径R(t)となる。
Vx=Rψ(t)・ωψ・・・(8)。
式(8)に示すように、入力装置1の先端部の速度値と、角速度値との関係は、比例定数をR(t)とした比例関係、つまり、相関関係にある。
上記式(8)を変形して式(9)を得る。
Rψ(t)=Vx/ωψ・・・(9)。
Rψ(t)=Vx/ωψ・・・(9)。
式(9)の右辺は、速度のディメンジョンである。この式(9)の右辺に表されている速度値と角速度値とがそれぞれ微分され、加速度、あるいは加速度の時間変化率のディメンジョンとされても相関関係は失われない。同様に、速度値と角速度値とがそれぞれ積分され、変位のディメンジョンとされても相関関係は失われない。
したがって、式(9)の右辺に表されている速度及び角速度をそれぞれ変位、加速度、加速度の時間変化率のディメンジョンとして、以下の式(10)、(11)、(12)が得られる。
Rψ(t)=x/ψ・・・(10)
Rψ(t)=ax/Δωψ・・・(11)
Rψ(t)=Δax/Δ(Δωψ)・・・(12)。
Rψ(t)=ax/Δωψ・・・(11)
Rψ(t)=Δax/Δ(Δωψ)・・・(12)。
上記式(9)、(10)、(11)、(12)のうち、例えば式(11)に注目すると、加速度値axと、角加速度値Δωψが既知であれば、回転半径Rψ(t)が求められることが分かる。上述のように、第1の加速度センサ161は、ヨー方向の加速度値axを検出し、角速度センサ152は、Y軸の周りの角速度値ωψを検出する。したがって、Y軸周りの角速度値ωψが微分され、Y軸周りの角加速度値Δωψが算出されれば、Y軸周りの回転半径Rψ(t)が求められる。
Y軸周りの回転半径Rψ(t)が既知であれば、この回転半径Rψ(t)に、角速度センサ152によって検出されたY軸の周りの角速度値ωψを乗じることで、入力装置1のX軸方向の速度値Vxが求められる(式(8)参照)。すなわち、ユーザの回転の操作量そのものがX軸方向の線速度値に変換され、ユーザの直感に合致した速度値となる。したがって、ポインタ2の動きが入力装置1の動きに対して自然な動きとなるため、ユーザによる入力装置の操作性が向上する。
この速度値の算出方法については、ユーザが入力装置1を上下方向(ピッチ方向)へ振って操作する場合にも適用することができる。
図36では、式(11)が用いられる例について説明する。図36を参照して、入力装置1のMPU19は、ステップ1101で取得した角速度値(ωψ、ωθ)を微分演算することで、角加速度値(Δωψ、Δωθ)を算出する(ステップ1201)。
MPU19は、ステップ1102で取得した加速度値(ax、ay)と、角加速度値(Δωψ、Δωθ)とを用いて、式(11)、(13)により、それぞれY軸周り及びX軸周りの回転半径(Rψ(t)、Rθ(t))を算出する(ステップ1202)。
Rψ(t)=ax/Δωψ・・・(11)
Rθ(t)=ay/Δωθ・・・(13)。
Rψ(t)=ax/Δωψ・・・(11)
Rθ(t)=ay/Δωθ・・・(13)。
回転半径が算出されれば、式(8)、(14)により、速度値(Vx、Vy)が算出される(ステップ1203)。
Vx=Rψ(t)・ωψ・・・(8)
Vy=Rθ(t)・ωθ・・・(14)
このように、ユーザによる入力装置1の回転の操作量そのものがX軸及びY軸方向の線速度値に変換され、ユーザの直感に合致した速度値となる。
Vy=Rθ(t)・ωθ・・・(14)
このように、ユーザによる入力装置1の回転の操作量そのものがX軸及びY軸方向の線速度値に変換され、ユーザの直感に合致した速度値となる。
また、加速度センサユニット16で検出された加速度値(ax、ay)が、そのまま用いられることにより、計算量が少なくなり、入力装置1の消費電力を減らすことができる。
MPU19は、加速度センサユニット16から所定のクロックごとに(ax、ay)を取得し、例えば、それに同期するように速度値(Vx、Vy)を算出すればよい。あるいは、MPU19は、複数の加速度値(ax、ay)のサンプルごとに、速度値(Vx、Vy)を1回算出してもよい。このことは、図38、図39、図40においても同様である。
また、図34の処理において、MPU19は、その速度値(Vx、Vy)の算出に同期してロール角φを算出してもよいし、複数の速度値(Vx、Vy)の算出ごとにロール角φを1回算出してもよい。このことは、後に説明する図44、45、48、49〜51においても同様である。
次に、図36と同様に、回転半径を利用して速度値(Vx、Vy)を算出する他の実施形態について説明する。図38は、その入力装置1の動作を示すフローチャートである。図38では、上記式(12)が用いられる例について説明する。
図38を参照して、入力装置1のMPU19は、取得した加速度値(ax、ay)の微分演算を行う。これにより、加速度の時間変化率(Δax、Δay)が算出される(ステップ1401)。同様に、MPU19は、取得した角速度値(ωψ、ωθ)の2階の微分演算を行うことで、角加速度の時間変化率(Δ(Δωψ )、Δ(Δωθ))を算出する(ステップ1402)。
角加速度の時間変化率が算出されると、MPU19は、Y軸周りの角加速度の時間変化率の絶対値|Δ(Δω ψ )|が、閾値th1を超えるか否かを判定する(ステップ1403)。上記|Δ(Δω ψ )|が閾値th1を超える場合には、MPU19は、X軸方向の加速度の時間変化率Δaxを、Y軸周りの角加速度の時間変化率Δ(Δω ψ )で除することで、Y軸周りの回転半径Rψ(t)を算出する(ステップ1404)。すなわち、X軸方向の加速度の時間変化率Δaxと、Y軸周りの角加速度の時間変化率Δ(Δω ψ )との比を回転半径Rψ(t)として算出する(式(12))。|Δ(Δω ψ )|の閾値th1は適宜設定可能である。
この回転半径Rψ(t)の信号は、例えばローパスフィルタに通される(ステップ1405)。ローパスフィルタで高周波数域のノイズが除去された回転半径Rψ(t)の情報はメモリに記憶される(ステップ1406)。このメモリには、回転半径Rψ(t)の信号が所定のクロックごとに更新して記憶される。
入力装置1のMPU19は、この回転半径Rψ(t)に、Y軸周りの角速度値ω ψ を乗じることで、X軸方向の速度値Vxを算出する(ステップ1408)。
一方で、MPU19は、上記|Δ(Δω ψ )|が、閾値th1以下である場合には、メモリに記憶された回転半径Rψ(t)を読み出す(ステップ1407)。この読み出された回転半径Rψ(t)に、Y軸周りの角速度値ω ψ を乗じることで、X軸方向の速度値Vxを算出する(ステップ1408)。
上記ステップ1401〜1408の処理が行われる理由として、以下の2つの理由がある。
1つは、上記式(12)の回転半径Rψ(t)を求めて、ユーザの直感に合致した線速度を求めるためである。
2つ目は、この速度値(Vx、Vy)が算出される過程においても、上記したような重力の影響を除去するためである。入力装置1が基本姿勢から、ロール方向またはピッチ方向に傾いた場合、重力の影響によって、入力装置1の実際の動きとは違った検出信号を出力してしまう。例えば入力装置1がピッチ方向に傾いた場合、加速度センサ162からそれぞれ重力加速度の成分値が出力される。したがって、この重力加速度の各成分値の影響を除去しない場合には、ポインタ2の動きがユーザの感覚にそぐわない動きとなってしまう。
図39は、入力装置1がピッチ方向に振られたときにおける重力加速度の影響を説明するための図であり、入力装置1をX軸方向で見た図である。なお、ロール方向における重力加速度の影響については、図9で既に説明した。
例えば、図39(A)に示すような入力装置1の基本姿勢の状態から、図39(B)に示すような、入力装置1がピッチ方向で回転して傾いたとき、入力装置1が基本姿勢にあるときの第2の加速度センサ162が検出する重力加速度Gが減少する。図39(C)に示すように、入力装置1は、上のピッチ方向の慣性力Iと区別が付かない。
そこで、ユーザの操作による入力装置1の移動時の慣性成分、すなわち慣性加速度に着目した加速度値の時間変化率に比べ、その入力装置1の動きにより発生する重力加速度の成分値の時間変化率の方が小さいことを利用する。その重力加速度の成分値の時間変化率は、ユーザの操作による慣性加速度成分値の時間変化率の1/10のオーダーである。加速度センサユニット16から出力される値は、その両者が合成された値である、すなわち、加速度センサユニット16から出力される信号は、ユーザの操作による慣性加速度成分値の時間変化率に、重力加速度の成分値である低周波成分値が重畳された信号となる。
したがって、ステップ1401では、加速度値が微分演算されることで、加速度の時間変化率が求められ、これにより、重力加速度の成分値の時間変化率が除去される。これにより、入力装置1の傾きによる重力加速度の分力の変化が生じる場合であっても、適切に回転半径を求めることができ、この回転半径から適切な速度値を算出することができる。
なお、上記低周波成分値には、重力加速度の成分値のほか、例えば加速度センサユニット16の温度ドリフト、あるいは、DCオフセット値が含まれる場合もある。
また、本実施の形態では、式(12)が用いられるので、ステップ1402では、角速度値ω ψ が2階微分され、高周波数域のノイズがその角速度の演算値に乗ってしまう。この|Δ(Δω ψ )|が大きい場合問題ないが、小さい場合S/Nが悪化する。S/Nの悪化した|Δ(Δω ψ )|が、ステップ1408でのRψ(t)の算出に用いられると、Rψ(t)や速度値Vxの精度が劣化する。
そこで、ステップ1403では、ステップ1402で算出されたY軸周りの角加速度の時間変化率Δ(Δω ψ )が利用される。|Δ(Δω ψ )|が閾値th1以下の場合、以前にメモリに記憶されたノイズの少ない回転半径Rψ(t)が読み出され(ステップ1407)、読み出された回転半径Rψ(t)がステップ1408における速度値Vxの算出に用いられる。
ステップ1409〜1414では、以上のステップ1403〜1408までの処理と同様に、MPU19は、Y軸方向の速度値Vyを算出する。つまり、MPU19は、X軸周りの角加速度の時間変化率の絶対値|Δ(Δωθ)|が、閾値th1を超えるか否かを判定し(ステップ1409)、閾値th1を超える場合には、この角加速度の時間変化率を用いてX軸周りの回転半径Rθ(t)を算出する(ステップ1410)。
回転半径Rθ(t)の信号は、ローパスフィルタに通され(ステップ1411)、メモリに記憶される(ステップ1412)。閾値th1以下である場合には、メモリに記憶された回転半径Rθ(t)が読み出され(ステップ1413)、この回転半径Rθ(t)に基いてY軸方向の速度値Vyが算出される(ステップ1414)。
なお、本実施の形態では、ヨー方向及びピッチ方向の両方向について閾値を同じ値th1としたが、両方向で異なる閾値が用いられてもよい。
ステップ1403において、Δ(Δω ψ )に代えて、角加速度値(Δω ψ )が閾値に基き判定されてもよい。ステップ1409についても同様に、Δ(Δω θ )に代えて、角加速度値(Δω θ )が閾値に基き判定されてもよい。図38に示したフローチャートでは、回転半径R(t)を算出するために式(12)が用いられたが、式(11)が用いられる場合、角加速度値(Δωψ、Δωθ)が算出されるので、角加速度値(Δωψ、Δωθ)が閾値に基き判定されてもよい。
次に、ステップ1404または1410で説明した回転半径(Rθ(t)、Rψ(t))の算出方法についての他の実施の形態を説明する。図40は、そのときの入力装置1の動作を示すフローチャートである。
本実施形態では、回帰直線の傾きを利用して、回転半径を算出する。上述のように、回転半径は、加速度変化率と角加速度変化率との比である。本実施形態は、この加速度変化率と角加速度変化率との比を算出するために、回帰直線の傾きを利用する。
MPU19は、加速度値(ax、ay)及び角速度値(ωψ、ωθ)をそれぞれ、1階微分、2階微分し、加速度変化率(Δax、Δay)及び角加速度変化率(Δ(Δωψ )、Δ(Δωθ))を算出する(ステップ1501、1502)。この加速度変化率(Δax、Δay)、及び角加速度変化率(Δ(Δωψ )、Δ(Δωθ))のn回分の履歴が、例えばメモリに記憶され、以下の式(15)、(16)により、回帰直線の傾き(A1、A2)が算出される(ステップ1503)。この回帰直線の傾きは、加速度変化率と角加速度変化率との比、つまり、回転半径(Rθ(t)、Rψ(t))である。なお、参考として、回帰直線の切片(B1、B2)の算出方法を式(17)、(18)に示す。
A1=Rθ(t)=[{Σ(Δ(Δωψj))2・Σ(Δayj)2}−{ΣΔ(Δωψj)・ΣΔ(Δωψj)・Δayj}]/[n・Σ(Δ(Δωψj))2−{ΣΔ(Δωψj)}2]・・・(15)
A2=Rψ(t)=[{Σ(Δ(Δω θj))2・Σ(Δaxj)2}−{ΣΔ(Δωθj)・ΣΔ(Δωθj)・Δaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(16)
B1=[{n・ΣΔ(Δωψj)・Δayj}−{ΣΔ(Δωψj)・ΣΔayj}]/[n・Σ(Δ(Δωψj))2−{ΣΔ(Δωψj)}2]・・・(17)
B2=[{n・ΣΔ(Δωθj)・Δaxj}−{ΣΔ(Δωθj)・ΣΔaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(18)。
A2=Rψ(t)=[{Σ(Δ(Δω θj))2・Σ(Δaxj)2}−{ΣΔ(Δωθj)・ΣΔ(Δωθj)・Δaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(16)
B1=[{n・ΣΔ(Δωψj)・Δayj}−{ΣΔ(Δωψj)・ΣΔayj}]/[n・Σ(Δ(Δωψj))2−{ΣΔ(Δωψj)}2]・・・(17)
B2=[{n・ΣΔ(Δωθj)・Δaxj}−{ΣΔ(Δωθj)・ΣΔaxj}]/[n・Σ(Δ(Δωθj))2−{ΣΔ(Δωθj)}2]・・・(18)。
上記式(15)〜(18)中のnは、加速度値(Δax、Δay)、及び角加速度変化率(Δ(Δωψ )、Δ(Δωθ))のサンプリング数を示す。このサンプリング数nは、演算誤差が最小となるように適宜設定される。
回転半径が算出されると、図38のステップ1408及び1414と同様に、回転半径に基づいて速度値が算出される(ステップ1504)。
なお、回転半径の信号、または速度値の信号がローパスフィルタにかけられることで、高周波数のノイズによる影響を軽減してもよい。
図39に示した実施の形態では、回帰直線の傾きを回転半径として算出することで、より正確な回転半径及び速度値(Vx、Vy)を算出することができる。したがって、画面3上に表示されるポインタ2の動きを、ユーザの直感に合致した自然な動きとすることができる。
以上の説明では、加速度変化率及び角加速度変化率のディメンジョンでの回帰直線の傾きの算出方法について説明した。しかし、これに限られず、変位及び角度、速度及び角速度、または、加速度及び角加速度のディメンジョンで、回帰直線の傾きが算出されてもよい。
次に、図34のステップ1103の速度値(Vx、Vy)の算出方法の他の実施の形態について説明する。図41は、そのときの入力装置1の動作を示すフローチャートである。
MPU19は、センサユニット17から加速度値(ax、ay)及び角速度値(ωψ、ωθ)をそれぞれ取得すると、重力の影響を除去するために、次のような演算を行う。すなわちMPU19は、下記の式(19)、(20)のように、今回の加速度値ax、ayから、前回のそれぞれX軸及びY軸方向で検出された重力加速度成分(1回目のax(=arefx)、ay(=arefy))を差し引き、それぞれ第1の補正加速度値acorx、第2の補正加速度値acoryを生成する(ステップ1601)。
acorx =ax−arefx・・・(19)
acory =ay−arefy・・・(20)。
acory =ay−arefy・・・(20)。
arefx、arefyを、以降、それぞれX軸及びY軸の基準加速度値(第1の基準加速度値、第2の基準加速度値)という。電源が投入されてから最初にステップ1601の計算をするとき、arefx、arefyは電源投入直後に検出された加速度信号ax、ayとなる。
MPU19は、式(21)、(22)に示すように、第1、第2の補正加速度値acorx、acoryを加算していく、つまり積分演算により、それぞれ第1の速度値Vx、第2の速度値Vyを算出する(ステップ1615)。
Vx(t) =Vx(t-1)+acorx・・・(21)
Vy(t) =Vy(t-1)+acory・・・(22)
Vx(t)、Vy(t)は今回の速度値を表し、Vx(t-1)、Vy(t-1)は前回の速度値を表している。
Vy(t) =Vy(t-1)+acory・・・(22)
Vx(t)、Vy(t)は今回の速度値を表し、Vx(t-1)、Vy(t-1)は前回の速度値を表している。
一方、MPU19は、取得した角速度値(ωψ、ωθ)を微分演算し、それぞれの角加速度値(Δωψ、Δωθ)を算出する(ステップ1602)。
MPU19は、上記Δωψ、Δωθの絶対値|Δω ψ |、|Δω θ |がそれぞれ閾値th2より小さいか否かを判定する(ステップ1603、ステップ1606)。|Δωψ|≧th2の場合、MPU19は、第1の基準加速度値arefxをそのまま用い、これを更新しない(ステップ1604)。同様に、|Δωθ|≧th2の場合、MPU19は、第2の基準加速度値arefyをそのまま用い、これを更新しない(ステップ1607)。
閾値th2は、0に近い値が設定される。閾値th2は、ユーザが意識的に入力装置1を静止させているにも関わらず、DCオフセット等により検出されてしまう角速度値が考慮される。こうすることで、ユーザが意識的に入力装置1を静止させた場合に、DCオフセットによりポインタ2が動いて表示されてしまうことを防止できる。
以上のように処理するのは以下の理由による。
図37に示したように、ユーザが自然に入力装置1を操作する場合、腕の付け根の回転、肘の回転及び手首の回転のうち少なくとも1つによって操作する。したがって、加速度が発生すれば、角加速度も発生すると考える。すなわち、加速度は、その加速度の方向と同じ方向の角加速度に従属するものとみなすことができる。したがって、MPU19は、角加速度値|Δωψ|を監視することで、それと同じ方向である第1の基準加速度値arefxを更新するか否かを判定し、式(19)から結果的に第1の補正加速度値acorxを校正するか否かを判定することができる。角加速度値|Δωθ|についても同様である。
さらに詳しく説明すると、角加速度値|Δωψ|が閾値th2以上であるときは、MPU19は、入力装置1がヨー方向に動いていると判定する。この場合、MPU19は、第1の基準加速度値arefxを更新せず、結果的に、第1の補正加速度値acorxを校正せず、そのacorxに基き、式(21)の積分演算を続ける。
また、角加速度値|Δωθ|が閾値th2以上であるときは、MPU19は、入力装置1がピッチ方向に動いていると判定する。この場合、MPU19は、第2の基準加速度値arefyを更新せず、結果的に、第2の補正加速度値acoryを校正せず、そのacoryに基き、式(22)の積分演算を続ける。
一方、ステップ1603において、角加速度値|Δωψ|が閾値th2より小さいときは、MPU19は、入力装置1がヨー方向では静止していると判定する。この場合、MPU19は、基準加速度値arefxを今回の(最新の)検出値axに更新することで、式(19)により、第1の補正加速度値acorxを校正する(ステップ1605)。最新の検出値axとは、つまり、入力装置1がほぼ静止している状態での検出値であるので、これは重力加速度による成分値となる。
同様に、ステップ1606において、角加速度値|Δωθ|が閾値th2より小さいときは、MPU19は、入力装置1がピッチ方向では静止していると判定する。この場合、MPU19は、第2の基準加速度値arefyを今回の(最新の)検出値ayに更新することで、式(20)により、第2の補正加速度値acoryを校正する(ステップ1608)。
なお、本実施の形態では、ヨー方向及びピッチ方向の両方向について閾値を同じ値th2としたが、両方向で異なる閾値が用いられてもよい。
上記では、角加速度値Δωψ、Δωθが監視されたが、さらにMPU19は、角速度値ωψ、ωθを監視することで、式(21)、(22)で算出された速度値を補正することも可能である。図37の考え方により、速度が発生すれば、角速度も発生すると考え、速度は、その速度の方向と同じ方向の角速度に従属するものとみなすことができる。
詳しくは、角速度値ωψの絶対値|ωψ|が閾値th3以上であるときは(ステップ1609のNO)、MPU19は、入力装置1がヨー方向に動いていると判定する。この場合、MPU19は、第1の速度値Vxを補正しない(ステップ1610)。角速度値ωθの絶対値|ωθ|についても同様である(ステップ1612のNO、ステップ1613)。
閾値th3も、上記閾値th2の設定と同様な趣旨で設定されればよい。
一方、|ωψ|が閾値th3より小さいときは(ステップ1609のYES)、MPU19は、入力装置1がヨー方向では静止していると判定する。この場合、MPU19は、第1の速度値Vxを補正し、例えばゼロにリセットされる(ステップ1611)。|ωθ|についても同様である(ステップ1612のYES、ステップ1614)。
以上のように、入力装置1がほぼ静止したときには基準加速度値arefx、arefyが更新され、補正加速度値acorx、acoryが校正されるので、加速度センサユニット16への重力の影響を抑えることができる。また、基準加速度値arefx、arefyが更新されると、式(19)、(20)より補正加速度値acorx、acoryが補正されるため、DCレベルも補正され、DCオフセットの問題も解決される。さらに、入力装置1がほぼ静止したときには速度値もゼロリセットされるように補正されるので、積分誤差も抑えることができる。積分誤差が発生すると、ユーザが入力装置1の移動を停止させたにも関わらず、ポインタ2が画面3上で動く現象が起こる。
このように、図34のステップ1103において速度値(Vx、Vy)が算出される過程においても、重力加速度の影響が除去されることにより、より正確な速度値が算出される。
また、本実施の形態では、第1の基準加速度値arefx及び第2の基準加速度値arefyの更新が個別に行われることにより、例えばヨー及びピッチ方向のうち一方の角加速度値のみが閾値より小さくなれば、その校正が行われることになる。したがって、実用的に十分短い時間間隔で、第1の基準加速度値arefxまたは第2の基準加速度値arefyを更新することができる。第1の速度値Vx及び第2の速度値Vyの補正が個別に行われることについても同様のことが言える。図42は、このことをわかりやすく説明するための図である。
図42では、X軸及びY軸の平面で見た入力装置1の軌跡を示している。ヨー方向での角速度値ωψがほぼゼロ(閾値th3より小さい)であれば、Vxがゼロリセットされる。ピッチ方向での角速度値ωθがほぼゼロ(閾値th3より小さい)であれば、V y がゼロリセットされる。
これまでは、入力装置1が主要な演算を行って速度値(Vx、Vy)を算出していた。図43に示す実施の形態では、制御装置40が主要な演算を行う。この図43に示す動作は、図34に対応する。
入力装置1が、例えばセンサユニット17から出力された2軸の加速度値及び2軸の角速度値を入力情報として制御装置40に送信する(ステップ1703)。制御装置40のMPU35は、この入力情報を受信し(ステップ1704)、ステップ1103〜1106、1109、1110と同様の処理行う(ステップ1705〜1710)。ステップ1705における速度値の算出方法は、図36〜図42で説明した方法が用いられてもよい。
入力装置1がステップ1705(または、1706、1707、1708、または1709)までの処理を実行し、制御装置40がステップ1706(または、1707、1708、1709、または1710)以降の処理を実行してもよい。
次に、入力装置1のロール方向の傾きによる重力加速度の影響の除去、及び、慣性加速度成分の除去の動作についての他の実施の形態(図34に示した動作の他の実施の形態)について説明する。図44は、その動作を示すフローチャートである。
ステップ1301〜1304は、ステップ1101〜1104と同様の処理である。
ステップ1305では、MPU19は、ステップ1304で算出した演算加速度値(axi、ayi)の絶対値| axi|及び|ayi|のうち少なくとも一方が閾値th4を超えるか否かを判定する(判定手段)。これは、演算加速度値(|axi|、|ayi|)が大きすぎる場合、式(1’)によるロール角φの算出の誤差が大きくなる場合があるからである。
この閾値th4は適宜設定され、例えば重力加速度以下の値に設定されるが、これに限られない。
ステップ1305では、絶対値|axi|及び|ayi|に基き算出される演算値が閾値を超えるか否かが判定されてもよい。|axi|及び|ayi|の演算値とは、例えば合成ベクトル量[(ax)2+(ay)2]1/2である。あるいは、演算値とは、|axi|及び|ayi|の加算値または平均値等でもよい。
MPU19は、絶対値|axi|及び|ayi|の両方、または、その演算値が閾値以下である場合、計算の誤差は生じないとみなし、式(1’)によりロール角φを算出する(ステップ1306)。
MPU19は、算出したロール角φをメモリに順次記憶しておく。MPU19は、上記のように所定の時間間隔でロール角φを算出するので、典型的には、これを随時更新してメモリに記憶する(更新手段)(ステップ1307)。
一方、絶対値|axi|及び|ayi|のうち少なくとも一方が閾値を超える場合、MPU19は、例えばメモリへのロール角φの記憶の更新を停止する。すなわちこの場合、MPU19は、メモリに記憶された前回のロール角φを読み出す(ステップ1308)。MPU19は、読み出したロール角φに応じた回転座標変換(図35の式(5))により、速度値(Vx、Vy)を補正し、補正速度値(Vx’、Vy’)を出力する(ステップ1309)。
MPU19は、前回のロール角φを読み出す代わりに、次のような処理を実行してもよい。例えばMPU19は、算出された速度値(Vx、Vy)を随時更新してメモリに記憶しておく。MPU19は、絶対値|axi|及び|ayi|のうち少なくとも一方が閾値を超える場合に、その速度値の更新を停止、前回の更新されて記憶された速度値を出力してもよい。あるいは、MPU19は、ステップ1308の代わりに、図14のステップ308に示したように、所定の処理を停止してもよい。
ステップ1310〜1313は、図34におけるステップ1107〜1110と同様の処理である。
以上のように、図44に示す処理では、演算加速度値が閾値th4より大きい場合であっても、演算加速度値が正常な範囲で計算された前回のロール角φが用いられるので、速度値が正確に算出される。
図43に示した処理の趣旨と同様に、図44に示したステップ1303〜1309、1312、1313の処理を制御装置40が実行してもよい。あるいは、制御装置40がステップ1304(または、1305、1306、・・・、または1309)以降の処理を実行してもよい。
図44の処理では、演算加速度値(axi、ayi)が閾値判定の対象とされた。しかし、加速度センサユニット16で検出された加速度値(ax、ay)が閾値判定の対象とされてもよい。その場合、加速度値(ax、ay)が閾値判定された後、ステップ1306以降の処理と同様である。あるいは、検出された加速度値(ax、ay)が一定以上になると、単に検出電圧が飽和するのでそのときに自動的にロール角φの記憶の更新が停止される、といった処理であってもよい。
あるいは、閾値判定の対象は、演算加速度値(axi、ayi)、または加速度値(ax、ay)に限られない。例えば角速度センサユニット15により検出された角速度値(ωψ、ωθ)、その微分演算により算出された角加速度値(Δωψ、Δωθ)、または、ステップ1103で算出された速度値(Vx、Vy)が閾値判定の対象として用いられてもよい。これら、演算加速度値、加速度値、角速度値、角加速度値、または速度値のそれぞれの閾値判定は、入力装置1の動きが速すぎる(加速度が大きすぎる)ことによるロール角φの演算誤差を抑えることを趣旨として実行される。
これに対し、加速度値(図48〜図50参照)、角速度値(図50参照)、角加速度値(図51参照)が閾値判定される実施の形態について後に説明するが、これらの実施の形態で実行される閾値判定は、図34の処理の閾値判定の趣旨とは異なる趣旨で実行される。
次に、上記したようにロール角φの演算により慣性加速度成分を除去した後に、さらに残余の慣性加速度成分を除去する実施の形態について説明する。図45は、その処理の動作を示すフローチャートである。
本実施の形態では、入力装置1は、ステップ1905で算出されるロール角φの式(1’)の演算加速度値(axi、ayi)に含まれる、残余の慣性加速度成分値の少なくとも一方の信号が入力される図示しないローパスフィルタ(LPF)の機能を備えている。このLPFは、典型的にはMPU19が持つ機能である。このLPFにより、加速度信号のインパルス状の成分が除去され、結果としてロール角φの信号に含まれる残余の慣性加速度成分が除去される。このようにLPFによる処理の趣旨は、図18及び図19の箇所で説明した処理の趣旨と同様である。
ステップ1901〜1905は、ステップ1101〜1105と同様の処理である。ステップ1906において、MPU19は、ロール角φのデータに含まれる、上記加速度成分信号のインパルス状の成分を除去する。その後の処理は、ステップ1106〜1110と同様の処理である。
図43に示した処理の趣旨と同様に、図45に示したステップ1903〜1909、1912、1913の処理を制御装置40が実行してもよい。あるいは、制御装置40がステップ1904(または、1905、1906、または1907)以降の処理を実行してもよい。
図46(A)は、慣性加速度成分の補償が行われずに(演算加速度値(axi、ayi)が減じられずに)ロール角φが補正された場合の、ポインタ2の実際の軌跡を示した図である。すなわち、図46(A)は、上記式(1)によりロール角φが補正された場合を示す。
図46(A)では、本発明者が入力装置1を水平方向に直線状に動かしたにもかかわらず、ポインタ2の軌跡は、上に凸となる弧状の軌跡となる。このような軌跡になる理由を説明する。図47はその説明のための図である。
図47に示すように、ポインタ2が動き始めたとき及び停止するときに、例えば入力装置1にX軸の+方向に慣性力Iが働く。この場合、式(1)によりロール角φが補正される結果、入力装置は、入力装置の重力Gとその慣性力Iとの合成ベクトルCを、真の重力として誤認識する。その結果、例えばポインタ2の始点において、実際にはX軸に沿って水平に入力装置が動くにもかかわらず、斜め上方向に動いているものと誤検出するからである。
図46(B)は、ロール角φが補正された場合の、ポインタ2の実際の軌跡を示した図である。図46(B)では、上記した図44のステップ1305による閾値判定と、図45のステップ1906によるLPFを用いる例との組み合わせの処理が行われた。図から分かるように、ポインタ2の軌跡は、入力装置1の水平の動きに合致している。
図48は、加速度センサユニット16の検出面が垂直面から傾いて入力装置1がユーザにより操作される場合の、制御システム40の動作を示すフローチャートである。
図48を参照して、ステップ1801〜1804は、ステップ1101〜1104と同様の処理である。
ステップ1805では、MPU19は、重力加速度成分値(ax、ay)に基き、合成加速度ベクトル量|a|を算出する。合成加速度ベクトル量|a|は、[(ax)2+(ay)2]1/2より算出することができる。MPU19は、算出した合成加速度ベクトル量|a|が閾値th5以下であるかを判定し(ステップ1806)、|a|が閾値th5を超える場合、ロール角φを算出する(ステップ1807)。算出されたロール角φは、メモリに記憶され更新される(ステップ1808)。
垂直面からの検出面の傾きが大きい場合、すなわち、例えばピッチ角θが大きい場合、重力加速度成分値(ax、ay)が小さくなり、ロール角φの算出結果の精度が落ちる。したがって、本実施形態では、重力加速度成分値(ax、ay)に基き算出されるロール角φがノイズに埋もれるほど、ピッチ角θが大きくなる場合には、正確なロール角φの算出は困難となる。したがって、|a|が閾値th5以下である場合、MPU19は、メモリへのロール角φの記憶の更新を停止する(ステップ1809)。この場合、MPU19は、式(1)により、前回に更新されたロール角φに応じた回転座標変換により速度値(Vx、Vy)を補正し、補正速度値(Vx’、Vy’)を得る(ステップ1810)。あるいは、MPU19は、前回の更新された補正速度値(Vx’、Vy’)を出力してもよい。
あるいは、MPU19は、ステップ1809の代わりに、図14のステップ308に示したように、所定の処理を停止してもよい。このことは、図51についても同様である。
図48の処理では、合成加速度ベクトル量が閾値判定の対象とされたが、これに限られない。例えば、加速度値|ax|と|ay|とが比較され(比較手段)、その比較の結果、それらの値のうち小さい方の値が閾値以下である場合、メモリへのロール角φの記憶の更新が停止されるようにしてもよい。
あるいは、重力加速度成分値(ax、ay)に基く演算値が閾値以下である場合、メモリへのロール角φの記憶の更新が停止されるようにしてもよい。演算値とは、例えば、(ax)2+(ay)2、|ax|+|ay|、その他の加減乗除、これらの組み合わせ、あるいは他の演算式により算出される値が挙げられる。
上記閾値th5は、ノイズ等を考慮して適宜設定されればよい。
本実施の形態によれば、ピッチ角θが大きい場合であっても、MPU19はロール角φの更新を停止するので、正確なロール角φを算出することができる。
図43に示した処理の趣旨と同様に、図48に示したステップ1803〜1810、1813、1814の処理を制御装置40が実行してもよい。
次に、図48に示した処理の他の実施形態について説明する。図52は、その場合の制御システムの動作を示すフローチャートである。図53(A)は、図52に示す処理を実現するための入力装置の構成を示す模式図である。
図53(A)に示すように、入力装置91は、上記したセンサユニット17のほか、第3の加速度センサ163を備えている。第3の加速度センサ163は、典型的には第1及び第2の加速度センサ161及び162のそれぞれの検出軸であるX’及びY’軸と実質的に直交するZ’軸に沿う方向の加速度(第3の加速度)を検出する。つまり、入力装置91は、3軸での加速度をそれぞれ検出することができる。
図53(A)では、第3の加速度センサ163は、回路基板25とは、別の基板26に搭載されているが、回路基板25と一体的に形成された基板に搭載されていてもよい。あるいは、第3の加速度センサ163は、メイン基板18(図3参照)に搭載されていてもよい。
図52を参照して、ステップ2302では、MPU19は、加速度センサユニット16及び第3の加速度センサ163から3軸の加速度値(ax、ay、az)を取得する。ステップ2303、2304は、ステップ1803、1804と同様の処理である。
例えば、入力装置91が、図53(A)に示すような基本姿勢の状態にあるとき、加速度値|az|は実質的にゼロとなる。しかし、例えば入力装置91が、基本姿勢にある状態からピッチ方向(またはピッチ方向を含む方向)で回転すると、加速度値|az|が発生し、その傾きが大きくなるにしたがって、|az|も大きくなる。入力装置91が、ピッチ方向に回転する場合であって、重力成分値のみに着目する場合の加速度値|az|は、図53(B)に示すように、G・sinθ’(θ’=90°−θ)となり、最大1Gとなる。
ステップ2305において、上記取得した加速度値|az|が閾値th8より小さい場合、ステップ2306、2307、2309〜2313の処理が実行される。ステップ2306、2307、2309〜2313は、図48のステップ1807、1808、1810〜1814と同様の処理である。
一方、ステップ2305において、加速度値|az|が閾値th8以上である場合、つまり、垂直面(X−Y平面)からの検出面の傾きθが比較的大きい場合、センサユニット17の重力加速度成分値(ax、ay)が小さくなり、ロール角φの算出結果の精度が落ちる。したがって、この場合、メモリへのロール角φの記憶の更新が停止される(ステップ2308)。
このように、加速度値|az|が十分に大きな値となる範囲に閾値th8を設定することができる。これにより、加速度値|az|に対して相対的に低いノイズレベルが発生する状態で、つまり、高いS/Nが得られる状態で閾値判定されるので、その判定の精度を高めることができる。
ここで、図15で説明したように、図48に示したステップ1809でロール角φの更新が停止される直前から、次にその更新が再開されるまでの間に、例えばY’軸方向で検出される第2の加速度値ayの正負が変わる場合がある。
図15に示すように、重力加速度ベクトルGY’の加速度値ayの符号が変わると、そのままではロール角φの計算にもエラーが発生する。図49は、このような現象を回避するための、入力装置1の処理の動作を示すフローチャートである。
図49を参照して、MPU19は、ステップ1806(図48参照)の条件下でロール角φの更新を停止する(ステップ2001)。すると、MPU19は前回に更新されたロール角φに応じた回転座標変換により速度値(Vx、Vy)を補正することで、補正速度値(Vx’、Vy’)を取得し、これを出力する(ステップ2002)。あるいは、MPU19は前回に更新された補正速度値を出力してもよい。
合成加速度ベクトル量|a|が閾値th5を超えた場合(ステップ2003のNO)、MPU19は、取得する重力加速度値(ax、ay)に基きロール角φを算出する(ステップ2004)。
MPU19は、ロール角φの更新を停止したときのロール角、すなわち停止する直前に算出したロール角φ1(第1のロール角)と、更新の再開直後の(ステップ2004で算出された)ロール角φ2(第2のロール角)との差を算出する(ステップ2005)。MPU19は、その差|Δφ|が閾値th6以上であった場合(ステップ2006のYES)、最新のロール角である上記第2のロール角φ2に180degを加える。180degが減じられてもよい。(角度差判定手段)。
MPU19は、第2のロール角φ2に180degを加えられた第3のロール角φ3に応じた回転座標変換に補正速度値(Vx’、Vy’)を算出し、これを出力する(ステップ2008)。このようにして、本実施の形態では、入力装置1による該入力装置1の姿勢の認識精度が向上し、適切な方向にポインタ2が動くような表示が可能となる。
閾値th6は、例えば60deg(=±30deg)〜90deg(=±45deg)等に設定することができる。しかし、これらの範囲に限られない。
図43に示した処理の趣旨と同様に、図49に示した処理を制御装置40が実行してもよい。
図50は、図49に示した処理についての他の形態に係る動作を示すフローチャートである。
ステップ2101〜2104は、図49のステップ2001〜2004と同様の処理である。MPU19は、ロール角φの更新停止直前のピッチ方向の角速度ωθの方向と、更新開始直後のピッチ方向での角速度ωθの方向とが同じ方向であるか否かを判定する(ステップ2105)(角速度方向判定手段)。つまりωθのベクトルの正負が、ロール角φの更新停止前及び開始後で一致しているか否かが判定される。ピッチ方向に代えて、あるいは、ピッチ方向に加えて、ヨー方向の角速度ωψの正負が一致しているか否かが判定されてもよい。
ステップ2105においてYESの場合、ピッチ方向での角速度の方向が連続しているので、図15(A)、(B)に示すようにGY’の向きが変わっていると判断することができる。この場合、MPU19は、第2のロール角φ2に180degを加えられた第3のロール角φ3に応じた回転座標変換により補正速度値(Vx’、Vy’)を算出し、これを出力する(ステップ2107)。
このように、ピッチ方向の角速度ωθ(またはヨー方向の角速度ωψ)の連続性が確認さえることで、入力装置1による該入力装置1の姿勢の認識精度がさらに向上する。
図19に示した処理の趣旨と同様に、図50に示した処理を制御装置40が実行してもよい。
図49及び図50の処理のさらに別の実施の形態として、次のような例が挙げられる。例えば、ロール角φの更新が停止されたときの第1及び第2の角速度の合成角速度ベクトル量(第1の合成角速度ベクトル量)と、ロール角の更新が再開されたときの当該合成角速度ベクトル量(第2の合成角速度ベクトル量)との差が閾値以上であるか否かが判定される(角速度ベクトル判定手段)。合成角速度ベクトル量は、[(ωψ)2+(ωθ)2]1/2より算出することができる。第1の合成角速度ベクトル量と第2の合成角速度ベクトル量との差が大きい場合は、姿勢の変化が大きいと判断される。MPU19は、その差が閾値以上と判定した場合、ステップ2008、2107と同様な処理を実行する。
このような入力装置1の処理についても、制御装置40が実行してもよい。
次に、垂直面からの入力装置1の検出面の傾きによる重力加速度の影響の除去の動作についてのさらに別の実施の形態について説明する。図51は、その動作を示すフローチャートである。本実施の形態は、ロール角φの算出時において角加速度値が監視される方法である。
ステップ2201〜2204は、ステップ1101〜1104と同様の処理である。
ステップ2205では、MPU19は、取得した角速度値(ωψ、ωθ)に基き、微分演算により角加速度値(Δωψ、Δωθ)を算出する(角速度微分手段)。
MPU19は、算出された両方向の角加速度値のうち例えば一方のヨー方向の角加速度値|Δωψ|が閾値th7を超えるか否かを判定する(ステップ2206)(判定手段)。それが閾値th7を超える場合、MPU19は、ロール角φの更新を停止する(ステップ2209)。このように処理する理由は、次のような理由による。
X軸またはY軸の周りの角加速度値(Δωθ、Δωψ)は、上式(4)によって加速度値(ax、ay)に基いて算出される。ユーザが入力装置1を動かしたときに入力装置1に加速度が発生しても、それによるロール角φの算出誤差を許容範囲内に抑えるための所望の第1の許容加速度値または第2の許容加速度値を、式(4)によって算出することができる。つまり、角加速度の閾値th7が設定されることで、ロール角φの算出誤差を許容範囲内に抑えることができる。
図21は、さらに別の実施の形態に係る入力装置の構成を示す模式図である。
この入力装置141の制御ユニット130は、メイン基板18の下部に配置された加速度センサユニット116を備える。加速度センサユニット116は、2軸(X’及びY’軸)の加速度を検出するものであってもよいし、3軸(X’、Y’及びZ’軸)の加速度を検出するものであってもよい。
上記入力装置1と比べ、加速度センサユニット116が配置される位置は、ユーザが入力装置141を握ったときに手首に近くなる。このような位置に加速度センサユニット116が配置されることにより、ユーザの手首の振りによって発生する慣性加速度の影響を最小とすることができる。
また、例えば加速度センサユニット116として3軸タイプが用いられることで、若干計算量が増加するものの、どのような実装面に加速度センサユニット116が配置されても、X’−Y’面内の加速度成分を抽出することができる。その結果、基板のレイアウトの自由度を増やすことが可能となる。
図22は、制御システムのさらに別の実施の形態に係る動作を示すフローチャートである。
MPU19は、ステップ701a、701b、702において、ステップ101a、101b、102と同様の処理を実行する。MPU19は、ステップ702で算出されたロール角φに基き、ロール方向の角速度値ωφを算出する(ステップ703)。
ロール方向の角速度値ωφは、ロール角φの時間微分で求められる。MPU19は、ロール角φを複数サンプルして微分すればよく、あるいは、所定のクロックごとに算出するロール角φを角速度値ωφ(ロール角速度)として出力してもよい。
MPU19は、ロール角φに応じた回転座標変換により、角速度値(ωψ、ωθ)をそれぞれ補正し、補正角速度値(ωψ’、ωθ’)を得る(ステップ704)。MPU19は、補正角速度値ωψ’、及びロール角速度値ωφに、所定の比率で表された移動係数α、βをそれぞれ乗じる。α、βの値は任意の実数または関数であり、ROM等やその他の記憶デバイスに記憶されていればよい。入力装置1または制御装置40が、ユーザがα、βを設定できるプログラムを備えていてもよい。MPU19は、移動係数α、βを乗じたことにより得られる2つの角速度値ωψ’’、ωφ’の合成角速度値ωγを算出する(ステップ705)(合成算出手段)。
合成の計算式としては、典型的には式(23)の加算式が挙げられる。
ωγ=ωψ’’+ωφ’(=αωψ+βωφ)・・・(23)
合成の計算式としては、式(23)に限られず、ωψ’’・ωφ’であってもよいし、[(ωψ’’)2+(ωφ’)2]1/2であってもよい。MPU19は、これにより得られた合成角速度値ωγと、ステップ704で得られた補正角速度値ωθ’の情報を、入力情報として出力する(ステップ706)。
この合成角速度値ωγは画面3上のX軸方向でのポインタ2の変位量となり、ピッチ方向の補正角速度値ωθ’は画面3上のY軸方向でのポインタ2の変位量となる。つまり、ポインタ2の両軸の変位量(dX,dY)は下記の式(24)、(25)として表すことができる。
合成の計算式としては、式(23)に限られず、ωψ’’・ωφ’であってもよいし、[(ωψ’’)2+(ωφ’)2]1/2であってもよい。MPU19は、これにより得られた合成角速度値ωγと、ステップ704で得られた補正角速度値ωθ’の情報を、入力情報として出力する(ステップ706)。
この合成角速度値ωγは画面3上のX軸方向でのポインタ2の変位量となり、ピッチ方向の補正角速度値ωθ’は画面3上のY軸方向でのポインタ2の変位量となる。つまり、ポインタ2の両軸の変位量(dX,dY)は下記の式(24)、(25)として表すことができる。
dX =ωψ’’+ωφ’=ωγ・・・(24)
dY =ωθ’(=δωθ)(δは実数または関数)・・・(25)。
dY =ωθ’(=δωθ)(δは実数または関数)・・・(25)。
制御装置40のMPU35は、ステップ707〜709において、図10に示したステップ105〜107と同様な処理を実行する。
図22に示したステップ702〜706の処理を、図12のように制御装置40が実行してもよい。
以上のように、本実施の形態では、例えばユーザは、Z’軸の回りに入力装置1を回転させること及びX’軸方向へ入力装置1を動かすことのうち少なくとも一方の操作で、ポインタの第1の軸方向での動きが制御される。これにより、ユーザは入力装置1をX軸方向へ動かすときの移動量を少なくすることができ、容易にポインタをX軸方向へ動かすことができる。
特に、例えば水平方向に長い画面が用いられる場合、ユーザは水平方向へポインタ2を容易に動かすことができる。また、ユーザはZ軸の回りに入力装置1を回転させることで水平方向にポインタ2を動かすことができるので、直感的な操作が可能となる。
図23は、本発明のさらに別の実施の形態に係る入力装置の電気的な構成を示すブロック図である。この入力装置201は、上記センサユニット17を備えておらず、3軸の角速度センサユニット215を備えている点で、上記の入力装置1、101、141と異なる。
3軸の角速度センサユニット215は、X’軸の回りの角速度を検出する角速度センサ、Y’軸の回りの角速度を検出する角速度センサ、Z’軸の回りの角速度を検出する角速度センサを有している。これらの角速度センサは、角速度値(ωθ、ωψ、ωφ)の信号をそれぞれ出力する。
図24は、この入力装置201を含む制御システムの動作を示すフローチャートである。制御装置としては、上記各実施の形態で示した制御装置40が用いられればよい。
角速度センサユニット215から3軸の角速度信号が出力され(ステップ901)、MPU19はこれらの角速度値(ωθ、ωψ、ωφ)を取得する。MPU19は、下記の式(26)の積分演算によりロール角φを算出する(ステップ902)。
φ=φ0 +∫ωφdt ・・・(26)
φ0はロール角の初期値である。
φ0はロール角の初期値である。
上記各実施の形態では、入力装置1のロール方向の傾きが回転座標変換により補正されていたが、本実施の形態では、入力装置201の初期姿勢における初期値φ0が発生し、また、何も対策をしないと積分誤差が発生することになる。
式(26)において、積分誤差を除去する現実的かつ簡便な方法として、以下に述べる方法が挙げられる。
例えば入力装置201には、図示しないリセットボタンが設けられる。このリセットボタンは、典型的にはボタン11、12、ホイールボタン13とは別に設けられたボタンである。ユーザがリセットボタンを押している間は、入力装置201の操作により制御装置40は、ポインタ2を画面上で動かすように表示させる。または、ユーザがリセットボタンを押した直後から次回に再度リセットボタンを押すまでの間は、入力装置201の操作により制御装置40は、ポインタ2を画面上で動かすように表示させる。すなわち、リセットボタンが押されることを積分誤差低減のための動作開始のトリガーとする。
ここで、トリガーの発効直後に、MPU19または制御装置40のMPU35は、φ0=0、φ=0にリセットする(リセット手段)。あるいは式(26)にφ0の項を最初から入れないこととしてもよい。
この方法では、1回の入力装置201の操作(ユーザがリセットボタンを押している時間、または押した直後から次に押すまでの間)ごとにφが0にリセットされるため、実用的には積分誤差が拡大しない。
この場合、ユーザはリセットボタンの押圧時に、入力装置201をおおよそ基本姿勢になるように注意する必要があるが難易度は低く、容易に習熟できる範囲である。
なお、リセットボタンが設けられる構成ではなく、入力装置201のMPU19または制御装置40のMPU35が所定の条件の下でリセットするようにしてもよい。所定の条件とは、例えば入力装置201が基本姿勢になったとき等が挙げられる。入力装置201が基本姿勢になったことを検出するためには、例えば上記加速度センサユニット16等が設けられていればよい。
ステップ902の後、MPU19は、ヨー角速度値ωψ及びロール角速度ωφに、所定の移動係数α、βをそれぞれ乗じ、これにより得られるヨー演算角速度値ωψ’及びロール演算角速度値ωφ’の合成角速度値ωγを算出する(ステップ903)。MPU19は、算出した合成角速度値ωγ、及び、角速度センサユニット215から得られたピッチ角速度値ωθの情報を入力情報として出力する(ステップ904)。
制御装置40は、その入力情報を受信し(ステップ905)、これに応じたポインタ2の座標値を生成し(ステップ906)、そのポインタ2の表示を制御する(ステップ907)。
図24に示したステップ902〜904の処理を、図12のように制御装置40が実行してもよい。
図25は、図24の処理についての他の実施の形態に係る動作を示すフローチャートである。
角速度センサユニット215から3軸の角速度信号が出力され(ステップ801)、MPU19はこれらの角速度値(ωθ、ωψ、ωφ)を取得する。MPU19は、下記の式(27)よりロール角φを算出する(ステップ802)。
φ=∫ωφdt ・・・(27)。
MPU19は、図22で示したステップ704〜706と同様の処理を実行し(ステップ803〜805)、制御装置40のMPU35は、ステップ707〜709(ステップ806〜808)と同様の処理を実行する。
式(27)においては積分誤差が発生するが、ステップ803においてロール角φに応じた回転座標変換が行われるので問題ない。また、上記式(26)のロール角の初期値φ0も、回転座標変換が行われることにより除去される。
図25に示したステップ802〜805の処理を、図12のように制御装置40が実行してもよい。
次に、入力装置の他の実施の形態について説明する。
図26は、その入力装置51を示す斜視図である。図27は、その入力装置51のホイールボタン13側から見た側面図である。これ以降の説明では、図2等に示した実施の形態に係る入力装置1が含む部材や機能等について同様のものは説明を簡略または省略し、異なる点を中心に説明する。
入力装置51の筐体50は、その筐体50の表面の所定の位置に設けられた球面の一部または二次曲面の一部50aを有する。以下、球面の一部または二次曲面の一部(50a)を便宜的に「下部曲面」(50a)という。
下部曲面50aが配置される位置は、例えば、ボタン11、12とはほぼ反対側の位置であり、ユーザが入力装置51を握ったときに、子指が他の指より最もその下部曲面50aの位置に近くなるような位置である。あるいは、ある一方向(Z’軸方向とする。)の長い筐体50において、筐体50のそのZ’軸方向の長さの中心からZ’軸の正の側にセンサユニット17が配置される場合、下部曲面50aはZ’軸の負の側に配置された位置となる。
球面の一部とは、典型的には、実質的に半球面が挙げられるが必ずしも半分である必要はない。二次曲面とは、2次元で描かれる円錐曲線(二次曲線)を3次元まで拡張されたときの曲面をいう。二次曲面として、例えば楕円面、楕円放物面、または双曲面等がある。
このような入力装置51の筐体50の形状により、ユーザは、入力装置51の下部曲面50aを、テーブル、椅子、床、ユーザの膝や太もも等の当接対象物49に当てた状態で、下部曲面50aを支点として入力装置51を操作しやすくなる。つまり、入力装置51の下部曲面50aを当接対象物49に当てた状態でも、ユーザは入力装置51をあらゆる角度に傾けることを容易に行うことができるので、ポインタをアイコンに合わせる等の細かい操作を行うことができるようになる。図28は、ユーザが入力装置51の下部曲面50aを膝に当てて操作する様子を示す図である。
あるいは、本実施形態では、手ぶれ補正回路では抑制できない手の震え等による誤操作を防止したり、ユーザが入力装置51を空中で持ち上げ続けて操作する場合のユーザの疲労を予防することができる。
図29は、本発明のさらに別の実施の形態に係る入力装置を示す斜視図である。
入力装置61の筐体60は、図26、図27で示した入力装置51と同様に、球面の一部でなる下部曲面60aを有する。入力装置61の筐体60の最大長さの方向(Z’軸方向)に垂直な平面であって、下部曲面60aに接する平面(以下、便宜的に下端平面55という。)は、角速度センサユニット15の検出軸であるX軸及びY軸(図8参照)が作る平面(X−Y平面)と実質的に平行な平面となっている。
このような入力装置61の構成により、ユーザが下部曲面60aを下端平面55に当てて操作する場合に、入力装置61に加えられる角速度がそのまま角速度センサユニット15に入力される。したがって、角速度センサユニット15からの検出信号から検出値を得る過程での計算量を減らすことができる。
図30は、本発明のさらに別の実施の形態に係る入力装置を示す正面図である。図31は、その入力装置を示す側面図である。
入力装置71の筐体70の下部曲面70aは、例えば球面の一部とされている。この下部曲面70aは、図26、図29で示した入力装置51、61の下部曲面50a、60aより曲率半径が大きく設定されている。角速度センサユニット15は、その角速度センサユニット15の検出軸であるX軸及びY軸で構成されるX−Y平面に含まれる直線が、X軸方向及びY軸方向で見て、上記球面を通る仮想的に描かれた円56の接線に相当するような位置に配置されている。このような条件を満たす限り、角速度センサユニット15のX−Y平面が、入力装置71の長手方向に対して傾くように(図30参照)、角速度センサユニット15が筐体70に対して配置されてもよい。
これにより、ユーザが下部曲面70aを当接対象物49に当てて入力装置71を操作する場合に発生する角速度のベクトル方向と、角速度センサユニット15の検出方向が一致するので、リニアな入力が可能となる。
図32は、本発明のさらに別の実施の形態に係る入力装置を示す正面図である。
この入力装置81の筐体80の下部曲面80aである球面の曲率半径は、例えば図29に示したものと同じ、または近く設定されている。角速度センサユニット15は、該角速度センサユニット15の中心点である2つのX軸及びY軸の交点を通りそのX軸及びY軸に直交する仮想的な直線が、下部曲面80aを含む第1の球62の中心点Oを通る。このような構成により、下部曲面80aを含む第1の球62と、角速度センサユニット15のX−Y平面に含まれる直線が接線となる第2の球63が同心となる。したがって、入力装置81は、図30で示した入力装置71の効果と同様の効果を奏する。
なお、以上説明した球面の一部または二次曲面の一部を備える入力装置51、61、71、または81について、ユーザが必ずしも下部曲面50a、60a、70a、または80aを当接対象物49に当てて操作しなければならないわけではなく、空中で操作してももちろんかまわない。
図26〜図32に示した入力装置51、61、71、または81が、図21に示した入力装置141及びこの入力装置141が実行する処理に適用されてもよいし、図23に示した構成を有する入力装置201及びこの入力装置201が実行する処理に適用されてもよい。
本発明に係る実施の形態は、以上説明した実施の形態に限定されず、他の種々の実施形態が考えられる。
図44、45、48〜52に対応する実施形態に示したように演算加速度値(axi、ayi)が求められる場合、例えば図35に示した式(5)により「速度値」が回転座標変換により補正された。しかし、演算加速度値(axi、ayi)が求められる場合であっても、図10、図12等で説明したように、図11で示した式(3)により「角速度値」が回転座標変換により補正され、これら補正角速度値が速度値に変換されてもよい。図54は、図44に示した処理の変形例を示すフローチャートを示し、「角速度値」が回転座標変換により補正される場合を示している(特に、ステップ2409参照)。このことは、図44に限られず、図45、48〜52に示した処理でも同様である。
以上の各実施の形態で説明したセンサユニット17について、角速度センサユニット15のX’及びY’軸の検出軸と、加速度センサユニット16のX’及びY’軸の検出軸がそれぞれ一致している形態を説明した。しかし、それら各軸は、必ずしも一致していなくてもよい。例えば、角速度センサユニット15及び加速度センサユニット16が基板上に搭載される場合、角速度センサユニット15及び加速度センサユニット16の検出軸のそれぞれが一致しないように、角速度センサユニット15及び加速度センサユニット16がその基板の主面内で所定の回転角度だけずれて搭載されていてもよい。その場合、三角関数を用いた計算によって、各軸の加速度及び角速度を得ることができる。
図14では、ステップ304において加速度が判定処理の対象とされ、加速度の絶対値が閾値Th1以下の場合に、所定の処理が停止された。これに代えて、ユーザが、その所定の処理を停止及びその再開を切り替えるためのスイッチが、例えば入力装置1に設けられていてもよい。スイッチは、メカニカルなディップスイッチ、プッシュボタン式のスイッチ、センサを利用したスイッチ等が挙げられる。センサとしては、電気、磁気、光等を利用したものがある。例えば、スイッチがON/OFF式のプッシュボタンである場合、ユーザがそのボタンを押すと、情報出力手段による処理が停止し、もう一度そのボタンを押すとその処理が再開されてもよい。あるいは、ユーザがそのボタンを押している間は、その処理が停止する(またはその処理が実行される)といった形態も考えられる。
あるいは、その所定の処理を停止及びその再開を切り替えるための手段として、GUIを用いたソフトウェアを入力装置または制御装置が備えていてもよい。例えば、画面上に表示されたスイッチ、その他のGUIを用いて所定の処理の停止及び開始を切り変えてもよい。
センサユニット17の、角速度センサユニット15及び加速度センサユニット16の検出軸は、上述のX’軸及びY’軸のように必ずしも互いに直交していなくてもよい。その場合、三角関数を用いた計算によって、互いに直交する軸方向に投影されたそれぞれの加速度が得られる。また同様に、三角関数を用いた計算によって、互いに直交する軸の周りのそれぞれの角速度を得ることができる。
図10、12、14、20、22、24、25、44、45、48〜52に示したフローチャートにおいて、入力装置及び制御装置が互いに通信しながら、入力装置の処理の一部を制御装置が行ってもよいし、制御装置の処理の一部を入力装置が行ってもよい。
上記の入力装置1は、加速度センサユニット16及び角速度センサユニット15を備えていた。しかし、図22、24、25の処理を実現する入力装置として、角度センサ及び角速度センサを備えたものであってもよい。この角度センサは、図33(A)に示すX’軸(第1の軸)の回りの角度(第1の角度)θと、図33(B)に示すZ’軸の回りの角度(第3の角度)φとを検出する2つの角度センサを有する。θは、垂直軸からのX’−Y’平面の角度である。もちろん、入力装置は、Y’軸(第2の軸)の回りの角度(第2の角度)ψをも検出する3軸の角度センサを備えていてもよい。
角度センサは、2軸の場合上記加速度センサユニット16により構成される。図33(A)に示すように、重力加速度GのY’方向成分であるG・sinθがY’軸方向での加速度値ayである。これによりθが求められる。また、図33(B)に示すように、Z’軸の回りの角度はG・cosφ=ay、またはG・sinφ=ax(X’方向成分の加速度値)によりφが求められる。このように、角度θ、φが算出されることで、微分演算(微分手段)によりωθ、ωφが算出される。この場合、Y’軸の回りの角速度ψは、角速度センサから直接得られる。
あるいは、角度θ及びφのうちいずれか一方だけ算出され、例えば角度θのみ(またはφ)が上記角度センサによって算出され、微分演算によりωθ(またはωφ)が算出されてもよい。この場合、ωφ(またはωθ)及びωψは角速度センサにより直接得られる。
このように入力装置が角度センサを有する場合であっても、入力装置または制御装置は、上記ロール角φに応じた回転座標変換処理や、移動係数α、βの乗算処理及びこれにより得られる2つの角速度の合成演算処理を行うことが可能である。
上記角度センサは、加速度センサに代えて、あるいは加速度センサに加えて、地磁気センサ(1軸または2軸のもの)、またはイメージセンサにより構成されてもよい。
上記角速度センサユニット15の代わりとして、上記角度センサあるいは角加速度センサが用いられてもよい。角度センサとして、例えば3軸地磁気センサが用いられる場合、角度値の変化量が検出されるので、その場合、角度値が微分演算されることで角速度値が得られる。角加速度センサは、複数の加速度センサの組み合わせにより構成され、角加速度センサにより得られる角加速度値が積分演算されることで、角速度値が得られる。
速度値(Vx、Vy)の算出方法としては、MPU19が、例えば加速度値(ax、ay)を積分して速度値を求め、かつ、角速度値(ωψ、ωθ)をその積分演算の補助として用いる方法がある。逆に、MPU19が、角速度値(ωψ、ωθ)に対応する速度値を演算またはルックアップテーブルにより求め、加速度値を例えばその演算の補助して用いる方法がある。
あるいは、MPU19は、加速度値(ax、ay)を、角速度値(ωψ、ωθ)の微分値(Δωψ、Δωθ)で割ることで筐体10の動きの回転半径(Rψ、Rθ)を求める。その回転半径(R ψ 、R θ )に角速度値(ωψ、ωθ)が乗じられることにより速度値(Vx、Vy)が得られる。
あるいは、動きセンサとして、角速度センサユニット15が設けられず、加速度センサユニット16が設けられ、加速度値(ax、ay)が単に積分されることで速度値(Vx、Vy)が算出されてもよい。逆に、動きセンサとして、加速度センサユニット16が設けられず、角速度センサユニット15が設けられ、角速度値(ωψ、ωθ)に対応する速度値(Vx、Vy)が演算またはルックアップテーブルにより算出されてもよい。
上記各実施の形態に係る各入力装置は、無線で入力情報を制御装置に送信する形態を示したが、有線により入力情報が送信されてもよい。
本発明は、例えば、表示部を備えるハンドヘルド型の情報処理装置(ハンドヘルド装置)に適用されてもよい。この場合、ユーザは、ハンドヘルド装置の本体を動かすことで、その表示部に表示されたポインタが動く。ハンドヘルド装置として、例えば、PDA(Personal Digital Assistance)、携帯電話機、携帯音楽プレイヤー、デジタルカメラ等が挙げられる。
上記各実施の形態では、各入力装置等の動きに応じて画面上で動くポインタ2を、矢印の画像として表した。しかし、ポインタ2の画像は矢印に限られず、単純な円形、角形等でもよいし、キャラクタ画像、またはその他の画像であってもよい。
1、51、61、71、81、101、141、201…入力装置
2…ポインタ
3…画面
15、215…角速度センサユニット
16、116…加速度センサユニット
17…センサユニット
40…制御装置
100…制御システム
102…ローパスフィルタ
151、152…角速度センサ
161…第1の加速度センサ
162…第2の加速度センサ
2…ポインタ
3…画面
15、215…角速度センサユニット
16、116…加速度センサユニット
17…センサユニット
40…制御装置
100…制御システム
102…ローパスフィルタ
151、152…角速度センサ
161…第1の加速度センサ
162…第2の加速度センサ
Claims (85)
- 第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、
前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、
前記第1の軸の周りの第1の角速度を検出する第1の角速度センサと、
前記第2の軸の周りの第2の角速度を検出する第2の角速度センサと、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と
を具備する入力装置。 - 請求項1に記載の入力装置であって、
前記加速度検出面が、絶対的な垂直面から傾いたときの、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルの量が閾値以下である場合、前記角度の算出を停止するように、かつ、前記角度の算出を停止した後に前記合成加速度ベクトル量が前記閾値を超えた場合、前記角度の算出を開始するように前記角度算出手段を制御する算出制御手段をさらに具備する入力装置。 - 請求項2に記載の入力装置であって、
前記角度の算出を停止したときの第1の角度と、前記角度の算出を再開したときの第2の角度との角度差が、閾値以上であるか否かを判定する判定手段をさらに具備し、
前記情報出力手段は、
前記角度差が前記閾値以上であった場合、前記第2の角度に180deg加算した第3の角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正する入力装置。 - 請求項3に記載の入力装置であって、
前記角度の算出を停止したとき及び該算出を再開したときにおける前記第1の角速度のそれぞれの方向が同じであるか否かを判定する角速度方向判定手段をさらに具備し、
前記情報出力手段は、
前記第1の角速度の方向が同じである場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正する入力装置。 - 請求項3に記載の入力装置であって、
前記角度の算出を停止したときの、前記第1の角速度及び前記第2の角速度の第1の合成角速度ベクトル量と、前記角度の算出を再開したときの前記第1の角速度及び前記第2の角速度の第2の合成角速度ベクトル量との差が閾値以上である否かを判定する角速度ベクトル判定手段をさらに具備し、
前記情報出力手段は、
前記第1及び第2の合成角速度ベクトル量の差が閾値以上である場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正する入力装置。 - 請求項1に記載の入力装置であって、
前記第1の加速度及び前記第2の加速度のうち少なくとも一方の信号が入力されるローパスフィルタをさらに具備し、
前記角度算出手段は、
前記ローパスフィルタを通過した信号に基いて前記角度を算出する入力装置。 - 請求項1に記載の入力装置であって、
前記第1の角速度に基き得られる前記第1の軸の周りの第1の角加速度、及び、前記第2の角速度に基き得られる前記第2の軸の周りの第2の角加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止するように前記角度算出手段を制御する算出制御手段をさらに具備する入力装置。 - 請求項1に記載の入力装置であって、
前記第1の角速度及び前記第2の角速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止するように前記角度算出手段を制御する算出制御手段をさらに具備する入力装置。 - 請求項1に記載の入力装置であって、
前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値以上である場合、
前記角度の算出を停止するように前記角度算出手段を制御する算出制御手段をさらに具備する入力装置。 - 第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、前記第1の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第2の軸の周りの第2の角速度を検出する第2の角速度センサとを備える入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置であって、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する受信手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、
前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段と
を具備する制御装置。 - 入力情報を出力する入力装置と、前記入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置とを備える制御システムであって、
前記入力装置は、
第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、
前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、
前記第1の軸の周りの第1の角速度を検出する第1の角速度センサと、
前記第2の軸の周りの第2の角速度を検出する第2の角速度センサと、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段とを有し、
前記制御装置は、
前記第1の補正角速度及び前記第2の補正角速度の情報を、前記入力情報として受信する受信手段と、
前記受信された第1及び第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する制御システム。 - 入力情報を出力する入力装置と、前記入力装置から出力された入力情報に応じて、画面上に表示されるUIを制御する制御装置とを備える制御システムであって、
前記入力装置は、
第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、
前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出する第2の加速度センサと、
前記第1の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第2の軸の周りの第2の角速度を検出する第2の角速度センサと、
前記第1の加速度、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として出力する出力手段とを有し、
前記制御装置は、
前記入力情報を受信する受信手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、
前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する制御システム。 - 入力装置の動きに応じて画面上のUIを制御する制御方法であって、
前記入力装置の、第1の軸に沿う方向の第1の加速度を検出し、
前記入力装置の、前記第1の軸に沿う方向とは異なる第2の軸の方向の第2の加速度を検出し、
前記入力装置の、前記第1の軸の周りの第1の角速度を検出し、
前記入力装置の、前記第2の軸の周りの第2の角速度を検出し、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて角度として算出し、
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力し、
前記第1の補正角速度及び前記第2の補正角速度に応じた、前記UIの前記画面上の座標情報を生成する
制御方法。 - 第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、
前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、
前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、
前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、
前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、
前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と
を具備する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第1の演算加速度値及び前記第2の演算加速度値のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、
前記第1の演算加速度値及び前記第2の演算加速度値の両方が前記閾値以下の場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記第1及び第2の演算加速度値のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第1の演算加速度値及び前記第2の演算加速度値に基き得られる演算値が閾値を超えるか否かを判定する判定手段と、
前記演算値が前記閾値以下の場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記演算値が前記閾値を超える場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第1の加速度値及び前記第2の加速度値のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、
前記第1の加速度値及び前記第2の加速度値の両方が前記閾値以下の場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記第1及び第2の加速度値のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第1の角速度値及び前記第2の角速度値のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、
前記第1の角速度値及び前記第2の角速度値の両方が前記閾値以下の場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記第1及び第2の角速度値のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第1の加速度値及び前記第2の加速度値の各絶対値を比較する比較手段と、
前記比較の結果、前記第1及び第2の加速度のうち小さい方の値が閾値以下であるか否かを判定する判定手段と、
前記小さい方の値が前記閾値を超える場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記小さい方の値が前記閾値以下である場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第1の加速度値及び前記第2の加速度値に基き得られる演算値が閾値以下であるか否かを判定する判定手段と、
前記演算値が前記閾値を超える場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記演算値が前記閾値以下である場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記第3の軸に沿う方向の第3の加速度を検出する第3の加速度センサと、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記第3の加速度値が閾値以上であるか否かを判定する判定手段と、
前記第3の加速度値が閾値より小さい場合、前記記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記第3の加速度値が前記閾値以上である場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項19に記載の入力装置であって、
前記更新手段による更新が停止したときにおける第3の角度値と、前記更新手段による更新が再開されたときにおける第4の角度値との角度差が、閾値以上であるか否かを判定する角度差判定手段をさらに具備し、
前記情報出力手段は、前記角度差が前記閾値以上であった場合、前記第4の角度値に180deg加算した第5の角度値に応じた回転座標変換により、前記第1の速度値度及び前記第2の速度値をそれぞれ補正する入力装置。 - 請求項22に記載の入力装置であって、
前記更新手段による更新が停止したときにおける前記第1の角速度の方向と、前記更新手段による更新が再開されたときに検出された前記第1の角度値との方向とが、それぞれ同じであるか否かを判定する角速度方向判定手段をさらに具備し、
前記情報出力手段は、前記各第1の角速度の方向が同じである場合、前記更新手段による更新が再開されたときの前記第4の角度値に180deg加算した角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正する入力装置。 - 請求項22に記載の入力装置であって、
前記更新手段による更新が停止したときにおける前記第1の角速度及び前記第2の角速度の第1の合成角速度ベクトル量と、前記更新手段による更新が再開されたときにおける前記第1の角速度及び前記第2の角速度の第2の合成角速度ベクトル量との差が閾値以上である否かを判定する角速度ベクトル判定手段をさらに具備し、
前記情報出力手段は、前記第1及び第2の合成角速度ベクトル量の差が閾値以上である場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正する入力装置。 - 請求項14に記載の入力装置であって、
前記第1の角速度値を微分することで前記第2の軸の周りの第1の角加速度値を算出し、前記第2の角速度値を微分することで前記第1の軸の周りの第2の角加速度値を算出する角速度微分手段と、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記角度算出手段による前記角度の算出誤差を所定の許容範囲内に抑えるための、前記第1の軸に沿う方向の第1の許容加速度値及び前記第2の軸方向に沿う方向の第2の許容加速度値に基き定められた閾値を、前記算出された前記第1の角加速度値及び前記第2の角加速度値のうち少なくとも一方が超えるか否かを判定する判定手段と、
前記第1の角加速度値及び前記第2の角加速度値の両方が閾値以下の場合、前記角度算出手段により算出され記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記第1及び第2の角加速度値のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記第1の角速度値を微分することで前記第2の軸の周りの第1の角加速度値を算出し、前記第2の角速度値を微分することで前記第1の軸の周りの第2の角加速度値を算出する角速度微分手段と、
前記角度算出手段により算出された第1の角度値を記憶する角度記憶手段と、
前記角度算出手段による前記角度の算出誤差を所定の許容範囲内に抑えるための、前記第1の軸に沿う方向の第1の許容加速度値及び前記第2の軸方向に沿う方向の第2の許容加速度値に基き定められた閾値を、前記算出された前記第1の角加速度値及び前記第2の角加速度値に基き得られる演算値が超えるか否かを判定する判定手段と、
前記演算値が閾値以下の場合、前記角度算出手段により算出され記憶された前記第1の角度値を更新するように、前記角度算出手段により算出された第2の角度値を前記角度記憶手段に記憶させる更新手段と、
前記演算値が前記閾値を超える場合、前記更新手段による前記角度値の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項14に記載の入力装置であって、
前記第1の演算加速度値及び前記第2の演算加速度値のうち少なくとも一方の信号が入力されるローパスフィルタをさらに具備し、
前記角度算出手段は、前記ローパスフィルタを通過した前記第1及び第2の演算加速度値の信号に基いて前記角度を算出する入力装置。 - 請求項14に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値及び前記第1の角速度値に基づいて、前記第2の軸から前記第1の加速度センサまでの距離である、前記第2の軸周りの回転半径を算出し、前記回転半径に前記第1の角速度値を乗じて、前記第1の軸に沿う方向の速度値を算出する入力装置。 - 請求項28に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値と、前記第1の角速度値の微分値である角加速度値との比を、前記回転半径として算出する入力装置。 - 請求項28に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値の微分値である加速度変化率と、前記第1の角速度値の2階微分値である角加速度変化率との比を、前記回転半径として算出する入力装置。 - 請求項28に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値から、前記第1の加速度センサに働く重力加速度の前記第1の軸に沿う方向の成分値を含む低周波成分値を除去した値と、前記第1の角速度値の微分値である角加速度値との比を、前記回転半径として算出する入力装置。 - 請求項28に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値と、前記第1の角速度値の微分値である角加速度値との回帰直線の傾きを、前記回転半径として算出する入力装置。 - 請求項28に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値の微分値である加速度変化率と、前記第1の角速度値の2階微分値である角加速度変化率との回帰直線の傾きを、前記回転半径として算出する入力装置。 - 請求項14に記載の入力装置であって、
前記速度算出手段は、前記第1の加速度値と、重力加速度の前記第1の軸に沿う方向の成分値である基準加速度値との差を補正加速度値として算出し、前記補正加速度値に基き前記第1の軸に沿う方向の速度値を算出する入力装置。 - 請求項34に記載の入力装置であって、
前記検出された第1の角速度値に応じて前記第1の軸に沿う方向の速度値を補正する速度補正手段をさらに具備する入力装置。 - 請求項35に記載の入力装置であって、
前記速度補正手段は、前記第1の角速度値が閾値より小さい場合に、前記第1の軸に沿う方向の前記速度値をゼロとする入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段は、前記速度算出手段により前記第1及び前記第2の速度値がそれぞれ複数回算出されるごとに、前記角度を1回算出する入力装置。 - 請求項14に記載の入力装置であって、
前記角度算出手段は、前記速度算出手段により前記第1及び前記第2の速度値が算出される周期と同周期で、前記角度を算出する入力装置。 - 第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサとを備える入力装置から送信された入力情報に応じて、画面上に表示されるUIを制御する制御装置であって、
前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び第2の角速度値の各情報を、前記入力情報として受信する受信手段と、
前記受信された前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、
前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、
前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段と
を具備する制御装置。 - 画面上に表示されるUIを制御する制御システムであって、
第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、
前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、
前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、
前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、
前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、
前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、
前記第1及び第2の補正速度値の情報を入力情報として送信する送信手段とを有する入力装置と、
前記入力情報を受信する受信手段と、
前記受信された入力情報の前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する制御装置と
を具備する制御システム。 - 画面上に表示されるUIを制御する制御システムであって、
第1の軸に沿う方向の第1の加速度を検出する第1の加速度センサと、
前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出する第2の加速度センサと、
前記第2の軸の周りの第1の角速度を検出する第1の角速度センサと、前記第1の軸の周りの第2の角速度を検出する第2の角速度センサと、
前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び第2の角速度値の各情報を、前記入力情報として送信する送信手段とを有する入力装置と、
前記入力情報として受信する受信手段と、
前記受信された入力情報の前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出する速度算出手段と、
前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出する微分演算手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出する角度算出手段と、
前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、該補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力する情報出力手段と、
前記第1の補正速度値及び前記第2の補正速度値に応じた、前記UIの前記画面上の座標情報を生成する座標情報生成手段とを有する制御装置と
を具備する制御システム。 - 入力装置の、第1の軸に沿う方向の第1の加速度を検出し、
前記入力装置の、前記第1の軸に沿う方向とは異なる第2の軸に沿う方向の第2の加速度を検出し、
前記入力装置の、前記第2の軸の周りの第1の角速度を検出し、
前記入力装置の、前記第1の軸の周りの第2の角速度を検出し、
前記第1の加速度値、前記第2の加速度値、前記第1の角速度値及び前記第2の角速度値に基き、前記第1の軸に沿う方向の第1の速度値及び前記第2の軸に沿う方向の第2の速度値を算出し、
前記第1及び第2の速度値をそれぞれ微分することで、第1の演算加速度値及び第2の演算加速度値を算出し、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第3の軸の周りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記第2の軸との間の角度を、前記第1の加速度値から前記第1の演算加速度値を減じた値、及び、前記第2の加速度値から前記第2の演算加速度値を減じた値に基いて算出し、
前記算出された角度に応じた回転座標変換により、前記第1の速度値及び前記第2の速度値をそれぞれ補正し、
前記補正により得られる第1の補正速度値及び第2の補正速度値の情報を出力し、
前記第1の補正速度値及び前記第2の補正速度値に応じた、UIの画面上の座標情報を生成する制御方法。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と
を具備する入力装置。 - 請求項43に記載の入力装置であって、
前記抑制手段は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方の信号が入力されるローパスフィルタを有し、
前記情報出力手段は、前記ローパスフィルタを通過した信号に基いて前記角度を算出する入力装置。 - 請求項43に記載の入力装置であって、
前記抑制手段は、前記第1の角速度に基き得られる前記第3の軸の回りの第1の角加速度、及び、前記第2の角速度に基き得られる前記第4の軸の回りの第2の角加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止する入力装置。 - 請求項43に記載の入力装置であって、
前記抑制手段は、前記第1の角速度及び前記第2の角速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止する入力装置。 - 請求項43に記載の入力装置であって、
前記抑制手段は、前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値以上である場合、前記角度の算出を停止する入力装置。 - 請求項43に記載の入力装置であって、
前記抑制手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出し、前記第1の速度及び前記第2の速度をそれぞれ微分することで、第1の演算加速度及び第2の演算加速度を算出し、前記第1の加速度から前記第1の演算加速度を減じた値、及び、前記第2の加速度から前記第2の演算加速度を減じた値に基いて、前記情報出力手段により前記角度を算出させる入力装置。 - 請求項48に記載の入力装置であって、
前記第1の演算加速度及び前記第2の演算加速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、
前記第1の演算加速度及び前記第2の演算加速度の両方が前記閾値以下の場合、前記角度を更新する更新手段と、
前記第1の演算加速度及び第2の演算加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項48に記載の入力装置であって、
前記第1の演算加速度及び前記第2の演算加速度に基き得られる演算値が閾値を超えるか否かを判定する判定手段と、
前記演算値が前記閾値以下の場合、前記角度を更新する更新手段と、
前記演算値が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項48に記載の入力装置であって、
前記第1の加速度及び前記第2の加速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、
前記第1の加速度及び前記第2の加速度の両方が前記閾値以下の場合、前記角度を更新する更新手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項48に記載の入力装置であって、
前記第1の角速度及び前記第2の角速度のうち少なくとも一方が閾値を超えるか否かを判定する判定手段と、
前記第1の角速度及び前記第2の角速度の両方が前記閾値以下の場合、前記角度を更新する更新手段とを有し、
前記第1及び第2の角速度のうち少なくとも一方が前記閾値を超える場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項48に記載の入力装置であって、
前記第1の加速度及び前記第2の加速度の各絶対値を比較する比較手段と、
前記比較の結果、前記第1及び第2の加速度のうち小さい方の値が閾値以下であるか否かを判定する判定手段と、
前記小さい方の値が前記閾値を超える場合、前記角度を更新する更新手段と、
前記小さい方の値が前記閾値以下である場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項48に記載の入力装置であって、
前記第1の加速度及び前記第2の加速度に基き得られる演算値が閾値以下であるか否かを判定する判定手段と、
前記演算値が前記閾値を超える場合、前記角度を更新する更新手段と、
前記演算値が前記閾値以下である場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 請求項48に記載の入力装置であって、
前記加速度出力手段は、前記第5の軸に沿う方向の第3の加速度を出力し、
前記入力装置は、
前記第3の加速度が閾値以上であるか否かを判定する判定手段と、
前記第3の加速度が閾値より小さい場合、前記記憶された前記角度を更新する更新手段と、
前記第3の加速度が前記閾値以上である場合、前記更新手段による前記角度の更新を停止するように、前記更新手段を制御する制御手段と
をさらに具備する入力装置。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段とを備える入力装置から出力された入力情報に応じて、画面上に表示されるポインタを制御する制御装置であって、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する受信手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度の情報を出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と
前記第1の補正角速度及び前記第2の補正角速度に応じた、前記ポインタの前記画面上の座標情報を生成する座標情報生成手段と
を具備する制御装置。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段とを有する入力装置と、
前記第1の情報を受信する受信手段と、
前記受信された第1及び第2の補正角速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段とを有する制御装置と
を具備する制御システム。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段とを有する入力装置と、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を受信する受信手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と、
前記出力された第1及び第2の補正角速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段とを有する制御装置と
を具備する制御システム。 - 第1の軸に沿う方向のハンドヘルド装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記ハンドヘルド装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記ハンドヘルド装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記ハンドヘルド装置の第2の角速度を出力する角速度出力手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記ハンドヘルド装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と、
前記出力された第1及び第2の補正角速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段と
を具備するハンドヘルド装置。 - 加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力し、
前記第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力し、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、
前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制し、
前記補正により得られる第1の補正角速度及び第2の補正角速度に応じた、ポインタの画面上の座標情報を生成する
制御方法。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する算出手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と
を具備する入力装置。 - 請求項61に記載の入力装置であって、
前記抑制手段は、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出し、前記第1の速度及び前記第2の速度をそれぞれ微分することで、第1の演算加速度及び第2の演算加速度を算出し、前記第1の加速度から前記第1の演算加速度を減じた値、及び、前記第2の加速度から前記第2の演算加速度を減じた値に基いて、前記情報出力手段により前記角度を算出させる入力装置。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する算出手段とを備える入力装置から出力された入力情報に応じて、画面上に表示されるポインタを制御する制御装置であって、
前記第1の加速度、前記第2の加速度、前記第1の速度及び前記第2の速度の情報を、前記入力情報として受信する受信手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第3の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記受信された第1及び第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度の情報を出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と、
前記第1の補正速度及び前記第2の補正速度に応じた、前記ポインタの前記画面上の座標情報を生成する座標情報生成手段と
を具備する制御装置。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する算出手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段とを有する入力装置と、
前記第1の情報を受信する受信手段と、
前記受信された第1及び第2の補正速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段とを有する制御装置と
を具備する制御システム。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出し、前記算出された第1の速度及び第2の速度を出力する速度出力手段とを有する入力装置と、
前記第1の加速度、前記第2の加速度、前記第1の速度及び前記第2の速度の情報を受信する受信手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記受信された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度の情報を含む第1の情報を出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と、
前記出力された第1及び第2の補正速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段とを有する制御装置と
を具備する制御システム。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向のハンドヘルド装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記ハンドヘルド装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記ハンドヘルド装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記ハンドヘルド装置の第2の角速度を出力する角速度出力手段と、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出する算出手段と、
前記第1の軸及び前記第2の軸を含む加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、該補正により得られる第1の補正速度及び第2の補正速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記ハンドヘルド装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と、
前記出力された第1及び第2の補正速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段と
を具備するハンドヘルド装置。 - 加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力し、
前記第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力し、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度に基き、前記第1の軸に沿う方向の前記入力装置の第1の速度及び前記第2の軸に沿う方向の前記入力装置の第2の速度を算出し、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記受信された第1の加速度及び第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、
前記算出された角度に応じた回転座標変換により、前記算出された第1の速度及び第2の速度をそれぞれ補正し、
前記第1の加速度及び第2の加速度のうち少なくとも一方が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制し、
前記補正により得られる第1の補正速度及び第2の補正速度に応じた、ポインタの画面上の座標情報を生成する
制御方法。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記情報出力手段による所定の処理を停止させることが可能であり、前記所定の処理を停止させているとき、前記情報出力手段により、前記第1の情報とは異なる第2の情報を出力させる停止手段と
を具備する入力装置。 - 請求項68に記載の入力装置であって、
前記停止手段は、前記所定の処理として前記第1の情報の出力を停止する入力装置。 - 請求項68に記載の入力装置であって、
前記停止手段は、前記所定の処理として前記角度の算出を停止する入力装置。 - 請求項68に記載の入力装置であって、
前記停止手段は、前記所定の処理として前記回転座標変換による補正を停止する入力装置。 - 請求項68に記載の入力装置であって、
前記情報出力手段による前記所定の処理を再開させる開始手段をさらに具備する入力装置。 - 請求項68に記載の入力装置であって、
前記情報出力手段は、前記回転座標変換により補正されていない値である前記第1の角速度及び前記第2の角速度の情報を、前記第2の情報として出力する入力装置。 - 請求項70に記載の入力装置であって、
前記補正により得られる前記第1の補正角速度及び前記第2の補正角速度を更新する更新手段をさらに具備し、
前記停止手段は、前記第1の補正角速度及び前記第2の補正角速度の更新を停止し、
前記情報出力手段は、最後に前記更新された前記第1の補正角速度及び前記第2の補正角速度の情報を、前記第2の情報として出力する入力装置。 - 請求項71に記載の入力装置であって、
前記補正により得られる前記第1の補正角速度及び前記第2の補正角速度を更新する更新手段さらに具備し、
前記停止手段は、前記第1の補正角速度及び前記第2の補正角速度の更新を停止し、
前記情報出力手段は、最後に前記更新された第1の補正角速度及び第2の補正角速度の情報を、前記第2の情報として出力する入力装置。 - 請求項72に記載の入力装置であって、
前記停止手段は、ユーザが前記情報出力手段による前記所定の処理の停止及び開始を切り替えるためのスイッチを有する入力装置。 - 請求項72に記載の入力装置であって、
前記停止手段は、前記加速度検出面が、絶対的な垂直面から傾いたときの、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルの量が閾値以下である場合、前記所定の処理を停止し、
前記開始手段は、前記合成加速度ベクトル量が前記閾値を超えた場合、前記所定の処理を開始する入力装置。 - 請求項77に記載の入力装置であって、
前記停止手段は、前記所定の処理として前記角度の算出を停止し、
前記入力装置は、前記角度の算出を停止したときの第1の角度と、前記角度の算出を再開したときの第2の角度との角度差が、閾値以上であるか否かを判定する判定手段をさらに具備し、
前記情報出力手段は、前記角度差が前記閾値以上であった場合、前記第2の角度に180deg加算した第3の角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正する入力装置。 - 請求項78に記載の入力装置であって、
前記角度の算出を停止したとき及び該角度の算出を再開したときにおける前記第1の角速度のそれぞれの方向が同じであるか否かを判定する角速度方向判定手段をさらに具備し、
前記情報出力手段は、前記第1の角速度の方向が同じである場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正する入力装置。 - 請求項78に記載の入力装置であって、
前記角度の算出を停止したときの、前記第1の角速度及び前記第2の角速度の第1の合成角速度ベクトル量と、前記角度の算出を再開したときの前記第1の角速度及び前記第2の角速度の第2の合成角速度ベクトル量との差が閾値以上である否かを判定する角速度ベクトル判定手段をさらに具備し、
前記情報出力手段は、前記第1及び第2の合成角速度ベクトル量の差が閾値以上である場合、前記角度の算出を再開したときの前記第2の角度に180deg加算した角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正する入力装置。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段とを備える入力装置から出力された入力情報に応じて、画面上に表示されるポインタを制御する制御装置であって、
前記第1の加速度、前記第2の加速度、前記第1の角速度及び前記第2の角速度の情報を、前記入力情報として受信する受信手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記第1の補正角速度及び前記第2の補正角速度に応じた、前記ポインタの前記画面上の座標情報を生成する座標情報生成手段と、
前記情報出力手段による所定の処理を停止させることが可能であり、前記所定の処理を停止させているとき、前記情報出力手段により、前記第1の情報とは異なる第2の情報を出力させる停止手段と
を具備する制御装置。 - 請求項81に記載の制御装置であって、
前記情報出力手段による前記所定の処理を再開させる開始手段をさらに具備する制御装置。 - 請求項82に記載の制御装置であって、
前記停止手段は、ユーザが前記情報出力手段による前記所定の処理の停止及び開始を切り替えるための切り替え手段を有する制御装置。 - 加速度センサを有し、前記加速度センサを用いて、第1の軸に沿う方向の入力装置の第1の加速度、及び、前記第1の軸に沿う方向とは異なる第2の軸の方向の前記入力装置の第2の加速度を出力する加速度出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記第1の軸及び前記第2の軸を含む前記加速度センサの加速度検出面に対して所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記情報出力手段による所定の処理を停止させることが可能であり、前記所定の処理を停止させているとき、前記情報出力手段により、前記第1の情報とは異なる第2の情報を出力させる停止手段と、
前記第1及び第2の補正角速度に応じた、画面上に表示されるポインタの前記画面上の座標情報を生成する座標情報生成手段と
を具備するハンドヘルド装置。 - 第1の軸及び前記第1の軸とは異なる第2の軸にそれぞれ沿う方向の入力装置の動きの情報を出力する動き情報出力手段と、
第3の軸の回りの前記入力装置の第1の角速度、及び、前記第3の軸とは異なる第4の軸の回りの前記入力装置の第2の角速度を出力する角速度出力手段と、
前記動き情報に含まれる第1の加速度及び第2の加速度であって、前記第1の軸に沿う方向の前記入力装置の第1の加速度及び前記第2の軸に沿う方向の前記入力装置の第2の加速度の検出面である、前記第1の軸及び前記第2の軸を含む加速度検出面に対して、所定の角度を持つ第5の軸の回りの角度であって、前記第1の加速度及び前記第2の加速度の合成加速度ベクトルと、前記加速度検出面内の基準軸との間の角度を、前記第1の加速度及び前記第2の加速度に基いて算出し、前記算出された角度に応じた回転座標変換により、前記第1の角速度及び前記第2の角速度をそれぞれ補正し、該補正により得られる第1の補正角速度及び第2の補正角速度を含む第1の情報を少なくとも出力する情報出力手段と、
前記出力された動き情報が、重力加速度成分と前記入力装置の動きにより生じる慣性加速度成分とを含む場合に、前記慣性加速度成分に起因する前記算出された角度の変動を抑制する抑制手段と
を具備する入力装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009522628A JP5293603B2 (ja) | 2007-07-06 | 2008-07-04 | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007178731 | 2007-07-06 | ||
JP2007178731 | 2007-07-06 | ||
JP2007267045 | 2007-10-12 | ||
JP2007267045 | 2007-10-12 | ||
JP2009522628A JP5293603B2 (ja) | 2007-07-06 | 2008-07-04 | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 |
PCT/JP2008/062190 WO2009008372A1 (ja) | 2007-07-06 | 2008-07-04 | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009008372A1 true JPWO2009008372A1 (ja) | 2010-09-09 |
JP5293603B2 JP5293603B2 (ja) | 2013-09-18 |
Family
ID=40228544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009522628A Expired - Fee Related JP5293603B2 (ja) | 2007-07-06 | 2008-07-04 | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8416186B2 (ja) |
EP (1) | EP2184581A4 (ja) |
JP (1) | JP5293603B2 (ja) |
KR (1) | KR20100038279A (ja) |
CN (1) | CN101627281B (ja) |
TW (1) | TW200925946A (ja) |
WO (1) | WO2009008372A1 (ja) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI361095B (en) * | 2007-03-23 | 2012-04-01 | Yu Tuan Lee | Remote-controlled motion apparatus with acceleration self-sense and remote control apparatus therefor |
JP5155117B2 (ja) * | 2008-11-21 | 2013-02-27 | ラピスセミコンダクタ株式会社 | 重力軸判定装置及びこれを用いたモバイル端末装置 |
KR101554958B1 (ko) * | 2009-03-06 | 2015-09-22 | 삼성전자주식회사 | 비주얼 코드를 이용한 원격 조작 방법 및 그 방법을 수행하는 장치 |
US8979653B2 (en) | 2009-03-30 | 2015-03-17 | Nintendo Co., Ltd. | Computer readable storage medium having information processing program stored thereon and information processing apparatus |
US9427657B2 (en) * | 2009-03-30 | 2016-08-30 | Nintendo Co., Ltd. | Computer readable storage medium having game program stored thereon and game apparatus |
US8956229B2 (en) * | 2009-03-30 | 2015-02-17 | Nintendo Co., Ltd. | Computer readable storage medium having game program stored thereon and game apparatus |
JP5624726B2 (ja) * | 2009-03-30 | 2014-11-12 | 任天堂株式会社 | ゲームプログラムおよびゲーム装置 |
JP5612826B2 (ja) * | 2009-04-10 | 2014-10-22 | 任天堂株式会社 | ゲームプログラムおよびゲーム装置 |
US8974301B2 (en) * | 2009-03-30 | 2015-03-10 | Nintentdo Co., Ltd. | Computer readable storage medium having game program stored thereon and game apparatus |
WO2011003218A1 (zh) * | 2009-07-07 | 2011-01-13 | Han Zheng | 一种加速度动作识别系统及其方法 |
KR20110035609A (ko) * | 2009-09-30 | 2011-04-06 | 삼성전자주식회사 | 움직임 감지 장치 및 방법 |
KR101663833B1 (ko) * | 2010-01-13 | 2016-10-07 | 엘지전자 주식회사 | 공간 리모컨을 이용한 디스플레이장치 및 그의 제어 방법 |
CN102141845B (zh) * | 2010-02-02 | 2013-04-03 | 旺玖科技股份有限公司 | 三维空间运动感测方法 |
JP5540850B2 (ja) * | 2010-04-09 | 2014-07-02 | トヨタ自動車株式会社 | 姿勢推定装置、方法及びプログラム |
JP5146512B2 (ja) | 2010-10-13 | 2013-02-20 | オムロン株式会社 | 制御装置、制御システムおよび制御方法 |
US9387361B2 (en) * | 2010-12-20 | 2016-07-12 | Seiko Epson Corporation | Swing analyzing apparatus |
JP2012141930A (ja) | 2011-01-06 | 2012-07-26 | Sony Corp | 情報処理装置、情報処理システム及び情報処理方法 |
WO2012096647A1 (en) * | 2011-01-10 | 2012-07-19 | Ingersoll-Rand Company | Door lock including sensor |
TW201242324A (en) * | 2011-04-01 | 2012-10-16 | Askey Computer Corp | System and method for testing and simulating state |
CN102760027B (zh) * | 2011-04-27 | 2016-08-17 | 联想(北京)有限公司 | 一种显示处理方法、装置及电子设备 |
TWI515632B (zh) | 2012-06-26 | 2016-01-01 | 緯創資通股份有限公司 | 隨觸即用輸入裝置以及操作方法 |
US8957850B2 (en) * | 2012-07-30 | 2015-02-17 | Harris Corporation | Hand-held communication devices with finger navigation user interface |
CN102945088B (zh) * | 2012-10-19 | 2015-11-25 | 小米科技有限责任公司 | 实现终端模拟鼠标操作设备的方法、装置及移动终端 |
CN102981740A (zh) * | 2012-11-13 | 2013-03-20 | 广东欧珀移动通信有限公司 | 一种移动终端输入法切换方法 |
CN103116411B (zh) * | 2013-02-05 | 2015-12-09 | 上海飞智电子科技有限公司 | 定位指针位置的方法及系统 |
CN103268159B (zh) * | 2013-05-22 | 2016-07-06 | 中国农业大学 | 基于三维空间的演示屏指针定位系统及方法 |
CN103557862A (zh) * | 2013-10-29 | 2014-02-05 | 南京邮电大学 | 一种移动终端运动轨迹检测方法 |
JP6269316B2 (ja) | 2014-01-08 | 2018-01-31 | 富士通株式会社 | 入力装置、入力方法および入力プログラム |
US9529445B2 (en) | 2014-01-08 | 2016-12-27 | Fujitsu Limited | Input device and input method |
JP6504058B2 (ja) | 2014-01-08 | 2019-04-24 | ソニー株式会社 | 情報処理システム、情報処理方法およびプログラム |
US9575564B2 (en) | 2014-06-17 | 2017-02-21 | Chief Architect Inc. | Virtual model navigation methods and apparatus |
US10724864B2 (en) | 2014-06-17 | 2020-07-28 | Chief Architect Inc. | Step detection methods and apparatus |
US9589354B2 (en) | 2014-06-17 | 2017-03-07 | Chief Architect Inc. | Virtual model viewing methods and apparatus |
US9595130B2 (en) * | 2014-06-17 | 2017-03-14 | Chief Architect Inc. | Virtual model navigation methods and apparatus |
CN105278704A (zh) * | 2014-07-17 | 2016-01-27 | 致伸科技股份有限公司 | 触控笔 |
US9297659B2 (en) | 2014-07-29 | 2016-03-29 | Chung Hua University | Composite navigation system |
TWI509223B (zh) * | 2014-07-29 | 2015-11-21 | Univ Chung Hua | 複合式導航系統 |
US10690493B2 (en) * | 2016-08-18 | 2020-06-23 | Myriad Sensors, Inc. | Wireless sensor device and software system for measuring linear position of a rotating object |
WO2018223381A1 (zh) * | 2017-06-09 | 2018-12-13 | 厦门美图之家科技有限公司 | 一种视频防抖方法及移动设备 |
JP6991652B2 (ja) * | 2017-09-21 | 2022-01-12 | 株式会社ミツトヨ | 測定器およびその制御方法 |
US11886182B2 (en) * | 2018-12-31 | 2024-01-30 | Tomahawk Robotics, Inc. | Systems and methods of detecting intent of spatial control |
CN110119226B (zh) * | 2019-05-22 | 2023-03-28 | 深圳市绘王动漫科技有限公司 | 手写输入装置、手写输入系统及手写输入方法 |
CH716570A2 (de) * | 2019-09-09 | 2021-03-15 | Andre Reber | Verfahren zur Verbesserung der Sehfähigkeit einer sehbehinderten Person mit einer portablen Sehhilfe. |
CN111078029A (zh) * | 2019-12-05 | 2020-04-28 | 广州视源电子科技股份有限公司 | 空中鼠标信息确定方法、装置、设备及存储介质 |
CN111221420B (zh) * | 2020-01-13 | 2021-07-30 | 深圳大学 | 一种基于智能手表的2d移动轨迹识别方法和系统 |
CN112148139B (zh) * | 2020-09-28 | 2022-07-26 | 联想(北京)有限公司 | 一种姿态识别方法和计算机可读存储介质 |
DE102021208904A1 (de) | 2021-08-13 | 2023-02-16 | Festool Gmbh | Elektrisch betreibbares Gerät und Verfahren |
JP2024066194A (ja) * | 2022-11-01 | 2024-05-15 | パナソニックオートモーティブシステムズ株式会社 | 制御装置および制御方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4839838A (en) * | 1987-03-30 | 1989-06-13 | Labiche Mitchell | Spatial input apparatus |
JPH0644005A (ja) * | 1992-01-24 | 1994-02-18 | Seiko Instr Inc | 座標入力装置 |
US5453758A (en) * | 1992-07-31 | 1995-09-26 | Sony Corporation | Input apparatus |
JP3857504B2 (ja) | 1993-05-21 | 2006-12-13 | ソニー株式会社 | 入力装置、制御システム |
JPH09106322A (ja) * | 1995-10-09 | 1997-04-22 | Data Tec:Kk | ヘッドマウントディスプレイにおける姿勢角検出装置 |
JP4033929B2 (ja) | 1996-05-27 | 2008-01-16 | 株式会社リコー | ペン型入力装置 |
JP3710603B2 (ja) | 1997-07-25 | 2005-10-26 | 株式会社リコー | ペン型入力装置 |
JP3748483B2 (ja) | 1997-09-12 | 2006-02-22 | 株式会社リコー | 姿勢入力装置、姿勢入力機能を備えるペン型入力装置及びそのペン型入力装置を有するペン型入力システム |
JPH11249185A (ja) * | 1998-03-04 | 1999-09-17 | Nikon Corp | カメラシステム及び交換レンズ |
JP2002023919A (ja) * | 2000-07-07 | 2002-01-25 | Olympus Optical Co Ltd | 姿勢検出装置及び操作入力装置 |
KR100408518B1 (ko) * | 2001-04-12 | 2003-12-06 | 삼성전자주식회사 | 컴퓨터용 전자펜 데이타 입력장치 및 좌표 측정 방법 |
JP3818140B2 (ja) * | 2001-12-04 | 2006-09-06 | 株式会社デンソー | 乗員保護用の車両傾斜角検出装置 |
KR100552688B1 (ko) * | 2003-09-08 | 2006-02-20 | 삼성전자주식회사 | 관성 항법 시스템의 자세 보상 방법 및 장치, 이를 이용한관성 항법 시스템의 위치 계산 방법 및 장치 |
US7489299B2 (en) | 2003-10-23 | 2009-02-10 | Hillcrest Laboratories, Inc. | User interface devices and methods employing accelerometers |
JP3868416B2 (ja) * | 2003-11-06 | 2007-01-17 | 松下電器産業株式会社 | 角速度補正装置 |
ES2384572T3 (es) * | 2004-04-30 | 2012-07-09 | Hillcrest Laboratories, Inc. | Dispositivos apuntadores en el espacio libre con compensación de inclinación y usabilidad mejorada |
JP2006058049A (ja) * | 2004-08-18 | 2006-03-02 | Nissin Kogyo Co Ltd | 車載用装置 |
JP2006072516A (ja) * | 2004-08-31 | 2006-03-16 | Aichi Micro Intelligent Corp | 入力支援装置及び、この入力支援装置を組み込んだ携帯電話 |
US8157651B2 (en) * | 2005-09-12 | 2012-04-17 | Nintendo Co., Ltd. | Information processing program |
KR100827236B1 (ko) * | 2006-05-23 | 2008-05-07 | 삼성전자주식회사 | 포인팅 디바이스, 포인터 이동 방법 및 상기 포인터를디스플레이하는 디스플레이 장치 |
JP4582116B2 (ja) * | 2007-06-06 | 2010-11-17 | ソニー株式会社 | 入力装置、制御装置、制御システム、制御方法及びそのプログラム |
TWI337320B (en) * | 2007-08-10 | 2011-02-11 | Ind Tech Res Inst | An input control apparatus and an interactive system using the same |
US8432365B2 (en) * | 2007-08-30 | 2013-04-30 | Lg Electronics Inc. | Apparatus and method for providing feedback for three-dimensional touchscreen |
JP5315857B2 (ja) * | 2008-08-22 | 2013-10-16 | ソニー株式会社 | 入力装置、制御システム及び制御方法 |
-
2008
- 2008-07-04 US US12/522,137 patent/US8416186B2/en not_active Expired - Fee Related
- 2008-07-04 EP EP08777905A patent/EP2184581A4/en not_active Withdrawn
- 2008-07-04 CN CN2008800017791A patent/CN101627281B/zh not_active Expired - Fee Related
- 2008-07-04 JP JP2009522628A patent/JP5293603B2/ja not_active Expired - Fee Related
- 2008-07-04 WO PCT/JP2008/062190 patent/WO2009008372A1/ja active Application Filing
- 2008-07-04 TW TW097125488A patent/TW200925946A/zh not_active IP Right Cessation
- 2008-07-04 KR KR1020097013480A patent/KR20100038279A/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO2009008372A1 (ja) | 2009-01-15 |
KR20100038279A (ko) | 2010-04-14 |
TWI372989B (ja) | 2012-09-21 |
CN101627281B (zh) | 2012-12-12 |
US20100103096A1 (en) | 2010-04-29 |
CN101627281A (zh) | 2010-01-13 |
TW200925946A (en) | 2009-06-16 |
EP2184581A4 (en) | 2012-02-29 |
US8416186B2 (en) | 2013-04-09 |
EP2184581A1 (en) | 2010-05-12 |
JP5293603B2 (ja) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5293603B2 (ja) | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 | |
JP4325707B2 (ja) | 入力装置、制御装置、制御システム及び制御方法 | |
JP4582116B2 (ja) | 入力装置、制御装置、制御システム、制御方法及びそのプログラム | |
JP5440167B2 (ja) | 入力装置、制御装置、制御方法及びハンドヘルド装置 | |
JP5201146B2 (ja) | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 | |
JP5315857B2 (ja) | 入力装置、制御システム及び制御方法 | |
TWI408572B (zh) | Information processing device, input device, information processing system, information processing method and computer readable storage medium | |
JP5440176B2 (ja) | 入力装置、制御装置、制御システム、ハンドヘルド装置及び制御方法 | |
JPWO2009072583A1 (ja) | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 | |
JPWO2009035005A1 (ja) | 入力装置、制御装置、制御システム及び制御方法 | |
JP2009140107A (ja) | 入力装置及び制御システム | |
JP2010218260A (ja) | 入力装置、制御装置、制御システム及び制御方法 | |
JPWO2009072471A1 (ja) | 入力装置、制御装置、制御システム、制御方法及びハンドヘルド装置 | |
JP2010152587A (ja) | 入力装置、制御システム、ハンドヘルド装置及び校正方法 | |
JP2010157106A (ja) | 入力装置、制御装置、ハンドヘルド装置、制御システム及び制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110610 |
|
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: 20130514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130527 |
|
LAPS | Cancellation because of no payment of annual fees |