トップ :: G 物理学 :: G01 測定;試験




【発明の名称】 3次元位置方向指示装置
【発明者】 【氏名】中村 佳正

【要約】 【課題】簡易な構成で、簡単に3次元位置および方向の指示ができ、3次元画像の回転移動を可能とする3次元位置方向指示装置を提供する。

【解決手段】発光ペン3からの中心光L1、周辺光L2〜L5および外部光L6は、受光パネル4に受光されて、その受光位置が検出される。これらの複数の受光位置を基に、コンピュータ2は、受光パネル4に対する発光ペン3の位置を算出する。これによって、3次元位置および方向の少なくとも一部を指示することができる。
【特許請求の範囲】
【請求項1】 少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、受光手段に対する発光手段の相対的な3次元位置および方向の少なくとも一部を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置。
【請求項2】 前記発光手段からの光線は、互いに非平行であることを特徴とする請求項1記載の3次元位置方向指示装置。
【請求項3】 前記発光手段からの光線は、光出射方向の中心軸に関して回転非対称であることを特徴とする請求項1記載の3次元位置方向指示装置。
【請求項4】 前記受光手段は、複数の受光素子が面状に配列して構成され、画像を出力することを特徴とする請求項1記載の3次元位置方向指示装置。
【請求項5】 少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、中心軸が受光面と交わる点の座標(X0,Y0)、中心軸が受光面となす角γ、および中心軸の受光面への正射影がX軸となす角δを抽出し、受光手段に対する発光手段の相対的な3次元位置および方向の少なくとも一部を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置。
【請求項6】 少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、中心軸が受光面と交わる点の座標(X0,Y0)、中心軸が受光面となす角γ、中心軸の受光面への正射影がX軸となす角δ、および中心軸の長さHを抽出し、受光手段に対する発光手段の相対的な3次元位置および方向の少なくとも一部を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置。
【請求項7】 少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、中心軸が受光面と交わる点の座標(X0,Y0)、中心軸が受光面となす角γ、中心軸の受光面への正射影がX軸となす角δ、中心軸の長さHおよび画像の軸がX軸となす角φを抽出し、受光手段に対する発光手段の相対的な3次元位置および方向を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、3次元空間内での位置および方向を指示する3次元位置方向指示装置であって、2次元平面内での位置を指示するマウスまたはジョイスティックなどのポインティングデバイスに代わって、3次元空間に適用される3次元位置方向指示装置に関する。
【0002】
【従来の技術】近年、パーソナルコンピュータの画面表示技術の進歩、およびコンピュータグラフィックスの発展によって、3次元画像を扱うアプリケーションが増加している。この3次元画像を扱うアプリケーションでは、2次元画像を扱うものに比べて、表示画面中に奥行きの要素が加えられ、ユーザは直感的に画像を把握しやすくなっている。
【0003】このようなアプリケーションには、マウスまたはジョイスティックなど、2次元的な操作を主とした指示装置が用いられ、表示画面中に3次元座標位置を指示することで、画像を移動させたり、あるいは加工したりする操作が行われる。3次元座標位置を指示するためには、まず、直交3方向の座標値を表す3変数のうちの2変数だけを2次元位置の指示と同様に指定する。たとえば、縦方向、横方向および奥行き方向のうち、縦方向および横方向の座標だけを指定する。続いて、アプリケーションの特別な機能として、または別個のマウスユーティリティソフトウエアを使って、画像の表示画面の他に、奥行き方向の変数を指定するための別の画面を表示させる。このような専用の画面において、奥行き方向の変数が指定され、3次元位置座標の指示が完了する。
【0004】その他の先行技術として、特開昭60−60502号公報では、先端に発光体を有するペンを3次元的に動かし、そのペンを2台のカメラで撮像することで、3次元位置が指示される。また、特開平1−174910号公報では、所定周波数の信号を発信するペンを空間に位置させ、3点に設置されたマイクロホンによって、ペンの3次元座標が検知される。
【0005】
【発明が解決しようとする課題】上記のように3次元位置を指示するためには、3変数のうちの2変数の指定、奥行き方向の変数を指定する画面の表示、および奥行き方向変数の指定など、ユーザは多数の作業を行う必要があるので負担が大きく、3次元空間内の1点の位置座標を指示するだけでもかなりの時間を要する。そのうえ、3次元位置座標の指示が、個別の作業から成り立っているので、ユーザは自ら指示した位置を直感的に把握することが困難である。
【0006】また、特開昭60−60502号公報では、2台のカメラを使用するので装置が高価であり、かつ装置の規模が大きくなってしまう。また、3次元位置座標を正確に指示するためには、2台のカメラの設置位置を正確に調整する必要があり、使い勝手がよくない。
【0007】さらに、一般に、3次元の画像を扱うアプリケーションでは、指定軸回りの回転移動を必要とする場合が頻繁にある。一方、特開平1−174910号公報では、ペンの発光点の3次元座標位置を認識するので、たとえば(X,Y,Z)=(600,256,128)など1点の絶対座標だけが認識される。よって、ユーザが指定した3次元座標位置への画像の平行移動は可能であるが、回転移動を実現することはできない。
【0008】本発明の目的は、簡易な構成で、簡単に3次元位置および方向の指示ができ、3次元画像の回転移動を可能とする3次元位置方向指示装置を提供することである。
【0009】
【課題を解決するための手段】本発明は、少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、受光手段に対する発光手段の相対的な3次元位置および方向の少なくとも一部を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置である。
【0010】本発明に従えば、操作者は発光手段の発光位置および発光方向を自由に変えることができ、それによって発光手段および受光手段の位置関係も3次元空間内で様々に変化し、受光手段によって検出される少なくとも2点の受光位置も、受光面内で様々に変化する。受光位置を基にした演算によって、3次元位置および方向の少なくとも一部を指示することができる。
【0011】たとえば、発光手段から所定の開き角の2本のレーザ光線を出射して、受光手段で2点の受光位置を検出させる。受光位置は受光面上の点であるので、各点は2変数でそれぞれ表され、受光位置は合計4変数で表される。一方、3次元空間内の位置は3変数で表され、さらに方向も3変数で表される。よって、受光位置の4変数を3次元位置および方向の合計6変数のうちの4変数に割り当てることができる。これは、受光位置が2点の場合、3次元位置の3変数および方向の1変数を表せることを示している。
【0012】よって、3次元画像の位置に加えて、ある固定された軸回りの方向を指示することができ、さらに、マウスのドラッグに相当する機能などで、3次元画像の平行移動および指定軸回りの回転移動を実現することができる。さらには、発光手段から3角錐の稜線に沿って3本のレーザ光線を出射して、受光位置を3点とすることで、3次元位置および方向の全変数を表すことができ、3次元空間内で任意の軸回りの回転移動を実現することができる。
【0013】また、受光手段が面状の単体であるので、装置全体がコンパクトであり、マウスパッドなどと同様に簡単に設置することができる。さらに、発光手段の位置および方向だけで、1度に3次元位置および方向が指示されるので、指示が簡単で、かつ操作者は自ら指示した位置および方向を直感的に容易に把握することができる。
【0014】また本発明は、前記発光手段からの光線は、互いに非平行であることを特徴とする。
【0015】本発明に従えば、発光手段と受光手段との距離が大きくなるとともに、受光位置同士は離れるか、または狭まる。たとえば、発光手段から平行な2本のレーザ光線を出射して、受光手段から発光手段までの距離を変えても、2点の受光位置同士の距離は不変であるが、発光手段から所定の開き角の2本のレーザ光線を出射して、受光手段で2点の受光位置を検出させることで、受光位置同士の距離を受光手段から発光手段までの距離に対応させることができる。このように、発光手段からの光路形状を、発光位置から離れるとともに広がる形状とすることで、受光位置の情報から発光手段と受光手段との距離を把握し、3次元位置および方向を表す変数の1つを確実に求めることができるので、正確な指示が可能となる。
【0016】また本発明は、前記発光手段からの光線は、光出射方向の中心軸に関して回転非対称であることを特徴とする。
【0017】本発明に従えば、発光手段の中心軸に関する回転角は、受光位置同士の相対的な位置関係に反映される。たとえば、発光手段から円錐状に広がる1本の光を出射させて、発光手段を中心軸に関して回転移動させても、その光路の形状は不変であり、受光位置も不変であるのに対して、発光手段から所定の開き角の2本のレーザ光線を出射させて、その中心軸回りに発光手段を回転させると、それに合わせて2点の受光位置が移動する。このように、光路形状を中心軸に関して回転非対称とすることで、受光位置同士の相対的な位置関係から発光手段の中心軸に関する回転角が導かれるので、3次元位置および方向を表す変数の1つを確実に求めることができ、正確な指示が可能となる。
【0018】また本発明は、前記受光手段は、複数の受光素子が面状に配列して構成され、画像を出力することを特徴とする。
【0019】本発明に従えば、受光した受光素子の位置が受光位置であるので、簡単で確実に受光位置を検出することができ、3次元位置および方向の指示精度が向上される。
【0020】また本発明は、少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、中心軸が受光面と交わる点の座標(X0,Y0)、中心軸が受光面となす角γ、および中心軸の受光面への正射影がX軸となす角δを抽出し、受光手段に対する発光手段の相対的な3次元位置および方向の少なくとも一部を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置である。
【0021】本発明に従えば、受光画像からX0,Y0,γ,δの独立な4変数を抽出するので、これらを3次元の位置および方向を表す6変数のうちの4変数に割り当てることができる。よって、確実に3次元位置および方向を指示することができる。
【0022】また本発明は、少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、中心軸が受光面と交わる点の座標(X0,Y0)、中心軸が受光面となす角γ、中心軸の受光面への正射影がX軸となす角δ、および中心軸の長さHを抽出し、受光手段に対する発光手段の相対的な3次元位置および方向の少なくとも一部を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置である。
【0023】本発明に従えば、受光画像からX0,Y0,γ,δ,Hの独立な5変数を抽出するので、これらを3次元の位置および方向を表す6変数のうちの5変数に割り当てることができる。よって、さらに確実に3次元位置および方向を指示することができる。
【0024】また本発明は、少なくとも2本の光線を出射し、3次元空間で発光位置および発光方向を任意に操作可能な発光手段と、面状に構成され、発光手段からの光を受光して少なくとも2点の受光位置を検出するための受光手段と、検出された受光位置および受光位置同士の相対位置から、中心軸が受光面と交わる点の座標(X0,Y0)、中心軸が受光面となす角γ、中心軸の受光面への正射影がX軸となす角δ、中心軸の長さHおよび画像の軸がX軸となす角φを抽出し、受光手段に対する発光手段の相対的な3次元位置および方向を算出する演算手段とを備えることを特徴とする3次元位置方向指示装置である。
【0025】本発明に従えば、受光画像からX0,Y0,γ,δ,H,φの独立な6変数を抽出するので、これらを3次元の位置および方向を表す6変数すべてに割り当てることができる。よって、さらに確実に3次元位置および方向を指示することができる。
【0026】
【発明の実施の形態】図1は、本発明の一実施形態である指示装置1の構造を示す図である。指示装置1は、コンピュータ2、発光ペン3および受光パネル4を含んで構成される。コンピュータ2は、本体キャビネット部5および蓋部6から構成され、このうち本体キャビネット部5は、その表面に入出力部7、図示していない赤外線通信部、ペン保持部などを備え、制御回路および電源などを内蔵する。蓋部6は、ヒンジによって本体キャビネット部5の背面に回動自在に接続されており、入出力部7を覆うことができ、持運び時に入出力部7を保護する役目を果たしている。本体キャビネット部5の側面には、本体電源のONおよびOFFを切換える本体電源スイッチ8が設けられている。
【0027】コンピュータ2には、発光ペン3および受光パネル4が電気的に接続されている。発光ペン3は、単一の半導体レーザに、ハーフミラーおよびレンズなどの光学系を組合わせて構成されており、その先端から複数の光線である中心光L1、周辺光L2〜L5および外部光L6を出射する。周辺光L2〜L5は、中心光L1と所定の開き角θをそれぞれなし、外部光L6は中心光L1とθよりも大きい角度を成す。一方、受光パネル4は、フォトダイオードなどの受光素子を面状に複数配列させた受光素子アレイによって構成される。これらの発光ペン3および受光パネル4は、発光ペン3からの光を受光パネル4に受光させることで、3次元位置および方向を指示するための入力装置として、指示装置1の指示部20を構成している。
【0028】ユーザによる指示部20の操作は、受光パネル4を固定し、発光ペン3の位置および方向を3次元空間で自由に変更しながら行われる。発光ペン3からの光は、受光パネル4で受光され、受光位置を示す画像信号がコンピュータ2に送られる。
【0029】図2は、図1の入出力部7を示す分解斜視図である。入出力部7は、薄型で文字表示が可能なマトリクス方式の液晶表示部9、および液晶表示部9を覆う大きさの透明タブレット部10が、一体になったものである。なお、液晶表示部9には、必要に応じて、EL(Electroluminescent)パネルから成るバックライトを背面に設けてもよい。また、透明タブレット部10には、2枚の透明シートの対向する表面に透明電極が設けられ、通常状態において各電極が接触しないように、小さな突起状のスペーサが規則正しく印刷されている。ユーザが指またはペンにてシートを押圧することによって、透明電極が接触する。さらに、液晶表示部9にて表示された表示内容との位置情報の同期を取ることによって、使用者が押圧した液晶表示部9の位置を検出することができる。
【0030】図3は、指示装置1の電気的構成を示すブロック図である。指示装置1は、指示部20、入出力部7、本体電源スイッチ8、タブレット制御部11、液晶表示制御部12、コモン回路13、セグメント回路14、中央制御部15、RTC(Real Time Clock)16、ROM(Read Only Memory)17、RAM(RandomAccess Memory)18、指示制御部19を備えている。
【0031】指示制御部19は、指示部20による発光および受光の制御を行い、指示部20内の受光パネル4から受光位置の座標信号を受信し、各受光位置の位置関係から中心光、周辺光および外部光を区別し、その種別に応じて座標メモリ27に受光位置の座標値を記憶させる。なお、受光位置を示す座標は、受光パネル4の受光面上の座標系における座標である。
【0032】タブレット制御部11は、透明タブレット部10の位置検出を制御する。液晶表示制御部12は、光を透過させるドット位置をビットマップとして記憶しており、必要に応じてコモン回路13、セグメント回路14に信号を送る。中央制御部15は、各種命令によって入力情報または出力情報を制御するものであり、タブレット制御部11からの制御線15a、本体電源スイッチ8からの制御線15b、RAM18からの制御線15c、RTC16からの制御線15d、ROM17からの制御線15e、液晶表示制御部12からの制御線15fおよび指示制御部19からの制御線15gとを有する。
【0033】RTC16は、クロック信号によって時間を計時し、現在の年月日、時刻を出力する。ROM17は、フォント情報エリア36、辞書変換エリア37、座標変換情報エリア38およびプログラムエリア21を有する。フォント情報エリア36は、液晶表示部9に表示する文字のフォントを記憶している。辞書変換エリア37は、文字変換のための辞書を記憶している。座標変換情報エリア38は、タブレット制御部11または指示制御部19にて検出された座標を対応する位置または方向に変換するための変換情報を記憶している。プログラムエリア21は、中央制御部15の動作プログラムを記憶しており、3次元座標位置決定プログラム22、中心軸角算出プログラム23および3点中心軸角算出プログラム24を有する。各プログラムについては、指示装置1の動作形態とともに後述する。
【0034】RAM18は、ユーザが入出力部2から入力した文章または図形などの各種データを記憶するデータ記憶部25、3次元座標決定時に用いるスタックデータ記憶部26を有する。データ記憶部25は、さらに座標メモリ27、中心光有メモリ28、周辺光本数メモリ29およびひねり有メモリ30を有する。座標メモリ27は、指示部20にて指示された座標位置を、指示制御部19にて決定されることによって設定される。また、その他の中心光有メモリ28、周辺光本数メモリ29およびひねり有メモリ30は、指示装置1が動作するときに使用されるメモリである。このうち、中心光有メモリ28は、指示部20の発光ペン3から発光される中心光の有無を示す。周辺光本数メモリ29は、発光ペン3から発光される周辺光の本数を示す。ひねり有メモリ30は、発光ペン3から発光される外部光の有無を示す。
【0035】また、スタックデータ記憶部26は、回転角メモリ31、仰角メモリ32、距離メモリ33、軸加算方向メモリ34およびひねりメモリ35を有する。これら各メモリについては、指示装置1の動作とともに後述する。
【0036】図4〜図7は、指示装置1の処理動作を示すフローチャートである。以下、図8〜図12を用いて、図4〜図7のフローチャートに沿って、指示装置1の動作を説明する。なお、指示装置1の動作は、第1形態〜第5形態に分けられる。
【0037】(第1形態)図8は、第1形態の発光ペン3からの光路を示す図である。発光ペン3からは、中心光および2本の周辺光が出射される。点Pは光源を、線分POは中心光を、線分PAは周辺光のうちの1本を、線分PBは残る1本の周辺光をそれぞれ示している。中心光は2本の周辺光とそれぞれ同一の開き角θをなし、中心光および2本の周辺光は同一平面を通過する。よって、点O、点Aおよび点Bは、同一直線上に配列される。X軸は、受光パネル4の受光面上の線分ABに一致するように選ばれている。
【0038】図4のステップa1で第1形態の処理動作が開始され、ユーザによって発光ペン3が操作されると、発光ペン3からの光が受光パネル4によって検知される。検知された位置の平面座標は、位置制御部19によって座標メモリ27に記憶される。また、受光位置の検知と同時に、中心光が有るかどうかが判定され、有れば中心光有メモリ28にONが記憶され、無ければ中心光有メモリ28にOFFが記憶される。さらに、周辺光の本数が計数されて、周辺光本数メモリ29に記憶される。さらに、外部光の有無によってひねりの有無も判定され、ひねり有と判定されたら、ひねり有メモリ30にONが記憶され、なければOFFが記憶される。次に、3次元座標位置決定プログラム22が起動され、以下に説明する処理が実行される。
【0039】ステップa2では、中心光有メモリ28のONまたはOFFが判定される。中心光有メモリ28がONであれば、ステップa4へ進み、OFFであれば、ステップa3で中心光の座標を算出してからステップa4へ進む。第1形態では、中心光が有るので、ステップa3へ進む。ステップa4では、周辺光本数メモリ29の本数が判定され、周辺光本数メモリ29が2本ならステップa5へ、3本ならステップa15へ、4本ならステップa25へ、32本なら図5のステップb1へ進む。第1形態では、周辺光は2本であるので、ステップa5へ進む。
【0040】ステップa5では、座標メモリ27に記憶された各点の座標値が読み込まれる。次にステップa6では、中心軸角算出プログラム23が実行される。中心軸角算出プログラム23の処理は、図6に示される。
【0041】図6のステップc1で中心軸角算出プログラム23が開始されると、ステップc2では、図8(a)の点A、点Bおよび点Oの座標値から線分AOの長さと線分BOの長さとが算出される。次にステップc3では、線分AOの長さと線分BOの長さとが比較される。線分AOが線分BO以上の場合には、ステップc4へ進み、線分AOが線分BO未満の場合にはステップc5へ進む。このように、線分AOの長さと線分BOの長さとを比較することによって、図8(a)中の∠POBの大きさが90度以上であるか否か、すなわち線分POが点A側に傾いているか、点B側に傾いているかが判定される。第1形態では、線分AOが線分BO以上として、ステップc4へ進む。
【0042】ステップc4では、軸加算方向メモリ34にONが記憶される。次のステップc6では、線分AO、線分OBおよび開き角θを基に、仰角である∠POBを算出する。開き角θは発光ペン3内部または表面の構造によって決定される一定値であり、中心光と周辺光とのなす角、すなわち中心軸角を示す。仰角∠POBは、下記の数式によって求められる。まず、【0043】
【数1】

