JP6853746B2 - 車両制御装置 - Google Patents

車両制御装置 Download PDF

Info

Publication number
JP6853746B2
JP6853746B2 JP2017143738A JP2017143738A JP6853746B2 JP 6853746 B2 JP6853746 B2 JP 6853746B2 JP 2017143738 A JP2017143738 A JP 2017143738A JP 2017143738 A JP2017143738 A JP 2017143738A JP 6853746 B2 JP6853746 B2 JP 6853746B2
Authority
JP
Japan
Prior art keywords
data
object data
output
unit
setting information
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.)
Active
Application number
JP2017143738A
Other languages
English (en)
Other versions
JP2019028506A (ja
Inventor
勇樹 堀田
勇樹 堀田
悠史 福島
悠史 福島
成沢 文雄
文雄 成沢
林 正人
正人 林
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2017143738A priority Critical patent/JP6853746B2/ja
Priority to US16/629,661 priority patent/US20200150648A1/en
Priority to PCT/JP2018/022682 priority patent/WO2019021668A1/ja
Priority to DE112018003291.4T priority patent/DE112018003291T5/de
Publication of JP2019028506A publication Critical patent/JP2019028506A/ja
Application granted granted Critical
Publication of JP6853746B2 publication Critical patent/JP6853746B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0027Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement involving a plurality of vehicles, e.g. fleet or convoy travelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Mechanical Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Traffic Control Systems (AREA)

Description

本発明は、車両制御装置に関する。
ネットワークで接続された複数の組込み装置から構成される制御システムにおいて、プログラムの修正なくアプリケーションソフトウェア(以降、アプリケーション)の配置変更に対応可能とする技術が提案されている。この技術は、各組込み装置上で共通して動作するミドルウェアが、アプリケーションが演算に用いるデータの格納先を設定情報に基づいて制御することにより実現される。アプリケーションの配置変更としては、組込み装置の非実行状態の時(設計時や装置停止時等)に行う「静的な配置変更」と、実行状態の時に行う「動的な配置変更」がある。静的な配置変更としては、アプリケーションを異なる装置構成のシステムに適用する場合(例えば、異なる車種への展開)等が例として挙げられる。一方、動的な配置変更が必要となる例としては、制御システム上のある組込み装置が故障した場合に、その故障した組込み装置上で動作していたアプリケーションを他の組込み装置上で立ち上げることにより、制御システムを維持するというフェールオペレーショナルシステム等が挙げられる。
たとえば特許文献1には、他の通信装置との通信手段を備える通信装置において、複数の異なるアプリケーションプログラムを実行する手段と、他の通信装置と共通のプラットフォームプログラムを実行する手段と、データを記憶する記憶手段と、前記プラットフォームプログラムの処理により、前記記憶手段と前記アプリケーションプログラムとのデータの授受、他の通信装置とのデータの送受信、及び前記通信手段により他の通信装置から受信したデータの前記記憶手段への記憶を、他の通信装置と共通に行なう手段と、前記プラットフォームプログラムの処理により、前記記憶手段が記憶したデータの内の一又は複数を用いて他のデータを生成する生成手段とを備え、前記生成手段が生成したデータを前記通信手段により他の通信装置へ送信するようにしてあることを特徴とする通信装置が開示されている。
特願2008−153271号公報
特許文献1に記載されている発明では、ネットワーク帯域や各組込み装置の記憶容量を無駄に消費する。
本発明の第1の態様による車両制御装置は、外部装置と通信可能に接続された車両制御装置であって、前記外部装置とのデータ送受信を制御する通信制御部と、オブジェクトデータを管理するデータ管理部と、前記データ管理部または前記通信制御部から取得されるオブジェクトデータを用いて所定の演算を行い、前記所定の演算により得られたオブジェクトデータである出力オブジェクトデータを前記データ管理部に出力する1つ以上の機能部品と、前記機能部品ごとに前記出力オブジェクトデータの書き込み先に関する情報が格納される設定情報、およびオブジェクトデータを記憶する記憶部とを備え、前記データ管理部は、前記出力オブジェクトデータの書込み先を、前記設定情報に基づいて制御し、前記設定情報は、前記機能部品ごとに前記出力オブジェクトデータの前記外部装置への出力要否に関する外部出力要否情報を含み、前記データ管理部は、前記外部出力要否情報が出力要の場合に、前記通信制御部を介して前記外部装置に前記出力オブジェクトデータを出力し、前記機能部品の実行を制御する演算実行制御部をさらに備え、前記設定情報は、前記機能部品の実行要否に関する実行要否情報をさらに含み、前記演算実行制御部は、前記実行要否情報が実行要の場合に、前記機能部品の前記所定の演算を実行し、前記設定情報には、前記データ管理部が管理するオブジェクトデータの中から前記外部装置に出力する対象を読出すための条件式を前記機能部品ごとに含めることができ、前記演算実行制御部は、前記所定の演算を実行した前記機能部品について前記設定情報において前記条件式が含まれる場合は、前記データ管理部が管理するオブジェクトデータの中から前記条件式に適合するオブジェクトデータを読出し、前記外部装置に出力する。
本発明の第2の態様による車両制御装置は、外部装置と通信可能に接続された車両制御装置であって、前記外部装置とのデータ送受信を制御する通信制御部と、オブジェクトデータを管理するデータ管理部と、前記データ管理部または前記通信制御部から取得されるオブジェクトデータを用いて所定の演算を行い、前記所定の演算により得られたオブジェクトデータである出力オブジェクトデータを前記データ管理部に出力する1つ以上の機能部品と、前記機能部品ごとに前記出力オブジェクトデータの書き込み先に関する情報が格納される設定情報、およびオブジェクトデータを記憶する記憶部とを備え、前記データ管理部は、前記出力オブジェクトデータの書込み先を、前記設定情報に基づいて制御し、前記設定情報は、前記機能部品ごとに前記出力オブジェクトデータの前記外部装置への出力要否に関する外部出力要否情報を含み、前記データ管理部は、前記外部出力要否情報が出力要の場合に、前記通信制御部を介して前記外部装置に前記出力オブジェクトデータを出力し、前記設定情報には、前記出力オブジェクトデータの中から前記外部装置に出力する対象を選定するための条件式を含み、前記データ管理部は、前記出力オブジェクトデータの中から前記条件式に適合する対象データを抽出し、前記外部装置に出力する
本発明によれば、不要なデータの保存や通信を低減することができる。
車両システム1の機能ブロック図 設定情報データ群141の一例を示す図 オブジェクトデータ群142の一例を示す図 図4(a)は設定変更用データ群143aの一例を示す図、図4(b)は設定変更用データ群143bの一例を示す図 図5(a)は設定情報テーブルaの一例を示す図、図5(b)は設定情報テーブルBの一例を示す図 図6(a)はモジュールリストM1の一例を示す図、図6(b)はモジュールリストM2の一例を示す図 オブジェクトデータ操作インタフェース125のAPI群の一例を示す図 実行制御部14の周期処理を表すフローチャート オブジェクトデータ更新処理を表すフローチャート 完了通知受信処理を表すフローチャート オブジェクトデータ更新操作要求メッセージの一例を示す図 動的な配置変更の動作例を説明する図 変形例1における設定変更用データ群143pの一例を示す図 第2の実施の形態における開発用システム1aの機能ブロック図 操作用装置6の機能ブロック図 第2の実施の形態における車両制御装置2の設定情報データ群141aの一例を示す図 地図フュージョン演算部132のデバッグを行うための開発用システム1aの機能ブロック図 地図フュージョン演算部132のデバッグを行うための操作用装置6の機能ブロック図 図17における設定情報データ群141aの一例を示す図
―第1の実施の形態―
以下、図1〜図12を参照して、車両制御装置の第1の実施の形態を説明する。
(車両システムの構成)
図1は、車両制御装置を含む車両システム1の構成の一例を示す機能ブロック図である。車両システム1は、車両に搭載され、車両の周辺における走行道路や周辺車両等の障害物の状況を認識した上で、適切な運転支援あるいは走行制御を行うためのシステムである。図1に示すように、車両システム1は、車両制御装置2a、車両制御装置2b、センサ群3、アクチュエータ群4、および地図情報管理装置5を含んで構成される。センサ群3は、符号3aで示すセンサAと符号3bで示すセンサBとを含む。ただしセンサ群3は3以上のセンサにより構成されてもよい。アクチュエータ群4は、符号4aで示すアクチュエータAと符号4bで示すアクチュエータBとを含む。ただしアクチュエータ群4は、3以上のアクチュエータにより構成されてもよい。以下では、車両制御装置2aと車両制御装置2bとをまとめて「車両制御装置2」とも呼ぶ。
車両制御装置2は、例えば、車両に搭載された電子制御装置(ECU:Electronic Control Unit)である。車両制御装置2aは、処理部10aと、記憶部40aと、通信制御部50aとを有する。車両制御装置2bは、処理部10bと、記憶部40bと、通信制御部50bとを有する。ただし以下では、処理部10aと処理部10bとをまとめて「処理部10」とも呼び、記憶部40aと記憶部40bとをまとめて「記憶部40」とも呼び、通信制御部50aと通信制御部50bとをまとめて「通信制御部50」とも呼ぶ。
車両システム1は、自動運転に必要な演算を車両制御装置2a、および車両制御装置2bが実行する。すなわち車両制御装置2aと車両制御装置2bの協調動作により自動運転が実現される。ただし本実施の形態において車両システム1が実現する機能は一例であり、車両システム1は自動運転以外の機能を実現してもよい。
処理部10は、たとえば、CPU(Central Processing Unit:中央演算処理装置)やGPU(Graphics Processing Unit)を含んで構成される。処理部10は、記憶部40または不図示のROMに格納されているプログラムを不図示のRAMに展開して実行することで、車両制御装置2の機能を実現する。ただし処理部10が備える機能の一部または全部は、FPGA(Field−Programmable Gate Array)やハードウエア回路により実現されてもよい。
処理部10aはその機能として、データ適合部11a、データ管理部12a、データ演算部13a、実行制御部14a、および診断部15aを備える。処理部10bはその機能として、データ適合部11b、データ管理部12b、データ演算部13b、実行制御部14b、および診断部15bを備える。以下では、データ適合部11aとデータ適合部11bとをまとめて「データ適合部11」と呼び、データ管理部12aとデータ管理部12bとをまとめて「データ管理部12」と呼び、データ演算部13aとデータ演算部13bとをまとめて「データ演算部13」と呼び、実行制御部14aと実行制御部14bとをまとめて「実行制御部14」と呼び、診断部15aと診断部15bとをまとめて「診断部15」と呼ぶ。
データ適合部11は、通信制御部50を介して他の車両制御装置2と送受信するデータ形式とデータ管理部12で扱うデータ形式との間の、データ形式の変換を行う機能部品群である。ただし機能部品とは、処理部10が実現する機能の一部を実現する機能ブロックであり、CPU、GPU、FPGA、またはハードウエア回路により実現される。
車両制御装置2aのデータ適合部11aは、符号3aで示すセンサA及び符号3bで示すセンサBにそれぞれ対応するセンサA適合部111及びセンサB適合部112と、地図情報管理装置5に対応する地図装置適合部113とを備える。車両制御装置2bのデータ適合部11bは、符号4aで示すアクチュエータA及び符号4bで示すアクチュエータBにそれぞれ対応するアクチュエータA適合部114及びアクチュエータB適合部115を備える。これらの各機能部品が、対応する外部装置とデータ管理部12との間で、それぞれのデータ形式に応じたデータ形式の変換を行う。
ただし車両制御装置2aおよび車両制御装置2bのROMには、センサA適合部111、センサB適合部112、地図装置適合部113、アクチュエータA適合部114、およびアクチュエータB適合部115を機能させるためのソフトウエアが格納されている。すなわち後述するように、車両制御装置2aがさらにアクチュエータA適合部114、およびアクチュエータB適合部115を機能させることも可能である。
なお、データ管理部12では、後述するように抽象化したデータ形式(以下、「オブジェクトデータ」)を用いてデータの管理を行う。そのためデータ適合部11の動作を詳述すれば、データ適合部11の各機能部品の機能は次の2つを含む。すなわち第1に、通信制御部50を介して他の車両制御装置2から取得したデータのデータ形式を変換し、オブジェクトデータを生成してデータ管理部12へ出力する機能である。第2に、データ管理部12から出力されるオブジェクトデータのデータ形式を変換し、他の車両制御装置2への送信するデータを生成する機能である。
データ管理部12は、車両制御装置2の記憶部40に格納されたオブジェクトデータの管理および操作を行う機能と、他の車両制御装置2のデータ管理部12とのオブジェクトデータ操作要求の送受信を行う機能と、他の機能部品に対する共通インタフェースを提供する機能と、を有する機能部品群である。
データ管理部12は、所定の対象要素に対応するデータの集合であるオブジェクトデータを単位として、記憶部40上でデータの管理および操作を行う。なお「対象要素」とは、オブジェクトデータとして一纏めにした個々の情報要素が共通して表現する概念的な対象であり、例えば、センサ3の検出対象や、アクチュエータ4の制御対象等が該当する。好ましくは、特に外界センサについては、当該外界センサで認識された個々の環境要素(障害物、道路形状、交通ルール等)が対象要素に該当する。すなわち、外界センサというハードウェアそのものを抽象化するのではなく、外界センサの検出対象である環境要素を単位としてデータを抽象化し、オブジェクトデータとする方式を採ることが好ましい。
(データ管理部)
データ管理部12は、オブジェクトデータ操作実行部121、オブジェクトデータ操作実行制御部122、設定情報管理部123、オブジェクトデータ操作インタフェース125、および設定インタフェース126を備える。
オブジェクトデータ操作実行部121は、データ管理部12が他の機能部品から受けたデータ操作要求に基づき、記憶部40上で管理しているオブジェクトデータ群142に対してデータ操作を行う。このデータ操作要求は、オブジェクトデータ操作インタフェース125を介して入力される。データ管理部12は、データ操作を行うとその結果をデータ操作要求の送信元に返す。なおオブジェクトデータのデータ操作には、オブジェクトデータの更新、すなわち登録、上書き、および削除だけでなく、オブジェクトデータの検索が含まれる。
オブジェクトデータ操作実行制御部122は、データ管理部12が他の機能部品から受けたオブジェクトデータへの書込みを伴うオブジェクトデータ操作要求、すなわち更新操作に対して、当該車両制御装置の記憶部40へのデータ書込み要否や、別の車両制御装置に対する転送要否を判断する。この際にオブジェクトデータ操作実行制御部122は、後述する設定情報データ群141を参照してこれらの要否を判断する。このデータ操作要求は、オブジェクトデータ操作インタフェース125を介して入力される。オブジェクトデータ操作実行制御部122は、データ書込みが必要と判断する場合は、当該オブジェクトデータ操作要求をオブジェクトデータ操作実行部121に渡す。これにより、要求されたオブジェクトデータ群142に対する書込み操作が実行される。
オブジェクトデータ操作実行制御部122は、別の車両制御装置に対する転送が必要と判断する場合は、必要に応じてオブジェクトデータ操作実行部121を介して所定の条件を満たすオブジェクトデータの抽出、すなわち検索操作を実行し、通信制御部50を介してネットワークに当該オブジェクトデータ操作要求を出力する。そのため、設定情報データ群141を適切に設定することにより、データ適合部11やデータ演算部13の各機能部品を修正することなく、換言するとプログラムの修正やハードウエアの再構成をすることなく、それらによるオブジェクトデータの書込み場所を制御することが可能となる。
またオブジェクトデータ操作実行制御部122は、実行制御部14からの通知を受けて、オブジェクトデータ操作実行部121を介して所定の条件を満たすオブジェクトデータを抽出し、通信制御部50を介して当該オブジェクトデータに関する書込み操作要求をネットワークに出力する機能も有する。
設定情報管理部123は、データ管理部12が設定インタフェース126を介して実行制御部14から受けた要求に従い、設定情報データ群141の取得または変更を制御する機能部品である。
オブジェクトデータ操作インタフェース125は、データ適合部11、データ演算部13、実行制御部14等の他の機能部品群が、データ管理部12が提供するオブジェクトデータ操作機能を利用するためのAPI(Application Programming Interface)に相当する。オブジェクトデータ群142を構成する各オブジェクトデータは、その対象要素に応じてデータ構造が異なるが、オブジェクトデータ操作インタフェース125は、任意のオブジェクトデータを共通の操作手法で操作可能とするためのインタフェースを提供する。
設定インタフェース126は、実行制御部14等の他の機能部品群が、データ管理部12の振る舞いを規定する設定情報データ群141を取得したり、変更したりすることを可能とするためのインタフェースを提供する。
(データ演算部)
データ演算部13は、車両制御装置2の機能を実現するためのアプリケーション群である。データ演算部13は、データ管理部12のオブジェクトデータ操作インタフェース125から入力されたデータに基づいて演算を行い、演算により得られたデータをオブジェクトデータ操作インタフェース125に出力する機能部品群である。自動運転のような複雑な機能を実現する演算処理は複数の処理ブロックで構成され、データ演算部13は個々の処理ブロックに対応する複数の機能部品で構成されている。すなわち本実施の形態では自動運転機能は3つの機能部品、すなわちセンサフュージョン演算部131、地図フュージョン演算部132、および走行制御演算部133により構成される。そしてこの3つの機能部品は、センサフュージョン演算部131と地図フュージョン演算部132が車両制御装置2aに搭載され、走行制御演算部133が車両制御装置2bに搭載される。これらの各機能部品が行う演算処理により、センサ群3で検出された各種情報に基づき、車両制御装置2が搭載される車両における自動運転の制御情報が演算され、アクチュエータ群4に出力される。
ただし車両制御装置2aおよび車両制御装置2bのROMには、センサフュージョン演算部131、地図フュージョン演算部132、および走行制御演算部133を機能させるためのソフトウエアが格納されている。すなわち後述するように、車両制御装置2aだけでセンサフュージョン演算部131、地図フュージョン演算部132、および走行制御演算部133の全ての演算を行うことも可能である。
センサフュージョン演算部131は、センサ群3に含まれる複数の外界センサで検出した同一の対象要素に対するオブジェクトデータの同定・統合処理、および時系列情報に基づく欠落データの補間処理を行う。
地図フュージョン演算部132は、センサフュージョン演算部131が同定・統合したオブジェクトデータと地図情報管理装置5から取得した地図データの情報とを照合し、当該オブジェクトデータに地図データの情報(例えば、他車両が走行している車線ID等)を属性として付加する処理を行う。
走行制御演算部133は、センサフュージョン演算部131、地図フュージョン演算部132の演算結果に基づいて、当該車両の運転行動や走行軌道、速度プロファイル等を決定する。また走行制御演算部133は、決定したこれらの情報を基に、アクチュエータ群4に対する制御情報を演算し、その演算結果をデータ管理部12(図1の場合は12b)に出力する。なお、データ管理部12に出力された制御情報は、データ適合部11のアクチュエータA適合部114、およびアクチュエータB適合部115によりそれぞれのアクチュエータに対応する通信データ形式に変換され、通信制御部50bを介してネットワークに出力される。
(実行制御部)
実行制御部14は、データ適合部11及びデータ演算部13の機能部品等、データ管理部12にアクセスする各機能部品の実行を制御する機能部品である。実行制御部14は、後述するモジュールリストに記載された順序に従って、データ管理部12にアクセスする各機能部品の演算を実行するための関数、すなわち実行関数を呼び出し、車両制御装置2の一連の演算処理を実現する。その際に実行制御部14は、データ管理部12の設定インタフェース126を介して設定情報データ群141を参照し、データ管理部12にアクセスする各機能部品の実行要否を判断する。実行制御部14は、実行不要と設定されている機能部品については実行関数を呼び出さずに、次の機能部品の処理に移行する。
(診断部)
診断部15は、自身の車両制御装置2やネットワークで接続された外部装置の状態を診断し、故障を検出する機能部品である。自身の装置内の故障は、例えば、ウォッチドックタイマー等により内部状態を監視することにより検出可能である。また、外部装置の故障は、例えば、キープアライブ等の手法により検出可能である。診断部15は、各種故障を検出すると実行制御部14に通知する。
(記憶部)
記憶部40は、例えば、HDD(Hard Disk Drive)、フラッシュメモリ、ROM(Read Only Memory)などの記憶装置や、RAMなどのメモリを含んで構成される。記憶部40には、処理部10が処理するプログラムや、その処理に必要なデータ群、すなわち設定情報データ群141、オブジェクトデータ群142、及び設定変更用データ群143が格納される。また記憶部40は、処理部10がプログラムを実行する際の主記憶装置として、一時的にプログラムの演算に必要なデータを格納する用途にも利用される。
設定情報データ群141は、データ管理部12の振る舞いを規定する設定情報に関するデータの集合である。オブジェクトデータ群142は、データ管理部12が記憶部40上で管理しているオブジェクトデータの集合である。設定変更用データ群143は、実行制御部14が設定情報データ群141を動的に変更する際に参照するデータの集合である。設定情報データ群141、オブジェクトデータ群142、及び設定変更用データ群143の具体例は後述する。
(通信制御部)
通信制御部50は、例えば、IEEE802.3又はCAN(Controller Area Network)等の通信規格に準拠したネットワークカード等を含んで構成される。通信制御部50は、車両システム1における他の装置と各種プロトコルに基づきデータの送受信を行う。通信制御部50が提供するデータ送受信のためのインタフェースは、車両制御装置2のハードウェアや外部装置との接続形態に依存しない形式で構成されている。例えば、デバイスドライバ群により車両制御装置2のハードウェアデバイスを抽象化して扱うためのインタフェースが提供され、その上でTCP/IP等の汎用的な通信プロトコルが動作する。これにより、いずれの車両制御装置上においても、共通のインタフェース、たとえばソケットインタフェース等を用いて任意のデータを他装置と送受信可能なように構成されている。
なお図1では通信制御部50を処理部10と分けて記載しているが、処理部10の中で通信制御部50の処理の一部が実行されてもよい。例えば、通信処理におけるハードウェアデバイス相当が通信制御部50に位置し、それ以外のデバイスドライバ群や通信プロトコル処理等は、処理部10の中に位置するように構成することも可能である。そのような構成においても、データを送受信するためのインタフェースは変わらないため、処理部10におけるデータ適合部11、データ管理部12、データ演算部13、実行制御部14の機能部品群の振る舞いは変わることはない。
センサ群3は、車両周辺の状態を検出する装置である外界センサ群や、車両の状態を検出している装置である内界センサ群の集合である。外界センサ群はたとえば、カメラ装置、ミリ波レーダ、レーザレーダ、およびソナーなどである。車両の状態とはたとえば、走行速度、操舵角、アクセルの操作量、およびブレーキの操作量などである。センサ群3を構成するそれぞれの装置は、その検出情報を車載ネットワーク上に出力する。外界センサ群は、車両から所定範囲に存在する他車両、自転車、歩行者、落下物などの障害物や、白線や路端などの道路形状、および道路標識や信号などの交通ルール等の環境要素を検出して出力する。本実施の形態では、センサ群3は、符号3aで示すセンサAと符号3bで示すセンサBとを含む。
アクチュエータ群4は、車両の動きを決定する操舵、ブレーキ、アクセル等の制御要素を制御する装置群である。アクチュエータ群4は、運転者によるハンドル、ブレーキペダル、アクセルペダル等の操作情報や車両制御装置2から出力される制御情報に基づいて、車両の動きを制御する。
地図情報管理装置5は、車両周辺のデジタル地図情報を管理および提供する装置であり、たとえばナビゲーション装置である。地図情報管理装置5は、たとえば、所定の地域全体あるいは車両周辺の地域を表すデジタル道路地図データを備えており、全地球航法衛星システム(GNSS)受信装置等を通じて決定された車両の位置情報に基づき、地図データ上で車両の地図位置(走行中の道路、車線等)を特定する。また地図情報管理装置5、特定した車両の地図位置やその周辺の地図データを車両制御装置2に提供する。
ここで、本実施形態による車両制御装置2における処理部10を構成する機能部品(以下、「処理機能部品」)の特徴を説明する。前述のとおり処理機能部品は、データ管理部12を介してデータの受渡しを行うように構成されている。そのため、車両制御装置2aと車両制御装置2bにおける処理機能部品の配置が変更されても、それぞれのデータ管理部12が処理機能部品のデータ入出力のインタフェースであることに変わりはない。
上述のようにデータ管理部12は、設定情報データ群141に基づいて各機能部品から出力されたオブジェクトデータの書込み場所を制御する。そのため、設計やハードウェア構成の変更等により車両制御装置2に対するデータ演算を行う各機能部品の配置関係が変更されても、以下のように影響が限定的である。すなわち処理部10は、機能部品の配置が変更されても設定情報データ群141を適切に設定することにより、当該機能部品の入出力インタフェースを変更せずに、車両システム1における一連の演算処理を実現できる。すなわち、機能部品を改修することなく機能部品の静的な配置変更を実現できる。
また実行制御部14は、設定情報データ群141に基づいて、データ管理部12にアクセスする各機能部品の実行を動的に制御可能である。すなわち、各機能部品の実行とそれに合わせたオブジェクトデータの配置を連動させて切り替えることが可能であるため、以下の利点を有する。その利点とは、設定インタフェース126を介して設定情報データ群141を適切に変更することにより、車両システム1における一連の演算処理を継続しながら機能部品の配置変更、すなわち動的な配置変更を実現できることである。
なお図1では、通信制御部50とデータ管理部12の間のデータ形式の変換を行うデータ適合部11を、データ演算部13と分けて記載している。しかしこれらは、入力されたデータに対して所定の演算を行い、出力データを生成する点では共通している。そのため、データ適合部11をデータ演算部13の一部として扱うことも可能である。その場合は、データ演算部13の機能部品群は、通信制御部50もしくはデータ管理部12を介してデータの受渡しを行う。
(設定情報データ群141)
図2は、設定情報データ群141に格納されている設定情報の一例を示す図である。図2(a)は車両制御装置2aに格納される設定情報データ群141aを示す図、図2(b)は車両制御装置2bに格納される設定情報データ群141bを示す図である。前述のように、設定情報データ群141は記憶部40に格納されており、データ管理部12の振る舞いを規定する設定情報に関するデータの集合である。データ管理部12の設定情報管理部123は、車両制御装置2の起動時に設定変更用データ群143を読み込み、起動時に対応する設定情報テーブルに基づいて、メモリ上の設定情報データ群141を設定する。図2に示すように、設定情報データ群141は複数のレコードから構成され、各レコードは、モジュールID301、実行要否302、格納要否303、出力要否304、出力タイミング305及び検索式306のフィールドを有する。
モジュールID301のフィールドには、データ管理部12にアクセスするデータ適合部11及びデータ演算部13の機能部品を識別するための情報が格納される。図2では「センサA適合部」等、図1で示した機能部品名を記載しているが、実際には各機能部品に紐付けられた識別子、たとえば機能部品IDが用いられる。以下では、あるレコードにおいて機能部品IDのフィールドの値により特定される機能部品を「対象機能部品」と呼ぶ。実行要否302のフィールドには、当該車両制御装置において対象機能部品の演算を実行するか否かを示す情報が格納される。
格納要否303のフィールドには、対象機能部品からのオブジェクトデータの書込み操作要求を当該車両制御装置で処理するか否かを示す情報が格納される。出力要否304のフィールドには、該機能部品からのオブジェクトデータの書込み操作要求をネットワークで接続された外部装置に転送するか否かを示す情報が格納される。図2では要否を示す「Yes」「No」で表現しているが、出力先の識別子、たとえばIPアドレスやホスト名などを記載しても良い。その場合は、たとえば、出力先情報が記載されていない場合は転送不要とし、出力先が記載されている場合はその出力先に該当する装置に対して転送する。
出力タイミング305のフィールドは、出力要否304のフィールドに「Yes」が格納される場合に設定される。出力タイミング305のフィールドには、外部装置への転送を行うタイミングを示す情報が格納される。出力タイミング305のフィールドにはたとえば、「演算完了時」または「操作実行時」が格納される。「演算完了時」は、対象機能部品の演算処理が完了した際に転送を実行することを意味する。「操作実行時」は、対象機能部品から要求された各オブジェクトデータ書込み操作の実行時に転送を実行することを意味する。
検索式306のフィールドは、出力要否304のフィールドに「Yes」が格納される場合に設定される。検索式306のフィールドには外部装置への転送対象を抽出するための条件文が格納される。また検索式306のフィールドの値は、出力タイミング305のフィールドの値とも以下のように連動している。出力タイミング305のフィールドに「演算完了時」が格納される場合は、記憶部40に格納されているオブジェクトデータ群142全体に検索式306のフィールドに格納された検索が適用される。その一方で、出力タイミング305のフィールドに「操作実行時」が格納される場合は、対象機能部品から書込み要求がされたオブジェクトデータを対象として、検索式306のフィールドに格納された検索が適用される。
検索式306のフィールドには、所定の文法に従って作成された条件文が格納される。条件文はたとえば、オブジェクトデータのデータ要素や検索式パラメータを指定するキー文字列、算出演算子、論理演算子、比較演算子等の組合せで表現される。図2の例では、地図フュージョン演算部における検索式306のフィールドには「datasrc=“フュージョン” AND x+y<10000」という条件式と、「sorttype=“ascending”」「sorttarget=x+y」「objnum=20」という検索パラメータが格納される。上述した条件式は、データソースが「フュージョン」で、かつ相対距離が100m未満のオブジェクトデータを抽出する検索式を表している。上述した3つの検索パラメータのうち先の2つは、検索結果のソートに関するパラメータを表しており、それぞれソートの並び順序、ソートをかける対象を指定している。この例においては、x+yの値に対して昇順でソートしている。
3つ目の検索パラメータは、出力するオブジェクトデータの数の上限値を指定するものである。この例では、オブジェクトデータは20個まで送信可能としている。これらの条件式により、必要なオブジェクトデータのみを抽出して転送することを可能にすると同時に、該当するオブジェクトデータ数が多すぎた場合であっても、所定の優先順位に基づき転送数の上限を抑えることが可能になる。なお、この検索式306の表現形態はこれに拠らず、SQL(Structured Query Language)等により表現しても良い。そのような文法を用いることで、異なるオブジェクトデータの値である自車両の速度veを参照して比較する以下のような条件式を構築することも可能である。すなわち「x>0 AND x+y<(“自車両の速度v”×5)」(5秒間に進む前方範囲内のオブジェクトデータの抽出)という条件式が構築可能である。
図2では、車両制御装置2a、2bの設定情報データ群141a、141bの例をそれぞれ示しているが、これは図1に示した車両システム1における設定情報に該当する。
すなわち図2(a)に示す設定情報データ群141aでは、車両制御装置2aにおいてセンサA適合部111、センサB適合部112、地図装置適合部113、センサフュージョン演算部131、地図フュージョン演算部132が動作しているため、それらに該当する実行要否302のフィールドの値が「Yes」に設定されている。また、センサフュージョン演算部131および地図フュージョン演算部132の演算に必要なオブジェクトデータが、記憶部40aのオブジェクトデータ群142aに格納されている必要があるため、以下の設定がされている。すなわちセンサ適合部111、センサB適合部112、地図装置適合部113、およびセンサフュージョン演算部114の出力結果が格納されるように、それらに該当する格納要否303のフィールドに「Yes」が設定されている。一方、地図フュージョン演算部132の出力結果は、車両制御装置2bにおいて実行される走行制御演算部133に利用されるため、地図フュージョン演算部132の出力要否304のフィールドの値は「Yes」に設定され、その際の各種条件が出力タイミング305と検索式306のフィールドに設定されている。
一方、車両制御装置2bでは、アクチュエータA適合部114、アクチュエータB適合部115、走行制御演算部133が動作しているため、それらに該当する実行要否302のフィールドに「Yes」が設定されている。また、走行制御演算部133の演算や、アクチュエータA適合部114、アクチュエータB適合部115の出力に必要なオブジェクトデータが、記憶部40bのオブジェクトデータ群142bに格納されている必要があるため、以下の設定がされている。すなわち地図フュージョン演算部132、走行制御演算部133の出力結果が格納されるように、それらに該当する格納要否303のフィールドに「Yes」が設定されている。
(オブジェクトデータ群142)
図3は、オブジェクトデータ群142に格納されているオブジェクトデータの一例を示す図である。前述のようにオブジェクトデータ群142は記憶部40に格納され、データ管理部12により管理されるオブジェクトデータの集合である。図3に示すように、オブジェクトデータ群142は複数のレコードを有し、各レコードが1つのオブジェクトデータに対応する。以下では、あるレコードにおいて説明の対象としているオブジェクトデータを「対象オブジェクトデータ」と呼ぶ。また以下ではレコードを「データエントリ」とも呼ぶ。
オブジェクトデータ群142の各レコードは、ID201、データソース202、オブジェクト種別203、タイムスタンプ204、相対位置205、相対速度206、およびデータソースや対象要素の種類に応じて異なる情報が格納される固有情報207から構成される。各データ要素には、設定情報データ群141の検索式306のフィールドにおいて指定できるキー文字列が設定されている。すなわち、ID201には「id」、データソース202には「datasrc」、オブジェクト種別203には「objtype」、タイムスタンプ204には「timestamp」、相対位置205には「x」と「y」、相対速度206には「v」と「v」が設定されている。なお、図3では記載していないが、固有情報207に格納されるデータ要素に対しても、それぞれ所定のキー文字列が割り当てられているものとする。
ID201のフィールドには、対象オブジェクトデータが示す対象要素を識別するための識別子が格納される。同一の対象要素、たとえば同じ車両を示す複数のオブジェクトデータには、ID201のフィールドに同一の値が設定される。図3の例では、オブジェクトデータ群142全体で重複がないように値が設定されているが、データソース202等との組み合わせでユニーク性を保証する形態でも良い。データソース202のフィールドには、対象オブジェクトデータの生成元を示す情報が格納される。例えば、図3の一つ目のデータエントリ(id=1)では、データソース202のフィールドに「センサA」が設定されている。これは、対象オブジェクトデータの生成元がセンサ群3に含まれるセンサA、厳密にはセンサA適合部111であることを表している。
オブジェクト種別203のフィールドには、対象オブジェクトデータが示す対象要素の概念的な種別を表す情報が格納される。オブジェクト種別203に格納される対象要素の種別とは、たとえば他車両、歩行者、白線等が挙げられる。タイムスタンプ204のフィールドには、対象オブジェクトデータに関する時間情報が格納される。タイムスタンプ204のフィールドに格納される時間情報は、例えば、データソース202が表す対象オブジェクトデータの生成元がセンサ群3に含まれるセンサである場合は、対象オブジェクトデータを検出した時刻に相当する。これにより、任意の時点における対象オブジェクトデータの状態を推測する際に、対象オブジェクトデータに時間に応じた補正をかけることが可能となる。なお、タイムスタンプ204には、車両制御装置2におけるオブジェクトデータの時間管理のポリシーに応じて、例えば記憶部40における対象オブジェクトデータの更新時刻など、別の時間情報を格納してもよい。
相対位置205のフィールドは、当該車両に対する対象オブジェクトデータが示す対象要素の相対位置を示す情報が格納される。相対位置の座標は、例えば、当該車両を中心としたx−y座標系で表現され、x軸は当該車両の参照点、たとえば車両の重心を前後方向に貫く中心軸(前方向が正)、y軸は当該車両の参照点を左右方向に貫く中心軸(左方向が正)とする。例えば、図3の一つ目のデータエントリ(id=1)は、当該車両から30m前方かつ0.1m左方に、該対象要素が位置することを意味する。相対速度206のフィールドには、当該車両に対する対象オブジェクトデータが示す対象要素の相対速度を示す情報が格納される。相対速度の座標軸は、相対位置205と共通とする。
固有情報207のフィールドには、データソース202とオブジェクト種別203の組合せに応じて、オブジェクトデータごとに異なるデータが格納されている。例えば、datasrc=“センサA”かつobjtype=”他車両”のオブジェクトデータにはウィンカー情報が格納されているのに対し、objtype=”歩行者”のオブジェクトデータや、datasrc=“センサB”のオブジェクトデータには格納されていない。これはセンサごとに検出可能な情報が異なることや、対象要素の種別に応じて識別される情報が異なることが原因である。
(設定変更用データ群143)
図4は、設定変更用データ群143の一例を示す図である。図4(a)は設定変更用データ群143aの一例を示す図、図4(b)は設定変更用データ群143bの一例を示す図である。前述のように、設定変更用データ群143は記憶部40に格納される。設定変更用データ群143は、実行制御部14が設定情報データ群141を動的に変更する際に参照するデータの集合である。設定変更用データ群143は、複数のレコードから構成され、各レコードには、設定変更を実行させるトリガーとなるイベントと、変更後の設定情報とが格納される。実行制御部14は所定のイベントを検出すると、設定変更用データ群143において当該イベントが該当する設定情報に設定情報データ群141を変更する。図4に示すように、設定変更用データ群143の各レコードは、イベント種別401、変更先設定情報402、およびモジュールリスト403のフィールドを有する。
イベント種別401のフィールドには、設定変更を実行させるトリガーとなるイベントを示す情報が格納される。「装置起動」とは、車両制御装置2の起動イベントを意味する。「車両制御装置2b故障」とは、車両制御装置2bの故障検知イベントを意味する。「車両制御装置2b復帰」とは、車両制御装置2bが故障後、再起動などを通じて復帰したことを検知したイベントを意味する。
変更先設定情報402のフィールドには、イベント種別401のイベント発生時に変更すべき設定情報が格納される。ここでの設定情報とは、設定情報データ群141に相当する情報である。モジュールリスト403のフィールドには、イベント種別401のイベント発生以後に使用するモジュールリストの名称が格納される。モジュールリストとは、機能部品を実行すべき順番に並べたリストである。
図5(a)は符号410で示す設定情報テーブルAの一例を示す図、図5(b)は符号420で示す設定情報テーブルBの一例を示す図である。符号410で示す設定情報テーブルAは、構造および格納される情報が図2(a)に示す設定情報データ群141aと同一である。符号420で示す設定情報テーブルBは、構造は設定情報データ群141aと構造は同一であるが格納される情報が異なる。図5を参照した動作例は後に説明する。
図6(a)はモジュールリストM1の一例を示す図、図6(b)はモジュールリストM2の一例を示す図である。ただし図6は図5に対応している。すなわち図5(a)において実行要否のフィールドに「YES」が格納されているモジュール種別、すなわち機能部品が、図6(a)のモジュールリストM1に記載されている。同様に、図5(b)において実行要否のフィールドに「YES」が格納されているモジュール種別、すなわち機能部品が、図6(b)のモジュールリストM2に記載されている。なお図5と図6において記載順番が一致していることに特に理由はない。設定情報テーブルにおける機能部品の記載順番と、機能部品の実行順番は何ら関係はない。
(オブジェクトデータ操作インタフェース)
図7に示す疑似コード群C501は、オブジェクトデータ操作インタフェース125をC言語でそれぞれ記述した場合のヘッダファイルの一部を表現したものである。疑似コード群C501は、オブジェクトデータの更新用APIを表す疑似コード511と、オブジェクトデータの検索APIを表す疑似コード512と、モジュールイベント通知APIを表す疑似コード513と、を含む。以下では、これらの疑似コードが表すAPIについて説明する。
疑似コード511が表すオブジェクトデータの更新APIである”updateData”は、車両システム1の所定の車両制御装置2のオブジェクトデータ群142に対する更新操作を行うAPIである。オブジェクトデータ群142に対する更新操作には、「登録操作」、「上書き操作」、および「削除操作」が含まれる。登録操作とは、オブジェクトデータ群142に対して新しいオブジェクトデータを挿入する操作である。上書き操作とは、オブジェクトデータ群142に格納されている所定のオブジェクトデータを、新しいオブジェクトデータで上書きする操作である。削除操作とは、オブジェクトデータ群142に格納されている所定のオブジェクトデータを削除する操作である。疑似コード511で表されるように、更新APIの引数は、当該APIを呼び出した機能部品を識別するモジュールIDである”moduleID”と、操作対象のオブジェクトデータのデータ長である”dataSize”と、操作対象のオブジェクトデータのアドレスである”data”と、実行する更新操作の種別を識別する操作モードである”mode”と、で構成される。本引数におけるモジュールIDは、図2のモジュールID301に相当する。操作対象のオブジェクトデータのデータ長及びアドレスは、操作モードが登録操作または上書き操作の場合のみ引数値として格納される。
オブジェクトデータの更新APIが呼ばれると、オブジェクトデータ操作実行制御部122に引数情報が渡される。指定された更新操作が実行される車両制御装置2は、前述のように設定情報データ群141の設定に基づいて決定されるため、必ずしも当該APIが呼び出された車両制御装置2上のオブジェクトデータ群142に対して適用されるとは限らない。オブジェクトデータ群142に対して適用される場合は、オブジェクトデータ操作実行部121に引数情報が渡され、指定された更新操作が実行される。
疑似コード512が表すオブジェクトデータの検索APIである”searchData”は、当該APIが呼び出された車両制御装置2のオブジェクトデータ群142の中から、所定の検索条件に該当するオブジェクトデータを取得する操作である「検索操作」のAPIである。疑似コード512で表されるように、検索APIの引数は、モジュールIDである”moduleID”と、検索式である”searchCond”と、検索結果を格納するバッファの情報である”dataSize、data”とを含む。当該APIの検索式は、図2の検索式306に相当する。
オブジェクトデータの検索APIが呼ばれると、オブジェクトデータ操作実行部121に引数情報が渡される。オブジェクトデータ操作実行部121は、渡された検索式の文字列を所定の文法に従って解析・解釈し、オブジェクトデータ群142の中から所定の条件に該当するオブジェクトデータのリストを抽出する。そして、検索式の中にソート条件が設定されている場合は、それに従い整列した結果をバッファに格納して、呼び出し元に返す。
疑似コード513が表すモジュールイベント通知APIである”notifyModuleEvent”は、指定されたモジュールIDに関するイベントをデータ管理部12に通知するためのAPIである。疑似コード513で表されるように、当該APIの引数は、モジュールIDである”moduleID”と、通知種別である”notifyType”と、で構成される。本引数における通知種別としては、例えば、「演算実行完了通知」が挙げられる。演算実行完了通知は、本引数におけるモジュールIDに該当する機能部品の演算実行が完了したことをデータ管理部12に通知するときに用いられる。
(周期処理のフローチャート)
図8は、車両制御装置2における実行制御部14の周期処理を表すフローチャートである。実行制御部14は所定の時間間隔で、たとえば100ms周期で図8に示す周期処理を実行する。なお以下では、機能部品を「モジュール」とも呼ぶ。
実行制御部14は、初めにS601において実行制御対象のモジュールリストMを取得する。ただしこのモジュールリストMは、設定変更用データ群143においてモジュールリスト403のフィールドに格納されたモジュールリストのコピーである。たとえば直前のイベントが「装置起動」の場合は、モジュールリストM1のコピーをモジュールリストMとして取得する。なおモジュールリストMはモジュールリストM1のコピーなので、以下ではモジュールリストMの一部を削除するが、この処理はモジュールリストM1には影響を与えない。
続くS602では実行制御部14はモジュールリストMが空集合であるか否かを判断し、空集合ではないと判断する場合はS603に進み、空集合であると判断する場合はS607に進む。S603では実行制御部14はモジュールリストMの先頭のモジュールmを取得する。続くS604では実行制御部14はモジュールmの実行関数を呼び出し、モジュールmの演算を実行する。そして実行制御部14は、演算の実行が完了すると、図7に示したデータ管理部12のオブジェクトデータ操作インタフェース125のモジュールイベント通知APIを用いて、モジュールmの演算実行完了イベントをデータ管理部12に通知し(S605)、モジュールリストMから演算実行済みのモジュールmを削除して(S606)、S602に戻る。
S603からS606の処理がモジュールリストMのすべてのモジュールに対して適用されると、モジュールリストMがカラ、すなわち空集合になるため、S607に進む。S607では、実行制御部14は、モジュールの配置変更イベントの有無を判断する。ここでモジュールの配置変更イベントとは、図4の設定変更用データ群143のイベント種別401に相当するものであり、診断部15により検出される。モジュールの配置変更イベントがないと判断する場合は(S607:N)、図8に示す処理を終了する。モジュールの配置変更イベントが生じていたと判断する場合は(S607:Y)、実行制御部14は設定情報を変更して(S608)から図8に示す処理を終了する。詳述すると実行制御部14は、設定変更用データ群143を参照して、該イベントに該当する変更先設定情報402を特定し、データ管理部12の設定インタフェース126を用いて、設定情報管理部123を介して設定情報データ群141を書き換える。
以上説明した処理により、車両制御装置2の機能を実現するための1サイクルの演算処理、すなわちアプリケーション処理が実行される。車両制御装置2では、定期的に図8に示す処理を実行することにより、車両システム1におけるADAS又は自動運転の機能が実現される。
(オブジェクトデータ更新処理のフローチャート)
図9は、データ管理部12のオブジェクトデータ操作実行制御部122によるオブジェクトデータ更新処理を示すフローチャートである。データ管理部12は、データ適合部11またはデータ演算部13の機能部品により前述したオブジェクトデータの更新APIが呼ばれると、図9に示す処理を実行する。
オブジェクトデータ操作実行制御部122は、モジュールmからオブジェクトデータの更新操作要求を取得する(S701)。これは、データ適合部11及びデータ演算部13による更新APIの呼び出しに相当し、オブジェクトデータの更新操作要求は、更新APIの引数として渡されたデータ群に相当する。次に、オブジェクトデータ操作実行制御部122は、S702において、設定情報データ群141におけるモジュールmに該当するデータエントリの格納要否303を参照し、更新操作要求に基づき要求を受けたオブジェクトデータを当該装置のオブジェクトデータ群142に格納するか否かを判断する。オブジェクトデータ操作実行制御部122は、モジュールmの格納要否303のフィールドに「No」が格納されていると判断する場合は(S702:N)、更新操作を実行せずにS704に移る。モジュールmの格納要否303が「Yes」の場合は(S702:Y)、更新操作要求をオブジェクトデータ操作実行部121に渡して、S703に移る。
S703ではオブジェクトデータ操作実行部121は、更新操作要求の指示に従い、記憶部40に格納しているオブジェクトデータ群142に対してデータ操作を実行して、S704に進む。なおデータ操作には前述のように「登録操作」、「上書き操作」、および「削除操作」が含まれるが、いずれもオブジェクトデータ群142の中から、更新操作要求対象のオブジェクトデータに相当するデータエントリを特定して、その次に指定された操作(登録、上書き、削除)を実行する。なお、データエントリの特定は、オブジェクトデータの中に含まれる所定のデータ要素もしくは複数のデータ要素の組合せ、たとえば図3のID201とデータソース202の組合せにより行われる。
S704ではオブジェクトデータ操作実行制御部122は、設定情報データ群141におけるモジュールmに該当するデータエントリの出力要否304を参照し、オブジェクトデータ更新操作要求メッセージとして更新操作要求を外部に出力するか否かを判断する。オブジェクトデータ操作実行制御部122はモジュールmの出力要否304が「No」であると判断する場合は(S704:N)、図9に示す処理を終了する。オブジェクトデータ操作実行制御部122はモジュールmの出力要否304が「Yes」であると判断する場合は(S704:Y)S705に進む。S705ではオブジェクトデータ操作実行制御部122は、設定情報データ群141におけるモジュールmに該当するデータエントリの出力タイミング305を参照し、設定値が「操作実行時」、および「演算完了時」のいずれであるかを判断する。出力タイミング305の設定値が「演算完了時」であると判断する場合は(S705:N)、図9に示す処理を終了する。オブジェクトデータ操作実行制御部122は出力タイミング305の設定値が「操作実行時」であると判断する場合は(S705:Y)、S706に進む。
S706ではオブジェクトデータ操作実行制御部122は、設定情報データ群141におけるモジュールmに該当するデータエントリの検索式306を参照し、検索式306のフィールドに検索式が記載されているか否かを確認する。オブジェクトデータ操作実行制御部122は検索式が記載されていないと判断する場合は(S706:N)、更新操作要求をそのまま転送用更新操作要求として設定し(S708)、オブジェクトデータ更新操作要求メッセージとして当該装置の外部に転送し(S709)、図9に示す処理を終了する。オブジェクトデータ操作実行制御部122は検索式が記載されていると判断する場合は(S706:Y)S707に進み、更新要求の対象のオブジェクトデータに対して記載されている検索式を適用して、転送対象のオブジェクトデータを抽出する。その上でオブジェクトデータ操作実行制御部122は、転送対象のオブジェクトデータに対応する転送用更新操作要求を生成し、オブジェクトデータ更新操作要求メッセージとして当該装置の外部に転送し(S709)、図9に示す処理を終了する。
(完了通知受信処理のフローチャート)
図10は、データ管理部12が演算実行完了通知を受信した際の処理である完了通知受信処理を示すフローチャートである。図10に示す完了通知受信処理は、実行制御部14により、前述したモジュールイベント通知APIが呼ばれると実行される。
オブジェクトデータ操作実行制御部122はまずS801において、実行制御部14からモジュールmの演算実行完了通知を受信する。この受信は、引数の通知種別として「演算実行完了通知」が指定されたモジュールイベント通知APIの呼び出しに相当する。オブジェクトデータ操作実行制御部122はS802において、設定情報データ群141におけるモジュールmに該当するデータエントリのタイミング305を参照し、設定値が「演算完了時」であるか否かを判断する。オブジェクトデータ操作実行制御部122は、設定値が「演算完了後」ではないと判断する場合は(S802:N)図10に示す処理を終了する。オブジェクトデータ操作実行制御部122は、設定値が「演算完了後」であると判断する場合は(S802:Y)S803に進む。
S803ではオブジェクトデータ操作実行制御部122は、設定情報データ群141におけるモジュールmに該当するデータエントリの検索式306を参照し、設定されている検索式に基づき、オブジェクトデータ群142から対象となるオブジェクトデータを取得する。具体的には、オブジェクトデータ操作実行制御部122がその検索式を用いた検索操作要求を生成し、オブジェクトデータ操作実行部121に渡す。そしてオブジェクトデータ操作実行部121が、その検索操作要求に従い記憶部40のオブジェクトデータ群142に対して検索操作を実行し、抽出した結果をオブジェクトデータ操作実行制御部122に返す。
続くS804ではオブジェクトデータ操作実行制御部122は、S803において取得したオブジェクトデータに対応する転送用更新操作要求を生成し、オブジェクトデータ更新操作要求メッセージとして当該装置の外部に転送して図10に示す処理を終了する。
(オブジェクトデータ更新操作要求メッセージ900)
図11は、車両制御装置2が送信するオブジェクトデータ更新操作要求メッセージ900の一例を示す図である。ただし図11では、通信プロトコルに関するヘッダ情報等の図示は割愛している。オブジェクトデータ更新操作要求メッセージ900は、モジュールID901、操作種別902、オブジェクトデータ数903、およびオブジェクトデータ群904を含む。オブジェクトデータ群904は、オブジェクトデータ904−1、オブジェクトデータ904−2、、、およびオブジェクトデータ904−nから構成される。
オブジェクトデータ更新操作要求メッセージ900は、オブジェクトデータ操作インタフェース125の更新用APIの引数に相当する情報である。オブジェクトデータ更新操作要求メッセージ900を受信した車両制御装置2は、受信したオブジェクトデータ更新操作要求メッセージ900を引数としてオブジェクトデータ操作インタフェース125の更新用APIを呼び出すことができる。モジュールID901は該更新操作の呼び出し元の機能部品に相当するモジュールID、すなわち図7に示した更新用API疑似コード511の第一引数を表す。また操作種別902は、更新操作の操作種別、すなわち図7に示した更新用API疑似コード511の第二引数を表している。オブジェクトデータ数903は、オブジェクトデータ群904のエントリ数を表す。オブジェクトデータ群904は、更新操作対象のオブジェクトデータのリストである。すなわち図11に示す例ではオブジェクトデータ数が「n」なのでオブジェクトデータ群904は、オブジェクトデータ904−1、オブジェクトデータ904−2、、、およびオブジェクトデータ904−nから構成される。
以上説明した処理により、車両システム1における一連の演算処理を継続しながら機能部品の配置変更、すなわち動的な配置変更を実現することが可能である。
(動作例)
図12は、車両システム1における動的な配置変更の動作例を説明する図である。図12では、車両システム1が図1の状態で動作中に車両制御装置2bが故障したため、車両制御装置2bで動作していたアプリケーションを車両制御装置2aで立ち上げて、車両システム1の機能維持、すなわちフェールオペレーショナルを実現している様子を表している。以下では、図1に示すように車両制御装置2aと車両制御装置2bとが協調して動作している状態を協調動作状態と呼び、図12に示すように車両制御装置2aが単独で動作している状態を単独動作状態と呼ぶ。
車両システム1の機能を維持するためには、センサ群3のデータ入力に対する車両制御装置2aの演算結果、換言するとアクチュエータ群4へのデータ出力が、図1と同等である必要がある。そのためには図12のデータ適合部11a及びデータ演算部13aの機能部品間の入出力関係が、図1と同等である必要がある。
図12では、図1の状態に対して、車両制御装置2a上で走行制御演算部133とアクチュエータに対する適合部114、115が追加されている点で異なる。そのため、単独動作状態では少なくともこれらの機能部品も車両制御装置2a上で実行する必要がある。また、地図フュージョン演算部132の演算結果は、それまで車両制御装置2bに送信する必要があったが、走行制御演算部133が車両制御装置2aに移動したため、車両制御装置2aの記憶部40aに格納するように変更する必要がある。このように、動的な配置変更を行う際は、車両制御装置で実行する機能部品対象と、各機能部品の演算結果の格納場所の整合性を持たせながら変更する必要がある。
車両制御装置2bの故障時における、車両制御装置2aの動作を説明する。まず、車両制御装置2bの故障は、車両制御装置2aの診断部15aにより、キープアライブの欠落等を通じて検知され、実行制御部14aにイベントとして通知される。その状態において、実行制御部14aは、周期的に実行される図8に示す周期処理のS607において、車両制御装置2bの故障という配置変更イベントが生じていると判断し(S607:Y)、S608に進む。実行制御部14aはS608において、図4の設定変更用データ群143aの該当エントリを参照し、変更先設定情報を特定する。図4の例では、設定情報テーブルBが該当するため、実行制御部14aは、データ管理部12aの設定インタフェース126を用いて、設定情報管理部123を介して設定情報データ群141aを設定情報テーブルBの内容に書き換える。
この設定情報データ群141aの書き換えにより、次の周期で実行制御部14aが図8の処理を実行する際には、設定情報テーブルBの設定情報に基づいて、モジュールの実行及びそのデータの格納先が制御される。故障前の設定情報データ群141aの設定情報と故障後の設定情報データ群141aの設定情報とでは、走行制御演算部133、アクチュエータに対する適合部114、115に対する実行要否302が「Yes」に変更されている点と、地図フュージョン演算部の格納要否303が「Yes」、出力要否304が「No」に変更されている点と、が主に異なる。この設定により、図12に示すような機能部品の実行とデータ入出力関係を実現することができ、車両システム1の機能を図1のときと同等に維持することができる。なお、上述のように、機能部品の入出力インタフェースは、データ管理部12のオブジェクトデータ操作インタフェース125、または通信制御部50が提供するインタフェースであり、いずれも装置に依存しない汎用インタフェースであるため、配置変更に伴うプログラムの修正は発生しない。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)車両制御装置2aは、外部装置である車両制御装置2bと通信可能に接続される。車両制御装置2aは、車両制御装置2bとのデータ送受信を制御する通信制御部50aと、オブジェクトデータを管理するデータ管理部12aと、データ管理部12aまたは通信制御部50aから取得されるオブジェクトデータを用いて所定の演算を行い、所定の演算により得られたオブジェクトデータをデータ管理部12aに出力する1つ以上の機能部品を備えるデータ適合部11aおよびデータ演算部13aと、機能部品ごとにオブジェクトデータの書き込み先に関する情報、すなわち格納要否303および出力要否304のフィールドの値が格納される設定情報データ群141a、およびオブジェクトデータを記憶する記憶部40aとを備える。データ管理部12aは、オブジェクトデータの書込み先を、設定情報データ群141aに基づいて制御する。
このように、本実施形態によれば、機能部品の入出力インタフェースを変えないまま、設定情報データ群141を用いて機能部品の実行とデータの出力先、すなわち格納先を制御できるようなソフトウェア構成にすることにより、アプリケーションの動的な配置変更に対応することが可能である。また、設定情報データ群141を変更することによって、アプリケーションの静的な配置変更に対応することも可能である。すなわち不要なデータの保存や通信を低減することができる。
また、本実施形態によれば、機能部品が演算結果として出力するオブジェクトデータの格納先は、設定情報データ群141に基づいて制御される。設定情報データ群141は、設定情報をオブジェクトデータの出力元の機能部品に関連付けて管理しているため、機能部品の更新操作インタフェースには、該機能部品を識別する情報が含まれていれば良い。そのため、各機能部品は該オブジェクトデータの出力先を意識する必要はなく、例えば、該オブジェクトデータを利用する機能部品が追加されたり、削除されたりしても、出力元の機能部品を修正する必要がない。そのため、静的または動的な機能部品の追加や削除を柔軟に行うことが可能である。
また、本実施形態によれば、演算処理に関わる各機能部品の入出力インタフェースに、汎用的にデータの検索操作及び更新操作等を可能とする共通インタフェースを採用している。そのため、演算処理に関わるすべての機能部品間のデータ受渡しを、該共通インタフェースの呼び出し実行の中で統一的に制御することが可能である。これにより、上述のように、設定情報によりデータの格納先を容易に制御することが可能となる。もしも、このような共通インタフェースを使用しない場合は、データ管理部12は各機能部品に対して、個別にインタフェースを生成することになるため、設定情報等により統一的にデータの格納先等を制御するのは困難である。
(2)設定情報データ群141aは、機能部品ごとにオブジェクトデータの外部装置への出力要否に関する外部出力要否情報、すなわち出力要否304のフィールドの値を含む。データ管理部12aは、外部出力要否情報が出力要、すなわち「Yes」が格納されている場合に、通信制御部50aを介して車両制御装置2bにオブジェクトデータを出力する。
そのため、機能部品の配置変更時に、データの格納先の設定を動的に変更するため、従来技術のように予めすべてのデータを複数の装置間で共有しておく必要がない。そのため、使用されない不要なデータの転送や保存を削減することができ、ネットワーク帯域や記憶容量の消費を低減することが可能となる。
(3)車両制御装置2aは、機能部品の実行を制御する演算実行制御部14aを備える。設定情報データ群141aは、機能部品の実行要否に関する実行要否情報、すなわち実行要否302のフィールドの値を含む。演算実行制御部14aは、実行要否情報が実行要の場合に、機能部品の所定の演算を実行する。そのため車両制御装置2aは、機能部品の実行を容易に制御することができる。
(4)記憶部40aには、複数のイベントのそれぞれに対応する複数の設定情報、たとえば図5に示す設定情報テーブルAおよび設定情報テーブルBが格納される。データ管理部12aおよび演算実行制御部14aは、複数のイベントのいずれかのイベントが検出されると、検出されたイベントに対応する設定情報に基づき動作する。そのため車両制御装置2aは、検出されたイベントに対応する設定に変更し、動作を変更することができる。
(5)記憶部40aは、イベントとイベントが検出された際に適用する設定情報とが関連付けられた設定変更用データ群143aを記憶する。データ管理部12aおよび演算実行制御部14aは、複数のイベントのいずれかのイベントが検出されると、設定変更用データ群143aを参照して適用する設定情報データ群141aを特定し、特定した設定情報データ群141aに基づき動作する。そのため車両制御装置2aは、予め設定された設定変更用データ群143aを参照して動作を変更することができる。
(6)イベントには、車両制御装置2bで動作している機能部品である走行制御演算部133の故障である「車両制御用装置2b故障」が含まれる。「車両制御装置2b故障」に対応する設定情報テーブルBには、走行制御演算部133が実行要であることを含む。そのため車両制御装置2aは、故障が検出された他の装置において実行されていた機能部品を自ら実行することで車両システム1の機能を維持することができる。
(7)設定情報データ群141aには、データ管理部12aが管理するオブジェクトデータの中から車両制御装置2bに出力する対象を読出すための条件式を検索式306のフィールドに機能部品ごとに含めることができる。実行制御部14aは、所定の演算を実行した機能部品について設定情報データ群141aにおいて検索式306が含まれる場合は、データ管理部12aが管理するオブジェクトデータの中から検索式306に適合するオブジェクトデータを読出し(図10のS804)、車両制御装置2bに出力する。
本実施形態によれば、演算処理に関わる各機能部品は、データ管理部12が管理しているオブジェクトデータ群142から検索操作で必要なデータを抽出して取得する構成になっている。そのため、該機能部品の演算に必要なデータエントリがオブジェクトデータ群142に含まれていれば、他の不要なデータエントリが含まれているかどうかに関わらず、検索操作により同じように必要なデータエントリを抽出することが可能である。
例えば、図12では、走行制御演算部133は、地図フュージョン演算部132の実行後のすべてのオブジェクトデータが含まれているオブジェクトデータ群142aに対して、走行制御演算部133はオブジェクトデータ操作インタフェース125を介して検索操作を実行することにより、必要なデータエントリを抽出して取得する。それに対し、配置変更前の図1の状態では、走行制御演算部133が検索操作をオブジェクトデータ群142bに対して実行するが、オブジェクトデータ群142bには、図2における地図フュージョン演算部132のデータエントリの検索式306の条件に合致するオブジェクトデータしか格納されていない。ここで指定された検索式306は、走行制御演算部133が必要なオブジェクトデータを抽出して、転送することが目的なので、走行制御演算部133が実行する検索操作で指定する検索式と同等である。そのため、走行制御演算部133の演算に必要なデータエントリのみがオブジェクトデータ群142bに含まれている状態になり、走行制御演算部133が検索操作により取得可能なデータは図12のときと同等になる。もしも、機能部品が検索操作を用いない構造の場合は、図1と図12で異なる量のオブジェクトデータ群を扱うことになるため、プログラムの修正なく同じ演算結果を得るのは困難である。つまり、機能部品が検索操作によりデータを取得する構成になっていることにより、別装置へのデータの転送する際に不要なデータを除いて転送しても、プログラム修正なく配置変更することができるようになっていると言える。
(8)設定情報データ群141aには、出力するオブジェクトデータの中から車両制御装置2bに出力する対象を選定するための条件式を検索式306のフィールドに含む。データ管理部12aは、出力するオブジェクトデータの中から検索式306に適合する対象データを抽出し(図9のS707)、車両制御装置2bに出力する(S709)。
本実施形態によれば、図2で示したように、他の装置にデータを転送する必要がある場合に、検索式を指定することにより、転送先に必要なデータエントリのみを抽出して転送することができる。そのため、従来技術ではデータ種別単位で転送設定するため、不要なデータエントリも含めて転送する必要があったが、本実施形態では、検索式により必要なデータエントリのみに限定して転送可能なため、不要なデータ転送によるネットワーク帯域や記憶容量の消費を低減することが可能となる。
(9)設定情報データ群141aは、機能部品ごとに出力するオブジェクトデータの記憶部40aへの書込み要否に関する書込み要否302のフィールドの値を含む。データ管理部12aは、書込み要否情報が要の場合に、出力するオブジェクトデータの記憶部40aへの書込みを実行し、書込み要否情報が否の場合に、出力するオブジェクトデータの記憶部40aへの書込みを実行しない。そのため車両制御装置2aは、不要なデータの保存を回避することができる。
(10)データ管理部12bは、車両制御装置2aから出力された出力オブジェクトデータを通信制御部50bを介して取得する。オブジェクトデータを出力した機能部品の設定情報における書込み要否情報に基づいて、出力オブジェクトデータの記憶部40bへの書込みの実行を制御する。たとえば設定情報データ群141bにおいて地図フュージョン演算部132の格納要否303のフィールドの値は「Yes」なので、通信制御部50bを介して取得する地図フュージョン演算部132が出力するオブジェクトデータを記憶部40bに格納する。そのため車両制御装置2aは、適切にデータを保存することができる。
(変形例1)
診断部15は、通信制御部50を介して外部から設定変更要求を受信するとこれを実行制御部14に出力してもよい。さらに外部から受信する設定変更要求は、付加的な情報、たとえば変更する設定を特定する情報が追加されてもよい。
図13は、変形例1における設定変更用データ群143pの一例を示す図である。設定変更用データ群143pによれば、外部から受信する設定変更要求に「変更指令P」、「変更指令Q」、および「変更指令R」が含まれ、それぞれに対応する設定情報およびモジュールリストが規定される。
本変形例によれば、上述した第1の実施の形態における作用効果に加えて次の作用効果が得られる。
(11)イベントには、車両制御装置2bからの設定変更要求の受信が含まれる。そのため車両制御装置2は、外部からの要求に応じて動作を変更することができる。具体的には車両制御装置2は、外部からの設定変更要求に応じて設定変更用データ群143pから適切な設定情報テーブルを読み込み、以降に実行すべきモジュールリストを決定する。
―第2の実施の形態―
第1の実施の形態では、車両制御装置2aと車両制御装置2bとの間でアプリケーションの配置変更を行ってフェールオペレーショナルを実現する車両システム1を示した。第2の実施形態では、車両制御装置2の開発用システムを説明する。
(構成)
図14および図15は、本発明の第2の実施の形態に係る車両制御装置を含む開発用システム1aの構成を示す機能ブロック図である。操作用装置6の構成は次の図15に示す。開発用システム1aは、車両に搭載され、第1の実施の形態で示した車両制御装置2、センサ群3、アクチュエータ群4、地図情報管理装置5に加え、操作用装置6を含む。車両制御装置2の構成は第1の実施の形態と同様なので説明を省略する。
図15に示す操作用装置6は、例えば、パーソナルコンピュータのような汎用的な処理装置であり、車両制御装置2の開発者により、車両制御装置2の状態監視や制御に利用される。操作用装置6は、通信制御部50c、ログ入出力制御部60、および設定変更操作部70を備える。通信制御部50cは、車両制御装置2の通信制御部50aに相当する。また、データ適合部11c、データ管理部12c、データ演算部13c、実行制御部14c、設定情報データ群141c、およびオブジェクトデータ群142cは、車両制御装置2のデータ適合部11a、データ管理部12a、データ演算部13a、実行制御部14a、設定情報データ群141a、およびオブジェクトデータ群142aに相当する。
ログ入出力制御部60は、車両制御装置2からネットワーク上に出力されたオブジェクトデータ更新操作要求メッセージをログデータ群161として保存する。ログ入出力制御部60はまた、ログデータ群161から取得したオブジェクトデータ更新操作要求メッセージを所定のタイミングでネットワークに出力する。設定変更操作部70は、車両制御装置2の実行制御部14aを介して、車両制御装置2aの設定情報データ群141aを変更する操作インタフェースを提供する。
図16は、車両制御装置2の設定情報データ群141aの一例を示す図である。第1の実施の形態における設定情報と比較して異なる点は、いくつかの機能部品において、出力要否304のフィールドの値が「Yes」、出力タイミング305のフィールドの値が「操作実行時」となっている点である。これらの機能部品では、格納要否303のフィールドの値も「Yes」となっているため、演算結果を車両制御装置2のオブジェクトデータ群142aに格納しつつ、外部にも出力することを意味する。これは、各機能部品の演算結果のログ出力に該当し、出力されるデータ(図11のオブジェクトデータ更新操作要求メッセージ900に該当)は、操作用装置6のログ入出力制御部60により取得され、ログデータ群161に格納される。このとき、各ログデータは出力された時刻情報と関連付けて管理される。
なお、図16の設定情報では、オブジェクトデータ群142aに格納されるものをすべて出力するようになっていたが、出力要否304の設定を調整することにより、特定の機能部品の演算結果のみを出力するようにすることが可能である。
(特定アプリケーションのデバッグ例)
図17〜図19を用いて、取得したログデータを再生して特定のアプリケーションのデバッグを行う例について説明する。
図17および図18は、地図フュージョン演算部132のデバッグを行うためのシステムの構成の一例を示す機能ブロック図である。ここでは、図14のシステム構成において車両制御装置2の動作確認中に、地図フュージョン演算部132の不具合が発見された想定である。その不具合が発生した前後の各機能部品の演算結果のログデータは、操作用装置6のログデータ群161に格納されている。図17および図18に示すシステム構成は、図14および図15に示すシステム構成と同一であるが、以下に説明するデバッグで動作させない機能部品は破線で示している。また図17および図18では、デバッグにおいて主なデータが流通する経路を太い矢印で示している。
図18では、ログ入出力制御部60が、当該ログデータに関連付けて保存されている時刻情報に基づいて、車両制御装置2にログデータを出力する。上述のようにここでのログデータは、オブジェクトデータ更新操作要求メッセージに相当する。そのため、車両制御装置2のオブジェクトデータ操作実行制御部122の転送データと同じ扱いになり、オブジェクトデータ操作インタフェース125を介して、オブジェクトデータ操作実行制御部122に渡され、図9に示したオブジェクトデータ更新処理が実行される。
図19は、図17における設定情報データ群141aの一例を示す図である。図17に示す構成は地図フュージョン演算部132のデバッグを目的とするため、図19に示すように地図フュージョン演算部132を除いた機能部品は実行要否302のフィールドに「No」が設定される。地図フュージョン演算部132は、センサフュージョン演算部131の出力結果と、地図情報管理装置5から提供される地図情報と、を演算に用いるため、それらが入力データとして必要となる。そのため、地図装置適合部113とセンサフュージョン演算部131の格納要否303のフィールドの値が「Yes」に設定される。
以上の設定情報により、ログ入出力制御部60から再生出力されるセンサフュージョン演算部131と地図装置適合部113のオブジェクトデータ更新操作がオブジェクトデータ群142aに反映されるため、地図フュージョン演算部132は、不具合が発生したのと同等の入力データに基づいて演算処理を行うため、高い確率で不具合を再現させることができるようになる。これにより、問題解析が容易になり、アプリケーションのデバッグを効率化することが可能となる。
本実施形態によれば、機能部品の演算結果出力のログ出力や、ログ再生による所定のアプリケーションをデバッグするためにシステム環境構築を、操作用装置から設定情報を適切に変更することにより、プログラムを修正することなく実現することができる。
なお、以上で説明した実施形態は一例であり、本発明はこれに限られない。すなわち、様々な応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
例えば、上記実施形態では、車両制御装置2において、各処理は、同一の処理部及び記憶部で実行される想定で記載しているが、複数の異なる処理部及び記憶部で実行されてもよい。その場合は、例えば、同様の構成を持つ処理ソフトウェアがそれぞれの記憶部に搭載され、それぞれの処理部で分担して当該処理を実行する形になる。
また、車両制御装置2の各処理を、プロセッサとRAMを用いて、所定の動作プログラムを実行することで実現しているが、必要に応じて独自のハードウェアで実現することも可能である。また、上記の実施形態では、車両制御装置、センサ群、地図情報管理装置、アクチュエータ群を個別の装置として記載しているが、必要に応じて任意のいずれか2つ以上を組合せて実現することも可能である。
また、図面には、実施形態を説明するために必要と考えられる制御線及び情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
1:車両システム、2:車両制御装置、3:センサ群、3a:センサA,3b:センサB、4:アクチュエータ群、4a:アクチュエータA、4b:アクチュエータB、5:地図情報管理装置、10:処理部、11:データ適合部、12:データ管理部、13:データ演算部、14:実行制御部、15:診断部、40:記憶部、50:通信制御部、111:センサA適合部、112:センサB適合部、113:地図装置適合部、114:アクチュエータA適合部、アクチュエータB適合部、121:オブジェクトデータ操作実行部、122:オブジェクトデータ操作実行制御部、123:設定情報管理部、125:オブジェクトデータ操作インタフェース、126:設定インタフェース、131:センサフュージョン演算部、132:地図フュージョン演算部、133:走行制御演算部

