JP2021071824A - 制御通信システム - Google Patents

制御通信システム Download PDF

Info

Publication number
JP2021071824A
JP2021071824A JP2019196931A JP2019196931A JP2021071824A JP 2021071824 A JP2021071824 A JP 2021071824A JP 2019196931 A JP2019196931 A JP 2019196931A JP 2019196931 A JP2019196931 A JP 2019196931A JP 2021071824 A JP2021071824 A JP 2021071824A
Authority
JP
Japan
Prior art keywords
service
control device
abnormality
manifest
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019196931A
Other languages
English (en)
Other versions
JP6779354B1 (ja
Inventor
三喜也 吉田
Mikiya Yoshida
三喜也 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2019196931A priority Critical patent/JP6779354B1/ja
Priority to US16/990,066 priority patent/US11659037B2/en
Priority to DE102020213407.3A priority patent/DE102020213407A1/de
Application granted granted Critical
Publication of JP6779354B1 publication Critical patent/JP6779354B1/ja
Publication of JP2021071824A publication Critical patent/JP2021071824A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】制御装置が提供する機能に異常が発生した場合に、その異常が発生した機能を別の制御装置に配置転換することで、機能の継続性が損なわれることを抑制する制御通信システムを提供する。【解決手段】監視対象サービスに係る異常が検知された場合に、監視対象サービスを、現在配置されている制御装置から変更して配置する再配置制御装置を選定し、監視対象サービスのソフトウェア要素、及び実行マニフェスト及び通信マニフェストを、再配置制御装置のサービス記憶部に、転送し追加させる制御通信システム100。【選択図】図1

Description

本願は、制御通信システムに関するものである。
近年、例えば自動車等、複数の制御装置をネットワークにより接続して通信を行うシステムは、高度な制御を実現するために複雑なシステムとなっている。この複雑なシステムの一例として、自動車の運転支援システム、自動運転が挙げられる。このようなシステムは、高い安全性が求められるため、一部の機能が故障しても、自動車の制御が不能になることなく、安全に停止することと、安全な場所まで走行することが求められる。
特許文献1では、複数の制御装置とは別に制御装置を予め用意しておき、複数の制御装置の内、いずれかの制御装置が故障した場合に、その故障した制御装置が実行するプログラムを別に用意した制御装置で実行する方法が提案されている。
特許文献2では、複数の制御装置によって構成されるシステムにおいて、正常な制御装置が故障した制御装置があることを検知すると、正常な制御装置は、記憶した設定情報を用いて故障した制御装置を特定する。故障した制御装置の特定後、故障した制御装置で行うデータの入出力及び演算を正常な制御装置で代わりに行うために、正常な制御装置で記憶する設定情報を変更する。この設定情報の変更により、正常な制御装置上では、本来行うデータの入出力及び演算に加えて、故障した制御装置が担っていたデータの入出力及び演算を行うことができ、制御システムを維持することができる。
特許文献3では、2つの制御装置から構成される自動運転制御装置において、一方の制御装置が故障した場合に、もう一方の制御装置が、故障した制御装置が実行していたプログラムを実行する方法が提案されている。具体的には、それぞれの制御装置において、別の制御装置で実行する自動運転用のプログラムを記憶しておき、別の制御装置が故障した場合に、自身の制御装置で実行している、自動運転とは無関係のプログラムを削除し、記憶しておいた別の制御装置の自動運転用のプログラムをロード及び実行する。これにより、制御装置の故障時においても自動運転機能の継続性低下を抑制している。
特許6189004号 特開2019−28506号公報 特開2019−89382号公報
特許文献1のシステムでは、複数の制御装置とは別にバックアップ専用の制御装置を設ける必要があるため、コストの増加及びシステムの複雑さが増すおそれがある。特許文献2のシステムでは、各制御装置の故障に備えて、それぞれの制御装置において、設定情報を用意し、故障の特定から故障した制御装置が行う処理の代替までを考慮する必要があり、例えば、一つの制御装置に変更があった場合に、変更箇所が多岐にわたるといった、システムの複雑さが増すおそれがある。
特許文献3のシステムでも、特許文献2と同様に、各制御装置の故障に備えて、それぞれの制御装置において、他の制御装置の代替を可能にする必要があるため、システムの複雑さが増すおそれがある。
そこで、本願は、バックアップ専用の待機制御装置を設けることなく、全ての制御装置にバックアップを管理する機能を持たせることなく、制御装置が提供する機能に異常が発生した場合に、その異常が発生した機能を別の制御装置に配置転換することで、機能の継続性が損なわれることを抑制する制御通信システムを提供することを目的とする。
本願に係る制御通信システムは、個別の機能であるサービスを実現するソフトウェア要素の複数を個別に実行可能な制御装置の複数と、複数の前記制御装置を相互に接続するネットワークと、を有する制御通信システムであって、
複数の前記サービスのそれぞれに対応して、前記サービスの起動条件のデータを含む実行マニフェストと、前記サービスが配置された前記制御装置の識別子及び前記サービスの識別子のデータを含む通信マニフェストと、が設けられ、
複数の前記制御装置のそれぞれは、
前記制御装置に配置された前記サービスのソフトウェア要素、及び当該サービスの前記実行マニフェスト及び前記通信マニフェストを記憶するサービス記憶部と、
前記サービス記憶部に記憶された前記サービスの前記実行マニフェストに含まれる前記起動条件が満たされた場合に当該サービスを起動するサービス実行管理部と、
前記サービス記憶部に記憶された前記サービスの前記通信マニフェストを用いて、他の前記サービスと通信するサービス間通信部と、
前記サービスのソフトウェア要素、及び当該サービスの前記実行マニフェスト及び前記通信マニフェストの前記サービス記憶部への更新、追加、及び削除を行うソフトウェア更新管理部と、を備え、
全ての前記制御装置よりも少ない、1つ以上の予め設定された前記制御装置である特定制御装置は、
予め設定された前記サービスである監視対象サービスに係る異常の有無を検知する異常監視部と、
前記異常監視部により前記監視対象サービスに係る異常が検知された場合に、異常が検知された前記監視対象サービスを、現在配置されている前記制御装置から変更して配置する他の前記制御装置である再配置制御装置を選定し、異常が検知された前記監視対象サービスのソフトウェア要素、及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストを、前記再配置制御装置の前記サービス記憶部に、前記ソフトウェア更新管理部を介して転送し追加させるリカバリ部と、を更に備えるものである。
本願に係る制御通信システムによれば、サービスを実行可能な全ての制御装置が、サービス記憶部、サービス実行管理部、及びサービス間通信部を備えており、全ての制御装置よりも少ない、1つ以上の特定制御装置が、サービス記憶部、サービス実行管理部、及びサービス間通信部に加えて、監視対象サービスのリカバリ処理を行う異常監視部及びリカバリ部を備えている。よって、バックアップ専用の待機制御装置を設けることなく、全ての制御装置にバックアップを管理する機能を持たせることなく、予め設定された監視対象サービスに異常が発生した場合に、その異常が発生した監視対象サービスを他の制御装置に再配置して、監視対象サービスの継続性が損なわれることを抑制できる。また、各制御装置は、制御装置の識別子及びサービスの識別子のデータを含む通信マニフェストを用いて、他のサービスと通信を行うサービス間通信部を備えているので、複数のサービスを複数の制御装置に分散配置させ、サービス間の相互通信を行うことが容易になり、異常が検知された監視対象サービスを他の制御装置に再配置させても、サービス間の相互通信を維持させることができ、監視対象サービスを継続させることができる。
本願の実施の形態1に係る制御通信システムの概略全体構成図である。 本願の実施の形態1に係る第1制御装置の機能ブロック図である。 本願の実施の形態1に係る第1制御装置のハードウェア構成図である。 本願の実施の形態1に係る第2制御装置の機能ブロック図である。 本願の実施の形態1に係る第2制御装置のハードウェア構成図である。 本願の実施の形態1に係る第3制御装置の機能ブロック図である。 本願の実施の形態1に係る第3制御装置のハードウェア構成図である。 本願の実施の形態1に係る各監視対象サービスの関係性を示す図である。 本願の実施の形態1に係る各監視対象サービスの実行マニフェスト及び通信マニフェストを説明する図である。 本願の実施の形態1に係る監視側の各サービスの関係性を示す図である。 本願の実施の形態1に係る監視側の各サービスの実行マニフェスト及び通信マニフェストを説明する図である。 本願の実施の形態1に係る画像前処理サービスのシーケンス図である。 本願の実施の形態1に係る物体検出サービスのシーケンス図である。 本願の実施の形態1に係る車両制御サービスのシーケンス図である。 本願の実施の形態1に係る異常監視サービスに係る処理を説明するフローチャートである。 本願の実施の形態1に係る異常監視サービスにより作成されるデータベースを説明する図である。 本願の実施の形態1に係る異常監視サービスに係る処理を説明するフローチャートである。 本願の実施の形態1に係る異常監視サービスにより作成される各制御装置のリソースの使用状態のリストを説明する図である。 本願の実施の形態1に係るリカバリサービスに係る処理を説明するフローチャートである。 本願の実施の形態1に係るリカバリサービスに係る処理を説明するフローチャートである。 本願のその他の実施の形態に係る制御装置のハードウェア構成図である。
実施の形態1.
実施の形態1に係る制御通信システム100について図面を参照して説明する。本実施の形態では、自動車に搭載された複数の制御装置が、車載ネットワークにより相互に接続された制御通信システムを例に説明する。図1は、本実施の形態に係る制御通信システムの概略全体構成図である。
制御通信システム100では、第1制御装置110、第2制御装置120、第3制御装置130が、通信バス101を用いた車載ネットワークによって相互接続される。車載ネットワークは、例えば、Ethernet(登録商標)、CAN(Control Area Network、登録商標)等の通信規格を用いて通信を行い、以下では、Ethernetが用いられる場合を例に説明する。
第1制御装置110は、マルチメディア装置140と接続されている。また、第1制御装置110のIPアドレスは、192.168.1.1に設定されている。マルチメディア装置140は、マルチメディア機能を実現する装置であり、例えば、オーディオ装置、画像表示装置、ヒューマンインターフェイス装置等である。なお、IPアドレスが、本願における「制御装置の識別子」に相当する。
第2制御装置120は、車両情報センサ群150と接続されており、車両情報センサ群150の出力信号が入力される。第2制御装置120のIPアドレスは、192.168.1.2に設定されている。車両情報センサ群150は、車両制御用の各種のセンサであり、例えば、車速センサ、加速度センサ、ヨーレートセンサ、舵角センサ、周辺監視カメラ、周辺監視レーダ(ミリ波レーダ、レーザレーダ、超音波レーダ等)、位置センサなどである。位置センサは、GNSS(Global Navigation Satellite System)によって位置情報を取得できる装置である。
第3制御装置130は、操舵制御装置160及び動力制御装置170に接続されている。また、第3制御装置130のIPアドレスは、192.168.1.3に設定されている。操舵制御装置160は、車両情報センサ群150の検出信号に基づいて決定された舵角の目標値に、車輪の舵角が追従するように、電動パワーステアリング装置の駆動モータ等を制御する。動力制御装置170は、車両情報センサ群150の検出信号に基づいて決定された車速の目標値に、車速が追従するように、モータ、内燃機関等の動力機の出力トルクを制御する。
車両情報センサ群150には、監視対象サービス(本例では、画像前処理サービス310)に関係するセンサ(本例では、カメラ)が含まれるので、画像前処理サービス310が第2制御装置120から第1制御装置110又は第3制御装置130に再配置される場合に備えて、再配置に関係する車両情報センサ群150のセンサ(カメラ)は、第1制御装置110及び第3制御装置130にも冗長的に接続されている(図1に破線で表示)。また、操舵制御装置160及び動力制御装置170は、監視対象サービス(本例では、車両制御サービス330)に関係する装置であるので、車両制御サービス330が第3制御装置130から、第1制御装置110又は第2制御装置120に再配置される場合に備えて、操舵制御装置160及び動力制御装置170は、第1制御装置110及び第2制御装置120にも冗長的に接続されている(図1に破線で表示)。
或いは、監視対象サービスの再配置に関係する車両情報センサ群150、操舵制御装置160、及び動力制御装置170は、再配置に対応できるように、車載ネットワークに接続されていてもよい。
<第1制御装置110>
図2に示すように、第1制御装置110は、サービス記憶部510、サービス実行管理部511、サービス間通信部512、ソフトウェア更新管理部513、異常監視部514、リカバリ部515、監視対象サービス記憶部516、及び外部通信部517等の機能部を備えている。
第1制御装置110の各機能部510から517等は、第1制御装置110が備えた処理回路により実現される。例えば、第1制御装置110は、図3に示すように、処理回路として、CPU(Central Processing Unit)等の演算処理装置111(コンピュータ)、演算処理装置111とデータのやり取りをする記憶装置113、車載ネットワークを介して他の制御装置と通信を行う通信装置112、マルチメディア装置140と信号の入出力を行う入出力装置114、及びサーバ等の外部装置116と通信を行う外部通信装置115等を備えている。
演算処理装置111として、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)、ニューロチップ、ASIC(Application Specific Integrated Circuit)、IC(Integrated Circuit)、FPGA(Field Programmable Gate Array)、各種の論理回路、及び各種の信号処理回路等が備えられてもよい。また、演算処理装置111として、同じ種類のもの又は異なる種類のものが複数備えられ、各処理が分担して実行されてもよい。記憶装置113として、RAM(Random Access Memory)等の揮発性の主記憶装置113aと、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等の不揮発性の補助記憶装置113bと、が用いられている。補助記憶装置113bに記憶されたデータは、演算処理装置111により必要に応じて主記憶装置113aにロードされ、演算処理装置111の処理に用いられる。また、主記憶装置113aに記憶されたデータは、演算処理装置111により必要に応じて補助記憶装置113bに記憶される。通信装置112は、例えば、Ethernet等の通信規格を用いて通信を行う。外部通信装置115は、Wi−Fi(登録商標)等の無線通信によりネットワーク網に接続し、ネットワーク網に接続されたサーバ等の外部装置116と通信を行う。
そして、第1制御装置110が備える各機能部510から517の機能は、演算処理装置111が、記憶装置113に記憶されたソフトウェア(プログラム)を実行し、記憶装置113、入出力装置114、通信装置112、及び外部通信装置115等の他のハードウェアと協働することにより実現される。
<第2制御装置120>
図4に示すように、第2制御装置120は、サービス記憶部520、サービス実行管理部521、サービス間通信部522、ソフトウェア更新管理部523等の機能部を備えている。
第2制御装置120の各機能部520から523等は、第2制御装置120が備えた処理回路により実現される。例えば、図5に示すように、第2制御装置120は、処理回路として、CPU等の演算処理装置121(コンピュータ)、主記憶装置123a及び補助記憶装置123b等の記憶装置123、車載ネットワークを介して他の制御装置と通信を行う通信装置122、及び車両情報センサ群150と信号の入出力を行う入出力装置124等を備えている。第2制御装置120の各処理回路の構成は、第1制御装置110の各処理回路の構成と同様であるので説明を省略する。
そして、第2制御装置120が備える各機能部520から523の機能は、演算処理装置121が、記憶装置123に記憶されたソフトウェア(プログラム)を実行し、記憶装置123、入出力装置124、及び通信装置122等の他のハードウェアと協働することにより実現される。
<第3制御装置130>
図6に示すように、第3制御装置130は、第2制御装置120と同様に、サービス記憶部530、サービス実行管理部531、サービス間通信部532、ソフトウェア更新管理部533等の機能部を備えている。
第3制御装置130の各機能部530から533等は、第3制御装置130が備えた処理回路により実現される。例えば、図7に示すように、第3制御装置130は、処理回路として、CPU等の演算処理装置131(コンピュータ)、主記憶装置133a及び補助記憶装置133b等の記憶装置133、車載ネットワークを介して他の制御装置と通信を行う通信装置132、及び操舵制御装置160及び動力制御装置170と信号の入出力を行う入出力装置134等を備えている。第3制御装置130の各処理回路の構成は、第1制御装置110の各処理回路の構成と同様であるので説明を省略する。
そして、第3制御装置130が備える各機能部530から533の機能は、演算処理装置131が、記憶装置133に記憶されたソフトウェア(プログラム)を実行し、記憶装置133、入出力装置134、及び通信装置132等の他のハードウェアと協働することにより実現される。
<自動運転制御を実現する複数のサービス>
次に、自動車の自動運転制御を実現する機能構成について説明する。自動運転制御では、自動車に搭載されるセンサ又は外部情報により自動車の周辺環境を認識して、目標となる軌道経路及び車速を決定するとともに、その目標値を達成するために、舵角及び車速に係わる各アクチュエータを制御する。
本実施の形態では、簡易化のために、車両情報センサ群150を周辺監視カメラとし、この周辺監視カメラにより取得されるデータから車線及び前方の車両を検出し、この検出した情報から目標値を算出し、操舵制御装置160が舵角を制御し、動力制御装置170が車速に係わる各アクチュエータを制御するものとする。
自動運転制御は、個別の機能であるサービスを実現するソフトウェア要素の複数を組み合わせて実現される。このサービスを実現するソフトウェア要素(プログラム)は、SOA(Service Oriented Architecture:サービス指向型アーキテクチャ)に基づき設計される。SOAでは、サービスを、サービスの成果物の情報を他のサービスに提供するサービスであるサービス提供者と、他のサービスから提供された成果物の情報を利用するサービスであるサービス利用者との2種類で定義している。そして、SOAでは、ネットワーク上に、サービス提供者とサービス利用者とが存在する場合において、サービス提供者とサービス利用者との間の通信を確立させ、データ授受を可能にするためのインターフェイス(きまりごと)が規定される。
図8は、SOAに基づいて設計された、自動運転制御を実現する複数のサービスとしての画像前処理サービス310、物体検出サービス320、及び車両制御サービス330と、各サービスの関係性を示す図である。なお、自動運転制御を行うためには、これ以外のサービスもあり、各制御装置に配置されているが、簡略化のため、説明を省略する。
画像前処理サービス310は、周辺監視カメラで撮影された画像データに対して、物体検出を行い易くするための画像処理を行い、画像処理後の画像データを提供する。例えば、画像前処理サービス310は、画像データに対して、グレースケール化、所定の閾値に達していない箇所のデータを0とする閾値処理、ホワイトノイズの除去に適しているガウシアンフィルタ等の平滑化を行い、それらの画像処理を行った後の画像データを提供する。
物体検出サービス320は、画像前処理サービス310から画像処理後の画像データを取得し、画像処理後の画像データに写っている物体を検出し、検出した物体の情報を提供する。例えば、物体検出サービス320は、画像処理後の画像データから、自車両が走行する車線の位置と、前方車両の位置とを検出し、検出した車線の位置情報及び前方車両の位置情報を提供する。
車両制御サービス330は、物体検出サービス320から物体の情報を取得し、取得した物体の情報に基づいて、車輪の舵角の目標値及び車速の目標値を算出し、算出した舵角の目標値及び車速の目標値を提供する。例えば、車両制御サービス330は、車線の位置情報に基づいて、車線の中央位置からの自車両の逸脱距離を計算し、逸脱を軽減する方向に舵角の目標値を設定し、前方車両の位置情報に基づいて、前方車両があるか否かを判定し、前方車両がない場合は、所定の車速の目標値を設定し、前方車両がある場合は、自車両と前方車両との車間距離を保つ方向に車速の目標値を設定する。
図8に示していないが、操舵制御装置160は、車両制御サービス330から舵角の目標値を取得し、取得した舵角の目標値に、舵角が追従するように、電動パワーステアリング装置の駆動モータ等を制御する。また、動力制御装置170は、車両制御サービス330から車速の目標値を取得し、取得した車速の目標値に、車速が追従するように、動力機の出力トルクを制御する。
また、各サービスは、サービスを実行する際に発生するエラー及び故障等の異常を検出する機能を備え、各サービスが配置されている制御装置のサービス実行管理部に通知する。ここで、検出される異常には、例えば、CRC(Cyclic Redundancy Check:巡回冗長検査)エラー、データ書き込み読み出し失敗等のハードウェアに起因するもの、バッファオーバーフロー、メッセージ認証失敗等のサイバーセキュリティ攻撃に起因するもの等が含まれる。
<実行マニフェスト、通信マニフェスト>
複数のサービスのそれぞれについて、実行マニフェスト及び通信マニフェストが設けられる。実行マニフェストには、対応するサービスの起動条件のデータと、対応するサービスが使用する処理回路のリソース使用情報とが含まれる。処理回路のリソース使用情報には、演算処理装置の最大使用率(本例では、CPUの最大使用率)、RAM等の主記憶装置の最大メモリ使用量が含まれる。通信マニフェストには、対応するサービスが配置された制御装置の識別子、及び対応するサービスの識別子のデータが含まれる。
図9に示すように、本実施の形態では、画像前処理サービス310に対して、画像前処理サービス310の実行マニフェスト311及び通信マニフェスト312が設けられ、物体検出サービス320に対して、物体検出サービス320の実行マニフェスト321及び通信マニフェスト322が設けられ、車両制御サービス330に対して、車両制御サービス330の実行マニフェスト331及び通信マニフェスト332が設けられている。1つのサービスのプログラムと、対応するサービスの実行マニフェストのファイル及び通信マニフェストのファイルとのまとまりは、1つのパッケージとして扱われる。
ここで、画像前処理サービス310の実行マニフェスト311及び通信マニフェスト312を用いて、詳細に説明する。実行マニフェスト311には、対応するサービスが配置されている制御装置における対応サービスの起動条件の情報が含まれる。図9には、起動条件の情報の1つとして、「マシン状態」が示されている。マシン状態が「実行中」である場合は、画像前処理サービス310が配置されている制御装置(本例では、第2制御装置120)が起動され、画像前処理サービス310を起動可能な状態であることを示す。
実行マニフェスト311には、起動条件の情報の1つとして、対応するサービスが起動される前に起動されている必要があるサービス(依存サービス)の情報が含まれ、図9には、「依存サービス」で示されている。依存サービスがある場合は、依存サービスが起動されているか否かが、サービスの起動条件の1つになる。画像前処理サービス310では、依存サービスがないため、実行マニフェスト311には、依存サービスが「なし」に設定されている。そのため、画像前処理サービス310は、他のサービスの起動状態に依存せずに起動される。
上述したように、実行マニフェスト311には、実行マニフェスト311の実行により使用する演算処理装置の最大使用率(本例では、CPUの最大使用率)の情報が含まれ、図9には、「CPU最大使用率」で示されている。また、実行マニフェスト311には、実行マニフェスト311の実行により使用するRAM等の主記憶装置の最大メモリ使用量の情報が含まれ、図9には、「メモリ最大使用量」で示されている。
上述したように、実行マニフェスト311には、対応するサービスが配置された制御装置の識別子の情報が含まれ、図9には、Ethernet上で制御装置を識別する識別子である「IPアドレス」で示されている。実行マニフェスト311には、対応するサービスの識別子の情報が含まれ、図9には、「サービスID」で示されている。
本実施の形態では、画像前処理サービス310及び物体検出サービス320は、第2制御装置120に配置されているので、これらのサービスの通信マニフェスト312、322のIPアドレスには、第2制御装置120のIPアドレスである「192.168.1.2」が設定されている。車両制御サービス330は、第3制御装置130に配置されているので、車両制御サービス330の通信マニフェスト332のIPアドレスには、第3制御装置130のIPアドレスである「192.168.1.3」が設定されている。
画像前処理サービス310のソフトウェア要素と、画像前処理サービス310の実行マニフェスト311及び通信マニフェスト312は、第2制御装置120のサービス記憶部520(例えば、フラッシュメモリ等の補助記憶装置123b)に記憶されている。物体検出サービス320のソフトウェア要素と、物体検出サービス320の実行マニフェスト321及び通信マニフェスト322は、第2制御装置120のサービス記憶部520(例えば、フラッシュメモリ等の補助記憶装置123b)に記憶されている。車両制御サービス330のソフトウェア要素と、車両制御サービス330の実行マニフェスト331及び通信マニフェスト332は、第3制御装置130のサービス記憶部530(例えば、フラッシュメモリ等の補助記憶装置133b)に記憶されている。
<マルチメディアサービス、ナビゲーションサービス>
第1制御装置110には、音楽再生等により音声信号を生成しオーディオ装置に提供するオーディオサービス、画像信号を生成し画像表示装置に提供するビジュアルサービス、目的地までの目標経路の情報を生成し提供するカーナビゲーションサービス等が配置されている。オーディオサービス、ビジュアルサービス、及びカーナビゲーションサービスのそれぞれのソフトウェア要素、実行マニフェスト、及び通信マニフェストは、第1制御装置110のサービス記憶部510に記憶されており、第1制御装置110により実行される。これらのマルチメディアサービス及びナビゲーションサービスは、監視対象サービスに設定されていないので、以下では、説明を省略する。
<第1制御装置110(特定制御装置)の機能説明>
第1制御装置110は、全ての制御装置よりも少ない、1つ以上の予め設定された制御装置である特定制御装置である。図2に示したように、第1制御装置110は、サービス記憶部510、サービス実行管理部511、サービス間通信部512、ソフトウェア更新管理部513に加えて、異常監視部514、リカバリ部515、監視対象サービス記憶部516、及び外部通信部517等の機能部を備えている。以下、各機能について説明する。
サービス記憶部510は、第1制御装置110に配置されたサービスのソフトウェア要素、及び当該サービスの実行マニフェスト及び通信マニフェストを記憶する。本実施の形態では、サービス記憶部510は、第1制御装置110の補助記憶装置113bに設けられている。
第1制御装置110の補助記憶装置113bには、サービス実行管理部511、サービス間通信部512、ソフトウェア更新管理部513、異常監視部514、及びリカバリ部515のそれぞれのソフトウェア要素(プログラム)が記憶されている。これらのソフトウェア要素(プログラム)は、補助記憶装置113bから主記憶装置113aにロードされて、演算処理装置111によって実行される。また、補助記憶装置113bには、OS(Operation System)が記憶されている。OSの少なくとも一部は、主記憶装置113aにロードされて、演算処理装置111によって実行される。また、プログラムを実行して得られるデータは、主記憶装置113a、補助記憶装置113b、或いは演算処理装置111内のレジスタ又はキャッシュメモリといった記憶装置に記憶される。
サービス実行管理部511は、サービス記憶部510に記憶されたサービスの実行マニフェストに含まれる起動条件が満たされた場合に当該サービスを起動する。本実施の形態では、サービス実行管理部511は、OSによって起動され、補助記憶装置113bに記憶されている全ての実行マニフェストを主記憶装置113aにロードして、各サービスの起動条件を確認し、起動条件を満たすサービスを起動する。
また、サービス実行管理部511は、第1制御装置110において動作しているサービスの異常を検知する異常情報管理機能を有する。本実施の形態では、上述したように、各サービスは、サービスを実行する際に発生するエラー及び故障等の異常を検出する機能を備え、検知した異常を、各サービスが配置されている制御装置のサービス実行管理部に通知する。サービス実行管理部511は、第1制御装置110において動作しているサービスが検知するエラー及び故障等の異常情報を取得する。
このサービス実行管理部511の異常情報管理機能は、サービス実行管理部511により実行され、SOAのサービス間通信により他のサービスと通信が行われる異常情報管理サービス3401として動作する。
サービス間通信部512は、サービス記憶部510に記憶されたサービスの通信マニフェストを用いて、他のサービスと通信する。サービス間通信部512は、第1制御装置110において動作しているサービスと他のサービスとの間の成果物の情報の授受を行う。サービス間通信部512は、第1制御装置110上のサービスが、サービスの成果物の情報を提供するサービス提供者である場合は、サービスの成果物の情報を提供可能である旨のメッセージを他のサービスに送信する。そして、サービス間通信部512は、他のサービスから成果物の情報を利用する旨のメッセージを受信すると、メッセージを受信した他のサービスに対して成果物の情報を送信する制御を行う。
また、サービス間通信部512は、第1制御装置110上のサービスが、他のサービスから提供された成果物の情報を利用するサービス利用者である場合は、他のサービスの成果物の情報を利用する旨のメッセージを他のサービスに送信する。例えば、サービス間通信部512は、他のサービスが送信しているメッセージを検索し、他のサービスから利用対象の成果物の情報を提供可能である旨のメッセージを受信すると、メッセージを受信した他のサービスに対して、成果物の情報を利用する旨のメッセージを送信し、他のサービスから送信された成果物の情報を受信する。サービス間通信部512は、通信装置112を用いて、他の制御装置に配置されたサービスと通信を行う。なお、サービス間通信部512は、相互通信を行う2つのサービスが同じ第1制御装置110に設けられている場合は、第1制御装置110内で情報の伝達を行う。
ソフトウェア更新管理部513は、サービスのソフトウェア要素、及び当該サービスの実行マニフェスト及び通信マニフェストのサービス記憶部510(本例では、補助記憶装置113bに設けられる)への更新、追加、及び削除を行う。ソフトウェア更新管理部513は、他の制御装置又は自己の制御装置のリカバリ部から転送されたサービスのソフトウェア要素、及びその実行マニフェスト及び通信マニフェストを、補助記憶装置113bに設けられたサービス記憶部510に記憶する。また、ソフトウェア更新管理部513は、リカバリ部からサービスの削除要求を受信したとき、サービス実行管理部511に対して、サービスの停止要求を行い、サービス記憶部510に記憶されている削除要求を受けたサービスのソフトウェア要素、及びその実行マニフェスト及び通信マニフェストを削除する。
また、リカバリ部515が、監視対象サービス記憶部516から再配置制御装置に監視対象サービスのソフトウェア要素、及びその実行マニフェスト及び通信マニフェストを転送する際に、ソフトウェア更新管理部513を介して転送してもよい。すなわち、ソフトウェア更新管理部513は、リカバリ部515の指令に従って、監視対象サービス記憶部516から監視対象サービスのソフトウェア要素等を読み出し、再配置制御装置に転送してもよい。
監視対象サービス記憶部516は、予め設定されたサービスである監視対象サービスのソフトウェア要素と、監視対象サービスの実行マニフェスト及び通信マニフェストと、をリカバリ用として記憶している。本実施の形態では、監視対象サービス記憶部516は、第1制御装置110の補助記憶装置113bに設けられている。監視対象サービスは、例えば、制御通信システムが最低限機能するために必要なサービスに設定される。なお、監視対象サービスのソフトウェア要素等は、記憶容量を削減するために、圧縮をして補助記憶装置113bに記憶されてもよいし、監視対象サービスに含まれるサービス内容を限定し、ソフトウェア規模を縮小したもの補助記憶装置113bに記憶してもよい。
本実施の形態では、監視対象サービスは、自動車の自動運転を行うために必要なサービス、ここでは、画像前処理サービス310、物体検出サービス320、車両制御サービス330に予め設定されている。
異常監視部514は、監視対象サービスに係る異常の有無を検知する。異常監視部514は、監視対象サービスに係る異常として、監視対象サービスが配置された制御装置のサービス実行管理部が検知した監視対象サービスの異常情報を収集する。また、異常監視部514は、監視対象サービスに係る異常として、サービス間通信部による監視対象サービスと他のサービスとの間のサービス間通信の異常の有無を検知する。例えば、異常監視部514は、監視対象サービスと他のサービスとの間において、成果物の情報を提供可能である旨のメッセージの送信が停止した場合、又は成果物の情報を利用する旨のメッセージの送信が停止した場合に、異常が生じたと判定する。
本実施の形態では、異常監視部514は、監視対象サービスに係る異常を検知した場合に、各制御装置のサービス実行管理部に対して、各制御装置の処理回路のリソースの使用状態の情報を要求し、各制御装置から送信されたリソースの使用状態の情報を取得する。リソースの使用状態には、現在の演算処理装置の使用率(本例では、CPU使用率)、現在のRAM等の主記憶装置のメモリ使用量が含まれる。
また、異常監視部514は、後述するリカバリ部515により異常が検知された監視対象サービスのソフトウェア要素及び当該監視対象サービスの実行マニフェスト及び通信マニフェストが、再配置制御装置に転送された後、再配置制御装置に対して、再配置制御装置の処理回路のリソースの使用状態の情報を要求し、再配置制御装置から送信されたリソースの使用状態の情報を取得し、再配置制御装置のリソースの使用状態の情報に基づいて、転送した監視対象サービスが正常に起動したか否かを判定する。具体的には、異常監視部514は、リカバリ部515のリカバリ処理後の再配置制御装置のリソースの使用状態が、リカバリ処理前の再配置制御装置のリソースの使用状態と監視対象サービスのリソース使用情報との合計に対応している場合は、正常に起動したと判定し、対応していない場合は、正常に起動していないと判定する。そして、異常監視部514は、正常に起動していないと判定した場合は、監視対象サービスに係る異常が発生したと判定し、リカバリ部515に別の再配置制御装置を選定させて、リカバリ処理を実行させる。
これらの異常監視部514の機能は、サービス実行管理部511により実行され、SOAのサービス間通信により他のサービスと通信が行われる異常監視サービス350として動作する。
リカバリ部515は、異常監視部514により監視対象サービスに係る異常が検知された場合に、異常が検知された監視対象サービスを、現在配置されている制御装置から変更して配置する他の制御装置である再配置制御装置を選定する。そして、リカバリ部515は、異常が検知された監視対象サービスのソフトウェア要素、及び当該監視対象サービスの実行マニフェスト及び通信マニフェストを、監視対象サービス記憶部516から再配置制御装置のサービス記憶部に、ソフトウェア更新管理部を介して転送し追加させる。
本実施の形態では、リカバリ部515は、異常監視部514が取得した各制御装置のリソースの使用状態の情報、及び異常が検知された監視対象サービスの実行マニフェストに含まれるリソース使用情報に基づいて、異常が検知された監視対象サービスが使用するリソースが収まる制御装置を判定し、判定した制御装置の1つを、再配置制御装置として選定する。
また、リカバリ部515は、異常が検知された監視対象サービスが使用するリソースが収まる制御装置がないと判定した場合は、監視対象サービス以外のサービスの実行を終了させて、異常が検知された監視対象サービスが使用するリソースが収まる制御装置を確保し、確保した制御装置を再配置制御装置として選定する。
リカバリ部515は、異常が検知された監視対象サービスの通信マニフェストの制御装置の識別子を、再配置制御装置の識別子に書き換えた上で、異常が検知された監視対象サービスのソフトウェア要素、及び当該監視対象サービスの実行マニフェスト及び通信マニフェストを、再配置制御装置のサービス記憶部に、ソフトウェア更新管理部を介して転送し、追加させる。例えば、リカバリ部515は、異常が検知された監視対象サービスのソフトウェア要素等を、再配置制御装置のソフトウェア更新管理部に、第1制御装置110のソフトウェア更新管理部513を介して転送し、再配置制御装置のソフトウェア更新管理部は、転送された監視対象サービスのソフトウェア要素等を再配置制御装置のサービス記憶部に記憶する。
再配置制御装置のサービス実行管理部は、サービス記憶部に追加された監視対象サービスの実行マニフェストに含まれる起動条件が満たされた場合に当該監視対象サービスを起動する。
リカバリ部515は、異常が検知された監視対象サービスが実行されていた制御装置(以下、異常検知制御装置と称す)のサービス記憶部から、ソフトウェア更新管理部を介して、監視対象サービスのソフトウェア要素、及び当該監視対象サービスの実行マニフェスト及び通信マニフェストを削除する。例えば、リカバリ部515は、異常検知制御装置のソフトウェア更新管理部に、異常が検知された監視対象サービスを削除する指令を伝達し、異常検知制御装置のソフトウェア更新管理部は、異常検知制御装置のサービス記憶部から、異常が検知された監視対象サービスのソフトウェア要素等を削除する。
なお、監視対象サービスと、監視対象サービスの実行マニフェスト及び通信マニフェストと、を記憶した監視対象サービス記憶部は、第1制御装置110に備えられなくてもよく、外部のサーバに備えられてもよい。この場合は、リカバリ部515は、外部通信部517を介して、外部のサーバから、異常が検知された監視対象サービスと、監視対象サービスの実行マニフェスト及び通信マニフェストを取得し、再配置制御装置のサービス記憶部に転送し追加させてもよい。なお、外部通信部517は、外部通信装置115を用いて、サーバ等の外部装置116と通信を行う。
このリカバリ部515の機能は、サービス実行管理部511により実行され、SOAのサービス間通信により他のサービスと通信が行われるリカバリサービス360として動作する。
<第2制御装置120の機能説明>
第2制御装置120は、図4に示したように、サービス記憶部520、サービス実行管理部521、サービス間通信部522、ソフトウェア更新管理部523等の機能部を備えている。第2制御装置120は、特定制御装置でないので、異常監視部、リカバリ部、監視対象サービス記憶部、及び外部通信部等は備えられていない。第2制御装置120の各機能部520〜523は、第1制御装置110の各機能部510〜513と同様であるので、説明を省略する。
<第3制御装置130の機能説明>
第3制御装置130は、図6に示したように、サービス記憶部530、サービス実行管理部531、サービス間通信部532、ソフトウェア更新管理部533等の機能部を備えている。第3制御装置130は、特定制御装置でないので、異常監視部、リカバリ部、監視対象サービス記憶部、及び外部通信部等は備えられていない。第3制御装置130の各機能部530〜533は、第1制御装置110の各機能部510〜513と同様であるので、説明を省略する。
<異常情報管理サービス、異常監視サービス、リカバリサービスの説明>
本実施の形態では、上述したように、3つの制御装置のサービス実行管理部511、521、531の異常情報管理機能、第1制御装置110の異常監視部514及びリカバリ部515は、各制御装置のサービス実行管理部により実行され、SOAのサービス間通信により他のサービスと通信が行われる異常情報管理サービス3401、3402、3404、異常監視サービス350、リカバリサービス360として動作する。
図10は、第1制御装置の異常情報管理サービス3401、第2制御装置の異常情報管理サービス3402、第3制御装置の異常情報管理サービス3403、異常監視サービス350、リカバリサービス360の関係を示す図である。3つの異常情報管理サービス3401、3402、3403は、異常監視サービス350と接続され、異常監視サービス350は、リカバリサービス360と接続される。
図11は、3つの異常情報管理サービス3401、3402、3403、異常監視サービス350、リカバリサービス360それぞれの実行マニフェスト及び通信マニフェストを示す図である。
第1制御装置の異常情報管理サービス3401のソフトウェア要素と、その実行マニフェスト3411及び通信マニフェスト3421は、第1制御装置110のサービス記憶部510(本例では、補助記憶装置113b)に記憶されている。異常監視サービス350及びリカバリサービス360のソフトウェア要素と、それらの実行マニフェスト351、361及び通信マニフェストは352、362、第1制御装置110のサービス記憶部510(本例では、補助記憶装置113b)に記憶されている。第2制御装置の異常情報管理サービス3402のソフトウェア要素と、その実行マニフェスト3412及び通信マニフェスト3422は、第2制御装置120のサービス記憶部520(本例では、補助記憶装置123b)に記憶されている。第3制御装置の異常情報管理サービス3403のソフトウェア要素と、その実行マニフェスト3413及び通信マニフェスト3423は、第3制御装置130のサービス記憶部530(本例では、補助記憶装置133b)に記憶されている。
<正常時の自動運転制御の動作>
まず、正常時における自動運転制御の動作について説明する。車両の電源がオンされると、第1制御装置110の補助記憶装置113bに記憶されているOSが、主記憶装置113aにロードされて、演算処理装置111によって実行される。OSが実行されると、OSは、補助記憶装置113bに記憶されているサービス実行管理部511のプログラムを補助記憶装置113bにロードして、OS管理下のプロセスとして、実行を開始する。次に、サービス実行管理部511は、補助記憶装置113bに記憶されているサービス間通信部512のプログラムを補助記憶装置113bにロードして、サービス間通信部512を起動させる。同様に、サービス実行管理部511は、補助記憶装置113bに記憶されているソフトウェア更新管理部513のプログラムを補助記憶装置113bにロードして、ソフトウェア更新管理部513を起動させる。
第2制御装置120及び第3制御装置130についても、第1制御装置110と同様の手順で、それぞれの制御装置において、OSが起動され、その後、サービス実行管理部521、531、サービス間通信部522、532、及びソフトウェア更新管理部523、533が起動される。
図12及び図13は、前述したサービス実行管理部521、サービス間通信部522、及びソフトウェア更新管理部523が起動された後における第2制御装置120の動作を示したシーケンス図である。同様に、図14は、前述したサービス実行管理部531、サービス間通信部532、及びソフトウェア更新管理部533が起動された後における第3制御装置130の動作を示したシーケンス図である。
まず、図12を用いて、第2制御装置120に配置されている画像前処理サービス310の動作を説明する。
ステップS101において、サービス実行管理部521は、第2制御装置120のサービス記憶部520(本例では、補助記憶装置123b)に記憶されている画像前処理サービス310の実行マニフェスト311を主記憶装置123aにロードして、画像前処理サービス310の起動条件を確認し、起動条件が満たされている場合に画像前処理サービス310を起動させる。
ステップS102において、画像前処理サービス310は、サービス実行管理部521に対して、起動が正常に完了したことを通知する。
ステップS103において、画像前処理サービス310は、サービス間通信部522に対してサービスの成果物の情報(本例では、画像処理後の画像データ)を提供可能である旨のサービス提供可能の登録を要求する。
ステップS104において、画像前処理サービス310からサービス提供可能の登録の要求を受けたサービス間通信部522は、各制御装置に対して、画像前処理サービス310がサービス提供可能である旨のメッセージを送信する。各制御装置へのメッセージ送信は、例えば、マルチキャスト方式で行い、メッセージには、サービス記憶部520(補助記憶装置123b)に記憶されている画像前処理サービス310の通信マニフェスト312に含まれる画像前処理サービス310の識別子0x01と画像前処理サービス310が配置されている第2制御装置120のIPアドレス192.168.1.2を含める。また、このサービス提供可能の登録のメッセージは、画像前処理サービス310の停止又は停止要求がない限り、所定の周期で、各制御装置へ送信され、画像前処理サービス310が提供可能であることを確認できるようにしている。
次に、ステップS105において、サービス間通信部522は、後述する図13に示すステップS205において送信された画像前処理サービス310を利用するサービスがあることを示すメッセージを受信する。また、この受信したメッセージには、画像前処理サービス310を利用するサービスが配置されている制御装置のIPアドレスが含まれる。
ステップS106において、サービス間通信部522は、画像前処理サービス310に対して、画像前処理サービス310を利用するサービスがあることを通知する。
ステップS107において、画像前処理サービス310は、前述した周辺監視カメラで撮影された画像データに対して、物体検出を行いやすくするための画像処理を行い、画像処理後の画像データを生成する。
ステップS108において、サービス間通信部522は、ステップS105で受信したIPアドレスに基づき、画像前処理サービス310を利用するサービスが配置されている制御装置に対して、ステップS107で生成した画像データを送信する。
次に、図13を用いて、第2制御装置120に配置されている物体検出サービス320の動作を説明する。
ステップS201において、サービス実行管理部521は、第2制御装置120のサービス記憶部520(本例では、補助記憶装置123b)に記憶されている物体検出サービス320の実行マニフェスト321を主記憶装置123aにロードして、物体検出サービス320の起動条件を確認し、起動条件が満たされている場合に物体検出サービス320を起動させる。
ステップS202において、物体検出サービス320は、サービス実行管理部521に対して、起動が正常に完了したことを通知する。
ステップS203において、物体検出サービス320は、サービス間通信部522に対して、利用する成果物の情報(本例では、画像処理後の画像データ)を提供する他のサービス(本例では、画像前処理サービス310)の検索を要求する。ステップS204において、画像前処理サービス310の検索要求を受けたサービス間通信部522は、画像前処理サービス310のサービス提供可能を示すメッセージを待機し、図12に示すステップS104によって送信される画像前処理サービス310のサービス提供可能を示すメッセージを受信する。
ステップS205において、サービス間通信部522は、画像前処理サービス310のサービス提供可能を示すメッセージを受信すると、サービス提供可能を示すメッセージに含まれる画像前処理サービス310が配置される第2制御装置120のIPアドレス192.168.1.2を取得し、その第2制御装置120に対して、画像前処理サービス310の利用要求を示すメッセージを送信する。このサービス利用要求メッセージには、サービス記憶部520(補助記憶装置123b)に記憶されている物体検出サービス320の通信マニフェスト322に含まれる物体検出サービス320が配置されている第2制御装置120のIPアドレス192.168.1.2が含まれる。
これらのステップS203〜S205は、物体検出サービス320の停止又はサービス検索停止要求がない限り、所定の周期で行われ、画像前処理サービス310に対して画像前処理サービス310を利用するサービスが存在することを定期的に示す。
次に、ステップS206において、サービス間通信部522は、図12に示すステップS108において画像前処理サービス310が送信した画像データを受信し、主記憶装置123a、または補助記憶装置123bに記憶する。
ステップS207において、サービス間通信部522は、物体検出サービス320に対して、画像前処理サービス310が送信するデータを受信したことを通知する。
ステップS208において、物体検出サービス320は、ステップS206により、サービス間通信部522が主記憶装置123a又は補助記憶装置123bに記憶した画像データを取得する。
ただし、物体検出サービス320及び画像前処理サービス310は、同じ第2制御装置120に配置されているため、サービス間通信部522を介してメッセージ及びデータを送受信する必要はなく、主記憶装置123a又は補助記憶装置123bを介して、メッセージ及びデータの授受を行ってもよい。
次に、ステップS209において、物体検出サービス320は、サービス間通信部522に対してサービスの成果物の情報(本例では、検出物体の情報)を提供可能である旨のサービス提供可能の登録を要求する。
ステップS210において、物体検出サービス320からのサービス提供可能の登録の要求を受けたサービス間通信部522は、各制御装置に対して、物体検出サービス320がサービス提供可能である旨を示すメッセージを送信する。各制御装置へのメッセージ送信は、例えば、マルチキャスト方式で行い、メッセージには、サービス記憶部520(補助記憶装置123b)に記憶されている物体検出サービス320の通信マニフェスト322に含まれる物体検出サービス320の識別子0x02と物体検出サービス320が配置されている第2制御装置120のIPアドレス192.168.1.2を含める。また、このサービス提供可能の登録のメッセージは、物体検出サービス320の停止又は停止要求がない限り、所定の周期で、各制御装置へ送信され、物体検出サービス320が提供可能であることを確認できるようにしている。
次に、ステップS211において、サービス間通信部522は、後述する図14に示すステップS305によって、送信される物体検出サービス320を利用するサービスがあることを示すメッセージを受信する。また、この受信したメッセージには、物体検出サービス320を利用するサービスが配置されている制御装置である第3制御装置130のIPアドレス192.168.1.3が含まれる。
ステップS212において、サービス間通信部522は物体検出サービス320に対して、物体検出サービス320を利用するサービスがあったことを通知する。
ステップS213において、物体検出サービス320は、ステップS208において画像前処理サービス310から送信された画像データを用いて、画像データに写っている物体を検出し、検出した物体の情報を提供する。例えば、物体検出サービス320は、画像データから、自車両が走行する車線の位置と、前方車両の位置とを検出し、検出した車線の位置情報及び前方車両の位置情報を算出する。
ステップS214において、サービス間通信部522は、ステップS211で受信したIPアドレスに基づき、物体検出サービス320を利用するサービスが配置されている制御装置に対して、ステップS213で算出した検出物体の情報(例えば、車線の位置情報と前方車両の位置情報)を送信する。
次に、図14を用いて、第3制御装置130に配置されている車両制御サービス330の動作を説明する。
ステップS301において、サービス実行管理部531は、第3制御装置130のサービス記憶部530(本例では、補助記憶装置133b)に記憶されている車両制御サービス330の実行マニフェスト331を主記憶装置133aにロードして、車両制御サービス330の起動条件を確認し、起動条件が満たされている場合に車両制御サービス330を起動させる。
ステップS302において、車両制御サービス330は、サービス実行管理部531に対して、起動が正常に完了したことを通知する。
ステップS303において、車両制御サービス330は、サービス間通信部532に対して、利用する成果物の情報(本例では、検出物体の情報)を提供する他のサービス(本例では、物体検出サービス320)の検索を要求する。ステップS304において、物体検出サービス320の検索要求を受けたサービス間通信部532は、物体検出サービス320のサービス提供可能を示すメッセージを待機し、図13に示すステップS204によって送信される物体検出サービス320のサービス提供可能を示すメッセージを受信する。
ステップS305において、サービス間通信部532は、物体検出サービス320のサービス提供可能を示すメッセージを受信すると、サービス提供可能を示すメッセージに含まれる物体検出サービス320が配置される第2制御装置120のIPアドレス192.168.1.2を取得し、その第2制御装置120に対して、物体検出サービス320の利用要求を示すメッセージを送信する。このサービス利用要求メッセージには、サービス記憶部530(本例では、補助記憶装置133b)に記憶されている車両制御サービス330の通信マニフェスト332に含まれる車両制御サービス330が配置されている第3制御装置130のIPアドレス192.168.1.3が含まれる。
これらのステップS303〜S305は、車両制御サービス330の停止又はサービス検索停止要求がない限り、所定の周期で行われ、物体検出サービス320に対して車両制御サービス330を利用するサービスが存在することを定期的に示す。
次に、ステップS306において、サービス間通信部532は、図13に示すステップS214によって送信される物体検出サービス320が送信する車線の位置情報と前方車両の位置情報を受信し、主記憶装置133a、または補助記憶装置133bに記憶する。
ステップS307において、サービス間通信部532は、車両制御サービス330に対して、物体検出サービス320が送信するデータを受信したことを通知する。
ステップS308において、車両制御サービス330は、ステップS306により、サービス間通信部532が主記憶装置133a、または補助記憶装置133bに記憶した車線の位置情報と前方車両の位置情報を取得する。
ステップS308の実行後、図では示さないが、車両制御サービス330は、取得した車線の位置情報より、車線の中央位置からの逸脱距離を計算し、逸脱を軽減する方向に舵角の目標値を設定し、同様に取得した前方車両の位置情報より、前方車両がない場合は、一定の車速を維持する目標値を設定し、前方車両がある場合は、一定の車間距離を保つ方向に車速の目標値を設定する。その後、設定した目標値を、操舵制御装置160と動力制御装置170のそれぞれに送信し、各制御装置は、取得した目標値を満たすようにアクチュエータを制御する。
ここで、図12〜図14に示すステップにおいて、ステップS103〜S108、S209〜S214の処理については、SOAにおいてサービスの成果物の情報を提供する処理であり、ステップS203〜S207、S303〜S307の処理については、SOAにおいてサービスの成果物の情報を利用する処理であり、これらの処理を実行することで、それぞれのサービス間通信を実現している。以下で説明する異常情報管理サービス、異常監視サービス、リカバリサービスのサービス間通信も同様の手順で行われる。
<異常発生時のリカバリ処理の動作>
次に、図15〜図18を用いて、監視対象サービスの異常を監視し、異常が検知された監視対象サービスを、別の制御装置に再配置することで監視対象サービスのリカバリを行う方法を説明する。
図15は、リカバリさせるための初期処理に関するフローを示す図である。
ステップS401において、各制御装置のサービス実行管理部が備える異常情報管理サービスを起動する。具体的には、第2制御装置120において、自動車が始動し、サービス実行管理部521とサービス間通信部522の実行が開始されると、サービス実行管理部521は、補助記憶装置123bに記憶されている異常情報管理サービス3402のプログラムを、主記憶装置123aにロードして、異常情報管理サービス3402を起動させる。異常情報管理サービス3402は、起動すると、サービス間通信部522に対して、異常情報を提供可能である旨のサービス提供可能の登録を要求する。ここまでの動作は、図12のステップS101〜S104、図13のS201、S202、S209、S210と同様である。また、第1制御装置110及び第3制御装置130についても、同様の手順で、異常情報管理サービス3401、3403が起動される。
次に示すステップS402〜S404に関しては、第1制御装置110が行う動作である。
ステップS402において、第1制御装置110のサービス実行管理部511は、第1制御装置110の補助記憶装置113bに記憶されている、異常監視部514として機能する異常監視サービス350のプログラムを主記憶装置113aにロードして、異常監視サービス350を起動させる。異常監視サービス350は、サービス間通信部512に対し、各制御装置で動作する異常情報管理サービス3401〜3403が提供する異常情報の利用を要求する。ステップS401において、各制御装置の異常情報管理サービス3401〜3403は、サービス提供可能を示すメッセージを送信しているため、ステップS402において、異常情報管理サービス3401〜3403と異常監視サービス350との間で、異常情報の提供と利用を行うサービス間通信が確立する。
ステップS403において、第1制御装置110のサービス実行管理部511は、補助記憶装置113bに記憶されている、リカバリ部515として機能するリカバリサービス360のプログラムを主記憶装置113aにロードして、リカバリサービス360を起動させる。リカバリサービス360は、異常監視サービス350が各サービスの異常を検出するまでスタンバイ状態となる。
ステップS404において、異常監視サービス350は、ステップS402で利用要求する異常情報管理サービス3401〜3403に対して、各異常情報管理サービス3401〜3403が配置された制御装置で動作している監視対象サービスの異常情報の提供を要求する。
ステップS405において、各異常情報管理サービス3401〜3403は、それぞれのサービス実行管理部511、521、531に監視対象サービスに係る異常の有無を問い合わせて、その異常の有無と監視対象サービスの識別子を異常監視サービス350に送信する。また、監視対象サービスに異常が発生している場合は、異常内容の情報を含めて送信されてもよい。具体的には、第2制御装置120において、異常情報管理サービス3402は、サービス実行管理部521から、第2制御装置120で動作している監視対象サービスである画像前処理サービス310及び物体検出サービス320の異常情報を収集し、第1制御装置110の異常監視サービス350へ送信する。他の制御装置についても、各制御装置の異常情報管理サービスは、同様の手順で、各制御装置において動作している監視対象サービスの異常情報を異常監視サービス350へ送信する。
ステップS406において、異常監視サービス350は、異常情報管理サービス3401〜3403から異常に係る情報を受信すると、図16に示すような、監視対象サービスの異常に係る状態を一覧にしたデータベースを作成し、第1制御装置の主記憶装置113a又は補助記憶装置113bに記憶する。また、異常情報管理サービス3401〜3403は、異常情報を送信する際、その異常情報管理サービスが配置された制御装置のIPアドレスも併せて送信するため、このIPアドレスもデータベースに記録され、各監視対象サービスがどの制御装置に配置されているかも把握可能である。
また、異常監視サービス350は、監視対象サービスから他のサービスに送信されている、サービスの成果物の情報を提供可能である旨のメッセージを収集し、このメッセージの送信が停止している場合に、監視対象サービスに係る異常が生じたと判定する。また、異常監視サービス350は、監視対象サービスから他のサービスに送信されている、サービスの成果物の情報を利用する旨のメッセージを収集し、このメッセージの送信が停止している場合に、監視対象サービスに係る異常が生じたと判定する。
図16に示すデータベースは、ステップS406において、異常監視サービス350が作成するデータベースの例である。図16の上段のデータベース400aは、ステップS406により作成されるデータベースであり、中段のデータベース400bは、後述する物体検出サービス320に異常が発生し、上段のデータベース400aを更新した後のデータベースであり、下段のデータベース400cは、物体検出サービス320の配置を変更し、中段のデータベース400bを更新した後のデータベースである。
次に、図17を用いて、監視対象サービスにおいて異常が発生したときの動作を説明する。
ステップS411において、異常監視サービス350は、異常情報管理サービス3401〜3403から送信される監視対象サービスに係る異常の有無を確認する。異常情報を受信していない場合はステップS412へ進み、異常情報を受信している場合はステップS413へ進む。具体的には、第2制御装置120に配置された物体検出サービス320は、異常を検知すると第2制御装置のサービス実行管理部521へ通知する。そして、第2制御装置の異常情報管理サービス3402は、物体検出サービス320の異常情報を異常監視サービス350へ送信する。
ステップS412において、異常監視サービス350は、監視対象サービスから他のサービスに送信されている、サービス提供可能を示すメッセージ、及びサービス利用要求を示すメッセージの一方又は双方を受信する。図16に示した上段のデータベース400aの通信状態と相違がある場合は、監視対象サービスに異常が発生したと判定して、ステップS413へ進み、相違がない場合、監視対象サービスに異常はないと判断し、ステップS411へ戻り、監視対象サービスの監視を続ける。このステップS412において通信状態により異常が検出される場合は、例えば、物体検出サービス320に想定外の異常が発生し、物体検出サービス320からサービス実行管理部521への異常通知が完了することなく、物体検出サービス320が停止し、物体検出サービス320が定期的に送信するサービス提供可能を示すメッセージ、及びサービス利用要求を示すメッセージが送信されなくなった場合である。
次に、ステップS413において、ステップS411又はステップS412で得られた異常情報を、図15に示すステップS406で作成するデータベース400aを更新する。例えば、ステップS411において異常情報を受信した場合は、物体検出サービス320の異常有無を「あり」に変更する。図16の中段のデータベース400bは、ステップS413により更新された後のデータベースである。
ステップS414において、異常監視サービス350は、異常情報管理サービス3401〜3403に対して、各制御装置のCPU使用率とメモリ使用量といったリソース情報を要求する。
ステップS415において、各制御装置の異常情報管理サービス3401〜3403は、異常監視サービス350から制御装置の処理回路のリソースの使用状態の情報の要求を受けた場合に、各制御装置のサービス実行管理部を介して、OSから制御装置のCPU使用率及びメモリ使用量を取得し、異常監視サービス350へ送信する。例えば、第2制御装置120において、異常情報管理サービス3402は、サービス実行管理部521を介して、OSから第2制御装置120の現在のCPU使用率及びメモリ使用量を取得し、異常監視サービス350に送信する。
ステップS416において、異常監視サービス350は、異常情報管理サービス3401〜3403から送信された各制御装置のCPU使用率及びメモリ使用量に基づいて、各制御装置のリソースの使用状態のリストを作成し、第1制御装置の主記憶装置113a又は補助記憶装置113bに記憶する。図18に、ステップS416で作成する各制御装置のリソースの使用状態のリスト401の例を示している。リスト401には、各制御装置のIPアドレスと、各制御装置のCPU使用率及びメモリ使用量とが記憶される。
次に、図19を用いて、リカバリサービス360のリカバリ処理を説明する。
ステップS421において、リカバリサービス360は、異常監視サービス350が異常監視サービスに係る異常を検知し、図17に示すステップS416において各制御装置のリソースの使用状態(CPU使用率及びメモリ使用量)の収集が完了すると、スタンバイ状態から実行状態に遷移し、異常が検知された監視対象サービスを再配置する再配置制御装置を選定する。
例えば、第2制御装置120に配置されている物体検出サービス320に係る異常が検知された場合は、リカバリサービス360は、監視対象サービス記憶部516(本例では、第1制御装置の補助記憶装置113b)に記憶されているリカバリ用の物体検出サービス320の実行マニフェスト321を主記憶装置113aにロードし、リソース使用情報(本例では、CPUの最大使用率、最大メモリ使用量)を読み取る。そして、リカバリサービス360は、各制御装置のリソースの使用状態を示す図18のリスト401と比較し、物体検出サービス320のCPUの最大使用率と最大メモリ使用量が収まる第3制御装置130を選択する。ただし、リカバリサービス360は、CPUの最大使用率と最大メモリ使用量が収まる制御装置が複数ある場合は、予め設定した各制御装置の優先度に基づいて、より優先度の高い制御装置を選定してもよい。或いは、各監視対象サービスを再配置する制御装置が予め設定されていてもよい。
一方、異常が検知された監視対象サービスのリソースが収まる制御装置が存在しない場合は、リカバリサービス360は、監視対象サービス以外のサービス、例えば、マルチメディアサービスなど、自動運転制御への影響が少ないサービスのCPU使用率とメモリ使用量を確認し、監視対象サービス以外のサービスの停止によって、異常が検知された監視対象サービスのリソースを確保できる場合は、監視対象サービス以外のサービスを停止させる処理を行い、そのリソースを確保した制御装置を、再配置制御装置として選定してもよい。また、異常が検知された監視対象サービスが配置されている制御装置において、CPU及びメモリの領域を複数の領域に分割することができる場合は、異常が検知された監視対象サービスが現在使用している領域とは別の領域に監視対象サービスを再配置してもよい。すなわち、同一の制御装置における別の領域が選定され、再配置されてもよい。
ステップS422において、リカバリサービス360は、異常が検知された監視対象サービスのリカバリ用の通信マニフェストを、ステップS421で選定された再配置制御装置のIPアドレスに書き換える。例えば、リカバリサービス360は、異常が発生した物体検出サービス320のリカバリ用の通信マニフェスト322のIPアドレスを第2制御装置のIPアドレス192.168.1.2から再配置制御装置である第3制御装置のIPアドレス192.168.1.3に書き換える。
ステップS423において、リカバリサービス360は、第1制御装置のソフトウェア更新管理部513に指令して、異常が発生した物体検出サービス320のリカバリ用のソフトウェア要素(プログラム)、及びその実行マニフェスト及びステップS422で書き換えた通信マニフェストのパッケージを再配置制御装置のサービス記憶部に転送し追加させる。
ステップS424において、再配置制御装置は、ステップS423で転送された異常が検知された監視対象サービスのソフトウェア要素等のパッケージを受信する。再配置制御装置のソフトウェア更新管理部は、受信したパッケージを、再配置制御装置のサービス記憶部(本例では、補助記憶装置)に記憶する。このとき、ソフトウェア更新管理部は、受信したパッケージに含まれる監視対象サービスのソフトウェア要素が圧縮されている場合は、解凍してから補助記憶装置に記憶する。また、正常にパッケージを受信できたことを確認するために、転送前後のファイルサイズを比較してもよい。
例えば、再配置制御装置に選定された第3制御装置130は、ステップS423で転送された物体検出サービス320のソフトウェア要素等のパッケージを受信する。パッケージを受信すると第3制御装置のソフトウェア更新管理部533は、パッケージに含まれる物体検出サービス320のソフトウェアを解凍した後、補助記憶装置133bに記憶し、実行マニフェスト321及び通信マニフェスト322も補助記憶装置133bに記憶する。
次に、ステップS425において、再配置制御装置のサービス実行管理部は、転送されたリカバリ用の監視対象サービスのパッケージに含まれる実行マニフェストを補助記憶装置から主記憶装置にロードし、サービスの起動条件を確認し、起動条件が満たされた場合に、サービスを起動する。そして、起動したサービスは、上述したように、サービス提供者である場合は、サービス間通信部に対し、サービス提供可能の登録を要求し、サービス利用者である場合は、サービス間通信部に対し、サービス利用を要求する。
例えば、第3制御装置130のサービス実行管理部531は、物体検出サービス320の実行マニフェスト321を補助記憶装置133bから主記憶装置133aにロードし、起動条件が満たされた場合、物体検出サービス320を起動する。起動した物体検出サービス320は、サービス間通信部532に対し、物体検出サービス320のサービス提供可能の登録の要求と車両制御サービス330の利用検索要求を伝達し、サービス間通信部532は、物体検出サービス320がサービス提供可能であることを示すメッセージの送信と、車両制御サービス330がサービス提供可能であることを示すメッセージの受信待機を行う。これらのリカバリ後の動作は、図13に示した処理を、第3制御装置130が行えばよい。
次に、図20を用いて、リカバリ処理後の動作を説明する。
ステップS431において、異常監視サービス350は、図15のステップS404からステップS406と同様に、再配置制御装置に再配置された監視対象サービスに係る異常の有無を検知する。例えば、第3制御装置130に再配置された物体検出サービス320は、第3制御装置130において正しく動作すると、図16に示した異常検知時の中段のデータベース400bは、下段のデータベース400cに更新され、物体検出サービス320の異常有無が「なし」に変更され、物体検出サービス320が配置されている制御装置のIPアドレスが、第3制御装置のIPアドレス192.168.1.3に変更される。
ステップS432において、異常監視サービス350は、ステップS431で取得した監視対象サービスの状態に基づいて、再配置制御装置に再配置された監視対象サービスが、正常に動作しているか否かを判定し、正常に動作している場合は、ステップS433に進み、正常に動作していると判定されない場合は、所定時間経過後に再度ステップS432を実施する。また、ステップS432を所定回数繰り返しても正常に動作していると判定されない場合は、図19のステップS421へ戻り、再度リカバリ処理を実施してもよい。
ステップS433において、リカバリサービス360は、第3制御装置のソフトウェア更新管理部513を介して、異常が検知された監視対象サービスが再配置前に配置されていた再配置前の制御装置に対して、異常が検知された監視対象サービスのソフトウェア要素、及びその実行マニフェスト及び通信マニフェストを削除する要求を伝達する。例えば、リカバリサービス360は、ソフトウェア更新管理部513に指令して、第2制御装置120に対して、物体検出サービス320のソフトウェア要素、その実行マニフェスト321及び通信マニフェスト322を含むパッケージを削除するメッセージを伝達させる。
次に、ステップS434において、ステップS433によりパッケージの削除要求を受けた再配置前の制御装置では、ソフトウェア更新管理部が、補助記憶装置から削除要求を受けたパッケージを削除する。例えば、第2制御装置120のソフトウェア更新管理部523は、物体検出サービス320が動作している場合は、サービス実行管理部521を介して、物体検出サービス320を停止させ、補助記憶装置123bに記憶されている物体検出サービス320のソフトウェア要素、その実行マニフェスト321及び通信マニフェスト322のパッケージを削除する。ただし、物体検出サービス320を停止させるタイミングは、物体検出サービス320に係る異常を検知したタイミングで行われてもよい。
〔その他の実施の形態〕
最後に、本願のその他の実施の形態について説明する。なお、以下に説明する各実施の形態の構成は、それぞれ単独で適用されるものに限られず、矛盾が生じない限り、他の実施の形態の構成と組み合わせて適用することも可能である。
(1)上記の実施の形態1では、各制御装置のサービス実行管理部の異常情報管理機能、特定制御装置の異常監視部及びリカバリ部は、各制御装置のサービス実行管理部により実行され、SOAのサービス間通信により他のサービスと通信が行われる異常情報管理サービス、異常監視サービス、リカバリサービスとして動作する場合を例に説明した。しかし、本願の実施の形態はこれに限定されない。すなわち、各制御装置のサービス実行管理部の異常情報管理機能、特定制御装置の異常監視部及びリカバリ部は、OS上で動作するアプリケーションとして動作してもよい。
(2)上記の実施の形態1では、リカバリ用の監視対象サービスのソフトウェア要素及びその実行マニフェスト及び通信マニフェストを記憶した監視対象サービス記憶部が、特定制御装置に設けられている場合を例に説明した。しかし、本願の実施の形態はこれに限定されない。すなわち、監視対象サービス記憶部は外部装置116に設けられ、特定制御装置は、外部装置と通信を行う外部通信部517を備え、リカバリ部は、異常が検知された監視対象サービスのソフトウェア要素、及び当該監視対象サービスの実行マニフェスト及び通信マニフェストを、外部通信部を介して、外部装置から取得し、再配置制御装置のサービス記憶部に転送し追加させるように構成されてもよい。例えば、外部装置116は、ネットワーク網に接続されたサーバとされ、外部通信部517は、ネットワーク網に接続し、ネットワーク網を介してサーバと通信を行う。
(3)上記の実施の形態1では、各制御装置は、処理回路としてCPU等の演算処理装置及び記憶装置を備えている場合を例に説明した。しかし、本願の実施の形態はこれに限定されない。すなわち、各制御装置は、処理回路として、図21に示すように、専用のハードウェア93、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ニューロチップ、ASIC、FPGA、又はこれらを組み合わせた回路等が備えられてもよい。
(4)上記の実施の形態1では、複数のサービスは、車両に搭載された複数の制御装置により実行され、ネットワークは、車載ネットワークであり、監視対象サービスは、車両の自動運転を行うために必要なサービスに設定されている場合を例に説明した。しかし、本願の実施の形態はこれに限定されない。すなわち、制御通信システムは、車両に搭載された制御通信システム以外の任意の制御通信システムであってもよい。例えば、制御通信システムは、発電所、工場等のプラントに設けられた複数の制御装置をイントラネットワークにより相互に接続する制御通信システムとされてもよく、或いは複数の制御装置を、インターネットなどの公共のネットワーク網により相互に接続する制御通信システムとされてもよい。
(5)上記の実施の形態1では、図1に破線で示したように、車両情報センサ群150は、第2制御装置120だけでなく、再配置の可能性のある第1制御装置110及び第3制御装置130にも接続線により冗長的に接続され、再配置に関係する操舵制御装置160及び動力制御装置170は、第3制御装置130だけでなく、再配置の可能性のある第1制御装置110及び第2制御装置120にも接続線により冗長的に接続されている場合を例に説明した。しかし、本願の実施の形態はこれに限定されない。すなわち、車両情報センサ群150、操舵制御装置160、及び動力制御装置170は、再配置の可能性のある各制御装置にも冗長的に接続されなくてもよい。この場合は、例えば、車両情報センサ群150、操舵制御装置160、及び動力制御装置170は、車載ネットワークを介して、再配置の可能性のある各制御装置に接続されてもよい。
本願は、例示的な実施の形態が記載されているが、実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合が含まれるものとする。
100 制御通信システム、110 第1制御装置(特定制御装置)、120 第2制御装置、130 第3制御装置、310 画像前処理サービス、320 物体検出サービス、330 車両制御サービス、350 異常監視サービス、360 リカバリサービス、510 第1制御装置のサービス記憶部、511 第1制御装置のサービス実行管理部、512 第1制御装置のサービス間通信部、513 第1制御装置のソフトウェア更新管理部、514 第1制御装置の異常監視部、515 第1制御装置のリカバリ部、516 第1制御装置の監視対象サービス記憶部、517 第1制御装置の外部通信部、520 第2制御装置のサービス記憶部、521 第2制御装置のサービス実行管理部、522 第2制御装置のサービス間通信部、523 第2制御装置のソフトウェア更新管理部、530 第3制御装置のサービス記憶部、531 第3制御装置のサービス実行管理部、532 第3制御装置のサービス間通信部、533 第3制御装置のソフトウェア更新管理部、3401 第1制御装置の異常情報管理サービス、3402 第2制御装置の異常情報管理サービス、3403 第3制御装置の異常情報管理サービス

