(57)【特許請求の範囲】
【請求項１】
複数のロボットと制御センタとの間でデータを中継する中継サーバであって、
前記複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信部と、
前記受信部により受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合部と、
前記受信部により受信された複数のリアルタイムデータのそれぞれを前記制御センタにリアルタイムで送信し、前記統合部により生成された統合データを前記制御センタに送信する送信部と
を備える中継サーバ。
【請求項２】
前記統合部が、前記複数の非リアルタイムデータの重複部分を削除することで、該複数の非リアルタイムデータの和集合を前記統合データとして生成する、
請求項１に記載の中継サーバ。
【請求項３】
前記非リアルタイムデータが、前記ロボットの周囲の地形または障害物を示す点群データまたは画像データである、
請求項２に記載の中継サーバ。
【請求項４】
前記統合部が、前記複数の非リアルタイムデータとは異なる種類の情報を示す前記統合データを生成する、
請求項１に記載の中継サーバ。
【請求項５】
前記非リアルタイムデータが、前記ロボットの周囲の地形または障害物を示す点群データまたは画像データであり、
前記統合データが、前記ロボットが移動可能な経路を示す経路データである、
請求項４に記載の中継サーバ。
【請求項６】
前記非リアルタイムデータが、前記ロボットの周囲を移動する物体を示す点群データまたは画像データであり、
前記統合データが、前記移動する物体の位置を示す物体位置データである、
請求項４に記載の中継サーバ。
【請求項７】
前記統合部が、前記複数の非リアルタイムデータと、過去の一以上の対応する非リアルタイムデータおよび過去の統合データのいずれか一方との差分を前記統合データとして生成する、
請求項１に記載の中継サーバ。
【請求項８】
前記リアルタイムデータが画像データである、
請求項１〜７のいずれか一項に記載の中継サーバ。
【請求項９】
前記受信部により受信された複数の非リアルタイムデータおよび複数のリアルタイムデータと、前記統合部により生成された統合データとのうちの少なくとも一部のデータを他の中継サーバに送信することで、該少なくとも一部のデータを該他の中継サーバに記憶させる冗長化部
を更に備える請求項１〜８のいずれか一項に記載の中継サーバ。
【請求項１０】
前記冗長化部が前記統合データを前記他の中継サーバに送信する、
請求項９に記載の中継サーバ。
【請求項１１】
複数のロボットと制御センタとの間でデータを中継する中継サーバにより実行される中継方法であって、
前記複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信ステップと、
前記受信ステップにおいて受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合ステップと、
前記受信ステップにおいて受信された複数のリアルタイムデータのそれぞれを前記制御センタにリアルタイムで送信し、前記統合ステップにおいて生成された統合データを前記制御センタに送信する送信ステップと
を含む中継方法。
【請求項１２】
複数のロボットと制御センタとの間でデータを中継する方法をコンピュータに実行させる中継プログラムであって、
前記複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信ステップと、
前記受信ステップにおいて受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合ステップと、
前記受信ステップにおいて受信された複数のリアルタイムデータのそれぞれを前記制御センタにリアルタイムで送信し、前記統合ステップにおいて生成された統合データを前記制御センタに送信する送信ステップと
を前記コンピュータに実行させる中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、ロボットと制御センタとの間でデータを中継するサーバ、方法、およびプログラムに関する。
【背景技術】
【０００２】
従来から、ロボットを遠隔で制御する技術が知られている。例えば下記特許文献１には、ロボットの動作を制御するための遠隔制御システムを実行するコントローラを有する可動式ロボットと、ロボットのコントローラと通信するクラウドコンピューティングサービスと、クラウドコンピューティングサービスと通信する遠隔コンピューティングデバイスとを備えるロボットシステムが記載されている。遠隔コンピューティングデバイスは、クラウドコンピューティングサービスを通してロボットと通信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１４−５０５９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットが活躍する場面として、人の立ち入りが困難な場所（例えば災害現場）での作業が挙げられる。このような場面では、ロボットは様々なセンサで周辺環境のデータを収集して制御センタ（人がロボットを制御するための施設または機能）に送信し、制御センタはそのデータを分析または評価した上でそのロボットに更なる指示を与える。状況によっては、この遠隔操作は例えば現場から数ｋｍまたは数十ｋｍ離れて実施される場合があるが、これだけ離れた距離でロボットを操るための無線は一般に通信帯域が狭いため、送受信できるデータ量が制限される。そのため、ロボットが現場で収集した豊富なデータをセンタに送ることが困難であり、センタで利用できるデータが限定されてしまう。そこで、ロボットが収集したデータをより円滑に制御センタに送信することが望まれている。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る中継サーバは、複数のロボットと制御センタとの間でデータを中継する中継サーバであって、複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信部と、受信部により受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合部と、受信部により受信された複数のリアルタイムデータのそれぞれを制御センタにリアルタイムで送信し、統合部により生成された統合データを制御センタに送信する送信部とを備える。
【０００６】
本発明の一側面に係る中継方法は、複数のロボットと制御センタとの間でデータを中継する中継サーバにより実行される中継方法であって、複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信ステップと、受信ステップにおいて受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合ステップと、受信ステップにおいて受信された複数のリアルタイムデータのそれぞれを制御センタにリアルタイムで送信し、統合ステップにおいて生成された統合データを制御センタに送信する送信ステップとを含む。
【０００７】
本発明の一側面に係る中継プログラムは、複数のロボットと制御センタとの間でデータを中継する方法をコンピュータに実行させる中継プログラムであって、複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信ステップと、受信ステップにおいて受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合ステップと、受信ステップにおいて受信された複数のリアルタイムデータのそれぞれを制御センタにリアルタイムで送信し、統合ステップにおいて生成された統合データを制御センタに送信する送信ステップとをコンピュータに実行させる。
【０００８】
このような側面においては、各ロボットから得られた２種類のデータのうち一方のデータ（リアルタイムデータ）がリアルタイムで制御センタに送られる。一方、他方のデータ（非リアルタイムデータ）については、各ロボットから受信したデータが統合されて、その統合データが制御センタに送られる。この統合データのデータ量は、複数のロボットから得られた複数の非リアルタイムデータのデータ量の和よりも小さい。したがって、個々のロボットが収集した非リアルタイムデータをそのまま制御センタに送信する場合よりも高速にデータを制御センタに送ることができる。このように、リアルタイム送信が必要なデータは即時にそのまま送信し、リアルタイム送信が不要なデータは統合してデータ量を削減してから送信することで、ロボットが収集したデータをより円滑に制御センタに送信することができる。
【０００９】
他の側面に係る中継サーバでは、統合部が、複数の非リアルタイムデータの重複部分を削除することで、該複数の非リアルタイムデータの和集合を統合データとして生成してもよい。この場合には、元のデータの内容を欠落させることなく、制御センタに送信するデータの量を減らすことができる。
【００１０】
他の側面に係る中継サーバでは、非リアルタイムデータが、ロボットの周囲の地形または障害物を示す点群データまたは画像データであってもよい。データ量が大きくなりがちな点群データまたは画像データを非リアルタイムデータとして処理することで、制御センタに送信するデータの量を減らすことができる。
【００１１】
他の側面に係る中継サーバでは、統合部が、複数の非リアルタイムデータとは異なる種類の情報を示す統合データを生成してもよい。このように非リアルタイムデータを変換することで、制御センタに送信するデータの量を減らすことができる。
【００１２】
他の側面に係る中継サーバでは、非リアルタイムデータが、ロボットの周囲の地形または障害物を示す点群データまたは画像データであり、統合データが、ロボットが移動可能な経路を示す経路データであってもよい。データ量が大きくなりがちな点群データまたは画像データを、それよりもデータ量が小さい経路データに変換することで、制御センタに送信するデータの量を減らすことができる。
【００１３】
他の側面に係る中継サーバでは、非リアルタイムデータが、ロボットの周囲を移動する物体を示す点群データまたは画像データであり、統合データが、移動する物体の位置を示す物体位置データであってもよい。データ量が大きくなりがちな点群データまたは画像データを、それよりもデータ量が小さい物体位置データに変換することで、制御センタに送信するデータの量を減らすことができる。
【００１４】
他の側面に係る中継サーバでは、統合部が、複数の非リアルタイムデータと、過去の一以上の対応する非リアルタイムデータおよび過去の統合データのいずれか一方との差分を統合データとして生成してもよい。差分を取ることで、過去から変わった部分のデータまたは値のみを統合データとして残すことができるので、制御センタに送信するデータの量を減らすことができる。
【００１５】
他の側面に係る中継サーバでは、リアルタイムデータが画像データであってもよい。画像データをリアルタイムで制御センタに送信することで、制御センタは現場の現状を即時に把握することができる。
【００１６】
他の側面に係る中継サーバでは、受信部により受信された複数の非リアルタイムデータおよび複数のリアルタイムデータと、統合部により生成された統合データとのうちの少なくとも一部のデータを他の中継サーバに送信することで、該少なくとも一部のデータを該他の中継サーバに記憶させる冗長化部を更に備えてもよい。この場合には、一の中継サーバで受信または生成されたデータが他の中継サーバで記憶されるので、該一の中継サーバに障害が発生したとしても、データの損失を回避することができる。
【００１７】
他の側面に係る中継サーバでは、冗長化部が統合データを他の中継サーバに送信してもよい。この場合には、各ロボットから受信した非リアルタイムデータを送信する場合と比較してデータ量が削減されるので、バックアップのための中継サーバ間の通信をより円滑に実行することができる。
【発明の効果】
【００１８】
本発明の一側面によれば、ロボットが収集したデータをより円滑に制御センタに送信することができる。
【図面の簡単な説明】
【００１９】
【図１】中継サーバを備える遠隔制御システムの全体構成を示す図である。
【図２】遠隔制御システムのネットワーク構成を模式的に示す図である。
【図３】実施形態に係る中継サーバのハードウェア構成を示す図である。
【図４】実施形態に係る中継サーバの機能構成を示す図である。
【図５】統合データの生成の一例を説明するための図である。
【図６】統合データの生成の別の例を説明するための図である。
【図７】実施形態に係る中継サーバの動作を示すフローチャートである。
【図８】実施形態に係る中継プログラムの構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００２１】
図１〜６を参照しながら、実施形態に係る中継サーバ１０の機能および構成を説明する。中継サーバ１０は遠隔制御システム１の一構成要素として機能する。遠隔制御システム１は、現場で稼働する複数のロボットを指揮するためのコンピュータシステムである。図１に示すように、遠隔制御システム１は中継サーバ１０の他に制御センタ２０および複数のロボット３０を備える。個々の現場Ｆには複数のロボット３０と１以上の中継サーバ１０とが存在する。図１は、一つの制御センタ２０が二つの現場Ｆで稼働する複数のロボット３０を指揮する例を示すが、現場の数はこれに限定されるものではなく、例えば１でもよいし３以上でもよい。
【００２２】
制御センタ２０は、人がロボットを制御するための施設または機能であり、各ロボット３０を制御するためのコンピュータを備える。制御センタ２０は、１以上の現場で稼働する複数のロボット３０のそれぞれに操作信号を送ることで各ロボット３０に現場での作業を行わせる。また、制御センタ２０は各ロボット３０が現場で得たデータを受信する。制御センタ２０の作業員はそのデータを参照して個々のロボット３０をどのように制御するかを決定する。
【００２３】
ロボット３０は、制御センタ２０から中継サーバ１０を経由して送られてきた操作信号と、予め自機内にインストールされたプログラムとの少なくとも一方に基づいて自律的に稼働する無人移動体である。ロボット３０は必要に応じて移動しながら、操作信号またはプログラムで指示された作業を行う。ロボット３０の具体的な種類は何ら限定されず、例えば、無人走行車、無人作業機械、無人飛行体、無人航行船であってもよい。ロボット３０は、現場の情報を収集するための機器を備える。機器の例として、現場を撮影して画像（動画または静止画）を得るためのカメラ、周辺の地形を示す地形データを得るために用いられるレーザレンジファインダ、および環境値を検知するセンサ（例えば、温度センサ）が挙げられる。ロボット３０はこれらのような様々な機器により現場の豊富なデータを収集することができる。さらに、ロボット３０は収集した各種のデータを中継サーバ１０に送信する機能も有する。データがどのロボット３０から送られたかを受信側で特定することができるように、ロボット３０は、データを送信する際に自機のロボットＩＤをそのデータに付加する。ロボットＩＤは、ロボットを一意に特定するための識別子である。
【００２４】
中継サーバ１０は、現場で稼働する複数のロボット３０と、そのロボットを制御する制御センタ２０との間でデータを中継する装置またはコンピュータである。中継サーバ１０は、現場またはその近くに位置する。中継サーバ１０は有人または無人の移動体に搭載されてもよいし、中継サーバ１０そのものが移動機能を有してもよい。あるいは、中継サーバ１０は移動機能を有さずに所定の場所に設置されてもよい。
【００２５】
本明細書における「中継」とは、一方の側から受信したデータを他方の側にそのまま送ることと、一方の側から受信したデータに基づく新たなデータ（受信データを加工したことで得られるデータも含む）を他方の側に送ることとの双方を含む概念である。中継サーバ１０は、制御センタ２０から所定のロボット３０へのデータ中継と、個々のロボット３０から制御センタ２０へのデータ中継とを実行する。制御センタ２０からロボット３０へ送られるデータの例としては、所望の作業をそのロボット３０に実行させるための操作信号またはデータが挙げられる。中継サーバ１０は制御センタ２０から受信した信号に基づいて操作信号を生成し、その操作信号をロボット３０に送信してもよい。一方、ロボット３０から制御センタ２０へ送られるデータの例としては、現場で収集された各種のデータ（画像データ、地形データ、および環境値データ）や、そのデータに基づく新たなデータなどが挙げられる。中継サーバ１０が中継するデータの種類はこれらに限定されるものではなく、中継サーバ１０は様々な種類のデータを中継してもよい。
【００２６】
一つの現場は、例えば半径１００ｍ程度の範囲であり、この範囲内に中継サーバ１０と複数のロボット３０とが存在する。中継サーバ１０と各ロボット３０との距離は短いので、双方の装置は、無線ＬＡＮなどのような通信帯域の広い無線ネットワークを用いてデータを送受信することができる。したがって、中継サーバ１０と各ロボット３０との間では、通信されるデータの量はさほど問題にならない。上述したようにロボット３０は現場の豊富なデータを収集することができるが、ロボット３０がそのデータをそのまま中継サーバ１０に送信しても問題ない。
【００２７】
一方、現場と制御センタ２０との距離は、例えば数ｋｍから数十ｋｍである。制御センタ２０は現場から遠いので、無線ＬＡＮではなく、衛星通信などの他の無線通信手段を用いてデータを送受信する必要がある。しかし、一般に長距離無線通信の通信帯域は狭いため、制御センタ２０と中継サーバ１０との間では、データ通信が滞らないようにする必要がある。
【００２８】
もし中継サーバ１０がロボット３０から受信した豊富なデータをそのまま制御センタ２０に送信してしまうと、制御センタ２０と現場との間の通信が滞ってしまう。しかし、制御センタ２０が現場の情報を十分に把握するには、各ロボット３０から得られた豊富なデータを制御センタ２０に伝えることが望ましい。中継サーバ１０の特徴は、ロボット３０が収集した現場のデータを限られた通信環境下で制御センタ２０に円滑に送るための仕組みにある。
【００２９】
本実施形態では、中継サーバ１０は１以上の他の中継サーバ１０と通信することで、ロボット３０から受信して自機内に記憶したデータを該他の中継サーバ１０内にも記憶させる機能も備える。さらに、中継サーバ１０は、該他の中継サーバ１０が収集したデータを自機内に記憶する機能も備える。すなわち、中継サーバ１０は相互バックアップの機能も備える。この相互バックアップにより、遠隔制御システム１はデータの冗長化を実現する。相互バックアップを実行する２台の中継サーバ１０間の距離は例えば１ｋｍ程度である。中継サーバ１０間のネットワークの通信帯域は、中継サーバ１０とロボット３０との間のネットワークの通信帯域よりも狭い。そのため、中継サーバ１０の間でもデータ通信が滞らないようにするための仕組みを導入してもよい。
【００３０】
図２は、上述した遠隔制御システム１のネットワーク構成を模式的に示す図である。この図では、制御センタ２０が５台の中継サーバ１０と通信接続し、個々の中継サーバ１０が複数のロボット３０および２台の他の中継サーバ１０と通信接続している。装置間をつなぐ線の太さは、通信帯域の大きさ（中継サーバ１０とロボット３０との間の通信帯域が広いこと）を模式的に示す。
【００３１】
中継サーバ１０の一般的なハードウェア構成を図３に示す。中継サーバ１０は、オペレーティングシステムやアプリケーション・プログラムなどを実行するプロセッサ１０１と、ＲＯＭ及びＲＡＭで構成される主記憶部１０２と、ハードディスクやフラッシュメモリなどで構成される補助記憶部１０３と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部１０４と、キーボードやマウスなどの入力装置１０５と、ディスプレイなどの出力装置１０６とを備える。なお、入力装置１０５および出力装置１０６が省略されてもよい。
【００３２】
中継サーバ１０の各機能要素は、プロセッサ１０１または主記憶部１０２の上に所定のソフトウェアを読み込ませ、プロセッサ１０１の制御の下で通信制御部１０４や入力装置１０５、出力装置１０６などを動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出し及び書き込みを行うことで実現される。処理に必要なデータまたはデータベースは主記憶部１０２または補助記憶部１０３内に格納される。
【００３３】
中継サーバ１０の特徴は、ロボット３０から制御センタ２０へのデータ中継に関する。したがって、以下ではその方向のデータ中継について特に説明する。図４に示すように、中継サーバ１０は特徴的な機能要素として、記憶部１１、受信部１２、振分部１３、統合部１４、送信部１５、および冗長化部１６を備える。
【００３４】
記憶部１１は、障害が発生しない限り恒久的にデータを記憶する機能要素である。記憶部１１は主記憶部１０２または補助記憶部１０３により実現される。記憶部１１は各ロボット３０から受信したデータと、中継サーバ１０内で生成されたデータとを自機データとして記憶することができる。また、記憶部１１は他の中継サーバ１０から受信したデータを他機データとして記憶することもできる。
【００３５】
受信部１２は、現場内の複数のロボット３０のそれぞれからデータを受信する機能要素である。受信部１２は、プロセッサ１０１が、中継サーバ１０にインストールされた中継プログラムを実行して、主記憶部１０２または補助記憶部１０３に対するデータの読み書きを行い、通信制御部１０４を制御することで実現される。受信部１２はデータを受信する度にそのデータを振分部１３に出力する。受信部１２が各ロボット３０からデータを受信するタイミングは何ら限定されない。受信部１２は個々のロボット３０から異なるタイミングでデータを受信することもあれば、２以上のロボット３０からほぼ同時にデータを受信することもあり得る。
【００３６】
受信部１２は各ロボット３０から２種類のデータを受信する。一つは、リアルタイムデータであり、もう一つは非リアルタイムデータである。リアルタイムデータは、制御センタにリアルタイムに（すなわち、即時に）そのまま送信されるデータである。「そのまま送信される」という表現は、受信したリアルタイムデータの内容が改変（情報の削除、変更、または追加）されることなく（すなわち、受信したリアルタイムデータの内容がそのまま維持されたまま）、該リアルタイムデータが送信されることを意味する。一方、非リアルタイムデータは、制御センタ２０に送信する前に統合処理が施されるデータである。この統合処理については後述する。リアルタイムデータおよび非リアルタイムデータの種類は限定されない。本実施形態では、リアルタイムデータはロボット３０のカメラで得られた画像データ（動画データまたは画像データ）を含むものとする。また、非リアルタイムデータは、ロボット３０のレーザレンジファインダから得られた、ロボットの周囲の地形または障害物を示す点群データを含むものとする。点群データは、検知された地形または障害物の位置、形状、および大きさを点座標の集合で示すので、データ量が大きくなり得る。なお、本明細書における「障害物」とは、ロボットの走行を妨げる物であり、例えば、大きな岩、樹木、建物、柱、他の移動物体（例えば、他のロボットや有人の移動体など）などである。
【００３７】
振分部１３は、受信部１２から入力されたデータがリアルタイムデータおよび非リアルタイムデータのどちらであるかを判定し、リアルタイムデータを送信部１５に出力し、非リアルタイムデータを統合部１４に出力する機能要素である。振分部１３はリアルタイムデータおよび非リアルタイムデータの少なくとも一つを記憶部１１に格納してもよい。振分部１３は、プロセッサ１０１が、中継サーバ１０にインストールされた中継プログラムを実行して、主記憶部１０２または補助記憶部１０３に対するデータの読み書きを行うことで実現される。振分部１３がデータの種類を判定する方法は限定されない。例えば、振分部１３は、リアルタイムデータとして処理するデータの拡張子と、非リアルタイムデータとして処理するデータの拡張子とを示すルールを予め記憶しており、入力されたデータをそのルールに従って処理してもよい。
【００３８】
統合部１４は、複数のロボット３０から入力された複数の非リアルタイムデータを統合することで統合データを生成する機能要素である。統合部１４は、振分部１３から入力された非リアルタイムデータを処理してもよいし、記憶部１１から非リアルタイムデータを読み出してもよい。統合部１４は、プロセッサ１０１が、中継サーバ１０にインストールされた中継プログラムを実行して、主記憶部１０２または補助記憶部１０３に対するデータの読み書きを行うことで実現される。
【００３９】
複数の非リアルタイムデータを統合するとは、該複数の非リアルタイムデータに基づいて一つのデータ（本明細書ではこれを「統合データ」という）を生成することである。統合部１４は、複数のロボット３０から受信した複数の非リアルタイムデータのうち、少なくとも２台のロボット３０から得られた少なくとも二つの非リアルタイムデータを統合する。一つの現場内のすべてのロボット３０から得られた複数の非リアルタイムデータを一つの統合データにまとめることは必須ではない。例えば、一つの現場内に５台のロボット３０が存在するとして、統合部１４は、そのうちの２〜４台のロボット３０から得られた複数の非リアルタイムデータのみを統合してもよい。
【００４０】
統合部１４は、統合データのデータ量が複数の非リアルタイムデータのデータ量の和よりも小さくなるように統合データを生成し、その統合データを送信部１５に出力する。この統合処理において統合部１４は、複数の非リアルタイムデータの少なくとも一部を変更または削除する。したがって、元のデータを完全に復元できる単なるデータ圧縮のみから成る処理は、本明細書における統合処理ではない。統合データの生成方法は限定されないが、例として以下に様々な生成方法を示す。
【００４１】
一例として、統合部１４は、複数のロボット３０から得られた複数の非リアルタイムデータの重複部分を削除することで、該複数の非リアルタイムデータの和集合を統合データとして生成してもよい。図５はこの生成方法の概念を説明する図であり、３台のロボット３０ａ，３０ｂ，３０ｃが、ある一つの障害物Ｂについての点群データを取得した場面を示す。ロボット３０ａが障害物Ｂについて点群データ４１を取得し、ロボット３０ｂが障害物Ｂについて点群データ４２を取得し、ロボット３０ｃが障害物Ｂについて点群データ４３を取得したとする。そして、点群データ４１，４２の間に重複部分５１が存在し、点群データ４２，４３の間に重複部分５２が存在したとする。この場合、統合部１４は、点群データ４１，４２の一方から、その重複部分５１に対応するデータを削除する（間引く）とともに、点群データ４２，４３の一方から、その重複部分５２に対応するデータを削除する（間引く）。図５は、統合部１４が点群データ４１の一部４１ａを削除するとともに、点群データ４３の一部４３ａを削除する例を示す。続いて、統合部１４はこれらの削除処理の後に残った三つの点群データ（点群データ４１ｂ、点群データ４２、および点群データ４３ｂ）を統合することで、障害物Ｂを示す統合データ４４を生成する。重複部分が削除されたので、統合データ４４のデータ量は、点群データ４１，４２，４３のデータ量の和よりも小さい。
【００４２】
別の例として、統合部１４は、複数のロボット３０から得られた複数の非リアルタイムデータから、各非リアルタイムデータとは異なる種類の情報を示す統合データを生成してもよい。図６はこの生成方法の一例を示す図であり、図５と同様に、３台のロボット３０ａ，３０ｂ，３０ｃが、ある一つの障害物Ｂについての点群データを取得した場面を示す。この例でも、ロボット３０ａが障害物Ｂについて点群データ４１を取得し、ロボット３０ｂが障害物Ｂについて点群データ４２を取得し、ロボット３０ｃが障害物Ｂについて点群データ４３を取得したとする。この場合、統合部１４は、点群データ４１，４２，４３に基づいて障害物Ｂの位置を算出し、ロボット３０が移動可能な経路４５をその障害物Ｂの位置に基づいて算出し、その経路４５を示す経路データを統合データとして取得してもよい。経路は、複数の地点を示す複数の二次元座標と地点間のつながりを示す情報とで示すことができるから、経路４５を示す統合データのデータ量を複数の点群データ４１，４２，４３のデータ量の和よりも小さくすることができる。
【００４３】
各非リアルタイムデータとは異なる種類の情報を示す統合データを生成する別の例を説明する。統合部１４は、各ロボット３０から得られた、ロボット３０の周囲を移動する物体（すなわち、そのロボット３０にとっての他の移動物体）を示す点群データから、該移動物体の位置を示す物体位置データを生成してもよい。この場合、統合部１４は、複数のロボット３０から得られた複数の点群データに基づいてその物体位置データを算出し、この物体位置データを統合データとして取得する。物体位置データは、２次元空間または３次元空間上における一つの座標値、あるいは当該座標値を中心とする所定の範囲を示すデータにより表すことが可能である。したがって、この処理においても、統合データのデータ量を複数の点群データのデータ量の和よりも小さくすることができる。
【００４４】
統合部１４は、複数のロボット３０から得られた複数の非リアルタイムデータと、それよりも過去の一以上の対応する非リアルタイムデータとの差分を統合データとして生成してもよい。過去の対応する非リアルタイムデータとは、あるロボット３０から非リアルタイムデータを得た時点よりも前に該ロボット３０から得た非リアルタイムデータである。統合部１４は過去の非リアルタイムデータを記憶部１１から読み出すことができる。差分を取ることで、非リアルタイムデータのうち過去と同じ部分を消去して、過去から変わった部分のデータまたは値のみを残すことができ、その変更箇所のみを統合データとして生成することができる。したがって、統合データのデータ量を、複数の非リアルタイムデータのデータ量の和よりも小さくすることができる。この効果は、複数のロボット３０のうちの少なくとも一つについて差分を計算することで得られ、複数のロボット３０のすべてについて差分を計算すれば、データ量を最も削減することが期待できる。
【００４５】
統合部１４は、複数のロボット３０から得られた複数の非リアルタイムデータと、過去の統合データとの差分を統合データとして生成してもよい。この処理は、統合部１４が、生成した統合データを記憶部１１に格納し、後でその統合データを記憶部１１から読み出すことを前提とする。この処理においても、差分を取ることで、非リアルタイムデータのうち過去の統合データと同じ部分を消去して、過去から変わった部分のデータまたは値のみを残すことができ、その変更箇所のみを新たな統合データとして生成することができる。
【００４６】
送信部１５は、データを制御センタ２０に送信する機能要素である。送信部１５は、プロセッサ１０１が、中継サーバ１０にインストールされた中継プログラムを実行して、主記憶部１０２または補助記憶部１０３に対するデータの読み書きを行い、通信制御部１０４を制御することで実現される。送信部１５は、振分部１３から入力されたリアルタイムデータを直ぐに制御センタに送信する。また、送信部１５は、統合部１４から入力された統合データを制御センタ２０に送信する。送信部１５は入力された統合データを直ぐに送信してもよい。あるいは、送信部１５は制御センタ２０との間の通信品質（例えば現在の通信速度や通信量など）を検査し、その通信品質が所定の基準値以上である時に統合データを送信してもよい。例えば、送信部１５は現在の通信速度が所定値以上である時に統合データを送信してもよいし、現在の通信量が所定値以下である時に統合データを送信してもよい。送信部１５は送信しようとするデータを予め圧縮または暗号化してもよい。
【００４７】
冗長化部１６は、他の中継サーバ１０との間でデータの冗長化を実行する機能要素である。冗長化とは、一の中継サーバ１０内のデータを１以上の別の中継サーバ１０にも記憶させる処理である。冗長化部１６は、プロセッサ１０１が、中継サーバ１０にインストールされた中継プログラムを実行して、主記憶部１０２または補助記憶部１０３に対するデータの読み書きを行い、通信制御部１０４を制御することで実現される。
【００４８】
冗長化部１６は所定のタイミングで記憶部１１内の自機データを他の１以上の中継サーバ１０に送信することで、該他の中継サーバ１０に自機データを記憶させてもよい。冗長化部１６は他の中継サーバ１０との間の通信品質（例えば現在の通信速度や通信量など）を検査し、その通信品質が所定の基準値以上である時に自機データを送信してもよい。例えば、冗長化部１６は現在の通信速度が所定値以上である時に自機データを送信してもよいし、現在の通信量が所定値以下である時に自機データを送信してもよい。冗長化部１６は送信しようとするデータを予め圧縮または暗号化してもよい。
【００４９】
また、冗長化部１６は１以上の他の中継サーバ１０から送られてくるデータを受信し、そのデータを他機データとして記憶部１１に格納してもよい。この場合には、中継サーバ１０は該他の中継サーバ１０のバックアップ機として機能し得る。
【００５０】
冗長化されるデータは、非リアルタイムデータ、リアルタイムデータ、および統合データのうちの少なくとも一種類である。例えば、冗長化部１６は、非リアルタイムデータを他の中継サーバ１０に送信することなく統合データを該他の中継サーバ１０に送信してもよい。この場合には、冗長化すべきデータの量が少なくなるので、中継サーバ１０間の通信負荷を下げることができ、中継サーバ１０内のメモリ使用量を抑えることもできる。
【００５１】
次に、図７を用いて、中継サーバ１０の動作を説明するとともに本実施形態に係る中継方法について説明する。
【００５２】
まず、受信部１２が複数のロボット３０からデータを受信する（ステップＳ１１、受信ステップ）。受信部１２は個々のロボット３０から異なるタイミングでデータを受信し得るが、図７ではその処理をステップＳ１１として簡略化して示している。受信部１２がデータを受信する度に、振分部１３がそのデータの種類（リアルタイムデータか、あるいは非リアルタイムデータか）を判定する（ステップＳ１２）。
【００５３】
データがリアルタイムデータである場合には、送信部１５がそのリアルタイムデータを制御センタ２０にリアルタイムで送信する（ステップＳ１３、送信ステップ）。
【００５４】
一方、データが非リアルタイムデータである場合には、振分部１３は冗長化部１６による処理のためにその非リアルタイムデータを記憶部１１に格納してもよい（ステップＳ１４）。その後、任意のタイミングで、統合部１４が記憶部１１内の複数の非リアルタイムデータ（複数のロボット３０から受信した複数の非リアルタイムデータ）から統合データを生成し（ステップＳ１５、統合ステップ）、その統合データを冗長化部１６による処理のために記憶部１１に格納する（ステップＳ１６）。上述したように、統合データの生成方法は限定されない。さらに、送信部１５が任意のタイミングでその統合データを制御センタ２０に送信する（ステップＳ１７、送信ステップ）。
【００５５】
なお、図７に示す個々のステップの処理順序はあくまでも一例であり、図示したものとは異なる順序で一連の処理が実行されてもよい。振分部１３が非リアルタイムデータを統合部１４に出力するのであれば、ステップＳ１４が省略されてもよい。
【００５６】
次に、図８を参照しながら、コンピュータを中継サーバ１０として機能させるための中継プログラムＰを説明する。
【００５７】
中継プログラムＰは、メインモジュールＰ１０、記憶モジュールＰ１１、受信モジュールＰ１２、振分モジュールＰ１３、統合モジュールＰ１４、送信モジュールＰ１５、および冗長化モジュールＰ１６を備える。メインモジュールＰ１０は、データ中継処理を統括的に制御する部分である。記憶モジュールＰ１１、受信モジュールＰ１２、振分モジュールＰ１３、統合モジュールＰ１４、送信モジュールＰ１５、および冗長化モジュールＰ１６を実行することにより実現される機能はそれぞれ、上記各実施形態における記憶部１１、受信部１２、振分部１３、統合部１４、送信部１５、および冗長化部１６の機能と同様である。
【００５８】
中継プログラムＰは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、中継プログラムＰは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００５９】
以上説明したように、本発明の一側面に係る中継サーバは、複数のロボットと制御センタとの間でデータを中継する中継サーバであって、複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信部と、受信部により受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合部と、受信部により受信された複数のリアルタイムデータのそれぞれを制御センタにリアルタイムで送信し、統合部により生成された統合データを制御センタに送信する送信部とを備える。
【００６０】
本発明の一側面に係る中継方法は、複数のロボットと制御センタとの間でデータを中継する中継サーバにより実行される中継方法であって、複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信ステップと、受信ステップにおいて受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合ステップと、受信ステップにおいて受信された複数のリアルタイムデータのそれぞれを制御センタにリアルタイムで送信し、統合ステップにおいて生成された統合データを制御センタに送信する送信ステップとを含む。
【００６１】
本発明の一側面に係る中継プログラムは、複数のロボットと制御センタとの間でデータを中継する方法をコンピュータに実行させる中継プログラムであって、複数のロボットのそれぞれからリアルタイムデータおよび非リアルタイムデータを受信する受信ステップと、受信ステップにおいて受信された複数の非リアルタイムデータを統合することで、データ量が該複数の非リアルタイムデータのデータ量の和よりも小さい統合データを生成する統合ステップと、受信ステップにおいて受信された複数のリアルタイムデータのそれぞれを制御センタにリアルタイムで送信し、統合ステップにおいて生成された統合データを制御センタに送信する送信ステップとをコンピュータに実行させる。
【００６２】
このような側面においては、各ロボットから得られた２種類のデータのうち一方のデータ（リアルタイムデータ）がリアルタイムで制御センタに送られる。一方、他方のデータ（非リアルタイムデータ）については、各ロボットから受信したデータが統合されて、その統合データが制御センタに送られる。この統合データのデータ量は、複数のロボットから得られた複数の非リアルタイムデータのデータ量の和よりも小さい。したがって、個々のロボットが収集した非リアルタイムデータをそのまま制御センタに送信する場合よりも高速にデータを制御センタに送ることができる。このように、リアルタイム送信が必要なデータは即時にそのまま送信し、リアルタイム送信が不要なデータは統合してデータ量を削減してから送信することで、ロボットが収集したデータをより円滑に制御センタに送信することができる。
【００６３】
各ロボットが収集するデータの量は膨大になり得るが、そのデータのすべてがロボットの制御のために直ぐに必要になるわけではない。そこで、そのデータを、リアルタイムに送信すべきものとその必要がないものとに分けることで、通信帯域が限定された中でも、リアルタイム送信を良好に実行できる。また、非リアルタイムデータはデータ量が削減された統合データとして制御センタに送られるので、非リアルタイムデータの内容を限られた通信帯域下で良好に送信することができる。これらの工夫により、通信帯域が狭くても、ロボットが収集した豊富なデータを制御センタに円滑に送信することができる。また、ロボット３０を現場から回収したり中継サーバ１０を制御センタ２０まで移動させたりすることなく現場のデータを収集できるという利点も得られる。
【００６４】
他の側面に係る中継サーバでは、統合部が、複数の非リアルタイムデータの重複部分を削除することで、該複数の非リアルタイムデータの和集合を統合データとして生成してもよい。この場合には、元のデータの内容を欠落させることなく、制御センタに送信するデータの量を減らすことができる。
【００６５】
他の側面に係る中継サーバでは、非リアルタイムデータが、ロボットの周囲の地形または障害物を示す点群データであってもよい。データ量が大きくなりがちなこの点群データを非リアルタイムデータとして処理することで、制御センタに送信するデータの量を減らすことができる。
【００６６】
他の側面に係る中継サーバでは、統合部が、複数の非リアルタイムデータとは異なる種類の情報を示す統合データを生成してもよい。このように非リアルタイムデータを変換することで、制御センタに送信するデータの量を減らすことができる。
【００６７】
他の側面に係る中継サーバでは、非リアルタイムデータが、ロボットの周囲の地形または障害物を示す点群データであり、統合データが、ロボットが移動可能な経路を示す経路データであってもよい。データ量が大きくなりがちな点群データを、それよりもデータ量が小さい経路データに変換することで、制御センタに送信するデータの量を減らすことができる。
【００６８】
他の側面に係る中継サーバでは、リアルタイムデータが画像データであってもよい。画像データをリアルタイムで制御センタに送信することで、制御センタは現場の現状を即時に把握することができる。
【００６９】
他の側面に係る中継サーバでは、受信部により受信された複数の非リアルタイムデータおよび複数のリアルタイムデータと、統合部により生成された統合データとのうちの少なくとも一部のデータを他の中継サーバに送信することで、該少なくとも一部のデータを該他の中継サーバに記憶させる冗長化部を更に備えてもよい。この場合には、一の中継サーバで受信または生成されたデータが他の中継サーバで記憶されるので、該一の中継サーバに障害が発生したとしても、データの損失を回避することができる。現場で稼働するロボットおよび中継サーバは二次災害などに巻き込まれて使用不能になる可能性があるが、このようにデータをバックアップすることで、代替のロボットまたは中継サーバにそのデータを利用させたり引き継がせたりすることができる。その結果、代替機を現場に投入した直後から作業を円滑に再開することが可能になる。
【００７０】
他の側面に係る中継サーバでは、冗長化部が統合データを他の中継サーバに送信してもよい。この場合には、各ロボットから受信した非リアルタイムデータを送信する場合と比較してデータ量が削減されるので、バックアップのための中継サーバ間の通信をより円滑に実行することができる。
【００７１】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００７２】
上述した通り、リアルタイムデータおよび非リアルタイムデータの種類は限定されない。例えば、中継サーバは画像データを非リアルタイムデータとして処理してもよい。具体的には、統合部は、複数の画像データの重複部分を削除することで、該複数の画像データの和集合を統合データとして生成してもよい。あるいは、統合部は、障害物の位置および大きさを複数の画像データから推定する技術を用いることで、点群データを用いる場合と同様に、ロボットが移動可能な経路を示す経路データを生成することができる。あるいは、統合部は、移動する物体の位置を複数の画像データから推定する技術を用いることで、点群データを用いる場合と同様に、該移動物体の位置を示す物体位置データを生成することができる。
【００７３】
上記実施形態では中継サーバ１０はロボット３０とは異なる装置または機器であったが、現場のロボットの少なくとも１台が中継サーバの機能を備えてもよい。この場合には、中継サーバの役割を兼ねるロボットが制御センタと他のロボットとの間でデータを中継する。
【００７４】
中継サーバは記憶部および冗長化部を備えなくてもよい。２以上の中継サーバを用いたバックアップ機能は必須ではない。
【符号の説明】
【００７５】
１  遠隔制御システム
１０  中継サーバ
１１  記憶部
１２  受信部
１３  振分部
１４  統合部
１５  送信部
１６  冗長化部
２０  制御センタ
３０  ロボット
Ｐ  中継プログラム
Ｐ１０  メインモジュール
Ｐ１１  記憶モジュール
Ｐ１２  受信モジュール
Ｐ１３  振分モジュール
Ｐ１４  統合モジュール
Ｐ１５  送信モジュール
Ｐ１６  冗長化モジュール
【図１】
0006528609.tif 000002
【図２】
0006528609.tif 000003
【図３】
0006528609.tif 000004
【図４】
0006528609.tif 000005
【図５】
0006528609.tif 000006
【図６】
0006528609.tif 000007
【図７】
0006528609.tif 000008
【図８】
0006528609.tif 000009