Server device, distribution method, and program

The server device optimizes software development by selecting and distributing verification software to vehicles based on historical data and resource status, enhancing the efficiency of software verification processes.

WO2025205860A1PCT designated stage Publication Date: 2025-10-02DENSO CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/011884
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-27
Filing Date
2025-03-25
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

The efficiency of software development environments for mobility IoT systems is suboptimal, particularly in selecting and distributing verification software to vehicles for effective testing.

Method used

A server device and method that collects vehicle behavior history data, selects target vehicles based on vehicle conditions and resource status, and distributes verification software using different methods for immediate and conditional distribution to ensure efficient software verification.

Benefits of technology

Improves the efficiency of software development by ensuring vehicles with suitable configurations and resources can effectively verify software, allowing immediate or delayed distribution based on platform updates and resource availability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025011884_02102025_PF_FP_ABST
    Figure JP2025011884_02102025_PF_FP_ABST
Patent Text Reader

Abstract

A server device according to one aspect of the present disclosure comprises a communication unit, a data collection unit, a database, a condition acquisition unit, a first selection unit, a second selection unit, a distribution unit, and an operation result collection unit. The first selection unit selects, by using feature information of a vehicle, target vehicle groups that satisfy vehicle conditions. The second selection unit selects a first vehicle group and a second vehicle group from the target vehicle groups on the basis of (i) configuration information of software of a control device included in each of the target vehicle groups and (ii) the state of a resource. The distribution unit distributes verification software to each vehicle of the first vehicle group in a first manner, and distributes the verification software to each vehicle of the second vehicle group in a second manner.
Need to check novelty before this filing date? Find Prior Art

Description

Server device, distribution method, and program CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This international application claims priority based on Japanese Patent Application No. 2024-051451, filed with the Japan Patent Office on March 27, 2024, the entire contents of which are incorporated herein by reference.

[0002] The present disclosure relates to techniques for distributing software to vehicles.

[0003] The server device described in Patent Document 1 below receives a request for processing a requested application from a user of a mobility Internet of Things (hereinafter referred to as IoT) system and distributes the requested application to an edge device of a vehicle connected to the network. The edge device executes the requested application using resources provided in the vehicle and transmits the calculation results to the server device. The server device charges the user and pays the resource provider a fee, thereby matching the needs of the user and the resource provider.

[0004] Japanese Patent Application Laid-Open No. 2023-117140

[0005] Shadow mode is a known method for collecting data from a vehicle that is necessary for developing and improving applications. Shadow mode is a mechanism for running an application (hereinafter referred to as a shadow mode application) without activating it, and collecting the resulting data from the vehicle. Activation means executing actual vehicle control based on the processing results.

[0006] The server device promotes the development of software related to mobility IoT systems by matching the needs of users and resource providers. However, as a result of detailed investigation by the inventors, it has been found that there is room for improvement in the efficiency of the software development environment.

[0007] One aspect of the present disclosure provides a technology that can improve the efficiency of a software development environment related to a shadow software development system.

[0008] A server device according to one aspect of the present disclosure includes a communication unit, a data collection unit, a database, a condition acquisition unit, a first selection unit, a second selection unit, a distribution unit, and an operation result collection unit. The communication unit is configured to communicate with a plurality of vehicles connected to a network. Each of the plurality of vehicles includes a control device. The data collection unit is configured to collect history data including vehicle behavior history from each of the plurality of vehicles via the communication unit. The database is configured to store each piece of history data collected by the data collection unit in association with vehicle identification information corresponding to each piece of history data. The condition acquisition unit is configured to acquire vehicle conditions for determining vehicles suitable for an environment in which to verify the verification software, based on verification software requested for verification. The first selection unit is configured to select a group of target vehicles from the plurality of vehicles using characteristic information of the corresponding vehicles. The characteristic information of the corresponding vehicles is determined based on each piece of history data stored in the database. The group of target vehicles conforms to the vehicle conditions acquired by the condition acquisition unit. The second selection unit is configured to select a first vehicle group and a second vehicle group from the target vehicle group based on (i) software configuration information of a control device and (ii) a resource status provided in each of the target vehicle group selected by the first selection unit. The distribution unit is configured to (i) distribute the verification software to each of the first vehicle group selected by the second selection unit via the communication unit using a first method, and (ii) distribute the verification software to each of the second vehicle group selected by the second selection unit via the communication unit using a second method different from the first method. The operation result collection unit is configured to collect operation results of the verification software from each of the first vehicle group and the second vehicle group.

[0009] According to the server device, a vehicle suitable for the environment for verifying the verification software is selected from among a plurality of vehicles. The verification software is then distributed to the selected vehicle in a manner suitable for the software configuration information and resource status of the control device of the selected vehicle. Therefore, the selected vehicle can effectively verify the verification software. This ultimately improves the efficiency of the development environment for software related to the shadow software development system.

[0010] A distribution method according to another aspect of the present disclosure includes collecting historical data including vehicle behavior history from each of a plurality of vehicles, storing each of the collected historical data in association with identification information for the vehicle corresponding to each of the historical data, obtaining vehicle conditions for determining a vehicle suitable for an environment in which to verify the verification software based on the verification software requested to be verified, determining characteristic information for the corresponding vehicle based on each of the stored historical data, using the determined characteristic information to select a group of target vehicles from the plurality of vehicles that meet the vehicle conditions, selecting a first group of vehicles and a second group of vehicles from the group of target vehicles based on (i) software configuration information of a control device and (ii) resource status provided in each of the selected group of target vehicles, distributing the verification software to the selected first group of vehicles using a first method, distributing the verification software to the selected second group of vehicles using a second method different from the first method, and collecting operation results of the verification software from each of the first group of vehicles and the second group of vehicles.