【0044】から、Xを消去すると、【0045】
【数2】

【0046】となる。算出された仰角は仰角メモリ32に記憶され、ステップc7へ進んで、図4の処理へ戻る。
【0047】図4へ戻ると、ステップa7へ進み、線分POの長さが距離として求められ、距離メモリ33に記憶される。線分POは角度βおよび開き角θに基づいて、以下の算出式から求められる。
【0048】
【数3】

【0049】次のステップa8では、仰角γと距離Hおよび軸加算方向メモリ34の記憶内容によって、相対座標値が求められる。この処理では、軸加算方向メモリ34がONの場合はプラス、OFFの場合はマイナスの相対座標値とする。第1形態では、軸加算方向メモリ34はONであるので、プラスの相対座標値となる。次のステップa9では、相対座標値に受光面上の中心光の位置として点Oの座標値を加算することによって、点Pの座標値を求めることができる。
【0050】次のステップa10において、ひねり有メモリ30のONまたはOFFが判定される。ひねりが有るなら次のステップa11へ進み、ひねりが無いならステップa12へ進む。第1形態では、ひねりが無いので、ステップa12で処理を終了する。以上の処理によって、点Pの3次元座標位置が決定される。
【0051】なお第1形態では、図8に示す線分POは点B側に傾いているものとしたが、線分POが点A側に傾いていてもよい。その場合の変更点を2箇所示す。1箇所目は、図6のステップc3での判定処理に関する。ステップc3では、線分AOの長さが線分OBの長さ未満であるので、ステップc5へ進んで、軸加算方向メモリ34にOFFが記憶される。2箇所目は、ステップa8の処理に関する。ステップa8では、相対座標値を算出するときに、軸加算方向メモリ34がOFFであるので、算出する相対座標値はマイナス値として算出されることになる。
【0052】また、第1形態では、図8の開き角θは∠PAO、∠PBOが同一であることを前提にしているが、両者が異なっている場合でも、上述の関係式は成立し、仮に∠PAOをθ1、∠PBOをθ1とは異なるθ2とした場合に、θ1からθ2を算出することが可能である。
【0053】(第2形態)図9は、第2形態の発光ペン3からの光路の形状を示す図である。図9(a)に示すように、発光ペン3からの光は、中心光および3本の周辺光から成る。線分POは中心光を、線分PA、線分PBおよび線分PCはそれぞれ3本の周辺光を示している。線分PA、線分PBおよび線分PCは、正3角錐の3本の稜線に沿って配置され、線分POはその3角錐の中心軸に沿って配置される。受光パネル4の受光面上では、点Oを原点とするXY直交座標系をとり、中心光と周辺光とのなす角を角度θ1とし、平面APB、平面BPCおよび平面CPAが線分POとなす角を角度θ2とする。
【0054】まず、図4のステップa3までは、第1形態と同様の処理を行うので、その後の処理内容を説明する。ステップa4の分岐処理において、第2形態では、周辺光本数メモリ29の値が3本であるので、ステップa15へ進む。ステップa15では、既に設定されている座標メモリ27の各々を読み込む。次のステップa16では、図9(b)に示す点A’の座標の算出を行う。点A’は、直線AOと線分BCの交点である。以下に点A’の座標値の算出方法を示す。
【0055】まず直線AOの方程式をY=aX+bYとして、これに点Aおよび点Oの座標を代入すると、【0056】
【数4】

