以下に、本発明の一実施形態に係る情報処理装置及びその操作方法の一例を、図面を参照しながら下記の順で説明する。ただし、本発明の構成はこれに限定されない。
1.情報処理装置の基本構成例
2.ジェスチャー機能の処理ブロック
3.ジェスチャー機能の概要及び動作原理
4.ジェスチャー機能の処理例
<1.情報処理装置の基本構成例>
[情報処理装置の外観構成]
図1に、本発明の一実施形態に係る情報処理装置の外観斜視図を示す。なお、本実施形態では、情報処理装置として、ノート型PCを例に挙げて説明するが、本発明はこれに限定されず、ジェスチャー機能を備える任意の情報処理装置に本発明は適用可能である。
情報処理装置100の装置本体100aは、本体部1と、表示部2と、2つのヒンジ3とで構成される。なお、図1に示す例では、2つのヒンジ3が本体部1の表示部2側の長辺端部1aの両端付近に取り付けられ、表示部2は、この2つのヒンジ3を介して本体部1に取り付けられる。また、表示部2は、本体部1に対して、2つのヒンジ3の中心間を繋ぐ線を中心軸にして回転可能に取り付けられており、この表示部2の回転動作により表示部2が本体部1に対して開閉される。なお、本実施形態では、本体部1及び表示部2間の開き角度は180度未満であり、最大でも約120〜140度程度とする。
本体部1は、その上面側(表示部2と対向する側)の部分を構成するパームレストユニット4(キーボードユニット)と、本体部1の底面側の部分を構成する本体ユニット5とを備える。本体部1は、パームレストユニット4と本体ユニット5とが一体的に組み合わされて構成される。パームレストユニット4及び本体ユニット5は、ともに複数の部材により構成されるがともに外装表面に目立つネジ等は形成されていない。
パームレストユニット4には、例えば、キーボード6、スティックポインタ7及び第1クリックボタン8等の操作子が設けられる。なお、スティックポインタ7は、例えば、後述の表示画面10に表示されたカーソル(ポインタ)の移動操作や表示画面10のスクロール操作を行う際に用いる操作子であり、パームレストユニット4の略中央付近に設けられる。
本体ユニット5には、図1には示さないが、例えば、複数の電子部品等が実装されたプリント基板、放熱ユニット、ハードディスクドライブなどのドライブ類等が搭載される。プリント基板には、例えば、CPU、メモリ、その他の電子部品が実装される。
さらに、本体ユニット5には、図1には示さないが、例えば後述する各種ジェスチャー機能で用いる加速度センサが搭載される。なお、加速度センサの配置位置は、任意の位置に配置することができ、例えば表示部2に設けてもよい。また、加速度センサを本体ユニット5に搭載する場合には、本体ユニット5に搭載される他の電子部品等との配置関係を考慮して適宜設定される。本実施形態では、例えば文字「R」のキーの下部付近に加速度センサを配置する。
表示部2は、筐体9と、筐体9の本体部1と対向する側の面に設けられた表示画面10、タッチパッド11及び第2クリックボタン12と、筐体9内部に設けられた所定の表示処理を行う表示処理ユニット(不図示)とを備える。
表示画面10は、例えば文字、画像等の種々の情報を表示するための画面である。タッチパッド11は、例えば、表示画面10に表示されたカーソル(ポインタ)の移動操作や表示画面10のスクロール操作を行う際に用いる操作子であり、本実施形態では、静電容量型のセンサを用いる。
[情報処理装置の内部構成]
次に、本実施形態の情報処理装置100の内部構成(ハードウェア構成)を、図2を参照しながら説明する。なお、図2は、情報処理装置100のハードウェアのブロック構成図である。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、ホストバス104と、ブリッジ105と、外部バス106と、インタフェース107とを備える。また、情報処理装置100は、入力装置108と、出力装置109と、ストレージ装置110と、ドライブ111と、接続ポート112と、通信装置113と、撮像装置114とを備える。さらに、情報処理装置100は、加速度センサ115と、マイクロコンピュータ21(以下、マイコン21という)とを備える。
CPU101(メインCPU)は、演算処理装置および制御装置として機能する。具体的には、CPU101は、ROM102、RAM103、ストレージ装置110、または、ドライブ111を介して接続されたリムーバブル記録媒体201に記録された各種プログラムに従って、情報処理装置100内の動作全般またはその一部を制御する。なお、本実施形態の情報処理装置100における後述のジェスチャー機能の実行処理もCPU101が制御する。
ROM102は、CPU101が使用するプログラムや演算パラメータ等を記憶する。RAM103は、CPU101で制御処理を行う際に使用するプログラムや、その実行において必要なパラメータ等を一時的に記憶する。
また、CPU101、ROM102及びRAM103は、CPUバス等の内部バス(不図示)により構成されるホストバス104を介して相互に接続される。そして、上述したプログラム及び演算パラメータ等のデータは、ホストバス104を介してCPU101、ROM102及びRAM103間で互いに入出力される。なお、ホストバス104は、ブリッジ105を介して、例えばPCI(Peripheral Component Interconnect/Interface)バス等の外部バス106に接続される。
入力装置108は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段で構成される。すなわち、上述した本体部1に設けられたスティックポインタ7及び第1クリックボタン8、並びに、表示部2に設けられたタッチパッド11及び第2クリックボタン12は、入力装置108内に含まれる。また、入力装置108は、例えば、赤外線やその他の電波を利用したリモートコントロール装置(いわゆる、リモコン)を含んでいてもよい。さらに、入力装置108は、例えば携帯電話やPDA(Personal Digital Assistants)等の外部接続機器202から直接操作可能な入力機能を備えていてもよい。
また、入力装置108は、例えば、上述した各種操作手段を用いてユーザにより実行された操作に対応する操作信号を生成し、その生成した操作信号をCPU101に出力する入力制御回路などを備える。CPU101は、入力装置108から出力された操作信号に基づいて、ユーザの行った操作に対応する処理を実行する。
出力装置109は、取得した情報をユーザに対して視覚的に通知することが可能な表示装置や、聴覚的に通知することが可能な音声出力装置などで構成される。すなわち、上述した表示部2に設けられた表示画面10は出力装置109内に含まれる。表示装置としては、例えば、CRT(Cathode-Ray Tube)ディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、EL(Electro-Luminescence)ディスプレイ装置及びランプ等を用いることができる。また、音声出力装置は、例えばスピーカ及びヘッドホン等で構成される。さらに、出力装置109は、例えば、プリンタ装置、携帯電話、ファクシミリなどを含んでいてもよい。
出力装置109は、情報処理装置100が行った各種処理により得られた結果を出力する。具体的には、出力装置109内に含まれる各種表示装置は、情報処理装置100が行った各種処理により得られた結果を、テキストまたはイメージとして表示する。また、出力装置109内に含まれる各種音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置110は、データ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。ストレージ装置110は、CPU101が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
ドライブ111は、記録媒体用リーダライタである。図2に示す例では、ドライブ111が情報処理装置100に内蔵されている例を示すが、本発明はこれに限定されず、ドライブ111が情報処理装置100に対して外付けされる構成にしてもよい。ドライブ111は、装着されたリムーバブル記録媒体201に記録された所定情報を読み出して、RAM103に出力する。また、ドライブ111は、装着されたリムーバブル記録媒体201に対して情報を書き込むこともできる。
なお、リムーバブル記録媒体201は、例えば磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等で構成される。より具体的には、リムーバブル記録媒体201は、例えば、DVD(Digital Versatile Disc)、BD(Blu-ray Disc:登録商標)、コンパクトフラッシュ(登録商標)カード、メモリースティック、または、SD(Secure Digital)メモリカード等で構成される。また、リムーバブル記録媒体201は、例えば、非接触型IC(Integrated Circuit)チップを搭載したICカードまたは外部の電子機器等であってもよい。
接続ポート112は、外部機器を情報処理装置100に直接接続するためのポートであり、例えば、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート等で構成される。さらに、接続ポート112は、例えば、RS−232Cポート、光オーディオ端子、HDMI(High-Definition Multimedia Interface(登録商標))ポート等で構成される。接続ポート112に外部接続機器202を接続することにより、情報処理装置100は、外部接続機器202から直接音響信号データや画像信号データを取得したり、外部接続機器202に音響信号データや画像信号データを提供したりすることができる。
通信装置113は、情報処理装置100を例えばネットワーク203に接続する際に必要な通信デバイス等で構成された通信インタフェースである。通信装置113は、例えば、有線もしくは無線LAN(Local Area Network)、Bluetooth(登録商標)、または、WUSB(Wireless USB)用の通信カード等を含む。さらに、通信装置113は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等も含む。情報処理装置100は、例えば、インターネットや他の通信機器との間で、通信装置113を介して、所定の情報を送受信することができる。なお、ネットワーク203は、通信装置113に有線または無線で接続されるネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信ネットワーク、ラジオ波通信ネットワークまたは衛星通信ネットワーク等である。
撮像装置114は、図示しないが、結像光学系と撮像素子とを備える。結像光学系によって被写体からの入射光(像光)を取り込んで、その像光が撮像素子上に結像される。そして、撮像素子は、結像された入射光の光量を電気信号に変換(光電変換)することにより、撮像画像を取得する。撮像素子から取得される撮像画像は、時系列に取得される動画であってもよいし、一時点において取得される静止画であってもよい。撮像素子は、例えば、CCD(Charge Coupled Device)型やMOS(Metal-Oxide Semiconductor)型のイメージセンサ等によって構成される。
加速度センサ115は、装置本体100aの姿勢(傾き)に関する情報(加速度)を検出する。本実施形態では、加速度センサ115として3軸加速度センサを用い、加速度センサ115で検出される各軸方向の加速度(重力加速度)成分に基づいて、装置本体100aの傾きを算出する。また、本実施形態では、図1に示すように、加速度センサ115のX軸方向を本体部1の長手方向とし、Y軸方向を本体部1の短手方向とし、そして、Z軸方向はキーボード6の形成面に直交する方向とする。
マイコン21は、従来のノート型PCと同様にキーボード制御や電源制御等の処理を行う。さらに、本実施形態では、マイコン21(ジェスチャー動作判別部)は、加速度センサ115に接続され、加速度センサ115で検出された各軸方向の加速度データを取得し、その取得した加速度データに基づいて、ジェスチャー機能の各種判別処理を行う。具体的には、マイコン21は、例えば、加速度センサ115で検出された各軸方向の加速度データを用いて後述するジェスチャー機能の動作原理により、情報処理装置100の保持状態の基準姿勢の判別及びユーザにより実行されたジェスチャー動作の特定を行う。なお、マイコン21により判別されたジェスチャー動作に対応する操作の実行処理は、CPU101内の後述する操作実行部22により行われる。
また、マイコン21は、ジェスチャー機能の実行時には、加速度センサ115の各種動作設定を初期化する。さらに、マイコン21は、ジェスチャー機能の実行時に、その旨の通知をCPU101内の後述する操作実行部22に対して行う。なお、マイコン21は、例えば、ジェスチャー判別に用いる各種閾値、加速度センサ115の初期化設定値等のデータが記憶されるROM(不図示)を備える。
本実施形態では、後述するように、ジェスチャー動作の判別時にマイコン21で行う演算処理及び処理アルゴリズム等を、より簡略化することができる。それゆえ、ノート型PCに従来から搭載されているキーボード制御や電源制御等の処理を行うためのマイコン21にジェスチャー機能の各種処理を負担させても、軽快なジェスチャー機能を実現することができる。
なお、上述した情報処理装置100の内部構成(ハードウェア構成)は一例であり、上記各構成要素を汎用的な部材を用いて構成してもよいし、各構成要素が対応する機能に特化したハードウェアにより構成されていてもよい。したがって、本実施形態を実施する時々の技術レベルに応じて、利用するハードウェア構成を適宜変更することができる。
<2.ジェスチャー機能の処理ブロック>
次に、本実施形態の情報処理装置100におけるジェスチャー機能を実行するための処理部の構成を、図3を参照しながら説明する。図3は、ジェスチャー機能で各種操作を行う際に必要な処理系統のブロック構成図である。なお、図3では、ジェスチャー機能の実行に必要な処理系統のみを示し、その他の構成は省略する。
ジェスチャー機能を実行するための処理部は、上述したマイコン21と、CPU101内に含まれる操作実行部22とで構成される。
操作実行部22は、所定のジェスチャー動作が行われたことを示すマイコン21からの通知を受け、そのジェスチャーを特定するための情報(以下、イベント要因という)をマイコン21から取得する。そして、操作実行部22は、取得したイベント要因に基づいて、判別されたジェスチャー動作に対応する処理を実行する。例えば、ジェスチャー機能として表示画面10のページ送りを例に挙げると、操作実行部22は、所定のジェスチャー動作が行われたことを示すマイコン21からの通知を受けると、表示部2を制御して表示画面10を所定方向にページ送りする。
なお、操作実行部22は、マイコン21からジェスチャーが行われたことを示す通知を受けて初めて、上述のような処理を実行する。それゆえ、CPU101内の処理フロー上では、操作実行部22はマイコン21の上位層として構成される。ただし、本発明は、これに限定されず、マイコン21と操作実行部22とが一体的に構成されていてもよい。
また、操作実行部22は、ジェスチャー機能の処理だけでなく、他の機能に対応する操作処理も実行する。
<3.ジェスチャー機能の概要及び動作原理>
[ジェスチャー機能の概要]
次に、本実施形態の情報処理装置100で実行可能なジェスチャー機能の概要を簡単に説明する。ノート型PCの小型化が進むと、その使用時の持ち方も複数種存在する。この場合、ジェスチャー機能も様々な持ち方に対応可能にする必要がある。本実施形態では、2種類の持ち方においてジェスチャー機能が実現可能な情報処理装置100の例を説明する。
その2種類の持ち方を、図4及び5に示す。図4は、情報処理装置100の本体部1の一方(図4上では右側)の短辺端部及び他方の短辺端部をそれぞれ右手及び左手で把持した状態(以下、この保持状態を横位置という)の様子を示す図である。一方、図5は、情報処理装置100を横位置の状態から90度回転させて保持した状態(以下、この保持状態を縦位置という)の様子を示す。
また、本実施形態では、図4または5に示す情報処理装置100の保持姿勢において、情報処理装置100を所定方向に傾ける(フリックする)ことにより、例えば表示ページのページ送り操作等の所定操作を実行するジェスチャー機能の例を説明する。なお、本実施形態では、情報処理装置100を横位置の状態から90度回転させた際には、表示画面10に表示される表示画像も90度回転するように設定されている。この回転処理は、CPU101が、加速度センサ115で検出される信号に基づいて行う。
[ジェスチャー機能の動作原理]
本実施形態では、加速度センサ115から得られる各軸の加速度成分に基づいて、図4または5に示す保持状態の基準姿勢を判定するとともに、情報処理装置100の基準姿勢からの姿勢変化(傾き)を判別する。そして、情報処理装置100は、その判別結果に対応するジェスチャー機能を実行する。以下、横位置及び縦位置の保持姿勢におけるジェスチャー機能の動作原理を、図面を参照しながら詳細に説明する。
(1)横位置の保持姿勢におけるジェスチャー機能
ユーザが、図4に示すように情報処理装置100を横位置に保持してジェスチャー機能を実行する際の動作原理を、図6(a)及び(b)、並びに、図7(a)及び(b)を参照しながら説明する。
なお、図6(a)は、情報処理装置100を横位置に保持してジェスチャー機能を実行する際の基準姿勢を示す情報処理装置100の正面図である。そして、図6(b)は、加速度センサ115から出力されるX軸方向の加速度Axの情報処理装置100の横位置の基準姿勢からの傾きに対する変化を示す特性図であり、横軸はX軸の基準姿勢からの傾き角度θであり、縦軸はX軸方向の加速度Axである。また、図7(a)は、情報処理装置100を横位置に保持してジェスチャー機能を実行した際の情報処理装置100の保持状態を示す正面図である。そして、図7(b)は、加速度センサ115から出力されるX軸方向の加速度Axの情報処理装置100の基準姿勢からの傾きに対する変化を示す特性図であり、横軸はX軸の基準姿勢からの傾き角度θであり、縦軸はX軸方向の加速度Axである。
ただし、図6(b)及び図7(b)に示すように、本実施形態では、加速度センサ115から出力される各軸方向の加速度は、各軸の傾きに応じて正弦波状に変化する加速度センサ115を用いる。また、図6(a)及び図7(a)では、説明を簡略化するため、情報処理装置100を保持するユーザの手の図示は省略する。
ユーザが情報処理装置100を横位置の基準姿勢で保持した場合には、図6(a)に示すように、加速度センサ115のX軸が水平方向の軸(以下、水平軸という)と略一致するので、この場合のジェスチャー機能の判定軸はX軸とする。そして、本実施形態では、横位置におけるX軸の基準姿勢からの傾き方向を算出して、所定のジェスチャー機能を実行する。
横位置の保持姿勢におけるジェスチャー機能において、ユーザが、まず、情報処理装置100(装置本体100a)を基準姿勢で保持すると、図6(a)に示すようにX軸方向と水平方向が略一致する。この場合、加速度センサ115から出力されるX軸方向の加速度Axは略零となる(図6(b)中の黒丸印参照)。
次いで、ユーザが、図7(a)に示すように、情報処理装置100を基準姿勢(水平軸)からユーザとの対向面内で時計方向に角度θ1だけ回転させて加速度センサ115のX軸を傾ける。この傾け動作(ジェスチャー動作)により、加速度センサ115から出力されるX軸方向の加速度Axは、図7(b)に示すように、X軸の水平軸からの傾き角度θ1に対応するプラスの加速度値になる(図7(b)中の黒丸印参照)。また、図示しないが、ユーザが、情報処理装置100を基準姿勢からユーザとの対向面内で反時計方向に回転させた場合には、加速度センサ115から出力されるX軸方向の加速度Axはマイナスの加速度値となる。
そして、マイコン21は、加速度センサ115から出力されるX軸方向の加速度Axを所定の閾値と比較してユーザのジェスチャー(時計方向の傾け動作または反時計方向の傾け動作)を特定し、操作実行部22は、そのジェスチャーに対応する処理を実行する。なお、この例では、閾値として、情報処理装置100をユーザとの対向面内で時計方向(右回り方向)に傾けた際の閾値(プラス値)及び反時計方向(左回り方向)に傾けた際の閾値(マイナス値)の2種類を用意する。
ここで、情報処理装置100を横位置に保持して行うジェスチャー機能として表示画面10のページ送りを例に挙げ、その動作例を簡単に説明する。例えば、ユーザが情報処理装置100を横位置の基準姿勢から時計方向に傾けた場合、そのユーザのジェスチャーをマイコン21により判別して、次のページの画像を表示する。逆に、ユーザが情報処理装置100を横位置の基準姿勢から反時計方向に傾けた場合、そのユーザのジェスチャーをマイコン21により判別して、前のページの画像を表示する。
(2)縦位置の保持姿勢におけるジェスチャー機能
ユーザが、図5に示すように情報処理装置100を縦位置の状態に保持してジェスチャー機能を実行する際の動作原理を、図面を参照しながら説明する。ただし、本実施形態では、情報処理装置100を縦位置に保持してジェスチャー機能を実行する際のジェスチャー動作は、加速度センサ115のX軸を中心軸とする回転動作とする。
また、情報処理装置100を縦位置に保持してジェスチャー機能を実行する際には、通常、情報処理装置100のキーボード形成面側のユーザとの対向面を全開にした状態で実行することが多くなると想定される。それゆえ、以下に説明する縦位置におけるジェスチャー機能の動作原理では、情報処理装置100のキーボード形成面側のユーザとの対向面を全開にした状態、すなわち、本体部1及び表示部2間の開き角度を最大にした場合の動作を説明する。
情報処理装置100を縦位置で保持する場合、2種類の基準姿勢がある。図8(a)及び(b)のその保持例を示す。図8(a)及び(b)は、ユーザが情報処理装置100を縦位置の基準姿勢で保持した際のユーザ側から見た正面図である。ただし、図8(a)及び(b)では、説明を簡略化するため、情報処理装置100を保持するユーザの手の図示は省略する。
情報処理装置100を縦位置で保持する際、図8(a)に示すように、表示部2がユーザ側から見て本体部1の右側に位置するように保持する場合と、図8(b)に示すように、表示部2がユーザ側から見て本体部1の左側に位置するように保持する場合とがある。本実施形態では、いずれの縦位置の姿勢においても、同じ原理でジェスチャー機能を実行することができるので、ここでは、図8(a)に示す縦位置の保持姿勢におけるジェスチャー機能の動作原理のみを詳細に説明する。
図9(a)及び(b)に、情報処理装置100を縦位置で保持した場合の加速度センサ115の各軸方向の加速度成分のベクトルの関係を示す。なお、図9(a)は、ユーザが情報処理装置100を縦位置で保持した際の背面斜視図である。また、図9(b)は、加速度センサ115から出力されるY軸方向の加速度Ay及びZ軸方向の加速度Azと、Y軸方向の加速度ベクトルy及びZ軸方向の加速度ベクトルzの合成ベクトルYZとの関係を示す図である。なお、図9(b)において、横軸はY軸方向の加速度Ayであり、縦軸はZ軸方向の加速度Azである。
本実施形態では、上述のように、情報処理装置100を縦位置に保持してジェスチャー機能を実行する際のジェスチャー動作を、X軸を中心軸とする回転動作とするので、X軸方向の加速度Axは変化しない。また、加速度センサ115で得られるX軸、Y軸及びZ軸方向の加速度ベクトルにより合成されるベクトルは、図9(a)に示すように重力ベクトルGと一致する。それゆえ、加速度センサ115のY軸方向の加速度ベクトルy及びZ軸方向の加速度ベクトルzで合成される合成ベクトルYZの大きさは、情報処理装置100のX軸に対する回転量及び回転方向に関係なく一定になる。その結果、合成ベクトルYZの軌跡は、図9(b)中の破線で示すように、円形の軌跡となる。これは、情報処理装置100を縦位置に保持した場合においても、1つの判定軸の傾き変化により、ジェスチャー動作を判別することができることを表している。
ここで、図10(a)及び(b)に、ユーザが情報処理装置100を縦位置の基準姿勢で保持した際の下面図及び加速度センサ115から出力されるY軸方向の加速度Ayの特性をそれぞれ示す。なお、図10(b)に示す特性の横軸はY軸の水平軸からの傾き角度φであり、縦軸はY軸方向の加速度Ayである。
ユーザが情報処理装置100を縦位置の基準姿勢で保持した場合、通常、図10(a)に示すように、水平軸と本体部1の短手方向の軸(Y軸)との間の角度と、水平軸と表示部2の短手方向の軸との間の角度とはほぼ同じになる。すなわち、ユーザが情報処理装置100を縦位置の基準姿勢で保持した状態では、通常、水平方向に直交する方向に対して、本体部1及び表示部2はほぼ対称的に傾斜する。なお、水平軸及びY軸間の角度φは、本体部1及び表示部2間の最大開き角度φaから予め算出することができる。例えば、本体部1及び表示部2間の最大開き角度φaを約120〜140度程度とした場合、水平軸及びY軸間の角度φは、約20〜30度程度となる。
本実施形態では、X軸を中心軸とする回転方向への図10(a)に示す縦位置の基準姿勢からの情報処理装置100の傾きを判定してジェスチャー判定を行う。ただし、図10(a)に示す縦位置の基準姿勢では、加速度センサ115のY軸が水平軸に対して角度φだけ傾いているので、図10(b)の黒丸印に示すように、Y軸方向の加速度Ayは略零にならない。それゆえ、この場合、図10(a)に示す基準姿勢において、Y軸方向の加速度Ayが略零になるように、角度φに対応する加速度値を常にY軸方向の加速度Ayから差し引いて判定をする必要がある。
しかしながら、本実施形態では、そのような余計な演算を排除するため、水平軸(水平方向)と平行な方向の仮想軸を判定軸として新たに設定し、その仮想軸の傾き方向を判定してジェスチャー動作の判別を行う。図10(a)に示す例では、情報処理装置100を全開にした状態で、本体部1の表示部2側とは反対側の長辺端部の所定の基準点Aと、その基準点Aと同じY−Z面内における表示部2の本体部1側とは反対側の長辺端部の基準点Bとを結ぶ方向を仮想軸とする。すなわち、本実施形態では、X軸と直交する面(Y−Z面)内において、水平方向と平行な仮想軸を設定する。このように仮想軸を設定すると、後述するように、縦位置の基準姿勢において、その仮想軸上の加速度は略零となる。
なお、以下では、図10(a)中の基準点A及び基準点Bを結ぶ方向の仮想軸を仮想Y軸という。また、本実施形態では、図10(a)に示す縦位置において、水平軸を含む水平面に直交する仮想軸を仮想Z軸という。図11に、仮想Y軸と仮想Z軸との関係を示す。図11に示すように、仮想Y軸は水平軸と平行となり、仮想Y軸と仮想Z軸とは互いに直交する関係となる。
また、図12に、加速度センサ115から出力されるY軸方向の加速度Ay及びZ軸方向の加速度Azと、仮想Y軸上で得られる加速度Ay′との関係を示す。なお、図12中のベクトルyは加速度センサ115のY軸方向の加速度ベクトルであり、ベクトルzはZ軸方向の加速度ベクトルであり、そして、合成ベクトルYZはベクトルyとベクトルzとの合成ベクトルである。いま、ベクトルy及びベクトルzの大きさ(絶対値)をそれぞれAy及びAzとし、基準姿勢における仮想Y軸(水平軸)とY軸との間の角度をφとすると、仮想Y軸上で得られる加速度Ay′は下記式(1)で算出される。
上記式(1)中において、加速度Ay及びAzは、基準姿勢からジェスチャー動作により変化する。しかしながら、上記式(1)中の角度φは、上述のように、本体部1及び表示部2間の最大開き角度φa(既知)から予め算出されるパラメータであり、ジェスチャー動作により変化しない。すなわち、本実施形態では、上記式(1)中のcosφ及びsinφは定数として取り扱うことができる。それゆえ、本実施形態では、仮想Y軸上で得られる加速度Ay′を算出する際には三角関数の演算を行う必要がないので、その演算処理を簡略化することができ、マイコン21における演算処理の負担を軽減することができる。
次に、ユーザが、図8(a)に示すように情報処理装置100を縦位置に保持してジェスチャー機能を実行する際の動作原理を、図13(a)及び(b)、並びに、図14(a)及び(b)を参照しながら具体的に説明する。
なお、図13(a)は、情報処理装置100を縦位置の基準姿勢で保持した際の情報処理装置100の下面図である。そして、図13(b)は、上記式(1)で算出される仮想Y軸方向の加速度Ay′の情報処理装置100の縦位置の基準姿勢からの傾きに対する変化特性図であり、横軸は仮想Y軸の基準姿勢からの傾き角度φ′であり、縦軸は仮想Y軸方向の加速度Ay′である。また、図14(a)は、情報処理装置100を縦位置に保持してジェスチャー機能を実行した際の情報処理装置100の保持状態を示す下面図である。そして、図14(b)は、上記式(1)で算出される仮想Y軸方向の加速度Ay′の情報処理装置100の縦位置の基準姿勢からの傾きに対する変化特性図であり、横軸は仮想Y軸の基準姿勢からの傾き角度φ′であり、縦軸は仮想Y軸方向の加速度Ay′である。なお、図13(a)及び図14(a)では、説明を簡略化するため、情報処理装置100を保持するユーザの手の図示は省略する。
また、本実施形態の加速度センサ115では、上述のように、Y軸の傾き角度の変化に対する加速度Ayの変化、及び、Z軸の傾き角度の変化に対する加速度Azの変化はともに正弦波状となる。それゆえ、仮想Y軸の傾き角度φ′の変化に対する加速度Ay′の変化もまた、図13(b)及び図14(b)に示すように、正弦波状になる。
縦位置の保持姿勢におけるジェスチャー機能において、まず、ユーザが、図13(a)に示すように情報処理装置100(装置本体100a)を縦位置の基準姿勢で保持すると、加速度センサ115の仮想Y軸の方向が、水平軸の方向と略一致する。この場合、仮想Y軸方向の加速度Ay′は、図13(b)に示すように、略零になる(図13(b)中の黒丸印参照)。
次いで、ユーザが、図14(a)に示すように、情報処理装置100を縦位置の基準姿勢からX軸を中心軸にして一方の方向(図14(a)では時計方向)に角度φ1′だけ回転させて仮想Y軸を傾ける。この回転動作(ジェスチャー動作)により、仮想Y軸上の加速度Ay′は、仮想Y軸の傾き角度φ1′に対応するプラスの加速度値になる(図14(b)中の黒丸印参照)。また、図示しないが、ユーザが情報処理装置100を縦位置の基準姿勢からX軸を中心軸にして反時計方向に回転させて仮想Y軸を傾けると、仮想Y軸上の加速度Ay′は、仮想Y軸の傾き角度に対応するマイナスの加速度値となる。
そして、この際、マイコン21は、上記式(1)で算出された仮想Y軸上の加速度Ay′を所定の閾値と比較してユーザのジェスチャー(時計方向の回転動作または反時計方向の回転動作)を特定し、操作実行部22は、そのジェスチャーに対応する処理を実行する。なお、この例では、閾値として、情報処理装置100を、X軸を中心軸にして時計方向に回転させた際の閾値(プラス値)及び反時計方向に回転させた際の閾値(マイナス値)の2種類を用意する。
ここで、情報処理装置100を縦位置に保持して行うジェスチャー機能として表示画面10のページ送りを例に挙げ、その動作例を簡単に説明する。例えば、ユーザが情報処理装置100を縦位置の基準姿勢から時計方向に回転させた場合、そのユーザのジェスチャーをマイコン21により判別して、次のページの画像を表示する。逆に、ユーザが情報処理装置100を縦位置の基準姿勢から反時計方向に回転させた場合、そのユーザのジェスチャーをマイコン21により判別して、前のページの画像を表示する。
なお、表示部2がユーザ側から見て本体部1の左側に位置するように情報処理装置100を保持した姿勢(図8(b)に示す姿勢)でジェスチャー機能を実現するためには、上記原理と同様にして、仮想軸を設定すればよい。
上述のように、本実施形態では、ユーザが情報処理装置100を縦位置に保持してジェスチャー機能を実行する場合にも、水平方向(水平軸)が基準となるように仮想軸を設定する。この場合、情報処理装置100を横位置で保持した際のジェスチャー機能の動作と同様に、一つの判定軸を用いてジェスチャー判定を行うことができる。
それゆえ、情報処理装置100を縦位置に保持してジェスチャー機能を実行する際に上述のように仮想軸を設定した場合、ジェスチャー機能の処理手法やその処理に利用するデータ等を情報処理装置100の持ち方に関係なく共通化することができる。この場合、情報処理装置100の保持姿勢(持ち方)に関係なく、ジェスチャー機能の処理アルゴリズム等を共通化してより簡略化することができる。
<4.ジェスチャー機能の処理例>
[ジェスチャー動作の処理手順]
次に、本実施形態の情報処理装置100におけるジェスチャー動作の全体的な処理の流れを、図15を参照しながら説明する。なお、図15は、本実施形態におけるジェスチャー動作の処理手順の全体的な流れを示すフローチャートである。
まず、図15には示さないが、情報処理装置100は、例えば、ジェスチャー機能の処理モードを起動する。なお、このジェスチャー機能の処理モードの起動は、ユーザの所定操作により実行されるようにしてもよいし、情報処理装置100の起動と同時に自動的に起動するようにしてもよい。
次いで、マイコン21は、加速度センサ115の各種動作設定を初期化する(ステップS1)。これにより、加速度センサ115の各軸方向の加速度データをマイコン21で定期的に監視できるようになる。
次いで、マイコン21は、加速度センサ115から各軸方向の加速度データを取得する(ステップS2)。そして、マイコン21は、取得した各軸方向の加速度データに基づいて、情報処理装置100の基準姿勢の判別、及び、ユーザにより実行されたジェスチャー動作の特定を行う(ステップS3)。なお、このステップS3のジェスチャー動作の判別処理のより具体的な処理手順については、後で詳述する。
次いで、マイコン21は、ステップS3の判別結果に基づいて、情報処理装置100に対してユーザがジェスチャー動作を実行したか否かを判定する(ステップS4)。
ステップS4において、マイコン21が、ユーザによりジェスチャー動作が実行されていないと判定した場合、ステップS4はNO判定となる。この場合には、ステップS2に戻り、上述したステップS2以降の処理を繰り返す。
一方、ステップS4において、マイコン21が、ユーザによりジェスチャー動作が実行されたと判定した場合、ステップS4はYES判定となる。この場合、マイコン21は、操作実行部22にジェスチャー動作が実行されたことを通知する(ステップS5)。
次いで、操作実行部22は、マイコン21からのジェスチャー実行の通知を受け、実行されたジェスチャーを特定するイベント要因をマイコン21から取得する(ステップS6)。具体的には、操作実行部22は、傾け方向に関する情報(時計方向に回転させたか反時計方向に回転させたかを示す情報)をイベント要因としてマイコン21から取得する。
そして、操作実行部22は、取得したイベント要因に基づいて、そのジェスチャー動作の実行に必要な情報処理装置100内の各部を制御し、対応する処理を実行する(ステップS7)。次いで、ジェスチャー動作実行後、ステップS2に戻り、上述したステップS2以降の処理を繰り返す。本実施形態では、このようにして、ジェスチャー機能を実現する。
[ジェスチャー動作の判別処理の手順]
次に、図15中のステップS3で行うジェスチャー動作の判別処理のより具体的な手順を、図16を参照しながら説明する。なお、図16は、図15中のステップS3で行う判別処理の一例を示すフローチャートである。
図16に示す判別処理における情報処理装置100の基準姿勢の判別では、図6(a)に示す横位置の基準姿勢、並びに、図8(a)及び(b)に示す縦位置の基準姿勢の3種類を判別する。それゆえ、ここでは、上記ジェスチャー機能の動作原理で説明したように、加速度センサ115のX軸または仮想Y軸を判別軸とし、その判別軸の水平方向からの傾きを算出して、その算出結果に基づいて、ジェスチャー機能を実行する例を説明する。なお、以下では、図6(a)に示す横位置の基準姿勢を姿勢Aと称し、図8(a)及び(b)に示す2種類の縦位置の基準姿勢をそれぞれ姿勢B及び姿勢Cと称す。
図15中のステップS2でマイコン21が加速度センサ115の各軸方向の加速度データを取得した後、まず、マイコン21は、取得した加速度データに基づいて、現在の情報処理装置100の保持状態の基準姿勢を判別する(ステップS31)。
具体的には、ステップS31において、マイコン21は、例えばX軸方向の加速度Axに基づいて現在の情報処理装置100の基準姿勢を判別する。加速度センサ115から得られるX軸方向の加速度Axは、図6(b)に示すように、水平軸からのX軸の傾きに応じて正弦波状に変化する。それゆえ、情報処理装置100の保持姿勢が姿勢Aである場合には、X軸方向の加速度Axの値はゼロ付近の値となる。情報処理装置100の保持姿勢が姿勢Bである場合には、X軸方向の加速度Axの値はプラス値となる。また、情報処理装置100の保持姿勢が姿勢Cである場合には、X軸方向の加速度Axの値はマイナス値となる。
それゆえ、加速度センサ115から得られるX軸方向の加速度Axの値が、ゼロ付近の所定の範囲内であるか否かを判別することにより、保持姿勢が横位置(姿勢A)か縦位置(姿勢Bまたは姿勢C)を判別することができる。そして、保持姿勢が縦位置の場合には、さらに、X軸方向の加速度Axの正負を判別することにより姿勢Bと姿勢Cとを判別することができる。
次いで、マイコン21は、ステップS31で得られた情報処理装置100の基準姿勢の判別結果が姿勢Aであるか否かを判定する(ステップS32)。
ステップS31で得られた判別結果が姿勢Aである場合、ステップS32はYES判定となる。この場合、マイコン21は、姿勢Aにおけるジェスチャー動作の判別軸を設定する(ステップS33)。具体的には、情報処理装置100の基準姿勢が姿勢Aの場合、上記ジェスチャー機能の動作原理で説明したように、マイコン21は、ジェスチャー動作の判別軸をX軸に設定する。次いで、マイコン21は、姿勢Aにおけるジェスチャー動作の判別用閾値を設定する(ステップ34)。
そして、マイコン21は、取得したX軸方向の加速度Axと、ステップS34で設定した判別用閾値とを比較して、ユーザにより実行されたジェスチャー動作を特定する(ステップ40)。より具体的には、マイコン21は、取得したX軸方向の加速度Axの絶対値が閾値の絶対値以上であるか否かを判定することにより、ユーザによりジェスチャー動作が実行されたか否を判別する。さらに、この際、マイコン21は、加速度Axの正負を判別することによりジェスチャー動作時の情報処理装置100の傾け方向(回転方向)を特定する。その後は、図15で説明したステップS4以降の処理を繰り返す。
また、ステップS31で得られた判別結果が姿勢Aでない場合、ステップS32はNO判定となる。この場合、マイコン21は、ステップS31で得られた情報処理装置100の基準姿勢の判別結果が姿勢Bであるか否かを判定する(ステップS35)。
ステップS31で得られた判別結果が姿勢Bである場合、ステップS35はYES判定となる。この場合、マイコン21は、姿勢Bにおけるジェスチャー動作の判別軸を設定する(ステップS36)。具体的には、情報処理装置100の基準姿勢が姿勢Bの場合、上記ジェスチャー機能の動作原理で説明したように、マイコン21はジェスチャー動作の判別軸を仮想Y軸に設定する。次いで、マイコン21は、姿勢Bにおけるジェスチャー動作の判別用閾値を設定する(ステップS37)。
次いで、マイコン21は、ステップS2で取得した加速度データから上記式(1)に基づいて仮想Y軸方向の加速度Ay′を算出する。そして、マイコン21は、算出した仮想Y軸方向の加速度Ay′と、ステップS37で設定した判別用閾値とを比較して、ユーザにより所定のジェスチャー動作が行われたか否かを判定する(ステップ40)。より具体的には、マイコン21は、算出した仮想Y軸上の加速度Ay′の絶対値が閾値の絶対値以上であるか否かを判定することにより、ユーザによりジェスチャー動作が実行されたか否を判別する。さらに、この際、マイコン21は、加速度Ay′の正負を判別することによりジェスチャー動作時の情報処理装置100の傾け方向(回転方向)を特定する。その後は、図15で説明したステップS4以降の処理を繰り返す。
一方、ステップS31で得られた判別結果が姿勢Bでない場合、すなわち、ステップS31で得られた姿勢の判別結果が姿勢Cである場合、ステップS35はNO判定となる。この場合、マイコン21は、姿勢Cにおけるジェスチャー動作の判別軸を設定する(ステップS38)。具体的には、情報処理装置100の基準姿勢が姿勢Cの場合、マイコン21は、姿勢Bと同様に、ジェスチャー動作の判別軸を仮想Y軸に設定する。次いで、マイコン21は、姿勢Cにおけるジェスチャー動作の判別用閾値を設定する(ステップS39)。
次いで、マイコン21は、ステップS2で取得した加速度データから上記式(1)に基づいて仮想Y軸方向の加速度Ay′を算出する。そして、マイコン21は、算出された仮想Y軸方向の加速度Ay′と、ステップS39で設定した判別用閾値とを比較して、ユーザにより所定のジェスチャー動作が行われたか否かを判定する(ステップ40)。その後は、図15で説明したステップS4以降の処理を繰り返す。本実施形態では、このようにして、ジェスチャー動作時の情報処理装置100の基準姿勢の判別、及び、ジェスチャー動作の特定を行う。
[比較例]
ここで、比較のため、加速度センサを用いた従来のジェスチャー機能の処理手法を情報処理装置(ノート型PC)に適用した場合の例(比較例)を、図面を参照しながらより具体的に説明する。図17に、比較例におけるジェスチャー機能を実行するための処理部のブロック構成を示す。なお、図17に示すジェスチャー機能の処理ブロックにおいて、図3に示す上記実施形態のジェスチャー機能の処理ブロックと同様の構成には、同じ符号を付して示す。
比較例のジェスチャー機能を実行するための処理部は、キーボード制御や電源制御等の処理を行うマイコン301と、CPU101内に含まれる操作実行部302とで構成される。構成自体は、上記実施形態のジェスチャー機能の処理部(図3)と同様であるが、各部の機能は異なる。
比較例では、操作実行部302が、定期的に加速度センサ115で検出した加速度データを、マイコン301を介して取得し、ジェスチャー動作の判別も操作実行部302で行う。なお、比較例においても、操作実行部302は、上記実施形態と同様に、ジェスチャー機能の処理だけでなく、他の機能に対応する操作処理も実行する。
また、比較例におけるジェスチャー機能の処理手順を、図18を参照しながらより具体的に示す。なお、図18は、比較例におけるジェスチャー動作の処理手順の全体的な流れを示すフローチャートである。
まず、図18には示さないが、情報処理装置は、例えば、ジェスチャー機能の処理モードを起動する。次いで、マイコン301は、加速度センサ115の各種動作設定を初期化する(ステップS51)。次いで、操作実行部302は、マイコン301を介して加速度センサ115から各軸方向の加速度データを取得する(ステップS52)。
そして、操作実行部302は、取得した各軸方向の加速度データに基づいて、ジェスチャー動作の判別を行う(ステップS53)。次いで、操作実行部302は、ステップS53の判別結果に基づいて、情報処理装置に対してユーザにより所定のジェスチャー動作が実行されたか否かを判定する(ステップS54)。
ステップS54において、操作実行部302が、ユーザにより所定のジェスチャー動作が実行されていないと判定した場合、ステップS54はNO判定となる。この場合には、ステップS52に戻り、上述したステップS52以降の処理を繰り返す。
一方、ステップS54において、操作実行部302が、ユーザにより所定のジェスチャー動作が実行されたと判定した場合、ステップS54はYES判定となる。この場合、操作実行部302は、判別されたジェスチャー動作の実行に必要な情報処理装置100内の各部を制御し、対応する処理を実行する(ステップS55)。
次いで、ジェスチャー動作実行後、ステップS52に戻り、上述したステップS52以降の処理を繰り返す。比較例では、このようにして、ジェスチャー機能を実行する。
上述のように、比較例のジェスチャー機能実行時の処理では、操作実行部302(CPU101)で定期的に加速度データを取得し、ジェスチャー動作の判別を行う。それゆえ、比較例において、操作実行部302(メインCPU)で情報処理装置の動きを常時監視する必要があり、操作実行部302での処理量が増大し、消費電力が増大する。さらに、これにより、ジェスチャー機能以外の他の機能の処理速度が低下するおそれもある。
それに対して、上記実施形態では、加速度データの取得及びジェスチャー動作の判別処理を操作実行部22(CPU101)でなくマイコン21で行う。それゆえ、上記実施形態では、操作実行部22での消費電力の増大を抑制することができる。
さらに、上記実施形態では、操作実行部22は、マイコン21からジェスチャー動作の通知があった場合にのみマイコン21にアクセスして所定のジェスチャー動作を実行すればよい。それゆえ、上記実施形態では、ジェスチャー機能実行時における操作実行部22の無駄なポーリング処理を排除することができる。この結果、上記実施形態のジェスチャー機能の処理手法では、処理時間を大幅に低減することができ、他の機能の処理速度の低下も抑制することができる。
すなわち、上記実施形態のジェスチャー機能の処理手法では、従来困難であった、低消費電力で、且つ、軽快で素早い反応のジェスチャー機能を実現することが可能になる。
さらに、比較例において、情報処理装置に3軸加速度センサを設け、それにより情報処理装置の傾きを算出する際(ステップS53)、通常、例えば逆三角関数等の関数を用いた複雑な計算が必要になる。そのため、比較例においてジェスチャー機能を軽快に実現するためには、処理能力の高いCPU101(メインCPU)を情報処理装置に搭載する必要がある。それに対して、上記実施形態では、マイコン21でジェスチャー機能実行時の各種判別処理を行い、その判別処理では複雑な計算も行わない。それゆえ、本実施形態では、マイコン21として、処理能力の低いマイコンを使用することができる。
[各種変形例]
本発明のジェスチャー機能の処理手法は、上述した実施形態に限定されず、例えば、次のような変形例においても、同様の効果が得られる。
上記実施形態では、情報処理装置100を縦位置で保持してジェスチャー機能を実行する際、図11に示すように仮想Y軸を判別軸とする例を説明したが、本発明はこれに限定されない。仮想Y軸の代わりに、図11に示す仮想Z軸を判別軸として用いてもよい。この場合も、上記ジェスチャー機能の動作原理で説明した原理と同様にしてジェスチャー動作の判別を行うことができる。
上記実施形態では、情報処理装置100を縦位置で保持した際に仮想軸を設定する例を説明したが、本発明はこれに限定されない。情報処理装置100を横位置に保持した状態で、例えばX軸を中心軸とする回転動作と所定操作とを対応付けるジェスチャー機能を実行する場合にも、上記実施形態と同様にして仮想Y軸を設定してジェスチャー動作の判別を行ってもよい。
上記実施形態では、X軸を中心軸とする回転動作と所定操作とを対応付けるジェスチャー機能を実現する際に仮想軸として仮想Y軸を設定する例を説明したが、本発明はこれに限定されない。仮想軸の設定は、例えばジェスチャー機能の種類、情報処理装置100の保持姿勢等に応じて任意に設定することができる。より具体的には、仮想軸としては、情報処理装置100が基準姿勢であるときには仮想軸上の加速度が略零であり、情報処理装置100の姿勢が基準姿勢から変化したときに仮想軸上の加速度も変化するような軸であれば任意に設定することができる。
例えば、情報処理装置100が、加速度センサ115のY軸またはZ軸を中心軸とする回転動作と所定操作とを対応付けるジェスチャー機能を備える場合にも、上記実施形態と同様にして仮想軸を適宜設定してジェスチャー動作を判別することができる。この場合、例えば、Y軸またはZ軸と直交する面内において、水平方向と平行であり且つ基準姿勢時に該仮想軸上の加速度が略零となるような仮想軸を適宜設定すればよい。
上記実施形態では、縦位置のジェスチャー動作において、本体部1と表示部2との間の開き角度φaを最大(全開状態)にしてジェスチャー動作を実行する例を説明したが、本発明はこれに限定されない。本体部1及び表示部2間の開き角度が最大でなくてもよい。ただし、この場合は、本体部1及び表示部2間の開き角度を検出するセンサを設け、さらに、該センサで検出された開き角度のデータと、上記式(1)中のcosφ及びsinφとの対応関係を示すデータを予め装置内に記憶しておくことが好ましい。このような対応データを予め記憶させておくことにより、上記実施形態と同様に、上記式(1)中のcosφ及びsinφを定数として取り扱うことができ、上記実施形態と同様の効果が得られる。
上記実施形態では、マイコン21から操作実行部22にジェスチャー動作のイベント通知(図15中のステップS5)があった場合に、操作実行部22がマイコン21からイベント要因を取得する(ステップS6)例を説明したが、本発明はこれに限定されない。例えば、イベント要因を操作実行部22内に予め記憶しておいた場合には、マイコン21から入力されたイベント通知に対応するイベント要因を操作実行部22で判別し、所定のジェスチャー動作を実行してもよい。また、例えば、マイコン21からイベント通知と一緒にイベント要因の情報も操作実行部22に出力するようにしてもよい。
上記実施形態では、ジェスチャー動作が、基準姿勢から互いに逆方向(時計方向または反時計方向)となる2種類の動作である場合の例を説明したが、本発明はこれに限定されない。例えば、一方向のジェスチャーと所定の操作とが対応するようなジェスチャー機能にも本発明は適用可能であり、同様の効果が得られる。この場合には、ジェスチャー動作の判別に用いる加速度の閾値は1種類だけ用意すればよい。
また、上記実施形態では、キーボード制御や電源制御等の処理を行うためのマイコン21において、ジェスチャー機能の各種処理を行う例を説明したが、本発明はこれに限定されない。ジェスチャー機能処理用に別途、マイコンを設けてもよい。