(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023144650
(43)【公開日】2023-10-11
(54)【発明の名称】遠隔制御システム、サーバ装置及びその制御方法
(51)【国際特許分類】
H04M 11/00 20060101AFI20231003BHJP
【FI】
H04M11/00 301
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022051736
(22)【出願日】2022-03-28
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】市川 孝太郎
【テーマコード(参考)】
5K201
【Fターム(参考)】
5K201BA01
5K201DC09
5K201EC06
5K201ED09
5K201EE09
(57)【要約】
【課題】クラウドサーバ及びエッジサーバからネットワークを介してロボットの遠隔制御を行う際に、遠隔制御のための処理をサーバ間で適切に分散する。
【解決手段】エッジサーバは、ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせをロボット300から受信すると、遠隔制御用の処理プログラムがエッジサーバ200に存在するか否かを確認する。エッジサーバは、当該確認結果に基づいて、処理データの送信先を示す送信先情報をロボットへ通知する。エッジサーバは、送信先情報がエッジサーバを示す場合に、ロボットから処理データを受信してロボットの遠隔制御を行う。クラウドサーバは、送信先情報がクラウドサーバを示す場合に、ロボットから処理データを受信してロボット300の遠隔制御を行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバと、前記ネットワークの非エッジ領域に配置されたクラウドサーバとを含み、前記ネットワークを介して前記ロボットの遠隔制御を行う遠隔制御システムであって、
前記エッジサーバは、
前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信すると、前記遠隔制御用の処理プログラムが前記エッジサーバに存在するか否かを確認する確認手段と、
前記確認手段による確認結果に基づいて、前記処理データの送信先として前記エッジサーバ又は前記クラウドサーバを示す送信先情報を前記ロボットへ通知する通知手段と、
前記送信先情報が前記エッジサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う第1制御手段と、を備え、
前記クラウドサーバは、
前記送信先情報が前記クラウドサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う第2制御手段を備える
ことを特徴とする遠隔制御システム。
【請求項2】
前記処理プログラムが前記エッジサーバに存在する場合、
前記通知手段は、前記処理データの送信先として前記エッジサーバを示す送信先情報を前記ロボットへ通知し、
前記第1制御手段は、前記ロボットから前記処理データを受信し、当該処理データを用いて前記処理プログラムを実行することで、前記ロボットの遠隔制御を行う
ことを特徴とする請求項1に記載の遠隔制御システム。
【請求項3】
前記処理プログラムが前記エッジサーバに存在しない場合、
前記通知手段は、前記処理データの送信先に関する問い合わせを前記クラウドサーバへ送信し、
前記クラウドサーバは、前記エッジサーバから受信した前記問い合わせに関連する処理プログラムが前記クラウドサーバに存在し、かつ、所定期間内に前記エッジサーバから前記問い合わせを受けた回数が閾値に達すると、前記エッジサーバによって前記ロボットの遠隔制御が行われるよう、前記クラウドサーバに存在する前記処理プログラムを前記エッジサーバに配置する配置手段を更に備える
ことを特徴とする請求項1又は2に記載の遠隔制御システム。
【請求項4】
前記通知手段は、前記クラウドサーバから前記エッジサーバに前記処理プログラムが配置されると、前記処理データの送信先として前記エッジサーバを示す送信先情報を前記ロボットへ通知し、
前記第1制御手段は、前記ロボットから前記処理データを受信し、当該処理データを用いて前記処理プログラムを実行することで、前記ロボットの遠隔制御を行う
ことを特徴とする請求項3に記載の遠隔制御システム。
【請求項5】
前記第2制御手段は、前記エッジサーバから受信した前記問い合わせに関連する処理プログラムが前記クラウドサーバに存在し、かつ、前記回数が前記閾値に達していなければ、前記処理データの送信先として前記クラウドサーバを示す送信先情報を、前記エッジサーバを介して前記ロボットへ通知し、前記ロボットから前記処理データを受信し、当該処理データを用いて前記処理プログラムを実行することで、前記ロボットの遠隔制御を行う
ことを特徴とする請求項3又は4に記載の遠隔制御システム。
【請求項6】
前記第2制御手段は、前記エッジサーバから受信した前記問い合わせに関連する処理プログラムが前記クラウドサーバに存在しなければ、前記処理データの送信先として前記クラウドサーバを示す送信先情報を、前記エッジサーバを介して前記ロボットへ通知し、前記ロボットから前記処理データを受信し、当該処理データを用いて、ユーザ操作による前記ロボットの遠隔操作を行う
ことを特徴とする請求項3乃至5のいずれか1項に記載の遠隔制御システム。
【請求項7】
前記クラウドサーバは、ユーザ操作による前記ロボットの遠隔操作を学習することで、前記ロボットの遠隔制御用の処理プログラムを作成する学習手段を更に備える
ことを特徴とする請求項6に記載の遠隔制御システム。
【請求項8】
前記配置手段は、前記学習手段によって前記処理プログラムが作成されると、当該処理プログラムを前記クラウドサーバに配置する
ことを特徴とする請求項7に記載の遠隔制御システム。
【請求項9】
前記エッジサーバは、前記エッジサーバに配置された処理プログラムのうち、所定期間にわたって利用されていない処理プログラムを削除する削除手段を更に備える
ことを特徴とする請求項1乃至8のいずれか1項に記載の遠隔制御システム。
【請求項10】
ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバとして構成され、前記ネットワークの非エッジ領域に配置されたクラウドサーバと通信可能なサーバ装置であって、
前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信すると、前記遠隔制御用の処理プログラムが前記エッジサーバに存在するか否かを確認する確認手段と、
前記確認手段による確認結果に基づいて、前記処理データの送信先として前記エッジサーバ又は前記クラウドサーバを示す送信先情報を前記ロボットへ通知する通知手段と、
前記送信先情報が前記エッジサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う制御手段と、
を備えることを特徴とするサーバ装置。
【請求項11】
前記処理プログラムが前記エッジサーバに存在する場合、
前記通知手段は、前記処理データの送信先として前記エッジサーバを示す送信先情報を前記ロボットへ通知し、
前記制御手段は、前記ロボットから前記処理データを受信し、当該処理データを用いて前記処理プログラムを実行することで、前記ロボットの遠隔制御を行う
ことを特徴とする請求項10に記載のサーバ装置。
【請求項12】
前記処理プログラムが前記エッジサーバに存在しない場合、
前記通知手段は、前記処理データの送信先に関する問い合わせを前記クラウドサーバへ送信し、前記クラウドサーバから前記エッジサーバに前記処理プログラムが配置されると、前記処理データの送信先として前記エッジサーバを示す送信先情報を前記ロボットへ通知し、
前記制御手段は、前記ロボットから前記処理データを受信し、当該処理データを用いて前記処理プログラムを実行することで、前記ロボットの遠隔制御を行う
ことを特徴とする請求項10又は11に記載のサーバ装置。
【請求項13】
ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバと通信可能であり、前記ネットワークの非エッジ領域に配置されたクラウドサーバとして構成されるサーバ装置であって、
前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信した前記エッジサーバに、前記遠隔制御用の処理プログラムが存在しない場合に、前記処理データの送信先に関する問い合わせを前記エッジサーバから受信すると、前記問い合わせに関連する処理プログラムが前記クラウドサーバに存在するか否かを確認する確認手段と、
前記処理プログラムが前記クラウドサーバに存在し、かつ、所定期間内に前記エッジサーバから前記問い合わせを受けた回数が閾値に達すると、前記エッジサーバによって前記ロボットの遠隔制御が行われるよう、前記クラウドサーバに存在する前記処理プログラムを前記エッジサーバに配置する配置手段と、
を備えることを特徴とするサーバ装置。
【請求項14】
ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバとして構成され、前記ネットワークの非エッジ領域に配置されたクラウドサーバと通信可能なサーバ装置の制御方法であって、
前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信すると、前記遠隔制御用の処理プログラムが前記エッジサーバに存在するか否かを確認する確認工程と、
前記確認工程における確認結果に基づいて、前記処理データの送信先として前記エッジサーバ又は前記クラウドサーバを示す送信先情報を前記ロボットへ通知する通知工程と、
前記送信先情報が前記エッジサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う制御工程と、
を含むことを特徴とするサーバ装置の制御方法。
【請求項15】
ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバと通信可能であり、前記ネットワークの非エッジ領域に配置されたクラウドサーバとして構成されるサーバ装置の制御方法であって、
前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信した前記エッジサーバに、前記遠隔制御用の処理プログラムが存在しない場合に、前記処理データの送信先に関する問い合わせを前記エッジサーバから受信すると、前記問い合わせに関連する処理プログラムが前記クラウドサーバに存在するか否かを確認する確認工程と、
前記処理プログラムが前記クラウドサーバに存在し、かつ、所定期間内に前記エッジサーバから前記問い合わせを受けた回数が閾値に達すると、前記エッジサーバによって前記ロボットの遠隔制御が行われるよう、前記クラウドサーバに存在する前記処理プログラムを前記エッジサーバに配置する配置工程と、
を含むことを特徴とするサーバ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介したロボットの遠隔制御をクラウドサーバ又はエッジサーバにより分散して行う技術に関するものである。
【背景技術】
【0002】
特許文献1には、移動式ロボットを使用して未知の環境のマップを構築し、構築したマップを使用してロボットを移動させるシステムが記載されている。このシステムでは、ロボットタスクの実行時間を最小化するために、ロボットタスクの計算、通信負荷、及びエネルギー使用に基づいて、1つ以上のロボットタスクをクラウドサーバ及びエッジサーバを含む1つ以上の外部リソースに任せている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の技術では、ロボットの動作のためにクラウドサーバ及びエッジサーバを含む外部リソースが利用されている。このようなクラウドサーバ及びエッジサーバからネットワークを介して多数のロボットの遠隔制御を行う場合、クラウドサーバに処理が集中すると、クラウドサーバの負荷が大きくなるとともに、遠隔制御のための通信によるネットワークの負荷も大きくなる。このため、ロボットの遠隔制御のための処理がサーバ間で適切に分散される必要がある。
【0005】
そこで、本発明は、クラウドサーバ及びエッジサーバからネットワークを介してロボットの遠隔制御を行う際に、遠隔制御のための処理をサーバ間で適切に分散するための技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る遠隔制御システムは、ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバと、前記ネットワークの非エッジ領域に配置されたクラウドサーバとを含み、前記ネットワークを介して前記ロボットの遠隔制御を行う遠隔制御システムであって、前記エッジサーバは、前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信すると、前記遠隔制御用の処理プログラムが前記エッジサーバに存在するか否かを確認する確認手段と、前記確認手段による確認結果に基づいて、前記処理データの送信先として前記エッジサーバ又は前記クラウドサーバを示す送信先情報を前記ロボットへ通知する通知手段と、前記送信先情報が前記エッジサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う第1制御手段と、を備え、前記クラウドサーバは、前記送信先情報が前記クラウドサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う第2制御手段を備えることを特徴とする。
【0007】
本発明の一態様に係るサーバ装置は、ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバとして構成され、前記ネットワークの非エッジ領域に配置されたクラウドサーバと通信可能なサーバ装置であって、前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信すると、前記遠隔制御用の処理プログラムが前記エッジサーバに存在するか否かを確認する確認手段と、前記確認手段による確認結果に基づいて、前記処理データの送信先として前記エッジサーバ又は前記クラウドサーバを示す送信先情報を前記ロボットへ通知する通知手段と、前記送信先情報が前記エッジサーバを示す場合に、前記ロボットから前記処理データを受信して前記ロボットの遠隔制御を行う制御手段と、を備えることを特徴とする。
【0008】
本発明の他の一態様に係るサーバ装置は、ロボットがアクセス可能なネットワークのエッジ領域に配置されたエッジサーバと通信可能であり、前記ネットワークの非エッジ領域に配置されたクラウドサーバとして構成されるサーバ装置であって、前記ロボットの遠隔制御に必要となる処理データの送信先に関する問い合わせを前記ロボットから受信した前記エッジサーバに、前記遠隔制御用の処理プログラムが存在しない場合に、前記処理データの送信先に関する問い合わせを前記エッジサーバから受信すると、前記問い合わせに関連する処理プログラムが前記クラウドサーバに存在するか否かを確認する確認手段と、前記処理プログラムが前記クラウドサーバに存在し、かつ、所定期間内に前記エッジサーバから前記問い合わせを受けた回数が閾値に達すると、前記エッジサーバによって前記ロボットの遠隔制御が行われるよう、前記クラウドサーバに存在する前記処理プログラムを前記エッジサーバに配置する配置手段と、を備えることを特徴とする。
【発明の効果】
【0009】
本発明によれば、クラウドサーバ及びエッジサーバからネットワークを介してロボットの遠隔制御を行う際に、遠隔制御のための処理をサーバ間で適切に分散することが可能になる。
【図面の簡単な説明】
【0010】
【
図2】エッジサーバ及びクラウドサーバで保持される管理情報の例を示す図
【
図3】エッジサーバによって実行される処理の手順を示すフローチャート
【
図4】クラウドサーバによって実行される処理の手順を示すフローチャート
【
図5】遠隔操作処理(S211)の手順を示すフローチャート
【
図6】エッジサーバにおける処理プログラムの削除処理の手順を示すフローチャート
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0012】
<遠隔制御システム>
図1は、ロボットの遠隔制御のための遠隔制御システムの構成例を示す。遠隔制御システムは、クラウドサーバ100及びエッジサーバ200を含み、ネットワーク400を介してロボット300の遠隔制御を行うシステムである。エッジサーバ200は、ロボット300がアクセス可能なネットワーク400のエッジ領域に配置されたサーバ装置である。クラウドサーバ100は、ネットワーク400の非エッジ領域に配置されたサーバ装置である。クラウドサーバ100、エッジサーバ200、及びロボット300は、ネットワーク400を介して互いに通信可能である。
【0013】
ネットワーク400は、例えば、モバイルネットワーク(移動通信ネットワーク)及びインターネットを含みうる。モバイルネットワークは、例えば、LTE(Long Term Evolution)/LTE-Advanced規格又は5G規格に準拠したネットワークであり、無線アクセスネットワーク(RAN)及びコアネットワークを含みうる。
【0014】
(ロボット300)
ロボット300は、配送サービス、清掃サービス又は警備サービス等の、種々のサービスの提供に用いられるロボットである。なお、ロボット300は、遠隔操作が可能なロボットであればよく、例えば、工場内において生産ライン上で搬送される製品を扱うロボット等であってもよい。なお、
図1では1台のロボット300のみが示されているが、任意の数のロボットがネットワーク400に接続され、クラウドサーバ100及びエッジサーバ200による遠隔制御の対象となりうる。
【0015】
ロボット300は、ハードウェア構成として、制御部301、通信部302、カメラ部311、センサ部312、及び動作部313を備える。制御部301は、1つ以上のプロセッサ(CPU等)及び1つ以上のメモリを有し、カメラ部311、センサ部312、及び動作部313を制御する。1つ以上のメモリに格納されたプログラムを1つ以上のプロセッサが読み出して実行することで、制御部301の機能が実現されうる。
【0016】
通信部302は、ネットワーク400を介して、クラウドサーバ100及びエッジサーバ200等のサーバ装置と通信可能である。制御部301は、通信部302を介してサーバ装置との間でデータの送受信を行う。例えば、制御部301は、カメラ部311による撮影で得られた画像データ及びセンサ部312から出力されるセンサデータを、処理データとして通信部302を介してサーバ装置へ送信する。また、制御部301は、通信部302を介してサーバ装置から制御データを受信し、受信した制御データを用いて動作部313を制御することで、ロボット300の動作を実現する。
【0017】
(エッジサーバ200)
エッジサーバ200は、エッジ処理(エッジコンピューティング)を行うサーバ装置であり、ネットワーク400のエッジ領域に配置される。例えば、ロボット300がモバイルネットワークに接続されている場合、エッジサーバ200は、インターネットを介することなくロボット300がアクセス可能となるよう、モバイルネットワークに(例えば無線基地局に)配置される。
【0018】
エッジサーバ200は、ハードウェア構成として、制御部201、通信部202、及びストレージ(記憶部)203を備える。制御部201は、1つ以上のプロセッサ(CPU等)及び1つ以上のメモリを有する。ストレージ203に格納されたプログラムを1つ以上のプロセッサがメモリに読み出して実行することで、制御部201の機能が実現されうる。制御部201は、機能構成(ソフトウェア構成)として、処理指示部211、処理配置部212、及び処理実行部213を有する。ストレージ203は、不揮発性の記憶装置であり、後述する管理情報等の各種データ、及び後述する処理プログラム等の各種プログラムが格納されうる。
【0019】
処理指示部211は、他の機能部及び制御対象のロボット300に対して各種指示を行う。例えば、処理指示部211は、処理実行部213に対して、制御対象のロボット300の遠隔制御用の処理プログラムの実行を指示する。また、処理指示部211は、制御対象のロボット300に対して、処理データの送信先を示す送信先情報を通知することで、当該送信先情報が示す送信先への処理データの送信を指示する。
【0020】
処理指示部211は更に、自装置内で動作可能な処理プログラムを管理するための管理情報を、ストレージ203に格納した状態で保持する。
図2は、処理指示部211によって保持される管理情報の例を示す。エッジサーバ200内に処理プログラムが存在する場合、当該処理プログラムに関する情報が管理情報に登録されることで管理される。エッジサーバ200内に存在しない処理プログラムに関する情報は管理情報に含まれない。なお、クラウドサーバ100によって保持される管理情報も同様である。
【0021】
本実施形態の管理情報は、管理している処理プログラムごとに、処理プログラム名と、処理データの送信先と、処理プログラムの配置時刻、処理開始時刻及び処理終了時刻と、処理プログラムに関する問い合わせ回数とを示す情報を含む。配置時刻は、自装置(エッジサーバ200又はクラウドサーバ100)に処理プログラムが配置された時刻である。また、問い合わせ回数は、後述する問い合わせを、ロボット300又はエッジサーバ200から所定期間内に受けた回数である。
【0022】
処理配置部212は、ロボット300の遠隔制御用の処理プログラムの配置を、エッジサーバ200とクラウドサーバ100との間で制御する。処理実行部213は、ロボット300から送信される処理データを、通信部202を介して受信し、受信した処理データを用いて処理プログラムを実行することで、ロボット300の遠隔制御用の制御データを生成する。処理実行部213は、生成した制御データを、通信部202を介してロボット300へ送信することで、ロボット300の遠隔制御を行う。
【0023】
(クラウドサーバ100)
クラウドサーバ100は、ネットワーク400の非エッジ領域に配置される。例えば、ロボット300がモバイルネットワークに接続されている場合、クラウドサーバ100は、モバイルネットワーク及びインターネットを介してロボット300がアクセス可能な領域に配置される。
【0024】
クラウドサーバ100は、エッジサーバ200と同様のハードウェア構成を有しうる。制御部101は、機能構成として、処理指示部111、処理配置部112、処理実行部113、処理学習部114、及び遠隔操作部115を有する。処理指示部111、処理配置部112、及び処理実行部113は、それぞれ、エッジサーバ200の処理指示部211、処理配置部212、処理実行部213と同様の機能を有しうる。
【0025】
処理学習部114は、ロボット300から受信した処理データと、その処理データを用いた人(ユーザ)によるロボット300の遠隔操作のための遠隔操作データとに基づいて、当該遠隔操作を学習する。処理学習部114は、当該学習結果に基づいて、ロボット300の遠隔制御用の処理プログラムを作成する。遠隔操作部115は、ロボット300の遠隔操作を行うためのユーザインタフェース(UI)を人(ユーザ)に対して提供し、当該UIを介して受け付けたユーザ操作に従ってロボット300の遠隔操作を行う。
【0026】
<エッジサーバによる処理>
図3は、一実施形態に係るエッジサーバ200によって実行される処理の手順を示すフローチャートである。
図3の各ステップの処理は、制御部201のプロセッサが、ストレージ203に格納されたプログラムを読み出して実行することによってエッジサーバ200において実現される。
【0027】
ロボット300は、遠隔制御による動作を開始する際に、ロボット300の遠隔制御に必要となる処理データの送信先を確認するための問い合わせを、エッジサーバ200へ送信する。本実施形態において、処理データは、ロボット300が行う動作に対応する処理プログラムが配置されたサーバ(エッジサーバ200又はクラウドサーバ100)へ送信される。ロボット300が行う動作に対応する処理プログラムがいずれのサーバにも存在しない場合、処理データはクラウドサーバ100へ送信され、遠隔操作部115を用いたロボット300の遠隔操作処理が行われる。
【0028】
エッジサーバ200において、処理指示部211は、S101で、ロボット300から問い合わせを受信するとS102へ処理を進める。S102で、処理指示部211は、受信した問い合わせに関連する、ロボット300の遠隔制御用の処理プログラムがエッジサーバ200内に存在するか否かを確認する確認処理を行う。確認処理は、ストレージ203に保持されている管理情報に、問い合わせを受けた処理プログラムに関する情報が存在するか否かを確認することによって行われうる。このように、処理指示部211は、ロボット300の遠隔制御に必要となる処理データの送信先に関する問い合わせをロボット300から受信すると、当該遠隔制御用の処理プログラムがエッジサーバ200に存在するか否かを確認する。
【0029】
S103で、処理指示部211は、上述の確認処理の結果、問い合わせに関連する処理プログラムがエッジサーバ200内に存在する場合には、S104へ処理を進める。S104で、処理指示部211は、処理データの送信先としてエッジサーバ200を示す送信先情報を、問い合わせの送信元のロボット300へ通知する。ロボット300は、エッジサーバ200から送信先情報の通知を受信すると、当該送信先情報に従ってエッジサーバ200への処理データの送信を開始する。
【0030】
ロボット300から処理データを受信すると、S105で、処理実行部213は、受信した処理データを用いて処理プログラムを実行することで、ロボット300の遠隔制御用の制御データを生成する。処理実行部213は、生成した制御データをロボット300へ送信することで、ロボット300の遠隔制御を行う。遠隔制御によるロボット300の動作は、制御部301が、エッジサーバ200から受信した制御データに従って動作部313を制御することによって行われる。なお、処理実行部213は、処理プログラムに基づく処理の開始時に、処理開始時刻を処理指示部211へ通知する。処理指示部211は、通知された処理開始時刻を、対応する処理プログラムに関する情報として管理情報に記録する。
【0031】
S106で、処理実行部213は、処理プログラムに基づく処理が完了したか否かを判定し、処理が完了すると、処理終了時刻を処理指示部211へ通知する。処理指示部211は、通知された処理終了時刻を、対応する処理プログラムに関する情報として管理情報に記録し、
図3の手順による処理を終了する。
【0032】
一方、S103で、処理指示部211は、ロボット300から受信した問い合わせに関連する処理プログラムがエッジサーバ200内に存在しない場合には、S107へ処理を進める。S107で、処理指示部211は、ロボット300の遠隔制御に必要となる処理データの送信先を確認するための問い合わせを、クラウドサーバ100へ送信する。当該問い合わせを受信したクラウドサーバ100は、後述する
図4の手順による処理を行うことで、エッジサーバ200への配置のために処理プログラムをエッジサーバ200へ送信するか、又は、処理データの送信先としてクラウドサーバ100を示す送信先情報をエッジサーバ200へ送信する。
【0033】
処理指示部211は、クラウドサーバ100への問い合わせの送信後、S108で、当該問い合わせに対するクラウドサーバ100からの応答を待つ。当該問い合わせに関連する処理プログラムがクラウドサーバ100に存在し、かつ、クラウドサーバ100によって処理プログラムがエッジサーバ200へ配置される場合、処理指示部211は、S108で、クラウドサーバ100を示す送信先情報を受信せず、S109で、処理プログラムをクラウドサーバ100から受信する。この場合、S110で、処理指示部211は、管理情報に登録されている、問い合わせに関連する処理プログラムの送信先情報を更新する。具体的には、処理指示部211は、管理情報に含まれる送信先情報が示す送信先としてエッジサーバ200を登録する。その後、処理指示部211は、S104へ処理を進め、上述のようにS104~S106の処理を行い、
図3の手順による処理を終了する。
【0034】
このように、処理指示部211は、クラウドサーバ100からエッジサーバ200に処理プログラムが配置されると、処理データの送信先としてエッジサーバ200を示す送信先情報をロボット300へ通知する。更に、処理実行部213は、ロボット300から処理データを受信し、当該処理データを用いて処理プログラムを実行することで、ロボット300の遠隔制御を行う。
【0035】
また、処理指示部211は、クラウドサーバ100への問い合わせに対する応答として、クラウドサーバ100を示す送信先情報を受信した場合、S109からS111へ処理を進める。なお、後述するように、クラウドサーバ100から送信される送信先情報は、クラウドサーバ100の処理実行部113に対応するIPアドレス(クラウドサーバ100に存在する処理プログラムが実行される場合)又はクラウドサーバ100の又は遠隔操作部115を示すIPアドレス(遠隔操作処理が行われる場合)であってもよい。S111で、処理指示部211は、クラウドサーバ100から受信した送信先情報に基づいて、管理情報に含まれる、問い合わせに関連する処理プログラムについての送信先情報を更新する。更にS112で、処理指示部211は、クラウドサーバ100から受信した送信先情報を、問い合わせの送信元のロボット300へ通知し、
図3の手順による処理を終了する。
【0036】
<クラウドサーバによる処理>
図4は、一実施形態に係るクラウドサーバ100によって実行される処理の手順を示すフローチャートである。
【0037】
図4の手順による処理は、エッジサーバ200からの問い合わせの受信に応じて実行される。S201で、処理指示部111は、エッジサーバ200から問い合わせを受信すると、S202へ処理を進める。S202で、処理指示部111は、受信した問い合わせに関連する、ロボット300の遠隔制御用の処理プログラムがクラウドサーバ100内に存在するかを確認する確認処理を行う。確認処理は、ストレージ103に保持されている管理情報に、問い合わせを受けた処理プログラムに関する情報が存在するか否かを確認することによって行われうる。このように、処理指示部111は、ロボット300の遠隔制御に必要となる処理データの送信先に関する問い合わせをエッジサーバ200から受信すると、当該遠隔制御用の処理プログラムがクラウドサーバ100に存在するか否かを確認する。
【0038】
S203で、処理指示部111は、上述の確認処理(S202)の結果、受信した問い合わせに関連する処理プログラムがクラウドサーバ100内に存在する場合には、S204へ処理を進め、存在しない場合には、S210へ処理を進める。
【0039】
(クラウドサーバ100に処理プログラムが存在する場合)
S204で、処理指示部111は、問い合わせに関連する処理プログラムについて、同一のエッジサーバ200から所定期間内に閾値以上の回数、問い合わせがあったか否かを判定する。処理指示部111は、所定期間内における同一のエッジサーバ200からの問い合わせの回数が閾値以上である場合にはS205へ処理を進め、閾値未満である場合にはS207へ処理を進める。
【0040】
S205で、処理指示部111は、エッジサーバ200で処理プログラムを実行させるために、処理配置部112によって、受信した問い合わせに関連する処理プログラムを、当該問い合わせの送信元のエッジサーバ200へ送信させる。これにより、処理配置部112は、当該処理プログラム112をエッジサーバ200へ配置する。その後、S206で、処理指示部111は、管理情報に登録されている、問い合わせに関連する処理プログラムの送信先情報を更新し、
図4の手順による処理を終了する。
【0041】
このように、処理指示部111は、エッジサーバ200から受信した問い合わせに関連する処理プログラムがクラウドサーバ100に存在し、かつ、所定期間内にエッジサーバ200から当該問い合わせを受けた回数が閾値に達すると、エッジサーバ200によってロボット300の遠隔制御が行われるよう、クラウドサーバ100に存在する処理プログラムをエッジサーバ200に配置する。
【0042】
一方、S207で、処理指示部111は、クラウドサーバ100で処理プログラムを実行するために、処理データの送信先としてクラウドサーバ100を示す送信先情報を、問い合わせの送信元のクラウドサーバ100へ通知する。通知される送信先情報は、例えば、処理プログラムを実行する処理実行部113に対応するIPアドレスであってもよい。
【0043】
エッジサーバ200は、上記の送信先情報の通知をクラウドサーバ100から受信すると(S108で「YES」)、受信した送信先情報を、問い合わせの送信元のロボット300へ通知する(S112)。ロボット300は、エッジサーバ200から送信先情報の通知を受信すると、当該送信先情報に従ってクラウドサーバ100(処理実行部113)への処理データの送信を開始する。
【0044】
ロボット300から処理データを受信すると、S208で、処理実行部113は、受信した処理データを用いて処理プログラムを実行することで、ロボット300の遠隔制御用の制御データを生成する。処理実行部113は、生成した制御データをロボット300へ送信することで、ロボット300の遠隔制御を行う。遠隔制御によるロボット300の動作は、制御部301が、クラウドサーバ100から受信した制御データに従って動作部313を制御することによって行われる。なお、処理実行部113は、処理プログラムに基づく処理の開始時に、処理開始時刻を処理指示部111へ通知する。処理指示部111は、通知された処理開始時刻を、対応する処理プログラムに関する情報として管理情報に記録する。
【0045】
S209で、処理実行部113は、処理プログラムに基づく処理が完了したか否かを判定し、処理が完了すると、処理開始時刻及び処理終了時刻を処理指示部111へ通知する。処理指示部111は、通知された処理終了時刻を、対応する処理プログラムに関する情報として管理情報に記録し、
図4の手順による処理を終了する。
【0046】
このように、エッジサーバ200から受信した問い合わせに関連する処理プログラムがクラウドサーバ100に存在し、かつ、所定期間内にエッジサーバ200から当該問い合わせを受けた回数が閾値に達していなければ、処理データの送信先としクラウドサーバ100を示す送信先情報を、エッジサーバ200を介してロボット300へ通知する。処理実行部113は、ロボット300から処理データを受信し、当該処理データを用いて処理プログラムを実行することで、ロボット300の遠隔制御を行う。
【0047】
(クラウドサーバ100に処理プログラムが存在しない場合)
S210で、処理指示部111は、クラウドサーバ100でロボット300の遠隔操作処理を実行するために、処理データの送信先としてクラウドサーバ100を示す送信先情報を、問い合わせの送信元のエッジサーバ200へ通知する。通知される送信先情報は、例えば、ロボット300の遠隔操作を行う遠隔操作部115に対応するIPアドレスであってもよい。
【0048】
エッジサーバ200は、上記の送信先情報の通知をクラウドサーバ100から受信すると(S108で「YES」)、受信した送信先情報を、問い合わせの送信元のロボット300へ通知する(S112)。ロボット300は、エッジサーバ200から送信先情報の通知を受信すると、当該送信先情報に従ってクラウドサーバ100(遠隔操作部115)への処理データの送信を開始する。
【0049】
送信先情報の通知後、処理指示部111は、S211で、
図5の手順に従って、遠隔操作部115を用いたロボット300の遠隔操作処理を実行する。遠隔操作処理が完了すると、処理指示部111は、
図4の手順による処理を終了する。
【0050】
このように、処理指示部111は、エッジサーバ200から受信した問い合わせに関連する処理プログラムがクラウドサーバ100に存在しなければ、処理データの送信先としてクラウドサーバ100を示す送信先情報を、エッジサーバ200を介してロボット300へ通知する。処理実行部113は、ロボット300から処理データを受信し、当該処理データを用いて、ユーザ操作によるロボット300の遠隔操作を行う。
【0051】
(遠隔操作処理)
図5は、一実施形態に係る遠隔操作処理(S211)の手順を示すフローチャートである。エッジサーバ200だけでなくクラウドサーバ100にも処理プログラムが存在しない場合、クラウドサーバ100は、遠隔操作部115によるロボット300の遠隔操作を行う。S211において、処理指示部111は、遠隔操作部115に対してロボット300の遠隔操作の実行を指示し、処理学習部114に対してロボット300の遠隔操作の学習を指示する。これにより、クラウドサーバ100において
図5の手順による処理が開始される。
【0052】
S221で、遠隔操作部115は、ネットワーク400を介して、遠隔操作の対象となるロボット300との接続処理を行う。ロボット300との接続が確立されると、ロボット300からクラウドサーバ100(遠隔操作部115)への処理データの送信が開始される。S222で、遠隔操作部115は、ロボット300から受信される処理データに基づいてロボット300の遠隔操作を行う。
【0053】
ロボット300の遠隔操作は、人の操作(ユーザ操作)によって行われる。ユーザは、クラウドサーバ100を構成するサーバ装置の操作部、又はネットワーク400を介してクラウドサーバ100と通信可能な端末装置の操作部を用いて、ロボット300の遠隔操作を行う。端末装置は、例えば、パーソナルコンピュータ(PC)又はタブレット端末でありうる。遠隔操作部115は、サーバ装置の表示部に操作画面を表示する、又は端末装置に画面データを送信して端末装置の表示部に操作画面を表示させることで、操作画面におけるユーザ操作を受け付ける。遠隔操作部115は、受け付けたユーザ操作に対応する遠隔操作データを生成してロボット300に送信することで、ロボット300の遠隔操作を行う。このようにして、遠隔操作部115を介して、人(ユーザ)の操作によるロボット300の遠隔操作を実現できる。
【0054】
ロボット300の遠隔操作が行われる間、S222で、処理学習部114は、遠隔操作部115がロボット300から受信した処理データ、及び遠隔操作部115がロボット300へ送信した遠隔操作データに基づいて、当該遠隔操作を学習する。ロボット300の遠隔操作が完了すると(S224で「YES」)、遠隔操作部115はS225へ処理を進める。S225で、遠隔操作部115は、ロボット300との接続を解除し、S226へ処理を進める。
【0055】
S226で、処理学習部114は、S223における学習結果に基づいて、ロボット300の遠隔制御用の処理プログラムを作成する。処理学習部114は、S222において遠隔操作部115を介してユーザによって行われた遠隔操作を実現するためのプログラムを、処理プログラムとして作成する。その後、S227で、処理配置部112は、作成された処理プログラムをクラウドサーバ100内に配置する。処理プログラムは、クラウドサーバ100内で、処理実行部113による実行が可能な状態でストレージ103に格納される。最後にS228で、処理指示部111は、クラウドサーバ100内に新たに配置された処理プログラムに関する情報を、クラウドサーバ100において保持している管理情報に登録し、
図5の手順による遠隔操作処理を終了する。
【0056】
<エッジサーバによる処理プログラムの削除処理>
図6は、一実施形態に係るエッジサーバ200における処理プログラムの削除処理の手順を示すフローチャートである。エッジサーバ200は、エッジサーバ200内のメモリ又はディスクリソースの不足を防ぐために、当該サーバ内で所定期間にわたって利用されていない処理プログラムを、ストレージ203から自動的に削除する削除機能を有する。この削除機能による処理は、
図6の手順に従って実行される。
【0057】
S301で、処理指示部211は、保持している管理情報に記録されている各処理プログラムの利用状況を確認する。処理指示部211は、処理プログラムごとに、管理情報に記録されている処理終了時刻から所定期間が経過しているか否かを確認することで、所定期間内における当該処理プログラムの利用の有無を確認する。S302で、処理指示部211は、確認処理の結果、エッジサーバ200に配置されている1つ以上の処理プログラムのうち、所定期間内の利用が無い処理プログラムが存在しない場合には、削除対象の処理プログラムは存在しないため、
図6の手順による処理を終了する。一方、処理指示部211は、所定期間内の利用が無い処理プログラムが存在する場合には、S303へ処理を進める。
【0058】
S303で、処理指示部211は、処理実行部213に対して、所定期間内の利用が無い処理プログラムを削除対象の処理プログラムとして指定した削除指示を行う。処理実行部213は、処理指示部211からの削除指示に従って、指定された削除対象の処理プログラムをストレージ203から削除する処理を行う。その後S304で、処理指示部211は、処理実行部213による処理結果に基づいて、削除された処理プログラムに関する情報を管理情報から削除し、
図6の手順による処理を終了する。
【0059】
以上説明したように、本実施形態の遠隔制御システムは、ロボット300がアクセス可能なネットワーク400のエッジ領域に配置されたエッジサーバ200と、ネットワーク400の非エッジ領域に配置されたクラウドサーバ100とを含む。遠隔制御システムは、クラウドサーバ100及びエッジサーバ200により、ネットワーク400を介してロボット300の遠隔制御を行う。エッジサーバ200において、制御部201は、ロボット300の遠隔制御に必要となる処理データの送信先に関する問い合わせをロボット300から受信すると、遠隔制御用の処理プログラムがエッジサーバ200に存在するか否かを確認する。制御部201は、当該確認結果に基づいて、処理データの送信先としてエッジサーバ200又はクラウドサーバ100を示す送信先情報をロボット300へ通知する。制御部201は、ロボット300へ通知された送信先情報がエッジサーバ200を示す場合に、ロボット300から処理データを受信してロボット300の遠隔制御を行う。一方、クラウドサーバ100は、ロボット300へ通知された送信先情報がクラウドサーバ100を示す場合に、ロボット300から処理データを受信してロボット300の遠隔制御を行う。
【0060】
このように、本実施形態によれば、ロボット300の遠隔制御用の処理プログラムを、エッジサーバ200又はクラウドサーバ100に配置可能とすることで、当該遠隔操作のための処理をサーバ間で分散可能とする。また、エッジサーバ200又はクラウドサーバ100にロボット300の処理プログラムが存在せず、ロボット300の動作を停止することが必要となりうる状況が発生した場合でも、ユーザ操作によるロボット300の遠隔操作が可能になる。これにより、ロボット300の動作を停止させることを避けることが可能になる。したがって、本実施形態によれば、クラウドサーバ100及びエッジサーバ200からネットワーク400を介してロボットの遠隔制御を行う際に、遠隔制御のための処理をサーバ間で適切に分散することが可能になる。
【0061】
[その他の実施形態]
上述の実施形態に係る遠隔操作装置は、コンピュータを遠隔操作装置として機能させるためのコンピュータプログラムにより実現することができる。当該コンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて配布が可能なもの、又は、ネットワーク経由で配布が可能なものである。
【0062】
なお、本発明により、例えば、複数のサーバからネットワークを介してロボットの遠隔制御を行う際に、遠隔制御のための処理をサーバ間で適切に分散することが可能となることから、国連が主導する持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」に貢献することが可能となる。
【0063】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0064】
100:クラウドサーバ、200:エッジサーバ、300:ロボット、400:ネットワーク