以下、図面を参照しながら、発明を実施するための形態を説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
●システム構成●
図1は、実施形態に係る遠隔制御システムのシステム構成の一例を示す図である。図1に示す遠隔制御システムは、各拠点に位置するロボット10と遠隔地にいる管理者が使用する表示端末50との間で遠隔通信を行うことによって、拠点内の装置の管理もしくは保守作業等、または拠点内に位置する人の位置もしくは動線の確認等を行うことができるシステムである。
遠隔制御システム1aは、複数の拠点(拠点A、拠点B、拠点C)のそれぞれに位置するロボット10(10A,10B,10C、以下区別する必要のないときは、ロボット10と称する。)、表示端末50および通信管理サーバ90によって構成される。ロボット10、表示端末50および通信管理サーバ90は、通信ネットワーク9を介して通信可能に接続されている。通信ネットワーク9は、例えば、LAN(Local Area Network)、専用線およびインターネット等によって構築される。なお、通信ネットワーク9は、有線だけでなく、Wi−Fi(登録商標)等の無線による通信が行われる箇所があってもよい。
ロボット10は、各拠点(拠点A、拠点B、拠点C)に設置され、表示端末50からの遠隔操作によって自律走行する移動体である。ロボット10は、後述する特殊撮影装置21によってロボット10の周囲を広範囲に亘る被写体を撮像しながら拠点内を移動し、特殊撮影装置21によって取得された全天球画像を表示端末50へ送信することで、表示端末50を用いてロボット10を操作する操作者に、拠点内の情報(画像)を提供する。また、ロボット10は、特殊撮影装置21によって撮影した被写体の一部を、後述する一般撮影装置24によって撮影し、一般撮影装置24によって取得された詳細画像を表示端末50へ送信することで、表示端末50を用いてロボット10を操作する操作者に、拠点内の所定の領域における詳細な情報(画像)を提供する。ロボット10は、移動体の一例である。
表示端末50は、各拠点(拠点A、拠点B、拠点C)に設置されたロボット10の遠隔操作を行うPC(Personal Computer)等の端末装置である。表示端末50は、ロボット10から送信されてきた全天球画像または詳細画像を表示する。操作者は、表示端末50に表示された画像を見ながら、ロボット10の遠隔操作を行うことができる。
なお、表示端末50は、ロボット10から送信されてきた画像を表示する表示手段を備えたものであればよく、例えば、タブレット端末、携帯電話、スマートフォン、ヘッドマウウントディスプレイ(HMD)等のウェアラブル端末、広角スクリーン(円筒、全天球、半天球スクリーン等)を備えた通信端末、PDA(Personal Digital Assistant)等であってもよい。
通信管理サーバ90は、各拠点に位置するロボット10と表示端末50との間の通信を管理するためのサーバコンピュータである。通信管理サーバ90は、通信ネットワーク9を介してロボット10および表示端末50と接続される。なお、通信管理サーバ90は、単一のコンピュータによって構築されてもよいし、各部(機能、手段または記憶部)を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。
ロボット10が設置される拠点は、例えば、オフィス、学校、倉庫、工場、建設現場等である。表示端末50を用いてロボット10を操作する操作者は、ロボット10から送信された拠点内の画像を確認することによって、拠点内の人の位置や動線の確認、拠点内に設置された装置の管理や保守等を行うことができる。また、ロボット10と表示端末50は、双方によって撮影された画像を送受信することで双方向のコミュニケーション(遠隔会議)を行うこともできる。
なお、図1において、各拠点内に一台のロボット10が設置されている構成を説明したが、ロボット10は、一つの拠点に複数台設置されていてもよい。また、表示端末50は、複数の拠点に配置されたロボット10のそれぞれと通信する構成であってもよいし、一つの拠点に配置されたロボット10のみと通信する構成であってもよい。
●ロボットの構成●
ここで、図2乃至図10を用いて、図1で示したロボット10の具体的な構成を説明する。図2は、実施形態に係るロボットの構成の概略の一例を示す図である。
図2に示されているロボット10aは、特殊撮影装置21、ロボット10aの処理もしくは動作を制御する制御装置30を備えた筐体15、ロボット10aを移動させるための移動機構17a,17b(以下、区別する必要のないときは、移動機構17と称する)、並びに支持部材13を備える。
特殊撮影装置21は、人、物体、風景等の被写体を撮影して全天球(360°)パノラマ画像を取得可能な撮影装置である。特殊撮影装置21は、被写体を撮影して全天球(パノラマ)画像の元になる2つの半球画像を得るための特殊なデジタルカメラである。なお、特殊撮影装置21によって撮影される全天球画像、または全天球画像の元になる半球画像の詳細は、後述する(図15〜図19参照)。
ロボット10aは、特殊撮影装置21によって取得された全天球画像である全天球画像データを、表示端末50へ送信する。なお、全天球画像データの画像は、動画であっても静止画であってもよく、動画と静止画の両方であってもよい。また、全天球画像データは、画像データとともに音データを含んでもよい。
特殊撮影装置21によって取得される画像は、全天球画像に限られず、所定値以上の画角を有する広角画像であればよい。この場合、広角画像は、広角カメラやステレオカメラ等によって取得される。すなわち、特殊撮影装置21は、所定値より焦点距離の短いレンズを用いて撮影された画像(全天球画像、広角画像)を取得可能な撮影手段である。以下実施形態は、特殊撮影装置21によって取得される画像が全天球画像である場合の例を説明する。特殊撮影装置21は、遠隔拠点の被写体を撮影する撮影手段の一例である。
筐体15は、ロボット10aの胴体部分に位置する。筐体15には、ロボット10aの全体に必要な電源を供給する電源供給ユニット、並びにロボット10aの処理もしくは動作を制御する制御装置30等が内蔵されている。
また、支持部材13は、ロボット10a(筐体15)に特殊撮影装置21を設置(固定)するための部材である。支持部材13は、筐体15に固定されたポール等であってもよいし、筐体15に固定された台座であってもよい。また、支持部材13には、特殊撮影装置21の撮影方向(向き)や位置(高さ)を調整可能な可動式の部材であってもよい。図2に示されているロボット10aは、支持部材13によって特殊撮影装置21を固定することで、特殊撮影装置21が常にロボット10aの進行方向と同じの方向を向くため、特殊撮影装置21によって取得された全天球画像を見ながらロボット10を操作する操作者が操作を行いやすくなる。
さらに、移動機構17は、ロボット10aを移動させるユニットであり、車輪、走行モータ、走行エンコーダ、ステアリングモータ、ステアリングエンコーダ等で構成される。ロボット10aの移動制御については、既存の技術であるため、詳細な説明は省略するが、ロボット10aは、操作者(表示端末50)からの走行指示を受信し、移動機構17は、受信した走行指示に基づいてロボット10を移動させる。
なお、移動機構17は、2つの車輪によって構成される例を説明するが、移動機構17は、二足歩行の足型や単輪のものであってもよい。また、ロボット10aの形状は、図2に示されているような車両型に限られず、例えば、二足歩行の人型、生物を模写した形態、特定のキャラクターを模写した形態等であってもよい。
●ロボットの構成の変形例
○変形例1○
ここで、図3および図4を用いて、ロボット10の構成の変形例1について説明する。図3および図4に示されているようなロボット10b(10b1〜10b4)は、図2に示されているようなロボット10aの構成に加えて、特殊撮影装置21によって撮影された被写体の一部を撮影して詳細画像を取得可能な可動式の一般撮影装置24(以下可動カメラ23と称する。)を備える。可動カメラ23は、一般撮影装置24の一種である。図3および図4に示されている可動カメラ23は、内部に可動機構を備え、任意の方向の画像を取得したり、ズーム(拡大・縮小)したりすることが可能な可動式な一般撮影装置である。図3に示されているロボット10b1には、筐体15に可動カメラ23が設置されている。
ここで、一般撮影装置24は、デジタル一眼レフカメラ、コンパクトデジタルカメラ等の平面画像(詳細画像)を取得可能なデジタルカメラである。ロボット10bは、一般撮影装置24(可動カメラ23)によって取得される詳細画像データを、表示端末50へ送信する。ここで、一般撮影装置24によって取得される詳細画像は、特殊撮影装置21によって所定値以上の画角で撮影された被写体の一部を撮影することによって取得可能な画像である。すなわち、一般撮影装置24は、特殊撮影装置21が有するレンズよりも焦点距離の長いレンズを用いて撮影された画像(詳細画像)を取得可能な撮影手段である。
表示端末50は、例えば、ロボット10bの操作者による遠隔操作によってロボット10bを移動させる場合には、ロボット10bの周囲を広範囲で見ることができる全天球画像を表示させる。また、表示端末50は、ロボット10bの操作者が全天球画像に含まれる所定の領域の詳細な情報を確認したい場合には、一般撮影装置24によって取得された詳細画像を表示させる。すなわち、特殊撮影装置21は、ロボット10の操作者に対してロボット10bの周囲を広範囲に確認させるための画像(全天球画像、広角画像)を取得するために撮影処理を行う撮影手段であり、一般撮影装置24は、ロボット10bの操作者に対してロボット10bの周囲の特定の箇所の状態を詳細の確認させるための画像(詳細画像)を取得するために撮影処理を行う撮影手段である。これによって、ロボット10bの操作者は、表示端末50に表示される全天球画像と詳細画像を用途に応じて使い分けることで、ロボット10の操作者による操作性を向上させることができる。
また、図4(A)に示されているロボット10b2は、支持部材13に固定された載置部材18に、可動カメラ23が下向きに設置されている。可動カメラ23には、被写体を撮影することができない死角が存在する。図3に示されているロボット10b1の場合、ロボット10b1の下方向が可動カメラ23の死角となり、ロボット10b1が移動させる際の障害物等を把握することが困難な場合がある。そのため、ロボット10b2は、可動カメラ23を下向きに設置することにより、下方向の死角をなくすことができる。さらに、図4(B)に示されているロボット10b3は、支持部材13に固定された載置部材18に、可動カメラ23aが上向きに設置されており、可動カメラ23bが下向きに設置されている。これにより、ロボット10b3は、ロボット10b2の上方向と下方向の両方を可動カメラ23a,23bを用いて撮影することができるので、撮影位置の死角をよりなくすことができる。
さらに、図4(C)に示されているロボット10b3は、支持部材13に固定された載置部材18aに、特殊撮影装置21が下向きに設置され、支持部材13に固定された載置部材18bに、可動カメラ23が上向きに設置されている。これにより、ロボット10b3は、特殊撮影装置21の撮影位置と可動カメラ23の撮影位置を近づけることで、特殊撮影装置21と可動カメラの視野の差をできるだけ小さくすることができる。
○変形例2○
次に、図5乃至図9を用いて、ロボット10の構成の変形例2について説明する。図5乃至図9に示されているようなロボット10c(10b1〜10b5)は、図2に示されているようなロボット10aの構成に加えて、特殊撮影装置21によって撮影された被写体の一部を撮影して詳細画像を取得可能な固定式の一般撮影装置24(以下通常カメラ25と称する。)を備える。通常カメラ25は、一般撮影装置24の一種である。
図5(A)に示されているロボット10c1は、支持部材13に固定された載置部材18上に、通常カメラ25が設置されている。この場合、ロボット10c1は、変形例1に示されているような可動カメラ23が設置されている構成と異なり、任意の方向を撮影することはできないが、ロボット10c1の正面に対する詳細画像を取得することができる。一方で、図5(B)に示されているロボット10c2は、可動アーム11を用いて、載置部材18上に設置された通常カメラ25の撮影位置(撮影方向)を調整することができる。可動アーム11は、回転軸12を用いて回転することで、通常カメラ25の向きを変更することができる。ロボット10c2は、移動機構17によってロボット10の向きを変えるほか、可動アーム11を回転または変形させることによって、通常カメラ25の撮影位置を変更することができる。さらに、図6に示されているロボット10c3は、図5(B)に示されているロボット10b2の載置部材18に、特殊撮影装置21が設置されている。これにより、ロボット10b3は、可動アーム11を用いて、通常カメラ25に加えて、特殊撮影装置21の撮影位置を変更することができる。
図7(A)〜(C)に示されているロボット10は、特殊撮影装置21の配置が、図6に示されている構成と異なる。特殊撮影装置21と通常カメラ25は、図6で説明したように、それぞれ撮影目的が違うため、特殊撮影装置21と通常カメラ25の配置を用途に応じて変更することが好ましい。
図7(A)は、特殊撮影装置21を通常カメラ25の上部に配置している。特殊撮影装置21は、ロボット10の周囲を広範囲に撮影する必要がある。そのため、ロボット10は、図7(A)に示されているような配置にすることで、特殊撮影装置21と通常カメラ25を使い分ける効果がより顕著になる。
また、図7(B)は、特殊撮影装置21を通常カメラ25の後部に配置している。通常カメラ25の正面方向(撮影方向)の領域は、ロボット10の操作者にとって細部まで確認したい領域である。そのため、図7(B)に示されているような配置にすることで、通常カメラ25は、正面方向(撮影方向)の領域を、障害物等に邪魔されることなく撮影することができる。また、図7(B)に示されているような配置にすることで、特殊撮影装置21は、通常カメラ25が撮影できない領域(例えば、通常カメラ25の後方の領域)を、通常カメラ25等が写り込むことなく、比較的良い解像度で撮影することができる。
さらに、図7(C)は、特殊撮影装置21を通常カメラ25の下部に配置している。ロボット10の移動時において、地面(足元)の状況が重要になる。そのため、図7(C)に示されているような配置にすることで、特殊撮影装置21は、通常カメラ25または載置部材18に邪魔されることなく、地面(足元)を撮影することができる。これにより、ロボット10の操作者は、特殊撮影装置21によって取得された全天球画像を見ながら、より安全にロボット10を移動させることができる。
図8(A),(B)に示されているロボット10は、可動アーム11の構造が、図6に示されている構成と異なる。可動アーム11は、ロボット10の用途に応じて必要な可動範囲を確保できるようにすることが好ましい。図8(A)に示されている可動アーム11aは、関節部材がなく、回転軸12によって向きを変えられるのみである。ロボット10は、特殊撮影装置21または通常カメラ25によって撮影したい箇所の高さや距離が一定である場合、このような構造でも問題ない。また、図8(B)に示されている可動アーム11bは、図8(A)に示されている可動アーム11aを変形可能な関節部材を有している。この場合、可動アーム11bを、上下方向に変形させることができる。
図9(A)に示されているロボット10c4は、図5(B)に示されているロボット10c2の支持部材13を伸縮させることが可能な伸縮部材14を有している。ロボット10c4は、伸縮部材14を用いて支持部材13を伸び縮みさせることで、特殊撮影装置21の高さを調整することができる。これにより、ロボット10c4は、例えば、支持部材13を高くして周囲に存在する障害物の先まで特殊撮影装置21によって撮影できるようにしたり、支持部材13を低くして地面(足元)の状態を特殊撮影装置21によって撮影しながら移動したりするといった臨機応変な処理が可能になる。
また、図9(B)に示されているロボット10c5は、特殊撮影装置21と通常カメラ25とを異なる可動アーム11に設置させた構成である。これにより、ロボット10c5は、特殊撮影装置21が設置された可動アーム11を変形させることで適切な位置から特殊撮影装置21による撮影を行うことができるとともに、通常カメラ25が設置された可動アーム11を変形させることで、より詳細に確認する必要がある箇所を通常カメラ25によって撮影することができる。
○変形例3○
次に、図10を用いて、ロボット10の構成の変形例3について説明する。図10に示されているようなロボット10d(10d1〜10d3)は、図2乃至図9に示されているようなロボット10a〜10cの構成に加えて、表示端末50側の情報を表示するディスプレイ150を備える。図10(A)に示されているロボット10d1は、ロボット10d1の正面から表示画面が確認できるように、ディスプレイ150が配置されている。ディスプレイ150には、表示端末50側の拠点にいる操作者を撮影して取得された撮影画像が表示される。また、ディスプレイ150には、操作者の画像とともに、操作者が実際にどこを見ているかの情報も表示される。これにより、ロボット10d1は、遠隔地にいる操作者の見ている方向を、ロボット10d1が設置された拠点にいるユーザに把握させることができる。
また、図10(B)に示されているロボット10d2は、ロボット10d2の正面から表示画面が確認できるように、ロボット10d2の前方にディスプレイ150aが配置されているとともに、ロボット10d2の後方から表示画面が確認できるように、ロボット10d2の後方にディスプレイ150bが配置されている。図10(B)は、ロボット10d2が横方向から示されている図である。これにより、ロボット10d2は、ロボット10d2の前後に、対称的に複数のディスプレイ150を配置することで、ロボット10d2の後ろ側にいるユーザにも、操作者が見ている方向を把握させることができる。なお、操作者の見ている方向に対して後方に配置されたディスプレイ150a,150bには、予め用意されている操作者の後頭部の画像を表示させる。また、ロボット10d2は、二つのディスプレイ150a,150bが配置されている例を示したが、凸面型のディスプレイ、折り畳み可能なディスプレイまたは全方位のディスプレイ等をロボット10d2の周囲に配置させることで、1つのディスプレイ150でも同様の表示が可能である。この場合、ロボット10d2の周囲にいるユーザは、例えば、ロボット10d2の側面からでも表示画面を確認することができる。
さらに、図10(C)に示されているロボット10d3は、筐体15の全周囲にロボット10d3の進行方向を表示するためのランプ160が配置されている。図10(C)は、ロボット10d3が横方向から示されている図である。ロボット10d3は、表示端末50に表示されている全天球画像の表示位置および一般撮影装置24の撮影位置に対応する位置のランプ160を点灯させる。ロボット10d3は、例えば、ランプ160の色や明るさで、全天球画像の表示位置および一般撮影装置24の撮影位置を区別することもできる。これにより、ロボット10d3は、ランプ160の点灯状態によって、操作者が見ている方向を、ロボット10d3の周囲にいるユーザに把握させることができる。なお、ランプ160は、筐体15に配置されている構成に限られず、ロボット10d3の周囲に配置されていればよい。ここで、図10(A)〜(C)に示されているようなロボット10dが備えるディスプレイ150(150a,150b)およびランプ160は、ロボット10の操作者(表示端末50の利用者)が全天球画像を見ている方向を示す表示手段の一例である。
上記で説明したような図2乃至図10に示されているロボット10は、上記構成のほかに、ロボット10の周囲の情報を検知可能な各種センサを有していてもよい。各種センサは、例えば、気圧計、温度計、光度計、人感センサ、または照度計等のセンサデバイスである。また、図2乃至図10に示されているロボット10は、ロボット10の移動以外の付加的動作を可能とする操作手段が設置される構成であってもよい。操作手段は、例えば、物をつかむロボットハンド等である。
●ハードウエア構成●
次に、図11乃至図14を用いて、遠隔制御システム1aを構成する各装置または端末のハードウエア構成を説明する。なお、図11乃至図14に示されているハードウエア構成は、必要に応じて構成要素が追加または削除されてもよい。
●ロボットのハードウエア構成
図11は、実施形態に係るロボットのハードウエア構成の一例を示す図である。ロボット10は、ロボット10の処理または動作を制御する制御装置30を備える。制御装置30は、上述のように、ロボット10の筐体15の内部に備えられている。なお、制御装置30は、ロボット10の筐体15の外部に設けられてもよく、またはロボット10とは別の装置として設けられていてもよい。
制御装置30は、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304、メディアインターフェース(I/F)305、入出力I/F306、音入出力I/F307、ネットワークI/F308、近距離通信回路309、近距離通信回路309のアンテナ309a、外部機器接続I/F311およびバスライン310を備える。
CPU301は、ロボット10全体の制御を行う。CPU301は、ROM302またはHD(Hard Disk)304a等に格納された、プログラムもしくはデータをRAM303上に読み出し、処理を実行することで、ロボット10の各機能を実現する演算装置である。
ROM302は、電源を切ってもプログラムまたはデータを保持することができる不揮発性のメモリである。RAM303は、CPU301のワークエリア等として用いられる揮発性のメモリである。HDD304は、CPU301の制御にしたがってHD304aに対する各種データの読み出し、または書き込みを制御する。HD304aは、プログラム等の各種データを記憶する。メディアI/F305は、USB(Universal Serial Bus)メモリ、メモリカード、光学ディスクまたはフラッシュメモリ等の記録メディア305aに対するデータの読み出しまたは書き込み(記憶)を制御する。
入出力I/F306は、文字、数値、各種指示等を各種外部機器等との間で入出力するためのインターフェースである。入出力I/F306は、LCD(Liquid Crystal Display)等のディスプレイ150に対するカーソル、メニュー、ウィンドウ、文字または画像等の各種情報の表示を制御する。ディスプレイ150は、入力手段を備えたタッチパネルディスプレイであってもよい。また、入出力I/F306は、ディスプレイ150のほかに、例えば、マウス、キーボード等の入力手段が接続されていてもよい。音入出力I/F307は、CPU301の制御に従ってマイク307aおよびスピーカ307bとの間で音信号の入出力を処理する回路である。マイク307aは、CPU301の制御に従って音信号を入力する内蔵型の集音手段の一種である。スピーカ308bは、CPU301の制御に従って音信号を出力する再生手段の一種である。
ネットワークI/F308は、通信ネットワーク9を経由して、他の機器または装置との通信(接続)を行う通信インターフェースである。ネットワークI/F308は、例えば、有線または無線LAN等の通信インターフェースである。なお、ネットワークI/F308は、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation)、Wi−Fi、WiMAX(Worldwide Interoperability for Microwave Access)、Zigbee(登録商標)、またはミリ波無線通信等の通信インターフェースを備えてもよい。近距離通信回路309は、NFC(Near Field communication)またはBluetooth(登録商標)等の通信回路である。外部機器接続I/F311は、制御装置30に他の装置を接続するためのインターフェースである。
バスライン310は、上記各構成要素を電気的に接続するためのアドレスバスやデータバス等であり、アドレス信号、データ信号、および各種制御信号等を伝送する。CPU301、ROM302、RAM303、HDD304、メディアI/F305、入出力I/F306、音入出力I/F307、ネットワークI/F308、近距離通信回路309および外部機器接続I/F311は、バスライン310を介して相互に接続されている。
さらに、制御装置30には、外部機器接続I/F311を介して、駆動モータ101、アクチュエータ102、加速度・方位センサ103、GPS(Global Positioning System)受信部104、特殊撮影装置21、一般撮影装置24、電源供給ユニット105およびランプ160が接続されている。
駆動モータ101は、CPU301からの命令に基づき、移動機構17を回転駆動させてロボット10を地面に沿って移動させる。アクチュエータ102は、CPU301からの命令に基づき、可動アーム11を変形させる。加速度・方位センサ103は、地磁気を検知する電子磁気コンパス、ジャイロコンパスおよび加速度センサ等のセンサである。GPS受信部104は、GPS衛星からGPS信号を受信する。電源供給ユニット105は、ロボット10の全体に必要な電源を供給するユニットである。ここで、制御装置30は、特殊撮影装置21を備える通信装置の一例である。
●表示端末のハードウエア構成
図12は、実施形態に係る表示端末のハードウエア構成の一例を示す図である。表示端末50は、CPU501、ROM502、RAM503、EEPROM(Electrically Erasable Programmable Read-Only Memory)504、撮像素子I/F505、CMOS(Complementary Metal Oxide Semiconductor)センサ505a、およびメディアI/F506を備えている。
CPU501は、表示端末50全体の動作を制御する。CPU501は、ROM502等に格納されたプログラムまたはデータをRAM503上に読み出し、処理を実行することで、表示端末50の各機能を実現する演算装置である。
ROM502は、IPL(Initial Program Loader)等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。EEPROM504は、CPU501の制御にしたがって、表示端末用プログラム等の各種データの読み出しまたは書き込みを行う。
CMOSセンサ505aは、CPU501の制御に従って被写体(主に自画像)を撮像し画像データを得る。撮像素子I/F505は、CMOSセンサ505aの駆動を制御する回路である。メディアI/F506は、フラッシュメモリ等の記録メディア506aに対するデータの読み出しまたは書き込み(記憶)を制御する。
また、表示端末50は、ネットワークI/F507、音入出力I/F508、マイク508a、スピーカ508b、ディスプレイ511、キーボード512、外部機器接続I/F514、近距離通信回路515、および近距離通信回路515のアンテナ515aを備えている。
ネットワークI/F507は、通信ネットワーク9を経由して、他の機器または装置との通信(接続)を行う通信インターフェースである。ネットワークI/F507は、例えば、有線または無線LAN等の通信インターフェースである。なお、ネットワークI/F507は、3G、LTE、4G、5G、Wi−Fi、WiMAX、Zigbee、またはミリ波無線通信等の通信インターフェースを備えてもよい。音入出力I/F508は、CPU501の制御に従ってマイク508aおよびスピーカ508bとの間で音信号の入出力を処理する回路である。マイク508aは、CPU501の制御に従って音信号を入力する内蔵型の集音手段の一種である。スピーカ508bは、CPU501の制御に従って音信号を出力する再生手段の一種である。
ディスプレイ511は、被写体の画像や各種アイコン等を表示する液晶や有機EL等の表示部の一種である。キーボード512は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。外部機器接続I/F514は、各種の外部機器を接続するためのインターフェースである。外部機器接続I/F514には、各種指示の選択や実行、処理対象の選択、カーソルの移動等を行うマウス500が接続されている。マウス500は、ディスプレイ511に表示された表示画面に対する制御を行うポインティングデバイスである外部入力手段の一例である。近距離通信回路515は、NFCまたはBluetooth等の通信回路である。
また、表示端末50は、バスライン509を備えている。バスライン509は、図12に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
●通信管理サーバのハードウエア構成
図13は、実施形態に係る通信管理サーバのハードウエア構成の一例を示す図である。通信管理サーバ90は、一般的なコンピュータによって構築されている。通信管理サーバ90は、CPU901、ROM902、RAM903、HD904、HDD905、メディアI/F907、ネットワークI/F908、ディスプレイ911、キーボード912、マウス913、DVD−RW(Digital Versatile Disk Rewritable)ドライブ915、およびバスライン910を備えている。
CPU901は、通信管理サーバ90全体の動作を制御する。ROM902は、CPU901の駆動に用いられるプログラムを記憶する。RAM903は、CPU901のワークエリアとして使用される。HDD905は、CPU901の制御にしたがってHD904に対する各種データの読み出し、または書き込みを制御する。HD904は、プログラム等の各種データを記憶する。メディアI/F907は、フラッシュメモリ等の記録メディア906に対するデータの読み出し、または書き込み(記憶)を制御する。
ネットワークI/F908は、通信ネットワーク9を利用してデータ通信をするためのインターフェースである。ディスプレイ911は、カーソル、メニュー、ウィンドウ、文字、または画像等の各種情報を表示する。キーボード912は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。マウス913は、各種指示の選択や実行、処理対象の選択、カーソルの移動等を行う入力手段の一種である。DVD−RWドライブ915は、着脱可能な記録媒体の一例としてのDVD−RW914に対する各種データの読み出し等を制御する。なお、DVD−RW914は、DVD−R等であってもよい。また、DVD−RWドライブ915は、BD−RE(Blu-ray(登録商標) Disc Rewritable)またはCD−RW(Compact Disc-ReWritable)等のディスクに対するデータの読み出しまたは書き込み(記憶)を制御するブルーレイドライブまたはCD−RWドライブ等であってもよい。
また、通信管理サーバ90は、バスライン910を備えている。バスライン910は、図13に示されているCPU901等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
なお、上記各プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。記録媒体の例として、CD−R(Compact Disc Recordable)、DVD、ブルーレイディスク、SDカード等が挙げられる。また、記録媒体は、プログラム製品(Program Product)として、国内または国外へ提供されることができる。例えば、表示端末50は、本発明に係るプログラムが実行されることで本発明に係る表示制御方法を実現する。
●特殊撮影装置のハードウエア構成
続いて、図14を用いて、特殊撮影装置21のハードウエア構成について説明する。図14は、実施形態に係る特殊撮影装置のハードウエア構成の一例を示す図である。以下では、特殊撮影装置21は、2つの撮像素子を使用した全天球(全方位)撮影装置とするが、撮像素子は2つ以上いくつでもよい。また、必ずしも全方位撮影専用の装置である必要はなく、通常のデジタルカメラやスマートフォン等に後付けの全方位の撮像ユニットを取り付けることで、実質的に全天球撮影装置と同じ機能を有するようにしてもよい。
図14に示されているように、特殊撮影装置21は、撮像ユニット201、画像処理ユニット204、撮像制御ユニット205、マイク208、音処理ユニット209、CPU211、ROM212、SRAM(Static Random Access Memory)213、DRAM(Dynamic Random Access Memory)214、操作部215、入出力I/F216、近距離通信回路217、近距離通信回路217のアンテナ217a、および加速度・方位センサ218によって構成されている。
このうち、撮像ユニット201は、各々半球画像を結像するための180°以上の画角を有する広角レンズ(いわゆる魚眼レンズ)202a,202bと、各広角レンズに対応させて設けられている2つの撮像素子203a,203bを備えている。撮像素子203a,203bは、魚眼レンズ202a,202bによる光学像を電気信号の画像データに変換して出力するCMOSセンサやCCD(Charge Coupled Device)センサ等の画像センサ、この画像センサの水平または垂直同期信号や画素クロック等を生成するタイミング生成回路、この撮像素子の動作に必要な種々のコマンドやパラメータ等が設定されるレジスタ群等を有している。
撮像ユニット201の撮像素子203a,203bは、各々、画像処理ユニット204とパラレルI/Fバスで接続されている。一方、撮像ユニット201の撮像素子203a,203bは、撮像制御ユニット205とは、シリアルI/Fバス(I2Cバス等)で接続されている。画像処理ユニット204、撮像制御ユニット205および音処理ユニット209は、バス210を介してCPU211と接続される。さらに、バス210には、ROM212、SRAM213、DRAM214、操作部215、入出力I/F216、近距離通信回路217、および加速度・方位センサ218等も接続される。
画像処理ユニット204は、撮像素子203a,203bから出力される画像データをパラレルI/Fバスを通して取り込み、それぞれの画像データに対して所定の処理を施した後、これらの画像データを合成処理して、正距円筒射影画像のデータを作成する。
撮像制御ユニット205は、一般に撮像制御ユニット205をマスタデバイス、撮像素子203a,203bをスレーブデバイスとして、I2Cバスを利用して、撮像素子203a,203bのレジスタ群にコマンド等を設定する。必要なコマンド等は、CPU211から受け取る。また、撮像制御ユニット205は、同じくI2Cバスを利用して、撮像素子203a,203bのレジスタ群のステータスデータ等を取り込み、CPU211に送る。
また、撮像制御ユニット205は、操作部215のシャッターボタンが押下されたタイミングで、撮像素子203a,203bに画像データの出力を指示する。特殊撮影装置21によっては、ディスプレイ(例えば、スマートフォンのディスプレイ)によるプレビュー表示機能や動画表示に対応する機能を持つ場合もある。この場合は、撮像素子203a,203bからの画像データの出力は、所定のフレームレート(フレーム/分)によって連続して行われる。
また、撮像制御ユニット205は、後述するように、CPU211と協働して撮像素子203a,203bの画像データの出力タイミングの同期をとる同期制御手段としても機能する。なお、本実施形態では、特殊撮影装置21にはディスプレイが設けられていないが、表示部を設けてもよい。マイク208は、音を音(信号)データに変換する。音処理ユニット209は、マイク208から出力される音データをI/Fバスを通して取り込み、音データに対して所定の処理を施す。
CPU211は、特殊撮影装置21の全体の動作を制御すると共に必要な処理を実行する。ROM212は、CPU211のための種々のプログラムを記憶している。SRAM213およびDRAM214はワークメモリであり、CPU211で実行するプログラムや処理途中のデータ等を記憶する。特に、DRAM214は、画像処理ユニット204での処理途中の画像データや処理済みの正距円筒射影画像のデータを記憶する。
操作部215は、シャッターボタン等の操作ボタンの総称である。ユーザは操作部215を操作することで、種々の撮影モードや撮影条件などを入力する。入出力I/F216は、SDカード等の外付けのメディアまたはパーソナルコンピュータ等とのインターフェース回路(USBI/F等)の総称である。入出力I/F216は、無線、有線を問わない。DRAM214に記憶された正距円筒射影画像のデータは、入出力I/F216を介して外付けのメディアに記録されたり、必要に応じて入出力I/F216を介して外部端末(装置)に送信されたりする。近距離通信回路217は、特殊撮影装置21に設けられたアンテナ217aを介して、Wi−Fi、NFCまたはBluetooth(登録商標)等の近距離無線通信技術によって、外部端末(装置)と通信を行う。近距離通信回路217は、正距円筒射影画像のデータを、外部端末(装置)に送信することができる。
加速度・方位センサ218は、地球の磁気から特殊撮影装置21の方位を算出し、方位情報を出力する。この方位情報はExifに沿った関連情報(メタデータ)の一例であり、撮影画像の画像補正等の画像処理に利用される。なお、関連情報には、画像の撮影日時、及び画像データのデータ容量の各データも含まれている。また、加速度・方位センサ218は、特殊撮影装置21の移動に伴う角度の変化(Roll角、Pitch角、Yaw角)を検出するセンサである。角度の変化は、Exifに沿った関連情報(メタデータ)の一例であり、撮像画像の画像補正等の画像処理に利用される。更に、加速度・方位センサ218は、3軸方向の加速度を検出するセンサである。特殊撮影装置21は、加速度・方位センサ218が検出した加速度に基づいて、自装置(特殊撮影装置21)の姿勢(重力方向に対する角度)を算出する。特殊撮影装置21に、加速度・方位センサ218が設けられることによって、画像補正の精度が向上する。
○全天球画像について○
ここで、図15乃至図19を用いて、特殊撮影装置21によって取得される全天球画像の一例について説明する。まず、図15および図16を用いて、特殊撮影装置21で撮影された画像から正距円筒射影画像ECおよび全天球画像CEが作成されるまでの処理の概略を説明する。図15(A)は、特殊撮影装置21で撮影された半球画像(前側)、図15(B)は、特殊撮影装置21で撮影された半球画像(後側)、図15(C)は、正距円筒図法により表された画像(以下、「正距円筒射影画像」という)を示した図である。図16(A)は正距円筒射影画像で球を被う状態を示した概念図、図16(B)は、全天球画像を示した図である。
図15(A)に示されているように、撮像素子203aによって得られた画像は、レンズ202aによって湾曲した半球画像(前側)となる。また、図15(B)に示されているように、撮像素子203bによって得られた画像は、レンズ202bによって湾曲した半球画像(後側)となる。そして、特殊撮影装置21は、半球画像(前側)と180度反転された半球画像(後側)とを合成して、図15(C)に示すような正距円筒射影画像ECを作成する。
そして、特殊撮影装置21は、OpenGLES(Open Graphics Library for Embedded Systems)を利用することで、図16(A)に示されているように、球面を覆うように正距円筒射影画像を貼り付け、図16(B)に示されているような全天球画像CEを作成する。このように、全天球画像CEは、正距円筒射影画像ECが球の中心を向いた画像として表される。なお、OpenGLESは、2D(2-Dimensions)および3D(3-Dimensions)のデータを視覚化するために使用するグラフィックスライブラリである。また、全天球画像CEは、静止画であっても動画であってもよい。
以上のように、全天球画像CEは、球面を覆うように貼り付けられた画像であるため、人間が見ると違和感を持ってしまう。そこで、特殊撮影装置21は、所定のディスプレイに、全天球画像CEの一部の所定領域(以下、「所定領域画像」という)を湾曲の少ない平面画像として表示させることで、人間に違和感を与えない表示をすることができる。これに関して、図17および図18を用いて説明する。
図17は、全天球画像を三次元の立体球とした場合の仮想カメラおよび所定領域の位置を示した図である。仮想カメラICは、三次元の立体球として表示されている全天球画像CEに対して、その画像を見るユーザの視点の位置に相当するものである。図18(A)は、図17の立体斜視図、図18(B)は、ディスプレイに表示された場合の所定領域画像を表す図である。図18(A)は、図17に示した全天球画像CEを、三次元の立体球CSで表している。このように生成された全天球画像CEが、立体球CSであるとした場合、図17に示されているように、仮想カメラICは、全天球画像CEの内部に位置している。全天球画像CEにおける所定領域Tは、仮想カメラICの撮影領域であり、全天球画像CEを含む三次元の仮想空間における仮想カメラICの撮影方向と画角を示す所定領域情報によって特定される。また、所定領域Tのズームは、仮想カメラICを全天球画像CEに近づいたり、遠ざけたりすることで表現することもできる。所定領域画像Qは、全天球画像CEにおける所定領域Tの画像である。したがって、所定領域Tは、画角αと、仮想カメラICから全天球画像CEまでの距離fにより特定できる(図19参照)。
そして、図18(A)に示されている所定領域画像Qは、図18(B)に示されているように、所定のディスプレイに、仮想カメラICの撮影領域の画像として表示される。図18(B)に示されている画像は、初期設定(デフォルト)された所定領域情報によって表された所定領域画像である。以下、仮想カメラICの撮影方向(ea,aa)と画角(α)を用いて説明する。なお、所定領域Tは、画角αと距離fではなく、所定領域Tである仮想カメラICの撮像領域(X,Y,Z)によって示してもよい。
次に、図19を用いて、所定領域情報と所定領域Tの画像の関係について説明する。図19は、所定領域情報と所定領域Tの画像の関係との関係を示した図である。図19に示されているように、「ea」はelevation angle(仰角)、「aa」はazimuth angle(方位角)、「α」は画角(Angle)を示す。すなわち、仮想カメラICの姿勢は、撮影方向(ea,aa)で示される仮想カメラICの注視点が、仮想カメラICの撮影領域である所定領域Tの中心点CPとなるように変更される。図19に示されているように、仮想カメラICの画角αによって表される所定領域Tの対角画角をαとした場合の中心点CPが、所定領域情報の(x,y)パラメータとなる。所定領域画像Qは、全天球画像CEにおける所定領域Tの画像である。fは、仮想カメラICから中心点CPまでの距離である。Lは所定領域Tの任意の頂点と中心点CPとの距離である(2Lは対角線)。そして、図19では、一般的に以下の(式1)で示される三角関数が成り立つ。
●機能構成●
続いて、図20乃至図25を用いて、本実施形態に係る遠隔制御システム1aの機能構成について説明する。図20は、実施形態に係る遠隔制御システムの機能構成の一例を示す図である。なお、図20では、図1に示されている各端末、装置およびサーバのうち、後述の処理または動作に関連しているものが示されている。
●制御装置の機能構成
まず、図20を用いて、ロボット10の処理または動作を制御する制御装置30の機能構成について説明する。制御装置30は、送受信部31、受付部32、表示制御部33、判断部34、状態情報生成部35、位置情報検出部36、撮影制御部37、撮影画像取得部38、移動制御部41、アーム操作制御部42、音入出力部43および記憶・読出部39を有している。これら各部は、図11に示されている各構成要素のいずれかが、RAM303上に展開されたプログラムに従ったCPU301からの命令によって動作することで実現される機能、または機能する手段である。また、制御装置30は、図11に示されているROM302、HD304aまたは記録メディア305aによって構築される記憶部3000を有している。
送受信部31は、図11に示されているCPU301からの命令、およびネットワークI/F308によって実現され、通信ネットワーク9を介して、他の装置との間で各種データまたは情報の送受信を行う機能である。送受信部31は、例えば、通信ネットワーク9を介して、撮影画像取得部38によって取得された全天球画像データまたは詳細画像データを、表示端末50へ送信する。送受信部31は、受信手段の一例である。
受付部32は、図11に示されているCPU301からの命令、および入出力I/F306によって実現され、ディスプレイ150等の入力手段に対する操作入力を受け付ける機能である。表示制御部33は、図11に示されているCPU301からの命令、および入出力I/F306によって実現され、ディスプレイ150に各種画面を表示させる機能である。判断部34は、図11に示されているCPU301からの命令によって実現され、各種判断を行う機能である。
状態情報生成部35は、図11に示されているCPU301からの命令、および外部機器接続I/F311によって実現され、ロボット10の移動状態を示す状態情報170を生成する機能である。状態情報生成部35は、移動制御部41から取得される移動機構17の駆動状態に基づいて、ロボット10の移動状態を示す状態情報170を生成して取得する。状態情報生成部35によって生成(取得)される状態情報170の詳細は、後述する。
位置情報検出部36は、図11に示されているCPU301からの命令、および外部機器接続I/F311によって実現され、加速度・方位センサ103またはGPS受信部104によって検出される各方位(方位角、磁北)の方向等の検出結果を取得する機能である。各方位の方向等の検出結果は、ロボット10の所定時点における位置および向きを示す位置情報である。
撮影制御部37は、図11に示されているCPU301からの命令、および外部機器接続I/F311によって実現され、特殊撮影装置21または一般撮影装置24に対する撮影処理を指示する機能である。撮影制御部37は、例えば、特殊撮影装置21による撮影を指示するための指示情報を、特殊撮影装置21へ送信する。また、撮影制御部37は、例えば、一般撮影装置24による撮影を指示するための指示情報を、一般撮影装置24へ送信する。
撮影画像取得部38は、図11に示されているCPU301からの命令、および外部機器接続I/F311によって実現され、特殊撮影装置21によって取得された全天球画像、または一般撮影装置24によって取得された詳細画像を取得する機能である。撮影画像取得部38は、例えば、特殊撮影装置21が被写体を撮影して取得した全天球画像である全天球画像データを、特殊撮影装置21から取得する。また、撮影画像取得部38は、例えば、特殊撮影装置21によって撮影された被写体の一部を一般撮影装置24が撮影して取得した詳細画像である詳細画像データを、一般撮影装置24から取得する。
移動制御部41は、図11に示されているCPU301からの命令、および外部機器接続I/F311によって実現され、移動機構17を駆動させることによって、ロボット10の移動を制御する機能である。移動制御部41は、例えば、表示端末50から送信されてきた要求コマンドに応じて移動機構17の駆動を制御することで、ロボット10を移動させる。
アーム操作制御部42は、図11に示されているCPU301からの命令、および外部機器接続I/F311によって実現され、可動アーム11の操作を制御する機能である。アーム操作制御部42は、例えば、表示端末50から送信されてきた要求コマンドに応じて可動アーム11を変形させることで、可動アーム11の向きまたは位置を変更する。
音入出力部43は、図11に示されているCPU301からの命令、および音入出力I/F307によって実現され、音データの入出力を行う機能である。音入出力部43は、例えば、マイク307aによって取得されたユーザの音声を音声信号に変換し、音声信号に基づく音データに対して音声処理を行う。また、音入出力部43は、例えば、スピーカ307bから出力させる音データを設定し、設定した音データに係る音信号をスピーカ307bから出力することにより、音データを再生する。
記憶・読出部39は、図11に示されているCPU301からの命令によって実行され、記憶部3000に各種データを記憶させ、または記憶部3000から各種データを読み出す機能である。記憶部3000には、表示端末50との通信を行う際に受信される画像データおよび音データが、受信される度に上書き記憶される。このうち、上書きされる前の画像データによってディスプレイ150に画像が表示され、上書きされる前の音データによってスピーカ307bから音声が出力される。また、記憶部3000は、撮影画像取得部38によって取得された全天球画像データおよび詳細画像データを記憶している。なお、記憶部3000に記憶されている全天球画像データおよび詳細画像データは、撮影画像取得部38によって取得されてから所定の時間経過した場合に削除される構成であってもよいし、表示端末50へ送信されたデータが削除される構成であってもよい。
○コマンド管理テーブル○
図21(A)は、実施形態に係るコマンド管理テーブルの一例を示す概念図である。記憶部3000には、図21(A)に示されているようなコマンド管理テーブルによって構成されているコマンド管理DB3001が構築されている。図21(A)に示されているコマンド管理テーブルは、表示端末50から送信されてきた要求コマンドに基づいてロボット10に実行させる処理または動作を特定するためのものである。このコマンド管理テーブルには、コマンドごとに、それぞれのコマンドに対応する変数および処理内容を関連づけられて管理されている。制御装置30の判断部34は、コマンド管理テーブルを用いて、表示端末50から送信されてきた要求コマンドに対応する処理を特定する。
例えば、コマンド「MOVE(変数L,R)」に対応する処理は、移動機構17の左車輪をL°回転させ、右車輪をR°回転させる処理である。なお、ロボット10は、二つの独立した左右の車輪によって動くものとして説明するが、移動機構17が足型や単輪のものであっても、特定の方向へ移動できるものであれば、同様の処理が可能である。また、コマンド「AIM(変数H,V,Z)」に対応する処理は、一般撮影装置24の撮影方向を、ロボット10の正面に対して水平角度H°、垂直角度V°になるように移動させ、一般撮影装置24のズーム量をZ%に変更する処理である。さらに、コマンド「LOOK(変数H,V,Z)」は、ロボット10の操作者が見ている全天球画像中の方向(H,V)とズーム量(Z%)を示す。ロボット10は、このコマンド「LOOK(変数H,V,Z)」を、表示端末50から送信されている情報として扱い、例えば、後述するディスプレイ150に表示させる表示画面800(図43(A)参照)を生成する際に用いる。
○撮影パラメータ管理テーブル○
図21(B)は、実施形態に係る撮影パラメータ管理テーブルの一例を示す概念図である。記憶部3000には、図21(B)に示されているような撮影パラメータ管理テーブルによって構成されている撮影パラメータ管理DB3002が構築されている。図21(B)に示されている撮影パラメータ管理テーブルには、特殊撮影装置21によって撮影される全天球画像の画質等の撮影パラメータを記憶されているものである。この撮影パラメータ管理テーブルは、項目ごとに、それぞれのパラメータが記憶されて管理されている。撮影パラメータ管理テーブルによって管理されている項目は、全天球画像のフレームレート(FPS、1秒あたりの更新頻度)、全天球画像の解像度(RESOLUTION)、および一般撮影装置24の撮影位置(AIM)である。なお、撮影パラメータ管理テーブルによって管理されている項目は、これに限られず、例えば、全天球画像の画質に関するその他の項目が含まれていてもよい。制御装置30の撮影制御部37は、特殊撮影装置21によって取得される全天球画像の画質が変更されたり、一般撮影装置24によって取得される詳細画像の撮影位置が変更されたりするたびに、それぞれのパラメータを更新(変更)する。
●表示端末の機能構成
続いて、図20を用いて、表示端末50の機能構成について説明する。表示端末50は、送受信部51、受付部52、表示画面生成部53、表示制御部54、表示位置特定部55、判断部56、要求コマンド生成部57、撮影画像取得部58、音入出力部61および記憶・読出部59を有している。これら各部は、図12に示されている各構成要素のいずれかが、RAM503上に展開されたプログラムに従ったCPU501からの命令によって動作することで実現される機能、または機能する手段である。また、表示端末50は、図12に示されているROM502または記録メディア506aによって構築される記憶部5000を有している。さらに、表示端末50は、ロボット10を遠隔操作するための専用のアプリケーションプログラムをインストールしている。表示端末50は、例えば、インストールされたアプリケーションプログラムをCPU501が実行することによって各機能を実現する
送受信部51は、図12に示されているCPU501からの命令、およびネットワークI/F507によって実現され、通信ネットワーク9を介して、他の装置との間で各種データまたは情報の送受信を行う機能である。送受信部51は、例えば、通信ネットワーク9を介して、全天球画像データおよび詳細画像データを、ロボット10(制御装置30)から受信する。また、送受信部51は、例えば、通信ネットワーク9を介して、ロボット10の状態を示す状態情報170を、ロボット10(制御装置30)から受信(取得)する。さらに、送受信部51は、例えば、通信ネットワーク9を介して、要求コマンド生成部57によって生成された要求コマンドを、ロボット10(制御装置30)へ送信する。
受付部52は、図12に示されているCPU501からの命令、並びにキーボード512等の入力手段もしくは外部機器接続I/F514によって実現され、表示端末50への各種選択または操作入力を受け付ける機能である。受付部52は、例えば、キーボード512等の入力手段を用いて、ディスプレイ511に表示された表示画面に対する操作入力を受け付ける。また、受付部52は、例えば、マウス500等のポインティングデバイスの移動を検知する。受付部52は、検知手段の一例である。
表示画面生成部53は、図12に示されているCPU501からの命令によって実現され、ディスプレイ511に表示させる各種表示画面を生成する機能である。表示画面生成部53は、例えば、ロボット10から送信された全天球画像データおよび詳細画像データを用いて、ディスプレイ511に表示される表示画面を生成する。表示画面生成部53は、生成手段の一例である。
表示制御部54は、図12に示されているCPU501からの命令によって実現され、表示端末50のディスプレイ511に各種画面を表示させる機能である。表示制御部54は、例えば、表示画面生成部53によって生成された表示画面を、ディスプレイ511に表示させる。表示制御部54は、表示制御手段の一例である。
表示位置特定部55は、図12に示されているCPU501からの命令、および外部機器接続I/F514によって実現され、ディスプレイ511に表示された全天球画像の表示位置(表示方向)を特定する機能である。表示位置特定部55は、例えば、受付部52によって受け付けられたマウス500の移動量を算出する。また、表示位置特定部55は、例えば、マウス500の移動量に基づいて、全天球画像の表示位置(表示方向)を特定する。表示位置特定部55は、算出手段の一例である。
判断部56は、図12に示されているCPU501からの命令によって実現され、各種判断を行う機能である。判断部56は、ロボット10へ要求する特定の処理を判断する。判断部56は、例えば、受付部52によって受け付けられた操作入力に基づいて、ロボット10へ要求する特定の処理を判断する。また、判断部56は、例えば、送受信部51によって受信(取得)された状態情報170に基づいて、ロボット10へ要求する特定の処理を判断する。
要求コマンド生成部57は、図12に示されているCPU501からの命令によって実現され、ロボット10に特定の処理を実行されるための実行要求である要求コマンドを生成する機能である。要求コマンド生成部57は、例えば、ロボット10が備える一般撮影装置24の撮影位置を変更するための要求である要求コマンドを生成する。
撮影画像取得部58は、図12に示されているCPU501からの命令、および撮像素子I/F505によって実現され、CMOSセンサ505aによって撮影されて取得された撮影画像を取得する機能である。撮影画像取得部58は、例えば、CMOSセンサ505aが被写体を撮影して取得した撮影画像である撮影画像データを取得する。音入出力部61は、図12に示されているCPU501からの命令、および音入出力I/F508によって実現され、音データの入出力を行う機能である。音入出力部61は、例えば、マイク508aによって取得された利用者の音声を音声信号に変換し、音声信号に基づく音データに対して音声処理を行う。また、音入出力部61は、例えば、スピーカ508bから出力させる音データを設定し、設定した音データに係る音信号をスピーカ508bから出力することにより、音データを再生する。
記憶・読出部59は、図12に示されているCPU501からの命令によって実行され、記憶部5000に各種データを記憶させ、または記憶部5000から各種データを読み出す機能である。記憶部5000には、ロボット10(制御装置30)との通信を行う際に受信される画像データおよび音データが、受信される度に上書き記憶される。このうち、上書きされる前の画像データによってディスプレイ511に画像が表示され、上書きされる前の音データによってスピーカ508bから音声が出力される。
○状態情報管理テーブル○
図22(A)は、実施形態に係る状態情報管理テーブルの一例を示す概念図である。記憶部5000には、図22(A)に示されているような状態情報管理テーブルによって構成されている状態情報管理DB5001が構築されている。図22(A)に示されている状態情報管理テーブルは、ロボット10の現在の状態が記憶されているものである。この状態情報管理テーブルには、ロボット10の進行方向および進行速度のそれぞれに対して、ロボット10の現在の移動状態を示す値(パラメータ)が記憶されている。ロボット10の進行方向は、水平角度(DRIVE_H_ANGLE)と垂直角度(DRIVE_V_ANGLE)によって示されている。また、状態情報管理テーブルには、一般撮影装置24の現在の撮影位置を示す値(パラメータ)が記憶されている。一般撮影装置24の撮影位置は、水平角度(CAMERA_H_ANGLE)、垂直角度(CAMERA_V_ANGLE)、およびズーム量(CAMERA_ZOOM)によって示されている。表示端末50は、ロボット10が移動するたびに、または一般撮影装置24の撮影位置が変更されるたびに、対応する項目の値を更新(変更)する。
○条件情報管理テーブル○
図22(B)は、実施形態に係る条件情報管理テーブルの一例を示す概念図である。記憶部5000には、図22(B)に示されているような条件情報管理テーブルによって構成されている条件情報管理DB5002が構築されている。図22(B)に示されている条件情報管理テーブルは、送受信部51によって受信された状態情報170に基づいて、ロボット10に対して要求する処理または動作の内容を特定するために用いられるものである。この条件情報管理テーブルには、ロボット10の状態に関する条件のそれぞれに、処理の内容およびロボット10へ送信する要求コマンドの内容が関連づけられて記憶されている。例えば、ロボット10の進行速度が5.0km以上の場合(「SPEED>5km/h」)、表示端末50は、処理の内容として「フレームレートを3に下げる」処理を特定するとともに、ロボット10へ送信する要求コマンドとして「FPS(3)」を抽出する。なお、「RESOLUTION」は、全天球画像の解像度に関するコマンドであり、「ZOOM」は、全天球画像の表示範囲(出力範囲)に関するコマンドである。
なお、条件情報管理テーブルに示されている条件は、ロボット10の進行速度に関する条件に限られず、ロボット10が取得できる移動状態の他の情報に関する条件であってもよい。例えば、条件情報管理テーブルには、ロボット10の進行方向に関する条件が示されていてもよい。また、条件情報管理テーブルに示されている条件、または処理の内容は、表示端末50を用いてロボット10を操作する操作者等によって適宜修正・変更可能である。
また、条件情報管理テーブルに示されているように、表示端末50は、全天球画像の表示位置と一般撮影装置24の撮影位置が近い場合、全天球画像から詳細画像へ、表示画面の表示を切り替える。これは、一般撮影装置24の撮影位置を変更することによって、一般撮影装置24の撮影方向およびズーム量が、全天球画像の表示位置(表示方向およびズーム量)に追いついた場合、ディスプレイ511の表示を、全天球画像から詳細画像へ切り替えることを意味する。ここで、「全天球画像の表示位置と一般撮影装置24の撮影位置が近い」とは、完全に位置が同じではなく、所定の範囲内に収まっていればよい。
○ユーザコマンド管理テーブル○
図23(A)は、実施形態に係るユーザコマンド管理テーブルの一例を示す概念図である。記憶部5000には、図23(A)に示されているようなユーザコマンド管理テーブルによって構成されているユーザコマンド管理DB5003が構築されている。図23(A)に示されているユーザコマンド管理テーブルは、受付部52によって受け付けられた操作入力に基づいて、ロボット10に対して要求する処理または動作の内容を特定するために用いられるものである。このユーザコマンド管理テーブルには、入力コマンドごとに、対応する処理の内容および処理の種別を関連づけられて記憶されている。表示端末50は、例えば、入力コマンドである「マウス500の移動」を検知した場合、LOOK(H,V,Z)の要求コマンドをロボット10へ送信するとともに、全天球画像の表示位置を変更する。また、表示端末50は、例えば、入力コマンドである「マウス500の移動後の停止」を検知した場合、AIM(H,V,Z)の要求コマンドをロボット10へ送信する。これは、マウス500が移動するたびに一般撮影装置24への指示を行うと、頻繁になりすぎるので、マウス500の移動後に所定の時間の間、マウス500を動かさなくなってから要求コマンドを送信することを意味する。
○表示状態管理テーブル○
図23(B)は、実施形態に係る表示状態管理テーブルの一例を示す概念図である。記憶部5000には、図23(B)に示されているような表示状態管理テーブルによって構成されている表示状態管理DB5004が構築されている。図23(B)に示されている表示状態管理テーブルは、表示端末50に表示されている全天球画像の表示位置、および表示端末50に表示されている詳細画像の撮影位置のパラメータが記憶されて管理されている。例えば、図23(B)の場合、全天球画像の表示方向は、水平角度「22.0°」および垂直角度「15.0°」であり、全天球画像のズーム量は、50%である。また、詳細画像(一般撮影装置24)の撮影方向は、水平角度「−22.2°」および垂直角度「10.0°」であり、詳細画像(一般撮影装置24)のズーム量は、22.3%である。表示端末50は、この表示状態管理テーブルに記憶されている各画像の表示状態のパラメータを用いて、ディスプレイ511に表示させる画像の切り替えを行う。
●通信管理サーバの機能構成
次に、図20を用いて、通信管理サーバ90の機能構成について説明する。通信管理サーバ90は、送受信部91、認証部92、判断部93、作成部94および記憶・読出部99を有している。これら各部は、図13に示されている各構成要素のいずれかが、RAM903上に展開されたプログラムに従ったCPU901からの命令によって動作することで実現される機能、または機能する手段である。また、通信管理サーバ90は、図13に示されているROM902、HD904または記録メディア906によって構築される記憶部9000を有している。
送受信部91は、図13に示されているCPU901からの命令、およびネットワークI/F908によって実現され、通信ネットワーク9を介して、他の装置との間で各種データまたは情報の送受信を行う機能である。
認証部92は、図13に示されているCPU901からの命令によって実現され、送受信部91によって受信されたログイン要求情報に基づいて、ログイン要求元の認証を行う機能である。認証部92は、例えば、送受信部91によって受信されたログイン要求情報に含まれている端末IDおよびパスワードを検索キーとし、記憶部9000の認証管理DB9001を検索する。そして、認証部92は、認証管理DB9001に同一の組の端末IDおよびパスワードが管理されているかを判断することによって端末認証を行う。
判断部93は、図13に示されているCPU901からの命令によって実現され、後述するセッション管理テーブルに、表示端末50の端末IDが管理されているかを判断する機能である。作成部94は、図13に示されているCPU901からの命令によって実現され、通信に使用されるセッションIDを作成する機能である。
記憶・読出部99は、図13に示されているCPU901からの命令によって実行され、記憶部9000に各種データを記憶させ、または記憶部9000から各種データを読み出す機能である。また、記憶部9000には、後述する宛先リスト画面900(図27参照)における宛先リスト枠データ(図27に示すアイコン、「rA01」、「ロボット10A−1」等の宛先リスト内容情報は含まれない)が記憶されている。
○認証管理テーブル○
図24(A)は、実施形態に係る認証管理テーブルの一例を示す概念図である。記憶部9000には、図24(A)に示されているような認証管理テーブルによって構成されている認証管理DB9001が構築されている。この認証管理テーブルには、通信管理サーバ90によって管理される全ての表示端末50の各端末IDに対して、各パスワードが関連づけられて管理されている。例えば、図24(A)に示されている認証管理テーブルでは、表示端末50Aの端末IDは「o01」で、パスワードは「aaaa」であることが表されている。
○端末管理テーブル○
図24(B)は、実施形態に係る端末管理テーブルの一例を示す概念図である。記憶部9000には、図24(B)に示されているような端末管理テーブルによって構成されている端末管理DB9002が構築されている。この端末管理テーブルには、各端末(ロボット10および表示端末50)の端末IDごとに、各端末の端末名、端末のIPアドレス、各端末の現在の稼動状態を示す稼動状態情報、および端末がロボット10である場合のロボット10が位置する拠点を示す拠点名が関連づけられて管理されている。例えば、図24(B)に示す端末管理テーブルにおいて、端末IDが「o01」の表示端末50は、端末名が「表示端末50A」で、この表示端末50のIPアドレスが「1.2.1.3」で、稼動状態が「オンライン(通話可能)」であることが示されている。また、端末IDが「rA01」のロボット10は、端末名が「ロボット10A−1」で、このロボット10のIPアドレスが「1.3.2.3」で、稼動状態が「オンライン(通話可能)」で、拠点名が「拠点A」であることが示されている。
○宛先リスト管理テーブル○
図25(A)は、実施形態に係る宛先リスト管理テーブルの一例を示す概念図である。記憶部9000には、図25(A)に示されているような宛先リスト管理テーブルによって構成されている宛先リスト管理DB9003が構築されている。この宛先リスト管理テーブルには、ロボット10との通信の開始を要求する開始端末としての表示端末50の端末IDごとに、宛先となるロボット10の候補として登録されている宛先候補のロボット10の端末IDが関連づけられて管理されている。例えば、図25(A)に示す宛先リスト管理テーブルにおいて、端末IDが「o01a」である開始端末(表示端末50A)から通信の開始を要求することができる宛先候補は、端末IDが「rA01」のロボット10A−1、端末IDが「rA02」のロボット10A−2、端末IDが「rC01」のロボット10C−1等であることが示されている。なお、宛先候補のロボット10の端末IDは、任意の開始端末(表示端末50)から通信管理サーバ90に対する追加または削除の要請により、追加または削除されることで更新される。
○セッション管理テーブル○
図25(B)は、実施形態に係るセッション管理テーブルの一例を示す概念図である。記憶部9000には、図25(B)に示されているようなセッション管理テーブルによって構成されているセッション管理DB9004が構築されている。このセッション管理テーブルには、ロボット10と表示端末50との間で通信する際に利用されるセッションを識別するためのセッションIDごとに、このセッションIDによって特定されるセッションを使用中のロボット10および表示端末50の端末IDが関連づけられて管理されている。例えば、図25(B)に示すセッション管理テーブルにおいて、セッションID「se1」を用いて実行されたセッションを使用中の端末は、端末IDが「o01」の表示端末50A、端末IDが「rA02」のロボット10A−2、および端末IDが「rC01」のロボット10C−1であることが示されている。
●実施形態の処理または動作●
続いて、図26乃至図43を用いて、実施形態に係る遠隔制御システム1aの動作または処理について説明する。なお、以降の説明において、ロボット10が備える制御装置30によって実行される処理は、ロボット10によって実行される処理として説明する。
●通信セッションの確立処理
まず、図26乃至図28を用いて、ロボット10と表示端末50との間における通信セッションの確立処理について説明する。図26は、実施形態に係る遠隔制御システムにおけるロボットと表示端末との間でデータの送受信を開始する準備段階の処理の一例を示すシーケンス図である。ここでは、開始端末としての表示端末50Aと、宛先端末としてのロボット10A−1との間で、データの送受信を開始する前の準備段階における各管理情報の送受信処理について説明する。
まず、表示端末50Aの送受信部51は、通信ネットワーク9を介して、通信管理サーバ90へログイン認証の要求を示すログイン要求情報を送信する(ステップS101)。具体的には、表示端末50Aの利用者は、表示端末50Aにおける電源スイッチをONにすると、電源がONになる。そして、表示端末50Aの送受信部51は、上記電源ONを契機とし、送受信部51から通信ネットワーク9を介して、通信管理サーバ90へ、ログイン要求情報を送信する。これにより、通信管理サーバ90の送受信部91は、表示端末50Aから送信されたログイン要求情報を受信する。
このログイン要求情報には、表示端末50Aとしての開始端末を識別するための端末ID、およびパスワードが含まれている。これら端末IDおよびパスワードは、記憶・読出部59によって記憶部5000から読み出されて、送受信部51に送られたデータである。なお、これら端末IDおよびパスワードは、これに限るものではなく、利用者がキーボード511等の入力手段によって入力した端末IDやパスワードが送信されてもよい。また、表示端末50Aに接続されたSIM(Subscriber Identity Module Card)カードやSDカード等の記録媒体から読み出された端末IDやパスワードが送信されてもよい。
また、表示端末50Aから通信管理サーバ90へログイン要求情報が送信される際は、受信側である通信管理サーバ90は、送信側である表示端末50AのIPアドレスを取得することができる。なお、ログイン要求の開始は、必ずしも電源スイッチをONにすることを契機とする必要はなく、利用者によるディスプレイ511等の入力手段への入力に応じて送信してもよい。
次に、通信管理サーバ90の認証部92は、送受信部91によって受信されたログイン要求情報に含まれている端末IDおよびパスワードを検索キーとして、記憶部9000の認証管理テーブル(図24(A)参照)を検索し、認証管理DB9001に同一の端末IDおよび同一のパスワードが管理されているかを判断することによって認証を行う(ステップS102)。以下、表示端末50Aが認証部92によって正当な利用権限を有する端末であると判断された場合について説明する。
次に、記憶・読出部99は、認証部92によって同一の端末IDおよび同一のパスワードが管理されていることにより、正当な利用権限を有する開始端末からのログイン要求であると判断された場合、記憶部9000から宛先リスト枠データを読み出す(ステップS103)。
送受信部91は、認証部92によって得られた認証結果が示された認証結果情報を、通信ネットワーク9を介して、上記ログイン要求してきた表示端末50Aへ送信する(ステップS104)。この認証結果情報には、ステップS103によって読み出された宛先リスト枠データが含まれている。これにより、表示端末50Aの送受信部51は、認証結果情報を受信する。そして、表示端末50Aの記憶・読出部59は、ステップS104によって受信された宛先リスト枠データを、記憶部5000に記憶させる(ステップS105)。
次に、送受信部51は、正当な利用権限を有する端末であると判断された認証結果が示された認証結果情報を受信した場合、通信ネットワーク9を介して通信管理サーバ90へ、宛先リストの内容を要求する宛先リスト内容要求情報を送信する(ステップS106)。この宛先リスト内容要求情報には、表示端末50Aの端末IDが含まれている。これにより、通信管理サーバ90の送受信部91は、宛先リスト内容要求情報を受信する。
次に、通信管理サーバ90の記憶・読出部99は、ステップS106によって受信された表示端末50の端末ID「o01」を検索キーとして宛先リスト管理DB9003(図25(A))を検索することにより、対応する全ての宛先候補の端末IDを読み出す(ステップS107)。さらに、記憶・読出部99は、ステップS107によって読み出された各端末IDを検索キーとして端末管理DB9002(図24(B)参照)を検索することにより、対応する宛先候補の端末名、稼動状態情報および拠点名を読み出す(ステップS108)。
次に、送受信部91は、通信ネットワーク9を介して表示端末50Aへ、宛先リスト内容情報を送信する(ステップS109)。この宛先リスト内容情報には、ステップS107およびS108によって読み出された、宛先候補の端末ID、宛先候補の端末名、稼動状態情報および拠点名が含まれている。これにより、表示端末50Aの送受信部51は、宛先リスト内容情報を受信する。
次に、表示端末50Aの表示制御部54は、ステップS105によって記憶部5000に記憶された宛先リスト枠データ、およびステップS109によって受信された宛先リスト内容情報を用いて作成された宛先リスト画面900を、ディスプレイ511に表示させる(ステップS110)。図27は、実施形態に係る表示端末に表示される宛先リスト画面の一例を示す図である。図27に示されている宛先リスト画面900には、宛先候補ごとに、宛先候補の端末(ロボット10)の稼動状態を示したアイコン、宛先候補の端末の端末ID、宛先候補の宛先名、および宛先候補の端末が位置する拠点名が表されている。なお、ステップS109によって受信された「端末名」は、図27に示す宛先リスト画面900では、「宛先名」として表示される。
続いて、図28を用いて、表示端末50における宛先候補の選択から画像データの送受信を開始するまでの処理を説明する。図28は、実施形態に係る遠隔制御システムにおける宛先候補の選択からデータの送受信を開始するまでの処理の一例を示すシーケンス図である。
まず、表示端末50Aの受付部52は、利用者から図27に示されている宛先リスト画面900の宛先候補(ここでは、ロボット10A−1)の選択を受け付ける(ステップS111)。そして、送受信部51は、通信管理サーバ90に対して、画像データ等の送受信を開始したい旨を示す開始要求情報を送信する(ステップS112)。この開始要求情報には、表示端末50Aの端末ID、および宛先候補の端末の端末IDが含まれている。これにより、通信管理サーバ90の送受信部91は、開始要求情報を受信する。
次に、通信管理サーバ90の判断部93は、ステップS112によって受信された表示端末50Aの端末IDがセッション管理テーブル(図25(B)参照)で管理されているか否かを判断する。ここでは、宛先候補の端末(ロボット10A−1)の端末IDが管理されていない場合について、以下説明を続ける。
作成部94は、宛先候補の端末の端末IDが管理されていない場合、新たにセッションIDを作成する(ステップS114)。そして、記憶・読出部99は、セッション管理テーブル(図25(B)参照)に、ステップS114によって作成されたセッションID、並びにステップS112によって受信された表示端末50Aの端末IDおよび宛先候補の端末の端末IDを関連づけた新たなレコードを追加記憶する(ステップS115)。ここでは、図25(B)に示されているように、新たなレコードが追加されることで、セッションID「se3」、および端末ID「o01」,「rA01」が関連づけて管理される。
次に、送受信部91は、表示端末50Aに対して、セッションの開始を要求するセッション開始要求情報を送信する(ステップS116)。このセッション開始要求情報には、ステップS114によって作成されたセッションIDが含まれている。これにより、表示端末50Aの送受信部51は、セッション開始要求情報を受信する。
また、通信管理サーバ90の記憶・読出部99は、ステップS112によって受信された宛先候補の端末(ロボット10A−1)の端末IDを検索キーとして端末管理DB9002(図24(B)参照)を検索することにより、対応するIPアドレスを読み出す(ステップS117)。そして、送受信部91は、ステップS117によって読み出されたIPアドレスが示す宛先候補の端末(ロボット10A−1)に対して、セッションの開始を要求するセッション開始要求情報を送信する(ステップS118)。このセッション開始要求情報には、ステップS114によって作成されたセッションIDが含まれている。これにより、宛先端末(ロボット10A−1)の送受信部31は、セッション開始指示を受信する。
以上により、開始端末(表示端末50A)および宛先端末(ロボット10A−1)は、それぞれ通信管理サーバ90と通信セッションを確立する(ステップS119−1,S119−2)。以降の説明において、表示端末50は、確立された通信管理サーバ90との通信セッションを用いて、ロボット10とストリーミング通信を行うものとして説明する。
●遠隔通信を用いた処理
○画面データの送信および表示○
続いて、通信管理サーバ90との間で確立された通信セッションを用いて、ロボット10から表示端末50へ送信されるデータ、および表示端末50によってロボット10の処理もしくは動作を制御する処理について説明する。図29は、実施形態に係る遠隔制御システムにおけるロボットから表示端末への各種データの送信処理の一例を示すシーケンス図である。
まず、ロボット10の送受信部31は、確立された通信管理サーバ90との通信セッションを用いて、特殊撮影装置21によって取得された全天球画像データ、および一般撮影装置24によって取得された詳細画像データを、表示端末50へ送信する(ステップS11−1,ステップS11−2)。これにより、表示端末50の送受信部51は、ロボット10から送信された全天球画像データおよび詳細画像データを受信する。
ここで、ロボット10は、撮影制御部37から特殊撮影装置21および一般撮影装置24への撮影指示をトリガーとして、特殊撮影装置21および一般撮影装置24による撮影を開始する。ロボット10の撮影画像取得部38は、特殊撮影装置21によって取得された全天球画像である全天球画像データ、および一般撮影装置24によって取得された詳細画像である詳細画像データを、特殊撮影装置21および一般撮影装置24からそれぞれ取得する。そして、ロボット10の送受信部31は、表示端末50に対して、撮影画像取得部38によって取得された全天球画像データおよび詳細画像データを送信する。
次に、表示端末50の表示画面生成部53は、送受信部51によって受信された全天球画像データおよび詳細画像データを用いて、ディスプレイ511に表示させる表示画面600aを生成する(ステップS12)。そして、表示制御部54は、表示画面生成部53によって生成された表示画面600aを、ディスプレイ511に表示させる(ステップS13)。ここで、図30を用いて、ステップS13によってディスプレイ511に表示される表示画面600aについて説明する。図30に示されている表示画面600aには、ロボット10から送信されてきた詳細画像データに係る詳細画像を表示させるための表示領域630、およびロボット10から送信されてきた全天球画像データに係る全天球画像を表示させるための表示領域650が含まれている。また、表示画面600aには、ロボット10の水平方向(前進、後退、右回転、左回転)の移動を要求する場合に押下される移動指示キー605、表示領域610に示されている全天球画像のズーム状態を示すズームバー6111、およびロボット10の移動速度の状態を示す移動速度を表示される速度バー613が含まれている。
このうち、表示領域650には、ロボット10から送信されてきた全天球画像データの一部(例えば、図17および図18に示されている所定領域画像Q)が表示されている。操作者は、全天球画像が表示された表示領域610内に、マウス500を移動させて所定の入力操作することで、全天球画像の表示方向またはズームの度合いを変更する。
これによって、表示端末50を用いてロボット10を遠隔操作する操作者は、ロボット10が位置する拠点の状況を、全天球画像および詳細画像が表示された表示画面600aを見ながら確認することができる。
ここで、ロボット10の操作者は、表示端末50に表示された全天球画像および詳細画像を見ながら、ロボット10の遠隔操作を行うため、表示端末50に表示される画像にはリアルタイム性が求められる。そのため、ロボット10の送受信部31は、特殊撮影装置21によって取得された全天球画像データを表示端末50へ常時送信する。このような特性上、特殊撮影装置21によって取得される全天球画像データは、動画データであることが好ましい。この場合、表示端末50を用いてロボット10を操作する操作者は、ロボット10から送信されることによって表示端末50においてストリーミング再生される全天球画像の動画データを確認しながら、ロボット10の遠隔操作を行うことができ、特殊撮影装置21またはロボット10の向きを変えることなく、ロボット10の周囲を広範囲に確認することができる。
なお、図30において、表示画面600aに示されている移動指示キー605に対する操作入力を受け付けることによってロボット10の移動を遠隔操作する例を説明するが、ロボット10の移動操作は、キーボード、またはジョイスティクを備えたゲームパッド等の専用コントローラ等で行われる構成であってもよい。また、表示端末50は、表示画面600aに、ロボット10の移動要求先の名称や会いたい人のリストを表示させ、利用者に選択または住所等を入力させる方式であってもよい。この場合、表示端末50は、入力された特定の場所にロボット10を移動させるための要求コマンドをロボット10へ送信し、ロボット10は、要求コマンドで指定された移動先へ自律的に移動する。
図29に戻り、ロボット10は、後述する表示端末50から送信される要求コマンド等に基づいて拠点内を移動する(ステップS14)。この場合、ロボット10の移動制御部41は、後述する表示端末50から送信される要求コマンド等に基づいて、移動機構17の駆動を制御する。
次に、状態情報生成部35は、移動制御部41から取得される移動機構17の駆動状態に基づいて、ロボット10の状態を示す状態情報170を生成する(ステップS15)。図31は、実施形態に係るロボットの状態を示す状態情報の一例を示す図である。図31に示されている状態情報170には、ロボット10の進行方向(水平角度および垂直角度)と進行速度の項目に対応する情報が含まれている。また、図31に示されている状態情報170には、一般撮影装置24の撮影方向(水平角度および垂直角度)とズーム量の項目に対応する情報も含まれている。この状態情報170は、それぞれの項目に対応する変数名と、変数名に対応する数値が示されている。例えば、図31に示す状態情報170の場合、ロボット10は、進行速度「3.0km/h」、水平角度「30°」および垂直角度「45°」の進行方向で移動している。また、一般撮影装置24の撮影方向は、水平角度「−22.2°」および垂直角度「10.00°」であり、ズーム量は、「22.3%」である。なお、状態情報170に含まれているロボット10の状態の項目は、これに限られず、ロボット10の移動距離等の情報が含まれていてもよい。
ロボット10の送受信部31は、確立された通信管理サーバ90との通信セッションを用いて、状態情報生成部35によって生成された状態情報170を、表示端末50へ送信する(ステップS16−1,ステップS16−2)。これにより、表示端末50の送受信部51は、ロボット10から送信された状態情報170を受信する。
そして、表示端末50の記憶・読出部59は、送受信部51によって受信された状態情報170を、記憶部5000に管理されている状態情報管理DB5001(図22(A)参照)に記憶させる(ステップS17)。具体的には、記憶・読出部59は、受信された状態情報170に含まれるそれぞれの数値を、状態情報管理テーブルの対応する変数名の箇所に記憶させることで、状態情報管理テーブルに含まれる各項目の値を更新する。
次に、表示画面生成部53は、ステップS16−2によって受信された状態情報170を用いて、ディスプレイ511に表示される表示画面600bを生成する(ステップS18)。ここで、表示画面生成部53によって生成される表示画面600bは、ロボット10から送信された全天球画像データおよび詳細画像データとともに、受信された状態情報170の特徴が示されている画面データである。そして、表示制御部54は、表示画面生成部53によって生成された表示画面600bを、ディスプレイ511に表示させる(ステップS19)。
ここで、図32を用いて、ステップS19によって表示される表示画面600bを説明する。図32は、実施形態に係る遠隔制御システムにおいて、ロボットが前進している場合に表示端末に表示される表示画面の一例を示す図である。図32に示されている表示画面600bには、表示画面600aに加えて、ロボット10の移動状態を示す表示が含まれている。表示画面600bには、ロボット10の位置を示す円柱型のオブジェクト651a、ロボット10の進行方向が矢印で示されている進行方向アイコン651b、および一般撮影装置24の撮影位置を示す撮影位置アイコン653が、全天球画像が示されている表示領域650に含まれている。オブジェクト651aは、オブジェクト画像の一例であり、進行方向アイコン651bは、進行方向画像の一例である。
また、表示画面600bには、移動指示キー605のうち「前進」および「左回転」キーの色が変わることで、ロボット10が左前方へ前進していることを示している。表示画面生成部53は、状態情報170に含まれている変数名「DRIVE_H_ANGLE」および「DRIVE_V_ANGLE」に対応する数値に基づいて、移動指示キー605の表示を更新する。また、表示画面生成部53は、移動指示キー605に対する操作入力を受け付けることによって、移動指示キー605の表示を更新してもよい。さらに、表示画面600bには、速度バー613の黒い部分の割合によって、ロボット10の進行速度を示している。表示画面生成部53は、状態情報170に含まれている変数名「DRIVE_SPEED」に対応する数値に基づいて、速度バー607の表示を更新する。
ここで、図33を用いて、表示端末50に表示される全天球画像について説明する。図33は、実施形態に係る表示端末に表示される全天球画像の一例について説明するための図である。全天球画像CEは、図16乃至図19にも示されているように、球体の三次元の仮想空間(立体球CS)の内壁に投影され、その中心位置に仮想カメラICが配置されている。この仮想カメラICから見た画像が、表示端末50のディスプレイ511に表示される画像となる。
図33に示されているように、本実施形態において、立体球CSの内部に配置された仮想カメラICは、立体球CSの中心位置から上後方にずらして配置されている。また、球体の三次元の仮想空間(立体球CS)の中心位置には、ロボット10を示すオブジェクト651aが配置されている。表示画面生成部53は、仮想カメラICから見た全天球画像CE(所定領域画像Q)に、ロボット10の存在を示す画像(オブジェクト651a)を重畳させて表示画面600bを生成する。
このように、表示端末50は、仮想カメラICを球体の三次元の仮想空間(立体球CS)の中心位置とは離れた位置に配置し、配置された位置を視野の原点とすることで、ロボット10の存在(オブジェクト651a)を、仮想カメラICの視野に入れることができる。そのため、表示端末50の利用者は、いわゆる疑似第三者視点(TPV;Third Person View)によって、ロボット10の存在(オブジェクト651a)と全天球画像CE(所定領域画像Q)の両方を同時に確認することができる。
また、表示端末50は、全天球画像CEの表示位置(所定領域T)を変更する際、視野の原点となる仮想カメラICの位置を変更する。この場合、表示端末50は、仮想カメラICの位置を変更する際に、常にロボットの存在(オブジェクト651a)が仮想カメラICによる視界に入るように、仮想カメラICの位置を移動させる。例えば、全天球画像CEの表示位置(所定領域T)を垂直方向(図33に示されている立体球CSの上側)に変更する場合、表示端末50は、仮想カメラICの向きを変更(視界を上方向に変更)するだけでなく、仮想カメラICの視界に対して逆方向(図33に示されている下側)に、仮想カメラICの位置を移動させる。また、例えば、全天球画像CEの表示位置(所定領域T)を左右方向(図33に示されている立体球CSの右側)に変更する場合、表示端末50は、仮想カメラICの向きを変更(視界を右方向に変更)するだけでなく、仮想カメラICの視界に対して逆方向(図33に示されている左側)に、仮想カメラICの位置を移動させる。これにより、仮想カメラICは、全天球画像CEの表示位置(所定領域T)が変更されたとしても、ロボットの存在(オブジェクト651a)が視界に入れることができる。
このように、表示端末50の利用者は、ディスプレイ511に表示された全天球画像CEを確認することで、現場の状況をスムーズに把握することができるとともに、オブジェクト651aによってロボット10の位置関係も把握することができるので、ロボット10の操作性を向上させることができる。
また、図33に示されているように、立体球CSの内部には、ロボット10の進行方向を示す進行方向アイコン651bが配置されている。表示画面生成部53は、状態情報170に含まれている変数名「DRIVE_H_ANGLE」および「DRIVE_V_ANGLE」に対応する数値に基づいて、進行方向アイコン651bを、全天球画像CE(所定領域画像Q)に重畳させた表示画面600bを生成する。これにより、表示端末50の利用者は、例えば、全天球画像の表示方向の変更または全天球画像の拡大もしくは縮小等の操作によって全天球画像CEの表示位置(所定領域T)を変更した場合でも、表示画面600bに進行方向アイコン651bが表示されているため、ロボット10の状態(向きまたは進行方向)を把握することができるので、ロボット10の操作性を向上させることができる。
さらに、図33に示されているように、立体球CSの内部には、一般撮影装置24の撮影位置を示すロボット10の進行方向を示す進行方向アイコン651bが配置されている。表示画面生成部53は、状態情報170に含まれている変数名「CAMERA_H_ANGLE」および「CAMERA_V_ANGLE」に対応する数値に基づいて、撮影方向アイコン653を、全天球画像CE(所定領域画像Q)に重畳させた表示画面600bを生成する。これにより、表示端末50の利用者は、表示画面600bに示されている詳細画像が、全天球画像CE(所定領域画像Q)内におけるどの位置が撮影された画像であるかを把握することができる。
これにより、表示端末50は、全天球画像CEを用いて疑似的なTPVを生成し、全天球画像CEに示されている拠点の状況だけでなく、ロボット10の位置および移動状態、並びに一般撮影装置24による撮影位置を、全天球画像CEに重畳させて表示させることで、利用者に対して、拠点の状況を把握させながらの操作性を向上させることができる。
以上説明したように、遠隔制御システム1aは、ロボット10(制御装置30)から送信された全天球画像データおよび詳細画像データを、表示端末50に表示させることによって、表示端末50を用いてロボット10の遠隔操作を行う操作者に、ロボット10の周囲の情報をより正確に把握させることができる。また、表示端末50は、全天球画像データとともに、ロボット10の移動状態を示す情報を表示させることで、表示端末50を用いてロボット10の遠隔操作を行う操作者に、ロボット10の周囲の情報に加えて、ロボット10の移動状態を知らせることができる。
なお、ロボット10の状態情報生成部35は、移動制御部41から取得した移動機構17の駆動状態に変化があった場合に、状態情報170を生成する構成であってもよい。また、状態情報生成部35は、予め定められた所定の頻度で状態情報170を生成する構成であってもよい。さらに、ロボット10の送受信部31は、状態情報生成部35によって生成された状態情報170を保持しておき、予め定められた所定の頻度で状態情報170を送信する構成であってもよい。この場合、遠隔制御システム1aは、表示端末50に表示されるロボット10の状態が頻繁に変化することによって生じる表示画面の見づらさを軽減させることができる。
○ロボットの遠隔制御○
続いて、表示端末50に表示された表示画面を用いて行われるロボット10の遠隔制御について説明する。まず、図34を用いて、ロボット10から送信された状態情報170に基づくロボット10の遠隔制御の一例を説明する。図34は、実施形態に係る表示端末におけるロボットの移動状態に基づくロボットの制御処理の一例を示すフローチャートである。
送受信部51は、ロボット10から送信された状態情報170を受信した場合(ステップS31aのYES)、処理をステップS32aへ移行させる。一方で、送受信部51は、状態情報170を受信していない場合(ステップS31aのNO)、ステップS31aの処理を繰り返す。
記憶・読出部59は、条件情報管理DB5002(図22(B)参照)に管理されている条件情報を読み出す(ステップS32a)。次に、判断部56は、記憶・読出部59によって読み出された条件情報を検索し、ステップS31aによって受信された状態情報170に示されている変数のうち、条件情報に示されている条件を満たす項目があるかを判断する(ステップS33a)。そして、判断部36は、状態情報170に示されている変数のうち、条件情報に示されている条件を満たす項目がある場合(ステップS33aのYES)、処理をステップS34aへ移行させる。例えば、状態情報170に含まれる変数名「DRIVE_SPEED」に対応する値が「3.0km/h」である場合、判断部54は、図22(B)の条件情報に示されている項目のうち、「SPEED≦5.0km/h」、「SPEED>1.0km/h」および「SPEED>2.0km/h」が条件を満たしていると判断する。一方で、判断部36は、状態情報170に示されている変数のうち、条件情報に示されている条件を満たす項目がない場合(ステップS33aのNO)、処理を終了する。
次に、要求コマンド生成部57は、ステップS33aの処理によって該当した項目に対応する処理を特定し、要求コマンドを生成する(ステップS34a)。例えば、要求コマンド生成部57は、条件情報に示されている条件を満たす「SPEED≦5.0km/h」、「SPEED>1.0km/h」および「SPEED>2.0km/h」に対応する処理をそれぞれ特定する。そして、要求コマンド生成部57は、条件情報に示されている、特定した処理に対応するコマンドを用いて、要求コマンドを生成する。この場合、要求コマンドに含まれるコマンドは、「FPS(30)」、「RESOLUTION(50%)」および「ZOOM=10」である。なお、要求コマンドには、条件を満たす項目に対応する全てのコマンドを含まれていてもよいし、条件を満たす項目から選択(抽出)された項目に対応するコマンドのみを含まれていてもよい。
そして、送受信部51は、確立された通信管理サーバ90との通信セッションを用いて、要求コマンド生成部57によって生成された要求コマンドを、ロボット10へ送信する(ステップS35a)。これにより、ロボット10の送受信部31は、ロボット10の現在の移動状態に応じた要求コマンドを、表示端末50から受信する。ロボット10は、要求コマンドを受信した場合、後述するコマンド処理(図36参照)を実行する。
このように、表示端末50は、ロボット10の移動状態に基づいて、特殊撮影装置21によって取得される全天球画像の画質の変更を要求することで、表示端末50に表示される全天球画像の画質を変更することができる。表示端末50は、例えば、ロボット10が移動している場合において、全天球画像の画質を下げる要求を、ロボット10へ送信してもよい。具体的には、表示端末50は、ロボット10に対して、全天球画像の解像度を落とす、またはフレームレートを下げる等の要求を送信する。これによって、遠隔制御システム1aは、表示端末50に表示される全天球画像の解像度や更新頻度(フレームレート)を低下させることで、表示端末50を用いてロボット10を操作する操作者が全天球画像を見てロボット10を操作する際に感じる酔い等の不快感を低減させることができる。
また、表示端末50を用いてロボット10の遠隔操作を行う場合、操作者は、表示端末50に表示された全天球画像を見ながら操作入力を行うため、ロボット10から送信される全天球画像にはリアルタイム性が要求される。通信ネットワーク9の混雑等による通信遅延が発生した場合、表示端末50に表示される全天球画像には、実際のロボット10の周囲の状況からタイムラグが生じてしまい、ロボット10を遠隔操作する操作者にとって操作性を損なわせてしまう。そこで、遠隔制御システム1aは、ロボット10の移動状態に応じて、ロボット10から送信される全天球画像の画質を変更することで、通信遅延等による表示画面のタイムラグによって発生する操作性の悪化を防止することができる。
続いて、図35を用いて、表示端末50を用いてロボット10を操作する操作者によって入力された入力コマンドに基づくロボット10の遠隔制御の一例を説明する。図35は、実施形態に係る表示端末における入力コマンドに基づくロボットの制御処理の一例を示すフローチャートである。図35は、表示端末50のディスプレイ511に、表示画面600a(図30参照)が表示されている場合について説明する。なお、表示端末50のディスプレイ511には、表示画面600b(図32参照)が表示されていてもよい。
受付部52は、ディスプレイ511に表示された表示画面600aに対する特定の操作入力を受け付けた場合(ステップS31bのYES)、処理をステップS32bへ移行させる。ここで、特定の操作入力とは、表示画面600aに示されている移動指示キー605のいずれかのキーに対する操作入力である。一方で、受付部52は、表示画面600aに対する特定の操作入力を受け付けていない場合(ステップS31bのNO)、ステップS31bの処理を繰り返す。
記憶・読出部59は、ステップS31bによって受け付けられた特定の操作入力の内容を検索キーとして、ユーザコマンド管理DB5003(図23(A)参照)を検索することにより、対応する処理を抽出する(ステップS32b)。具体的には、記憶・読出部59は、ユーザコマンド管理DB5003を検索し、受付部52によって受け付けられた操作入力に対応する入力コマンドを特定する。そして、記憶・読出部59は、特定した入力コマンドに対応する処理を抽出する。例えば、受付部52によって移動指示キーの「↑(前進)」キーに対する入力が受け付けられた場合、記憶・読出部59は、入力コマンドとして「「↑(前進)」キーの押下」を特定する。そして、記憶・読出部59は、特定した入力コマンドに対応する処理として、「MOVE(10.0,10.0)」を抽出する。
また、判断部56は、ステップS32bによって抽出した処理に対応する処理の種別が「要求コマンドの送付」であるかを判断する(ステップS33b)。判断部56は、抽出した処理に対応する処理の種別が「要求コマンドの送付」である場合(ステップS33bのYES)、処理をステップS34bへ移行させる。そして、要求コマンド生成部57は、判断部56によって抽出された処理に対応する要求コマンドを生成する(ステップS34b)。例えば、要求コマンド生成部57は、抽出した処理が「MOVE(10.0,10.0)」である場合、「MOVE(10.0,10.0)」を含む要求コマンドを生成する。そして、送受信部51は、確立された通信管理サーバ90との通信セッションを用いて、要求コマンド生成部57によって生成された要求コマンドを、ロボット10へ送信する(ステップS35b)。これにより、ロボット10の送受信部31は、操作者による入力操作に応じた要求コマンドを、表示端末50から受信する。ロボット10は、要求コマンドを受信した場合、後述するコマンド処理(図36参照)を実行する。
一方で、ステップS33bにおいて、判断部56は、抽出した処理に対応する処理の種別が「要求コマンドの送付」でない場合、処理をステップS36bへ移行させる。表示端末50は、ステップS32bによって抽出された処理を実行する(ステップS36b)。例えば、表示端末50は、抽出された処理が「マウスの移動」に基づく「LOOK(H,V,Z)」である場合、表示制御部54によって表示領域650に示されている全天球画像の表示位置を変更する。
なお、ステップS32aにおいて、ユーザコマンド管理DB5003に記憶されているユーザコマンドを用いて実行する処理を抽出する例を説明したが、表示端末50は、例えば、移動指示キー605に付与されたイベント等に基づいて、所定の処理を抽出または実行する構成であってもよい。
このように、表示端末50は、ロボット10の移動状態に基づいて、特殊撮影装置21によって取得される全天球画像の画質の変更を要求することで、表示端末50に表示される全天球画像の画質を変更することができる。表示端末50は、例えば、ロボット10が移動している場合において、全天球画像の画質を下げる要求を、ロボット10へ送信してもよい。具体的には、表示端末50は、全天球画像の解像度を落とす、またはフレームレートを下げる等の要求を、ロボット10へ送信する。これによって、遠隔制御システム1aは、表示端末50に表示される全天球画像の解像度や更新頻度(フレームレート)を低下させることで、表示端末50を用いてロボット10を操作する操作者が全天球画像を見てロボット10を操作する際に感じる酔い等の不快感を低減させることができる。
続いて、図36を用いて、図34または図35に示されている処理によって表示端末50から送信される要求コマンドを用いて、ロボット10で実行される処理について説明する。図36は、実施形態に係るロボットにおける表示端末からの要求コマンドに基づくロボットの制御処理の一例を示すフローチャートである。
送受信部31は、表示端末50から送信された要求コマンドを受信した場合(ステップS51のYES)、処理をステップS52へ移行させる。一方で、送受信部31は、要求コマンドを受信していない場合(ステップS51のNO)、ステップS51の処理を繰り返す。
記憶・読出部39は、送受信部31によって受信された要求コマンドに示されているコマンドを検索キーとしてコマンド管理DB3001(図21(A)参照)を検索することにより、対応する処理を抽出する(ステップS52)。そして、ロボット10は、ステップS52によって抽出された処理を実行する(ステップS53)。
例えば、送受信部31によって受信された要求コマンドが「MOVE(10.0,10.0)」である場合、判断部34は、読み出されたコマンドを検索して、コマンド名「MOVE」に対応する処理を抽出する。この場合、抽出される処理は、「左車輪を10.0°回転、右車輪を10.0°回転」である。判断部34は、抽出した処理の実行要求を、移動制御部41へ通知する。そして、移動制御部41は、判断部34によって抽出された処理に基づいて、ロボット10の移動機構17の左車輪を10.0°回転させて、右車輪を10.0°回転させる。なお、判断部34によって抽出された処理によって実行要求の通知先は異なる。例えば、送受信部31によって受信された要求コマンドが「AIM」、「FPS」または「RESOLUTION」の場合、実行要求の通知先は、撮影制御部37である。
このように、ロボット10は、図34または図35に示されている処理等によって表示端末50から送信された要求コマンドに基づいて、処理または動作を実行することができるとともに、要求コマンドに基づいて撮影されて取得された画像(全天球画像データまたは詳細画像データ)を、表示端末50へ送信する。これにより、遠隔制御システム1aは、表示端末50を用いてロボット10を遠隔操作することができるとともに、遠隔操作の結果、ロボット10が取得した情報(例えば、全天球画像データまたは詳細画像データ)を、ロボット10の操作者が用いる表示端末50に表示させることができる。
○表示端末における表示制御○
○全天球画像の表示位置の変更
続いて、図37〜図41を用いて、表示端末50に対する全天球画像および詳細画像の示の表示について説明する。まず、図37を用いて、表示端末50に表示された全天球画像の表示位置を変更する処理について説明する。図37は、実施形態に係る表示端末における全天球画像の表示位置を変更処理の一例を示すフローチャートである。図37は、表示端末50のディスプレイ511に図39(A)に示されている表示画面600cが表示されている場合について説明する。図39(A)に示されている表示画面600cには、図32に示されている表示画面600bと異なり、全天球画像を表示させる表示領域650のみが示されている。表示端末50は、後述する表示画面の切り替え処理(図38および図39(B)参照)によって、全天球画像と詳細画像の表示を切り替えることができる。
表示端末50を用いる利用者は、外部機器接続I/F513を介して表示端末50に接続されたマウス500を移動させることで、ディスプレイ511に表示されている全天球画像の表示位置を変更することができる。まず、表示端末50の受付部52は、マウス500の移動を検知した場合(ステップS61のYES)、処理をステップS62へ移行させる。一方で、受付部52は、マウス500の移動を検知していない場合(ステップS61のNO)、ステップS61の処理を繰り返す。
次に、表示位置特定部57は、マウス500の移動量を算出する(ステップS62)。そして、表示制御部54は、表示位置特定部57によって算出された移動量に基づいて、表示領域650に表示された全天球画像の表示位置を変更する(ステップS63)。具体的には、表示制御部54は、表示領域に表示されている全天球画像の表示位置(例えば、図33に示されている所定領域T(例えば、第1の領域))の中心から、表示位置特定部57によって算出された移動量に応じた距離の離れた位置(領域)を、所定領域T(例えば、第2の領域)として、表示領域650に表示させる。ここで、表示位置の変更前に表示領域650に表示されている全天球画像の一部である第1の領域を示す画像は、第1の画像の一例であり、表示位置の変更後に表示領域650に表示されている全天球画像の一部である第2の領域を示す画像は、第2の画像の一例である。
従来、マウスによって表示画面の表示位置を変更する場合、ディスプレイに表示されたマウスカーソルの位置を検出し、マウスカーソルの移動量に応じて表示位置を変更していた。しかしながら、この方法では、マウスカーソルが表示画面の端にいった場合にはそれ以上動かせなくなる。そのため、いったん移動を解除してマウスカーソル表示画面の中央に戻して、再度動かすといった工程を行わなければならず、利用者にとって手間が掛かっていた。そこで、表示端末50は、マウスカーソルの移動量ではなく、マウス500の移動量に応じて全天球画像の表示位置を変更することで、ディスプレイ511の画面サイズ等に依存せずに、利用者が見たい位置の画像をスムーズに表示させることができる。
判断部56は、ステップS61によって検知されたマウス500の移動が停止したかを判断する(ステップS64)。判断部56は、例えば、受付部52によってマウス500の移動が検知された後、マウス500の移動が検知されなくなった時間が所定の時間を超えた場合、マウス500の移動が停止したと判断する。判断部56は、受付部52によってマウス500の停止が検知されたと判断した場合(ステップS64のYES)、処理をステップS65へ移行させる。そして、要求コマンド生成部57は、マウスの移動が検知された場合、「AIM(H, V, Z)」を含む要求コマンドを生成する(ステップS65)。そして、送受信部51は、確立された通信管理サーバ90との通信セッションを用いて、ステップS65によって生成された要求コマンドを、ロボット10へ送信する(ステップS66)。なお、マウス500が移動するたびに要求コマンドをロボット10に送信してもよいが、その場合、要求コマンドを送信する頻度が多くなりすぎるため、ここでは、移動後にマウス500が動かなくなってから要求コマンドを送信する。
一方で、ステップS64において、判断部56は、受付部52によってマウス500の停止が検知されないと判断した場合(ステップS64のNO)、処理をステップS67へ移行させる。要求コマンド生成部57は、マウスの移動が検知されない場合、「LOOK(H, V, Z)」を含む要求コマンドを生成する(ステップS67)。そして、送受信部51は、確立された通信管理サーバ90との通信セッションを用いて、ステップS67によって生成された要求コマンドを、ロボット10へ送信する(ステップS68)。さらに、表示端末50は、マウス500の移動が停止されるまで(ステップS64のYES)、ステップS62からの処理を繰り返す。
これにより、表示端末50は、マウス500の移動に応じて、ディスプレイ511に表示される全天球画像の一部である領域(所定領域T)を変更し、異なる領域を示す画像をディスプレイ511に表示させることができるので、利用者が全天球画像を見ながら遠隔拠点の状況を確認する際の操作性を向上させることができる。
○表示画像の切り替え
続いて、図38を用いて、図37に示されている処理によって生成された要求コマンドを、ロボット10に送信した場合の処理について説明する。図38は、実施形態に係る一般撮影装置における撮影位置の変更処理の一例を示すシーケンス図である。図38は、図37のステップS66に示されている「AIM」コマンドを表示端末50からロボット10へ送信する場合の処理を説明する。
まず、表示端末50の送受信部51は、ロボット10に対して、要求コマンド生成部57によって生成された「AIM」を含む要求コマンドを送信する(ステップS81−1,ステップS81−2)。これにより、ロボット10の送受信部31は、表示端末50から送信された要求コマンドを受信する。
次に、ロボット10の記憶・読出部39は、送受信部31によって受信された要求コマンドに示されているコマンドを検索キーとしてコマンド管理DB3001(図21(A)参照)を検索することにより、対応する処理を読み出す(ステップS82)。この場合、記憶・読出部39は、コマンド「AIM」に対応する処理を読み出す。そして、撮影制御部37は、ステップS82によって読み出された処理に基づいて、一般撮影装置24による撮影位置を変更する(ステップS83)。具体的には、撮影制御部37は、撮影方向がロボット10の正面に対して水平角度H°、垂直角度V°になるように移動させ、ズーム量をZ%に変更することを示す指示情報を、一般撮影装置24に対して送信する。そして、一般撮影装置24は、撮影制御部37から送信された指示情報に示すパラメータ(H,V,Z)で、撮影を行い、詳細画像を取得する。ここで、一般撮影装置24が可動カメラ23(図3および図4参照)である場合、一般撮影装置24は、内部の可動機構を用いて回転することによって、指示情報に示すパラメータ(H,V,Z)に向けて撮影位置を変更する。また、一般撮影装置24が通常カメラ25(図5乃至図9参照)である場合、一般撮影装置24は、可動アーム11を回転・変形させることによって、指示情報に示すパラメータ(H,V,Z)に向けて撮影位置を変更する。
次に、状態情報生成部35は、撮影制御部37によって送信された指示情報に基づいて、ロボット10の状態を示す状態情報170を生成する(ステップS84)。この場合、状態情報生成部35は、一般撮影装置24によって取得された詳細画像の撮影位置に関するパラメータを示す状態情報170を生成する。
そして、送受信部31は、確立された通信管理サーバ90の通信セッションを用いて、ステップS84によって生成された状態情報170、および一般撮影装置24によって撮影された詳細画像データを、表示端末50へ送信する(ステップS85−1,ステップS85−2)。これにより、表示端末50の送受信部51は、ロボット10から送信された状態情報170および詳細画像データを受信する。
そして、表示端末50の記憶・読出部59は、送受信部51によって受信された状態情報170を、記憶部5000に管理されている状態情報管理DB5001(図22(A)参照)に記憶させる(ステップS86)。具体的には、記憶・読出部59は、受信された状態情報170に含まれるそれぞれの数値を、状態情報管理テーブルの対応する変数名の箇所に記憶させることで、状態情報管理テーブルに含まれる各項目の値を更新する。
次に、表示画面生成部53は、ステップS16−2によって受信された状態情報170を用いて、ディスプレイ511に表示される表示画面600dを生成する(ステップS87)。具体的には、まず、記憶・読出部59は、条件情報管理DB5002(図22(B)参照)に管理されている条件情報を読み出す。次に、判断部56は、記憶・読出部59によって読み出された条件情報を検索する。判断部56は、ステップS85−2によって受信された状態情報170に含まれる変数名「CAMERA_H_ANGLE」、「CAMERA_V_ANGLE」および「CAMERA_ZOOM」の数値(パラメータ)に基づく一般撮影装置24の撮影位置が、全天球画像の表示位置と近い場合、判断部72は、当該条件を満たしていると判断する。そして、表示画面生成部53は、ステップS85−2によって受信された詳細画像データに係る詳細画像が示されている表示画面600dを生成する。
なお、以下では、表示画面600dについて説明するが、判断部72によって条件情報に示されている条件を満たす項目がない、一般撮影装置24の撮影位置が、全天球画像の表示位置と近いと判断されなかった場合、表示画面生成部53は、図39(A)に示されているような全天球画像が示されている表示画面600cを生成する。ここで、「一般撮影装置24の撮影位置が、全天球画像の表示位置と近い」とは、一般撮影装置24の撮影位置と全天球画像の表示位置が、同一である必要はなく、所定の範囲内に収まっていればよい。また、一般撮影装置24の撮影位置は、状態情報170に示されている変数ではなく、ステップS81によって送信された要求コマンド(「AIM」)に示されている変数を撮影位置の予測値として用いる構成であってもよい。
そして、表示制御部54は、表示画面生成部53によって生成された表示画面600dを、ディスプレイ511に表示させる(ステップS88)。図39(B)に示されている表示画面600dには、図39(A)に示されている表示画面600cに表示された全天球画像に変えて、詳細画像を表示させる表示領域630が示されている。上述のように、表示端末50は、一般撮影装置24の撮影位置が、全天球画像の表示位置に追いついた場合、全天球画像から詳細画像へ表示を自動的に切り替える。
これにより、遠隔制御システム1aは、全天球画像の表示位置の変更をトリガーとして表示端末50から送信された要求コマンドに基づいて、一般撮影装置24の撮影位置を、全天球画像の表示位置に追従するように変更することができる。また、表示端末50は、全天球画像の表示位置に追従して撮影位置が変更された一般撮影装置24によって取得された詳細画像を、全天球画像に変えて表示させることで、利用者は、詳細画像の撮影位置が追いつくまでは、全天球画像を見て遠隔拠点の状況を把握し、詳細画像の撮影位置が追いついた場合、詳細画像を見て拠点のより詳しい情報を把握することができる。さらに、表示端末50の利用者は、一般撮影装置24の撮影位置が全天球画像の表示位置に追いつくまでは、表示画面600cに示されている撮影位置アイコン653を見て、一般撮影装置24の撮影位置を把握することができるので、全天球画像から詳細画像に切り替わるタイミングを予測することができる。このように、表示端末50は、全天球画像と詳細画像を条件に応じて切り替えて表示させることによって、利用者に遠隔拠点の状況を効率良くまたは高精度に確認させることができるので、利用者にとっての操作性を向上させることができる。
また、図4(B)に示されているように、ロボット10が複数の一般撮影装置24(可動カメラ23)を備えている場合、ロボット10の撮影制御部37は、要求コマンドに含まれる変数に応じて、撮影指示を行う一般撮影装置24を選択することができる。撮影制御部37は、例えば、全天球画像の表示位置が立体球CSの上方向である場合には、可動カメラ23aに撮影指示を行い、全天球画像の表示位置が立体球CSの下方向である場合には、可動カメラ23bに撮影指示を行う。そして、表示端末50は、可動カメラ23aまたは可動カメラ23bのいずれかによって取得された詳細画像を表示させる。これにより、遠隔制御システム1aは、例えば、天井や床等の一般撮影装置24の撮影における死角を軽減させることができる。なお、撮影制御部37は、可動カメラ23a,23bの両方に撮影指示を行い、表示端末50は、複数の詳細画像を表示させる構成であってもよい。
従来は、特殊撮影装置21と一般撮影装置24が独立して制御されるものであったため、特殊撮影装置21によって取得された全天球画像の見たい方向を見たあと、一般撮影装置24に対して撮影指示を行う必要があった。そこで、遠隔制御システム1aは、全天球画像の表示位置と一般撮影装置24の撮影位置を連動させることで、遠隔拠点の全体把握と細部の注視した箇所の把握をシームレスに実現することができるので、操作性の向上と表示画像の解像度の向上とを両立させることができる。
なお、表示画面600dは、表示画面600c等と同様に、ロボット10の位置を示すオブジェクト651aやロボット10の進行方向を示す進行方向アイコン651bを表示させてもよい。また、図39(A)および図39(B)は、一画面に表示される全天球画像と詳細画像の表示を切り替える例を説明したが、表示端末50は、図30および図32に示されている表示画面600a,600bのように、全天球画像および詳細画像の両方を表示させてもよい。この場合、表示端末50は、全天球画像と詳細画像の表示の切り替えは行わないが、全天球画像の表示位置に追従させて撮影位置を変更する一般撮影装置24によって取得された詳細画像を表示させることができる。さらに、図38において、全天球画像と詳細画像の表示を自動で切り替える例を説明したが、表示領域630または表示領域650の右上にあるそれぞれのタブ(「全天球」または「詳細」)を選択することによって、全天球画像と詳細画像の表示を手動で切り替える構成であってもよい。
続いて、図40を用いて、表示端末50に表示される表示画面の別の例を説明する。図40に示されている表示画面600eは、全天球画像の表示位置が一般撮影装置24によって撮影できない位置である場合に表示される画面例である。一般撮影装置24には、可動カメラ23および通常カメラ25のいずれであっても、構造上可動できない方向や範囲がある。一般撮影装置24は、例えば、真後ろ、床等の真下または天井等の真上の方向は、撮影することができない。そこで、表示画面600eには、全天球画像が示されている表示領域650に、一般撮影装置24によって撮影できない領域(不可動領域)を示す画像655が示されている。表示画面600eは、全天球画像の表示位置として、ロボット10の下方向にした場合の例である。
これにより、表示端末50は、一般撮影装置24が撮影できない位置に全天球画像の表示位置が変更された場合、全天球画像から詳細画像に切り替えられない状況を、利用者に直感的に把握させることができる。また、表示端末50の利用者は、表示端末50に表示された一般撮影装置24によって撮影できない領域(不可動領域)を示す画像655を確認することで、ロボット10の移動操作等の代替手段を迅速に検討することができる。
○その他の表示画面の画面例
ここで、表示端末50に表示される表示画面の別の例を説明する。表示端末50は、表示端末50に設けられたディスプレイ511の種類に応じて異なる表示画面を表示させることができる。図41は、実施形態に係る表示端末の一例としてのヘッドマウントディスプレイに表示される表示画面の一例を示す図である。図41に示されている表示画面600fは、ロボット10から送信されていきた全天球画像データおよび詳細画像データが、VR(Virtual Reality)端末の一例であるヘッドマウントディスプレイ(HMD)に表示された画面の一例である。
図41に示されている表示画面600fには、画面全体が全天球画像の表示領域650として表示され、詳細画像の表示領域630も重畳して表示されている。表示画面600fが表示されているヘッドマウントディスプレイを装着した操作者は、常に周辺視野で遠隔拠点の全体を把握することができるとともに、頭の向きを変えることで、全天球画像の任意の方向を見ることができる。また、表示画面600fに表示される各種ボタンまたはアイコンは、操作者の頭の向きに追従して移動するため、全天球画像の表示位置が変化したとしても、所定の位置に表示される。さらに、ヘッドマウントディスプレイの場合、ジャイロセンサ等により操作者が見ている方向を取得することができるので、表示端末50は、上記で説明した場合と同様に、操作者が見ている方向を全天球画像の表示位置として、ロボット10へフィードバックすることができる。なお、表示端末50は、ヘッドマウントディスプレイの場合のみならず、広角スクリーンまたは全方位ディスプレイ等を用いて、図41に示されているような表示画面600fを表示させてもよい。
○ロボットに表示される表示画面○
続いて、図42および図43を用いて、ロボット10に表示される表示画面について説明する。以下、ロボット10には、図10に示されているロボット10c(10c1〜10c3)のように、ディスプレイ150が備えられているものとして説明する。図42は、実施形態に係る遠隔制御システムにおける表示端末によって取得された撮影画像をロボットに表示させる処理の一例を示すシーケンス図である。
まず、表示端末50の送受信部51は、確立された通信管理サーバ90との通信セッションを用いて、CMOSセンサ505aによって取得された撮影画像データを、ロボット10へ送信する(ステップS151−1,ステップS151−2)。ここで、表示端末50のCMOSセンサ505aは、表示端末50を用いてロボット10を遠隔操作している操作者を撮影する。これにより、ロボット10の送受信部31は、表示端末50から送信された撮影画像データを受信する。
次に、ロボット10の記憶・読出部39は、撮影パラメータ管理DB3002に管理されている撮影パラメータを読み出す(ステップS152)。表示制御部54は、ステップS151−2によって受信された撮影画像データ、およびステップS152によって読み出された撮影パラメータを用いて、ディスプレイ150に表示させる表示画面800を生成する(ステップS153)。そして、表示制御部54は、ステップS153によって生成された表示画面800を、ディスプレイ150に表示させる(ステップS154)。
ここで、図43を用いて、ロボット10のディスプレイ150に表示される表示画面について説明する。図43(A)に示されている表示画面800には、表示端末50を用いてロボット10を遠隔操作している操作者の顔の画像が含まれている。ロボット10が設置された拠点にいるユーザは、表示画面800を見ることで、誰がロボット10を操作しているのかが把握することができる。
また、表示画面800には、表示端末50に表示されている全天球画像の表示位置または一般撮影装置24によって撮影されている撮影位置等の操作者が見ている方向を示す画像810が示されている。画像810は、例えば、長い矢印811で全天球画像の表示方向を表し、短い矢印813で一般撮影装置24の撮影方向を表している。これにより、ロボット10が設置された拠点にいるユーザは、表示端末50に表示された画面上で、操作者がどの方向を見ているのかを把握することができる。例えば、操作者は、表示画面800上では正面を向いていたとしても、表示端末50に表示された全天球画像上でロボット10の背後や横を見ている場合がある。そのため、ロボット10が設置された拠点にいるユーザは、表示画面800に表示された画像810を見ることで、操作者が見ている方向を把握することができる。
図43(B)に示されている表示画面850には、操作者の顔の画像に変えて、操作者の後頭部を模した画像が示されている。表示画面850は、例えば、図10(B)に示されているようなロボット10b2に設置された後方のディスプレイ150bに表示される。この場合、ロボット10b2に設置された前方のディスプレイ150aには、上述の表示画面800が表示される。また、表示画面850には、表示画面800と同様に、操作者が見ている方向を示す画像810が示されている。これにより、ロボット10の周囲にいるユーザは、ロボット10の後方からでも操作者がどの方向を見ているかを把握することができる。なお、表示画面850は、操作者の後頭部を模した画像に限られず、表示端末50において、実際に操作者の後頭部が撮影された画像が示されていてもよい。
ここで、全天球画像の表示方向(矢印811)は、操作者の「目」に相当し、一般撮影装置24の撮影方向(矢印813)は、操作者の「首または頭」に相当するものとする。この操作者の「目」は、操作者がちらりと見ている方向を表し、操作者の「首または頭」は、操作者がじっくり見ている方向を表している。操作者は、ロボット10の周囲をじっくり見ている方向とちらっと見ている方向がある。ロボット10は、矢印811および矢印813を表示画面800a,800bに表示させることで、ロボット10の周囲にいるユーザに、操作者が見ている方向を正確に把握させることができるとともに、操作者の意図を感じさせることができる。
なお、画像810は、矢印811,813に変えて、点の位置で方向を表してもよいし、目や首のアイコンでユーザが直感的に認識できるように表してもよい。また、ロボット10は、図10(C)に示されているロボット10c3のように、操作者が見ている方向を、ランプ160等の通知手段によって、ロボット10の周囲のユーザに把握させる構成であってもよい。
●実施形態の変形例●
次に、実施形態の変形例に係る遠隔制御システムついて説明する。なお、上記実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。実施形態の変形例に係る遠隔制御システム1bは、情報処理サーバ70が表示端末50に表示させる表示画像を生成するするシステムである。
●システム構成
図44は、実施形態の変形例に係る遠隔制御システムのシステム構成の一例を示す図である。図44に示されているように、実施形態の変形例に係る遠隔制御システム1bには、図1に示されている構成に加えて、情報処理サーバ70が備えられている。情報処理サーバ70は、通信ネットワーク9を介して、ロボット10、表示端末50および通信管理サーバ90と通信可能に接続されている。情報処理サーバ70は、通信管理サーバ90によって確立された通信セッションを用いて、ロボット10または表示端末50との間で、画像データの送受信を行う。情報処理サーバ70は、ロボット10の状態に応じてロボット10から送信されてきた全天球画像データおよび詳細画像データの画像処理を行い、表示端末50に対して、処理データを送信する。なお、情報処理サーバ70は、単一のコンピュータによって構築されてもよいし、各部(機能、手段または記憶部)を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。
ここで、情報処理サーバ70と通信管理サーバ90は、サーバシステム7を構成する。このサーバシステム7は、情報処理サーバ70と通信管理サーバ90の各部(機能または手段)を備える単一のコンピュータによって構成されてもよい。また、ロボット10とサーバシステム7は、拠点制御システム3を構成する。さらに、表示端末50とサーバシステム7は、表示制御システム5を構成する。
なお、情報処理サーバ70のハードウエア構成は、図13に示されているような通信管理サーバ90のハードウエア構成と同様であるため、説明を省略する。以下、情報処理サーバ70は、図13に示されているようなハードウエア構成を有しているものとして説明する。
●機能構成
図45は、実施形態の変形例に係る遠隔制御システムの機能構成の一例を示す図である。なお、情報処理サーバ70以外の装置または端末の機能は、図20に示されているような機能と同様であるため、説明を省略する。
情報処理サーバ70は、送受信部71、判断部72、データ処理部73および記憶・読出部79を有している。これら各部は、図13に示されている各構成要素のいずれかが、RAM903上に展開されたプログラムに従ったCPU901からの命令によって動作することで実現される機能、または機能する手段である。また、情報処理サーバ70は、図13に示されているROM902、HD904または記録メディア906によって構築される記憶部7000を有している。
送受信部71は、図13に示されているCPU901からの命令、およびネットワークI/F908によって実現され、通信ネットワーク9を介して、他の装置との間で各種データまたは情報の送受信を行う機能である。送受信部71は、例えば、通信ネットワーク9を介して、全天球画像データおよび詳細画像データを、ロボット10(制御装置30)から受信する。また、送受信部71は、例えば、通信ネットワーク9を介して、ロボット10の状態を示す状態情報170を、ロボット10(制御装置30)から受信する。さらに、送受信部71は、例えば、通信ネットワーク9を介して、データ処理部73によって生成された表示画面データを、表示端末50へ送信する。
判断部72は、図13に示されているCPU901からの命令によって実行され、各種判断を行う機能である。データ処理部73は、図13に示されているCPU901からの命令によって実行され、送受信部71によって受信された各種画像データに基づいて、表示端末50に表示させる表示画面データを生成したり、ロボット10に特定の処理を実行されるための実行要求である要求コマンドを生成したりする機能である。
記憶・読出部79は、図13に示されているCPU901からの命令によって実行され、記憶部7000に各種データを記憶させ、または記憶部7000から各種データを読み出す機能である。また、記憶部7000には、状態情報管理DB7001、条件情報管理DB7002、ユーザコマンド管理DB7003および表示状態管理DB7004が構築されている。これらは、それぞれ表示端末50における状態情報管理DB5001、条件情報管理DB5002、ユーザコマンド管理DB5003および表示状態管理DB5004と同様の構成であるため、説明を省略する。さらに、記憶部7000は、送受信部71によって受信された全天球画像データおよび詳細画像データを記憶している。なお、記憶部7000に記憶されている全天球画像データおよび詳細画像データは、送受信部71によって受信されてから所定の時間経過した場合に削除される構成であってもよいし、送受信部71によって表示端末50へ送信(出力)されてから所定の時間経過した場合に削除される構成であってもよい。
●実施形態の変形例の処理または動作
続いて、図46および図47を用いて、実施形態の変形例に係る遠隔制御システム1bの動作または処理について説明する。なお、図46および図47において、ロボット10が備える制御装置30によって実行される処理は、ロボット10によって実行される処理として説明する。図46は、実施形態の変形例に係る遠隔制御システムにおけるロボットから表示端末への各種データの送信処理の一例を示すシーケンス図である。
まず、ロボット10の送受信部31は、情報処理サーバ70に対して、特殊撮影装置21によって取得された全天球画像データ、および一般撮影装置24によって取得された詳細画像データを送信する(ステップS201−1,ステップS201−2)。これにより、情報処理サーバ70の送受信部71は、ロボット10から送信された全天球画像データおよび詳細画像データを受信する。
次に、情報処理サーバ70のデータ処理部73は、送受信部71によって受信された全天球画像データおよび詳細画像データを用いて、表示端末50に表示させる表示画面に係る表示画面データを生成する(ステップS202)。ここでデータ処理部73によって生成される表示画面データに係る表示画面は、例えば、図39に示されているような表示画面600cである。なお、データ処理部73によって生成される表示画面データに係る表示画面は、図30に示されている表示画面600aまたは図32に示されている表示画面600bであってもよい。そして、情報処理サーバ70の送受信部71は、表示端末50に対して、データ処理部73によって生成された表示画面データを送信する(ステップS203)。これにより、表示端末50の送受信部51は、情報処理サーバ70から送信された表示画面データを受信する。
そして、表示制御部54は、ステップS203によって受信された表示画面データに係る表示画面600cを、ディスプレイ511に表示させる(ステップS204)。これによって、表示端末50を用いてロボット10を操作する操作者は、ロボットが位置する拠点の状況を、全天球画像が示されている表示画面600cを見ながら確認することができる。
次に、ロボット10は、表示端末50から送信される要求コマンド等に基づいて、一般撮影装置24による撮影位置を変更する(ステップS205)。状態情報生成部35は、移動制御部41から取得される移動機構17の駆動状態に基づいて、ロボット10の状態を示す状態情報170を生成する(ステップS206)。ステップS205およびステップS206の処理は、図38に示されているステップS83およびステップS84の処理と同様であるため、説明を省略する。
そして、送受信部31は、情報処理サーバ70に対して、状態情報生成部35によって生成された状態情報170および撮影画像取得部38によって取得された詳細画像データを送信する(ステップS207−1,ステップS207−2)。これにより、情報処理サーバ70の送受信部71は、状態情報170および詳細画像データを受信する。情報処理サーバ70のデータ処理部73は、送受信部71によって受信された状態情報170および詳細画像データに基づいて、ステップS202によって生成された表示画面データに対する画像処理を実行する(ステップS208)。ここで、情報処理サーバ70における画像処理の内容について説明する。図47は、実施形態の変形例に係る情報処理サーバにおける表示画面データの画像処理の一例を示すフローチャートである。
送受信部71は、ロボット10から送信された状態情報170を受信した場合(ステップS208−1のYES)、処理をステップS208−2へ移行させる。一方で、送受信部71は、状態情報170を受信していない場合(ステップS208−1のNO)、ステップS208−1の処理を繰り返す。
記憶・読出部79は、条件情報管理DB7002に管理されている条件情報を読み出す(ステップS208−2)。次に、判断部72は、記憶・読出部79によって読み出された条件情報を検索し、ステップS207−2によって受信された状態情報170に示されている変数のうち、条件情報に示されている条件を満たす項目があるかを判断する(ステップS208−3a)。そして、判断部72は、状態情報170に示されている変数のうち、条件情報に示されている条件を満たす項目がある場合(ステップS208−3のYES)、処理をステップS208−4へ移行させる。例えば、状態情報170に含まれる変数名「CAMERA_H_ANGLE」、「CAMERA_V_ANGLE」および「CAMERA_ZOOM」の数値(パラメータ)に基づく一般撮影装置24の撮影位置が、全天球画像の表示位置と近い場合、判断部72は、当該条件を満たしていると判断する。一方で、判断部72は、状態情報170に示されている変数のうち、条件情報に示されている条件を満たす項目がない場合(ステップS208−3のNO)、処理を終了する。
次に、データ処理部73は、ステップS202によって生成された表示画面データに対して、ステップS208−3の処理によって該当する項目に対応する処理を実行する(ステップS208−4)。例えば、一般撮影装置24の撮影位置が全天球画像の表示位置に近い場合、データ処理部73は、ステップS207−2によって受信された詳細画像データが示されている表示画面(600d)に係る表示画面データを生成する。
図46に戻り、情報処理サーバ70の送受信部71は、表示端末50に対して、送受信部71によって受信された状態情報170、およびデータ処理部73によって生成された表示画面データを送信する(ステップS209)。これにより、表示端末50の送受信部51は、情報処理サーバ70から送信された状態情報170および表示画面データを受信する。
表示端末50の記憶・読出部59は、送受信部51によって受信された状態情報170を、記憶部5000に管理されている状態情報管理DB5001(図22(A)参照)に記憶させる(ステップS210)。具体的には、記憶・読出部59は、受信された状態情報170に含まれるそれぞれの数値を、状態情報管理テーブルの対応する変数名の箇所に記憶させることで、状態情報管理テーブルに含まれる各項目の値を更新する。そして、表示制御部54は、ステップS209によって受信された表示画面データに係る表示画面600dを、ディスプレイ511に表示させる(ステップS211)。
このように、実施形態の変形例に係る遠隔制御システム1bは、情報処理サーバ70を用いる場合であっても、全天球画像と詳細画像を条件に応じて切り替えて表示端末50に表示させることによって、利用者に遠隔拠点の状況を効率良くまたは高精度に確認させることができるので、利用者にとっての操作性を向上させることができる。
●まとめ●
以上説明したように、本発明の一実施形態に係る表示端末50は、遠隔拠点の被写体を撮影する特殊撮影装置21(撮影手段の一例)を備えた制御装置30(通信装置の一例)と、特殊撮影装置21によって撮影された全天球画像(広角画像の一例)をストリーミング通信する。表示端末50は、制御装置30から送信された全天球画像の一部である所定の領域(例えば、所定領域T)を、ディスプレイ511(表示部の一例)に表示させる表示制御部54(表示制御手段の一例)と、表示端末50に接続され、ディスプレイ511に表示された全天球画像の表示を制御するマウス500(外部入力手段の一例)と、を備える。そして、表示制御部54は、マウス500の移動に応じて、ディスプレイ511に表示させる全天球画像の一部である所定の領域を変更する。これにより、表示端末50は、マウス500の移動に応じて、ディスプレイ511に表示される全天球画像の一部である領域を変更することができるので、利用者が全天球画像を見ながら遠隔拠点の状況を確認する際の操作性を向上させることができる。
また、本発明の一実施形態に係る表示端末50は、更に、マウス500(外部入力手段の一例)の移動を検知する受付部52(検知手段の一例)を備える。そして、表示端末50の表示制御部54(表示制御手段の一例)は、全天球画像(広角画像の一例)の一部である第1の領域を示す第1の画像を、ディスプレイ511(表示部の一例)に表示させるとともに、マウス500の移動が検知された場合、第1の画像に変えて、全天球画像の一部である領域のうち第1の領域とは異なる第2の領域を示す第2の画像をディスプレイ511に表示させる。これにより、表示端末50は、マウス500の移動に応じて、全天球画像の一部である異なる領域を示す画像をディスプレイ511に表示させることができるので、利用者が全天球画像を見ながら遠隔拠点の状況を確認する際の操作性を向上させることができる。
さらに、本発明の一実施形態に係る表示端末50は、更に、マウス500(外部入力手段の一例)の移動量を算出する表示位置特定部55(算出手段の一例)を備える。そして、表示端末50の表示制御部54(表示制御手段の一例)は、ディスプレイ511に表示されている第1の領域の中心から、算出された移動量に応じた距離の離れた第2の領域を示す第2の画像を、ディスプレイ511に表示させる。これにより、表示端末50は、マウスカーソルの移動量ではなく、マウス500の移動量に応じて全天球画像の表示位置を変更することで、ディスプレイ511の画面サイズ等に依存せずに、利用者が見たい位置の画像をスムーズに表示させることができる。
また、本発明の一実施形態に係る表示端末50において、全天球画像(広角画像の一例)は、三次元の仮想空間において立体球(例えば、立体球CS)として表され、表示制御部54(表示制御手段の一例)は、マウス500(外部入力手段の一例)の移動に応じて、全天球画像を見る視点の位置にある仮想カメラICの位置を変更することにより、ディスプレイ511(表示部の一例)に表示させる所定の領域を変更する。また、表示端末50は、遠隔拠点に設置されたロボット10(移動体の一例)の位置を示すオブジェクト651a(オブジェクト画像の一例)を、全天球画像に重畳させた表示画像(例えば、表示画面600b、表示画面600c、表示画面600eまたは表示画面600f)を生成する表示画面生成部53(生成手段の一例)を備え、表示制御部54は、生成された表示画像をディスプレイ511に表示させる。さらに、表示画面生成部53は、三次元の仮想空間の中心位置にオブジェクト651aを配置させ、オブジェクト651aが見えるように中心位置の上後方に配置された仮想カメラICから見た画像を、表示画像として生成する。これにより、表示端末50は、仮想カメラICを球体の三次元の仮想空間(立体球CS)の中心位置とは離れた位置に配置し、配置された位置を視野の原点とすることで、ロボット10の存在(オブジェクト651a)を、仮想カメラICの視野に入れることができる。また、表示端末50の利用者は、いわゆる疑似第三者視点によって、ロボット10の存在(オブジェクト651a)と全天球画像(例えば、所定領域画像Q)の両方を同時に把握することができるので、現場の状況をスムーズに把握することができるとともに、ロボット10の操作性を向上させることができる。
さらに、本発明の一実施形態に係る表示端末50において、表示画面生成部53(生成手段の一例)は、ディスプレイ511(表示部の一例)に表示されている所定の領域が変更された場合、オブジェクト651a(オブジェクト画像の一例)が見えるように配置が変更された仮想カメラICから見た画像を、表示画像として生成する。これにより、表示端末50は、全天球画像の表示位置(例えば、所定領域T)が変更されたとしても、ロボットの存在(オブジェクト651a)を利用者に確認させることができる。
また、本発明の一実施形態に係る表示端末50において、表示画面生成部53(生成手段の一例)は、ロボット10(移動体の一例)の進行方向を示す進行方向アイコン651b(進行方向画像の一例)を、全天球画像(広角画像の一例)に重畳させた表示画像(例えば、表示画面600b、表示画面600c、表示画面600eまたは表示画面600f)を生成する。また、表示画面生成部53は、三次元の仮想空間内に進行方向アイコン651bを配置させ、仮想カメラICから見た画像を、表示画像として生成する。これにより、表示端末50の利用者は、全天球画像の表示方向の変更または全天球画像の拡大もしくは縮小等の操作によって全天球画像の表示位置(例えば、所定領域T)を変更した場合でも、表示画面に進行方向アイコン651bが表示されているため、ロボット10の状態(向きまたは進行方向)を把握することができる。
さらに、本発明の一実施形態に係る遠隔制御システムは、表示端末50と、制御装置30(通信端末の一例)を備えたロボット10(移動体の一例)と、を備える遠隔制御システム1a,1bである。ロボット10は、表示端末50の利用者が全天球画像(広角画像の一例)を見ている方向を示す表示手段(例えば、ディスプレイ150またはランプ160)を備える。また、ロボット10は、表示端末50の利用者が撮影された撮影画像を、表示端末50から受信する送受信部31(受信手段の一例)と備え、ディスプレイ150(表示手段の一例)は、受信された撮影画像(例えば、表示画面800)を表示する。また、ロボット10のランプ160(表示手段の一例)は、表示端末50の利用者が全天球画像を見ている方向を点灯させる。これにより、遠隔制御システム1a,1bは、ロボット10が設置された拠点にいるユーザに、誰がロボット10を操作しているのかが把握させることができるとともに、操作者が見ている方向を把握させることができる。
●補足●
上記で説明した実施形態の各機能は、一または複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
また、上記で説明した実施形態の各種テーブルは、機械学習の学習効果によって生成されたものでもよく、関連づけられている各項目のデータを機械学習にて分類付けすることで、テーブルを使用しなくてもよい。ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり,コンピュータが,データ識別等の判断に必要なアルゴリズムを,事前に取り込まれる学習データから自律的に生成し,新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
これまで本発明の一実施形態に係る表示端末、遠隔制御システム、表示制御方法およびプログラムについて説明してきたが、本発明は上述した実施形態に限定されるものではなく、他の実施形態の追加、変更または削除等、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。