[0011] The above distribution method provides the same effects as the above server device.

[0012] A program according to yet another aspect of the present disclosure causes a processing device to collect historical data including vehicle behavior history from each of a plurality of vehicles, store each of the collected historical data in association with identification information of the vehicle corresponding to each of the historical data, obtain vehicle conditions for identifying vehicles suitable for an environment in which to verify the verification software based on the verification software requested to be verified, determine characteristic information of the corresponding vehicle based on each of the stored historical data, select a target vehicle group from the plurality of vehicles that meets the vehicle conditions using the determined characteristic information, select a first vehicle group and a second vehicle group from the target vehicle group based on (i) software configuration information of a control device and (ii) resource status provided in each of the selected target vehicle group, distribute the verification software to the selected first vehicle group using a first method, distribute the verification software to the selected second vehicle group using a second method different from the first method, and collect operation results of the verification software from each of the first vehicle group and the second vehicle group.

[0013] By executing the program, the same effects as those of the server device can be achieved.

[0014] 1 is a block diagram showing the configuration of a shadow software development system according to the present embodiment; FIG. 2 is a block diagram showing the configuration of a control device according to the present embodiment; FIG. 3 is a block diagram showing the configuration of a server device according to the present embodiment; FIG. 4 is a functional block diagram showing the functions of the server device according to the present embodiment; FIG. 5 is a diagram showing characteristic information of the environment, vehicle, and person according to the present embodiment; FIG. 6 is a diagram showing a vehicle condition table according to the present embodiment; FIG. 7 is a diagram showing a target vehicle table according to the present embodiment; FIG. 8 is a flowchart showing the process of distributing new software executed by the server device according to the present embodiment; FIG. 9 is a flowchart showing the process of distributing updated software executed by the server device according to the present embodiment.

[0015] (Embodiments) Hereinafter, exemplary embodiments of the present disclosure will be described with reference to the drawings.

[0016] <1. Overall Configuration> A shadow software development system 1 according to this embodiment will be described with reference to Figure 1. The shadow software development system 1 includes a wide area communication network NW, a server device 3, a plurality of control devices 2, and at least one user terminal device 5.

[0017] The control device 2 is mounted on the vehicle 200 and acts as an intermediary between the vehicle 200 and the server device 3. As shown in FIG. 2 , the control device 2 includes a control unit 11, an in-vehicle communication unit 12, a storage unit 13, and an out-vehicle communication unit 14.

[0018] The in-vehicle communication unit 12 is connected to various on-vehicle devices via an in-vehicle network of the vehicle 200 equipped with the control device 2, and acquires various vehicle information from the various on-vehicle devices at predetermined intervals. In addition to on-vehicle devices originally installed in the vehicle 200, exterior devices that are added later are also connected to the in-vehicle communication unit 12. The vehicle information includes history data. The history data includes a behavior history of the vehicle 200. The behavior history includes, for example, various behavior data, equipment data, and occupant data of the vehicle 200. For example, the behavior data includes data on whether the power is on or off, location data based on GPS signals, etc. The equipment data includes data on whether equipment such as adaptive cruise control, automatic wipers, and autopilot is on or off, etc. The occupant data includes the number of occupants, personal information of the driver, etc.

[0019] The storage unit 13 stores vehicle information that is acquired via the in-vehicle communication unit 12 and uploaded to the server device 3 .

[0020] The external communication unit 14 performs wireless communication with the server device 3 via the wide area communication network NW.

[0021] The control unit 11 includes a CPU 21, a ROM 22, and a RAM 23. The control unit 11 realizes various functions by the CPU 21 executing various programs stored in the ROM 22. Specifically, the control unit 11 executes vehicle control. The control unit 11 also collects vehicle information via the in-vehicle communication unit 12 and stores the vehicle information in the memory unit 13. Furthermore, the control unit 11 periodically uploads the vehicle information stored in the memory unit 13 together with identification information of the vehicle 200 to the server device 3 via the external communication unit 14. The control unit 11 also executes verification software, which will be described later, and uploads the operation results to the server device 3 via the external communication unit 14.

[0022] The user terminal device 5 is a terminal device used by a user of the shadow software development system 1, and is, for example, a PC, a tablet, a smartphone, a wearable device, etc. The user includes a third party, which includes a software developer, a software user, a computing system user, etc. The software is executed by the control device 2. The software is, for example, autonomous driving software, rainfall detection software, battery charging performance improvement software, etc.

[0023] Before distributing the developed software as a final version, the user needs to run the developed software using the resources of the vehicle 200 and verify the results of the operation. The resources of the vehicle 200 include the calculations of the CPU 21, on-board devices such as a camera mounted on the vehicle 200, and various sensors. The user accesses the server device 3 via the user terminal device 5 and requests the server device 3 to verify the software that the user wants to verify (hereinafter, verification software).

[0024] The server device 3 provides a user interface to the user terminal device 5, thereby acting as an intermediary between the user terminal device 5 and the control device 2. As shown in FIG. 3 , the server device 3 includes a control unit 31, a communication unit 32, and a storage unit 33.

[0025] The communication unit 32 performs wireless communication with the control device 2 via the wide area communication network NW. The communication unit 32 also performs wireless or wired communication with the user terminal device 5.

