WO2018066305A1 - 車載処理装置 - Google Patents

車載処理装置 Download PDF

Info

Publication number
WO2018066305A1
WO2018066305A1 PCT/JP2017/032518 JP2017032518W WO2018066305A1 WO 2018066305 A1 WO2018066305 A1 WO 2018066305A1 JP 2017032518 W JP2017032518 W JP 2017032518W WO 2018066305 A1 WO2018066305 A1 WO 2018066305A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
object data
processing device
management layer
vehicle
Prior art date
Application number
PCT/JP2017/032518
Other languages
English (en)
French (fr)
Inventor
勇樹 堀田
櫻井 康平
工藤 真
吉村 健太郎
Original Assignee
日立オートモティブシステムズ株式会社
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 日立オートモティブシステムズ株式会社 filed Critical 日立オートモティブシステムズ株式会社
Priority to CN201780060928.0A priority Critical patent/CN109789842B/zh
Priority to US16/338,136 priority patent/US11487748B2/en
Priority to CN202210271189.2A priority patent/CN114537299B/zh
Priority to EP17858144.3A priority patent/EP3521108B1/en
Publication of WO2018066305A1 publication Critical patent/WO2018066305A1/ja

Links

Images

Classifications

    • 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
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • 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
    • 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
    • B60R16/023Electric 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 for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D45/00Electrical control not provided for in groups F02D41/00 - F02D43/00
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle

