EP4091054A1 - Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault - Google Patents

Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault

Info

Publication number
EP4091054A1
EP4091054A1 EP21700423.3A EP21700423A EP4091054A1 EP 4091054 A1 EP4091054 A1 EP 4091054A1 EP 21700423 A EP21700423 A EP 21700423A EP 4091054 A1 EP4091054 A1 EP 4091054A1
Authority
EP
European Patent Office
Prior art keywords
application
application instances
instances
configuration
subsets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP21700423.3A
Other languages
German (de)
French (fr)
Inventor
Tobias Kain
Maximilian Wesche
Julian-Steffen Müller
Hendrik Decke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Volkswagen AG
Original Assignee
Volkswagen AG
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 Volkswagen AG filed Critical Volkswagen AG
Publication of EP4091054A1 publication Critical patent/EP4091054A1/en
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0225Failure correction strategy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare

Definitions

  • the invention relates to a method and a device for reconfiguring an automatically driving vehicle in the event of a fault.
  • the invention also relates to a vehicle with such a device.
  • Modern machines have an ever-increasing number of technical components that interact with one another.
  • the FDIR (Fault, Detection, Isolation, Recovery) method is known from the field of aviation.
  • errors are recognized by monitoring.
  • a detected fault is then isolated by switching from an affected component to a redundant component with the same functionality. After switching, an attempt is made to restore redundancy by activating additional components. So far, however, a human fallback level has always been available that can manually take over control if the method fails.
  • the invention is based on the object of creating a method and a device for reconfiguring an automatically driving vehicle in the event of a fault, with which operation can be maintained in an improved manner even without a human fallback level.
  • a method for reconfiguring an automatically driving vehicle in the event of a fault, with application instances being carried out according to a predefined configuration, distributed across a number of calculation nodes, wherein at least some of the application instances recorded sensor data are fed to at least one sensor and at least some of the application instances generate and provide control signals for controlling the vehicle, the application instances and / or operating systems and / or hardware corresponding to the computing nodes using at least one Monitor device are monitored, an error in an application instance and / or in an operating system and / or in hardware is detected by means of the at least one monitor device, the detected error by switching to application instances that are redundant to the respective application instances concerned, using a switching device is isolated, and wherein for the application instances predetermined redundancy conditions and / or segregation conditions are restored by reconfiguring the configuration by means of an application placement device, wherein the reconfiguration is carried out in such a way that a number of shifts from application instances to other computation nodes necessary to establish the predefined redundancy conditions and / or segregation conditions is
  • a device for reconfiguring an automatically driving vehicle in the event of a fault is created, with application instances being carried out in the vehicle according to a predetermined configuration distributed over a number of calculation nodes, with at least some of the application instances being supplied with acquired sensor data from at least one sensor and with at least one Part of the application instances, control signals for controlling the vehicle are generated and provided, comprising at least one monitor device, a switchover device, and an application placement device, wherein the at least one monitor device is set up to assign the application instances and / or operating systems and / or hardware corresponding to the computing nodes monitor and detect an error in an application instance and / or in an operating system and / or in hardware, the switching device being set up for this i st to isolate the detected error by switching to application instances that are redundant to the respective application instances concerned, by means of a switching device, the application placement device being set up to restore redundancy conditions and / or segregation conditions predetermined for the application instances by reconfiguring the configuration, and reconfiguring in this way to carry out that a
  • the method and the device make it possible to maintain an operation or an automated drive of the vehicle without the presence of a human fallback level after the occurrence of a fault in one or more application instances.
  • the reconfiguration takes place in such a way that a number of shifts from application instances to other computation nodes necessary to establish the specified redundancy conditions and / or segregation conditions is minimized. Since each individual move of an application instance requires both time and resources (computing resources and memory resources) and, in addition, redundancy conditions and / or segregation conditions may not be met for a period of the move, each move is safety-critical and should therefore be avoided if possible.
  • the application placement device based on a current active configuration and the specific parameters of the application instances and the calculation nodes, the application placement device tries to calculate a new configuration that fulfills the redundancy conditions and / or segregation conditions, the configuration being calculated in such a way that to activate the new configuration, as few application instances as possible have to be moved to other calculation nodes.
  • the application placement device solves, in particular, an application placement problem.
  • One advantage of the method and the device is that the automated driving vehicle is reconfigured in such a way that a number and duration of safety-critical shifts of application instances during reconfiguration is minimized.
  • An application is provided by means of at least one application instance.
  • An application instance is in particular a process that provides a specific functionality and that is executed on at least one calculation node.
  • an application instance can provide one of the following functionalities in connection with automated driving: environment perception, localization, navigation, trajectory planner or a prognosis of one's own behavior and / or the behavior of objects in the vicinity of the vehicle, etc.
  • at least some of the application instances receive sensor data that were recorded by means of at least one sensor and / or data from other application instances.
  • At least some of the application instances provide control signals for the vehicle.
  • the application instances can in particular be in an active and in at least one passive operating state operate. In the active operating state, the application instance has a direct influence on the control of the vehicle.
  • an application instance runs redundantly next to an active application instance of the same type, receives the same input data and generates the same output data or control signals, but has no influence on the control of the vehicle.
  • Different levels of the passive state can be provided, which differ, for example, only in how quickly a passive application instance can be transferred to the active operating state.
  • both the active and the passive application instances are monitored in particular.
  • the method can then be carried out accordingly, isolating and switching being omitted and an affected passive application instance being merely terminated and replaced by a newly started passive application instance with the same functionality, so that redundancy conditions are restored are made.
  • a configuration includes, in particular, an assignment of active and passive application instances to individual calculation nodes.
  • the configuration specifies in particular which application instance is executed on which calculation node, as well as the respective associated operating states of the application instances.
  • the configuration is dependent on predefined redundancy conditions and / or segregation conditions, which are given or are given as a function of the functionalities of the application instances. For example, it can be provided that the redundancy condition prescribes simple redundancy.
  • An active application instance and a passive application instance are then operated for an application or a functionality.
  • different redundancy conditions can be provided for the same functionalities, e.g. single (e.g. pedestrian detection on a motorway) or multiple redundancy (e.g. quadruple redundancy for pedestrian detection in a play street).
  • a segregation condition is, in particular, a specification for a number of different calculation nodes on which an application must be executed by means of redundant application instances.
  • a segregation condition can affect both software and hardware.
  • a segregation condition can include that redundant application instances of an application must each be executed on a predetermined number of different operating systems.
  • a segregation condition can include that redundant application instances of an application must be executed separately from one another on a predetermined number of different calculation nodes.
  • the vehicle is in particular a motor vehicle.
  • the vehicle can also be another land, water, air, rail or space vehicle.
  • a monitoring device is used for each application instance. Furthermore, it can be provided that a monitor device is used for each operating system and / or each hardware. As a result, monitoring can be carried out more reliably and more quickly, so that an error can be detected more quickly.
  • Parts of the device in particular the at least one monitor device, the switching device and / or the application placement device, can be designed individually or collectively as a combination of hardware and software, for example as program code that is executed on a microcontroller or microprocessor. However, it can also be provided that parts are designed individually or combined as an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • the application instances are assigned or assigned a priority class, with configurations for subsets that are formed or are formed from application instances of at least one of the assigned priority classes being calculated individually for reconfiguration.
  • This makes it possible to adapt a configuration or to reconfigure the vehicle even if, after an error has occurred, there are no longer enough resources (e.g. due to defective calculation nodes etc.) available for all previously active applications or application instances.
  • the prioritization of the application instances by means of the priority classes then makes it possible in particular to calculate configurations for the different priority classes individually and thereby ensure or enable continued operation of the automatically driven vehicle, albeit with possibly a reduced scope of functions.
  • the priority classes are, in particular, a measure of how important or security-relevant an application instance classified as a result is.
  • the priority classes can include, for example, the following four classes: HIGHEST, HIGH, LOW, LOWEST. In principle, however, more or fewer priority classes can also be provided.
  • the configuration is calculated, for example, using one of the following methods: integer linear programming, evolutionary game theory, or reinforcement learning.
  • the subsets are formed in such a way that the subsets successively only include application instances whose assigned priority classes achieve a respective minimum priority class.
  • a priority of the priority classes comprised by subsets can be successively increased.
  • Application instances to which a priority class is assigned that is below a predetermined minimum priority class are not included in a subset considered. This makes it possible to prioritize when calculating the configurations for the subsets.
  • the following four subsets (S 1 to S 4 ) can be formed, with different minimum priority classes being used for each of the subsets:
  • a configuration can now be calculated for each of these subsets by means of the application placement device. If no configuration can be calculated for one of the subsets, for example because there is no solution, solutions for configurations of the other subsets can be used.
  • the configurations for the subsets are calculated at least partially parallel to one another by means of the application placement device.
  • the configurations for the subsets are all calculated parallel to one another by means of the application placement device.
  • the application placement facility selects the best solution and reconfigures the vehicle. In this case, a solution of that subset is preferred which includes most of the subsets with the highest priority classes. For the subsets S 1 to S 4 described above by way of example, this means that one is successful
  • the calculated configuration for the subset S 3 is preferred over a successfully calculated configuration for the subset S 4 .
  • a configuration for S 1 is preferred over a configuration of S 2 , S 3 and S 4 etc. Only if no configuration could be calculated for a subset and no configuration could be calculated for a subset that is higher in terms of the priority classes included, a Configuration selected for a lower-priority subset and implemented by reconfiguring.
  • the configurations for the subsets are at least partially calculated sequentially by means of the application placement device.
  • the configurations for the subsets are all calculated sequentially by means of the application placement device. This has the advantage that the entire computing resources for computing a configuration can be made available for a single subset, so that computing time can be reduced, in particular minimized.
  • the configurations are first calculated for those subsets which in each case comprise the largest number of highest priority classes. This does not allow any kind of ranking to be established. For the subsets defined above, this would mean that the configurations for the subsets are calculated one after the other in the following order: S 1 , S 2 , S 3 , S 4 .
  • the configuration for a subsequent subset is only calculated if a calculation for a subset under consideration has not led to success, that is, if no solution for a configuration could be found for the subset under consideration.
  • the calculation is aborted when a predetermined maximum calculation time is reached or exceeded, the already calculated configuration being selected for reconfiguration which includes application instances with the largest number of highest priority classes in each case.
  • a predetermined maximum calculation time is reached or exceeded, the already calculated configuration being selected for reconfiguration which includes application instances with the largest number of highest priority classes in each case.
  • this embodiment can be used both in a parallel and in a sequential calculation.
  • a parallel calculation it can generally be assumed that a calculation time for the subsets with the smallest number of application instances is the shortest. Therefore, in the case of calculation processes carried out in parallel, the calculation processes for such subsets will be completed first. As the more complex calculation processes for the other subsets are gradually completed over time, improved solutions for configurations are also gradually available. If the maximum calculation time is reached, the ongoing calculation processes are stopped and the best of the existing solutions for a configuration is selected and used when reconfiguring.
  • the configurations for the subsets with the lowest number of highest priority classes are calculated first (in the above example, the sequential calculation would therefore be in the order: S 4 , S 3 , S 2 , S 1 respectively).
  • the best available configuration is selected, that is, the one that includes the greatest number of highest priority classes.
  • a vehicle comprising at least one device according to one of the described embodiments.
  • Fig. 1 is a schematic representation of an embodiment of the device for
  • FIG. 3 shows a schematic illustration of an embodiment of the method for reconfiguring an automatically driving vehicle in the event of a fault
  • Fig. 5 is a schematic representation of a further embodiment of the method.
  • FIG. 1 shows a schematic illustration of an embodiment of the device 1 for reconfiguring an automated driving vehicle 50 in the event of a fault.
  • application instances 60, 61 are executed distributed over a number of calculation nodes in accordance with a predetermined configuration 62.
  • the application instances 60, 61 provide, for example, functionality for perception of the surroundings, localization, navigation and / or trajectory planning.
  • At least some of the application instances 60, 61 are supplied with sensed sensor data 10 to at least one sensor 51 of the vehicle 50 (or other sensors, for example, which sense the surroundings of the vehicle 50).
  • At least some of the application instances 60, 61 generate and provide control signals 30 for controlling the vehicle 50.
  • the provided control signals 30 of the respectively active application instances 60 are fed to an actuator 52 of the vehicle 50, which implements an automated drive of the vehicle 50.
  • the device 1 comprises a monitor device 2, a switchover device 3 and an application placement device 4.
  • a monitor device 2 is provided for each of the application instances 60, 61, for each operating system and for each hardware providing the computing nodes (for the sake of clarity only one monitor device 2 shown).
  • Parts of the device 1 can be designed individually or collectively as a combination of hardware and software, for example as program code that is executed on a microcontroller or microprocessor. It can also be provided that the provision of a functionality of the application instances 60, 61 and the device 1 takes place jointly, for example by means of a data processing device of vehicle 50.
  • the application instances 60, 61 and / or operating systems and / or hardware corresponding to the computing nodes are monitored by the monitoring device 2.
  • the monitoring device 2 detects errors in the application instances 60, 61 and / or the operating systems and / or in the hardware.
  • the detected error is isolated by means of the switchover device 3 by switching to passive application instances 61, which are redundant to the application instances 60 affected by the error.
  • the switching device 3 activates the respective redundant passive application instance 61, which takes over the functionality of the application instance 60 affected by the error, while the application instance 60 affected is deactivated. This takes place, for example, by means of a switchover signal 63. If several application instances 60 are affected, the respective redundant passive application instances 61 are activated accordingly.
  • predetermined redundancy conditions 11 and / or segregation conditions 12 for the application instances 60, 61 are restored by reconfiguring the configuration 62 using the application placement device 4.
  • the redundancy conditions 11 include, in particular, specifications as to which application instance 60 should or must be operated with which redundancy (none, single, double, multiple).
  • the reconfigured configuration 62 is set by configuring the application instances 60, 61 accordingly.
  • the reconfiguration here includes, in particular, starting and setting up further passive application instances 61 in order to (again) meet a respective redundancy condition 11 and / or segregation condition 12. If a previously passive application instance 61 is activated due to an error and a previously active application instance 60 is deactivated for isolation, a new passive application instance 61 is set up and started on one of the computing nodes so that the redundancy is restored. If there are several application instances 60 to be isolated, the procedure is corresponding.
  • the reconfiguration is carried out in such a way that a number of for establishing the predetermined redundancy conditions 11 and / or Segregation conditions 12 necessary shifts from application instances 60, 61 to other calculation nodes is minimized or is minimized.
  • the device 1 comprises a fail-safe device 5.
  • the vehicle 50 can be transferred to a safe state by means of the failover device 5 if at least one predefined redundancy condition 11 can no longer be met due to the reconfiguration or at least one segregation condition 12 can no longer be met. This is the case, for example, when the error means that there are no longer enough resources (e.g. computing power, memory, etc.) available for the security-relevant application instances 60, 61.
  • the vehicle 50 is then driven to the edge of the road, for example, by the fail-safe device 5, and is parked, with automated further travel being blocked.
  • the application placement device 4 is responsible for placing application instances 60, 61 so that the predefined redundancy conditions 11 and / or segregation conditions 12 can be restored.
  • the application placement device 4 tries to find computation nodes that have sufficient resources (in particular computing power, memory and installed software) to be able to execute new application instances 60, 61 so that an isolated application instance 60, 61 can be replaced. If there are insufficient resources available, the application placement device 4 can stop application instances 60, 61 with lower priority in order to be able to provide resources for an application instance 60, 61 with higher priority.
  • the application placement problem is formulated.
  • the following parameters are extracted from a current state of the vehicle and the newly started application entity (s) 60, 61. These parameters are then fed to a solver for the application placement problem as input parameters:
  • - I The set of application instances 60, 61 to be placed.
  • - A The set of applications, where ⁇ a ⁇ A: a ⁇ I. Furthermore, the following must apply: ⁇ a 1 ⁇
  • An application instance 60, 61 must be executed by exactly one calculation node:
  • An application instance 60, 61 only runs on a computing device that provides software that is required by the application instance 60, 61:
  • the application instances 60, 61 belonging to the same application must run on a minimum number of different computing devices, that is to say the hardware segregation condition must be met for each application.
  • a matrix of auxiliary variables h is introduced, which is defined as felgt:
  • boundary condition 5 applies to the application, but not to application a 2.
  • boundary condition 5 does not hold for application a 2:
  • boundary condition 5.2 apply must, applies 1.
  • boundary condition 5.3 apply must, this means that boundary condition 5.4 is not fulfilled, the following applies:
  • the solver is instructed to find the configuration or placement that maximizes the following optimization criterion: On the basis of this optimization criterion, configurations or application placements are preferred which minimize a number of shifts from application instances 60, 61 to other calculation nodes. This goal is pursued, since a smaller number of shifts in particular reduces the time required for reconfiguration.
  • FIGS. 2a, 2b and 2c show schematic representations of configurations 62 to illustrate the method described in this disclosure.
  • FIG. 2a shows an original (initial) configuration 62.
  • FIG. 2b shows a configuration 62 as calculated by the application placement device.
  • FIG. 2c shows a configuration 62 which is a valid solution to the application placement problem, but which requires a total of five relocations of application instances 60-x.
  • the configuration 62 comprises four applications, which with the help of the active application instances 60-1, 60-2, 60-3, 60-4 and the redundant passive application instances 61-1, 61-2, 61-3, 61-4 are provided, as well as four computation nodes 70-1, 70-2, 70-3, 70-4.
  • the four applications require the following resources:
  • the computation node 70-2 has a defect and can no longer be used.
  • the application instances 60-1 and 61-2 can no longer be provided either.
  • the switching device switches one of the passive application instances 61-1 to the “active” operating state (illustrated by the change in the reference number from 61-1 to 60-1).
  • new passive application instances 61-2, 61-2 are started by the application placement device in order to restore the redundancy condition that applied before the defect in the calculation node 70-2.
  • the application placement device calculates a new configuration 62 or a new application placement, the fewest possible Makes shifts of application instances 60- x, 61 -x necessary.
  • FIG. 2b One solution to the application placement device that requires only a single shift is shown in FIG. 2b.
  • This application placement only requires the relocation of the passive application instance 61-3.
  • the application instance 61-3 is moved from the computing node 70-3 to the computing node 70-4.
  • the example was constructed in such a way that at least one application instance 60-x, 61-x must be moved.
  • the configuration 62 shown in FIG. 2b is therefore the optimal configuration 62 with regard to the optimization goal of the application placement device of having to move as few application instances 60-x, 61-x as possible.
  • FIG. 2c a configuration 62 of such a non-optimal solution is shown by way of example, for which five shifts are necessary. If there are not enough resources (computing nodes, computing power and memory, etc.), the application placement device can also stop application instances 60-x, 61-x. In the following, two embodiments of the method and the device are described which can provide solutions in the case of limited resources.
  • FIG. 3 shows a schematic representation of an embodiment of the method.
  • a priority class is or is assigned to each of the application instances.
  • the following priority classes are assumed for the sake of clarity:
  • configurations for subsets that are formed or are formed from application instances of at least one of the assigned priority classes are each calculated individually. It is also provided that the subsets are formed in such a way that the subsets gradually only include application instances whose assigned priority classes achieve a respective minimum priority class.
  • the following subsets S 1 , S 2 , S 3 , S 4 result :
  • the configurations for the subsets S 1 , S 2 , S 3 , S 4 are calculated in parallel to one another, i.e. at the same time by means of calculation threads executed in parallel with one another, by means of the application placement device, as shown schematically in FIG. 3 where the calculation threads are illustrated over time t.
  • the application placement facility selects the best or most optimal from the calculated configurations. Provision can be made for the calculation to be aborted when a predefined maximum calculation time 20 is reached or exceeded, the already calculated configuration being selected for reconfiguration which includes application instances with the largest number of highest priority classes in each case. In this way, the reconfiguration or the calculation can be controlled in particular in time-critical situations.
  • Fig. 5 a schematic representation of an embodiment of the method is shown.
  • the embodiment is designed like the embodiment described above in connection with FIGS. 3 and 4.
  • the configurations 62 for the subsets S 1 , S 2 , S 3 , S 4 are calculated sequentially by means of the application placement device. This has the advantage that full computing power can be provided when calculating a configuration for a subset S 1 , S 2 , S 3 , S 4 .
  • the configurations 62 are first calculated for those subsets which each comprise the largest number of highest priority classes, that is to say in the example according to the sequence: S 1 , S 2 , S 3 , S 4 .
  • the calculation is only continued if a previous calculation was unsuccessful or did not lead to a solution or configuration 62 (indicated in FIG. 4 by an “X”).
  • a solution or a configuration 62 would be found for the subset S4, that is to say it can only an application placement or a configuration 62 are calculated in which the applications with the HIGHEST priority class are taken into account.