【0057】となり、さらにaを消去すると、【0058】
【数5】

【0059】となる。a、bを元の方程式に代入することで、線分AOの方程式が求められる。同様にして、線分BCの方程式も求められる。以上のように、求められた線分AOおよび線分BCの連立方程式を解くことで、点A’の座標値(Xa,Ya)が算出される。
【0060】次のステップa17は、図7のフローチャートに従って処理が行われ、図9(c)に示される平面PAA’から、∠PAOの角度β1などを算出する。ステップd1で開始された処理は、ステップd2へ進み、正弦定理から、【0061】
【数6】

【0062】である。さらに、Xを消去すると、【0063】
【数7】

【0064】となる。さらに、加法定理から、【0065】
【数8】

【0066】となる。β1は未知数θ2を含んでいるが、点Oは三角形ABCの重心であるので、重心定理を使って求められる。すなわち、重心定理(i)三角形の3つの中線は1点(重心)で交わる。
(ii)各中線は他の中線を2:1に内分する。
から、線分AOの長さおよび線分OA’の長さの比は2:1となり、正弦定理によって求められる角度θ2は、下記のように求められる。
【0067】
【数9】

【0068】よって、角度β1が求められる。次にステップd3では、算出された角度β1と角度π/2−θ1との大小判定を行い、β1がπ/2−θ1未満の場合にはステップd4へ進み、それ以外の場合は、ステップd5へ進む。このように、β1とπ/2−θ1との比較によって、図9(c)の線分POが点A側に傾いているのか、それとも点A’側に傾いているのかが判定される。第2形態では、β1がπ/2−θ1未満であるのでステップd4へ進む。
【0069】ステップd4では、軸加算メモリ34のインデックス0にONが記憶される。次のステップd6では、図9(c)の∠POA’を求めて、その値を仰角メモリ32へ設定し、ステップd7で図7の処理を終了して図4へ戻る。∠POA’は∠POAの外角であるので、角度β1と開き角θ1との和として角度γが求められる。なお、開き角θ1は、発光ペン3の幾何学的な構造によって決定される指示装置1固有の値であり、定数である。
【0070】図4のステップa18に戻って、図9(c)に示す線分POの長さを距離Hとして求め、距離メモリ33に設定する。線分POは、正弦定理によって求められる。次にステップa19では、図9(d)の点Bと点Oとを通る直線BOが線分ACと交わる点B’の座標が算出される。点B’の座標値は、ステップa16の処理と同様にして求められる。次のステップa20では、ステップa17の処理と同様にして角度β2などが算出される。すなわち、【0071】
【数10】