[0026] The storage unit 33 includes a database 33a, which will be described in detail later.

[0027] The control unit 31 includes a CPU 41, a ROM 42, and a RAM 43. The control unit 31 realizes various functions by the CPU 41 executing various programs stored in the ROM 42. The functions of the control unit 31 will be described in detail later.

[0028] 4, the functional configuration of the server device 3 will be described. The server device 3 includes authentication and permission units 101 and 102, a user interface (hereinafter referred to as UI) 103, a data collection unit 104, a learning unit 105, a condition acquisition unit 106, a first selection unit 107, a second selection unit 108, a distribution unit 109, an operation result collection unit 110, and a deletion unit 111.

[0029] The authentication and permission unit 101 authenticates and permits access by a user to the server device 3. For example, the user accesses the server device 3 via the user terminal device 5, causes the server device 3 to learn data stored in the database 33a, and generates a learning model. The user also accesses the server device 3 via the user terminal device 5, requests the server device 3 to verify the verification software, and obtains the operation results of the verification software via the server device 3.

[0030] The authentication and permission unit 101 authenticates and permits access by an operator to the server device 3. The operator manages distribution software including verification software. The distribution software is various software distributed to the control device 2. For example, when the server device 3 receives a request to verify multiple pieces of verification software, the operator sets priorities for the multiple pieces of verification software.

[0031] The UI 103 exchanges data between the user / operator and the server device 3 .

[0032] The data collection unit 104 collects history data including behavioral histories from each of the plurality of vehicles 200 via the communication unit 32 and stores the collected history data in the database 33a. The database 33a stores each piece of history data in association with identification information of the vehicle 200 corresponding to the history data.

[0033] Furthermore, the data collection unit 104 determines feature information of the corresponding vehicle 200 based on each of the behavioral histories. An example of the feature information is shown in FIG. 5. The feature information may include an environment model, a vehicle model, and a human model. The "VIN" corresponds to the identification information of the vehicle 200.

[0034] The environmental model corresponds to (i) the recognition results of the interior and exterior environments of the vehicle 200, and (ii) the states and outputs of sensors for recognizing the interior and exterior environments. The interior and exterior environments of the vehicle 200 do not include the environment of the vehicle 200 itself. The database 33a stores the data included in the environmental model by linking it to the date and time of data acquisition. Specifically, the environmental model may include recognition results of dynamic or static objects, road surface conditions, traffic conditions, weather, output from an on-board camera, and output from an outside air temperature sensor. More specifically, the environmental model may include surrounding traffic congestion, driving on a highway, driving on an ordinary road, stopping in a parking lot, geofences, and daytime or nighttime driving.

[0035] The vehicle model corresponds to (i) information about the entire vehicle, (ii) information about on-board equipment, (iii) information about the software of the vehicle 200, and (iv) sensor states and outputs for recognizing the entire vehicle, the on-board equipment, and the software of the vehicle 200. The database 33a stores the data included in the vehicle model by linking it to the date and time of data acquisition. Specifically, the vehicle model may include specifications of the vehicle 200, the state of the vehicle 200, the on-board equipment, software-specific recognition results, control states, required values, actuator states, sensor outputs, and sensor abnormalities. More specifically, the vehicle model may include a driving state, a stopped state, power on or off, auto wiper on or off, auto cruise control on or off, and autopilot on or off.

[0036] The human model corresponds to information about the user of the vehicle 200 recognized by the vehicle 200. The database 33a stores the data included in the human model by linking it to the date and time the data was acquired. Specifically, the human model may include the driver type, the number of passengers, and the individual identification result. The driver type may include, for example, gender, age, distribution permission status, etc. The distribution permission status is set by the user of the vehicle 200 and indicates whether the driver allows distribution of the verification software (actively accepts verification) or does not allow distribution (does not accept verification). The user of the vehicle includes the driver, the vehicle owner, the vehicle manager, etc.

[0037] The learning unit 105 performs machine learning on the history data stored in the database 33 a to generate a learning model. For example, the learning unit 105 generates a learning model (hereinafter, rainfall determination model) that determines whether or not rain is falling based on image data from a camera in front of the vehicle 200.

[0038] The condition acquisition unit 106 acquires vehicle conditions for determining a vehicle 200 suitable for the environment in which the verification software is to be verified. A vehicle condition table is set for each verification software. The vehicle condition table is stored in the database 33a in association with the identification information of the corresponding verification software. FIG. 6 shows an example of the vehicle condition table. The vehicle condition table shown in FIG. 6 corresponds to software for driving assistance (hereinafter referred to as driving assistance software). In the vehicle condition table, the corresponding model and conditions are associated with the selection items.

[0039] The selection items in the vehicle condition table of the driving assistance software may include whether or not an advanced driver assistance system (ADAS) function is present, whether or not a driver monitor function is present, driving time, driving distance, whether or not night driving is present, and age. The corresponding model in the vehicle condition table may include, corresponding to each of the selection items, equipment information: ADAS function, equipment information: driver monitor function, vehicle power supply status, total driving distance, vehicle power supply status and timestamp, and driver information: age. The conditions in the vehicle condition table may include, corresponding to each of the selection items, whether or not a vehicle is present, whether or not a vehicle is present, whether or not a time within a specified period is equal to or greater than a specified period, distance within a specified period, whether or not night driving is present, and whether or not a specified age is present or less. The condition acquisition unit 106 acquires vehicle conditions for each verification software based on the logical product or logical sum of each of the conditions in the vehicle condition table. Specific examples of vehicle conditions acquired by the condition acquisition unit 106 are described below.