Abstract

The invention relates to a method for reconfiguring an autonomous vehicle (50) in the event of a fault, wherein application entities (60-x, 61-x) are executed in a distributed manner across a plurality of computing nodes (70-x) in accordance with a predefined configuration (62), wherein a fault in an application entity (60-x, 61-x) and/or in an operating system and/or in a piece of hardware is detected by means of the at least one monitor device (2), wherein the detected fault is isolated by means of a switching device (3) by switching to application entities (61-x) which are redundant with respect to the affected application entities (60-x), and wherein predefined redundancy conditions (11) and/or segregation conditions (12) are restored for the application entities (60-x, 61-x) by the reconfiguration, by an application placement device (4), of the configuration (62) , wherein the reconfiguration is carried out such that the number of times application entities (60-x, 61-x) are switched to other computing nodes (70-x) to establish the predefined redundancy conditions (11) and/or segregation conditions (12) will be or is minimised. The invention also relates to a corresponding apparatus (1) and to a vehicle (50) comprising such an apparatus (1).

Description

Beschreibung description
Verfahren und Vorrichtung zum Rekonfigurieren eines automatisiert fahrendenMethod and device for reconfiguring an automated vehicle
Fahrzeugs in einem Fehlerfall Vehicle in the event of a fault
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall. Ferner betrifft die Erfindung ein Fahrzeug mit einer solchen Vorrichtung. The invention relates to a method and a device for reconfiguring an automatically driving vehicle in the event of a fault. The invention also relates to a vehicle with such a device.
Moderne Maschinen weisen eine stets wachsende Anzahl von technischen Komponenten auf, die miteinander in Wechselwirkung stehen. Um einen Weiterbetrieb auch im Falle eines Fehlers bei einer oder mehrerer dieser Komponenten sicherzustellen, ist aus dem Bereich der Luftfahrt das FDIR (Fault, Detection, Isolation, Recovery)-Verfahren bekannt. Hierbei werden Fehler durch eine Überwachung erkannt. Ein erkannter Fehler wird dann durch Umschalten von einer betroffenen Komponente auf eine redundant mit gleicher Funktionalität bereitgehaltene Komponente isoliert. Nach dem Umschalten wird versucht, eine Redundanz wieder herzustellen, indem zusätzliche Komponenten aktiviert werden. Bisher steht jedoch stets eine menschliche Rückfallebene zur Verfügung, die bei Scheitern des Verfahrens eine Steuerung manuell übernehmen kann. Modern machines have an ever-increasing number of technical components that interact with one another. In order to ensure continued operation even in the event of a fault in one or more of these components, the FDIR (Fault, Detection, Isolation, Recovery) method is known from the field of aviation. Here, errors are recognized by monitoring. A detected fault is then isolated by switching from an affected component to a redundant component with the same functionality. After switching, an attempt is made to restore redundancy by activating additional components. So far, however, a human fallback level has always been available that can manually take over control if the method fails.
Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren und eine Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall zu schaffen, mit denen ein Betrieb auch ohne menschliche Rückfallebene verbessert aufrecht erhalten werden kann. The invention is based on the object of creating a method and a device for reconfiguring an automatically driving vehicle in the event of a fault, with which operation can be maintained in an improved manner even without a human fallback level.
Die Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 und eine Vorrichtung mit den Merkmalen des Patentanspruchs 8 gelöst. Vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen. The object is achieved according to the invention by a method with the features of claim 1 and a device with the features of claim 8. Advantageous refinements of the invention emerge from the subclaims.
Insbesondere wird ein Verfahren zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall zur Verfügung gestellt, wobei Anwendungsinstanzen gemäß einer vorgegebenen Konfiguration verteilt auf mehreren Berechnungsknoten ausgeführt werden, wobei zumindest einem Teil der Anwendungsinstanzen erfasste Sensordaten mindestens eines Sensors zugeführt werden und wobei zumindest von einem Teil der Anwendungsinstanzen Steuersignale zum Steuern des Fahrzeugs erzeugt und bereitstellt werden, wobei die Anwendungsinstanzen und/oder Betriebssysteme und/oder eine mit den Berechnungsknoten korrespondierende Hardware mittels mindestens einer Monitoreinrichtung überwacht werden, wobei ein Fehler in einer Anwendungsinstanz und/oder in einem Betriebssystem und/oder in einer Hardware mittels der mindestens einen Monitoreinrichtung erkannt wird, wobei der erkannte Fehler durch Umschalten auf Anwendungsinstanzen, die zu jeweils betroffenen Anwendungsinstanzen redundant sind, mittels einer Umschalteinrichtung isoliert wird, und wobei für die Anwendungsinstanzen vorgegebene Redundanzbedingungen und/oder Segregationsbedingungen durch Umkonfigurieren der Konfiguration mittels einer Anwendungsplatzierungseinrichtung wiederhergestellt werden, wobei das Umkonfigurieren derart durchgeführt wird, dass eine Anzahl von zum Herstellen der vorgegebenen Redundanzbedingungen und/oder Segregationsbedingungen notwendigen Verschiebungen von Anwendungsinstanzen auf andere Berechnungsknoten minimiert wird oder minimiert ist. In particular, a method is provided for reconfiguring an automatically driving vehicle in the event of a fault, with application instances being carried out according to a predefined configuration, distributed across a number of calculation nodes, wherein at least some of the application instances recorded sensor data are fed to at least one sensor and at least some of the application instances generate and provide control signals for controlling the vehicle, the application instances and / or operating systems and / or hardware corresponding to the computing nodes using at least one Monitor device are monitored, an error in an application instance and / or in an operating system and / or in hardware is detected by means of the at least one monitor device, the detected error by switching to application instances that are redundant to the respective application instances concerned, using a switching device is isolated, and wherein for the application instances predetermined redundancy conditions and / or segregation conditions are restored by reconfiguring the configuration by means of an application placement device, wherein the reconfiguration is carried out in such a way that a number of shifts from application instances to other computation nodes necessary to establish the predefined redundancy conditions and / or segregation conditions is minimized or is minimized.
Ferner wird insbesondere eine Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall geschaffen, wobei in dem Fahrzeug Anwendungsinstanzen gemäß einer vorgegebenen Konfiguration verteilt auf mehreren Berechnungsknoten ausgeführt werden, wobei zumindest einem Teil der Anwendungsinstanzen erfasste Sensordaten mindestens eines Sensors zugeführt werden und wobei zumindest von einem Teil der Anwendungsinstanzen Steuersignale zum Steuern des Fahrzeugs erzeugt und bereitstellt werden, umfassend mindestens eine Monitoreinrichtung, eine Umschalteinrichtung, und eine Anwendungsplatzierungseinrichtung, wobei die mindestens eine Monitoreinrichtung dazu eingerichtet ist, die Anwendungsinstanzen und/oder Betriebssysteme und/oder eine mit den Berechnungsknoten korrespondierende Hardware zu überwachen und einen Fehler in einer Anwendungsinstanz und/oder in einem Betriebssystem und/oder in einer Hardware zu erkennen, wobei die Umschalteinrichtung dazu eingerichtet ist, den erkannten Fehler durch Umschalten auf Anwendungsinstanzen, die zu jeweils betroffenen Anwendungsinstanzen redundant sind, mittels einer Umschalteinrichtung zu isolieren, wobei die Anwendungsplatzierungseinrichtung dazu eingerichtet ist, für die Anwendungsinstanzen vorgegebene Redundanzbedingungen und/oder Segregationsbedingungen durch Umkonfigurieren der Konfiguration wiederherzustellen, und das Umkonfigurieren derart durchzuführen, dass eine Anzahl von zum Herstellen der vorgegebenen Redundanzbedingungen und/oder Segregationsbedingungen notwendigen Verschiebungen von Anwendungsinstanzen auf andere Berechnungsknoten minimiert ist. Das Verfahren und die Vorrichtung ermöglichen es, ohne das Vorhandensein einer menschlichen Rückfallebene nach dem Auftreten eines Fehlers in einer oder mehreren Anwendungsinstanzen einen Betrieb bzw. eine automatisierte Fahrt des Fahrzeugs aufrechtzuerhalten. Das Umkonfigurieren erfolgt hierbei derart, dass eine Anzahl von zum Herstellen der vorgegebenen Redundanzbedingungen und/oder Segregationsbedingungen notwendigen Verschiebungen von Anwendungsinstanzen auf andere Berechnungsknoten minimiert ist. Da jede einzelne Verschiebung einer Anwendungsinstanz sowohl Zeit als auch Ressourcen (Rechenressourcen und Speicherressourcen) benötigt und darüber hinaus für einen Zeitraum der Verschiebung unter Umständen Redundanzbedingungen und/oder Segregationsbedingungen nicht erfüllt sind, ist jede Verschiebung sicherheitskritisch und daher nach Möglichkeit zu vermeiden. Insbesondere versucht die Anwendungsplatzierungseinrichtung daher, ausgehend von einer aktuellen aktiven Konfiguration als auch von den spezifischen Parametern der Anwendungsinstanzen und der Berechnungsknoten eine neue Konfiguration zu berechnen, die die Redundanzbedingungen und/oder Segregationsbedingungen erfüllt, wobei die Konfiguration hierbei derart berechnet wird, dass zum Aktivieren der neuen Konfiguration möglichst wenige Anwendungsinstanzen auf andere Berechnungsknoten verschoben werden müssen. Die Anwendungsplatzierungseinrichtung löst hierzu insbesondere ein Anwendungsplatzierungsproblem (engl. Application Placement Problem). Furthermore, in particular a device for reconfiguring an automatically driving vehicle in the event of a fault is created, with application instances being carried out in the vehicle according to a predetermined configuration distributed over a number of calculation nodes, with at least some of the application instances being supplied with acquired sensor data from at least one sensor and with at least one Part of the application instances, control signals for controlling the vehicle are generated and provided, comprising at least one monitor device, a switchover device, and an application placement device, wherein the at least one monitor device is set up to assign the application instances and / or operating systems and / or hardware corresponding to the computing nodes monitor and detect an error in an application instance and / or in an operating system and / or in hardware, the switching device being set up for this i st to isolate the detected error by switching to application instances that are redundant to the respective application instances concerned, by means of a switching device, the application placement device being set up to restore redundancy conditions and / or segregation conditions predetermined for the application instances by reconfiguring the configuration, and reconfiguring in this way to carry out that a number of shifts from application instances to other computation nodes necessary to establish the specified redundancy conditions and / or segregation conditions is minimized. The method and the device make it possible to maintain an operation or an automated drive of the vehicle without the presence of a human fallback level after the occurrence of a fault in one or more application instances. The reconfiguration takes place in such a way that a number of shifts from application instances to other computation nodes necessary to establish the specified redundancy conditions and / or segregation conditions is minimized. Since each individual move of an application instance requires both time and resources (computing resources and memory resources) and, in addition, redundancy conditions and / or segregation conditions may not be met for a period of the move, each move is safety-critical and should therefore be avoided if possible. In particular, based on a current active configuration and the specific parameters of the application instances and the calculation nodes, the application placement device tries to calculate a new configuration that fulfills the redundancy conditions and / or segregation conditions, the configuration being calculated in such a way that to activate the new configuration, as few application instances as possible have to be moved to other calculation nodes. To this end, the application placement device solves, in particular, an application placement problem.
Ein Vorteil des Verfahrens und der Vorrichtung ist, dass ein Rekonfigurieren des automatisiert fahrenden Fahrzeugs derart durchgeführt wird, dass eine Anzahl und eine Dauer von sicherheitskritischen Verschiebungen von Anwendungsinstanzen beim Umkonfigurieren minimiert ist. One advantage of the method and the device is that the automated driving vehicle is reconfigured in such a way that a number and duration of safety-critical shifts of application instances during reconfiguration is minimized.
Eine Anwendung wird mittels mindestens einer Anwendungsinstanz bereitgestellt. Eine Anwendungsinstanz ist insbesondere ein Prozess, der eine bestimmte Funktionalität bereitstellt und der auf mindestens einem Berechnungsknoten ausgeführt wird. Beispielsweise kann eine Anwendungsinstanz eine der folgenden Funktionalitäten im Zusammenhang mit einem automatisierten Fahren bereitstellen: Umfeldwahrnehmung, Lokalisierung, Navigation, Trajektorienplaner oder eine Prognose des eigenen Verhaltens und/oder des Verhaltens von Objekten im Umfeld des Fahrzeugs etc. Hierzu erhält zumindest ein Teil der Anwendungsinstanzen Sensordaten, die mittels mindestens eines Sensors erfasst wurden und/oder Daten von anderen Anwendungsinstanzen. Zumindest ein Teil der Anwendungsinstanzen stellt Steuersignale für das Fahrzeug bereit. Die Anwendungsinstanzen können insbesondere in einem aktiven und in mindestens einem passiven Betriebszustand betrieben werden. Im aktiven Betriebszustand hat die Anwendungsinstanz einen direkten Einfluss auf die Steuerung des Fahrzeugs. Im mindestens einen passiven Betriebszustand läuft eine Anwendungsinstanz hingegen redundant neben einer gleichartigen aktiven Anwendungsinstanz, bekommt die gleichen Eingangsdaten zugeführt und erzeugt die gleichen Ausgangsdaten bzw. Steuersignale, hat aber keinen Einfluss auf die Steuerung des Fahrzeugs. Es können verschiedene Stufen des passiven Zustands vorgesehen sein, die sich beispielsweise nur darin unterscheiden, wie schnell eine passive Anwendungsinstanz in den aktiven Betriebszustand überführt werden kann. Im Rahmen des Verfahrens werden insbesondere sowohl die aktiven als auch die passiven Anwendungsinstanzen überwacht. Im Falle eines Fehlers, der passive Anwendungsinstanzen betrifft, kann das Verfahren dann entsprechend ausgeführt werden, wobei das Isolieren und Umschalten entfallen können und eine betroffene passive Anwendungsinstanz lediglich beendet wird und durch eine neu gestartete passive Anwendungsinstanz mit der gleichen Funktionalität ersetzt wird, sodass Redundanzbedingungen wieder hergestellt sind. An application is provided by means of at least one application instance. An application instance is in particular a process that provides a specific functionality and that is executed on at least one calculation node. For example, an application instance can provide one of the following functionalities in connection with automated driving: environment perception, localization, navigation, trajectory planner or a prognosis of one's own behavior and / or the behavior of objects in the vicinity of the vehicle, etc. For this purpose, at least some of the application instances receive sensor data that were recorded by means of at least one sensor and / or data from other application instances. At least some of the application instances provide control signals for the vehicle. The application instances can in particular be in an active and in at least one passive operating state operate. In the active operating state, the application instance has a direct influence on the control of the vehicle. In at least one passive operating state, however, an application instance runs redundantly next to an active application instance of the same type, receives the same input data and generates the same output data or control signals, but has no influence on the control of the vehicle. Different levels of the passive state can be provided, which differ, for example, only in how quickly a passive application instance can be transferred to the active operating state. In the context of the method, both the active and the passive application instances are monitored in particular. In the event of an error affecting passive application instances, the method can then be carried out accordingly, isolating and switching being omitted and an affected passive application instance being merely terminated and replaced by a newly started passive application instance with the same functionality, so that redundancy conditions are restored are made.
Eine Konfiguration umfasst insbesondere eine Zuordnung von aktiven und passiven Anwendungsinstanzen zu einzelnen Berechnungsknoten. Die Konfiguration legt insbesondere fest, welche Anwendungsinstanz auf welchem Berechnungsknoten ausgeführt wird, sowie die jeweils zugehörigen Betriebszustände der Anwendungsinstanzen. Die Konfiguration ist abhängig von vorgegebenen Redundanzbedingungen und/oder Segregationsbedingungen, die jeweils in Abhängigkeit der Funktionalitäten der Anwendungsinstanzen vorgegeben sind oder vorgegeben werden. Beispielsweise kann vorgesehen sein, dass die Redundanzbedingung eine einfache Redundanz vorschreibt. Zu einer Anwendung bzw. einer Funktionalität werden dann eine aktive Anwendungsinstanz und eine passive Anwendungsinstanz betrieben. Es können je nach Anwendungsszenario unterschiedliche Redundanzbedingungen für die gleichen Funktionalitäten vorgesehen sein, z.B. einfache (z.B. Fußgängererkennung auf einer Autobahn) oder mehrfache Redundanz (z.B. vierfache Redundanz bei einer Fußgängererkennung in einer Spielstraße). A configuration includes, in particular, an assignment of active and passive application instances to individual calculation nodes. The configuration specifies in particular which application instance is executed on which calculation node, as well as the respective associated operating states of the application instances. The configuration is dependent on predefined redundancy conditions and / or segregation conditions, which are given or are given as a function of the functionalities of the application instances. For example, it can be provided that the redundancy condition prescribes simple redundancy. An active application instance and a passive application instance are then operated for an application or a functionality. Depending on the application scenario, different redundancy conditions can be provided for the same functionalities, e.g. single (e.g. pedestrian detection on a motorway) or multiple redundancy (e.g. quadruple redundancy for pedestrian detection in a play street).
Eine Segregationsbedingung ist insbesondere eine Vorgabe für eine Anzahl von unterschiedlichen Berechnungsknoten, auf denen eine Anwendung mittels redundanter Anwendungsinstanzen ausgeführt werden muss. Eine Segregationsbedingung kann sowohl eine Software als auch eine Hardware betreffen. Beispielsweise kann eine Segregationsbedingung umfassen, dass redundante Anwendungsinstanzen einer Anwendung jeweils auf einer vorgegebenen Anzahl von unterschiedlichen Betriebssystemen ausgeführt werden muss. Weiter beispielsweise kann eine Segregationsbedingung umfassen, dass redundante Anwendungsinstanzen einer Anwendung getrennt voneinander auf einer vorgegebenen Anzahl von unterschiedlichen Berechnungsknoten ausgeführt werden müssen. A segregation condition is, in particular, a specification for a number of different calculation nodes on which an application must be executed by means of redundant application instances. A segregation condition can affect both software and hardware. For example, a segregation condition can include that redundant application instances of an application must each be executed on a predetermined number of different operating systems. Furthermore, for example, a segregation condition can include that redundant application instances of an application must be executed separately from one another on a predetermined number of different calculation nodes.
Das Fahrzeug ist insbesondere ein Kraftfahrzeug. Prinzipiell kann das Fahrzeug jedoch auch ein anderes Land-, Wasser-, Luft-, Schienen- oder Raumfahrzeug sein. The vehicle is in particular a motor vehicle. In principle, however, the vehicle can also be another land, water, air, rail or space vehicle.
Es kann vorgesehen sein, dass für jede Anwendungsinstanz eine Monitoreinrichtung verwendet wird. Ferner kann vorgesehen sein, dass für jedes Betriebssystem und/oder jede Hardware jeweils eine Monitoreinrichtung verwendet wird. Hierdurch kann eine Überwachung zuverlässiger und schneller ausgeführt werden, sodass ein Fehler schneller erkannt werden kann. It can be provided that a monitoring device is used for each application instance. Furthermore, it can be provided that a monitor device is used for each operating system and / or each hardware. As a result, monitoring can be carried out more reliably and more quickly, so that an error can be detected more quickly.
Teile der Vorrichtung, insbesondere die mindestens eine Monitoreinrichtung, die Umschalteinrichtung und/oder die Anwendungsplatzierungseinrichtung, können einzeln oder zusammengefasst als eine Kombination von Hardware und Software ausgebildet sein, beispielsweise als Programmcode, der auf einem Mikrocontroller oder Mikroprozessor ausgeführt wird. Es kann jedoch auch vorgesehen sein, dass Teile einzeln oder zusammengefasst als anwendungsspezifische integrierte Schaltung (ASIC) ausgebildet sind. Parts of the device, in particular the at least one monitor device, the switching device and / or the application placement device, can be designed individually or collectively as a combination of hardware and software, for example as program code that is executed on a microcontroller or microprocessor. However, it can also be provided that parts are designed individually or combined as an application-specific integrated circuit (ASIC).
In einer Ausführungsform ist vorgesehen, dass den Anwendungsinstanzen jeweils eine Prioritätsklasse zugeordnet wird oder zugeordnet ist, wobei zum Umkonfigurieren jeweils Konfigurationen für Untermengen, die aus Anwendungsinstanzen mindestens einer der zugeordneten Prioritätsklassen gebildet werden oder gebildet sind, jeweils einzeln berechnet werden. Dies ermöglicht es, eine Konfiguration auch dann anzupassen bzw. das Fahrzeug umzukonfigurieren, wenn nach Auftreten eines Fehlers nicht mehr genug Ressourcen (z.B. aufgrund von defekten Berechnungsknoten etc.) für alle vorher aktiven Anwendungen oder Anwendungsinstanzen zur Verfügung stehen. Die Priorisierung der Anwendungsinstanzen mittels der Prioritätsklassen ermöglicht es dann insbesondere, Konfigurationen für die unterschiedlichen Prioritätsklassen jeweils einzeln zu berechnen und hierdurch einen Weiterbetrieb des automatisiert gefahrenen Fahrzeugs, wenn auch mit gegebenenfalls reduziertem Funktionsumfang, sicherzustellen bzw. zu ermöglichen. Die Prioritätsklassen sind insbesondere ein Maß dafür, wie wichtig bzw. sicherheitsrelevant eine hierdurch klassifizierte Anwendungsinstanz ist. Die Prioritätsklassen können beispielsweise die folgenden vier Klassen umfassen: HÖCHSTE, HOCH, GERING, GERINGSTE. Es können prinzipiell jedoch auch mehr oder weniger Prioritätsklassen vorgesehen sein. Das Berechnen der Konfiguration erfolgt beispielsweise mittels eines der folgenden Verfahren: ganzzahlige lineare Optimierung (engl, integer linear programming), evolutionäre Spieltheorie (engl, evolutionary game theory) oder bestärkendes Lernen (engl, reinforcement learning). In one embodiment, it is provided that the application instances are assigned or assigned a priority class, with configurations for subsets that are formed or are formed from application instances of at least one of the assigned priority classes being calculated individually for reconfiguration. This makes it possible to adapt a configuration or to reconfigure the vehicle even if, after an error has occurred, there are no longer enough resources (e.g. due to defective calculation nodes etc.) available for all previously active applications or application instances. The prioritization of the application instances by means of the priority classes then makes it possible in particular to calculate configurations for the different priority classes individually and thereby ensure or enable continued operation of the automatically driven vehicle, albeit with possibly a reduced scope of functions. The priority classes are, in particular, a measure of how important or security-relevant an application instance classified as a result is. The priority classes can include, for example, the following four classes: HIGHEST, HIGH, LOW, LOWEST. In principle, however, more or fewer priority classes can also be provided. The configuration is calculated, for example, using one of the following methods: integer linear programming, evolutionary game theory, or reinforcement learning.
In einer Ausführungsform ist vorgesehen, dass die Untermengen derart gebildet werden, dass die Untermengen sukzessive nur noch Anwendungsinstanzen umfassen, deren zugeordnete Prioritätsklassen eine jeweilige Mindestprioritätsklasse erreichen. Hierdurch kann eine Priorität der von Untermengen umfassten Prioritätsklassen sukzessive erhöht werden. Anwendungsinstanzen, denen eine Prioritätsklasse zugeordnet ist, die unterhalb einer vorgegebenen Mindestprioritätsklasse liegt, sind von einer betrachteten Untermenge nicht umfasst. Dies ermöglicht es, beim Berechnen der Konfigurationen für die Untermengen eine Priorisierung vorzunehmen. Ausgehend von den voranstehend beispielshaft genannten Prioritätsklassen können beispielsweise die folgenden vier Untermengen ( S1 bis S4) gebildet werden, wobei für die Untermengen jeweils unterschiedliche Mindestprioritätsklassen verwendet werden: In one embodiment it is provided that the subsets are formed in such a way that the subsets successively only include application instances whose assigned priority classes achieve a respective minimum priority class. As a result, a priority of the priority classes comprised by subsets can be successively increased. Application instances to which a priority class is assigned that is below a predetermined minimum priority class are not included in a subset considered. This makes it possible to prioritize when calculating the configurations for the subsets. Based on the priority classes mentioned above, for example, the following four subsets (S 1 to S 4 ) can be formed, with different minimum priority classes being used for each of the subsets:
S1 = HÖCHSTE υ HOCH υ GERING υ GERINGSTE, S 1 = HIGHEST υ HIGH υ LOW υ LOWEST,
S2 = HÖCHSTE υ HOCH υ GERING, S 2 = HIGHEST υ HIGH υ LOW,
S3 = HÖCHSTE υ HOCH, S 3 = HIGHEST υ HIGH,
S4 = HÖCHSTE. S 4 = HIGHEST.
Für jede dieser Untermengen kann nun eine Konfiguration mittels der Anwendungsplatzierungseinrichtung berechnet werden. Lässt sich für eine der Untermengen keine Konfiguration berechnen, beispielsweise weil es keine Lösung gibt, so kann auf Lösungen für Konfigurationen der anderen Untermengen zurückgegriffen werden. A configuration can now be calculated for each of these subsets by means of the application placement device. If no configuration can be calculated for one of the subsets, for example because there is no solution, solutions for configurations of the other subsets can be used.
In einer Ausführungsform ist vorgesehen, dass die Konfigurationen für die Untermengen zumindest teilweise parallel zueinander mittels der Anwendungsplatzierungseinrichtung berechnet werden. Insbesondere ist vorgesehen, dass die Konfigurationen für die Untermengen alle parallel zueinander mittels der Anwendungsplatzierungseinrichtung berechnet werden. Nachdem alle (oder der Teil der) parallel zueinander ausgeführten Berechnungsprozesse abgeschlossen sind (ist), wählt die Anwendungsplatzierungseinrichtung die beste Lösung aus und konfiguriert das Fahrzeug um. Hierbei wird eine Lösung derjenigen Untermenge bevorzugt, die die meisten Untermengen mit den höchsten Prioritätsklassen umfasst. Für die voranstehend beispielhaft beschriebenen Untermengen S1 bis S4 bedeutet dies, dass eine erfolgreich berechnete Konfiguration für die Untermenge S3 gegenüber einer erfolgreich berechneten Konfiguration für die Untermenge S4 bevorzugt wird. Entsprechend wird eine Konfiguration für S1 gegenüber einer Konfiguration von S2, S3 und S4 bevorzugt usw. Lediglich wenn für eine Untermenge keine Konfiguration berechnet werden konnte und auch keine Konfiguration für eine hinsichtlich der umfassten Prioritätsklassen höherstehende Untermenge berechnet werden konnte, wird eine Konfiguration für eine niedriger priorisierte Untermenge gewählt und durch Umkonfigurieren umgesetzt. In one embodiment it is provided that the configurations for the subsets are calculated at least partially parallel to one another by means of the application placement device. In particular, it is provided that the configurations for the subsets are all calculated parallel to one another by means of the application placement device. After all (or some of the) computation processes running in parallel have (been) completed, the application placement facility selects the best solution and reconfigures the vehicle. In this case, a solution of that subset is preferred which includes most of the subsets with the highest priority classes. For the subsets S 1 to S 4 described above by way of example, this means that one is successful The calculated configuration for the subset S 3 is preferred over a successfully calculated configuration for the subset S 4 . Accordingly, a configuration for S 1 is preferred over a configuration of S 2 , S 3 and S 4 etc. Only if no configuration could be calculated for a subset and no configuration could be calculated for a subset that is higher in terms of the priority classes included, a Configuration selected for a lower-priority subset and implemented by reconfiguring.
In einer Ausführungsform ist vorgesehen, dass die Konfigurationen für die Untermengen zumindest teilweise sequentiell mittels der Anwendungsplatzierungseinrichtung berechnet werden. Insbesondere ist vorgesehen, dass die Konfigurationen für die Untermengen alle sequentiell mittels der Anwendungsplatzierungseinrichtung berechnet werden. Dies hat den Vorteil, dass die gesamten Rechenressourcen zum Berechnen einer Konfiguration für eine einzige Untermenge bereitgestellt werden können, sodass eine Rechenzeit reduziert, insbesondere minimiert, werden kann. In one embodiment it is provided that the configurations for the subsets are at least partially calculated sequentially by means of the application placement device. In particular, it is provided that the configurations for the subsets are all calculated sequentially by means of the application placement device. This has the advantage that the entire computing resources for computing a configuration can be made available for a single subset, so that computing time can be reduced, in particular minimized.
In einer weiterbildenden Ausführungsform ist vorgesehen, dass die Konfigurationen hierbei zuerst für diejenigen Untermengen berechnet werden, die die jeweils größte Anzahl an höchsten Prioritätsklassen umfassen. Hierdurch kann keine Art Rangfolge gebildet werden. Für die voranstehend definierten Untermengen würde dies bedeuten, dass die Konfigurationen für die Untermengen nacheinander in der folgenden Reihenfolge berechnet werden: S1, S2, S3, S4. Hierbei wird die Konfiguration für eine nachfolgende Untermenge insbesondere immer nur dann berechnet, wenn eine Berechnung für eine betrachtete Untermenge zu keinem Erfolg geführt hat, das heißt wenn keine Lösung für eine Konfiguration für die betrachtete Untermenge gefunden werden konnte. In a further-developing embodiment, it is provided that the configurations are first calculated for those subsets which in each case comprise the largest number of highest priority classes. This does not allow any kind of ranking to be established. For the subsets defined above, this would mean that the configurations for the subsets are calculated one after the other in the following order: S 1 , S 2 , S 3 , S 4 . In particular, the configuration for a subsequent subset is only calculated if a calculation for a subset under consideration has not led to success, that is, if no solution for a configuration could be found for the subset under consideration.
In einer Ausführungsform ist vorgesehen, dass das Berechnen abgebrochen wird, wenn eine vorgegebene maximale Berechnungszeit erreicht oder überschritten ist, wobei diejenige bereits berechnete Konfiguration zum Umkonfigurieren gewählt wird, die Anwendungsinstanzen mit der jeweils größten Anzahl an höchsten Prioritätsklassen umfasst. Dies hat den Vorteil, dass Zeitvorgaben erfüllt werden können. Auch wenn eine (insgesamt) optimale Lösung nicht gefunden werden kann, so kann zumindest eine Lösung gefunden und zum Umkonfigurieren bereitgestellt werden. Das Vorgeben der maximalen Berechnungszeit ermöglicht es, eine Reaktionszeit bei Auftreten eines Fehlers zu definieren, innerhalb derer das Berechnen bzw. das Umkonfigurieren durchgeführt sein muss. Hierdurch können insbesondere Sicherheitsvorgaben hinsichtlich zeitkritischer Prozesse bzw. zeitkritischer Anwendungsinstanzen erfüllt werden. In one embodiment, it is provided that the calculation is aborted when a predetermined maximum calculation time is reached or exceeded, the already calculated configuration being selected for reconfiguration which includes application instances with the largest number of highest priority classes in each case. This has the advantage that time specifications can be met. Even if an (overall) optimal solution cannot be found, at least one solution can be found and made available for reconfiguration. Specifying the maximum calculation time makes it possible to define a response time when an error occurs, within which the calculation or the reconfiguration must be carried out. This allows in particular Security requirements with regard to time-critical processes or time-critical application instances are met.
Prinzipiell kann diese Ausführungsform sowohl bei einer parallelen als auch bei einer sequentiellen Berechnung eingesetzt werden. Bei einer parallelen Berechnung kann in der Regel davon ausgegangen werden, dass eine Berechnungszeit für die Untermengen mit der geringsten Anzahl an Anwendungsinstanzen am kürzesten ist. Daher werden bei parallel ausgeführten Berechnungsprozessen die Berechnungsprozesse für solche Untermengen zuerst abgeschlossen sein. Da mit zunehmender Zeit sukzessive auch die komplexeren Berechnungsprozesse für die anderen Untermengen abgeschlossen werden, stehen sukzessive auch verbesserte Lösungen für Konfigurationen bereit. Wird die maximale Berechnungszeit erreicht, werden die noch laufenden Berechnungsprozesse gestoppt und die beste der bereits vorhandenen Lösungen für eine Konfiguration wird ausgewählt und beim Umkonfigurieren verwendet. In principle, this embodiment can be used both in a parallel and in a sequential calculation. In the case of a parallel calculation, it can generally be assumed that a calculation time for the subsets with the smallest number of application instances is the shortest. Therefore, in the case of calculation processes carried out in parallel, the calculation processes for such subsets will be completed first. As the more complex calculation processes for the other subsets are gradually completed over time, improved solutions for configurations are also gradually available. If the maximum calculation time is reached, the ongoing calculation processes are stopped and the best of the existing solutions for a configuration is selected and used when reconfiguring.
Bei einer sequentiellen Berechnung kann insbesondere vorgesehen sein, dass zuerst die Konfigurationen für die Untermengen mit der jeweils niedrigsten Anzahl an höchsten Prioritätsklassen berechnet werden (im obigen Beispiel würde die sequentielle Berechnung also in der Reichenfolge: S4, S3, S2, S1 erfolgen). Nach Ablauf der vorgegebenen Berechnungszeit wird die jeweils beste vorhandene Konfiguration ausgewählt, das heißt diejenige, die die größte Anzahl an höchsten Prioritätsklassen umfasst. In the case of a sequential calculation, provision can be made in particular that the configurations for the subsets with the lowest number of highest priority classes are calculated first (in the above example, the sequential calculation would therefore be in the order: S 4 , S 3 , S 2 , S 1 respectively). After the specified calculation time has elapsed, the best available configuration is selected, that is, the one that includes the greatest number of highest priority classes.
Weitere Merkmale zur Ausgestaltung der Vorrichtung ergeben sich aus der Beschreibung von Ausgestaltungen des Verfahrens. Die Vorteile der Vorrichtung sind hierbei jeweils die gleichen wie bei den Ausgestaltungen des Verfahrens. Further features for the configuration of the device emerge from the description of configurations of the method. The advantages of the device are in each case the same as in the embodiments of the method.
Es wird ferner auch ein Fahrzeug geschaffen, umfassend mindestens eine Vorrichtung nach einer der beschriebenen Ausführungsformen. Furthermore, a vehicle is also created, comprising at least one device according to one of the described embodiments.
Nachfolgend wird die Erfindung anhand bevorzugter Ausführungsbeispiele unter Bezugnahme auf die Figuren näher erläutert. Hierbei zeigen: The invention is explained in more detail below on the basis of preferred exemplary embodiments with reference to the figures. Here show:
Fig. 1 eine schematische Darstellung einer Ausführungsform der Vorrichtung zumFig. 1 is a schematic representation of an embodiment of the device for
Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall; Fig. 2a bis 2c schematische Darstellungen von Konfigurationen zur Verdeutlichung der Erfindung; Reconfiguring an automated driving vehicle in the event of a fault; 2a to 2c are schematic representations of configurations to illustrate the invention;
Fig. 3 eine schematische Darstellung einer Ausführungsform des Verfahrens zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall; 3 shows a schematic illustration of an embodiment of the method for reconfiguring an automatically driving vehicle in the event of a fault;
Fig. 4 eine schematische Darstellung einer nach Auftreten eines Fehlers berechneten Konfiguration bei nicht ausreichenden Ressourcen; 4 shows a schematic representation of a configuration calculated after the occurrence of an error with insufficient resources;
Fig. 5 eine schematische Darstellung einerweiteren Ausführungsform des Verfahrens. Fig. 5 is a schematic representation of a further embodiment of the method.
In Fig. 1 ist eine schematische Darstellung einer Ausführungsform der Vorrichtung 1 zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs 50 in einem Fehlerfall gezeigt. 1 shows a schematic illustration of an embodiment of the device 1 for reconfiguring an automated driving vehicle 50 in the event of a fault.
In dem Fahrzeug 50 werden Anwendungsinstanzen 60, 61 gemäß einer vorgegebenen Konfiguration 62 verteilt auf mehreren Berechnungsknoten ausgeführt. Die Anwendungsinstanzen 60, 61 stellen beispielsweise eine Funktionalität für eine Umfeldwahrnehmung, eine Lokalisierung, eine Navigation und/oder eine Trajektorienplanung bereit. Zumindest einem Teil der Anwendungsinstanzen 60, 61 werden erfasste Sensordaten 10 mindestens eines Sensors 51 des Fahrzeugs 50 (oder sonstiger beispielsweise ein Umfeld des Fahrzeugs 50 erfassender Sensoren) zugeführt. Zumindest von einem Teil der Anwendungsinstanzen 60, 61 werden Steuersignale 30 zum Steuern des Fahrzeugs 50 erzeugt und bereitstellt. Die bereitgestellten Steuersignale 30 der jeweils aktiven Anwendungsinstanzen 60 werden einer Aktorik 52 des Fahrzeugs 50 zugeführt, die eine automatisierte Fahrt des Fahrzeugs 50 umsetzt. In the vehicle 50, application instances 60, 61 are executed distributed over a number of calculation nodes in accordance with a predetermined configuration 62. The application instances 60, 61 provide, for example, functionality for perception of the surroundings, localization, navigation and / or trajectory planning. At least some of the application instances 60, 61 are supplied with sensed sensor data 10 to at least one sensor 51 of the vehicle 50 (or other sensors, for example, which sense the surroundings of the vehicle 50). At least some of the application instances 60, 61 generate and provide control signals 30 for controlling the vehicle 50. The provided control signals 30 of the respectively active application instances 60 are fed to an actuator 52 of the vehicle 50, which implements an automated drive of the vehicle 50.
Die Vorrichtung 1 umfasst eine Monitoreinrichtung 2, eine Umschalteinrichtung 3 und eine Anwendungsplatzierungseinrichtung 4. Insbesondere ist vorgesehen, dass für jede der Anwendungsinstanzen 60, 61, für jedes Betriebssystem und für jede die Berechnungsknoten bereitstellende Hardware jeweils eine Monitoreinrichtung 2 bereitgestellt wird (der Übersichtlichkeit halber ist nur eine Monitoreinrichtung 2 dargestellt). Teile der Vorrichtung 1 können einzeln oder zusammengefasst als eine Kombination von Hardware und Software ausgebildet sein, beispielsweise als Programmcode, der auf einem Mikrocontroller oder Mikroprozessor ausgeführt wird. Es kann darüber hinaus vorgesehen sein, dass das Bereitstellen einer Funktionalität der Anwendungsinstanzen 60, 61 und der Vorrichtung 1 gemeinsam, beispielsweise mittels einer Datenverarbeitungseinrichtung des Fahrzeugs 50, erfolgt. The device 1 comprises a monitor device 2, a switchover device 3 and an application placement device 4. In particular, provision is made that a monitor device 2 is provided for each of the application instances 60, 61, for each operating system and for each hardware providing the computing nodes (for the sake of clarity only one monitor device 2 shown). Parts of the device 1 can be designed individually or collectively as a combination of hardware and software, for example as program code that is executed on a microcontroller or microprocessor. It can also be provided that the provision of a functionality of the application instances 60, 61 and the device 1 takes place jointly, for example by means of a data processing device of vehicle 50.
Die Anwendungsinstanzen 60, 61 und/oder Betriebssysteme und/oder eine mit den Berechnungsknoten korrespondierende Hardware werden von der Monitoreinrichtung 2 überwacht. Die Monitoreinrichtung 2 erkennt Fehler in den Anwendungsinstanzen 60, 61 und/oder den Betriebssystemen und/oder in der Hardware. The application instances 60, 61 and / or operating systems and / or hardware corresponding to the computing nodes are monitored by the monitoring device 2. The monitoring device 2 detects errors in the application instances 60, 61 and / or the operating systems and / or in the hardware.
Wird ein Fehler erkannt, so wird der erkannte Fehler durch Umschalten auf passive Anwendungsinstanzen 61, die zu jeweils von dem Fehler betroffenen Anwendungsinstanzen 60 redundant sind, mittels der Umschalteinrichtung 3 isoliert. Die Umschalteinrichtung 3 aktiviert hierzu die jeweilige redundante passive Anwendungsinstanz 61, welche die Funktionalität der von dem Fehler betroffenen Anwendungsinstanz 60 übernimmt, während die betroffene Anwendungsinstanz 60 deaktiviert wird. Dies erfolgt beispielsweise mittels eines Umschaltsignals 63. Sind mehrere Anwendungsinstanzen 60 betroffen, werden entsprechend die jeweils redundanten passiven Anwendungsinstanzen 61 aktiviert. If an error is detected, the detected error is isolated by means of the switchover device 3 by switching to passive application instances 61, which are redundant to the application instances 60 affected by the error. To this end, the switching device 3 activates the respective redundant passive application instance 61, which takes over the functionality of the application instance 60 affected by the error, while the application instance 60 affected is deactivated. This takes place, for example, by means of a switchover signal 63. If several application instances 60 are affected, the respective redundant passive application instances 61 are activated accordingly.
Ist das Umschalten erfolgt, so werden für die Anwendungsinstanzen 60, 61 vorgegebene Redundanzbedingungen 11 und/oder Segregationsbedingungen 12 durch Umkonfigurieren der Konfiguration 62 mittels der Anwendungsplatzierungseinrichtung 4 wiederhergestellt. Once the switchover has taken place, predetermined redundancy conditions 11 and / or segregation conditions 12 for the application instances 60, 61 are restored by reconfiguring the configuration 62 using the application placement device 4.
Die Redundanzbedingungen 11 umfassen insbesondere Vorgaben darüber, welche Anwendungsinstanz 60 mit welcher Redundanz (keine, einfach, zweifach, mehrfach) betrieben werden soll bzw. muss. Die umkonfigurierte Konfiguration 62 wird durch entsprechendes Konfigurieren der Anwendungsinstanzen 60, 61 eingestellt. Das Umkonfigurieren umfasst hierbei insbesondere ein Starten und Einrichten von weiteren passiven Anwendungsinstanzen 61, um eine jeweilige Redundanzbedingung 11 und/oder Segregationsbedingung 12 (wieder) zu erfüllen. Wird bei einer geforderten Redundanz aufgrund eines Fehlers eine vormals passive Anwendungsinstanz 61 aktiviert und eine vormals aktive Anwendungsinstanz 60 zum Isolieren deaktiviert, so wird eine neue passive Anwendungsinstanz 61 auf einem der Berechnungsknoten eingerichtet und gestartet, sodass die Redundanz wieder hergestellt ist. Bei mehreren zu isolierenden Anwendungsinstanzen 60 wird entsprechend verfahren. The redundancy conditions 11 include, in particular, specifications as to which application instance 60 should or must be operated with which redundancy (none, single, double, multiple). The reconfigured configuration 62 is set by configuring the application instances 60, 61 accordingly. The reconfiguration here includes, in particular, starting and setting up further passive application instances 61 in order to (again) meet a respective redundancy condition 11 and / or segregation condition 12. If a previously passive application instance 61 is activated due to an error and a previously active application instance 60 is deactivated for isolation, a new passive application instance 61 is set up and started on one of the computing nodes so that the redundancy is restored. If there are several application instances 60 to be isolated, the procedure is corresponding.
Hierbei ist vorgesehen, dass das Umkonfigurieren derart durchgeführt wird, dass eine Anzahl von zum Herstellen der vorgegebenen Redundanzbedingungen 11 und/oder Segregationsbedingungen 12 notwendigen Verschiebungen von Anwendungsinstanzen 60, 61 auf andere Berechnungsknoten minimiert wird oder minimiert ist. It is provided here that the reconfiguration is carried out in such a way that a number of for establishing the predetermined redundancy conditions 11 and / or Segregation conditions 12 necessary shifts from application instances 60, 61 to other calculation nodes is minimized or is minimized.
Es kann vorgesehen sein, dass die Vorrichtung 1 eine Ausfallsicherungseinrichtung 5 umfasst. Das Fahrzeug 50 kann mittels der Ausfallsicherungseinrichtung 5 in einen sicheren Zustand überführt werden, wenn mindestens eine vorgegebene Redundanzbedingung 11 durch das Umkonfigurieren oder mindestens eine Segregationsbedingung 12 nicht (mehr) erfüllt werden kann. Dies ist beispielsweise der Fall, wenn der Fehler dazu führt, dass insgesamt nicht mehr genug Ressourcen (z.B. Rechenleistung, Speicher etc.) für die sicherheitsrelevanten Anwendungsinstanzen 60, 61 zur Verfügung stehen. Das Fahrzeug 50 wird von der Ausfallsicherungseinrichtung 5 dann beispielsweise an einen Straßenrand gefahren und geparkt, wobei eine automatisierte Weiterfahrt blockiert wird. It can be provided that the device 1 comprises a fail-safe device 5. The vehicle 50 can be transferred to a safe state by means of the failover device 5 if at least one predefined redundancy condition 11 can no longer be met due to the reconfiguration or at least one segregation condition 12 can no longer be met. This is the case, for example, when the error means that there are no longer enough resources (e.g. computing power, memory, etc.) available for the security-relevant application instances 60, 61. The vehicle 50 is then driven to the edge of the road, for example, by the fail-safe device 5, and is parked, with automated further travel being blocked.
Nachfolgend wird beispielhaft das Vorgehen der Anwendungsplatzierungseinrichtung 4 beim Berechnen einer Konfiguration 62 beschrieben. Wie bereits beschrieben, ist die Anwendungsplatzierungseinrichtung 4 für das Platzieren von Anwendungsinstanzen 60, 61 verantwortlich, sodass die vorgegebenen Redundanzbedingungen 11 und/oder Segregationsbedingungen 12 wieder hergestellt werden können. Hierzu versucht die Anwendungsplatzierungseinrichtung 4, Berechnungsknoten zu finden, die über ausreichende Ressourcen (insbesondere Rechenleistung, Speicher und installierte Software) verfügen, um neue Anwendungsinstanzen 60, 61 ausführen zu können, sodass eine isolierte Anwendungsinstanz 60, 61 ersetzt werden kann. Sofern keine ausreichenden Ressourcen zur Verfügung stehen, kann die Anwendungsplatzierungseinrichtung 4 Anwendungsinstanzen 60, 61 mit geringerer Priorität stoppen, um Ressourcen für eine Anwendungsinstanz 60, 61 mit höherer Priorität bereitstellen zu können. The procedure of the application placement device 4 when calculating a configuration 62 is described below by way of example. As already described, the application placement device 4 is responsible for placing application instances 60, 61 so that the predefined redundancy conditions 11 and / or segregation conditions 12 can be restored. For this purpose, the application placement device 4 tries to find computation nodes that have sufficient resources (in particular computing power, memory and installed software) to be able to execute new application instances 60, 61 so that an isolated application instance 60, 61 can be replaced. If there are insufficient resources available, the application placement device 4 can stop application instances 60, 61 with lower priority in order to be able to provide resources for an application instance 60, 61 with higher priority.
Im nachfolgenden Beispiel wird ein Anwendungsplatzierungsproblem (engl. Application Placement Problem) beispielhaft mittels des Integer Linear Programming-Verfahrens gelöst. In the following example, an application placement problem is solved using the integer linear programming method.
Zuerst wird das Anwendungsplatzierungsproblem formuliert. Hierzu werden die nachfolgenden Parameter aus einem aktuellen Zustand des Fahrzeugs und der oder den neu gestarteten Anwendungsinstanzen 60, 61 extrahiert. Diese Parameter werden anschließend einem Lösungsverfahren (Solver) für das Anwendungsplatzierungsproblem als Eingangsparameter zugeführt: First, the application placement problem is formulated. For this purpose, the following parameters are extracted from a current state of the vehicle and the newly started application entity (s) 60, 61. These parameters are then fed to a solver for the application placement problem as input parameters:
- I: Der Satz von Anwendungsinstanzen 60, 61 , die platziert werden sollen. - A: Der Satz an Anwendungen, wobei ∀ a ∈ A: a ≤ I gilt. Weiterhin muss gelten: ∀ a1- I: The set of application instances 60, 61 to be placed. - A: The set of applications, where ∀ a ∈ A: a ≤ I. Furthermore, the following must apply: ∀ a 1
- N: Satz von Berechnungsknoten. - N: set of computation nodes.
- C*: Konfigurations-Matrix, die die derzeitige Konfiguration bzw. die derzeit aktive Platzierung beschreibt, wobei Ci * ,n = 1, wenn i ∈ I ausgeführt wird durch n ∈ N; anderenfalls Ci * ,n = 0. Hierbei ist zu beachten, dass für jede neue Anwendungsinstanz ineu ∈ /, beispielsweise Anwendungsinstanzen, die die vor Auftreten des Fehlers vorliegenden Redundanzbedingungen wieder hersteilen sollen, gilt: ∀n ∈ N: Ci * new,n = 0. - C *: configuration matrix which describes the current configuration or the currently active placement, where C i * , n = 1, if i ∈ I is carried out by n ∈ N; otherwise C i * , n = 0. It should be noted that for each new application instance i new ∈ /, for example application instances that are intended to restore the redundancy conditions that existed before the error occurred, the following applies: ∀n ∈ N: C i * new , n = 0.
- R. Die Platzierungs-Begrenzungsmatrix, wobei Ri n,, = 1, wenn n ∈ N alle Softwarebedingungen von i e I erfüllt; anderenfalls Ri ,n = 0. - R. The placement boundary matrix, where R in ,, = 1 if n ∈ N satisfies all software conditions of ie I; otherwise R i, n = 0.
- Φn: Die Speicherkapazität von n e N. - Φ n : The storage capacity of ne N.
- Ωn: Die Rechenkapazität von n e N. - Ω n : The computing capacity of ne N.
- Φi: Die Speicherbedarf von i e I. - Φ i : The memory requirements of ie I.
- ωi: Die Speicherbedarf von i e I. - ω i : The memory requirements of ie I.
- πa: Die minimale Anzahl von Berechnungsknoten, auf denen a e A ausgeführt werden muss, das heißt die Segregationsbedingung im Hinblick auf die Hardware. - π a : The minimum number of computation nodes on which ae A must be executed, i.e. the segregation condition in terms of hardware.
Ausgehend von diesen Parametern berechnet die Anwendungsplatzierungseinrichtung 4 eine neue Konfigurationsmatrix C, wobei Ci n, = 1, wenn i e I auf n e N ausgeführt werden soll; anderenfalls ist Ci n, = 0. Daher existieren 2|I|*|N| potentielle Lösungen. Nicht alle dieser Lösungen sind jedoch gültig. On the basis of these parameters, the application placement device 4 calculates a new configuration matrix C, where C in, = 1, if ie I is to be executed on ne N; otherwise C in, = 0. Hence there exist 2 | I | * | N | potential solutions. However, not all of these solutions are valid.
Um die Bedingungen zu definieren, die eine Konfiguration gültig machen, werden nachfolgend fünf lineare Randbedingungen definiert: To define the conditions that make a configuration valid, five linear boundary conditions are defined below:
Randbedingung 1: Boundary condition 1:
Eine Anwendungsinstanz 60, 61 muss von genau einem Berechnungsknoten ausgeführt werden: An application instance 60, 61 must be executed by exactly one calculation node:
Randbedingung 2: Boundary condition 2:
Die Summe der Speichernachfrage aller Anwendungsinstanzen 60, 61, die auf einem Berechnungsknoten ausgeführt werden, darf die Speicherkapazität dieses Berechnungsknoten nicht überschreiten: The sum of the storage requirements of all application instances 60, 61 that are executed on a calculation node must not exceed the storage capacity of this calculation node:
Randbedingung 3: Boundary condition 3:
Die Summe der Rechenleistungsnachfrage aller Anwendungsinstanzen 60, 61, die auf einem Berechnungsknoten ausgeführt werden, dürfen die Rechenkapazität dieses Berechnungsknoten nicht überschreiten: The sum of the computing power demand of all application instances 60, 61 that are executed on a computing node must not exceed the computing capacity of this computing node:
Randbedingung 4: Boundary condition 4:
Eine Anwendungsinstanz 60, 61 läuft nur auf einem Berechnungskneten, der eine Scftware bereitstellt, die von der Anwendungsinstanz 60, 61 benötigt wird: An application instance 60, 61 only runs on a computing device that provides software that is required by the application instance 60, 61:
Randbedingung 5: Boundary condition 5:
Die Anwendungsinstanzen 60, 61, die zur gleichen Anwendung gehören, müssen auf einer Mindestanzahl von unterschiedlichen Berechnungskneten laufen, das heißt die Hardware- Segregaticnsbedingung muss erfüllt sein für jede Anwendung. Um diese Bedingung in linearer Weise auszudrücken wird eine Matrix von Hilfsvariablen h eingeführt, die wie felgt definiert ist: The application instances 60, 61 belonging to the same application must run on a minimum number of different computing devices, that is to say the hardware segregation condition must be met for each application. To express this condition in a linear way, a matrix of auxiliary variables h is introduced, which is defined as felgt:
Mit Hilfe der Hilfsmatrix kann diese Bedingung mittels der nachfclgenden linearen Ausdrücke definiert werden: With the help of the auxiliary matrix, this condition can be defined using the following linear expressions:
Um die Randbedingung 5 zu verdeutlichen, sei felgendes Beispiel betrachtet. Mit der Annahme der nachfclgengen Eingangsvariablen und der Kcnfiguraticnsmatrix C wird gezeigt, dass Randbedingung 5 für die Anwendung gilt, für die Anwendung a2 jedoch nicht. To clarify the boundary condition 5, consider the following example. With the assumption of the following input variables and the configuration matrix C, it is shown that boundary condition 5 applies to the application, but not to application a 2.
Zuerst wird Anwendung a1 betrachtet: bewirkt Randbedingung 5.3, dass ha1,n1 = 0. Ferner bewirkt Randbedingung 5.2, dass First we consider application a 1 : causes boundary condition 5.3 that h causes a1, n1 = 0. Furthermore Boundary condition 5.2 that
Die führt dazu, dass auch Randbedingung 5.4 gilt, da: This means that boundary condition 5.4 also applies, since:
Als nächstes wird gezeigt, dass Randbedingung 5 nicht für die Anwendung a2 gilt: Next it is shown that boundary condition 5 does not hold for application a 2:
Da gilt (beachte, dass ebenfalls gilt: und Randbedingung 5.2 gelten muss, gilt 1. Da gilt C und Randbedingung 5.3 gelten muss, gilt Dies führt dazu, dass Randbedingung 5.4 nicht erfüllt ist, da gilt: There applies (Note that the following also applies: and boundary condition 5.2 apply must, applies 1. There applies C and boundary condition 5.3 apply must, this means that boundary condition 5.4 is not fulfilled, the following applies:
Obwohl die definierten Randbedingungen einen Lösungsraum begrenzen, kann eine Vielzahl von gültigen Lösungen existieren. Um festzulegen, welche der Lösungen am meisten bevorzugt werden, wird der Solver instruiert, diejenige Konfiguration bzw. diejenige Platzierung zu finden, die das folgende Optimierungskriterium maximiert: Aufgrund dieses Optimierungskriteriums werden Konfigurationen bzw. Anwendungsplatzierungen bevorzugt, die eine Anzahl von Verschiebungen von Anwendungsinstanzen 60, 61 auf andere Berechnungsknoten minimieren. Dieses Ziel wird verfolgt, da eine geringere Anzahl von Verschiebungen insbesondere einen zeitlichen Aufwand beim Umkonfigurieren verringert. Although the defined boundary conditions limit a solution space, a large number of valid solutions can exist. In order to determine which of the solutions are most preferred, the solver is instructed to find the configuration or placement that maximizes the following optimization criterion: On the basis of this optimization criterion, configurations or application placements are preferred which minimize a number of shifts from application instances 60, 61 to other calculation nodes. This goal is pursued, since a smaller number of shifts in particular reduces the time required for reconfiguration.
Die Figuren 2a, 2b und 2c zeigen schematische Darstellungen von Konfigurationen 62 zur Verdeutlichung des in dieser Offenbarung beschriebenen Verfahrens. Fig. 2a zeigt hierbei eine ursprüngliche (Anfangs-)Konfiguration 62. Fig. 2b zeigt eine Konfiguration 62, wie diese von der Anwendungsplatzierungseinrichtung berechnet wurde. Fig. 2c zeigt eine Konfiguration 62, die eine gültige Lösung des Anwendungsplatzierungsproblems darstellt, jedoch insgesamt fünf Verschiebungen von Anwendungsinstanzen 60-x notwendig macht. FIGS. 2a, 2b and 2c show schematic representations of configurations 62 to illustrate the method described in this disclosure. FIG. 2a shows an original (initial) configuration 62. FIG. 2b shows a configuration 62 as calculated by the application placement device. FIG. 2c shows a configuration 62 which is a valid solution to the application placement problem, but which requires a total of five relocations of application instances 60-x.
In dem gezeigten Beispiel wird angenommen, dass die Konfiguration 62 vier Anwendungen umfasst, die mit Hilfe der aktiven Anwendungsinstanzen 60-1, 60-2, 60-3, 60-4 und der hierzu redundanten passiven Anwendungsinstanzen 61-1, 61-2, 61-3, 61-4 bereitgestellt werden, sowie vier Berechnungsknoten 70-1, 70-2, 70-3, 70-4. In the example shown, it is assumed that the configuration 62 comprises four applications, which with the help of the active application instances 60-1, 60-2, 60-3, 60-4 and the redundant passive application instances 61-1, 61-2, 61-3, 61-4 are provided, as well as four computation nodes 70-1, 70-2, 70-3, 70-4.
Die vier Anwendungen benötigen die folgenden Ressourcen: The four applications require the following resources:
Ferner werden von den vier Berechnungsknoten 70-x (abgekürzt in der Tabelle als „BK“) die folgenden Ressourcen bereitgestellt: Furthermore, the following resources are provided by the four calculation nodes 70-x (abbreviated as "BK" in the table):
Ferner sei angenommen, dass ausgehend von der in der Fig. 2a gezeigten Konfiguration 62 der Berechnungsknoten 70-2 einen Defekt aufweist und nicht mehr verwendet werden kann. Dies führt dazu, dass auch die Anwendungsinstanzen 60-1 und 61-2 nicht mehr bereitgestellt werden können. In dieser Situation schaltet die Umschalteinrichtung eine der passiven Anwendungsinstanzen 61-1 den Betriebszustand „aktiv“ um (verdeutlicht durch die Änderung des Bezugszeichens von 61-1 zu 60-1). It is further assumed that, based on the configuration 62 shown in FIG. 2a, the computation node 70-2 has a defect and can no longer be used. As a result, the application instances 60-1 and 61-2 can no longer be provided either. In this situation, the switching device switches one of the passive application instances 61-1 to the “active” operating state (illustrated by the change in the reference number from 61-1 to 60-1).
Nach dem Umschalten werden von der Anwendungsplatzierungseinrichtung neue passive Anwendungsinstanzen 61-2, 61-2 gestartet, um die Redundanzbedingung, die vor dem Defekt des Berechnungsknotens 70-2 galt, wieder herzustellen. After the switchover, new passive application instances 61-2, 61-2 are started by the application placement device in order to restore the redundancy condition that applied before the defect in the calculation node 70-2.
Ausgehend von der derzeit aktiven Konfiguration 62 (d.h. der Konfiguration 62, die in der Fig. 2a gezeigt ist) sowie Parameter für die Anwendungen und die Berechnungsknoten 70-x, berechnet die Anwendungsplatzierungseinrichtung eine neue Konfiguration 62 bzw. eine neue Anwendungsplatzierung, die möglichst wenige Verschiebungen von Anwendungsinstanzen 60- x, 61 -x notwendig macht. Starting from the currently active configuration 62 (ie the configuration 62 shown in FIG. 2a) as well as parameters for the applications and the calculation nodes 70-x, the application placement device calculates a new configuration 62 or a new application placement, the fewest possible Makes shifts of application instances 60- x, 61 -x necessary.
Eine Lösung der Anwendungsplatzierungseinrichtung, die nur eine einzige Verschiebung notwendig macht, ist in der Fig. 2b dargestellt. Diese Anwendungsplatzierung macht nur die Verschiebung der passiven Anwendungsinstanz 61-3 notwendig. Die Anwendungsinstanz 61-3 wird vom Berechnungsknoten 70-3 auf den Berechnungsknoten 70-4 verschoben. One solution to the application placement device that requires only a single shift is shown in FIG. 2b. This application placement only requires the relocation of the passive application instance 61-3. The application instance 61-3 is moved from the computing node 70-3 to the computing node 70-4.
Das Beispiel wurde derart konstruiert, dass mindestens eine Anwendungsinstanz 60-x, 61-x verschoben werden muss. Daher ist die in der Fig. 2b gezeigte Konfiguration 62 die optimale Konfiguration 62 im Hinblick auf das Optimierungsziel der Anwendungsplatzierungseinrichtung, möglichst wenige Anwendungsinstanzen 60-x, 61-x verschieben zu müssen. The example was constructed in such a way that at least one application instance 60-x, 61-x must be moved. The configuration 62 shown in FIG. 2b is therefore the optimal configuration 62 with regard to the optimization goal of the application placement device of having to move as few application instances 60-x, 61-x as possible.
Neben dieser Lösung existieren noch viele andere gültige Lösungen. Jedoch verwirklichen diese nicht das Optimierungsziel und werden daher nicht als optimale Lösungen betrachtet. In der Fig. 2c ist beispielhaft eine Konfiguration 62 einer solchen nicht-optimalen Lösung gezeigt, für die fünf Verschiebungen notwendig sind. Sind nicht genug Ressourcen (Berechnungsknoten, Rechenleistung und Speicher etc.) vorhanden, kann die Anwendungsplatzierungseinrichtung auch Anwendungsinstanzen 60-x, 61- x stoppen. Nachfolgend werden zwei Ausführungsformen des Verfahrens und der Vorrichtung beschrieben, die Lösungen im Falle von begrenzten Ressourcen bereitstellen können. In addition to this solution, there are many other valid solutions. However, these do not achieve the optimization goal and are therefore not regarded as optimal solutions. In FIG. 2c, a configuration 62 of such a non-optimal solution is shown by way of example, for which five shifts are necessary. If there are not enough resources (computing nodes, computing power and memory, etc.), the application placement device can also stop application instances 60-x, 61-x. In the following, two embodiments of the method and the device are described which can provide solutions in the case of limited resources.
In Fig. 3 ist eine schematische Darstellung einer Ausführungsform des Verfahrens gezeigt. In der Ausführungsform ist vorgesehen, dass den Anwendungsinstanzen jeweils eine Prioritätsklasse zugeordnet wird oder zugeordnet ist. Im voranstehenden Beispiel mit den vier Anwendungen, seien zur Verdeutlichung beispielhaft die folgenden Prioritätsklassen angenommen: 3 shows a schematic representation of an embodiment of the method. In the embodiment it is provided that a priority class is or is assigned to each of the application instances. In the above example with the four applications, the following priority classes are assumed for the sake of clarity:
Anwendung 1: GERING Application 1: LOW
Anwendung 2: HÖCHSTE Application 2: HIGHEST
Anwendung 3: HOCH Application 3: HIGH
Anwendung 4: HOCH Application 4: HIGH
Zum Umkonfigurieren werden jeweils Konfigurationen für Untermengen, die aus Anwendungsinstanzen mindestens einer der zugeordneten Prioritätsklassen gebildet werden oder gebildet sind, jeweils einzeln berechnet. Ferner ist vorgesehen, dass die Untermengen derart gebildet werden, dass die Untermengen schrittweise nur noch Anwendungsinstanzen umfassen, deren zugeordnete Prioritätsklassen eine jeweilige Mindestprioritätsklasse erreichen. Insbesondere ergeben sich die folgenden Untermengen S1, S2, S3, S4: For reconfiguration, configurations for subsets that are formed or are formed from application instances of at least one of the assigned priority classes are each calculated individually. It is also provided that the subsets are formed in such a way that the subsets gradually only include application instances whose assigned priority classes achieve a respective minimum priority class. In particular, the following subsets S 1 , S 2 , S 3 , S 4 result :
Zuim Berechnen ist dann vorgesehen, dass die Konfigurationen füur die Untermengen S1, S2, S3, S4 parallel zueinander, das heiβt zeitgleich mittels parallel zueinander ausgefuhrter Berechnungsthreads, mittels der Anwendungsplatzierungseinrichtung berechnet werden, wie dies schematisch in der Fig. 3 gezeigt ist, wobei die Berchnungsthreads uber der Zeit t veranschaulicht sind. Anschließend wählt die Anwendungsplatzierungseinrichtung die beste bzw. optimalste aus den berechneten Konfigurationen aus. Es kann vorgesehen sein, dass das Berechnen abgebrochen wird, wenn eine vorgegebene maximale Berechnungszeit 20 erreicht oder überschritten ist, wobei diejenige bereits berechnete Konfiguration zum Umkonfigurieren gewählt wird, die Anwendungsinstanzen mit der jeweils größten Anzahl an höchsten Prioritätsklassen umfasst. Hierdurch können das Umkonfigurieren bzw. das Berechnen insbesondere in zeitkritischen Situationen gesteuert werden. For the calculation, it is then provided that the configurations for the subsets S 1 , S 2 , S 3 , S 4 are calculated in parallel to one another, i.e. at the same time by means of calculation threads executed in parallel with one another, by means of the application placement device, as shown schematically in FIG. 3 where the calculation threads are illustrated over time t. The application placement facility then selects the best or most optimal from the calculated configurations. Provision can be made for the calculation to be aborted when a predefined maximum calculation time 20 is reached or exceeded, the already calculated configuration being selected for reconfiguration which includes application instances with the largest number of highest priority classes in each case. In this way, the reconfiguration or the calculation can be controlled in particular in time-critical situations.
Ist eine maximale Berechnungszeit 20 vorgesehen, dann würden nur Konfigurationen für die Untermengen S3 und S4 vorliegen, für die Untermengen S1 und S2 hätte die maximale Berechnungszeit 20 hingegen nicht ausgereicht. If a maximum calculation time 20 is provided, then there would only be configurations for subsets S3 and S4, whereas the maximum calculation time 20 would not have been sufficient for subsets S1 and S2.
Ausgehend von der in der Fig. 2a gezeigten Konfiguration 62 sei nun angenommen, dass nicht der Berechnungsknoten 70-2 ausfällt, sondern der Berechnungsknoten 70-3. In der Folge können nicht alle Anwendungsinstanzen 60-x, 61-x, die vor Eintreten des Defekts ausgeführt wurden, auf die verbleibenden Berechnungsknoten 70-1, 70-2, 70-4 verteilt werden, da einige Randbedingungen (siehe oben) nicht erfüllt werden können. Mit den voranstehend definierten Prioritätsklassen kann aber zumindest eine Konfiguration 62 bzw. eine Anwendungsplatzierung berechnet werden, die die Anwendungen bzw. Anwendungsinstanzen 60-x, 61-x, denen die Prioritätsklassen HOCH und HÖCHSTE zugeordnet sind, berücksichtigt. Fig. 4 zeigt eine resultierende Konfiguration 62. On the basis of the configuration 62 shown in FIG. 2a, it is now assumed that it is not the calculation node 70-2 that fails, but rather the calculation node 70-3. As a result, not all application instances 60-x, 61-x that were executed before the defect occurred can be distributed to the remaining calculation nodes 70-1, 70-2, 70-4, since some boundary conditions (see above) are not met can be. With the priority classes defined above, however, at least one configuration 62 or an application placement can be calculated that takes into account the applications or application instances 60-x, 61-x to which the priority classes HIGH and HIGHEST are assigned. 4 shows a resulting configuration 62.
In Fig. 5 ist eine schematische Darstellung einer Ausführungsform des Verfahrens gezeigt. Prinzipiell ist die Ausführungsform wie die voranstehend im Zusammenhang mit den Figuren 3 und 4 beschriebene Ausführungsform ausgebildet. Jedoch ist vorgesehen, dass die Konfigurationen 62 für die Untermengen S1 , S2, S3, S4 sequentiell mittels der Anwendungsplatzierungseinrichtung berechnet werden. Dies hat den Vorteil, dass eine volle Rechenleistung beim Berechnen einer Konfiguration für eine Untermenge S1 , S2, S3, S4 bereitgestellt werden kann. Hierbei ist ferner vorgesehen, dass die Konfigurationen 62 zuerst für diejenigen Untermengen berechnet werden, die die jeweils größte Anzahl an höchsten Prioritätsklassen umfassen, das heißt im Beispiel gemäß der Reihenfolge: S1 , S2, S3, S4. In Fig. 5 a schematic representation of an embodiment of the method is shown. In principle, the embodiment is designed like the embodiment described above in connection with FIGS. 3 and 4. However, it is provided that the configurations 62 for the subsets S 1 , S 2 , S 3 , S 4 are calculated sequentially by means of the application placement device. This has the advantage that full computing power can be provided when calculating a configuration for a subset S 1 , S 2 , S 3 , S 4 . It is further provided here that the configurations 62 are first calculated for those subsets which each comprise the largest number of highest priority classes, that is to say in the example according to the sequence: S 1 , S 2 , S 3 , S 4 .
Insbesondere ist vorgesehen, dass die Berechnung nur weitergeführt ist, wenn eine vorangehende Berechnung nicht erfolgreich war bzw. zu keiner Lösung bzw. Konfiguration 62 geführt hat (in der Fig. 4 kenntlich gemacht durch ein „X“). Im gezeigten Beispiel würde lediglich eine Lösung bzw. eine Konfiguration 62 für die Untermenge S4 aufgefunden, das heißt es kann lediglich eine Anwendungsplatzierung bzw. eine Konfiguration 62 berechnet werden, bei der die Anwendungen mit der Prioritätsklasse HÖCHSTE berücksichtigt werden. In particular, it is provided that the calculation is only continued if a previous calculation was unsuccessful or did not lead to a solution or configuration 62 (indicated in FIG. 4 by an “X”). In the example shown, only a solution or a configuration 62 would be found for the subset S4, that is to say it can only an application placement or a configuration 62 are calculated in which the applications with the HIGHEST priority class are taken into account.
Bezugszeichenliste List of reference symbols
1 Vorrichtung 1 device
2 Monitoreinrichtung 2 monitor setup
3 Umschalteinrichtung 3 changeover device
4 Anwendungsplatzierungseinrichtung 4 Application placement facility
5 Ausfallsicherungseinrichtung 10 Sensordaten 11 Redundanzbedingung 12 Segregationsbedingung 20 maximale Berechnungszeit 30 Steuersignale 5 Failure protection device 10 Sensor data 11 Redundancy condition 12 Segregation condition 20 Maximum calculation time 30 Control signals
50 Fahrzeug 50 vehicle
51 Sensor 51 sensor
52 Aktorik 52 Actuators
60, 60-x Anwendungsinstanz (aktiv) 60, 60-x application instance (active)
61, 61 -x Anwendungsinstanz (passiv) 62 Konfiguration 61, 61 -x application instance (passive) 62 configuration
63 Umschaltsignal 63 Changeover signal
70-x Berechnungsknoten 70-x calculation node
Sx Untermenge t Zeit S x subset t time

Claims

Patentansprüche Claims
1. Verfahren zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs (50) in einem Fehlerfall, wobei Anwendungsinstanzen (60-x,61-x) gemäß einer vorgegebenen Konfiguration (62) verteilt auf mehreren Berechnungsknoten (70-x) ausgeführt werden, wobei zumindest einem Teil der Anwendungsinstanzen (60-x,61-x) erfasste Sensordaten (10) mindestens eines Sensors (51) zugeführt werden und wobei zumindest von einem Teil der Anwendungsinstanzen (60-x,61-x) Steuersignale (30) zum1. A method for reconfiguring an automatically driving vehicle (50) in the event of a fault, with application instances (60-x, 61-x) being executed according to a predetermined configuration (62) distributed over a plurality of calculation nodes (70-x), with at least one part the application entities (60-x, 61-x) recorded sensor data (10) are supplied to at least one sensor (51) and at least some of the application entities (60-x, 61-x) control signals (30) to
Steuern (51) des Fahrzeugs (50) erzeugt und bereitstellt werden, wobei die Anwendungsinstanzen (60-x,61-x) und/oder Betriebssysteme und/oder eine mit den Berechnungsknoten (70-x) korrespondierende Hardware mittels mindestens einer Monitoreinrichtung (2) überwacht werden, wobei ein Fehler in einer Anwendungsinstanz (60-x,61-x) und/oder in einem Betriebssystem und/oder in einer Hardware mittels der mindestens einen Monitoreinrichtung (2) erkannt wird, wobei der erkannte Fehler durch Umschalten auf Anwendungsinstanzen (61 -x), die zu jeweils betroffenen Anwendungsinstanzen (60-x) redundant sind, mittels einer Umschalteinrichtung (3) isoliert wird, und wobei für die Anwendungsinstanzen (60-x, 61 -x) vorgegebene Redundanzbedingungen (11) und/oder Segregationsbedingungen (12) durch Umkonfigurieren der Konfiguration (62) mittels einer Anwendungsplatzierungseinrichtung (4) wiederhergestellt werden, wobei das Umkonfigurieren derart durchgeführt wird, dass eine Anzahl von zum Herstellen der vorgegebenen Redundanzbedingungen (11) und/oder Segregationsbedingungen (12) notwendigen Verschiebungen von Anwendungsinstanzen (60-x,61-x) auf andere Berechnungsknoten (70-x) minimiert wird oder minimiert ist. Controlling (51) the vehicle (50) are generated and provided, the application instances (60-x, 61-x) and / or operating systems and / or hardware corresponding to the calculation nodes (70-x) using at least one monitor device (2 ) are monitored, an error in an application instance (60-x, 61-x) and / or in an operating system and / or in hardware being detected by means of the at least one monitor device (2), the error detected being detected by switching to application instances (61 -x), which are redundant to the respective application instances (60-x) concerned, is isolated by means of a switching device (3), and where for the application instances (60-x, 61 -x) predetermined redundancy conditions (11) and / or Segregation conditions (12) can be restored by reconfiguring the configuration (62) by means of an application placement device (4), the reconfiguration being carried out in such a way that a number of given redundancy conditions (11) and / or segregation conditions (12) necessary shifts from application instances (60-x, 61-x) to other computation nodes (70-x) is minimized or is minimized.
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass den Anwendungsinstanzen (60-x,61-x) jeweils eine Prioritätsklasse zugeordnet wird oder zugeordnet ist, wobei zum Umkonfigurieren jeweils Konfigurationen (62) für Untermengen (Sx), die aus Anwendungsinstanzen (60-x,61-x) mindestens einer der zugeordneten Prioritätsklassen gebildet werden oder gebildet sind, jeweils einzeln berechnet werden. 2. The method according to claim 1, characterized in that the application instances (60-x, 61-x) are each assigned or assigned a priority class, with configurations (62) for subsets (S x ) consisting of application instances ( 60-x, 61-x) at least one of the assigned priority classes are formed or are formed, are each calculated individually.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Untermengen (Sx) derart gebildet werden, dass die Untermengen (Sx) sukzessive nur noch Anwendungsinstanzen (60-x,61-x) umfassen, deren zugeordnete Prioritätsklassen eine jeweilige Mindestprioritätsklasse erreichen. 3. The method according to claim 2, characterized in that the subsets (S x ) are formed in such a way that the subsets (S x ) successively only include application instances (60-x, 61-x) whose assigned priority classes achieve a respective minimum priority class .
4. Verfahren nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, dass die Konfigurationen (62) für die Untermengen (Sx) zumindest teilweise parallel zueinander mittels der Anwendungsplatzierungseinrichtung (4) berechnet werden. 4. The method according to any one of claims 2 or 3, characterized in that the configurations (62) for the subsets (S x ) are calculated at least partially parallel to one another by means of the application placement device (4).
5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass die Konfigurationen (62) für die Untermengen (Sx) zumindest teilweise sequentiell mittels der Anwendungsplatzierungseinrichtung (4) berechnet werden. 5. The method according to any one of claims 2 to 4, characterized in that the configurations (62) for the subsets (S x ) are at least partially calculated sequentially by means of the application placement device (4).
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Konfigurationen (62) hierbei zuerst für diejenigen Untermengen (Sx) berechnet werden, die die jeweils größte Anzahl an höchsten Prioritätsklassen umfassen. 6. The method according to claim 5, characterized in that the configurations (62) are calculated here first for those subsets (S x ) which each comprise the largest number of highest priority classes.
7. Verfahren nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, dass das Berechnen abgebrochen wird, wenn eine vorgegebene maximale Berechnungszeit (20) erreicht oder überschritten ist, wobei diejenige bereits berechnete Konfiguration (62) zum Umkonfigurieren gewählt wird, die Anwendungsinstanzen (60-x,61-x) mit der jeweils größten Anzahl an höchsten Prioritätsklassen umfasst. 7. The method according to any one of claims 4 to 6, characterized in that the calculation is aborted when a predetermined maximum calculation time (20) is reached or exceeded, the configuration (62) already calculated being selected for reconfiguration, the application instances (60 -x, 61-x) with the largest number of highest priority classes.
8. Vorrichtung (1) zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs (50) in einem Fehlerfall, wobei in dem Fahrzeug (50) Anwendungsinstanzen (60-x,61-x) gemäß einer vorgegebenen Konfiguration (62) verteilt auf mehreren Berechnungsknoten (70-x) ausgeführt werden, wobei zumindest einem Teil der Anwendungsinstanzen (60-x,61-x) erfasste Sensordaten (10) mindestens eines Sensors (51) zugeführt werden und wobei zumindest von einem Teil der Anwendungsinstanzen (60-x,61-x) Steuersignale (30) zum Steuern des Fahrzeugs (50) erzeugt und bereitstellt werden, umfassend: mindestens eine Monitoreinrichtung (2), eine Umschalteinrichtung (3), und eine Anwendungsplatzierungseinrichtung (4), wobei die mindestens eine Monitoreinrichtung (2) dazu eingerichtet ist, die Anwendungsinstanzen (60-x,61-x) und/oder Betriebssysteme und/oder eine mit den Berechnungsknoten (70-x) korrespondierende Hardware zu überwachen und einen Fehler in einer Anwendungsinstanz (60-x,61-x) und/oder in einem Betriebssystem und/oder in einer Hardware zu erkennen, wobei die Umschalteinrichtung (3) dazu eingerichtet ist, den erkannten Fehler durch Umschalten auf Anwendungsinstanzen (61-x), die zu jeweils betroffenen Anwendungsinstanzen (60-x) redundant sind, zu isolieren, wobei die Anwendungsplatzierungseinrichtung (4) dazu eingerichtet ist, für die Anwendungsinstanzen vorgegebene Redundanzbedingungen (10) und/oder Segregationsbedingungen (12) durch Umkonfigurieren der Konfiguration (62) wiederherzustellen, und das Umkonfigurieren derart durchzuführen, dass eine Anzahl von zum Herstellen der vorgegebenen Redundanzbedingungen (11) und/oder Segregationsbedingungen (12) notwendigen Verschiebungen von Anwendungsinstanzen (60-x, 61-x) auf andere Berechnungsknoten (70-x) minimiert ist. 8. Device (1) for reconfiguring an automatically driving vehicle (50) in the event of a fault, with application instances (60-x, 61-x) in the vehicle (50) distributed over several calculation nodes (70- x), wherein at least some of the application instances (60-x, 61-x) recorded sensor data (10) are supplied to at least one sensor (51) and at least some of the application instances (60-x, 61-x) Control signals (30) for controlling the vehicle (50) are generated and provided, comprising: at least one monitor device (2), a switching device (3), and an application placement device (4), wherein the at least one monitoring device (2) is set up to monitor the application instances (60-x, 61-x) and / or operating systems and / or hardware corresponding to the computing nodes (70-x) and to detect an error in an application instance ( 60-x, 61-x) and / or in an operating system and / or in hardware, the switching device (3) being set up to detect the detected error by switching to application instances (61-x) that are relevant to each Application instances (60-x) are redundant, to be isolated, the application placement device (4) being set up to restore redundancy conditions (10) and / or segregation conditions (12) predetermined for the application instances by reconfiguring the configuration (62), and the reconfiguration in this way perform that a number of shifts of users necessary to establish the specified redundancy conditions (11) and / or segregation conditions (12) calculation instances (60-x, 61-x) to other calculation nodes (70-x) is minimized.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass den Anwendungsinstanzen (60-x, 61-x) jeweils eine Prioritätsklasse zugeordnet ist, wobei die Anwendungsplatzierungseinrichtung (4) ferner dazu eingerichtet ist, zum Umkonfigurieren jeweils Konfigurationen (62) für Untermengen (Sx), die aus Anwendungsinstanzen (60- x,61-x) mindestens einer der zugeordneten Prioritätsklassen gebildet werden oder gebildet sind, jeweils einzeln zu berechnen. 9. The device according to claim 8, characterized in that the application instances (60-x, 61-x) are each assigned a priority class, the application placement device (4) further being set up to reconfigure configurations (62) for subsets (S x ), which are formed or are formed from application instances (60- x, 61-x) of at least one of the assigned priority classes, each to be calculated individually.
10. Fahrzeug (50), umfassend mindestens eine Vorrichtung (1) nach Anspruch 8 oder 9. 10. Vehicle (50) comprising at least one device (1) according to claim 8 or 9.
EP21700423.3A 2020-01-15 2021-01-12 Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault Pending EP4091054A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102020200459 2020-01-15
DE102020203420.6A DE102020203420B4 (en) 2020-01-15 2020-03-17 Method and device for reconfiguring an automatically driving vehicle in the event of a fault
PCT/EP2021/050494 WO2021144271A1 (en) 2020-01-15 2021-01-12 Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault

Publications (1)

Publication Number Publication Date
EP4091054A1 true EP4091054A1 (en) 2022-11-23

Family

ID=76542799

Family Applications (1)

Application Number Title Priority Date Filing Date
EP21700423.3A Pending EP4091054A1 (en) 2020-01-15 2021-01-12 Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault

Country Status (5)

Country Link
US (1) US20230054109A1 (en)
EP (1) EP4091054A1 (en)
CN (1) CN114930300A (en)
DE (1) DE102020203420B4 (en)
WO (1) WO2021144271A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515034B (en) * 2021-06-25 2022-12-16 际络科技(上海)有限公司 State machine control method, device, system and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935569B2 (en) * 2010-03-23 2015-01-13 Continental Teves Ag & Co. Ohg Control computer system, method for controlling a control computer system, and use of a control computer system
US10324797B2 (en) * 2016-02-26 2019-06-18 Tttech Auto Ag Fault-tolerant system architecture for the control of a physical system, in particular a machine or a motor vehicle
US9952948B2 (en) * 2016-03-23 2018-04-24 GM Global Technology Operations LLC Fault-tolerance pattern and switching protocol for multiple hot and cold standby redundancies

Also Published As

Publication number Publication date
CN114930300A (en) 2022-08-19
WO2021144271A1 (en) 2021-07-22
DE102020203420A1 (en) 2021-07-15
US20230054109A1 (en) 2023-02-23
DE102020203420B4 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
DE102017106087A1 (en) ERROR TOLERANCE PATTERN AND SWITCH PROTOCOL FOR SEVERAL HOT AND COLD STANDBY REDUNDANCIES
EP3523703B1 (en) Method for updating software in cloud gateways, computer program with an implementation of the method and processing unit for executing the method
DE102017218395A1 (en) Method for fault-tolerant control of highly automated vehicles
DE102017210156B4 (en) Device and method for controlling a vehicle module
EP3661819B1 (en) Control system for a motor vehicle, motor vehicle, method for controlling a motor vehicle, computer program product, and computer-readable medium
DE102015216265A1 (en) Method and subsystem for installing a software update in a vehicle
EP1989470B1 (en) Safety concept for a transmission actuator device
WO2020108709A1 (en) Method for planning a parking process supported by a parking assistance system
WO2007025816A2 (en) Memory arrangement and method for the operation thereof
EP4091054A1 (en) Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault
DE102011107646A1 (en) Method and system for the dynamic distribution of program functions in distributed control systems
DE102020200414A1 (en) Method and device for reconfiguring an automatically driving vehicle in the event of a fault
DE102019004612A1 (en) Method for operating a vehicle with a control device
EP2449438B1 (en) Method and system for driving at least one actuator
EP1733284A2 (en) Control system for operating functions on interacting appliances
DE102012212680A1 (en) Method and system for fault-tolerant control of actuators for a limited time based on pre-calculated values
EP2224340B1 (en) Method and management system for configuring a dynamic information system and computer program product
DE102017212560A1 (en) Method for fail-safe performance of a safety-related function
DE102020203419A1 (en) Method and device for operating an automated vehicle
DE102016117169B4 (en) System for energy and / or data transmission
DE102018217728A1 (en) Method and device for estimating at least one performance indicator of a system
DE10220811B4 (en) Method and device for monitoring the functioning of a system
EP4363981A1 (en) Method and device for reconfiguring a system architecture of an autonomous vehicle
DE102021213472A1 (en) Method for executing a driving task in a decentralized control unit system and decentralized control unit system
DE102020216481A1 (en) Method of operating a controller and controller

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20220816

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20230623