JP2004363987A - 画像提示システム - Google Patents
画像提示システム Download PDFInfo
- Publication number
- JP2004363987A JP2004363987A JP2003160392A JP2003160392A JP2004363987A JP 2004363987 A JP2004363987 A JP 2004363987A JP 2003160392 A JP2003160392 A JP 2003160392A JP 2003160392 A JP2003160392 A JP 2003160392A JP 2004363987 A JP2004363987 A JP 2004363987A
- Authority
- JP
- Japan
- Prior art keywords
- image
- camera
- image data
- direction information
- head
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【構成】画像提示システム10は、ロボット12およびコンピュータ14を含む。ロボット12はカメラ32を備えており、このカメラ32はHMD16を装着するユーザの頭部方向に連動して、その向きを設定される。カメラ32からの画像データは、当該画像の撮影時点におけるカメラ方向情報とともに、コンピュータ14に送信され、コンピュータ14は、当該カメラ方向情報に対応する位置に配置するように、当該画像データをバッファ領域56aに記憶する。コンピュータ14は、現在の頭部方向に対応する視野範囲を算出して、当該視野範囲に相当する範囲の画像データを読み出し、HMD16に表示する。このとき、現在の頭部方向が変更した場合には、直前の視野範囲と現在の視野範囲との差分を算出して、差分に相当する範囲にマスクをかけて画像データを表示する。
【効果】画像振れを防止して、安定した画像を提示することができる。
【選択図】 図1
【効果】画像振れを防止して、安定した画像を提示することができる。
【選択図】 図1
Description
【0001】
【産業上の利用分野】
この発明は画像提示システムに関し、特にたとえば旋回および俯仰の少なくとも一方が制御可能に設けられたカメラを備えるロボットおよびこのロボットと通信可能に設けられカメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える、画像提示システムに関する。
【0002】
【従来の技術】
従来のこの種の画像提示システムの一例が特許文献1に開示される。この特許文献1に開示される遠隔監視装置は、監視する目的物の在る場所に撮像部を設置し、光学視覚部を、該目的物の在る場所から離れた場所に居るユーザが装着して遠隔から上記目的物の監視を行うものである。具体的には、光学視覚部に接続されるマイコンが、X軸方向、Y軸方向およびZ軸方向にそれぞれ設けられた加速度センサおよび圧電ジャイロからの出力に基づいて、ユーザの動きを示す位置検出情報および方位検出情報を算出し、これらを送信回路を介して撮像部側に無線送信する。撮像部は、上記位置検出情報および方位検出情報に応じてカメラの撮像位置を可変し、映像情報を赤外線送信する。上記光学視覚部は、上記赤外線送信された映像情報をディスプレイに表示していた。
【0003】
しかし、この特許文献1に開示される遠隔監視装置では、カメラと光学視覚装置との間における通信時間やカメラの撮像位置の設定時間を考慮していないため、たとえば、ユーザの頭部が動き続けるような場合には、ディスプレイに表示される映像情報に時間遅延、特に通信時間遅れに起因するずれが生じてしまう。このため、いわゆる世界揺れが生じてしまっていた。
【0004】
これを回避するため、非特許文献1に開示されるテレロボティクス・システムでは、カメラを中心とする周囲の映像情報を操作者の頭部の運動とは無関係に取り込み、この映像情報を撮影時のカメラの方向に関する情報とともに取得して、ドーム状の仮想空間(バーチャル・ドーム)に相当する領域にマッピングすることにより、操作者の頭部の運動に対応した映像情報をほぼリアルタイムで提示するようにしていた。
【0005】
【特許文献1】
特開平7−294296号
【非特許文献1】
計測自動制御学会論文集 Vol.33,No.7,716/722(1997)
「人工現実感技術を用いた視覚的臨場感の伝達」
【0006】
【発明が解決しようとする課題】
しかし、非特許文献1に開示されるテレロボティクス・システムでは、映像情報をほぼリアルタイムで提示することができるが、カメラは操作者の頭部の動きと連動していないため、表示される映像情報は時間的にずれのある(古い)ものであった。また、このテレロボティクス・システムでは、カメラの撮影可能な範囲(全周)を水平15面,垂直5面というように分割しておき、予め決まった方向にカメラの向きを設定して、画像を取得するようにしてあるため、カメラと画像キャプチャとは30fpsの能力があるにも拘わらず、実際には1.5fpsに制限されていた。つまり、操作者の頭部の動きに完全に連動したカメラによって撮影された今現在の遠隔世界の様子を、時間遅延に起因する画像揺れを回避して、安定して観察することができなかった。
【0007】
それゆえに、この発明の主たる目的は、頭部方向に連動して撮影された遠隔環境の画像を安定して提示することができる、画像提示システムを提供することである。
【0008】
【課題を解決するための手段】
この発明は、旋回および俯仰の少なくとも一方を制御可能に設けられるカメラを備えるロボットおよびロボットと通信可能に設けられカメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える画像提示システムであって、ロボットは、画像提示装置からの頭部方向情報に従ってカメラの方向を設定するカメラ設定手段と、カメラによって撮影された画像に対応する画像データを取得する画像取得手段と、当該画像を撮影したときのカメラの方向についてのカメラ方向情報を取得するカメラ方向情報取得手段、および画像取得手段によって取得された画像データとカメラ方向情報取得手段によって取得されたカメラ方向情報とを互いに関連づけて画像提示装置に送信するデータ送信手段と、を備え、画像提示装置は、当該ユーザの現在の頭部の方向についての頭部方向情報を取得する頭部方向情報取得手段と、頭部方向情報取得手段によって取得された頭部方向情報をロボットに送信する頭部方向情報送信手段と、データ送信手段によって送信された画像データおよびカメラ方向情報を受信して、当該カメラ方向情報に対応する領域に当該画像データを配置するように記録媒体に記憶する記憶手段、および現在の頭部方向情報に基づく視野範囲についての画像データを記憶手段から読み出してディスプレイに表示する表示手段と、を備える画像提示システムにおいて、画像提示装置に、表示手段によって画像データを表示するときユーザの頭部方向が変更したかどうかを判断する頭部方向変更判断手段、および頭部方向が変更したとき、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する差分算出手段をさらに設け、表示手段は、差分算出手段によって算出された差分に相当する範囲にマスクをかけた画像データを表示することを特徴とする、画像提示システムである。
【0009】
【作用】
この発明の画像提示システムは、カメラを備えるロボットとこのロボットと通信可能に設けられた画像提示装置とを備えている。カメラは、旋回および俯仰の少なくとも一方を制御可能に設けられ、ユーザの頭部方向に連動してその向きが設定される。画像提示装置は、カメラで撮影された画像をディスプレイに表示してユーザに提示する。ロボットでは、カメラ設定手段は、画像提示装置からの頭部方向情報に従ってカメラの方向を設定する。画像取得手段は、カメラによって撮影された画像に対応する画像データを取得する。また、カメラ方向情報取得手段は、カメラで当該画像を撮影した時点におけるカメラの方向についてのカメラ方向情報を取得する。データ送信手段は、画像データとカメラ方向情報と互いに関連付けて画像提示装置に送信する。一方、画像提示装置では、頭部方向取得手段が、当該ユーザの現在の頭部の方向についての頭部方向情報を取得する。また、頭部方向情報送信手段が、取得された頭部方向情報をロボットに送信する。画像提示装置では、記憶手段が、ロボットから送信された画像データおよびカメラ方向情報が受信して、受信された画像データは、カメラ方向情報が示すカメラ方向に従って記憶媒体の該当する領域に記憶する。表示手段は、現在の頭部方向情報に基づく視野範囲についての画像データを記憶媒体から読み出して(抽出して)、ディスプレイに表示し、カメラで撮影された画像をユーザに提示する。このようなシステムにおいて、画像提示装置では、画像データを表示するとき、頭部方向変更判断手段が、ユーザの頭部方向が変更したかどうかを判断する。頭部方向が変更したとき、差分算出手段は、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する。つまり、未だ画像データを取得していない領域、或いは、画像データを取得しているが時間的に古い画像データが記憶されている領域を求める。したがって、表示手段は、算出した差分に相当する範囲にマスクをかけて画像データを表示する。
【0010】
たとえば、頭部方向情報は、当該ユーザの首の縦方向および横方向の少なくとも一方の角度についての角度情報を含むので、算出手段は、現在の角度情報に従って視野範囲を算出する。これにより、表示手段は、現在の頭部方向に基づく視野範囲の画像データを表示することができる。
【0011】
【発明の効果】
この発明によれば、カメラ方向情報と当該カメラ方向情報が示すカメラ方向における画像データを取得してカメラ方向情報が示す位置に画像データを配置するように記録媒体に記憶し、現在の頭部方向に基づく視野範囲の画像データを抽出して表示するので、世界揺れが発生することはない。また、頭部方向が変更した場合には、直前の視野範囲と現在の視野範囲との差分を算出して、当該差分に相当する範囲には、画像を表示しないので、未だ画像データを取得していない範囲や時間的に古い画像データが記憶される範囲については、画像が表示されることはない。つまり、不都合な画像が表示されてしまうことはない。つまり、頭部方向に連動して撮影される遠隔環境の画像を安定して提示することができる。
【0012】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0013】
【実施例】
図1を参照して、この実施例の画像提示システム(以下、単に「システム」という。)10は、ロボット12およびコンピュータ14を含む。このロボット12およびコンピュータ14は、互いに通信可能に接続され、ロボット12はコンピュータ14に対して遠隔に設けられる。図1においては、ロボット12およびコンピュータ14が直接接続されるように記載してあるが、これらは電話回線(携帯電話回線を含む。)或いはインターネットのようなネットワークを介して接続されてもよく、その接続は、有線・無線の別を問わない。
【0014】
また、図1に示すように、コンピュータ14には、頭部搭載型ディスプレイ(ヘッドマウントディスプレイ:HMD)16が接続されるとともに、このHMD16に一体的に設けられた加速度センサ18および圧電ジャイロ20のようなセンサも接続される。
【0015】
ロボット12は、CPU30を含み、CPU30にはステレオカメラ(以下、単に「カメラ」という。)32が接続される。カメラ32は、CPU30の指示に従って画像(動画像)を撮影し、図示は省略するが、撮影された画像は、映像処理回路で、ステレオ処理、増幅処理およびディジタル変換処理等の映像処理を施され、撮影した画像に対応する画像データをCPU30に与える。
【0016】
ここで、カメラ32は、動画像を撮影するが、画像データは、たとえば、所定のフレームレート(この実施例では、30fps)で連続的に撮影される静止画像のデータ(静止画像データ)であり、したがって、CPU30は、1フレーム間隔(1/30秒間隔)で連続的に静止画像データを取得する。
【0017】
また、CPU30には、パン用ドライバ34を介してモータ36が接続され、また、ロール用ドライバ37を介してモータ39が接続され、さらに、チルト用ドライバ38を介してモータ40が接続される。図示は省略するが、カメラ32は、横首振り(Panning :パン動作)、斜め首振り(Rolling :ロール動作)および縦首振り(Tilting :チルト動作)を実現できる駆動機構、たとえば旋回手段、傾斜手段および俯仰手段を有する。モータ36は、カメラ32を横首振り(旋回動作)させるためのモータ(パンモータ)であり、モータ39は、カメラ32を斜め首振り(ロール動作)されるためのモータ(ロールモータ)であり、モータ40は、カメラ32を縦首振り(俯仰動作)させるためのモータ(チルトモータ)である。
【0018】
なお、「斜め首振り」とは、この実施例では、人間が首を傾げるように、カメラ32の向きを傾斜させることをいう。
【0019】
したがって、CPU30が、旋回の角度データをドライバ34に与えると、ドライバ34は角度データに対応する駆動電圧を生成し、モータ36を回転駆動する。また、CPU30が、傾斜の角度データをドライバ37に与えると、ドライバ37は角度データに対応する駆動電圧を生成し、モータ39を回転駆動する。さらに、CPU30が、俯仰の角度データをドライバ38に与えると、ドライバ38は角度データに対応する駆動電圧を生成し、モータ40を回転駆動する。ただし、CPU30は、ドライバ34、ドライバ37およびドライバ38のそれぞれに対して個別に角度データを与えることができ、またそれらのいずれか2つ以上に一度に角度データを与えることもできる。これにより、カメラ32の向き(カメラ方向)が可変される。
【0020】
たとえば、この実施例では、カメラ32は、基準方向(旋回角度=0度,傾斜角度=0,俯仰角度=0度)を中心として、左右に75度ずつ回動(旋回)可能であり、左右斜めに30度ずつ回動(傾斜)可能であり、上下に30度ずつ回動可能である。後述するように、カメラ方向を人間ないしはユーザの頭部の方向(頭部方向)に連動させるようにするため、人間の頭部の運動可能な角度(首の可動角度)とほぼ同じ角度に設定してある。
【0021】
さらに、CPU30には、ROM42、RAM44および送受信装置46が接続される。ROM42は、CPU30によって実行されるロボット12(カメラ32を含む。)に関する制御プログラム等のプログラムを記憶する。RAM44は、CPU30のバッファメモリ或いはワークメモリとして使用され、この実施例では、主としてカメラ32から取得した画像データを保持するバッファメモリとして用いられる。送受信装置46は、CPU30の指示の下、RAM44に記憶された画像データ等をコンピュータ14に送信し、また、コンピュータ14からの指示(制御コマンド)を受信して、CPU30に与える。
【0022】
コンピュータ14は、画像提示装置として働き、マイクロコンピュータのようなコンピュータであり、CPU50を含む。ただし、コンピュータ14は、携帯型のPCやPDAなどを用いることもできる。CPU50には、LCDドライバ52が接続され、このLCDドライバ52に上述したHMD16が接続される。HMD16は、図示は省略するが、ユーザの頭部に装着される。
【0023】
上述したように、HMD16に一体的に設けられる加速度センサ18および圧電ジャイロ20もまた、CPU50に接続される。図示は省略するが、加速度センサ18は、X軸方向の加速度を検出する加速度センサ、Y軸方向の加速度を検出する加速度センサおよびZ軸方向の加速度を検出する加速度センサによって構成され、各加速度センサからの加速度信号は、増幅回路およびA/D変換器を介してCPU50に与えられる。また、図示は省略するが、圧電ジャイロ20は、X軸方向の回転方向を検出する圧電ジャイロ、Y軸方向の回転方向を検出する圧電ジャイロおよびZ軸方向の回転方向を検出する圧電ジャイロによって構成され、各圧電ジャイロからの角速度信号は、増幅回路およびA/D変換器を介してCPU50に入力される。
【0024】
したがって、CPU50は、加速度センサ18からの加速度信号および圧電ジャイロ20からの角速度信号に基づいて、ユーザの頭部の移動位置および移動方位を計算する。すなわち、CPU50は、加速度信号および角速度信号(以下、これらをまとめて「検出信号」と言うことがある。)に基づいて、ユーザの頭部方向を計算するのである。たとえば、この頭部方向は、HMD16を装着するユーザの首の縦方向の傾き角度(俯仰角度)、首を傾げた角度(傾斜角度)および横方向の傾き角度(旋回角度)で表される。この頭部方向は、ユーザが真正面を見ている場合、つまり、俯仰角度=0,傾斜角度=0,旋回角度=0である場合を基準方向としてある。
【0025】
さらに、CPU50には、ROM54、RAM56および送受信装置58が接続される。ROM54は、このコンピュータ14によって実行されるメインプログラムを記憶する。RAM56は、CPU50のバッファメモリ或いはワークメモリとして用いられ、バッファ領域56aを含む。送受信装置58は、コンピュータ14のCPU50からの制御コマンドをロボット12に送信し、また、ロボット12のCPU30の指示に従って送信される画像データを受信し、受信された画像データはCPU50の指示に従ってRAM56のバッファ領域56aに記憶される。
【0026】
たとえば、このようなシステム10では、コンピュータ14は、ユーザの頭部方向を検出して、頭部方向についての情報(頭部方向情報)をロボット12に送信する。すると、ロボット12は、その頭部方向情報に従って、頭部方向と同じ方向にカメラ32の向きを設定し、つまり頭部方向に連動してカメラ方向を設定し、カメラ32で撮影された画像に対応する画像データを取得して、コンピュータ14に送信する。したがって、コンピュータ14は、当該画像データを受信して、HMD16に画像を表示(提示)する。
【0027】
上述したように、ロボット12とコンピュータ14とは通信可能に接続され、コンピュータ14に対してロボット12は遠隔に設けられるため、現在の頭部方向に対応する画像をHMD16に表示するには、通信時間およびカメラ32の向きを設定する設定時間等に起因する時間遅延を生じてしまう。このため、何ら手当てを施さない場合には、コンピュータ14がユーザの頭部方向を取得してから画像を提示するまでの間に、ユーザの頭部方向が変更されてしまうと、頭部方向に対して表示される画像にずれ(振れ)が生じてしまうことになる。
【0028】
つまり、図2(A)に示すように、ユーザの頭部方向に対して、固定的に存在する物体(たとえば、立方体の物体)の画像(正面画像)が提示されている場合に、図2(B)に示すように、ユーザが頭部を右に旋回すると、上述したような時間遅延によって、頭部が旋回した状態に対応する画像を直ぐに提示することができない。このため、HMD16に表示される画像は更新されず、実際には固定的に存在するはずの物体が移動したように見えてしまう。その後、頭部が旋回した状態に対応する画像データが取得され、図2(C)に示すように、現在の頭部方向に対応する画像が提示され、物体が存在すべき位置に表示されるため、世界が揺れているような違和感を与えてしまう。
【0029】
なお、図2においては、簡単のため、HMD16は省略してあり、また、物体については平面で示してある。
【0030】
これを回避するため、この実施例では、たとえば、図2(A)の状態からユーザの頭部が旋回した場合には、そのまま図2(C)に示すような状態の画像を提示するようにして、世界揺れの発生を防止し、安定した画像を提示しているのである。
【0031】
具体的には、ロボット12とコンピュータ14とが通信可能な状態にされると、ロボット12のCPU30はカメラ32に撮影指示を与え、カメラ32は撮影を開始する。一方、コンピュータ14のCPU50は、ユーザの頭部方向を検出し、検出した頭部方向についての頭部方向情報(制御コマンド)をロボット12に送信する。この実施例では、頭部方向は、上述したように、加速度センサ18および圧電ジャイロ20からの検出信号に基づいてCPU50が計算する。ロボット12では、送受信装置46がその頭部方向情報を受信して、CPU30に与える。
【0032】
ロボット12では、CPU30が送受信装置46を介して取得した頭部方向情報に従ってカメラ32の方向を調整(設定)する。つまり、CPU30は、頭部方向情報に従ってドライバ34、ドライバ37およびドライバ38を制御し、モータ36、モータ39およびモータ40を回転駆動する。これにより、カメラ32の向きが設定される。
【0033】
また、ロボット12では、カメラ32によって撮影された画像に対応する画像データがCPU30に与えられ、CPU30は、取得した画像データをRAM44に一旦格納する。この処理と並行して、CPU30は、当該画像データを撮影したときのカメラ32の向きについての情報(カメラ方向情報)を取得し、当該画像データとカメラ方向情報とを互いに関連付けてコンピュータ14に送信する。ただし、画像データとカメラ方向情報とを1つにまとめたパケット(ストリーム)データを作成して、コンピュータ14に送信するようにしてもよい。
【0034】
つまり、CPU30は、上述したように、カメラ32で撮影された画像に対応する1フレーム間隔の静止画像データを取得するとともに、1フレーム間隔で、ドライバ34、ドライバ37およびドライバ38のそれぞれから角度データを取得する。これにより、1フレーム毎の画像データおよび当該画像を撮影したときのカメラ方向情報が得られる。
【0035】
コンピュータ14では、CPU50は、送受信装置58を介して画像データおよびカメラ方向情報を受信(取得)すると、当該カメラ方向情報が示すカメラ方向に従って、当該画像データをRAM56のバッファ領域56aに記憶する。このとき、画像データは、カメラ方向によって決定される位置に配置されるように、バッファ領域56aに記憶される。このようにして、バッファ領域56aに画像データが記憶され、1フレーム毎の画像データで更新される。
【0036】
図3は、RAM56に設けられるバッファ領域56aを示す図解図である。この図3を参照して、バッファ領域56aは、或る位置に存在するカメラ32で撮影可能な範囲に相当する大きさ(容量)であり、カメラ方向に対応して画像データを記憶するようにしてある。
【0037】
なお、上述したように、カメラ32の向きは、左右には75度ずつ、上下には30度ずつ変更可能であり、バッファ領域56aはこの変更可能な範囲で撮影される画像の大きさに相当する容量を有する。ただし、バッファ領域56aは、撮影可能な画像の範囲よりも広い範囲に相当する容量であってもよい。また、カメラ32の向きの変更可能な範囲は、図3においては、二点鎖線の枠で示してある。
【0038】
たとえば、撮影時のカメラ方向が基準方向(俯仰角度、傾斜角度および旋回角度がすべて0度)である場合には、カメラ32によって撮影された画像に対応する画像データは、その画像の中心がバッファ領域56aの中心に来るように配置され、記憶される。バッファ領域56aの中心(図3において、縦横の一点鎖線の交点で示す。)は、俯仰角度、傾斜角度および旋回角度が共に0度となる場合のカメラ方向すなわち基準方向に対応する。また、図3においては、カメラ32が水平方向左向きに15度旋回し、垂直方向下向きに5度回動したカメラ方向における画像データを取得し、記憶した状態を示してある。なお、傾斜角度は、0度である。
【0039】
画像データがRAM56のバッファ領域56aに記憶されると、CPU50は、現在の頭部方向を検出し、検出した頭部方向を中心とする視野範囲を算出して、バッファ領域56aに記憶された画像データを読み出し(抽出し)、LCDドライバ52を駆動して、HMD16に画像を提示(表示)する。ここで、頭部方向は、上述したように、ユーザの首の俯仰角度、傾斜角度および首の旋回角度で表されるため、それぞれの角度によって決定されるバッファ領域56a上の位置を中心として、視野範囲が算出される。たとえば、視野範囲の大きさは、使用するHMD16によって予め決定される。ただし、ユーザ等によって、任意に設定可能にするようにしてもよい。
【0040】
なお、頭部方向についても、カメラ方向と同様に、ユーザの顔が真正面を向いている場合の首の角度(俯仰角度=0,傾斜角度=0,旋回角度=0)を基準方向としてあり、この基準方向がバッファ領域56aの中心に相当する。
【0041】
たとえば、現在の頭部方向が図3に示す画像データの中心位置と一致する場合には、その中心位置を中心とする視野範囲(図3の点線枠で示す範囲)が算出され、算出された視野範囲の画像データがバッファ領域56aから読み出され、当該画像データに相当する画像がHMD16に表示される。
【0042】
なお、詳細な説明は省略するが、画像をHMD16に表示する際、CPU50は、単にバッファ領域56aから視野範囲の画像データを切り出すだけでなく、画像の傾きやキーストーン補正も含めた、3次元的な画像処理(テクスチャマッピング)を、たとえば、RAM56のバッファ領域56a以外の領域を用いて実行する。したがって、HMD16には、3次元の画像が表示されるのである。
【0043】
このように、現在の頭部方向に対応する画像データを抽出して、HMD16に出力するのは、ロボット12に送信する頭部方向情報についての頭部方向と、画像データを表示する際の頭部方向とが一致しない場合であっても、提示する画像に振れが発生するのを防止するためである。
【0044】
つまり、図4(A)に示すように、ユーザの頭部が右に旋回した場合には、点線枠で囲む直前の視野範囲で表示されていた画像が現在の頭部方向についての視野範囲に更新されて画像が表示される。このとき、直前の視野範囲外であり、直前の視野範囲と現在の視野範囲との差分が算出され、当該差分に相当する部分(図面において斜線を付して示す部分)については、未だ画像データを取得していない、或いは時間的に古い画像データであるため、当該部分については、たとえば、CPU50によって、マスク処理が施され、HMD16には、当該部分については画像を表示しないようにしてある。つまり、不都合な画像が表示されてしまうのを回避してある。ただし、斜線部分は、ブルーバック画面を表示するようにしてもよい。以下、同様である。
【0045】
また、図4(B)に示すように、ユーザの頭部が前方斜め上方を向いた場合には、その頭部方向に基づく現在の視野範囲が算出され、したがって、図中の実線枠で囲むような画像がHMD16に表示される。
【0046】
さらに、図4(C)に示すように、ユーザの頭部が右斜め上方を向いた場合には、その頭部方向に基づく視野範囲が算出され、したがって、図中の実線枠で囲むような画像がHMD16に表示される。
【0047】
さらにまた、図4(D)に示すように、ユーザの頭部が右方向に傾斜した場合には、その頭部方向に基づく視野範囲が算出され、したがって、図中の実線枠で囲むような画像がHMD16に表示される。
【0048】
なお、図4(A)〜図4(D)では、簡単のため、1フレーム分の画像データの大きさと視野範囲の大きさとが同じである場合を想定して示してあるが、図3に示したように、1フレーム分の画像データが視野範囲より大きい場合には、図4(A)〜図4(D)に示す斜線部分の領域が少し狭くなる。つまり、未だ画像データを取得していない領域或いは時間的に古い画像データにのみ、マスク処理が施される。
【0049】
また、図4(A)〜図4(D)は、それぞれ、ユーザが頭部方向を変更した直後に表示される画像を示しており、その後、ユーザが頭部方向を変更しない場合には、現在の頭部方向についての画像データが取得され、マスク処理を施されていない画像がHMD16に表示される。
【0050】
上述したような動作を、図1に示したロボット12のCPU30が図5に示すフロー図に従って処理し、同じく図1に示したコンピュータ14のCPU50が図6および図7に示すフロー図に従って処理する。
【0051】
図5に示すように、ロボット12のCPU30が処理を開始すると、ステップS1でコンピュータ14すなわちCPU50からの接続指示があるかどうかを判断する。ステップS1で“NO”であれば、つまり接続指示がなければ、そのままステップS1に戻って、接続指示があるのを待機する。
【0052】
一方、ステップS1で“YES”であれば、つまり接続指示があれば、ステップS3で撮影を開始する。つまり、カメラ32に撮影指示を与える。続くステップS5では、1フレーム分の画像データを取得したかどうかを判断する。ステップS5で“NO”であれば、つまり1フレーム分の画像データを取得していなければ、そのままステップS5に戻る。一方、ステップS5で“YES”であれば、つまり1フレーム分の画像データを取得すれば、ステップS7で、当該画像データを取得したとき(厳密には、当該画像を撮影したとき)のカメラ方向情報を取得する。つまり、CPU30は、当該画像データに対応する画像の撮影時点において、ドライバ34、ドライバ37およびドライバ38から角度データを取得し、カメラ方向を算出して、カメラ方向情報を作成する。続くステップS9では、画像データおよび当該画像データに関連するカメラ方向情報をコンピュータ14に送信する。そして、ステップS11では、コンピュータ14から終了指示があるかどうかを判断する。
【0053】
ステップS11で“NO”であれば、つまり終了指示がなければ、ステップS5に戻って、画像データの取得、カメラ方向情報の作成、画像データおよびカメラ方向情報の送信等の処理を繰り返す。一方、ステップS11で“YES”であれば、つまり終了指示があれば、ステップS13で、撮影を終了して、つまりカメラ32に撮影終了指示を与えて、処理を終了する。
【0054】
なお、図示は省略するが、ロボット12のCPU30は、撮影開始指示をカメラ32に与えてから撮影終了指示を与えるまでの間、図5に示した処理とは別の処理によって、コンピュータ14から送信される頭部方向情報を受信して、当該頭部方向情報に従ってカメラ32の向きを設定(更新)を行っている。
【0055】
一方、コンピュータ14のCPU50は、処理を開始すると、図6に示すように、ステップS21で、画像バッファを初期化する。つまり、RAM56のバッファ領域56aをクリアする。続くステップS23では、ロボット12に接続要求を送信し、続いて、ステップS25で、現在の頭部方向を検出する。
【0056】
なお、図示は省略するが、CPU50は、ロボット12に対して接続要求を送信すると、CPU30との間で接続が確立したことを確認し、接続が確立していなければ再度接続要求を送信するようにしてある。
【0057】
また、ステップS25では、CPU50は、加速度センサ18および圧電ジャイロ20からの検出信号に基づいて、ユーザの頭部方向を算出(検出)する。
【0058】
続くステップS27では、頭部方向の変更があるかどうかを判断する。つまり、先に検出された頭部方向と現在の頭部方向とが異なるかどうかを判断する。ステップS27で“NO”であれば、つまり頭部方向に変更がなければ、図7に示すステップS37に進む。一方、ステップS27で“YES”であれば、つまり頭部方向の変更があれば、ステップS29で、ステップS25において検出した現在の頭部方向情報をロボット12に送信する。
【0059】
続いて、ステップS31では、現在の頭部方向についての視野範囲を算出する。つまり、現在の頭部方向から頭部の水平(左右)方向の角度、傾斜方向の角度および垂直(上下)方向の角度をそれぞれ算出し、これらの角度で決定される点を中心とする視野範囲を算出する。次に、ステップS33で、直前の視野範囲外であり、直前の視野範囲と現在の視野範囲との差分を算出する。そして、ステップS35では、算出した差分の範囲にマスク処理を施し、現在の視野範囲の画像データをバッファ領域56aから読み出して(抽出して)、HMD16に出力する。つまり、算出した視野範囲に相当する画像がHMD16を通して、ユーザに提示される。なお、図示は省略するが、このとき、傾きやキーストーン補正を含む3次元の画像処理が実行される。
【0060】
次に図7に示すように、ステップS37では、画像データおよびカメラ方向情報を取得(受信)したかどうかを判断する。ステップS37で“NO”であれば、つまり画像データおよびカメラ方向情報を受信していなければ、そのままステップS41に進む。
【0061】
一方、ステップS37で“YES”であれば、つまり画像データおよびカメラ方向情報を受信すると、ステップS39で、カメラ方向情報に合わせて画像データをRAM56のバッファ領域56aに記憶する。つまり、カメラ方向が示す位置であり、カメラ方向が中心となるように、画像データをバッファ領域56aに記憶する。
【0062】
続くステップS41では、終了指示があるかどうかを判断する。つまり、ユーザが図示しない操作ボタンないしはスイッチ等の操作手段を操作して、終了指示を入力したかどうかを判断する。ステップS41で“NO”であれば、つまり終了指示なければ、図6に示したステップS25に戻る。一方、ステップS41で“YES”であれば、つまり終了指示があれば、ステップS43で、終了指示をロボット12に送信して、処理を終了する。
【0063】
この実施例によれば、カメラをユーザの頭部方向に連動させて画像データを取得するとともに、現在の頭部方向に従って算出された視野範囲の画像をユーザに提示するので、通信時間等に起因する時間遅延の影響による画像振れの発生を防止することができる。また、画像を表示するときに、頭部方向が移動された場合には、直前の視野範囲と現在の視野範囲との差分を算出して、差分に相当する範囲の画像を表示しないようにするので、未だ画像データを取得していない範囲や古い画像データが記憶されている範囲についての画像が表示されることはない。つまり、不都合な画像が表示されてしまうことがないので、ユーザが違和感を感じることはない。つまり、安定した画像を提示することができる。
【0064】
なお、上述の実施例では、ユーザが装着するHMDを通してカメラで撮影された画像をユーザに提示するようにしたが、プロジェクタおよびスクリーンを用いて画像を表示してユーザに提示するようにすることもできる。この場合には、加速度センサおよび圧電ジャイロのみをユーザの頭部に装着するようにすればよい。
【0065】
また、上述の実施例では、加速度センサおよび圧電ジャイロのようなセンサの検出信号に基づいてユーザの頭部方向を検出するようにしたが、機械的な装置をユーザの頭部に装着することにより頭部方向を検出するようにしてもよい。
【図面の簡単な説明】
【図1】この発明の画像提示システムの一例についての電気的な構成を示すブロック図である。
【図2】図1実施例に示すHMDへの画像の表示方法を説明するための図解図である。
【図3】図1実施例に示すRAMのバッファ領域を示す図解図である。
【図4】図1実施例に示すHMDを装着したユーザの視野範囲に対応する表示画像を例示した図解図である。
【図5】図1実施例に示すロボットのCPUの処理を示すフロー図である。
【図6】図1実施例に示すコンピュータのCPUの処理の一部を示すフロー図である。
【図7】図1実施例に示すコンピュータのCPUの処理の他の一部を示すフロー図である。
【符号の説明】
10 …画像提示システム
12 …ロボット
14 …コンピュータ
16 …HMD
18 …加速度センサ
20 …圧電ジャイロ
【産業上の利用分野】
この発明は画像提示システムに関し、特にたとえば旋回および俯仰の少なくとも一方が制御可能に設けられたカメラを備えるロボットおよびこのロボットと通信可能に設けられカメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える、画像提示システムに関する。
【0002】
【従来の技術】
従来のこの種の画像提示システムの一例が特許文献1に開示される。この特許文献1に開示される遠隔監視装置は、監視する目的物の在る場所に撮像部を設置し、光学視覚部を、該目的物の在る場所から離れた場所に居るユーザが装着して遠隔から上記目的物の監視を行うものである。具体的には、光学視覚部に接続されるマイコンが、X軸方向、Y軸方向およびZ軸方向にそれぞれ設けられた加速度センサおよび圧電ジャイロからの出力に基づいて、ユーザの動きを示す位置検出情報および方位検出情報を算出し、これらを送信回路を介して撮像部側に無線送信する。撮像部は、上記位置検出情報および方位検出情報に応じてカメラの撮像位置を可変し、映像情報を赤外線送信する。上記光学視覚部は、上記赤外線送信された映像情報をディスプレイに表示していた。
【0003】
しかし、この特許文献1に開示される遠隔監視装置では、カメラと光学視覚装置との間における通信時間やカメラの撮像位置の設定時間を考慮していないため、たとえば、ユーザの頭部が動き続けるような場合には、ディスプレイに表示される映像情報に時間遅延、特に通信時間遅れに起因するずれが生じてしまう。このため、いわゆる世界揺れが生じてしまっていた。
【0004】
これを回避するため、非特許文献1に開示されるテレロボティクス・システムでは、カメラを中心とする周囲の映像情報を操作者の頭部の運動とは無関係に取り込み、この映像情報を撮影時のカメラの方向に関する情報とともに取得して、ドーム状の仮想空間(バーチャル・ドーム)に相当する領域にマッピングすることにより、操作者の頭部の運動に対応した映像情報をほぼリアルタイムで提示するようにしていた。
【0005】
【特許文献1】
特開平7−294296号
【非特許文献1】
計測自動制御学会論文集 Vol.33,No.7,716/722(1997)
「人工現実感技術を用いた視覚的臨場感の伝達」
【0006】
【発明が解決しようとする課題】
しかし、非特許文献1に開示されるテレロボティクス・システムでは、映像情報をほぼリアルタイムで提示することができるが、カメラは操作者の頭部の動きと連動していないため、表示される映像情報は時間的にずれのある(古い)ものであった。また、このテレロボティクス・システムでは、カメラの撮影可能な範囲(全周)を水平15面,垂直5面というように分割しておき、予め決まった方向にカメラの向きを設定して、画像を取得するようにしてあるため、カメラと画像キャプチャとは30fpsの能力があるにも拘わらず、実際には1.5fpsに制限されていた。つまり、操作者の頭部の動きに完全に連動したカメラによって撮影された今現在の遠隔世界の様子を、時間遅延に起因する画像揺れを回避して、安定して観察することができなかった。
【0007】
それゆえに、この発明の主たる目的は、頭部方向に連動して撮影された遠隔環境の画像を安定して提示することができる、画像提示システムを提供することである。
【0008】
【課題を解決するための手段】
この発明は、旋回および俯仰の少なくとも一方を制御可能に設けられるカメラを備えるロボットおよびロボットと通信可能に設けられカメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える画像提示システムであって、ロボットは、画像提示装置からの頭部方向情報に従ってカメラの方向を設定するカメラ設定手段と、カメラによって撮影された画像に対応する画像データを取得する画像取得手段と、当該画像を撮影したときのカメラの方向についてのカメラ方向情報を取得するカメラ方向情報取得手段、および画像取得手段によって取得された画像データとカメラ方向情報取得手段によって取得されたカメラ方向情報とを互いに関連づけて画像提示装置に送信するデータ送信手段と、を備え、画像提示装置は、当該ユーザの現在の頭部の方向についての頭部方向情報を取得する頭部方向情報取得手段と、頭部方向情報取得手段によって取得された頭部方向情報をロボットに送信する頭部方向情報送信手段と、データ送信手段によって送信された画像データおよびカメラ方向情報を受信して、当該カメラ方向情報に対応する領域に当該画像データを配置するように記録媒体に記憶する記憶手段、および現在の頭部方向情報に基づく視野範囲についての画像データを記憶手段から読み出してディスプレイに表示する表示手段と、を備える画像提示システムにおいて、画像提示装置に、表示手段によって画像データを表示するときユーザの頭部方向が変更したかどうかを判断する頭部方向変更判断手段、および頭部方向が変更したとき、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する差分算出手段をさらに設け、表示手段は、差分算出手段によって算出された差分に相当する範囲にマスクをかけた画像データを表示することを特徴とする、画像提示システムである。
【0009】
【作用】
この発明の画像提示システムは、カメラを備えるロボットとこのロボットと通信可能に設けられた画像提示装置とを備えている。カメラは、旋回および俯仰の少なくとも一方を制御可能に設けられ、ユーザの頭部方向に連動してその向きが設定される。画像提示装置は、カメラで撮影された画像をディスプレイに表示してユーザに提示する。ロボットでは、カメラ設定手段は、画像提示装置からの頭部方向情報に従ってカメラの方向を設定する。画像取得手段は、カメラによって撮影された画像に対応する画像データを取得する。また、カメラ方向情報取得手段は、カメラで当該画像を撮影した時点におけるカメラの方向についてのカメラ方向情報を取得する。データ送信手段は、画像データとカメラ方向情報と互いに関連付けて画像提示装置に送信する。一方、画像提示装置では、頭部方向取得手段が、当該ユーザの現在の頭部の方向についての頭部方向情報を取得する。また、頭部方向情報送信手段が、取得された頭部方向情報をロボットに送信する。画像提示装置では、記憶手段が、ロボットから送信された画像データおよびカメラ方向情報が受信して、受信された画像データは、カメラ方向情報が示すカメラ方向に従って記憶媒体の該当する領域に記憶する。表示手段は、現在の頭部方向情報に基づく視野範囲についての画像データを記憶媒体から読み出して(抽出して)、ディスプレイに表示し、カメラで撮影された画像をユーザに提示する。このようなシステムにおいて、画像提示装置では、画像データを表示するとき、頭部方向変更判断手段が、ユーザの頭部方向が変更したかどうかを判断する。頭部方向が変更したとき、差分算出手段は、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する。つまり、未だ画像データを取得していない領域、或いは、画像データを取得しているが時間的に古い画像データが記憶されている領域を求める。したがって、表示手段は、算出した差分に相当する範囲にマスクをかけて画像データを表示する。
【0010】
たとえば、頭部方向情報は、当該ユーザの首の縦方向および横方向の少なくとも一方の角度についての角度情報を含むので、算出手段は、現在の角度情報に従って視野範囲を算出する。これにより、表示手段は、現在の頭部方向に基づく視野範囲の画像データを表示することができる。
【0011】
【発明の効果】
この発明によれば、カメラ方向情報と当該カメラ方向情報が示すカメラ方向における画像データを取得してカメラ方向情報が示す位置に画像データを配置するように記録媒体に記憶し、現在の頭部方向に基づく視野範囲の画像データを抽出して表示するので、世界揺れが発生することはない。また、頭部方向が変更した場合には、直前の視野範囲と現在の視野範囲との差分を算出して、当該差分に相当する範囲には、画像を表示しないので、未だ画像データを取得していない範囲や時間的に古い画像データが記憶される範囲については、画像が表示されることはない。つまり、不都合な画像が表示されてしまうことはない。つまり、頭部方向に連動して撮影される遠隔環境の画像を安定して提示することができる。
【0012】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0013】
【実施例】
図1を参照して、この実施例の画像提示システム(以下、単に「システム」という。)10は、ロボット12およびコンピュータ14を含む。このロボット12およびコンピュータ14は、互いに通信可能に接続され、ロボット12はコンピュータ14に対して遠隔に設けられる。図1においては、ロボット12およびコンピュータ14が直接接続されるように記載してあるが、これらは電話回線(携帯電話回線を含む。)或いはインターネットのようなネットワークを介して接続されてもよく、その接続は、有線・無線の別を問わない。
【0014】
また、図1に示すように、コンピュータ14には、頭部搭載型ディスプレイ(ヘッドマウントディスプレイ:HMD)16が接続されるとともに、このHMD16に一体的に設けられた加速度センサ18および圧電ジャイロ20のようなセンサも接続される。
【0015】
ロボット12は、CPU30を含み、CPU30にはステレオカメラ(以下、単に「カメラ」という。)32が接続される。カメラ32は、CPU30の指示に従って画像(動画像)を撮影し、図示は省略するが、撮影された画像は、映像処理回路で、ステレオ処理、増幅処理およびディジタル変換処理等の映像処理を施され、撮影した画像に対応する画像データをCPU30に与える。
【0016】
ここで、カメラ32は、動画像を撮影するが、画像データは、たとえば、所定のフレームレート(この実施例では、30fps)で連続的に撮影される静止画像のデータ(静止画像データ)であり、したがって、CPU30は、1フレーム間隔(1/30秒間隔)で連続的に静止画像データを取得する。
【0017】
また、CPU30には、パン用ドライバ34を介してモータ36が接続され、また、ロール用ドライバ37を介してモータ39が接続され、さらに、チルト用ドライバ38を介してモータ40が接続される。図示は省略するが、カメラ32は、横首振り(Panning :パン動作)、斜め首振り(Rolling :ロール動作)および縦首振り(Tilting :チルト動作)を実現できる駆動機構、たとえば旋回手段、傾斜手段および俯仰手段を有する。モータ36は、カメラ32を横首振り(旋回動作)させるためのモータ(パンモータ)であり、モータ39は、カメラ32を斜め首振り(ロール動作)されるためのモータ(ロールモータ)であり、モータ40は、カメラ32を縦首振り(俯仰動作)させるためのモータ(チルトモータ)である。
【0018】
なお、「斜め首振り」とは、この実施例では、人間が首を傾げるように、カメラ32の向きを傾斜させることをいう。
【0019】
したがって、CPU30が、旋回の角度データをドライバ34に与えると、ドライバ34は角度データに対応する駆動電圧を生成し、モータ36を回転駆動する。また、CPU30が、傾斜の角度データをドライバ37に与えると、ドライバ37は角度データに対応する駆動電圧を生成し、モータ39を回転駆動する。さらに、CPU30が、俯仰の角度データをドライバ38に与えると、ドライバ38は角度データに対応する駆動電圧を生成し、モータ40を回転駆動する。ただし、CPU30は、ドライバ34、ドライバ37およびドライバ38のそれぞれに対して個別に角度データを与えることができ、またそれらのいずれか2つ以上に一度に角度データを与えることもできる。これにより、カメラ32の向き(カメラ方向)が可変される。
【0020】
たとえば、この実施例では、カメラ32は、基準方向(旋回角度=0度,傾斜角度=0,俯仰角度=0度)を中心として、左右に75度ずつ回動(旋回)可能であり、左右斜めに30度ずつ回動(傾斜)可能であり、上下に30度ずつ回動可能である。後述するように、カメラ方向を人間ないしはユーザの頭部の方向(頭部方向)に連動させるようにするため、人間の頭部の運動可能な角度(首の可動角度)とほぼ同じ角度に設定してある。
【0021】
さらに、CPU30には、ROM42、RAM44および送受信装置46が接続される。ROM42は、CPU30によって実行されるロボット12(カメラ32を含む。)に関する制御プログラム等のプログラムを記憶する。RAM44は、CPU30のバッファメモリ或いはワークメモリとして使用され、この実施例では、主としてカメラ32から取得した画像データを保持するバッファメモリとして用いられる。送受信装置46は、CPU30の指示の下、RAM44に記憶された画像データ等をコンピュータ14に送信し、また、コンピュータ14からの指示(制御コマンド)を受信して、CPU30に与える。
【0022】
コンピュータ14は、画像提示装置として働き、マイクロコンピュータのようなコンピュータであり、CPU50を含む。ただし、コンピュータ14は、携帯型のPCやPDAなどを用いることもできる。CPU50には、LCDドライバ52が接続され、このLCDドライバ52に上述したHMD16が接続される。HMD16は、図示は省略するが、ユーザの頭部に装着される。
【0023】
上述したように、HMD16に一体的に設けられる加速度センサ18および圧電ジャイロ20もまた、CPU50に接続される。図示は省略するが、加速度センサ18は、X軸方向の加速度を検出する加速度センサ、Y軸方向の加速度を検出する加速度センサおよびZ軸方向の加速度を検出する加速度センサによって構成され、各加速度センサからの加速度信号は、増幅回路およびA/D変換器を介してCPU50に与えられる。また、図示は省略するが、圧電ジャイロ20は、X軸方向の回転方向を検出する圧電ジャイロ、Y軸方向の回転方向を検出する圧電ジャイロおよびZ軸方向の回転方向を検出する圧電ジャイロによって構成され、各圧電ジャイロからの角速度信号は、増幅回路およびA/D変換器を介してCPU50に入力される。
【0024】
したがって、CPU50は、加速度センサ18からの加速度信号および圧電ジャイロ20からの角速度信号に基づいて、ユーザの頭部の移動位置および移動方位を計算する。すなわち、CPU50は、加速度信号および角速度信号(以下、これらをまとめて「検出信号」と言うことがある。)に基づいて、ユーザの頭部方向を計算するのである。たとえば、この頭部方向は、HMD16を装着するユーザの首の縦方向の傾き角度(俯仰角度)、首を傾げた角度(傾斜角度)および横方向の傾き角度(旋回角度)で表される。この頭部方向は、ユーザが真正面を見ている場合、つまり、俯仰角度=0,傾斜角度=0,旋回角度=0である場合を基準方向としてある。
【0025】
さらに、CPU50には、ROM54、RAM56および送受信装置58が接続される。ROM54は、このコンピュータ14によって実行されるメインプログラムを記憶する。RAM56は、CPU50のバッファメモリ或いはワークメモリとして用いられ、バッファ領域56aを含む。送受信装置58は、コンピュータ14のCPU50からの制御コマンドをロボット12に送信し、また、ロボット12のCPU30の指示に従って送信される画像データを受信し、受信された画像データはCPU50の指示に従ってRAM56のバッファ領域56aに記憶される。
【0026】
たとえば、このようなシステム10では、コンピュータ14は、ユーザの頭部方向を検出して、頭部方向についての情報(頭部方向情報)をロボット12に送信する。すると、ロボット12は、その頭部方向情報に従って、頭部方向と同じ方向にカメラ32の向きを設定し、つまり頭部方向に連動してカメラ方向を設定し、カメラ32で撮影された画像に対応する画像データを取得して、コンピュータ14に送信する。したがって、コンピュータ14は、当該画像データを受信して、HMD16に画像を表示(提示)する。
【0027】
上述したように、ロボット12とコンピュータ14とは通信可能に接続され、コンピュータ14に対してロボット12は遠隔に設けられるため、現在の頭部方向に対応する画像をHMD16に表示するには、通信時間およびカメラ32の向きを設定する設定時間等に起因する時間遅延を生じてしまう。このため、何ら手当てを施さない場合には、コンピュータ14がユーザの頭部方向を取得してから画像を提示するまでの間に、ユーザの頭部方向が変更されてしまうと、頭部方向に対して表示される画像にずれ(振れ)が生じてしまうことになる。
【0028】
つまり、図2(A)に示すように、ユーザの頭部方向に対して、固定的に存在する物体(たとえば、立方体の物体)の画像(正面画像)が提示されている場合に、図2(B)に示すように、ユーザが頭部を右に旋回すると、上述したような時間遅延によって、頭部が旋回した状態に対応する画像を直ぐに提示することができない。このため、HMD16に表示される画像は更新されず、実際には固定的に存在するはずの物体が移動したように見えてしまう。その後、頭部が旋回した状態に対応する画像データが取得され、図2(C)に示すように、現在の頭部方向に対応する画像が提示され、物体が存在すべき位置に表示されるため、世界が揺れているような違和感を与えてしまう。
【0029】
なお、図2においては、簡単のため、HMD16は省略してあり、また、物体については平面で示してある。
【0030】
これを回避するため、この実施例では、たとえば、図2(A)の状態からユーザの頭部が旋回した場合には、そのまま図2(C)に示すような状態の画像を提示するようにして、世界揺れの発生を防止し、安定した画像を提示しているのである。
【0031】
具体的には、ロボット12とコンピュータ14とが通信可能な状態にされると、ロボット12のCPU30はカメラ32に撮影指示を与え、カメラ32は撮影を開始する。一方、コンピュータ14のCPU50は、ユーザの頭部方向を検出し、検出した頭部方向についての頭部方向情報(制御コマンド)をロボット12に送信する。この実施例では、頭部方向は、上述したように、加速度センサ18および圧電ジャイロ20からの検出信号に基づいてCPU50が計算する。ロボット12では、送受信装置46がその頭部方向情報を受信して、CPU30に与える。
【0032】
ロボット12では、CPU30が送受信装置46を介して取得した頭部方向情報に従ってカメラ32の方向を調整(設定)する。つまり、CPU30は、頭部方向情報に従ってドライバ34、ドライバ37およびドライバ38を制御し、モータ36、モータ39およびモータ40を回転駆動する。これにより、カメラ32の向きが設定される。
【0033】
また、ロボット12では、カメラ32によって撮影された画像に対応する画像データがCPU30に与えられ、CPU30は、取得した画像データをRAM44に一旦格納する。この処理と並行して、CPU30は、当該画像データを撮影したときのカメラ32の向きについての情報(カメラ方向情報)を取得し、当該画像データとカメラ方向情報とを互いに関連付けてコンピュータ14に送信する。ただし、画像データとカメラ方向情報とを1つにまとめたパケット(ストリーム)データを作成して、コンピュータ14に送信するようにしてもよい。
【0034】
つまり、CPU30は、上述したように、カメラ32で撮影された画像に対応する1フレーム間隔の静止画像データを取得するとともに、1フレーム間隔で、ドライバ34、ドライバ37およびドライバ38のそれぞれから角度データを取得する。これにより、1フレーム毎の画像データおよび当該画像を撮影したときのカメラ方向情報が得られる。
【0035】
コンピュータ14では、CPU50は、送受信装置58を介して画像データおよびカメラ方向情報を受信(取得)すると、当該カメラ方向情報が示すカメラ方向に従って、当該画像データをRAM56のバッファ領域56aに記憶する。このとき、画像データは、カメラ方向によって決定される位置に配置されるように、バッファ領域56aに記憶される。このようにして、バッファ領域56aに画像データが記憶され、1フレーム毎の画像データで更新される。
【0036】
図3は、RAM56に設けられるバッファ領域56aを示す図解図である。この図3を参照して、バッファ領域56aは、或る位置に存在するカメラ32で撮影可能な範囲に相当する大きさ(容量)であり、カメラ方向に対応して画像データを記憶するようにしてある。
【0037】
なお、上述したように、カメラ32の向きは、左右には75度ずつ、上下には30度ずつ変更可能であり、バッファ領域56aはこの変更可能な範囲で撮影される画像の大きさに相当する容量を有する。ただし、バッファ領域56aは、撮影可能な画像の範囲よりも広い範囲に相当する容量であってもよい。また、カメラ32の向きの変更可能な範囲は、図3においては、二点鎖線の枠で示してある。
【0038】
たとえば、撮影時のカメラ方向が基準方向(俯仰角度、傾斜角度および旋回角度がすべて0度)である場合には、カメラ32によって撮影された画像に対応する画像データは、その画像の中心がバッファ領域56aの中心に来るように配置され、記憶される。バッファ領域56aの中心(図3において、縦横の一点鎖線の交点で示す。)は、俯仰角度、傾斜角度および旋回角度が共に0度となる場合のカメラ方向すなわち基準方向に対応する。また、図3においては、カメラ32が水平方向左向きに15度旋回し、垂直方向下向きに5度回動したカメラ方向における画像データを取得し、記憶した状態を示してある。なお、傾斜角度は、0度である。
【0039】
画像データがRAM56のバッファ領域56aに記憶されると、CPU50は、現在の頭部方向を検出し、検出した頭部方向を中心とする視野範囲を算出して、バッファ領域56aに記憶された画像データを読み出し(抽出し)、LCDドライバ52を駆動して、HMD16に画像を提示(表示)する。ここで、頭部方向は、上述したように、ユーザの首の俯仰角度、傾斜角度および首の旋回角度で表されるため、それぞれの角度によって決定されるバッファ領域56a上の位置を中心として、視野範囲が算出される。たとえば、視野範囲の大きさは、使用するHMD16によって予め決定される。ただし、ユーザ等によって、任意に設定可能にするようにしてもよい。
【0040】
なお、頭部方向についても、カメラ方向と同様に、ユーザの顔が真正面を向いている場合の首の角度(俯仰角度=0,傾斜角度=0,旋回角度=0)を基準方向としてあり、この基準方向がバッファ領域56aの中心に相当する。
【0041】
たとえば、現在の頭部方向が図3に示す画像データの中心位置と一致する場合には、その中心位置を中心とする視野範囲(図3の点線枠で示す範囲)が算出され、算出された視野範囲の画像データがバッファ領域56aから読み出され、当該画像データに相当する画像がHMD16に表示される。
【0042】
なお、詳細な説明は省略するが、画像をHMD16に表示する際、CPU50は、単にバッファ領域56aから視野範囲の画像データを切り出すだけでなく、画像の傾きやキーストーン補正も含めた、3次元的な画像処理(テクスチャマッピング)を、たとえば、RAM56のバッファ領域56a以外の領域を用いて実行する。したがって、HMD16には、3次元の画像が表示されるのである。
【0043】
このように、現在の頭部方向に対応する画像データを抽出して、HMD16に出力するのは、ロボット12に送信する頭部方向情報についての頭部方向と、画像データを表示する際の頭部方向とが一致しない場合であっても、提示する画像に振れが発生するのを防止するためである。
【0044】
つまり、図4(A)に示すように、ユーザの頭部が右に旋回した場合には、点線枠で囲む直前の視野範囲で表示されていた画像が現在の頭部方向についての視野範囲に更新されて画像が表示される。このとき、直前の視野範囲外であり、直前の視野範囲と現在の視野範囲との差分が算出され、当該差分に相当する部分(図面において斜線を付して示す部分)については、未だ画像データを取得していない、或いは時間的に古い画像データであるため、当該部分については、たとえば、CPU50によって、マスク処理が施され、HMD16には、当該部分については画像を表示しないようにしてある。つまり、不都合な画像が表示されてしまうのを回避してある。ただし、斜線部分は、ブルーバック画面を表示するようにしてもよい。以下、同様である。
【0045】
また、図4(B)に示すように、ユーザの頭部が前方斜め上方を向いた場合には、その頭部方向に基づく現在の視野範囲が算出され、したがって、図中の実線枠で囲むような画像がHMD16に表示される。
【0046】
さらに、図4(C)に示すように、ユーザの頭部が右斜め上方を向いた場合には、その頭部方向に基づく視野範囲が算出され、したがって、図中の実線枠で囲むような画像がHMD16に表示される。
【0047】
さらにまた、図4(D)に示すように、ユーザの頭部が右方向に傾斜した場合には、その頭部方向に基づく視野範囲が算出され、したがって、図中の実線枠で囲むような画像がHMD16に表示される。
【0048】
なお、図4(A)〜図4(D)では、簡単のため、1フレーム分の画像データの大きさと視野範囲の大きさとが同じである場合を想定して示してあるが、図3に示したように、1フレーム分の画像データが視野範囲より大きい場合には、図4(A)〜図4(D)に示す斜線部分の領域が少し狭くなる。つまり、未だ画像データを取得していない領域或いは時間的に古い画像データにのみ、マスク処理が施される。
【0049】
また、図4(A)〜図4(D)は、それぞれ、ユーザが頭部方向を変更した直後に表示される画像を示しており、その後、ユーザが頭部方向を変更しない場合には、現在の頭部方向についての画像データが取得され、マスク処理を施されていない画像がHMD16に表示される。
【0050】
上述したような動作を、図1に示したロボット12のCPU30が図5に示すフロー図に従って処理し、同じく図1に示したコンピュータ14のCPU50が図6および図7に示すフロー図に従って処理する。
【0051】
図5に示すように、ロボット12のCPU30が処理を開始すると、ステップS1でコンピュータ14すなわちCPU50からの接続指示があるかどうかを判断する。ステップS1で“NO”であれば、つまり接続指示がなければ、そのままステップS1に戻って、接続指示があるのを待機する。
【0052】
一方、ステップS1で“YES”であれば、つまり接続指示があれば、ステップS3で撮影を開始する。つまり、カメラ32に撮影指示を与える。続くステップS5では、1フレーム分の画像データを取得したかどうかを判断する。ステップS5で“NO”であれば、つまり1フレーム分の画像データを取得していなければ、そのままステップS5に戻る。一方、ステップS5で“YES”であれば、つまり1フレーム分の画像データを取得すれば、ステップS7で、当該画像データを取得したとき(厳密には、当該画像を撮影したとき)のカメラ方向情報を取得する。つまり、CPU30は、当該画像データに対応する画像の撮影時点において、ドライバ34、ドライバ37およびドライバ38から角度データを取得し、カメラ方向を算出して、カメラ方向情報を作成する。続くステップS9では、画像データおよび当該画像データに関連するカメラ方向情報をコンピュータ14に送信する。そして、ステップS11では、コンピュータ14から終了指示があるかどうかを判断する。
【0053】
ステップS11で“NO”であれば、つまり終了指示がなければ、ステップS5に戻って、画像データの取得、カメラ方向情報の作成、画像データおよびカメラ方向情報の送信等の処理を繰り返す。一方、ステップS11で“YES”であれば、つまり終了指示があれば、ステップS13で、撮影を終了して、つまりカメラ32に撮影終了指示を与えて、処理を終了する。
【0054】
なお、図示は省略するが、ロボット12のCPU30は、撮影開始指示をカメラ32に与えてから撮影終了指示を与えるまでの間、図5に示した処理とは別の処理によって、コンピュータ14から送信される頭部方向情報を受信して、当該頭部方向情報に従ってカメラ32の向きを設定(更新)を行っている。
【0055】
一方、コンピュータ14のCPU50は、処理を開始すると、図6に示すように、ステップS21で、画像バッファを初期化する。つまり、RAM56のバッファ領域56aをクリアする。続くステップS23では、ロボット12に接続要求を送信し、続いて、ステップS25で、現在の頭部方向を検出する。
【0056】
なお、図示は省略するが、CPU50は、ロボット12に対して接続要求を送信すると、CPU30との間で接続が確立したことを確認し、接続が確立していなければ再度接続要求を送信するようにしてある。
【0057】
また、ステップS25では、CPU50は、加速度センサ18および圧電ジャイロ20からの検出信号に基づいて、ユーザの頭部方向を算出(検出)する。
【0058】
続くステップS27では、頭部方向の変更があるかどうかを判断する。つまり、先に検出された頭部方向と現在の頭部方向とが異なるかどうかを判断する。ステップS27で“NO”であれば、つまり頭部方向に変更がなければ、図7に示すステップS37に進む。一方、ステップS27で“YES”であれば、つまり頭部方向の変更があれば、ステップS29で、ステップS25において検出した現在の頭部方向情報をロボット12に送信する。
【0059】
続いて、ステップS31では、現在の頭部方向についての視野範囲を算出する。つまり、現在の頭部方向から頭部の水平(左右)方向の角度、傾斜方向の角度および垂直(上下)方向の角度をそれぞれ算出し、これらの角度で決定される点を中心とする視野範囲を算出する。次に、ステップS33で、直前の視野範囲外であり、直前の視野範囲と現在の視野範囲との差分を算出する。そして、ステップS35では、算出した差分の範囲にマスク処理を施し、現在の視野範囲の画像データをバッファ領域56aから読み出して(抽出して)、HMD16に出力する。つまり、算出した視野範囲に相当する画像がHMD16を通して、ユーザに提示される。なお、図示は省略するが、このとき、傾きやキーストーン補正を含む3次元の画像処理が実行される。
【0060】
次に図7に示すように、ステップS37では、画像データおよびカメラ方向情報を取得(受信)したかどうかを判断する。ステップS37で“NO”であれば、つまり画像データおよびカメラ方向情報を受信していなければ、そのままステップS41に進む。
【0061】
一方、ステップS37で“YES”であれば、つまり画像データおよびカメラ方向情報を受信すると、ステップS39で、カメラ方向情報に合わせて画像データをRAM56のバッファ領域56aに記憶する。つまり、カメラ方向が示す位置であり、カメラ方向が中心となるように、画像データをバッファ領域56aに記憶する。
【0062】
続くステップS41では、終了指示があるかどうかを判断する。つまり、ユーザが図示しない操作ボタンないしはスイッチ等の操作手段を操作して、終了指示を入力したかどうかを判断する。ステップS41で“NO”であれば、つまり終了指示なければ、図6に示したステップS25に戻る。一方、ステップS41で“YES”であれば、つまり終了指示があれば、ステップS43で、終了指示をロボット12に送信して、処理を終了する。
【0063】
この実施例によれば、カメラをユーザの頭部方向に連動させて画像データを取得するとともに、現在の頭部方向に従って算出された視野範囲の画像をユーザに提示するので、通信時間等に起因する時間遅延の影響による画像振れの発生を防止することができる。また、画像を表示するときに、頭部方向が移動された場合には、直前の視野範囲と現在の視野範囲との差分を算出して、差分に相当する範囲の画像を表示しないようにするので、未だ画像データを取得していない範囲や古い画像データが記憶されている範囲についての画像が表示されることはない。つまり、不都合な画像が表示されてしまうことがないので、ユーザが違和感を感じることはない。つまり、安定した画像を提示することができる。
【0064】
なお、上述の実施例では、ユーザが装着するHMDを通してカメラで撮影された画像をユーザに提示するようにしたが、プロジェクタおよびスクリーンを用いて画像を表示してユーザに提示するようにすることもできる。この場合には、加速度センサおよび圧電ジャイロのみをユーザの頭部に装着するようにすればよい。
【0065】
また、上述の実施例では、加速度センサおよび圧電ジャイロのようなセンサの検出信号に基づいてユーザの頭部方向を検出するようにしたが、機械的な装置をユーザの頭部に装着することにより頭部方向を検出するようにしてもよい。
【図面の簡単な説明】
【図1】この発明の画像提示システムの一例についての電気的な構成を示すブロック図である。
【図2】図1実施例に示すHMDへの画像の表示方法を説明するための図解図である。
【図3】図1実施例に示すRAMのバッファ領域を示す図解図である。
【図4】図1実施例に示すHMDを装着したユーザの視野範囲に対応する表示画像を例示した図解図である。
【図5】図1実施例に示すロボットのCPUの処理を示すフロー図である。
【図6】図1実施例に示すコンピュータのCPUの処理の一部を示すフロー図である。
【図7】図1実施例に示すコンピュータのCPUの処理の他の一部を示すフロー図である。
【符号の説明】
10 …画像提示システム
12 …ロボット
14 …コンピュータ
16 …HMD
18 …加速度センサ
20 …圧電ジャイロ
Claims (2)
- 旋回および俯仰の少なくとも一方を制御可能に設けられるカメラを備えるロボットおよび前記ロボットと通信可能に設けられ前記カメラで撮影された画像をディスプレイに表示してユーザに提示する画像提示装置を備える画像提示システムであって、
前記ロボットは、
前記画像提示装置からの頭部方向情報に従って前記カメラの方向を設定するカメラ設定手段と、
前記カメラによって撮影された画像に対応する画像データを取得する画像取得手段と、
当該画像を撮影したときの前記カメラの方向についてのカメラ方向情報を取得するカメラ方向情報取得手段、および
前記画像取得手段によって取得された画像データと前記カメラ方向情報取得手段によって取得されたカメラ方向情報とを互いに関連づけて前記画像提示装置に送信するデータ送信手段と、を備え、
前記画像提示装置は、
当該ユーザの現在の頭部の方向についての頭部方向情報を取得する頭部方向情報取得手段と、
前記頭部方向情報取得手段によって取得された頭部方向情報を前記ロボットに送信する頭部方向情報送信手段と、
前記データ送信手段によって送信された画像データおよびカメラ方向情報を受信して、当該カメラ方向情報に対応する領域に当該画像データを配置するように記録媒体に記憶する記憶手段、および
現在の頭部方向情報に基づく視野範囲についての画像データを前記記憶手段から読み出して前記ディスプレイに表示する表示手段と、を備える画像提示システムにおいて、
前記画像提示装置に、前記表示手段によって画像データを表示するときユーザの頭部方向が変更したかどうかを判断する頭部方向変更判断手段、および前記頭部方向が変更したとき、直前の視野範囲外であり、当該直前の視野範囲と現在の視野範囲との差分を算出する差分算出手段をさらに設け、
前記表示手段は、前記差分算出手段によって算出された差分に相当する範囲にマスクをかけた画像データを表示することを特徴とする、画像提示システム。 - 前記頭部方向情報は、当該ユーザの首の縦方向および横方向の少なくとも一方の角度についての角度情報を含み、
前記表示手段は、前記現在の頭部方向情報に含まれる角度情報に従って前記視野範囲を算出する算出手段を含む、請求項1記載の画像提示システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003160392A JP2004363987A (ja) | 2003-06-05 | 2003-06-05 | 画像提示システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003160392A JP2004363987A (ja) | 2003-06-05 | 2003-06-05 | 画像提示システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004363987A true JP2004363987A (ja) | 2004-12-24 |
Family
ID=34053186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003160392A Pending JP2004363987A (ja) | 2003-06-05 | 2003-06-05 | 画像提示システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004363987A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015511520A (ja) * | 2012-03-26 | 2015-04-20 | コーニンクレッカ フィリップス エヌ ヴェ | X線焦点スポット運動の直接制御 |
WO2016190489A1 (ko) * | 2015-05-27 | 2016-12-01 | 엘지전자 주식회사 | 헤드 마운티드 디스플레이 및 그 제어 방법 |
JP2017185605A (ja) * | 2016-04-07 | 2017-10-12 | シャープ株式会社 | 制御端末、ロボット、制御端末の制御方法、および、そのプログラム |
JP2018023464A (ja) * | 2016-08-08 | 2018-02-15 | 株式会社ソニー・インタラクティブエンタテインメント | ロボットおよび筐体 |
JP2019068254A (ja) * | 2017-09-29 | 2019-04-25 | 株式会社小松製作所 | 表示制御装置および表示制御方法 |
US10808879B2 (en) | 2016-04-20 | 2020-10-20 | Sony Interactive Entertainment Inc. | Actuator apparatus |
US11052547B2 (en) | 2016-04-20 | 2021-07-06 | Sony Interactive Entertainment Inc. | Robot and housing |
US11983959B2 (en) | 2020-04-17 | 2024-05-14 | Beckman Coulter, Inc. | Securing data of objects in a laboratory environment |
-
2003
- 2003-06-05 JP JP2003160392A patent/JP2004363987A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015511520A (ja) * | 2012-03-26 | 2015-04-20 | コーニンクレッカ フィリップス エヌ ヴェ | X線焦点スポット運動の直接制御 |
WO2016190489A1 (ko) * | 2015-05-27 | 2016-12-01 | 엘지전자 주식회사 | 헤드 마운티드 디스플레이 및 그 제어 방법 |
US10585283B2 (en) | 2015-05-27 | 2020-03-10 | Lg Electronics Inc. | Head mounted display and control method therefor |
JP2017185605A (ja) * | 2016-04-07 | 2017-10-12 | シャープ株式会社 | 制御端末、ロボット、制御端末の制御方法、および、そのプログラム |
US10808879B2 (en) | 2016-04-20 | 2020-10-20 | Sony Interactive Entertainment Inc. | Actuator apparatus |
US11052547B2 (en) | 2016-04-20 | 2021-07-06 | Sony Interactive Entertainment Inc. | Robot and housing |
JP2018023464A (ja) * | 2016-08-08 | 2018-02-15 | 株式会社ソニー・インタラクティブエンタテインメント | ロボットおよび筐体 |
JP2019068254A (ja) * | 2017-09-29 | 2019-04-25 | 株式会社小松製作所 | 表示制御装置および表示制御方法 |
US11983959B2 (en) | 2020-04-17 | 2024-05-14 | Beckman Coulter, Inc. | Securing data of objects in a laboratory environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11323621B2 (en) | Image communication system, image capturing device, communication terminal, and mode switching method | |
JP5591006B2 (ja) | 自動追尾カメラシステムの制御装置及びそれを有する自動追尾カメラシステム | |
US11956547B2 (en) | Omnidirectional camera system with improved point of interest selection | |
JPWO2004066632A1 (ja) | 遠隔映像表示方法、映像取得装置及びその方法とそのプログラム | |
US9294741B2 (en) | Imaging apparatus, imaging method, imaging system, and program product | |
US9131146B2 (en) | Communication device, imaging system, and computer program product being capable of adjusting display position in response to imaging direction and direction instruction information | |
JP6899875B2 (ja) | 情報処理装置、映像表示システム、情報処理装置の制御方法、及びプログラム | |
US11228737B2 (en) | Output control apparatus, display terminal, remote control system, control method, and non-transitory computer-readable medium | |
KR20170044451A (ko) | 헤드 마운트 디스플레이를 이용한 원격지 카메라 제어 시스템 및 방법 | |
JP5949501B2 (ja) | 作業補助システムおよびプログラム | |
JP2020005146A (ja) | 出力制御装置、表示端末、情報処理装置、移動体、遠隔制御システム、出力制御方法、プログラムおよび撮影制御装置 | |
JP2021525043A (ja) | タイムラプス撮影の制御方法および制御装置、撮像システムならびにプログラム | |
JP2006139525A (ja) | 自律移動型ロボット | |
JP2004363987A (ja) | 画像提示システム | |
KR101814714B1 (ko) | 스마트폰 카메라 원격 제어 방법 및 시스템 | |
WO2016013309A1 (ja) | 表示制御装置、撮像装置及び表示制御方法 | |
JP2008182321A (ja) | 画像表示システム | |
CN112753066B (zh) | 影像显示控制装置、方法以及程序记录介质 | |
JP2015012550A (ja) | 撮像装置および撮像システム | |
JP5763978B2 (ja) | 制御装置、制御装置の制御方法 | |
KR101407119B1 (ko) | 초광각 카메라를 이용한 카메라 시스템 | |
WO2021014598A1 (ja) | 撮像装置、撮像システム、画像処理装置、撮像方法、画像処理方法およびプログラム | |
US20240066394A1 (en) | Information processing apparatus and image generation method | |
JP2005210507A (ja) | 撮像装置および撮像方法 | |
JP2017118337A (ja) | 携帯可能な装置、システム、制御方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080617 |