(57)【要約】【構成】画像提示システム１０は、ロボット１２およびコンピュータ１４を含む。ロボット１２はカメラ３２を備えており、このカメラ３２はＨＭＤ１６を装着するユーザの頭部方向に連動して、その向きを設定される。カメラ３２からの画像データは、当該画像の撮影時点におけるカメラ方向情報とともに、コンピュータ１４に送信され、コンピュータ１４は、当該カメラ方向情報に対応する位置に配置するように、当該画像データをバッファ領域５６ａに記憶する。コンピュータ１４は、現在の頭部方向に対応する視野範囲を算出して、当該視野範囲に相当する範囲の画像データを読み出し、ＨＭＤ１６に表示する。このとき、現在の頭部方向が変更した場合には、直前の視野範囲と現在の視野範囲との差分を算出して、差分に相当する範囲にマスクをかけて画像データを表示する。【効果】画像振れを防止して、安定した画像を提示することができる。【選択図】  図１
2004363987.tif 000002
【特許請求の範囲】
【請求項１】
旋回および俯仰の少なくとも一方を制御可能に設けられるカメラを備えるロボットおよび前記ロボットと通信可能に設けられ前記カメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える画像提示システムであって、
前記ロボットは、
前記画像提示装置からの頭部方向情報に従って前記カメラの方向を設定するカメラ設定手段と、
前記カメラによって撮影された画像に対応する画像データを取得する画像取得手段と、
当該画像を撮影したときの前記カメラの方向についてのカメラ方向情報を取得するカメラ方向情報取得手段、および
前記画像取得手段によって取得された画像データと前記カメラ方向情報取得手段によって取得されたカメラ方向情報とを互いに関連づけて前記画像提示装置に送信するデータ送信手段と、を備え、
前記画像提示装置は、
当該ユーザの現在の頭部の方向についての頭部方向情報を取得する頭部方向情報取得手段と、
前記頭部方向情報取得手段によって取得された頭部方向情報を前記ロボットに送信する頭部方向情報送信手段と、
前記データ送信手段によって送信された画像データおよびカメラ方向情報を受信して、当該カメラ方向情報に対応する領域に当該画像データを配置するように記録媒体に記憶する記憶手段、および
現在の頭部方向情報に基づく視野範囲についての画像データを前記記憶手段から読み出して前記ディスプレイに表示する表示手段と、を備える画像提示システムにおいて、
前記画像提示装置に、前記表示手段によって画像データを表示するときユーザの頭部方向が変更したかどうかを判断する頭部方向変更判断手段、および前記頭部方向が変更したとき、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する差分算出手段をさらに設け、
前記表示手段は、前記差分算出手段によって算出された差分に相当する範囲にマスクをかけた画像データを表示することを特徴とする、画像提示システム。
【請求項２】
前記頭部方向情報は、当該ユーザの首の縦方向および横方向の少なくとも一方の角度についての角度情報を含み、
前記表示手段は、前記現在の頭部方向情報に含まれる角度情報に従って前記視野範囲を算出する算出手段を含む、請求項１記載の画像提示システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は画像提示システムに関し、特にたとえば旋回および俯仰の少なくとも一方が制御可能に設けられたカメラを備えるロボットおよびこのロボットと通信可能に設けられカメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える、画像提示システムに関する。
【０００２】
【従来の技術】
従来のこの種の画像提示システムの一例が特許文献１に開示される。この特許文献１に開示される遠隔監視装置は、監視する目的物の在る場所に撮像部を設置し、光学視覚部を、該目的物の在る場所から離れた場所に居るユーザが装着して遠隔から上記目的物の監視を行うものである。具体的には、光学視覚部に接続されるマイコンが、Ｘ軸方向、Ｙ軸方向およびＺ軸方向にそれぞれ設けられた加速度センサおよび圧電ジャイロからの出力に基づいて、ユーザの動きを示す位置検出情報および方位検出情報を算出し、これらを送信回路を介して撮像部側に無線送信する。撮像部は、上記位置検出情報および方位検出情報に応じてカメラの撮像位置を可変し、映像情報を赤外線送信する。上記光学視覚部は、上記赤外線送信された映像情報をディスプレイに表示していた。
【０００３】
しかし、この特許文献１に開示される遠隔監視装置では、カメラと光学視覚装置との間における通信時間やカメラの撮像位置の設定時間を考慮していないため、たとえば、ユーザの頭部が動き続けるような場合には、ディスプレイに表示される映像情報に時間遅延、特に通信時間遅れに起因するずれが生じてしまう。このため、いわゆる世界揺れが生じてしまっていた。
【０００４】
これを回避するため、非特許文献１に開示されるテレロボティクス・システムでは、カメラを中心とする周囲の映像情報を操作者の頭部の運動とは無関係に取り込み、この映像情報を撮影時のカメラの方向に関する情報とともに取得して、ドーム状の仮想空間（バーチャル・ドーム）に相当する領域にマッピングすることにより、操作者の頭部の運動に対応した映像情報をほぼリアルタイムで提示するようにしていた。
【０００５】
【特許文献１】
特開平７−２９４２９６号
【非特許文献１】
計測自動制御学会論文集  Ｖｏｌ．３３，Ｎｏ．７，７１６／７２２（１９９７）
「人工現実感技術を用いた視覚的臨場感の伝達」
【０００６】
【発明が解決しようとする課題】
しかし、非特許文献１に開示されるテレロボティクス・システムでは、映像情報をほぼリアルタイムで提示することができるが、カメラは操作者の頭部の動きと連動していないため、表示される映像情報は時間的にずれのある（古い）ものであった。また、このテレロボティクス・システムでは、カメラの撮影可能な範囲（全周）を水平１５面，垂直５面というように分割しておき、予め決まった方向にカメラの向きを設定して、画像を取得するようにしてあるため、カメラと画像キャプチャとは３０ｆｐｓの能力があるにも拘わらず、実際には１．５ｆｐｓに制限されていた。つまり、操作者の頭部の動きに完全に連動したカメラによって撮影された今現在の遠隔世界の様子を、時間遅延に起因する画像揺れを回避して、安定して観察することができなかった。
【０００７】
それゆえに、この発明の主たる目的は、頭部方向に連動して撮影された遠隔環境の画像を安定して提示することができる、画像提示システムを提供することである。
【０００８】
【課題を解決するための手段】
この発明は、旋回および俯仰の少なくとも一方を制御可能に設けられるカメラを備えるロボットおよびロボットと通信可能に設けられカメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える画像提示システムであって、ロボットは、画像提示装置からの頭部方向情報に従ってカメラの方向を設定するカメラ設定手段と、カメラによって撮影された画像に対応する画像データを取得する画像取得手段と、当該画像を撮影したときのカメラの方向についてのカメラ方向情報を取得するカメラ方向情報取得手段、および画像取得手段によって取得された画像データとカメラ方向情報取得手段によって取得されたカメラ方向情報とを互いに関連づけて画像提示装置に送信するデータ送信手段と、を備え、画像提示装置は、当該ユーザの現在の頭部の方向についての頭部方向情報を取得する頭部方向情報取得手段と、頭部方向情報取得手段によって取得された頭部方向情報をロボットに送信する頭部方向情報送信手段と、データ送信手段によって送信された画像データおよびカメラ方向情報を受信して、当該カメラ方向情報に対応する領域に当該画像データを配置するように記録媒体に記憶する記憶手段、および現在の頭部方向情報に基づく視野範囲についての画像データを記憶手段から読み出してディスプレイに表示する表示手段と、を備える画像提示システムにおいて、画像提示装置に、表示手段によって画像データを表示するときユーザの頭部方向が変更したかどうかを判断する頭部方向変更判断手段、および頭部方向が変更したとき、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する差分算出手段をさらに設け、表示手段は、差分算出手段によって算出された差分に相当する範囲にマスクをかけた画像データを表示することを特徴とする、画像提示システムである。
【０００９】
【作用】
この発明の画像提示システムは、カメラを備えるロボットとこのロボットと通信可能に設けられた画像提示装置とを備えている。カメラは、旋回および俯仰の少なくとも一方を制御可能に設けられ、ユーザの頭部方向に連動してその向きが設定される。画像提示装置は、カメラで撮影された画像をディスプレイに表示してユーザに提示する。ロボットでは、カメラ設定手段は、画像提示装置からの頭部方向情報に従ってカメラの方向を設定する。画像取得手段は、カメラによって撮影された画像に対応する画像データを取得する。また、カメラ方向情報取得手段は、カメラで当該画像を撮影した時点におけるカメラの方向についてのカメラ方向情報を取得する。データ送信手段は、画像データとカメラ方向情報と互いに関連付けて画像提示装置に送信する。一方、画像提示装置では、頭部方向取得手段が、当該ユーザの現在の頭部の方向についての頭部方向情報を取得する。また、頭部方向情報送信手段が、取得された頭部方向情報をロボットに送信する。画像提示装置では、記憶手段が、ロボットから送信された画像データおよびカメラ方向情報が受信して、受信された画像データは、カメラ方向情報が示すカメラ方向に従って記憶媒体の該当する領域に記憶する。表示手段は、現在の頭部方向情報に基づく視野範囲についての画像データを記憶媒体から読み出して（抽出して）、ディスプレイに表示し、カメラで撮影された画像をユーザに提示する。このようなシステムにおいて、画像提示装置では、画像データを表示するとき、頭部方向変更判断手段が、ユーザの頭部方向が変更したかどうかを判断する。頭部方向が変更したとき、差分算出手段は、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する。つまり、未だ画像データを取得していない領域、或いは、画像データを取得しているが時間的に古い画像データが記憶されている領域を求める。したがって、表示手段は、算出した差分に相当する範囲にマスクをかけて画像データを表示する。
【００１０】
たとえば、頭部方向情報は、当該ユーザの首の縦方向および横方向の少なくとも一方の角度についての角度情報を含むので、算出手段は、現在の角度情報に従って視野範囲を算出する。これにより、表示手段は、現在の頭部方向に基づく視野範囲の画像データを表示することができる。
【００１１】
【発明の効果】
この発明によれば、カメラ方向情報と当該カメラ方向情報が示すカメラ方向における画像データを取得してカメラ方向情報が示す位置に画像データを配置するように記録媒体に記憶し、現在の頭部方向に基づく視野範囲の画像データを抽出して表示するので、世界揺れが発生することはない。また、頭部方向が変更した場合には、直前の視野範囲と現在の視野範囲との差分を算出して、当該差分に相当する範囲には、画像を表示しないので、未だ画像データを取得していない範囲や時間的に古い画像データが記憶される範囲については、画像が表示されることはない。つまり、不都合な画像が表示されてしまうことはない。つまり、頭部方向に連動して撮影される遠隔環境の画像を安定して提示することができる。
【００１２】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００１３】
【実施例】
図１を参照して、この実施例の画像提示システム（以下、単に「システム」という。）１０は、ロボット１２およびコンピュータ１４を含む。このロボット１２およびコンピュータ１４は、互いに通信可能に接続され、ロボット１２はコンピュータ１４に対して遠隔に設けられる。図１においては、ロボット１２およびコンピュータ１４が直接接続されるように記載してあるが、これらは電話回線（携帯電話回線を含む。）或いはインターネットのようなネットワークを介して接続されてもよく、その接続は、有線・無線の別を問わない。
【００１４】
また、図１に示すように、コンピュータ１４には、頭部搭載型ディスプレイ（ヘッドマウントディスプレイ：ＨＭＤ）１６が接続されるとともに、このＨＭＤ１６に一体的に設けられた加速度センサ１８および圧電ジャイロ２０のようなセンサも接続される。
【００１５】
ロボット１２は、ＣＰＵ３０を含み、ＣＰＵ３０にはステレオカメラ（以下、単に「カメラ」という。）３２が接続される。カメラ３２は、ＣＰＵ３０の指示に従って画像（動画像）を撮影し、図示は省略するが、撮影された画像は、映像処理回路で、ステレオ処理、増幅処理およびディジタル変換処理等の映像処理を施され、撮影した画像に対応する画像データをＣＰＵ３０に与える。
【００１６】
ここで、カメラ３２は、動画像を撮影するが、画像データは、たとえば、所定のフレームレート（この実施例では、３０ｆｐｓ）で連続的に撮影される静止画像のデータ（静止画像データ）であり、したがって、ＣＰＵ３０は、１フレーム間隔（１／３０秒間隔）で連続的に静止画像データを取得する。
【００１７】
また、ＣＰＵ３０には、パン用ドライバ３４を介してモータ３６が接続され、また、ロール用ドライバ３７を介してモータ３９が接続され、さらに、チルト用ドライバ３８を介してモータ４０が接続される。図示は省略するが、カメラ３２は、横首振り（Ｐａｎｎｉｎｇ  ：パン動作）、斜め首振り（Ｒｏｌｌｉｎｇ  ：ロール動作）および縦首振り（Ｔｉｌｔｉｎｇ  ：チルト動作）を実現できる駆動機構、たとえば旋回手段、傾斜手段および俯仰手段を有する。モータ３６は、カメラ３２を横首振り（旋回動作）させるためのモータ（パンモータ）であり、モータ３９は、カメラ３２を斜め首振り（ロール動作）されるためのモータ（ロールモータ）であり、モータ４０は、カメラ３２を縦首振り（俯仰動作）させるためのモータ（チルトモータ）である。
【００１８】
なお、「斜め首振り」とは、この実施例では、人間が首を傾げるように、カメラ３２の向きを傾斜させることをいう。
【００１９】
したがって、ＣＰＵ３０が、旋回の角度データをドライバ３４に与えると、ドライバ３４は角度データに対応する駆動電圧を生成し、モータ３６を回転駆動する。また、ＣＰＵ３０が、傾斜の角度データをドライバ３７に与えると、ドライバ３７は角度データに対応する駆動電圧を生成し、モータ３９を回転駆動する。さらに、ＣＰＵ３０が、俯仰の角度データをドライバ３８に与えると、ドライバ３８は角度データに対応する駆動電圧を生成し、モータ４０を回転駆動する。ただし、ＣＰＵ３０は、ドライバ３４、ドライバ３７およびドライバ３８のそれぞれに対して個別に角度データを与えることができ、またそれらのいずれか２つ以上に一度に角度データを与えることもできる。これにより、カメラ３２の向き（カメラ方向）が可変される。
【００２０】
たとえば、この実施例では、カメラ３２は、基準方向（旋回角度＝０度，傾斜角度＝０，俯仰角度＝０度）を中心として、左右に７５度ずつ回動（旋回）可能であり、左右斜めに３０度ずつ回動（傾斜）可能であり、上下に３０度ずつ回動可能である。後述するように、カメラ方向を人間ないしはユーザの頭部の方向（頭部方向）に連動させるようにするため、人間の頭部の運動可能な角度（首の可動角度）とほぼ同じ角度に設定してある。
【００２１】
さらに、ＣＰＵ３０には、ＲＯＭ４２、ＲＡＭ４４および送受信装置４６が接続される。ＲＯＭ４２は、ＣＰＵ３０によって実行されるロボット１２（カメラ３２を含む。）に関する制御プログラム等のプログラムを記憶する。ＲＡＭ４４は、ＣＰＵ３０のバッファメモリ或いはワークメモリとして使用され、この実施例では、主としてカメラ３２から取得した画像データを保持するバッファメモリとして用いられる。送受信装置４６は、ＣＰＵ３０の指示の下、ＲＡＭ４４に記憶された画像データ等をコンピュータ１４に送信し、また、コンピュータ１４からの指示（制御コマンド）を受信して、ＣＰＵ３０に与える。
【００２２】
コンピュータ１４は、画像提示装置として働き、マイクロコンピュータのようなコンピュータであり、ＣＰＵ５０を含む。ただし、コンピュータ１４は、携帯型のＰＣやＰＤＡなどを用いることもできる。ＣＰＵ５０には、ＬＣＤドライバ５２が接続され、このＬＣＤドライバ５２に上述したＨＭＤ１６が接続される。ＨＭＤ１６は、図示は省略するが、ユーザの頭部に装着される。
【００２３】
上述したように、ＨＭＤ１６に一体的に設けられる加速度センサ１８および圧電ジャイロ２０もまた、ＣＰＵ５０に接続される。図示は省略するが、加速度センサ１８は、Ｘ軸方向の加速度を検出する加速度センサ、Ｙ軸方向の加速度を検出する加速度センサおよびＺ軸方向の加速度を検出する加速度センサによって構成され、各加速度センサからの加速度信号は、増幅回路およびＡ／Ｄ変換器を介してＣＰＵ５０に与えられる。また、図示は省略するが、圧電ジャイロ２０は、Ｘ軸方向の回転方向を検出する圧電ジャイロ、Ｙ軸方向の回転方向を検出する圧電ジャイロおよびＺ軸方向の回転方向を検出する圧電ジャイロによって構成され、各圧電ジャイロからの角速度信号は、増幅回路およびＡ／Ｄ変換器を介してＣＰＵ５０に入力される。
【００２４】
したがって、ＣＰＵ５０は、加速度センサ１８からの加速度信号および圧電ジャイロ２０からの角速度信号に基づいて、ユーザの頭部の移動位置および移動方位を計算する。すなわち、ＣＰＵ５０は、加速度信号および角速度信号（以下、これらをまとめて「検出信号」と言うことがある。）に基づいて、ユーザの頭部方向を計算するのである。たとえば、この頭部方向は、ＨＭＤ１６を装着するユーザの首の縦方向の傾き角度（俯仰角度）、首を傾げた角度（傾斜角度）および横方向の傾き角度（旋回角度）で表される。この頭部方向は、ユーザが真正面を見ている場合、つまり、俯仰角度＝０，傾斜角度＝０，旋回角度＝０である場合を基準方向としてある。
【００２５】
さらに、ＣＰＵ５０には、ＲＯＭ５４、ＲＡＭ５６および送受信装置５８が接続される。ＲＯＭ５４は、このコンピュータ１４によって実行されるメインプログラムを記憶する。ＲＡＭ５６は、ＣＰＵ５０のバッファメモリ或いはワークメモリとして用いられ、バッファ領域５６ａを含む。送受信装置５８は、コンピュータ１４のＣＰＵ５０からの制御コマンドをロボット１２に送信し、また、ロボット１２のＣＰＵ３０の指示に従って送信される画像データを受信し、受信された画像データはＣＰＵ５０の指示に従ってＲＡＭ５６のバッファ領域５６ａに記憶される。
【００２６】
たとえば、このようなシステム１０では、コンピュータ１４は、ユーザの頭部方向を検出して、頭部方向についての情報（頭部方向情報）をロボット１２に送信する。すると、ロボット１２は、その頭部方向情報に従って、頭部方向と同じ方向にカメラ３２の向きを設定し、つまり頭部方向に連動してカメラ方向を設定し、カメラ３２で撮影された画像に対応する画像データを取得して、コンピュータ１４に送信する。したがって、コンピュータ１４は、当該画像データを受信して、ＨＭＤ１６に画像を表示（提示）する。
【００２７】
上述したように、ロボット１２とコンピュータ１４とは通信可能に接続され、コンピュータ１４に対してロボット１２は遠隔に設けられるため、現在の頭部方向に対応する画像をＨＭＤ１６に表示するには、通信時間およびカメラ３２の向きを設定する設定時間等に起因する時間遅延を生じてしまう。このため、何ら手当てを施さない場合には、コンピュータ１４がユーザの頭部方向を取得してから画像を提示するまでの間に、ユーザの頭部方向が変更されてしまうと、頭部方向に対して表示される画像にずれ（振れ）が生じてしまうことになる。
【００２８】
つまり、図２（Ａ）に示すように、ユーザの頭部方向に対して、固定的に存在する物体（たとえば、立方体の物体）の画像（正面画像）が提示されている場合に、図２（Ｂ）に示すように、ユーザが頭部を右に旋回すると、上述したような時間遅延によって、頭部が旋回した状態に対応する画像を直ぐに提示することができない。このため、ＨＭＤ１６に表示される画像は更新されず、実際には固定的に存在するはずの物体が移動したように見えてしまう。その後、頭部が旋回した状態に対応する画像データが取得され、図２（Ｃ）に示すように、現在の頭部方向に対応する画像が提示され、物体が存在すべき位置に表示されるため、世界が揺れているような違和感を与えてしまう。
【００２９】
なお、図２においては、簡単のため、ＨＭＤ１６は省略してあり、また、物体については平面で示してある。
【００３０】
これを回避するため、この実施例では、たとえば、図２（Ａ）の状態からユーザの頭部が旋回した場合には、そのまま図２（Ｃ）に示すような状態の画像を提示するようにして、世界揺れの発生を防止し、安定した画像を提示しているのである。
【００３１】
具体的には、ロボット１２とコンピュータ１４とが通信可能な状態にされると、ロボット１２のＣＰＵ３０はカメラ３２に撮影指示を与え、カメラ３２は撮影を開始する。一方、コンピュータ１４のＣＰＵ５０は、ユーザの頭部方向を検出し、検出した頭部方向についての頭部方向情報（制御コマンド）をロボット１２に送信する。この実施例では、頭部方向は、上述したように、加速度センサ１８および圧電ジャイロ２０からの検出信号に基づいてＣＰＵ５０が計算する。ロボット１２では、送受信装置４６がその頭部方向情報を受信して、ＣＰＵ３０に与える。
【００３２】
ロボット１２では、ＣＰＵ３０が送受信装置４６を介して取得した頭部方向情報に従ってカメラ３２の方向を調整（設定）する。つまり、ＣＰＵ３０は、頭部方向情報に従ってドライバ３４、ドライバ３７およびドライバ３８を制御し、モータ３６、モータ３９およびモータ４０を回転駆動する。これにより、カメラ３２の向きが設定される。
【００３３】
また、ロボット１２では、カメラ３２によって撮影された画像に対応する画像データがＣＰＵ３０に与えられ、ＣＰＵ３０は、取得した画像データをＲＡＭ４４に一旦格納する。この処理と並行して、ＣＰＵ３０は、当該画像データを撮影したときのカメラ３２の向きについての情報（カメラ方向情報）を取得し、当該画像データとカメラ方向情報とを互いに関連付けてコンピュータ１４に送信する。ただし、画像データとカメラ方向情報とを１つにまとめたパケット（ストリーム）データを作成して、コンピュータ１４に送信するようにしてもよい。
【００３４】
つまり、ＣＰＵ３０は、上述したように、カメラ３２で撮影された画像に対応する１フレーム間隔の静止画像データを取得するとともに、１フレーム間隔で、ドライバ３４、ドライバ３７およびドライバ３８のそれぞれから角度データを取得する。これにより、１フレーム毎の画像データおよび当該画像を撮影したときのカメラ方向情報が得られる。
【００３５】
コンピュータ１４では、ＣＰＵ５０は、送受信装置５８を介して画像データおよびカメラ方向情報を受信（取得）すると、当該カメラ方向情報が示すカメラ方向に従って、当該画像データをＲＡＭ５６のバッファ領域５６ａに記憶する。このとき、画像データは、カメラ方向によって決定される位置に配置されるように、バッファ領域５６ａに記憶される。このようにして、バッファ領域５６ａに画像データが記憶され、１フレーム毎の画像データで更新される。
【００３６】
図３は、ＲＡＭ５６に設けられるバッファ領域５６ａを示す図解図である。この図３を参照して、バッファ領域５６ａは、或る位置に存在するカメラ３２で撮影可能な範囲に相当する大きさ（容量）であり、カメラ方向に対応して画像データを記憶するようにしてある。
【００３７】
なお、上述したように、カメラ３２の向きは、左右には７５度ずつ、上下には３０度ずつ変更可能であり、バッファ領域５６ａはこの変更可能な範囲で撮影される画像の大きさに相当する容量を有する。ただし、バッファ領域５６ａは、撮影可能な画像の範囲よりも広い範囲に相当する容量であってもよい。また、カメラ３２の向きの変更可能な範囲は、図３においては、二点鎖線の枠で示してある。
【００３８】
たとえば、撮影時のカメラ方向が基準方向（俯仰角度、傾斜角度および旋回角度がすべて０度）である場合には、カメラ３２によって撮影された画像に対応する画像データは、その画像の中心がバッファ領域５６ａの中心に来るように配置され、記憶される。バッファ領域５６ａの中心（図３において、縦横の一点鎖線の交点で示す。）は、俯仰角度、傾斜角度および旋回角度が共に０度となる場合のカメラ方向すなわち基準方向に対応する。また、図３においては、カメラ３２が水平方向左向きに１５度旋回し、垂直方向下向きに５度回動したカメラ方向における画像データを取得し、記憶した状態を示してある。なお、傾斜角度は、０度である。
【００３９】
画像データがＲＡＭ５６のバッファ領域５６ａに記憶されると、ＣＰＵ５０は、現在の頭部方向を検出し、検出した頭部方向を中心とする視野範囲を算出して、バッファ領域５６ａに記憶された画像データを読み出し（抽出し）、ＬＣＤドライバ５２を駆動して、ＨＭＤ１６に画像を提示（表示）する。ここで、頭部方向は、上述したように、ユーザの首の俯仰角度、傾斜角度および首の旋回角度で表されるため、それぞれの角度によって決定されるバッファ領域５６ａ上の位置を中心として、視野範囲が算出される。たとえば、視野範囲の大きさは、使用するＨＭＤ１６によって予め決定される。ただし、ユーザ等によって、任意に設定可能にするようにしてもよい。
【００４０】
なお、頭部方向についても、カメラ方向と同様に、ユーザの顔が真正面を向いている場合の首の角度（俯仰角度＝０，傾斜角度＝０，旋回角度＝０）を基準方向としてあり、この基準方向がバッファ領域５６ａの中心に相当する。
【００４１】
たとえば、現在の頭部方向が図３に示す画像データの中心位置と一致する場合には、その中心位置を中心とする視野範囲（図３の点線枠で示す範囲）が算出され、算出された視野範囲の画像データがバッファ領域５６ａから読み出され、当該画像データに相当する画像がＨＭＤ１６に表示される。
【００４２】
なお、詳細な説明は省略するが、画像をＨＭＤ１６に表示する際、ＣＰＵ５０は、単にバッファ領域５６ａから視野範囲の画像データを切り出すだけでなく、画像の傾きやキーストーン補正も含めた、３次元的な画像処理（テクスチャマッピング）を、たとえば、ＲＡＭ５６のバッファ領域５６ａ以外の領域を用いて実行する。したがって、ＨＭＤ１６には、３次元の画像が表示されるのである。
【００４３】
このように、現在の頭部方向に対応する画像データを抽出して、ＨＭＤ１６に出力するのは、ロボット１２に送信する頭部方向情報についての頭部方向と、画像データを表示する際の頭部方向とが一致しない場合であっても、提示する画像に振れが発生するのを防止するためである。
【００４４】
つまり、図４（Ａ）に示すように、ユーザの頭部が右に旋回した場合には、点線枠で囲む直前の視野範囲で表示されていた画像が現在の頭部方向についての視野範囲に更新されて画像が表示される。このとき、直前の視野範囲外であり、直前の視野範囲と現在の視野範囲との差分が算出され、当該差分に相当する部分（図面において斜線を付して示す部分）については、未だ画像データを取得していない、或いは時間的に古い画像データであるため、当該部分については、たとえば、ＣＰＵ５０によって、マスク処理が施され、ＨＭＤ１６には、当該部分については画像を表示しないようにしてある。つまり、不都合な画像が表示されてしまうのを回避してある。ただし、斜線部分は、ブルーバック画面を表示するようにしてもよい。以下、同様である。
【００４５】
また、図４（Ｂ）に示すように、ユーザの頭部が前方斜め上方を向いた場合には、その頭部方向に基づく現在の視野範囲が算出され、したがって、図中の実線枠で囲むような画像がＨＭＤ１６に表示される。
【００４６】
さらに、図４（Ｃ）に示すように、ユーザの頭部が右斜め上方を向いた場合には、その頭部方向に基づく視野範囲が算出され、したがって、図中の実線枠で囲むような画像がＨＭＤ１６に表示される。
【００４７】
さらにまた、図４（Ｄ）に示すように、ユーザの頭部が右方向に傾斜した場合には、その頭部方向に基づく視野範囲が算出され、したがって、図中の実線枠で囲むような画像がＨＭＤ１６に表示される。
【００４８】
なお、図４（Ａ）〜図４（Ｄ）では、簡単のため、１フレーム分の画像データの大きさと視野範囲の大きさとが同じである場合を想定して示してあるが、図３に示したように、１フレーム分の画像データが視野範囲より大きい場合には、図４（Ａ）〜図４（Ｄ）に示す斜線部分の領域が少し狭くなる。つまり、未だ画像データを取得していない領域或いは時間的に古い画像データにのみ、マスク処理が施される。
【００４９】
また、図４（Ａ）〜図４（Ｄ）は、それぞれ、ユーザが頭部方向を変更した直後に表示される画像を示しており、その後、ユーザが頭部方向を変更しない場合には、現在の頭部方向についての画像データが取得され、マスク処理を施されていない画像がＨＭＤ１６に表示される。
【００５０】
上述したような動作を、図１に示したロボット１２のＣＰＵ３０が図５に示すフロー図に従って処理し、同じく図１に示したコンピュータ１４のＣＰＵ５０が図６および図７に示すフロー図に従って処理する。
【００５１】
図５に示すように、ロボット１２のＣＰＵ３０が処理を開始すると、ステップＳ１でコンピュータ１４すなわちＣＰＵ５０からの接続指示があるかどうかを判断する。ステップＳ１で“ＮＯ”であれば、つまり接続指示がなければ、そのままステップＳ１に戻って、接続指示があるのを待機する。
【００５２】
一方、ステップＳ１で“ＹＥＳ”であれば、つまり接続指示があれば、ステップＳ３で撮影を開始する。つまり、カメラ３２に撮影指示を与える。続くステップＳ５では、１フレーム分の画像データを取得したかどうかを判断する。ステップＳ５で“ＮＯ”であれば、つまり１フレーム分の画像データを取得していなければ、そのままステップＳ５に戻る。一方、ステップＳ５で“ＹＥＳ”であれば、つまり１フレーム分の画像データを取得すれば、ステップＳ７で、当該画像データを取得したとき（厳密には、当該画像を撮影したとき）のカメラ方向情報を取得する。つまり、ＣＰＵ３０は、当該画像データに対応する画像の撮影時点において、ドライバ３４、ドライバ３７およびドライバ３８から角度データを取得し、カメラ方向を算出して、カメラ方向情報を作成する。続くステップＳ９では、画像データおよび当該画像データに関連するカメラ方向情報をコンピュータ１４に送信する。そして、ステップＳ１１では、コンピュータ１４から終了指示があるかどうかを判断する。
【００５３】
ステップＳ１１で“ＮＯ”であれば、つまり終了指示がなければ、ステップＳ５に戻って、画像データの取得、カメラ方向情報の作成、画像データおよびカメラ方向情報の送信等の処理を繰り返す。一方、ステップＳ１１で“ＹＥＳ”であれば、つまり終了指示があれば、ステップＳ１３で、撮影を終了して、つまりカメラ３２に撮影終了指示を与えて、処理を終了する。
【００５４】
なお、図示は省略するが、ロボット１２のＣＰＵ３０は、撮影開始指示をカメラ３２に与えてから撮影終了指示を与えるまでの間、図５に示した処理とは別の処理によって、コンピュータ１４から送信される頭部方向情報を受信して、当該頭部方向情報に従ってカメラ３２の向きを設定（更新）を行っている。
【００５５】
一方、コンピュータ１４のＣＰＵ５０は、処理を開始すると、図６に示すように、ステップＳ２１で、画像バッファを初期化する。つまり、ＲＡＭ５６のバッファ領域５６ａをクリアする。続くステップＳ２３では、ロボット１２に接続要求を送信し、続いて、ステップＳ２５で、現在の頭部方向を検出する。
【００５６】
なお、図示は省略するが、ＣＰＵ５０は、ロボット１２に対して接続要求を送信すると、ＣＰＵ３０との間で接続が確立したことを確認し、接続が確立していなければ再度接続要求を送信するようにしてある。
【００５７】
また、ステップＳ２５では、ＣＰＵ５０は、加速度センサ１８および圧電ジャイロ２０からの検出信号に基づいて、ユーザの頭部方向を算出（検出）する。
【００５８】
続くステップＳ２７では、頭部方向の変更があるかどうかを判断する。つまり、先に検出された頭部方向と現在の頭部方向とが異なるかどうかを判断する。ステップＳ２７で“ＮＯ”であれば、つまり頭部方向に変更がなければ、図７に示すステップＳ３７に進む。一方、ステップＳ２７で“ＹＥＳ”であれば、つまり頭部方向の変更があれば、ステップＳ２９で、ステップＳ２５において検出した現在の頭部方向情報をロボット１２に送信する。
【００５９】
続いて、ステップＳ３１では、現在の頭部方向についての視野範囲を算出する。つまり、現在の頭部方向から頭部の水平（左右）方向の角度、傾斜方向の角度および垂直（上下）方向の角度をそれぞれ算出し、これらの角度で決定される点を中心とする視野範囲を算出する。次に、ステップＳ３３で、直前の視野範囲外であり、直前の視野範囲と現在の視野範囲との差分を算出する。そして、ステップＳ３５では、算出した差分の範囲にマスク処理を施し、現在の視野範囲の画像データをバッファ領域５６ａから読み出して（抽出して）、ＨＭＤ１６に出力する。つまり、算出した視野範囲に相当する画像がＨＭＤ１６を通して、ユーザに提示される。なお、図示は省略するが、このとき、傾きやキーストーン補正を含む３次元の画像処理が実行される。
【００６０】
次に図７に示すように、ステップＳ３７では、画像データおよびカメラ方向情報を取得（受信）したかどうかを判断する。ステップＳ３７で“ＮＯ”であれば、つまり画像データおよびカメラ方向情報を受信していなければ、そのままステップＳ４１に進む。
【００６１】
一方、ステップＳ３７で“ＹＥＳ”であれば、つまり画像データおよびカメラ方向情報を受信すると、ステップＳ３９で、カメラ方向情報に合わせて画像データをＲＡＭ５６のバッファ領域５６ａに記憶する。つまり、カメラ方向が示す位置であり、カメラ方向が中心となるように、画像データをバッファ領域５６ａに記憶する。
【００６２】
続くステップＳ４１では、終了指示があるかどうかを判断する。つまり、ユーザが図示しない操作ボタンないしはスイッチ等の操作手段を操作して、終了指示を入力したかどうかを判断する。ステップＳ４１で“ＮＯ”であれば、つまり終了指示なければ、図６に示したステップＳ２５に戻る。一方、ステップＳ４１で“ＹＥＳ”であれば、つまり終了指示があれば、ステップＳ４３で、終了指示をロボット１２に送信して、処理を終了する。
【００６３】
この実施例によれば、カメラをユーザの頭部方向に連動させて画像データを取得するとともに、現在の頭部方向に従って算出された視野範囲の画像をユーザに提示するので、通信時間等に起因する時間遅延の影響による画像振れの発生を防止することができる。また、画像を表示するときに、頭部方向が移動された場合には、直前の視野範囲と現在の視野範囲との差分を算出して、差分に相当する範囲の画像を表示しないようにするので、未だ画像データを取得していない範囲や古い画像データが記憶されている範囲についての画像が表示されることはない。つまり、不都合な画像が表示されてしまうことがないので、ユーザが違和感を感じることはない。つまり、安定した画像を提示することができる。
【００６４】
なお、上述の実施例では、ユーザが装着するＨＭＤを通してカメラで撮影された画像をユーザに提示するようにしたが、プロジェクタおよびスクリーンを用いて画像を表示してユーザに提示するようにすることもできる。この場合には、加速度センサおよび圧電ジャイロのみをユーザの頭部に装着するようにすればよい。
【００６５】
また、上述の実施例では、加速度センサおよび圧電ジャイロのようなセンサの検出信号に基づいてユーザの頭部方向を検出するようにしたが、機械的な装置をユーザの頭部に装着することにより頭部方向を検出するようにしてもよい。
【図面の簡単な説明】
【図１】この発明の画像提示システムの一例についての電気的な構成を示すブロック図である。
【図２】図１実施例に示すＨＭＤへの画像の表示方法を説明するための図解図である。
【図３】図１実施例に示すＲＡＭのバッファ領域を示す図解図である。
【図４】図１実施例に示すＨＭＤを装着したユーザの視野範囲に対応する表示画像を例示した図解図である。
【図５】図１実施例に示すロボットのＣＰＵの処理を示すフロー図である。
【図６】図１実施例に示すコンピュータのＣＰＵの処理の一部を示すフロー図である。
【図７】図１実施例に示すコンピュータのＣＰＵの処理の他の一部を示すフロー図である。
【符号の説明】
１０  …画像提示システム
１２  …ロボット
１４  …コンピュータ
１６  …ＨＭＤ
１８  …加速度センサ
２０  …圧電ジャイロ
【図１】
2004363987.tif 000003
【図２】
2004363987.tif 000004
【図３】
2004363987.tif 000005
【図４】
2004363987.tif 000006
【図５】
2004363987.tif 000007
【図６】
2004363987.tif 000008
【図７】
2004363987.tif 000009
【手続補正書】
【提出日】平成15年6月18日(2003.6.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
なお、詳細な説明は省略するが、画像をＨＭＤ１６に表示する際、ＣＰＵ５０は、単にバッファ領域５６ａから視野範囲の画像データを切り出すだけでなく、画像の傾きやキーストーン補正も含めた、３次元的な画像処理（テクスチャマッピング）を、たとえば、ＲＡＭ５６のバッファ領域５６ａ以外の領域を用いて実行する。したがって、ＨＭＤ１６には、正しい透視投影画像が表示されるのである。


【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2004363987.tif 000010