[0040] (1) First Example of Vehicle Condition The first example of the vehicle condition corresponds to driving assistance software. The driving assistance software suggests evasive action when a possibility of collision with an obstacle arises. The first example of the vehicle condition includes at least one of a condition related to an environment model, a condition related to a vehicle model, and a condition related to a human model. Specifically, the condition related to the environment model includes at least one of (i) driving in a high-traffic area, (ii) driving at night, and (iii) driving on a highway. The condition related to the vehicle model includes at least one of (i) having an ADAS system function (e.g., sonar or camera), (ii) having a driver monitoring function, and (iii) the vehicle being used at a specified frequency or more. The condition related to the human model includes at least one of (i) drowsiness having been detected, (ii) inattentive driving having been detected, (iii) sudden braking or abrupt steering having been detected, (iv) the number of occupants being a specified number or more, and (v) the driver's age being a specified age or more.

[0041] (2) Second Example of Vehicle Condition The second example of vehicle conditions corresponds to software for determining rainfall based on camera images (hereinafter, rainfall determination software). The rainfall determination software aims to reduce the number of rain sensors. The second example of vehicle conditions compares rainfall detection by the rain sensor with rainfall detection based on camera images to determine a vehicle 200 suitable for generating a rainfall determination model. The second example of vehicle conditions includes (i) a condition related to an environmental model and / or (ii) a condition related to a vehicle model. Specifically, the condition related to the environmental model includes at least one of (i) driving in an area where rainfall is currently or will be expected in the future, (ii) driving at night, and (iii) driving on a highway. The condition related to the vehicle model includes at least one of (i) being equipped with a rain sensor and a forward-facing camera, (ii) having the automatic wipers on, and (iii) using the vehicle at least a specified frequency, and farmland.

[0042] (3) Third Example of Vehicle Condition The third example of vehicle conditions corresponds to software for generating a route plan that takes into account the remaining charge (hereinafter referred to as route planning software). The route planning software proposes a route plan that takes into account the location and time for charging the battery to a destination. The third example of vehicle conditions includes a condition related to a vehicle model. Specifically, the condition related to the vehicle model includes at least one of (i) being a battery-powered electric vehicle, (ii) being equipped with a navigation system, (iii) being driven a specified distance or more, and (iv) being using a quick charger.

[0043] (4) Fourth Example of Vehicle Condition The fourth example of vehicle condition corresponds to software for improving battery charging performance in low temperatures. The fourth example of vehicle condition includes a condition related to an environmental model. Specifically, the condition related to the environmental model includes frequently traveling in areas where the temperature is equal to or lower than a predetermined temperature.

[0044] The first selection unit 107 uses characteristic information about each of the multiple vehicles 200 to select a group of target vehicles that meet the vehicle conditions acquired by the condition acquisition unit 106 from the multiple vehicles 200. The first selection unit 107 may select a group of target vehicles using external data received from outside the multiple vehicles 200 via the communication unit 32, in addition to the characteristic information about each of the multiple vehicles 200. In the fourth example of vehicle conditions described above, the first selection unit 107 selects a group of target vehicles that meet the vehicle conditions using the air temperature at the location of the vehicle 200 as external data. FIG. 7 shows a target vehicle table that links the identification information of each of the selected target vehicles to verification software. The target vehicle table is managed by the UI 103.

[0045] The second selection unit 108 selects a first vehicle group and a second vehicle group from the target vehicle group based on the software configuration information of the control device 2 provided in each of the target vehicle group and the resource status of each of the target vehicle group.

[0046] Each of the first vehicle group is a vehicle 200 to which the verification software can be immediately distributed. Specifically, the software configuration of the control device 2 mounted on each of the first vehicle group is such that the platform (e.g., operating system) on which the verification software depends is a version suitable for the verification software (e.g., the latest version), and / or the resources of each of the first vehicle group have available space to run the verification software.

[0047] Each of the second vehicles is a vehicle 200 to which the verification software cannot be immediately distributed. Specifically, the software configuration of the control device 2 installed in each of the second vehicles is such that the platform on which the verification software depends is a version that is incompatible with the verification software (e.g., an old version). Alternatively, there is no available resource in each of the second vehicles to run the verification software.

[0048] The operation result collection unit 110 collects the operation results of the verification software from each of the first vehicle group and the second vehicle group via the control device 2.

[0049] The distribution unit 109 distributes the verification software to each of the first vehicle group using the first method via the communication unit 32. The distribution unit 109 also distributes the verification software to each of the second vehicle group using the second method via the communication unit 32. When there are multiple pieces of verification software, the distribution unit 109 distributes the multiple pieces of verification software based on the priorities set by the operator.

[0050] In the first method, the distribution unit 109 immediately distributes the verification software. In the second method, the distribution unit 109 waits until a predetermined condition is met and distributes the verification software when the predetermined condition is met. Specifically, in the second method, the distribution unit 109 distributes the verification software after an inappropriate version of the platform is updated to an appropriate version. Alternatively, in the second method, the distribution unit 109 distributes the verification software after a resource becomes available that allows the verification software to be executed.

[0051] The deletion unit 111 instructs the deletion of the verification software to vehicles of the first vehicle group and the second vehicle group that have completed verification of the verification software. For example, the deletion unit 111 instructs the deletion of the verification software to vehicles to which verification software has been distributed, the verification period of which has expired as set by the server device 3. The deletion unit 111 may instruct the deletion of the verification software when the operator determines that sufficient data necessary for verification has been collected.

