(57)【特許請求の範囲】
【請求項１】
無人機の現在の推定状態を順次画面表示可能な表示装置と、
前記無人機を遠隔制御するために前記表示装置に画面表示された前記無人機の現在の推定状態に基づいて操作者が入力した操作指令を前記無人機に送信可能であり、且つ、前記無人機が自機の状態を順次実測した実測値を前記無人機から順次受信可能な通信部と、
それぞれ前記実測値を反映した制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を求める時系列的演算を実行して求められた前記無人機の現在の推定状態を前記表示装置に提供可能な第１演算部及び第２演算部を含む２つ以上の演算部と、
を備える制御装置であって、
前記第１演算部及び前記第２演算部は、前記実測値を交番的に受け取り可能であって、前記実測値を受け取る都度、前記時系列的演算を繰り返し実行するように構成され、
前記第１演算部は、交番的に受け取った一の実測値を反映した一の制御モデルに基づいて、前記時系列的演算が前記一の実測値の実測時刻から現在時刻に追い付く一の時刻まで実時間の経過よりも高速に、前記時系列的演算を順次実行可能であり、
前記第２演算部は、交番的に受け取った他の実測値を反映した他の制御モデルに基づいて、前記時系列的演算が前記他の実測値の実測時刻から現在時刻に追い付く他の時刻まで実時間の経過よりも高速に、前記時系列的演算を順次実行可能であり、
前記第１演算部は、前記一の時刻から次の前記他の時刻まで、前記無人機の現在の推定状態を前記表示装置に提供するように構成され、
前記第２演算部は、前記他の時刻から次の前記一の時刻まで、前記無人機の現在の推定状態を前記表示装置に提供するように構成されている
ことを特徴とする無人機の制御装置。
【請求項２】
前記制御モデルは、状態推定フィルタを含むように構成され、
前記実測値の実測時刻から現在時刻に追い付く時刻まで、実時間の経過よりも高速に実行される前記時系列的演算は、前記実測値を前記状態推定フィルタの内部状態に反映させる事後予測動作と、前記実測値を反映させた内部状態に基づいて前記状態推定フィルタの予測動作を実時間の経過よりも高速に行う高速状態予測動作と、を含むように構成され、
前記無人機の現在の推定状態を前記表示装置に提供する処理は、実時間の経過よりも高速に実行される前記時系列的演算が現在時刻に追い付いた後に、前記高速状態予測動作を継続する形で前記状態推定フィルタの予測動作を実時間の経過に合わせて行いながら時系列的な前記推定状態を画面表示する事前予測動作を含むように構成される、
ことを特徴とする請求項１に記載の無人機の制御装置。
【請求項３】
前記２つ以上の演算部は第３演算部を含み、
前記第３演算部は、
前記一の実測値を前記制御モデルに反映して得られる前記一の制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を時系列的に求める時系列的演算を、前記一の実測値が実測された時刻から現在時刻を通過して一の未来の時点に至るまで、実時間の経過よりも高速に実行するように構成され、
前記第３演算部による時系列的演算は、前記第１演算部及び前記第２演算部による前記時系列的演算とは並列に実行するように構成され、
前記第３演算部による時系列的演算が前記一の未来の時点に到達した後に前記第３演算部による時系列的演算により求められた前記無人機の現在の推定状態を、前記無人機の未来の推定状態として、前記表示装置に提供可能である
ことを特徴とする請求項１または請求項２に記載の無人機の制御装置。
【請求項４】
前記２つ以上の演算部は第４演算部を含み、
前記第４演算部は、
前記他の実測値を前記制御モデルに反映して得られる前記他の制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を時系列的に求める時系列的演算を、前記他の実測値が実測された時刻から現在時刻を通過して他の未来の時点に至るまで、実時間の経過よりも高速に実行するように構成され、
前記第４演算部による時系列的演算は、前記第１演算部、前記第２演算部及び前記第３演算部による前記時系列的演算とは並列に実行するように構成され、
前記第４演算部による時系列的演算が前記他の未来の時点に到達した後に前記第４演算部による時系列的演算により求められた前記無人機の現在の推定状態を、前記無人機の未来の推定状態として、前記表示装置に提供可能であり、
前記第３演算部は、前記一の未来の時点から次の前記他の未来の時点まで、前記無人機の未来の推定状態を前記表示装置に提供するように構成され、
前記第４演算部は、前記他の未来の時点から次の前記一の未来の時点まで、前記無人機の未来の推定状態を前記表示装置に提供するように構成されている、
ことを特徴とする請求項３記載の無人機の制御装置。
【請求項５】
前記２つ以上の演算部の少なくとも一つは、
前記第１演算部又は前記第２演算部が時系列的に求めた前記無人機の現在の推定状態を表示する画面に重畳させる形で、前記第３演算部および前記第４演算部が時系列的に求めた前記無人機の未来の推定状態を実時間の経過に先行する形で前記画面に表示するように構成されている、
ことを特徴とする請求項４に記載の無人機の制御装置。
【請求項６】
前記２つ以上の演算部の少なくとも一つは、
前記無人機の遠隔制御の開始に先立って、シミュレーションに基づく試行錯誤を繰り返すことにより前記無人機に対する一連の操作指令を含む操作プロファイルを生成する動作と、
前記操作プロファイルに基づいて前記無人機を無人制御する動作と、
前記第３演算部により実時間よりも未来の時点まで時系列的に求められた前記無人機の未来の推定状態が要回避状態を示すか否かを検出する動作と、
前記要回避状態を検出した際に、前記無人機の制御を、前記第１演算部および第２演算部が時系列的に求めた前記無人機の現在の推定状態を表示する画面表示に基づいて、操作者が手動で行う制御に切り替える動作と、
をさらに備える、ことを特徴とする請求項３または請求項４に記載の無人機の制御装置。
【請求項７】
前記２つ以上の演算部の少なくとも一つは、
前記第３演算部により前記実時間よりも未来の時点まで時系列的に求めた前記無人機の未来の推定状態が要回避状態を示すか否かを検出する動作と、
前記要回避状態を前記検出した際に、前記操作指令に優先して前記無人機に回避軌道をとらせる緊急操作指令を前記無人機に送信する動作と、
をさらに実行する、ことを特徴とする請求項３または請求項４に記載の無人機の制御装置。
【請求項８】
無人機が自機の状態を順次実測した実測値を前記無人機から順次受信し、前記無人機の状態を順次画面表示しながら、前記順次画面表示された前記状態に基づいて操作者が入力した操作指令に基づいて前記無人機を遠隔制御する制御装置を動作させる方法であって、
前記制御装置内における２つ以上の演算部に含まれる第１演算部及び第２演算部が、それぞれ前記実測値を反映した制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を求める時系列的演算を実行して求められた前記無人機の現在の推定状態を表示装置に提供する第１ステップ、
を備え、前記第１ステップにおいて、
前記第１演算部及び前記第２演算部は、前記実測値を交番的に受け取り、前記実測値を受け取る都度、前記時系列的演算を繰り返し実行し、
前記第１演算部は、交番的に受け取った一の実測値を反映した一の制御モデルに基づいて、前記時系列的演算が前記一の実測値の実測時刻から現在時刻に追い付く一の時刻まで実時間の経過よりも高速に、前記時系列的演算を順次実行し、
前記第２演算部は、交番的に受け取った他の実測値を反映した他の制御モデルに基づいて、前記時系列的演算が前記他の実測値の実測時刻から現在時刻に追い付く他の時刻まで実時間の経過よりも高速に、前記時系列的演算を順次実行し、
前記第１演算部は、前記一の時刻から次の前記他の時刻まで、前記無人機の現在の推定状態を前記表示装置に提供し、
前記第２演算部は、前記他の時刻から次の前記一の時刻まで、前記無人機の現在の推定状態を前記表示装置に提供する、
ことを特徴とする無人機の制御方法。
【請求項９】
前記制御モデルは、状態推定フィルタを含むように構成され、
前記実測値の実測時刻から現在時刻に追い付く時刻まで、実時間の経過よりも高速に実行される前記時系列的演算は、前記実測値を前記状態推定フィルタの内部状態に反映させる事後予測動作と、前記実測値を反映させた内部状態に基づいて前記状態推定フィルタの予測動作を実時間の経過よりも高速に行う高速状態予測動作と、を含むように構成され、
前記無人機の現在の推定状態を前記表示装置に提供する処理は、実時間の経過よりも高速に実行される前記時系列的演算が現在時刻に追い付いた後に、前記高速状態予測動作を継続する形で前記状態推定フィルタの予測動作を行いながら時系列的な前記推定状態を画面表示する事前予測動作に切り替えるように構成される、
ことを特徴とする請求項８に記載の無人機の制御方法。
【請求項１０】
前記２つ以上の演算部に含まれる第３演算部は、前記第１演算部及び前記第２演算部による前記時系列的演算とは並列に、
前記一の実測値を前記制御モデルに反映して得られる前記一の制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を時系列的に求める時系列的演算を、前記一の実測値が実測された時刻から現在時刻を通過して一の未来の時点に至るまで、実時間の経過よりも高速に実行するステップ、
を実行し、
前記第３演算部による時系列的演算が前記一の未来の時点に到達した後に、前記第３演算部による時系列的演算により求められた前記無人機の現在の推定状態を、前記無人機の未来の推定状態として、前記表示装置に提供可能である
ことを特徴とする請求項８または請求項９に記載の無人機の制御方法。
【請求項１１】
前記２つ以上の演算部に含まれる第４演算部は、前記第１演算部、前記第２演算部及び前記第３演算部による前記時系列的演算とは並列に、
前記他の実測値を前記制御モデルに反映して得られる前記他の制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を時系列的に求める時系列的演算を、前記他の実測値が実測された時刻から現在時刻を通過して他の未来の時点に至るまで、実時間の経過よりも高速に実行するステップ、
を実行し、
前記第４演算部による時系列的演算が前記他の未来の時点に到達した後に前記第４演算部による時系列的演算により求められた前記無人機の現在の推定状態を、前記無人機の未来の推定状態として、前記表示装置に提供可能であり、
前記第３演算部は、前記一の未来の時点から次の前記他の未来の時点まで、前記無人機の未来の推定状態を前記表示装置に提供し、
前記第４演算部は、前記他の未来の時点から次の前記一の未来の時点まで、前記無人機の未来の推定状態を前記表示装置に提供する、
ことを特徴とする請求項１０記載の無人機の制御方法。
【請求項１２】
前記２つ以上の演算部の少なくとも一つは、
前記第１演算部又は前記第２演算部が時系列的に求めた前記無人機の現在の推定状態を表示する画面に重畳させる形で、前記第３演算部および前記第４演算部が時系列的に求めた前記無人機の未来の推定状態を実時間の経過に先行する形で前記画面に表示する、
ことを特徴とする請求項１１に記載の無人機の制御方法。
【請求項１３】
前記２つ以上の演算部の少なくとも一つは、
前記無人機の遠隔制御の開始に先立って、シミュレーションに基づく試行錯誤を繰り返すことにより前記無人機に対する一連の操作指令を含む操作プロファイルを生成するステップと、
前記操作プロファイルに基づいて前記無人機を無人制御するステップと、
前記第３演算部により実時間よりも未来の時点まで時系列的に求められた前記無人機の未来の推定状態が要回避状態を示すか否かを検出するステップと、
前記要回避状態を検出した際に、前記無人機の制御を、前記第１演算部および第２演算部が時系列的に求めた前記無人機の現在の推定状態を表示する画面表示に基づいて、操作者が手動で行う制御に切り替えるステップ、
をさらに備える、ことを特徴とする請求項１０または請求項１１に記載の無人機の制御方法。
【請求項１４】
前記２つ以上の演算部の少なくとも一つは、
前記第３演算部により前記実時間よりも未来の時点まで時系列的に求めた前記無人機の未来の推定状態が要回避状態を示すか否かを検出するステップと、
前記要回避状態を前記検出した際に、前記操作指令に優先して前記無人機に回避軌道をとらせる緊急操作指令を前記無人機に送信するステップと、
をさらに備える、ことを特徴とする請求項１０または請求項１１に記載の無人機の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、無人機との通信を介して無人機を遠隔制御するための制御装置および制御方法に関する。
【背景技術】
【０００２】
遠隔制御される無人機は社会の様々なシーンで利用され、例えば、原子炉の廃炉作業の為の様々な無人機が開発され、軽作業や調査のために現場投入されている。ところで、無人機と通信する制御装置を使用して、無人機の手動遠隔制御を行う方法を採用すると、当該制御装置と当該無人機との間の通信遅延を無視することはできない。当該通信遅延により、無人機が自機の状態を実測した実測値を制御装置側に送信しても、制御装置側で遅延して受信され、制御装置側が無人機に対して送信した操作指令は、無人機側で遅延して受信されることとなる。通信遅延が無視できない環境では、無人機は、仕様の上では高速移動が可能であるにもかかわらず、実際の運用においては、インチングに近い制御動作を強いられる。その結果、そのような環境で無人機を遠隔制御して実行される作業は非常に効率が悪く、作業の遅延をもたらし、逆に操作者が自身で無人機の動作を予測して高速動作を試みると、操作者の誤操作を招いてしまう。
【０００３】
上述した通信遅延の影響を意識した遠隔制御システムの従来例として、特許文献１に記載の遠隔制御システムが挙げられる。特許文献１記載の発明において、無人機は、推定アルゴリズムなどにより推定した自機の推定位置と自機の実測位置とを比較し、当該推定位置と当該実測位置との間の誤差が大きい時だけ当該実測位置を制御装置に送信する。また、特許文献１記載の発明において、制御装置は、無人機側と同様の推定アルゴリズムで無人機の推定位置を追跡し、当該実測位置を受信すると、当該追跡中の推定位置を当該受信した実測位置により更新する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５６３２４７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信遅延に起因する上記問題の解決策として高速な通信システムを導入しようとしても、充分な性能を達成可能な通信環境を構築できるとは限らず、無人機制御のためにそのような通信システムを実現することは困難である。例えば、原子炉建屋内では、広帯域通信が可能な光ファイバ回線を介して無人機と制御装置を接続する通信システムが採用されている。しかし、当該光ファイバ回線は、原子炉建屋内の他の機器類と共用されており、通信帯域を特定の無人機が専有できないので、当該光ファイバ回線を介した無人機の遠隔操作中に他の機器類による通信が発生した場合には、想定外の通信遅延が発生してしまう。
【０００６】
特許文献１記載の遠隔制御システムでは、無人機の推定位置と実測位置との間の誤差が大きい時だけ当該実測位置を無人機から制御装置に送信することにより、無人機と制御装置との間の通信帯域幅の使用量を低減し、それにより通信遅延の低減を図っている。しかしながら、特許文献１は無人機から受信したフィードバック信号（例えば、無人機が自機の状態を実測した実測値）を、制御装置側において通信遅延を考慮した上で無人機制御動作に反映させる仕組みや手段を開示していない。
【０００７】
上記問題点に鑑み、本発明に係る少なくとも一実施形態は、制御装置の操作者が無人機周辺の画像情報を見ながら無人機の手動遠隔制御を行う場合に、無人機から受信した実測値を、制御装置側において通信遅延を考慮した上で無人機制御動作に反映させる制御装置および制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
（１）本発明の幾つかの実施形態に係る制御装置は、無人機の現在の推定状態を順次画面表示可能な表示装置と、
前記無人機を遠隔制御するために前記表示装置に画面表示された前記無人機の現在の推定状態に基づいて操作者が入力した操作指令を前記無人機に送信可能であり、且つ、前記無人機が自機の状態を順次実測した実測値を前記無人機から順次受信可能な通信部と、
それぞれ前記実測値を反映した制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を求める時系列的演算を実行して求められた前記無人機の現在の推定状態を前記表示装置に提供可能な第１演算部及び第２演算部を含む２つ以上の演算部と、
を備える制御装置であって、
前記第１演算部及び前記第２演算部は、前記実測値を交番的に受け取り可能であって、前記実測値を受け取る都度、前記時系列的演算を繰り返し実行するように構成され、
前記第１演算部は、交番的に受け取った一の実測値を反映した一の制御モデルに基づいて、前記時系列的演算が前記一の実測値の実測時刻から現在時刻に追い付く一の時刻まで実時間の経過よりも高速に、前記時系列的演算を順次実行可能であり、
前記第２演算部は、交番的に受け取った他の実測値を反映した他の制御モデルに基づいて、前記時系列的演算が前記他の実測値の実測時刻から現在時刻に追い付く他の時刻まで実時間の経過よりも高速に、前記時系列的演算を順次実行可能であり、
前記第１演算部は、前記一の時刻から次の前記他の時刻まで、前記無人機の現在の推定状態を前記表示装置に提供するように構成され、
前記第２演算部は、前記他の時刻から次の前記一の時刻まで、前記無人機の現在の推定状態を前記表示装置に提供するように構成されている。
【０００９】
上記（１）の構成においては、新たな実測値を無人機から受信すると、新たな実測値を既存の制御モデルに反映して更新することにより新たな制御モデルが得られるので、当該新たな実測値により制御モデルのモデル化誤差を改善することができる。ただし、そのためには、当該新たな実測値の実測時刻から現在時刻までの通信遅延により生じた制御モデルの更新遅延を補償する必要がある。そこで、上記（１）の構成においては、当該新たな制御モデルに基づいて無人機の現在の推定状態を時系列的に求める動作を、当該実測時刻から始めて現在時刻に追い付くまで、実時間の経過よりも高速に実行する。
以上より、上記（１）の構成によれば、通信遅延により無人機から新しい実測値を受信できない間でも操作者に対して無人機制御のためのフィードバックを与えつつ、最新の実測値を無人機から受信すると、通信遅延により生じた制御モデルの更新遅延を補償する形で、当該最新の実測値を操作者へのフィードバックに反映させることができる。従って、上記（１）の構成によれば、制御装置の操作者が無人機周辺の情報を頼りに無人機の手動遠隔制御を行う場合に、無人機から受信した実測値を、通信遅延を考慮した上で制御装置側の無人機制御動作に反映させることができる。
【００１０】
また、上記（１）の構成では、無人機の直近の状態を表す最新の実測値を制御装置が遅れて受信しても、当該遅れて受信するまでの間は、以前に受信した実測値が反映された制御モデルに基づいて、無人機の現在の状態を時系列的に状態推定しながら順次画面表示することができる。従って、最新の実測値を制御装置が遅れて受信するまでの間においても、順次画面表示すべき無人機の現在の状態を、以前の実測値が反映された制御モデルに基づいて時系列的に状態推定し続けることができる。従って、最新の実測値を制御装置が遅れて受信するまでの間に無人機の今現在の状態を見ながら制御を行うことができない空白の時間が存在しなくなるので、制御装置の操作者は、通信遅延を意識せずに、無人機の手動遠隔制御を行うことができる。
さらに、上記（１）の構成では、無人機の直近の状態を表す最新の実測値を制御装置が遅れて受信した後には、当該最新の実測値を反映した制御モデルに基づいて、無人機の現在の状態を状態推定して画面表示することができる。従って、制御モデルに基づいて状態推定された無人機の現在の状態を表示装置の画面上で見ながら操作者が無人機の手動遠隔制御を行う場合、時間の経過に伴う制御モデルのモデル化誤差を蓄積させずに、無人機の現在の状態を状態推定することが可能となる。
【００１１】
（２）本発明の幾つかの実施形態では、上記（１）の構成において、前記制御モデルは、状態推定フィルタを含むように構成され、
前記実測値の実測時刻から現在時刻に追い付く時刻まで、実時間の経過よりも高速に実行される前記時系列的演算は、前記実測値を前記状態推定フィルタの内部状態に反映させる事後予測動作と、前記実測値を反映させた内部状態に基づいて前記状態推定フィルタの予測動作を実時間の経過よりも高速に行う高速状態予測動作を含むように構成され、
前記無人機の現在の推定状態を前記表示装置に提供する処理は、実時間の経過よりも高速に実行される前記時系列的演算が現在時刻に追い付いた後に、前記高速状態予測動作を継続する形で前記状態推定フィルタの予測動作を実時間の経過に合わせて行いながら時系列的な前記推定状態を画面表示する事前予測動作に切り替えるように構成される。
【００１２】
上記（２）の構成では、前記制御モデルは、状態推定フィルタを含むように構成されている。上記（２）の構成では、制御モデルが状態推定フィルタ以外の伝達関数で表現される場合とは異なり、無人機の現在の状態を時系列的に状態推定する処理を、状態推定フィルタによる各ループ処理が時間軸上の各時刻に対応する単純な繰り返しループ処理として時間ドメインで実行することができる。
また、上記（２）の構成では、新たに受信した実測値を前記状態フィルタの内部状態に反映させる事後予測動作を実行するのに続き、当該実測値の実測時刻を起点として、当該実測値を反映させた内部状態に基づいて状態推定フィルタの予測動作を高速状態予測動作として実時間よりも高速に実行し、当該高速状態予測動作の実行が現在時刻に追い付いたら、状態推定フィルタの予測動作を事前予測動作に切り替えてそのまま継続する。
従って、上記（２）の構成では、制御モデルに基づいて無人機の現在の状態を時系列的に状態推定する処理を実現する際に、上述した時間ドメインでの各ループ処理が終了する都度、各ループ処理で算出された状態変数から無人機の現在の状態を直接得ることができる。その結果、無人機の現在の状態を状態推定する処理において、制御モデルの内部変数値を無人機の現在の状態に変換する処理が不要となり、計算を高速化することができる。
また、上記（２）の構成では、最新の実測値が反映された制御モデルに基づいて無人機の現在の状態を状態推定する処理を実現するには、最新の実測値が実測された時刻に対応するループ処理において状態推定フィルタの状態変数値に当該最新の実測値を反映させた上で予測動作をそのまま継続するだけでよい。その結果、当該最新の実測値を制御モデルに反映するために、当該最新の実測値を制御モデルの内部表現に変換した上で制御モデルの内部状態に適用する処理が不要となり、計算を高速化することができる。
【００１３】
（３）本発明の幾つかの実施形態では、上記（１）または（２）の構成において、前記２つ以上の演算部は第３演算部を含み、前記第３演算部は、
前記一の実測値を前記制御モデルに反映して得られる前記一の制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を時系列的に求める時系列的演算を、前記一の実測値が実測された時刻から現在時刻を通過して一の未来の時点に至るまで、実時間の経過よりも高速に実行するように構成され、
前記第３演算部による時系列的演算は、前記第１演算部及び前記第２演算部による前記時系列的演算とは並列に実行するように構成され、
前記第３演算部による時系列的演算が前記一の未来の時点に到達した後に前記第３演算部による時系列的演算により求められた前記無人機の現在の推定状態を、前記無人機の未来の推定状態として、前記表示装置に提供可能であることを特徴とする。
【００１４】
上記（３）の構成によれば、無人機の状態を未来の時点まで時系列的に状態推定し、現在時刻から未来の時点までの無人機の状態を、当該無人機の現在の状態に重畳して画面表示することができる。その結果、上記（３）の構成によれば、操作者が想定している軌道に沿って無人機の遠隔制御を続けた場合に、未来の時点において無人機が障害物に接触したり、擱座したりする可能性を事前に察知することができる。従って、そのような場合には、操作者が事前に軌道を修正することが可能となる。特に、操作者が無人機周辺を撮影する視野から見て死角に隠れている障害物を見落として無人機制御を続けている場合、操作者のミスにより無人機が障害物に接触したり、擱座したりする可能性を事前に察知し、無人機の操作ミスを防止することが可能となる。
【００１５】
（４）本発明の幾つかの実施形態では、上記（３）の構成において、前記２つ以上の演算部は第４演算部を含み、前記第４演算部は、
前記他の実測値を前記制御モデルに反映して得られる前記他の制御モデルに基づいて、前記操作指令から前記無人機の現在の推定状態を時系列的に求める時系列的演算を、前記他の実測値が実測された時刻から現在時刻を通過して他の未来の時点に至るまで、実時間の経過よりも高速に実行するように構成され、
前記第４演算部による時系列的演算は、前記第１演算部、前記第２演算部及び前記第３演算部による前記時系列的演算とは並列に実行するように構成され、
前記第４演算部による時系列的演算が前記他の未来の時点に到達した後に前記第４演算部による時系列的演算により求められた前記無人機の現在の推定状態を、前記無人機の未来の推定状態として、前記表示装置に提供可能であり、
前記第３演算部は、前記一の未来の時点から次の前記他の未来の時点まで、前記無人機の未来の推定状態を前記表示装置に提供するように構成され、
前記第４演算部は、前記他の未来の時点から次の前記一の未来の時点まで、前記無人機の未来の推定状態を前記表示装置に提供するように構成されている。
【００１６】
上記（４）の構成によれば、第４演算部は、他の実測値を制御モデルに反映して得られる他の制御モデルに基づいて、操作指令から無人機の現在の推定状態を時系列的に求める時系列的演算を、他の実測値が実測された時刻から現在時刻を通過して他の未来の時点に至るまで、実時間の経過よりも高速に実行する。その際、第４演算部が受け取る他の実測値とは、第２演算部が交番的に受け取った実測値と同一の実測値であるから、第３演算部が受け取った一の実測値よりも後の新しい実測値である。つまり、第４演算部は、第３実測値が使用する制御モデルよりもさらに新しい実測値を反映した制御モデルに基づいて、上記時系列的演算を、現在時刻を通過して他の未来の時点に至るまで、実時間の経過よりも高速に実行する。このとき、他の未来の時点とは、第３演算部が、無人機の未来の推定状態を前記表示装置に提供する動作を完了する時刻である。そして、第４演算部による上記時系列的演算が当該他の未来の時点に到達した後に、第４演算部による上記時系列的演算により求められた無人機の現在の推定状態を、無人機の未来の推定状態として、表示装置に提供可能である。
【００１７】
従って、上記（４）の構成によれば、第４演算部は、第３演算部が使用する制御モデルよりも新しい実測値を反映した制御モデルに基づいて上記時系列的演算を他の未来の時刻に至るまで実時間よりも高速に実行する。その後に、第４演算部１００ｄは、第３演算部が使用する制御モデルよりもさらに新しい実測値による更新作業が完了した制御モデルに基づいて、上述した無人機の未来の軌道を画面表示する処理を時点以降において実行する。その結果、第３演算部が上記時系列的演算を一の未来の時点に追い付くまで実時間よりも高速に実行し続けた後に、無人機の未来の推定状態に基づいて無人機の未来の軌道を画面表示する処理を他の未来の時点以降も継続すると制御モデルのモデル化誤差が増大してしまうという問題を軽減することができる。
【００１８】
また、上記（４）の構成によれば、第３演算部が上述した時系列的演算を次の未来の時点に追い付くまで実時間よりも高速に実行し続ける間においても、当該次の未来の時点までの無人機の時系列的な状態を、実時間の経過よりも先行する形で、時系列的に状態推定しながら画面表示することができる。従って、上記（４）の構成によれば、第３演算部が上述した時系列的演算を次の未来の時点に追い付くまで実時間よりも高速に実行し続ける間において、実時間よりも先行して時系列的に状態推定された無人機の未来の状態を観察しながら制御を行うことができない空白の時間が存在しなくなる。その結果、上記（４）の構成によれば、第３演算部が上述した時系列的演算を次の未来の時点に追い付くまで実時間よりも高速に実行し続ける間においても、近い将来において無人機が障害物に接触したり、擱座したりする可能性を事前に察知することができる。
【００１９】
（５）本発明の幾つかの実施形態では、上記（３）または（４）の構成において、前記２つ以上の演算部の少なくとも一つは、
前記第１演算部又は前記第２演算部が時系列的に求めた前記無人機の現在の推定状態を表示する画面に重畳させる形で、前記第３演算部および前記第４演算部が時系列的に求めた前記無人機の未来の推定状態を実時間の経過に先行する形で前記画面に表示するように構成されている。
【００２０】
上記（５）の構成によれば、操作者は、実時間よりも先行して時系列的に推定された無人機の未来の状態（無人機が辿ると想定される未来の軌道）を画面上で観察することができる。同時に、操作者は、無人機の未来の状態を観察する画面と同じ画面を使用して、無人機から直近に受信した実測値に基づいて時系列的に求めた無人機の現在の推定状態を視認しながら、無人機の遠隔制御を行うことができる。従って、上記（５）の構成によれば、未来の時点において無人機が障害物に接触したり、擱座したりするリスクを監視するのに使用する画面と同じ画面を使用して、無人機の現在の推定状態を表示する画面表示を見ながら遠隔手動制御を行うことが可能となる。
【００２１】
（６）本発明の幾つかの実施形態では、上記（３）または（４）の構成において、前記２つ以上の演算部の少なくとも一つは、
前記無人機の遠隔制御の開始に先立って、シミュレーションに基づく試行錯誤を繰り返すことにより前記無人機に対する一連の操作指令を含む操作プロファイルを生成する動作と、
前記操作プロファイルに基づいて前記無人機を無人制御する動作と、
前記第３演算部により実時間よりも未来の時点まで時系列的に求められた前記無人機の未来の推定状態が要回避状態を示すか否かを検出する動作と、
前記要回避状態を検出した際に、前記無人機の制御を、前記第１演算部および第２演算部が時系列的に求めた前記無人機の現在の推定状態を表示する画面表示に基づいて、操作者が手動で行う制御に切り替える動作と、
を実行するように構成される。
【００２２】
狭隘部を潜り抜けたり複雑に配置された障害物を連続的に回避したりする動作を無人機に行わせるための遠隔制御を操作者が行う場合、操作者の僅かな操作ミスで失敗する可能性が高い。従って、そのような複雑で失敗確率の高い動作を無人機に行わせるのに先立って、現実と同様の状況を設定した仮想環境において操作者が事前に操作トレーニングを積んだ上で、実際の遠隔制御を開始するのがリスク回避上好ましい。
そこで、上記（６）の構成においては、無人機の遠隔制御の開始に先立って、手動による遠隔制御と同一の操作インターフェースを有する上記仮想環境内において、無人機を遠隔操作した場合の操作シナリオをシミュレーションにより模擬実行する。そして、上記（６）の構成においては、当該シミュレーションにより様々な操作シナリオを模擬実行する試行錯誤を繰り返すことにより前記無人機に対する一連の操作指令を含む操作プロファイルを生成し、当該操作プロファイルに従って無人機をセミオート（半自動）制御する。また、上述した操作プロファイルに従ったセミオート（半自動）制御の実行中に、障害物と接触したり無人機が擱座したりする可能性を事前に察知した場合には、操作者の手動による遠隔制御を介入させ、当該セミオート（半自動）制御を修正することができるようにしてある。
従って、上記（６）の構成によれば、シミュレーションにより様々な操作シナリオを模擬実行する試行錯誤を繰り返すことにより操作者が手動遠隔制御と同一の操作インターフェースを使用して事前に操作のトレーニングを積むことができる。そして、当該セミオート（半自動）制御の実行中に予定外の失敗リスクが生じた場合には、当該セミオート制御を手動で修正することもできる。その結果、上記（５）の構成によれば、複雑で失敗確率の高い動作を無人機に行わせる際の失敗リスクを低減することができる。
【００２３】
（７）本発明の幾つかの実施形態では、上記（３）または（４）の構成において、前記２つ以上の演算部の少なくとも一つは、
前記第３演算部により前記実時間よりも未来の時点まで時系列的に求めた前記無人機の未来の推定状態が要回避状態を示すか否かを検出する動作と、
前記要回避状態を前記検出した際に、前記操作指令に優先して前記無人機に回避軌道をとらせる緊急操作指令を前記無人機に送信する動作と、
をさらに実行する、ように構成されている。
【００２４】
上記（７）の構成によれば、無人機の状態を未来の時点まで状態推定することにより障害物と接触したり無人機が擱座したりする可能性を事前に察知した場合には、操作者の手動による遠隔制御に優越して、制御装置の演算部が無人機に回避軌道をとらせる回避制御を自動的に実行することができる。その結果、障害物と接触したり無人機が擱座したりする可能性を事前に察知した場合に、当該回避制御を操作者に任せきりにするのではなく、制御装置の演算部の判断により操作者を介さずに自動実行することができる。
【発明の効果】
【００２５】
以上より、本発明に係る少なくとも一実施形態は、制御装置の操作者が無人機周辺の画像情報を見ながら無人機の手動遠隔制御を行う場合に、無人機から受信した実測値を、制御装置側において通信遅延を考慮した上で無人機制御動作に反映させることができる。具体的には、本発明に係る少なくとも一実施形態は、通信遅延により無人機から新しい実測値を受信できない間でも操作者に対して無人機制御のためのフィードバックを与え続けることができる。また、本発明に係る少なくとも一実施形態は、最新の実測値を無人機から受信すると、通信遅延による制御モデルの更新遅延を補償する形で当該最新の実測値を操作者へのフィードバックに反映させることができる。
【図面の簡単な説明】
【００２６】
【図１】一実施形態に係る遠隔制御システムの構成図である。
【図２】一実施形態に係る遠隔制御システムを構成する各装置の内部構成図である。
【図３】制御装置内において動作する制御系の一部に対応するブロック線図である。
【図４】状態推定処理と画像表示処理の実時間軸上での時系列的なタイミングを図示するタイミング・ダイアグラムである。
【図５】実測値パケットの受信に応じて状態推定処理を実測時刻まで遡らせる様子を示すタイミング・ダイアグラムである。
【図６】時系列的な状態推定をカルマンフィルタにより実現した場合に、実測値パケットの受信に応じて状態推定処理を実測時刻まで遡らせる様子を示す図である。
【図７】時系列的な状態推定をカルマンフィルタのループ処理として実行する際のフローチャートである。
【図８】状態推定処理と画像表示処理の実時間軸上での時系列的なタイミングを図示するタイミング・ダイアグラムである。
【図９】別の実施形態における制御装置の内部構成を示す図である。
【図１０】シミュレーションを実行中の遠隔制御システムの構成図である。
【図１１】遠隔制御システムが、シミュレーション結果を使用して無人機の遠隔制御を行う様子を示す図である。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照して本発明の幾つかの実施形態について説明する。ただし、実施形態として記載されている又は図面に示されている構成部品の寸法、材質、形状、その相対的配置等は、本発明の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。
例えば、「同一」、「等しい」及び「均質」等の物事が等しい状態であることを表す表現は、厳密に等しい状態を表すのみならず、公差、若しくは、同じ機能が得られる程度の差が存在している状態も表すものとする。一方、一の構成要素を「備える」、「具える」、「具備する」、「含む」、又は、「有する」という表現は、他の構成要素の存在を除外する排他的な表現ではない。
以下、まず最初に、幾つかの実施形態に係る無人機の制御装置および制御方法を説明するのに先立って、当該制御装置および制御方法の適用対象である遠隔制御システムの一例について図１を参照して説明する。続いて、当該制御装置の構成と動作および当該制御方法の処理内容について図２乃至図１１を参照して説明する。
【００２８】
図１は、本発明の幾つかの実施形態に係る制御装置および制御方法の適用対象である遠隔制御システムの一例を示す。図１に示す遠隔制御システム１は、制御装置の操作者が無人機周辺の画像情報を見ながら無人機の手動遠隔制御を行う目的に使用されても良いシステムであり、制御装置１０および無人機２０を含んで構成されている。制御装置１０に接続された操作盤１５０を操作することにより操作者が操作指令を入力すると、該操作指令は、エンコーダ１３０により角度指令値θin、角速度指令値ωinまたはトルク指令値ｑinなどを表す指令値信号に変換され、無人機２０側に送信される。エンコーダ１３０は指令生成部と捉えてもよく、操作盤１５０の操作指令に加え、実角度，実角速度または実トルク情報を利用して演算を実行し、角度指令値θin、角速度指令値ωinまたはトルク指令値ｑinなどを表す指令値信号に変換してもよい。操作指令値として無人機２０側に送信される上述した角度指令値θin、角速度指令値ωinまたはトルク指令値ｑinなどは、無人機２０に設けられたマニピュレータの関節や走行車輪を駆動する駆動モータの角度、角速度およびトルクなどの制御目標値として使用されても良い。無人機２０において、制御装置１０から送信された指令値信号は、無人機２０内の無人機側制御装置２１によって受信され、無人機側制御装置２１は、当該指令値信号に基づいてサーボ機構２２のサーボ制御動作を駆動する。サーボ機構２２は、無人機側制御装置２１によりサーボ制御動作を駆動されると、無人機２０に設けられた走行車輪やマニピュレータ等のアクチュエータ類をサーボ制御する。
【００２９】
サーボ機構２２は、無人機２０の現在の状態を実測するためのセンサ類と接続されている。当該センサ類の具体例としては、無人機２０に設けられたマニピュレータの関節や走行車輪を駆動する駆動モータの回転速度を計測するタコメータ、無人機２０の周囲を撮影するカメラおよび無人機２０の現在位置を測定するための位置測定センサなどが含まれてもよい。無人機側制御装置２１は、サーボ機構２２から上述したセンサ類の測定値を受け取ると、当該測定値から無人機２０の駆動モータの現在の実角度θout、実角速度ωoutおよび実トルク値ｑoutなどを求めてもよい。このようにしてサーボ機構２２から受け取った測定値に基づいて無人機側制御装置２１が求めた駆動モータの現在の実角度、実角速度および実トルク値などは、無人機２０の現在の状態を実測した実測値として無人機２０から制御装置１０に対してフィードバック信号として送信される。無人機２０から制御装置１０に送信される上述した実角度θout、実角速度ωoutおよび実トルク値ｑoutなどは、制御装置１０から無人機２０に対して操作指令値として送信された角度指令値θin、角速度指令値ωinおよびトルク指令値ｑinに対する閉ループ制御用のフィードバック信号として使用されても良い。
【００３０】
次に、図２を参照しながら、図１に示す制御装置１０と無人機２０の内部構成と共に、遠隔制御システム１の詳細な構成について説明する。図２に示すように、制御装置１０と無人機２０とは、光ファイバ回線３０を介して通信可能に接続されており、光ファイバ回線３０にはさらに、監視カメラや他の無人機９１、９２および他の制御装置や監視用装置９３も接続されている。制御装置１０は、２つ以上の演算部１００（１００ａ〜１００ｎ）、通信部１１０、記憶部１２０、エンコーダ１３０およびインターフェース１４０を含んで構成されると共に、操作盤１５０および表示装置１６０が接続されている。制御装置１０内において、２つ以上の演算部１００（１００ａ〜１００ｎ）、通信部１１０、記憶部１２０、エンコーダ１３０およびインターフェース１４０は、図示しないバスによって通信可能に相互接続されている。操作盤１５０および表示装置１６０は、インターフェース１４０を介して、２つ以上の演算部１００（１００ａ〜１００ｎ）、通信部１１０、記憶部１２０およびエンコーダ１３０と接続されている。
【００３１】
操作盤１５０は、無人機２０を遠隔操作するための操作入力を操作者が制御装置１０に対して入力するために使用する操作盤であり、ジョイスティックや操作ボタン類などを備える。表示装置１６０は、無人機の現在の推定状態を順次画面表示可能な画像表示装置であってもよい。通信部１１０は、制御装置１０が光ファイバ回線３０を介して他の機器と通信するために使用される通信インターフェース回路であってもよい。通信部１１０は、無人機２０を遠隔制御するために表示装置１６０に画面表示された無人機２０の現在の推定状態に基づいて操作者が入力した操作指令を無人機２０に送信可能に構成されている。さらに、通信部１１０は、無人機２０が自機の状態を順次実測した実測値を無人機２０から順次受信可能に構成されている。エンコーダ１３０は、操作盤１５０を操作することにより操作者により入力された操作指令を、実角度、実角速度または実トルク情報を利用して、角度指令値θin、角速度指令値ωinまたはトルク指令値ｑinなどを表す指令値信号に変換して通信部１１０および演算部１００に出力する。
【００３２】
２つ以上の演算部１００（１００ａ〜１００ｎ）は、第１演算部１００ａ及び第２演算部１００ｂを含む。図３乃至図５を参照しながら後述するように、第１演算部１００ａ及び第２演算部１００ｂは、無人機２０の現在の推定状態を求める時系列的演算を実行して求められた無人機２０の現在の推定状態を表示装置１６０に提供可能に（画面表示可能に）構成されている。その際、無人機２０の現在の推定状態は、第１演算部１００ａ及び第２演算部１００ｂがそれぞれ無人機２０から受信した実測値を反映した制御モデルに基づいて、操作指令から無人機２０の現在の状態を推定することによって求められる。なお、第１演算部１００ａおよび第２演算部１００ｂが時系列的に求めた無人機２０の推定状態を表示装置１６０上で画面表示する処理は、以下のように実行されても良い。まず、無人機２０に設けたセンサ／カメラ類２２１からの撮影画像や計測情報に基づいて無人機２０の周囲の環境を画像化する。続いて、無人機２０の現在位置、無人機２０と他の構造物との間の相対的な位置関係、無人機２０の姿勢（ピッチ角、ロール角、ヨー角）および無人機２０に設けられたマニピュレータの姿勢などを、第１演算部１００ａおよび第２演算部１００ｂが時系列的に求めた無人機２０の推定状態から算出する。最後に、無人機２０の周囲の環境を画像化した背景画像を表示装置１６０上に画面表示すると共に、上記のように算出された姿勢をとる無人機２０の画像を、無人機２０の現在位置に対応する背景画像内の位置に表示する。また、例示的な一実施形態では、２つ以上の演算部１００（１００ａ〜１００ｎ）は、２個以上の別々の演算回路として実現しても良く、各演算回路は、汎用プロセッサ、マイクロコントローラまたはデジタル信号処理プロセッサ等であってもよい。また、代替的な一実施形態では、単一のマルチコアＣＰＵに含まれる各プロセッサ・コアを、２つ以上の演算部１００（１００ａ〜１００ｎ）の各々として動作させても良い。
【００３３】
また、無人機２０は、無人機側制御装置２１とサーボ機構２２を含んで構成され、サーボ機構２２には、無人機２０に装備されたセンサ／カメラ類２２１とアクチュエータ類２２２が接続されている。無人機側制御装置２１は、サーボ機構２２と接続されると共に、無人機側の通信部２１１および無人機側の制御演算部２１２を含んで構成される。センサ類２２１の具体例としては、無人機２０に設けられたマニピュレータの関節や走行車輪を駆動する駆動モータの回転速度を計測するタコメータ、無人機２０の周囲を撮影するカメラおよび無人機２０の現在位置を測定するための位置測定センサなどが含まれていてもよい。アクチュエータ類２２２の具体例としては、無人機２０に設けられたマニピュレータの関節や走行車輪を駆動する駆動モータなどが含まれていても良い。無人機側の通信部２１１は、光ファイバ回線３０を介して制御装置１０と通信するための通信インターフェース回路であっても良い。無人機側制御装置２１内において、無人機側の制御演算部２１２は、無人機側の通信部２１１を介して制御装置１０から操作指令値を受信すると、当該操作指令値に基づいてサーボ機構２２に対して制御指令を与える。サーボ機構２２は、センサ／カメラ類２２１およびアクチュエータ類２２２と共に、無人機２０に設けられたマニピュレータや走行車輪のサーボ制御を行うための閉ループ制御系の一部を形成し、無人機側制御装置２１からの制御指令に基づいて当該サーボ制御を実行してもよい。
【００３４】
なお、図２において、光ファイバ回線３０には、制御装置１０および無人機２０の他に、監視カメラや他の無人機９１、９２および他の制御装置や監視用装置９３を含む多数の機器が接続され、これら多数の機器により、光ファイバ回線３０の通信帯域や通信リソースは共有されている。従って、制御装置１０と無人機２０との間の通信は、他の機器による光ファイバ回線３０上での通信帯域使用によって遅延させられる場合があり、その場合には、制御装置１０と無人機２０との間において通信遅延が発生し得る。当該通信遅延により、無人機２０が自機の状態を実測した実測値Ｍを制御装置１０側に送信しても、制御装置１０側で遅延して受信され、制御装置１０側が無人機に対して送信した操作指令は、無人機２０側で遅延して受信されることとなる。通信遅延が無視できない環境では、無人機２０は、仕様の上では高速移動が可能であるにもかかわらず、実際の運用においては、インチングに近い制御動作を強いられる。その結果、そのような環境で無人機を遠隔制御して実行される作業は非常に効率が悪く、作業の遅延をもたらし、逆に操作者が自身で無人機２０の動作を予測して高速動作を試みると、操作者の誤操作を招いてしまう。
【００３５】
図３は、無人機２０を遠隔制御するために制御装置１０内において動作する制御系の一部に対応するブロック線図である。図３のブロック線図は、第１演算部１００ａ及び第２演算部１００ｂが、無人機２０の現在の推定状態を求める時系列的演算を実行して求められた無人機２０の現在の推定状態を表示装置１６０に提供するまでの情報信号の流れを表している。図３において、図２に示す２つ以上の演算部の中の第１演算部１００ａと第２演算部１００ｂは、機能モジュールとして生成された第１制御モデル４０１、第２制御モデル４０２、切替手段４１１および切替手段４１２を実行している。これらの機能モジュールは、例えば、第１演算部１００ａと第２演算部１００ｂが専用のソフトウェアを記憶部１２０から読み込んで実行することにより生成された機能モジュールであってもよい。例示的な一実施形態においては、第１制御モデル４０１と第２制御モデル４０２は、第１演算部１００ａと第２演算部１００ｂによって別々に実行されてもよい。その場合、図４および図５を参照しながら後述するように、第１演算部１００ａは、第１制御モデル４０１に基づいて時系列的な状態推定処理を実行し、第１演算部１００ｂは、第２制御モデル４０２に基づいて時系列的な状態推定処理を実行する。
【００３６】
図３に示す第１制御モデル４０１および第２制御モデル４０２は、無人機２０に対する操作指令を入力として与えると、無人機２０の推定出力信号を出力する機能モジュールである。第１制御モデル４０１および第２制御モデル４０２は、無人機２０からフィードバックされる実測値に基づいて観測される無人機２０の応答特性（挙動特性）を数式モデルとして記述しており、当該数式モデルに基づいて、無人機２０に対する操作指令から無人機２０の推定出力信号を出力する。例示的な一実施形態においては、当該数式モデルは、カルマンフィルタを含む状態推定フィルタとして記述されてもよい。切替手段４１１は、無人機２０の現在の状態を実測した実測値として無人機２０から通信部１１０を介して受信した実測値を、第１制御モデル４０１側に出力するのか、第２制御モデル４０２側に出力するのかを切り替える機能モジュールである。切替手段４１２は、表示装置１６０に画面表示すべき出力信号を第１制御モデル４０１から出力させるか、第２制御モデル４０２から出力させるかを切り替える機能モジュールである。
【００３７】
図３において、操作盤１５０から入力された操作指令と実角度、実角速度または実トルク情報は、エンコーダ１３０により、角度指令値θin、角速度指令値ωinまたはトルク指令値ｑinなどを表す操作指令値信号に変換され、通信部１１０および演算部１００に出力される。エンコーダからの操作指令値信号は、信号経路４２および４４を経由して第１制御モデル４０１および第２制御モデル４０２に入力され、その結果、無人機２０の現在の推定状態を表す推定角度θ’、推定角速度ω’または推定トルクｑ’などの推定状態信号が出力される。続いて、上記推定状態信号は、信号経路４３および４５を経由して切替スイッチ５２に到達し、切替手段４１２による切替スイッチ５２の切り替え方向に応じて第１制御モデル４０１または第２制御モデル４０２のいずれか一方から表示装置１６０に対して出力される。上記の推定状態信号（推定角度θ’、推定角速度ω’または推定トルクｑ’など）は、無人機２０の現在位置、無人機２０の現在の姿勢および無人機２０が備えるマニピュレータの現在の状態等を表す画像に変換された上で、表示装置１６０の画面上に表示される。
【００３８】
また、無人機２０の現在の状態を実測した値として通信部１１０が無人機２０から受信した実測値の信号は、切替手段４１１による切替スイッチ５１の切り替え方向に応じて第１制御モデル４０１または第２制御モデル４０２のいずれか一方に出力される。第１制御モデル４０１または第２制御モデル４０２は、無人機２０からの実測値を受け取ると、無人機２０の応答特性（挙動特性）を表す数式モデルに当該実測値を適用する処理を行う。その結果、無人機２０からの実測値が第１制御モデル４０１または第２制御モデル４０２に反映されることとなる。
【００３９】
以上より、図３に示す情報信号の流れから第１演算部１００ａおよび第２演算部１００ｂにより実行される信号処理動作の概要を説明すると以下のとおりとなる。すなわち、第１演算部１００ａおよび第２演算部１００ｂは、それぞれ無人機２０から受信した実測値を通信部１１０から受け取ると、当該実測値を第１制御モデル４０１または第２制御モデル４０２に反映させる。これと並行して、第１演算部１００ａおよび第２演算部１００ｂは、エンコーダ１３０が出力する操作指令を受け取ると、当該実測値を反映した第１制御モデル４０１および第２制御モデル４０２に基づいて、操作指令を入力として無人機２０の現在の推定状態を出力する。続いて、第１演算部１００ａおよび第２演算部１００ｂは、第１制御モデル４０１または第２制御モデル４０２が出力した推定状態に基づいて無人機２０の現在の状態を推定した結果を表す画像を、表示装置１６０により画面表示する。
【００４０】
次に、図３のブロック線図で示される制御系において、第１演算部１００ａ及び第２演算部１００ｂが、無人機２０の現在の推定状態を求める時系列的演算を実行して求めた無人機２０の現在の推定状態を表示装置１６０に出力する一連の動作フローについて、図４を参照しながら説明する。図４は、無人機２０の現在の推定状態を時系列的に求める処理と当該時系列的に求めた無人機２０の現在の推定状態を画面表示する処理の実時間軸上での時系列的な実行タイミングを示している。図４では、第１演算部１００ａ及び第２演算部１００ｂが、互い違いに交替して（交番的に）無人機２０からの実測値を受け取り、当該実測値を受け取る都度、無人機２０の現在の推定状態を時系列的に求めるための上述した時系列的演算を繰り返し実行する様子が示されている。具体的には、図４に示す時刻Ｔ１、Ｔ３およびＴ５において、第１演算部１００ａは、無人機２０からの実測値を受け取り、図３に示す第１制御モデル４０１に対して当該受け取った実測値を反映させる動作を行う。なお、時刻Ｔ１、Ｔ３およびＴ５においては、図３の切替スイッチ５１は、第１制御モデル４０１に接続された信号経路４６の側に切り替えられている。他方、図４に示す時刻Ｔ２、Ｔ４およびＴ６において、第２演算部１００ｂは、無人機２０からの実測値を受け取り、図３に示す第２制御モデル４０２に対して当該受け取った実測値を反映させる動作を行う。なお、時刻Ｔ２、Ｔ４およびＴ６においては、図３の切替スイッチ５１は、第２制御モデル４０２に接続された信号経路４７の側に切り替えられている。
【００４１】
また、図４では、第１演算部１００ａが、交番的に受け取った一の実測値を反映した新たな第１制御モデル４０１’に基づいて、無人機２０の現在の推定状態を求めるための上述した時系列的演算を順次実行する様子が示されている。その際、第１演算部１００ａは、上述した時系列的演算を、当該一の実測値の実測時刻から現在時刻に追い付く一の時刻まで、実時間の経過よりも高速に実行する。また、図４では、第２演算部１００ｂが、交番的に受け取った他の実測値を反映した新たな第２制御モデル４０２’に基づいて、無人機２０の現在の推定状態を求めるための上述した時系列的演算を順次実行する様子が示されている。その際、第２演算部１００ｂは、上述した時系列的演算を、当該他の実測値の実測時刻から現在時刻に追い付く他の時刻まで、実時間の経過よりも高速に実行する。
【００４２】
具体的には、第１演算部１００ａは、図４に示す時刻Ｔ１、Ｔ３およびＴ５においてそれぞれ受け取った実測値Ｍ１、Ｍ３およびＭ５を反映した第１制御モデル４０１’に基づいて、無人機２０の現在の推定状態を求めるための時系列的演算を順次実行する。その際、第１演算部１００ａは、まず最初に、時刻Ｔ１において受け取った実測値Ｍ１を第１制御モデル４０１に反映させて新しい第１制御モデル４０１’とする。続いて、第１演算部１００ａは、上述した時系列的演算を、時刻Ｔ１において受け取った実測値Ｍ１が無人機２０において実測された時刻である実測時刻Ｔｍ１まで遡らせる。続いて、第１演算部１００ａは、上述した時系列的演算を、実測時刻Ｔｍ１から時刻ｔ１まで（図４のｐ１で表す期間に対応）、実時間の経過よりも高速に実行する。ここで、時刻ｔ１は、第１演算部１００ａにより当該高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻に相当する。また、実測値Ｍ１を受信した受信時刻Ｔ１と実測時刻Ｔｍ１との間の時間差は、無人機２０と制御装置１０との間の通信遅延に対応する。
【００４３】
同様に、第１演算部１００ａは、時刻Ｔ３およびＴ５においてそれぞれ受け取った実測値Ｍ３およびＭ５についても、実測時刻Ｔｍ３およびＴｍ５まで遡って実時間の経過よりも高速に上記時系列的演算をそれぞれ実行し、当該高速に実行される時系列的演算を現在時刻Ｔｃに追い付く時刻ｔ３およびｔ５まで（図４のｐ３およびｐ５で表す期間に対応）それぞれ続ける。ここで、実測値Ｍ３を受信した受信時刻Ｔ３と実測時刻Ｔｍ３との間の時間差および実測値Ｍ５を受信した受信時刻Ｔ５と実測時刻Ｔｍ５との間の時間差は、無人機２０と制御装置１０との間の通信遅延にそれぞれ対応する。
【００４４】
他方、第２演算部１００ｂは、図４に示す時刻Ｔ２、Ｔ４およびＴ６においてそれぞれ受け取った実測値を反映した第２制御モデル４０２’に基づいて、無人機２０の現在の推定状態を求めるための時系列的演算を順次実行する。その際、第２演算部１００ｂは、まず最初に、時刻Ｔ２において受け取った実測値Ｍ２を第２制御モデル４０２に反映させて新しい第２制御モデル４０２’とする。続いて、第２演算部１００ｂは、上述した時系列的演算を、時刻Ｔ２において受け取った実測値Ｍ２が無人機２０において実測された時刻である実測時刻Ｔｍ２まで遡らせる。続いて、第２演算部１００ｂは、上述した時系列的演算を、実測時刻Ｔｍ２から時刻ｔ２まで（図４のｐ２で表す期間に対応）、実時間の経過よりも高速に実行する。ここで、時刻ｔ２は、第２演算部１００ｂにより当該高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻に相当する。また、実測値Ｍ２を受信した受信時刻Ｔ２と実測時刻Ｔｍ２との間の時間差は、無人機２０と制御装置１０との間の通信遅延に対応する。
【００４５】
同様に、第２演算部１００ｂは、時刻Ｔ４およびＴ６においてそれぞれ受け取った実測値についても、実測時刻Ｔｍ４およびＴｍ６まで遡って実時間の経過よりも高速に上記時系列的演算をそれぞれ実行し、当該高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻ｔ４およびｔ６まで（図４のｐ４およびｐ６で表す期間に対応）それぞれ続ける。ここで、実測値Ｍ４を受信した受信時刻Ｔ４と実測時刻Ｔｍ４との間の時間差および実測値Ｍ６を受信した受信時刻Ｔ６と実測時刻Ｔｍ６との間の時間差は、無人機２０と制御装置１０との間の通信遅延にそれぞれ対応する。なお、以下の説明においては、インデックス値ｋ（１≦ｋ≦Ｋ）の各々は、時間軸上に順番に並ぶ各時刻と一対一に対応しているものとする。
【００４６】
図３および図４を参照して上述した状態推定処理においては、新たな実測値Ｍｋ（１≦ｋ≦Ｋ）を無人機２０から受信すると、第１演算部１００ａと第２演算部１００ｂは、以下の処理動作を行う。すなわち、新たな実測値Ｍｋ（１≦ｋ≦Ｋ）を既存の第１制御モデル４０１または第２制御モデル４０２に反映させることにより新たな第１制御モデル４０１’または第２制御モデル４０２’を得る。その結果、第１演算部１００ａまたは第２演算部１００ｂは、当該新たな実測値Ｍｋ（１≦ｋ≦Ｋ）により制御モデルのモデル化誤差を改善することができる。ただし、そのためには、当該新たな実測値Ｍｋ（１≦ｋ≦Ｋ）の実測時刻Ｔｍｋから現在時刻Ｔｃまでの通信遅延により生じた第１制御モデル４０１または第２制御モデル４０２の更新遅延を補償する必要がある。そこで、図３および図４を参照して上述した状態推定処理においては、新たな第１制御モデル４０１’または第２制御モデル４０２’に基づいて無人機２０の現在の推定状態を時系列的に求める時系列的演算を、当該実測時刻Ｔｍｋから始めて現在時刻Ｔｃに追い付くまで、実時間の経過よりも高速に実行する。
【００４７】
従って、新たに受信した実測値を制御モデルに反映するのに続いて、無人機２０の現在の推定状態を時系列的に求める時系列的演算を、現在時刻Ｔｃに追い付くまで、実時間の経過よりも高速に実行し終わった直後における制御モデルは当該新たな実測値による更新作業が完了した制御モデルであると言える。例えば、実測値Ｍｋによる更新作業が完了した第１制御モデル４０１”は、以下のようにして得られる。まず、実測値Ｍｋを第１制御モデル４０１に反映して新たな第１制御モデル４０１’を得る。その後、新たな第１制御モデル４０１’に基づく上述した時系列的演算を、現在時刻Ｔｃに追い付くまで、実時間の経過よりも高速に実行する。すると、当該時系列的演算を実時間の経過よりも高速に実行し終わった直後における第１制御モデル４０１”は、実測値Ｍｋによる更新作業が完了した第１制御モデル４０１”であると言える。
【００４８】
次に、図４を参照しながら、第１演算部１００ａおよび第２演算部１００ｂが、時系列的に求めた無人機２０の推定状態を画面表示するための処理についてまず具体例から説明する。図４を参照して述べたとおり、実測値Ｍ１が無人機２０において実測された実測時刻Ｔｍ１を起点として第１演算部１００ａは、実測値Ｍ１により第１制御モデル４０１を更新するための上記時系列的演算を高速に実行し、当該高速実行が現在時刻Ｔｃに追い付く時刻ｔ１まで上述した時系列的演算を続ける。また、実測値Ｍ２が無人機２０において実測された実測時刻Ｔｍ２を起点として第２演算部１００ｂは、実測値Ｍ２により第２制御モデル４０２を更新するための上記時系列的演算を実時間よりも高速に実行し、当該高速実行が現在時刻Ｔｃに追い付く時刻ｔ２まで上述した時系列的演算を続ける。その場合、時刻ｔ１から時刻ｔ２までの間の期間中においては、第２演算部１００ｂは、実測値Ｍ２が受信されるのを時刻Ｔ２まで待ち続け、実測値Ｍ２が受信されると、実測時刻Ｔｍ２を起点として時刻ｔ２まで実時間よりも高速に上記時系列的演算を実行する。従って、時刻Ｔ２から時刻ｔ２までの間の期間中においては、第２演算部１００ｂは、実時間の経過と歩調を合わせて第２制御モデル４０２に基づいて時系列的に求めた無人機２０の現在の推定状態を画面表示することができない。その理由は以下のとおりである。実時間よりも高速に算出される上記時系列的演算により得られた無人機２０の推定状態の時系列を実時間に歩調を合わせて画面表示するには、当該推定状態の時系列から一部の推定状態だけを間引きする形で画面表示する必要がある。しかし、そのように当該推定状態の時系列から一部の推定状態だけを間引きする形で画面表示すると、画面上での無人機２０の動きが滑らかさの無い不連続な動きとなってしまう。また、無人機２０の推定状態を時系列的に求める時系列的演算を実時間よりも高速に実行する処理と同時並行して、当該時系列的に求めた無人機２０の推定状態を順次画面表示してゆく処理は、演算部１００に過大な負荷をかける可能性があるからである。そこで、時刻ｔ１から時刻ｔ２までの間の期間中においては、第１演算部１００ａが、時刻Ｔ１において受信した実測値Ｍ１による更新作業が完了した第１制御モデル４０１”に基づいて時系列的に求めた無人機２０の現在の推定状態を画面表示する動作を実行する。このとき、図３の切替スイッチ５２は、第１制御モデル４０１に接続された信号経路４３の側に切り替えられている。
【００４９】
また、実測値Ｍ２が無人機２０において実測された実測時刻Ｔｍ２を起点として第２演算部１００ｂは、実測値Ｍ２により第２制御モデル４０２を更新するための上記時系列的演算を高速に実行し、当該高速実行が現在時刻Ｔｃに追い付く時刻ｔ２まで上述した時系列的演算を続ける。また、実測値Ｍ３が無人機２０において実測された実測時刻Ｔｍ３を起点として第１演算部１００ａは、実測値Ｍ３により第１制御モデル４０１を更新するための上記時系列的演算を実時間よりも高速に実行し、当該高速実行が現在時刻Ｔｃに追い付く時刻ｔ３まで上述した時系列的演算を続ける。その場合、時刻ｔ２から時刻ｔ３までの間の期間中においては、第１演算部１００ａは、実測値Ｍ３が受信されるのを時刻Ｔ３まで待ち続け、実測値Ｍ３が受信されると、実測時刻Ｔｍ３を起点として時刻ｔ３まで実時間よりも高速に上記時系列的演算を実行する。従って、時刻Ｔ３から時刻ｔ３までの間の期間中においては、第１演算部１００ａは、実時間の経過と歩調を合わせて第１制御モデル４０１に基づいて時系列的に求めた無人機２０の現在の推定状態を画面表示することができない。そこで、時刻ｔ２から時刻ｔ３までの間の期間中においては、第２演算部１００ｂが、時刻Ｔ２において受信した実測値Ｍ２による更新作業が完了した第２制御モデル４０２”に基づいて時系列的に求めた無人機２０の現在の推定状態を画面表示する動作を実行する。このとき、図３の切替スイッチ５２は、第２制御モデル４０２に接続された信号経路４５の側に切り替えられている。
【００５０】
図４を参照しながら画面表示処理に関して述べた以上の説明を一般化すると以下のようになる。ここで、説明の便宜上、実測値Ｍｋ（１≦ｋ≦Ｋ）が無人機２０において実測された実測時刻Ｔｍｋ（１≦ｋ≦Ｋ）を起点として第１演算部１００ａにより上述した時系列的演算を高速に実行して現在時刻Ｔｃに追い付く時刻ｔｋ（１≦ｋ≦Ｋ）を指して一の時刻と呼ぶことにする。また、実測値Ｍｋ＋１が無人機２０において実測された実測時刻Ｔｍｋ＋１を起点として第１演算部１００ａにより上述した時系列的演算を高速に実行して現在時刻Ｔｃに追い付く時刻ｔｋ＋１を指して他の時刻と呼ぶことにする。その場合、第１演算部１００ａは、一の時刻（時刻ｔｋ）から次の他の時刻（時刻ｔｋ＋１）まで、前記無人機の現在の推定状態を画面表示のために表示装置１６０に提供するように構成される。また、上記一の時刻（時刻ｔｋ）の次に到来する一の時刻を時刻ｔｋ＋２とすると、第２演算部１００ｂは、他の時刻（時刻ｔｋ＋１）から次の一の時刻（時刻ｔｋ＋２）まで、無人機２０の現在の推定状態を画面表示のために表示装置１６０に提供するように構成されている。
【００５１】
その結果、図４の下部に示すように、時刻ｔ１から時刻ｔ２までの間のｑ１およびｐ２で表される期間中においては、第１演算部１００ａが、実測値Ｍ１による更新作業が完了した第１制御モデル４０１”に基づいて無人機２０の推定状態を時系列的に求め、当該時系列的に求めた推定状態が表示装置１６０において画面表示される。また、時刻ｔ２から時刻ｔ３までの間のｑ２およびｐ３で表される期間中においては、第２演算部１００ｂが、実測値Ｍ２による更新作業が完了した第２制御モデル４０２”に基づいて無人機２０の推定状態を時系列的に求め、当該時系列的に求めた推定状態が表示装置１６０において画面表示され、時刻ｔ３から時刻ｔ４までの間のｑ３およびｐ４で表される期間中においては、第１演算部１００ａが，実測値Ｍ３による更新作業が完了した第１制御モデル４０１”に基づいて無人機２０の推定状態を時系列的に求め、当該時系列的に求めた推定状態が表示装置１６０において画面表示される。以下同様にして、第１演算部１００ａと第２演算部１００ｂとは、それぞれ時系列的に求めた無人機２０の現在の推定状態を、互い違いに交替して（交番的に）表示装置１６０に提供し、画面表示させる。
【００５２】
ところで、第１演算部１００ａまたは第２演算部１００ｂのいずれか一方が無人機２０からの実測値を受信すると、無人機２０の推定状態を時系列的に求める処理は、当該実測値が無人機２０側で実測された実測時刻に遡って実行される。そのため、無人機２０の推定状態を求める対象となる時刻は、現在時刻から見ると、実時間の経過に対して逆行した（遡及した）時点に対応する場合がある。従って、以下の説明においては、無人機２０の推定状態を求める対象となる時刻は、実時間における実時刻とは異なることから、実時間における実時刻と区別するために、仮想化された時間（仮想時間）における仮想時刻として抽象概念化することとする。図５は、無人機２０からの実測値Ｍｋ（１≦ｋ≦Ｋ）の受信に応じて無人機２０の現在の推定状態を時系列的に求める状態推定処理を実測時刻Ｔｍｋ（１≦ｋ≦Ｋ）まで遡らせる様子を示す図である。図５においては、第１演算部１００ａが第１制御モデル４０１に基づいて無人機２０の現在の推定状態を時系列的に求める際の仮想時刻の推移が仮想時間Ｊ１として示されている。また、図５においては、第２演算部１００ｂが第２制御モデル４０２に基づいて無人機２０の現在の推定状態を時系列的に求める際の仮想時刻の推移が仮想時間Ｊ２として示されている。なお、図５に示す時刻Ｔ１、Ｔ２、Ｔ３、…および時刻ｔ１、ｔ２、ｔ３、…は、図４に示す時刻Ｔ１、Ｔ２、Ｔ３、…および時刻ｔ１、ｔ２、ｔ３、…と同一の時刻を表す。
【００５３】
図５において、第１演算部１００ａの動作を仮想時間Ｊ１に沿って順次説明すると以下のとおりである。第１演算部１００ａは、図５に示す時刻Ｔ１において受け取った実測値Ｍ１を反映した第１制御モデル４０１に基づいて、無人機２０の現在の推定状態を求めるための時系列的演算を実行する。その際、第１演算部１００ａは、まず最初に、時刻Ｔ１において受け取った実測値Ｍ１を第１制御モデル４０１に反映させて新しい第１制御モデル４０１’とする。続いて、第１演算部１００ａは、上述した時系列的演算を、時刻Ｔ１において受け取った実測値Ｍ１が無人機２０において実測された時刻である実測時刻Ｔｍ１まで遡及させる。このとき、実測時刻Ｔｍ１は、実測値Ｍ１を受信した受信時刻Ｔ１から図５のτ１１で示す時間幅だけ実時間を逆行する形で遡及した時刻である。続いて、第１演算部１００ａは、上述した時系列的演算を、実時間の経過よりも高速に実行し、当該高速実行を実測時刻Ｔｍ１から時刻ｔ１までの間だけ（図５においてτ１２で表される期間の間だけ）実行し続ける。ここで、時刻ｔ１は、仮想時間Ｊ１において実時間の経過よりも高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻である。同様に、第１演算部１００ａは、時刻Ｔ３において受け取った実測値Ｍ３についても、実測時刻Ｔｍ３まで遡って（図５に示すτ３１）実時間の経過よりも高速に上記時系列的演算を実行し、当該高速実行を現在時刻Ｔｃに追い付く時刻ｔ３までそれぞれ続ける（図５のτ３２）。
【００５４】
また、図５において、第２演算部１００ｂの動作を仮想時間Ｊ２に沿って順次説明すると以下のとおりである。第２演算部１００ｂは、図５に示す時刻Ｔ２において受け取った実測値Ｍ２を反映した第２制御モデル４０２に基づいて、無人機２０の現在の推定状態を求めるための時系列的演算を実行する。その際、第２演算部１００ｂは、まず最初に、時刻Ｔ２において受け取った実測値Ｍ２を第２制御モデル４０２に反映させて新しい第２制御モデル４０２’とする。続いて、第２演算部１００ｂは、上述した時系列的演算を、時刻Ｔ２において受け取った実測値Ｍ２が無人機２０において実測された時刻である実測時刻Ｔｍ２まで遡及させる。このとき、実測時刻Ｔｍ２は、実測値Ｍ２を受信した受信時刻Ｔ２から図５のτ２１で示す時間幅だけ実時間を逆行する形で遡及した時刻である。続いて、第２演算部１００ｂは、上述した時系列的演算を、実時間の経過よりも高速に実行し、当該高速実行を実測時刻Ｔｍ２から時刻ｔ２までの間だけ（図５においてτ２２で表される期間の間だけ）実行し続ける。ここで、時刻ｔ２は、仮想時間Ｊ２において実時間の経過よりも高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻である。同様に、第２演算部１００ｂは、時刻Ｔ４において受け取った実測値Ｍ４についても、実測時刻Ｔｍ４まで遡って（図５に示すτ４１）実時間の経過よりも高速に上記時系列的演算を実行し、当該高速実行を現在時刻Ｔｃに追い付く時刻ｔ４までそれぞれ続ける（図５のτ４２）。
【００５５】
図３乃至図５を使用して上述した実施形態においては、新たな実測値Ｍｋを無人機２０から受信すると、新たな実測値Ｍｋを既存の第１制御モデル４０１または第２制御モデル４０２に反映することにより新たな第１制御モデル４０１’または第２制御モデル４０２’が得られる。従って、この実施形態においては、当該新たな実測値Ｍｋにより制御モデルのモデル化誤差を改善することができる。ただし、そのためには、当該新たな実測値Ｍｋの実測時刻Ｔｍｋから現在時刻Ｔｃまでの通信遅延により生じた制御モデルの更新遅延を補償する必要がある。そこで、この実施形態においては、当該新たな第１制御モデル４０１’または第２制御モデル４０２’に基づいて無人機２０の現在の推定状態を時系列的に求める動作を、当該実測時刻Ｔｍｋから始めて現在時刻Ｔｃに追い付くまで、実時間の経過よりも高速に実行する。
【００５６】
以上より、この実施形態によれば、通信遅延により無人機２０から新しい実測値Ｍｋを受信できない間でも操作者に対して無人機制御のためのフィードバックを与えつつ、最新の実測値Ｍｋを無人機２０から受信すると、通信遅延により生じた第１制御モデル４０１および第２制御モデル４０２の更新遅延を補償する形で、当該最新の実測値Ｍｋを操作者へのフィードバックに反映させることができる。従って、この実施形態によれば、制御装置１０の操作者が無人機周辺の画像情報を見ながら無人機２０の手動遠隔制御を行う場合に、無人機２０から受信した実測値Ｍｋを、通信遅延を考慮した上で制御装置１０側の無人機制御動作に反映させることができる。
【００５７】
また、この実施形態では、無人機２０の直近の状態を表す最新の実測値Ｍｋを制御装置１０が遅れて受信しても、当該遅れて受信するまでの間は、以前に受信した実測値Ｍｋ−１が反映された直近の第１制御モデル４０１または第２制御モデル４０２に基づいて、無人機２０の現在の状態を時系列的に状態推定しながら順次画面表示することができる。従って、最新の実測値Ｍｋを制御装置１０が遅れて受信するまでの間においても、順次画面表示すべき無人機２０の現在の状態を、以前の実測値Ｍｋ−１が反映された直近の第１制御モデル４０１または第２制御モデル４０２に基づいて時系列的に状態推定し続けることができる。従って、最新の実測値Ｍｋを制御装置１０が遅れて受信するまでの間に無人機２０の今現在の状態を見ながら制御を行うことができない空白の時間が存在しなくなるので、制御装置１０の操作者は、通信遅延を意識せずに、無人機２０の手動遠隔制御を行うことができる。
【００５８】
さらに、この実施形態では、無人機２０の直近の状態を表す最新の実測値Ｍｋを制御装置１０が遅れて受信した後には、当該最新の実測値Ｍｋを反映した第１制御モデル４０１’または第２制御モデル４０２’に基づいて、無人機２０の現在の状態を状態推定して画面表示することができる。従って、制御モデルに基づいて状態推定された無人機２０の現在の状態を表示装置１６０の画面上で見ながら、操作者が無人機２０の手動遠隔制御を行う場合、時間の経過に伴う第１制御モデル４０１および第２制御モデル４０２のモデル化誤差を蓄積させずに、無人機２０の現在の状態を状態推定することが可能となる。
【００５９】
例示的な一実施形態では、図３乃至図５を参照して上述した第１制御モデル４０１および第２制御モデル４０２は、状態推定フィルタを含むように構成されてもよい。この実施形態では、第１制御モデル４０１および第２制御モデル４０２が無人機２０の現在の推定状態を時系列的に求めるための時系列的演算を、以下のように実行することができる。すなわち、状態推定フィルタは、各ループ処理が時間軸上の各時刻に対応する単純な繰り返しループ処理として、上記時系列的演算を時間ドメインで実行することができる。なお、時間軸上に順番に並ぶ各時刻は、各インデックス値ｋ（１≦ｋ≦Ｋ）と一対一に対応しているので、状態推定フィルタが繰り返し実行する各ループ処理も各インデックス値ｋ（１≦ｋ≦Ｋ）と一対一に対応している。従って、この実施形態では、第１制御モデル４０１および第２制御モデル４０２に基づいて無人機２０の現在の状態を時系列的に状態推定する処理を実現する際に、上述した時間ドメインでの各ループ処理が終了する都度、各ループ処理で算出された状態変数から無人機２０の現在の状態を直接得ることができる。その結果、無人機２０の現在の状態を状態推定する処理において、第１制御モデル４０１および第２制御モデル４０２の内部変数値を無人機２０の現在の状態に変換する処理が不要となり、計算を高速化することができる。
【００６０】
以下、無人機２０の現在の推定状態を時系列的に求めるための時系列的演算として図３乃至図５を参照して上述した処理を実現するために、第１演算部１００ａと第２演算部１００ｂが実行する動作の流れについて、まず具体例から説明する。この実施形態では、新たに受信した実測値Ｍｋの実測時刻Ｔｍｋを起点として、新たに受信した実測値Ｍｋに基づいて状態推定フィルタの状態予測動作を実時間よりも高速に実行する。この状態予測動作は、仮想時間軸上において状態推定の起点である実測時刻Ｔｍｋまで時間を遡って実時間よりも高速に時系列的な状態推定を実行する動作であるから、以下においては、遡及的状態予測動作と呼ぶことにする。遡及的状態予測動作は、遡及した実測時刻Ｔｍｋにおいて制御モデルに対して実測値Ｍｋを反映させるための事後予測動作と、実測値Ｍｋが反映された新しい制御モデルに基づいて実測時刻Ｔｍｋから現在時刻Ｔｃに追い付くまで時系列的な状態推定を実時間よりも高速に実行する高速状態予測動作とから構成される。新たに受信した実測値Ｍｋに基づいて状態推定フィルタが行う上記事後予測動作は、新たに受信した実測値Ｍｋを第１制御モデル４０１または第２制御モデル４０２に反映させて新たな第１制御モデル４０１’または第２制御モデル４０２’を得る動作に対応する。状態推定フィルタが行う上記高速状態予測動作は、当該新たな第１制御モデル４０１’または当該新たな第２制御モデル４０２’に基づいて無人機２０の現在の推定状態を時系列的に求める時系列的演算を実時間よりも高速に実行する処理に対応する。実時間よりも高速に実行される当該高速状態予測動作が現在時刻Ｔｃに追い付いたら、状態推定フィルタの状態予測動作を事前予測動作に切り替えてそのまま継続する。事前予測動作は、時系列的な状態推定結果を画面表示しながら実時間の経過に歩調を合わせて実行される点を除いて、上記高速状態予測動作とほぼ同様の状態推定処理を実行する。上記状態推定フィルタにより実行される上記事前予測動作は、状態推定フィルタとして実装された第１制御モデル４０１または第２制御モデル４０２が新たに受信した実測値により更新された後に（更新済みの第１制御モデル４０１”または更新済みの第２制御モデル４０２”が得られた後に）開始する。つまり、上記状態推定フィルタは、現在時刻Ｔcに追いつくまでは高速状態予測動作を実時間よりも高速で演算実行し、追いついたら、状態予測動作を事前予測動作に切り替え、無人機２０の現在の推定状態を時系列的に求める時系列的演算を、実時間の経過と歩調を合わせて実行する。その結果、上記事前予測動作により出力される無人機２０の推定状態は、表示装置１６０上で画面表示される。
【００６１】
図６は、状態推定フィルタをカルマンフィルタとして構成し、無人機２０の時系列的な状態推定をカルマンフィルタにより実行した場合に、実測値パケットの受信に応じて状態推定処理を実測時刻まで遡らせる様子を示す。なお、時間軸上に順番に並ぶ各時刻は、各インデックス値ｋ（１≦ｋ≦Ｋ）と一対一に対応しているので、以下の説明においては、簡単のために、時間軸上においてインデックスｋに対応する時刻を指して時刻ｋと呼ぶことにする。無人機２０の制御応答特性をモデル化した第１制御モデル４０１および第２制御モデル４０２を独立した制御系システムと看做し、時刻ｋ（１≦ｋ≦Ｋ）における無人機２０の推定状態を
【数１】
0006383716.tif 000002
で表し、時刻ｋ（１≦ｋ≦Ｋ）における入力をｕ（ｋ）、時刻ｋ（１≦ｋ≦Ｋ）における観測雑音をｗ（ｋ）、システム雑音をｖ（ｋ）、システム雑音の分散をσｖ２と表した場合、当該制御系システムの状態方程式、観測方程式および共分散は以下のように表される。
【数２】
0006383716.tif 000003
なお、上記式（３）によって求められる共分散は、カルマンフィルタが現在時刻ｋにおける無人機２０の状態ｘ（ｋ）と状態観測値Ｙ（ｋ）＝［ｙ０，…，ｙｋ］との関係から未来の時刻ｋ＋１の状態推定値を求める予測動作モードで動作する際に使用する共分散である。
【００６２】
図６において、時間軸に対応する縦軸の左側は、実時間の経過に伴って無人機２０の状態を実測した実測値が無人機２０側で時系列的に推移してゆく様子を表す。また、図６において、時間軸に対応する縦軸の右側は、仮想時間の経過に伴って第１演算部１００ａと第２演算部１００ｂが状態推定フィルタに基づいて無人機２０の推定状態を時系列的に求めていく様子を表す。
【００６３】
図６に示す縦軸の左側では、実時間軸上における時刻ｋ−４、時刻ｋ−３、時刻ｋ−２、時刻ｋ−１および時刻ｋにおける無人機２０の実状態
【数３】
0006383716.tif 000004
が、実時間の経過に伴う無人機２０側の実測値の時系列的推移として示されている。図６に示す縦軸の右側では、状態推定フィルタが実行する事前予測動作により、仮想時間軸上の時刻ｋ−４、時刻ｋ−３、時刻ｋ−２、時刻ｋ−１および時刻ｋにおいて無人機２０の時系列的な推定状態を以下のように求めている。
【数４】
0006383716.tif 000005
上記状態推定フィルタが実行する上記事前予測動作は、時刻ｋ−４、時刻ｋ−３、時刻ｋ−２、時刻ｋ−１および時刻ｋにそれぞれ対応する時系列的なループ処理として実行され、直前の時刻ｈ−１における無人機２０の推定状態
【数５】
0006383716.tif 000006
を上記式（１）の状態方程式に適用することにより、時刻ｋにおける無人機２０の推定状態
【数６】
0006383716.tif 000007
を求めるものである。つまり、上記状態推定フィルタが実行する上記事前予測動作は、以前に受信した実測値Ｍｋ−１による更新作業が完了した第１制御モデル４０１”または第２制御モデル４０２”に基づいて無人機２０の推定状態を時系列的に求める時系列的演算に相当する処理である。
【００６４】
時刻ｋにおいて、制御装置１０が無人機２０から新たな実測値Ｍｋを受信すると、状態推定フィルタは、まず、事後予測動作を行う。この事後予測動作は、時刻ｋにおいて受信した新たな実測値Ｍｋを第１制御モデル４０１または第２制御モデル４０２に反映させて新たな第１制御モデル４０１’または第２制御モデル４０２’を得る動作に対応する。続いて、上記状態推定フィルタは、上述した高速状態予測動作を時系列的なループ処理として実行する状態に移行する。この高速状態予測動作は、時刻ｋにおいて受信した新たな実測値Ｍｋを第１制御モデル４０１または第２制御モデル４０２に反映させて得られる新たな第１制御モデル４０１’または第２制御モデル４０２’に基づいて、無人機２０の推定状態を時系列的に求める時系列的演算を実時間の経過よりも高速に実行する処理に対応する。
【００６５】
具体的には、状態推定フィルタは以下の処理動作を実行する。時刻ｋにおいて新たな実測値Ｍｋを受信した状態推定フィルタが上述した遡及的予測動作に移行すると、無人機２０側で実測値Ｍｋが実測された実測時点であるｋ−３まで状態予測動作を遡及させる。これは、図５を参照して上述した説明において、新たな実測値Ｍｋを受信したことを契機に仮想時間Ｊ１およびＪ２の流れが実測値Ｍｋの実測時点Ｔｍｋまで実時間に逆行して遡及する振る舞いに対応する。従って、時刻ｋと時刻ｋ−３との間の時間差は、制御装置１０と無人機２０との間における通信遅延に対応する。仮想時刻を上記のように遡及させると、状態推定フィルタは、まず、以下のように事後予測動作を実行する。すなわち、状態推定フィルタは、実測値Ｍｋが実測された実測時点であるｋ−３まで状態予測動作を遡及させると、状態推定フィルタ内の内部状態変数の新たな値を新たに受信した実測値Ｍｋに基づいて算出する。具体的には、状態推定フィルタは、上述した事前予測動作により時刻ｋ−３における無人機２０の推定状態として求めた
【数７】
0006383716.tif 000008
の新たな値を、実測値Ｍｋに基づいて更新する処理を行う。これは、時刻ｋにおいて受信した新たな実測値Ｍｋを第１制御モデル４０１または第２制御モデル４０２に反映させて、新たな第１制御モデル４０１’または第２制御モデル４０２’を得る動作に対応する。その場合、状態推定フィルタは、時刻ｋにおいて受信した新たな実測値Ｍｋが表す状態観測値
【数８】
0006383716.tif 000009
に基づいて時刻ｋ−３における無人機２０の新たな推定状態を、
【数９】
0006383716.tif 000010
として求める。
【００６６】
無人機２０側で実測時刻ｋ−ｍにおいて実測値Ｍｋが実測され、カルマンフィルタが、時刻ｋにおいて、新たな実測値として実測値Ｍｋを受け取った際に、実測値Ｍｋが表す状態観測値
【数１０】
0006383716.tif 000011
に基づいて時刻ｋ−ｍにおける無人機２０の新たな推定状態
【数１１】
0006383716.tif 000012
をカルマンフィルタが求める処理は以下のように定式化することができる。
【数１２】
0006383716.tif 000013
上記式（４）において、ｇ（ｋ−ｍ）は、カルマンゲインであり、事前予測動作において上記式（３）に基づいて求められた共分散を使用して、以下の式により算出されてもよい。
【数１３】
0006383716.tif 000014
上記式（５）において、σｗ２は、観測雑音ｗｋの分散を表す。なお、上記式（５）に基づいて無人機２０の状態観測値から無人機２０の新しい推定状態を求める計算は、カルマンフィルタが無人機２０の現在時刻ｋにおける状態ｘ（ｋ）と状態観測値Ｙ（ｋ）＝［ｙ０，…，ｙｋ］との関係から現在時刻ｋの状態推定値を求めるフィルタリング動作モードに対応する。カルマンフィルタがフィルタリング動作モードで動作している場合に算出する共分散は、上記式（３）で求められる共分散とは異なり、以下の式で求められる事後共分散である。
【数１４】
0006383716.tif 000015
【００６７】
続いて、時刻ｋにおいて受信した新たな実測値Ｍｋを内部状態変数に反映させた状態推定フィルタは、高速状態予測動作を、時刻ｋ−３において実時間の経過よりも高速に実行する。既に述べたように、高速状態予測動作において状態推定フィルタが実行する演算は、実時間よりも高速に実行される点を除いて上述した事前予測動作をほぼ同一である。まず、時刻ｋ−３、時刻ｋ−２、時刻ｋ−１および時刻ｋにおける無人機２０の時系列的な推定状態として、
【数１５】
0006383716.tif 000016
を順次算出する。上記状態推定フィルタが実行する上記高速状態予測動作は、時刻ｋ−３、時刻ｋ−２、時刻ｋ−１および時刻ｋにそれぞれ対応する時系列的なループ処理として実行され、例えば、時刻ｈ−１における無人機２０の推定状態
【数１６】
0006383716.tif 000017
を上記式（１）の状態方程式に適用することにより、時刻ｋにおける無人機２０の推定状態
【数１７】
0006383716.tif 000018
を求めるものである。
【００６８】
時刻ｋにおいて受信した新たな実測値Ｍｋを内部状態変数に反映させた状態推定フィルタが高速状態予測動作を時刻ｋまで実時間よりも高速に実行し、時刻ｋまでの当該高速状態予測動作が終わると、当該高速に実行された高速状態予測動作は、現在時刻Ｔｃに追い付くこととなる。続いて、状態推定フィルタは、時刻ｋ＋１以降における事前予測動作を時系列的なループ処理として実行する状態に復帰し、時刻ｋ＋１、ｋ＋２、ｋ＋３、…における無人機２０の推定状態を以下のように時系列的に算出する。
【数１８】
0006383716.tif 000019
つまり、実時間よりも高速に実行される当該高速状態予測動作が現在時刻Ｔｃに追い付いたら、状態推定フィルタは、状態予測動作を事前予測動作に切り替えてそのまま継続する。これは、第１演算部１００ａと第２演算部１００ｂにより実行される以下の処理に対応する。すなわち、実時間の経過よりも高速に実行される上記時系列的演算が現在時刻Ｔｃに追い付いた後に、実時間の経過に歩調を合わせて上記時系列的演算により無人機２０の推定状態を時系列的に求め、画面表示のために表示装置１６０に出力する処理に対応する。
【００６９】
以上の説明を一般化すると、第１演算部１００ａと第２演算部１００ｂは、当該状態推定フィルタを以下のように構成する。実測値Ｍｋの実測時刻Ｔｍｋから現在時刻に追い付く時刻まで、新たに受信した実測値Ｍｋに基づく上記時系列的演算を実時間の経過よりも高速に実行するために、第１演算部１００ａおよび第２演算部１００ｂは、実測値Ｍｋに基づいて上記状態推定フィルタの予測動作を行う遡及的状態予測動作を含むように上記状態推定フィルタを構成する。この遡及的状態予測動作は、実測値Ｍｋを状態推定フィルタの内部状態に反映させる事後予測動作と、実測値Ｍｋを反映させた内部状態に基づいて状態推定フィルタの予測動作を実時間の経過よりも高速に行う高速状態予測動作と、を含む。つまり、上記状態推定フィルタは、実測値Ｍｋを制御モデルに反映する処理として事後予測動作を実行した後に、上記時系列的演算を実時間よりも高速に実行する高速状態予測動作に移る。そして、状態推定フィルタは、実時間の経過よりも高速に実行される上記時系列的演算（高速状態予測動作）が現在時刻Ｔｃに追い付いた後に、上記高速状態予測動作を（実時間の経過に合わせて実行速度を落とした上で）そのまま継続する形で上記状態推定フィルタの状態予測動作を事前予測動作に切り替えるように構成され、上記事前予測動作により出力される無人機２０の推定状態は、画面表示のために表示装置１６０に提供される。
【００７０】
図６に示す状態推定フィルタを使用する上記構成では、新たに受信した実測値Ｍｋの実測時刻Ｔｍｋを起点として、新たに受信した実測値Ｍｋに基づいて状態推定フィルタの予測動作を高速状態予測動作として実時間よりも高速に実行し、当該高速状態予測動作の実行が現在時刻Ｔｃに追い付いたら、状態推定フィルタの予測動作を事前予測動作に切り替えてそのまま継続する。従って、図６に示す状態推定フィルタを使用する上記構成では、第１制御モデル４０１および第２制御モデル４０２に基づいて無人機２０の現在の状態を時系列的に状態推定する処理を実現する際に、上述した時間ドメインでの各ループ処理が終了する都度、各ループ処理で算出された状態変数から無人機２０の現在の状態を直接得ることができる。その結果、無人機２０の現在の状態を状態推定する処理において、第１制御モデル４０１および第２制御モデル４０２の内部変数値を無人機の現在の状態に変換する処理が不要となり、計算を高速化することができる。
【００７１】
また、図６に示す状態推定フィルタを使用する上記構成では、最新の実測値Ｍｋが反映された第１制御モデル４０１’および第２制御モデル４０２’に基づいて無人機の現在の状態を状態推定する処理を実現するには、最新の実測値Ｍｋが実測された時刻Ｔｍｋに対応するループ処理において状態推定フィルタの状態変数値に当該最新の実測値Ｍｋが表す実状態の値を反映した上で状態予測動作をそのまま継続するだけでよい。その結果、当該最新の実測値Ｍｋを第１制御モデル４０１および第２制御モデル４０２に反映するために、当該最新の実測値Ｍｋを制御モデルの内部表現に変換した上で第１制御モデル４０１および第２制御モデル４０２の内部状態に適用する処理が不要となり、計算を高速化することができる。
【００７２】
図７は、図６を参照しながら上述した状態推定フィルタの動作の流れをフローチャートで表したものである。図７に示すフローチャートにおいて、処理はまずステップＳ０１から開始し、時刻をＴ＝Ｔ０と初期設定し、各時刻に対応するインデックス値ｋについてｋ＝１と初期設定する。なお、以下の説明において、各インデックス値ｋは、図５を参照しながら上述した仮想時間における時間軸上に並んだ仮想時刻の各々に対応する。続いて、図７のフローチャートの処理はステップＳ０２に進む。ステップＳ０２は、無人機２０から新たな実測値Ｍｋが受信されるのを待ち続け、新たな実測値Ｍｋが受信されると、新たな実測値Ｍｋが反映された第１制御モデル４０１’または第２制御モデル４０２’に基づいて無人機２０の推定状態を時系列的に求める時系列的演算を実時間の経過よりも高速に実行する段階に相当する。例えば、ステップＳ０２は、図４において第２制御モデル４０２を実行する第２演算部１００ｂが、時刻ｔ１から時刻ｔ２までの間に行う動作および時刻ｔ３からｔ４までの間に行う動作に対応する。また例えば、ステップＳ０２は、図４において第１制御モデル４０１を実行する第１演算部１００ａが、時刻ｔ２から時刻ｔ３までの間に行う動作および時刻ｔ４からｔ５までの間に行う動作に対応する。
【００７３】
ステップＳ０２は、サブステップＳ７１乃至Ｓ７６により構成され、ステップＳ０２の実行が開始されると、図７のフローチャートの処理は、サブステップＳ７１からサブステップＳ７６を実行する。図７のフローチャートの処理がサブステップＳ７１に進むと、状態推定フィルタは、無人機２０から新たな実測値Ｍｋが受信されるのを待ち続けている間の処理を実行する。具体的には、サブステップＳ７１においては、状態推定フィルタは、直前の時刻ｋ−１における無人機２０の推定状態
【数１９】
0006383716.tif 000020
から現在時刻ｋにおける無人機２０の推定状態
【数２０】
0006383716.tif 000021
を上記式（１）に従って算出する事前予測動作を行う。
【００７４】
続いて、処理はサブステップＳ７２に進み、時計の針が現在時刻ｋから次の時刻ｋ＋１に進むまで待つ。続いて、処理はサブステップＳ７３に進み、状態推定フィルタは、無人機２０から新たな実測値Ｍｋが受信されたか否かを判定し、受信されていなければ、インデックスｋの値をインクリメントしてｋ＝ｋ＋１とした上で、処理はサブステップＳ７１に戻り、受信されていれば、処理はサブステップＳ７４に進む。サブステップＳ７４においては、状態推定フィルタは、時刻ｋにおいて無人機２０から新たに受信した実測値Ｍｋにより表される無人機２０の状態観測値に基づいて状態推定フィルタの内部状態変数の新しい値を算出する。具体的には、新たに受信した実測値Ｍｋが、無人機２０側において実測時刻ｋ−ｍにおいて実測された実測値であるとすると、新たに受信した実測値Ｍｋにより表される無人機２０の状態観測値は、
【数２１】
0006383716.tif 000022
となるので、この状態観測値から上記式（４）に基づいて時刻ｋ−ｍにおける無人機２０の新たな推定状態
【数２２】
0006383716.tif 000023
を求める。続いて、状態推定フィルタは、仮想時刻を実測値Ｍｋの実測時刻ｋ−ｍまで遡らせるために、ｋ＝ｋ−ｍとする。
【００７５】
続いて、処理はサブステップＳ７５に進み、状態推定フィルタは、時刻ｋが実時間における現在時刻Ｔｃに追い付いたか否かを判定し、追い付いていなければ、処理はサブステップＳ７６に進み、追い付いていれば、処理はステップＳ０２の実行を終了してステップＳ０３に進む。サブステップＳ７６においては、サブステップＳ７１と同様の処理を行うことによって、時刻ｋ−ｍにおける無人機２０の推定状態
【数２３】
0006383716.tif 000024
から次の時刻ｋ−ｍ＋１における無人機２０の推定状態
【数２４】
0006383716.tif 000025
を求める。続いて、サブステップＳ７６においては、インデックスｋの値をインクリメントしてｋ＝ｋ＋１とした上で、サブステップＳ７５に戻る。
【００７６】
なお、サブステップＳ７１からサブステップＳ７３を繰り返し実行するループ処理とは異なり、サブステップＳ７５およびサブステップＳ７６を繰り返し実行するループ処理においては、時計の針が時刻ｋから時刻ｋ＋１に移るまで待つ処理が介在していない。そのため、演算部１００のハードウエア性能上の実行速度が十分に速ければ、サブステップＳ７５およびサブステップＳ７６を繰り返し実行するループ処理は、実時間の経過よりも高速に実行されることとなる。
【００７７】
ステップＳ０３は、無人機２０から直近に受信した実測値Ｍｋによる更新作業が完了した第１制御モデル４０１”または第２制御モデル４０２”に基づいて無人機２０の推定状態を時系列的に求める時系列的演算と当該時系列的に求められた無人機２０の推定状態を画面表示する処理に対応する。例えば、ステップＳ０３は、図４において第１制御モデル４０１を実行する第１演算部１００ａが、時刻ｔ１から時刻ｔ２までの間に行う動作および時刻ｔ３からｔ４までの間に行う動作に対応する。また例えば、ステップＳ０３は、図４において第２制御モデル４０２を実行する第２演算部１００ｂが、時刻ｔ２から時刻ｔ３までの間に行う動作および時刻ｔ４からｔ５までの間に行う動作に対応する。ステップＳ０３は、サブステップＳ７７乃至Ｓ７９により構成され、ステップＳ０３の実行が開始されると、図７のフローチャートの処理は、サブステップＳ７７からサブステップＳ７９を実行する。図７のフローチャートの処理がサブステップＳ７７に進むと、状態推定フィルタは、サブステップＳ７１と同様の処理を行うことによって、現在時刻ｋにおける無人機２０の推定状態
【数２５】
0006383716.tif 000026
から次の時刻ｋ＋１における無人機２０の推定状態
【数２６】
0006383716.tif 000027
を求める。続いて、サブステップＳ７７においては、インデックスｋの値をインクリメントしてｋ＝ｋ＋１とした上で、サブステップＳ７８に進み、サブステップＳ７８においては、時計の針が現在時刻ｋから次の時刻ｋ＋１に進むまで待つ。
【００７８】
続いて、処理はサブステップＳ７９に進み、無人機２０から新たな実測値が受信されたか、または他の演算部１００における別の状態推定フィルタにより実行されるサブステップＳ７５およびサブステップＳ７６の繰り返し実行ループ処理が現在時刻Ｔｃに追い付いたならば、処理はステップＳ０４に進む。新たな実測値が受信されておらず、他の演算部１００が実行中の別の状態推定フィルタによる上記繰り返しループ処理が現在時刻Ｔｃに追い付いてもいないならば、処理は、サブステップＳ７７に戻る。ステップＳ０４においては、状態推定フィルタの処理を終了すべきかを判断し、終了すべきでないならば、処理は、ステップＳ０２を構成するサブステップＳ７１に戻り、上述した一連の処理を再度実行し、そうでなければ、状態推定フィルタの処理を終了する。
【００７９】
次に、無人機２０を遠隔制御するための制御装置および制御方法の別の実施形態について説明する。この実施形態では、２つ以上の演算部１００（１００ａ〜１００ｎ）の中の少なくとも一つの第３演算部１００ｃが、第１演算部１００ａ及び前記第２演算部１００ｂとは別に、無人機２０の推定状態を時系列的に求める演算部として追加されている。また、第３演算部１００ｃは、第１演算部１００ａ及び前記第２演算部１００ｂとは別に、第３制御モデル４０３を機能モジュールとして実行している。この実施形態では、第３演算部１００ｃが、時刻Ｔｍｋにおいて実測された実測値Ｍｋを受信すると、第１演算部１００ａ及び前記第２演算部１００ｂが無人機２０の推定状態を時系列的に求める時系列的演算とは並列に、以下の処理を実行する。すなわち、実測値Ｍｋを第３制御モデル４０３に反映して得られる新たな第３制御モデル４０３’に基づいて、無人機２０の推定状態を時系列的に求める時系列的演算を、時刻Ｔｍｋから実時間よりも未来の時点に至るまで実行する。第３演算部１００ｃによる上記時系列的演算は、実時間の経過よりも高速に、未来の時点に至るまで実行される。第３演算部１００ｃが当該未来の時点に至るまで上記時系列的演算を高速に実行したら、第３演算部１００ｃは、現在時刻Ｔｃから当該未来の時点までの無人機２０の推定状態を、表示装置１６０上で画面表示する。当該未来の時点までの無人機２０の推定状態を画面表示する動作は、第１演算部１００ａ及び前記第２演算部１００ｂが時系列的に求めた無人機２０の現在の推定状態を表示した画像の上に重畳して、無人機２０の薄い影を表示する形で行われる。
【００８０】
図８は、第３演算部１００ｃが、上述した時系列的演算を、時刻Ｔｍｋから実時間よりも未来の時点に至るまで実時間よりも高速に実行する様子を説明するためのタイミング図である。図９は、この実施形態において無人機２０を遠隔制御するのに使用される制御装置１０の内部構成を示す図である。図９に示す制御装置１０は、記憶部１２０の中に作業環境モデル１２１、シミュレーション・プログラム１２２および未来軌道予測データ１２３が格納されている点を除いて、図２に示す制御装置１０とほぼ同様の構成を有する。作業環境モデル１２１、シミュレーション・プログラム１２２および未来軌道予測データ１２３については、以下において具体的に後述する。また、図９に示す制御装置１０が備える第１演算部１００ａ、第２演算部１００ｂ、第３演算部１００ｃ、第４演算部１００ｄ、第５演算部１００ｅおよび第６演算部１００ｆの各々は、図２に示す２つ以上の演算部１００（１００ａ〜１００ｎ）の各々と同様の演算部である。なお、図９には示していないが、第３演算部１００ｃおよび第４演算部１００ｄは、無人機２０の制御応答特性をモデル化した機能モジュールとして第３制御モデル４０３および第４制御モデル４０４をそれぞれ実行している。
【００８１】
第１演算部１００ａと第２演算部１００ｂは、図３乃至図５を参照しながら上述したように、第１制御モデル４０１および第２制御モデル４０２に基づいて、無人機２０の現在の状態を時系列的に求める演算部である。第３演算部１００ｃと第４演算部１００ｄは、図８を参照しながら以下において後述するように、第３制御モデル４０３および第４制御モデル４０４に基づいて、無人機２０の現在から未来の時点までの状態を時系列的に予測する演算部である。また、第５演算部１００ｅは、以下において後述するように、無人機２０の現在から未来の時点までの状態を時系列的に予測した結果に基づいて、無人機２０が障害物に接触したり擱座したりする可能性を事前に察知するための要回避判定処理を実行する。また、第６演算部１００ｆは、図１０および図１１を参照しながら以下において後述するように、制御装置１０が無人機２０との通信を中断してオフライン状態にある間に、仮想的な作業環境を想定して無人機２０の遠隔制御を模擬的に実行するためのシミュレーションを実行する。
【００８２】
以下、図８および図９を参照しながら第３演算部１００ｃが、上述した時系列的演算を、実測値Ｍｋの実測時刻Ｔｍｋから実時間よりも未来の時点（未来の仮想時刻）に至るまで実時間よりも高速に実行する処理の流れを説明する。図８において、第１演算部１００ａは、図４に示す時刻Ｔ１、Ｔ３およびＴ５においてそれぞれ受け取った実測値を反映した第１制御モデル４０１’に基づいて、無人機２０の現在の推定状態を求めるために図４において上述したシナリオと同様の時系列的演算を順次実行する。具体的には、第１演算部１００ａは、図４に示すシナリオと同様に、時刻Ｔ１において受け取った実測値Ｍ１を第１制御モデル４０１に反映させて新しい第１制御モデル４０１’とする。続いて、第１演算部１００ａは、上述した時系列的演算を、時刻Ｔ１において受け取った実測値Ｍ１が無人機２０において実測された時刻である実測時刻Ｔｍ１まで遡らせる。続いて、第１演算部１００ａは、上述した時系列的演算を、実測時刻Ｔｍ１から時刻ｔ１まで（図４のｐ１で表す期間に対応）、実時間の経過よりも高速に実行する。ここで、時刻ｔ１は、第１演算部１００ａにより当該高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻に相当する。同様に、第１演算部１００ａは、時刻Ｔ３およびＴ５においてそれぞれ受け取った実測値Ｍ３およびＭ５についても、同様の処理を行う。また、第２演算部１００ｂは、図４に示す時刻Ｔ２、Ｔ４およびＴ６においてそれぞれ受け取った実測値を反映した第２制御モデル４０２’に基づいて、無人機２０の現在の推定状態を求めるために図４において上述したシナリオと同様の時系列的演算を順次実行する。
【００８３】
他方、第３演算部１００ｃは、時刻Ｔ１において受け取った実測値Ｍ１を制御モデルに反映して上述した時系列的演算を、実測時刻Ｔｍ１から実時間の経過よりも高速に実行する点で第１演算部１００ａの上述した動作と同様であるが、以下の点が異なる。つまり、第１演算部１００ａおよび第２演算部１００ｂと並行して、第３演算部１００ｃは、時刻Ｔ１において受け取った実測値Ｍ１を第３制御モデル４０３に反映させて新しい第３制御モデル４０３’とする。続いて、第３演算部１００ｃは、上述した時系列的演算を、時刻Ｔ１において受け取った実測値Ｍ１が無人機２０において実測された時刻である実測時刻Ｔｍ１まで遡らせる。続いて、第３演算部１００ｃは、実時間よりも高速に実行される上述した時系列的演算を実測時刻Ｔｍ１から開始するが、当該高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻ｔ１を過ぎても当該高速に実行される時系列的演算をそのまま継続する。その結果、第３演算部１００ｃは、実時間よりも高速に実行される上述した時系列的演算を、現在時刻を過ぎた未来の仮想時刻ｔ３まで、実時間の経過よりも高速に実行する（図８のτＲで表す期間に対応）。従って、第３演算部１００ｃは、第１演算部１００ａが上記時系列的演算を実時間よりも高速に実行する動作を終了する時刻ｔ１よりも時間幅τｐだけ将来の時点まで当該高速に実行される時系列的演算を続ける。第３演算部１００ｃが、実時間よりも高速に実行される上述した時系列的演算を、未来の仮想時刻ｔ３まで実行し終わると、第３演算部１００ｃは、以下の動作を未来の仮想時刻ｔ４まで実行する。すなわち、第３演算部１００ｃは、実測値Ｍ１による更新作業が完了した第３制御モデル４０３”に基づいて、無人機２０の推定状態を時系列的に求める時系列的演算を、実時間の経過に歩調を合わせた実行速度で実行し続ける。これと同時並行して、第３演算部１００ｃは、当該時系列的に求めた無人機２０の推定状態を表示装置１６０上に画面表示する。なお、以下において後述するように、この画面表示は、無人機２０の推定状態に基づく無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する処理に対応する。
【００８４】
以上より、図８に示す実施形態によれば、無人機２０の状態を未来の時点まで時系列的に状態推定し、現在時刻Ｔｃから未来の時点までの無人機２０の状態を、無人機２０の現在の状態に重畳して画面表示することができる。その結果、この実施形態によれば、操作者が想定している軌道に沿って無人機２０の遠隔制御を続けた場合に、未来の時点（未来の仮想時刻）において無人機２０が障害物に接触したり、擱座したりする可能性を事前に察知することができる。従って、そのような場合には、操作者が事前に軌道を修正することが可能となる。特に、操作者が無人機２０周辺を撮影する視野から見て死角に隠れている障害物を見落として無人機制御を続けている場合、操作者のミスにより無人機２０が障害物に接触したり、擱座したりする可能性を事前に察知し、無人機２０の操作ミスを防止することが可能となる。
【００８５】
なお、未来の時点において無人機２０が障害物に接触したり、擱座したりする可能性を検出する処理は、図９において要回避判定機能部として動作する第５演算部１００ｅによって実行される。図９に示す第５演算部１００ｅは、まず、無人機２０の状態を第３演算部１００ｃにより未来の時点まで時系列的に状態推定した結果に基づいて、無人機２０が辿ると予想される未来の軌道を予測する。続いて、第５演算部１００ｅは、当該予測された未来の軌道を表すデータを記憶部１２０内に格納された未来軌道予測データ１２３に書き込む。続いて、第５演算部１００ｅは、記憶部１２０内に格納された作業環境記述モデル１２１が表す作業環境と未来軌道予測データ１２３が表す無人機２０の未来軌道との間の空間的関係に基づいて当該予測された軌道が無人機２０と他の構造物との接触や無人機２０の擱座を示すか否かを判定する。ここで、作業環境記述モデル１２１内においては、無人機２０の作業環境内に存在する他の構造物や地面の凹凸、無人機２０の周囲を囲む壁の形状などが幾何学的データとして幾何学的モデリング言語などにより記述されている。以上のようにして、第５演算部１００ｅにより無人機２０が障害物に接触したり、擱座したりする可能性が事前に検出されると、要回避判定機能部として動作する第５演算部１００ｅは、無人機２０に回避軌道をとらせる必要がある旨の警告を操作者に対して発することができる。
【００８６】
次に、図８および図９を参照しながら、無人機２０を遠隔制御するための制御装置および制御方法のさらに別の実施形態について、まず具体例から説明する。図８に示すシナリオにおいて上述したように、第３演算部１００ｃは、実時間よりも高速に実行される上述した時系列的演算を実測時刻Ｔｍ１から開始するが、当該高速に実行される時系列的演算が現在時刻Ｔｃに追い付く時刻ｔ１を過ぎても当該高速に実行される時系列的演算をそのまま継続する。その結果、第３演算部１００ｃは、実時間よりも高速に実行される上述した時系列的演算を、現在時刻を過ぎた未来の仮想時刻ｔ３まで、すなわち、図８のτＲで示す期間にわたって実時間の経過よりも高速に実行する。これと並行して、時刻ｔ１から時刻ｔ３までの間においては、図４を参照して上述したように、実時間の経過と歩調を合わせて無人機２０の推定状態を画面表示する処理を第１演算部１００ａと第２演算部１００ｂとが互い違いに交替しながら実行する。このとき、無人機２０の未来の推定状態に基づく無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する処理は、第３演算部１００ｃによって未来の仮想時刻ｔ３から未来の仮想時刻ｔ４までの間について実行される。
【００８７】
しかしながら、時刻Ｔ１において実測値Ｍ１を受信して以来新たな実測値を受信していない第３演算部１００ｃが、無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する処理を、未来の仮想時刻ｔ４以降も継続すると、当然ながら第３制御モデル４０３のモデル化誤差が増大してしまう。何故なら、未来の仮想時刻ｔ４以降については、第３演算部１００ｃは、実測値Ｍ１以降に無人機２０から受信した新たな実測値Ｍ２によって第３制御モデル４０３をさらに更新しないまま、無人機２０の未来の軌道を画面表示する処理を継続してしまうからである。その結果、上述した実施形態では、未来の仮想時刻ｔ４から仮想時刻ｔ５までの間については、第３演算部１００ｃは、無人機２０の未来の推定状態に基づく上記のような未来軌道の先行画面表示を行うことができない。
【００８８】
そこで、この実施形態においては、無人機２０の未来の推定状態に基づく無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する処理を、図９に示す第４演算部１００ｄが、時刻ｔ４から開始するようにしても良い。その場合には、第４演算部１００ｄは、時刻ｔ２に先行する時刻Ｔ２において受信した実測値Ｍ２による更新作業が完了した第４制御モデル４０４”に基づいて、無人機２０の未来の推定状態を時系列的に求めながら、無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する。従って、第４演算部１００ｄは、実測値Ｍ２による更新作業が完了した第４制御モデル４０４”に基づいて、未来の仮想時刻ｔ４から時刻ｔ５までの間において、無人機２０の未来の推定状態を時系列的に求めながら、無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示することができる。なお、無人機２０の未来の軌道を上記のように画面表示する動作は、第１演算部１００ａ及び前記第２演算部１００ｂが時系列的に求めた無人機２０の現在の推定状態を表示した画像の上に重畳して、無人機２０の薄い影を表示する形で行われてもよい。すなわち、２つ以上の演算部１００（１００ａ〜１００ｎ）の少なくとも一つは、第１演算部１００ａ又は第２演算部１００ｂが時系列的に求めた無人機２０の現在の推定状態を表示する画面に重畳させる形で、第３演算部１００ｃおよび第４演算部１００ｄが時系列的に求めた無人機２０の未来の推定状態を実時間の経過に先行する形で表示装置１６０の画面に表示するように構成されている。
【００８９】
また、第３演算部１００ｃが、時刻Ｔ３において受信した実測値Ｍ３を反映させた新たな第３制御モデル４０３’に基づいて上記時系列的演算を仮想時刻ｔ５に到達するまで実時間よりも高速に実行した後には、第４演算部１００ｄは、第３演算部１００ｃとの間で互いに実行していた処理を入れ替えるようにしてもよい。その場合、未来の仮想時刻ｔ５から時刻ｔ６までの間においては、第３演算部１００ｃは、実測値Ｍ３により更新された第３制御モデル４０３”に基づいて、無人機２０の未来の推定状態に基づく上記のような未来軌道の先行画面表示を行うようにしてもよい。一方、第４演算部１００ｄは、時刻Ｔ４において受信した実測値Ｍ４を反映させた新たな第４制御モデル４０４’に基づいて上記時系列的演算を仮想時刻ｔ６に到達するまで実時間よりも高速に実行する処理を第４演算部１００ｄが実行するようにしても良い。
【００９０】
図８および図９を参照して述べた以上の説明を一般化すると、２つ以上の演算部１００（１００ａ〜１００ｎ）に含まれる第３演算部１００ｃと第４演算部１００ｄは、以下の動作を第１演算部乃至前記第2演算部とは並列に実行するように構成されている。まず、第４演算部１００ｄは、第３演算部により受信された一の実測値（時刻Ｔ１に受信した実測値Ｍ１）の次に受信される他の実測値（例えば、実測値Ｍ２）を第４制御モデル４０４に反映して得られる新たな第４制御モデル４０４’に基づいて、以下の演算を実行する。すなわち、操作指令から無人機２０の現在の推定状態を時系列的に求める時系列的演算を、他の実測値（例えば、実測値Ｍ２）が実測された時刻（例えば、時刻Ｔｍ２）から現在時刻Ｔｃを通過して他の未来の時点（例えば、未来の仮想時刻ｔ４）に至るまで、実時間の経過よりも高速に実行する。続いて、前第４演算部１００ｄによる時系列的演算が他の未来の時点（例えば、未来の仮想時刻ｔ４）に到達した後に、第４演算部１００ｄによる時系列的演算により求められた無人機２０の現在の推定状態を、無人機２０の未来の推定状態として、次の一の未来の時点（例えば、未来の仮想時刻ｔ５）に至るまで表示装置１６０に提供する。続いて、第３演算部１００ｃは、次の一の未来の時点（例えば、未来の仮想時刻ｔ５）から次の他の未来の時点（例えば、未来の仮想時刻ｔ６）まで、無人機２０の未来の推定状態を表示装置１６０に提供し、第４演算部１００ｄは、次の他の未来の時点（例えば、未来の仮想時刻ｔ６）から次の次の一の未来の時点（例えば、未来の仮想時刻ｔ７）まで、無人機２０の未来の推定状態を表示装置１６０に提供する。
【００９１】
以上より、この実施形態によれば、第３演算部１００ｃが上述した時系列的演算を未来の時点Ｔ３に追い付くまで実時間よりも高速に実行し続けた後に、無人機２０の未来の推定状態に基づいて無人機２０の未来の軌道を画面表示する処理を時刻Ｔ４以降も継続すると第３制御モデル４０３のモデル化誤差が増大してしまうという問題を軽減することができる。その理由は以下のとおりである。第４演算部１００ｄは、第３演算部１００ｃが使用する第３制御モデル４０３”よりも新しい実測値を反映した第４制御モデル４０４’に基づいて上記時系列的演算を未来の仮想時刻Ｔ４に至るまで実時間よりも高速に実行する。その後に、第４演算部１００ｄは、第３制御モデル４０３”よりも新しい実測値による更新作業が完了した第４制御モデル４０４”に基づいて、上述した無人機２０の未来の軌道を画面表示する処理を時刻Ｔ４以降において実行する。
【００９２】
また、この実施形態によれば、第３演算部１００ｃが上述した時系列的演算を未来の時点ｔ４から未来の時点ｔ５に追い付くまで実時間よりも高速に実行し続ける間においても、未来の時点ｔ４から当該次の未来の時点ｔ５までの無人機２０の時系列的な状態を、実時間の経過よりも先行する形で、時系列的に状態推定しながら画面表示することができる。従って、この実施形態によれば、第３演算部１００ｃが上述した時系列的演算を未来の時点ｔ５に追い付くまで実時間よりも高速に実行し続ける間において、実時間よりも先行して時系列的に状態推定された無人機２０の未来の状態を観察しながら制御を行うことができない空白の時間が存在しなくなる。その結果、この実施形態によれば、第３演算部１００ｃが上述した時系列的演算を次の未来の時点ｔ５に追い付くまで実時間よりも高速に実行し続ける間においても、近い将来において無人機２０が障害物に接触したり、擱座したりする可能性を事前に察知することができる。
【００９３】
また、図８に示す時刻ｔ１から時刻ｔ３までの間（図８においてτｐで示す期間）においては、第３演算部１００ｃは、未来の時刻ｔ３に少しでも早く追い付くために、無人機２０の推定状態を時系列的に求める時系列的演算を可能な限り高速に実行しなくてはならない。従って、その間は、第３演算部１００ｃは、当該時系列的に求めた無人機２０の推定状態を画面表示する処理を行うことができない。そこで、代替的な実施形態においては、図８に示す時刻ｔ１から時刻ｔ３までの間（図８においてτｐで示す期間）において、図９に示す第４演算部１００ｄが、無人機２０の未来の推定状態に基づく無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する処理を第３演算部１００ｃに代わって行う。具体的には、この実施形態では、第４演算部１００ｄが、図８に示す時刻ｔ１から時刻ｔ３までの間において、無人機２０の未来の推定状態に基づく無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する処理を行う。その際、第４演算部１００ｄは、時刻Ｔ１において受信した実測値Ｍ１による更新作業が完了した第４制御モデル４０４”に基づいて、無人機２０の未来の推定状態を時系列的に求めながら、無人機２０の未来の軌道を、実時間の経過に先行する形で画面表示する。無人機２０の未来の軌道を上記のように画面表示する動作は、第１演算部１００ａ及び前記第２演算部１００ｂが時系列的に求めた無人機２０の現在の推定状態を表示した画像の上に重畳して、無人機２０の薄い影を表示する形で行われてもよい。
【００９４】
次に、無人機２０を遠隔制御するための制御装置および制御方法のさらに別の実施形態について説明する。図１および図２を参照しながら上述した遠隔制御システムにおいて、狭隘部を潜り抜けたり複雑に配置された障害物を連続的に回避したりする動作を無人機２０に行わせるための遠隔制御を操作者が行う場合、操作者の僅かな操作ミスで失敗する可能性が高い。従って、そのような複雑で失敗確率の高い動作を無人機２０に行わせるのに先立って、現実と同様の状況を設定した仮想環境において操作者が事前に遠隔操作のトレーニングを積んだ上で、実際の遠隔制御を開始するのがリスク回避上好ましい。そこで、この実施形態では、２つ以上の演算部１００（１００ａ〜１００ｎ）の中の少なくとも一つである第６演算部１００ｆは、以下の動作を実行するように構成されている。
【００９５】
まず、第６演算部１００ｆは、無人機２０の遠隔制御の開始に先立って、シミュレーションに基づく試行錯誤を繰り返すことにより無人機２０に対する一連の操作指令を含む操作プロファイルを生成する。図１０は、シミュレーションに基づく試行錯誤を繰り返すことにより無人機２０に対する一連の操作指令を含む操作プロファイル１２５を生成する動作を制御装置１０が実行中のシミュレーション実行状態を示している。図１０に示すように、当該シミュレーション実行状態においては、制御装置１０と無人機２０との間の通信は遮断されており、その間においては、制御装置１０は、無人機２０の遠隔操作をシミュレーションにより模擬実行するだけで実際の遠隔制御は行わない。図１０に示すシミュレーション実行状態においては、シミュレーションによる模擬的な遠隔制御を操作者が行うことによって入力された操作指令は、記憶部１２０内に格納された操作プロファイル１２５に蓄積される形で記憶されてゆく。また、図１０に示すシミュレーション実行状態においては、シミュレーションを行うために、現実と同様の状況を設定した仮想環境は、記憶部１２０内に格納された作業環境記述モデル１２１によって記述される。作業環境記述モデル１２１内においては、無人機２０の作業環境内に存在する他の構造物や地面の凹凸、無人機２０の周囲を囲む壁の形状などが幾何学的データとして幾何学的モデリング言語などにより記述されている。
【００９６】
なお、図１０および図１１においては、操作プロファイル１２５は、一つしか図示されていないが、第６演算部１００ｆは、複数の（Ｓ個の）操作プロファイル１２５ｓ（１≦ｓ≦Ｓ）を生成し、記憶部１２０に格納しても良い。例えば、操作者がシミュレーションによる無人機２０の模擬的な遠隔制御を複数回にわたって試行錯誤しながら繰り返し実行させた場合には、第６演算部１００ｆは、当該繰り返し実行の各々について個別的に操作プロファイル１２５を生成してもよい。その場合には、無人機２０の模擬的な遠隔制御を複数回にわたって試行錯誤しながら繰り返し実行した回数に応じた複数の（Ｓ個の）操作プロファイル１２５ｓ（１≦ｓ≦Ｓ）が生成され、記憶部１２０に格納される。
【００９７】
続いて、図１１に示すように、制御装置１０は、無人機２０と光ファイバ回線３０を介して通信可能に接続され、第６演算部１００ｆは、図１０に示すシミュレーション実行状態において生成された複数の操作プロファイル１２５ｓ（１≦ｓ≦Ｓ）の中から、一連の作業を成功裏に完遂できると想定される操作プロファイル１２５’を選択する。続いて、図１１に示すように、第６演算部１００ｆは、操作プロファイル１２５’に基づいて無人機２０を半自動制御（セミオート制御）する。続いて、第６演算部１００ｆは、第３演算部１００ｃが実時間よりも未来の時点まで時系列的に求めた無人機２０の推定状態が要回避状態（例えば、障害物との接触や前記無人機の擱座）を示すか否かを検出する。続いて、当該要回避状態（例えば、障害物との接触や前記無人機の擱座）を検出した際に、操作プロファイル１２５’に基づいて実行中の上記半自動制御に対して、操作者の手動による遠隔制御を介入させる。具体的には、第６演算部１００ｆが、上記半自動制御（セミオート制御）によって生成差された制御指令に対して、操作者の手動操作によって生成された制御指令を重畳させる。これにより、第６演算部１００ｆは、無人機２０に対して送信される制御指令を修正することが可能となる。その後、操作者は、第１演算部１００ａと第２演算部１００ｂが時系列的に求めた無人機２０の推定状態の画面表示に基づいて、無人機２０を手動制御する。
【００９８】
つまり、この実施形態では、無人機２０の遠隔制御の開始に先立って、手動による遠隔制御と同一の操作インターフェースを有する上記仮想環境内において、無人機２０を遠隔操作した場合の操作シナリオをシミュレーションにより模擬実行する。当該シミュレーションは、第６演算部１００ｆが記憶部１２０からシミュレーション・プログラム１２２を読み出して実行することにより行ってもよい。そして、この実施形態においては、当該シミュレーションにより様々な操作シナリオを模擬実行する試行錯誤を繰り返すことにより無人機２０に対する一連の操作指令を含む操作プロファイルを生成し、当該操作プロファイルに従って無人機２０をセミオート（半自動）制御する。また、上述した操作プロファイルに従ったセミオート（半自動）制御の実行中に、障害物と接触したり無人機が擱座したりする可能性を事前に察知した場合には、操作者の手動による遠隔制御を介入させ、当該セミオート（半自動）制御を修正することができるようにしてある。
【００９９】
なお、未来の時点において無人機２０が障害物に接触したり、擱座したりする可能性を検出する処理は、図９において要回避判定機能部として動作する第５演算部１００ｅによって実行される。図９に示す第５演算部１００ｅは、まず、無人機２０の状態を第３演算部１００ｃにより未来の時点まで時系列的に状態推定した結果に基づいて、無人機２０が辿ると予想される未来の軌道を予測する。続いて、第５演算部１００ｅは、当該予測された未来の軌道を表すデータを記憶部１２０内に格納された未来軌道予測データ１２３に書き込む。続いて、第５演算部１００ｅは、記憶部１２０内に格納された作業環境記述モデル１２１が表す作業環境と未来軌道予測データ１２３が表す無人機２０の未来軌道との間の空間的関係に基づいて当該予測された軌道が無人機２０と他の構造物との接触や無人機２０の擱座を示すか否かを判定する。
【０１００】
従って、この実施形態によれば、シミュレーションにより様々な操作シナリオを模擬実行する試行錯誤を繰り返すことにより操作者が手動遠隔制御と同一の操作インターフェースを使用して事前に操作のトレーニングを積むことができる。そして、当該セミオート（半自動）制御の実行中に予定外の失敗リスクが生じた場合には、当該セミオート制御を手動で修正することもできる。その結果、この実施形態によれば、複雑で失敗確率の高い動作を無人機２０に行わせる際の失敗リスクを低減することができる。
【０１０１】
次に、無人機２０を遠隔制御するための制御装置および制御方法のさらに別の実施形態について説明する。この実施形態では、２つ以上の演算部１００（１００ａ〜１００ｎ）の中の少なくとも一つは、以下の動作を実行するように構成されていても良い。まず、第３演算部１００ｃにより実時間よりも未来の時点まで時系列的に求めた無人機２０の推定状態が要回避状態（例えば、障害物との接触や前記無人機の擱座）を示すか否かを検出する。続いて、要回避状態（例えば、障害物との接触や前記無人機の擱座）を検出した際には、操作者が入力した操作指令に優先して無人機２０に回避軌道をとらせる緊急操作指令を無人機２０に送信する。
【０１０２】
以上より、この実施形態によれば、無人機２０の状態を未来の時点まで状態推定することにより障害物と接触したり無人機が擱座したりする可能性を事前に察知した場合には、操作者の手動による遠隔制御に優越して、制御装置１０の演算部１００が無人機２０に回避軌道をとらせる回避制御を自動的に実行することができる。その結果、無人機２０が障害物と接触したり無人機２０が擱座したりする可能性を事前に察知した場合に、当該回避制御を操作者に任せきりにするのではなく、制御装置１０の演算部１００の判断により操作者を介さずに自動実行することができる。
【符号の説明】
【０１０３】
１  遠隔制御システム
１０  制御装置
２０  無人機
２１  無人機側制御装置
２２  サーボ機構
３０  光ファイバ回線
４２，４３，４５，４６，４７  信号経路
５１，５２  切替スイッチ
９１，９２  監視カメラ／他の無人機
９３  監視用装置
１００（１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，１００ｆ）  演算部
１１０  通信部
１２０  記憶部
１２１  作業環境モデル
１２１  作業環境記述モデル
１２２  ・プログラム
１２３  未来軌道予測データ
１２５  操作プロファイル
１３０  エンコーダ
１４０  インターフェース
１５０  操作盤
１６０  表示装置
２１１  無人機側の通信部
２１２  無人機側の制御演算部
２２１  センサ／カメラ類
２２２  アクチュエータ類
４０１  第１制御モデル
４０２  第２制御モデル
４０３  第３制御モデル
４０４  第４制御モデル
４１１，４１２  切替手段
Ｊ１，Ｊ２  仮想時間
Ｍｋ（Ｍ１，Ｍ３，Ｍ４，Ｍ５，Ｍ６）  実測値
Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５，Ｔ６  受信時刻
Ｔｃ  現在時刻
Ｔｍｋ（Ｔｍ１，Ｔｍ３，Ｔｍ４，Ｔｍ５，Ｔｍ６）  実測時刻
Ｙ，ｙ  状態観測値
ｋ  インデックス値
【図１】
0006383716.tif 000028
【図２】
0006383716.tif 000029
【図３】
0006383716.tif 000030
【図４】
0006383716.tif 000031
【図５】
0006383716.tif 000032
【図６】
0006383716.tif 000033
【図７】
0006383716.tif 000034
【図８】
0006383716.tif 000035
【図９】
0006383716.tif 000036
【図１０】
0006383716.tif 000037
【図１１】
0006383716.tif 000038