(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】移動体制御装置、移動体制御方法、移動体制御システム及び移動体制御プログラム
(51)【国際特許分類】
G05D 1/43 20240101AFI20241210BHJP
【FI】
G05D1/43
(21)【出願番号】P 2022553318
(86)(22)【出願日】2020-09-30
(86)【国際出願番号】 JP2020037196
(87)【国際公開番号】W WO2022070324
(87)【国際公開日】2022-04-07
【審査請求日】2023-03-10
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】安田 真也
【審査官】松本 泰典
(56)【参考文献】
【文献】特開平8-16240(JP,A)
【文献】国際公開第2012/086029(WO,A1)
【文献】国際公開第2013/002067(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
第1の制御入力値に基づき移動体を制御するロボット制御部と、
次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出部と、を有し、
前記制御入力算出部は、
前記第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって複数の経路コストを算出し、前記複数の経路コストのうち最も経路コストが小さくなる前記第2の制御入力値を算出する移動体制御装置。
【請求項2】
前記制御入力算出部は、
前記予想制御入力値を生成して、前記予想制御入力値に対応する前記
複数の経路コストを算出する経路コスト算出部と、
前記
複数の経路コスト
のうち最も経路コストが小さくなる前記第2の制御入力値を算出する制御入力決定部と、
を有する請求項1に記載の移動体制御装置。
【請求項3】
前記経路コスト算出部は、
現制御サイクルの前記第1の制御入力値に基づき前記予想制御入力値を生成する制御入力列生成部と、
前記予想制御入力値に対して疑似乱数パターンを適用した確率変動シミュレーションを異なる疑似乱数パターンを用いて複数回行い、複数の前記確率変動シミュレーションのそれぞれにおいて前記移動体の走行状態を判断する指標となる予測コストを算出する確率変動シミュレーション処理部と、
複数の前記確率変動シミュレーションにおいて生成された複数の前記予測コストを用いて前記経路コストを算出するコスト推定部と、有し、
前記確率変動シミュレーション処理部は、
それぞれが複数の前記確率変動シミュレーションのいずれか1つを実行する複数のシミュレーション実行部と、
前記複数のシミュレーション実行部のうち対応する前記シミュレーション実行部で算出されたシミュレーション結果について前記予測コストを算出する複数のコスト計算部と、
を有する請求項2に記載の移動体制御装置。
【請求項4】
前記制御入力算出部は、
前記移動体の位置情報を取得する位置情報取得部を有し、
前記複数のシミュレーション実行部は、前記位置情報に基づき特定される前記移動体の位置に基づき前記予測コストを算出する請求項3に記載の移動体制御装置。
【請求項5】
前記予想制御入力値は、時間的に異なる複数のタイミングの制御入力値の予測値を含む制御入力列であり、それぞれが異なる時間的変化を示す複数の前記制御入力列を含む請求項
3に記載の移動体制御装置。
【請求項6】
前記コスト推定部は、リスクに敏感な振る舞いをさせるリスクセンシティブ評価関数に基づき前記経路コストを算出する前記確率変動シミュレーション処理部のそれぞれから得られた複数の前記予測コストを適用して前記制御入力列毎に前記経路コストを算出するリスクセンシティブコスト推定部を有する請求項
5に記載の移動体制御装置。
【請求項7】
前記コスト推定部は、
リスクに敏感な振る舞いをさせるリスクセンシティブ評価関数をテイラー展開して得られる期待値項に前記確率変動シミュレーション処理部のそれぞれから得られた複数の前記予測コストを適用して前記制御入力列毎に期待値を算出する期待値推定部と、
前記リスクセンシティブ評価関数をテイラー展開して得られる分散項に前記確率変動シミュレーション処理部のそれぞれから得られた複数の前記予測コストを適用して前記制御入力列毎に分散値を算出する分散項推定部と、を有し、
前記期待値と前記分散値との加算結果を前記経路コストとして算出する請求項
5に記載の移動体制御装置。
【請求項8】
第1の制御入力値に基づき移動体を制御するロボット制御ステップと、
次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出ステップと、を有し、
前記制御入力算出ステップにおいて、
前記第1の制御入力値のあとに前記ロボット制御ステップに与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって複数の経路コストを算出し、前記複数の経路コストのうち最も経路コストが小さくなる前記第2の制御入力値を算出する移動体制御方法。
【請求項9】
第1の制御入力値に基づき移動体を制御するロボット制御部と、
次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出部と、を有し、
前記制御入力算出部は、
前記第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって複数の経路コストを算出し、前記複数の経路コストのうち最も経路コストが小さくなる前記第2の制御入力値を算出する移動体制御システム。
【請求項10】
現制御サイクルで移動体に与える第1の制御入力値のあとに前記移動体の制御に用いられると予想される第1の制御入力値の予測値である少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって複数の経路コストを算出し、前記複数の経路コストのうち最も経路コストが小さくなる第2の制御入力値を算出する制御入力算出処理と、
前記第2の制御入力値により設定される前記第1の制御入力値に基づき移動体を制御するロボット制御処理と、
を演算部の演算処理を用いて実行する移動体制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は移動体制御装置、移動体制御方法、移動体制御システム及び移動体制御プログラムが記録したコンピュータ読み取り可能な非一時的な記憶媒体に関し、特に、移動体の移動状態を指示する制御入力値を周期的に更新する移動体制御装置、移動体制御方法、移動体制御システム及び移動体制御プログラムが記録したコンピュータ読み取り可能な非一時的な記憶媒体に関する。
【背景技術】
【0002】
近年、障害物の状態が時々刻々に変化する場所において運用されるロボット等の移動体が提案されている。このような移動体では、予め最適な制御入力を決定することが出来ない問題がある。そこで、非特許文献1、2では、移動体が運用される場所の状態に応じて適用可能な制御技術が開示されている。
【0003】
非特許文献1では、周期的に繰り返される制御サイクル毎にシミュレーションを多数回実行し、各シミュレーションにおいて制御入力列を様々に変化させることでどういった入力すると最終的にコストが小さくなるかを探索する。そして、非特許文献1では、最終的にコストが最小となる制御入力列を構成する制御入力値の重み付き平均値を次制御サイクルの制御入力値とする。
【0004】
非特許文献2では、コスト関数として、コスト関数に数学的な処理を施してリスクに敏感な振る舞いをさせる(リスクセンシティブな)評価関数を用い、評価関数を最小化するためにどういった制御入力を与えればよいかを解析的に求める技術が開示されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】仲谷 真太朗, 伊達 央 「モンテカルロモデル予測制御法を用いた倒立振子振り上げ安定化における予測と分岐に関する考察」自動制御連合講演会講演論文集 Vol.61,pp. 423-427 (2018)
【文献】J. R. Medina and S. Hirche, “Considering Uncertainty in Optimal Robot Control Through High-Order Cost Statistics,” IEEE Transactions on Robotics, Vol. 34, No. 4, pp. 1068-1081 (2018).
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1に記載の技術では、実際と論理的な指示値との間に差が生じた場合(例えば、実際の移動体の速度と、制御入力値により指示した速度との間に差が生じた場合)に制御精度が維持できない問題がある。また、非特許文献2に記載の技術では搬送ロボットのような現実的な問題に適用するには数式が複雑になりすぎて解くことができないという問題がある。
【課題を解決するための手段】
【0007】
本発明にかかる移動体制御装置の一態様は、第1の制御入力値に基づき移動体を制御するロボット制御部と、次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出部と、を有し、前記制御入力算出部は、前記第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる前記第2の制御入力値を算出する。
【0008】
本発明にかかる移動体制御方法の一態様は、第1の制御入力値に基づき移動体を制御するロボット制御ステップと、次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出ステップと、を有し、前記制御入力算出ステップにおいて、前記第1の制御入力値のあとに前記ロボット制御ステップに与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる前記第2の制御入力値を算出する。
【0009】
本発明にかかる移動体制御システムの一態様は、第1の制御入力値に基づき移動体を制御するロボット制御部と、次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出部と、を有し、前記制御入力算出部は、前記第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる前記第2の制御入力値を算出する。
【0010】
本発明にかかる移動体制御プログラムが記録したコンピュータ読み取り可能な非一時的な記憶媒体の一態様は、現制御サイクルで移動体に与える第1の制御入力値のあとに前記移動体の制御に用いられると予想される第1の制御入力値の予測値である少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる第2の制御入力値を算出する制御入力算出処理と、前記第2の制御入力値により設定される前記第1の制御入力値に基づき移動体を制御するロボット制御処理と、を演算部の演算処理を用いて実行する。
【発明の効果】
【0011】
本発明にかかる移動体制御装置、移動体制御方法、移動体制御システム及び移動体制御プログラムが記録したコンピュータ読み取り可能な非一時的な記憶媒体によれば、実際と論理的な指示値との間に差によらず制御精度を高めることができる。
【図面の簡単な説明】
【0012】
【
図1】実施の形態1にかかる制御入力装置の概略図である。
【
図2】実施の形態1にかかる制御入力装置の動作を説明するフローチャートである。
【
図3】実施の形態1にかかる制御入力装置を用いた移動体の移動経路のシミュレーション結果である。
【
図4】実施の形態1にかかる制御入力装置を用いた移動体の速度変化のシミュレーション結果である。
【
図5】実施の形態2にかかる制御入力算出部のブロック図である。
【
図6】実施の形態2にかかる経路コスト算出部のブロック図である。
【
図7】実施の形態2にかかる確率変動シミュレーション処理部のブロック図である。
【
図8】実施の形態2にかかる制御入力算出部の動作を説明するフローチャートである。
【
図9】実施の形態2にかかる制御入力算出部で用いられる制御入力列の一例を示す図である。
【
図10】実施の形態2にかかる制御入力算出部で用いられる制御入力列の一例を示す図である。
【
図11】実施の形態3にかかる経路コスト算出部のブロック図である。
【
図12】その他の実施の形態にかかる移動体制御システムのブロック図である。
【
図13】その他の実施の形態にかかる移動体制御システムで用いられるハードウェア資源のブロック図である。
【発明を実施するための形態】
【0013】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0014】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0015】
実施の形態1
以下で説明する移動体制御装置は、ロボット等の移動体の速度、進行方向等を制御するが、以下の説明では、制御対象のパラメータを速度とした説明を行う。なお、制御対象のパラメータを変えることで移動体制御装置は、ロボットの進行方向、或いは、アームの移動等の他の制御を行うこともできる。
【0016】
図1に実施の形態1にかかる移動体制御装置1のブロック図を示す。
図1に示すように、実施の形態1にかかる移動体制御装置1は、制御入力算出部10、ロボット制御部11を有する。なお、移動体制御装置1は、所定の周期で繰り返し行われる制御サイクル毎に以下で説明する処理を行うが、本開示の内容は繰り返し行われる制御サイクル毎に行われる形態に限られるものではない。
【0017】
ロボット制御部11は、第1の制御入力値に基づき移動体を制御する。より具体的には、ロボット制御部11は、周期的に繰り返される制御サイクル毎に与えられる第1の制御入力値(例えば、速度指示値)に加えて移動体の進行方向を指示する方向指示値を移動体に与えることで移動体を制御する。
【0018】
制御入力算出部10は、次制御サイクルの第1の制御入力値となる第2の制御入力値を算出する。より具体的には、制御入力算出部10は、第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、経路コストが小さくなる第2の制御入力値を算出する。本開示において、入力値が構成する列(制御入力列)には、その列を構成する要素として、入力値が少なくとも1つ存在する場合を含む。
【0019】
ここで、実施の形態1にかかる移動体制御装置1の動作を説明する。そこで、
図2に実施の形態1にかかる制御入力装置の動作を説明するフローチャートを示す。実施の形態1にかかる移動体制御装置1では、周期的に制御サイクルを繰り返すことで移動体を制御するロボット制御部に与える第1の制御入力値を更新する。そして、実施の形態1にかかる移動体制御装置1では、動作開始時は、移動体に与える第1の制御入力値として予め設定した初期値を有する第1の制御入力値を移動体に与える。また、実施の形態1にかかる移動体制御装置1では、2回目以降の制御サイクルでは、制御入力算出部10が算出した第1の制御入力値をロボット制御部11に与える。つまり、移動体制御装置1では、まず、ロボット制御部11は、第1の制御入力値に従って移動体を制御する(ステップS1)。
【0020】
続いて、実施の形態1にかかる移動体制御装置1では、制御入力算出部10において次制御サイクルの第1の制御入力値となる第2の制御入力値を算出する。 具体的には、制御入力算出部10では、第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、経路コストが小さくなる第2の制御入力値を算出する。
【0021】
図2では、この制御入力算出部10の動作における確率的ノイズを加味したシミュレーションの一例を含む動作を示した。
図2に示す例では、制御入力算出部10は、第1の制御入力値のあとにロボット制御部11に与えられる予想制御入力値の列である制御入力列に対して疑似乱数パターンを適用したシミュレーションを用いて経路コストを算出する(ステップS2)。また、制御入力算出部10では、ステップS2で算出された経路コストから経路コストが小さくなる第2の制御入力値を算出する(ステップS3)。そして、制御入力算出部10では、ステップS3で算出された第2の制御入力値を次制御サイクルと第1の制御入力値とする(ステップS4)。
【0022】
続いて、実施の形態1にかかる移動体制御装置1を用いて速度を制御した移動体の移動軌跡及び速度軌跡の検証結果を説明する。なお、以下の説明では、距離10mの空間において、4.5m~5.5mの間に幅0.04m、距離1mの隙間を有する壁を設置し、移動体を壁に設けた隙間をとおって10m先の位置に移動させるものである。また、以下で説明するシミュレーションは、ロボットの大きさは無視し、移動体の重心が隙間を通れるかどうかだけを考慮したものである。さらに、以下で説明するシミュレーションは、移動体の移動する速度が大きくなるほど走行誤差が大きくなることを想定している。なお、以下で説明するシミュレーションでは、5回の試行を繰り返した。
【0023】
図3に実施の形態1にかかる制御入力装置を用いた移動体の移動経路のシミュレーション結果を示す。
図3に示すように、実施の形態1にかかる移動体制御装置1を用いることで、5回の試行のいずれにおいても移動体を壁に設けた隙間を通って10mの距離を進んでいることがわかる。また、
図3に示すように、移動体は、壁に設けた隙間を通過するとき以外は、大きく経路がぶれていることがわかる。
【0024】
また、
図4に実施の形態1にかかる制御入力装置を用いた移動体の速度変化のシミュレーション結果を示す。
図4に示すように、実施の形態1にかかる移動体制御装置1を用いることで、移動体は、高い走行経路精度が必要な壁の隙間の通過動作の前に大きく速度を落としていることがわかる。これは、移動体が壁にぶつかる状態は経路コストが大きくなる状態であり、この経路コストを小さくするように制御入力算出部10が第1の制御入力値を更新することで
図4に示すような速度の抑制がなされる。
【0025】
上記説明より、実施の形態1にかかる移動体制御装置1では、第1の制御入力値の時間的に先の期間の予測値の列である制御入力列に対して疑似乱数パターンを適用したシミュレーション結果に基づき経路コストを算出する。これにより、実施の形態1にかかる移動体制御装置1では、実際の移動体が制御入力値通りに動かず、確率的な誤差が加わった移動しか出来ない状況であっても、高速性と安全性を両立する制御が可能である。
【0026】
実施の形態2
実施の形態2では、制御入力算出部10の詳細な構成の一例について説明する。そこで、
図5に実施の形態2にかかる制御入力算出部のブロック図を示す。
図5に示すように、制御入力算出部10は、位置情報取得部21、経路コスト算出部22、制御入力決定部23を有する。
【0027】
なお、実施の形態2では、制御入力算出部10が扱う予測制御入力値として、時間的に異なる複数のタイミングの制御入力値の予測値を含む制御入力列を扱う。また、実施の形態2では、予測制御入力値が、それぞれが異なる時間的変化を示す複数の制御入力列を含む例について説明する。これはより好適な例であり、制御入力算出部10は、少なくとも1つの予測制御入力値があれば動作は可能である。
【0028】
位置情報取得部21は、運用されている移動体の位置を示す位置情報を取得する。位置情報取得部21は、例えば、カメラ、無線信号を用いたセンサ等の機器を用いて移動体の具体的な位置を特定する情報を取得する。
【0029】
制御入力決定部23は、経路コストを小さくする第2の制御入力値を算出する。なお、制御入力算出部10では、経路コスト算出部22が予想制御入力値を生成して、予想制御入力値に対応する経路コストを算出する。より具体的には、経路コスト算出部22が複数の経路コスト(例えば、N個であって、Nは後述する制御入力列の数を表す)を算出する。そして、制御入力決定部23は、例えば、複数の経路コストが小さな制御入力列を下からK個(Kは整数)選択し、選択した制御入力列について路コストが小さな値から大きな重み付けをした平均値を算出し、平均化された制御入力列の先頭の制御入力値を算出する。制御入力決定部23は、算出した制御入力値を第2の制御入力値として決定する。また、制御入力決定部23は、決定した第2の制御入力値を次制御サイクルの第1の制御入力値としてロボット制御部11に出力する。
【0030】
続いて、経路コスト算出部22の詳細について説明する。
図6に実施の形態2にかかる経路コスト算出部22のブロック図を示す。
図6に示すように、経路コスト算出部22は、制御入力列生成部31、確率変動シミュレーション処理部321~32N(Nは確率変動シミュレーション処理部の個数を示す整数)、コスト推定部33を有する。
【0031】
制御入力列生成部31は、現制御サイクルの第1の制御入力値に基づき予想制御入力値を生成する。より具体的には、制御入力列生成部31は、現制御サイクルの第1の制御入力値が属する制御入力列において、第1の制御入力列として採用された制御入力値の次のタイミングに設定された制御入力値を先頭とする制御入力列(以下ベース制御入力列と称す)を生成する。また、制御入力列生成部31は、ベース制御入力列に対してばらつきを加味して速度変化がベース制御入力列とは異なる少なくとも1つの制御入力列を生成する。つまり、制御入力列生成部31は、複数の制御入力列(例えば、N個の制御入力列)を含む予測制御入力値を生成する。
【0032】
確率変動シミュレーション処理部321~32Nは、それぞれが予想制御入力値(例えば、複数の制御入力列の1つ)に対して疑似乱数パターンを適用した確率変動シミュレーションを異なる疑似乱数パターンを用いて複数回(例えば、M回)行う。そして、確率変動シミュレーション処理部321~32Nは、それぞれ、移動体の走行状態を判断する指標となる予測コストを算出する。つまり、確率変動シミュレーション処理部321~32Nは、それぞれM個の予測コストを算出する。ここで、確率変動シミュレーション処理部321~32Nを考えると、制御入力算出部10では、N×M個の予測コストが算出される。ここで、本開示において、予測コストは、例えば、移動体の走行状態の良否判断の指標となるものである。より具体的には、予測コストは、移動体が目標経路から外れて走行したときや、所定の速度を下回って走行したときのコストとも捉えることができる。
【0033】
コスト推定部33は、実施の形態2では、リスクセンシティブコスト推定部34を有する。このリスクセンシティブコスト推定部34では、(1)式を用いて経路コストJを算出する。なお、(1)式は、リスクセンシティブ評価関数とも称す。
【数1】
(1)式において、βは予め移動体制御装置1において決定されているパラメータである。Eは、期待値である。Sは確率変動シミュレーション処理部で生成されるコストである。リスクセンシティブコスト推定部34では、複数の制御入力列について制御入力列毎に経路コストJを算出する。
【0034】
続いて、確率変動シミュレーション処理部321~32Nについて詳細に説明する。確率変動シミュレーション処理部321~32Nは、処理対象とする制御入力列が異なるのみであり、構成としては同一であるため、ここでは確率変動シミュレーション処理部321を説明する。
【0035】
図7に実施の形態2にかかる確率変動シミュレーション処理部のブロック図を示す。
図7に示すように、確率変動シミュレーション処理部321は、制御入力選択部41、シミュレーション実行部421~42M(Mは、シミュレーション実行部の個数或いは適用する疑似乱数パターンの数を表す整数)、コスト算出部431~43Mを有する。
【0036】
制御入力選択部41は、制御入力列生成部31が生成した複数の制御入力列の1つを選択する。なお、制御入力算出部10では、制御入力選択部41が選択する制御入力列は予め決定されており、確率変動シミュレーション処理部321~32Nがそれぞれ複数の制御入力列のいずれか1つに対応する。
【0037】
シミュレーション実行部421~42Mは、それぞれが、制御入力選択部41が選択した制御入力列について、複数の疑似乱数パターン(例えば、M個の疑似乱数パターン)に含まれる疑似乱数パターンの1つを適用して移動体に与える制御入力値(例えば、移動体の速度)の変化軌跡をシミュレーションする。このシミュレーションは、例えば、確率微分方程式の数値解法を用いる。また、シミュレーション実行部421~42Mでは、移動体の経路シミュレーションを行う上で位置情報取得部21が出力する位置情報を用いる。位置情報を利用せずにシミュレーション上で認識される論理的な位置情報を用いることもできるが、位置情報取得部21を用いて取得した実際の位置情報を用いた方がシミュレーション精度を向上させることができる。
【0038】
コスト算出部431~43Mは、複数のシミュレーション実行部のうち対応するシミュレーション実行部で算出されたシミュレーション結果について予測コストを算出する。コスト算出部431~43Mが生成したM個の予測コストは、リスクセンシティブコスト推定部34に与えられる。そして、リスクセンシティブコスト推定部34は、M個の予測コスト((1)式のコストS)を用いて経路コストJを算出する。
【0039】
続いて、制御入力算出部10の動作について説明する。そこで、
図8に実施の形態2にかかる制御入力算出部10の動作を説明するフローチャートを示す。
図8に示すように、制御入力算出部10は、制御入力値の算出を開始すると、まず、制御入力列生成部31を用いて現制御サイクルの第1の制御入力値が属した制御入力列からN個の制御入力列を算出する(ステップS11)。なお、動作開始時のステップS11では、それ以前に決定された制御入力列がないため、最大加速度と最大速度を満たすようなN個の制御入力列をランダムに決定する。
【0040】
そして、制御入力算出部10は、確率変動シミュレーション処理部321~32Nのそれぞれを用いてN個の制御入力列のそれぞれにM個の疑似乱数パターンを適用したN個×M個のシミュレーションを行う(ステップS12)。続いて、制御入力算出部10は、確率変動シミュレーション処理部321~32Nのそれぞれから出力されるM個の予測コストSを用いてN個の制御入力列の経路コストJを算出する(ステップS13)。つまり、ステップS13ではN個の経路コストJが算出される。その後、制御入力算出部10は、制御入力決定部23を用いて、経路コストJが小さなものからK個の制御入力列を選択し、K個の制御入力列の重み付き平均値である平均制御入力列を生成し、平均制御入力列の先頭の制御入力値を第2の制御入力値として特定する(ステップS14)。そして、制御入力算出部10は、ステップS14で特定した第2の制御入力値を次の制御サイクルの第1の制御入力値として出力する(ステップS15)。
【0041】
上記処理について、別の観点から説明する。そこで、
図9及び
図10に実施の形態2にかかる制御入力算出部10で用いられる制御入力列の一例を示す図を示す。
図9は、制御入力列から第2の制御入力値を決定する場合を説明するものであり、
図10は、次の制御サイクルで用いる制御入力列の生成する場合を説明するものである。
図9に示す例では、制御入力列の数Nを5、シミュレーションに適用する疑似乱数パターンの数Mを3、第2の制御入力値の決定に用いる制御入力列の数Kを3としたものである。
【0042】
図9に示す例では、現制御サイクルT1の第1の制御入力値が属する制御入力列(例えば、経路コストJが後の計算で4となる制御入力列)をベース制御入力列とし、このベース制御入力列に4つの制御入力列が与えられている。この制御入力列は、現制御サイクルT1以降の制御サイクルTp1~Tp6の予測期間の移動体に与える制御入力値の変化(或いは移動体の速度変化)を予想した予想制御入力値を時系列に並べたものである。
【0043】
制御入力算出部10では、N本の制御入力列のそれぞれに対してM個の疑似乱数パターンを与えたシミュレーションを行い、N個の経路コストJを算出する。
図9に示す例では、経路コストJは、1、3、4、6、7である。なお、
図9では経路コストJを整数としたが、小数点以下の数値を含むものであっても構わない。そして、制御入力算出部10は、経路コストJが小さな順から3つの制御入力列の重み付き平均値から生成される平均制御入力列の先頭の制御入力値を第2の制御入力値として決定する。
【0044】
また、
図10を参照し、タイミングT2の次の制御サイクルの第1の制御入力値の算出に用いる制御入力列について説明する。
図10に示すように、制御入力列生成部31では、
図9で示した平均制御入力列の先頭の制御入力値を削除し、末尾からさらに1制御サイクル後の予測制御入力値を追加した新たなベース制御入力列を生成する。
図10に示す例では、ベース制御入力列の末尾の予測制御入力値は末尾から1つ前の予測制御入力値と同じ値を用いた。そして、制御入力列生成部31は、
図10の上手に示したベース制御入力列に対して異なる速度変化を示す4つの制御入力列を生成する。
【0045】
上記説明より、実施の形態1にかかる制御入力算出部10では、複雑な数式処理を用いることなく、リスクセンシティブ評価関数を最小化する制御入力値を算出することができる。これにより、実施の形態1にかかる制御入力算出部10を用いた移動体制御装置1では、実際の移動体が制御入力値通りに動かず、確率的な誤差が加わった移動しか出来ない状況であっても、高速性と安全性を両立する制御が可能である。
【0046】
実施の形態3
実施の形態3では、経路コスト算出部22の別の形態となる経路コスト算出部22aについて説明する。なお、実施の形態3の説明では、実施の形態2で説明した構成要素と同じ構成要素については、実施の形態2と同じ符号を付して説明を省略する。
【0047】
図11に実施の形態3にかかる経路コスト算出部22aのブロック図を示す。図11に示すように、経路コスト算出部22aは、経路コスト算出部22のコスト推定部33をコスト推定部33aに置き換えたものである。コスト推定部33aは、期待値推定部35、分散項推定部36を有する。
【0048】
実施の形態2では、リスクセンシティブコスト推定部34において(1)式で示した評価関数を経路コストJの計算に用いた。しかし、(1)式により経路コストJを算出した場合、確率的変動がある程度以上大きい場合には発散してしまい、制御入力値が安定しないことがある。そこで、実施の形態3では、経路コストJの計算に(1)式をテイラー展開して3次項以降の項を無視することで予測コストSのばらつきの影響を経路コストに反映させつつ、発散の可能性を低減する。(1)式の1次項及び2次項は、(2)式によって算出される。
【数2】
ここで、(2)式において、第1項が期待値項であり、第2項が分散項である。
【0049】
期待値推定部35は、リスクセンシティブ評価関数をテイラー展開して得られる期待値項に確率変動シミュレーション処理部321~32Nのそれぞれから得られた複数の予測コストを適用して制御入力列毎に期待値を算出する。つまり、期待値推定部35は、(2)式の第1項の値を算出する。
【0050】
分散項推定部36は、リスクセンシティブ評価関数をテイラー展開して得られる分散項に確率変動シミュレーション処理部のそれぞれから得られた複数の予測コストを適用して制御入力列毎に分散値を算出する。つまり、分散項推定部36は、(2)式の第2項の値を算出する。
【0051】
そして、コスト推定部33aは、期待値推定部35で算出された期待値と分散項推定部36で算出された分散値との加算結果を経路コストとして算出する。
【0052】
上記説明より、実施の形態3にかかるコスト推定部33aを用いることで経路コストJの算出における発散を効果的に抑制することができる。
【0053】
その他の実施の形態
その他の実施の形態では、移動体制御装置1を含む移動体制御システムの全体の構成及び移動体制御装置1を実現するハードウェア資源について説明する。まず、
図12にその他の実施の形態にかかる移動体制御システムのブロック図を示す。なお、
図12に示した移動体制御システムは、システムの模式的なブロック図である。
【0054】
図12に示す移動体制御システムは、遠隔制御装置101、ネットワーク102、撮像装置103、移動体104を有する。遠隔制御装置101は、移動体制御部201、通信部202を有する。移動体制御部201は、上記で説明した移動体制御装置1が備えられる。また、通信部202は、移動体制御部201が移動体104及び撮像装置103と通信するためのインタフェースである。
【0055】
ネットワーク102は、遠隔制御装置101、撮像装置103、移動体104の間で相互に通信を行うための構成である。撮像装置103は、例えば、カメラであり遠隔制御装置101内の位置情報取得部21により利用されるものである。
【0056】
移動体104は、制御対象となるものである。移動体104は、通信部301、駆動制御部302、駆動部303を有する。通信部301は、移動体104が遠隔制御装置101と通信するためのインタフェースである。駆動制御部302は、遠隔制御装置101から与えられる第1の制御入力値に基づき駆動部303に動作指示を与える。駆動部303は、駆動輪を駆動するモータ等の構成である。
【0057】
続いて、遠隔制御装置101を構成するハードウェア資源を
図13を参照して説明する。
図13に示すのはハードウェア資源の一例であり、入力インタフェース等の他の構成が含まれていても良い。つまり、図
13に示すハードウェア資源400は、図
13に示した構成を限定する趣旨ではない。
【0058】
ハードウェア資源400は、情報処理装置、コンピュータにより構成することができる。
図13に示す例では、ハードウェア資源400は、内部バス404により相互に接続される、演算部401、メモリ402、ネットワークインタフェース403等を備える。
【0059】
ハードウェア資源400は、図示しないハードウェア(例えば、入出力インタフェース)を含んでもよい。あるいは、装置に含まれる演算部401等のユニットの数も
図13の例示に限定する趣旨ではなく、例えば、複数の演算部401が装置に含まれていてもよい。演算部401には、例えば、CPU(Central Processing Unit)、MPU(Micro Processor Unit)等を用いることができる。
【0060】
メモリ402には、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等を用いることができる。
【0061】
ネットワークインタフェース403には、例えば、LAN(Local Area Network)カード、ネットワークアダプタ、ネットワークインタフェースカード等を用いることができる。
【0062】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、
図1で示した制御入力算出部10及びロボット制御部11は、1つの装置として設けられていてもよく、複数の装置により1つのシステムを構成してもよい。また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0063】
(付記1)
第1の制御入力値に基づき移動体を制御するロボット制御部と、
次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出部と、を有し、
前記制御入力算出部は、
前記第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる前記第2の制御入力値を算出する移動体制御装置。
【0064】
(付記2)
前記制御入力算出部は、
前記予想制御入力値を生成して、前記予想制御入力値に対応する前記経路コストを算出する経路コスト算出部と、
前記経路コストを小さくする前記第2の制御入力値を算出する制御入力決定部と、
を有する付記1に記載の移動体制御装置。
【0065】
(付記3)
前記経路コスト算出部は、
現制御サイクルの前記第1の制御入力値に基づき前記予想制御入力値を生成する制御入力列生成部と、
前記予想制御入力値に対して疑似乱数パターンを適用した確率変動シミュレーションを異なる疑似乱数パターンを用いて複数回行い、複数の前記確率変動シミュレーションのそれぞれにおいて前記移動体の走行状態を判断する指標となる予測コストを算出する確率変動シミュレーション処理部と、
複数の前記確率変動シミュレーションにおいて生成された複数の前記予測コストを用いて前記経路コストを算出するコスト推定部と、
を有する付記2に記載の移動体制御装置。
【0066】
(付記4)
前記確率変動シミュレーション処理部は、
それぞれが複数の前記確率変動シミュレーションのいずれか1つを実行する複数のシミュレーション実行部と、
前記複数のシミュレーション実行部のうち対応する前記シミュレーション実行部で算出されたシミュレーション結果について前記予測コストを算出する複数のコスト計算部と、
を有する付記3に記載の移動体制御装置。
【0067】
(付記5)
前記制御入力算出部は、
前記移動体の位置情報を取得する位置情報取得部を有し、
前記複数のシミュレーション実行部は、前記位置情報に基づき特定される前記移動体の位置に基づき前記予測コストを算出する付記4に記載の移動体制御装置。
【0068】
(付記6)
前記予想制御入力値は、時間的に異なる複数のタイミングの制御入力値の予測値を含む制御入力列である付記1乃至5のいずれか1項に記載の移動体制御装置。
【0069】
(付記7)
前記予測制御入力値は、それぞれが異なる時間的変化を示す複数の前記制御入力列を含む付記6に記載の移動体制御装置。
【0070】
(付記8)
前記コスト推定部は、リスクに敏感な振る舞いをさせるリスクセンシティブ評価関数に基づき前記経路コストを算出する前記確率変動シミュレーション処理部のそれぞれから得られた複数の前記予測コストを適用して前記制御入力列毎に前記経路コストを算出するリスクセンシティブコスト推定部を有する付記3に記載の移動体制御装置。
【0071】
(付記9)
前記コスト推定部は、
リスクに敏感な振る舞いをさせるリスクセンシティブ評価関数をテイラー展開して得られる期待値項に前記確率変動シミュレーション処理部のそれぞれから得られた複数の前記予測コストを適用して前記制御入力列毎に期待値を算出する期待値推定部と、
前記リスクセンシティブ評価関数をテイラー展開して得られる分散項に前記確率変動シミュレーション処理部のそれぞれから得られた複数の前記予測コストを適用して前記制御入力列毎に分散値を算出する分散項推定部と、を有し、
前記期待値と前記分散値との加算結果を前記経路コストとして算出する付記3に記載の移動体制御装置。
【0072】
(付記10)
第1の制御入力値に基づき移動体を制御するロボット制御ステップと、
次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出ステップと、を有し、
前記制御入力算出ステップにおいて、
前記第1の制御入力値のあとに前記ロボット制御ステップに与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる前記第2の制御入力値を算出する移動体制御方法。
【0073】
(付記11)
第1の制御入力値に基づき移動体を制御するロボット制御部と、
次制御サイクルの前記第1の制御入力値となる第2の制御入力値を算出する制御入力算出部と、を有し、
前記制御入力算出部は、
前記第1の制御入力値のあとに前記ロボット制御部に与えられると予想される少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる前記第2の制御入力値を算出する移動体制御システム。
【0074】
(付記12)
現制御サイクルで移動体に与える第1の制御入力値のあとに前記移動体の制御に用いられると予想される第1の制御入力値の予測値である少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる第2の制御入力値を算出する制御入力算出処理と、
前記第2の制御入力値により設定される前記第1の制御入力値に基づき移動体を制御するロボット制御処理と、
を演算部の演算処理を用いて実行する移動体制御プログラムを記録したコンピュータ読み取り可能な非一時的な記憶媒体。
【0075】
(付記13)
現制御サイクルで移動体に与える第1の制御入力値のあとに前記移動体の制御に用いられると予想される第1の制御入力値の予測値である少なくとも1つの予想制御入力値に対して、確率的ノイズを加味したシミュレーションによって経路コストを算出し、前記経路コストが小さくなる第2の制御入力値を算出する制御入力算出処理と、
前記第2の制御入力値により設定される前記第1の制御入力値に基づき移動体を制御するロボット制御処理と、
を演算部の演算処理を用いて実行する移動体制御プログラム。
【符号の説明】
【0076】
1 移動体制御装置
10 制御入力算出部
11 ロボット制御部
21 位置情報取得部
22 経路コスト算出部
23 制御入力決定部
31 制御入力列生成部
321 確率変動シミュレーション処理部
33 コスト推定部
34 リスクセンシティブコスト推定部
35 期待値推定部
36 分散項推定部
41 制御入力選択部
421 シミュレーション実行部
431 コスト算出部
101 遠隔制御装置
102 ネットワーク
103 撮像装置
104 移動体
201 移動体制御部
202 通信部
301 通信部
302 駆動制御部
303 駆動部
400 ハードウェア資源
401 演算部
402 メモリ
403 ネットワークインタフェース
404 内部バス