Claims (12)

  1. 個別の機能であるサービスを実現するソフトウェア要素の複数を個別に実行可能な制御装置の複数と、複数の前記制御装置を相互に接続するネットワークと、を有する制御通信システムであって、
    複数の前記サービスのそれぞれに対応して、前記サービスの起動条件のデータを含む実行マニフェストと、前記サービスが配置された前記制御装置の識別子及び前記サービスの識別子のデータを含む通信マニフェストと、が設けられ、
    複数の前記制御装置のそれぞれは、
    前記制御装置に配置された前記サービスのソフトウェア要素、及び当該サービスの前記実行マニフェスト及び前記通信マニフェストを記憶するサービス記憶部と、
    前記サービス記憶部に記憶された前記サービスの前記実行マニフェストに含まれる前記起動条件が満たされる場合に当該サービスを起動するサービス実行管理部と、
    前記サービス記憶部に記憶された前記サービスの前記通信マニフェストを用いて、他の前記サービスと通信するサービス間通信部と、
    前記サービスのソフトウェア要素、及び当該サービスの前記実行マニフェスト及び前記通信マニフェストの前記サービス記憶部への更新、追加、及び削除を行うソフトウェア更新管理部と、を備え、
    全ての前記制御装置よりも少ない、1つ以上の予め設定された前記制御装置である特定制御装置は、
    予め設定された前記サービスである監視対象サービスに係る異常の有無を検知する異常監視部と、
    前記異常監視部により前記監視対象サービスに係る異常が検知された場合に、異常が検知された前記監視対象サービスを、現在配置されている前記制御装置から変更して配置する他の前記制御装置である再配置制御装置を選定し、異常が検知された前記監視対象サービスのソフトウェア要素、及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストを、前記再配置制御装置の前記サービス記憶部に、前記ソフトウェア更新管理部を介して転送し追加させるリカバリ部と、を更に備える制御通信システム。
  2. 複数の前記サービスのそれぞれの前記実行マニフェストには、前記サービスが使用する処理回路のリソース使用情報が含まれ、
    前記異常監視部は、前記監視対象サービスに係る異常を検知した場合に、各々の前記制御装置の前記サービス実行管理部に対して、各々の前記制御装置の処理回路のリソースの使用状態の情報を要求し、各々の前記制御装置から送信された前記リソースの使用状態の情報を取得し、
    前記リカバリ部は、前記異常監視部が取得した前記制御装置のそれぞれの前記リソースの使用状態の情報、及び前記異常が検知された前記監視対象サービスの前記実行マニフェストに含まれる前記リソース使用情報に基づいて、異常が検知された前記監視対象サービスが使用するリソースが収まる前記制御装置を判定し、判定した前記制御装置の1つを、前記再配置制御装置として選定する請求項1に記載の制御通信システム。
  3. 前記リカバリ部は、異常が検知された前記監視対象サービスが使用するリソースが収まる前記制御装置がないと判定した場合は、前記監視対象サービス以外のサービスの実行を終了させて、異常が検知された前記監視対象サービスが使用するリソースが収まる前記制御装置を確保し、当該制御装置を前記再配置制御装置として選定する請求項2に記載の制御通信システム。
  4. 前記サービス実行管理部は、前記制御装置において動作している前記サービスの異常を検知し、
    前記異常監視部は、前記監視対象サービスに係る異常として、前記監視対象サービスが配置された前記制御装置の前記サービス実行管理部が検知した前記監視対象サービスの異常と、前記サービス間通信部による前記監視対象サービスと他のサービスとの間のサービス間通信の異常の有無を検知する請求項1から3のいずれか一項に記載の制御通信システム。
  5. 前記サービス間通信部は、前記サービスの成果物の情報を提供可能である旨のメッセージを他の前記サービスに送信する提供送信、及び他の前記サービスの成果物の情報を利用する旨のメッセージを他の前記サービスに送信する利用送信の一方又は双方を実行し、
    前記異常監視部は、前記監視対象サービスと他の前記サービスとの間において、前記提供送信の実行が停止した場合、又は前記利用送信の実行が停止した場合に、前記監視対象サービスに係る異常が発生したと判定する請求項1から4のいずれか一項に記載の制御通信システム。
  6. 前記リカバリ部は、異常が検知された前記監視対象サービスの前記通信マニフェストの前記制御装置の識別子を、前記再配置制御装置の識別子に書き換えた上で、異常が検知された前記監視対象サービスのソフトウェア要素、及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストを、前記再配置制御装置の前記サービス記憶部に、前記ソフトウェア更新管理部を介して転送し、追加させる請求項1から5のいずれか一項に記載の制御通信システム。
  7. 前記再配置制御装置の前記サービス実行管理部は、前記サービス記憶部に追加された前記監視対象サービスの前記実行マニフェストに含まれる前記起動条件が満たされる場合に当該監視対象サービスを起動する請求項1から6のいずれか一項に記載の制御通信システム。
  8. 前記異常監視部は、異常が検知された前記監視対象サービスのソフトウェア要素及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストが、前記再配置制御装置に転送された後、前記再配置制御装置に対して、前記再配置制御装置の処理回路のリソースの使用状態の情報を要求し、前記再配置制御装置から送信された前記リソースの使用状態の情報を取得し、前記再配置制御装置の前記リソースの使用状態の情報に基づいて、転送した前記監視対象サービスが正常に起動したか否かを判定する請求項1から7のいずれか一項に記載の制御通信システム。
  9. 前記リカバリ部は、前記異常監視部により転送された前記監視対象サービスが正常に起動したと判断された場合は、異常が検知された前記監視対象サービスが実行されていた前記制御装置の前記サービス記憶部から、前記ソフトウェア更新管理部を介して、前記監視対象サービスのソフトウェア要素、及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストを削除する請求項8に記載の制御通信システム。
  10. 前記特定制御装置は、
    前記監視対象サービスと、前記監視対象サービスの前記実行マニフェスト及び前記通信マニフェストと、をリカバリ用として記憶する監視対象サービス記憶部を備え、
    前記リカバリ部は、異常が検知された前記監視対象サービスのソフトウェア要素、及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストを、前記監視対象サービス記憶部から前記再配置制御装置の前記サービス記憶部に転送し追加させる請求項1から9のいずれか一項に記載の制御通信システム。
  11. 前記特定制御装置は、
    前記監視対象サービスと、前記監視対象サービスの前記実行マニフェスト及び前記通信マニフェストと、をリカバリ用として記憶した外部装置と、通信を行う外部通信部を備え、
    前記リカバリ部は、異常が検知された前記監視対象サービスのソフトウェア要素、及び当該監視対象サービスの前記実行マニフェスト及び前記通信マニフェストを、前記外部通信部を介して、前記外部装置から取得し、前記再配置制御装置の前記サービス記憶部に転送し追加させる請求項1から9のいずれか一項に記載の制御通信システム。
  12. 複数の前記サービスは、車両に搭載された複数の前記制御装置により実行され、
    前記ネットワークは、車載ネットワークであり、
    前記監視対象サービスは、車両の自動運転を行うために必要な前記サービスに設定されている請求項1から11のいずれか一項に記載の制御通信システム。
