【実施例】
【0022】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る空間手書きシステム及び電子ペンについて、
図1乃至
図9を参照して説明する。
図1は、本実施例の空間手書きシステムの構成を模式的に示す図であり、
図2は、本実施例の電子ペンの主要構成を示すブロック図である。また、
図3は、絶対座標軸と仮想平面座標軸の関係を説明する図であり、
図4は、仮想平面上の電子ペンの動作を説明する図である。また、
図5乃至
図8は、仮想平面の作成例を示す図であり、
図9は、本実施例の空間手書きシステム(電子ペン)の動作を示すフローチャート図である。
【0023】
なお、本実施例において、ストロークとは、文字や図形を描画する動作を指し、ストロークの切れ目とは、文字や図形を構成する任意の線と次の線の間の描画しない場所を指す。この2つの線は1つの文字や図形を構成する線であってもよいし、異なる文字や図形を構成する線であってもよい。また、連続するストロークとは、ストロークの任意の切れ目(描画開始位置を含む。)と次の切れ目(描画終了位置を含む。)の間の連続する線を指し、複数の連続するストロークを結合したものを手書き画像と呼ぶ。
【0024】
図1(a)に示すように、本実施例の空間手書きシステム10は、電子ペン20と表示装置30などで構成され、これらは、Bluetooth(登録商標)に代表される短距離無線通信や赤外線通信、有線通信などにより接続されている。
【0025】
上記空間手書きシステム10の概略動作について
図1(b)を参照して説明すると、3次元空間に作成した仮想平面上でユーザが電子ペン20を動かして文字や図形などを手書きすると、電子ペン20は、ペン先の移動軌跡を示す座標情報を出力する。その際、ペン先の移動軌跡は一筆書きのように繋がった状態になっているため、仮想平面上に手書きした文字や図形を正確に表せないことから、後述する手法を用いて、自然な動作でストロークの切れ目を表現し、ストロークの切れ目までのペン先の移動軌跡を連続するストロークとして認識できるようにする。
【0026】
一方、表示装置30(ここでは、サングラス型のHMD)は、電子ペン20から座標情報を受信すると、座標情報に基づいて連続するストロークを順次表示し、仮想平面上に手書きした文字や図形を閲覧できるようにする。また、必要に応じて、サーバ40は、電子ペン20から座標情報を受信して保存し、サーバ40と通信可能に接続されたコンピュータ装置などを用いて、仮想平面上に手書きした文字や図形を利用できるようにする。
【0027】
なお、電子ペン20は、ペン先の移動軌跡を示す座標情報を送信する機能を備えていればよく、ボールペンのような筆記用具としての機能を備えていてもよいし、筆記用具としての機能を備えていなくてもよい。また、電子ペン20は、ボールペンのような形状に限定されず、その先端が認識できる形状であればよく、例えば、指先に嵌めるキャップのような形状としてもよい。
【0028】
また、
図1では、表示装置30としてサングラス型のHMDを示しているが、表示装置30は、電子ペン20から受信した座標情報に基づいて手書き画像を表示可能な携帯型の装置であればよく、例えば、携帯電話機やタブレット端末などとしてもよい。また、表示装置30は、手書き画像を表示するのみならず、手書き画像のデータを保存する機能を備えていてもよく、この場合は、サーバ40を省略することもできる。
【0029】
また、
図1(a)では、空間手書きシステム10に表示装置30を含めているが、手書き画像をその場で閲覧する必要がない場合は、表示装置30を省略することもできる。その場合は、電子ペン20から送信される座標情報をサーバ40に保存してもよいし、電子ペン20の記憶部に座標情報を保存してもよい。
【0030】
図2は、電子ペン20の主要構成を示すブロック図である。本実施例の電子ペン20は、操作部21と、センサ22と、3次元座標検出部23aと、3軸加速度検出部23bと、移動量検出部23cと、仮想平面及びデータ作成部24と、ストローク検出部25と、平面座標変換部26と、仮想面接地フィードバック部27と、通信部28と、図示しない電源(蓄電池)などで構成される。
【0031】
操作部21は、スイッチやボタンなどで構成され、電子ペン20の電源のON/OFF、手書き動作の開始指示、平面作成モード(指定したポイントに基づいて仮想平面を作成するモード)と、描画モード(仮想平面上でペン先を移動させて文字や図形を手書きするモード)との切り替え指示などの操作を可能にする。
【0032】
センサ22は、ペン先の3次元空間の座標や加速度、電子ペン20の中心軸の傾きなどを検出するセンサであり、例えば、3軸ジャイロセンサと3軸加速度センサなどで構成される。
【0033】
3次元座標検出部23aは、センサ22(3軸ジャイロセンサ)の出力に基づいて、ペン先の3次元空間の座標を検出する。
【0034】
3軸加速度検出部23bは、センサ22(3軸加速度センサ)の出力に基づいて、ペン先の3軸の加速度を検出する。
【0035】
移動量検出部23cは、3次元座標検出部23aで検出した3次元空間の座標に基づいて、単位時間あたりのペン先の移動量(すなわち、ペン先の移動速度)を検出する。
【0036】
仮想平面及びデータ作成部24は、電子ペン20で指定された3次元空間のポイント、ストローク、電子ペン20の中心軸の傾きなどに基づいて、3次元空間内に2次元の仮想平面を作成する。また、ストロークの切れ目で分割された連続するストロークの軌跡を結合して手書き画像のデータを作成する。
【0037】
ストローク検出部25は、2次元の仮想平面に対するペン先のz軸方向(仮想平面の法線方向)の移動量や移動速度、加速度と予め定めた閾値とを比較することによって、ストロークの切れ目を検出する。
【0038】
平面座標変換部26は、ストローク検出部25が検出した各ストロークの切れ目までのペン先の3次元座標を、仮想平面の特定点(例えば、左上)を基準とした2次元座標に変換し、変換した2次元座標を仮想平面及びデータ作成部24に通知する。
【0039】
仮想面接地フィードバック部27は、ストローク検出部25がストロークの切れ目を検出した時(すなわち、ペン先が仮想平面から離れた時)に、電子ペン20に予め設けたバイブレータを振動させたり、スピーカから音を発生させたり、ランプを点灯/点滅させたりして、ユーザにその旨を通知して、ペン先が仮想面から離れている状態をフィードバックする。なお、本実施例では、ペン先が仮想平面から離れた状態をフィードバックする構成としているが、ストローク検出部25がストロークの切れ目を検出していない時(すなわち、ペン先が仮想平面に接しており、文字や図形の描画中と判断されている時)に、ユーザにその旨を振動や音、光等で通知して、ペン先が仮想面に接地している状態をフィードバックする構成としてもよい。
【0040】
通信部28は、表示装置30やサーバ40との通信を確立し、平面座標変換部26で変換した2次元座標を表示装置30に送信したり、仮想平面及びデータ作成部24で作成した手書き画像のデータをサーバ40に送信したりする。
【0041】
なお、
図2は、本実施例の電子ペン20の一例であり、ペン先のz軸方向(仮想平面の法線方向)の動作に基づいてストロークの切れ目を検出できる限りにおいて、その構成は適宜変更可能である。例えば、
図2では、3次元座標検出部23aと3軸加速度検出部23bと移動量検出部23cとを設けたが、3次元座標検出部23aが時刻に関連付けられた座標情報から移動量や移動速度、移動加速度を算出する構成としてもよく、その場合は、3軸加速度検出部23bや移動量検出部23cは省略することができる。また、
図2では、仮想平面及びデータ作成部24が、仮想平面の作成と手書き画像のデータの作成を行う構成としているが、仮想平面及びデータ作成部24を、仮想平面の作成を行う仮想平面作成部と手書き画像のデータの作成を行うデータ作成部とに分割してもよい。また、電子ペン20に記憶部を設けて、手書き画像のデータを記憶しておき、電子ペン20と通信可能な機器を認識した時や蓄電池の充電時に、その機器に手書き画像のデータを送信する構成としてもよい。
【0042】
また、3次元座標検出部23a、3軸加速度検出部23b、移動量検出部23c、仮想平面及びデータ作成部24、ストローク検出部25、平面座標変換部26、仮想面接地フィードバック部27、通信部28などはハードウェアとして構成してもよいし、ソフトウェアとして構成してもよい。
【0043】
以下、上記構成の電子ペン20を用いて仮想平面に手書きする具体的な方法について説明する。
【0044】
まず、3次元空間と仮想平面との関係について説明する。
図3は、絶対座標軸と仮想平面座標軸との関係を説明する図であり、センサ22で検出した3次元座標(XYZ座標)は、平面座標変換部26により、仮想平面の面をXY軸とし、仮想平面に対して垂直方向(法線方向)をz軸とした座標(X’Y’Z’座標)に変換される。
【0045】
図4は、仮想平面上の電子ペン20の動作を説明する図である。
図4(a)に示すように、ストローク検出部25は、Z’軸方向における電子ペン20の移動量、移動速度、加速度等に基づいて仮想平面からの電子ペン20の離れ具合を判断して、その判断結果からストロークの切れ目を検出する。その際、ユーザは仮想平面を正確に認識できる訳ではないため、移動量、移動速度、加速度等に対して閾値を設定し、この閾値に基づいてストロークの切れ目を判断する。
【0046】
例えば、
図4(b)に示すように、移動速度(ペン先が第1境界から第2境界まで移動する時間)や移動加速度が所定値以上の場合に、ストロークの切れ目と判断し、第1境界時点でのX’Y’座標までを連続するストロークとして認識する。なお、ペン先を早く動かす場合は、移動速度又は移動加速度に基づいてストロークの切れ目を判断する方法が有効であるが、ペン先を大きく動かす場合は、ペン先の座標が閾値(例えば、第1境界)を超えた時にストロークの切れ目と判断することもできる。
【0047】
次に、3次元空間内に2次元の仮想平面を作成する方法について、
図5乃至
図8を参照して説明する。
【0048】
図5は、3つのポイントを用いて仮想平面を作成する例を示している。この例では、ユーザが、電子ペン20の操作部21を操作(例えば、所定のボタンを押下)して3つのポイントを設定すると、仮想平面及びデータ作成部24は、ポイント1とポイント2を繋ぐ直線をX’軸とし、X’軸と垂直、かつ、ポイント1を原点とするポイント3方向の直線をY’軸として、ポイント1、2、3に外接する2次元平面を特定し、その2次元平面を仮想平面とする。
【0049】
図6は、2つのポイントを用いて仮想平面を作成する例を示している。この例では、同様に、ユーザが電子ペン20の操作部21を操作して2つのポイントを設定すると、仮想平面及びデータ作成部24は、ポイント1とポイント2を繋ぐ直線をX’軸として、ポイント1からポイント2までをX’軸方向の長さ、Y軸方向を所定の長さとする2次元平面を特定し、その2次元平面を仮想平面とする。
【0050】
図7は、2つのポイントを用いて仮想平面を作成する他の例を示している。この例では、同様に、ユーザが電子ペン20の操作部21を操作して2つのポイントを設定すると、仮想平面及びデータ作成部24は、ポイント1とポイント2を繋ぐ直線をX’軸として、ポイント1からポイント2までをX’軸方向の長さ、Z軸方向を所定の長さとする2次元平面を特定し、その2次元平面を仮想平面とする。
【0051】
図8は、ストロークを用いて仮想平面を作成する例を示している。この例では、電子ペン20の起動時の最初の座標(ポイント1)を原点として、所定時間経過後に検出したペン先の座標(ポイント2)とを繋ぐ直線をX’軸とする。また、電子ペン20の中心線をZ’軸とし、X’軸及びZ’軸に対してそれぞれ90度の角度を持つ直線をY’軸とする。そして、上記原点を基点として、X’軸方向、Y’軸方向を所定の長さとする2次元平面を特定し、その2次元平面を仮想平面とする。
【0052】
なお、仮想平面を作成する方法は
図5乃至
図8に限定されない。例えば、上記説明では、2つ若しくは3つのポイントを用いて仮想平面を作成したが、1つのポイントを用いて仮想平面を作成することも可能である。この場合、電子ペン20の起動時の最初の座標(ポイント1)を通り、電子ペン20の中心線に直交する面(若しくは所定の角度で傾斜する面)を特定し、その面を仮想平面とすることもできる。
【0053】
以下、本実施例の空間手書きシステム10(電子ペン20)の動作について、
図9のフローチャート図を参照して説明する。なお、以下の説明では、
図1(b)のシステムを前提とし、ストロークの切れ目を検出する度にデータを出力するものとする。
【0054】
まず、仮想平面及びデータ作成部24は、操作部21の所定のスイッチ(手書き動作の開始を指示する起動スイッチ)がONであるかを判断する(S101)。起動スイッチがONの場合は、仮想平面及びデータ作成部24は、ユーザが操作部21を操作して設定したモードが、仮想平面を作成する平面作成モードであるか、仮想平面上に文字や図形などを手書きする描画モードであるかを判断する(S105)。
【0055】
平面作成モードの場合は、仮想平面及びデータ作成部24は、ポイントが指定されているかを判断する(S106)。ポイントが指定されていない場合は、ポイントが指定されるのを待ち、ポイントが指定されている場合は、仮想平面及びデータ作成部24は、
図5乃至
図8に示す手法を用いて、2次元の仮想平面を作成する(S107)。そして、作成した仮想平面の座標軸情報(原点位置、座標軸の方向、仮想平面のサイズなど)を記憶すると共に、ストローク検出部25及び平面座標変換部26に通知し(S108)、S101に戻る。
【0056】
一方、描画モードの場合は、仮想平面及びデータ作成部24は、仮想平面が設定済みであるかを判断し(S109)、仮想平面が未設定の場合はS105に戻り、平面作成モードに設定されるのを待つ。仮想平面が設定済みの場合は、3次元座標検出部23a及び3軸加速度検出部23bは、センサ22の出力に基づいて、各々、3次元座標と3軸加速度を検出し、移動量検出部23cは、3次元座標検出部23aが検出した3次元座標に基づいて単位時間当たりのペン先の移動量(移動速度)を検出する(S110)。
【0057】
次に、平面座標変換部26は、3次元座標検出部23aが検出した3次元座標を順次、仮想平面上の座標に変換する(S111)。そして、ストローク検出部25は、仮想平面座標のz軸方向への移動量、移動速度、移動加速度と予め定めた閾値とを比較して、ストロークの切れ目が発生したかを判断し(S112)、ストロークの切れ目が発生しなければ、S110に戻って同様の処理を繰り返す。
【0058】
一方、ストロークの切れ目が発生した場合は、平面座標変換部26は、仮想平面の座標に変換されたペン先のX’Y’座標を連続するストロークの軌跡として記憶する(S113)。そして、必要に応じて、仮想面接地フィードバック部27は、仮想平面との交差度合(z軸方向の移動量や移動速度、移動加速度)に応じて電子ペン20を振動させたり、音や光を発生させたりして、ユーザにストロークの切れ目を意識させる(S114)。
【0059】
その後、仮想平面及びデータ作成部24は、仮想平面の所定の位置(例えば、左上)を原点として連続するストロークのペン先のX’Y’座標をプロットして、連続するストロークの軌跡を示すデータを作成し(S115)、作成したデータを表示装置30に送信する(S116)。表示装置30は、受信したデータに基づいて画面上に連続するストロークの軌跡を表示する。
【0060】
起動スイッチがOFFになるまで、ストロークの切れ目で分割されたデータを表示装置30に送信し、起動スイッチがOFFになったら、仮想平面及びデータ作成部24は、複数の連続するストロークの軌跡を結合して手書き画像のデータを作成し、手書き画像のデータに、仮想平面の作成日時情報や電子ペン20の識別情報、描画時の位置情報や日時情報などの属性を関連付ける(S102)。そして、未送信の手書き画像のデータがあるかを判断し(S103)、未送信の手書き画像のデータがある場合は、その手書き画像のデータをサーバ40に送信し(S104)、サーバ40は手書き画像のデータを上記属性に関連付けて保存する。
【0061】
なお、上記フローでは、電子ペン20が連続するストロークの軌跡を示すデータを作成して表示装置30に送信する構成としたが、ストロークの切れ目を検出するまで逐次、座標情報を送信し、ストロークの切れ目を検出している間は座標情報の送信を中断し、仮想平面上での描画が開始されたら、再度、座標情報を送信するようにしてもよい。また、時系列のペン先のX’Y’座標とストロークの切れ目を示す情報とを表示装置30に送信し、表示装置30が受信した情報に基づいて複数の連続するストロークの軌跡を特定して表示する構成としてもよい。また、電子ペン20が複数の連続するストロークの軌跡を結合して手書き画像のデータを作成した後、手書き画像のデータを表示装置30に送信する構成としてもよい。
【0062】
このように、2次元の仮想平面上のペン先の移動軌跡を示す座標情報を送信する際に、仮想平面に対してz軸方向に動かす動作(好ましくは、手前側に引く動作)に基づいてストロークの切れ目を判断することにより、自然な動作で手書き画像を連続するストロークに分割することができる。また、ストロークの切れ目で電子ペン20を振動させたり、音や光を発生させたりすることにより、ユーザはストロークの切れ目を認識することができ、正確な手書き画像を描画することができる。また、仮想平面上の電子ペン20の軌跡を表示装置に表示したり、手書き画像のデータをサーバなどに保存したりすることにより、場所を問わずに、必要な時に必要な情報を書き留めることができ、ユーザの利便性を向上させることができる。
【0063】
なお、本発明は上記実施に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【0064】
例えば、上記実施例では、2次元の仮想平面から電子ペン20を手前側に引く動作を行った時にストロークの切れ目であると判断したが、2次元の仮想平面に対して電子ペン20を押し込む動作を行った時にストロークの切れ目であると判断してもよい。
【0065】
また、上記実施例では、ペン先のz軸方向の動作に基づいて、ストロークの切れ目を検出する構成としたが、例えば、z軸方向の動作に代えて、若しくは、z軸方向の動作に加えて、電子ペン20の傾きの変化に基づいて、ストロークの切れ目を検出する構成としてもよい。