(57)【要約】【課題】再構成可能な演算器における故障発生時に、再構成可能な演算器の柔軟な構造を利用して所定機能を実現させる制御装置、制御ユニット、制御方法、およびプログラムを提供すること。【解決手段】監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定する判定部と、機能を再構成可能な演算器と、前記演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶した記憶部と、前記判定部により前記監視対象に故障が生じたと判定された場合、前記ソフトウェアを前記記憶部から読み出して前記演算器に反映させる処理部とを備える制御装置。【選択図】図１
2020008950.tif 000002
【特許請求の範囲】
【請求項１】
監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定する判定部と、
機能を再構成可能な演算器と、
前記演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶した記憶部と、
前記判定部により前記監視対象に故障が生じたと判定された場合、前記ソフトウェアを前記記憶部から読み出して前記演算器に反映させる処理部と、
を備える、制御装置。
【請求項２】
前記処理部は、前記判定部により前記監視対象に故障が生じたと判定された場合、前記判定部により前記監視対象に故障が生じたと判定されない場合に前記演算器が実行する他のソフトウェアが反映された前記演算器のメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きする、
請求項１に記載の制御装置。
【請求項３】
前記演算器は、前記判定部により前記監視対象に故障が生じたと判定されない場合、複数の前記他のソフトウェアに基づいて動作し、
前記処理部は、前記演算器の他のソフトウェアが用いるメモリ領域に前記ソフトウェアを上書きする場合、前記他のソフトウェアに対して設定されている第１優先度情報を参照し、低い優先度が設定された前記他のソフトウェアを記憶するメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きする、
請求項２に記載の制御装置。
【請求項４】
前記監視対象の状態に基づいて、前記第１優先度情報を設定する第１優先度設定部を更に備える、
請求項３記載の制御装置。
【請求項５】
前記記憶部には、前記判定部により前記監視対象に故障が生じたと判定された場合に読み出されて前記演算器に反映される複数の前記ソフトウェアが記憶されており、
前記処理部は、
前記判定部により前記監視対象に故障が生じたと判定された場合、複数の前記ソフトウェアに対して設定されている第２優先度情報を参照し、高い優先度が設定されたソフトウェアを優先して前記記憶部から読み出して前記演算器に反映させる、
請求項１から４のいずれか一項に記載の制御装置。
【請求項６】
前記監視対象の状態に基づいて、前記第２優先度情報を設定する第２優先度設定部を更に備える、
請求項５に記載の制御装置。
【請求項７】
２以上の請求項１から６のいずれか一項に記載の制御装置を含む制御ユニットであって、
各制御装置が監視する前記監視対象は、自装置と異なる他の制御装置である、
制御ユニット。
【請求項８】
前記監視対象は、自動運転車両の車両制御を行う装置であり、
前記監視対象の動作に関連する機能を再構成させるためのソフトウェアは、前記自動運転車両を限定的に走行させる縮退機能を実現するためのソフトウェアである、
請求項１から６のいずれか一項に記載の制御装置。
【請求項９】
前記演算器は、前記判定部により前記監視対象に故障が生じたと判定されない場合、複数の他のソフトウェアに基づいて動作し、
前記処理部は、前記自動運転車両の周辺状況に応じて、前記記憶部の記憶する複数のソフトウェアの中から呼び出す前記ソフトウェアを選択する、
請求項８に記載の制御装置。
【請求項１０】
前記処理部は、前記自動運転車両の周辺状況に応じて、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを段階的に前記記憶部から読み出して前記演算器に反映させる、
請求項８または９に記載の制御装置。
【請求項１１】
前記処理部は、前記演算器の既存機能が用いるメモリ領域に他のソフトウェアを上書きする場合、前記他のソフトウェアに対して設定されている第１優先度情報を参照し、低い優先度が設定された前記他のソフトウェアを記憶するメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きし、
前記自動運転車両の運転制御に関する処理を実施する前記他のソフトウェアの第１優先度を高く設定する第１優先度設定部を更に備える、
請求項８から１０のいずれか一項に記載の制御装置。
【請求項１２】
前記第１優先度設定部は、前記自動運転車両を乗員が手動運転する際に動作する前記他のソフトウェアの第１優先度を高く設定する、
請求項１１に記載の制御装置。
【請求項１３】
前記処理部は、前記演算器の他のソフトウェアが用いるメモリ領域に前記ソフトウェアを上書きする場合、前記ソフトウェアに対して設定されている第２優先度情報を参照し、前記自動運転車両の運転制御に関する処理を実施する前記ソフトウェアの第２優先度を高く設定する第２優先度設定部を更に備える、
請求項８から１０のいずれか一項に記載の制御装置。
【請求項１４】
前記第２優先度設定部は、
前記第２優先度設定部は、前記縮退機能による車両の停止後に使用されるか否かに基づいて、前記ソフトウェアの第２優先度を変更する、
請求項１３に記載の制御装置。
【請求項１５】
前記第２優先度設定部は、
前記自動運転車両を前記自動運転車両の乗員が手動運転する際に動作しない前記ソフトウェアの第２優先度を低く設定する、
請求項１３に記載の制御装置。
【請求項１６】
前記監視対象は、自動運転車両の車両制御を行う装置であり、
前記監視対象の動作に関連する機能を再構成させるためのソフトウェアは、前記自動運転車両を限定的に走行させる縮退機能を実現するためのソフトウェアである、
請求項７に記載の制御ユニット。
【請求項１７】
コンピュータが、
監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定し、
前記監視対象に故障が生じたと判定した場合、機能を再構成可能な演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶部から読み出して前記演算器に反映する、
制御方法。
【請求項１８】
前記コンピュータが、
前記監視対象に故障が生じたと判定するまでの間、前記演算器に他のソフトウェアが反映された状態で前記演算器を動作させ、
前記監視対象に故障が生じたと判定されると、前記演算器のメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きする、
請求項１７記載の制御方法。
【請求項１９】
コンピュータに、
監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定させ、
前記監視対象に故障が生じたと判定した場合、機能を再構成可能な演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶部から読み出して前記演算器に反映させる処理を行わせる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御ユニット、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ＦＰＧＡ(Field Programmable Gate Array)に代表される、再構成可能なデバイス（演算器）に関する技術が開示されている（例えば、特許文献１）。特許文献１に記載の技術では、ＦＰＧＡ上に存在する故障情報と、論理回路データとに基づいて、故障回避の要否を判定し、故障回避が必要であれば、故障部分の機能をＦＰＧＡの空き部分で代用し、受け取った論理回路データに部分的な変更を加えて、故障を回避する論理回路データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１３６０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、論理回路の空き領域が予め用意されていることを前提としており、リソースの空きが不十分である場合に好適な故障回避が行われない可能性があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、再構成可能な演算器の柔軟な構造を利用して故障発生時にのみ故障対応専用の機能を実現させる制御装置、制御ユニット、制御方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
この発明に係る制御装置、制御ユニット、制御方法、およびプログラムは、以下の構成を採用した。
（１）：この発明の一態様に係る制御装置は、監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定する判定部と、機能を再構成可能な演算器と、前記演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶した記憶部と、前記判定部により前記監視対象に故障が生じたと判定された場合、前記ソフトウェアを前記記憶部から読み出して前記演算器に反映させる処理部とを備えるものである。
【０００７】
（２）：上記（１）の態様において、前記処理部は、前記判定部により前記監視対象に故障が生じたと判定された場合、前記判定部により前記監視対象に故障が生じたと判定されない場合に前記演算器が実行する他のソフトウェアが反映された前記演算器のメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きするものである。
【０００８】
（３）：上記（２）の態様において、前記演算器は、前記判定部により前記監視対象に故障が生じたと判定されない場合、複数の前記他のソフトウェアに基づいて動作し、前記処理部は、前記演算器の他のソフトウェアが用いるメモリ領域に前記ソフトウェアを上書きする場合、前記他のソフトウェアに対して設定されている第１優先度情報を参照し、低い優先度が設定された前記他のソフトウェアを記憶するメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きするものである。
【０００９】
（４）：上記（３）の態様において、前記監視対象の状態に基づいて、前記第１優先度情報を設定する第１優先度設定部を更に備えるものである。
【００１０】
（５）：上記（１）から（４）のいずれかの態様において、前記記憶部には、前記判定部により前記監視対象に故障が生じたと判定された場合に読み出されて前記演算器に反映される複数の前記ソフトウェアが記憶されており、前記処理部は、前記判定部により前記監視対象に故障が生じたと判定された場合、複数の前記ソフトウェアに対して設定されている第２優先度情報を参照し、高い優先度が設定されたソフトウェアを優先して前記記憶部から読み出して前記演算器に反映させるものである。
【００１１】
（６）：上記（５）の態様において、前記監視対象の状態に基づいて、前記第２優先度情報を設定する第２優先度設定部を更に備えるものである。
【００１２】
（７）：この発明の一態様に係る制御ユニットは、２以上の請求項１から６のいずれか一項に記載の制御装置を含む制御ユニットであって、各制御装置が監視する前記監視対象は、自装置と異なる他の制御装置であるものである。
【００１３】
（８）：上記（１）から（６）のいずれかの態様において、前記監視対象は、自動運転車両の車両制御を行う装置であり、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアは、前記自動運転車両を限定的に走行させる縮退機能を実現するためのソフトウェアであるものである。
【００１４】
（９）：上記（８）の態様において、前記演算器は、前記判定部により前記監視対象に故障が生じたと判定されない場合、複数の他のソフトウェアに基づいて動作し、前記処理部は、前記自動運転車両の周辺状況に応じて、前記記憶部の記憶する複数のソフトウェアの中から呼び出す前記ソフトウェアを選択するものである。
【００１５】
（１０）：上記（８）または（９）の態様において、前記処理部は、前記自動運転車両の周辺状況に応じて、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを段階的に前記記憶部から読み出して前記演算器に反映させるものである。
【００１６】
（１１）：上記（８）から（１０）のいずれかの態様において、前記処理部は、前記演算器の既存機能が用いるメモリ領域に他のソフトウェアを上書きする場合、前記他のソフトウェアに対して設定されている第１優先度情報を参照し、低い優先度が設定された前記他のソフトウェアを記憶するメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きし、前記自動運転車両の運転制御に関する処理を実行する前記他のソフトウェアの第１優先度を高く設定する第１優先度設定部を更に備えるものである。
【００１７】
（１２）：上記（１１）の態様において、前記第１優先度設定部は、前記自動運転車両を乗員が手動運転する際に動作する前記他のソフトウェアの第１優先度を高く設定するものである。
【００１８】
（１３）：上記（８）から（１１）のいずれかの態様において、前記処理部は、前記演算器の他のソフトウェアが用いるメモリ領域に前記ソフトウェアを上書きする場合、前記ソフトウェアに対して設定されている第２優先度情報を参照し、前記自動運転車両の運転制御に関する処理を実施する前記ソフトウェアの第２優先度を高く設定する第２優先度設定部を更に備えるものである。
【００１９】
（１４）：上記（１３）の態様において、前記第２優先度設定部は、前記縮退機能による車両の停止後に使用されるか否かに基づいて、前記ソフトウェアの第２優先度を変更するものである。
【００２０】
（１５）：上記（１３）の態様において、前記第２優先度設定部は、前記自動運転車両を前記自動運転車両の乗員が手動運転する際に動作しない前記ソフトウェアの第２優先度を低く設定するものである。
【００２１】
（１６）：上記（７）の態様において、前記監視対象は、自動運転車両の車両制御を行う装置であり、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアは、前記自動運転車両を限定的に走行させる縮退機能を実現するためのソフトウェアであるものである。
【００２２】
（１７）：この発明の一態様に係る制御方法は、コンピュータが、監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定し、前記監視対象に故障が生じたと判定された場合、機能を再構成可能な演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶部から読み出して前記演算器に反映する制御方法である。
【００２３】
（１８）：上記（１７）の態様において、前記コンピュータが、前記監視対象に故障が生じたと判定するまでの間、前記演算器に他のソフトウェアが反映された状態で前記演算器を動作させ、前記監視対象に故障が生じたと判定されると、前記演算器のメモリ領域に、前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを上書きするものである。
【００２４】
（１９）：この発明の一態様に係るプログラムは、コンピュータに、監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定させ、前記監視対象に故障が生じたと判定した場合、機能を再構成可能な演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを記憶部から読み出して前記演算器に反映させる処理を行わせるプログラムである。
【発明の効果】
【００２５】
（１）〜（１８）によれば、再構成可能な演算器の柔軟な構造を利用して故障発生時にのみ故障対応専用の機能を実現させる。
【００２６】
また（２）によれば、利用条件が成立しない限り演算器に所定機能が書き込まれていないため、制御装置に搭載する最適な演算器を選択することができる。
【００２７】
また（３）〜（４）によれば、第１優先度に基づいて所定機能の生成順序を最適化することができるため、生成時間を短縮し、早期に所定機能を実現できる。
【００２８】
また（５）〜（６）によれば、第２優先度に基づいて所定機能の生成順序を最適化することができるため、生成時間を短縮し、早期に所定機能を実現できる。
【００２９】
また（８）および（１５）によれば、自動運転の精度が低下した場合にのみ縮退機能を生成するため、演算器を小型化しつつ、縮退制御も実現することができる。
【図面の簡単な説明】
【００３０】
【図１】制御装置１００−１および制御装置１００−２からなる制御ユニット１の構成図である。
【図２】制御装置１００−２が故障状態である場合の、制御ユニット１の構成図である。
【図３】従来の制御ユニット１Ｚの構成図である。
【図４】制御装置１００−２が故障状態になる前の、制御装置１００−１のメモリ利用状態の一例を示す図である。
【図５】制御装置１００−２が故障状態になった後の、制御装置１００−１のメモリ利用状態の一例を示す図である。
【図６】ＦＯＦ生成部１０６による第１優先度に基づいてＦＯＦ部１１２を生成する処理の流れの一例を示すフローチャートである。
【図７】制御装置１００−２が故障状態になる前の、制御装置１００−１のメモリ利用状態の一例を示す図である。
【図８】制御装置１００−２が故障状態になった後、且つ、ＦＯＦ部１１２の生成が開始された後の制御装置１００−１のメモリ利用状態の一例を示す図である。
【図９】ＦＯＦ生成部１０６による２優先度に基づいてＦＯＦ部１１２を生成する処理の流れの一例を示すフローチャートである。
【図１０】ＦＯＦ生成部１０６による第２優先度に基づいてＦＯＦ部１１２を生成する処理の流れの一例を示すフローチャートである。
【図１１】制御装置１００−２が故障状態になる前の、制御装置１００−１のメモリ利用状態の一例を示す図である。
【図１２】制御装置１００−２が故障状態になった後の、制御装置１００−１のメモリ利用状態の一例を示す図である。
【図１３】制御装置１００−１が機能Ａを停止させた後の、制御装置１００−１のメモリ利用状態の一例を示す図である。
【図１４】ＦＯＦ生成部１０６によるＦＯＦ部１１２を生成する処理の流れの一例を示すフローチャートである。
【図１５】実施形態の制御装置１００のハードウェア構成の一例を示す図である。
【図１６】車両制御装置５の構成図である。
【図１７】自動運転制御装置ＡＤＡの構成図である。
【発明を実施するための形態】
【００３１】
以下、図面を参照し、本発明の制御装置、制御ユニット、制御方法、およびプログラムの実施形態について説明する。
【００３２】
＜実施形態＞
［制御装置の構成］
図１は、制御装置１００−１および制御装置１００−２を含む制御ユニット１の構成図である。図１に示す制御装置１００−１および制御装置１００−２は、例えば、それぞれが制御対象の対象装置ＴＧ−１および対象装置ＴＧ−２の制御に関する処理を行うものである。対象装置ＴＧ−１と対象装置ＴＧ−２は別体の装置であってもよいし、一体の装置であってもよい。後者の場合、対象装置ＴＧ−１と対象装置ＴＧ−２は、同一の装置における異なる機能についてそれぞれ制御を行う。なお、図１の説明において、符号におけるハイフンおよびこれに続く数字は、いずれの制御装置に対応する構成であるかを示すものとする。また、適宜、ハイフンおよびこれに続く数字を省略して説明を行う場合がある。
【００３３】
制御ユニット１は、２以上の制御装置１００を含む。２以上の制御装置１００は、他の制御装置１００が安定稼働しているか否かを相互に監視し合う。２以上の制御装置１００は、すべて同一の機能を有してもよいし、一部の機能が異なっていてもよい。２以上の制御装置１００は、他の制御装置１００と一部の機能が異なる場合であり、且つ、ある制御装置１００が故障等により離脱した場合であっても、他の制御装置１００によって、制御対象を安全に制御できるよう互いに補足し合う機能を有する。
【００３４】
制御ユニット１は、例えば、ホットスタンバイ形式の冗長構成を採用してもよいし、コールドスタンバイ形式の冗長構成を採用してもよいし、負荷分散機を介してロードバランスを行ってもよい。
【００３５】
また、以下の説明において制御装置１００において、ＦＰＧＡ(Field Programmable Gate Array)（後述）のメモリ領域は、制御対象の制御に有効活用されており、十分な余剰（空き）は持たせないものとする。
【００３６】
制御装置１００は、例えば、相互監視部１０２と、故障判定部１０４と、ＦＯＦ（Fail Operational Function）生成部１０６と、第１優先度設定部１０８と、第２優先度設定部１１０と、ＦＯＦ部１１２と、対象制御部１１４とを備える。
【００３７】
相互監視部１０２は、所定の間隔で他の制御装置１００に対して、自らが正常に動作していることを知らせる情報（或いは相手が正常に動作していることを確認する情報）を含むハートビートメッセージを送受信することで、お互いの動作状態を監視する。ハートビートメッセージには、制御装置１００の制御処理結果の一部又は全部を示すデータが含まれてもよく、この場合、相互監視部１０２は、制御処理結果のデータを相互に確認してもよい。相互監視部１０２は、ハートビートメッセージの送受信結果を、故障判定部１０４に出力する。
【００３８】
故障判定部１０４は、相互監視部１０２による他の制御装置１００からのハートビートメッセージの受信結果に基づいて、他の制御装置１００が故障しているか否かを判定する。故障判定部１０４は、例えば、他の制御装置１００からのハートビートメッセージが所定の回数（例えば数回）以上連続して受信されていない場合に、他の制御装置１００が故障状態であると判定する。故障判定部１０４は、他の制御装置１００が故障状態であると判定した場合、ＦＯＦ生成部１０６、第１優先度設定部１０８および第２優先度設定部１１０に、その旨を示す情報を出力する。
【００３９】
ＦＯＦ生成部１０６は、故障判定部１０４により出力された信号に応じて、記憶部３００からＦＯＦ機能を実現するプログラムを読み出し、制御装置１００の備えるＦＰＧＡのメモリ領域に展開させることでＦＯＦ部１１２を生成する。ＦＯＦとは、制御装置１００の不具合に関する対策を行う専用の機能のことであり、例えば、対象装置ＴＧを一時停止させてフェールセーフを実現したり、対象装置ＴＧの表示部に修理や交換を促す警告をさせたりといった機能のことである。ＦＯＦは、単一のソフトウェアで実現されてもよいし、機能毎のソフトウェアが用意され、複数の機能毎のソフトウェアによって実現されてもよい。ＦＯＦは、複数の機能毎のソフトウェアによって実現される場合、制御対象の周辺環境の状態に応じて、周辺環境の状況に適したソフトウェアが外部記憶装置から選択的に読み出される。
【００４０】
以下の説明において、ＦＯＦが実現する機能のことを「縮退機能」と称する場合がある。なお、ＦＯＦ生成部１０６は「処理部」の一例であり、ＦＯＦ部１１２は「監視対象の動作に関連する機能を再構成させるためのソフトウェア」によって実現される要素の一例である。
【００４１】
第１優先度設定部１０８は、ＦＯＦ生成部１０６によってＦＯＦ部１１２を複数生成する際に、生成する優先度合いを設定する。第１優先度設定部１０８は、設定した優先度をＦＯＦ生成部１０６に出力する。なお、第１優先度設定部１０８は第１優先度を、あらかじめ設定してもよいし、ＦＯＦ生成部１０６の処理が開始される直前に設定してもよい。第１優先度設定部１０８は、例えば、連続値で表される優先度、或いは「高、中、低」といった段階的な優先度を第１優先度として設定してもよいし、優先順位として設定してもよい。
【００４２】
第２優先度設定部１１０は、ＦＯＦ生成部１０６によってＦＯＦ部１１２を生成する処理に要するメモリ容量の確保のため、制御装置１００の備える既存機能から作業メモリ領域を回収したり、既存機能自体が確保しているメモリを回収したりする際に判断材料として用いる、既存機能の優先度を設定する。第２優先度設定部１１０は、設定した優先度をＦＯＦ生成部１０６に出力する。なお、第２優先度設定部１１０は第２優先度を、あらかじめ設定していてもよいし、ＦＯＦ生成部１０６の処理が開始される直前に設定してもよい。第２優先度設定部１１０は、第１優先度設定部１０８と同様に、例えば、連続値で表される優先度、或いは「高、中、低」といった段階的な優先度を第２優先度として設定してもよいし、優先順位として設定してもよい。
【００４３】
なお、第１優先度設定部１０８と第２優先度設定部１１０は、制御装置１００にどちらか一方のみが備えられてもよく、双方省略されてもよい。
【００４４】
対象制御部１１４は、制御装置１００の対象装置ＴＧに関する制御を行う。対象制御部１１４は、ＦＯＦ生成部１０６によりＦＯＦ部１１２が生成される場合に、実現されなくなる可能性がある。
【００４５】
なお、ＦＯＦ部１１２および対象制御部１１４は、制御装置１００に含まれるＦＰＧＡ（再構成可能な演算器の一例）上で実現される。ＦＯＦ部１１２は、他の制御装置１００に故障が発生した時に限り制御装置１００に反映される機能であり、平常時は機能しない。ＦＯＦ部１１２は、例えば、監視対象の他の制御装置１００の故障を検知した場合に対象制御部１１４の展開されるメモリ領域の一部に上書きされることで生成され、他の制御装置１００の修理または交換時まで機能する。
【００４６】
［ＦＯＦ生成］
以下、ＦＯＦ部１１２が生成される過程について説明する。なお、以下の説明において、ＦＯＦ部１１２により使用するメモリ領域の一部または全部が回収される制御装置１００上で実現する他の機能のことを、便宜上、対象制御部１１４−１Ａを「機能Ａ」、対象制御部１１４−１Ｂを「機能Ｂ」、対象制御部１１４−１Ｃを「機能Ｃ」、対象制御部１１４−１Ｄを「機能Ｄ」と称する。
【００４７】
図２は、制御装置１００−１が制御装置１００−２を故障状態と判定するタイミングの制御ユニット１の機能概要図である。ＦＯＦ生成部１０６−１は、制御装置１００−１の故障判定部１０４−１によって制御装置１００−２が故障状態であると判定された場合、記憶部３００からＦＯＦを構成する元情報（例えば、ソフトウェアを圧縮格納したファイル）を呼び出し、制御装置１００−１に格納する。記憶部３００は、フラッシュメモリやＨＤＤ（Hard Disk Drive）などの記憶装置であってもよいし、制御装置１００の制御対象と通信可能な外部サーバであってもよい。
【００４８】
ＦＯＦ部１１２は、上述の通り、制御装置１００−１にはメモリ容量の余剰がないことから、ＦＯＦ生成部１０６によるメモリ領域の調整がなければ生成ができない。したがって、ＦＯＦ生成部１０６−１は、他の機能（例えば、制御実行していない対象制御部１１４−１Ａ〜１１４−１Ｃ）の使用するメモリ領域の一部または全部を開放させることによってＦＯＦ部１１２−１を生成するメモリ容量を確保する。その際、ＦＯＦ生成部１０６−１は、第１優先度設定部１０８−１によって設定された他の機能の第１優先度に基づいて、メモリを解放させる機能や解放させるメモリの割合を決定し、解放されたメモリ領域を用いてパーシャル・リコンフィグレーション（Partial Reconfiguration）を行うことによりＦＯＦ部１１２−１を生成する。パーシャル・リコンフィグレーションとは、ＦＰＧＡの一部（例えば、解放されたメモリ領域）を、残りのＦＰＧＡの機能（例えば、制御実行中の対象制御部１１４−１Ｄ）を停止することなく引き続き処理実行させながら、動的に機能を再設定することである。また、ＦＯＦ生成部１０６−１は、第２優先度設定部１１０−１によって設定された第２優先度に基づいて、ＦＯＦ部１１２−１を生成してもよい。
【００４９】
［制御ユニットの比較例］
図３は、比較例の制御ユニット１Ｚの構成図を示す図である。比較例の制御ユニット１Ｚは、制御装置１００Ｚ−１および制御装置１００Ｚ−２からなる。また、制御装置１００Ｚは、相互監視部１０２Ｚと、対象制御部１１４Ｚと、ＦＯＦ部１１２Ｚとを備える。図３に示すように、ＦＯＦ部１１２Ｚをあらかじめ制御装置１００Ｚに設けておく場合、平常時であってもＦＯＦ部１１２Ｚを記憶するメモリ領域を確保しておく必要がある。
【００５０】
制御ユニット１Ｚが、対象装置ＴＧを制御する高負荷の処理を行う場合、対象制御部１１４Ｚに割り当てる必要があるメモリ領域は大きくなることが想定される。その場合、対象制御部１１４Ｚが使用できるメモリ領域を可能な限り多く割り当てることで、対象制御部１１４Ｚの処理性能を上げることが望ましいが、ＦＯＦ部１１２Ｚを記憶するメモリ領域が常に確保されなければならず、メモリ領域の利用状況は非効率的であるといえる。あるいは、制御装置１００Ｚを使用する使用者は、制御装置１００ＺにＦＯＦ部１１２Ｚを記憶させ、且つ、対象制御部１１４Ｚの処理効率を高めるために、制御ユニット１Ｚの制御装置１００Ｚに搭載する演算器を大型化する可能性がある。
【００５１】
制御装置１００Ｚと比較して、本実施形態の制御装置１００は、平常時には対象制御部１１４が使用できるメモリ領域を可能な限り多く割り当て、故障時のみＦＯＦ部１１２を生成するといった効率的な演算器利用ができる。また、制御装置１００を使用する使用者は、制御装置１００の平常時の処理量に応じて、制御装置１００を搭載する最適なデバイスとして、より小型のデバイスを選択することができる。
【００５２】
［第１優先度を考慮したＦＯＦ生成］
以下、図４および図５を用いて、第１優先度設定部１０８による第１優先度の設定規則について説明する。なお、以下の説明において、図２に示した対象制御部（機能Ａ）１１４−１Ａ、対象制御部（機能Ｂ）１１４−１Ｂ、対象制御部（機能Ｃ）１１４−１Ｃ、対象制御部（機能Ｄ）１１４−１Ｄを用いる。以下の説明では、便宜上、対象制御部１１４−１Ａを「機能Ａ」、対象制御部１１４−１Ｂを「機能Ｂ」、対象制御部１１４−１Ｃを「機能Ｃ」、対象制御部１１４−１Ｄを「機能Ｄ」と称する。
【００５３】
図４は、制御装置１００−２が故障状態になる前の、制御装置１００−１のＦＰＧＡのメモリ領域の利用状況の一例を示す図である。図４は、制御装置１００−２が故障状態であると判定される前の、機能Ａ、機能Ｂ、機能Ｃ、および機能ＤによるＦＰＧＡのメモリ領域の利用状況と、第１優先度設定部１０８が各機能に設定した優先順位を機能別で示すものである。図４に示すタイミングでは、機能Ａ、機能Ｂ、機能Ｃおよび機能Ｄによって、ＦＰＧＡのすべてのメモリ領域が使用されているものとする。第１優先度設定部１０８は、例えば、各機能のメモリ領域の利用率の多い順に優先順位を設定し、機能Ａに優先順位「１」、機能Ｂに優先順位「２」、機能Ｃに優先順位「３」、機能Ｄに優先順位「４」を設定する。
【００５４】
図５は、制御装置１００−２が故障状態になった後の、制御装置１００−１のＦＰＧＡのメモリ領域の利用状況の一例を示す図である。図５に示すように、ＦＯＦ部１１２を構成するためにＦＰＧＡのメモリ領域の５０［％］を要する場合において、ＦＯＦ生成部１０６は、第１優先度設定部１０８によって設定された優先度に基づいて、メモリ領域の確保対象とする機能を選定する。図５の例においては、ＦＯＦ生成部１０６は、すべての機能から少しずつメモリ領域を解放させることにより、ＦＯＦ部１１２の要するメモリ領域を確保する。ＦＯＦ生成部１０６は、図５に示すように、優先順位のより低い機能から、自機能に割り当てられたメモリ領域をより高い割合で解放させることでＦＯＦ部１１２に要するメモリ領域を確保する。例えば、ＦＯＦ生成部１０６は、図４に示す状態において４０［％］のメモリ領域使用率であった優先順位「１」の機能Ａを、図５に示すように３０［％］のメモリ領域使用率としており、元の４分の１のメモリ領域を解放させている。また、ＦＯＦ生成部１０６は、図４に示す状態において１０［％］のメモリ領域使用率であった優先順位「４」の機能Ｄを、図５に示すように１［％］のメモリ領域使用率としており、元の１０分の９のメモリ領域を解放させる。このように、ＦＯＦ生成部１０６は、優先順位に応じて各機能に解放させるメモリ領域を調整する。
【００５５】
以下、図６を用いて、ＦＯＦ生成部１０６によるＦＯＦ部１１２を生成する処理の流れを説明する。図６は、ＦＯＦ生成部１０６によるＦＯＦ部１１２を生成する処理の流れの一例を示すフローチャートである。なお、以下のフローチャートの説明は、図２に示す構成の制御装置１００−１による処理として説明する。
【００５６】
まず、相互監視部１０２−１は、監視対象の制御装置１００−２にハートビートメッセージを送信する（ステップＳ１００）。次に、故障判定部１０４−１は、監視対象の制御装置１００−２から応答があるか否かに基づいて、制御装置１００−２が故障状態か否かを判定する（ステップＳ１０２）。故障判定部１０４−１は、制御装置１００−２が故障状態であると判定しなかった場合、一定時間経過後に再度ステップＳ１００に処理を戻す。故障判定部１０４−１は、制御装置１００−２が故障状態であると判定した場合、第１優先度設定部１０８−１に対象制御部１１４−１の優先度を設定させる（ステップＳ１０４）。
【００５７】
次に、ＦＯＦ生成部１０６−１は、第１優先度設定部１０８−１によって設定された優先度に基づいて、メモリ領域を確保し（ステップＳ１０６）、ＦＯＦ部１１２−１を生成する（ステップＳ１０８）。ＦＯＦ生成部１０６−１は、生成したＦＯＦ部１１２−１を起動し、処理を開始させる（ステップＳ１１０）。以上、本フローチャートの処理の説明を終了する。
【００５８】
［第１優先度設定の他の規則］
以下、図７および図８を用いて、第１優先度設定部１０８による優先度の他の設定規則について説明する。図７は、制御装置１００−２が故障状態になる前の、制御装置１００−１のＦＰＧＡのメモリ領域の利用状況の他の一例を示す図である。図７は、図４と比較して、機能の使用状況（ActiveまたはInactive）を示す状況欄が追加される。また、図７において、第１優先度設定部１０８は、各機能に優先度として「高」、「中」、「低」のいずれかを設定するものとする。第１優先度設定部１０８は、例えば、機能Ａに優先度「高」を設定する。なお、図７の例においては、機能Ｂおよび機能Ｄは処理実行中（Active）であるが、機能Ａおよび機能Ｃは処理を行っていない（Inactive）ものとする。
【００５９】
図８は、制御装置１００−２が故障状態になった後の、制御装置１００−１のＦＰＧＡのメモリ領域の利用状況の他の一例を示す図である。図８に示すように、ＦＯＦ部１１２を構成するためにＦＰＧＡのメモリ領域の５０［％］を要する場合において、ＦＯＦ生成部１０６は、第１優先度設定部１０８によって設定された優先度および状況に基づいて、メモリ領域の確保対象とする機能を選定する。図８の例においては、ＦＯＦ生成部１０６は、まず処理を行っていない機能Ａおよび機能Ｃからメモリ領域を解放させる。このとき、ＦＯＦ生成部１０６は、図８に示すように、機能Ｃのすべてのメモリ領域を解放させてもよいし、機能Ｃを実現するためのプログラムを記憶する領域も解放対象としてもよい。これは、ＦＯＦ生成部１０６が、ＦＯＦ部１１２が機能することにより制御装置１００−２の修理が完了するまで、機能Ｃは機能することがないと判断したためである。一方、ＦＯＦ生成部１０６は、機能Ａのメモリ領域は、機能Ｃとは異なり、一部のメモリ領域は割り当てたままにする。これは、機能Ａが優先度「高」であり、機能Ｃが優先度「中」であるための差異である。
【００６０】
また、ＦＯＦ生成部１０６は、機能Ａおよび機能Ｃに解放させたメモリ領域では、ＦＯＦ部１１２の生成に要するメモリ領域に満たない場合に、処理実行中の機能Ｂおよび機能Ｄからもメモリ領域を解放させる。ただし、ＦＯＦ生成部１０６は、ＦＯＦ部１１２を生成する場合であっても、対象装置ＴＧの制御に最低限必要な機能（例えば、手動操作時に必ず実現される機能）については、すべてのメモリ領域を解放させたり、機能自体を削除させないようにする。
【００６１】
図９は、ＦＯＦ生成部１０６によるＦＯＦ部１１２を生成する処理の流れの他の一例を示すフローチャートである。なお、図９に示すステップＳ２００およびＳ２０２は図６のステップＳ１００およびＳ１０２と対応し、ステップＳ２０６は図６のステップＳ１０６と対応し、ステップＳ２１０およびＳ２１２は図６のステップＳ１０８およびＳ１１０と対応する。そのため、下記ではステップＳ２０４、Ｓ２０８およびＳ２１４を中心に説明する。
【００６２】
ステップＳ２０２において故障状態であると判定された場合、ＦＯＦ生成部１０６は、対象制御部１１４の第１優先度を設定する（ステップＳ２０４）。
【００６３】
ステップＳ２０８の処理の後、ＦＯＦ生成部１０６は、ＦＯＦ部１１２の生成のためのメモリ領域がまだ不足した状態であるか否かを判定する（ステップＳ２０８）。ＦＯＦ生成部１０６は、メモリ領域がまだ不足していると判定した場合、対象制御部１１４からさらにメモリ領域を解放させる（ステップＳ２１４）。ＦＯＦ生成部１０６は、メモリ領域がまだ不足していると判定しなかった場合、ステップＳ２１２に処理を進める。以上、本フローチャートの処理の説明を終了する。
【００６４】
［第２優先度を考慮したＦＯＦ生成］
以下、第２優先度設定部１１０による第２優先度の設定規則、およびＦＯＦ生成部１０６が第２優先度を参照し、ＦＯＦ部１１２を生成するタイミングを調整する場合の処理について説明する。なお、以下の例においては図２に示したように、制御ユニット１の制御装置１００−２が故障状態になり、制御装置１００−１がＦＯＦ部１１２を生成することにより対象装置ＴＧの縮退機能により制御するものとして説明する。なお、以下の説明においても、図２の対象制御部（機能Ａ）１１４−１Ａ、対象制御部（機能Ｂ）１１４−１Ｂ、対象制御部（機能Ｃ）１１４−１Ｃ、対象制御部（機能Ｄ）１１４−１Ｄを用いて説明する。
【００６５】
図１０は、第２優先度設定部１１０によって設定されたＦＯＦ部１１２の第２優先度と、ＦＯＦ部１１２との対応関係を示す図である。第２優先度設定部１１０は、例えば、第２優先度を「高、中、低」のように段階的に設定する場合に、ＦＯＦ部１１２の機能１には第２優先度「高」を、機能２には第２優先度「低」を設定したものとする。
【００６６】
図１１は、制御装置１００−２が故障状態になる前の、制御装置１００−１のメモリ利用状態の一例を示す図である。図１１に示す段階において、制御装置１００−１では、対象装置ＴＧに対する機能Ａが緊急制御機能を実施しており、メモリ領域の７０［％］を使用中である。緊急制御機能は、例えば、対象装置ＴＧの一時停止や安全確認のための制御を行う機能であり、途中で停止させるべきでない制御である。また、図１１に示す段階において、制御装置１００−１では、対象装置ＴＧに対する機能Ｂ、機能Ｃおよび機能Ｄが制御機能を実施しているが、途中で停止されても支障がないものとする。
【００６７】
図１１に示したタイミングで、制御ユニット１の制御装置１００−１は、制御装置１００−２が故障状態であると判定し、制御装置１００−１の残りのメモリ領域は、機能Ｂ、機能Ｃ、および機能Ｄが使用中である。第１優先度設定部１０８は、上述の使用状況において、機能Ａに第１優先度「高」を設定し、機能Ｂ、機能Ｃ、および機能Ｄに第１優先度「低」を設定する。
【００６８】
このとき、ＦＯＦ生成部１０６は、対象装置ＴＧの使用状況に基づいて、ＦＰＧＡのメモリ領域の７０［％］を使用してＦＯＦ部１１２として２つの機能（機能１および機能２）を生成することを決定する。ＦＯＦ生成部１０６は、第１優先度設定部１０８の設定した第１優先度を参照し、ＦＯＦ部１１２を生成するために第１優先度の低い機能Ｂ、機能Ｃ、および機能Ｄからメモリ領域を解放させると選択する。また、ＦＯＦ生成部１０６は、解放させるメモリ領域が最大で３０［％］になることから、ＦＯＦ部１１２の機能１を先に生成し、緊急制御機能が終了したらＦＯＦ部１１２の機能２を生成すると決定する。
【００６９】
図１２は、制御装置１００−２が故障状態になった後の、制御装置１００−１のメモリ利用状態の一例を示す図である。ＦＯＦ生成部１０６は、機能Ｂ、機能Ｃ、および機能Ｄから徐々にメモリ領域を解放させ、ＦＯＦ部１１２の機能１の生成を開始し、機能Ｂ、機能Ｃ、および機能Ｄから解放させたメモリ領域を割り当てる。このタイミングで、機能Ａは制御を終了したとする。
【００７０】
図１３は、制御装置１００−２が故障状態になった後、且つ、ＦＯＦ部１１２の生成が開始された後の制御装置１００−１のメモリ利用状態の一例を示す図である。ＦＯＦ生成部１０６は、機能Ａが使用していたメモリ領域を解放させ、ＦＯＦ部１１２の機能１および機能２を生成し、その処理を開始させる。このとき、ＦＯＦ生成部１０６は、メモリ領域に余剰があれば、図１３に示すように対象制御部１１４（機能Ｂ、機能Ｃ、および機能Ｄ）に割り当ててもよいし、ＦＯＦ部１１２に追加で割り当ててもよい。
【００７１】
また、ＦＯＦ生成部１０６は、さらに生成するＦＯＦ部１１２がある場合であり、且つ、既に生成したＦＯＦ部１１２がその機能による処理を終了し、再度同様の処理を行うことがない場合、既に生成したＦＯＦ部１１２を削除して、新たなＦＯＦ部１１２を生成してもよい。
【００７２】
［フローチャート］
図１４は、ＦＯＦ生成部１０６が第１優先度を参照してＦＯＦ部１１２を生成する処理の流れの一例を示すフローチャートである。なお、図１４に示すステップＳ３００およびＳ３０２は図６のステップＳ１００およびＳ１０２と対応する。そのため、下記ではステップＳ３０４以降を説明する。
【００７３】
故障判定部１０４は、ステップＳ３０２の処理において、故障状態であると判定した場合、第２優先度設定部１１０にＦＯＦ部１１２の各機能の第２優先度を設定させる（ステップＳ３０４）。次に、ＦＯＦ生成部１０６は、第１優先度が高く、且つ、制御実行中の対象制御部１１４の実現する機能をメモリ領域の解放対象から除外する（ステップＳ３０６）。次に、ＦＯＦ生成部１０６は、ステップＳ３０６で除外した機能以外からメモリ領域を確保し（ステップＳ３０８）、第２優先度の高いＦＯＦ部１１２から生成を開始する（ステップＳ３１０）。次に、先行して生成した第２優先度の高いＦＯＦ部１１２の機能を起動する（ステップＳ３１２）。
【００７４】
次に、ＦＯＦ生成部１０６は、制御実行中の対象制御部１１４の実現する機能が処理を終了したか否かを判定する（ステップＳ３１４）。ＦＯＦ生成部１０６は、処理を終了したと判定した場合、追加メモリ領域を確保し（ステップＳ３１６）、ＦＯＦ部１１２の追加生成を開始する（ステップＳ３１８）。ＦＯＦ生成部１０６は、追加生成が完成したＦＯＦ部１１２の機能を起動する（ステップＳ３２０）。以上、本フローチャートの処理の説明を終了する。
【００７５】
なお、ＦＯＦ部１１２は、対象制御部１１４を適宜呼び出して機能を援用してもよい。その場合、ＦＯＦ部１１２に援用される対象制御部１１４には高い第１優先度が設定される。ＦＯＦ部１１２が対象制御部１１４を呼び出して機能を援用する場合、ＦＯＦ部１１２は、援用する対象制御部１１４の機能に応じて、段階的に構成されてもよい。例えば、対象装置ＴＧの温度制御生成に関する対象制御部１１４の機能を継続して援用する場合、ＦＯＦ生成部１０６は生成するＦＯＦ部１１２に温度制御生成の機能を持たせなくてもよい。
【００７６】
［ハードウェア構成］
図１５は、車両制御装置５が搭載する制御装置１００のハードウェア構成の一例を示す図である。なお、図１５の説明において、符号におけるハイフンおよびこれに続く数字は、制御装置１００の構成要素を示すものである。図示するように、制御装置１００は、通信コントローラ１００−１０、ＣＰＵ１００−２０、ワーキングメモリとして使用されるＲＡＭ（Random Access Memory）１００−３０、ブートプログラムなどを格納するＲＯＭ（Read Only Memory）１００−４０、フラッシュメモリやＨＤＤなどの記憶装置１００−５０、ドライブ装置１００−６０、ＦＰＧＡ１００−７０などが、内部バスあるいは専用通信線によって相互に接続された構成となっている。通信コントローラ１００−１０は、制御装置１００以外の構成要素との通信を行う。記憶装置１００−５０には、ＣＰＵ１００−２が実行するプログラム１００−５０ａが格納されている。このプログラムは、ＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＦＰＧＡ１００−７０上のＲＡＭ１００−３０に展開されて、ＣＰＵ１００−２０によって実行される。これによって、認識部１３０および行動計画生成部１４０が実現される。
【００７７】
上記説明した実施形態は、以下のように表現することができる。
プログラムを記憶した記憶装置と、
ハードウェアプロセッサと、を備え、
前記ハードウェアプロセッサは、前記記憶装置に記憶されたプログラムを実行することにより、
監視対象の状態に基づいて、前記監視対象に故障が生じたか否かを判定し、
前記監視対象に故障が生じたと判定された場合、機能を再構成可能な演算器に前記監視対象の動作に関連する機能を再構成させるためのソフトウェアを読み出して前記演算器に反映させる、
ように構成されている、制御装置。
【００７８】
以上説明した第１の実施形態によれば、監視対象の状態に基づいて、監視対象に故障が生じたか否かを判定する故障判定部１０４と、機能を再構成可能なＦＰＧＡにおいて監視対象の動作に関連する機能を再構成させるためのＦＯＦ部１１２を記憶した記憶部３００と、故障判定部１０４により監視対象に故障が生じたと判定された場合、ＦＯＦ部１１２を生成するＦＯＦ生成部１０６とを備えることにより、再構成可能なＦＰＧＡの柔軟な構造を利用して故障発生時にのみ故障対応専用のＦＯＦ部１１２を実現させることができる。
【００７９】
また、第１の実施形態の制御装置１００によれば、平常時であればＦＰＧＡを対象制御部１１４の制御にのみ使用させることができることから、平常時には対象制御部１１４が使用できるメモリ領域を可能な限り多く割り当て、故障時のみＦＯＦ部１１２を生成するといった効率的な演算器利用ができ、制御装置１００の平常時の処理量に応じて、制御装置１００を搭載する最適なデバイスを選択することができる。
【００８０】
また、第１の実施形態の制御装置１００によれば、第１優先度設定部１０８による第１優先度、および／または第２優先度設定部１１０による第２優先度に基づいてＦＯＦ部１１２の生成順序を最適化することができ、生成時間を短縮し、早期にＦＯＦ部１１２による制御を実現することができる。
【００８１】
＜適用例＞
以下、実施形態の適用例について説明する。本例では、制御ユニット（制御装置）の制御対象が自動運転車両Ｍに搭載された機器であるものとする。
【００８２】
［車両制御時の全体構成］
図１６は、実施形態に係る制御ユニット（制御装置）を含む、車両制御装置５の構成図である。車両制御装置５が搭載される車両は、例えば、二輪や三輪、四輪等の車両であり、その駆動源は、ディーゼルエンジンやガソリンエンジンなどの内燃機関、電動機、或いはこれらの組み合わせである。電動機は、内燃機関に連結された発電機による発電電力、或いは二次電池や燃料電池の放電電力を使用して動作する。
【００８３】
車両制御装置５は、例えば、カメラ１０と、レーダ装置１２と、ファインダ１４と、物体認識装置１６と、通信装置２０と、ＨＭＩ（Human Machine Interface）３０と、車両センサ４０と、ナビゲーション装置５０と、ＭＰＵ（Map Positioning Unit）６０と、運転操作子８０と、自動運転制御装置ＡＤＡと、走行駆動力出力装置２００と、ブレーキ装置２１０と、ステアリング装置２２０とを備える。これらの装置や機器は、ＣＡＮ（Controller Area Network）通信線等の多重通信線やシリアル通信線、無線通信網等によって互いに接続される。なお、図１６に示す構成はあくまで一例であり、構成の一部が省略されてもよいし、更に別の構成が追加されてもよい。
【００８４】
カメラ１０は、例えば、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の固体撮像素子を利用したデジタルカメラである。カメラ１０は、車両制御装置５が搭載される車両（以下、自動運転車両Ｍ）の任意の箇所に取り付けられる。前方を撮像する場合、カメラ１０は、フロントウインドシールド上部やルームミラー裏面等に取り付けられる。カメラ１０は、例えば、周期的に繰り返し自動運転車両Ｍの周辺を撮像する。カメラ１０は、ステレオカメラであってもよい。
【００８５】
レーダ装置１２は、自動運転車両Ｍの周辺にミリ波などの電波を放射すると共に、物体によって反射された電波（反射波）を検出して少なくとも物体の位置（距離および方位）を検出する。レーダ装置１２は、自動運転車両Ｍの任意の箇所に取り付けられる。レーダ装置１２は、ＦＭ−ＣＷ（Frequency Modulated Continuous Wave）方式によって物体の位置および速度を検出してもよい。
【００８６】
ファインダ１４は、ＬＩＤＡＲ（Light Detection and Ranging）である。ファインダ１４は、自動運転車両Ｍの周辺に光を照射し、散乱光を測定する。ファインダ１４は、発光から受光までの時間に基づいて、対象までの距離を検出する。照射される光は、例えば、パルス状のレーザー光である。ファインダ１４は、自動運転車両Ｍの任意の箇所に取り付けられる。
【００８７】
物体認識装置１６は、カメラ１０、レーダ装置１２、およびファインダ１４のうち一部または全部による検出結果に対してセンサフュージョン処理を行って、物体の位置、種類、速度などを認識する。物体認識装置１６は、認識結果を自動運転制御装置ＡＤＡに出力する。物体認識装置１６は、カメラ１０、レーダ装置１２、およびファインダ１４の検出結果をそのまま自動運転制御装置ＡＤＡに出力してよい。車両制御装置５から物体認識装置１６が省略されてもよい。
【００８８】
通信装置２０は、例えば、セルラー網やＷｉ−Ｆｉ網、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＤＳＲＣ（Dedicated Short Range Communication）などを利用して、自動運転車両Ｍの周辺に存在する他車両と通信し、或いは無線基地局を介して各種サーバ装置と通信する。
【００８９】
ＨＭＩ３０は、自動運転車両Ｍの乗員に対して各種情報を提示すると共に、乗員による入力操作を受け付ける。ＨＭＩ３０は、各種表示装置、スピーカ、ブザー、タッチパネル、スイッチ、キーなどを含む。
【００９０】
車両センサ４０は、自動運転車両Ｍの速度を検出する車速センサ、加速度を検出する加速度センサ、鉛直軸回りの角速度を検出するヨーレートセンサ、自動運転車両Ｍの向きを検出する方位センサ等を含む。
【００９１】
ナビゲーション装置５０は、例えば、ＧＮＳＳ（Global Navigation Satellite System）受信機５１と、ナビＨＭＩ５２と、経路決定部５３とを備える。ナビゲーション装置５０は、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの記憶装置に第１地図情報５４を保持している。ＧＮＳＳ受信機５１は、ＧＮＳＳ衛星から受信した信号に基づいて、自動運転車両Ｍの位置を特定する。自動運転車両Ｍの位置は、車両センサ４０の出力を利用したＩＮＳ（Inertial Navigation System）によって特定または補完されてもよい。ナビＨＭＩ５２は、表示装置、スピーカ、タッチパネル、キーなどを含む。ナビＨＭＩ５２は、前述したＨＭＩ３０と一部または全部が共通化されてもよい。経路決定部５３は、例えば、ＧＮＳＳ受信機５１により特定された自動運転車両Ｍの位置（或いは入力された任意の位置）から、ナビＨＭＩ５２を用いて乗員により入力された目的地までの経路（以下、地図上経路）を、第１地図情報５４を参照して決定する。第１地図情報５４は、例えば、道路を示すリンクと、リンクによって接続されたノードとによって道路形状が表現された情報である。第１地図情報５４は、道路の曲率やＰＯＩ（Point Of Interest）情報などを含んでもよい。地図上経路は、ＭＰＵ６０に出力される。ナビゲーション装置５０は、地図上経路に基づいて、ナビＨＭＩ５２を用いた経路案内を行ってもよい。ナビゲーション装置５０は、例えば、乗員の保有するスマートフォンやタブレット端末等の端末装置の機能によって実現されてもよい。ナビゲーション装置５０は、通信装置２０を介してナビゲーションサーバに現在位置と目的地を送信し、ナビゲーションサーバから地図上経路と同等の経路を取得してもよい。
【００９２】
ＭＰＵ６０は、例えば、推奨車線決定部６１を含み、ＨＤＤやフラッシュメモリなどの記憶装置に第２地図情報６２を保持している。推奨車線決定部６１は、ナビゲーション装置５０から提供された地図上経路を複数のブロックに分割し（例えば、車両進行方向に関して１００［ｍ］毎に分割し）、第２地図情報６２を参照してブロックごとに推奨車線を決定する。推奨車線決定部６１は、左から何番目の車線を走行するといった決定を行う。推奨車線決定部６１は、地図上経路に分岐箇所が存在する場合、自動運転車両Ｍが、分岐先に進行するための合理的な経路を走行できるように、推奨車線を決定する。
【００９３】
第２地図情報６２は、第１地図情報５４よりも高精度な地図情報である。第２地図情報６２は、例えば、車線の中央の情報あるいは車線の境界の情報等を含んでいる。また、第２地図情報６２には、道路情報、交通規制情報、住所情報（住所・郵便番号）、施設情報、電話番号情報などが含まれてよい。第２地図情報６２は、通信装置２０が他装置と通信することにより、随時、アップデートされてよい。
【００９４】
運転操作子８０は、例えば、アクセルペダル、ブレーキペダル、シフトレバー、ステアリングホイール、異形ステア、ジョイスティックその他の操作子を含む。運転操作子８０には、操作量あるいは操作の有無を検出するセンサが取り付けられており、その検出結果は、自動運転制御装置ＡＤＡ、もしくは、走行駆動力出力装置２００、ブレーキ装置２１０、およびステアリング装置２２０のうち一部または全部に出力される。
【００９５】
自動運転制御装置ＡＤＡは、例えば、第１制御部１２０および第２制御部１６０を備える。自動運転制御装置ＡＤＡにおける第１制御部１２０が上記実施形態における制御装置１００−１の適用例であり、第２制御部１６０が上記実施形態における制御装置１００−２の適用例である。これに限らず、制御装置１００−１の適用先は第１制御部１２０の中の認識部１３０、制御装置１００−２の適用先は行動計画生成部１４０というように適用先が決定されてもよい。その他、図１６または１７に示す車両制御装置５の構成要素うち、任意の構成要素に制御装置１００−１および制御装置１００−２が適用されてもよい。適用された制御装置１００−１と制御装置１００−２の組み合わせが制御ユニット１である。
【００９６】
図１７は、自動運転制御装置ＡＤＡの構成図である。第１制御部１２０は、例えば、認識部１３０と、行動計画生成部１４０とを備える。第１制御部１２０と第２制御部１６０は、それぞれ、例えば、ＣＰＵ（Central Processing Unit）などのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。また、これらの構成要素のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ、ＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予め自動運転制御装置ＡＤＡのＨＤＤやフラッシュメモリなどの記憶装置に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることで自動運転制御装置ＡＤＡのＨＤＤやフラッシュメモリにインストールされてもよい。
【００９７】
第１制御部１２０は、例えば、ＡＩ（Artificial Intelligence；人工知能）による機能と、予め与えられたモデルによる機能とを並行して実現する。例えば、「交差点を認識する」機能は、ディープラーニング等による交差点の認識と、予め与えられた条件（パターンマッチング可能な信号、道路標示などがある）に基づく認識とが並行して実行され、双方に対してスコア付けして総合的に評価することで実現されてよい。これによって、自動運転の信頼性が担保される。
【００９８】
認識部１３０は、例えば、周辺状況認識部１３２と、オブジェクト認識部１３４と、交通シーン選択部１３６と、テキスト生成部１３８とを備える。周辺状況認識部１３２は、カメラ１０、レーダ装置１２、およびファインダ１４から物体認識装置１６を介して入力された情報に基づいて、自動運転車両Ｍの周辺にある物体の位置、および速度、加速度等の状態を認識する。物体の位置は、例えば、自動運転車両Ｍの代表点（重心や駆動軸中心など）を原点とした絶対座標上の位置として認識され、制御に使用される。物体の位置は、その物体の重心やコーナー等の代表点で表されてもよいし、表現された領域で表されてもよい。物体の「状態」とは、物体の加速度やジャーク、あるいは「行動状態」（例えば車線変更をしている、またはしようとしているか否か）を含んでもよい。
【００９９】
行動計画生成部１４０は、原則的には推奨車線決定部６１により決定された推奨車線を走行し、更に、自動運転車両Ｍの周辺状況に対応できるように、自動運転車両Ｍが自動的に（運転者の操作に依らずに）将来走行する目標軌道を生成する。目標軌道は、例えば、速度要素を含んでいる。例えば、目標軌道は、自動運転車両Ｍの到達すべき地点（軌道点）を順に並べたものとして表現される。軌道点は、道なり距離で所定の走行距離（例えば数［ｍ］程度）ごとの自動運転車両Ｍの到達すべき地点であり、それとは別に、所定のサンプリング時間（例えば０コンマ数［ｓｅｃ］程度）ごとの目標速度および目標加速度が、目標軌道の一部として生成される。また、軌道点は、所定のサンプリング時間ごとの、そのサンプリング時刻における自動運転車両Ｍの到達すべき位置であってもよい。この場合、目標速度や目標加速度の情報は軌道点の間隔で表現される。
【０１００】
行動計画生成部１４０は、目標軌道を生成するにあたり、自動運転のイベントを設定してよい。自動運転のイベントには、定速走行イベント、低速追従走行イベント、車線変更イベント、分岐イベント、合流イベント、テイクオーバーイベントなどがある。行動計画生成部１４０は、起動させたイベントに応じた目標軌道を生成する。
【０１０１】
第２制御部１６０は、行動計画生成部１４０によって生成された目標軌道を、予定の時刻通りに自動運転車両Ｍが通過するように、走行駆動力出力装置２００、ブレーキ装置２１０、およびステアリング装置２２０を制御する。
【０１０２】
第２制御部１６０は、例えば、取得部１６２と、速度制御部１６４と、操舵制御部１６６とを備える。取得部１６２は、行動計画生成部１４０により生成された目標軌道（軌道点）の情報を取得し、メモリ（不図示）に記憶させる。速度制御部１６４は、メモリに記憶された目標軌道に付随する速度要素に基づいて、走行駆動力出力装置２００またはブレーキ装置２１０を制御する。操舵制御部１６６は、メモリに記憶された目標軌道の曲がり具合に応じて、ステアリング装置２２０を制御する。速度制御部１６４および操舵制御部１６６の処理は、例えば、フィードフォワード制御とフィードバック制御との組み合わせにより実現される。一例として、操舵制御部１６６は、自動運転車両Ｍの前方の道路の曲率に応じたフィードフォワード制御と、目標軌道からの乖離に基づくフィードバック制御とを組み合わせて実行する。
【０１０３】
走行駆動力出力装置２００は、車両が走行するための走行駆動力（トルク）を駆動輪に出力する。走行駆動力出力装置２００は、例えば、内燃機関、電動機、および変速機などの組み合わせと、これらを制御するＥＣＵとを備える。ＥＣＵは、第２制御部１６０から入力される情報、或いは運転操作子８０から入力される情報に従って、上記の構成を制御する。
【０１０４】
ブレーキ装置２１０は、例えば、ブレーキキャリパーと、ブレーキキャリパーに油圧を伝達するシリンダと、シリンダに油圧を発生させる電動モータと、ブレーキＥＣＵとを備える。ブレーキＥＣＵは、第２制御部１６０から入力される情報、或いは運転操作子８０から入力される情報に従って電動モータを制御し、制動操作に応じたブレーキトルクが各車輪に出力されるようにする。ブレーキ装置２１０は、運転操作子８０に含まれるブレーキペダルの操作によって発生させた油圧を、マスターシリンダを介してシリンダに伝達する機構をバックアップとして備えてよい。なお、ブレーキ装置２１０は、上記説明した構成に限らず、第２制御部１６０から入力される情報に従ってアクチュエータを制御して、マスターシリンダの油圧をシリンダに伝達する電子制御式油圧ブレーキ装置であってもよい。
【０１０５】
ステアリング装置２２０は、例えば、ステアリングＥＣＵと、電動モータとを備える。電動モータは、例えば、ラックアンドピニオン機構に力を作用させて転舵輪の向きを変更する。ステアリングＥＣＵは、第２制御部１６０から入力される情報、或いは運転操作子８０から入力される情報に従って、電動モータを駆動し、転舵輪の向きを変更させる。
【０１０６】
［車両制御装置への適用例１］
前述したように、車両制御装置５において、例えば、第２制御部１６０が制御装置１００−１により実現され、第１制御部１２０が制御装置１００−２により実現される。制御装置１００−２が故障した場合、例えば、制御装置１００−１が自動運転車両Ｍを徐々に減速させ、停止させる。
【０１０７】
以下、図７に戻り、車両制御装置５において第１優先度設定部１０８が第１優先度を設定する設定規則について説明する。なお、図７の例においては、機能Ａは自動運転車両Ｍの追突軽減ブレーキを制御する機能であり、機能Ｂは自動運転車両Ｍの車線維持を支援する機能であり、機能Ｃは自動運転車両Ｍの車線変更を支援する機能であり、機能Ｄは自動運転車両Ｍの車室内を制御する機能であるものとする。図１６、および図１７では、これらの個別の機能を実現するための機能部についての図示を省略している。
【０１０８】
ＦＯＦ部１１２は、例えば、自動運転制御装置ＡＤＡの制御対象が自動運転車両Ｍである場合、ディーラや整備工場などに自動運転車両Ｍの故障連絡をすることに関する機能や、路側帯に一時停止することに関する機能、ディーラや整備工場などまで乗員を送り届けることに関する機能といった、自動運転車両Ｍを限定的に走行させる機能を実現する。ＦＯＦ部１１２は、自動運転制御装置ＡＤＡによって実現されてもよいし、乗員による手動運転で作動する機能であってもよい。
【０１０９】
ＦＯＦ生成部１０６は、ＦＯＦ部１１２を生成する場合であっても、自動運転車両Ｍの制御に最低限必要な機能や、自動運転車両Ｍの乗員によって手動運転される際に必要となる機能（例えば、機能Ａの追突軽減ブレーキ）については、すべてのメモリ領域を解放させたり、機能のプログラム自体を削除させたりしないようにする。
【０１１０】
ＦＯＦ生成部１０６は、自動運転車両Ｍが無人走行中である場合や、自動運転車両Ｍの気温や天候等の周辺環境に基づいて、機能Ｄを機能させないようにしてもよいと決定し、その判定結果に基づいてメモリ領域の解放を行ってもよい。機能Ｄが自動運転車両Ｍの空調等の制御を行っている場合であり、且つ、自動運転車両Ｍが無人走行中である場合、ＦＯＦ生成部１０６は、機能Ｄの機能削除を含むメモリ領域の解放を行ってもよいと決定する。一方、機能Ｄが自動運転車両Ｍの空調等の制御を行っている場合であり、且つ、自動運転車両Ｍの乗員に幼児や老人が含まれる場合、ＦＯＦ生成部１０６は、機能Ｄの機能削除を含むメモリ領域の解放を行わないと決定する。
【０１１１】
また、ＦＯＦ生成部１０６は、自動運転車両Ｍが障害物迂回制御のような走行イベントに関連する制御を行っている場合、そのイベントに応じてＦＯＦ部１１２の生成タイミングを調整する。
【０１１２】
例えば、自動運転車両Ｍの認識部１３０は、自動運転車両Ｍの走行方向前方に障害物を認識し、行動計画生成部１４０に障害物迂回イベントを設定させ、行動計画生成部１４０は、障害物を迂回するための走行軌道を生成する。上述の障害物迂回イベント発生直後に制御装置１００によって他の制御装置１００の故障が検知された場合、ＦＯＦ生成部１０６は、ＦＯＦ部１１２の生成タイミングを遅くしてもよい。ＦＯＦ生成部１０６は、例えば、ＦＯＦ部１１２の生成タイミングを、障害物迂回イベント終了後とする。
【０１１３】
［車両制御装置への適用例２］
以下、図１０に戻り、車両制御装置５において第２優先度設定部１１０が第２優先度を設定する設定規則について説明する。なお、図１０の例においては、機能１は自動運転車両Ｍを路側等に一時停止する機能であり、機能Ｂは自動運転車両Ｍのディーラや修理工場に連絡して自動運転制御装置ＡＤＡの修理・交換を手配し、ディーラや修理工場まで自動運転車両Ｍを自動運転または手動運転で移動させる機能であるものとする。
【０１１４】
第２優先度設定部１１０は、制御装置１００が他の制御装置１００の故障を検知した場合、まず自動運転車両Ｍを路側等に一時停止させた後、ディーラや修理工場に連絡して修理・交換を手配することから、ＦＯＦ部１１２の機能１に対して、機能２よりも高い第２優先度を設定する。
【０１１５】
また、第２優先度設定部１１０は、ＦＯＦ部１１２の機能１による自動運転車両Ｍの一時停止を終了した場合、ＦＯＦ部１１２の機能２によってディーラ等に連絡して修理・交換を手配した後、修理工場等まで自動運転車両Ｍを移動させる場合に、修理工場まで自動運転車両Ｍを移動させる際は手動運転が行われることが想定されるため、ＦＯＦ部１１２の機能２の第２優先度を第１優先度よりも高く設定する。また、第２優先度設定部１１０は、ＦＯＦ部１１２のうち手動運転時に作動する機能（例えば機能２）がある場合、その機能の第２優先度を高く設定し、手動運転時に作用しない機能（例えば機能１）の第２優先度を低く設定する。
【０１１６】
以上説明したように、車両制御装置５によれば、監視対象である自動運転車両Ｍの車両制御を行い、自動運転車両Ｍを限定的に走行させる縮退機能を実現するためのソフトウェアであるＦＯＦ部１１２は、再構成可能なＦＰＧＡの柔軟な構造を利用して故障発生時にのみ故障対応専用の機能を実現させることができる。
【０１１７】
また、車両制御装置５によれば、自動運転の精度が低下した場合にのみ縮退機能であるＦＯＦ部１１２を生成するため、制御装置１００を小型化しつつ、縮退制御も実現することができる。
【０１１８】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【０１１９】
１…制御ユニット、５…車両制御装置、１０…カメラ、１２…レーダ装置、１４…ファインダ、１６…物体認識装置、２０…通信装置、３０…ＨＭＩ、４０…車両センサ、５０…ナビゲーション装置、６０…ＭＰＵ、８０…運転操作子、１００…制御装置、１０４、１０４−１、１０４−２…故障判定部、１０６、１０６−１、１０６−２…ＦＯＦ生成部、１０８、１０８−１、１０８−２…第１優先度設定部、１１０…第２優先度設定部、１１２…ＦＯＦ部、１１４…対象制御部、１２０…第１制御部、１３０…認識部、１４０…行動計画生成部、１６０…第２制御部、２００…走行駆動力出力装置、２１０…ブレーキ装置、２２０…ステアリング装置、３００…記憶部、Ｍ…自動運転車両、ＡＤＡ…自動運転制御装置
【図１】
2020008950.tif 000003
【図２】
2020008950.tif 000004
【図３】
2020008950.tif 000005
【図４】
2020008950.tif 000006
【図５】
2020008950.tif 000007
【図６】
2020008950.tif 000008
【図７】
2020008950.tif 000009
【図８】
2020008950.tif 000010
【図９】
2020008950.tif 000011
【図１０】
2020008950.tif 000012
【図１１】
2020008950.tif 000013
【図１２】
2020008950.tif 000014
【図１３】
2020008950.tif 000015
【図１４】
2020008950.tif 000016
【図１５】
2020008950.tif 000017
【図１６】
2020008950.tif 000018
【図１７】
2020008950.tif 000019