【0072】である。また、θ3は以下の式から算出される。
【0073】
【数11】

【0074】次に、β2とπ/2−θ1との大小判定の後、軸加算方向メモリ34のインデックス1にONが記憶される。次に、∠POB’を求められて、その値は仰角メモリ32へ記憶される。
【0075】次にステップa21では、図9(e)に示す点Qの座標値を求める。点Qは、点Pから下ろした垂線と受光面との交点であり、点Pの座標値を(X,Y,Z)とすると、点Qの座標値は(X,Y,0)である。まず図9(c)において、点Pから下ろした垂線と線分AA’との交点O’を求め、図9(d)において、点Pから下ろした垂線と線分BB’との交点O”を求める。すなわち、点Oの座標値を(X0,Y0)、点O’の座標値を(X1,Y1)と仮定すると、【0076】
【数12】

【0077】である。平面XY上での線分OO’の傾きは線分AAと同じであるので、【0078】
【数13】

【0079】である。よってX1、Y1が算出される。このときに上の式は2次式であるので、X1、Y1の解は2つ存在するが、図7のステップd3で行った傾き判定で、中心光が点A側もしくは点A’側のどちら側に倒れているかが分かっているので、正しい方の解を特定することができる。次に、点O’を通り、線分AA’に垂直な直線の方程式をY=aX+Yとして以下のように算出する。直線は線分AA’に垂直であるので、【0080】
【数14】