Claims (2)

  1. 外部装置と通信可能に接続された車両制御装置であって、
    前記外部装置とのデータ送受信を制御する通信制御部と、
    オブジェクトデータを管理するデータ管理部と、
    前記データ管理部または前記通信制御部から取得されるオブジェクトデータを用いて所定の演算を行い、前記所定の演算により得られたオブジェクトデータである出力オブジェクトデータを前記データ管理部に出力する1つ以上の機能部品と、
    前記機能部品ごとに前記出力オブジェクトデータの書き込み先に関する情報が格納される設定情報、およびオブジェクトデータを記憶する記憶部とを備え、
    前記データ管理部は、前記出力オブジェクトデータの書込み先を、前記設定情報に基づいて制御し、
    前記設定情報は、前記機能部品ごとに前記出力オブジェクトデータの前記外部装置への出力要否に関する外部出力要否情報を含み、
    前記データ管理部は、前記外部出力要否情報が出力要の場合に、前記通信制御部を介して前記外部装置に前記出力オブジェクトデータを出力し、
    前記機能部品の実行を制御する演算実行制御部をさらに備え、
    前記設定情報は、前記機能部品の実行要否に関する実行要否情報をさらに含み、
    前記演算実行制御部は、前記実行要否情報が実行要の場合に、前記機能部品の前記所定の演算を実行し、
    前記設定情報には、前記データ管理部が管理するオブジェクトデータの中から前記外部装置に出力する対象を読出すための条件式を前記機能部品ごとに含めることができ、
    前記演算実行制御部は、前記所定の演算を実行した前記機能部品について前記設定情報において前記条件式が含まれる場合は、前記データ管理部が管理するオブジェクトデータの中から前記条件式に適合するオブジェクトデータを読出し、前記外部装置に出力する車両制御装置。
  2. 外部装置と通信可能に接続された車両制御装置であって、
    前記外部装置とのデータ送受信を制御する通信制御部と、
    オブジェクトデータを管理するデータ管理部と、
    前記データ管理部または前記通信制御部から取得されるオブジェクトデータを用いて所定の演算を行い、前記所定の演算により得られたオブジェクトデータである出力オブジェクトデータを前記データ管理部に出力する1つ以上の機能部品と、
    前記機能部品ごとに前記出力オブジェクトデータの書き込み先に関する情報が格納される設定情報、およびオブジェクトデータを記憶する記憶部とを備え、
    前記データ管理部は、前記出力オブジェクトデータの書込み先を、前記設定情報に基づいて制御し、
    前記設定情報は、前記機能部品ごとに前記出力オブジェクトデータの前記外部装置への出力要否に関する外部出力要否情報を含み、
    前記データ管理部は、前記外部出力要否情報が出力要の場合に、前記通信制御部を介して前記外部装置に前記出力オブジェクトデータを出力し、
    前記設定情報には、前記出力オブジェクトデータの中から前記外部装置に出力する対象を選定するための条件式を含み、
    前記データ管理部は、前記出力オブジェクトデータの中から前記条件式に適合する対象データを抽出し、前記外部装置に出力する車両制御装置