[0052] 8, a description will be given of the process of distributing new software executed by the server device 3. The server device 3 executes this process each time a user requests verification of verification software.

[0053] First, in S10, the server device 3 registers new verification software requested for verification by a user.

[0054] Next, in S20, the server device 3 acquires the vehicle conditions corresponding to the verification software registered in S10. The vehicle conditions are set by the user and input to the server device 3 via the UI 103, for example.

[0055] Next, in S30, the server device 3 searches for a vehicle 200 that matches the vehicle conditions acquired in S20 from among the plurality of vehicles 200 based on the characteristic information stored in the database 33a.

[0056] Next, in S40, the server device 3 extracts vehicles 200 that meet the vehicle conditions acquired in S20.

[0057] Next, in S50, the server device 3 determines the vehicle group extracted in S40 as a target vehicle group to which the verification software is to be distributed.

[0058] Next, in S60, the server device 3 checks the resource status of each of the target vehicles based on the vehicle information of each of the target vehicles stored in the database 33a.

[0059] Next, the server device 3 executes the processes of S70 to S100 for each of the target vehicle groups. The processes of S70 and S80 correspond to the processes of selecting a first vehicle group and a second vehicle group from the target vehicle group.

[0060] In S70, the server device 3 determines whether the platform of the control device 2 on which the verification software depends is a version suitable for the verification software. If the server device 3 determines that the platform is a suitable version, the process proceeds to S80. If the server device 3 determines that the platform is an inappropriate version, the process proceeds to S120. If the server device 3 determines that the platform is an inappropriate version, the server device 3 assigns the target vehicle to the second vehicle group.

[0061] In S80, the server device 3 determines whether there are available resources to run the verification software. If the server device 3 determines that there are available resources, it proceeds to processing in S90. If it determines that there are available resources, it assigns the target vehicle to the first vehicle group. If it determines that there are no available resources, it proceeds to processing in S110. If it determines that there are no available resources, it assigns the target vehicle to the second vehicle group.

[0062] In S90, the server device 3 determines the first method as the distribution method of the verification software. That is, the server device 3 determines to immediately distribute the verification software.

[0063] Next, in S100, the server device 3 immediately distributes the verification software to the target vehicles belonging to the first vehicle group.

[0064] In step S110, the server 3 determines to distribute the verification software to the target vehicles in the second vehicle group using the second method and reserves the distribution of the verification software. That is, the server 3 waits until resources become available for the target vehicles, and distributes the verification software to the target vehicles after resources become available for the target vehicles.

[0065] In addition, in S120, the server device 3 excludes the target vehicles belonging to the second vehicle group from the distribution of the verification software. Alternatively, the server device 3 determines to distribute the verification software to the target vehicles belonging to the second vehicle group using the second method and schedules the distribution of the verification software. That is, the server device 3 waits until the platform is updated to an appropriate version, and distributes the verification software after the platform has been updated to the appropriate version. In this case, the server device 3 may remind the target vehicles that there are updates that have not been applied to the platform via a display device or speaker installed in the target vehicles or a mobile device carried by the occupants of the target vehicles, and urge them to update the platform.

[0066] 9, the process of distributing updated software executed by the server device 3 will be described. The server device 3 repeatedly executes this process at a predetermined interval. Here, the verification software includes a learning model.

[0067] Next, in S200, the server device 3 collects data such as camera images from the database 33a.

[0068] Next, in S210, the server device 3 learns the collected data and updates the learning model.

[0069] Next, in S220, the server device 3 registers the updated learning model in the software repository.

[0070] Next, in S230, the server device 3 determines whether an update to the verification software has been detected. If the server device 3 determines that an update to the verification software has been detected, the server device 3 proceeds to the process of S240. If the server device 3 determines that an update to the verification software has not been detected, the server device 3 repeatedly executes the process of S230 until an update to the verification software is detected.

[0071] In S240, the server device 3 determines a method for distributing the verification software including the updated learning model to the target vehicle. The server device 3 determines the first method as the distribution method because the updated learning model immediately replaces the learning model before the update. Alternatively, the server device 3 determines whether to distribute the verification software including the updated learning model using the first method or the second method based on the software configuration information of the control device 2 of the target vehicle and the resource status of the target vehicle.

[0072] Furthermore, when distributing the update target using the first method or the second method, the server device 3 also determines a distribution method depending on the type or size of the update target. Possible update targets include containers, configuration data, learning models, etc. When distributing, for example, configuration data as the update target, the server device 3 distributes the data itself to the target vehicle because the data size is small. On the other hand, when distributing a container as the update target, the server device 3 distributes a URL for downloading the data to the target vehicle because the data size is large.

[0073] In S250, the server device 3 distributes the verification software to the target vehicle using the distribution method determined in S240. Note that even if the verification software does not include a learning model, the server device 3 may distribute the updated verification software to the target vehicle when it detects an update to the verification software.

[0074] 3. Effects According to the present embodiment described above in detail, the following effects are achieved.

[0075] (1) The server device 3 selects, from among a plurality of vehicles 200, a vehicle 200 that is suitable for the environment in which the verification software is to be verified. The verification software is then distributed to the selected vehicle 200 in a manner that is suitable for the software configuration information and resource status of the control device 2 of the selected vehicle 200. Therefore, the selected vehicle 200 can effectively verify the verification software. This ultimately improves the efficiency of the development environment for software related to the shadow software development system 1.