JP2019196931A 2019-10-30 2019-10-30 制御通信システム Active JP6779354B1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019196931A JP6779354B1 (ja) 2019-10-30 2019-10-30 制御通信システム
US16/990,066 US11659037B2 (en) 2019-10-30 2020-08-11 Control communication system
DE102020213407.3A DE102020213407A1 (de) 2019-10-30 2020-10-23 Steuerkommunikationssystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019196931A JP6779354B1 (ja) 2019-10-30 2019-10-30 制御通信システム

Publications (2)

Publication Number Publication Date
JP6779354B1 JP6779354B1 (ja) 2020-11-04
JP2021071824A true JP2021071824A (ja) 2021-05-06

Family

ID=73022402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019196931A Active JP6779354B1 (ja) 2019-10-30 2019-10-30 制御通信システム

Country Status (3)

Country Link
US (1) US11659037B2 (ja)
JP (1) JP6779354B1 (ja)
DE (1) DE102020213407A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114750774B (zh) * 2021-12-20 2023-01-13 广州汽车集团股份有限公司 安全监测方法和汽车

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155003A (ja) * 1999-11-30 2001-06-08 Ntt Comware Corp サービス復旧システムおよびその記録媒体
JP2002221075A (ja) * 2001-01-25 2002-08-09 Denso Corp 車両統合制御におけるフェイルセーフシステム
JP2017092835A (ja) * 2015-11-16 2017-05-25 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
JP2018132932A (ja) * 2017-02-15 2018-08-23 トヨタ自動車株式会社 車両システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008003235A (ja) * 2006-06-21 2008-01-10 Canon Inc 画像形成システム、画像形成装置及びその制御方法
US20190340116A1 (en) * 2017-01-24 2019-11-07 Mitsubishi Electric Corporation Shared backup unit and control system
JP6853746B2 (ja) 2017-07-25 2021-03-31 日立Astemo株式会社 車両制御装置
JP6753388B2 (ja) 2017-11-13 2020-09-09 株式会社デンソー 自動運転制御装置、車両の自動運転制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155003A (ja) * 1999-11-30 2001-06-08 Ntt Comware Corp サービス復旧システムおよびその記録媒体
JP2002221075A (ja) * 2001-01-25 2002-08-09 Denso Corp 車両統合制御におけるフェイルセーフシステム
JP2017092835A (ja) * 2015-11-16 2017-05-25 日立オートモティブシステムズ株式会社 処理装置および車両制御システム
JP2018132932A (ja) * 2017-02-15 2018-08-23 トヨタ自動車株式会社 車両システム