JP2017143738A 2017-07-25 2017-07-25 車両制御装置 Active JP6853746B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017143738A JP6853746B2 (ja) 2017-07-25 2017-07-25 車両制御装置
US16/629,661 US20200150648A1 (en) 2017-07-25 2018-06-14 Vehicle control apparatus
PCT/JP2018/022682 WO2019021668A1 (ja) 2017-07-25 2018-06-14 車両制御装置
DE112018003291.4T DE112018003291T5 (de) 2017-07-25 2018-06-14 Fahrzeugsteuergerät

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017143738A JP6853746B2 (ja) 2017-07-25 2017-07-25 車両制御装置

Publications (2)

Publication Number Publication Date
JP2019028506A JP2019028506A (ja) 2019-02-21
JP6853746B2 true JP6853746B2 (ja) 2021-03-31

Family

ID=65039628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017143738A Active JP6853746B2 (ja) 2017-07-25 2017-07-25 車両制御装置

Country Status (4)

Country Link
US (1) US20200150648A1 (ja)
JP (1) JP6853746B2 (ja)
DE (1) DE112018003291T5 (ja)
WO (1) WO2019021668A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6642556B2 (ja) * 2017-11-22 2020-02-05 マツダ株式会社 車両の物標検出装置
CN111559327B (zh) 2019-02-14 2022-05-24 华为技术有限公司 一种数据处理方法及对应的装置
JP6779354B1 (ja) 2019-10-30 2020-11-04 三菱電機株式会社 制御通信システム
JP7537382B2 (ja) 2021-06-30 2024-08-21 株式会社デンソー 攻撃分析装置、攻撃分析方法、及び攻撃分析プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3383462B2 (ja) * 1995-03-30 2003-03-04 マツダ株式会社 多重伝送システム
JP2009298235A (ja) * 2008-06-11 2009-12-24 Autonetworks Technologies Ltd 通信装置、通信システム、通信方法、及びコンピュータプログラム
JP2013135388A (ja) * 2011-12-27 2013-07-08 Sony Corp 通信システム、サーバ装置および通信方法
US9847032B2 (en) * 2014-07-15 2017-12-19 Richard Postrel System and method for automated traffic management of intelligent unmanned aerial vehicles
US9182764B1 (en) * 2014-08-04 2015-11-10 Cummins, Inc. Apparatus and method for grouping vehicles for cooperative driving
US9558664B1 (en) * 2015-08-13 2017-01-31 Here Global B.V. Method and apparatus for providing parking availability detection based on vehicle trajectory information
US10401852B2 (en) * 2015-11-04 2019-09-03 Zoox, Inc. Teleoperation system and method for trajectory modification of autonomous vehicles
US10308246B1 (en) * 2016-01-22 2019-06-04 State Farm Mutual Automobile Insurance Company Autonomous vehicle signal control
US9701307B1 (en) * 2016-04-11 2017-07-11 David E. Newman Systems and methods for hazard mitigation
US10274949B2 (en) * 2016-04-24 2019-04-30 Flytrex Aviation Ltd. Apparatus and method for semi-automated vehicle control
US10176715B2 (en) * 2016-07-27 2019-01-08 Telenav, Inc. Navigation system with dynamic mapping mechanism and method of operation thereof
US20180224850A1 (en) * 2017-02-08 2018-08-09 Uber Technologies, Inc. Autonomous vehicle control system implementing teleassistance
US10332320B2 (en) * 2017-04-17 2019-06-25 Intel Corporation Autonomous vehicle advanced sensing and response