[0076] (2) Each vehicle in the first group can immediately receive the verification software and start running the verification software, and each vehicle in the second group can receive the verification software and start running the verification software after a predetermined condition is met.

[0077] (3) If each vehicle in the second group of vehicles has an inappropriate platform version, the platform can be updated to an appropriate version, after which the verification software can be delivered and the verification software can begin operating.

[0078] (4) When there are no available resources in the vehicle 200, each of the second vehicle group can receive the verification software and start the operation of the verification software after the resources become available.

[0079] (5) When the server device is requested to verify a plurality of pieces of verification software, the server device can cause the control device 2 of each vehicle to verify the verification software in order of priority.

[0080] (6) Target vehicles that receive the verification software can automatically receive the verification software each time the verification software is updated.

[0081] (7) If the verification software includes a learning model, the target vehicle receiving the verification software can automatically receive the learning model each time the learning model is updated.

[0082] (8) The server device 3 can select a vehicle that is more suitable for the environment in which the verification software is to be verified by using external data in addition to the characteristic information of the vehicle 200 .

[0083] (9) Since the feature information includes an environmental model, a vehicle model, and a human model, the server device 3 can accurately select a group of target vehicles that meet the vehicle conditions based on the environmental model, the vehicle model, and the human model.

[0084] (10) When the vehicle 200 has finished verifying the verification software, the server device 3 instructs the vehicle 200 to delete the software. This frees up resources in the vehicle 200, allowing the vehicle 200 to receive the next distribution of the verification software.

[0085] Other Embodiments Although the embodiments of the present disclosure have been described above, the present disclosure is not limited to the above-described embodiments and can be implemented in various modifications.

[0086] (a) The control unit 31 of the server device 3 and its method described in the present disclosure may be implemented by a dedicated computer provided by configuring a processor and memory programmed to execute one or more functions embodied in a computer program. Alternatively, the control unit 31 and its method described in the present disclosure may be implemented by a dedicated computer provided by configuring a processor with one or more dedicated hardware logic circuits. Alternatively, the control unit 31 and its method described in the present disclosure may be implemented by one or more dedicated computers configured by combining a processor and memory programmed to execute one or more functions with a processor configured with one or more hardware logic circuits. Furthermore, the computer program may be stored on a computer-readable non-transitory tangible recording medium as instructions to be executed by a computer. The method for implementing the functions of each unit included in the control unit 31 does not necessarily need to include software; all of the functions may be implemented using one or more hardware.

[0087] (b) Multiple functions of one component in the above embodiments may be realized by multiple components, or one function of one component may be realized by multiple components. Also, multiple functions of multiple components may be realized by one component, or one function realized by multiple components may be realized by one component. Also, part of the configuration of the above embodiments may be omitted. Also, at least part of the configuration of the above embodiments may be added to or substituted for the configuration of another of the above embodiments.

[0088] (c) In addition to the server device described above, the present disclosure can also be realized in various forms, such as a system that includes the server device as a component, a program for causing a computer to function as the server device, a non-transient physical recording medium such as a semiconductor memory on which this program is recorded, and a distribution method.

