IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社J-QuAD DYNAMICSの特許一覧 ▶ 国立大学法人名古屋大学の特許一覧

<>
  • 特開-移動体の制御装置 図1
  • 特開-移動体の制御装置 図2
  • 特開-移動体の制御装置 図3
  • 特開-移動体の制御装置 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023048674
(43)【公開日】2023-04-07
(54)【発明の名称】移動体の制御装置
(51)【国際特許分類】
   B60W 30/00 20060101AFI20230331BHJP
   G08G 1/16 20060101ALI20230331BHJP
【FI】
B60W30/00
G08G1/16 C
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021158118
(22)【出願日】2021-09-28
(71)【出願人】
【識別番号】519373914
【氏名又は名称】株式会社J-QuAD DYNAMICS
(71)【出願人】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(74)【代理人】
【識別番号】100140486
【弁理士】
【氏名又は名称】鎌田 徹
(74)【代理人】
【識別番号】100170058
【弁理士】
【氏名又は名称】津田 拓真
(74)【代理人】
【識別番号】100142918
【弁理士】
【氏名又は名称】中島 貴志
(72)【発明者】
【氏名】伊藤 章
(72)【発明者】
【氏名】鈴木 達也
(72)【発明者】
【氏名】奥田 裕之
(72)【発明者】
【氏名】本田 康平
【テーマコード(参考)】
3D241
5H181
【Fターム(参考)】
3D241BA15
3D241BA26
3D241BA33
3D241BA55
3D241BA60
3D241BB03
3D241BB16
3D241BB45
3D241BB46
3D241CD05
3D241CD10
3D241CE10
3D241DB01Z
3D241DD14Z
5H181AA01
5H181BB13
5H181CC04
5H181CC14
5H181FF03
5H181FF14
5H181FF27
5H181LL04
5H181LL09
(57)【要約】
【課題】移動体に実行させるタスクの切り換えをスムーズに行うことを可能としながらも、処理負荷の増大を抑制することのできる制御装置を提供する。
【解決手段】制御装置10は、車両20に実行させるタスクを定式化した制御モデル、を生成するモデル生成部131と、制御モデルを用いたモデル予測制御を行うことにより、車両20にタスクを実行させるタスク処理部132と、を備える。先の第1タスクの実行時に用いられる制御モデルの状態空間を第1状態空間とし、後の第2タスクの実行時に用いられる制御モデルの状態空間を第2状態空間としたときに、タスク処理部132は、第1状態空間及び第2状態空間の両方に共通して含まれる状態変数の値を、第2タスクの実行時において許容される所定範囲内に収める処理、である遷移処理を実行した後に、車両20に第2タスクを実行させ始める。
【選択図】図1
【特許請求の範囲】
【請求項1】
移動体(20)の制御装置(10)であって、
前記移動体に実行させるタスクを定式化した制御モデル、を生成するモデル生成部(131)と、
前記制御モデルを用いたモデル予測制御を行うことにより、前記移動体にタスクを実行させるタスク処理部(132)と、を備え、
前記移動体に実行させるタスクが、第1タスクから第2タスクへと切り換えられる際において、
前記第1タスクの実行時に用いられる前記制御モデルの状態空間を第1状態空間とし、
前記第2タスクの実行時に用いられる前記制御モデルの状態空間を第2状態空間としたときに、
前記タスク処理部は、
前記第1状態空間及び前記第2状態空間の両方に共通して含まれる状態変数の値を、前記第2タスクの実行時において許容される所定範囲内に収める処理、である遷移処理を実行した後に、前記移動体に前記第2タスクを実行させ始めることを特徴とする制御装置。
【請求項2】
前記移動体に実行させるタスクが、前記第1タスクから前記第2タスクへと切り換えられる際において、
前記モデル生成部は、
前記第1状態空間及び前記第2状態空間の両方を含む状態空間を第3状態空間としたときに、
前記第3状態空間の少なくとも一部において状態ベクトルを変化させる前記制御モデル、である中間制御モデルを生成し、
前記タスク処理部は、
前記中間制御モデルを用いたモデル予測制御を行いながら、前記遷移処理を実行することを特徴とする、請求項1に記載の制御装置。
【請求項3】
前記モデル生成部は、
前記タスク処理部によって前記遷移処理が実行されるように、前記中間制御モデルに所定の制約条件を含ませることを特徴とする、請求項2に記載の制御装置。
【請求項4】
前記モデル生成部は、
前記第2タスクの実行時に用いられる評価関数、に含まれるペナルティ関数を、前記制約条件として前記中間制御モデルに含ませることを特徴とする、請求項3に記載の制御装置。
【請求項5】
前記制御モデルの生成に用いられるモデル要素、が記憶された記憶部(140)を更に備えることを特徴とする、請求項1乃至4のいずれか1項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、移動体の制御装置に関する。
【背景技術】
【0002】
移動体の動作を制御するにあたっては、例えば「目的地に到達する」という目的を達成するために、移動体に行わせるタスクを切り換えながら順次実行させて行く必要がある。例えば移動体が自動運転車両である場合には、上記のタスクには、「直進」や「レーンチェンジ」等が含まれ得る。従って、移動体の制御装置には、複数のタスクを実行できるような制御系を構築しておくことが求められる。
【0003】
このような制御系として、移動体に実行させる全てのタスクを包含するような巨大な制御系を構築しておくことも考えられる。しかしながら、そのような制御系とした場合には、新たなタスクを追加しようとすると制御系の全体を構築しなおさなければならず、スケーラビリティの低さが問題となる。更に、制御に用いる状態変数等の数が膨大なものとなるので、制御装置の処理負荷が増大するという問題も生じ得る。
【0004】
上記問題を解決するための方法として、下記特許文献1には、実行されるタスクの処理内容を、タスクごとの制御系として個別にモジュール化しておき、タスクに対応したモジュールを選択して実行するという方法が記載されている。また、下記特許文献2には、タスクを実行するためのサブコントローラを予め複数用意しておき、タスクの種類等に応じて選択されたサブコントローラをアクティブにし動作させる、という方法が記載されている。
【0005】
このように、実行するタスクに応じて制御系を切り換えて行く構成とすれば、新たなタスクを追加することが容易となるため、上記のようなスケーラビリティの問題を解決することができる。また、制御系は、対応するタスクの実行に必要な最低限の規模とすることができるので、制御装置の処理負荷を軽減することもできる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2020-175886号公報
【特許文献2】特表2020-529664号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、タスクを切り換える際における移動体及びその周囲の状況によっては、制御系を切り換えることが難しい場合がある。例えば、自動運転車両に実行させるタスクを「直進」から「レーンチェンジ」へと切り換える際において、移動先のレーンを走行する他車両の位置によっては、直ちにレーンチェンジを開始すると車両同士の衝突が生じ得る。
【0008】
このような問題を回避するためには、「直進」及び「レーンチェンジ」の全体を包含する制御系を構築することも考えられる。しかしながら、その場合には、予め用意しておく制御系の数が膨大になることに加えて、制御装置の処理負荷も結局は増加してしまう。
【0009】
本開示は、移動体に実行させるタスクの切り換えをスムーズに行うことを可能としながらも、処理負荷の増大を抑制することのできる制御装置、を提供することを目的とする。
【課題を解決するための手段】
【0010】
本開示に係る制御装置は、移動体(20)の制御装置(10)であって、移動体に実行させるタスクを定式化した制御モデル、を生成するモデル生成部(131)と、制御モデルを用いたモデル予測制御を行うことにより、移動体にタスクを実行させるタスク処理部(132)と、を備える。移動体に実行させるタスクが、第1タスクから第2タスクへと切り換えられる際において、第1タスクの実行時に用いられる制御モデルの状態空間を第1状態空間とし、第2タスクの実行時に用いられる制御モデルの状態空間を第2状態空間としたときに、タスク処理部は、第1状態空間及び第2状態空間の両方に共通して含まれる状態変数の値を、第2タスクの実行時において許容される所定範囲内に収める処理、である遷移処理を実行した後に、移動体に第2タスクを実行させ始める。
【0011】
上記における「共通して含まれる状態変数」の値を収めておくべき許容範囲は、多くの場合、第1タスクの実行時と第2タスクの実行時とで互いに異なる。このため、第1タスクの実行時においては許容範囲内に収まっていた状態変数の値が、第2タスクに切り換えると許容範囲から外れてしまうことが考えられる。
【0012】
しかしながら、上記構成の制御装置では、「共通して含まれる状態変数」の値が、遷移処理の実行により、第2タスクの実行時において許容される所定範囲内に収められた状態となる。このような状態となった後に第2タスクへの切り換えが行われるので、タスクの切り換えに伴い、一部の状態変数が許容範囲から外れてしまうことが無い。これにより、移動体に実行させるタスクの切り換えをスムーズに行うことが可能となる。
【0013】
尚、遷移処理の実行時においては、制御モデルに含まれる状態変数等の数が増加することもある。しかしながら、状態変数等の増加は一時的なものであるから、平均的に見れば、制御装置の処理負荷は抑制される。
【発明の効果】
【0014】
本開示によれば、移動体に実行させるタスクの切り換えをスムーズに行うことを可能としながらも、処理負荷の増大を抑制することのできる制御装置、が提供される。
【図面の簡単な説明】
【0015】
図1図1は、本実施形態に係る制御装置の構成を、ブロック図として模式的に表した図である。
図2図2は、状態空間の切り換えについて説明するための図である。
図3図3は、状態空間の切り換えについて説明するための図である。
図4図4は、本実施形態に係る制御装置によって実行される処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0017】
本実施形態に係る制御装置10は、移動体の動作を制御するための装置として構成されている。制御対象である移動体としては、例えば、道路を走行する車両や、空中を飛行するドローン等を挙げることができる。以下では、移動体が自動運転車両である場合について説明するが、制御対象である移動体の種類としては特に限定されない。
【0018】
図1は、制御装置10の構成を、ブロック図として模式的に表した図である。同図には、制御対象である車両20等を示すブロックも図示されている。車両20は、運転者の操作によることなく、自律的な走行を行うことが可能な自動運転車両として構成された車両である。尚、制御装置10は、車両20を走行させるために必要な運転操作の全てを担うものであるが、必要な運転操作の一部のみを担うものであってもよい。
【0019】
本実施形態に係る制御装置10は、CPU、ROM、RAM等を備えたコンピュータシステムとして構成されており、その全体が車両20に搭載されている。しかしながら、制御装置10の構成はこのようなものに限定されない。例えば、以下に説明する制御装置10の機能が、互いに双方向の通信を行う複数のコンピュータシステムにより実現される構成であってもよい。また、制御装置10の機能の全部または一部が、車両20とは異なる位置に設置されたクラウドサーバーにより実現される構成であってもよい。
【0020】
図1に示されるように、制御装置10は、機能的なブロックとして、統括部100と、タスクモジュール部120と、制御実行部130と、記憶部140と、環境理解部150と、自己位置推定部160と、を備えている。
【0021】
統括部100は、制御装置10が行う処理の全体を統括し、所謂「スーパーバイザ」として機能する部分である。統括部100は、例えば乗員から入力される要求等に応じて、車両20によって達成される目的を設定し、当該目的を達成するために順次実行すべき複数のタスクを設定する。
【0022】
上記における「入力される要求」とは、例えば、車両20の目的地である。この場合、「車両20によって達成される目的」とは、車両20を当該目的地まで到達させることである。また、「当該目的を達成するために順次実行すべき複数のタスク」には、例えば、直進やレーンチェンジ等が含まれる。
【0023】
図1の例では、統括部100に付随するブロックとして、ルート計画生成部111と、レーン計画生成部112と、が設けられている。ルート計画生成部111は、乗員が設定した目的地に応じて、現在地から目的地まで車両20をどのような経路で走行させるべきかを示す計画、であるルート計画を生成する部分である。ルート計画生成部111は、統括部100からの要求に応じてルート計画を生成する。
【0024】
ルート計画生成部111で作成されたルート計画は、レーン計画生成部112に送信される。レーン計画生成部112は、ルート計画に示される経路の各部において、車両20にどのレーン(車線)を走行させるのかを示す計画、であるレーン計画を作成する部分である。作成されたレーン計画は統括部100へと送信される。
【0025】
統括部100は、必要なタスクを切り換えながら順次車両20に実行させることで、例えば上記のレーン計画に沿った車両20の走行を実現する。統括部100は、次に述べるタスクモジュール部120の各部へと行動指示を送信し、これによりそれぞれのタスクを実行させる。
【0026】
タスクモジュール部120は、統括部100から送信される上記行動指示に基づいて、車両20にタスクを実行させる部分である。本実施形態では、タスクの実行に必要な処理がタスク毎に分けてモジュール化されており、タスクモジュール部120は当該モジュールの集合体となっている。図1では、当該モジュールを示すブロックのそれぞれに、「121」乃至「125」の符号が付してある。例えば、符号「121」が付されたブロックは、車両20に「直進」のタスクを実行させるモジュールを表している。また、符号「122」が付されたブロックは、車両20に「レーンチェンジ」のタスクを実行させるモジュールを表している。尚、タスクモジュール部120は、上記のようなモジュールを多数有しているのであるが、図1においてはその一部のみが図示されている。
【0027】
車両20に対し、例えば「直進」のタスクに続いて「レーンチェンジ」のタスクを順次実行させる際には、統括部100は、先ず符号「121」が付されたブロックに行動指示を送信し、当該ブロックによって車両20に「直進」のタスクを実行させる。その後、統括部100は、符号「122」が付されたブロックに行動指示を送信し、当該ブロックによって車両20に「レーンチェンジ」のタスクを実行させる。
【0028】
制御実行部130は、車両20にタスクを実行させるために必要となる制御、具体的にはモデル予測制御を実行する部分である。タスクモジュール部120が有するそれぞれのブロックは、対応するタスクの実行に必要な制御条件を制御実行部130に入力する。この制御条件には、例えば、車両20を走行させるべき軌道や、車両20が維持すべき速度範囲、他車両との位置関係等が含まれる。制御実行部130は、入力された制御条件に合致した制御が行われるよう、タスクを定式化した制御モデルを生成し、当該制御モデルを用いてモデル予測制御を実行する。後に説明するように、制御モデルには、車両20及びその周囲の状態についての状態方程式や、最適な操作量を選択するための評価関数等が含まれる。
【0029】
制御実行部130は、モデル生成部131と、タスク処理部132と、を備えている。モデル生成部131は、上記のように、車両20に実行させるタスクを定式化した制御モデルを生成する処理を行う部分である。タスク処理部132は、モデル生成部131により生成された制御モデルを用いてモデル予測制御を行い、これにより車両20にタスクを実行させる処理を行う部分である。モデル生成部131及びタスク処理部132のそれぞれで行われる具体的な処理の内容については後に説明する。
【0030】
図1において符号「40」が付されているブロックは、車両20の乗員に対し情報を通知するためのインターフェイスを表している。このようなインターフェイスとしては、例えば車室内に設置されたタッチパネル等を用いることができる。制御装置10は、当該インターフェイスを介して、車両20の走行状況や走行経路等を乗員に通知することができる。乗員に通知される情報は、図1に示されるように制御実行部130から送信されてもよいが、制御実行部130とは異なる部分から送信されてもよい。
【0031】
記憶部140は、制御装置10に設けられた不揮発性の記憶装置であって、例えばHDDやSSDである。記憶部140には、モデルプール141、評価関数プール142、及び制約条件プール143、からなる3つのデータベースが記憶されている。
【0032】
モデルプール141は、モデル生成部131が制御モデルを生成する際に用いるモデル要素、が複数記憶されているデータベースである。評価関数プール142は、モデル予測制御の実行時に用いられる評価関数、が複数記憶されているデータベースである。制約条件プール143は、モデル予測制御の実行時における制約条件、が複数記憶されているデータベースである。それぞれのデータベースに記憶されている情報は、モデル生成部131によって必要に応じて読み込まれ、制御モデルを生成するための要素として用いられるものである。記憶部140には、上記以外の情報が記憶されていてもよい。
【0033】
図1において符号「30」が付されているブロックは、車両20が走行する際に刻一刻と変化する周囲の環境(状況)、を模式的に表している。当該ブロックのことを、以下では「環境30」とも表記する。環境30を示す情報は、例えば、車両20に搭載されたカメラやレーダー等の各種センサによって測定され、制御に必要な情報として制御装置10へと入力される。環境30を示す情報の一部は、周囲の車両から車々間通信によって取得されてもよく、道路に設置されたインフラから通信によって取得されてもよい。
【0034】
環境理解部150は、環境30を示す上記情報の入力を受ける部分である。環境理解部150は、当該情報を適宜処理することで、車両20及び周囲における各種状態を把握する。環境理解部150によって把握された「状態」の一部は、制御実行部130に入力され、タスク処理部132が実行するモデル予測制御に供される。また、環境理解部150によって把握された「状態」の一部を示す情報は、自己位置推定部160にも入力される。
【0035】
自己位置推定部160は、環境理解部150から入力された情報に基づいて、車両20の現在の走行位置を推定する部分である。自己位置推定部160によって推定された走行位置は、統括部100へと入力される。統括部100は、これにより車両20の現在の走行位置を把握しながら、車両20を目的地に到達させるために必要な処理(具体的には、タスクの切り換え)を適切に行うことができる
【0036】
制御装置10によって実行される具体的な処理について説明する。以下では、車両20に対して「直進」及び「レーンチェンジ」を順に実行させる場合の例について説明する。先に実行させる「直進」のタスクを、以下では「第1タスク」とも称し、続いて実行させる「レーンチェンジ」のタスクを、以下では「第2タスク」とも称する。尚、第1タスク及び第2タスクの組み合わせは、上記以外であってもよい。
【0037】
車両20にいずれのタスクを実行させる場合においても、モデル生成部131は、当該タスクを定式化した制御モデルを予め生成する。制御モデルには、例えば以下の式(1)で示されるような状態方程式が含まれる。
【数1】
【0038】
式(1)に示されるxは、複数の状態変数を要素とする状態ベクトルである。xに含まれる状態変数の種類や数は、タスクに応じて適宜設定される。この例では、第1タスクの実行時には、下の式(2)に示されるxV1を状態ベクトルとする状態方程式が定式化されるものとする。また、第2タスクの実行時には、式(2)に示されるxV2を状態ベクトルとする状態方程式が定式化されるものとする。
【数2】
【0039】
この例において、xV1は、x、x、x、及びxからなる4つの状態変数を要素とする状態ベクトルである。xV1が変化し得る範囲として表現される状態空間、すなわち、第1タスクの実行時に用いられる制御モデルの状態空間のことを、以下では「第1状態空間」とも称する。
【0040】
この例において、xV2は、x、x、x、及びxからなる4つの状態変数を要素とする状態ベクトルである。xV2が変化し得る範囲として表現される状態空間、すなわち、第2タスクの実行時に用いられる制御モデルの状態空間のことを、以下では「第2状態空間」とも称する。
【0041】
やx等の状態変数のそれぞれは、モデル予測制御の実行時において参酌すべき状態を表すパラメータである。本実施形態のように、制御対象である移動体が車両20である場合には、状態変数には、例えば前方を走行する他車両との間の車間距離や、レーンの境界を示す白線までの横方向に沿った距離、及び、隣のレーンを走行する他車両の位置等が含まれ得る。
【0042】
尚、xV1の要素数及びxV2の要素数は、いずれも実際には4よりも多いのであるが、簡便化するために、ここでは上記のようにそれぞれの要素数が4である場合の例について説明する。
【0043】
式(1)の右辺に示されるfは、状態ベクトルであるxと、操作量を示すuとの関係を示す関数である。本実施形態のように、制御対象である移動体が車両20である場合には、操作量uには、例えば、操舵角やアクセル開度等が含まれ得る。uはスカラーであるが、ベクトルであってもよい。
【0044】
車両20にタスクを実行させる際において、タスク処理部132は、式(1)の状態方程式を用いて、操作量uに対応した状態ベクトルxの変化を予測する。また、得られた状態ベクトルxの変化について、評価関数を用いて評価値を算出する。タスク処理部132は、複数の操作量uのそれぞれについて、状態ベクトルの変化及びその評価値を算出し、評価値が最も小さくなるような操作量uを、実際の操作量として採用する。タスク処理部132は、以上のような処理を制御周期毎に繰り返して行く制御、すなわちモデル予測制御を実行しながら、車両20にタスクを実行させる。
【0045】
図2を参照しながら、第1タスクから第2タスクへの切り換え時において実行される制御について説明する。図2に示されるXの軸は、xV1及びxV2のうちxV1のみに含まれる状態変数、すなわち、x及びxの2つの状態変数で表現される状態空間を示す軸である。尚、Xは、実際には2次元の状態空間なのであるが、図2ではこれを1軸の状態空間として模式的に図示している。
【0046】
図2に示されるXの軸は、xV1及びxV2のうちxV2のみに含まれる状態変数、すなわち、x及びxの2つの状態変数で表現される状態空間を示す軸である。尚、Xは、実際には2次元の状態空間なのであるが、図2ではこれを1軸の状態空間として模式的に図示している。
【0047】
図2に示されるXの軸は、xV1及びxV2の両方に含まれる状態変数、すなわち、x及びxの2つの状態変数で表現される状態空間を示す軸である。尚、Xは、実際には2次元の状態空間なのであるが、図2ではこれを1軸の状態空間として模式的に図示している。尚、第1タスク及び第2タスクは連続して実施されるものであるから、両タスクにおいてこのように共通する状態変数が必ず存在している。
【0048】
図2において、先に述べた第1状態空間(x、x、x、x)はX-X平面で表現されることとなる。同様に、先に述べた第2状態空間(x、x、x、x)はX-X平面で表現されることとなる。
【0049】
第1タスクの実行時においては、状態ベクトルxV1に含まれる各状態変数は、第1状態空間であるX-X平面に沿って変化して行く。図2において符号「SP1」が付された太線は、第1状態空間のうち、第1タスクの実行時において変化する各状態変数のそれぞれについて許容される範囲を表している。第1状態空間のうち当該範囲の内側の空間のことを、以下では「許容範囲SP1」とも称する。車両20に第1タスクを実行させるにあたり、モデル生成部131は、状態ベクトルxV1が許容範囲SP1から逸脱することのないように、所定の制約条件を定式化し、これを式(1)の状態方程式と共に制御モデルに含めておく。これにより、タスク処理部132が、当該制御モデルを用いて第1タスクを実行させているときには、状態ベクトルxV1は、図2に示される許容範囲SP1の内側において、X-X平面に沿って変化して行くこととなる。
【0050】
第2タスクの実行時においては、状態ベクトルxV2に含まれる各状態変数は、第2状態空間であるX-X平面に沿って変化して行く。図2において符号「SP2」が付された太線は、第2状態空間のうち、第2タスクの実行時において変化する各状態変数のそれぞれについて許容される範囲を表している。第2状態空間のうち当該範囲の内側の空間のことを、以下では「許容範囲SP2」とも称する。車両20に第2タスクを実行させるにあたり、モデル生成部131は、状態ベクトルxV2が許容範囲SP2から逸脱することのないように、所定の制約条件を定式化し、これを式(1)の状態方程式に加えて制御モデルに含めておく。これにより、タスク処理部132が、当該制御モデルを用いて第2タスクを実行させているときには、状態ベクトルxV2は、図2に示される許容範囲SP2の内側において、X-X平面に沿って変化して行くこととなる。
【0051】
第1タスク及び第2タスクのいずれを実行させる際においても、Xの軸に沿った状態変数であるx、xは、モデル予測制御において用いられることとなる。ただし、許容範囲SP1と許容範囲SP2とを対比すると明らかなように、第1タスクの実行時においてx等につき許容される範囲と、第2タスクの実行時においてx等につき許容される範囲と、は互いに異なっている。例えば、xが、隣のレーンを走行する他車両の位置を示す状態変数である場合には、「直進」である第1タスクの実行時においては、xの許容範囲は比較的広くなる一方で、「レーンチェンジ」である第2タスクの実行時においては、xの許容範囲は(衝突回避のために)比較的狭くなる。
【0052】
図2に示される「BD」は、許容範囲SP2のうち、Xの軸に沿った上限値を表している。尚、このような上限値は、実際にはx及びxのそれぞれについて個別に設定されているのであるが、図2においては、簡便のためにx及びxの共通の上限値としてBDが描かれている。
【0053】
図2に示される状態ST1は、第1状態空間のうち許容範囲SP1の内側にある状態であり、且つ、BDよりも上方側にある状態を表している。このような状態ST1で第1タスクを実行させているときに、タスクの切り換えを行って直ちに第2タスクを実行させ始めた場合には、その時点で、状態変数x、xが許容範囲SP2を逸脱した状態となってしまう。その結果、他車両との衝突等、好ましくない事態が生じてしまう可能性がある。
【0054】
そこで、本実施形態に係る制御装置10のタスク処理部132は、第1状態空間及び第2状態空間の両方に共通して含まれる状態変数(つまり、Xの軸上の状態変数x、x)の値を、第2タスクの実行時において許容される所定範囲内(つまり、BDよりも下方側の許容範囲SP2内)に収める処理、である遷移処理を実行し、その後に、車両20に第2タスクを実行させ始めるように構成されている。
【0055】
ここで、第1状態空間及び第2状態空間の両方を含む状態空間、すなわち、x、x、x、x、x、xからなる6つの状態変数を要素とする状態空間のことを、以下では「第3状態空間」とも称する。第3状態空間において変化する状態ベクトルを「xV3」とすると、xV3は以下の式(3)のように表現される。
【数3】
【0056】
図2において符号「SP32」が付された範囲は、上記の第3状態空間のうち、x等の各要素のそれぞれが許容範囲SP1及び許容範囲SP2の両方に収まるような範囲を表している。第3状態空間のうちこのような範囲のことを、以下では「許容範囲SP32」とも称する。上記の遷移処理が実行されると、車両20及びその周囲の状態を示す状態ベクトルは、図2の状態ST1から状態ST3へと変化する。状態ST3は、許容範囲SP32の内側にあるので、先に述べたBDよりも下方側となっている。つまり、Xの軸上の状態変数x、xは、遷移処理の実行に伴い、許容範囲SP2の内側に収まることとなる。
【0057】
遷移処理が実行され、これにより状態ST3となった後であれば、車両20に第2タスクを実行させ始めたとしても、一部の状態変数が許容範囲SP2を逸脱することは無い。このため、第2タスクへの切り換えはスムーズにかつ安全に行われる。その後、車両20等の状態は、X-X平面上の(つまり第2状態空間の)状態ST2へと移行することとなる。
【0058】
遷移処理の具体的な方法について、図3を参照しながら説明する。図3に示されるX、X、X、SP1、SP2、ST1、ST3のぞれぞれは、いずれも図2に示されるものと同じである。
【0059】
車両20に第1タスクを実行させており、車両20等の状態が状態ST1となっているときに、第2タスクへの切り換え要求が統括部100から発信された場合の例について説明する。このとき、制御実行部130にタスクモジュール部120から送信される制御信号は、第1タスクの「直進」から、第2タスクの「レーンチェンジ」へと切り換わる。
【0060】
以下の式(4)は、第1タスクの実行時において、モデル予測制御で評価値Jを算出するために用いられる評価関数である。第1タスクの実行時において、タスク処理部132は、式(4)を用いて算出される評価値Jの値が最小となるようにモデル予測制御を行いながら、車両20に第1タスクを実行させる。
【数4】
【0061】
式(4)の右辺第1項のJは、例えば、車両20の消費エネルギーの大きさを示す指標を算出する項であり、予測ホライズンの各時点における状態ベクトルの値等の関数として表現される項である。Jを含む式で評価関数を算出することで、第1タスクの実行に伴う車両20の消費エネルギーを抑制することができる。尚、評価関数としては、上記とは異なる関数を用いることもできる。例えば、車両20における乗り心地の悪さを示す指標(振動エネルギー等)を算出するような項として、上記のJを定式化してもよい。
【0062】
式(4)の右辺第2項のPは、第1タスクの実行時における制約条件を示す項であり、当該制約条件をペナルティ関数の形で表現した項である。図3に示される許容範囲SP1は、このペナルティ関数により設定される。一部の状態変数が許容範囲SP1を逸脱する場合には、Pが大きな値として算出されることとなる。
【0063】
先に述べたように、記憶部140の評価関数プール142には、モデル予測制御の実行時に用いられる評価関数の候補が多数記憶されている。また、制約条件プール143には、モデル予測制御の実行時における制約条件の候補が多数記憶されている。第1タスクを開始する前に、モデル生成部131は、上記候補の中から、目的に応じた適切な評価関数及び制約条件を選択して用いることで、式(4)のように評価関数を定式化し、当該評価関数及び式(1)の状態方程式を用いて制御モデルを生成する。
【0064】
第2タスクについても同様である。第2タスクを開始する前に、モデル生成部131は、目的に応じた適切な候補を選択して以下の式(5)のように評価関数を定式化し、当該評価関数及び式(1)の状態方程式を用いて制御モデルを生成する。式(5)のJは、車両20の消費エネルギーの大きさ等を示す指標を算出する項であり、Pは、第2タスクの実行時における制約条件を示す項である。図3に示される許容範囲SP2は、このペナルティ関数Pにより設定される。
【数5】
【0065】
第1タスクから第2タスクへの切り換え時において、モデル生成部131は、式(5)のように第2タスクを定式化して制御モデルを生成する。ただし、タスク処理部132は、当該制御モデルを用いたモデル予測制御を直ちには実行しない。
【0066】
モデル生成部131は、上記のように第2タスクを定式化して制御モデルを生成すると共に、第3状態空間において状態ベクトルを変化させる制御モデルを生成する。当該制御モデルのことを、以下では「中間制御モデル」とも称する。モデル生成部131は、状態ベクトルが第3状態空間の全体ではなく一部領域のみにおいて変化するように制約条件を設定し、当該制約条件を含む形で上記の中間制御モデルを生成する。
【0067】
図3において符号「SP31」が付された範囲は、上記の「一部領域」、すなわち、中間制御モデルを用いたモデル予測制御の実行時において、状態ベクトルが変化し得る範囲を表している。当該範囲のことを、以下では「許容範囲SP31」とも称する。このような許容範囲SP31を規定する制約条件は、中間制御モデルの生成時において、モデル生成部131によって定式化される。図3に示される例において、許容範囲SP31は、許容範囲SP1を、Xの軸に沿って許容範囲SP2側へと拡張した範囲となっている。許容範囲SP31は、遷移処理の実行時において状態ベクトルが変化する軌跡を包含し得る範囲であれば、図3に示される例とは異なる範囲に設定されてもよい。例えば、第3状態空間の全体が許容範囲SP31として設定されてもよい。
【0068】
モデル生成部131は、中間制御モデルの一部として、例えば式(6)に示される評価関数を定式化する。式(6)の右辺第1項のJは、先に述べたJやJと同様の項であり、車両20の消費エネルギーの大きさを示す指標を算出する項である。右辺第2項のPは、式(5)のPと同じものである。すなわち、第2タスクの実行時における制約条件を示すペナルティ関数である。
【数6】
【0069】
第2タスクへの切り換えを行う前に、タスク処理部132は、このような制約条件を含む中間制御モデルを用いてモデル予測制御を行う。このとき、ペナルティ関数Pの影響によって、状態ベクトルは図3のBDよりも下方側の領域へと変化して行く。つまり、第1状態空間及び第2状態空間の両方に共通して含まれる状態変数の値(x、x)が、いずれも、第2タスクの実行時において許容される許容範囲SP2の内側に収まるように変化して行く。図2及び図3の状態ST3は、BDよりも下方側まで変化した後における状態ベクトルを表している。
【0070】
タスク処理部132が、ペナルティ関数Pを含む中間制御モデルを用いてモデル予測制御を行うと、上記のように、状態ベクトルは図3のBDよりも下方側の領域へと変化して行く。このため、タスク処理部132が上記中間制御モデルを用いてモデル予測制御を行うと、第1状態空間及び第2状態空間の両方に共通して含まれる状態変数(x、x)の値を、第2タスクの実行時において許容される所定範囲内に収める処理、すなわち、先に述べた「遷移処理」が並行して実行されることとなる。中間制御モデルを用いた制御を行うと、結果的に遷移処理が行われるのは、モデル生成部131が、中間制御モデルに所定の制約条件を予め含ませておいたからである。この「制約条件」とは、先に述べたように、第2タスクの実行時に用いられる式(5)の評価関数、に含まれるペナルティ関数Pのことである。
【0071】
状態ベクトルが状態ST3まで変化すると、タスク処理部132は、第2タスクを定式化した制御モデルを用いたモデル予測制御を開始する。これにより、車両20に実行させるタスクが、第1タスクから第2タスクへと切り換わる。これにより、状態変数x、xが、切り換えに伴って許容範囲SP2を逸脱してしまうことが防止されるので、タスクの切り換えをスムーズに且つ安全に行うことが可能となっている。
【0072】
尚、中間制御モデルを用いたモデル予測制御の実行時における許容範囲SP31は、第1タスクの実行時における許容範囲SP1から、制約条件を緩和することで一時的に拡張した状態空間の範囲、ということができる。本実施形態では、このように拡張した状態空間におけるモデル予測制御を実行しながら、ペナルティ関数Pを用いた評価値Jの算出を行うことにより、状態変数を所定範囲に収める遷移処理の実行を可能としている。
【0073】
以上のようなタスクの切り換えを実現するために、制御装置10により実行される具体的な処理の流れについて、図4のフローチャートを参照しながら説明する。図4に示される一連の処理は、統括部100から、第1タスクの実行開始を指示する信号が送信されたタイミングで、制御装置10により実行開始されるものである。
【0074】
最初のステップS01では、統括部100からタスクモジュール部120を介して送信された信号に基づいて、最初のタスクである第1タスクを取得する処理が行われる。この例においては、制御装置10は、図1において符号121が付されたブロック(直進)を介して入力される制御指令に基づいて、第1タスク及びそれに必要な制御の内容を取得する。
【0075】
ステップS01に続くステップS02では、第1タスクを定式化する処理がモデル生成部131によって実行される。先に述べたように、モデル生成部131は、式(1)の状態方程式や式(4)の評価関数を含む形式で第1タスクの定式化を行い、これにより制御モデルを生成する。ここで生成される制御モデル、すなわち、第1タスクを定式化して生成された制御モデルのことを、以下では「第1制御モデル」とも称する。
【0076】
ステップS02に続くステップS03では、タスク処理部132が、第1制御モデルを用いたモデル予測制御を開始し、これにより、車両20に第1タスクを実行させ始める。先に述べたように、このときの状態ベクトルは、図2のX-X平面(つまり第1状態空間)に沿って変化して行くこととなる。また、第1制御モデルには、ペナルティ関数Pからなる制約条件が含まれるので、状態ベクトルは許容範囲SP1の内側において変化して行く。
【0077】
ステップS03に続くステップS04では、現在実行中の第1タスクから、別のタスクへの切り換え要求があるか否かが判定される。統括部100から要求されているタスクに変化がない場合には、ステップS03以降の処理が再度実行され、車両20では第1タスクの実行が継続される。統括部100から要求されるタスクが別のタスクに切り換わった場合には、ステップS05に移行する。
【0078】
ステップS05では、統括部100からタスクモジュール部120を介して送信された信号に基づいて、次のタスクである第2タスクを取得する処理が行われる。この例においては、制御装置10は、図1において符号122が付されたブロック(レーンチェンジ)を介して入力される制御指令に基づいて、第2タスク及びそれに必要な制御の内容を取得する。
【0079】
ステップS05に続くステップS06では、第2タスクを定式化する処理がモデル生成部131によって実行される。先に述べたように、モデル生成部131は、式(1)の状態方程式や式(5)の評価関数を含む形式で第2タスクの定式化を行い、これにより制御モデルを生成する。ここで生成される制御モデル、すなわち、第2タスクを定式化して生成された制御モデルのことを、以下では「第2制御モデル」とも称する。このように、統括部100によってタスクの切り換えが要求されると、モデル生成部131は、切り換え後の第2タスクを定式化して第2制御モデルを生成する。ただし、第2制御モデルを用いたモデル予測制御は、この時点では開始されない。
【0080】
ステップS06に続くステップS07では、中間制御モデルを生成する処理がモデル生成部131によって実行される。先に述べたように、中間制御モデルは、第3状態空間のうち、許容範囲SP31の内側において状態ベクトルを変化させるような制御モデルである。
【0081】
ステップS07に続くステップS08では、タスク処理部132が、中間制御モデルを用いたモデル予測制御を開始する。先に述べたように、このときの状態ベクトルは、図3に示される許容範囲SP31の内側において、状態ST1から、境界BDよりも下方側の状態ST3へと変化して行く。状態ベクトルがこのように変化するのは、中間制御モデルの評価関数がペナルティ関数Pを含んでいるからである。ステップS08において行われる上記処理が、本実施形態における「遷移処理」に該当する。
【0082】
ステップS08に続くステップS09では、第1状態空間及び第2状態空間の両方に共通して含まれる状態変数(つまり、Xの軸上の状態変数x、x)のそれぞれの値が、BDよりも下方側の範囲に収まったか否かが判定される。換言すれば、状態ベクトルが、図2に示される許容範囲SP32の内側に収まったか否かが判定される。
【0083】
状態変数x、xのそれぞれの値が、境界BDよりも下方側の範囲に収まっている場合には、ステップS10に移行する。それ以外の場合には、ステップS08以降の処理が再度実行される。
【0084】
ステップS10では、ステップS06で生成された第2制御モデルを用いたモデル予測制御が開始される。これにより、車両20に実行させるタスクが、第2タスクへとスムーズに且つ安全に切り換えられる。
【0085】
以上のような処理を行うことで、制御装置10は、車両20に対して様々な種類のタスクを順次実行させることが可能となっている。それぞれのタスクの実行時においては、当該タスクに対応した最低限の規模の制御モデルが生成され、当該制御モデルを用いたモデル予測制御が実行される。多数のタスクを包含させるための制御系の冗長化が不要であるため、制御装置10の負荷を従来に比べて抑制することができる。また、車両20に実行させるタスクとして、新たなタスクを追加したい場合には、タスクモジュール部120に新たなソフトウェアモジュールを追加すればよい。このように、制御装置10は十分な拡張性(スケーラビリティ)を有している。実行可能なタスクが増加したとしても、それに応じて、状態空間等の制御系が巨大化するわけではないので、制御装置10の処理負荷が増加することは無い。
【0086】
車両20に実行させるタスクを切り換える際は、中間制御モデルを用いたモデル予測制御が実行され、これにより遷移処理が実行される。中間制御モデルでは、状態空間が、第1状態空間及び第2状態空間の両方を包含する第3状態空間へと拡張される。このため、制御モデルに含まれる状態変数等の数が増加し、制御装置の処理負荷は増加する。しかしながら、処理負荷の増加は、遷移処理の実行時における一時的なものであるから、平均的に見れば、制御装置の処理負荷は抑制される。
【0087】
尚、図4のステップS02における第1タスクの定式化や、ステップS06における第2タスクの定式化は、それぞれのステップが処理されたタイミングで行われてもよいが、当該タイミングよりも前の時点で予め行われることとしてもよい。
【0088】
つまり、統括部100からタスクの実行要求が発せられるよりも前の時点で、各タスクを定式化した制御モデルを予め生成しておき、当該制御モデルを記憶部140に記憶させておいてもよい。ステップS07における中間制御モデルの生成についても同様である。
【0089】
この場合、図4のステップS02等においては、既存の制御モデルを記憶部140から読み出して用いることとすればよい。このように、ステップS02、S06、S07において、モデル生成部131が制御モデルを「生成する」処理には、記憶部140から既存の制御モデルを読み出すことも含まれる。
【0090】
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
【0091】
本開示に記載の制御装置及び制御方法は、コンピュータプログラムにより具体化された1つ又は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された1つ又は複数の専用コンピュータにより、実現されてもよい。本開示に記載の制御装置及び制御方法は、1つ又は複数の専用ハードウェア論理回路を含むプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。本開示に記載の制御装置及び制御方法は、1つ又は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと1つ又は複数のハードウェア論理回路を含むプロセッサとの組み合わせにより構成された1つ又は複数の専用コンピュータにより、実現されてもよい。コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。専用ハードウェア論理回路及びハードウェア論理回路は、複数の論理回路を含むデジタル回路、又はアナログ回路により実現されてもよい。
【符号の説明】
【0092】
10:制御装置
20:車両
131:モデル生成部
132:タスク処理部
図1
図2
図3
図4