Definitions

  • the present invention relates to an in-vehicle processing apparatus.
  • an ECU Electronic Control Unit mounted on a vehicle abstracts (models) the hardware configuration of the ECU and sensors and actuators connected to the ECU, and passes information between them.
  • a method of constructing the software with software has been proposed. According to this method, even if the hardware configuration inside and outside the ECU is changed, the reusability of the upper application software can be improved (for example, see Patent Document 1).
  • control information is calculated based on an output value of a sensor (internal sensor) that detects a predetermined state quantity relating to a vehicle or a component mounted on the vehicle, and the control information is sent to a target actuator or another ECU.
  • the output configuration was customary.
  • an interface since the detection target of the sensor and the control target of the actuator are clearly determined, it is easy to construct an interface corresponding to these by software.
  • an interface may be constructed by modeling the vehicle speed that is a detection target of the vehicle speed sensor, and for an injector, an interface may be constructed by modeling the fuel injection amount that is the control target of the injector. Good.
  • ADAS Advanced Driver Assistance Systems
  • vehicle equipped with external sensors for detecting the state of the surroundings of the vehicle in addition to the conventional internal sensors are increasing.
  • the detection targets of such external sensors are diverse, such as obstacles such as other vehicles and pedestrians, road shapes such as white lines and roadsides, and traffic rules such as signs and signals.
  • the type and amount of information to be output varies greatly. For this reason, with ECU software that calculates control information based on output data from an external sensor, it is substantially difficult to construct an interface by modeling the sensor as in a conventional ECU. As a result, there is a problem that it is difficult to reuse application software.
  • ECU application software that calculates vehicle control information through complicated processing from the output results of a large number of external sensors has a large number of functions such as sensor fusion and behavior prediction of moving objects. It consists of a collection of functions. Since the functional configuration of such application software often differs depending on the control content and vehicle type realized in ADAS and automatic driving, the reusability of the application software is also possible when the functional configuration inside the software is changed. It is becoming important. However, the conventional ECU does not consider reusability of application software in such a case.
  • the main object of the present invention is to improve the reusability of application software in an in-vehicle processing device.
  • An in-vehicle processing device is mounted on a vehicle, and executes a signal input unit that generates input data based on an input signal from the outside, and an arithmetic process that calculates output data based on the input data.
  • the software generates a data management layer for managing object data, which is a set of data corresponding to a predetermined target element, on the storage unit, the object data based on the input data, and generates the generated object data.
  • a data matching layer for output to the data management layer, and the object from the data management layer. Acquires data, having a data operation layer for calculating the output data based on the object data acquired.
  • FIG. 1 It is a figure which shows an example of the processing flow of the application software in the vehicle-mounted processing apparatus which concerns on one Embodiment of this invention. It is a figure which shows an example of modeling of object data. It is a figure which shows an example of the structure of the object data corresponding to the partial update of recognition processing. It is a figure which shows an example of a structure of the application software after a change in the vehicle-mounted processing apparatus which concerns on one Embodiment of this invention. It is a figure which shows an example of the setting information stored in the setting information data group after a change. It is a figure which shows an example of the structure of the object data at the time of adding a system change.
  • FIG. 1 is a functional block diagram showing an example of a configuration of a vehicle system 1 including an in-vehicle processing device according to an embodiment of the present invention.
  • a vehicle system 1 according to the present embodiment is mounted on a vehicle 2 and is a system for performing appropriate driving support or traveling control after recognizing the state of an obstacle such as a traveling road or a surrounding vehicle around the vehicle 2. It is.
  • the vehicle system 1 includes an in-vehicle processing device 10, an external sensor group 20, an internal sensor group 30, a map information management device 40, an actuator group 50, an in-vehicle HMI device 60, and the like.
  • the vehicle system 1 includes an in-vehicle processing device 10, an external sensor group 20, an internal sensor group 30, a map information management device 40, an actuator group 50, an in-vehicle HMI device 60, and the like.
  • the in-vehicle processing device 10 is, for example, an ECU or the like mounted on the vehicle 2, and includes a processing unit 100, a signal input / output unit 110, and a storage unit 120.
  • the vehicle system 1 is actually equipped with various types of in-vehicle processing devices 10 depending on the contents of the processing to be realized and the devices to be controlled. In FIG. One is shown as a representative example.
  • the processing unit 100 includes, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an FPGA (Field-Programmable Gate Array), and the like.
  • the processing unit 100 performs processing for realizing the functions of the in-vehicle processing device 10 by executing the processing software 130 stored in the storage unit 120.
  • the signal input / output unit 110 includes a signal input unit 111 and a signal output unit 112.
  • the signal input unit 111 converts the input signal from the outside of the in-vehicle processing device 10 into data, generates input data based on the input signal, and outputs the input data to the processing unit 100. Based on this input data, the processing unit 100 calculates output data.
  • the signal output unit 112 generates an output signal based on the output data passed from the processing unit 100 and outputs the generated output signal to the outside of the in-vehicle processing apparatus 10.
  • the signal input / output unit 110 includes, for example, a circuit for A / D converting an analog signal, a circuit for inputting a pulse signal, a network card compliant with a communication standard such as Ethernet (registered trademark) or CAN (Controller Area Network), and the like. It transmits / receives data based on various protocols with other devices mounted on the vehicle 2.
  • the storage unit 120 includes, for example, a storage device such as a RAM (Random Access Memory), an HDD (Hard Disk Drive), a flash memory, and a ROM (Read Only Memory).
  • the storage unit 120 stores processing software 130 that is a program for realizing the functions of the in-vehicle processing device 10, a data group necessary for the processing, and the like. Further, it is also used as a main memory when the processing unit 100 executes the processing software 130.
  • the outside world sensor group 20 is a set of outside world sensors for detecting the state around the vehicle 2 and corresponds to, for example, a camera device, a millimeter wave radar, a LIDAR, a sonar, and the like.
  • the outside sensor group 20 is an environment such as obstacles (other vehicles, bicycles, pedestrians, fallen objects, etc.), road shapes (white lines, roadsides, etc.), traffic rules (road signs, signals, etc.) within a predetermined range from the vehicle 2.
  • Information regarding the element is detected, and the detected information is output to the in-vehicle processing apparatus 10 via an in-vehicle network such as CAN.
  • the inner world sensor group 30 is a set of inner world sensors that detect various state quantities (for example, travel speed, steering angle, accelerator operation amount, brake operation amount, etc.) relating to the state of the vehicle 2.
  • the inner world sensor group 30 periodically outputs the detected state quantity to the in-vehicle processing apparatus 10 via an in-vehicle network such as CAN.
  • the vehicle system 1 is configured such that each device including the in-vehicle processing device 10 connected to the in-vehicle network can acquire a necessary state quantity from the inner sensor group 30 through the in-vehicle network. ing.
  • the map information management device 40 is a device that manages and provides digital map information around the vehicle 2, and corresponds to, for example, a navigation device.
  • the map information management device 40 includes, for example, digital road map data representing an entire predetermined region or an area around the vehicle 2, and the position information of the vehicle 2 determined through a global navigation satellite system (GNSS) receiver or the like.
  • GNSS global navigation satellite system
  • Actuator group 50 is a device group that controls control elements such as steering, brakes, and accelerators that determine the movement of vehicle 2.
  • the actuator group 50 is configured to control the movement of the vehicle 2 based on operation information such as a steering wheel, a brake pedal, and an accelerator pedal by the driver and control information output from the in-vehicle processing device 10.
  • the in-vehicle HMI device 60 is, for example, a speaker or a display device mounted on the vehicle 2, and notifies the driver of information related to the surrounding environment and driving support output from the in-vehicle processing device 10 through voice or a screen. It is configured.
  • the in-vehicle processing device 10 includes an external sensor group 20, an internal sensor group 30, a map information management device 40, an actuator group 50, and an in-vehicle HMI device 60 according to the contents of the processing. Information is exchanged with any hardware.
  • the types of external hardware to which each of the plurality of in-vehicle processing devices 10 that are actually mounted in the vehicle system 1 passes information differ depending on the type of the in-vehicle processing device 10.
  • FIG. 2 is a diagram showing an example of the configuration of the processing software 130 in the in-vehicle processing apparatus 10 according to an embodiment of the present invention.
  • the processing software 130 includes application software 131 and basic software 132.
  • the application software 131 is software that causes the processing unit 100 to execute processing and calculations for realizing the functions of the in-vehicle processing device 10.
  • the configuration of the application software 131 differs depending on the type of the in-vehicle processing device 10 depending on the content of the processing realized by the in-vehicle processing device 10 and the configuration of the external hardware in which the in-vehicle processing device 10 passes information. Yes. A specific example of the configuration of the application software 131 will be described later with reference to FIG.
  • the basic software 132 is software that causes the processing unit 100 to execute processing for realizing basic functions necessary for the operation of the in-vehicle processing device 10.
  • the basic functions of the basic software 132 are common to all the in-vehicle processing devices 10 installed in the vehicle system 1 regardless of the configuration of the application software 131 and the configuration of external hardware that exchanges information.
  • the basic software 132 includes, for example, a basic input / output system (BIOS) 134, an operating system (OS) 135, a device driver group 136, and a protocol stack 137.
  • BIOS basic input / output system
  • OS operating system
  • the processing unit 100 can perform execution control of the application software 131 and data input / output with the signal input / output unit 110 using these software constituting the basic software 132.
  • the BIOS 134 is software for causing the processing unit 100 to execute processing necessary when the in-vehicle processing device 10 is activated.
  • the processing unit 100 uses the BIOS 134 to perform, for example, reading of the OS 135 at startup, basic input / output control for the storage unit 120, and the like.
  • the OS 135 is software responsible for processing necessary for execution control of the application software 131 in the processing unit 100.
  • the processing unit 100 uses the OS 135 to control an execution schedule for each execution unit (thread, process, task, etc.) of the application software 131, for example.
  • the device driver group 136 is software for the processing unit 100 to input / output data to / from the signal input / output unit 110.
  • the device driver group 136 provides an interface for the application software 131 to abstractly handle external hardware that the in-vehicle processing device 10 exchanges information with.
  • the protocol stack 137 is software for realizing necessary communication protocol processing between the application software 131 and the device driver group 136.
  • the protocol stack 137 is responsible for processing a communication protocol that operates in an upper layer with respect to a lower layer communication protocol processed by the signal input / output unit 110.
  • an interface is provided for the application software 131 to abstractly handle external hardware for the vehicle-mounted processing device 10 to exchange information. Examples of communication protocols handled by the protocol stack 137 include IP (Internet Protocol), TCP (Transmission Control Protocol), and the like.
  • the application software 131 uses a general-purpose interface provided by the device driver group 136 and the protocol stack 137, so that the signal input / output unit is unaware of the specific hardware configuration and input / output signals of the external hardware. Data can be input / output to / from 110.
  • a general-purpose interface is a socket interface.
  • the input data 142 read from the signal input / output unit 110 is passed to the application software 131 via the corresponding device driver group 136 and the protocol stack 137.
  • the output data 143 passed from the application software 131 is similarly written to the signal input / output unit 110 via the protocol stack 137 and the device driver group 136.
  • processing software 130 By configuring the processing software 130 as shown in FIG. 2, even if the hardware configuration of the in-vehicle processing apparatus 10 is changed, only a part of the basic software 132 (BIOS 134 and device driver group 136) needs to be changed. Application software 131 can be diverted. Further, even if the configuration of the application software 131 in the in-vehicle processing device 10 or the configuration of the external hardware connected to the in-vehicle processing device 10 is changed, it is not necessary to change the basic software 132.
  • FIG. 3 is a diagram illustrating an example of the configuration of the application software 131 in the in-vehicle processing device 10 according to an embodiment of the present invention.
  • the application software 131 is composed of three layers: a data matching layer 200, a data management layer 230, and a data operation layer 240.
  • the data matching layer 200 is a layer for converting the data format between the data format handled by the basic software 132 and the data format handled by the data management layer 230.
  • the data handled in the interface provided by the device driver group 136 and the protocol stack 137 of the basic software 132 is usually the data itself that the in-vehicle processing device 10 exchanges with external hardware that is a communication partner. is there. That is, the data formats of the input data 142 and the output data 143 of the application software 131 are the external world sensor group 20, the internal world sensor group 30, the map information management apparatus 40 in FIG. It depends on the specifications of the actuator group 50, the in-vehicle HMI device 60, and the like.
  • the data matching layer 200 is composed of a plurality of software components respectively corresponding to these external hardware.
  • the data matching layer 200 includes a sensor A data matching unit 201 and a sensor B data matching unit 202 corresponding to the external sensor group 20 or the inner sensor group 30, and a map corresponding to the map information management device 40.
  • Each software component is composed.
  • Each of these software components converts the data format corresponding to the data format between the corresponding external hardware and the data management layer 230.
  • the data management layer 230 manages data using an abstract data format called object data, as will be described later. Therefore, each software component of the data matching layer 200 generates object data based on the input data 142 and outputs it to the data management layer 230, or generates output data 143 based on the object data from the data management layer 230. .
  • the map information management device data adaptation unit 211 requests the provision of map information when acquiring map information as input data from the map information management device 40 as a hardware-specific communication protocol process as described above. Is transmitted to the map information management device 40.
  • the application software 131 configures the data matching layer 200 by making individual software components corresponding to external hardware independent of each other. Therefore, even if external hardware is changed or added in the in-vehicle processing device 10, only the corresponding software component needs to be changed or added, and the other software components are not affected. Further, the data matching layer 200 generates object data by converting the data format depending on the external hardware into a data format independent of the individual software components, and the data management layer 230 and the data operation layer which are higher layers. It is made to pass to 240. Thereby, even if the configuration of the external hardware connected to the in-vehicle processing device 10 is changed or added, the data management layer 230 and the data operation layer 240 are hardly affected.
  • the data management layer 230 is a layer for providing a function for performing management and operation of data on the storage unit 120 (particularly on the RAM) and a common interface for other layers.
  • the data management layer 230 manages and operates data on the storage unit 120 in units of object data that is a set of data corresponding to a predetermined target element.
  • the “target element” to which the object data corresponds is a conceptual target that is expressed in common by individual information elements that are grouped as object data.
  • the external sensor group 20 and the internal sensor group 30 This applies to detection targets of various sensors that are configured, control targets of various actuators that constitute the actuator group 50, and the like.
  • individual environmental elements obstacles, road shapes, traffic rules, etc.
  • object data may be configured for the vehicle 2 for which each inner sensor detects a state quantity, or individual detection targets (for example, vehicle speed) If it is a sensor, object data may be configured for each vehicle speed information).
  • the data management layer 230 includes an object data management unit 231, an object data operation interface 232, an object data group 233, and a setting information data group 234.
  • the object data management unit 231 performs a data operation on the object data group 233 managed on the storage unit 120 based on a data operation request received from another layer via the object data operation interface 232, and the result return it.
  • Data operations include, for example, registration, update, search, integration, etc. of object data.
  • the object data operation interface 232 corresponds to an API (Application Programming Interface) for using the data operation function provided by the object data management unit 231 in the data matching layer 200 and the data operation layer 240 which are other layers.
  • Each object data constituting the object data group 233 has a different data structure depending on the target element. Therefore, the object data operation interface 232 provides an interface (API) for enabling arbitrary object data to be operated by a common operation method.
  • API Application Programming Interface
  • the object data group 233 is a set of object data managed by the object data management unit 231 on the storage unit 120.
  • the setting information data group 234 is a set of setting information necessary for the object data management unit 231 to manage the object data group 233 and perform data operations.
  • the setting information corresponding to the object data is changed in the setting information data group 234 accordingly.
  • the data management layer 230 is configured to be able to cope with changes in object data without changing the object data management unit 231 and the object data operation interface 232.
  • the data calculation layer 240 is a layer for acquiring object data to be calculated from the data management layer 230 and calculating output data based on the object data.
  • the process of calculating the output data is composed of a plurality of processing blocks according to the contents of the calculation. Therefore, the data calculation layer 240 is configured by a plurality of software components corresponding to individual processing blocks.
  • the data calculation layer 240 includes software components of a sensor fusion calculation unit 241, a map fusion calculation unit 242, an action prediction calculation unit 243, and an automatic driving control calculation unit 244. .
  • control information for automatic driving in the vehicle 2 on which the in-vehicle processing device 10 is mounted is calculated by the arithmetic processing performed by each of these software components. .
  • the sensor fusion calculation unit 241 performs processing for identifying and integrating object data for the same target element detected by a plurality of external sensors included in the external sensor group 20 and interpolating missing data based on time series information. Do.
  • the map fusion calculation unit 242 collates the detection information of the external sensor with the information of the map data acquired from the map information management device 40, and the map data information (for example, when another vehicle travels) matches the detection information of the external sensor. Lane ID etc.) is added as an attribute.
  • the behavior prediction calculation unit 243 performs a process of predicting the future behavior and movement trajectory of the moving object detected by the external sensor.
  • the automatic driving control calculation unit 244 determines the driving behavior, travel trajectory, speed profile, and the like of the vehicle 2 based on the calculation results of the sensor fusion calculation unit 241, the map fusion calculation unit 242, and the behavior prediction calculation unit 243. Further, based on the determined information, control information for the actuator group 50 and display information for the in-vehicle HMI device 60 are calculated, and the calculation result is output to the data matching layer 200. In the example of FIG. 3, in order to absorb communication specifications unique to the actuator group 50 and the in-vehicle HMI device 60, the automatic operation control calculation unit 244 performs the in-vehicle HMI device data adaptation unit 212 and the actuator of the data adaptation layer 200.
  • Output data 143 is generated via the A data adaptation unit 221 and the actuator B data adaptation unit 222. However, instead of doing this, the automatic operation control calculation unit 244 generates data according to the communication specifications of the actuator group 50 and the in-vehicle HMI device 60 and outputs it directly to the basic software 132 without passing through the data matching layer 200. The data 143 may be output.
  • the configuration of the application software 131 according to the present embodiment differs from the configuration of the application software according to the conventional technology.
  • a hierarchy that abstracts interfaces (data) of sensors and actuators that is, a hierarchy that corresponds to the data matching layer 200 of FIG. 3 and a hierarchy that operates using the abstracted data, that is, the data computation of FIG.
  • it has a two-layer configuration with the layer corresponding to the layer 240.
  • the configuration of the application software 131 illustrated in FIG. 3 is characterized in that a data management layer 230 that abstracts data management and operation is introduced in addition to the conventional data abstraction approach. .
  • Arithmetic processing in ADAS and automatic driving mainly includes recognition processing for understanding the surrounding environment of the vehicle 2 based on information such as detection information of an external sensor and driving behavior of the vehicle 2 based on the result of the recognition processing. And a determination process for determining a traveling track. These processes are basically performed in units of environmental elements such as other vehicles and white lines. Therefore, the recognition process and the determination process often include data management / operation in units of environmental elements such as data management, target data search, and data provision to other software components.
  • the present invention pays attention to this point, and in the data management layer 230, data management / operation in units of environmental elements is abstracted so that it can be used in common, thereby improving the software development efficiency in the conventional arithmetic processing part. It is improving.
  • the data management layer 230 only changes the setting of the setting information data group 234, and the It is configured so that it can be used without changing the interface. For this reason, high software reusability can be achieved even in situations where the reusability of software is limited only by the conventional data abstraction approach, for example, when changing the configuration of external sensors that require data structure changes. Can be maintained.
  • the application software 131 can functionally separate the data management function that the data management layer 230 assumes from the arithmetic processing that the data arithmetic layer 240 takes. Therefore, the independence of the arithmetic processing is improved, and there is an effect that the arithmetic processing can be easily changed or added. More specifically, in the conventional method, an interface for performing necessary data conversion between software components in order to realize data exchange between software components constituting a processing block for each arithmetic processing is provided as the data calculation in FIG. It was constructed in a hierarchy corresponding to the layer 240. However, with this method, it is highly likely that a modification of one software component will affect other software components.
  • each software component that performs calculation processing in the data calculation layer 240 basically transfers data to each other via the object data operation interface 232 of the data management layer 230.
  • the object data operation interface 232 provides a common API for each software component by handling data passed between the software components of the data operation layer 240 as abstracted object data. Therefore, it is not necessary for each software component of the data operation layer 240 to be aware of the source and destination of the operation target data. As a result, the independence of each software component increases, and it is difficult to be affected by changes or additions of other software components. Therefore, even when the functional configuration of the application software 131 is changed, it is possible to maintain high software reusability.
  • FIG. 4 is a diagram illustrating an example of object data stored in the object data group 233.
  • the object data group 233 is a set of object data managed by the object data management unit 231 on the storage unit 120.
  • each object data of the object data group 233 is a common data area in which information of ID 401, data source 402, object type 403, and time stamp 404, which is information common to all object data, is stored. 400 and a unique data area 405 in which different information is stored for each object data depending on the type of the target element.
  • ID 401 stores an identifier for identifying a target element indicated by the object data. The same value is set in the ID 401 for a plurality of object data indicating the same target element (for example, the same vehicle).
  • the object type 403 stores information indicating the conceptual type of the target element indicated by the object data. Examples of the target element type stored in the object type 403 include other vehicles, pedestrians, white lines, and the like.
  • the time stamp 404 stores time information related to the object data. For example, when the generation source of the object data represented by the data source 402 is a sensor included in the external sensor group 20 or the internal sensor group 30, the time information set in the time stamp 404 is detected by the object data. Corresponds to time. As a result, when estimating the state of the object data at an arbitrary time, it is possible to apply correction according to time to the object data.
  • the time stamp 404 may store other time information such as the update time of the object data in the data management layer 230, for example, according to the object data time management policy in the in-vehicle processing device 10.
  • the unique data area 405 stores different data for each object data depending on the combination of the data source 402 and the object type 403.
  • a detection information of A is shown.
  • the type of the target element represented by the object type 403 is “other vehicle” in the object data 410 and “pedestrian” in the object data 412. Therefore, the contents of the detection information of the sensor A represented by these object data are different from each other according to the difference in target elements, and the data stored in the unique data area 405 is also different.
  • the generation source represented by the data source 402 is “sensor A” in the object data 410 and “sensor B” in the object data 413. Therefore, the contents of the detection information regarding other vehicles represented by these object data are different from each other according to the difference in the specifications of the sensor A and the sensor B, and the data stored in the unique data area 405 is also different.
  • the object data management unit 231 uses the information stored in the ID 401, the data source 402, the object type 403, and the time stamp 404 of the common data area 400 to use the index table of each object data stored in the object data group 233. Is building. For example, the object data management unit 231 constructs a hash table based on the value of ID 401 so that the corresponding object data can be searched at high speed. In addition, for example, a reference list for the corresponding object data is generated for each type of object data stored in the data source 402 or for each type of target element of each object data stored in the object type 403. By constructing in the unit 231, a plurality of pieces of object data having the same generation source and target element type can be acquired at high speed.
  • the data management layer 230 actually stores the data stored in the unique data area 405. It is configured to perform data manipulation of each object data without being aware of the contents. Therefore, even if the configuration of the external sensor group 20 or the internal sensor group 30 is changed and the structure of the corresponding object data is changed, it is not necessary to modify software related to data operation of the data management layer 230.
  • the data management layer 230 is configured to manage a predetermined number of pieces of object data related to the same target element (that is, a plurality of pieces of object data having the same ID 401 value) in time series.
  • a predetermined number of pieces of object data related to the same target element that is, a plurality of pieces of object data having the same ID 401 value
  • Such management of a plurality of object data in time series is realized by using a mechanism such as a ring buffer.
  • Such a plurality of object data in time series is effective for interpolation of missing data relating to the target element and prediction of a future state, and is used by, for example, the sensor fusion calculation unit 241 and the behavior prediction calculation unit 243.
  • object data representing detection information of various sensors is shown as an example of object data stored in the object data group 233, but object data representing other information is stored in the object data group 233. It may be stored.
  • the map information provided from the map information management device 40 may be decomposed for each predetermined data unit (for example, a road section unit) and stored in the object data group 233 as object data.
  • the output result from the software component excluding those related to the environmental elements among the software components constituting the data operation layer 240 may be stored in the object data group 233 as object data.
  • the structure of the object data is general-purpose, arbitrary information can be stored in the object data group 233 as object data.
  • the ID 401, the data source 402, the object type 403, and the time stamp 404 are set in the common data area 400. However, all of these pieces of information are set in the common data area 400. You don't have to. Arbitrary information can be set in the common data area 400 so that individual object data can be properly managed and target object data can be appropriately searched.
  • FIG. 5 is a diagram illustrating an example of setting information stored in the setting information data group 234.
  • the setting information data group 234 is a set of setting information that defines setting values of parameter groups that need to be changed when the structure of the object data is changed due to a configuration change of the external sensor or the like.
  • the object data management unit 231 reads the setting information from the setting information data group 234 when the in-vehicle processing device 10 is activated, and based on the setting information corresponding to each object data, the object data memory management structure and data of the object data group 233 Adapt the operation. Thereby, it is possible to cope with the change of the object data without correcting the object data operation interface 232.
  • each setting information of the setting information data group 234 includes a data source 501, an object type 502, a data length 503, a history number 504, and search key information 505.
  • the data source 501 and the object type 502 are the same as the data source 402 and the object type 403 in FIG.
  • the combination of information stored in the data source 501 and the object type 502 respectively defines the type (data type) of the object data targeted by each setting information.
  • the data length of the object data corresponding to the data type is stored.
  • the history number 504 stores information indicating how many pieces of time series data of the same target element are managed by the data management layer 230 in the data type. For example, when the value stored in the history number 504 is 1, it means that only object data indicating the latest value is saved without having time series data.
  • the search key information 505 stores setting information when performing a data operation such as search using the information element of the object data stored in the unique data area 405 of FIG.
  • the search key information 505 in the search key information 505, the identifier of the information element (Key), the data type of the information element (Type), and the offset value (Offset) from the start address of the object data to the address of the information element Is specified.
  • the search key information 505 in the first data record of FIG. 5 includes information elements “relative position” and “relative speed” in object data whose generation source is sensor A and whose target element type is another vehicle. , “2D Vector (two-dimensional vector)”, which is stored in positions of 12 bytes and 20 bytes from the beginning.
  • the information element of the unique data area 405 can be handled by the data operation of the object data operation interface 232 by adding the search key information 505 in the setting information.
  • object data manipulation by the object data manipulation interface 232 is performed by searching for object data having a unique data area 405 corresponding to a predetermined search condition based on setting information stored in the setting information data group 234. Operations are included.
  • the configuration information data group 234 is read to conform to different object data.
  • the feasibility of the data management layer 230 It does not affect. For example, a sufficiently large fixed value may be set for the data length 503 and the history number 504, and there is no problem even if the search key information 505 does not exist because it is an additional function.
  • the object data management unit 231 may not be configured to read the setting information data group 234 when the application software 131 is executed, but may be configured in another form, for example, the setting information data group 234 may be statically set at the time of compilation. .
  • FIG. 6 and 7 are diagrams illustrating an example of the object data operation interface 232.
  • the pseudo code group C601 shown in FIG. 6 and the pseudo code group C701 shown in FIG. 7 represent a part of a header file when the object data operation interface 232 is described in C language.
  • examples of API and data type of the object data operation interface 232 are described, respectively.
  • the pseudo code group C601 represents a pseudo code 611 representing an object data registration API, a pseudo code 612 representing an object data update API, a pseudo code 613 representing an object data ID search API, and an object data search API. It includes pseudo code 614, pseudo code 615 representing an integrated API for object data, and pseudo code 616 representing a history information search API for object data.
  • pseudo code 611 representing an object data registration API
  • pseudo code 612 representing an object data update API
  • pseudo code 613 representing an object data ID search API
  • an object data search API It includes pseudo code 614, pseudo code 615 representing an integrated API for object data, and pseudo code 616 representing a history information search API for object data.
  • the object data registration API (registerData) represented by the pseudo code 611 is an API of “registration operation” which is an operation for storing the object data newly input to the data management layer 230 in the object data group 233.
  • registration operation an operation for storing the object data newly input to the data management layer 230 in the object data group 233.
  • this registration operation when the data management layer 230 is set to manage a plurality of object data in time series, a newly input object is added to the plurality of object data already stored in the object data group 233. Data is inserted (added) as the latest value, and the stored time-series data generation is shifted one by one.
  • the setting is such that the object data is not managed in chronological order, the operation is performed to replace the object data representing the same target element as the newly input object data with the new object data.
  • the argument of the registration API is composed of the data length of the object data to be registered and the address of the object data to be registered.
  • the registration target object data always includes a common data area 400 including an ID 401, a data source 402, an object type 403, and a time stamp 404.
  • the object data management unit 231 specifies the storage location of the object data in the object data group 233, and stores it in the location.
  • the object data update API (updateData) represented by the pseudo code 612 is based on the object data newly input to the data management layer 230 in part or all of the object data stored in the object data group 233. It is an API of “update operation” that is an operation of rewriting.
  • updateData an API of “update operation” that is an operation of rewriting.
  • the data management layer 230 is set to manage a plurality of object data in time series, unlike the above-described registration operation, a plurality of objects already stored in the object data group 233 are used in the update operation. Of the data, part or all of the latest object data is rewritten based on the newly input object data.
  • information for designating the update target area in the object data is added to the argument of the update API.
  • the object data ID search API (getDataByID) represented by the pseudo code 613 is an operation of searching for and returning the latest value of the object data having the specified ID from the object data stored in the object data group 233. API of “ID search operation”.
  • the argument of the ID search API includes an ID of object data to be searched and information on a buffer for storing a search result.
  • the object data search API (searchData) represented by the pseudo code 614 is an operation of “search operation” which is an operation for acquiring object data corresponding to a predetermined search condition from the object data stored in the object data group 233. API.
  • search operation an operation for acquiring object data corresponding to a predetermined search condition from the object data stored in the object data group 233.
  • the argument of the search API includes a search condition expression, a sort condition expression, and information on a buffer that stores the search result.
  • the result of arranging the list of object data corresponding to the search condition formula according to the sort condition formula is stored in the buffer.
  • the search condition expression and the sort condition expression in the search API are expressed, for example, by a pseudo code group C701 in FIG.
  • the pseudo code group C701 includes pseudo code 711 that represents a search condition expression and pseudo code 712 that represents a sort condition expression.
  • the pseudo code 711 includes a key (key) for specifying an information element of object data to be searched in a search condition expression and a comparison operator (compOp) for performing a comparison operation on the value of the information element specified by the key.
  • a comparison target value (value) and a logical operator (logicOp) for performing a logical operation on the result of the comparison operation are defined.
  • the search condition expressions are expressed as these arrays, for example, as the following expressions (1) and (2). However, in Expressions (1) and (2), the search condition expression is expressed using an associative array (objectData) that returns a value corresponding to the key given to the argument.
  • object data corresponding to a predetermined search condition can be searched and acquired from the object data stored in the object data group 233 according to such a search condition expression.
  • objectData [key0] ⁇ compOp0> value0 ⁇ ⁇ logicOp0> (1)
  • objectData [key1] ⁇ compOp1> value1 ⁇ ⁇ logicOp1> (2)
  • the pseudo code 712 defines a key (key) for designating a sort target and information elements of object data in a sort condition expression, and a sort order (order) for sorting the information elements designated by the key. ing.
  • the sort condition expression is expressed as an array of these.
  • object data corresponding to a predetermined search condition can be sorted and acquired in a specified sort order (ascending order, descending order, etc.) based on a designated key value according to such a sort condition expression. .
  • a method for calculating the scalar value used for the comparison operation or the sort may be defined separately.
  • the search condition formula or the sort condition formula for object data including information elements of relative position and relative speed the length of the vector (sum of squares of each element of the vector) is set.
  • the object data integration API (mergeData) represented by the pseudo code 615 integrates two object data stored in the object data group 233 into “integration”. API of “operation”.
  • the argument of the integration API includes the ID (destId) of the integration destination object data and the ID (srcId) of the integration source object data.
  • the plurality of object data specified by the integration source ID is incorporated into the plurality of object data specified by the integration destination ID.
  • the object data history information search API (getHistoryData) represented by the pseudo code 616 retrieves a plurality of object data managed in a time series having a specified ID from a plurality of object data stored in the object data group 233.
  • An API of “history information search operation” which is an operation to acquire as time series information of the object data.
  • the argument of the history information search API includes the ID of the object data to be searched and the information of the buffer that stores the search result.
  • the object data operation interface 232 defines arguments with data types that do not depend on the data structure of the object data. Therefore, it is not necessary to modify the object data operation interface 232 even if there is a change in the configuration of external hardware connected to the in-vehicle processing device 10 or the functional configuration mounted in the in-vehicle processing device 10.
  • FIG. 8 is a diagram showing a processing flow 800 that is an example of a processing flow of the application software 131 in the in-vehicle processing device 10 according to the embodiment of the present invention.
  • a processing flow 800 illustrated in FIG. 8 is periodically executed by the application software 131 in the processing unit 100 of the in-vehicle processing device 10 at, for example, a predetermined time interval (100 ms or the like).
  • the processing of the application software 131 is described as a processing flow 800 in which each processing step is sequentially executed. However, each processing step may be executed asynchronously based on a predetermined event. It may be executed in parallel.
  • the processing unit 100 first executes an external input process (S801).
  • This external input process is a process in which each software component of the data matching layer 200 processes the input data 142 notified from the basic software 132 and registers object data in the data management layer 230.
  • the data matching layer 200 includes a sensor A data matching unit 201 and a sensor B data matching unit as software components corresponding to input data 142 from hardware connected to the outside of the in-vehicle processing device 10. 202, a map information management device data matching unit 211, and the like. These software components analyze the input data 142 from the corresponding external hardware based on the respective communication specifications, and extract information on the target element.
  • the extracted information is converted into the object data format corresponding to the target element, and stored in the object data group 233 via the registration API of the object data operation interface 232.
  • the format of the object data here includes not only the data structure but also expression specifications of each information element (for example, a unit system, a coordinate system, a time system, etc.).
  • the coordinate system is unified with an orthogonal coordinate system in which the reference point of the vehicle 2 is the origin, the front direction of the vehicle 2 is the x axis, and the left direction is the y axis.
  • each software of the data calculation layer 240 is converted into a common coordinate system. Enables parts to execute arithmetic processing without being aware of sensor-specific specifications.
  • the delay time difference between the time when the target element is detected and the time when the data is output
  • the timestamp differs according to the specifications of the external sensor.
  • the object data includes a common data area 400 including an ID 401, a data source 402, an object type 403, and a time stamp 404, and a unique data area 405.
  • the object data corresponding to the detection information of the external sensor can be modeled as described below to improve the software reusability.
  • FIG. 9 is a diagram showing an example of modeling of object data.
  • the common data area 901 and the unique data area 902 correspond to the common data area 400 and the unique data area 405 in FIG. 4, respectively.
  • the information stored in the unique data area 902 varies depending on the data source and the object type, but the similarity of information elements in the unique data area 405 increases when expressing target elements having similar properties. Therefore, a data model is constructed for each target element having similar properties, and the unique data area 902 is divided into a data model header and unique data.
  • the object type is other vehicle, pedestrian, bicycle, or the like, and a common object data model header 911 is applied to each object data of the target element related to these objects.
  • the object data model header 911 includes, for example, a relative position 915, a relative speed 916, and the like.
  • the object type is a white line, a parking frame, a road boundary, and the like
  • a common boundary data model header 921 is applied to each object data of the target element related to the boundary line or region.
  • the boundary data model header 921 includes, for example, a boundary type 923 (white line, parking frame, etc.), boundary point sequence information 924 (point sequence expressing the boundary shape), and the like. In this way, a plurality of object data representing target elements having a common property are collected, and a common data model is constructed for these object data, thereby defining a data area portion based on a common definition. Can do.
  • Step S802 to S805 are calculation processes by the sensor fusion calculation unit 241, the map fusion calculation unit 242, the behavior prediction calculation unit 243, and the automatic driving control calculation unit 244, respectively.
  • each calculation process in steps S802 to S804 is a calculation process for understanding (recognizing) the surrounding environment of the vehicle 2. Therefore, hereinafter, each calculation process of steps S802 to S804 is also referred to as a recognition process.
  • the sensor fusion calculation unit 241, the map fusion calculation unit 242, and the behavior prediction calculation unit 243 that execute these calculation processes (recognition processes) are also referred to as environment recognition software components.
  • the cognitive processing executed by the environmental recognition software component is a combination of fragmentary detection information obtained from each external sensor and information obtained from maps, communications, etc.
  • This is a process for estimation.
  • the sensor fusion calculation process S802 can grasp only physical characteristics such as a relative position and a relative speed that can be detected only by the external sensor.
  • the map fusion calculation process S803
  • the behavior prediction calculation process (S804) it is possible to estimate how the preceding vehicle will move in the future.
  • These processes can be regarded as a process of estimating and adding a new state quantity related to the target element, that is, a process of adding a new information element to the object data of the target element.
  • FIG. 10 is a diagram illustrating an example of the structure of object data corresponding to partial update of recognition processing.
  • the unique data area 902 in the object data is classified according to the update target of each arithmetic processing, and is configured as separate records (continuous areas on the memory). Specifically, a basic information record 1001 that is an update target of the sensor fusion calculation process, a map attribute record 1002 that is an update target of the map fusion calculation process, and a prediction information record 1003 that is an update target of the behavior prediction calculation process.
  • a unique data area 902 is configured.
  • the target element estimation result by the sensor fusion calculation process executed by the sensor fusion calculation unit 241 in step S802 is stored in the basic information record 1001.
  • the target element estimation result by the map fusion calculation process executed by the map fusion calculation unit 242 in step S803 is stored in the map attribute record 1002.
  • the estimation result of the target element by the behavior prediction calculation process executed by the behavior prediction calculation unit 243 in step S804 is stored in the prediction information record 1003.
  • each of the sensor fusion calculation unit 241, the map fusion calculation unit 242, and the behavior prediction calculation unit 243 which are environment recognition software components, outputs the estimation result of the state of the target element by the respective recognition processing in the object data. Can be stored in the area.
  • the data model header in the structural example of the object data shown in FIG. 9, that is, the object data model header 911 and the boundary data model header 921 may be included in the data structure shown in FIG.
  • the data model header may be included in the basic information record 1001, or the data model header is arranged in a distributed manner in each of the basic information record 1001, the map attribute record 1002, and the prediction information record 1003. May be.
  • Pseudocodes C1004 to C1007 shown in FIG. 10 are examples in which the object data structure shown in FIG. 10 and the object update process in each recognition process in steps S802 to S804 are described.
  • a registration API is used for updating the object data as represented by the pseudo code C1005.
  • the update API is used to update the map attribute record 1002 and the prediction information record 1003 as represented by the pseudo codes C1006 and C1007, respectively. Update the corresponding parts.
  • the pseudo code C1007 may not be modified.
  • the parts that need to be changed are limited to the basic information record 1001, the map attribute record 1002, and the prediction information record 1003. Will not be affected.
  • the automatic driving control calculation process of step S805 is a process of calculating the control information of the vehicle 2 based on the results of the recognition processes of steps S802 to S804. Based on the object data generated by the recognition processes in steps S802 to S804, the automatic driving control calculation unit 244 determines the driving behavior of the vehicle 2 (for example, whether to follow the lane or change the lane), Make a plan of the running trajectory (including speed information) based on. Then, a control command value for the actuator group 50 necessary for executing the driving action and following the traveling track is calculated.
  • step S806 the processing unit 100 moves to an external output process (S806).
  • the control command value for the actuator group 50 calculated by the automatic operation control calculation unit 244 in step S805 is converted into a data format that conforms to the communication specifications of each actuator, and the converted data is output data. It is output to the basic software 132 as 143.
  • This data format conversion is performed by the software component of the data matching layer 200 corresponding to each actuator, that is, the actuator A data matching unit 221 and the actuator B data matching unit 222 of FIG.
  • ADAS and automatic driving functions are realized by executing processing according to the processing flow 800 periodically (for example, every 100 ms) in the processing unit 100.
  • FIG. 11 is a diagram showing an example of the configuration of the application software 131 after the change in the in-vehicle processing device 10 according to an embodiment of the present invention.
  • the above-described wireless communication device is a device for realizing, for example, communication with road infrastructure (road-to-vehicle communication) and communication with other vehicles (vehicle-to-vehicle communication).
  • the in-vehicle processing device 10 can acquire information on road infrastructure such as traffic congestion, construction, signals, etc. and information inside other vehicles (accelerator opening, brake information, travel route information, etc.) as information from the wireless communication device. Become. Therefore, there is new additional information that cannot be acquired by external sensors or map information, and by using these, it is possible to enhance the calculation of automatic driving control.
  • communication data In data that can be acquired by a wireless communication device (hereinafter referred to as communication data), the position of an object represented by the data is usually expressed in a global coordinate system (latitude, longitude). On the other hand, data acquired by the external sensor group 20 is expressed in a vehicle coordinate system centered on the vehicle 2. Therefore, in order to integrate sensor data and communication data, sensor fusion calculation processing by the sensor fusion calculation unit 241 cannot be applied, and new calculation processing needs to be added. In addition, when adding communication data information, the object data structure of the corresponding target element (other vehicle, etc.) needs to be modified.
  • the application software 131 of the present embodiment in addition to the correction of the automatic operation control calculation unit 244, the addition of the wireless communication device data matching unit 1101 in the data matching layer 200 and the new setting information data group 234 in the data management layer 230 By adding the object data definition information and adding the communication data fusion calculation unit 1102 in the data calculation layer 240, the system change as described above can be realized.
  • FIG. 12 is a diagram illustrating an example of the setting information stored in the setting information data group 234 after the change.
  • a setting information record using the wireless communication device as a data source is added.
  • the setting information record corresponding to the object data related to the other vehicle is shown as the additional setting information record, but the setting information record corresponding to the other object data may be further added.
  • the data length of some object data related to communication data among the object data related to sensor fusion is changed in accordance with the added information in order to add information of communication data.
  • the system can be changed only by correcting the setting information, and the object data management unit 231 and the object data operation interface 232 can be used as they are.
  • the modification of the data adaptation layer 200 is realized by adding a wireless communication device data adaptation unit 1101 as shown in FIG.
  • the wireless communication device data adaptation unit 1101 converts various data formats specific to the wireless communication device into object data formats managed by the data management layer 230 and stores them in the object data group 233.
  • the software components of the data matching layer 200 are independent of each other, other software components are not affected by the addition of the wireless communication device data matching unit 1101.
  • the object data operation interface 232 of the data management layer 230 is not changed, the existing software components of the data matching layer 200 can be used as they are.
  • the correction of the data calculation layer 240 is realized by the addition of the communication data fusion calculation unit 1102 as shown in FIG. 11 except for the correction of the automatic operation control calculation unit 244.
  • the communication data fusion calculation unit 1102 acquires, from the object data management unit 231, a data group including object data whose generation source is sensor fusion related to communication data and object data whose generation source is a wireless communication device. Based on a predetermined calculation, object data for the same target element is identified and integrated. For example, when object data generated by sensor fusion indicating another vehicle and object data (communication data) from a wireless communication device also indicating the other vehicle correspond to the same target element, the former object data The communication data information is added to and updated.
  • FIG. 13 is a diagram showing an example of the sensor fusion object data structure when a system change is made.
  • a communication information record 1202 is added to the unique data area 1201 as compared to the data structure before the system change shown in FIG.
  • Pseudocodes C1203 and C1204 shown in FIG. 13 are examples in which the object data structure shown in FIG. 13 and the communication data fusion calculation executed by the communication data fusion calculation unit 1102 are described.
  • the pseudo code C1203 a structure corresponding to the communication information record 1202 is added to the pseudo code C1004 representing the structure of the object data before change shown in FIG.
  • the communication data fusion calculation unit 1102 is implemented in the data calculation layer 240 by a method as shown in the pseudo code C1204, and realizes a data fusion calculation for adding and updating communication data information to object data.
  • each software component of the data operation layer 240 inputs and outputs data via the abstracted object data operation interface 232, and there is no dependency between the software components. It depends. In other words, since there is no dependency between software components, even if the communication data fusion calculation unit 1102 is added to the data calculation layer 240, other existing software components are not affected and therefore need not be modified. .
  • the second reason is that the memory area handled by each software component is defined separately, so even if the object data structure to be operated is changed, the effect does not propagate to existing software components. It is because it has become. With the above mechanism, even when the system is changed, the software components of the sensor fusion calculation unit 241, the map fusion calculation unit 242, and the behavior prediction calculation unit 243 can be used as they are.
  • the reusability of the application software 131 can be improved. Therefore, in various aspects, the reusability of the application software 131 in the in-vehicle processing device 10 can be improved.
  • the application software 131 is hierarchized into the data matching layer 200, the data management layer 230, and the data operation layer 240 so that the data management / operation can be abstracted and used in common. ing.
  • the development efficiency of the application software 131 is improved.
  • the interface of the data management layer 230 is configured so as not to change even if the data structure to be managed is changed, even when the configuration of the external sensor is changed, the data management / operation part of each software component Can be used as is.
  • the data management and the arithmetic processing are functionally separated by hierarchizing the application software 131 into the data adaptation layer 200, the data management layer 230, and the data operation layer 240. Can do. Therefore, the independence of the arithmetic processing is improved, and it is easy to change or add the arithmetic processing.
  • data exchange between software components of the data operation layer 240 is performed via the object data operation interface 232 of the data management layer 230 in principle. Since the object data operation interface 232 is abstracted, each software component of the data operation layer 240 does not need to be aware of the source or destination of the operation target data. Therefore, the independence of each software component is increased, and it is difficult to be affected by the change or addition of other software components, and the possibility that an existing software component can be reused even when the functional configuration is changed is increased.
  • the in-vehicle processing device 10 mounted on the vehicle 2 executes a signal input unit 111 that generates input data 142 based on an input signal from the outside, and an arithmetic process that calculates output data 143 based on the input data 142.
  • the processing unit 100 includes a signal output unit 112 that generates an output signal based on the output data 143 and outputs the output signal to the outside, and a storage unit 120 that stores application software 131 for causing the processing unit 100 to perform arithmetic processing.
  • the application software 131 generates object data based on the input data 142 and the data management layer 230 for managing the object data that is a set of data corresponding to the predetermined target element on the storage unit 120, and the generated object data
  • the data matching layer 200 for outputting the data to the data management layer 230, and the data calculation layer 240 for acquiring the object data from the data management layer 230 and calculating the output data 143 based on the acquired object data. Since it did in this way, the reusability of the application software 131 in the vehicle-mounted processing apparatus 10 can be improved.
  • the data management layer 230 has an object data operation interface 232 for the data matching layer 200 and the data operation layer 240 to operate the object data managed by the data management layer 230.
  • the object data operation interface 232 is configured to be able to operate a plurality of object data having different data structures by a common operation method. Since it did in this way, it can respond flexibly to various system configuration changes such as a change in external hardware connected to the in-vehicle processing device 10 and a change in the functional configuration in the in-vehicle processing device 10.
  • Application software 131 having reusability can be provided.
  • the object data operation by the object data operation interface 232 includes a search operation for acquiring object data corresponding to a search condition that can be specified as an argument from the object data managed by the data management layer 230.
  • the search condition in this search operation is expressed by a search condition expression including a comparison operation regarding information elements constituting object data, for example, expressions (1) and (2). Further, it can further include a logical operation as a result of a plurality of comparison operations. Further, in this search operation, the object data corresponding to the search condition can be sorted and acquired based on the sort condition that can be specified as an argument.
  • each software component of the data calculation layer 240 or the data conformity layer 200 does not carry out the process which extracts the desired object data from the whole object data separately, but arbitrary desired object data Can be selectively obtained, and application software 131 having high reusability can be provided.
  • the object data operation by the object data operation interface 232 includes a registration operation for replacing the object data managed by the data management layer 230 with the object data newly input to the data management layer 230, and the data management layer 230.
  • Update operation for rewriting a part of the object data managed by the data management layer 230 based on the object data newly input to the data management layer 230. Since it did in this way, based on the calculation result by each software component of the data calculation layer 240, and the input information from each software component of the data adaptation layer 200, the data management layer 230 can manage object data appropriately. .
  • the data management layer 230 is configured to manage a plurality of object data related to the same target element in time series.
  • the operation of the object data by the object data operation interface 232 includes an operation of acquiring a plurality of object data managed by the data management layer 230 in time series.
  • a registration operation for adding object data newly input to the data management layer 230 to a plurality of object data managed by the data management layer 230 in time series, and a plurality of objects managed by the data management layer 230 in time series An update operation for rewriting a part of the latest object data among the data based on the object data newly input to the data management layer 230.
  • the data management layer 230 includes an integration operation for incorporating a plurality of object data related to the second target element managed by the data management layer 120 in time series into a plurality of object data related to the first target element managed by the data management layer 230 in time series. . Since this is done, the data management layer 230 can appropriately manage a plurality of object data in time series.
  • Object data includes a common data area 400 in which information common to all object data managed by the data management layer 230 is stored, and unique data in which different information is stored depending on the type of target element A region 405.
  • the common data area 400 includes an ID 401 that is an identifier for identifying a target element, a data source 402 that is information indicating the generation source of the object data, and an object type that is information indicating a conceptual type of the target element. Any one or more of 403 and a time stamp 404 that is time information related to the object data are included. Since it did in this way, in the data management layer 230, it becomes possible to manage and operate each object data from which a data structure differs with a common interface.
  • the data management layer 230 includes a setting information data group 234 that is a set of setting information related to object data.
  • Object data manipulation by the object data manipulation interface 232 is performed by using object data having a unique data area 405 corresponding to a search condition that can be specified as an argument from object data managed by the data management layer 230 as a search key in setting information.
  • a search operation acquired based on the information 505 is included.
  • arbitrary object data can be retrieved and acquired for the information element in the unique data area 405 by performing data operation of the object data operation interface 232.
  • the data operation layer 240 is composed of a plurality of software components, and data exchange between the plurality of software components is performed via the data management layer 230. Since it did in this way, the independence of each software component in the data calculation layer 240 can be improved, and the application software 131 which has high reusability can be provided also when the function structure in the vehicle-mounted processing apparatus 10 is changed.
  • the plurality of software components in the data operation layer 240 causes the processing unit 100 to execute a recognition process for estimating the state of the target element in the surrounding environment of the vehicle 2 based on the object data acquired from the data management layer 230.
  • environment recognition software components for example, a sensor fusion calculation unit 241, a map fusion calculation unit 242, a behavior prediction calculation unit 243, and the like are included. These environment recognition software components store the estimation result of the state of the target element in the object data managed by the data management layer 230.
  • each of these environment recognition software components obtains the estimation result of the state of the target element in different data areas in the object data managed by the data management layer 230, that is, basic information record 1001, map attribute record 1002, prediction information Stored in the record 1003 respectively. Since it did in this way, when the process part 100 is comprised by several processors or several cores, it can aim at the efficiency of a process by performing several recognition processes in parallel. Further, it becomes easy to add or change software components in the data operation layer 240, and the reusability of the application software 131 can be further improved.
  • the in-vehicle processing device 10 has one processing unit 100 and one storage unit 120, and each process in the in-vehicle processing device 10 is executed using the processing unit 100 and the storage unit 120. It is described as such.
  • the in-vehicle processing apparatus 10 may include a plurality of processing units 100 and storage units 120, and each process may be executed using the plurality of processing units 100 and storage units 120. In that case, for example, processing software having the same configuration is installed in different storage units 120, and the processing can be executed by being shared by a plurality of processing units 100.
  • each process of the vehicle-mounted processing apparatus 10 is implement
  • the vehicle-mounted processing apparatus 10, the external world sensor group 20, the internal world sensor group 30, the map information management apparatus 40, the actuator group 50, and the vehicle-mounted HMI apparatus 60 are each described as a separate apparatus. It is also possible to realize any combination of two or more as necessary.
  • the present invention can be applied to software of an arithmetic device that is mounted on a robot system and executes various arithmetic processes related to control of the robot.
  • control lines and information lines that are considered necessary for describing the embodiment are shown, and all control lines and information lines included in an actual product to which the present invention is applied are not necessarily shown. Not necessarily. In practice, it may be considered that almost all the components are connected to each other.
  • 1 vehicle system
  • 2 vehicle
  • 10 in-vehicle processing device
  • 20 external sensor group
  • 30 internal sensor group
  • 40 map information management device
  • 50 actuator group
  • 60 in-vehicle HMI device
  • 100 processing 110: signal input / output unit
  • 111 signal input unit
  • 112 signal output unit
  • 120 storage unit
  • 130 processing software
  • 132 basic software
  • 134 BIOS
  • 135 OS
  • 136 Device driver group
  • 137 Protocol stack
  • 200 Data adaptation layer
  • 230 Data management layer
  • 240 Data operation layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Combustion & Propulsion (AREA)
  • Chemical & Material Sciences (AREA)
  • Computational Linguistics (AREA)
  • Automation & Control Theory (AREA)
  • Traffic Control Systems (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Stored Programmes (AREA)

Abstract

車載処理装置は、外部からの入力信号に基づく入力データを生成する信号入力部と、前記入力データに基づき出力データを演算する演算処理を実行する処理部と、前記出力データに基づく出力信号を生成して外部に出力する信号出力部と、前記処理部に前記演算処理を実行させるためのアプリケーションソフトウェアを記憶する記憶部と、を備える。前記アプリケーションソフトウェアは、所定の対象要素に対応するデータの集合であるオブジェクトデータを前記記憶部上で管理するためのデータ管理層と、前記入力データに基づき前記オブジェクトデータを生成し、生成した前記オブジェクトデータを前記データ管理層に出力するためのデータ適合層と、前記データ管理層から前記オブジェクトデータを取得し、取得した前記オブジェクトデータに基づき前記出力データを演算するためのデータ演算層と、を有する。

Description

車載処理装置
 本発明は、車載処理装置に関する。
 従来から、車両に搭載されるECU(Electronic Control Unit)において、ECUのハードウェア構成や、ECUに接続されるセンサやアクチュエータを抽象化(モデル化)し、これらの間で情報の受け渡しを行うインタフェースをソフトウェアで構築する方式が提案されている。この方式によれば、ECUの内外のハードウェア構成が変更されても、上位のアプリケーションソフトウェアの再利用性を高めることができる(例えば、特許文献1参照)。
日本国特開2000-97102号公報
 従来のECUでは、車両や車両に搭載された部品に関する所定の状態量を検出するセンサ(内界センサ)の出力値に基づき制御情報を演算し、対象のアクチュエータや他ECUに対して制御情報を出力する構成が通例であった。このような従来のECUでは、センサの検出対象やアクチュエータの制御対象が明確に決まっているため、これらに対応するインタフェースをソフトウェアで構築することが容易である。例えば、車速センサについては、車速センサの検出対象である車速をモデル化してインタフェースを構築すればよいし、インジェクタについては、インジェクタの制御対象である燃料噴出量等をモデル化してインタフェースを構築すればよい。
 しかし、近年のADAS(Advanced Driver Assistance Systems)や自動運転の進展に伴い、従来の内界センサに加えて、車両周辺の状態を検出するための外界センサを搭載した車両が増えてきている。このような外界センサの検出対象は、他車両や歩行者等の障害物、白線や路端等の道路形状、標識や信号等の交通ルール等、多岐にわたる。また、外界センサの種類は、その検出対象に応じて、カメラ、ミリ波レーダ、ソナー、LIDAR(LIght Detection And Ranging)等、様々であり、たとえ同種のセンサであっても、製造メーカやバージョンによって、出力される情報の種類や量が大きく異なる。そのため、外界センサの出力データに基づき制御情報を演算するECUのソフトウェアでは、従来のECUのようにセンサをモデル化してインタフェースを構築するのが実質的に困難である。その結果、アプリケーションソフトウェアの再利用が難しいという問題がある。
 また、ADASや自動運転に関するECUのように、多数の外界センサの出力結果から複雑な処理を経て車両の制御情報を演算するECUのアプリケーションソフトウェアは、センサフュージョンや移動体の行動予測等、多数の機能の集まりで構成されている。このようなアプリケーションソフトウェアの機能構成は、ADASや自動運転において実現される制御の内容や車種に応じて異なってくる場合が多いため、ソフトウェア内部の機能構成の変更時におけるアプリケーションソフトウェアの再利用性も重要になってきている。しかし、従来のECUでは、こうした場合のアプリケーションソフトウェアの再利用性について考慮されていない。
 以上を踏まえ、本発明では、車載処理装置におけるアプリケーションソフトウェアの再利用性を向上させることを主な目的とする。
 本発明による車載処理装置は、車両に搭載されるものであって、外部からの入力信号に基づく入力データを生成する信号入力部と、前記入力データに基づき出力データを演算する演算処理を実行する処理部と、前記出力データに基づく出力信号を生成して外部に出力する信号出力部と、前記処理部に前記演算処理を実行させるためのアプリケーションソフトウェアを記憶する記憶部と、を備え、前記アプリケーションソフトウェアは、所定の対象要素に対応するデータの集合であるオブジェクトデータを前記記憶部上で管理するためのデータ管理層と、前記入力データに基づき前記オブジェクトデータを生成し、生成した前記オブジェクトデータを前記データ管理層に出力するためのデータ適合層と、前記データ管理層から前記オブジェクトデータを取得し、取得した前記オブジェクトデータに基づき前記出力データを演算するためのデータ演算層と、を有する。
 本発明によれば、車載処理装置におけるアプリケーションソフトウェアの再利用性を向上させることができる。
本発明の一実施形態に係る車載処理装置を含む車両システムの構成の一例を示す機能ブロック図である。 本発明の一実施形態に係る車載処理装置における処理ソフトウェアの構成の一例を示す図である。 本発明の一実施形態に係る車載処理装置におけるアプリケーションソフトウェアの構成の一例を示す図である。 オブジェクトデータ群に格納されているオブジェクトデータの一例を示す図である。 設定情報データ群に格納されている設定情報の一例を示す図である。 オブジェクトデータ操作インタフェースの一例を示す図である。 オブジェクトデータ操作インタフェースの一例を示す図である。 本発明の一実施形態に係る車載処理装置におけるアプリケーションソフトウェアの処理フローの一例を示す図である。 オブジェクトデータのモデル化の一例を示す図である。 認認知処理の部分更新に対応したオブジェクトデータの構造の一例を示す図である。 本発明の一実施形態に係る車載処理装置における変更後のアプリケーションソフトウェアの構成の一例を示す図である。 変更後の設定情報データ群に格納されている設定情報の一例を示す図である。 システム変更を加えた場合のオブジェクトデータの構造の一例を示す図である。
 以下、図面を参照して、本発明の一実施形態について説明する。なお、本実施形態では、本発明を適用した車載処理装置の一例として、ADASや自動運転システムにおいて車両の運転支援または走行制御を実現するための処理を行う装置を説明する。
(車両システムの構成)
 図1は、本発明の一実施形態に係る車載処理装置を含む車両システム1の構成の一例を示す機能ブロック図である。本実施形態に係る車両システム1は、車両2に搭載され、車両2の周辺における走行道路や周辺車両等の障害物の状況を認識した上で、適切な運転支援あるいは走行制御を行うためのシステムである。図1に示すように、車両システム1は、車載処理装置10、外界センサ群20、内界センサ群30、地図情報管理装置40、アクチュエータ群50、車載用HMI装置60、等を含んで構成される。
 車載処理装置10は、例えば、車両2に搭載されたECU等であり、処理部100と、信号入出力部110と、記憶部120と、を有する。なお、車両システム1には、実現しようとする処理の内容や制御対象とする装置の違いに応じて、様々な種類の車載処理装置10が実際には搭載されているが、図1ではそのうち一つを代表例として示している。
 処理部100は、例えば、CPU(Central Processing Unit:中央演算処理装置)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等を含んで構成される。処理部100は、記憶部120に格納されている処理ソフトウェア130を実行することで、車載処理装置10の機能を実現する処理を行う。
 信号入出力部110は、信号入力部111と信号出力部112で構成される。信号入力部111は、車載処理装置10の外部からの入力信号のデータ化を行い、入力信号に基づく入力データを生成して処理部100に出力する。この入力データに基づき、処理部100は出力データの演算を行う。信号出力部112は、処理部100から渡された出力データに基づき出力信号を生成し、生成した出力信号を車載処理装置10の外部に出力する。信号入出力部110は、例えば、アナログ信号をA/D変換する回路、パルス信号を入力する回路、Ethernet(登録商標)又はCAN(Controller Area Network)等の通信規格に準拠したネットワークカード等を含んで構成され、車両2に搭載された他の装置と各種プロトコルに基づきデータの送受信を行う。
 記憶部120は、例えば、RAM(Random Access Memory)や、HDD(Hard Disk Drive)、フラッシュメモリ、ROM(Read Only Memory)などの記憶装置を含んで構成される。記憶部120には、車載処理装置10の機能実現のためのプログラムである処理ソフトウェア130や、その処理に必要なデータ群等が格納される。また、処理部100が処理ソフトウェア130を実行する際の主記憶としても利用される。
 外界センサ群20は、車両2周辺の状態を検出する外界センサの集合であり、例えば、カメラ装置、ミリ波レーダ、LIDAR、ソナー等が該当する。外界センサ群20は、車両2から所定範囲の障害物(他車両、自転車、歩行者、落下物等)や道路形状(白線、路端等)、交通ルール(道路標識、信号等)等の環境要素に関する情報を検出し、その検出情報をCAN等の車載ネットワークを介して車載処理装置10に出力するように構成されている。
 内界センサ群30は、車両2の状態に関する各種の状態量(例えば走行速度、操舵角、アクセルの操作量、ブレーキの操作量等)を検出する内界センサの集合である。内界センサ群30は、検出した状態量をCAN等の車載ネットワークを介して車載処理装置10に定期的に出力する。なお、車両システム1は、車載ネットワークに接続された車載処理装置10を含む各装置が、内界センサ群30から車載ネットワークを介して必要な状態量を取得することが可能となるように構成されている。
 地図情報管理装置40は、車両2周辺のデジタル地図情報を管理および提供する装置であり、例えば、ナビゲーション装置等が該当する。地図情報管理装置40は、例えば、所定の地域全体あるいは車両2周辺の地域を表すデジタル道路地図データを備えており、全地球航法衛星システム(GNSS)受信装置等を通じて決定された車両2の位置情報に基づき、地図データ上で車両2の地図位置(走行中の道路、車線等)を特定するように構成されている。また、特定した車両2の地図位置やその周辺の地図データを車載処理装置10に提供するように構成されている。
 アクチュエータ群50は、車両2の動きを決定する操舵、ブレーキ、アクセル等の制御要素を制御する装置群である。アクチュエータ群50は、運転者によるハンドル、ブレーキペダル、アクセルペダル等の操作情報や車載処理装置10から出力される制御情報に基づいて、車両2の動きを制御するように構成されている。
 車載用HMI装置60は、例えば、車両2に搭載されたスピーカやディスプレイ装置等であり、車載処理装置10から出力される周辺環境や運転支援に関する情報を、音声や画面を通じてドライバに通知するように構成されている。
 図1の車両システム1において、車載処理装置10は、その処理の内容に応じて、外界センサ群20、内界センサ群30、地図情報管理装置40、アクチュエータ群50、車載用HMI装置60のうち任意のハードウェアとの間で、情報の受け渡しを行う。すなわち、車両システム1において実際に搭載されている複数の車載処理装置10がそれぞれ情報の受け渡しを行う外部ハードウェアの種類は、車載処理装置10の種類ごとに異なっている。
(処理ソフトウェアの構成)
 図2は、本発明の一実施形態に係る車載処理装置10における処理ソフトウェア130の構成の一例を示す図である。図2に示すように、処理ソフトウェア130は、アプリケーションソフトウェア131と、基本ソフトウェア132と、で構成されている。
 アプリケーションソフトウェア131は、車載処理装置10の機能を実現するための処理や演算を処理部100に実行させるソフトウェアである。アプリケーションソフトウェア131の構成は、当該車載処理装置10が実現する処理の内容や、当該車載処理装置10が情報の受け渡しを行う外部ハードウェアの構成に応じて、車載処理装置10の種類ごとに異なっている。なお、アプリケーションソフトウェア131の構成の具体例については、後で図3を参照して説明する。
 基本ソフトウェア132は、車載処理装置10の動作に必要な基本機能を実現するための処理を処理部100に実行させるソフトウェアである。基本ソフトウェア132が担う基本機能は、アプリケーションソフトウェア131の構成や、情報の受け渡しを行う外部ハードウェアの構成に拠らず、車両システム1に搭載される全ての車載処理装置10について共通である。基本ソフトウェア132は、例えば、基本入出力システム(BIOS)134と、オペレーティングシステム(OS)135と、デバイスドライバ群136と、プロトコルスタック137と、で構成されている。車載処理装置10において処理部100は、基本ソフトウェア132を構成するこれらのソフトウェアを用いて、アプリケーションソフトウェア131の実行制御や、信号入出力部110との間でデータ入出力等を行うことができる。
 BIOS134は、車載処理装置10の起動時に必要な処理を処理部100に実行させるためのソフトウェアである。処理部100は、BIOS134を用いて、例えば起動時のOS135の読み込みや、記憶部120等に対する基本的な入出力制御等を行う。
 OS135は、処理部100におけるアプリケーションソフトウェア131の実行制御に必要な処理を担うソフトウェアである。処理部100は、OS135を用いて、例えばアプリケーションソフトウェア131の実行単位(スレッド、プロセス、タスク等)ごとに実行スケジュールの制御等を行う。
 デバイスドライバ群136は、処理部100が信号入出力部110との間でデータを入出力するためのソフトウェアである。デバイスドライバ群136は、アプリケーションソフトウェア131に対して、車載処理装置10が情報の受け渡しを行う外部ハードウェアを抽象化して取り扱うためのインタフェースを提供する。
 プロトコルスタック137は、アプリケーションソフトウェア131とデバイスドライバ群136との間で必要な通信プロトコル処理を実現するためのソフトウェアである。プロトコルスタック137は、信号入出力部110が処理する下位層の通信プロトコルに対して、その上位層で動作する通信プロトコルの処理を担う。これにより、デバイスドライバ群136と同様に、アプリケーションソフトウェア131に対して、車載処理装置10が情報の受け渡しを行う外部ハードウェアを抽象化して取り扱うためのインタフェースを提供する。プロトコルスタック137が取り扱う通信プロトコルとしては、例えば、IP(Internet Protocol)、TCP(Transmission Control Protocol)等が該当する。
 アプリケーションソフトウェア131は、デバイスドライバ群136とプロトコルスタック137とが提供する汎用的なインタフェースを用いることで、外部ハードウェアの具体的なハードウェア構成や入出力信号を意識せずに、信号入出力部110との間でデータの入出力を行うことができる。なお、このような汎用的なインタフェースとしては、例えばソケットインタフェースが該当する。
 処理部100において、信号入出力部110から読み出された入力データ142は、対応するデバイスドライバ群136とプロトコルスタック137を介して、アプリケーションソフトウェア131に渡される。一方、アプリケーションソフトウェア131から渡された出力データ143は、同様にしてプロトコルスタック137とデバイスドライバ群136を介して、信号入出力部110に書き出される。
 処理ソフトウェア130を図2のような構成とすることで、車載処理装置10のハードウェア構成に変更があっても、基本ソフトウェア132の一部(BIOS134とデバイスドライバ群136)のみを変更すればよく、アプリケーションソフトウェア131を流用することが可能である。また、車載処理装置10におけるアプリケーションソフトウェア131の構成や、車載処理装置10に接続される外部ハードウェアの構成が変更されても、基本ソフトウェア132を変更する必要がない。
(アプリケーションソフトウェアの構成)
 図3は、本発明の一実施形態に係る車載処理装置10におけるアプリケーションソフトウェア131の構成の一例を示す図である。図3に示すように、アプリケーションソフトウェア131は、データ適合層200と、データ管理層230と、データ演算層240と、の3階層で構成されている。
 データ適合層200は、基本ソフトウェア132で扱うデータ形式とデータ管理層230で扱うデータ形式との間で、データ形式の変換を行うための階層である。前述のように、基本ソフトウェア132のデバイスドライバ群136やプロトコルスタック137が提供するインタフェースにおいて扱われるデータは、通常、車載処理装置10が通信相手である外部ハードウェアとの間でやり取りするデータそのものである。すなわち、アプリケーションソフトウェア131の入力データ142や出力データ143のデータ形式は、車載処理装置10に外部ハードウェアとして接続される図1の外界センサ群20、内界センサ群30、地図情報管理装置40、アクチュエータ群50、車載用HMI装置60等の仕様に依存する。そのため、データ適合層200は、これらの外部ハードウェアにそれぞれ対応する複数のソフト部品により構成されている。図3の例では、データ適合層200は、外界センサ群20または内界センサ群30にそれぞれ対応するセンサAデータ適合部201およびセンサBデータ適合部202と、地図情報管理装置40に対応する地図情報管理装置データ適合部211と、車載用HMI装置60に対応する車載用HMI装置データ適合部212と、アクチュエータ群50にそれぞれ対応するアクチュエータAデータ適合部221およびアクチュエータBデータ適合部222と、の各ソフト部品で構成されている。これらの各ソフト部品が、対応する外部ハードウェアとデータ管理層230との間で、それぞれのデータ形式に応じたデータ形式の変換を行う。
 なお、データ管理層230では、後述するようにオブジェクトデータという抽象化したデータ形式を用いてデータの管理を行う。そのため、データ適合層200の各ソフト部品は、入力データ142に基づきオブジェクトデータを生成してデータ管理層230へ出力したり、データ管理層230からのオブジェクトデータに基づき出力データ143を生成したりする。
 また、車載処理装置10と接続される外部ハードウェアによっては、車載処理装置10との間でデータのやり取りをする際に、プロトコルスタック137よりも上位の通信プロトコルとして、そのハードウェアに特有の所定のデータ通信の手続(例えば、データ要求の送信等)が必要な場合がある。そのような、基本ソフトウェア132では対応できないハードウェア特有のデータ通信プロトコルの処理も、データ適合層200において対応するソフト部品の中で吸収することが好ましい。例えば、地図情報管理装置データ適合部211は、上記のようなハードウェア特有の通信プロトコル処理として、地図情報管理装置40から地図情報を入力データとして取得する際に、地図情報の提供を要求するメッセージを地図情報管理装置40に対して送信する。
 上記のように、アプリケーションソフトウェア131は、外部ハードウェアに対応する個々のソフト部品を互いに独立してデータ適合層200を構成している。そのため、車載処理装置10において外部ハードウェアの変更や追加があっても、それに対応するソフト部品のみ変更や追加をすればよく、他のソフト部品には影響を与えない。また、データ適合層200では、個々のソフト部品により、外部ハードウェアに依存するデータ形式を依存しないデータ形式に変換することでオブジェクトデータを生成し、上位階層であるデータ管理層230やデータ演算層240に渡すようにしている。これにより、車載処理装置10に接続される外部ハードウェアの構成に変更や追加があっても、データ管理層230やデータ演算層240には影響が及びにくい。
 データ管理層230は、記憶部120上(特に、RAM上)におけるデータの管理や操作を行う機能と、他の階層に対する共通インタフェースとを提供するための階層である。データ管理層230では、所定の対象要素に対応するデータの集合であるオブジェクトデータを単位として、記憶部120上でデータの管理および操作を行う。
 なお、オブジェクトデータが対応する「対象要素」とは、オブジェクトデータとして一纏めにした個々の情報要素が共通して表現する概念的な対象であり、例えば、外界センサ群20や内界センサ群30を構成する各種センサの検出対象や、アクチュエータ群50を構成する各種アクチュエータの制御対象などが該当する。好ましくは、特に外界センサ群20を構成する各外界センサについては、当該外界センサで認識された個々の環境要素(障害物、道路形状、交通ルール等)が対象要素に該当する。すなわち、外界センサというハードウェアそのものを抽象化するのではなく、外界センサの検出対象である環境要素を単位としてデータを抽象化し、オブジェクトデータとする方式を採ることが好ましい。なお、内界センサ群30を構成する各内界センサについては、各内界センサが状態量を検出する車両2を対象としてオブジェクトデータを構成しても良いし、個々の検出対象(例えば、車速センサであれば車速情報)毎にオブジェクトデータを構成しても良い。
 データ管理層230は、オブジェクトデータ管理部231、オブジェクトデータ操作インタフェース232、オブジェクトデータ群233、および設定情報データ群234で構成される。
 オブジェクトデータ管理部231は、オブジェクトデータ操作インタフェース232を介して他の階層から受けたデータ操作要求に基づき、記憶部120上で管理しているオブジェクトデータ群233に対してデータ操作を行い、その結果を返す。データ操作とは、例えば、オブジェクトデータの登録、更新、検索、統合等が含まれる。
 オブジェクトデータ操作インタフェース232は、他の階層であるデータ適合層200およびデータ演算層240がオブジェクトデータ管理部231の提供するデータ操作機能を利用するためのAPI(Application Programming Interface)に相当する。オブジェクトデータ群233を構成する各オブジェクトデータは、その対象要素に応じてデータ構造が異なる。そのため、オブジェクトデータ操作インタフェース232は、任意のオブジェクトデータを共通の操作手法で操作可能とするためのインタフェース(API)を提供する。
 オブジェクトデータ群233は、オブジェクトデータ管理部231が記憶部120上で管理しているオブジェクトデータの集合である。
 設定情報データ群234は、オブジェクトデータ管理部231がオブジェクトデータ群233の管理やデータ操作を行うために必要な設定情報の集合である。外界センサの構成変更等によりオブジェクトデータの構造が変更された場合は、それに合わせて、設定情報データ群234において当該オブジェクトデータに対応する設定情報が変更される。これにより、データ管理層230は、オブジェクトデータ管理部231やオブジェクトデータ操作インタフェース232に変更を加えずに、オブジェクトデータの変更に対応可能なように構成されている。
 データ演算層240は、データ管理層230から演算対象とするオブジェクトデータを取得し、該オブジェクトデータに基づき出力データを演算するための階層である。通常、出力データを演算する処理は、その演算内容に応じて複数の処理ブロックで構成される。そのため、データ演算層240は、個々の処理ブロックに対応する複数のソフト部品により構成されている。図3の例では、データ演算層240は、センサフュージョン演算部241と、地図フュージョン演算部242と、行動予測演算部243と、自動運転制御演算部244と、の各ソフト部品で構成されている。これらの各ソフト部品が行う演算処理により、外界センサ群20や内界センサ群30で検出された各種情報に基づき、車載処理装置10が搭載される車両2における自動運転の制御情報が演算される。
 センサフュージョン演算部241は、外界センサ群20に含まれる複数の外界センサで検出した同一の対象要素に対するオブジェクトデータを同定・統合したり、時系列情報に基づいて欠落データを補間したりする処理を行う。地図フュージョン演算部242は、外界センサの検出情報と、地図情報管理装置40から取得した地図データの情報とを照合し、外界センサの検出情報に地図データの情報(例えば、他車両が走行している車線ID等)を属性として付加する処理を行う。行動予測演算部243は、外界センサで検出した移動体の将来の行動や移動軌道を予測する処理を行う。自動運転制御演算部244は、センサフュージョン演算部241、地図フュージョン演算部242および行動予測演算部243の演算結果に基づいて、車両2の運転行動や走行軌道、速度プロファイル等を決定する。また、決定したこれらの情報を基に、アクチュエータ群50に対する制御情報や、車載用HMI装置60に対する表示情報を演算し、その演算結果をデータ適合層200に出力する。なお、図3の例では、アクチュエータ群50や車載用HMI装置60に固有の通信仕様を吸収するため、自動運転制御演算部244は、データ適合層200の車載用HMI装置データ適合部212やアクチュエータAデータ適合部221、アクチュエータBデータ適合部222を介して、出力データ143を生成している。しかし、このようにはせず、自動運転制御演算部244がアクチュエータ群50や車載用HMI装置60の通信仕様に合わせたデータを生成し、データ適合層200を介さずに直接基本ソフトウェア132に出力データ143を出力するような形態を取ってもよい。
 ここで、本実施形態によるアプリケーションソフトウェア131の構成と、従来技術によるアプリケーションソフトウェアの構成との違いについて説明する。従来技術では、センサやアクチュエータのインタフェース(データ)を抽象化する階層、すなわち図3のデータ適合層200に相当する階層と、抽象化されたデータを用いて演算する階層、すなわち図3のデータ演算層240に相当する階層との、言わば2階層の構成であった。それに対して、図3に例示したアプリケーションソフトウェア131の構成では、従来のデータ抽象化のアプローチに加えて、データの管理および操作を抽象化したデータ管理層230を導入している点が特徴である。
 ADASや自動運転における演算処理は、主に、外界センサの検出情報等の情報に基づいて車両2の周辺環境を高次に理解する認知処理と、認知処理の結果に基づいて車両2の運転行動や走行軌道を判断する判断処理とで構成される。これらの処理は、基本的に他車両や白線等の環境要素を単位として行われるものである。そのため、認知処理と判断処理とでは、データ管理、対象データ検索、他ソフト部品に対するデータ提供等、環境要素単位でのデータ管理・操作が共通して含まれることが多い。本発明はこの点に着目したものであり、データ管理層230において環境要素単位でのデータ管理・操作を抽象化して共通利用できるようにすることにより、従来の演算処理部分におけるソフトウェアの開発効率を向上させている。
 また、前述のようにデータ管理層230は、オブジェクトデータ管理部231で管理しているオブジェクトデータのデータ構造が変更されても、設定情報データ群234の設定を変更するだけで、他の階層に対するインタフェースを変更せずに利用できるように構成されている。そのため、従来のデータ抽象化のアプローチだけではソフトウェアの再利用性が限定的であった状況、例えばデータ構造の変更を必要とする外界センサの構成変更時などにおいても、高いソフトウェアの再利用性を維持することができる。
 また、データ管理層230の導入により、アプリケーションソフトウェア131において、データ管理層230が担うデータ管理機能と、データ演算層240が担う演算処理とを、機能的に分離することができる。そのため、演算処理の独立性が向上し、演算処理の変更や追加が容易になるという効果がある。詳しく説明すると、従来の方式では、演算処理ごとの処理ブロックを構成するソフト部品間でのデータの受け渡しを実現するために、ソフト部品間で必要なデータ変換を行うインタフェースを、図3のデータ演算層240に相当する階層内に構築していた。しかしこの方式では、あるソフト部品の修正が他のソフト部品にも影響を及ぼす可能性が高い。それに対し、本実施形態によるアプリケーションソフトウェア131の構成では、データ演算層240において演算処理を行う各ソフト部品は、原則として、データ管理層230のオブジェクトデータ操作インタフェース232を介して、互いにデータの受け渡しを行う。オブジェクトデータ操作インタフェース232は、データ演算層240のソフト部品間で受け渡されるデータを抽象化されたオブジェクトデータとして取り扱うことで、各ソフト部品に対して共通のAPIを提供している。そのため、データ演算層240の各ソフト部品は、操作対象のデータの提供元も利用先も意識する必要がない。その結果、各ソフト部品の独立性が高まり、他のソフト部品の変更や追加による影響を受けにくい。したがって、アプリケーションソフトウェア131の機能構成を変更した場合でも、高いソフトウェアの再利用性を維持することが可能である。
(オブジェクトデータ)
 図4は、オブジェクトデータ群233に格納されているオブジェクトデータの一例を示す図である。前述のように、オブジェクトデータ群233は、オブジェクトデータ管理部231が記憶部120上で管理しているオブジェクトデータの集合である。図4に示すように、オブジェクトデータ群233の各オブジェクトデータは、全てのオブジェクトデータに共通する情報であるID401、データソース402、オブジェクト種別403およびタイムスタンプ404の各情報が格納される共通データ領域400と、対象要素の種類に応じてオブジェクトデータごとに異なる情報が格納される固有データ領域405とで構成される。
 ID401には、該オブジェクトデータが示す対象要素を識別するための識別子が格納される。同一の対象要素(例えば、同じ車両)を示す複数のオブジェクトデータには、ID401において同一の値が設定される。
 データソース402には、該オブジェクトデータの生成元を示す情報が格納される。例えば、ID401の値がID=100であるオブジェクトデータ410は、データソース402に「センサA」が設定されている。これは、オブジェクトデータ410の生成元が外界センサ群20に含まれるセンサA(実際には、センサAデータ適合部201)であることを表している。また、ID401の値がID=1000であるオブジェクトデータ411は、データソース402に「センサフュージョン」が設定されている。これは、オブジェクトデータ411の生成元がセンサフュージョン演算部241であることを表している。
 オブジェクト種別403には、該オブジェクトデータが示す対象要素の概念的な種別を表す情報が格納される。オブジェクト種別403に格納される対象要素の種別には、例えば他車両、歩行者、白線等が挙げられる。
 タイムスタンプ404には、該オブジェクトデータに関する時間情報が格納される。タイムスタンプ404に設定される時間情報は、例えば、データソース402が表す該オブジェクトデータの生成元が外界センサ群20や内界センサ群30に含まれるセンサである場合は、該オブジェクトデータを検出した時刻に相当する。これにより、任意の時点における該オブジェクトデータの状態を推測する際に、該オブジェクトデータに時間に応じた補正をかけることが可能となる。なお、タイムスタンプ404には、車載処理装置10におけるオブジェクトデータの時間管理のポリシーに応じて、例えばデータ管理層230における該オブジェクトデータの更新時刻など、別の時間情報を格納してもよい。
 固有データ領域405には、データソース402とオブジェクト種別403の組合せに応じて、オブジェクトデータごとに異なるデータが格納されている。例えば、ID401の値がID=100であるオブジェクトデータ410と、ID401の値がID=101であるオブジェクトデータ412とは、データソース402が表す生成元が共に「センサA」であるため、同じセンサAの検出情報を表している。しかし、オブジェクト種別403が表す対象要素の種別は、オブジェクトデータ410では「他車両」であり、オブジェクトデータ412では「歩行者」である。したがって、これらのオブジェクトデータが表すセンサAの検出情報の内容は、対象要素の違いに応じて互いに異なっており、固有データ領域405に格納されるデータも異なる。また、例えば、ID401の値がID=100であるオブジェクトデータ410と、ID401の値がID=200であるオブジェクトデータ413とは、オブジェクト種別403が表す対象要素の種別が共に「他車両」であるため、同じ他車両に関する検出情報を表している。しかし、データソース402が表す生成元は、オブジェクトデータ410では「センサA」であり、オブジェクトデータ413では「センサB」である。したがって、これらのオブジェクトデータが表す他車両に関する検出情報の内容は、センサAとセンサBの仕様の違いに応じて互いに異なっており、固有データ領域405に格納されるデータも異なる。
 オブジェクトデータ管理部231は、共通データ領域400のID401、データソース402、オブジェクト種別403およびタイムスタンプ404に格納された各情報を用いて、オブジェクトデータ群233に格納されている各オブジェクトデータのインデックステーブルを構築している。例えば、ID401の値に基づいたハッシュテーブルをオブジェクトデータ管理部231において構築することで、該当するオブジェクトデータを高速に検索できるように構成されている。また、例えば、データソース402に格納されている各オブジェクトデータの生成元や、オブジェクト種別403に格納されている各オブジェクトデータの対象要素の種別毎に、該当するオブジェクトデータに対する参照リストをオブジェクトデータ管理部231において構築することで、生成元や対象要素の種別が同一である複数のオブジェクトデータを高速に取得できるように構成されている。
 なお、図4の例では、各オブジェクトデータの固有データ領域405に格納されるデータの一例を記載しているが、実際にはデータ管理層230は、固有データ領域405に格納されているデータの内容を意識しないで、各オブジェクトデータのデータ操作を行うように構成されている。そのため、外界センサ群20や内界センサ群30の構成が変わって対応するオブジェクトデータの構造が変更されても、データ管理層230のデータ操作に関するソフトウェアを修正する必要がない。
 また、データ管理層230は、同一の対象要素に関する複数のオブジェクトデータ(すなわち、ID401の値が同一である複数のオブジェクトデータ)を、時系列で所定数管理できるように構成されている。図4の例では、ID401の値がいずれもID=300である過去3回分の3つのオブジェクトデータ414と、ID401の値がいずれもID=301である過去3回分の3つのオブジェクトデータ415とが、それぞれ格納されている。こうした時系列での複数のオブジェクトデータの管理は、リングバッファ等の機構を利用することにより実現される。このような時系列での複数のオブジェクトデータは、該対象要素に関する欠落したデータの補間や将来の状態の予測に有効であり、例えば、センサフュージョン演算部241や行動予測演算部243等で利用される。
 なお、図4では、オブジェクトデータ群233に格納されているオブジェクトデータの例として、各種センサの検出情報を表すオブジェクトデータを示しているが、それ以外の情報を表すオブジェクトデータをオブジェクトデータ群233に格納してもよい。例えば、地図情報管理装置40から提供される地図情報を所定のデータ単位(例えば、道路区間単位)毎に分解し、オブジェクトデータとしてオブジェクトデータ群233に格納してもよい。また、データ演算層240を構成するソフト部品のうち、環境要素に関するものを除いたソフト部品からの出力結果を、オブジェクトデータとしてオブジェクトデータ群233に格納してもよい。前述の通り、オブジェクトデータの構造は汎用的に作られているため、任意の情報をオブジェクトデータとしてオブジェクトデータ群233に格納することが可能である。
 また、図4では、共通データ領域400にID401、データソース402、オブジェクト種別403およびタイムスタンプ404の各情報が設定されている例を示したが、これらの情報の全てを共通データ領域400に設定しなくてもよい。個々のオブジェクトデータを適切に管理したり、目的のオブジェクトデータを適切に検索したりできるように、共通データ領域400には任意の情報を設定することができる。
(設定情報)
 図5は、設定情報データ群234に格納されている設定情報の一例を示す図である。前述のように、設定情報データ群234は、外界センサの構成変更等によってオブジェクトデータの構造が変わった場合に変更が必要なパラメータ群の設定値を規定した設定情報の集合である。オブジェクトデータ管理部231は、車載処理装置10の起動時に設定情報データ群234から設定情報を読み込み、各オブジェクトデータに対応する設定情報に基づいて、オブジェクトデータ群233におけるオブジェクトデータのメモリ管理構造やデータ操作の適合化を行う。これにより、オブジェクトデータ操作インタフェース232を修正せずに、オブジェクトデータの変更に対応することを可能としている。図5に示すように、設定情報データ群234の各設定情報は、データソース501、オブジェクト種別502、データ長503、履歴数504および検索キー情報505で構成される。
 データソース501およびオブジェクト種別502は、図4のデータソース402およびオブジェクト種別403とそれぞれ同様である。データソース501とオブジェクト種別502にそれぞれ格納される情報の組合せにより、各設定情報が対象とするオブジェクトデータの種別(データ種別)が規定される。
 データ長503には、該データ種別に対応するオブジェクトデータのデータ長が格納される。
 履歴数504には、該データ種別において、データ管理層230が同一対象要素の時系列データをいくつ管理するかを示す情報が格納される。例えば、履歴数504に格納された値が1の場合は、時系列データを持たずに、最新値を示すオブジェクトデータだけが保存されることを意味している。
 検索キー情報505には、図4の固有データ領域405に格納されるオブジェクトデータの情報要素を用いて検索等のデータ操作を行う場合の設定情報が格納される。図5の例では、検索キー情報505において、該情報要素の識別子(Key)、該情報要素のデータ型(Type)、該オブジェクトデータの先頭アドレスから該情報要素のアドレスまでのオフセット値(Offset)が指定される。例えば、図5の最初のデータレコードにおける検索キー情報505は、生成元がセンサAであり、対象要素の種別が他車両であるオブジェクトデータにおいて、「相対位置」と「相対速度」という情報要素が、「2DVector(2次元ベクトル)」というデータ型で、それぞれ先頭から12バイトと20バイトの位置に格納されていることを示している。このように、固有データ領域405の情報要素についても、設定情報において検索キー情報505を付加することにより、オブジェクトデータ操作インタフェース232のデータ操作で扱うことを可能としている。すなわち、オブジェクトデータ操作インタフェース232によるオブジェクトデータの操作には、設定情報データ群234に格納されている設定情報に基づき、所定の検索条件に該当する固有データ領域405を有するオブジェクトデータを検索して取得する操作が含まれる。
 なお、本実施形態では、設定情報データ群234の読み込みによって異なるオブジェクトデータに適合する形態を取っているが、設定情報データ群234が存在しなかったとしても、データ管理層230の実現性には影響しない。例えば、データ長503や履歴数504には十分大きな固定値を定めておいてもよいし、検索キー情報505は付加機能であるため存在しなくても問題がない。また、オブジェクトデータ管理部231がアプリケーションソフトウェア131の実行時に設定情報データ群234を読み込むような形態ではなく、他の形態、例えばコンパイル時に静的に設定情報データ群234を設定するような形態でもよい。
(オブジェクトデータ操作インタフェース)
 図6および図7は、オブジェクトデータ操作インタフェース232の一例を示す図である。図6に示す疑似コード群C601および図7に示す疑似コード群C701は、オブジェクトデータ操作インタフェース232をC言語でそれぞれ記述した場合のヘッダファイルの一部を表現したものである。疑似コード群C601およびC701には、オブジェクトデータ操作インタフェース232のAPIとデータ型の例がそれぞれ記載されている。
 疑似コード群C601は、オブジェクトデータの登録APIを表す疑似コード611と、オブジェクトデータの更新APIを表す疑似コード612と、オブジェクトデータのID検索APIを表す疑似コード613と、オブジェクトデータの検索APIを表す疑似コード614と、オブジェクトデータの統合APIを表す疑似コード615と、オブジェクトデータの履歴情報検索APIを表す疑似コード616と、を含む。以下では、これらの疑似コードが表すAPIについて説明する。
 疑似コード611が表すオブジェクトデータの登録API(registerData)は、データ管理層230に新たに入力されたオブジェクトデータをオブジェクトデータ群233に格納する操作である「登録操作」のAPIである。この登録操作では、データ管理層230が複数のオブジェクトデータを時系列で管理する設定になっている場合は、既にオブジェクトデータ群233に格納されている複数のオブジェクトデータに、新たに入力されたオブジェクトデータを最新値として挿入(追加)し、格納されていた時系列データの世代を1つずつずらす操作を行う。一方、オブジェクトデータを時系列で管理しない設定になっている場合は、新たに入力されたオブジェクトデータと同一の対象要素を表すオブジェクトデータを、新しいオブジェクトデータに置き換える操作を行う。疑似コード611で表されるように、登録APIの引数は、登録対象のオブジェクトデータのデータ長と、登録対象のオブジェクトデータのアドレスとで構成される。なお、登録対象のオブジェクトデータの先頭には、図4で示したように、ID401、データソース402、オブジェクト種別403およびタイムスタンプ404で構成される共通データ領域400が必ず含まれている。オブジェクトデータ管理部231は、共通データ領域400に格納されているこれらの情報に基づき、該オブジェクトデータの格納場所をオブジェクトデータ群233において特定し、その場所に格納する。
 疑似コード612が表すオブジェクトデータの更新API(updateData)は、オブジェクトデータ群233に格納されているオブジェクトデータの一部または全部の領域を、データ管理層230に新たに入力されたオブジェクトデータに基づいて書き換える操作である「更新操作」のAPIである。なお、データ管理層230が複数のオブジェクトデータを時系列で管理する設定になっている場合は、前述の登録操作とは異なり、更新操作では、既にオブジェクトデータ群233に格納されている複数のオブジェクトデータのうち、最新のオブジェクトデータの一部または全部が、新たに入力されたオブジェクトデータに基づいて書き換えられる。疑似コード612で表されるように、更新APIの引数には、登録APIと同様の情報に加えて、当該オブジェクトデータにおける更新対象の領域を指定するための情報が追加されている。
 疑似コード613が表すオブジェクトデータのID検索API(getDataByID)は、オブジェクトデータ群233に格納されているオブジェクトデータの中から、指定するIDを持つオブジェクトデータの最新値を検索して返す操作である「ID検索操作」のAPIである。疑似コード613で表されるように、ID検索APIの引数は、検索対象のオブジェクトデータのIDと、検索結果を格納するバッファの情報とを含む。
 疑似コード614が表すオブジェクトデータの検索API(searchData)は、オブジェクトデータ群233に格納されているオブジェクトデータの中から、所定の検索条件に該当するオブジェクトデータを取得する操作である「検索操作」のAPIである。疑似コード614で表されるように、検索APIの引数は、検索条件式と、ソート条件式と、検索結果を格納するバッファの情報とを含む。この検索操作では、検索条件式に該当するオブジェクトデータのリストをソート条件式に従い整列した結果がバッファに格納される。
 検索APIにおける検索条件式とソート条件式は、例えば、図7の疑似コード群C701で表現される。疑似コード群C701は、検索条件式を表す疑似コード711と、ソート条件式を表す疑似コード712と、を含む。
 疑似コード711は、検索条件式において検索対象とするオブジェクトデータの情報要素を指定するためのキー(key)と、キーで指定された情報要素の値を比較演算するための比較演算子(compOp)および比較対象値(value)と、比較演算の結果を論理演算するための論理演算子(logicOp)と、を定義している。検索条件式は、これらの配列として、例えば以下の式(1)、(2)のように表現される。ただし、式(1)、(2)では、引数に与えたキーに該当する値を返す連想配列(objectData)を用いて検索条件式を表現している。検索APIでは、こうした検索条件式に従って、オブジェクトデータ群233に格納されているオブジェクトデータの中から、所定の検索条件に該当するオブジェクトデータを検索して取得することができる。
  {objectData[key0] <compOp0> value0} <logicOp0>  ・・・(1) 
  {objectData[key1] <compOp1> value1} <logicOp1>  ・・・(2)
 疑似コード712は、ソート条件式においてソート対象とオブジェクトデータの情報要素を指定するためのキー(key)と、キーで指定された情報要素をソートするためのソート順序(order)と、を定義している。ソート条件式は、これらの配列として表現される。検索APIでは、こうしたソート条件式に従って、所定の検索条件に該当するオブジェクトデータを、指定されたキーの値を基準に指定されたソート順序(昇順、降順等)でソートして取得することができる。
 なお、検索条件式やソート条件式のキーに相当する情報要素が当該オブジェクトデータにおいて複数存在する場合、比較演算やソートに用いるスカラー値の算出方法が別途定義されていてもよい。例えば、相対位置や相対速度の情報要素を含むオブジェクトデータに対して、検索条件式やソート条件式で「2DVector」を指定した場合は、当該ベクトルの長さ(ベクトルの各要素の平方和)を用いて比較演算やソートが行われる。これにより、距離検索等の操作が可能となる。
 図6に示す疑似コード群C601の説明に戻ると、疑似コード615が表すオブジェクトデータの統合API(mergeData)は、オブジェクトデータ群233に格納されている2つのオブジェクトデータを1つに統合する「統合操作」のAPIである。疑似コード615で表されるように、統合APIの引数は、統合先のオブジェクトデータのID(destId)と、統合元のオブジェクトデータのID(srcId)とを含む。この統合操作では、データ管理層230が時系列で管理する複数のオブジェクトデータのうち、統合先IDで指定される複数のオブジェクトデータに、統合元IDで指定される複数のオブジェクトデータが組み込まれる。
 疑似コード616が表すオブジェクトデータの履歴情報検索API(getHistoryData)は、オブジェクトデータ群233に格納されている複数のオブジェクトデータの中から、指定するIDを持つ時系列で管理された複数のオブジェクトデータを、当該オブジェクトデータの時系列情報として取得する操作である「履歴情報検索操作」のAPIである。疑似コード616で表されるように、履歴情報検索APIの引数は、検索対象とするオブジェクトデータのIDと、検索結果を格納するバッファの情報とを含む。
 以上のように、オブジェクトデータ操作インタフェース232は、オブジェクトデータのデータ構造に依存しないデータ型で引数が定義されている。そのため、車載処理装置10に接続される外部ハードウェアの構成や、車載処理装置10に搭載される機能構成等に変更があっても、オブジェクトデータ操作インタフェース232を修正する必要がない。
(アプリケーションソフトウェアの処理フロー)
 図8は、本発明の一実施形態に係る車載処理装置10におけるアプリケーションソフトウェア131の処理フローの一例である処理フロー800を示す図である。図8に示す処理フロー800は、アプリケーションソフトウェア131により、車載処理装置10の処理部100において、例えば所定の時間間隔(100ms等)で定期的に実行される。なお、本実施形態では、逐次的に各処理ステップが実行される処理フロー800としてアプリケーションソフトウェア131の処理を説明するが、各処理ステップは所定のイベントに基づいて非同期に実行しても良いし、並列実行しても良い。
 処理フロー800において、処理部100は、初めに外部入力処理(S801)を実行する。この外部入力処理は、データ適合層200の各ソフト部品が、基本ソフトウェア132から通知された入力データ142を処理して、データ管理層230にオブジェクトデータを登録する処理である。図3で示したように、データ適合層200は、車載処理装置10の外部に接続されるハードウェアからの入力データ142に対応するソフト部品として、センサAデータ適合部201、センサBデータ適合部202、地図情報管理装置データ適合部211等を有している。これらのソフト部品は、対応する外部ハードウェアからの入力データ142をそれぞれの通信仕様に基づいて解析し、対象要素に関する情報を抽出する。続いて、抽出した情報を該対象要素に対応するオブジェクトデータの形式に変換し、オブジェクトデータ操作インタフェース232の登録APIを介して、オブジェクトデータ群233に格納する。なお、ここでのオブジェクトデータの形式とは、データ構造だけでなく、各情報要素の表現仕様(例えば、単位系、座標系、時刻系等)も含む。例えば、座標系については、車両2の基準点を原点とし、車両2の正面方向をx軸、左方向をy軸とした直交座標系で統一する。また、外界センサで表現されるデータは、当該センサの車両2での取り付け位置や当該センサの仕様に依存して変化するため、共通の座標系に変換することで、データ演算層240の各ソフト部品がセンサ固有の仕様を意識せずに演算処理を実行できるようにする。時刻系についても同様に、外界センサの仕様に応じて遅れ時間(対象要素を検出した時刻とデータを出力した時刻との差)が異なるので、その遅れ時間の分を補正して、オブジェクトデータのタイムスタンプを設定する。
 なお、図4に示したように、オブジェクトデータは、ID401、データソース402、オブジェクト種別403およびタイムスタンプ404を含む共通データ領域400と、固有データ領域405とで構成される。本実施形態では、外界センサの検出情報に対応するオブジェクトデータについては、さらに以下に説明するようにしてデータ構造のモデル化を行い、ソフトウェアの再利用性を高めることも可能である。
 図9は、オブジェクトデータのモデル化の一例を示す図である。図9に示すオブジェクトデータの構造例において、共通データ領域901と固有データ領域902は、それぞれ図4の共通データ領域400と固有データ領域405に該当する。固有データ領域902に格納される情報は、データソースやオブジェクト種別に応じて異なるが、同様の性質を持つ対象要素を表現する場合、固有データ領域405における情報要素の類似性は高くなる。そこで、性質が近い対象要素毎にデータモデルを構築し、固有データ領域902を、データモデルヘッダと固有データに分割する。具体的には、図9に示すように、オブジェクト種別が他車両、歩行者、自転車等であり、これらの物体に関する対象要素の各オブジェクトデータには、共通の物体データモデルヘッダ911を適用する。物体データモデルヘッダ911には、例えば、相対位置915、相対速度916等が含まれる。一方、オブジェクト種別が白線、駐車枠、道路境界等であり、境界線や領域に関する対象要素の各オブジェクトデータには、共通の境界データモデルヘッダ921を適用する。境界データモデルヘッダ921には、例えば、境界種別923(白線、駐車枠等)、境界点列情報924(境界形状を表現する点列)等が含まれる。このように、共通の性質を持つ対象要素を表現する複数のオブジェクトデータをまとめて、これらのオブジェクトデータに対して共通のデータモデルを構築することで、共通の定義によるデータ領域部分を規定することができる。これにより、オブジェクトデータ内で外界センサの構成変更に影響を受ける部分(各種固有データ912、913、914、922等)を局所化して、そうでない部分と区別することができる。そのため、さらにソフトウェアの再利用性を高めることが可能である。
 図8の処理フロー800に説明を戻す。ステップS801で外部入力処理が終了すると、続いて処理部100は、データ演算層240の各種演算処理に移る。ステップS802~S805は、それぞれ、センサフュージョン演算部241、地図フュージョン演算部242、行動予測演算部243、自動運転制御演算部244による演算処理である。
 ステップS802~S804の各演算処理は、車両2の周辺環境を理解(認知)するための演算処理である。そのため、以降ではステップS802~S804の各演算処理を、認知処理とも称する。また、これらの演算処理(認知処理)を実行するセンサフュージョン演算部241、地図フュージョン演算部242、行動予測演算部243を、それぞれ環境認知ソフト部品とも称する。
 環境認知ソフト部品で実行される認知処理とは、各外界センサから得られた断片的な検出情報や、地図や通信等で得られる情報等を組み合わせて、各対象要素の状態をより高次に推定するための処理である。例えば、車両2の先行車を対象要素とした場合、センサフュージョン演算処理(S802)では、外界センサだけで検出可能な相対位置や相対速度等の物理的な特性しか把握できない。一方、地図フュージョン演算処理(S803)では、地図データと照合することにより、先行車がどの車線を、車両2とどのような位置関係で走行しているのかを推定できるようになる。また、行動予測演算処理(S804)では、先行車が将来どのような動きをするのかを推定することができる。これらの処理は、該対象要素に関する新しい状態量を推定して追加していく処理、すなわち、該対象要素のオブジェクトデータに新しい情報要素を付加していく処理とみなすことができる。
 上記のような認知処理の特徴を踏まえて、本実施形態では、図10に示すようなデータ構造でオブジェクトデータを構成することも可能である。図10は、認知処理の部分更新に対応したオブジェクトデータの構造の一例を示す図である。図10に示すデータ構造では、オブジェクトデータにおける固有データ領域902を、それぞれの演算処理の更新対象に応じて分類し、別々のレコード(メモリ上で連続した領域)として構成している。具体的には、センサフュージョン演算処理の更新対象である基本情報レコード1001と、地図フュージョン演算処理の更新対象である地図属性レコード1002と、行動予測演算処理の更新対象である予測情報レコード1003とで、固有データ領域902が構成されている。
 図10に示すデータ構造のオブジェクトデータにおいて、ステップS802でセンサフュージョン演算部241が実行したセンサフュージョン演算処理による対象要素の推定結果は、基本情報レコード1001に格納される。一方、ステップS803で地図フュージョン演算部242が実行した地図フュージョン演算処理による対象要素の推定結果は、地図属性レコード1002に格納される。また、ステップS804で行動予測演算部243が実行した行動予測演算処理による対象要素の推定結果は、予測情報レコード1003に格納される。これにより、環境認知ソフト部品であるセンサフュージョン演算部241、地図フュージョン演算部242および行動予測演算部243の各々は、それぞれの認知処理による対象要素の状態の推定結果を、オブジェクトデータにおいて別々のデータ領域に格納することができる。
 なお、図9に示したオブジェクトデータの構造例におけるデータモデルヘッダ、すなわち物体データモデルヘッダ911や境界データモデルヘッダ921を、図10に示すデータ構造に含めても良い。この場合、基本情報レコード1001の中にデータモデルヘッダが含まれていても良いし、基本情報レコード1001、地図属性レコード1002、予測情報レコード1003の各レコードに分散してデータモデルヘッダが配置されていても良い。
 図10に示す疑似コードC1004~C1007は、図10の上記オブジェクトデータの構造体と、ステップS802~S804の各認知処理におけるオブジェクト更新処理とをそれぞれ記述した例である。ステップS802のセンサフュージョン演算処理では、各種外界センサのオブジェクトデータを統合したオブジェクトデータを新しく生成するため、疑似コードC1005で表されるように、オブジェクトデータの更新に登録APIが使われる。それに対して、ステップS803の地図フュージョン演算処理やステップS804の行動予測演算処理では、疑似コードC1006、C1007でそれぞれ表されるように、更新APIを用いて、地図属性レコード1002、予測情報レコード1003に相当する部分をそれぞれ更新する。
 以上説明したようなデータ構造をオブジェクトデータにおいて採用することで、以下に説明する2つの効果がもたらされる。まず1点目の効果としては、疑似コードC1006、C1007でそれぞれ表されるオブジェクトデータの更新処理では、お互いに異なるメモリ領域が更新される。そのため、地図フュージョン演算処理と行動予測演算処理とを並列に実行することが可能となる。これにより、処理部100が複数のプロセッサ、または複数のコアで構成されている場合に、効率的にこれらの演算処理を実行することが可能となる。次に2点目の効果としては、新しい演算処理に関するソフト部品の追加や変更時のソフトウェアの再利用性が向上する。すなわち、新しい演算処理を追加する場合は、疑似コードC1004で表されるオブジェクトデータの構造体に新しいレコードを追加すれば良く、既存のプログラム上の参照関係に影響を及ぼさないため、疑似コードC1006や疑似コードC1007に修正を加えなくても良い。同様にして、演算処理の変更によりデータ構造を変える場合も、変更が必要な部分は基本情報レコード1001、地図属性レコード1002、予測情報レコード1003の各レコード内に限定されるため、他の演算処理に影響を与えることはない。
 ステップS805の自動運転制御演算処理は、ステップS802~S804の各認知処理の結果に基づいて車両2の制御情報を演算する処理である。自動運転制御演算部244は、ステップS802~S804の各認知処理によって生成されたオブジェクトデータに基づいて、車両2の運転行動(例えば、車線を追従するか、車線変更をするか等)や、それに基づく走行軌道(速度情報を含む)の計画を立てる。そして、該運転行動の実行や該走行軌道の追従に必要なアクチュエータ群50に対する制御指令値を演算する。
 図8の処理フロー800に説明を戻す。ステップS805の自動運転制御演算処理が終了すると、処理部100は、外部出力処理(S806)に移る。ステップS806の外部出力処理では、ステップS805で自動運転制御演算部244が演算したアクチュエータ群50に対する制御指令値を、各アクチュエータの通信仕様に適合したデータ形式に変換し、変換後のデータを出力データ143として基本ソフトウェア132に出力する。このデータ形式の変換は、各アクチュエータに対応するデータ適合層200のソフト部品、すなわち図3のアクチュエータAデータ適合部221やアクチュエータBデータ適合部222によって行われる。
 以上のような処理の流れにより、図3で示したアプリケーションソフトウェア131の1サイクルの処理が実行される。車載処理装置10では、定期的に(例えば100ms毎に)処理フロー800に従った処理が処理部100において実行されることで、ADASや自動運転の機能が実現される。
(アプリケーションソフトウェアの修正)
 次に、図11の例を用いて、車載処理装置10において外部ハードウェア構成や機能構成の変更があった場合のアプリケーションソフトウェア131の修正方法について説明する。図11は、本発明の一実施形態に係る車載処理装置10における変更後のアプリケーションソフトウェア131の構成の一例を示す図である。図11では、車載処理装置10に接続される外部ハードウェアとして無線通信装置を追加し、この無線通信装置からの情報を加味して自動運転制御を高度化するシステム変更を行った場合の、アプリケーションソフトウェア131の構成例を示している。
 なお、上記の無線通信装置とは、例えば、道路インフラとの通信(路車間通信)や他車両との通信(車車間通信)を実現するための装置である。車載処理装置10は、無線通信装置からの情報として、渋滞、工事、信号等の道路インフラに関する情報や、他車両内部の情報(アクセル開度、ブレーキ情報、走行経路情報等)を取得できるようになる。そのため、外界センサや地図情報では取得できない新しい付加情報があり、これらを用いることにより、自動運転制御の演算を高度化することが可能となる。
 無線通信装置で取得できるデータ(以降、通信データと呼ぶ)では、通常、当該データが表す対象物の位置がグローバル座標系(緯度、経度)で表現される。それに対して、外界センサ群20で取得されるデータは、車両2を中心とした車両座標系で表現される。そのため、センサデータと通信データを統合するためには、センサフュージョン演算部241によるセンサフュージョン演算処理を適用できず、新たな演算処理を追加する必要がある。また、通信データの情報を付加するにあたり、該当する対象要素(他車両等)のオブジェクトデータの構造も修正が必要である。本実施形態のアプリケーションソフトウェア131では、自動運転制御演算部244の修正に加えて、データ適合層200における無線通信装置データ適合部1101の追加と、データ管理層230における設定情報データ群234への新しいオブジェクトデータの定義情報の追加と、データ演算層240における通信データフュージョン演算部1102の追加とにより、上記のようなシステム変更を実現できる。
 まず、データ管理層230の修正部分について説明する。データ管理層230の修正は、設定情報データ群234の修正により実現される。図12は、変更後の設定情報データ群234に格納されている設定情報の一例を示す図である。図12では、無線通信装置から取得する各種データを格納するため、無線通信装置をデータソースとする設定情報レコードが追加されている。なお、図12では他車両に関するオブジェクトデータに対応する設定情報レコードのみを追加の設定情報レコードとして示しているが、他のオブジェクトデータに対応する設定情報レコードをさらに追加してもよい。また、図12では、通信データの情報付加のため、センサフュージョンに関するオブジェクトデータのうち、通信データと関連する一部のオブジェクトデータのデータ長が、情報付加分に合せて変更されている。データ管理層230では、これらの設定情報の修正だけでシステム変更が実現可能であり、オブジェクトデータ管理部231やオブジェクトデータ操作インタフェース232はそのまま利用することができる。
 次に、データ適合層200の修正部分について説明する。データ適合層200の修正は、図11に示したように、無線通信装置データ適合部1101の追加により実現される。無線通信装置データ適合部1101は、無線通信装置に特有の各種データの形式を、データ管理層230で管理するオブジェクトデータの形式に変換して、オブジェクトデータ群233に格納する。前述したように、データ適合層200の各ソフト部品は互いに独立しているため、無線通信装置データ適合部1101の追加による影響を他のソフト部品が受けることはない。また、上述のように、データ管理層230のオブジェクトデータ操作インタフェース232も変更されないため、データ適合層200の既存のソフト部品はそのまま利用することができる。
 最後に、データ演算層240の修正部分について説明する。データ演算層240の修正は、自動運転制御演算部244の修正を除くと、図11に示したように、通信データフュージョン演算部1102の追加により実現される。通信データフュージョン演算部1102は、オブジェクトデータ管理部231から、生成元が通信データと関連するセンサフュージョンであるオブジェクトデータと、生成元が無線通信装置であるオブジェクトデータとを含むデータ群を取得し、所定の演算に基づいて、同一の対象要素に対するオブジェクトデータを同定・統合する。例えば、他車両を示すセンサフュージョンにより生成されたオブジェクトデータと、同じく他車両を示す無線通信装置からのオブジェクトデータ(通信データ)とが、同一の対象要素に対応する場合には、前者のオブジェクトデータに通信データの情報を付加して更新する。
 図13は、システム変更を加えた場合のセンサフュージョンのオブジェクトデータの構造の一例を示す図である。図13のデータ構造では、図10に示したシステム変更を加える前のデータ構造と比較して、固有データ領域1201に通信情報レコード1202が追加されている。また、図13に示す疑似コードC1203、C1204は、図13の上記オブジェクトデータの構造体と、通信データフュージョン演算部1102が実行する通信データフュージョン演算とをそれぞれ記述した例である。疑似コードC1203では、図10で示した変更前のオブジェクトデータの構造体を表す疑似コードC1004に対して、通信情報レコード1202に相当する構造体が追加されている。通信データフュージョン演算部1102は、疑似コードC1204に示すような方法でデータ演算層240に実装され、通信データの情報をオブジェクトデータに付加、更新するためのデータフュージョン演算を実現する。
 ここで、既存のソフト部品によるオブジェクトデータの更新処理を表す疑似コードC1005、C1006、C1007は、図10に示した内容から全く変更されていない。その一つ目の理由としては、データ演算層240の各ソフト部品は、抽象化されたオブジェクトデータ操作インタフェース232を介してデータの入出力を行っており、ソフト部品間に依存関係がないことに拠る。すなわち、ソフト部品間に依存関係がないため、データ演算層240に通信データフュージョン演算部1102が追加されたとしても、既存の他のソフト部品が影響を受けることがなく、したがって修正の必要もない。また、二つ目の理由としては、各ソフト部品で扱うメモリ領域を分けて定義していることで、操作対象のオブジェクトデータの構造を変更した場合でも、その影響が既存のソフト部品に伝播しないようになっているためである。以上の仕組みにより、システム変更が行われた場合でも、センサフュージョン演算部241、地図フュージョン演算部242、行動予測演算部243の各ソフト部品をそのまま利用することができる。
 本実施形態では、以上説明したようなアプリケーションソフトウェア131の構成を採用することで、例えば車載処理装置10のデータ構造や機能構成が変更された場合など、従来では再利用が困難であったケースでも、アプリケーションソフトウェア131の再利用性を高めることが可能である。したがって、様々な局面において、車載処理装置10におけるアプリケーションソフトウェア131の再利用性を向上させることができる。
 以上のように、本実施形態によれば、アプリケーションソフトウェア131をデータ適合層200、データ管理層230、データ演算層240の3つに階層化し、データ管理・操作を抽象化して共通利用できるようにしている。これにより、従来では演算処理を行うソフト部品毎に個別に実装する必要があったデータ管理・操作部分を再利用することができるため、アプリケーションソフトウェア131の開発効率が向上する。また、データ管理層230のインタフェースは、管理するデータ構造が変更されても変わらないように構成されているため、外界センサの構成変更時のような場合でも、各ソフト部品のデータ管理・操作部分はそのまま利用することが可能である。
 また、本実施形態によれば、アプリケーションソフトウェア131をデータ適合層200、データ管理層230、データ演算層240の3つに階層化することにより、データ管理と演算処理とを機能的に分離することができる。そのため、演算処理の独立性が向上し、演算処理の変更や追加が容易になる。本ソフトウェア構成では、データ演算層240のソフト部品間のデータの受け渡しは、原則として、データ管理層230のオブジェクトデータ操作インタフェース232を介して行われる。オブジェクトデータ操作インタフェース232は抽象化されているため、データ演算層240の各ソフト部品は操作対象のデータの提供元も利用先も意識する必要がない。そのため、各ソフト部品の独立性が高まり、他のソフト部品の変更や追加による影響を受けにくく、機能構成変更時でも、既存のソフト部品を再利用できる可能性が高くなる。
 以上説明した本発明の実施形態によれば、以下の作用効果を奏する。
(1)車両2に搭載される車載処理装置10は、外部からの入力信号に基づく入力データ142を生成する信号入力部111と、入力データ142に基づき出力データ143を演算する演算処理を実行する処理部100と、出力データ143に基づく出力信号を生成して外部に出力する信号出力部112と、処理部100に演算処理を実行させるためのアプリケーションソフトウェア131を記憶する記憶部120とを備える。アプリケーションソフトウェア131は、所定の対象要素に対応するデータの集合であるオブジェクトデータを記憶部120上で管理するためのデータ管理層230と、入力データ142に基づきオブジェクトデータを生成し、生成したオブジェクトデータをデータ管理層230に出力するためのデータ適合層200と、データ管理層230からオブジェクトデータを取得し、取得したオブジェクトデータに基づき出力データ143を演算するためのデータ演算層240と、を有する。このようにしたので、車載処理装置10におけるアプリケーションソフトウェア131の再利用性を向上させることができる。
(2)データ管理層230は、データ管理層230が管理するオブジェクトデータをデータ適合層200およびデータ演算層240が操作するためのオブジェクトデータ操作インタフェース232を有する。オブジェクトデータ操作インタフェース232は、データ構造が異なる複数のオブジェクトデータを共通の操作手法で操作可能に構成される。このようにしたので、例えば車載処理装置10に接続される外部ハードウェアの変更や、車載処理装置10における機能構成の変更など、様々なシステム構成の変更に対して柔軟に対応可能であり、高い再利用性を有するアプリケーションソフトウェア131を提供することができる。
(3)オブジェクトデータ操作インタフェース232によるオブジェクトデータの操作は、データ管理層230が管理するオブジェクトデータの中から、引数として指定可能な検索条件に該当するオブジェクトデータを取得する検索操作を含む。この検索操作における検索条件は、例えば式(1)、(2)のように、オブジェクトデータを構成する情報要素に関する比較演算を含む検索条件式で表現される。また、複数の比較演算の結果の論理演算をさらに含むこともできる。さらにこの検索操作では、引数として指定可能なソート条件に基づき、検索条件に該当するオブジェクトデータをソートして取得することもできる。このようにしたので、データ演算層240やデータ適合層200の各ソフト部品は、全体のオブジェクトデータの中から所望するオブジェクトデータを抽出する処理を個別に実装することなく、任意の所望するオブジェクトデータを選択的に取得することが可能であり、高い再利用性を有するアプリケーションソフトウェア131を提供することができる。
(4)また、オブジェクトデータ操作インタフェース232によるオブジェクトデータの操作は、データ管理層230が管理するオブジェクトデータを、データ管理層230に新たに入力されたオブジェクトデータに置き換える登録操作と、データ管理層230が管理するオブジェクトデータの一部を、データ管理層230に新たに入力されたオブジェクトデータに基づいて書き換える更新操作と、を含む。このようにしたので、データ演算層240の各ソフト部品による演算結果や、データ適合層200の各ソフト部品からの入力情報に基づき、データ管理層230において適切にオブジェクトデータの管理を行うことができる。
(5)データ管理層230は、同一の対象要素に関する複数のオブジェクトデータを時系列で管理できるように構成されている。この場合、オブジェクトデータ操作インタフェース232によるオブジェクトデータの操作は、データ管理層230が時系列で管理する複数のオブジェクトデータを取得する操作を含む。また、データ管理層230が時系列で管理する複数のオブジェクトデータに、データ管理層230に新たに入力されたオブジェクトデータを追加する登録操作と、データ管理層230が時系列で管理する複数のオブジェクトデータのうち最新のオブジェクトデータの一部を、データ管理層230に新たに入力されたオブジェクトデータに基づいて書き換える更新操作と、を含む。さらに、データ管理層230が時系列で管理する第1の対象要素に関する複数のオブジェクトデータに、データ管理層120が時系列で管理する第2の対象要素に関する複数のオブジェクトデータを組み込む統合操作を含む。このようにしたので、時系列での複数のオブジェクトデータについても、データ管理層230において適切に管理することができる。
(6)オブジェクトデータは、データ管理層230が管理する全てのオブジェクタデータに対して共通の情報が格納される共通データ領域400と、対象要素の種類に応じて異なる情報が格納される固有データ領域405とを有する。共通データ領域400には、対象要素を識別するための識別子であるID401と、当該オブジェクトデータの生成元を示す情報であるデータソース402と、対象要素の概念的な種別を示す情報であるオブジェクト種別403と、当該オブジェクトデータに関する時間情報であるタイムスタンプ404と、のいずれか1つ以上を含む。このようにしたので、データ管理層230において、データ構造が異なる個々のオブジェクトデータを共通のインタフェースで管理および操作することが可能となる。
(7)データ管理層230は、オブジェクトデータに関する設定情報の集合である設定情報データ群234を有する。オブジェクトデータ操作インタフェース232によるオブジェクトデータの操作は、データ管理層230が管理するオブジェクトデータの中から、引数として指定可能な検索条件に該当する固有データ領域405を有するオブジェクトデータを、設定情報における検索キー情報505に基づき取得する検索操作を含む。このようにしたので、オブジェクトデータ操作インタフェース232のデータ操作により、固有データ領域405の情報要素についても、任意のオブジェクトデータを検索して取得することができる。
(8)データ演算層240は、複数のソフト部品で構成されており、複数のソフト部品間におけるデータの受け渡しは、データ管理層230を介して行われる。このようにしたので、データ演算層240における各ソフト部品の独立性を高めることができ、車載処理装置10における機能構成の変更時にも高い再利用性を有するアプリケーションソフトウェア131を提供することができる。
(9)データ演算層240における複数のソフト部品は、データ管理層230から取得したオブジェクトデータに基づき、車両2の周辺環境における対象要素の状態を推定するための認知処理を処理部100に実行させる環境認知ソフト部品として、例えばセンサフュージョン演算部241、地図フュージョン演算部242、行動予測演算部243等を含む。これらの環境認知ソフト部品は、対象要素の状態の推定結果を、データ管理層230が管理するオブジェクトデータに格納する。このとき、これらの環境認知ソフト部品の各々は、対象要素の状態の推定結果を、データ管理層230が管理するオブジェクトデータにおいて別々のデータ領域、すなわち基本情報レコード1001、地図属性レコード1002、予測情報レコード1003にそれぞれ格納する。このようにしたので、処理部100が複数のプロセッサまたは複数のコアで構成されている場合に、複数の認知処理を並列に実行して処理の効率化を図ることができる。また、データ演算層240におけるソフト部品の追加や変更が容易となり、アプリケーションソフトウェア131の再利用性をさらに向上させることができる。
 なお、以上で説明した実施形態は一例であり、本発明はこれに限られない。すなわち、様々な応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。例えば、上記実施形態では、車載処理装置10が処理部100と記憶部120をそれぞれ一つずつ有しており、車載処理装置10における各処理は、この処理部100と記憶部120を用いて実行されるように記載している。しかし、車載処理装置10が処理部100と記憶部120をそれぞれ複数ずつ有するようにして、各処理が複数の処理部100と記憶部120を用いて実行されるようにしてもよい。その場合は、例えば、同様の構成を持つ処理ソフトウェアが別々の記憶部120に搭載され、複数の処理部100で分担して当該処理を実行することもできる。
 また、上記の実施形態では、車載処理装置10の各処理を、処理部100と記憶部120をそれぞれ構成するプロセッサとRAMを用いて、所定の動作プログラムを実行することで実現しているが、必要に応じて独自のハードウェアで実現することも可能である。また、上記の実施形態では、車載処理装置10、外界センサ群20、内界センサ群30、地図情報管理装置40、アクチュエータ群50、車載用HMI装置60をそれぞれ個別の装置として記載しているが、必要に応じて任意のいずれか2つ以上を組み合せて実現することも可能である。
 上記の実施形態では、本発明を車両システム1で用いられる車載処理装置10のソフトウェアに適用した例を説明したが、他のシステムに搭載される処理装置や演算装置のソフトウェアに適用することも可能である。例えば、ロボットシステムに搭載されてロボットの制御に関する各種演算処理を実行する演算装置のソフトウェア等においても、本発明を適用可能である。
 また、図面には、実施形態を説明するために必要と考えられる制御線や情報線を示しており、必ずしも、本発明が適用された実際の製品に含まれる全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてもよい。
 次の優先権基礎出願の開示内容は引用文としてここに組み込まれる。
 日本国特許出願2016年第195804号(2016年10月3日出願)
 1:車両システム、2:車両、10:車載処理装置、20:外界センサ群、30:内界センサ群、40:地図情報管理装置、50:アクチュエータ群、60:車載用HMI装置、100:処理部、110:信号入出力部、111:信号入力部、112:信号出力部、120:記憶部、130:処理ソフトウェア、131:アプリケーションソフトウェア、132:基本ソフトウェア、134:BIOS、135:OS、136:デバイスドライバ群、137:プロトコルスタック、200:データ適合層、230:データ管理層、240:データ演算層

Claims (15)

  1.  車両に搭載される車載処理装置であって、
     外部からの入力信号に基づく入力データを生成する信号入力部と、
     前記入力データに基づき出力データを演算する演算処理を実行する処理部と、
     前記出力データに基づく出力信号を生成して外部に出力する信号出力部と、
     前記処理部に前記演算処理を実行させるためのアプリケーションソフトウェアを記憶する記憶部と、を備え、
     前記アプリケーションソフトウェアは、
     所定の対象要素に対応するデータの集合であるオブジェクトデータを前記記憶部上で管理するためのデータ管理層と、
     前記入力データに基づき前記オブジェクトデータを生成し、生成した前記オブジェクトデータを前記データ管理層に出力するためのデータ適合層と、
     前記データ管理層から前記オブジェクトデータを取得し、取得した前記オブジェクトデータに基づき前記出力データを演算するためのデータ演算層と、を有する車載処理装置。
  2.  請求項1に記載の車載処理装置において、
     前記データ管理層は、前記データ管理層が管理するオブジェクトデータを前記データ適合層および前記データ演算層が操作するためのインタフェースを有し、
     前記インタフェースは、データ構造が異なる複数の前記オブジェクトデータを共通の操作手法で操作可能に構成される車載処理装置。
  3.  請求項2に記載の車載処理装置において、
     前記インタフェースによる前記オブジェクトデータの操作は、前記データ管理層が管理するオブジェクトデータの中から、引数として指定可能な検索条件に該当するオブジェクトデータを取得する検索操作を含む車載処理装置。
  4.  請求項3に記載の車載処理装置において、
     前記検索条件は、前記オブジェクトデータを構成する情報要素に関する比較演算を含む検索条件式で表現される車載処理装置。
  5.  請求項4に記載の車載処理装置において、
     前記検索条件式は、複数の前記比較演算の結果の論理演算をさらに含む車載処理装置。
  6.  請求項3に記載の車載処理装置において、
     前記検索操作では、引数として指定可能なソート条件に基づき、前記検索条件に該当するオブジェクトデータをソートして取得する車載処理装置。
  7.  請求項2に記載の車載処理装置において、
     前記インタフェースによる前記オブジェクトデータの操作は、
     前記データ管理層が管理するオブジェクトデータを、前記データ管理層に新たに入力されたオブジェクトデータに置き換える登録操作と、
     前記データ管理層が管理するオブジェクトデータの一部を、前記データ管理層に新たに入力されたオブジェクトデータに基づいて書き換える更新操作と、を含む車載処理装置。
  8.  請求項2に記載の車載処理装置において、
     前記データ管理層は、同一の対象要素に関する複数のオブジェクトデータを時系列で管理できるように構成されており、
     前記インタフェースによる前記オブジェクトデータの操作は、前記データ管理層が時系列で管理する複数のオブジェクトデータを取得する操作を含む車載処理装置。
  9.  請求項8に記載の車載処理装置において、
     前記インタフェースによる前記オブジェクトデータの操作は、
     前記データ管理層が時系列で管理する複数のオブジェクトデータに、前記データ管理層に新たに入力されたオブジェクトデータを追加する登録操作と、
     前記データ管理層が時系列で管理する複数のオブジェクトデータのうち最新のオブジェクトデータの一部を、前記データ管理層に新たに入力されたオブジェクトデータに基づいて書き換える更新操作と、を含む車載処理装置。
  10.  請求項8に記載の車載処理装置において、
     前記インタフェースによる前記オブジェクトデータの操作は、前記データ管理層が時系列で管理する第1の対象要素に関する複数のオブジェクトデータに、前記データ管理層が時系列で管理する第2の対象要素に関する複数のオブジェクトデータを組み込む統合操作を含む車載処理装置。
  11.  請求項2に記載の車載処理装置において
     前記オブジェクトデータは、前記データ管理層が管理する全てのオブジェクタデータに対して共通の情報が格納される共通データ領域と、前記対象要素の種類に応じて異なる情報が格納される固有データ領域と、を有し、
     前記共通データ領域には、前記対象要素を識別するための識別子と、当該オブジェクトデータの生成元を示す情報と、前記対象要素の概念的な種別を示す情報と、当該オブジェクトデータに関する時間情報と、のいずれか1つ以上を含む車載処理装置。
  12.  請求項11に記載の車載処理装置において、
     前記データ管理層は、前記オブジェクトデータに関する設定情報を有し、
     前記インタフェースによる前記オブジェクトデータの操作は、前記データ管理層が管理するオブジェクトデータの中から、引数として指定可能な検索条件に該当する前記固有データ領域を有するオブジェクトデータを前記設定情報に基づき取得する検索操作を含む車載処理装置。
  13.  請求項1から請求項12までのいずれか一項に記載の車載処理装置において、
     前記データ演算層は、複数のソフト部品で構成されており、
     前記複数のソフト部品間におけるデータの受け渡しは、前記データ管理層を介して行われる車載処理装置。
  14.  請求項13に記載の車載処理装置において、
     前記複数のソフト部品は、前記データ管理層から取得した前記オブジェクトデータに基づき、前記車両の周辺環境における前記対象要素の状態を推定するための認知処理を前記処理部に実行させる環境認知ソフト部品を含み、
     前記環境認知ソフト部品は、前記対象要素の状態の推定結果を、前記データ管理層が管理するオブジェクトデータに格納する車載処理装置。
  15.  請求項14に記載の車載処理装置において、
     前記複数のソフト部品は、複数の前記環境認知ソフト部品を含み、
     複数の前記環境認知ソフト部品の各々は、前記対象要素の状態の推定結果を、前記データ管理層が管理するオブジェクトデータにおいて別々のデータ領域に格納する車載処理装置。
PCT/JP2017/032518 2016-10-03 2017-09-08 車載処理装置 WO2018066305A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201780060928.0A CN109789842B (zh) 2016-10-03 2017-09-08 车载处理装置
US16/338,136 US11487748B2 (en) 2016-10-03 2017-09-08 In-vehicle processing device
CN202210271189.2A CN114537299B (zh) 2016-10-03 2017-09-08 车载处理装置
EP17858144.3A EP3521108B1 (en) 2016-10-03 2017-09-08 In-vehicle processing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016195804A JP6652477B2 (ja) 2016-10-03 2016-10-03 車載処理装置
JP2016-195804 2016-10-03

Publications (1)

Publication Number Publication Date
WO2018066305A1 true WO2018066305A1 (ja) 2018-04-12

Family

ID=61831436

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/032518 WO2018066305A1 (ja) 2016-10-03 2017-09-08 車載処理装置

Country Status (5)

Country Link
US (1) US11487748B2 (ja)
EP (1) EP3521108B1 (ja)
JP (1) JP6652477B2 (ja)
CN (2) CN109789842B (ja)
WO (1) WO2018066305A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11091169B2 (en) * 2018-03-23 2021-08-17 Infineon Technologies Ag Advanced driver assistance systems test-interface for automated driving sensors
CN110969058B (zh) * 2018-09-30 2023-05-05 毫末智行科技有限公司 用于环境目标的融合方法及装置
JP7201381B2 (ja) 2018-10-05 2023-01-10 日立Astemo株式会社 電子制御装置、並列処理方法
JP7149189B2 (ja) * 2019-01-11 2022-10-06 日立Astemo株式会社 演算装置、演算方法
CN113412506B (zh) * 2019-02-13 2023-06-13 日立安斯泰莫株式会社 车辆控制装置及电子控制系统
CN111338638A (zh) * 2020-02-26 2020-06-26 东风电子科技股份有限公司 实现自动生成嵌入式软件部件之间通信的系统及其方法
EP3907468A1 (en) * 2020-05-08 2021-11-10 Volkswagen Aktiengesellschaft Vehicle, apparatus, method, and computer program for determining a merged environmental map
BE1028501B1 (nl) * 2020-11-05 2022-02-11 Ivex Een methode en een systeem voor het automatisch genereren van een geïntegreerde broncode voor de elektronische regeleenheid van een AD/ADAS-wegvoertuig
CN114553972B (zh) * 2020-11-10 2024-05-28 魔门塔(苏州)科技有限公司 应用于自动驾驶的数据传输装置、方法、车载终端和介质
CN112733907B (zh) * 2020-12-31 2024-09-17 上海商汤临港智能科技有限公司 数据融合方法、装置、电子设备以及存储介质
CN113294241A (zh) * 2021-06-01 2021-08-24 广西玉柴机器股份有限公司 一种电控发动机传感器及控制器信号的无线传输方法
JP2023019077A (ja) * 2021-07-28 2023-02-09 日立Astemo株式会社 車載処理装置
JP2023140719A (ja) 2022-03-23 2023-10-05 株式会社東芝 送信装置、受信装置、送信方法及び受信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002331882A (ja) * 2001-05-09 2002-11-19 Hitachi Ltd 車両データアクセス方法および車載端末
JP2006142994A (ja) * 2004-11-19 2006-06-08 Denso Corp 車両用ネットワークシステムおよび電子制御装置
JP2006257998A (ja) * 2005-03-17 2006-09-28 Hitachi Ltd 車両制御用ソフトウェア及び車両制御装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3460593B2 (ja) 1998-09-17 2003-10-27 株式会社デンソー 車両用制御装置
US6236909B1 (en) * 1998-12-28 2001-05-22 International Business Machines Corporation Method for representing automotive device functionality and software services to applications using JavaBeans
JP4427860B2 (ja) * 2000-03-24 2010-03-10 株式会社デンソー 車両用制御装置及び記録媒体
US7159125B2 (en) * 2001-08-14 2007-01-02 Endforce, Inc. Policy engine for modular generation of policy for a flat, per-device database
JP4194108B2 (ja) * 2001-10-12 2008-12-10 オムロン株式会社 情報処理装置、センサネットワークシステム、情報処理プログラム、および情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003330869A (ja) * 2002-05-14 2003-11-21 Alps Electric Co Ltd 装置情報管理システム及び装置情報管理方法、コンピュータプログラム
US7102496B1 (en) * 2002-07-30 2006-09-05 Yazaki North America, Inc. Multi-sensor integration for a vehicle
WO2005068259A1 (de) * 2004-01-14 2005-07-28 Bayerische Motoren Werke Aktiengesellschaft Übertragung mindestens einer personenbezogenen einstellung eines fahrzeugs
US7853961B2 (en) * 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
JP4701977B2 (ja) * 2005-10-06 2011-06-15 株式会社デンソー 車載ネットワークの診断システム及び車載制御装置
US7620526B2 (en) * 2006-10-25 2009-11-17 Zeugma Systems Inc. Technique for accessing a database of serializable objects using field values corresponding to fields of an object marked with the same index value
EP2139193B1 (en) * 2008-06-26 2012-10-17 TELEFONAKTIEBOLAGET LM ERICSSON (publ) A method of performing data mediation, and an associated computer program product, data mediation device and information system
JP2013506221A (ja) * 2009-09-29 2013-02-21 ボルボ テクノロジー コーポレイション 少なくとも1つのアプリケーションにおいて及び/又は少なくとも1つのアルゴリズムによって更に処理するためにセンサアセンブリのセンサ出力データを作成する方法及びシステム
KR101075018B1 (ko) * 2009-12-28 2011-10-19 전자부품연구원 엑스엠엘을 이용한 차량용 센서 데이터 처리 장치 및 방법
JP5412343B2 (ja) * 2010-03-24 2014-02-12 三菱電機インフォメーションテクノロジー株式会社 情報提供装置及び情報処理装置
US20190356552A1 (en) * 2011-11-16 2019-11-21 Autoconnect Holdings Llc System and method for generating a global state information for a vehicle based on vehicle operator information and other contextuals
US8849494B1 (en) * 2013-03-15 2014-09-30 Google Inc. Data selection by an autonomous vehicle for trajectory modification
US20160164732A1 (en) * 2013-03-19 2016-06-09 Nokia Solutions And Networks Oy System and method for rule creation and parameter adaptation by data mining in a self-organizing network
WO2014188492A1 (ja) * 2013-05-20 2014-11-27 三菱電機株式会社 監視制御装置
WO2016151749A1 (ja) * 2015-03-24 2016-09-29 パイオニア株式会社 自動運転支援装置、制御方法、プログラム及び記憶媒体
CN205158012U (zh) * 2015-08-10 2016-04-13 陈炳扬 一种车载智能适配器及车载终端
JP6519435B2 (ja) * 2015-10-16 2019-05-29 株式会社デンソー 報知管理装置及び報知管理方法
US10353880B2 (en) * 2016-03-14 2019-07-16 Wipro Limited System and method for governing performances of multiple hardware devices
DE112016006616T5 (de) * 2016-04-20 2018-11-29 Mitsubishi Electric Corporation Peripherieerkennungseinrichtung, Peripherieerkennungsverfahren und Peripherieerkennungsprogramm

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002331882A (ja) * 2001-05-09 2002-11-19 Hitachi Ltd 車両データアクセス方法および車載端末
JP2006142994A (ja) * 2004-11-19 2006-06-08 Denso Corp 車両用ネットワークシステムおよび電子制御装置
JP2006257998A (ja) * 2005-03-17 2006-09-28 Hitachi Ltd 車両制御用ソフトウェア及び車両制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3521108A4 *

Also Published As

Publication number Publication date
JP6652477B2 (ja) 2020-02-26
EP3521108A4 (en) 2020-06-03
US11487748B2 (en) 2022-11-01
CN114537299B (zh) 2024-06-18
EP3521108B1 (en) 2023-05-10
EP3521108A1 (en) 2019-08-07
JP2018060281A (ja) 2018-04-12
CN109789842B (zh) 2022-03-22
CN109789842A (zh) 2019-05-21
CN114537299A (zh) 2022-05-27
US20200034354A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
WO2018066305A1 (ja) 車載処理装置
JP6838776B2 (ja) 車載処理装置
US11200359B2 (en) Generating autonomous vehicle simulation data from logged data
US20210101619A1 (en) Safe and scalable model for culturally sensitive driving by automated vehicles
CN110345955A (zh) 用于自动驾驶的感知与规划协作框架
US11162798B2 (en) Map updates based on data captured by an autonomous vehicle
KR102381568B1 (ko) 자율 주행 차량 제어를 위한 크로스-플랫폼 제어 프로파일링
WO2021249963A1 (en) Collecting and processing data from vehicles
US12067869B2 (en) Systems and methods for generating source-agnostic trajectories
US10733463B1 (en) Systems and methods for augmenting perception data with supplemental information
JP6853746B2 (ja) 車両制御装置
JP7465147B2 (ja) 車載制御装置、サーバ、検証システム
CN112567439A (zh) 一种交通流信息的确定方法、装置、电子设备和存储介质
Nikitin et al. Traffic Signs Recognition System Development
JP2024510746A (ja) 車両のためのサービス指向データアーキテクチャ
WO2021049231A1 (ja) 占有格子地図管理装置
CN114553972B (zh) 应用于自动驾驶的数据传输装置、方法、车载终端和介质
US20240175712A1 (en) Simulation Platform for Vector Map Live Updates
US20240338292A1 (en) In-Vehicle Processing Device
US20240175715A1 (en) Vector map live updates
US20240175710A1 (en) Low Latency Vector Map Updates
US20240175708A1 (en) Local Vector Map
US20240176774A1 (en) Vector Map Optimization
US20240212319A1 (en) Classification of objects present on a road
US20230024757A1 (en) Systems and methods for transforming high-definition geographical map data into messages for vehicle communications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17858144

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2017858144

Country of ref document: EP