[0089] (d) In the above embodiment, the verification software distributed by the shadow software development system 1 is software that runs in a vehicle in shadow mode, but the present disclosure is not limited to this. For example, software that is activated in a vehicle may be distributed as the verification software in order to collect feedback from users before official distribution. [Technical Idea Disclosed in the Present Specification] [Item 1] A communication unit (32) configured to communicate with a plurality of vehicles (200) connected to a network (NW), each of the plurality of vehicles having a control device (2); A data collection unit (104) configured to collect history data including vehicle behavior history from each of the plurality of vehicles via the communication unit; A database (33a) configured to store each of the history data collected by the data collection unit in association with vehicle identification information corresponding to each of the history data; A condition acquisition unit (106) configured to acquire vehicle conditions for determining vehicles suitable for an environment in which to verify verification software, based on verification software requested for verification; A first selection unit (107) configured to select a target vehicle group from the plurality of vehicles using characteristic information of the corresponding vehicles, the characteristic information of the corresponding vehicles being determined based on each of the history data stored in the database, and the target vehicle group conforming to the vehicle conditions acquired by the condition acquisition unit; A server device comprising: a second selection unit (108) configured to select a first vehicle group and a second vehicle group from the target vehicle group based on (i) configuration information of the software of the control device and (ii) resource status provided in each of the target vehicle group selected by the first selection unit; a distribution unit (109) configured to (i) distribute the verification software to each of the first vehicle group selected by the second selection unit via the communication unit using a first method, and (ii) distribute the verification software to each of the second vehicle group selected by the second selection unit via the communication unit using a second method different from the first method; and an operation result collection unit (110) configured to collect operation results of the verification software from each of the first vehicle group and the second vehicle group.[Item 2] The server device according to Item 1, wherein in the first method, the distribution unit (109) immediately distributes the verification software, and in the second method, the distribution unit waits until a predetermined condition is met and distributes the verification software in response to the predetermined condition being met. [Item 3] The server device according to Item 1 or 2, wherein the software configuration information of the first vehicle group includes that a platform on which the verification software depends is a version suitable for the verification software, and the software configuration information of the second vehicle group includes that the platform is a version inappropriate for the verification software, and in the first method, the distribution unit (109) immediately distributes the verification software, and in the second method, the distribution unit distributes the verification software after the inappropriate version has been updated to the appropriate version. [Item 4] The server device according to any one of items 1 to 3, wherein the resource status of the first vehicle group includes a resource having available space to run the verification software, and the resource status of the second vehicle group includes a resource having no available space to run the verification software, and in the first method, the distribution unit (109) immediately distributes the verification software, and in the second method, the distribution unit distributes the verification software after a resource has available space to run the verification software. [Item 5] The server device according to any one of items 1 to 4, wherein, when requested to verify a plurality of pieces of verification software, the distribution unit (109) distributes the plurality of pieces of verification software based on priorities set by an operator. [Item 6] The server device according to any one of items 1 to 5, wherein the verification software is software for determining rainfall based on camera images, and the vehicle conditions include (i) having a rain sensor, (ii) having a forward camera, and (iii) an automatic wiper function being enabled.[Item 7] The server device according to any one of items 1 to 6, wherein the distribution unit (109) is configured to distribute the updated verification software when the verification software is updated. [Item 8] The server device according to any one of items 1 to 7, further comprising a learning unit (105) configured to learn the history data stored in the database (33a) and generate a learning model, wherein the verification software includes the learning model generated by the learning unit, and the distribution unit is configured to distribute the updated learning model when the learning model is updated by the learning unit. [Item 9] The server device according to any one of items 1 to 8, wherein the first selection unit (107) is configured to select the target vehicle group using external data received from outside the plurality of vehicles (200) via the communication unit (32) in addition to the characteristic information of the corresponding vehicle. [Item 10] The server device according to item 9, wherein the verification software is software for improving battery charging performance at low temperatures, and the external data includes air temperatures at the locations of each of the plurality of vehicles. [Item 11] The server device according to any one of items 1 to 10, wherein the feature information includes an environment model, a vehicle model, and a human model, wherein the environment model corresponds to (i) recognition results of the interior and exterior environments of the vehicle, and (ii) states and outputs of sensors for recognizing the interior and exterior environments, wherein the vehicle model corresponds to (i) information about the entire vehicle, (ii) information about equipment and software of the vehicle, and (iii) states and outputs of sensors for recognizing the entire vehicle, the equipment of the vehicle, and the software of the vehicle, and wherein the human model corresponds to information about the user of the vehicle recognized by the vehicle. [Item 12] The server device according to any one of items 1 to 11, wherein the verification software is software for driving assistance, and the vehicle conditions include (i) being equipped with an advanced driver assistance system, (ii) being driven at night, (iii) being driven in an accident-prone area, (iv) having been detected as being distracted while driving, and (v) having been detected as being suddenly braked or suddenly steered.[Item 13] The server device according to any one of items 1 to 12, wherein the first vehicle group and the second vehicle group include a first vehicle, and further comprises a deletion unit configured to instruct the first vehicle to delete the verification software when the vehicle has completed verification of the verification software. [Item 14] A distribution method comprising: collecting historical data including vehicle behavior history from each of a plurality of vehicles (200); storing each of the collected historical data in association with identification information of the vehicle corresponding to each of the historical data; acquiring vehicle conditions for determining vehicles suitable for an environment in which to verify the verification software based on the verification software requested to be verified; determining characteristic information of the corresponding vehicle based on each of the stored historical data; selecting a target vehicle group that meets the vehicle conditions from the plurality of vehicles using the determined characteristic information; selecting a first vehicle group and a second vehicle group from the target vehicle group based on (i) software configuration information of a control device (2) and (ii) resource status provided in each of the selected target vehicle group; distributing the verification software to the selected first vehicle group using a first method; distributing the verification software to the selected second vehicle group using a second method different from the first method; and collecting operation results of the verification software from each of the first vehicle group and the second vehicle group.[Item 15] A processing device (31) collects history data including vehicle behavior history from each of a plurality of vehicles (200), associates each of the collected history data with vehicle identification information corresponding to each of the history data and stores it, acquires vehicle conditions for determining vehicles suitable for an environment in which to verify the verification software based on the verification software requested to be verified, determines characteristic information of the corresponding vehicle based on each of the stored history data, and selects a target vehicle group that meets the vehicle conditions from the plurality of vehicles using the determined characteristic information, selects a first vehicle group and a second vehicle group from the target vehicle group based on (i) software configuration information of a control device (2) and (ii) resource status provided in each of the selected target vehicle group, distributes the verification software to the selected first vehicle group by a first method, and distributes the verification software to the selected second vehicle group by a second method different from the first method. collecting operation results of the verification software from each of the first vehicle group and the second vehicle group.

Claims

1. A communication unit (32) configured to communicate with a plurality of vehicles (200) connected to a network (NW), each of the plurality of vehicles having a control device (2); a data collection unit (104) configured to collect history data including vehicle behavior history from each of the plurality of vehicles via the communication unit; a database (33a) configured to store each of the history data collected by the data collection unit in association with vehicle identification information corresponding to each of the history data; a condition acquisition unit (106) configured to acquire vehicle conditions for determining vehicles suitable for an environment in which to verify verification software based on verification software requested for verification; and a first selection unit (107) configured to select a target vehicle group from the plurality of vehicles using characteristic information of the corresponding vehicles, wherein the characteristic information of the corresponding vehicles is determined based on each of the history data stored in the database, and the target vehicle group conforms to the vehicle conditions acquired by the condition acquisition unit; A server device comprising: a second selection unit (108) configured to select a first vehicle group and a second vehicle group from the target vehicle group based on (i) configuration information of the software of the control device and (ii) resource status provided in each of the target vehicle group selected by the first selection unit; a distribution unit (109) configured to (i) distribute the verification software to each of the first vehicle group selected by the second selection unit via the communication unit using a first method, and (ii) distribute the verification software to each of the second vehicle group selected by the second selection unit via the communication unit using a second method different from the first method; and an operation result collection unit (110) configured to collect operation results of the verification software from each of the first vehicle group and the second vehicle group.

