(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023066619
(43)【公開日】2023-05-16
(54)【発明の名称】制御装置、制御方法、および制御プログラム
(51)【国際特許分類】
B60W 60/00 20200101AFI20230509BHJP
G06N 3/08 20230101ALI20230509BHJP
B60W 40/02 20060101ALI20230509BHJP
G08G 1/16 20060101ALI20230509BHJP
B60W 50/06 20060101ALI20230509BHJP
【FI】
B60W60/00
G06N3/08
B60W40/02
G08G1/16 C
B60W50/06
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021177303
(22)【出願日】2021-10-29
(71)【出願人】
【識別番号】391008559
【氏名又は名称】株式会社トランストロン
(71)【出願人】
【識別番号】501241645
【氏名又は名称】学校法人 工学院大学
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】小川 雅俊
(72)【発明者】
【氏名】出川 拓真
(72)【発明者】
【氏名】向井 正和
(72)【発明者】
【氏名】栗田 茂明
【テーマコード(参考)】
3D241
5H181
【Fターム(参考)】
3D241BA44
3D241BA49
3D241BC01
3D241BC02
3D241CC02
3D241CC08
3D241CC17
3D241CE02
3D241CE04
3D241CE05
3D241CE08
3D241CE09
3D241DA17Z
3D241DB01Z
3D241DB02Z
3D241DB20Z
3D241DC25Z
3D241DC30Z
3D241DC31Z
3D241DC33Z
5H181AA01
5H181AA26
5H181BB20
5H181CC03
5H181CC04
5H181CC11
5H181CC12
5H181CC14
5H181LL01
5H181LL02
5H181LL04
5H181LL09
(57)【要約】
【課題】高性能かつ高速な自律走行制御を実現すること。
【解決手段】制御装置101は、移動体予測モデルMを変換した変換後の移動体予測モデルMcを用いて、制御対象のセンサの情報から、移動体の被制御量の推定値を算出する。移動体予測モデルMは、多層のニューロン構造かつReLU構造の活性化関数を有し、移動体の動的挙動を予測するモデルである。変換後の移動体予測モデルMcは、移動体予測モデルMに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて各ニューロンの活性化関数が変換されたモデルである。制御装置101は、制御対象の被制御量を制御する操作量の候補値から、制御対象の被制御量の推定値を算出する。制御装置101は、制御対象の被制御量の目標値と、制御対象の被制御量の推定値と、移動体の被制御量の推定値とに基づいて、操作量の値を決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
多層のニューロン構造かつReLU構造の活性化関数を有し、制御対象に搭載されたセンサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の前記第1モデルと、
前記センサの情報と前記制御対象の被制御量の目標値とを取得し、前記変換後の前記第1モデルを用いて、前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、前記制御対象の被制御量の目標値と前記制御対象の被制御量の推定値と前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する制御部と、
を有することを特徴とする制御装置。
【請求項2】
前記制御対象の被制御量の推定値は、前記制御対象の操作量を入力として前記制御対象の動的挙動を予測する第2モデルを用いて、前記操作量の候補値から算出される、ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記制御部は、
前記操作量の候補値それぞれについて、算出した前記制御対象の被制御量の推定値と、前記制御対象の被制御量の目標値と、前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するためのコストを表す制御評価値を算出し、
算出した前記制御評価値に基づいて、前記操作量の候補値の中から前記制御対象の被制御量を制御するための操作量の値を決定する、
ことを特徴とする請求項1に記載の制御装置。
【請求項4】
前記制御対象の被制御量は、前記制御対象の軌道および速度を含み、
前記移動体の被制御量は、前記移動体の軌道および速度を含み、
前記制御部は、
前記制御対象の被制御量の目標値に対する前記制御対象の被制御量の推定値の誤差、および、前記制御対象の被制御量の推定値と前記移動体の被制御量の推定値とから特定される前記制御対象と前記移動体との位置関係に基づいて、前記制御評価値を算出する、ことを特徴とする請求項3に記載の制御装置。
【請求項5】
前記制御対象の被制御量は、前記制御対象の燃料消費量を含み、
前記移動体の被制御量は、前記移動体の燃料消費量を含み、
前記制御部は、
さらに、前記制御対象の燃料消費量の推定値と前記移動体の燃料消費量の推定値とに基づいて、前記制御評価値を算出する、ことを特徴とする請求項4に記載の制御装置。
【請求項6】
前記制御部は、
さらに、前記操作量の現在値と前記操作量の候補値との差分に基づいて、前記制御評価値を算出する、ことを特徴とする請求項4に記載の制御装置。
【請求項7】
前記操作量は、ステアリング量、ブレーキ量およびアクセル量である、ことを特徴とする請求項1に記載の制御装置。
【請求項8】
前記制御部は、
決定した前記操作量の値を出力する、ことを特徴とする請求項1に記載の制御装置。
【請求項9】
制御対象に搭載されたセンサの情報と前記制御対象の被制御量の目標値とを取得し、
多層のニューロン構造かつReLU構造の活性化関数を有し、前記センサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の前記第1モデルを用いて、取得した前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、
前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、
取得した前記制御対象の被制御量の目標値と、算出した前記制御対象の被制御量の推定値と、算出した前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する、
処理をコンピュータが実行することを特徴とする制御方法。
【請求項10】
制御対象に搭載されたセンサの情報と前記制御対象の被制御量の目標値とを取得し、
多層のニューロン構造かつReLU構造の活性化関数を有し、前記センサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の前記第1モデルを用いて、取得した前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、
前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、
取得した前記制御対象の被制御量の目標値と、算出した前記制御対象の被制御量の推定値と、算出した前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、および制御プログラムに関する。
【背景技術】
【0002】
従来、自動車の自律走行制御において、車載カメラやレーダの情報から、AI(Artificial Intelligence)の深層学習を用いて移動体(障害物)を検出し、将来の挙動を予測する移動体予測モデルを再現することによって、高性能な制御を実現する取り組みが行われている。自動車の自律走行制御は、例えば、多層のニューラルネットワーク(NN)のモデル(移動体の多入力多出力モデル)を用いて、多変数の最適制御を行うことによって実現される。
【0003】
先行技術としては、例えば、産業プロセスのモデル化のため、相互接続された二つのMLD(Mixed Logical Dynamical)サブシステムをマージすることによって、一つの結合されたMLDシステムを構築するものがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、多層のニューラルネットワークのモデルを用いた多変数の最適制御に多くの演算時間がかかり、自動車等の自律走行を実時間制御することが困難である。
【0006】
一つの側面では、本発明は、高性能かつ高速な自律走行制御を実現することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、多層のニューロン構造かつReLU構造の活性化関数を有し、制御対象に搭載されたセンサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の第1モデルと、前記センサの情報と前記制御対象の被制御量の目標値とを取得し、前記変換後の第1モデルを用いて、前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、前記制御対象の被制御量の目標値と前記制御対象の被制御量の推定値と前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する制御部と、を有する制御装置が提供される。
【発明の効果】
【0008】
本発明の一側面によれば、高性能かつ高速な自律走行制御を実現することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。
【
図2A】
図2Aは、移動体予測モデルの一例を示す説明図である。
【
図2B】
図2Bは、移動体予測モデルの変換例を示す説明図である。
【
図3】
図3は、制御装置101のハードウェア構成例を示すブロック図である。
【
図4】
図4は、制御装置101の機能的構成例を示すブロック図である。
【
図5】
図5は、制御装置101の制御処理手順の一例を示すフローチャートである。
【
図6】
図6は、最適化処理の具体的な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる制御装置、制御方法、および制御プログラムの実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。
図1において、制御装置101は、制御対象を制御するコンピュータである。制御対象は、例えば、自動車、ドローン(無人航空機)などの移動体である。制御対象の制御とは、例えば、ブレーキ量、アクセル量、操舵量などを制御することである。
【0012】
ここで、多層のニューラルネットワーク(NN)の移動体予測モデルを用いて、自動車の周囲の移動体(障害物)を検出し、将来の挙動を予測する場合がある。移動体(障害物)は、例えば、他の自動車、歩行者、自転車などである。一方、移動体(障害物)の挙動を精度よく再現するには、考慮する変数の数が増え、移動体予測モデルの規模が大きくなる。このため、従来技術では、移動体予測モデルを用いて多変数の最適制御を行う場合に多くの演算時間を必要とする。
【0013】
また、既存の移動体予測モデルは、非線形かつ1次遅れ、2次遅れ、無駄時間などの特性を含む動的システムであり、数式処理で逆関数の数理モデルを導出することが困難である。このため、解析的に問題を解くことができずに、計算負荷が高くなるという問題がある。したがって、従来技術では、例えば、自動車の自律走行制御ユニットなどに移動体予測モデルを実装して、オンボードで実時間制御することが困難である。
【0014】
そこで、本実施の形態では、ReLU構造の活性化関数を有する移動体予測モデルM(第1モデル)を、バイナリ変数を含む線形不等式関数を用いて変換した変換後の移動体予測モデルMc(変換後の第1モデル)により、移動体の動的挙動を予測し、制御対象の被制御量を制御するための操作量を探索することで、高性能かつ高速な自律走行制御を実現する制御方法について説明する。以下、制御装置101の処理例について説明する。
【0015】
制御装置101は、第1モデルを変換した変換後の第1モデルを取得する。ここで、第1モデルは、制御対象の周囲の移動体の動的挙動を予測するモデルである。第1モデルは、多層のニューロン構造かつReLU(Rectified Linear Unit:正規化線形関数)構造の活性化関数を有する。
【0016】
ReLU構造は、関数への入力値が0以下の場合には出力値が0、入力値が0より大きい場合には出力値が線形に変化する関数である。第1モデルは、制御対象に搭載されたセンサの情報を入力として、将来の移動体の被制御量の値(推定値)を出力する。移動体の被制御量は、例えば、軌道、速度、燃料消費量などである。センサは、制御対象の周囲の障害物を検出するための装置であり、例えば、レーダ、カメラなどである。
【0017】
第1モデルによれば、制御対象の周囲の移動体の動的挙動を高精度に再現することができる。一方で、自律走行制御に、第1モデルをそのまま用いると、最適制御のための演算時間が増大するおそれがある。このため、制御装置101は、高性能かつ高速な自律走行制御を実現するために、第1モデルを変換した変換後の第1モデルを取得する。
【0018】
変換後の第1モデルは、第1モデルに基づき、各ニューロン(ノード)の重み係数、バイアス、および、入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて、各ニューロンの活性化関数が変換されたモデルである。重み係数およびバイアスは、各ニューロン(ノード)の入力と出力との関係を表す。重み係数は、入力に対する重みを示す。バイアスは、入力値を一定の範囲に偏らせるために用いるものである。
【0019】
入出力変数は、例えば、モデル自体に入力される変数、モデル自体から出力される変数、モデル内の各ニューロンから出力される変数などである。入出力変数の上下限値は、例えば、第1モデルに、網羅的な試験パターンであるChirp信号またはAPRBS(Amplitude Pseudo Random Binary Signal)信号を与えることによって取得される、各入出力変数の最大値と最小値に基づき設定される。
【0020】
以下の説明では、第1モデルを「移動体予測モデルM」と表記し、変換後の第1モデルを「変換後の移動体予測モデルMc」と表記する場合がある。
【0021】
ここで、
図2Aおよび
図2Bを用いて、移動体予測モデルMの変換例について説明する。移動体予測モデルMは、例えば、予め作成されている。
【0022】
図2Aは、移動体予測モデルの一例を示す説明図である。
図2Aにおいて、移動体予測モデル200は、移動体予測モデルMの一例であり、多層のニューロン構造かつReLU構造の活性化関数を有する。移動体予測モデル200は、画像情報(現在値、過去値)およびレーダ情報(現在値、過去値)を入力として、将来の移動体の被制御量の推定値を出力する。過去値は、例えば、1ステップ前の値である。
【0023】
ここでは、移動体の被制御量の推定値として、移動体の軌道(1ステップ後の予測値)を出力する場合を例に挙げて説明する。画像情報は、例えば、制御対象となる車両(自動車)に搭載された車載カメラCの画像情報である。車載カメラCは、車両の周囲を撮影する撮像装置である。レーダ情報は、例えば、制御対象となる車両(自動車)に搭載されたレーダRの情報である。
【0024】
レーダRは、電波を発射して障害物に当て、その反射波を受信して方向や位置を測定する装置である。レーダRは、例えば、LiDAR(Light Detection And Ranging)、ミリ波レーダおよび超音波センサの少なくともいずれかである。移動体の軌道は、現時刻から将来にわたる期間において移動体が移動する道筋である。
【0025】
移動体予測モデル200において、例えば、ノード201,202は、ReLU関数を含むニューロンの一例である。ReLU関数は、ReLU構造の活性化関数である。また、ω11
(1)は、u1からノード201への入力にかかる重みを示す。また、b1
(1)は、ノード201のバイアスを示す。
【0026】
図2Bは、移動体予測モデルの変換例を示す説明図である。
図2Bにおいて、移動体予測モデル210は、
図2Aに示した移動体予測モデル200を簡易化して示したものである。なお、
図2Bでは、移動体予測モデル210の一部を抜粋して表示している。
【0027】
移動体予測モデル210において、例えば、ReLU関数211は、ノード201(
図2A参照)の活性化関数を示す。w
1は、uからノード201への入力にかかる重みを示す。b
1は、ノード201のバイアスを示す。また、ReLU関数212は、ノード202(
図2A参照)の活性化関数を示す。w
2は、ノード201からノード202への入力にかかる重みを示す。b
2は、ノード202のバイアスを示す。なお、Iは、線形関数を示す。
【0028】
制御装置101は、例えば、命題論理を用いて、各ReLU関数を変形する。ReLU関数は、例えば、下記式(1)を用いて表される。
【0029】
【0030】
制御装置101は、場合分けの条件を表現するために、下記式(2)、(3)のように、ReLU関数にバイナリ変数δを導入する。バイナリ変数δは、0と1の2値のみをとり得る変数(0-1変数)である。
【0031】
[f(x)≦0] ⇔ [δ=1] ・・・(2)
[f(x)>0] ⇔ [δ=0] ・・・(3)
【0032】
上記の命題論理は、下記式(4)、(5)の不等式が成立することと等価である。ただし、Mは、f(x)の最大値である。mは、f(x)の最小値である。εは、計算機精度である。制御装置101は、M(各ニューロンから出力される変数の上限値)として、変換前の移動体予測モデル210の各ニューロンから出力される変数の最大値を設定する。また、制御装置101は、m(各ニューロンから出力される変数の下限値)として、変換前の移動体予測モデル210の各ニューロンから出力される変数の最小値を設定する。
【0033】
f(x)≦M(1-δ) ・・・(4)
f(x)≧ε+(m-ε)δ ・・・(5)
【0034】
バイナリ変数δを用いることで、yは、下記式(6)のように表すことができる。
【0035】
y=(1-δ)f(x) ・・・(6)
【0036】
上記式(6)と等価な不等式は、例えば、下記式(7)~(10)となる。
【0037】
y≦M(1-δ) ・・・(7)
y≧m(1-δ) ・・・(8)
y≦f(x)-mδ ・・・(9)
y≧f(x)-Mδ ・・・(10)
【0038】
制御装置101は、例えば、上記変形をすべてのReLU関数に適用することにより、移動体予測モデル210を変換する。
【0039】
移動体予測モデル220は、変換後の移動体予測モデルMcの一例であり、移動体予測モデル210を変換した変換後の移動体予測モデルである。移動体予測モデル220は、画像情報(現在値、過去値)およびレーダ情報(現在値、過去値)を入力として、将来の移動体の軌道(推定値)を出力する。
図2Bでは、移動体予測モデル220の一部を抜粋して表示している。
【0040】
制御装置101は、変換後の移動体予測モデル220の各ニューロンの重み係数、バイアスとして、変換前の移動体予測モデル210の各ニューロン(例えば、ノード201)の重み係数、バイアス(例えば、w1、b1)を設定する。また、制御装置101は、変換後の移動体予測モデル220に入力される変数の上下限値として、変換前の移動体予測モデル210に入力される変数(例えば、u)の上下限値を設定する。また、制御装置101は、変換後の移動体予測モデル220から出力される変数の上下限値として、変換前の移動体予測モデル210から出力される変数(例えば、y)の上下限値を設定する。
【0041】
これにより、制御装置101は、移動体予測モデル210を変換した変換後の移動体予測モデル220を取得することができる。移動体予測モデル220によれば、問題(混合整数計画問題)を高速に解くことが可能なアルゴリズムを用いることができるため、計算負荷を抑えることができる。また、問題空間を限定することができるため、解空間が小さくなり探索にかかる時間を短縮することができる。
【0042】
ただし、移動体予測モデル210の変換は、制御装置101とは異なる他のコンピュータにおいて行われてもよい。この場合、制御装置101は、例えば、ユーザの操作入力により、または、他のコンピュータから受信することにより、変換後の移動体予測モデル220を取得する。
【0043】
制御装置101は、制御対象に搭載されたセンサの情報と、制御対象の被制御量の目標値とを取得する。具体的には、例えば、制御装置101は、制御対象に搭載された車載カメラCから画像情報を取得する。画像情報は、例えば、車載カメラCにより撮影された画像を示す情報である。
【0044】
また、制御装置101は、制御対象に搭載されたレーダRからレーダ情報を取得する。レーダ情報は、例えば、制御対象の周囲に存在する移動体(障害物)の方向や位置を示す測定結果である。制御対象の被制御量は、例えば、制御対象の軌道、速度、燃料消費量などである。
【0045】
制御対象の軌道は、現時刻から将来にわたる期間において制御対象が移動する道筋である。制御対象の速度は、現時刻から将来にわたる期間において制御対象が移動する際の速度である。制御対象の燃料消費量は、現時刻から将来にわたる期間において制御対象が消費する燃料消費量(燃費)である。
【0046】
被制御量の目標値は、例えば、道路状況に応じて設定される被制御量の値である。被制御量の目標値は、例えば、目的地に向かう車両の目標軌道、目標速度である。具体的には、例えば、制御装置101は、制御対象となる車両のナビゲーションシステムから、当該車両の目標軌道、目標速度(被制御量の目標値)を取得する。
【0047】
制御装置101は、変換後の移動体予測モデルMcを用いて、取得したセンサの情報から、将来の移動体の被制御量の推定値を算出する。具体的には、例えば、制御装置101は、取得した車載カメラCの画像情報とレーダRのレーダ情報を、変換後の移動体予測モデルMcに入力することによって、移動体の被制御量の推定値を算出する。移動体の被制御量は、例えば、移動体の軌道、速度、燃料消費量などである。
【0048】
制御装置101は、制御対象の被制御量を制御するための操作量の候補値から、将来の制御対象の被制御量の推定値を算出する。制御対象の被制御量を制御するための操作量は、例えば、ステアリング量、ブレーキ量、アクセル量などである。操作量の候補値は、例えば、ランダムな値である。
【0049】
具体的には、例えば、制御装置101は、第2モデルを用いて、制御対象の被制御量を制御するための操作量の候補値から、将来の制御対象の被制御量の推定値を算出する。ここで、第2モデルは、制御対象の操作量を入力として、制御対象の動的挙動を予測するモデルである。
【0050】
第2モデルは、運動方程式などの物理法則に基づき構築される数理モデルである。例えば、第2モデルは、制御対象となる車両のステアリング量、ブレーキ量、アクセル量を入力として、当該車両の被制御量の推定値を出力する。第2モデルとしては、既存のいかなるモデルを用いることにしてもよい。
【0051】
制御装置101は、取得した制御対象の被制御量の目標値と、算出した制御対象の被制御量の推定値と、算出した移動体の被制御量の推定値とに基づいて、制御対象の被制御量を制御するための操作量の値を決定する。具体的には、例えば、制御装置101は、操作量の候補値それぞれについて、制御対象の被制御量の推定値と、制御対象の被制御量の目標値と、移動体の被制御量の推定値とに基づいて、制御評価値を算出する。
【0052】
ここで、制御評価値は、制御対象の被制御量を制御するためのコストを表す。制御評価値は、例えば、値が低いほど評価が高いことを示す。そして、制御装置101は、算出した制御評価値に基づいて、操作量の候補値の中から制御対象の被制御量を制御するための操作量の値を決定する。
【0053】
より詳細に説明すると、例えば、制御装置101は、最適化ソルバーsvにより、操作量の候補値を変化させながら、変換後の移動体予測モデルMcを用いて、制御対象の被制御量の推定値を算出する。最適化ソルバーsvは、例えば、dual-simplex(双対単体法)アルゴリズムを用いて、問題を解くソフトウェアである。つぎに、制御装置101は、例えば、評価関数efを用いて、制御対象の被制御量の推定値と、制御対象の被制御量の目標値と、移動体の被制御量の推定値とに基づいて、制御評価値を算出する。
【0054】
評価関数efは、例えば、制御対象の被制御量(軌道、速度)の目標値に対する制御対象の被制御量(軌道、速度)の推定値の誤差を考慮する項と、制御対象と移動体との位置関係を考慮する項とを含むコスト関数である。制御対象と移動体との位置関係は、制御対象の被制御量(軌道、速度)の推定値と移動体の被制御量(軌道、速度)の推定値とから特定される。各項は、項同士の値を適切に比較するために正規化されてもよく、また、各項の優先度合いに応じて重み付けされてもよい。
【0055】
そして、制御装置101は、制御評価値(コスト)が最小となるときの操作量の候補値を、次のステップで制御対象の被制御量を制御するための操作量の値に決定する。これにより、例えば、移動体(障害物)との衝突を回避しつつ、制御対象の被制御量をできるだけ目標値に近づけるための操作量の値を決定することができる。
【0056】
制御装置101は、決定した操作量の値を出力する。具体的には、例えば、制御装置101は、次のステップで被制御量を制御する際の操作量の情報として、制御対象となる車両に対して、操作量情報110を出力する。ここで、操作量情報110は、決定された操作量の値を示す情報であり、例えば、ステアリング量、ブレーキ量、アクセル量の値を示す。
【0057】
このように、制御装置101によれば、制御対象の周囲の移動体の動的挙動を高精度に予測可能なモデル(変換後の移動体予測モデルMc)を用いて、高性能かつ高速な自律走行制御を実現することができる。例えば、制御装置101によれば、移動体(障害物)との衝突を回避しつつ、制御対象となる車両の軌道や速度をできるだけ目標値に追従させる自律走行制御を行うことができる。
【0058】
また、制御装置101によれば、多層のニューラルネットワークの移動体予測モデルを、線形不等式関数を用いて定式化することで、最適化問題を解析的に解くことができる。また、線形不等式関数に変形可能な活性化関数としては、例えば、ReLU、Hadlims、Satlins、tribasなどがある。これらの活性化関数のうち、ReLU構造の活性化関数を移動体予測モデルに用いることで、移動体の動的挙動の高精度な予測を実現することができる。
【0059】
(制御装置101のハードウェア構成例)
つぎに、制御装置101のハードウェア構成例について説明する。
【0060】
図3は、制御装置101のハードウェア構成例を示すブロック図である。
図3において、制御装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0061】
ここで、CPU301は、制御装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0062】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0063】
通信I/F305は、通信回線を通じてネットワーク310に接続され、ネットワーク310を介して外部のコンピュータに接続される。そして、通信I/F305は、ネットワーク310と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0064】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0065】
なお、制御装置101は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、制御装置101は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有さないことにしてもよい。
【0066】
(制御装置101の機能的構成例)
図4は、制御装置101の機能的構成例を示すブロック図である。
図4において、制御装置101は、取得部401と、第1の推定部402と、第2の推定部403と、最適化部404と、評価値算出部405と、を含む。取得部401~評価値算出部405は制御部となる機能であり、具体的には、例えば、
図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
【0067】
取得部401は、制御対象に搭載されたセンサの情報を取得する。以下の説明では、制御対象として、「自動車(車両)」を例に挙げて説明する。また、制御対象に搭載されたセンサとして、「車載カメラC」および「レーダR」を例に挙げて説明する。
【0068】
具体的には、例えば、取得部401は、自車両に搭載された車載カメラCから画像情報を取得する。画像情報は、例えば、車載カメラCにより撮影された画像を示す情報であり、例えば、過去から現時刻までの直近一定時間分の動画像(時系列データ)である。また、取得部401は、自車両に搭載されたレーダRからレーダ情報を取得する。レーダ情報は、例えば、レーダRによって測定された自車両の周囲に存在する移動体(障害物)の方向や位置を示す情報であり、例えば、直近一定時間分の測定結果(時系列データ)である。
【0069】
また、取得部401は、自車両(制御対象)の被制御量の目標値を取得する。被制御量の目標値は、例えば、自車両の目標軌道、目標速度などである。自車両の目標軌道は、現時刻から将来にわたる期間(例えば、5秒間)において自車両が移動する際の目標となる道筋である。自車両の目標速度は、現時刻から将来にわたる期間において自車両が移動する際の目標速度である。目標速度は、例えば、平均速度であってもよく、また、一定時間(1秒など)ごとの速度であってもよい。
【0070】
具体的には、例えば、取得部401は、自車両のナビゲーションシステム(不図示)から、自車両の目標軌道、目標速度を取得する。ナビゲーションシステムは、ドライバーの運転を支援するため、自動車の現在位置を地図上に表示したり、目的地までの距離や方位を表示したりするシステムである。ナビゲーションシステムでは、例えば、自車両が走行する道路状況に応じて、自車両の目標軌道、目標速度が計算される。
【0071】
第1の推定部402は、変換後の移動体予測モデルMcを用いて、取得された車載カメラCの画像情報とレーダRのレーダ情報から、将来の移動体の被制御量の推定値を算出する。移動体は、自車両の周囲に存在する移動体(障害物)である。移動体の被制御量は、例えば、移動体の軌道、速度、燃料消費量などである。
【0072】
移動体の軌道は、現時刻から将来にわたる期間(例えば、5秒間)において移動体が移動する道筋である。移動体の速度は、現時刻から将来にわたる期間において移動体が移動する際の速度である。移動体の燃料消費量は、現時刻から将来にわたる期間において移動体が消費する燃料消費量である。
【0073】
変換後の移動体予測モデルMcは、移動体予測モデルMを変換することにより得られる(例えば、
図2A、
図2B参照)。移動体予測モデルMは、多層のニューロン構造かつReLU構造の活性化関数を有し、自車両の周囲の移動体の動的挙動を予測するモデルである。
【0074】
移動体予測モデルMは、例えば、車載カメラCの画像情報(現在値、過去値)とレーダRのレーダ情報(現在値、過去値)とを入力として、将来の移動体の被制御量の推定値を出力するモデルである。画像情報(現在値、過去値)とレーダ情報(現在値、過去値)は、例えば、直近一定時間分の情報である。
【0075】
変換後の移動体予測モデルMcは、移動体予測モデルMに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて、各ニューロンの活性化関数が変換されたモデルである。移動体予測モデルMは、例えば、予め作成されてメモリ302、ディスク304などの記憶装置に記憶されている。
【0076】
具体的には、例えば、第1の推定部402は、移動体予測モデルMに基づいて、変換後の移動体予測モデルMcの各ニューロンの重み係数、バイアスとして、変換前の移動体予測モデルMの各ニューロンの重み係数、バイアスを設定する。また、第1の推定部402は、変換後の移動体予測モデルMcに入力される変数の上下限値として、移動体予測モデルMに入力される変数の上下限値を設定する。
【0077】
また、第1の推定部402は、変換後の移動体予測モデルMcから出力される変数の上下限値として、移動体予測モデルMから出力される変数の上下限値を設定する。また、第1の推定部402は、変換後の移動体予測モデルMcの各ニューロン(活性化関数)から出力される変数の上下限値として、移動体予測モデルMの各ニューロンから出力される変数の上下限値を設定する。
【0078】
入出力変数の上下限値は、例えば、移動体予測モデルMにChirp信号またはAPRBS信号を入力として与えることによって取得される、各入出力変数の最大値と最小値に基づき設定される。Chirp信号は、時刻に応じて周波数成分を連続的に変える正弦波の信号である。APRBS信号は、矩形波の振幅をランダムに組み合わせた信号である。Chirp信号やAPRBS信号によれば、網羅的な試験パターンを実現して、入出力変数の上下限値を精度よく設定することができる。また、各入出力変数の範囲を適切に限定することで、高速かつ高性能なモデル(変換後の移動体予測モデルMc)を生成することができる。
【0079】
ただし、移動体予測モデルMの変換は、制御装置101において行われてもよく、また、制御装置101とは異なる他のコンピュータにおいて行われてもよい。他のコンピュータにより行われた場合、制御装置101は、例えば、ユーザの操作入力により、または、他のコンピュータから受信することにより、変換後の移動体予測モデルMcを取得する。
【0080】
第2の推定部403は、自車両の被制御量を制御するための操作量の探索値から、将来の自車両の被制御量の推定値を算出する。自車両の被制御量は、例えば、自車両の軌道、速度、燃料消費量などである。自車両の軌道は、現時刻から将来にわたる期間において自車両が移動する道筋である。自車両の速度は、現時刻から将来にわたる期間において自車両が移動する際の速度である。自車両の燃料消費量は、現時刻から将来にわたる期間において自車両が消費する燃料消費量である。
【0081】
操作量は、例えば、ステアリング量、ブレーキ量、アクセル量などである。操作量の探索値は、被制御量を制御するための操作量の候補値に相当する。操作量の探索値は、例えば、最適化部404により予め定められた探索ルールに従って探索され、最適化部404から第2の推定部403に与えられる。将来の自車両の被制御量の推定値は、例えば、自車両を制御する際の次のステップの被制御量を表す。
【0082】
具体的には、例えば、第2の推定部403は、自車両モデルを用いて、自車両の被制御量を制御するための操作量の探索値から、将来の自車両の被制御量の推定値を算出する。ここで、自車両モデルは、自車両の操作量を入力として、自車両の動的挙動を予測するモデルである。
【0083】
自車両モデルは、運動方程式などの物理法則に基づき構築される数理モデルである。自車両モデルは、
図1で説明した「第2モデル」に相当する。例えば、自車両モデルは、自車両のステアリング量、ブレーキ量、アクセル量を入力として、自車両の軌道、速度(車速)、燃料消費量(燃費)の推定値を出力する。
【0084】
より詳細に説明すると、例えば、第2の推定部403は、kステップ前(kは、2以上の自然数)から1ステップ前までの操作量(過去値)と、現時刻の操作量の探索値(現在値)とを、自車両モデルに入力することによって、現時刻から将来にわたる期間(例えば、5秒間)における自車両の被制御量(軌道、速度、燃料消費量)の推定値を算出する。過去の各ステップの操作量(過去値)は、例えば、メモリ302、ディスク304などの記憶装置に記憶されている。
【0085】
最適化部404は、自車両の被制御量の目標値と自車両の被制御量の推定値と移動体(障害物)の被制御量の推定値とに基づいて、自車両の被制御量を制御するための操作量の値を決定する。具体的には、例えば、最適化部404は、自車両の被制御量(軌道、速度)の目標値に対する自車両の被制御量(軌道、速度)の推定値の誤差に基づいて、操作量の値を決定してもよい。これにより、自車両の被制御量(軌道、速度)の目標値(目標軌道、目標車速)への追従性を考慮して、操作量の値を決定することができる。
【0086】
また、最適化部404は、例えば、自車両の被制御量(軌道、速度)の推定値と移動体の被制御量(軌道、速度)の推定値とから特定される、自車両と移動体との位置関係に基づいて、操作量の値を決定してもよい。これにより、自車両と移動体との衝突可能性を考慮して、操作量の値を決定することができる。
【0087】
また、最適化部404は、例えば、自車両の被制御量(燃料消費量)の推定値と自車両の被制御量(燃料消費量)の推定値とに基づいて、操作量の値を決定してもよい。これにより、自車両と移動体との燃料消費量を考慮して、操作量の値を決定することができる。
【0088】
また、最適化部404は、例えば、操作量の変化量に基づいて、操作量の値を決定してもよい。ここで、操作量の変化量は、例えば、現在の操作量の値(現在値)と操作量の探索値との差分によって表される。これにより、ステアリング量、ブレーキ量、アクセル量などの変化量を考慮して、操作量の値を決定することができる。
【0089】
より詳細に説明すると、例えば、最適化部404は、操作量の探索値それぞれについて、評価値算出部405によって算出される制御評価値に基づいて、操作量の探索値の中から、自車両の被制御量を制御するための操作量の値を決定する。制御評価値は、自車両の被制御量を制御するためのコストを表す。
【0090】
ここで、評価値算出部405は、操作量の探索値それぞれについて、算出された自車両の被制御量の推定値と、自車両の被制御量の目標値と、移動体の被制御量の推定値とに基づいて、制御評価値を算出する。制御評価値は、例えば、値が低いほど評価が高いことを示す。
【0091】
具体的には、例えば、評価値算出部405は、自車両の被制御量(軌道、速度)の目標値に対する自車両の被制御量(軌道、速度)の推定値の誤差、および、自車両と移動体との位置関係に基づいて、制御評価値を算出してもよい。ここで、被制御量(軌道、速度)の目標値に対する推定値の誤差は、例えば、目標軌道および目標車速に基づく自車両の位置と、自車両の軌道および速度の推定値に基づく自車両の位置との誤差によって表される。
【0092】
例えば、各軌道(目標軌道、軌道の推定値)を現時刻から5秒間の軌道とする。この場合、評価値算出部405は、目標軌道および目標車速に基づいて、自車両の1秒ごとの位置を算出する。また、評価値算出部405は、自車両の軌道および速度の推定値に基づいて、自車両の1秒ごとの位置を算出する。そして、評価値算出部405は、1秒ごとの位置同士の誤差を合計することにより、被制御量(軌道、速度)の目標値に対する推定値の誤差を算出することにしてもよい。
【0093】
また、被制御量(軌道、速度)の目標値に対する推定値の誤差は、目標軌道に対する軌道の推定値の差分と、目標車速に対する速度の推定値の差分とを足し合わせたものであってもよい。目標軌道に対する軌道の推定値の差分は、例えば、軌道同士の形状の類似度によって表されてもよい。
【0094】
自車両と移動体との位置関係は、例えば、自車両の軌道の推定値と移動体の軌道の推定値との交差の有無によって表される。これにより、軌道が交差することによる自車両と移動体との衝突可能性を考慮して、制御評価値を算出することができる。
【0095】
また、自車両と移動体との位置関係は、自車両の軌道および速度の推定値に基づく自車両の位置と、移動体の軌道および速度の推定値に基づく移動体の位置との誤差によって表されてもよい。これにより、自車両と移動体との距離による衝突可能性を考慮して、制御評価値を算出することができる。
【0096】
また、評価値算出部405は、さらに、自車両の被制御量(燃料消費量)の推定値と、移動体の被制御量(燃料消費量)の推定値とに基づいて、制御評価値を算出してもよい。また、評価値算出部405は、さらに、操作量の変化量(操作量の現在値と探索値との差分)に基づいて、制御評価値を算出してもよい。
【0097】
より詳細に説明すると、例えば、評価値算出部405は、操作量の探索値それぞれについて、評価関数efを用いて、制御評価値を算出する。評価関数efは、例えば、下記式(11)のように、第1の項C1と、第2の項C2と、第3の項C3と、第4の項C4と、第5の項C5とを含み、各項C1~C5に重み付けしたコスト関数である。ただし、Eは、制御評価値である。a,b,c,d,eは、重み係数である。
【0098】
E=a*C1+b*C2+c*C3+d*C4+e*C5・・・(11)
【0099】
ここで、第1の項C1は、自車両の被制御量(軌道、速度)の目標値に対する自車両の被制御量(軌道、速度)の推定値の誤差を考慮する項である。第1の項C1の値は、例えば、被制御量(軌道、速度)の目標値に対する推定値の誤差が大きくなるほど、大きくなる。
【0100】
第2の項C2は、自車両の軌道の推定値と移動体の軌道の推定値との交差の有無を考慮する項である。第2の項C2の値は、例えば、自車両と移動体の軌道が交差する場合は「1」となり、交差しない場合は「0」となる。第3の項C3は、自車両の軌道および速度の推定値に基づく自車両の位置と、移動体の軌道および速度の推定値に基づく移動体の位置との誤差を考慮する項である。第3の項C3の値は、例えば、自車両と移動体の位置の誤差が大きくなるほど、大きくなる。
【0101】
第4の項C4は、自車両の燃料消費量の推定値と移動体の燃料消費量の推定値とを考慮する項である。第4の項C4の値は、例えば、自車両と移動体の燃料消費量が大きくなるほど、大きくなる。第5の項C5は、操作量の現在値と操作量の探索値との差分を考慮する項である。第5の項C5の値は、例えば、操作量の変化量が大きくなるほど、大きくなる。
【0102】
各重み係数a~eは、任意に設定可能である。例えば、各重み係数a~eは、項同士の値を適切に比較するために設定される(正規化)。また、各重み係数a~eは、各項の優先度合いに応じて設定される。例えば、重み係数bの値を大きくするほど、自車両と移動体の軌道が交差する場合の制御評価値が大きくなる。
【0103】
そして、最適化部404は、例えば、算出された制御評価値に基づいて、操作量の探索値の中から、被制御量を制御するための操作量の値を決定する。より詳細に説明すると、例えば、最適化部404は、操作量の探索値のうち、制御評価値が最小となる探索値を、自車両の被制御量を制御するための操作量の値に決定する。
【0104】
なお、最適化部404による操作量の探索は、例えば、最小となる制御評価値の変化量がほぼなくなるまで行われてもよく、また、指定の反復回数分行われてもよい。
【0105】
また、最適化部404は、決定した操作量の値を出力する。具体的には、例えば、最適化部404は、自律走行制御ユニットに対して、次のステップで被制御量を制御する際の操作量として、決定した操作量の値を出力する。自律走行制御ユニットは、自律走行を制御するための制御ユニットである。
【0106】
自律走行制御ユニットは、例えば、制御装置101(最適化部404)から出力される操作量の値に基づいて、自車両のステアリング量、ブレーキ量、アクセル量を調整することによって、自車両を制御する。自律走行制御ユニットは、例えば、ECU(Engine Control Unit)である。
【0107】
具体的には、例えば、自律走行制御ユニットにおいて、コントローラの制御に従って、各種アクチュエータ等により、次のステップの操作量(ステアリング量、ブレーキ量、アクセル量)が、出力された操作量の値に調整される。この結果、自動車の被制御量(例えば、軌道、速度、燃料消費量)が制御される。
【0108】
また、移動体予測モデルMに含まれるReLU構造の活性化関数は、例えば、Leaky ReLU構造であってもよい。Leaky ReLU構造は、関数への入力値が0以下の場合および0より大きい場合のいずれの場合も出力値が線形に変化し、0を境に傾きが異なる関数である。移動体予測モデルMに含まれる活性化関数をLeaky ReLU構造の活性化関数とすることで、移動体の動的挙動を予測する精度を向上させることができる。
【0109】
なお、制御装置101は、例えば、自動車(制御対象)の自律走行制御ユニットによって実現することにしてもよい。この場合、制御装置101は、例えば、決定した操作量の値に基づいて、自車両のステアリング量、ブレーキ量、アクセル量を調整することによって、自車両を制御する。また、制御装置101は、自動車(制御対象)の自律走行制御ユニットと通信可能な他のコンピュータによって実現されてもよい。他のコンピュータは、例えば、サーバであってもよく、スマートフォン、PC(Personal Computer)などであってもよい。
【0110】
また、制御装置101は、例えば、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によって実現することにしてもよい。
【0111】
(制御装置101の制御処理手順)
つぎに、制御装置101の制御処理手順について説明する。
【0112】
図5は、制御装置101の制御処理手順の一例を示すフローチャートである。
図5のフローチャートにおいて、まず、制御装置101は、自車両に搭載された車載カメラCから画像情報を取得する(ステップS501)。つぎに、制御装置101は、自車両に搭載されたレーダRからレーダ情報を取得する(ステップS502)。
【0113】
つぎに、制御装置101は、自車両のナビゲーションシステムから被制御量の目標値を取得する(ステップS503)。そして、制御装置101は、変換後の移動体予測モデルMcを用いて、取得した画像情報とレーダ情報から、将来の移動体の被制御量の推定値を算出する(ステップS504)。
【0114】
つぎに、制御装置101は、最適化処理を実行する(ステップS505)。最適化処理は、自車両の被制御量を制御するための操作量を最適化する処理である。最適化処理の具体的な処理手順については、
図6を用いて後述する。
【0115】
そして、制御装置101は、最適化処理において保存した仮の最適値である操作量の値を出力して(ステップS506)、本フローチャートによる一連の処理を終了する。
【0116】
つぎに、
図6を用いて、
図5に示したステップS505の最適化処理の具体的な処理手順について説明する。
【0117】
図6は、最適化処理の具体的な処理手順の一例を示すフローチャートである。
図6のフローチャートにおいて、まず、制御装置101は、自車両の被制御量を制御するための操作量の探索値を取得する(ステップS601)。そして、制御装置101は、自車両モデルを用いて、取得した操作量の探索値から、将来の自車両の被制御量の推定値を算出する(ステップS602)。
【0118】
つぎに、制御装置101は、評価関数efを用いて、自車両の被制御量(軌道、速度、燃料消費量)の推定値と、自車両の被制御量(軌道、速度)の目標値と、移動体の被制御量(軌道、速度、燃料消費量)の推定値と、操作量の変化量とに基づいて、制御評価値を算出する(ステップS603)。操作量の変化量は、例えば、操作量の現在値と操作量の探索値との差分によって表される。
【0119】
そして、制御装置101は、算出した制御評価値が制御評価値minより小さいか否かを判断する(ステップS604)。制御評価値minは、初期状態では「null」である。なお、ステップS604において、制御評価値minが初期状態の場合、制御装置101は、ステップS605に移行する。
【0120】
ここで、制御評価値が制御評価値min以上の場合(ステップS604:No)、制御装置101は、ステップS607に移行する。一方、制御評価値が制御評価値minより小さい場合(ステップS604:Yes)、制御装置101は、取得した操作量の探索値を、仮の最適値として保存する(ステップS605)。
【0121】
そして、制御装置101は、算出した制御評価値を制御評価値minとする(ステップS606)。つぎに、制御装置101は、操作量の探索を終了するか否かを判断する(ステップS607)。操作量の探索は、例えば、制御評価値minの変化量がほぼなくなるまで、または、指定の反復回数分行われる。
【0122】
ここで、操作量の探索を終了しない場合(ステップS607:No)、制御装置101は、ステップS601に戻って、新たな操作量の探索値を取得する。一方、操作量の探索を終了する場合には(ステップS607:Yes)、制御装置101は、最適化処理を呼び出したステップに戻る。
【0123】
これにより、制御装置101は、ReLU構造の活性化関数を有する移動体予測モデルMを、バイナリ変数を含む線形不等式関数を用いて変換した変換後の移動体予測モデルMcを用いて、移動体の動的挙動を高精度かつ高速に予測することができる。また、制御装置101は、移動体の動的挙動を考慮して、自車両の被制御量を目標値に追従させる操作量を探索することができる。
【0124】
以上説明したように、実施の形態にかかる制御装置101によれば、自車両に搭載された車載カメラCの画像情報とレーダRのレーダ情報とを取得し、変換後の移動体予測モデルMcを用いて、取得した画像情報とレーダ情報から、将来の移動体の被制御量の推定値を算出することができる。また、制御装置101によれば、自車両の被制御量を制御するための操作量の探索値から、将来の自車両の被制御量の推定値を算出することができる。自車両の被制御量の推定値は、例えば、自車両の操作量を入力として自車両の動的挙動を予測する自車両モデルを用いて、操作量の探索値から算出される。また、制御装置101によれば、自車両の被制御量の目標値を取得することができる。そして、制御装置101によれば、自車両の被制御量の目標値と自車両の被制御量の推定値と移動体の被制御量の推定値とに基づいて、自車両の被制御量を制御するための操作量の値を決定し、決定した操作量の値を出力することができる。操作量は、例えば、ステアリング量、ブレーキ量およびアクセル量である。
【0125】
これにより、制御装置101は、制御対象の周囲の移動体(障害物)の動的挙動を高精度に予測可能なモデル(変換後の移動体予測モデルMc)を用いて、高性能かつ高速な自律走行制御を実現することができる。例えば、制御装置101は、移動体との衝突を回避しつつ、自車両の被制御量をできるだけ目標値に追従させる自律走行制御を行うことができる。
【0126】
また、制御装置101によれば、操作量の探索値それぞれについて、自車両の被制御量の目標値と自車両の被制御量の推定値と移動体の被制御量の推定値とに基づいて、自車両の被制御量を制御するためのコストを表す制御評価値を算出し、算出した制御評価値に基づいて、操作量の探索値の中から、自車両の被制御量を制御するための操作量の値を決定することができる。
【0127】
これにより、制御装置101は、操作量の探索値の中から、自車両の被制御量を制御するためのコストが低い探索値を、自車両の被制御量を制御するための操作量の値に決定することができる。
【0128】
また、制御装置101によれば、自車両の被制御量(軌道、速度)の目標値に対する自車両の被制御量(軌道、速度)の推定値の誤差、および、自車両と移動体との位置関係に基づいて、制御評価値を算出することができる。
【0129】
これにより、制御装置101は、自車両の被制御量(軌道、速度)の目標値(目標軌道、目標車速)への追従性と、自車両と移動体との衝突可能性とを考慮して、自車両の被制御量を制御するための操作量の値を決定することができる。
【0130】
また、制御装置101によれば、自車両の軌道の推定値と移動体の軌道の推定値との交差の有無に基づいて、制御評価値を算出することができる。
【0131】
これにより、制御装置101は、軌道が交差することによる自車両と移動体の衝突可能性を考慮して、自車両の被制御量を制御するための操作量の値を決定することができる。
【0132】
また、制御装置101によれば、自車両の軌道および速度の推定値に基づく自車両の位置と、移動体の軌道および速度の推定値に基づく移動体の位置との誤差に基づいて、制御評価値を算出することができる。
【0133】
これにより、制御装置101は、自車両と移動体との距離による衝突可能性を考慮して、自車両の被制御量を制御するための操作量の値を決定することができる。
【0134】
また、制御装置101によれば、さらに、自車両の被制御量(燃料消費量)の推定値と、移動体の被制御量(燃料消費量)の推定値とに基づいて、制御評価値を算出することができる。
【0135】
これにより、制御装置101は、自車両や移動体の燃料消費量を抑えるように、自車両の被制御量を制御するための操作量の値を決定することができる。
【0136】
また、制御装置101によれば、さらに、操作量の現在値と探索値との差分に基づいて、制御評価値を算出することができる。
【0137】
これにより、制御装置101は、操作量を急激に変化させると、アクチュエータ等が故障する可能性があることを考慮して、操作量の急峻な変化を抑えるように、自車両の被制御量を制御するための操作量の値を決定することができる。
【0138】
また、制御装置101によれば、移動体予測モデルMに含まれる活性化関数を、Leaky ReLU構造の活性化関数とすることができる。
【0139】
これにより、制御装置101は、自車両の周囲の移動体の動的挙動を予測する精度を向上させることができる。
【0140】
これらのことから、実施の形態にかかる制御装置101によれば、自律走行時の軌道を最適化して車両の制御性能を向上させることができる。また、例えば、自律走行制御ユニットに制御装置101を実装することにより、オンボードで車両を実時間制御することが可能となる。
【0141】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【0142】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0143】
(付記1)多層のニューロン構造かつReLU構造の活性化関数を有し、制御対象に搭載されたセンサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の前記第1モデルと、
前記センサの情報と前記制御対象の被制御量の目標値とを取得し、前記変換後の前記第1モデルを用いて、前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、前記制御対象の被制御量の目標値と前記制御対象の被制御量の推定値と前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する制御部と、
を有することを特徴とする制御装置。
【0144】
(付記2)前記制御対象の被制御量の推定値は、前記制御対象の操作量を入力として前記制御対象の動的挙動を予測する第2モデルを用いて、前記操作量の候補値から算出される、ことを特徴とする付記1に記載の制御装置。
【0145】
(付記3)前記制御部は、
前記操作量の候補値それぞれについて、算出した前記制御対象の被制御量の推定値と、前記制御対象の被制御量の目標値と、前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するためのコストを表す制御評価値を算出し、
算出した前記制御評価値に基づいて、前記操作量の候補値の中から前記制御対象の被制御量を制御するための操作量の値を決定する、
ことを特徴とする付記1に記載の制御装置。
【0146】
(付記4)前記制御対象の被制御量は、前記制御対象の軌道および速度を含み、
前記移動体の被制御量は、前記移動体の軌道および速度を含み、
前記制御部は、
前記制御対象の被制御量の目標値に対する前記制御対象の被制御量の推定値の誤差、および、前記制御対象の被制御量の推定値と前記移動体の被制御量の推定値とから特定される前記制御対象と前記移動体との位置関係に基づいて、前記制御評価値を算出する、ことを特徴とする付記3に記載の制御装置。
【0147】
(付記5)前記位置関係は、前記制御対象の軌道の推定値と前記移動体の軌道の推定値との交差の有無によって表される、ことを特徴とする付記4に記載の制御装置。
【0148】
(付記6)前記位置関係は、前記制御対象の軌道および速度の推定値に基づく前記制御対象の位置と、前記移動体の軌道および速度の推定値に基づく前記移動体の位置との誤差によって表される、ことを特徴とする付記4に記載の制御装置。
【0149】
(付記7)前記制御対象の被制御量は、前記制御対象の燃料消費量を含み、
前記移動体の被制御量は、前記移動体の燃料消費量を含み、
前記制御部は、
さらに、前記制御対象の燃料消費量の推定値と前記移動体の燃料消費量の推定値とに基づいて、前記制御評価値を算出する、ことを特徴とする付記4に記載の制御装置。
【0150】
(付記8)前記制御部は、
さらに、前記操作量の現在値と前記操作量の候補値との差分に基づいて、前記制御評価値を算出する、ことを特徴とする付記4に記載の制御装置。
【0151】
(付記9)前記操作量は、ステアリング量、ブレーキ量およびアクセル量である、ことを特徴とする付記1に記載の制御装置。
【0152】
(付記10)前記制御部は、
決定した前記操作量の値を出力する、ことを特徴とする付記1に記載の制御装置。
【0153】
(付記11)前記センサの情報は、前記制御対象に搭載されたカメラの画像情報を含む、ことを特徴とする付記1に記載の制御装置。
【0154】
(付記12)前記センサの情報は、前記制御対象に搭載されたLiDAR、ミリ波レーダおよび超音波センサの少なくともいずれかの情報を含む、ことを特徴とする付記1に記載の制御装置。
【0155】
(付記13)前記入出力変数の上下限値は、前記第1モデルにChirp信号またはAPRBS信号を入力として与えることによって取得される入出力変数の最大値と最小値とに基づき設定される、ことを特徴とする付記1に記載の制御装置。
【0156】
(付記14)前記活性化関数は、Leaky ReLU構造である、ことを特徴とする付記1に記載の制御装置。
【0157】
(付記15)前記制御対象の被制御量の目標値は、前記制御対象に搭載されたナビゲーションシステムから取得される、ことを特徴とする付記1に記載の制御装置。
【0158】
(付記16)制御対象に搭載されたセンサの情報と前記制御対象の被制御量の目標値とを取得し、
多層のニューロン構造かつReLU構造の活性化関数を有し、前記センサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の前記第1モデルを用いて、取得した前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、
前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、
取得した前記制御対象の被制御量の目標値と、算出した前記制御対象の被制御量の推定値と、算出した前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する、
処理をコンピュータが実行することを特徴とする制御方法。
【0159】
(付記17)制御対象に搭載されたセンサの情報と前記制御対象の被制御量の目標値とを取得し、
多層のニューロン構造かつReLU構造の活性化関数を有し、前記センサの情報を入力として前記制御対象の周囲の移動体の動的挙動を予測する第1モデルに基づき、各ニューロンの重み係数、バイアスおよび入出力変数の上下限値が設定され、バイナリ変数を含む線形不等式関数を用いて前記各ニューロンの活性化関数が変換された変換後の前記第1モデルを用いて、取得した前記センサの情報から、将来の前記移動体の被制御量の推定値を算出し、
前記制御対象の被制御量を制御するための操作量の候補値から、将来の前記制御対象の被制御量の推定値を算出し、
取得した前記制御対象の被制御量の目標値と、算出した前記制御対象の被制御量の推定値と、算出した前記移動体の被制御量の推定値とに基づいて、前記制御対象の被制御量を制御するための操作量の値を決定する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【符号の説明】
【0160】
101 制御装置
110 操作量情報
200,210,M 移動体予測モデル
220,Mc 変換後の移動体予測モデル
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
310 ネットワーク
401 取得部
402 第1の推定部
403 第2の推定部
404 最適化部
405 評価値算出部
C 車載カメラ
R レーダ