【0081】である。また、求める直線は点O’(X1,Y1)を通過するので、このX1、Y1を方程式Y=aX+bに代入することによって、【0082】
【数15】

【0083】である。また、点O”の座標(X2,Y2)についても同様に、【0084】
【数16】

【0085】である。平面XY上での線分OO’の傾きは線分BB’と同じであるので、【0086】
【数17】

【0087】である。よってX2、Y2が算出される。このときに上の式は2次式であるので、X2、Y2の解は2つ存在するが、ステップで行った傾き判定で、中心軸が点B側もしくは点B’側のどちら側に倒れているかが分かっているので、正しい方の解を特定することができる。
【0088】次に点Oを通り、線分BB’に垂直な直線の1次式Y=aX+bを以下の計算によって算出する。まず、傾きが線分BBに垂直であるので、【0089】
【数18】

【0090】である。また求める直線は点O”(X2,Y2)を通過するので、このX2、Y2を方程式Y=aX+bに代入することによって、【0091】
【数19】

【0092】である。以上によって求められた点O’を通り、線分AA’に垂直な直線と、点O”を通り、線分BB’に垂直な直線との交点が点Qとなることから、前述の各垂線の方程式を連立させて解くことで、点Qの座標値(Xq,Yq)が算出される。
【0093】次にステップa22では、交点Qの座標値(Xq,Yq)から、以下のように線分POの回転角δを算出する。
【0094】
【数20】