2. The server device according to claim 1, wherein in the first method, the distribution unit (109) immediately distributes the verification software, and in the second method, the distribution unit waits until a predetermined condition is met and distributes the verification software in response to the predetermined condition being met.

3. The server device described in claim 1, wherein the software configuration information of the first vehicle group includes that the platform on which the verification software depends is a version suitable for the verification software, and the software configuration information of the second vehicle group includes that the platform is a version unsuitable for the verification software, and in the first method, the distribution unit (109) distributes the verification software immediately, and in the second method, the distribution unit distributes the verification software after the unsuitable version has been updated to the suitable version.

4. The server device of claim 1, wherein the resource status of the first vehicle group includes that the resource has available space to run the verification software, and the resource status of the second vehicle group includes that the resource does not have available space to run the verification software, and in the first method, the distribution unit (109) distributes the verification software immediately, and in the second method, the distribution unit distributes the verification software after the resource has available space to run the verification software.

5. The server device according to claim 1, wherein the distribution unit (109) is configured to distribute the plurality of verification software programs based on priorities set by an operator when requested to verify the plurality of verification software programs.

6. The server device according to claim 1, wherein the verification software is software for determining rainfall based on camera images, and the vehicle conditions include (i) having a rain sensor, (ii) having a front camera, and (iii) having an auto-wiper function enabled.

7. The server device according to claim 1, wherein the distribution unit (109) is configured to distribute the updated verification software when the verification software is updated.

8. A server device as described in claim 1, further comprising a learning unit (105) configured to learn the historical data stored in the database (33a) and generate a learning model, wherein the verification software includes the learning model generated by the learning unit, and wherein the distribution unit is configured to distribute the updated learning model when the learning model is updated by the learning unit.

9. The server device of claim 1, wherein the first selection unit (107) is configured to select the group of target vehicles using, in addition to the characteristic information of the corresponding vehicles, external data received from outside the plurality of vehicles (200) via the communication unit (32).

10. The server device according to claim 9, wherein the verification software is software for improving battery charging performance in low temperatures, and the external data includes air temperature at the location of each of the plurality of vehicles.

11. The server device of claim 1, wherein the feature information includes an environmental model, a vehicle model, and a human model; the environmental model corresponds to (i) the recognition results of the interior and exterior environments of the vehicle, and (ii) the state and output of sensors for recognizing the interior and exterior environments; the vehicle model corresponds to (i) information about the entire vehicle, (ii) information about the vehicle's equipment and software, and (iii) the state and output of sensors for recognizing the entire vehicle, the vehicle's equipment, and the vehicle's software; and the human model corresponds to information about the vehicle's user recognized by the vehicle.

12. The server device of claim 1, wherein the verification software is software for driving assistance, and the vehicle conditions include (i) being equipped with an advanced driving assistance system, (ii) being driven at night, (iii) being driven in an accident-prone area, (iv) having been detected as being distracted, and (v) having been detected as being suddenly braked or steered.

13. The server device described in claim 1, wherein the first vehicle group and the second vehicle group include a first vehicle, and further comprises a deletion unit configured to instruct the first vehicle to delete the verification software when the vehicle has completed verification of the verification software.

14. A distribution method comprising: collecting historical data including vehicle behavior history from each of a plurality of vehicles (200); linking each of the collected historical data with identification information of the vehicle corresponding to each of the historical data and storing it; obtaining vehicle conditions for determining vehicles suitable for an environment in which to verify the verification software based on the verification software requested to be verified; determining characteristic information of the corresponding vehicle based on each of the stored historical data; selecting a target vehicle group that meets the vehicle conditions from the plurality of vehicles using the determined characteristic information; selecting a first vehicle group and a second vehicle group from the target vehicle group based on (i) software configuration information of a control device (2) and (ii) resource status provided in each of the selected target vehicle group; distributing the verification software to the selected first vehicle group using a first method; distributing the verification software to the selected second vehicle group using a second method different from the first method; and collecting operation results of the verification software from each of the first vehicle group and the second vehicle group.

15. A processing device (31) collects history data including vehicle behavior history from each of a plurality of vehicles (200), associates each of the collected history data with vehicle identification information corresponding to each of the history data and stores it, acquires vehicle conditions for determining vehicles suitable for an environment in which to verify the verification software based on the verification software requested to be verified, determines characteristic information of the corresponding vehicle based on each of the stored history data, and selects a target vehicle group that meets the vehicle conditions from the plurality of vehicles using the determined characteristic information, selects a first vehicle group and a second vehicle group from the target vehicle group based on (i) software configuration information of a control device (2) and (ii) resource status provided in each of the selected target vehicle group, distributes the verification software to the selected first vehicle group by a first method, and distributes the verification software to the selected second vehicle group by a second method different from the first method. collecting operation results of the verification software from each of the first vehicle group and the second vehicle group.

Citation Information

Patent Citations

  • Software distribution system, software distribution server, and software distribution method

    JP2020021381A

  • Notification device

    JP2021149714A

  • Autonomous Vehicle Software Validation

    JP2021509646A

  • Control device for vehicle, control method for vehicle and control program

    JP2022090870A