Abstract:
Methods and systems of validating a vehicle safety function. In one implementation, a plurality of vehicle safety function software programs are developed. A first one of the software programs is installed in a memory of a vehicle controller. The program is run on the controller without delivering at least one vehicle actuator output of the controller generated as a result of running the program. Activation data for the safety function is recorded and the steps of installing, running, and recording with a second one of the plurality of vehicle safety function software programs are repeated.

Description:
BACKGROUND 
       [0001]    Embodiments of the invention relate to systems and techniques for validating safety feature on automobiles and similar vehicles. 
         [0002]    Modern automobiles, particularly passenger vehicles include number of safety features. Exemplary safety features include anti-lock braking systems (“ABS”), electronic stability control (“ESC”), adaptive cruise control (“ACC”), and the like. Before these safety features are incorporated into vehicles sold to the public, they are tested or validated. These tests often require driving pre-release or pre-series vehicles for extended periods or over a large number of miles. Depending on the functionality, the number of miles can exceed several hundred thousand miles. One automotive safety function or system that requires a high number of validation miles is forward-looking collision mitigation with brake-intervention, especially if the brake-intervention includes full braking of the vehicle. Other examples include collision evasion assistance, and collision mitigation in reverse with full autonomous braking. 
       SUMMARY 
       [0003]    The development and validation of vehicle safety systems and, more particularly, the control functions within such systems, requires that a large amount of data be recorded, so that changes to the control functions are possible after recording the data, and simulations (e.g., computer simulations of vehicle behavior when such functions are activated) give a representative result. Such features and systems are computer-controlled and rely on software and parameters designed and chosen to account for the numerous conditions that can be encountered by a vehicle. Control software may be changed and recording large amounts of data permits later simulations, as if the changed control software was on the vehicle at the time of the data recording. Since the current practice of developing and validating vehicle safety functions includes recording the entire or all data for validation, the data for the actual vehicles with which the functions will be used must be recorded (as opposed to developing it on another vehicle or using data from a generalized or sample vehicle and attempting to apply that data to specific vehicles). However, the current practice has the drawback that representative vehicles must be available at an early stage of the development of the safety function, or that a larger number of vehicles must be available at a later stage of development, so that the data can still be collected. Generally, it takes a long time to drive the large number of miles typically required for validation, and the types of driving scenarios that need to be covered is large, e.g., many different city, highway, and country roads, hills, intersections, and other differences in road and driving infrastructure. In addition, the large amount of data must be stored and sufficient computing power must be available to simulate the data collected with the latest software to validate the functions, in particular to tune the functions so that, among other things, the false activation rate is sufficiently low. 
         [0004]    The reason that a large amount of data is recorded is that the false activation rate for the safety functions needs to be below a tolerable risk, that allows the function itself to be rated with an appropriate automotive safety integity level (ASIL). It is most effective to re-simulate all recorded data to guarantee that the software that goes into production fulfills this aim. A less efficient method would be to drive the distance needed for statistical reliability for every release. 
         [0005]    Other aspects of the invention will become apparent by consideration of the detailed description and accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]      FIG. 1  is a schematic illustration of a vehicle (for example, an automobile) with safety systems and a controller (which may include a processor, memory, and I/O devices). 
           [0007]      FIG. 2  is a schematic illustration of vehicle systems communicating with a data logger and a connectivity unit or interface, which communicates with a server. 
       
    
    
     DETAILED DESCRIPTION 
       [0008]    Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. 
         [0009]      FIG. 1  illustrates a vehicle  10  that includes four wheels  12 ,  14 ,  16 , and  18 , and corresponding brakes  20 ,  22 ,  24 , and  26  at each wheel. In the embodiment shown, the brakes communicate with and are controlled by a controller  30 . The vehicle controller may take the form, for example, of an electronic control unit (ECU), microprocessor, microcontroller or similar device and include a processor that executes software stored in memory such as ROM and more particularly EEPROM of the controller. Broadly, the brakes are actuators. In other vehicle safety systems, actuators could include components that cause steering wheels to turn and chassis components to operate (for example, a change in spring rate or shock absorber firmness in an active suspension). The brakes could be part of other systems such as an ant-lock braking system and/or an electronic stability control system. In the embodiment shown, the controller  30  controls and is also connected to a radar sensor  35  and a forward facing sensor  37  (such as a camera, ultrasonic sensor, or other sensor or array of sensors) and a rearward-facing sensor  39  (such as a camera, ultrasonic sensor, or other sensor or array of sensors). The radar sensor  35 , forward facing sensor  37 , brakes, and ESC  50  and/or other components can be part of a forward-collision-mitigation-by-braking system. While a single controller is illustrated, it should be understood that the vehicle  10  could include multiple controllers and that each one of them could configured to control a particular vehicle system or safety function and that each one could execute applicable software to perform such control and communicate with each other. In addition, although the controller  30  is shown in a central location, embodiments of the invention could use controllers positioned locally to the applicable sensors and actuators (for example, the sensors  35 ,  37 , and  39  and brakes  20 ,  22 ,  24 , and  26 ) and systems. Connections between the controller  30  and the sensors  35 ,  37 , and  39  and brakes  20 ,  22 ,  24 , and  26  are shown as direct links. However, the vehicle may be equipped with a bus or network, such as a controller area network (“CAN”), and communication between the controller  30  and other controllers and devices may be accomplished by sending messages over the CAN. For example, the vehicle system may include a steering control  43  that receives data from sensors and devices in a steering system  45 . 
         [0010]    A significant cost of an automotive safety system or function is determining an optimal or desired benefit-to-false-activation ratio of the automotive safety function. Aspects of the invention include a number of techniques or processes for determining whether an automotive safety function should be activated or not. In certain embodiments, these processes run in parallel, each having a different implementation or parameter tuning. Initially, the data is collected with these processes (for example, software programs, software modules, or software algorithms) running, but without the processes commanding the actuators (e.g., brakes, suspension, or steering components) to react, except possibly the process that reacts latest, which may be active for validation of the actuators. At a later stage of the development project, the process or software program that best fits the benefit (in comparison to the other programs) and false alert requirements is selected, and the vehicle controller or ECU (such as the controller  30 ) is configured so that the selected software output triggers the actuators. 
         [0011]    Unless the context indicates otherwise, as used herein “activation” refers to a software program reporting an activation, and this means that if the software program&#39;s output were to be used, then some actuator or component would have been actuated on (e.g., using the vehicle brakes). Only once the desired software program has been selected and programmed to be active, would the actuation actually occur. 
         [0012]    In certain aspects of the invention, the different software programs are designed or configured so that the sensitivity of when activations occur differs for each software program. Preferably (but not necessarily), there are a large number of different software programs, and these are developed and implemented by different people. Another method is to have the software program logic fixed, but load different parameters for different sensitivities (which may be an advantage to reduce development costs, but does not provide the same amount of variety and changing the software itself). 
         [0013]    Each software program runs on a controller in a vehicle (examples of which were discussed above with respect to  FIG. 1 ), so that the result can be recorded (for example, on a data logger  110  (described below)) and so that neither the processing time nor the flash-file is altered once the final software program has been selected. The number of activations that each software program produces is recorded (in memory) (with additional data about the activation). In certain embodiments, the data relating to the activation is readable using a diagnostic tool, and during development it is preferable that the data be easily accessible such as being made available over a vehicle network such as a CAN. By collecting the activation data, statistics about the benefit-to-false-activation ratio can be derived for each different software program. 
         [0014]    Some function activations are a benefit or desired, and others are false activations. Therefore, in certain embodiments a classifier is implemented on the controller so that that the controller can distinguish between the two. One manner of determining false actuations is to count or record the number of actuations that occur at particular GPS coordinates or a neighborhood of coordinates or with a certain predetermined distance as determined using odometer information. So, for example, is a number of identical activations exceeds a threshold, for example 5, in a predetermined area, for example, 25 feet is can be assumed that false activations have occurred. Preferably, the classifier is configured to run as a post-evaluation. to assess the driver&#39;s reaction to each activation of each software program. In the example of the forward collision mitigation by braking, the benefit case differs from the false activation case, since at least one of the following will occur: (a) the driver will brake strongly, (b) the driver will perform an evasive maneuver, or (c) a collision will occur. In certain embodiments, the thresholds for (a) and (b) are developed to determine whether these maneuvers took place, and this can be done using driving simulators or data from real-world near-accident scenarios. There are some benefit cases where the target vehicle will swerve away, or the driver will mistakenly react to a false activation. It is assumed that these cases are small enough to be statistically negligible. It is also assumed that the classification does not work predictively (like the function itself), but as a post-analysis about how the driver reacted after a software program has triggered an activation. For this reason, it is assumed that the number of undetected sensor or situation analysis errors is extremely small. 
         [0015]    The data collected whenever any software program would have activated the function can be, as an example: 
         [0016]    a) the software program that caused the activation: 
         [0017]    b) the post-evaluation result of whether the driver was braking, evading, collision occurred, or did not react; 
         [0018]    c) GPS information or coordinates (if available), to allow the infrastructure to be examined; 
         [0019]    d) Odometer value of reaction; 
         [0020]    e) Host vehicle state: speed, yaw rate, acceleration over ground, acceleration sensor, etc. 
         [0021]    Ideally, this should be available from the activation point to several (e.g., 2) seconds after activation in several intervals (e.g., every 200 millisec). 
         [0022]    f) Target vehicle state: speed, lateral and longitudinal distances, etc. Preferably, this should be available from the activation point to several (e.g., 2) seconds after activation in several intervals (e.g., every 200 millisec). 
         [0023]    g) Driver reaction information: brake pedal and acceleration pedal positions. Preferably, this should be available from the activation point to several (e.g., 2) seconds after activation in several intervals (e.g., every 200 millisec). 
         [0024]    h) Any data used in calculating thresholds that are post-determined and written into memory (e.g., EEPROM) of the safety system in the vehicle manufacturing plant (along with selecting the software program). Preferably, every calculation cycle from slightly before the activation to sometime after the activation is stored. This is needed, to help ensure that other calculation cycles would or would not have led to activation when the safety feature is post-tuned. 
         [0025]    According to certain aspects of the invention, the diagnostics are set up or configured so that the activation data is written to memory immediately. The reason for this is that there would be a record of activation in the sensor, if, for example, a collision does occur and damages the vehicle such that the data cannot be written a certain time after the event (e.g., power loss to the ECU). 
         [0026]    In general, vehicle manufacturers (e.g., OEMs) have vehicles that are series representative about two months before the start of production (SOP). These vehicles are built according to final or near-final specifications and are built according to final or near-final plant processes. There are usually only few minor changes on these vehicles thereafter. The number of vehicles available at this stage is usually on the order of several hundred, and in general these are driven on public roads by a large number of different drivers. In addition, every variant or model of the vehicle is built at this stage. The data from these vehicles is ideal (as compared to data from prototypes or generic vehicles), since a broad range of scenarios is covered by these vehicles, and the data only needs to be collected (and not modified to account for a specific features of production vehicles). In general, the automotive safety functions must be switched off at this stage, so that the function does not influence the data collection, or the most primitive, latest reacting software program should be active. 
         [0027]    Some of the vehicles are used on the test track to perform tests for the automotive safety functions, electronic stability control (ESC), or similar testing. Such test-track events may lead to activations, and, in general, are classified as benefit cases. In order to not falsify the number of benefit cases that occur in the real world, a test-track detection could occur by (a) evaluating the GIPS coordinates, or (b) if GPS coordinates are not available, if the number of activations is particularly high without driving a large distance, then this can be evaluated to be a high likelihood of being a test track scenario. 
         [0028]    Once the data has been collected and evaluated, the software program with the most benefit (in comparison with the other programs), which still meets the false activation target is selected. Since the automotive sensor is likely to be in production at this time, the desired software program should be selectable using diagnostic commands. The diagnostic command telling the sensor which function should be used can be given to each sensor at the plant (e.g., at the same place where the sensor is taken out of plant mode or any other diagnostic takes place). In order to prevent misuse as someone activating different software programs, in certain embodiments the diagnostic command has an activation code that is only given to the assembly plant, for part-replacement in service or other uses when necessary. 
         [0029]    It is also possible to configure the software program so that it is able to set threshold parameters at a late stage of safety system development and communicate these via diagnostics (in the final assembly plant) in order to store them into the memory (for example, EEPROM). The number of post-settable options can, therefore, be increased, but this may make the software more complicated. The values of each parameter where the threshold is post-tunable in memory are stored in the data with each function activation. Since the data stored with each function activation may not show every calculation cycle, and may be truncated to save space where this is stored, care is taken to define such thresholds accurately. Since these values must be set in the assembly plant also, this data may be encrypted to prevent manipulation of the data, and in one embodiment a checksum feature is utilized to ensure that the complete set of data has been written to the memory of the sensor. 
         [0030]    In one embodiment, as described earlier, nine different programs are developed or determined, for example. One of the nine programs is selected by writing the diagnostic command. As described in the previous paragraph, the thresholds for many parameters can be set, such as in the case of: lateral offset for activation=1.4 m, existence probability threshold 85%, driver steering with less than 20 deg/sec on steering wheel, etc. These thresholds are all individually transmitted to the controller via diagnostic commands and recorded in the sensor to set the parameters of the final program. 
         [0031]    Although the techniques and embodiments described herein illustrate how automotive safety functions can be validated without recording the full controller or ECU data, it is still desirable to record a portion of the full controller data for development of any new functions (or changes in any of the software programs), and for validating that the post-analysis and data collected via diagnostics is accurate. Although there are benefit cases in the real world, it is expected that most benefit cases are validated on the test track, and the evaluation is performed for all the different software programs to compare the benefit rates. 
         [0032]    Embodiments and aspects of the invention help reduce the number of miles of full data that needs to be collected to validate the automotive safety functions. In addition, aspects and embodiments enable safety functions to be developed on other, even not so similar, vehicles (since the targeted vehicles may not be available at an early stage, especially since there is a trend to reduce development time). Accordingly, reduced costs may be achieved in a number of ways, which may include: 
         [0033]    1) Less prototype vehicles are needed to perform the collection of validation miles. 
         [0034]    2) Less “full internal controller or ECU data” needs to be collected. 
         [0035]    3) Carry-overs from other unrelated vehicles are principally possible. This aspect helps for low-volume vehicles or in projects where representative prototypes are available at a very late stage. 
         [0036]    4) More miles of validation than actually necessary may be performed, leading to a more reliable statistics. There is also a better coverage of all types of driving scenarios. 
         [0037]    5) In the event that a quality problem is found when the vehicles have already been sold, the tuning of the automotive safety functions can be reconfigured in the dealership immediately, without further development (other than on/off switch, and other than reflashing the memory of the controller or ECU). 
         [0038]    6) If a re-validation is required, for example due to a hardware change, software bug, or other part that may influence the sensor of the safety system (e.g., fascia in which an ultrasonic sensor is installed), then this validation can take place quickly and with low costs. 
         [0039]    7) In the event that partner controllers or ECUs are changed, or only have a representative. part available a short period of time before vehicle SOP, implementations of the invention enable validation to still take place. In particular, since parts are, in general, manufactured six to ten weeks before vehicle SOP, reflashing all of the units produced may be delayed until SOP. 
         [0040]      FIG. 2  illustrates a system  100  on and with which aspects of the invention may be implemented. The system  100  includes a computer in the form or a server  105  that communicates with vehicle components such as the sensors  35 ,  37 , and  39 , braking and other systems such as electronic stability control  50 , steering system control  43 . and controller  30 . The vehicle components communicate with a data logger  110  connected to, for example, the vehicle CAN. The data logger records data and activation events as discussed above. A connectivity unit or communications interface  11  provides a communication link between the data logger  110  and the server  105 . The server  105  stores programs for execution by the controller  30  and/or vehicle systems (for example, electronic stability control  50 , forward collision mitigation by braking, etc.), A diagnostics tool  120  may be connected to the communications interface  115  to carry out the diagnostic processes described above, including paragraphs  13 ,  15 ,  19 , and  20   
         [0041]    Additional features and advantages of the invention are set forth in the following claims.