【0095】次にステップa23では、線分POの仰角γを以下のように算出する。
【0096】
【数21】

【0097】次にステップa24では、回転角δと仰角γ、線分POおよび軸加算方向メモリ34によって、回転角δにて仰角γの距離Hの相対座標値を求める。この処理では、軸加算方向メモリ34のインデックス0がONの場合は、X軸に対してプラス、OFFの場合はX軸に対してマイナスの相対座標値とする。また軸加算方向メモリ34のインデックス1がONの場合は、Y軸に対してプラス、OFFの場合はY軸に対してマイナスの相対座標値とする。第2形態では、軸加算方向メモリ34は各々ONであるので、X軸およびY軸ともにプラスの相対座標値とする。
【0098】次にステップa9では、相対座標値に中心光の受光面上の点である点Oの座標値を加算することで、点Pの座標値を求める。以下の処理は、第1形態と同様であるので、説明を省略する。このように、3次元位置および方向が決定される。
【0099】なお、第2形態では、線分POは図9(c)の平面PAA’において点A’側に、図9(d)の平面PBB’において点B’側に各々傾いているが、仮に線分POが平面PAA’において点A側に、平面PBB’では点B側に各々傾いていてもよい。この場合、次のように第2形態の処理を3箇所変更すればよい。
【0100】1箇所目に、図7のステップd3の判定処理において、ステップd5へ進み、軸加算方向メモリ34のインデックス0にOFFを記憶する。2箇所目に、ステップa21において求める式は、【0101】
【数22】

【0102】である。3箇所目に、ステップa24において、相対座標値を算出するときに軸加算方向メモリ34がOFFであるので、相対座標値はマイナス値として算出される。
【0103】(第3形態)図10は、第3形態の発光ペン3からの光路を示す図である。発光ペン3からの光は、中心光を含まず、周辺光4本によって構成される。線分PA、線分PB、線分PCおよび線分PDは、それぞれ4本の周辺光を示している。周辺光を示す線分PA、線分PB、線分PCおよび線分PDは、4角錐の4本の稜線に沿って配置される。線分POは、4角錐の中心軸線である。受光パネル4の受光面上では、点Oを原点とするXY直交座標系をとり、中心軸と周辺光とのなす角を角度θとする。
【0104】第3形態の処理は、図4のステップa2において、中心光有メモリ28はOFFであり、ステップa3へ進む。ステップa3では、中心軸が受光面と交差する点Oの座標が算出される。すなわち、図10(a)の線分ACの方程式と線分BDの方程式とを求め、それらを連立させて解くことによって、線分ACと線分BDとの交点として点Oの座標値(X0,Y0)が求められれる。
【0105】ステップa4では、周辺光の本数が4本であるので、ステップa25へ進む。ステップa25では、座標メモリ27に記憶された各座標を読み込む。次のステップa26では、中心軸角算出プログラム23が実行され、第1形態の中心光の代わりに図10(b)の中心軸と線分ACとのなす角が求められる。次にステップa27では、線分POの長さを距離として求め、距離メモリ33に記憶する。線分POは、第1形態と同様の手順によって求められる。次にステップa28では、再び中心軸角算出プログラム23が実行され、図10(c)の中心軸と線分ACとのなす角が求められる。
【0106】次にステップa29では、図10に示す点Qの座標値は第2形態と同様にして求められる。点Qは、点Pの受光面への正射影である。すなわち、点Oの座標値を(X0,Y0)、点O’の座標値を(X1,Y1)と仮定すると、【0107】
【数23】

【0108】であり、X1、Y1が算出される。その際に、上の式が2次式であるのでX1、Y1の解は2個づつ存在するが、前処理で中心軸が点A側若しくは点C側のどちら側に倒れているかが、分かっているので、正しい方の解を特定することができる。次に、点Oを通って線分ACに垂直な直線の方程式をY=aX+bとすると、【0109】
【数24】

【0110】である。また、求める直線は点Oを通過するので、このX1、Y1を方程式Y=aX+bに代入することによって、【0111】
【数25】

【0112】である。点O”の座標(X2,Y2)を算出する場合に関しても、上述の処理を図10(c)について考えればよいので、【0113】
【数26】