Also Published As

Publication number Publication date
WO2019021668A1 (ja) 2019-01-31
US20200150648A1 (en) 2020-05-14
JP2019028506A (ja) 2019-02-21
DE112018003291T5 (de) 2020-04-09

Similar Documents

Publication Publication Date Title
CN114537299B (zh) 车载处理装置
JP6853746B2 (ja) 車両制御装置
CN109204324B (zh) 用于操作自动驾驶车辆的集中调度系统
US11162798B2 (en) Map updates based on data captured by an autonomous vehicle
US11346682B2 (en) Augmented 3D map
JP6838776B2 (ja) 車載処理装置
US10732634B2 (en) Centralized scheduling system using event loop for operating autonomous driving vehicles
US10635108B2 (en) Centralized scheduling system using global store for operating autonomous driving vehicles
US10999719B1 (en) Peer-to-peer autonomous vehicle communication
US8386743B2 (en) Data update system and computer program
US20220234621A1 (en) Augmented 3d map
WO2021049231A1 (ja) 占有格子地図管理装置
JP2021071824A (ja) 制御通信システム
US12007786B2 (en) System and method for real-time lane validation
US20240289252A1 (en) Deferred creation of remote debugging sessions
US11755312B2 (en) Bootloader update
CN114553972B (zh) 应用于自动驾驶的数据传输装置、方法、车载终端和介质
US20240142263A1 (en) Orchestration of action-input representations for decision making in edge environments
US20200409355A1 (en) Programmatic application of router flags for vehicle limitations
KR101767568B1 (ko) 개방형 공간 정보 관리 시스템
Ren et al. Autonomous Driving Software Architecture
JP2024054833A (ja) ソースホストからターゲットホストへのライブマイグレーションを実行するシステム及び方法
CN118394327A (zh) 智能驾驶端侧模型部署方法和装置
KR20230057888A (ko) 자율주행 이동 오브젝트로부터 획득된 데이터를 가공하고 관리하기 위한 방법 및 이를 이용한 서버

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210125

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: 20210302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210312

R150 Certificate of patent or registration of utility model

Ref document number: 6853746

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250