Also Published As

Publication number Publication date
DE102020213407A1 (de) 2021-05-06
US20210136151A1 (en) 2021-05-06
JP6779354B1 (ja) 2020-11-04
US11659037B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
JP7407261B2 (ja) 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出
JP6760813B2 (ja) ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
CN100485676C (zh) 文件系统串行化重新初始化装置、方法和系统
JP2017059211A (ja) ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法
US20240053977A1 (en) Gateway device, in-vehicle network system, and firmware update method
US20080114827A1 (en) Message forwarding backup manager in a distributed server system
JP2010285001A (ja) 電子制御システム、機能代行方法
CN109886693B (zh) 区块链系统的共识实现方法、装置、设备和介质
CN1987804A (zh) 并行计算系统中的冗余保护的方法和系统
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
US20050066017A1 (en) Deterministically electing an active node
JP6779354B1 (ja) 制御通信システム
CN112181593A (zh) 虚拟机调度方法、装置、设备及存储介质
CN105306566A (zh) 一种云存储系统中选举主控节点的方法及系统
JP7184855B2 (ja) ソフトウェア更新装置、ソフトウェア更新方法
JP6853746B2 (ja) 車両制御装置
JP7039861B2 (ja) 車両用サービス管理装置及び車両用サービス管理プログラム
CN107168774B (zh) 一种基于本地存储的虚拟机迁移方法及系统
CN107038095B (zh) 用于冗余地处理数据的方法
CN114407909A (zh) 控制装置
JP2007334668A (ja) メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム
WO2023007209A1 (en) Fault-tolerant distributed computing for vehicular systems
CN113678101A (zh) 信息处理装置、移动体以及信息处理方法
WO2023199395A1 (ja) 車両ソフトウェア管理装置および車両ソフトウェア管理システム
JP2004157767A (ja) ソフトウェア更新システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200904

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201013

R151 Written notification of patent or utility model registration

Ref document number: 6779354

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250