【0114】である。次に、点O’を通る線分ACの垂線と、点O”を通る線分BDの垂線との交点が点Qとなるので、前述の各垂線の方程式より交点Q(Xq,Yq)の座標値が算出される。次のステップa30では、交点Qの座標値から、線分POの回転角δが算出される。
【0115】
【数27】

【0116】次のステップa31では、線分POの仰角γが算出される。
【0117】
【数28】

【0118】次のステップa32では、前述の処理にて求めた回転角δと仰角γ、線分POおよび軸加算方向メモリ34の記憶内容によって、回転角δにて仰角γの距離POの相対座標値を求める。この処理では、軸加算方向メモリ34のインデックス0にONが記憶されている場合、X軸に対してプラス、OFFの場合、X軸に対してマイナスの相対座標値とする。軸加算方向メモリ34のインデックス1にONが記憶されている場合、Y軸に対してプラス、OFFの場合、Y軸に対してマイナスの相対座標値とする。第3形態では、軸加算方向メモリ34は各々ONであるので、X軸およびY軸ともにプラスの相対座標値とする。
【0119】次にステップa9では、相対座標値に点Oの座標値を加算することによって、点Pの座標が求められる。以降の処理は、第1形態と同様であるので、説明を省略する。以上の処理によって、3次元位置および方向が決定される。
【0120】なお、第3形態では、線分POは図10(b)の平面PACでは点C側に、図10(c)の平面PBDでは点D側に各々傾いているとしたが、平面PACでは点A側に、平面PBDでは点B側に各々傾いていてもよい。この場合、前述の処理を3箇所変更すればよい。
【0121】1箇所目に、図6のステップc3の判定処理において、ステップc5へ進み、軸加算方向メモリ34のインデックス0およびインデックス1にOFFを記憶する。2箇所目に、ステップa29において求める式は、【0122】
【数29】

【0123】である。3箇所目に、ステップa32において、相対座標値を算出するときに軸加算方向メモリ34がOFFであるので、相対座標値はマイナス値として算出される。
【0124】(第4形態)図11(a)および図11(b)は、第4形態の光路を示す図である。発光ペン3からの光は、中心光および周辺光32本によって構成される。周辺光はそれぞれ円錐の斜面上に等間隔に配列され、中心光はその円錐の中心軸に沿って配置される。図11(a)および図11(b)の線分POは中心光を示し、楕円BLTRは、受光面による円錐の断面を示している。
【0125】第4形態では、図4のステップa4までは、第1形態と同様の処理が行われるので、説明を省略する。ステップa4の分岐処理において、周辺光の本数は32本であるので、図5のフローチャートのステップb1へ進む。
【0126】図5のステップb1では、座標メモリ27の各々を読み込む。ステップb2では、図11(a)に示す楕円と外接矩形との接点である極大点T、極小点B、極左点Lおよび極右点Rを求める。この各点は、座標メモリ27を2分探索して、最も接点に近いものを選択することによって行う。
【0127】次のステップb3では、各接点にごとに隣接する周辺光の座標点2個を計算によって選択する。次にステップb4では、接点およびこれに隣接する2点の合計3点の座標から、2次元曲線近似を行う。すなわち、まず、2次曲線は下記の2次方程式で表現する。
【0128】
【数30】

【0129】3次Gauss-Joudan法によって、すなわち接点を含む3点の座標をこの式に代入して、各係数を求める。次に、接点を含む3点から黄金分割によるはさみこみ処理を行う。すなわち、一般式αX2+βX+γ=0において、【0130】
【数31】

【0131】とすると、一般式の2解は、【0132】
【数32】

【0133】によって求められる。各接点の位置付けによって、この2つの解の1つを選択することができる。
【0134】次にステップb5では、点Tとこれに対向する点Bとを結ぶ線分TBの方程式、および点Lとこれに対向する点Rとを結ぶ線分LRの方程式を求める。次に、2つの方程式を連立させて解くことで、線分TBと線分LRとの交点として点Qの座標値を算出する。
【0135】次にステップb6では、前ステップbにて求められた図11に示す点Qと、中心軸と受光面との交点Oとを通る線分QOの傾き、すなわち回転角を以下の式によって算出できる。
【0136】
【数33】

【0137】次にステップb7では、図11(a)の各座標点に対して、回転角φだけ反時計回りの回転処理を行い、図11(b)に示すように回転移動させる。次にステップb8では、楕円とその長軸との交点として極左点Lと極右点Rとを2分探索によって求める。
【0138】次にステップb9では、ステップb3と同様に点Lおよび点Rそれぞれについて、隣接する周辺光の座標を求める。次にステップb10では、ステップb4と同様に、点Lまたは点R含む3点の座標に対して、2次曲線近似および黄金分割を施すことによって、はさみこみ処理を行う。次にステップb11では、第1形態と同様に、中心軸角算出プログラム23が実行される。次にステップb12では、第1形態と同様に、図11に示す線分POの長さとして距離を求め、距離メモリ33に記憶させる。
【0139】次にステップb13では、前述の処理にて求めた回転角δと仰角γ、線分POおよび軸加算方向メモリ34の記憶内容によって、回転角δ、仰角γおよび距離POから相対座標値を求める。この処理では、軸加算方向メモリ34がONの場合はX軸に対してプラス、OFFの場合はX軸に対してマイナスの相対座標値とするが、第4形態では、軸加算方向メモリ34は各々ONであるので、X軸はプラスの相対座標値とする。
【0140】次に図4のステップa9に戻って、相対座標値に点Oの座標値を加算することによって、点Pの座標値を求めることができる。以降の処理は第1形態と同様であるので、説明を省略する。
【0141】(第5形態)図12は、第5形態の発光ペン3からの光路を示す図である。発光ペン3からの光路は、中心光、2本の周辺光および外部光によって構成される。中心光と周辺光とは、第1形態と同様の光路を形成し、これに外部光を加えて第5形態を構成している。外部光は、中心光と周辺光と同一の平面内に有り、θよりも大きい開き角で発光ペン3から出射される。よって、受光面上でも外部光は、中心光および周辺光と同一直線上に有る。また、第5形態は、第1形態に外部光を加えた構成となっている。このような発光ペン3に関して、図12(a)に示す基本位置から、図12(b)に示すように、X軸に沿ってひねりを加えて傾斜させる。
【0142】図4のステップa1で処理が開始されると、各座標が検出されて、ひねりの有無も判定される。このとき、ひねり有と判定されるので、ひねり有メモリ30にONを記憶する。ステップa2からステップa9までは、第1形態と同様の処理が行われるので、説明を省略する。
【0143】図4のステップa10では、ひねり有メモリ30のONまたはOFFが判定され、第5形態ではひねり有メモリ30がONであるので、ステップa11へ進む。ステップa11では、以下の算出式によって、ひねり量を算出する。すなわち、図12(b)において、受光面上の外部光の位置を点G(Xg,Yg)、受光面上の中心光の位置を点O(X0,Y0)とおくと、【0144】
【数34】

