(57)【特許請求の範囲】
【請求項１】
車両の周辺環境情報および位置情報に基づいて自動運転を実行する際の走行経路を決定する自動運転制御装置と、
前記走行経路に基づいて前記車両のステアリング制御を行うステアリング制御装置と、を備え、
前記自動運転制御装置は、
自動運転コントローラ主系および自動運転コントローラ従系を備えてシステムが多重化され、
前記ステアリング制御装置は、
ステアリングコントローラ主系およびステアリングコントローラ従系を備えてシステムが多重化され、
前記自動運転制御装置および前記ステアリング制御装置は、相互通信により互いの異常の検出および状態の確認を行い、
前記自動運転制御装置は、
前記ステアリング制御装置の異常として、前記ステアリングコントローラ主系および前記ステアリングコントローラ従系の一方の異常を検出した場合、異常を検出していない他方が前記ステアリング制御を行うように切り替え制御し、
前記ステアリング制御装置は、
前記自動運転制御装置の異常として、前記自動運転コントローラ主系および前記自動運転コントローラ従系の一方の異常を検出した場合、異常を検出していない他方が出力する制御量を用いて前記ステアリング制御を行い、
前記状態は、前記車両が自動運転状態であるか手動運転状態であるかの２つの状態であり、
前記自動運転制御装置は、
前記自動運転コントローラ主系および前記自動運転コントローラ従系の一方の異常を検出した場合、または前記ステアリングコントローラ主系および前記ステアリングコントローラ従系の一方の異常を検出した場合に、前記状態が前記自動運転状態であれば手動運転への切り替え要求を出力し、
前記自動運転制御装置および前記ステアリング制御装置の前記相互通信は、周期的に実行され、
周期的なメッセージ送信に対する周期的な応答送信の有無および、前記メッセージ送信および前記応答送信に含まれる通信情報によって前記異常を検出すると共に、前記通信情報に含まれる、前記自動運転状態であるか前記手動運転状態であるかの状態情報によって前記状態を確認し、
前記自動運転制御装置からの前記メッセージ送信に含まれる前記通信情報の前記状態情報と、
前記ステアリング制御装置からの前記応答送信に含まれる前記通信情報の前記状態情報とが異なる場合、
前記自動運転制御装置は、前記ステアリング制御装置に対して状態変更要求を送信し、
前記ステアリング制御装置は、前記状態情報を変更し、変更したことを前記自動運転制御装置に送信する、車両制御装置。
【請求項２】
前記相互通信によって検出する前記異常は、
前記自動運転制御装置からの前記メッセージ送信に対して前記ステアリング制御装置が前記応答送信しない場合の前記ステアリング制御装置の前記異常と、
前記自動運転制御装置から前記ステアリング制御装置に対して前記メッセージ送信がない場合の前記自動運転制御装置の前記異常を含む、請求項１記載の車両制御装置。
【請求項３】
前記通信情報は、
前記メッセージ送信および前記応答送信のそれぞれに付与されるインデックスを含み、
前記相互通信によって検出する前記異常は、
前記自動運転制御装置からの前記メッセージ送信に付与される前記インデックスが間違っている場合の前記自動運転制御装置の前記異常と、
前記ステアリング制御装置からの前記応答送信に付与される前記インデックスが間違っている場合の前記ステアリング制御装置の前記異常を含む、請求項１記載の車両制御装置。
【請求項４】
前記インデックスは、０から始まる多ビットの変数として定義され、
前記自動運転制御装置から前記メッセージ送信に付与される前記インデックスは、前記自動運転制御装置の正常時には、前記メッセージ送信をするごとに１つずつインクリメントされ、
前記ステアリング制御装置からの前記応答送信に付与される前記インデックスは、前記ステアリング制御装置の正常時には、前記自動運転制御装置からの前記メッセージ送信に付与された前記インデックスと同じ数値とされる、請求項３記載の車両制御装置。
【請求項５】
前記ステアリング制御装置での前記メッセージ送信の受信周期は、
前記自動運転制御装置からの前記メッセージ送信の送信周期以下である、請求項１記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は車両制御装置に関し、特にフェールセーフを実現する車両制御装置に関する。
【背景技術】
【０００２】
車載システムでは多種多様な電子機器が搭載されている。これらの機器を制御するためのＥＣＵ（Electronic Control Unit）と呼ばれる制御装置は、近年の多機能化、複雑化に伴い、搭載数が増加している。特に昨今研究開発が加速している自動運転システムにおいては、車両のエンジン制御、ブレーキ制御、ステアリング制御を連携させることによって高度な自動運転を実現するシステムが考案されている。【０００３】
このような自動運転システムは、周辺状況から最適な制御パラメータを生成する自動運転ＥＣＵと、車両のエンジン制御、ブレーキ制御およびステアリング制御をそれぞれ実現するエンジン制御ＥＣＵ、ブレーキ制御ＥＣＵおよびステアリング制御ＥＣＵで構成される。自動運転システムのどこかに異常が発生した場合、自動運転が継続できなくなるため、安全を確保できる状態に移行するまでの維持動作（フェールオペレーション動作）および安全な状態への移行（フェールセーフ動作）が求められる。【０００４】
特許文献１では、多重化されたシステムにおいて、複数のコントローラが異常を相互監視することにより、異常発生時に制御を切り替えることによってフェールオペレーション動作を実現する構成段が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１９９２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
自動運転を実現するコントローラおよび電動パワーステアリングＥＣＵ（ステアリングＥＣＵ）においては、システムの一部に異常が発生した場合、フェールオペレーション動作を実現する必要があるため、多重化されている場合がある。【０００７】
これらのコントローラは車両制御に加え、自動運転または手動運転といった状態を管理する必要があり、異常の監視だけでは不十分である。特許文献１では監視対象がエンジンコントローラであり、状態の管理については言及されておらず、フェールオペレーション動作が確実に実現できるとは言えない。【０００８】
本発明は上記のような問題を解決するためになされたものであり、フェールオペレーション動作を確実に実現できる車両制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る車両制御装置は、車両の周辺環境情報および位置情報に基づいて自動運転を実行する際の走行経路を決定する自動運転制御装置と、前記走行経路に基づいて前記車両のステアリング制御を行うステアリング制御装置と、を備え、前記自動運転制御装置は、自動運転コントローラ主系および自動運転コントローラ従系を備えてシステムが多重化され、前記ステアリング制御装置は、ステアリングコントローラ主系およびステアリングコントローラ従系を備えてシステムが多重化され、前記自動運転制御装置および前記ステアリング制御装置は、相互通信により互いの異常の検出および状態の確認を行い、前記自動運転制御装置は、前記ステアリング制御装置の異常として、前記ステアリングコントローラ主系および前記ステアリングコントローラ従系の一方の異常を検出した場合、異常を検出していない他方が前記ステアリング制御を行うように切り替え制御し、前記ステアリング制御装置は、前記自動運転制御装置の異常として、前記自動運転コントローラ主系および前記自動運転コントローラ従系の一方の異常を検出した場合、異常を検出していない他方が出力する制御量を用いて前記ステアリング制御を行い、前記状態は、前記車両が自動運転状態であるか手動運転状態であるかの２つの状態であり、前記自動運転制御装置は、前記自動運転コントローラ主系および前記自動運転コントローラ従系の一方の異常を検出した場合、または前記ステアリングコントローラ主系および前記ステアリングコントローラ従系の一方の異常を検出した場合に、前記状態が前記自動運転状態であれば手動運転への切り替え要求を出力し、前記自動運転制御装置および前記ステアリング制御装置の前記相互通信は、周期的に実行され、周期的なメッセージ送信に対する周期的な応答送信の有無および、前記メッセージ送信および前記応答送信に含まれる通信情報によって前記異常を検出すると共に、前記通信情報に含まれる、前記自動運転状態であるか前記手動運転状態であるかの状態情報によって前記状態を確認し、前記自動運転制御装置からの前記メッセージ送信に含まれる前記通信情報の前記状態情報と、前記ステアリング制御装置からの前記応答送信に含まれる前記通信情報の前記状態情報とが異なる場合、前記自動運転制御装置は、前記ステアリング制御装置に対して状態変更要求を送信し、前記ステアリング制御装置は、前記状態情報を変更し、変更したことを前記自動運転制御装置に送信する。
【発明の効果】
【００１０】
本発明に係る車両制御装置によれば、自動運転ＥＣＵおよびステアリングＥＣＵのどちらかに異常が発生した場合でも、それぞれのシステムが多重化されているため、フェールオペレーション動作を確実に実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係る実施の形態１の車両制御装置の構成を示すブロック図である。
【図２】本発明に係る実施の形態１の車両制御装置でのステアリングコントローラの異常判定を説明するフローチャートである。
【図３】本発明に係る実施の形態１の車両制御装置での自動運転コントローラの異常判定を説明するフローチャートである。
【図４】本発明に係る実施の形態１の車両制御装置での自動運転ＥＣＵの状態遷移を示す図である。
【図５】本発明に係る実施の形態１の車両制御装置でのステアリングＥＣＵの状態遷移を示す図である。
【図６】本発明に係る実施の形態１の車両制御装置での自動運転ＥＣＵとステアリングＥＣＵの異常検出および状態確認を行うシーケンスを示す図である。
【図７】本発明に係る実施の形態１の車両制御装置でのステアリングＥＣＵの異常検出時のシーケンスを示す図である。
【図８】本発明に係る実施の形態１の車両制御装置でのステアリングＥＣＵの異常検出時のシーケンスを示す図である。
【図９】本発明に係る実施の形態１の車両制御装置での自動運転ＥＣＵの異常検出時のシーケンスを示す図である。
【図１０】本発明に係る実施の形態１の車両制御装置での自動運転ＥＣＵの異常検出時のシーケンスを示す図である。
【図１１】本発明に係る実施の形態１の車両制御装置での状態不一致時のシーケンスを示す図である。
【図１２】本発明に係る実施の形態１の車両制御装置を実現するハードウェア構成を示す図である。
【図１３】本発明に係る実施の形態１の車両制御装置を実現するハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明に係る実施の形態１の車両制御装置１０の構成を示す機能ブロック図である。車両制御装置１０は、車両（図示せず）に搭載され、同じく車両に搭載された複数の周辺環境取得部３０、３１、３２および自車位置情報取得部４０から車載ネットワーク８０を介して各種情報を受ける自動運転制御装置（自動運転ＥＣＵ）２０と、自動運転ＥＣＵ２０に車載ネットワーク８１を介して接続されるステアリング制御装置（ステアリングＥＣＵ）５０、ブレーキ制御装置（ブレーキＥＣＵ）６０およびアクセル制御装置（アクセルＥＣＵ）７０を有している。
【００１３】
車両制御装置１０は、スイッチ等のユーザーインターフェース１１に接続され、ドライバは、ユーザーインターフェース１１を介して、自動運転ＥＣＵ２０に情報を伝え、自動運転と手動運転の切り替えを行う。また、手動運転時には、図示されないハンドル、アクセルおよびブレーキから車載ネットワーク８１を介して、制御量がステアリングＥＣＵ５０、ブレーキＥＣＵ６０およびアクセルＥＣＵ７０に伝えられる。
【００１４】
自動運転ＥＣＵ２０からは、ユーザーインターフェース１１を介して、ドライバに対して、現在の車両の状態が自動運転中であるか手動運転中であるかと言った情報および異常発生時に手動運転への切り替え要求を通知する。
【００１５】
なお、図１においては周辺環境取得部３０〜３２を示したが、個数はこれに限定されるものではなく、カメラ、ミリ波レーダー、ソナー等の各種センサおよび、車車間通信モジュール、路車間通信モジュール等から選択することができる。
【００１６】
自車位置情報取得部４０としては、ＧＰＳ（Global Positioning System）等のＧＮＳＳ（Global Navigation Satellite System）の受信装置が挙げられるが、受信した自車位置情報とダイナミックマップなどの高精度地図とを組み合わせることで、周辺環境の情報も取得できる。
【００１７】
自動運転ＥＣＵ２０は、異常発生時に維持動作が可能なように、コントローラのシステムが多重化されており、自動運転コントローラ主系２１と自動運転コントローラ従系２２で構成されている。
【００１８】
自動運転コントローラ主系２１および自動運転コントローラ従系２２で構成される自動運転ＥＣＵ２０は、周辺環境取得部３０〜３２から得られる周辺環境情報および自車位置情報取得部４０から得られる位置情報を集約し、自動運転を実行する際の自車の走行する走行経路を生成し、走行経路に基づいた制御量、例えば目標ハンドル角、エンジン駆動量およびブレーキ駆動量を演算する。演算結果はネットワーク８１を介して、ステアリングＥＣＵ５０、ブレーキＥＣＵ６０およびアクセルＥＣＵ７０に送られ、それぞれアクチュエータ制御を行うことで自動運転を実現する。
【００１９】
ステアリングＥＣＵ５０は、自動運転ＥＣＵ２０と同様に異常発生時に維持動作が可能なように、コントローラのシステムが多重化されており、ステアリングコントローラ主系５１とステアリングコントローラ従系５２で構成されている。
【００２０】
ステアリングコントローラ主系５１およびステアリングコントローラ従系５２は、それぞれ自動運転ＥＣＵ２０からの制御量に基づき、ステアリングアクチュエータ５４の制御を行う。ステアリングコントローラ主系５１およびステアリングコントローラ従系５２の出力は、スイッチ回路５３を介してステアリングアクチュエータ５４に出力されるが、スイッチ回路５３は自動運転ＥＣＵ２０から制御ライン９０を介して切り替え制御され、ステアリングコントローラ主系５１およびステアリングコントローラ従系５２のどちらか一方の出力のみがステアリングアクチュエータ５４に出力される。
【００２１】
なお、図１では自動運転コントローラ主系２１がスイッチ回路５３を制御するように図示しているが、自動運転コントローラ従系２２が制御しても良い。また、自動運転コントローラ主系２１と自動運転コントローラ従系２２とで調停してスイッチ回路５３を制御しても良い。
【００２２】
なお、以降の説明では、ステアリングコントローラ主系５１およびとステアリングコントローラ従系５２は、同一の制御を行うことが可能な完全なる冗長系を想定して説明を行う。ただし、構成としては、必ずしも同一の制御を行う完全なる冗長系でなくても良い。例えば、従系のコントローラは出力を制限して最低限の駆動力しか出力しない構成としても、安全が担保できるのであればそれでも構わない。自動運転コントローラ主系２１と自動運転コントローラ従系２２についても考え方はステアリングＥＣＵ５０と同様であるが、以降の説明では自動運転コントローラ主系２１は本来の自動運転を実現するためのコントローラ、自動運転コントローラ従系２２は最低限の自動運転を実現するためのコントローラとして区別することとする。
【００２３】
図２は、自動運転コントローラにおけるステアリングコントローラの異常判定を説明するフローチャートである。自動運転コントローラは、ステアリングコントローラ主系５１に異常が発生しているかを確認する（ステップＳ１０１）。
【００２４】
そして、異常が発生している場合（Ｙｅｓの場合）は、ステップＳ１０２においてＥＰＳ（Electric Power Steering：電動パワーステアリング）のレイテントモード（ＥＰＳレイテントモード）に移行した後、スイッチ回路５３をステアリングコントローラ従系５２の側に切り替えることで、継続動作を実現する（ステップＳ１０３）。
【００２５】
その後、ステアリングコントローラ従系５２に異常が発生しているかを確認する（ステップＳ１０４）。
【００２６】
そして、異常が発生している場合（Ｙｅｓの場合）、すなわち、ステアリングコントローラ主系５１およびステアリングコントローラ従系５２が共に異常だった場合は、緊急停止モードに移行して緊急停止処理を実行する（ステップＳ１０５）。
【００２７】
緊急停止処理の内容についての詳細は省略するが、例えば、ブレーキＥＣＵ６０とアクセルＥＣＵ７０を制御して車両をその場で停止させる等の処理が挙げられる。
【００２８】
一方、ステップＳ１０４において、ステアリングコントローラ従系５２に異常が発生していない場合（Ｎｏの場合）は、処理を終える。
【００２９】
また、ステップＳ１０１において、ステアリングコントローラ主系５１に異常が発生していない場合（Ｎｏの場合）は、ステップＳ１０６に移行してステアリングコントローラ従系５２に異常が発生しているかを確認する。
【００３０】
ステップＳ１０６において、ステアリングコントローラ従系５２に異常が発生していた場合（Ｙｅｓの場合）は、ＥＰＳレイテントモードに移行し（ステップＳ１０７）、処理を終える。一方、ステップＳ１０６において、ステアリングコントローラ従系５２に異常が発生していない場合（Ｎｏの場合）は、処理を終える。なお、ＥＰＳレイテントモード、緊急停止モードについては後述する。
【００３１】
図３は、ステアリングコントローラにおける自動運転コントローラの異常判定を説明するフローチャートである。ステアリングコントローラは、自動運転コントローラ主系２１に異常が発生しているかを確認する（ステップＳ２０１）。
【００３２】
そして、異常が発生している場合（Ｙｅｓの場合）は、ステップＳ２０２においてバックアップモードに移行し、自動運転走行中であればドライバに手動運転への切り替え要求を出す。
【００３３】
その後、自動運転コントローラ従系２２の制御量を活用して、ステアリングアクチュエータ５４の制御を行う（ステップＳ２０３）。
【００３４】
さらに、自動運転コントローラ従系２２に異常が発生しているかを確認する（ステップＳ２０４）。
【００３５】
そして、異常が発生している場合（Ｙｅｓの場合）、すなわち、自動運転コントローラ主系２１および自動運転コントローラ従系２２が共に異常だった場合は、緊急停止モードに移行して緊急停止処理を実行する（ステップＳ２０５）。
【００３６】
一方、ステップＳ２０４において、自動運転コントローラ従系２２に異常が発生していない場合（Ｎｏの場合）は、処理を終える。
【００３７】
また、ステップＳ２０１において、自動運転コントローラ主系２１に異常が発生していない場合（Ｎｏの場合）は、ステップＳ２０６に移行して自動運転コントローラ従系２２に異常が発生しているかを確認する。
【００３８】
ステップＳ２０６において、自動運転コントローラ従系２２に異常が発生していた場合（Ｙｅｓの場合）は、レイテントモードに移行し、自動運転走行中であればドライバに手動運転への切り替え要求を出す（ステップＳ２０７）。
【００３９】
その後、自動運転コントローラ従系２２の異常の有無にかかわらず、自動運転コントローラ主系２１の制御量を活用して、ステアリングアクチュエータ５４の制御を行う（ステップＳ２０８）。これにより、自動運転コントローラ主系２１に異常が発生しても継続動作を実現する。
【００４０】
一方、ステップＳ２０６において、自動運転コントローラ従系２２に異常が発生していない場合（Ｎｏの場合）は、ステップＳ２０８に移行する。なお、バックアップモード、レイテントモード、緊急停止モードについては後述する。
【００４１】
図４は、自動運転ＥＣＵ２０の状態遷移を示す図である。図４に示すように、自動運転ＥＣＵは大きく分けて、手動運転モード（手動運転状態）と自動運転モード（自動運転状態）という状態を備える。ドライバのユーザーインターフェース１１を介しての操作、例えば自動運転スイッチのＯＮ／ＯＦＦによって手動運転モードから自動運転モードに切り替わる。
【００４２】
また、手動運転モードおよび自動運転モードは、共に通常モードおよびＥＰＳレイテントモードを備える。ここで、ＥＰＳレイテントモードは、ステアリングコントローラの主系または従系に異常が発生している場合に、正常な方でステアリング制御を行うモードであり、通常モードは、ステアリングコントローラの主系および従系が共に正常な場合に、どちらでステアリング制御を行っても良いモードである。
【００４３】
ステアリングコントローラ主系５１またはステアリングコントローラ従系５２の異常を検出した場合は、図２のフローチャートに示したように、ＥＰＳレイテントモードに遷移する。
【００４４】
この状態では、ステアリングコントローラ主系５１またはステアリングコントローラ従系５２に異常を検出している状態であるが、自動運転ＥＣＵ２０がスイッチ回路５３を切り替え、異常の発生していない方のステアリングコントローラを活用するため、動作を継続することができる。ただし、この状態でさらに異常が発生すると、ステアリングの操作ができなくなる可能性があるため、自動運転モードの場合は、手動運転モードへの切り替え要請をドライバに通知しても良い。また、異常から復帰した場合は、通常モードまたはＥＰＳレイテントモードに遷移する。もし、ステアリングＥＣＵ５０のステアリングコントローラ主系５１およびステアリングコントローラ従系５２の両方に異常が発生した場合は、緊急停止モード、すなわち緊急停止処理を実行するモードに遷移する。この場合、手動運転モードおよび自動運転モードのどちらであっても、ステアリングの操作ができなくなるため、緊急停止処理として車両を停止する等の処理を実行する。なお、図４に示した状態遷移は一例である。
【００４５】
図５は、ステアリングＥＣＵ５０の状態遷移を示す図である。図５に示すように、ステアリングＥＣＵ５０は大きく分けて、手動運転モード（手動運転状態）と自動運転モード（自動運転状態）という状態を備える。
【００４６】
また、手動運転モードおよび自動運転モードは、共に通常モード、レイテントモードおよびバックアップモードを備える。
【００４７】
自動運転コントローラ主系２１および自動運転コントローラ従系２２が共に正常な場合は、通常モードとなる。この場合、図３のフローチャートに示したように、自動運転モードであれば、ステアリングＥＣＵ５０は自動運転コントローラ主系２１の制御量を活用してステアリングアクチュエータ５４の制御を行う。
【００４８】
一方、自動運転コントローラ主系２１の異常を検出した場合、バックアップモードに遷移する。バックアップモードとは、自動運転モードであれば、ステアリングＥＣＵ５０は自動運転コントローラ従系２２の制御量を活用してステアリングアクチュエータ５４の制御を行うモードである。
【００４９】
一方、自動運転コントローラ従系２２の異常を検出した場合はレイテントモードに遷移する。この場合、自動運転モードであれば、ステアリングＥＣＵ５０は自動運転コントローラ主系２１の制御量を活用してステアリングアクチュエータ５４の制御を行う。
【００５０】
バックアップモードおよびレイテントモード共に異常から復帰した場合は、通常モードに遷移する。もし、自動運転コントローラ主系２１および自動運転コントローラ従系２２の両方に異常が発生した場合には緊急停止モード、すなわち緊急停止処理を実行するモードに遷移する。自動運転モードであれば、自動運転を継続できなくなるため、緊急停止処理として車両を停止する等の処理を実行する。なお、図５に記載の状態遷移は一例である。
【００５１】
図６は、自動運転ＥＣＵ２０とステアリングＥＣＵ５０のメッセージ通信による異常検出と状態確認のシーケンスを示す図である。図６に示すように、自動運転ＥＣＵ２０は、ステアリングＥＣＵ５０に対して、周期的に生存確認メッセージを送信する。以下では、これをメッセージ送信と呼称する場合もある。ステアリングＥＣＵ５０は、周期的に生存確認メッセージの受信を確認することによって、自動運転ＥＣＵ２０が正しく動いていることを確認する。ステアリングＥＣＵ５０は、メッセージの受信を確認できたら、自動運転ＥＣＵ２０に対して生存確認メッセージ応答を送る。以下では、これを応答送信と呼称する場合もある。自動運転ＥＣＵ２０は生存確認メッセージ応答の受信を確認することでステアリングＥＣＵ５０が正しく動いていることを確認する。
【００５２】
図６の例では、自動運転ＥＣＵ２０は、周期的に起動し、前周期の期間内で受信したステアリングＥＣＵ５０からのメッセージを確認する処理（関数）を呼び出して実行し、その結果に基づいて生存確認メッセージを送信し、処理を終了する。生存確認メッセージに含まれる通信情報として、引数としてのインデックスおよび状態情報が付与されている。ステアリングＥＣＵ５０も周期的に起動し、前周期の期間内に送られてきた生存確認メッセージの受信を確認する処理（関数）を呼び出して実行し、その結果に基づいて生存確認メッセージ応答を送信し、処理を終了する。生存確認メッセージ応答に含まれる通信情報として、引数としてのインデックスおよび状態情報が付与されている。なお、図６に示されるように、「１：前周期メッセージ確認」を行う処理の起動から次の「４：前周期メッセージ確認」を行う処理の起動までが自動運転ＥＣＵ２０の１周期である。ステアリングＥＣＵ５０については、「３：生存確認メッセージ受信確認」をする処理の起動から次の「６：生存確認メッセージ受信確認」をする処理の起動までが１周期である。
【００５３】
このように自動運転ＥＣＵ２０とステアリングＥＣＵ５０との間での相互通信を周期的に行うことで、お互いの異常と状態（手動運転状態または自動運転状態）を相互監視することができ、異常の検出だけでなく、自動運転システムに必須となる状態を監視することができる。
【００５４】
ここで、ステアリングＥＣＵ５０の生存確認メッセージの受信周期（確認周期）は、自動運転ＥＣＵ２０の生存確認メッセージの送信周期以下とすることで、ステアリングＥＣＵ５０がメッセージの確認をしている間に次のメッセージが届いてしまい、対処できずにインデックスが不整合となる事態を防止できる。生存確認メッセージの送信周期は、例えば１００ｍｓｅｃとし、自動運転ＥＣＵ２０およびステアリングＥＣＵ５０の制御周期と同程度としている。
【００５５】
引数として付与されるインデックスは、例えば０から始まる８ビットの変数として定義され、「０→１→２→３・・・→２５５→０→１→２→３・・・」のように、０〜２５５まで、メッセージを送るごとに１つずつインクリメントする構成が挙げられる。なお、インデックスの変数としては８ビットに限定ものではなく、生存確認メッセージの送信周期などを考慮した現実的な多ビットの変数に設定すれば良い。
【００５６】
図６の例では、自動運転ＥＣＵ２０が送信する「２：生存確認メッセージ送信」のインデックスが「０」であるなら、ステアリングＥＣＵ５０が送信する「３.１：生存確認メッセージ応答」のインデックスも「０」となる。これが一致する場合は正しく応答されていることを示すが、不一致の場合は、何らかの異常があることを示す。
【００５７】
なお、上述した図６の説明では、主系と従系の区別なく説明したが、どちらも同じシーケンスで動作することを想定している。すなわち、自動運転ＥＣＵ２０の主系および従系は、それぞれステアリングＥＣＵ５０の主系および従系に対してメッセージを送り、ステアリングＥＣＵ５０の主系および従系は、それぞれ自動運転ＥＣＵ２０の主系および従系に応答を返す。
【００５８】
ステアリングＥＣＵ５０の異常発生パターンとして、（ａ）メッセージに対する応答を返さない、（ｂ）応答は返すがインデックスが間違っている、が挙げられ、図７は、（ａ）の場合のステアリングＥＣＵ５０の異常検出時のシーケンスを示す図である。
【００５９】
図７に示すように、自動運転ＥＣＵ２０では生存確認メッセージ送信前に、前周期で送信したメッセージに対するステアリングＥＣＵ５０からの生存確認メッセージ応答のチェックを行う。何周期か連続で応答がない場合は、ステアリングＥＣＵ５０に異常が発生したと判断する。
【００６０】
図７の例では、「２：生存確認メッセージ送信」に対して、ステアリングＥＣＵ５０からの生存確認メッセージ応答がなく、また、次の周期での「４：生存確認メッセージ送信」に対してもステアリングＥＣＵ５０からの生存確認メッセージ応答がなく、数周期連続でステアリングＥＣＵ５０から応答がない場合を示している。
【００６１】
自動運転ＥＣＵ２０は、さらに次の周期での「５：前周期メッセージ確認」をした結果、「５.１：ステアリング制御装置異常判定」処理を実行する。なお、異常判定後の処理については、図２のフローチャートに示した通りである。なお、図７の例では数周期連続でステアリングＥＣＵ５０から応答がなかった場合を示しているが、これは一例であり、一度でもステアリングＥＣＵ５０から応答がなかった場合に、異常と判定しても良い。
【００６２】
このように、生存確認メッセージ応答の有無で、ステアリングＥＣＵ５０の正常および異常を検出するので、ステアリングＥＣＵ５０の異常の判断が容易である。
【００６３】
図８は、「（ｂ）応答は返すがインデックスが間違っている」場合のステアリングＥＣＵ５０の異常検出時のシーケンスを示す図である。
【００６４】
図８の例では、「２：生存確認メッセージ送信」に対して、ステアリングＥＣＵ５０から「３：生存確認メッセージ応答」はあるが、そのインデックスが間違っている。自動運転ＥＣＵ２０は、次の周期での「４：前周期メッセージ確認」の結果、間違ったインデックスが送られてきたことを確認し、「５：生存確認メッセージ送信」を行う。
【００６５】
これに対して、ステアリングＥＣＵ５０から「６：生存確認メッセージ応答」はあるが、そのインデックスも間違っており、数周期連続でステアリングＥＣＵ５０から間違ったインデックスが返ってくる場合を示している。
【００６６】
自動運転ＥＣＵ２０は、さらに次の周期で「７：前周期メッセージ確認」をした結果、「７.１：ステアリング制御装置異常判定」処理を実行する。なお、異常判定後の処理については、図２のフローチャートに示した通りである。なお、図８の例では数周期連続でステアリングＥＣＵ５０から間違ったインデックスが返ってくる場合を示しているが、これは一例であり、一度でもステアリングＥＣＵ５０から間違ったインデックスが返ってきた場合に、異常と判定しても良い。
【００６７】
このように、インデックスの正誤で、ステアリングＥＣＵ５０の正常および異常を検出するので、ステアリングＥＣＵ５０の異常の判断を、異なった指標に基づいて行うことができ、異常の原因の究明および解消に有効である。
【００６８】
自動運転ＥＣＵ２０の異常発生パターンとして、（ａ）メッセージを送信しない、（ｂ）メッセージのインデックスが間違っている、が挙げられ、図９は、（ａ）の場合の自動運転ＥＣＵ２０の異常検出時のシーケンスを示す図である。
【００６９】
図９に示すように、ステアリングＥＣＵ５０は周期的に起動し、前周期の期間内に自動運転ＥＣＵ２０から送られてきた生存確認メッセージの受信を確認する処理（関数）を呼び出して実行し、その結果に基づいて生存確認メッセージ応答を送信するが、図９の例では、自動運転ＥＣＵ２０からの生存確認メッセージの送信がない場合を示している。
【００７０】
すなわち、ステアリングＥＣＵ５０では、「１：生存確認メッセージの受信確認」を実行するが、自動運転ＥＣＵ２０からの生存確認メッセージが受信されていないので、生存確認メッセージ応答を送信できない。
【００７１】
同様に、次の周期で「２：生存確認メッセージの受信確認」を実行するが、自動運転ＥＣＵ２０からの生存確認メッセージが受信されていないので、生存確認メッセージ応答を送信できない。
【００７２】
さらに、ステアリングＥＣＵ５０は、さらに次の周期で「３：生存確認メッセージの受信確認」をした結果、数周期連続で自動運転ＥＣＵ２０からの生存確認メッセージの送信がないものとして、「３.１：自動運転ＥＣＵ異常判定」処理を実行する。なお、異常判定後の処理については、図３のフローチャートに示した通りである。図９の例では数周期連続で自動運転ＥＣＵ２０から生存確認メッセージの送信がない場合を示しているが、これは一例であり、一度でも生存確認メッセージの送信がなかった場合に、異常と判定しても良い。
【００７３】
このように、生存確認メッセージの送信の有無で、自動運転ＥＣＵ２０の正常および異常を検出するので、自動運転ＥＣＵ２０の異常の判断が容易である。
【００７４】
図１０は、「（ｂ）メッセージのインデックスが間違っている」場合の自動運転ＥＣＵ２０の異常検出時のシーケンスを示す図である。
【００７５】
図１０の例では、自動運転ＥＣＵ２０からの「１：生存確認メッセージ送信」に対して、ステアリングＥＣＵ５０から「２.１：生存確認メッセージ応答」を送信し、それに対して自動運転ＥＣＵ２０から「３：生存確認メッセージの送信」はあるが、そのインデックスが間違っている。
【００７６】
ステアリングＥＣＵ５０は、次の周期で「４：生存確認メッセージの受信確認」を実行し、「５：生存確認メッセージ応答」を送信するが、「３：生存確認メッセージの送信」でのインデックスが間違っているので、ステアリングＥＣＵ５０も間違ったインデックスを送信する。
【００７７】
これに対して、自動運転ＥＣＵ２０からの「６：生存確認メッセージ送信」でのインデックスも間違っており、ステアリングＥＣＵ５０は、さらに次の周期で「７：生存確認メッセージの受信確認」をした結果、数周期連続で自動運転ＥＣＵ２０からの間違ったインデックスの生存確認メッセージが送信されたとして、「７.１：自動運転ＥＣＵ異常判定」処理を実行する。なお、異常判定後の処理については、図３のフローチャートに示した通りである。
【００７８】
先に説明したように、自動運転ＥＣＵ２０が、メッセージを送るごとにインデックスを１つずつインクリメントする構成を採る場合、ステアリングＥＣＵ５０は前周期のメッセージのインデックスを記憶しておき、自動運転ＥＣＵ２０から新たに送られてきたメッセージのインデックスと比較することで、インデックスの間違いを確認できる。
【００７９】
なお、図１０の例では数周期連続で間違ったインデックスの生存確認メッセージが送信された場合を示しているが、これは一例であり、一度でもインデックスの生存確認メッセージが送信された場合に、異常と判定しても良い。
【００８０】
このように、インデックスの正誤で、自動運転ＥＣＵ２０の正常および異常を検出するので、自動運転ＥＣＵ２０の異常の判断を、異なった指標に基づいて行うことができ、異常の原因の究明および解消に有効である。
【００８１】
図１１は、状態不一致時のシーケンスを示す図である。状態が不一致になる原因としては、例えば、システム動作中にステアリングＥＣＵ５０の主系に異常が発生し、ステアリングＥＣＵ５０の主系を再起動させたことによって、状態の不一致が発生する可能性が考えられる。
【００８２】
図１１の例では自動運転ＥＣＵ２０が自動運転、ステアリングＥＣＵ５０が手動運転となっている場合のシーケンスを示している。図６を用いて説明したように、自動運転ＥＣＵ２０は、生存確認メッセージをステアリングＥＣＵ５０に送信し、ステアリングＥＣＵ５０からの生存確認メッセージ応答を確認する。この結果、ステアリングＥＣＵ５０の状態が自動運転ＥＣＵ２０の状態と異なっていた場合、自動運転ＥＣＵ２０は、ステアリングＥＣＵ５０に対して状態変更要求を送る。ステアリングＥＣＵ５０は、状態変更要求を受信すると、状態を変更し、変更したことを自動運転ＥＣＵ２０に伝える。
【００８３】
以上の動作によって、自動運転ＥＣＵ２０とステアリングＥＣＵ５０とで状態の不一致が解消できる。
【００８４】
図１１の例では、自動運転ＥＣＵ２０からの「２：生存確認メッセージ送信」では、自動運転ＥＣＵ２０の状態は自動運転であるが、ステアリングＥＣＵ５０からの「３.１：生存確認メッセージ応答」では、ステアリングＥＣＵ５０の状態は手動運転となっている。
【００８５】
自動運転ＥＣＵ２０では、次の周期での「４：前周期メッセージ確認」の結果、「４.１：状態不一致処理」を実行し、ステアリングＥＣＵ５０に対して、４.１.１：状態変更要求（手動運転→自動運転）を送信する。
【００８６】
ステアリングＥＣＵ５０は、「５：状態変更要求受信処理」を実行し、自動運転ＥＣＵ２０に対して、「６：状態変更要求の返事」を送信する。状態変更の結果、ステアリングＥＣＵ５０は、手動運転から自動運転に状態が変わる。
【００８７】
なお、ステアリングＥＣＵ５０から状態を変更したことが伝えられなかった場合には，自動運転ＥＣＵ２０はステアリングＥＣＵ５０を異常と判定しても良い。
【００８８】
以上説明したように自動運転ＥＣＵ２０とステアリングＥＣＵ５０との間のメッセージ通信によって、お互いの異常と状態を監視することによって、システムの一部に故障が発生してもフェールオペレーション動作を行うことができる。
【００８９】
なお、以上説明した実施の形態１の車両制御装置１０の各部はコンピュータを用いて構成することができ、コンピュータがプログラムを実行することで実現される。すなわち、図１に示した車両制御装置１０は、例えば図１２に示す処理回路１００により実現される。処理回路１００には、ＣＰＵ、ＤＳＰ（Digital Signal Processor）などのプロセッサが適用され、記憶装置に格納されるプログラムを実行することで各部の機能が実現される。
【００９０】
なお、処理回路１００には、専用のハードウェアが適用されても良い。処理回路１００が専用のハードウェアである場合、処理回路１００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡ、またはこれらを組み合わせたものなどが該当する。
【００９１】
また、図１３には、図１に示した車両制御装置１０がプロセッサを用いて構成されている場合におけるハードウェア構成を示している。この場合、車両制御装置１０の各部の機能は、ソフトウェア等（ソフトウェア、ファームウェア、またはソフトウェアとファームウェア）との組み合わせにより実現される。ソフトウェア等はプログラムとして記述され、メモリ１２０に格納される。処理回路１００として機能するプロセッサ１１０は、メモリ１２０（記憶装置）に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。
【００９２】
本発明は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、本の発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【００９３】
なお、本発明は、その発明の範囲内において、実施の形態を適宜、変形、省略することが可能である。
【要約】
本発明は車両制御装置に関し、自動運転を実行する際の走行経路を決定する自動運転制御装置と走行経路に基づいて車両のステアリング制御を行うステアリング制御装置とを備えている。自動運転制御装置は、自動運転コントローラ主系および自動運転コントローラ従系を備えてシステムが多重化され、ステアリング制御装置は、ステアリングコントローラ主系およびステアリングコントローラ従系を備えてシステムが多重化され、ステアリング制御装置の異常として、ステアリングコントローラ主系およびステアリングコントローラ従系の一方の異常を検出した場合、異常を検出していない他方がステアリング制御を行うように切り替え、ステアリング制御装置は、自動運転制御装置の異常として、自動運転コントローラ主系および自動運転コントローラ従系の一方の異常を検出した場合、異常を検出していない他方が出力する制御量を用いてステアリング制御を行う。【図１】
0006732143.tif 000002
【図２】
0006732143.tif 000003
【図３】
0006732143.tif 000004
【図４】
0006732143.tif 000005
【図５】
0006732143.tif 000006
【図６】
0006732143.tif 000007
【図７】
0006732143.tif 000008
【図８】
0006732143.tif 000009
【図９】
0006732143.tif 000010
【図１０】
0006732143.tif 000011
【図１１】
0006732143.tif 000012
【図１２】
0006732143.tif 000013
【図１３】
0006732143.tif 000014