ポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置
【課題】簡易な構成と簡単な処理で、正確に所望の位置を指示することができるとともに、指示媒体と指示平面との位置関係の変動にも容易に対応できるポインティング技術を提供する。
【解決手段】指示対象となる指示平面Tに対する指示を行う指示媒体410と、直交する2つの制御軸を有し、制御軸を中心とした回転角を成分とする指示ベクトルdにしたがって、指示媒体410の指示方向を制御する指示機構420と、制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する射影指示平面Pと、指示平面Tとの間において、原点を介した指示平面T上の指示位置とこれに対応する射影指示平面P上の位置との中心射影変換に基づいて、指示ベクトルdを演算する指示演算部430とを有する。
【解決手段】指示対象となる指示平面Tに対する指示を行う指示媒体410と、直交する2つの制御軸を有し、制御軸を中心とした回転角を成分とする指示ベクトルdにしたがって、指示媒体410の指示方向を制御する指示機構420と、制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する射影指示平面Pと、指示平面Tとの間において、原点を介した指示平面T上の指示位置とこれに対応する射影指示平面P上の位置との中心射影変換に基づいて、指示ベクトルdを演算する指示演算部430とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、スクリーンなどの指示平面に対して、レーザ光などの指示媒体によって特定の位置を指示するためのポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置に関する。
【背景技術】
【0002】
従来から、スクリーン等の指示平面に表示されたプレゼンテーション用の情報に対して、指示者が所望の位置を指し示すために、指示棒やレーザポインタ等の指示媒体が用いられている。指示棒の場合には、指示者が指示平面を指示可能な距離が短く、観衆が指示位置を判別することが難しい。このため、指示平面が大型で、指示平面と指示者との間の距離が長い場合には、可視レーザ光によって指示するレーザポインタが用いられることが多い。
【0003】
しかしながら、レーザポインタであっても、指示者の手振れにより指示位置が揺れると、観衆は指示位置を判別し難く、却って目障りになる場合がある。また、指示者が誤って指示平面外を指示してしまった場合には、可視レーザ光が観衆や設備等に照射され、これらに悪影響を及ぼす可能性がある。さらに、壇上等におけるプレゼンテーションでは、指示者が、指示平面と観衆との間で、視線や姿勢を頻繁に交代させる必要が生じるため、指示者に高度な表現能力が要求される。
【0004】
これに対処するため、指示者の指示位置に応じて、可視レーザ光の発光の有無、発光の形状等を変化させる技術が、特許文献1〜4に開示されている。また、指令センタからの指示に応じて、遠隔地にある端末において、レーザポインタが指示を行う技術が、特許文献5〜7に開示されている。
【特許文献1】特開2001−350119号公報
【特許文献2】特開2002−041238号公報
【特許文献3】特開2002−116878号公報
【特許文献4】特開2003−108309号公報
【特許文献5】特開2000−125024号公報
【特許文献6】特開2003−37840号公報
【特許文献7】特開平9−46776号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記のような従来技術においては、指示平面をカメラで撮影することにより、指示者によるレーザポインタの照射位置を発見し、追跡し続ける処理が必要となる。このため、装置構成及び処理が複雑化する。また、指示平面と指示媒体との位置関係が変動すると、指示平面に対する指示位置の正確さを担保することが困難となる。
【0006】
本発明は、上記のような従来技術の問題点を解決するために提案されたものであり、その目的は、簡易な構成と簡単な処理で、正確に所望の位置を指示することができるとともに、指示媒体と指示平面との位置関係の変動にも容易に対応できるポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置を提供することである。
【課題を解決するための手段】
【0007】
上記の目的を達成するために、請求項1のポインティングシステムは、指示対象となる指示平面に対する指示を行う指示媒体と、直交する2つの制御軸を有し、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって、前記指示媒体の指示方向を制御する指示機構と、前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面と、前記指示平面との間において、前記原点を介した中心射影変換に基づいて、前記指示ベクトルを演算する指示演算部と、を有することを特徴とする。
【0008】
請求項2の発明は、請求項1のポインティングシステムにおいて、前記指示演算部は、前記指示平面における異なる4点を頂点とする校正枠を設定する校正枠設定部と、前記射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定する射影校正枠設定部と、2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求める交点演算部と、直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とを相互に変換可能な透視演算部と、交点関数を用いて、前記透視演算部により変換した交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算する指示位置演算部と、前記指示位置演算部によって演算した指示位置若しくはこれに対応する前記射影平面上の位置に基づいて、前記指示ベクトルを演算する指示ベクトル演算部と、を有することを特徴とする。
【0009】
また、請求項10のポインティング方法は、請求項1の発明を方法の観点から捉えたものであり、請求項11のポインティングプログラムは、請求項1の発明をコンピュータプログラムの観点から捉えたものである。請求項12の指示ベクトル演算装置は、請求項1の発明の一部を構成する装置の観点から捉えたものである。
【0010】
以上のような請求項1、2、10〜12の発明では、カメラによる撮影処理を不要として、仮想的な射影指示平面を導入することにより、指示位置に対応する指示ベクトルを正確に求めることができ、指示媒体による指示を、正確に行うことができる。
【0011】
請求項3の発明は、請求項1又は請求項2のポインティングシステムにおいて、前記指示平面上の指示位置として、指示位置ベクトルを入力する入力装置と、前記指示位置ベクトルを、前記指示演算部に出力する指示情報出力装置と、を有することを特徴とする。
【0012】
以上のような請求項3の発明では、指示者は、入力装置によって所望の指示位置ベクトルを入力するという簡単な操作で、指示機構が指示媒体を正確な方向に制御して、所望の位置を指示させることができる。
【0013】
請求項4の発明は、請求項1〜3のいずれか1項のポインティングシステムにおいて、前記校正枠設定部及び前記射影校正枠設定部を有し、運用前若しくは要求に応じて、前記校正枠及び前記射影校正枠の設定を行うキャリブレーション部を有することを特徴とする。
【0014】
以上のような請求項4の発明では、指示媒体と指示平面の位置関係が変わっても、キャリブレーション部による設定を行うことによって、指示媒体の指示平面への正確な指示を担保することができる。
【0015】
請求項5の発明は、請求項1〜4のいずれか1項のポインティングシステムにおいて、前記指示媒体の基本指示方向若しくは前記指示機構の姿勢を変更可能な可動筐体に設けられていることを特徴とする。
【0016】
以上のような請求項5の発明では、指示媒体の基本指示方向が、指示対象領域の中央近辺を指示するように、設置者が手動等により指示機構の姿勢設定を行うことにより、指示媒体が指示対象領域の全域を指示可能となる。
【0017】
請求項6の発明は、請求項1〜5のいずれか1項のポインティングシステムにおいて、前記指示機構は、除震手段を備えた設置機構に設けられていることを特徴とする。
【0018】
以上のような請求項6の発明では、外部環境からの振動が加わっても、その影響を除震手段によって排除できるので、指示媒体による正確な指示動作を維持できる。
【0019】
請求項7の発明は、請求項1〜6のいずれか1項のポインティングシステムにおいて、前記指示演算部及び前記指示機構との間で、情報の入出力が可能なユーザインタフェースを備えることを特徴とする。
【0020】
以上のような請求項7の発明では、ユーザインタフェースを介して、指示演算部や指示機構の内部状態の入出力が可能となる。
【0021】
請求項8の発明は、請求項1〜7のいずれか1項のポインティングシステムにおいて、前記指示平面及び前記指示機構の一方若しくは双方が複数であることを特徴とする。
【0022】
以上のような請求項8の発明では、1つの指示平面若しくは指示機構ではカバーしきれない規模の会場での発表や、空間的に離れた複数拠点における発表に対応させることができる。
【0023】
請求項9の発明は、請求項3のポインティングシステムにおいて、前記入力装置、前記指示情報出力装置及び前記指示機構のうち、少なくともいずれかが複数であることを特徴とする。
【0024】
以上のような請求項9の発明では、複数の指示者による発表にも対応できる。
【発明の効果】
【0025】
以上説明したように、本発明によれば、簡易な構成と簡単な作業で、正確に所望の位置を指示することができ、指示媒体と指示平面との位置関係の変動にも容易に対応できるポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置を提供することができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明のポインティングシステムの一実施形態を、図面を参照して説明する。
[A.指示動作モデル]
まず、本実施形態が導入する指示動作モデルを、図1を参照して説明する。この指示動作モデルは、3次元空間において、指示者が指示媒体を用いて、指示対象となる平面上の目標位置を指し示す動作をモデル化したものである。指示媒体としては、例えば、レーザポインタの可視レーザ光、指示棒などを用いることを想定する。指示対象とする平面を、指示平面Tと呼ぶ。
【0027】
まず、可視レーザ光若しくは指示棒などの指示媒体が形成する軌跡が、一直線上に存在するものとして考える。このような仮想的な直線と指示平面Tとの交点が、目標とする指示位置pである。以下、この直線を指示直線Lと呼ぶ。
【0028】
指示位置pを指し示すことができる指示直線Lは、無数に存在する。すなわち、指示者は、指示平面T上以外のいかなる位置からも、指示位置pを指し示すことができる。なお、実際には、指示媒体が指示平面Tに到達可能な距離は有限である。このため、指示可能な距離は有限といえる。しかし、本モデルにおいては、便宜的に、指示媒体は無限に伸縮可能なものとして考える。
【0029】
ここで、任意の3次元座標系を導入する。この3次元座標系における原点Oは、指示平面T上以外の位置にある点とする。そして、原点Oを中心として、指示媒体が、指示平面T上を自由に指示する動作を考える。このとき、指示直線L上の一点は、原点Oに特定することができる。
【0030】
このように、指示直線L上の一点が原点Oに特定されると、指示直線Lに対して方向ベクトルdを与えることにより、目標とする指示位置pを決定できる。
【0031】
導入した3次元座標系を、球座標系として考える。すると、目標とする指示位置pは、1つの動径r、2つの偏角θ,φによって、p=(r,θ,φ)Tと表現することができる。このとき、方向ベクトルdは、pの成分のうち、2つの偏角θ,φのみから構成される2次元ベクトルによって、d=(θ,φ)Tと表現することができる。なお、MTは、行列Mの転置行列を表す。
【0032】
上記の方向ベクトルdを指示ベクトルと呼ぶ。導入された3次元座標系における指示動作は、この指示ベクトルdを決定することに相当する。
【0033】
[B.実施形態の構成]
[1.全体構成]
本実施形態のポインティングシステムの構成を、図2及び図3を参照して説明する。なお、図2は、本実施形態の外観及び使用例を示す説明図である。図3は、本実施形態の構成を示す機能ブロック図である。すなわち、ポインティングシステム100は、指示平面T、入力装置200、指示情報出力装置300及び指示装置400等により構成されている。
【0034】
[2.指示平面]
指示平面Tは、指示装置400が指示対象とする平面である。この指示平面Tは、例えば、多数の観衆向けの大型の表示装置若しくは投影スクリーン等によって構成することが考えられる。指示装置400による指示位置は、指示平面T上のいずれかに存在する。
【0035】
指示平面Tには、例えば、コンピュータ画面上の画素を成分とする座標系を導入することができる。この座標系は、コンピュータによる演算においては、指示動作に適した2次元座標系として定義される。そして、目標とする指示位置は、当該2次元座標系における2次元ベクトルによって表現できる。この2次元ベクトルを指示位置ベクトルと呼ぶ。
【0036】
指示情報出力装置300は、入力装置200から入力された座標情報に応じて、指示位置ベクトルを指示装置400に出力する。指示装置400は、入力された指示位置ベクトルに基づいて、指示ベクトルを演算して、指示動作を行う。このため、任意の指示位置ベクトルと実際の指示平面T上の位置とは、容易に対応付けられる構造となっている。
【0037】
[3.入力装置]
入力装置200は、指示者Aが、指示平面T上の所望の指示位置を入力する手段である。この入力装置200としては、例えば、マウス、キーボート、リモコン、スイッチ、ディスプレイ(タッチパネル)等、周知のあらゆる入力手段を使用することができる。
【0038】
入力装置200による入力方法としては、例えば、指示者Aが入力装置200を用いて、ディスプレイに表示されたカーソルを移動させ、カーソルが所望の位置に来た時に、決定操作をすることにより、入力する方法がある。決定操作としては、例えば、クリック、決定ボタンを押す等がある。また、指示者Aが、ディスプレイに構成されたタッチパネル上の所望の位置を、指やペンで触れて指定することにより、入力する方法もある。
【0039】
このディスプレイは、後述する指示情報出力装置300のディスプレイと兼用であってもよいし、入力装置200が独自のディスプレイを備えていてもよい。入力装置200によって入力できる情報は、指定された位置情報には限定されない。例えば、スイッチのON/OFFなどの内部状態に関する情報、指示装置400を制御するための情報等も含めることができる。
【0040】
[4.指示情報出力装置]
指示情報出力装置300は、入力装置200から入力された座標情報に基づいて、指示位置ベクトルを算出し、この指示位置ベクトルを指示装置400に出力する装置である。指示情報出力装置300は、例えば、所定のオペレーティングシステム及びアプリケーションプログラムによって動作するコンピュータによって実現することができる。
【0041】
かかるコンピュータにおいては、プレゼンテーション用の情報が、ハードディスク、メモリ、光ディスク等の記憶媒体に記憶されており、この情報がアプリケーションプログラムによって呼び出されて、ディスプレイ等の表示手段に表示される。なお、指示情報出力装置300のコンピュータ用のマウス、キーボード、リモコン、スイッチ、ディスプレイ(タッチパネル)等の入力手段は、入力装置200と兼用でもよいし、入力装置200とは別でもよい。
【0042】
指示平面Tが、表示装置により構成される場合には、指示情報出力装置300と指示平面Tの表示装置とが接続され、指示情報出力装置300のディスプレイに表示される情報が、指示平面Tにも表示される。また、指示平面Tが、投影スクリーンにより構成される場合には、指示情報出力装置300とプロジェクタとが接続され、指示情報出力装置300のディスプレイに表示される情報が、指示平面Tにも投影される。なお、指示情報出力装置300にプロジェクタを備えることも可能である。
【0043】
このような指示情報出力装置300は、上記のオペレーティングシステム、アプリケーションプログラム等のプログラムの働きにより、図3に示すように、入力部310、決定部320、出力部330としての機能を有している。
【0044】
入力部310は、入力装置200等の外部からの情報の入力を受け付けるインタフェースである。決定部320は、入力装置200によって入力された情報(例えば、ディスプレイの座標情報)に基づいて、指示平面Tに対する指示位置ベクトルを決定する手段である。このような座標情報と指示位置ベクトルとの変換は、所定の指示位置決定アルゴリズムによって行われるが、一般的な技術であるため、説明を省略する。
【0045】
出力部330は、決定部320によって決定された指示位置ベクトルを、指示装置400に出力するインタフェースである。出力部330から出力する情報は、指示位置ベクトルに加えて、上記のように、指示装置400の動作を制御するための種々の情報を含めることができる。さらに、プレゼンテーション用の情報も、出力部330から指示平面T(表示装置、プロジェクタ等)へ出力される。
【0046】
[5.指示装置]
指示装置400は、図3に示すように、指示媒体410、指示機構420、指示演算部430、指示情報インタフェース440、可動筐体450、設置機構460及びユーザインタフェース470等を有している。
【0047】
[5−1.指示媒体]
指示媒体410は、指示平面Tを指示するための媒体である。指示媒体410の例としては、可視レーザ光の光源及び光学部材から成るレーザポインタや指示棒(固定長のもの、伸縮可能なものを含む)などが挙げられる。なお、指示媒体410としては、指示棒以外の直線状の構造物、レーザ光以外の光源及びこれを集光する光学部材、その他の電磁波や超音波の発振器等を使用することもできる。つまり、指示媒体410は、指示方向が特定できる程度の指向性を有する媒体であれば、用途に適したものを自由に選択することができる。
【0048】
指示媒体410の伸縮長、到達距離若しくは出力レベル、発光色、投影光の形状、投影光の大きさ等は、指示装置400の外部(例えば、指示情報出力装置300)から入力される制御情報、ユーザインタフェース470を介して入力される制御情報若しくは指示装置400にあらかじめ設定された内部条件等に基づいて制御される。
【0049】
[5−2.指示機構]
指示機構420は、2つの制御軸を備え、入力された指示ベクトルにしたがって、指示媒体410の指示方向を制御する機構である。この指示機構420としては、例えば、モータ駆動によってレーザポインタ若しくは指示棒の方向を変える2軸制御装置を用いることが考えられる。
【0050】
指示ベクトルは、基本的には、指示演算部430により演算されたものが入力される。但し、入力装置200から直接指示ベクトルを入力して、指示機構420を動作させることもできる。また、後述するユーザインタフェース470から、直接的に指示媒体410の指示方向を制御するイベント(指示位置ベクトル若しくは指示ベクトル等を含む)を入力できるように構成してもよい。
【0051】
指示機構420においては、現在の指示媒体410の姿勢に対応する指示ベクトルが、指示方向制御パラメータとして、常にメモリ等の記憶部に記憶されている。指示ベクトルが外部から入力された場合には、それが記憶部に記憶され、これに従って指示機構420が動作する。
【0052】
手動等により指示媒体410の姿勢を変更した場合にも、これに対応する指示ベクトルが記憶部に記憶され、その時点での指示媒体410の姿勢に対応する指示ベクトルとして利用可能となる。後述するキャリブレーションにおいては、(ii)第2の方法 (a)〜(c)で説明した操作の際の指示ベクトルが利用される。
【0053】
なお、指示ベクトルと指示方向の制御結果とに生じる誤差をキャンセルするために、実際の指示方向を検出し、フィードバック制御を行わせるように構成することもできる。
【0054】
[5−3.指示演算部]
指示演算部430は、要求判定部431、キャリブレーション部432、交点演算部433、透視演算部434、指示位置演算部435、指示ベクトル演算部436等を有している。要求判定部431は、外部からのキャリブレーション要求の有無、指示位置の更新要求の有無を判定する手段である。
【0055】
キャリブレーション部432は、本システム運用前若しくは指示装置400の位置姿勢の変更後のキャリブレーションを行う手段である。キャリブレーション部432は、校正枠設定部432a、射影校正枠設定部432b、校正値演算部432cを有している。校正枠設定部432aは、指示平面T上の校正枠を設定する手段である。射影校正枠設定部432bは、後述する射影指示平面P上の射影校正枠を設定する手段である。校正値演算部432cは、校正枠及び射影校正枠に基づいて、校正値を算出する手段である。これらのキャリブレーションの詳細については、後述する。
【0056】
交点演算部433は、校正枠若しくは射影校正枠における2頂点と任意の点とを結ぶ2直線と、校正枠若しくは射影校正枠における対角線との2つの交点についての交点係数ベクトルを求める手段である。透視演算部434は、校正値及び交点係数ベクトルに基づいて、2つの交点に対応する指示平面T上の射影点若しくは射影指示平面P上の射影点を求める手段である。
【0057】
指示位置演算部435は、交点演算部433及び透視演算部434の演算結果に基づいて、校正枠若しくは射影校正枠における2頂点と2つの射影点を結ぶ直線の交点について、交点係数ベクトルを求める手段である。指示ベクトル演算部436は、指示位置演算部435によって求めた交点係数ベクトルに基づいて、指示ベクトルを求める手段である。
【0058】
このような指示演算部430による演算の詳細については、後述する。また、上記の演算を制御するイベントを、指示情報出力装置300以外(例えば、後述するユーザインタフェース470等)から、入力できるように構成してもよい。
【0059】
なお、指示演算部430は、所定のプログラムによって、上記の各部の機能を実現できるコンピュータによって構成することができる。例えば、各部の機能を実現するASICやCPU等のICチップやその他の周辺回路によって構成したり、複数の機能を集約したシステムLSIによって構成する等、種々考えられるものであり、特定のものには限定されない。
【0060】
[5−4.指示情報インタフェース]
指示情報インタフェース440は、指示演算部430と外部(指示情報出力装置300など)との間のインタフェースである。指示情報インタフェース440には、指示情報出力装置300の出力部330が接続される。この指示情報インタフェース440は、指示情報出力装置300からの情報の入力を受け付けて、指示演算部430へ指示情報を出力する。なお、指示情報インタフェース440は、指示装置400の内部状態を、外部へ出力することもできる。
【0061】
[5−5.可動筐体]
可動筐体450は、手動若しくはアクチュエータ制御により、その姿勢を変更できる筐体である。この可動筐体450は、内部に指示機構420を有している。このため、指示機構420の姿勢(指示媒体410の基準となる指示方向)は、可動筐体450の可動範囲内で、任意に設定できる。
【0062】
[5−6.設置機構]
設置機構460は、指示装置400の構成要素を支持し、運用環境内に固定するための構造物である。設置機構460として、どのような機構を採用するかは自由である。例えば、設置機構460を、構成要素を据え置くための台座、構成要素を吊り下げるためのフック、構成要素を設置面に吸着させるための吸盤や磁石などにより構成することができる。
【0063】
ただし、指示装置400が正確な指示動作を行うためには、外部環境からの振動の影響を受けないようにすることが望ましい。したがって、設置機構460に、除震機能を備えてもよい。例えば、バネ、スプリング、ダンパ等の弾性体による支持部材を備えることが考えられる。
【0064】
[5−7.ユーザインタフェース]
ユーザインタフェース470は、指示情報インタフェース440を介さずに、情報の入出力を行う手段である。このユーザインタフェース470には、上記の入力装置200と同様の入力手段や、ディスプレイ、プリンタ等の出力手段を接続することが考えられる。指示者Aは、入力手段を介して、指示媒体410の指示方向を制御するイベント、指示演算部430による演算を制御するイベント等を、直接入力することができる。
【0065】
また、出力手段に指示装置400の内部状態を出力若しくは表示することにより、指示者Aが、キャリブレーション進行状況等の内部状態を確認できる。ただし、ユーザインタフェース470の実装は必須ではなく、必要に応じて実装すればよい。入力可能な情報についても、自由である。
【0066】
なお、上記の指示情報出力装置300及び指示装置400において、入出力される情報、演算値、演算結果等、各種の処理に必要な情報は、コンピュータが備えるレジスタ、メモリ、ハードディスク等の記憶媒体に確保された記憶領域に記憶され、適宜利用される。各記憶領域が、各情報の記憶部を構成するものとなるが、これは、周知の技術により構成可能なため、説明は省略する。記憶部として、どのような種類、容量の記憶媒体を使用するかは自由である。情報の記憶形式として、どのようなものを採用するか等についても自由である。
【0067】
[C.指示動作原理]
上記のような指示動作モデル及び装置構成を前提として行う指示動作の原理を、図4〜9を参照して説明する。
[1.球座標系及び3次元直交座標系の導入]
まず、指示媒体410の方向を決定するための指示機構420の2つの制御軸は、理論的には直交し一点で交わる。そこで、図4に示すように、この交点上に原点を有する球座標系ΣSを導入する。球座標系ΣSにおける任意の座標は、1つの動径rと、2つの偏角θ,φを成分として表すことができる。なお、r≧0,−π/2≦θ≦π/2, −π≦φ<πである。
【0068】
球座標系ΣSにおいて、2つの偏角θ,φのみを成分とする2次元ベクトルd=(θ,φ)Tは、ΣSにおいて、一意に定まる指示直線Ldを表す。この2次元ベクトルdが、上記の指示ベクトルdである。上記の2つの指示方向制御軸は、指示ベクトルdの両成分に対応する。したがって、指示媒体410の姿勢である指示方向は、指示ベクトルdにより制御できる。
【0069】
球座標系ΣSにおいて、θ=0,φ=0となる指示媒体410の姿勢を、指示媒体410の基本指示方向とする。指示媒体410の姿勢が、基本指示方向となるときの指示ベクトルdO=(0,0)Tを、基本指示ベクトルと呼ぶ。
【0070】
また、同時に、任意の座標が、x,y,zを成分として表され、次の条件を満足する3次元直交座標系ΣCを導入する。
(a)ΣSのθ成分の回転軸とx軸とが一致する。
(b)ΣSのφ成分の回転軸とy軸とが一致する。
(c)基本指示ベクトルに対応する指示直線LdO上に、正のz軸が存在する。
【0071】
このとき、ΣS,ΣCは、双方の原点が一致する。そして、r>0,−π/2<θ<π/2である場合、ΣSの任意の座標に一意に対応するΣCの座標が存在する。同様に、ΣCの任意の座標に一意に対応するΣSの座標が存在する。
【0072】
指示平面T上の指示対象領域の全域を指示するためには、指示媒体410の基本指示ベクトルdOが、指示対象領域の中央近辺を指示するように、設置者が、設置機構460の設置及び可動筐体450の姿勢設定を行うことが望ましい。
【0073】
なお、指示平面Tは、図4に示すように、ΣS,ΣCの原点を通らない任意の位置に配置されているものとする。また、指示平面Tの法線は、ΣCのx,y成分の軸のいずれとも一致しないものとする。
【0074】
[2.2次元線形座標系の導入]
ここで、指示平面T上の指示位置を特定するため、指示平面T上に指示動作に適した任意の2次元線形座標系ΣTを導入する。ΣCにおける指示平面Tに対する指示位置Cpは、ΣTにおける指示位置Tpと、一意に対応する。このため、任意の指示ベクトルdが、Cpを指示することは、Tpを指示することと同義である。このTpは、上述の指示位置ベクトルである。このため、任意の指示位置ベクトルTpに一意に対応する指示ベクトルdが存在すると言える。
【0075】
上記の指示装置400と指示平面Tのモデルに基づいて、ΣTの任意の座標を、これに対応するΣSの座標に変換する関数を同定する。この関数を同定することで、本実施形態による指示動作が可能となる。
【0076】
従来の手法では、この関数の同定には、指示環境の位置姿勢に関する情報が必要であった。この情報とは、例えば、ΣCにおけるΣTの原点位置や指示平面Tの法線ベクトルなどである。
【0077】
もし、指示装置400及び指示平面Tの位置姿勢が固定されていて、指示環境の位置姿勢に関する情報が既知であれば、関数の同定に問題はない。しかし、指示装置400若しくは指示平面Tは、可搬であることが便利である。また、指示者Aが、指示装置400若しくは指示平面Tを自由に所望の位置に設置し、容易に指示動作を行えることが望ましい。このような指示動作の利便性を考慮すると、指示動作のための位置姿勢に関する情報は不要とし、位置姿勢の制約、位置姿勢の正確な設計、装置の正確な配置、正確な測量などは、極力排除すべきである。
【0078】
[3.射影指示平面の導入]
これに対処するために、本実施形態においては、図5に示すように、ΣCにおけるz=1となる仮想的な平面Pを導入する。さらに、この平面Pに対して、2次元直交座標系ΣPを導入する。ΣPは、ΣCを、そのz軸に沿って、平面Pへ正射影した座標系である。このとき、ΣPにおける任意の点Ppは、適切な座標変換により、ΣCにおける点Cpに一意に対応付けられる。
【0079】
任意の指示ベクトルdにより指示平面T上の点Cuを指示したとき、ΣCの原点COとCuを結ぶ線分は、平面Pと交点Cvで交わる。指示ベクトルdとCuが一意に対応することと同様に、指示ベクトルdとCvも一意に対応する。このことから、CuとCvとが、一意に対応することが導かれる。
【0080】
このCuとCvとの関係は、ΣCの原点COを介した指示平面Tと平面Pとの相互的な中心射影変換を意味する。この平面Pを射影指示平面と呼ぶ。
【0081】
任意の指示ベクトルdについて、射影指示平面P上のΣPにおける指示点Pvは、一意に対応付けられる。よって、ΣCに対して所定の位置に固定されている射影指示平面Pにおいて、指示点Pvは、指示ベクトルdの別形式の表現と言える。このPvを、射影指示位置ベクトルと呼ぶ。
【0082】
d=(θ,φ)T,Pv=(x,y)Tとしたとき、dとPvとの関係は式(1),(2)のとおり表される。
【数1】
【数2】
【0083】
上記の中心射影変換においては、指示平面Tの法線と射影指示平面Pの法線とが一致しているときに限り、両平面の位置姿勢に関する情報を用いることなく、適切な線形変換により、指示平面T上の点Cuと射影指示平面P上の点Cvとの相互変換ができる。しかし、多くの場合には、両平面の法線は一致しないため、非線形変換となってしまう。このため、従来手法においては、点Cuと点Cvとを相互変換させるには、両平面の位置姿勢に関する情報が必要となっていた。また、かかる情報がない場合には、線形変換による近似解を求めるにとどまっていた。
【0084】
[4.交点関数の導入]
この問題を解決するために、本実施形態においては、新たな中心射影変換の同定方法を用いる。このために、交点関数及び透視関数と呼ぶ2つの重要な関数を導入する。
【0085】
まず、交点関数について述べる。すなわち、ある2次元平面上で、平行でない2つの直線S,Tを考える。直線S,T上の異なる2点の組をそれぞれ{s0,s1},{t0,t1}としたとき、両直線の交点cが、式(3)のとおりに表されるとする。
【数3】
【0086】
このとき、係数s,tは、I(S,T)なる関数により、式(4)のとおり求めることができる。
【数4】
ただし、det[a b]は、a,bを小行列とする行列の行列式を表す。
【0087】
このベクトル関数I(S,T)を、交点関数と呼ぶ。また、I(S,T)により求められた解ベクトル(s,t)Tを、交点係数ベクトルと呼ぶ。
【0088】
[5.透視関数の導入]
続いて、直交しない2つの平面上で相互に対応する直線同士の中心射影変換を考える。平面U上の直線ULに乗る2点{u0,u1}が、この中心射影変換により、それぞれ平面V上の直線VLに乗る2点{v0, v1}に射影されるとする。同様に、UL上の別の点u=(1−M)u0+Mu1が、VL上の点v=(1−MI)v0+MIv1へ射影されるとする。このとき、M,MIは既知とする。
【0089】
同様に、UL上の別の点u’=(1−N)u0+Nu1が、VL上の点v’=(1−nI)v0+nIv1へ射影されるとする。Nは既知であるとすれば、このnIは、関数P(M,MI,N)により、既知の係数M,MI,Nのみを用いて、式(5)のとおり求めることができる。
【数5】
なお、式(5)の証明は、後述する。この関数P(M,MI,N)を透視関数と呼ぶ。
【0090】
[6.平面間の中心射影変換]
この透視関数P(M,MI,N)により2つの直線上で対応する任意の点の間の中心射影変換を同定できた。そこで、これを拡張して、2つの平面(ここでは指示平面T,射影指示平面Pとする)上で対応する任意の点の間の中心射影変換を同定することを考える。この問題を解決するためには、次の4つのプロセスを実行すればよい。
【0091】
[6−1.第1のプロセス]
指示平面T上の任意の四角形TRを考える。四角形TRの2つの対角線TD20,TD31が、それぞれ端点の組{Tv0,Tv2},{Tv1,Tv3}を有しているとする。そして、この対角線同士の交点TcRが、式(6)で表されるとする。
【数6】
【0092】
ここで、問題の中心射影変換により、四角形TRが射影指示平面P上の四角形PRへ射影されたと考える。PRの2つの対角線PD20,PD31が、それぞれ端点の組{Pv0,Pv2},{Pv1,Pv3}で表されるとする。そして、この対角線同士の交点PcRが、式(7)で表されるとする。
【数7】
TvnとPvnで表される各点同士は、図6に示すとおり、この中心射影変換における対応点である。
【0093】
まず、これら2種類の対角線同士の交点TcR,PcRに関する交点係数ベクトルを、上記の交点関数を用いて式(8),(9)のとおり求める。
【数8】
【数9】
【0094】
[6−2.第2のプロセス]
次に、図7に示すとおり、指示平面T上の任意の点Tpを導入する。この点Tpと対角線TD31のいずれかの端点Tvaとを端点の組{Tp,Tva}とする線分TSaを考える。この線分TSaと対角線TD20との交点Tc20が、式(10)で表されるとする。
【数10】
【0095】
同様に、Tpと対角線TD20のいずれかの端点Tvbとを端点の組{Tp,Tvb}とする線分TSbを考える。この線分TSbと対角線TD31との交点Tc31が、式(11)で表されるとする。
【数11】
【0096】
このとき、交点Tc20,Tc31に関する交点係数ベクトルを、式(12),(13)のとおり求める。
【数12】
【数13】
【0097】
ただし、Tvaは、次のような基準で選択する。すなわち、線分TSaが、その線分上で対角線TD20と交点を結ぶように、Tvaとして、Tv1またはTv3を選択する。もし、TpがTD31上にある場合は、Tv1,Tv3のどちらを選択してもよい。ただし、TpがTv1上にある場合はTv3を選択する。一方、TpがTv3上にある場合は、Tv1を選択する。
【0098】
同様に、Tvbは、次のような基準で選択する。すなわち、線分TSbが、その線分上で対角線TD31と交点を結ぶように、Tvbとして、Tv0またはTv2を選択する。もし、TpがTD20上にある場合は、Tv0,Tv2のどちらを選択してもよい。ただし、TpがTv0上にある場合は、Tv2を選択する。一方、TpがTv2上にある場合は、Tv0を選択する。
【0099】
[6−3.第3のプロセス]
図8に示すとおり、上記の中心射影変換により、指示平面T上の点Tc20が、射影指示平面Pにおける対角線PD20上の点Pc20へ射影されたときを考える。このとき、点Pc20が、式(14)のとおり表されるとする。式(14)中の係数Pn20は、前プロセスまでに求めておいた係数Tm20, Pm20,Tn20を用いて、透視関数によって求めることができる。具体的には、式(15)のとおりである。
【0100】
【数14】
【数15】
【0101】
同様に、指示平面T上の点Tc31が、射影指示平面Pにおける対角線PD31上の点Pc31へ射影されたときを考える。このとき、点Pc31が、式(16)のとおり表されるとする。式(16)中の係数Pn31は、前プロセスまでに求めておいた係数Tm31,Pm31,Tn31を用いて、透視関数によって求めることができる。具体的には、式(17)のとおりである。
【数16】
【数17】
【0102】
[6−4.第4のプロセス]
図9に示すとおり、指示平面T上の線分TSa,TSbにおけるTp以外の端点が、上記の中心射影変換により、それぞれ射影指示平面P上の点Pva,Pvbへ射影されたとする。ここで、2点{Pva,Pc20}が乗る直線PLpaと、2点{Pvb,Pc31}が乗る直線PLpbとの交点Ppは、式(18)のとおり表される。このとき、式(19)のとおり、交点Ppに関する交点係数ベクトルを求めることができる。
【0103】
【数18】
【数19】
【0104】
上記のプロセスによって、問題の中心射影変換を同定することができた。これは、2つの平面の位置姿勢によらず、両平面上の対応する既知の四角形に関する情報のみを用いている。したがって、ある指示環境下における任意の指示ベクトルdによる指示位置について、指示平面Tと射影指示平面Pとの間の中心射影変換を考えれば、上記第1〜4のプロセスを実行することで、一方の平面上の指示位置が決定すれば、他方の平面上の指示位置を求められ、相互に変換可能であることがわかる。上記のプロセスを、透視プロセスと呼ぶ。
【0105】
透視プロセスにおいて、係数Tn20,Tn31は、指示ベクトルdが更新される毎に、式(10)〜(13)から求めなければならない。しかし、係数Tm20,Tm31,Pm20,Pm31については、本システムの運用に先立って、一度だけ求めておけばよい。若しくは、運用中に何らかの理由でポインタの位置姿勢など指示環境が変化した際に、一度だけ求め直せばよい。
【0106】
すなわち、係数Tm20,Tm31,Pm20,Pm31は、運用前のキャリブレーションにより得られる係数である。これらの係数に関係する透視プロセスにおいて、四角形TRを校正枠と呼ぶ。また、四角形PRを、射影校正枠と呼ぶ。さらに、このキャリブレーションにより得られた係数を校正値と呼ぶ。
【0107】
本システムにおいては、指示動作の準備として、指示平面T上の任意の校正枠とそれに対応する射影指示平面P上の射影校正枠について、指示ベクトルを用いてそれらの4つの頂点を指示することにより、校正値を求めておく。これにより、指示平面T上の任意の指示位置Tuに対応する射影指示平面P上の指示位置Pvを正確に求めることができる。さらに、このPvから、式(2)により、対応する指示ベクトルdを求められるため、目標とする指示位置Tuを正確に指示することができる。
【0108】
[6−5.式(5)の証明]
以上が、本システムにおける指示動作の原理である。なお、上記の説明で省略した式(5)の証明を、以下に述べる。まず、x,y,zを成分とする任意の3次元直交座標系ΣCを考える。この3次元直交座標系ΣCに対して、平面Vと平面Uがあるとする。平面Vは、z=1なる平面である。平面Uは、平面Vとその法線同士が直交しない平面である。ここで、一般性を欠くことなく、平面V上の直線とこれに対応する平面U上の直線について、ΣCの原点を中心とする中心射影変換を考える。
【0109】
平面U上の異なる2点u0, u1が、この中心射影変換により、平面V上の2点v0,v1へ射影されるとする。このとき、ΣC上の単位ベクトルez=(0,0,1)Tを用いることにより、式(20)の関係が言える。ただし、a・bは、ベクトルaとbの内積を表す。
【数20】
【0110】
ここで、u0,u1が乗る直線UL上の任意の点uは、式(21)のとおり表されるとする。そして、この任意の点uが、同中心射影変換により、式(22)のとおり、v0,v1が乗る直線VL上の点vへ射影されたとする。
【数21】
【数22】
【0111】
このuとvには、式(20)と同様に、式(23)の関係が言える。
【数23】
【0112】
そして、式(23)に式(20),(21)を代入し、式(24)のとおり整理する。
【数24】
式(22),(24)から、式(25)が言える。
【数25】
【0113】
さらに、uとは異なる直線UL上の点u’が、同中心射影変換により直線VL上の点v’に射影されるとする。このu’は、式(26)のとおり表される。v’は式(27)のとおり表される。
【数26】
【数27】
【0114】
このとき、上記と同様に、式(28),(29)なる関係が言える。
【数28】
【数29】
【0115】
この中心射影変換を同定するにあたり、対象とする平面の位置姿勢に関する情報を排除する。そのため、式(25)をu0・ezについて整理すると、式(30)が得られる。
【数30】
【0116】
最後に、式(29)に式(30)を代入し、整理すると、式(31)を得ることができる。
【数31】
【0117】
[D.実施形態の作用]
本システムの動作手順の詳細を、図10のフローチャートを参照して説明する。本システムの動作は、主として、1.初期設定、2.キャリブレーション、3.キャリブレーション要求判定、4.指示位置更新要求判定、5.指示ベクトル演算、6.指示動作等の手順を含んでいる。
【0118】
[1.初期設定…ステップ1001]
まず、指示者Aは、本システムを設置する。例えば、あらかじめ背景に指示平面Tが設置された壇上に、指示情報出力装置300、指示装置400等を配置する。但し、これらを必ずしも壇上へ配置する必要はない。つまり、この設置作業においては、指示平面T及び指示装置400を、指示ベクトルdの設定範囲内で、指示媒体410が指示平面Tの指示対象領域全域を指示可能となるように設置すればよい。その際、上記のように、基本指示ベクトルdOが、指示対象領域の中心あたりを指示するように、設置機構460及び可動筐体450の姿勢を設定する。
【0119】
そして、指示情報出力装置300を指示装置400に接続する。これにより、指示情報出力装置300からの指示情報が、指示装置400に与えられるようにする。指示者Aは、指示情報出力装置300に接続された入力装置200を操作することにより、指示平面T上の目標とする指示位置ベクトルTp、その他の指示情報等を入力することができる。
【0120】
なお、指示平面Tが投影スクリーンの場合には、プロジェクタを指示平面Tに向ける。また、指示平面Tが表示装置の場合には、指示情報出力装置300と指示平面Tとを接続し、表示装置に表示すべき情報(指示情報等を含む)を与えることで、指示情報出力装置300のディスプレイと指示平面Tに、共通の情報が表示されるようにする。
【0121】
上記の設定により、指示平面T上には、プレゼンテーション資料等の情報を表示することができる。また、指示者Aが、入力装置200を介してカーソル位置座標を更新する場合などには、カーソル位置を明示する画像も表示される。
【0122】
[2.キャリブレーション…ステップ1002〜1005]
キャリブレーションは、校正枠設定部432aによる校正枠の設定(ステップ1003)、射影校正枠設定部432bによる射影校正枠の設定(ステップ1004)、校正値演算部432cによる校正値の算出(ステップ1005)を行う処理である。校正枠及び射影校正枠は、上記のように、ポインティングシステム100において、中心射影変換を同定するために必要となる。したがって、キャリブレーションは、設置されたポインティングシステム100の運用に先立って若しくはキャリブレーション要求の入力があった場合に行う。
【0123】
キャリブレーションは、上記の動作原理のとおり実行される。このとき、プログラムがキャリブレーション状態に遷移し、指示平面T及び指示情報出力装置300におけるディスプレイには、キャリブレーション画面が表示される。
【0124】
[2−1.校正枠の設定…ステップ1003]
まず、校正枠設定の際には、校正枠の4つの頂点に相当する指示位置ベクトルと、同頂点を指示する指示ベクトルとを対応付ける。かかる対応付け並びに校正枠の設定には、次の2通りの方法が考えられる。
【0125】
(i)第1の方法
第1の方法は、あらかじめ設定(メモリ等の記憶部に記憶)された指示ベクトルによって、指示平面Tを指示する方法である。例えば、図11に示すように、(θ0±θ,φ0±φ)Tと表される4つの指示ベクトルda〜ddにより、指示平面Tを順次指示する。指示者Aは、これらの指示ベクトルda〜ddに基づいて指示された位置(例えば、レーザ光の照射位置)へカーソルを合わせることにより、指示装置400に対して指示位置ベクトルと位置決定のイベントを与える。校正枠設定部432aは、各指示ベクトルda〜ddに、指示位置ベクトルTpa〜Tpdを対応付ける。
【0126】
この方法であれば、指示者Aは、指示平面T上の4箇所にカーソル位置を合わせて、その位置決定のイベントを指示情報出力装置300に与えることによって、順次キャリブレーションを進めることができる。なお、4頂点分の指示ベクトルが指示平面T内に収まらない場合には、指示者Aの入力操作により修正指令を与えるが、指示ベクトルは指示装置400において再計算される。
【0127】
(ii)第2の方法
一方、第2の方法は、例えば、図12に示すように、(X0±X,Y0±Y)Tと表される4つの指示位置ベクトルを定める方法である。これは、指示者Aが、各指示位置ベクトルTpa〜Tpdに対応する指示平面T上の位置を、指示装置400の指示媒体410が指示するように操作する。校正枠設定部432aは、各指示位置ベクトルTpa〜Tpdに対して、これらを指示した時の指示ベクトルda〜ddを対応付ける。指示者Aによる指示媒体410の操作方法には、次のいずれかの方法がある。
【0128】
(a)入力装置200から、指示機構420を制御する情報を入力し、指示情報出力装置300経由により、指示媒体410の姿勢を操作する。
(b)指示装置400のユーザインタフェース470から、指示機構420を制御する情報を入力し、指示媒体410の姿勢を操作する。
(c)指示媒体410の姿勢を手動にて操作する。
【0129】
(b)及び(c)の方法は、後述する遠隔プレゼンテーションにおいて、個体識別機能を追加せずにキャリブレーションを行う場合に有効である。すなわち、指示装置400上のユーザインタフェース470を用いて、直接、指示機構420を操作し、あらかじめ上記のように指示位置ベクトルが決められた指示平面T上の4点(例えば、画像表示領域の4隅、画像表示領域に表された4箇所の識別マーク等)に、順次可視レーザ光を照射していくことで、キャリブレーションを進めることができる。この方法によれば、遠隔地にある指示情報出力装置300や指示者Aとは独立して、各地の指示装置400と指示平面Tとのキャリブレーションを行うことができる。
【0130】
なお、上記の第1の方法及び第2の方法ともに、設定される4つの指示ベクトルは、すべて異なっていて、いずれか3つの指示ベクトルによる指示位置が同一直線上に無ければよい。このため、上記の例のような指示ベクトルに限定する必要はない。
【0131】
[2−2.射影校正枠の設定…ステップ1004]
射影校正枠設定部432bは、上記のように、4つの指示位置ベクトルTpa〜Tpdに対応付けられた4つの指示ベクトルda〜ddから、式(1)により、射影指示平面P上の対応する4つの射影指示位置ベクトルを求める。
【0132】
[2−3.校正値の算出…ステップ1005]
上記のように設定された校正枠および射影校正枠に基づいて、式(6)〜式(9)により、校正値を求める。これにより、キャリブレーションが完了する。
【0133】
[3.キャリブレーション要求判定…ステップ1006]
要求判定部431は、キャリブレーション要求イベントの有無を判定して、キャリブレーション部432のフロー制御を行う。例えば、指示装置400と指示平面Tとの相対的な位置姿勢など、指示環境が運用中に変化してしまった場合に、校正値の更新が必要になる。
【0134】
このとき、指示者Aが、入力装置200若しくはユーザインタフェース470を介して、キャリブレーション要求イベントを入力する。要求判定部431は、入力されたキャリブレーション要求イベントを検出した場合、キャリブレーション部432にキャリブレーションを開始させる。
【0135】
[4.指示位置更新要求判定…ステップ1007]
指示者Aは、プレゼンテーション中に、指示情報出力装置300若しくは指示平面T上に表示された内容を確認しながら、カーソル位置を所望の位置に移動させる。これにより、指示情報出力装置300から指示位置ベクトル等の指示情報が出力される。
【0136】
指示者Aが、入力装置200を用いて、目標とする指示位置を更新した場合には、指示情報出力装置300から出力される指示位置ベクトル等の指示情報が変化する。このような指示位置ベクトルの入力若しくは変化の有無を、要求判定部431が判定して、指示演算部430のフロー制御を行う。
【0137】
なお、新たな指示位置ベクトルの入力や指示ベクトルの変化がない場合には、指示ベクトルの更新を行わなくてもよい。また、指示者Aの手振れやノイズなど、指示情報の急峻な変化を減衰させるフィルタを実装することにより、指示位置の不要な変動による不快な動作を抑制する機能を持たせてもよい。
【0138】
[5.指示ベクトル演算…ステップ1008〜1012]
指示演算部430の交点演算部433は、式(10)〜(13)により、新たな指示位置ベクトルが示す指示点及び既に求められている校正枠における2頂点の間をそれぞれ結ぶ2直線と、当該校正枠における対角線との2つの交点についての交点係数ベクトルを求める(ステップ1009)。
【0139】
透視演算部434は、式(14)〜(17)により、既に求められている校正値、交点係数ベクトル及び指示平面T上の2つの交点に基づいて、当該2つの交点に対応する射影指示平面Pの2つの射影点を求める(ステップ1010)。なお、上記の説明では、指示平面T上の2点から、射影指示平面P上の2つの射影点を求めていたが、両者は相互に変換可能である。
【0140】
さらに、指示位置演算部435は、式(18)(19)により、既に求められている2つの射影点及び射影校正枠の2頂点を結ぶ2直線の交点についての交点係数ベクトルを求める(ステップ1011)。なお、上記の説明では、射影指示平面P上の2直線の交点から、交点係数ベクトルを求めていたが、指示平面T上の2直線の交点から、交点係数ベクトルを求める場合も同様である。
【0141】
指示ベクトル演算部436は、ステップ1011で求めた交点係数ベクトルに基づいて、式(2)により、指示ベクトルを求める(ステップ1012)。なお、指示方向制御軸のずれなどの、指示装置400における指示機構420の実装精度により、指示ベクトルの補正が必要となる場合を考慮して、適切な指示ベクトル補正機能を実装し、求められた指示ベクトルを補正してもよい。
【0142】
[6.指示動作…ステップ1013〜1015]
上記のように求められた指示ベクトルによって、指示機構420は、指示媒体410の指示方向制御パラメータを更新する(ステップ1013)。この指示方向制御パラメータにしたがって、指示機構420が動作するので、指示媒体410が、指示平面T上の目標とする指示位置を指示する(ステップ1014)。そして、プレゼンテーション等を継続する場合には、ステップ1006に戻る(ステップ1015)。
【0143】
[E.実施形態の効果]
以上のような本実施形態によれば、カメラで指示平面Tを撮影することによる照射位置の発見及び追跡を行わなくても、正確な位置を指示することができるので、装置構成及び処理が簡素化できる。
【0144】
指示者Aは、指示情報出力装置300のディスプレイに、指示平面Tと同内容のプレゼンテーション資料等が表示されているならば、ディスプレイを見ながら、入力装置200を介して指示位置を入力すればよい。このため、指示者Aは、指示平面Tと観衆との間で、頻繁に視線や姿勢を交代させる必要がなくなり、高度な表現能力を必要とせずに、観衆を見据えた発表を行うことができる。
【0145】
指示平面Tに対する実際の指示は、指示者Aによる入力装置200からの入力に応じて、指示装置400が行う。このため、指示媒体410の指示平面Tからの逸脱や指示者の手振れを抑制でき、安全な指示動作を安定して行うことができる。
【0146】
特に、指示位置は、指示平面T内に制限することができるので、指示平面Tと指示装置400との間に観衆が存在しない場合には、指示媒体410が観衆に向けられることはない。また、指示情報の急峻な変化を減衰させるフィルタを用いることにより、不要な変動による不快な動作を抑制できる。
【0147】
指示平面Tと指示装置400との相対的な位置姿勢が変動しても、キャリブレーションを行うことにより、正確な指示動作を維持できる。このため、指示装置400及び指示平面Tを持ち運び可能な利便性の高いものとすることができる。また、設置の自由度が高まるので、様々な設置場所に本システムを設置することができる。
【0148】
[F.他の実施形態]
本発明は、上記の実施形態に限定されるものではない。図2に示した機能ブロック図は、概念的なものであり、これらの機能を実現する具体的な回路は種々考えられ、特定のものには限定されない。なお、本発明は、上記の処理に対応してコンピュータ及び周辺回路を動作させるポインティング方法、ポインティングプログラムとしても把握できる。ハードウェア処理によって実現する範囲とソフトウェア処理によって実現する範囲も自由である。上記の指示演算部を実現するコンピュータを、独立した指示ベクトル演算装置として構成することも可能である。
【0149】
上記の各装置の接続方法は、自由である。例えば、携帯可能な小型軽量の指示装置400を、指示情報出力装置300のコンピュータに接続する場合に、USBのバス給電により駆動するように構成することもできる。
【0150】
さらに、入力装置200と指示情報出力装置300とを接続する媒体若しくは指示情報出力装置300と指示装置400とを接続する媒体を、有線若しくは無線の通信ネットワークを介して実現してもよい。これにより、遠隔地に設置された指示平面T及び指示装置400を、入力装置200及び指示情報出力装置300によって操作することができる。
【0151】
また、指示平面T(表示装置若しくはプロジェクターの制御部)は、指示情報出力装置300の出力部330から受信した情報に応じて、所定の情報を出力することができる。そして、指示平面Tから発せられた情報(例えば、実際の指示位置)を指示者Aが認識して、フィードバックする(所望の位置へカーソルを移動する)ことで、次の指示動作を決定してもよい。上記の実施形態では、入力装置200若しくは指示情報出力装置300が、指示平面Tとは別に、指示者用のディスプレイを有していたが、さらに、独立の指示者向け表示装置を備えてもよい。
【0152】
また、指示装置400の一部を、指示情報出力装置300に構成することもできる。例えば、指示演算部430を、指示情報出力装置300に設けてもよい。キャリブレーション部432のみを、指示情報出力装置300に設けてもよい。さらに、入力装置200及び指示情報出力装置300の一方若しくは双方を、指示装置400と一体に構成することもできる。
【0153】
また、上記の基本的なシステムでは、指示者Aが1人、指示平面Tが1面の1:1のシステムであった。しかし、両者の関係は、必ずしも1:1である必要はない。n、mを2以上の整数として、1:n、n:1、m:nの関係を有するシステムを構成することもできる。
【0154】
例えば、指示平面Tが複数あり、各面に同一の指示動作を行う1:nのプレゼンテーションシステムとして構成することもできる。このシステムは、1つの指示平面Tだけではカバーしきれない規模の発表会場や、空間的に離れた複数拠点へ同一内容を発表する遠隔プレゼンテーションへの要求に応えることができる。
【0155】
この場合、指示平面Tと同数の指示装置400を、指示情報出力装置300に接続する必要がある。各指示装置400のキャリブレーションは、各々が指示する指示平面Tに対して行わなければならないため、各指示装置400に個体識別機能(識別手段)を追加してもよい。指示装置400が、自らに向けたキャリブレーション要求等のキャリブレーション関連情報を受信した場合(自らの識別情報と一致する情報を受信した場合)のみ、キャリブレーションを行うなどの機能も考えられる。
【0156】
また、遠隔プレゼンテーションの場合は、指示者(発表者)Aの拠点のみから、すべてのキャリブレーションを行うことは困難である。このため、表示画面の座標系が同一であれば、キャリブレーション時のみ、各指示装置400に対応して設けられた別の指示情報出力装置300に接続を切り替えて、キャリブレーションを行うこともできる。例えば、各指示情報出力装置300の入力手段を用いて、直接、指示機構420を操作し、あらかじめ指示位置ベクトルが決められた指示平面T上の4点に、順次可視レーザ光を照射していくことによって、それぞれキャリブレーションを行うことができる。
【0157】
1:nのプレゼンテーションシステムとは逆に、指示者Aおよび指示者Aに属する指示装置400が複数あり、指示平面Tが1面のみのn:1のプレゼンテーションシステムへの応用も可能である。指示情報出力装置300が1つの場合には、指示者Aとこれに属する指示装置400の個体識別機能(識別手段)が必要となる。いずれにしても、単一の指示平面Tに指示者Aと同数のカーソル位置制御およびその表示を行うための集約制御を担当する装置が必要となる。さらに、1:nおよびn:1のプレゼンテーションシステムを拡張して、m:nのプレゼンテーションシステムへの応用も可能である。
【0158】
本システムでは、キャリブレーション時に、指示位置ベクトルと指示ベクトルとの対応付けさえ行えるならば、一般的な指示媒体による指示動作への応用に限る必要はない。たとえば、カメラの視線制御にも応用できる。これにより、平面もしくは仮想的な平面を監視するカメラの視線制御を、同平面上の指示位置ベクトルを与えることで容易に行うことができる。つまり、本発明の指示媒体は、肉眼で識別できる媒体には限らず、カメラの視線のように、いわば仮想的な指示を行うものも含まれる。
【図面の簡単な説明】
【0159】
【図1】本発明の指示動作モデルを示す説明図である。
【図2】本発明の一実施形態を示す全体構成図である。
【図3】図2に示す実施形態の機能ブロック図である。
【図4】本発明の指示動作原理における球座標系、3次元直交座標系及び2次元線形座標系を示す説明図である。
【図5】本発明の指示動作原理における射影指示平面を示す説明図である。
【図6】本発明の指示動作原理における指示平面上の校正枠と射影指示平面上の射影校正枠の頂点及び対角線の交点の射影変換を示す説明図である。
【図7】本発明の指示動作原理における射影指示平面上の指示点と四角形の対角線との交点を示す説明図である。
【図8】図7の交点の指示平面への射影変換を示す説明である。
【図9】図8の射影点から求める指示点を示す説明図である。
【図10】図2に示す実施形態の処理手順を示すフローチャートである。
【図11】本発明のキャリブレーション手法の一例を示す説明図である。
【図12】本発明のキャリブレーション手法の他の一例を示す説明図である。
【符号の説明】
【0160】
100…ポインティングシステム
200…入力装置
300…指示情報出力装置
310…入力部
320…決定部
330…出力部
400…指示装置
410…指示媒体
420…指示機構
430…指示演算部
431…要求判定部
432…キャリブレーション部
432a…校正枠設定部
432b…射影校正枠設定部
432c…校正値演算部
433…交点演算部
434…透視演算部
435…指示位置演算部
436…指示ベクトル演算部
440…指示情報インタフェース
450…可動筐体
460…設置機構
470…ユーザインタフェース
【技術分野】
【0001】
本発明は、例えば、スクリーンなどの指示平面に対して、レーザ光などの指示媒体によって特定の位置を指示するためのポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置に関する。
【背景技術】
【0002】
従来から、スクリーン等の指示平面に表示されたプレゼンテーション用の情報に対して、指示者が所望の位置を指し示すために、指示棒やレーザポインタ等の指示媒体が用いられている。指示棒の場合には、指示者が指示平面を指示可能な距離が短く、観衆が指示位置を判別することが難しい。このため、指示平面が大型で、指示平面と指示者との間の距離が長い場合には、可視レーザ光によって指示するレーザポインタが用いられることが多い。
【0003】
しかしながら、レーザポインタであっても、指示者の手振れにより指示位置が揺れると、観衆は指示位置を判別し難く、却って目障りになる場合がある。また、指示者が誤って指示平面外を指示してしまった場合には、可視レーザ光が観衆や設備等に照射され、これらに悪影響を及ぼす可能性がある。さらに、壇上等におけるプレゼンテーションでは、指示者が、指示平面と観衆との間で、視線や姿勢を頻繁に交代させる必要が生じるため、指示者に高度な表現能力が要求される。
【0004】
これに対処するため、指示者の指示位置に応じて、可視レーザ光の発光の有無、発光の形状等を変化させる技術が、特許文献1〜4に開示されている。また、指令センタからの指示に応じて、遠隔地にある端末において、レーザポインタが指示を行う技術が、特許文献5〜7に開示されている。
【特許文献1】特開2001−350119号公報
【特許文献2】特開2002−041238号公報
【特許文献3】特開2002−116878号公報
【特許文献4】特開2003−108309号公報
【特許文献5】特開2000−125024号公報
【特許文献6】特開2003−37840号公報
【特許文献7】特開平9−46776号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記のような従来技術においては、指示平面をカメラで撮影することにより、指示者によるレーザポインタの照射位置を発見し、追跡し続ける処理が必要となる。このため、装置構成及び処理が複雑化する。また、指示平面と指示媒体との位置関係が変動すると、指示平面に対する指示位置の正確さを担保することが困難となる。
【0006】
本発明は、上記のような従来技術の問題点を解決するために提案されたものであり、その目的は、簡易な構成と簡単な処理で、正確に所望の位置を指示することができるとともに、指示媒体と指示平面との位置関係の変動にも容易に対応できるポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置を提供することである。
【課題を解決するための手段】
【0007】
上記の目的を達成するために、請求項1のポインティングシステムは、指示対象となる指示平面に対する指示を行う指示媒体と、直交する2つの制御軸を有し、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって、前記指示媒体の指示方向を制御する指示機構と、前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面と、前記指示平面との間において、前記原点を介した中心射影変換に基づいて、前記指示ベクトルを演算する指示演算部と、を有することを特徴とする。
【0008】
請求項2の発明は、請求項1のポインティングシステムにおいて、前記指示演算部は、前記指示平面における異なる4点を頂点とする校正枠を設定する校正枠設定部と、前記射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定する射影校正枠設定部と、2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求める交点演算部と、直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とを相互に変換可能な透視演算部と、交点関数を用いて、前記透視演算部により変換した交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算する指示位置演算部と、前記指示位置演算部によって演算した指示位置若しくはこれに対応する前記射影平面上の位置に基づいて、前記指示ベクトルを演算する指示ベクトル演算部と、を有することを特徴とする。
【0009】
また、請求項10のポインティング方法は、請求項1の発明を方法の観点から捉えたものであり、請求項11のポインティングプログラムは、請求項1の発明をコンピュータプログラムの観点から捉えたものである。請求項12の指示ベクトル演算装置は、請求項1の発明の一部を構成する装置の観点から捉えたものである。
【0010】
以上のような請求項1、2、10〜12の発明では、カメラによる撮影処理を不要として、仮想的な射影指示平面を導入することにより、指示位置に対応する指示ベクトルを正確に求めることができ、指示媒体による指示を、正確に行うことができる。
【0011】
請求項3の発明は、請求項1又は請求項2のポインティングシステムにおいて、前記指示平面上の指示位置として、指示位置ベクトルを入力する入力装置と、前記指示位置ベクトルを、前記指示演算部に出力する指示情報出力装置と、を有することを特徴とする。
【0012】
以上のような請求項3の発明では、指示者は、入力装置によって所望の指示位置ベクトルを入力するという簡単な操作で、指示機構が指示媒体を正確な方向に制御して、所望の位置を指示させることができる。
【0013】
請求項4の発明は、請求項1〜3のいずれか1項のポインティングシステムにおいて、前記校正枠設定部及び前記射影校正枠設定部を有し、運用前若しくは要求に応じて、前記校正枠及び前記射影校正枠の設定を行うキャリブレーション部を有することを特徴とする。
【0014】
以上のような請求項4の発明では、指示媒体と指示平面の位置関係が変わっても、キャリブレーション部による設定を行うことによって、指示媒体の指示平面への正確な指示を担保することができる。
【0015】
請求項5の発明は、請求項1〜4のいずれか1項のポインティングシステムにおいて、前記指示媒体の基本指示方向若しくは前記指示機構の姿勢を変更可能な可動筐体に設けられていることを特徴とする。
【0016】
以上のような請求項5の発明では、指示媒体の基本指示方向が、指示対象領域の中央近辺を指示するように、設置者が手動等により指示機構の姿勢設定を行うことにより、指示媒体が指示対象領域の全域を指示可能となる。
【0017】
請求項6の発明は、請求項1〜5のいずれか1項のポインティングシステムにおいて、前記指示機構は、除震手段を備えた設置機構に設けられていることを特徴とする。
【0018】
以上のような請求項6の発明では、外部環境からの振動が加わっても、その影響を除震手段によって排除できるので、指示媒体による正確な指示動作を維持できる。
【0019】
請求項7の発明は、請求項1〜6のいずれか1項のポインティングシステムにおいて、前記指示演算部及び前記指示機構との間で、情報の入出力が可能なユーザインタフェースを備えることを特徴とする。
【0020】
以上のような請求項7の発明では、ユーザインタフェースを介して、指示演算部や指示機構の内部状態の入出力が可能となる。
【0021】
請求項8の発明は、請求項1〜7のいずれか1項のポインティングシステムにおいて、前記指示平面及び前記指示機構の一方若しくは双方が複数であることを特徴とする。
【0022】
以上のような請求項8の発明では、1つの指示平面若しくは指示機構ではカバーしきれない規模の会場での発表や、空間的に離れた複数拠点における発表に対応させることができる。
【0023】
請求項9の発明は、請求項3のポインティングシステムにおいて、前記入力装置、前記指示情報出力装置及び前記指示機構のうち、少なくともいずれかが複数であることを特徴とする。
【0024】
以上のような請求項9の発明では、複数の指示者による発表にも対応できる。
【発明の効果】
【0025】
以上説明したように、本発明によれば、簡易な構成と簡単な作業で、正確に所望の位置を指示することができ、指示媒体と指示平面との位置関係の変動にも容易に対応できるポインティングシステム、ポインティング方法、ポインティングプログラム及び指示ベクトル演算装置を提供することができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明のポインティングシステムの一実施形態を、図面を参照して説明する。
[A.指示動作モデル]
まず、本実施形態が導入する指示動作モデルを、図1を参照して説明する。この指示動作モデルは、3次元空間において、指示者が指示媒体を用いて、指示対象となる平面上の目標位置を指し示す動作をモデル化したものである。指示媒体としては、例えば、レーザポインタの可視レーザ光、指示棒などを用いることを想定する。指示対象とする平面を、指示平面Tと呼ぶ。
【0027】
まず、可視レーザ光若しくは指示棒などの指示媒体が形成する軌跡が、一直線上に存在するものとして考える。このような仮想的な直線と指示平面Tとの交点が、目標とする指示位置pである。以下、この直線を指示直線Lと呼ぶ。
【0028】
指示位置pを指し示すことができる指示直線Lは、無数に存在する。すなわち、指示者は、指示平面T上以外のいかなる位置からも、指示位置pを指し示すことができる。なお、実際には、指示媒体が指示平面Tに到達可能な距離は有限である。このため、指示可能な距離は有限といえる。しかし、本モデルにおいては、便宜的に、指示媒体は無限に伸縮可能なものとして考える。
【0029】
ここで、任意の3次元座標系を導入する。この3次元座標系における原点Oは、指示平面T上以外の位置にある点とする。そして、原点Oを中心として、指示媒体が、指示平面T上を自由に指示する動作を考える。このとき、指示直線L上の一点は、原点Oに特定することができる。
【0030】
このように、指示直線L上の一点が原点Oに特定されると、指示直線Lに対して方向ベクトルdを与えることにより、目標とする指示位置pを決定できる。
【0031】
導入した3次元座標系を、球座標系として考える。すると、目標とする指示位置pは、1つの動径r、2つの偏角θ,φによって、p=(r,θ,φ)Tと表現することができる。このとき、方向ベクトルdは、pの成分のうち、2つの偏角θ,φのみから構成される2次元ベクトルによって、d=(θ,φ)Tと表現することができる。なお、MTは、行列Mの転置行列を表す。
【0032】
上記の方向ベクトルdを指示ベクトルと呼ぶ。導入された3次元座標系における指示動作は、この指示ベクトルdを決定することに相当する。
【0033】
[B.実施形態の構成]
[1.全体構成]
本実施形態のポインティングシステムの構成を、図2及び図3を参照して説明する。なお、図2は、本実施形態の外観及び使用例を示す説明図である。図3は、本実施形態の構成を示す機能ブロック図である。すなわち、ポインティングシステム100は、指示平面T、入力装置200、指示情報出力装置300及び指示装置400等により構成されている。
【0034】
[2.指示平面]
指示平面Tは、指示装置400が指示対象とする平面である。この指示平面Tは、例えば、多数の観衆向けの大型の表示装置若しくは投影スクリーン等によって構成することが考えられる。指示装置400による指示位置は、指示平面T上のいずれかに存在する。
【0035】
指示平面Tには、例えば、コンピュータ画面上の画素を成分とする座標系を導入することができる。この座標系は、コンピュータによる演算においては、指示動作に適した2次元座標系として定義される。そして、目標とする指示位置は、当該2次元座標系における2次元ベクトルによって表現できる。この2次元ベクトルを指示位置ベクトルと呼ぶ。
【0036】
指示情報出力装置300は、入力装置200から入力された座標情報に応じて、指示位置ベクトルを指示装置400に出力する。指示装置400は、入力された指示位置ベクトルに基づいて、指示ベクトルを演算して、指示動作を行う。このため、任意の指示位置ベクトルと実際の指示平面T上の位置とは、容易に対応付けられる構造となっている。
【0037】
[3.入力装置]
入力装置200は、指示者Aが、指示平面T上の所望の指示位置を入力する手段である。この入力装置200としては、例えば、マウス、キーボート、リモコン、スイッチ、ディスプレイ(タッチパネル)等、周知のあらゆる入力手段を使用することができる。
【0038】
入力装置200による入力方法としては、例えば、指示者Aが入力装置200を用いて、ディスプレイに表示されたカーソルを移動させ、カーソルが所望の位置に来た時に、決定操作をすることにより、入力する方法がある。決定操作としては、例えば、クリック、決定ボタンを押す等がある。また、指示者Aが、ディスプレイに構成されたタッチパネル上の所望の位置を、指やペンで触れて指定することにより、入力する方法もある。
【0039】
このディスプレイは、後述する指示情報出力装置300のディスプレイと兼用であってもよいし、入力装置200が独自のディスプレイを備えていてもよい。入力装置200によって入力できる情報は、指定された位置情報には限定されない。例えば、スイッチのON/OFFなどの内部状態に関する情報、指示装置400を制御するための情報等も含めることができる。
【0040】
[4.指示情報出力装置]
指示情報出力装置300は、入力装置200から入力された座標情報に基づいて、指示位置ベクトルを算出し、この指示位置ベクトルを指示装置400に出力する装置である。指示情報出力装置300は、例えば、所定のオペレーティングシステム及びアプリケーションプログラムによって動作するコンピュータによって実現することができる。
【0041】
かかるコンピュータにおいては、プレゼンテーション用の情報が、ハードディスク、メモリ、光ディスク等の記憶媒体に記憶されており、この情報がアプリケーションプログラムによって呼び出されて、ディスプレイ等の表示手段に表示される。なお、指示情報出力装置300のコンピュータ用のマウス、キーボード、リモコン、スイッチ、ディスプレイ(タッチパネル)等の入力手段は、入力装置200と兼用でもよいし、入力装置200とは別でもよい。
【0042】
指示平面Tが、表示装置により構成される場合には、指示情報出力装置300と指示平面Tの表示装置とが接続され、指示情報出力装置300のディスプレイに表示される情報が、指示平面Tにも表示される。また、指示平面Tが、投影スクリーンにより構成される場合には、指示情報出力装置300とプロジェクタとが接続され、指示情報出力装置300のディスプレイに表示される情報が、指示平面Tにも投影される。なお、指示情報出力装置300にプロジェクタを備えることも可能である。
【0043】
このような指示情報出力装置300は、上記のオペレーティングシステム、アプリケーションプログラム等のプログラムの働きにより、図3に示すように、入力部310、決定部320、出力部330としての機能を有している。
【0044】
入力部310は、入力装置200等の外部からの情報の入力を受け付けるインタフェースである。決定部320は、入力装置200によって入力された情報(例えば、ディスプレイの座標情報)に基づいて、指示平面Tに対する指示位置ベクトルを決定する手段である。このような座標情報と指示位置ベクトルとの変換は、所定の指示位置決定アルゴリズムによって行われるが、一般的な技術であるため、説明を省略する。
【0045】
出力部330は、決定部320によって決定された指示位置ベクトルを、指示装置400に出力するインタフェースである。出力部330から出力する情報は、指示位置ベクトルに加えて、上記のように、指示装置400の動作を制御するための種々の情報を含めることができる。さらに、プレゼンテーション用の情報も、出力部330から指示平面T(表示装置、プロジェクタ等)へ出力される。
【0046】
[5.指示装置]
指示装置400は、図3に示すように、指示媒体410、指示機構420、指示演算部430、指示情報インタフェース440、可動筐体450、設置機構460及びユーザインタフェース470等を有している。
【0047】
[5−1.指示媒体]
指示媒体410は、指示平面Tを指示するための媒体である。指示媒体410の例としては、可視レーザ光の光源及び光学部材から成るレーザポインタや指示棒(固定長のもの、伸縮可能なものを含む)などが挙げられる。なお、指示媒体410としては、指示棒以外の直線状の構造物、レーザ光以外の光源及びこれを集光する光学部材、その他の電磁波や超音波の発振器等を使用することもできる。つまり、指示媒体410は、指示方向が特定できる程度の指向性を有する媒体であれば、用途に適したものを自由に選択することができる。
【0048】
指示媒体410の伸縮長、到達距離若しくは出力レベル、発光色、投影光の形状、投影光の大きさ等は、指示装置400の外部(例えば、指示情報出力装置300)から入力される制御情報、ユーザインタフェース470を介して入力される制御情報若しくは指示装置400にあらかじめ設定された内部条件等に基づいて制御される。
【0049】
[5−2.指示機構]
指示機構420は、2つの制御軸を備え、入力された指示ベクトルにしたがって、指示媒体410の指示方向を制御する機構である。この指示機構420としては、例えば、モータ駆動によってレーザポインタ若しくは指示棒の方向を変える2軸制御装置を用いることが考えられる。
【0050】
指示ベクトルは、基本的には、指示演算部430により演算されたものが入力される。但し、入力装置200から直接指示ベクトルを入力して、指示機構420を動作させることもできる。また、後述するユーザインタフェース470から、直接的に指示媒体410の指示方向を制御するイベント(指示位置ベクトル若しくは指示ベクトル等を含む)を入力できるように構成してもよい。
【0051】
指示機構420においては、現在の指示媒体410の姿勢に対応する指示ベクトルが、指示方向制御パラメータとして、常にメモリ等の記憶部に記憶されている。指示ベクトルが外部から入力された場合には、それが記憶部に記憶され、これに従って指示機構420が動作する。
【0052】
手動等により指示媒体410の姿勢を変更した場合にも、これに対応する指示ベクトルが記憶部に記憶され、その時点での指示媒体410の姿勢に対応する指示ベクトルとして利用可能となる。後述するキャリブレーションにおいては、(ii)第2の方法 (a)〜(c)で説明した操作の際の指示ベクトルが利用される。
【0053】
なお、指示ベクトルと指示方向の制御結果とに生じる誤差をキャンセルするために、実際の指示方向を検出し、フィードバック制御を行わせるように構成することもできる。
【0054】
[5−3.指示演算部]
指示演算部430は、要求判定部431、キャリブレーション部432、交点演算部433、透視演算部434、指示位置演算部435、指示ベクトル演算部436等を有している。要求判定部431は、外部からのキャリブレーション要求の有無、指示位置の更新要求の有無を判定する手段である。
【0055】
キャリブレーション部432は、本システム運用前若しくは指示装置400の位置姿勢の変更後のキャリブレーションを行う手段である。キャリブレーション部432は、校正枠設定部432a、射影校正枠設定部432b、校正値演算部432cを有している。校正枠設定部432aは、指示平面T上の校正枠を設定する手段である。射影校正枠設定部432bは、後述する射影指示平面P上の射影校正枠を設定する手段である。校正値演算部432cは、校正枠及び射影校正枠に基づいて、校正値を算出する手段である。これらのキャリブレーションの詳細については、後述する。
【0056】
交点演算部433は、校正枠若しくは射影校正枠における2頂点と任意の点とを結ぶ2直線と、校正枠若しくは射影校正枠における対角線との2つの交点についての交点係数ベクトルを求める手段である。透視演算部434は、校正値及び交点係数ベクトルに基づいて、2つの交点に対応する指示平面T上の射影点若しくは射影指示平面P上の射影点を求める手段である。
【0057】
指示位置演算部435は、交点演算部433及び透視演算部434の演算結果に基づいて、校正枠若しくは射影校正枠における2頂点と2つの射影点を結ぶ直線の交点について、交点係数ベクトルを求める手段である。指示ベクトル演算部436は、指示位置演算部435によって求めた交点係数ベクトルに基づいて、指示ベクトルを求める手段である。
【0058】
このような指示演算部430による演算の詳細については、後述する。また、上記の演算を制御するイベントを、指示情報出力装置300以外(例えば、後述するユーザインタフェース470等)から、入力できるように構成してもよい。
【0059】
なお、指示演算部430は、所定のプログラムによって、上記の各部の機能を実現できるコンピュータによって構成することができる。例えば、各部の機能を実現するASICやCPU等のICチップやその他の周辺回路によって構成したり、複数の機能を集約したシステムLSIによって構成する等、種々考えられるものであり、特定のものには限定されない。
【0060】
[5−4.指示情報インタフェース]
指示情報インタフェース440は、指示演算部430と外部(指示情報出力装置300など)との間のインタフェースである。指示情報インタフェース440には、指示情報出力装置300の出力部330が接続される。この指示情報インタフェース440は、指示情報出力装置300からの情報の入力を受け付けて、指示演算部430へ指示情報を出力する。なお、指示情報インタフェース440は、指示装置400の内部状態を、外部へ出力することもできる。
【0061】
[5−5.可動筐体]
可動筐体450は、手動若しくはアクチュエータ制御により、その姿勢を変更できる筐体である。この可動筐体450は、内部に指示機構420を有している。このため、指示機構420の姿勢(指示媒体410の基準となる指示方向)は、可動筐体450の可動範囲内で、任意に設定できる。
【0062】
[5−6.設置機構]
設置機構460は、指示装置400の構成要素を支持し、運用環境内に固定するための構造物である。設置機構460として、どのような機構を採用するかは自由である。例えば、設置機構460を、構成要素を据え置くための台座、構成要素を吊り下げるためのフック、構成要素を設置面に吸着させるための吸盤や磁石などにより構成することができる。
【0063】
ただし、指示装置400が正確な指示動作を行うためには、外部環境からの振動の影響を受けないようにすることが望ましい。したがって、設置機構460に、除震機能を備えてもよい。例えば、バネ、スプリング、ダンパ等の弾性体による支持部材を備えることが考えられる。
【0064】
[5−7.ユーザインタフェース]
ユーザインタフェース470は、指示情報インタフェース440を介さずに、情報の入出力を行う手段である。このユーザインタフェース470には、上記の入力装置200と同様の入力手段や、ディスプレイ、プリンタ等の出力手段を接続することが考えられる。指示者Aは、入力手段を介して、指示媒体410の指示方向を制御するイベント、指示演算部430による演算を制御するイベント等を、直接入力することができる。
【0065】
また、出力手段に指示装置400の内部状態を出力若しくは表示することにより、指示者Aが、キャリブレーション進行状況等の内部状態を確認できる。ただし、ユーザインタフェース470の実装は必須ではなく、必要に応じて実装すればよい。入力可能な情報についても、自由である。
【0066】
なお、上記の指示情報出力装置300及び指示装置400において、入出力される情報、演算値、演算結果等、各種の処理に必要な情報は、コンピュータが備えるレジスタ、メモリ、ハードディスク等の記憶媒体に確保された記憶領域に記憶され、適宜利用される。各記憶領域が、各情報の記憶部を構成するものとなるが、これは、周知の技術により構成可能なため、説明は省略する。記憶部として、どのような種類、容量の記憶媒体を使用するかは自由である。情報の記憶形式として、どのようなものを採用するか等についても自由である。
【0067】
[C.指示動作原理]
上記のような指示動作モデル及び装置構成を前提として行う指示動作の原理を、図4〜9を参照して説明する。
[1.球座標系及び3次元直交座標系の導入]
まず、指示媒体410の方向を決定するための指示機構420の2つの制御軸は、理論的には直交し一点で交わる。そこで、図4に示すように、この交点上に原点を有する球座標系ΣSを導入する。球座標系ΣSにおける任意の座標は、1つの動径rと、2つの偏角θ,φを成分として表すことができる。なお、r≧0,−π/2≦θ≦π/2, −π≦φ<πである。
【0068】
球座標系ΣSにおいて、2つの偏角θ,φのみを成分とする2次元ベクトルd=(θ,φ)Tは、ΣSにおいて、一意に定まる指示直線Ldを表す。この2次元ベクトルdが、上記の指示ベクトルdである。上記の2つの指示方向制御軸は、指示ベクトルdの両成分に対応する。したがって、指示媒体410の姿勢である指示方向は、指示ベクトルdにより制御できる。
【0069】
球座標系ΣSにおいて、θ=0,φ=0となる指示媒体410の姿勢を、指示媒体410の基本指示方向とする。指示媒体410の姿勢が、基本指示方向となるときの指示ベクトルdO=(0,0)Tを、基本指示ベクトルと呼ぶ。
【0070】
また、同時に、任意の座標が、x,y,zを成分として表され、次の条件を満足する3次元直交座標系ΣCを導入する。
(a)ΣSのθ成分の回転軸とx軸とが一致する。
(b)ΣSのφ成分の回転軸とy軸とが一致する。
(c)基本指示ベクトルに対応する指示直線LdO上に、正のz軸が存在する。
【0071】
このとき、ΣS,ΣCは、双方の原点が一致する。そして、r>0,−π/2<θ<π/2である場合、ΣSの任意の座標に一意に対応するΣCの座標が存在する。同様に、ΣCの任意の座標に一意に対応するΣSの座標が存在する。
【0072】
指示平面T上の指示対象領域の全域を指示するためには、指示媒体410の基本指示ベクトルdOが、指示対象領域の中央近辺を指示するように、設置者が、設置機構460の設置及び可動筐体450の姿勢設定を行うことが望ましい。
【0073】
なお、指示平面Tは、図4に示すように、ΣS,ΣCの原点を通らない任意の位置に配置されているものとする。また、指示平面Tの法線は、ΣCのx,y成分の軸のいずれとも一致しないものとする。
【0074】
[2.2次元線形座標系の導入]
ここで、指示平面T上の指示位置を特定するため、指示平面T上に指示動作に適した任意の2次元線形座標系ΣTを導入する。ΣCにおける指示平面Tに対する指示位置Cpは、ΣTにおける指示位置Tpと、一意に対応する。このため、任意の指示ベクトルdが、Cpを指示することは、Tpを指示することと同義である。このTpは、上述の指示位置ベクトルである。このため、任意の指示位置ベクトルTpに一意に対応する指示ベクトルdが存在すると言える。
【0075】
上記の指示装置400と指示平面Tのモデルに基づいて、ΣTの任意の座標を、これに対応するΣSの座標に変換する関数を同定する。この関数を同定することで、本実施形態による指示動作が可能となる。
【0076】
従来の手法では、この関数の同定には、指示環境の位置姿勢に関する情報が必要であった。この情報とは、例えば、ΣCにおけるΣTの原点位置や指示平面Tの法線ベクトルなどである。
【0077】
もし、指示装置400及び指示平面Tの位置姿勢が固定されていて、指示環境の位置姿勢に関する情報が既知であれば、関数の同定に問題はない。しかし、指示装置400若しくは指示平面Tは、可搬であることが便利である。また、指示者Aが、指示装置400若しくは指示平面Tを自由に所望の位置に設置し、容易に指示動作を行えることが望ましい。このような指示動作の利便性を考慮すると、指示動作のための位置姿勢に関する情報は不要とし、位置姿勢の制約、位置姿勢の正確な設計、装置の正確な配置、正確な測量などは、極力排除すべきである。
【0078】
[3.射影指示平面の導入]
これに対処するために、本実施形態においては、図5に示すように、ΣCにおけるz=1となる仮想的な平面Pを導入する。さらに、この平面Pに対して、2次元直交座標系ΣPを導入する。ΣPは、ΣCを、そのz軸に沿って、平面Pへ正射影した座標系である。このとき、ΣPにおける任意の点Ppは、適切な座標変換により、ΣCにおける点Cpに一意に対応付けられる。
【0079】
任意の指示ベクトルdにより指示平面T上の点Cuを指示したとき、ΣCの原点COとCuを結ぶ線分は、平面Pと交点Cvで交わる。指示ベクトルdとCuが一意に対応することと同様に、指示ベクトルdとCvも一意に対応する。このことから、CuとCvとが、一意に対応することが導かれる。
【0080】
このCuとCvとの関係は、ΣCの原点COを介した指示平面Tと平面Pとの相互的な中心射影変換を意味する。この平面Pを射影指示平面と呼ぶ。
【0081】
任意の指示ベクトルdについて、射影指示平面P上のΣPにおける指示点Pvは、一意に対応付けられる。よって、ΣCに対して所定の位置に固定されている射影指示平面Pにおいて、指示点Pvは、指示ベクトルdの別形式の表現と言える。このPvを、射影指示位置ベクトルと呼ぶ。
【0082】
d=(θ,φ)T,Pv=(x,y)Tとしたとき、dとPvとの関係は式(1),(2)のとおり表される。
【数1】
【数2】
【0083】
上記の中心射影変換においては、指示平面Tの法線と射影指示平面Pの法線とが一致しているときに限り、両平面の位置姿勢に関する情報を用いることなく、適切な線形変換により、指示平面T上の点Cuと射影指示平面P上の点Cvとの相互変換ができる。しかし、多くの場合には、両平面の法線は一致しないため、非線形変換となってしまう。このため、従来手法においては、点Cuと点Cvとを相互変換させるには、両平面の位置姿勢に関する情報が必要となっていた。また、かかる情報がない場合には、線形変換による近似解を求めるにとどまっていた。
【0084】
[4.交点関数の導入]
この問題を解決するために、本実施形態においては、新たな中心射影変換の同定方法を用いる。このために、交点関数及び透視関数と呼ぶ2つの重要な関数を導入する。
【0085】
まず、交点関数について述べる。すなわち、ある2次元平面上で、平行でない2つの直線S,Tを考える。直線S,T上の異なる2点の組をそれぞれ{s0,s1},{t0,t1}としたとき、両直線の交点cが、式(3)のとおりに表されるとする。
【数3】
【0086】
このとき、係数s,tは、I(S,T)なる関数により、式(4)のとおり求めることができる。
【数4】
ただし、det[a b]は、a,bを小行列とする行列の行列式を表す。
【0087】
このベクトル関数I(S,T)を、交点関数と呼ぶ。また、I(S,T)により求められた解ベクトル(s,t)Tを、交点係数ベクトルと呼ぶ。
【0088】
[5.透視関数の導入]
続いて、直交しない2つの平面上で相互に対応する直線同士の中心射影変換を考える。平面U上の直線ULに乗る2点{u0,u1}が、この中心射影変換により、それぞれ平面V上の直線VLに乗る2点{v0, v1}に射影されるとする。同様に、UL上の別の点u=(1−M)u0+Mu1が、VL上の点v=(1−MI)v0+MIv1へ射影されるとする。このとき、M,MIは既知とする。
【0089】
同様に、UL上の別の点u’=(1−N)u0+Nu1が、VL上の点v’=(1−nI)v0+nIv1へ射影されるとする。Nは既知であるとすれば、このnIは、関数P(M,MI,N)により、既知の係数M,MI,Nのみを用いて、式(5)のとおり求めることができる。
【数5】
なお、式(5)の証明は、後述する。この関数P(M,MI,N)を透視関数と呼ぶ。
【0090】
[6.平面間の中心射影変換]
この透視関数P(M,MI,N)により2つの直線上で対応する任意の点の間の中心射影変換を同定できた。そこで、これを拡張して、2つの平面(ここでは指示平面T,射影指示平面Pとする)上で対応する任意の点の間の中心射影変換を同定することを考える。この問題を解決するためには、次の4つのプロセスを実行すればよい。
【0091】
[6−1.第1のプロセス]
指示平面T上の任意の四角形TRを考える。四角形TRの2つの対角線TD20,TD31が、それぞれ端点の組{Tv0,Tv2},{Tv1,Tv3}を有しているとする。そして、この対角線同士の交点TcRが、式(6)で表されるとする。
【数6】
【0092】
ここで、問題の中心射影変換により、四角形TRが射影指示平面P上の四角形PRへ射影されたと考える。PRの2つの対角線PD20,PD31が、それぞれ端点の組{Pv0,Pv2},{Pv1,Pv3}で表されるとする。そして、この対角線同士の交点PcRが、式(7)で表されるとする。
【数7】
TvnとPvnで表される各点同士は、図6に示すとおり、この中心射影変換における対応点である。
【0093】
まず、これら2種類の対角線同士の交点TcR,PcRに関する交点係数ベクトルを、上記の交点関数を用いて式(8),(9)のとおり求める。
【数8】
【数9】
【0094】
[6−2.第2のプロセス]
次に、図7に示すとおり、指示平面T上の任意の点Tpを導入する。この点Tpと対角線TD31のいずれかの端点Tvaとを端点の組{Tp,Tva}とする線分TSaを考える。この線分TSaと対角線TD20との交点Tc20が、式(10)で表されるとする。
【数10】
【0095】
同様に、Tpと対角線TD20のいずれかの端点Tvbとを端点の組{Tp,Tvb}とする線分TSbを考える。この線分TSbと対角線TD31との交点Tc31が、式(11)で表されるとする。
【数11】
【0096】
このとき、交点Tc20,Tc31に関する交点係数ベクトルを、式(12),(13)のとおり求める。
【数12】
【数13】
【0097】
ただし、Tvaは、次のような基準で選択する。すなわち、線分TSaが、その線分上で対角線TD20と交点を結ぶように、Tvaとして、Tv1またはTv3を選択する。もし、TpがTD31上にある場合は、Tv1,Tv3のどちらを選択してもよい。ただし、TpがTv1上にある場合はTv3を選択する。一方、TpがTv3上にある場合は、Tv1を選択する。
【0098】
同様に、Tvbは、次のような基準で選択する。すなわち、線分TSbが、その線分上で対角線TD31と交点を結ぶように、Tvbとして、Tv0またはTv2を選択する。もし、TpがTD20上にある場合は、Tv0,Tv2のどちらを選択してもよい。ただし、TpがTv0上にある場合は、Tv2を選択する。一方、TpがTv2上にある場合は、Tv0を選択する。
【0099】
[6−3.第3のプロセス]
図8に示すとおり、上記の中心射影変換により、指示平面T上の点Tc20が、射影指示平面Pにおける対角線PD20上の点Pc20へ射影されたときを考える。このとき、点Pc20が、式(14)のとおり表されるとする。式(14)中の係数Pn20は、前プロセスまでに求めておいた係数Tm20, Pm20,Tn20を用いて、透視関数によって求めることができる。具体的には、式(15)のとおりである。
【0100】
【数14】
【数15】
【0101】
同様に、指示平面T上の点Tc31が、射影指示平面Pにおける対角線PD31上の点Pc31へ射影されたときを考える。このとき、点Pc31が、式(16)のとおり表されるとする。式(16)中の係数Pn31は、前プロセスまでに求めておいた係数Tm31,Pm31,Tn31を用いて、透視関数によって求めることができる。具体的には、式(17)のとおりである。
【数16】
【数17】
【0102】
[6−4.第4のプロセス]
図9に示すとおり、指示平面T上の線分TSa,TSbにおけるTp以外の端点が、上記の中心射影変換により、それぞれ射影指示平面P上の点Pva,Pvbへ射影されたとする。ここで、2点{Pva,Pc20}が乗る直線PLpaと、2点{Pvb,Pc31}が乗る直線PLpbとの交点Ppは、式(18)のとおり表される。このとき、式(19)のとおり、交点Ppに関する交点係数ベクトルを求めることができる。
【0103】
【数18】
【数19】
【0104】
上記のプロセスによって、問題の中心射影変換を同定することができた。これは、2つの平面の位置姿勢によらず、両平面上の対応する既知の四角形に関する情報のみを用いている。したがって、ある指示環境下における任意の指示ベクトルdによる指示位置について、指示平面Tと射影指示平面Pとの間の中心射影変換を考えれば、上記第1〜4のプロセスを実行することで、一方の平面上の指示位置が決定すれば、他方の平面上の指示位置を求められ、相互に変換可能であることがわかる。上記のプロセスを、透視プロセスと呼ぶ。
【0105】
透視プロセスにおいて、係数Tn20,Tn31は、指示ベクトルdが更新される毎に、式(10)〜(13)から求めなければならない。しかし、係数Tm20,Tm31,Pm20,Pm31については、本システムの運用に先立って、一度だけ求めておけばよい。若しくは、運用中に何らかの理由でポインタの位置姿勢など指示環境が変化した際に、一度だけ求め直せばよい。
【0106】
すなわち、係数Tm20,Tm31,Pm20,Pm31は、運用前のキャリブレーションにより得られる係数である。これらの係数に関係する透視プロセスにおいて、四角形TRを校正枠と呼ぶ。また、四角形PRを、射影校正枠と呼ぶ。さらに、このキャリブレーションにより得られた係数を校正値と呼ぶ。
【0107】
本システムにおいては、指示動作の準備として、指示平面T上の任意の校正枠とそれに対応する射影指示平面P上の射影校正枠について、指示ベクトルを用いてそれらの4つの頂点を指示することにより、校正値を求めておく。これにより、指示平面T上の任意の指示位置Tuに対応する射影指示平面P上の指示位置Pvを正確に求めることができる。さらに、このPvから、式(2)により、対応する指示ベクトルdを求められるため、目標とする指示位置Tuを正確に指示することができる。
【0108】
[6−5.式(5)の証明]
以上が、本システムにおける指示動作の原理である。なお、上記の説明で省略した式(5)の証明を、以下に述べる。まず、x,y,zを成分とする任意の3次元直交座標系ΣCを考える。この3次元直交座標系ΣCに対して、平面Vと平面Uがあるとする。平面Vは、z=1なる平面である。平面Uは、平面Vとその法線同士が直交しない平面である。ここで、一般性を欠くことなく、平面V上の直線とこれに対応する平面U上の直線について、ΣCの原点を中心とする中心射影変換を考える。
【0109】
平面U上の異なる2点u0, u1が、この中心射影変換により、平面V上の2点v0,v1へ射影されるとする。このとき、ΣC上の単位ベクトルez=(0,0,1)Tを用いることにより、式(20)の関係が言える。ただし、a・bは、ベクトルaとbの内積を表す。
【数20】
【0110】
ここで、u0,u1が乗る直線UL上の任意の点uは、式(21)のとおり表されるとする。そして、この任意の点uが、同中心射影変換により、式(22)のとおり、v0,v1が乗る直線VL上の点vへ射影されたとする。
【数21】
【数22】
【0111】
このuとvには、式(20)と同様に、式(23)の関係が言える。
【数23】
【0112】
そして、式(23)に式(20),(21)を代入し、式(24)のとおり整理する。
【数24】
式(22),(24)から、式(25)が言える。
【数25】
【0113】
さらに、uとは異なる直線UL上の点u’が、同中心射影変換により直線VL上の点v’に射影されるとする。このu’は、式(26)のとおり表される。v’は式(27)のとおり表される。
【数26】
【数27】
【0114】
このとき、上記と同様に、式(28),(29)なる関係が言える。
【数28】
【数29】
【0115】
この中心射影変換を同定するにあたり、対象とする平面の位置姿勢に関する情報を排除する。そのため、式(25)をu0・ezについて整理すると、式(30)が得られる。
【数30】
【0116】
最後に、式(29)に式(30)を代入し、整理すると、式(31)を得ることができる。
【数31】
【0117】
[D.実施形態の作用]
本システムの動作手順の詳細を、図10のフローチャートを参照して説明する。本システムの動作は、主として、1.初期設定、2.キャリブレーション、3.キャリブレーション要求判定、4.指示位置更新要求判定、5.指示ベクトル演算、6.指示動作等の手順を含んでいる。
【0118】
[1.初期設定…ステップ1001]
まず、指示者Aは、本システムを設置する。例えば、あらかじめ背景に指示平面Tが設置された壇上に、指示情報出力装置300、指示装置400等を配置する。但し、これらを必ずしも壇上へ配置する必要はない。つまり、この設置作業においては、指示平面T及び指示装置400を、指示ベクトルdの設定範囲内で、指示媒体410が指示平面Tの指示対象領域全域を指示可能となるように設置すればよい。その際、上記のように、基本指示ベクトルdOが、指示対象領域の中心あたりを指示するように、設置機構460及び可動筐体450の姿勢を設定する。
【0119】
そして、指示情報出力装置300を指示装置400に接続する。これにより、指示情報出力装置300からの指示情報が、指示装置400に与えられるようにする。指示者Aは、指示情報出力装置300に接続された入力装置200を操作することにより、指示平面T上の目標とする指示位置ベクトルTp、その他の指示情報等を入力することができる。
【0120】
なお、指示平面Tが投影スクリーンの場合には、プロジェクタを指示平面Tに向ける。また、指示平面Tが表示装置の場合には、指示情報出力装置300と指示平面Tとを接続し、表示装置に表示すべき情報(指示情報等を含む)を与えることで、指示情報出力装置300のディスプレイと指示平面Tに、共通の情報が表示されるようにする。
【0121】
上記の設定により、指示平面T上には、プレゼンテーション資料等の情報を表示することができる。また、指示者Aが、入力装置200を介してカーソル位置座標を更新する場合などには、カーソル位置を明示する画像も表示される。
【0122】
[2.キャリブレーション…ステップ1002〜1005]
キャリブレーションは、校正枠設定部432aによる校正枠の設定(ステップ1003)、射影校正枠設定部432bによる射影校正枠の設定(ステップ1004)、校正値演算部432cによる校正値の算出(ステップ1005)を行う処理である。校正枠及び射影校正枠は、上記のように、ポインティングシステム100において、中心射影変換を同定するために必要となる。したがって、キャリブレーションは、設置されたポインティングシステム100の運用に先立って若しくはキャリブレーション要求の入力があった場合に行う。
【0123】
キャリブレーションは、上記の動作原理のとおり実行される。このとき、プログラムがキャリブレーション状態に遷移し、指示平面T及び指示情報出力装置300におけるディスプレイには、キャリブレーション画面が表示される。
【0124】
[2−1.校正枠の設定…ステップ1003]
まず、校正枠設定の際には、校正枠の4つの頂点に相当する指示位置ベクトルと、同頂点を指示する指示ベクトルとを対応付ける。かかる対応付け並びに校正枠の設定には、次の2通りの方法が考えられる。
【0125】
(i)第1の方法
第1の方法は、あらかじめ設定(メモリ等の記憶部に記憶)された指示ベクトルによって、指示平面Tを指示する方法である。例えば、図11に示すように、(θ0±θ,φ0±φ)Tと表される4つの指示ベクトルda〜ddにより、指示平面Tを順次指示する。指示者Aは、これらの指示ベクトルda〜ddに基づいて指示された位置(例えば、レーザ光の照射位置)へカーソルを合わせることにより、指示装置400に対して指示位置ベクトルと位置決定のイベントを与える。校正枠設定部432aは、各指示ベクトルda〜ddに、指示位置ベクトルTpa〜Tpdを対応付ける。
【0126】
この方法であれば、指示者Aは、指示平面T上の4箇所にカーソル位置を合わせて、その位置決定のイベントを指示情報出力装置300に与えることによって、順次キャリブレーションを進めることができる。なお、4頂点分の指示ベクトルが指示平面T内に収まらない場合には、指示者Aの入力操作により修正指令を与えるが、指示ベクトルは指示装置400において再計算される。
【0127】
(ii)第2の方法
一方、第2の方法は、例えば、図12に示すように、(X0±X,Y0±Y)Tと表される4つの指示位置ベクトルを定める方法である。これは、指示者Aが、各指示位置ベクトルTpa〜Tpdに対応する指示平面T上の位置を、指示装置400の指示媒体410が指示するように操作する。校正枠設定部432aは、各指示位置ベクトルTpa〜Tpdに対して、これらを指示した時の指示ベクトルda〜ddを対応付ける。指示者Aによる指示媒体410の操作方法には、次のいずれかの方法がある。
【0128】
(a)入力装置200から、指示機構420を制御する情報を入力し、指示情報出力装置300経由により、指示媒体410の姿勢を操作する。
(b)指示装置400のユーザインタフェース470から、指示機構420を制御する情報を入力し、指示媒体410の姿勢を操作する。
(c)指示媒体410の姿勢を手動にて操作する。
【0129】
(b)及び(c)の方法は、後述する遠隔プレゼンテーションにおいて、個体識別機能を追加せずにキャリブレーションを行う場合に有効である。すなわち、指示装置400上のユーザインタフェース470を用いて、直接、指示機構420を操作し、あらかじめ上記のように指示位置ベクトルが決められた指示平面T上の4点(例えば、画像表示領域の4隅、画像表示領域に表された4箇所の識別マーク等)に、順次可視レーザ光を照射していくことで、キャリブレーションを進めることができる。この方法によれば、遠隔地にある指示情報出力装置300や指示者Aとは独立して、各地の指示装置400と指示平面Tとのキャリブレーションを行うことができる。
【0130】
なお、上記の第1の方法及び第2の方法ともに、設定される4つの指示ベクトルは、すべて異なっていて、いずれか3つの指示ベクトルによる指示位置が同一直線上に無ければよい。このため、上記の例のような指示ベクトルに限定する必要はない。
【0131】
[2−2.射影校正枠の設定…ステップ1004]
射影校正枠設定部432bは、上記のように、4つの指示位置ベクトルTpa〜Tpdに対応付けられた4つの指示ベクトルda〜ddから、式(1)により、射影指示平面P上の対応する4つの射影指示位置ベクトルを求める。
【0132】
[2−3.校正値の算出…ステップ1005]
上記のように設定された校正枠および射影校正枠に基づいて、式(6)〜式(9)により、校正値を求める。これにより、キャリブレーションが完了する。
【0133】
[3.キャリブレーション要求判定…ステップ1006]
要求判定部431は、キャリブレーション要求イベントの有無を判定して、キャリブレーション部432のフロー制御を行う。例えば、指示装置400と指示平面Tとの相対的な位置姿勢など、指示環境が運用中に変化してしまった場合に、校正値の更新が必要になる。
【0134】
このとき、指示者Aが、入力装置200若しくはユーザインタフェース470を介して、キャリブレーション要求イベントを入力する。要求判定部431は、入力されたキャリブレーション要求イベントを検出した場合、キャリブレーション部432にキャリブレーションを開始させる。
【0135】
[4.指示位置更新要求判定…ステップ1007]
指示者Aは、プレゼンテーション中に、指示情報出力装置300若しくは指示平面T上に表示された内容を確認しながら、カーソル位置を所望の位置に移動させる。これにより、指示情報出力装置300から指示位置ベクトル等の指示情報が出力される。
【0136】
指示者Aが、入力装置200を用いて、目標とする指示位置を更新した場合には、指示情報出力装置300から出力される指示位置ベクトル等の指示情報が変化する。このような指示位置ベクトルの入力若しくは変化の有無を、要求判定部431が判定して、指示演算部430のフロー制御を行う。
【0137】
なお、新たな指示位置ベクトルの入力や指示ベクトルの変化がない場合には、指示ベクトルの更新を行わなくてもよい。また、指示者Aの手振れやノイズなど、指示情報の急峻な変化を減衰させるフィルタを実装することにより、指示位置の不要な変動による不快な動作を抑制する機能を持たせてもよい。
【0138】
[5.指示ベクトル演算…ステップ1008〜1012]
指示演算部430の交点演算部433は、式(10)〜(13)により、新たな指示位置ベクトルが示す指示点及び既に求められている校正枠における2頂点の間をそれぞれ結ぶ2直線と、当該校正枠における対角線との2つの交点についての交点係数ベクトルを求める(ステップ1009)。
【0139】
透視演算部434は、式(14)〜(17)により、既に求められている校正値、交点係数ベクトル及び指示平面T上の2つの交点に基づいて、当該2つの交点に対応する射影指示平面Pの2つの射影点を求める(ステップ1010)。なお、上記の説明では、指示平面T上の2点から、射影指示平面P上の2つの射影点を求めていたが、両者は相互に変換可能である。
【0140】
さらに、指示位置演算部435は、式(18)(19)により、既に求められている2つの射影点及び射影校正枠の2頂点を結ぶ2直線の交点についての交点係数ベクトルを求める(ステップ1011)。なお、上記の説明では、射影指示平面P上の2直線の交点から、交点係数ベクトルを求めていたが、指示平面T上の2直線の交点から、交点係数ベクトルを求める場合も同様である。
【0141】
指示ベクトル演算部436は、ステップ1011で求めた交点係数ベクトルに基づいて、式(2)により、指示ベクトルを求める(ステップ1012)。なお、指示方向制御軸のずれなどの、指示装置400における指示機構420の実装精度により、指示ベクトルの補正が必要となる場合を考慮して、適切な指示ベクトル補正機能を実装し、求められた指示ベクトルを補正してもよい。
【0142】
[6.指示動作…ステップ1013〜1015]
上記のように求められた指示ベクトルによって、指示機構420は、指示媒体410の指示方向制御パラメータを更新する(ステップ1013)。この指示方向制御パラメータにしたがって、指示機構420が動作するので、指示媒体410が、指示平面T上の目標とする指示位置を指示する(ステップ1014)。そして、プレゼンテーション等を継続する場合には、ステップ1006に戻る(ステップ1015)。
【0143】
[E.実施形態の効果]
以上のような本実施形態によれば、カメラで指示平面Tを撮影することによる照射位置の発見及び追跡を行わなくても、正確な位置を指示することができるので、装置構成及び処理が簡素化できる。
【0144】
指示者Aは、指示情報出力装置300のディスプレイに、指示平面Tと同内容のプレゼンテーション資料等が表示されているならば、ディスプレイを見ながら、入力装置200を介して指示位置を入力すればよい。このため、指示者Aは、指示平面Tと観衆との間で、頻繁に視線や姿勢を交代させる必要がなくなり、高度な表現能力を必要とせずに、観衆を見据えた発表を行うことができる。
【0145】
指示平面Tに対する実際の指示は、指示者Aによる入力装置200からの入力に応じて、指示装置400が行う。このため、指示媒体410の指示平面Tからの逸脱や指示者の手振れを抑制でき、安全な指示動作を安定して行うことができる。
【0146】
特に、指示位置は、指示平面T内に制限することができるので、指示平面Tと指示装置400との間に観衆が存在しない場合には、指示媒体410が観衆に向けられることはない。また、指示情報の急峻な変化を減衰させるフィルタを用いることにより、不要な変動による不快な動作を抑制できる。
【0147】
指示平面Tと指示装置400との相対的な位置姿勢が変動しても、キャリブレーションを行うことにより、正確な指示動作を維持できる。このため、指示装置400及び指示平面Tを持ち運び可能な利便性の高いものとすることができる。また、設置の自由度が高まるので、様々な設置場所に本システムを設置することができる。
【0148】
[F.他の実施形態]
本発明は、上記の実施形態に限定されるものではない。図2に示した機能ブロック図は、概念的なものであり、これらの機能を実現する具体的な回路は種々考えられ、特定のものには限定されない。なお、本発明は、上記の処理に対応してコンピュータ及び周辺回路を動作させるポインティング方法、ポインティングプログラムとしても把握できる。ハードウェア処理によって実現する範囲とソフトウェア処理によって実現する範囲も自由である。上記の指示演算部を実現するコンピュータを、独立した指示ベクトル演算装置として構成することも可能である。
【0149】
上記の各装置の接続方法は、自由である。例えば、携帯可能な小型軽量の指示装置400を、指示情報出力装置300のコンピュータに接続する場合に、USBのバス給電により駆動するように構成することもできる。
【0150】
さらに、入力装置200と指示情報出力装置300とを接続する媒体若しくは指示情報出力装置300と指示装置400とを接続する媒体を、有線若しくは無線の通信ネットワークを介して実現してもよい。これにより、遠隔地に設置された指示平面T及び指示装置400を、入力装置200及び指示情報出力装置300によって操作することができる。
【0151】
また、指示平面T(表示装置若しくはプロジェクターの制御部)は、指示情報出力装置300の出力部330から受信した情報に応じて、所定の情報を出力することができる。そして、指示平面Tから発せられた情報(例えば、実際の指示位置)を指示者Aが認識して、フィードバックする(所望の位置へカーソルを移動する)ことで、次の指示動作を決定してもよい。上記の実施形態では、入力装置200若しくは指示情報出力装置300が、指示平面Tとは別に、指示者用のディスプレイを有していたが、さらに、独立の指示者向け表示装置を備えてもよい。
【0152】
また、指示装置400の一部を、指示情報出力装置300に構成することもできる。例えば、指示演算部430を、指示情報出力装置300に設けてもよい。キャリブレーション部432のみを、指示情報出力装置300に設けてもよい。さらに、入力装置200及び指示情報出力装置300の一方若しくは双方を、指示装置400と一体に構成することもできる。
【0153】
また、上記の基本的なシステムでは、指示者Aが1人、指示平面Tが1面の1:1のシステムであった。しかし、両者の関係は、必ずしも1:1である必要はない。n、mを2以上の整数として、1:n、n:1、m:nの関係を有するシステムを構成することもできる。
【0154】
例えば、指示平面Tが複数あり、各面に同一の指示動作を行う1:nのプレゼンテーションシステムとして構成することもできる。このシステムは、1つの指示平面Tだけではカバーしきれない規模の発表会場や、空間的に離れた複数拠点へ同一内容を発表する遠隔プレゼンテーションへの要求に応えることができる。
【0155】
この場合、指示平面Tと同数の指示装置400を、指示情報出力装置300に接続する必要がある。各指示装置400のキャリブレーションは、各々が指示する指示平面Tに対して行わなければならないため、各指示装置400に個体識別機能(識別手段)を追加してもよい。指示装置400が、自らに向けたキャリブレーション要求等のキャリブレーション関連情報を受信した場合(自らの識別情報と一致する情報を受信した場合)のみ、キャリブレーションを行うなどの機能も考えられる。
【0156】
また、遠隔プレゼンテーションの場合は、指示者(発表者)Aの拠点のみから、すべてのキャリブレーションを行うことは困難である。このため、表示画面の座標系が同一であれば、キャリブレーション時のみ、各指示装置400に対応して設けられた別の指示情報出力装置300に接続を切り替えて、キャリブレーションを行うこともできる。例えば、各指示情報出力装置300の入力手段を用いて、直接、指示機構420を操作し、あらかじめ指示位置ベクトルが決められた指示平面T上の4点に、順次可視レーザ光を照射していくことによって、それぞれキャリブレーションを行うことができる。
【0157】
1:nのプレゼンテーションシステムとは逆に、指示者Aおよび指示者Aに属する指示装置400が複数あり、指示平面Tが1面のみのn:1のプレゼンテーションシステムへの応用も可能である。指示情報出力装置300が1つの場合には、指示者Aとこれに属する指示装置400の個体識別機能(識別手段)が必要となる。いずれにしても、単一の指示平面Tに指示者Aと同数のカーソル位置制御およびその表示を行うための集約制御を担当する装置が必要となる。さらに、1:nおよびn:1のプレゼンテーションシステムを拡張して、m:nのプレゼンテーションシステムへの応用も可能である。
【0158】
本システムでは、キャリブレーション時に、指示位置ベクトルと指示ベクトルとの対応付けさえ行えるならば、一般的な指示媒体による指示動作への応用に限る必要はない。たとえば、カメラの視線制御にも応用できる。これにより、平面もしくは仮想的な平面を監視するカメラの視線制御を、同平面上の指示位置ベクトルを与えることで容易に行うことができる。つまり、本発明の指示媒体は、肉眼で識別できる媒体には限らず、カメラの視線のように、いわば仮想的な指示を行うものも含まれる。
【図面の簡単な説明】
【0159】
【図1】本発明の指示動作モデルを示す説明図である。
【図2】本発明の一実施形態を示す全体構成図である。
【図3】図2に示す実施形態の機能ブロック図である。
【図4】本発明の指示動作原理における球座標系、3次元直交座標系及び2次元線形座標系を示す説明図である。
【図5】本発明の指示動作原理における射影指示平面を示す説明図である。
【図6】本発明の指示動作原理における指示平面上の校正枠と射影指示平面上の射影校正枠の頂点及び対角線の交点の射影変換を示す説明図である。
【図7】本発明の指示動作原理における射影指示平面上の指示点と四角形の対角線との交点を示す説明図である。
【図8】図7の交点の指示平面への射影変換を示す説明である。
【図9】図8の射影点から求める指示点を示す説明図である。
【図10】図2に示す実施形態の処理手順を示すフローチャートである。
【図11】本発明のキャリブレーション手法の一例を示す説明図である。
【図12】本発明のキャリブレーション手法の他の一例を示す説明図である。
【符号の説明】
【0160】
100…ポインティングシステム
200…入力装置
300…指示情報出力装置
310…入力部
320…決定部
330…出力部
400…指示装置
410…指示媒体
420…指示機構
430…指示演算部
431…要求判定部
432…キャリブレーション部
432a…校正枠設定部
432b…射影校正枠設定部
432c…校正値演算部
433…交点演算部
434…透視演算部
435…指示位置演算部
436…指示ベクトル演算部
440…指示情報インタフェース
450…可動筐体
460…設置機構
470…ユーザインタフェース
【特許請求の範囲】
【請求項1】
指示対象となる指示平面に対する指示を行う指示媒体と、
直交する2つの制御軸を有し、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって、前記指示媒体の指示方向を制御する指示機構と、
前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面と、前記指示平面との間において、前記原点を介した前記指示平面上の指示位置とこれに対応する前記射影指示平面上の位置との中心射影変換に基づいて、前記指示ベクトルを演算する指示演算部と、
を有することを特徴とするポインティングシステム。
【請求項2】
前記指示演算部は、
前記指示平面における異なる4点を頂点とする校正枠を設定する校正枠設定部と、
前記射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定する射影校正枠設定部と、
2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求める交点演算部と、
直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とを相互に変換可能な透視演算部と、
前記校正枠若しくは前記射影校正枠の頂点及び前記透視演算部により変換した交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算する指示位置演算部と、
前記指示位置演算部によって演算した指示位置若しくはこれに対応する前記射影指示平面上の位置に基づいて、前記指示ベクトルを演算する指示ベクトル演算部と、
を有することを特徴とする請求項1記載のポインティングシステム。
【請求項3】
前記指示平面上の指示位置として、指示位置ベクトルを入力する入力装置と、
前記指示位置ベクトルを、前記指示演算部に出力する指示情報出力装置と、
を有することを特徴とする請求項1又は請求項2記載のポインティングシステム。
【請求項4】
前記校正枠設定部及び前記射影校正枠設定部を有し、運用前若しくは要求に応じて、前記校正枠及び前記射影校正枠の設定を行うキャリブレーション部を有することを特徴とする請求項1〜3のいずれか1項に記載のポインティングシステム。
【請求項5】
前記指示機構は、前記指示媒体の基本指示方向若しくは前記指示機構の姿勢を変更可能な可動筐体に設けられていることを特徴とする請求項1〜4のいずれか1項に記載のポインティングシステム。
【請求項6】
前記指示機構は、除震手段を備えた設置機構に設けられていることを特徴とする請求項1〜5のいずれか1項に記載のポインティングシステム。
【請求項7】
前記指示演算部及び前記指示機構との間で、情報の入出力が可能なユーザインタフェースを備えることを特徴とする請求項1〜6のいずれか1項に記載のポインティングシステム。
【請求項8】
前記指示平面及び前記指示機構の一方若しくは双方が複数であることを特徴とする請求項1〜7のいずれか1項に記載のポインティングシステム。
【請求項9】
前記入力装置、前記指示情報出力装置及び前記指示機構のうち、少なくともいずれかが複数であることを特徴とする請求項3記載のポインティングシステム。
【請求項10】
直交する2つの制御軸を有し、指示対象となる指示平面に対する指示を行う指示媒体の指示方向を制御する指示機構を、コンピュータが、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって制御することにより、前記指示平面に対する指示を行わせるポインティング方法において、
前記コンピュータは、校正枠設定部、射影校正枠設定部、交点演算部、透視演算部、指示位置演算部及び指示ベクトル演算部を有し、
前記校正枠設定部が、前記指示平面における異なる4点を頂点とする校正枠を設定し、
前記射影校正枠設定部が、前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定し、
前記交点演算部が、2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求め、
前記透視演算部が、直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とについて、いずれか一方から他方へ変換し、
前記指示位置演算部が、前記校正枠若しくは前記射影校正枠の頂点及び変換した前記交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算し、
前記指示ベクトル演算部が、演算した指示位置若しくはこれに対応する前記射影指示平面上の位置に基づいて、前記指示ベクトルを演算する、
ことを特徴とするポインティング方法。
【請求項11】
直交する2つの制御軸を有し、指示対象となる指示平面に対する指示を行う指示媒体の指示方向を制御する指示機構を、コンピュータに、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって制御させることにより、前記指示平面に対する指示を行わせるポインティングプログラムにおいて、
前記コンピュータに、
前記指示平面における異なる4点を頂点とする校正枠を設定する処理と、
前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定する処理と、
2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求める処理と、
直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とについて、いずれか一方から他方へと変換する処理と、
前記校正枠若しくは前記射影校正枠の頂点及び変換した前記交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算する処理と、
演算した指示位置若しくはこれに対応する前記射影指示平面上の位置に基づいて、前記指示ベクトルを演算する処理と、
を実行させることを特徴とするポインティングプログラム。
【請求項12】
直交する2つの制御軸を有し、前記指示媒体の指示方向を制御する指示機構を制御するために、前記制御軸を中心とした回転角を成分とする指示ベクトルを求める指示ベクトル演算装置において、
前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面と、前記指示平面との間において、前記原点を介した前記指示平面上の指示位置とこれに対応する前記射影指示平面上の位置との中心射影変換により、前記指示ベクトルを演算する指示演算部を有することを特徴とする指示ベクトル演算装置。
【請求項1】
指示対象となる指示平面に対する指示を行う指示媒体と、
直交する2つの制御軸を有し、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって、前記指示媒体の指示方向を制御する指示機構と、
前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面と、前記指示平面との間において、前記原点を介した前記指示平面上の指示位置とこれに対応する前記射影指示平面上の位置との中心射影変換に基づいて、前記指示ベクトルを演算する指示演算部と、
を有することを特徴とするポインティングシステム。
【請求項2】
前記指示演算部は、
前記指示平面における異なる4点を頂点とする校正枠を設定する校正枠設定部と、
前記射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定する射影校正枠設定部と、
2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求める交点演算部と、
直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とを相互に変換可能な透視演算部と、
前記校正枠若しくは前記射影校正枠の頂点及び前記透視演算部により変換した交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算する指示位置演算部と、
前記指示位置演算部によって演算した指示位置若しくはこれに対応する前記射影指示平面上の位置に基づいて、前記指示ベクトルを演算する指示ベクトル演算部と、
を有することを特徴とする請求項1記載のポインティングシステム。
【請求項3】
前記指示平面上の指示位置として、指示位置ベクトルを入力する入力装置と、
前記指示位置ベクトルを、前記指示演算部に出力する指示情報出力装置と、
を有することを特徴とする請求項1又は請求項2記載のポインティングシステム。
【請求項4】
前記校正枠設定部及び前記射影校正枠設定部を有し、運用前若しくは要求に応じて、前記校正枠及び前記射影校正枠の設定を行うキャリブレーション部を有することを特徴とする請求項1〜3のいずれか1項に記載のポインティングシステム。
【請求項5】
前記指示機構は、前記指示媒体の基本指示方向若しくは前記指示機構の姿勢を変更可能な可動筐体に設けられていることを特徴とする請求項1〜4のいずれか1項に記載のポインティングシステム。
【請求項6】
前記指示機構は、除震手段を備えた設置機構に設けられていることを特徴とする請求項1〜5のいずれか1項に記載のポインティングシステム。
【請求項7】
前記指示演算部及び前記指示機構との間で、情報の入出力が可能なユーザインタフェースを備えることを特徴とする請求項1〜6のいずれか1項に記載のポインティングシステム。
【請求項8】
前記指示平面及び前記指示機構の一方若しくは双方が複数であることを特徴とする請求項1〜7のいずれか1項に記載のポインティングシステム。
【請求項9】
前記入力装置、前記指示情報出力装置及び前記指示機構のうち、少なくともいずれかが複数であることを特徴とする請求項3記載のポインティングシステム。
【請求項10】
直交する2つの制御軸を有し、指示対象となる指示平面に対する指示を行う指示媒体の指示方向を制御する指示機構を、コンピュータが、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって制御することにより、前記指示平面に対する指示を行わせるポインティング方法において、
前記コンピュータは、校正枠設定部、射影校正枠設定部、交点演算部、透視演算部、指示位置演算部及び指示ベクトル演算部を有し、
前記校正枠設定部が、前記指示平面における異なる4点を頂点とする校正枠を設定し、
前記射影校正枠設定部が、前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定し、
前記交点演算部が、2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求め、
前記透視演算部が、直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とについて、いずれか一方から他方へ変換し、
前記指示位置演算部が、前記校正枠若しくは前記射影校正枠の頂点及び変換した前記交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算し、
前記指示ベクトル演算部が、演算した指示位置若しくはこれに対応する前記射影指示平面上の位置に基づいて、前記指示ベクトルを演算する、
ことを特徴とするポインティング方法。
【請求項11】
直交する2つの制御軸を有し、指示対象となる指示平面に対する指示を行う指示媒体の指示方向を制御する指示機構を、コンピュータに、前記制御軸を中心とした回転角を成分とする指示ベクトルにしたがって制御させることにより、前記指示平面に対する指示を行わせるポインティングプログラムにおいて、
前記コンピュータに、
前記指示平面における異なる4点を頂点とする校正枠を設定する処理と、
前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面に、前記校正枠の4点に前記中心射影変換に基づいて対応する点を頂点とする射影校正枠を設定する処理と、
2次元平面上での平行でない2直線の交点を求める交点関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点若しくは前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点を求める処理と、
直交しない2平面上で相互に対応する2直線上の任意の点の間の中心射影変換を行う透視関数を用いて、前記指示平面上の指示位置と前記校正枠のいずれかの頂点を通る直線と前記校正枠の対角線との交点と、前記指示位置に対応する射影指示平面上の位置と前記射影校正枠のいずれかの頂点を通る直線と前記射影校正枠の対角線との交点とについて、いずれか一方から他方へと変換する処理と、
前記校正枠若しくは前記射影校正枠の頂点及び変換した前記交点に基づき、前記指示平面上の指示位置若しくは前記指示位置に対応する前記射影指示平面上の位置を演算する処理と、
演算した指示位置若しくはこれに対応する前記射影指示平面上の位置に基づいて、前記指示ベクトルを演算する処理と、
を実行させることを特徴とするポインティングプログラム。
【請求項12】
直交する2つの制御軸を有し、前記指示媒体の指示方向を制御する指示機構を制御するために、前記制御軸を中心とした回転角を成分とする指示ベクトルを求める指示ベクトル演算装置において、
前記制御軸の交点を原点とする3次元直交座標系に対して所定の位置関係を有する仮想的な射影指示平面と、前記指示平面との間において、前記原点を介した前記指示平面上の指示位置とこれに対応する前記射影指示平面上の位置との中心射影変換により、前記指示ベクトルを演算する指示演算部を有することを特徴とする指示ベクトル演算装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−300575(P2009−300575A)
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願番号】特願2008−152769(P2008−152769)
【出願日】平成20年6月11日(2008.6.11)
【出願人】(390005223)株式会社タムラ製作所 (526)
【Fターム(参考)】
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願日】平成20年6月11日(2008.6.11)
【出願人】(390005223)株式会社タムラ製作所 (526)
【Fターム(参考)】
[ Back to top ]