【0145】である。このようにひねり量φが求められ、その値をひねりメモリ35へ記憶する。最後に、ステップa12で処理を終了する。
【0146】以上のように、第1形態の中心光および2本の周辺光に、外部光を1本加えることによって、3次元画像のひねりを実現することができる。また、第2形態に示した周辺光が3本の場合、第3形態に示した周辺光が4本の場合、あるいは第4形態に示した周辺光が32本の場合においても、同様の手順によって、容易にひねり量を算出することができる。
【0147】このような動作を行う指示装置1によって、3次元の位置および方向を指示することができる。また、指示部20は図13の指示部20aによって構成されてもよいし、また図14の指示部20bによって構成されてもよい。
【0148】図13は、指示部20aを簡略化して示す斜視図である。指示部20aは、発光ペン3、反射板104aおよびCCDカメラ104bで構成され、発光ペン3およびCCDカメラ104bは図1と同じコンピュータ2に接続される。反射板104aは、ホワイトボードなどの平面板であり、発光ペン3からの光を反射する。CCDカメラ104bは、平面板からの反射光を受光し、受光位置の座標値をコンピュータ2に送信する。このように指示部20aでも、図1の指示部20と同様に、3次元位置および方向を指示することができる。
【0149】図14は、指示部20bを示す斜視図である。指示部20bは、ジョイスティック型の指示部である。レバー51下部に設けられた発光素子52からレーザなどの光を照射し、受光パネル4にて受光する。レバー51は、筺体53に対して支点Pを中心に軸支されており、レバー51の軸に関しても回転可能である。このように指示部20bでも、図1の指示部20と同様に、3次元位置および方向を指示することができる。ただし、レバー51は支点Pで束縛されており、レバー51先端の発光位置は、支点Pから等距離の球面内に限定される。
【0150】
【発明の効果】以上のように本発明によれば、発光手段で少なくとも2光線を出射させ、受光手段で少なくとも2点の受光位置を検出することで、3次元画像の位置に加えて、ある固定された軸回りの方向を指示することができ、さらに、マウスのドラッグに相当する機能などで、3次元画像の平行移動および指定軸回りの回転移動を実現することができる。また、受光手段が面状の単体であるので、装置全体がコンパクトであり、マウスパッドなどと同様に簡単に設置することができる。さらに、発光手段の位置および方向だけで、1度に3次元位置および方向が指示されるので、指示が簡単で、かつ操作者は自ら指示した位置および方向を直感的に容易に把握することができる。
【0151】また本発明によれば、発光手段から互いに非平行な複数の光線を出射させることで、受光位置の情報から発光手段と受光手段との距離を把握し、3次元位置および方向を表す変数の1つを確実に求めることができるので、正確な指示が可能となる。
【0152】また本発明によれば、発光手段から光出射方向の中心軸に関して回転非対称な光線を出射させることで、受光位置同士の相対的な位置関係から発光手段の中心軸に関する回転角が導かれるので、3次元位置および方向を表す変数の1つを確実に求めることができ、正確な指示が可能となる。
【0153】また本発明によれば、受光した受光素子の位置が受光位置であるので、簡単で確実に受光位置を検出することができ、3次元位置および方向の指示精度が向上される。
【0154】また本発明によれば、受光画像からX0,Y0,γ,δの独立な4変数を抽出し、これらを3次元の位置および方向を表す6変数のうちの4変数に割り当てることができるので、さらに確実に3次元位置および方向を指示することができる。
【0155】また本発明によれば、受光画像からX0,Y0,γ,δ,Hの独立な5変数を抽出し、これらを3次元の位置および方向を表す6変数のうちの5変数に割り当てることができるので、さらに確実に3次元位置および方向を指示することができる。
【0156】また本発明によれば、受光画像からX0,Y0,γ,δ,H,φの独立な6変数を抽出し、これらを3次元の位置および方向を表す6変数すべてに割り当てることができるので、さらに確実に3次元位置および方向を指示することができる。
【出願人】 【識別番号】000005049
【氏名又は名称】シャープ株式会社
【出願日】 平成10年(1998)3月3日
【代理人】 【弁理士】
【氏名又は名称】西教 圭一郎
【公開番号】 特開平11−248415
【公開日】 平成11年(1999)9月17日
【出願番号】 特願平10−51022