(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
<第一実施形態>
以下、本発明の実施形態による制御装置を
図1〜
図3を参照して説明する。
図1は、本発明に係る第一実施形態における無人システムのブロック図である。
図1の無人システム1は、制御装置10、機器20、センサ30を含む。制御装置10は、機器20を制御するコンピュータであって、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を備える。制御装置10と機器20とは別体で構成されていても良いし、一体的に構成されていても良い。制御装置10と機器20は、有線または無線の通信手段を介して接続されており、制御装置10から機器20へ制御信号を出力、送信等することによって機器20の動作を制御する。制御装置10は、機器20の状態や動作環境に応じて機器20が目標とする状態となるように制御する。一般に動作環境等に応じて機器20を制御する場合、例えば、温度が「X1」度以上になったら制御「A1」を行い、「X2」度以上になったら制御「A2」を行うといったように、制御装置10は、所定の環境情報(例えば、周囲の温度等)を所定のルールに基づいて判定し、次に行うべき制御を決定する(IF−THENルールによる制御)ことが多い。本実施形態の制御装置10は、従来のルールベースで決定された制御の枠組みの中で、さらに実環境に応じたより好ましい制御(例えば、効率が良い、損失が少ない、安全性が高い、ユーザにとって望ましい、など)を実行する機能を備える。機器20は、例えば、自動運転車、無人航空機(AAV:Automated Aerial Vehicle)などの無人で動作する機器である。
【0020】
図1に示すように制御装置10は、センサ情報取得部11と、行動選択部12と、パラメータ算出部13と、行動指示部14と、記憶部15とを備える。
センサ情報取得部11は、機器20の状態や動作環境についてセンサ30が検出した情報(環境情報)を取得する。センサ30とは、例えば、カメラ、レーダ、レーザレーダ、3軸慣性センサ、GPS(Global Positioning System)受信機、加速度センサ、温度センサ、気圧センサ、電流センサ、回転センサなどである。
【0021】
行動選択部12は、環境情報に基づいて、IF−THENルール等のルールベースで機器20が行うべき動作や行動の枠組み、種類を決定する。
【0022】
パラメータ算出部13は、環境情報と、環境情報に基づく機器20の行動およびその行動の結果に対する評価を学習することによって構築された学習モデルと、に基づいて、行動選択部12が選択した行動の枠組みにおける行動の詳細な内容を決定する。パラメータ算出部13は、算出部131と、学習部132とを備える。算出部131は、環境情報に応じた適切な行動の内容を定めるパラメータ(以下、行動パラメータと記載)を学習モデルに基づいて算出する。学習部132は、算出部131が算出した行動パラメータを用いて実行された機器20の行動およびその行動の結果に対する評価を学習して学習モデルを更新する。例えば、学習モデルには、行動パラメータを算出するためのモデル(アクターモデル)、その行動パラメータに基づく行動を実環境に対して行った結果を評価するためのモデル(クリティックモデル)が含まれており、学習部132は、DDPG(Deep Deterministic Policy Gradient)により学習モデル(アクターモデル、クリティックモデル)の更新を行う。なお、パラメータ算出部13の動作は、学習モードと非学習モードとを切り替えることができる。これにより、例えば、学習に適さない環境では学習を停止することができる。
【0023】
行動指示部14は、パラメータ算出部13(算出部131)が算出した行動パラメータに基づいて制御信号を生成し、その制御信号を機器20に出力する。これにより、行動指示部14は、行動選択部12が選択した行動の枠組みの範囲内で、パラメータ算出部13により最適化された行動を機器20に実行させる。
記憶部15は、センサ情報取得部11が取得した環境情報や学習モデルなど種々の情報を記憶する。
【0024】
次に
図2を用いて、制御装置10による機器20の制御について説明を行う。
図2は、本発明の第一実施形態の無人システムによる制御を説明する第1の図である。
まず、センサ30が、機器20の状態や機器20の動作環境の状態を計測し、計測した環境情報を制御装置10へ出力する。制御装置10では、センサ情報取得部11が環境情報を取得し、行動選択部12、パラメータ算出部13、行動指示部14に出力する。
次に行動選択部12は、IF−THENルールに基づいて、環境情報に応じた行動を選択する。行動選択部12は、選択した行動の枠組みをパラメータ算出部13に出力する。
【0025】
次にパラメータ算出部13は、選択した行動の枠組みにおける行動パラメータを環境情報と学習モデルに基づいて算出する。例えば、学習モデルは、環境情報を入力すると、実環境に応じた最適な行動を実行するための行動パラメータを出力するよう構築されている。パラメータ算出部13(算出部131)は、学習モデルに環境情報を入力する。パラメータ算出部13は、環境情報に対して学習モデルが出力した行動パラメータを行動指示部14に出力する。
【0026】
行動指示部14は、パラメータ算出部13から取得した行動パラメータとセンサ情報取得部11から取得した環境情報とに基づいて、行動パラメータが示す行動を実行するための制御信号を生成し、機器20へ出力する。機器20は、制御信号に従って行動する。この行動により、実環境は変化する。すると、センサ30は、再び実環境の状態を計測して、制御装置10は、新たに計測された環境情報に基づいて、ルールベースによる行動の枠組みの選択、その枠組みにおける行動パラメータの算出、行動指示、機器20による行動というプロセスを繰り返す。
【0027】
一般的な機器20の制御では、例えば、エキスパートシステムのようなIF−THENルールに基づいて行動の内容を定めるパラメータが決定されることが多い。しかし、エキスパートシステムといえども、あらゆる状況に対応し得るだけのルールを設定することは現実的ではない。そこで本実施形態では、ルールベースによって制御の枠組みを決定することを基本とし、そのルール内の可変パラメータについては、強化学習によって獲得する。これにより、実環境に応じてパラメータを可変とすることができ、より現実に適した制御を行うことができる。これにより、全てのパラメータをIF−THENルールで定めておく場合と比べ、機器20の個体差や使用環境などの違いに対応し、制御の目標やユーザの好みにより即した制御を実現することができる。また、可変パラメータの学習にはディープラーニング(例えば、ニューラルネットワーク、以下NNと記載する場合がある。)を用いる。例えば、システム制御の分野でも可変ゲインのような考え方は存在するが、人がパラメータテーブルを事前に用意する必要がある。しかし、ディープラーニングを用いれば、学習すべき項目を人が設計する必要が無く、対象の特性を自動的に見出し、モデルを構築することができる。これにより、人が気付くことができない特性を学習し、より良い可変パラメータを出力することができる有用な学習モデルを構築できる可能性がある。
【0028】
また、ルールベースに基づく行動の決定は、その行動生成の根拠が、例えばIF−THEN形式の条件分岐で明示されているので可読性に優れ、人が理解しやすいという利点がある。その為、機器20が起こす行動は予測し易く、人との協働など実社会へ適用するうえで安心して用いることができる。一方、ディープラーニングに基づく行動の決定は、行動生成の根拠をユーザが知ることが難しい。その為、例えば、学習モデルを構築したときと同様の環境で使用するのであれば、機器20の制御をその学習モデルに任せてもよい。しかし、実環境では様々な予期しない現象が起こり得るため、どのような行動を起こすかが分からないまま、機器20の制御を学習モデルに任せることはできない場合がある。しかし、本実施形態のルールベースとニューラルネットワークを併用した技術であれば、人が理解できるルールベースで行動の枠組みを決めることができるため、機器20の行動が人の予測から大きく外れることが無く、安心して用いることができる。また、行動の内容を定める可変パラメータについては、強化学習により、実環境に応じて最適化された値を学習するので、より良い行動を引き出すことができる。
【0029】
次にパラメータ算出部13の一例について説明する。
図3は、本発明の第一実施形態の無人システムによる制御を説明する第2の図である。
上記のとおり、パラメータ算出部13は、学習モデルと環境情報に基づいて行動パラメータを算出する算出部131と、学習モデルを更新する学習部132とを備える。一つの例では、Deep Deterministic Policy Gradient (DDPG)を適用してパラメータ算出部13を実現することが可能である。DDPGは、ディープラーニングを使った強化学習の手法である。DDPGでは、行動(方策)を選択するアクターと、選択された行動やその行動によって生じた状態を評価するクリティックを用いる。アクターとクリティックはそれぞれ独立したニューラルネットワークである。上記の学習モデルは、アクターのNNおよびクリティックのNNを含む。算出部131は、アクターのNNに基づいて行動の選択、つまり行動パラメータの算出を行い、行動指示部14が機器20へ行動パラメータに基づく行動を指示する。学習部132は、その行動の結果生じた環境情報に基づいて報酬を設定し、アクターのNNおよびクリティックのNNを更新する。具体的な更新処理の例については後述する(第四実施形態)。報酬に基づいて学習モデル(アクターのNNおよびクリティックのNN)を更新する処理が強化学習に相当し、実際に行動を生成して実環境に反映し、その結果を方策関数(アクターのNN)にフィードバックすることで,徐々に良い行動を生成できるようになる。
【0030】
本実施形態の無人システム1によれば、従来のルールベースの利点である行動生成の根拠の理解容易性と、強化学習の利点である性能向上とを両立することができる。また、従来のエキスパートシステムと異なり、制御における可変パラメータを学習により自動的に獲得することができる。
また、機器20の運転と並行して学習モデルの更新を継続的に行うことで、機器20の経年変化などを反映した精度の高い学習モデルを維持し続けることで、継続的に機器20の性能を引き出すことができる。
【0031】
<第二実施形態>
以下、本発明の第二実施形態による無人システムについて
図4〜5を参照して説明する。第二実施形態では、第一実施形態を拡張し、計測できない情報が行動パラメータの決定に必要な場合に、その情報を推定する機能を備えた無人システム1A、制御装置10Aを提供する。
【0032】
図4は、本発明の第二実施形態による無人システムのブロック図である。
第二実施形態に係る構成のうち、第一実施形態に係る無人システム1に含まれる構成と同じものには同じ符号を付し、それらの説明を省略する。第二実施形態に係る無人システム1Aは、制御装置10Aと、機器20と、センサ30とを含む。制御装置10Aは、第一実施形態の構成に加えて、状態推定部16を備えている。状態推定部16は、センサ情報取得部11が取得した環境情報に基づいて、機器20の状態や運転環境の状態を推定する。
【0033】
図5は、本発明の第二実施形態の無人システムによる制御を説明する図である。
まず、センサ30が実環境の状態を計測し、環境情報を制御装置10Aへ出力する。制御装置10Aでは、センサ情報取得部11が環境情報を取得し、行動選択部12、パラメータ算出部13、行動指示部14、状態推定部16に出力する。
状態推定部16は、環境情報に基づいて、制御に必要な情報(推定状態情報)を推定する。例えば、制御装置10Aが車両の自動運転を制御する場合、状態推定部16は、交差点の死角など、車両が備えるセンサの計測範囲外にいる他車両の位置を推定する。このようにして推定された推定状態情報に対して報酬を与えつつ繰り返し学習すると、例えば、制御装置10Aの学習モデルは、死角の多い交差点に侵入した際に速度を落とすという行動の行動パラメータを獲得できる可能性がある。状態推定部16は、推定した推定状態情報を、行動選択部12、パラメータ算出部13、行動指示部14に出力する。
【0034】
以下の処理の流れは、第一実施形態と同様である。まず、行動選択部12は、環境情報および推定状態情報の少なくとも一つを用い、IF−THENルールに基づいて行動の枠組みを選択する。次にパラメータ算出部13は、環境情報および推定状態情報の少なくとも一つを学習モデル(アクターのNN)に入力して、行動パラメータを算出する。次に行動指示部14は、行動パラメータに基づく制御信号を生成し機器20を制御する。また、パラメータ算出部13は、今回の行動の結果を示す環境情報や推定状態情報を取得して、行動を評価し、学習モデルを更新する。
【0035】
本実施形態によれば、計測できない、計測できるが誤差を含む環境の状態を推定して、制御および学習モデルの更新に利用することができる。また、例えば、状態推定部16が将来の状態を予測することにより、例えば、先読み行動の行動パラメータを学習できる可能性がある。
【0036】
<第三実施形態>
以下、本発明の第三実施形態による無人システムについて
図6〜8を参照して説明する。第三実施形態では、IF−THENルールで切り替え可能な複数の行動のそれぞれについて、行動パラメータを算出する方法を提供する。第一実施形態の構成では,行動が環境に反映されたその結果をフィードバックする必要がある。しかしIF−THENルールで行動を切替える場合、選択されなかった行動までも学習してしまうと、行動と評価が合致しない可能性がある。そこで、本実施形態では、まず、IF−THENルールで行動選択を行い、その選択に応じて行動別に用意されたパラメータ算出部に切り替える。つまり、N個の行動別に独立したパラメータ算出部N個を用意しておき、選ばれた行動についてのみ学習を行うよう構成する。
【0037】
図6は、本発明の第三実施形態による無人システムのブロック図である。
第三実施形態は、第一実施形態および第二実施形態の何れとも組み合わせることが可能であるが、ここでは第二実施形態と組み合わせた場合の構成を例に説明を行う。また、本発明の第三実施形態に係る構成のうち、第二実施形態に係る無人システム1Aに含まれる構成と同じものには同じ符号を付し、それらの説明を省略する。第三実施形態に係る無人システム1Bは、制御装置10Bと、機器20と、センサ30とを含む。制御装置10Bは、第二実施形態の構成に代えて、パラメータ算出部13B、行動指示部14Bを備える。ここで、IF−THENルールによって選択される行動の枠組みの種類はnパターンあるとする。パラメータ算出部13Bは、行動1のパラメータ算出部13B1〜行動mのパラメータ算出部13Bm(m≦n)を備える。行動1のパラメータ算出部13B1は、行動1の算出部131B1、行動1の学習部132B1を備える。行動2のパラメータ算出部13B2〜行動mのパラメータ算出部13Bmについても同様である。行動指示部14Bは、行動1の行動指示部14B1〜行動nの行動指示部14Bnを備える。また、制御装置10Bは、切替部17をさらに備える。
【0038】
行動1のパラメータ算出部13B1〜行動mのパラメータ算出部13Bmは、それぞれ行動の枠組み「行動1」〜「行動m」のために用意されたものである。行動1のパラメータ算出部13B1等は、第一実施形態のパラメータ算出部13に相当する機能を有している。つまり、行動1のパラメータ算出部13B1(行動1の算出部131B1)は、行動の枠組み「行動1」用の行動パラメータを算出する。また、行動1のパラメータ算出部13B1(行動1の学習部132B1)は、行動の枠組み「行動1」用の学習モデル(「行動1」用のアクターのNNおよび「行動1」用のクリティックのNN)を有し、これらのニューラルネットワークを更新する。行動2のパラメータ算出部13B2〜行動mのパラメータ算出部13Bmについても同様である。
【0039】
パラメータ算出部13Bが行動1のパラメータ算出部13B1〜行動mのパラメータ算出部13Bm(m≦n)を有するのは、パラメータ算出部13Bが全ての行動の枠組み(n種類)に対して用意されていなくても良いことを意味する。つまり、行動の枠組みの中には、ルールベースで行動パラメータが決定されるものがあっても良い。
【0040】
行動1の行動指示部14B1〜行動nの行動指示部14Bnは、それぞれ行動の枠組み「行動1」〜「行動n」のために用意されたものである。行動1の行動指示部14B1等は、第一実施形態の行動指示部14に相当する機能を有している。つまり、行動1の行動指示部14B1は、行動の枠組み「行動1」用の行動パラメータに基づく制御信号を生成し、機器20へ出力する。行動2の行動指示部14B2〜行動nの行動指示部14Bnについても同様である。行動指示部14Bは、行動1の行動指示部14B1等を行動の枠組みのパターンの数(n個)だけ有している。
【0041】
切替部17は、行動選択部12が選択した行動iに対応する行動iのパラメータ算出部13Bi、行動iの行動指示部14Biを選択し、選択した行動iのパラメータ算出部13Bi、行動iの行動指示部14Bi等に制御を切り替える(但し、行動iのパラメータ算出部13Biは存在しない場合がある)。すなわち、行動iが選択されたとき、行動iのパラメータ算出部の学習のみを行い,行動j≠iのパラメータ算出部13Bjの学習モデルについての学習は行わない。
【0042】
次に
図7、
図8を用いて、制御装置10Bによる機器20の制御について説明を行う。
図7は、全ての行動の枠組みに対してパラメータ算出部13Bが設けられている場合の構成例、
図8は、一部の行動の枠組みに対してのみパラメータ算出部13Bが設けられている場合の構成例を示している。
【0043】
図7は、本発明の第三実施形態の無人システムによる制御を説明する第1の図である。
まず、センサ30が実環境の状態を計測し、環境情報を制御装置10Bへ出力する。制御装置10Bでは、センサ情報取得部11が環境情報を取得し、その環境情報を行動選択部12B、パラメータ算出部13B、行動指示部14Bに出力する。また、必要に応じて図示しない状態推定部16が推定状態情報を推定し、その推定状態情報を行動選択部12B、パラメータ算出部13B、行動指示部14Bに出力する。
次に行動選択部12は、環境情報や推定状態情報とIF−THENルールとに基づいて、行動の枠組みを選択する。
【0044】
行動選択部12は、選択の結果を切替部17(
図7の「切り替えスイッチ」)へ出力する。切替部17は、行動選択部12の選択結果に従って、制御器(行動iのパラメータ算出部13i、行動iの行動指示部14Bi)を切り替える。例えば、行動選択部12が「行動1」を選択した場合、切替部17は、制御器を行動1のパラメータ算出部13B1へ切り替える。例えば、行動選択部12が「行動2」を選択した場合、切替部17は、制御器を行動2のパラメータ算出部13B2へ切り替える。行動選択部12が「行動n」を選択した場合、切替部17は、制御器を行動nのパラメータ算出部13Bnへ切り替える。
【0045】
行動1のパラメータ算出部13B1へ切り替えられた場合、パラメータ算出部13B1は、「行動1」の行動パラメータを、環境情報や推定状態情報と行動1の学習モデルとに基づいて算出する。パラメータ算出部13B1は、行動パラメータの値を行動指示部14B1に出力する。
行動1の行動指示部14B1は、環境情報(必要に応じて推定状態情報)と行動パラメータに基づく制御信号を生成し、機器20へ出力する。
また、「行動1」について学習モードとなっている場合、パラメータ算出部13B1は、今回の行動の後にセンサ情報取得部11が取得した環境情報や、推定状態情報に基づいて今回の行動を評価し、より良い行動が可能となるように行動1の学習モデルを更新する。
【0046】
行動選択部12が、「行動2」、「行動n」を選択した場合も同様である。例えば、行動選択部12が「行動2」を選択した場合、行動2のパラメータ算出部13B2が「行動2」の行動パラメータの算出や行動2の学習モデルの更新を行う。行動2の行動指示部14B2は、行動2のパラメータ算出部13B2が算出した行動パラメータに基づき機器20の制御を行う。
【0047】
図8は、本発明の第三実施形態の無人システムによる制御を説明する第2の図である。
図8に示す制御装置10Bにおいても、
図7で説明した処理と同様の流れで機器20の制御を行う。しかし、
図8に示す制御装置10Bは、行動2のパラメータ算出部13B2、行動nのパラメータ算出部13Bnを備えていない。
図8の構成では、行動選択部12が「行動2」を選択した場合、行動2の行動指示部14B2が、所定のルールに基づいて「行動2」用の制御信号を生成し、機器20を制御する。また、行動選択部12が「行動n」を選択した場合、行動nの行動指示部14Bnが、所定のルールに基づいて「行動n」用の制御信号を生成し、機器20を制御する。
【0048】
本実施形態によれば、複数の行動のそれぞれについて、最適な行動パラメータを強化学習により獲得することができる。また、全ての行動について、行動パラメータの最適な値を学習する必要がない場合、
図8のように必要な行動についてのみ行動iのパラメータ算出部13Biを用意することができる。これにより、制御装置10Bの処理負荷を軽減し、必要なコンピュータリソースを節約しつつ、最適な行動パラメータの獲得によって機器20の挙動を改善することができる。
【0049】
<第四実施形態>
第四実施形態では、第一実施形態〜第三実施形態における行動パラメータ算出のための学習モデルの更新処理の一例を提供する。以下、第二実施形態の構成を例として、
図9を用いてパラメータ算出部13をDDPGにより実現する方法を説明する。
図9は、本発明の第四実施形態の制御装置による学習モデルの更新処理の一例を示すフローチャートである。
まず、行動選択部12が状態情報(環境情報、推定状態情報)に応じた行動の枠組みを選択し、算出部131が、その枠組みにおける行動a(k)を状態情報と学習モデル(アクターのNN)に基づいて算出する(ステップS11)。具体的には、算出部131が以下の式(1)によりa(k)を算出する。
a(k)=μ(s(k)|w)+n(k) ・・・(1)
ここで、μは、現在時刻kにおける状態ベクトルs(k)を入力とし、重みwを持つ多層ニューラルネットワークである。活性化関数には、例えば、ReLUを適用する。μ(s(k)|w)は、確定的な値であるが,右辺第二項n(k)(例えば、平均0、分散Σの白色ガウス雑音)の影響により、行動a(k)は、ばらつきを持った値となる。算出部131は、行動a(k)(行動パラメータ)を行動指示部14へ出力する。
【0050】
次にパラメータ算出部13は、学習モードか否かの判定を行う(ステップS12)。例えば、ユーザが制御装置10Aに学習モードか否かの設定を行う。その設定に基づいて、パラメータ算出部13は、ステップS12の判定を行う。学習モードの場合(ステップS12;Yes)、行動指示部14は、行動a(k)に基づき機器20を制御する。つまり行動a(k)を実行し、環境に変化を起こす。次にセンサ30が実環境を計測し、センサ情報取得部11が環境情報を取得する。学習部132は、環境情報や状態推定部16による推定状態情報に基づいて報酬r(k)を獲得する(ステップS13)。報酬r(k)は、時刻kにおける状態s(k)に対して設定される値である。定性的には、望ましい状態s(k)に対しては、例えば正の報酬を設定し、望ましくない状態s(k)に対しては負の報酬を設定する。
【0051】
次にセンサ30が実環境を計測し、センサ情報取得部11が次の時刻k+1の環境情報(状態ベクトルs(k+1))を取得する。または、状態推定部16が時刻k+1における状態s(k+1)を推定する。パラメータ算出部13は、状態s(k+1)等を、変数Rに保存する(ステップS14)。より具体的には、学習部132は、状態s(k)と行動a(k)と報酬r(k)と状態s(k+1)とを組みとするデータセットを、過去の情報格納用変数Rに追加して、記憶部15に記録する。
【0052】
次に学習部132は、変数RからランダムにP個のデータを抽出する(ステップS15)。このように抽出したP個のデータセット(s(i),a(i),r(i),s(i+1))、i=1,2,・・・,Pをミニバッチとよぶ。
【0053】
次に学習部132は、以下の式(2)により価値y(i)を算出する(ステップS16)。
y(i)=r(i)+γQ´(s(i+1),μ´(s(i+1)|w´)|w
Q´),
i=1,2,・・・,P ・・・(2)
ここで、Qは状態価値関数であり、上式(2)の通り状態sと行動μを入力とする。DDPGでは行動と同様に状態価値もニューラルネットワークでモデル化して、重みw
Qを更新して推定する。上式のQ´はターゲットネットワークとよばれるニューラルネットワークであり、w
Q≠w
Q´である。同様にμ´は行動のニューラルネットワークμのターゲットネットワークであり、w≠w´である。なお、QはクリティックのNN、μはアクターのNNである。
【0054】
次に学習部132は、クリティックのNNを更新する(ステップS17)。具体的には、学習部132は、以下の式(3)で表される損失関数を最小化するように状態価値関数の重みw
Qを更新する。この最小化は、勾配降下法やAdamなどの公知の方法を用いて実行することができる。
【0056】
次に学習部132は、アクターのNNを更新する(ステップS18)。具体的には、学習部132は、上述の方針で更新したQを評価指標とし、勾配降下などの公知の方法を用いて以下の式(4)によってμの重みwを更新する。
【0058】
次に学習部132は、ターゲットネットワークを更新する(ステップS19)。具体的には、学習部132は、ターゲットネットワークを以下の式(5)により更新する。
w´=τw+(1−τ)w´、w
Q´=τw
Q+(1−τ)w
Q´・・・(5)
現在のアクターのNNの重みw、クリティックのNNの重みw
Qとの荷重平均により更新することで、重みの急激な変化を抑制する。これにより、アクターのNNの重み、クリティックのNNの重みが、それぞれw´、w
Q´に更新される。
【0059】
また、ステップS12で学習モードではないと判定した場合(ステップS12;No)、行動指示部14は、行動a(k)に基づき機器20を制御する。また、センサ情報取得部11は、センサ30が計測した環境情報や状態推定部16による推定状態情報(時刻k+1における状態s(k+1))を取得する。
次に機器20の制御を終了するか否かを判定し(ステップS21)、制御を終了する場合(ステップS21;Yes)、本フローチャートを終了する。終了しない場合(ステップS21;No)、ステップS11からの処理を繰り返す。
【0060】
本実施形態によれば、従来はIF−THENルールに基づいて決定されることが多い行動パラメータを状態に応じて最適な値とすることができる。その為、従来のルールベースよりも無人システムの性能を改善できる。また、行動パラメータを決定する学習モデルの構築に深層学習を用いることにより、学習すべきパラメータを人が設計する必要がなく自動的に獲得でき、さらに特に人が設計するのが困難な複雑なパラメータ、人が気付くことができないパラメータを獲得し、より精度の高い学習モデルを得ることができる。
【0061】
<第五実施形態>
次に第一実施形態〜第四実施形態で説明した行動パラメータの算出および学習方法を、無人航空機(AAV:Automated Aerial Vehicle)の自動運転に適用した具体例を示す。
図10は、本発明の第五実施形態による無人システムの一例を示す図である。
AAV20´は、センサ30を備えている。センサ30は、例えば、障害物の検知に用いるカメラやレーザレーダ、計画した経路を所望の速度で移動するために必要なGPS、ジャイロセンサ、大気圧センサ、加速度センサなどである。制御装置10Bではセンサ情報取得部11が、カメラやレーザレーダが計測した環境情報を取得する。センサ情報取得部11は、例えば、カメラが撮影した画像を解析して、画像に含まれる障害物の存在を検出する機能や、レーザを照射してから反射光を受光するまでの時間を計測する機能を有していてもよい。
【0062】
また、例えば、状態推定部16は、GPSによる位置情報に含まれる誤差の平滑化や、計測のインターバルにおける位置情報の推定のために、カルマンフィルタによってAAV20´の位置情報を推定してもよい。これにより、より正確な状態を反映させた学習モデルの構築、より精度の高い学習モデルに基づく行動パラメータの算出を行うことができる。あるいは、GPS信号が受信できない環境の場合、状態推定部16は、レーザレーダやカメラが計測した情報を用いて、SLAM(Simultaneous Localization and Mapping)等の方法により自己位置を推定してもよい。これにより、制御装置10Bは、GPSによる自己位置の測位ができない環境でも、AAV20´を制御することができる。
【0063】
行動選択部12は、環境情報に基づいて、「直進」、「旋回」、「ホバリング」などの行動の枠組みを選択する。例えば、レーダの検出結果が障害物の存在を示している場合、行動選択部12は、その障害物を回避すべく「旋回」を選択する。その場合、パラメータ算出部13Bは、例えば、行動パラメータ「旋回半径」を算出する。行動指示部14Bは、パラメータ算出部13が算出した旋回半径で旋回するための制御信号(例えば、旋回する側の前翼(プロペラ)の回転数をどの程度上昇させ、逆側の前翼の回転数をどの程度低下させるかなど)を生成し、AAV20´に出力する。
【0064】
パラメータ算出部13Bが算出する行動パラメータは、行動選択部12が選択する行動の枠組みの中の一部に関する行動パラメータであってよい。例えば、AAV20´の旋回において行動パラメータ「旋回半径」についてはパラメータ算出部13Bが決定するが、行動パラメータ「旋回開始タイミング」についてはルールベースで決定しても良い。また、次に例を挙げて説明するようにパラメータ算出部13Bが算出するのは、行動選択部12が選択する行動の枠組みの中の行動パラメータについての補正量であってもよい。
【0065】
制御装置10Bは、「旋回」についてのみパラメータ算出部13Bを備え、「直進」、「ホバリング」などの他の行動については、行動指示部14Bがルールベースで所定の動作内容を指示する。なお、制御装置10Bは、AAV20´に内蔵されていてもよい。
【0066】
図11は、本発明の第五実施形態による無人システムの制御方法の一例を示すフローチャートである。
具体例として、AAV20´を、障害物を行動「旋回」によって回避しながら目標地点まで自動飛行させる制御を考える。なお、制御装置10Bは、AAV20´の自動運転に必要な種々の行動を行う機能を有しているが、旋回以外の説明を省略する。
まず、制御装置10Bに目標地点の位置情報を入力し、自動運転を開始する(ステップS31)。すると、制御装置10Bは、始点から終点までのAAV20´の飛行経路を生成する(ステップS32)。その後、制御装置10Bは、AAV20´の飛行を開始する。センサ情報取得部11は、例えば、AAV20´が備えるGPS受信機からAAV20´の位置情報を取得する。行動選択部12は、AAV20´が終点に到着したかどうかを判定する(ステップS33)。終点に到着した場合(ステップS33;Yes)、行動選択部12は、自動運転終了を選択し、行動指示部14Bが自動運転を終了する(ステップS34)。
【0067】
終点に到着していない場合(ステップS33;No)、センサ情報取得部11が、カメラ、レーザレーダ、GPS、ジャイロセンサ、大気圧センサ、加速度センサなどのセンサ30から環境情報を取得する(ステップS35)。行動選択部12は、カメラやレーザレーダが計測した環境情報や状態推定部16による推定状態情報に基づいて、経路上に障害物が存在するかどうかを判定する(ステップS36)。障害物が存在しない場合(ステップS36;No)、行動選択部12は、経路追従制御により、例えば、行動の枠組み「直進」を選択する。すると、行動指示部14B(「直進」についてはパラメータ算出部13Biが用意されていない)が、AAV20´をそのまま生成した経路に従って直進させる。例えば、行動指示部14Bは、GPS、ジャイロセンサ、大気圧センサ、加速度センサなどが計測した環境情報などを用いて、所定の高度、所定の姿勢、所定の飛行速度を維持しつつ、ステップS32で生成した経路に追従して飛行するような制御信号を生成し、AAV20´を制御する(ステップS38)。
【0068】
障害物が存在する場合(ステップS36;Yes)、行動選択部12は、行動の枠組み「旋回」を選択する。すると、パラメータ算出部13Bが回避経路を生成する(ステップS37)。回避経路の生成では、旋回半径をAAV20´と障害物との距離に応じて変化させ、距離が近ければ近いほど急旋回(旋回半径が小さい)で回避させるとする。ここで、
図11を用いて旋回半径の決定処理について説明する。
【0069】
図12は、本発明の第五実施形態による行動パラメータの決定処理を説明する図である。障害物との距離に対する旋回半径の初期値を、
図11の初期テーブルのグラフ「初期テーブル」に示す。ただし、この初期値は、現在の運転において必ずしも適切な値であるとは限らない。そこで、パラメータ算出部13Bによって、実際に自動運転を行う中で学習を繰り返し、その結果に応じて初期テーブルの旋回半径を補正することを考える。補正後のAAV20´と障害物の距離と旋回半径との関係を、グラフ「学習後のテーブル」に示す。このときの補正量をa(k)=μ(s(k)|w)+n(k)として設定し、旋回半径f(k)=f_0(s(k))+a(k)として回避経路を生成して自動運転を行う。ここで、f_0(s(k))はグラフ「初期テーブル」である。これに対して、第四実施形態で説明した方法で、行動a(k)(この例では旋回半径の補正量)を、例えば、障害物を回避した後になるべく早く、無理なく当初生成した経路に戻ることができたときの旋回半径に良い報酬を与える等の報酬の設定を行って、初期テーブルの補正量の学習モデルを更新する。補正後の旋回半径がグラフ「学習後のテーブル」である。パラメータ算出部13Bは、このようにして学習した学習後の旋回半径を採用して、回避経路を生成する。行動指示部14Bは、この回避経路に沿ってAAV20´を飛行させる。
【0070】
第五実施形態で例示したようにある行動パラメータ(旋回半径)について。初期テーブルを用意し、補正量を学習するように構成することで、初期値を与えない場合と比べ、短時間で学習を収束させられる可能性がある。
【0071】
上記の
図11の説明では、「旋回」についてのみ行動パラメータを算出こととしたが、「直進」や「ホバリング」など他の全ての行動についても行動パラメータを算出する構成としてもよい(
図7)。また、AAV20´の自動運転に第一実施形態の無人システム1や、第二実施形態の無人システム1Aを適用することができることは勿論である。
【0072】
図13は、本発明の第一実施形態〜第五実施形態における制御装置のハードウェア構成の一例を示す図である。
コンピュータ900は、CPU(Central Processing Unit)901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備えるコンピュータ装置である。コンピュータ900は、CPU901に代えて、MPU(Micro Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサを備えていてもよい。上述の制御装置10、10A、10Bは、コンピュータ900に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶部15に対応する記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
【0073】
なお、少なくとも1つの実施形態において、補助記憶装置903は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、入出力インタフェース904を介して接続される磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置903に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0074】
制御装置10等の機能の全て又は一部は、マイコン、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field-Programmable Gate Array)等のハードウェアを用いて実現されてもよい。
【0075】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
なお、切替部17は第1の切替部、第2の切替部の一例である。行動指示部14Bi(1≦i≦n)のうち対応するパラメータ算出部13Biが存在しないものは動作制御部の一例である。環境情報と推定状態情報は状態情報の一例である。行動選択部12は動作選択部の一例である。パラメータ算出部13、13Bは動作パラメータ算出部の一例である。行動指示部14、14Bは動作指示部の一例である。
【0076】
第一実施形態〜第四実施形態の制御装置の適用先は、航空機、車両、船、鉄道などの移動体に関する無人システムに限定されない。例えば、第一実施形態〜第四実施形態の制御装置は、プラント等の機器(タービン、ボイラー、圧縮機など)の制御に用いることができる。これらの機器の制御においても、制御(意思決定)の予測可能性・理解容易性と、状況への制御の適応性、最適性、性能向上を両立させることができる。
【0077】
また、上記の制御装置10における行動パラメータ算出の基本的な考え方は、実際の機器の制御を伴わなくとも、意思決定システムに用いることができる。例えば、意思決定システムは、意思決定に必要なパラメータを入力し、ルールベースで意思決定の枠組みを決定し、その枠組みの中の可変パラメータについては、強化学習により構築された学習モデルによって決定する。また、意思決定システムは、このようにして決定された意思決定の結果を評価し、学習モデルを更新する。例えば、意思決定システムとして、将棋を指すコンピュータ装置へ適用した場合であれば、センサ情報取得部11に相当する機能が将棋盤の駒の配置情報を取得し、行動選択部12に相当する機能が歩・飛車などの動かす駒の種類を決定し,行動指示部14に相当する機能は,その駒を何マス動かすかを数式等によって具体的に決める。また、パラメータ算出部13に相当する機能は、その数式等をより高精度に調整する。