METHOD AND DEVICE FOR CONFIGURING A SYSTEM ARCHITECTURE OF AN AUTONOMOUS VEHICLE
20210286631 · 2021-09-16
Inventors
- Tobias Kain (Oberndorf/Melk, AT)
- Julian-Steffen Müller (Hanover, DE)
- Maximilian Wesche (Edemissen, DE)
- Hendrik Decke (Braunschweig, DE)
- Philipp Mundhenk (Höhekirchen-Siegertsbrunn, DE)
Cpc classification
B60W2050/0075
PERFORMING OPERATIONS; TRANSPORTING
G06F18/217
PHYSICS
G06F9/44505
PHYSICS
B60W60/001
PERFORMING OPERATIONS; TRANSPORTING
B60W2050/0083
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A system architecture of an autonomous vehicle, wherein the system architecture includes a plurality of application instances and nodes. The application instances are distributed and executed on the computation nodes according to a configuration, wherein measured sensor data of at least one sensor is input to at least part of the application instances, and wherein at least part of the application instances creates and provides control signals for controlling the vehicle. At least one context information of a prevailing context is gathered, and wherein the configuration is adapted according to the at least one gathered context information.
Claims
1-15. (canceled).
16. A method for operating a system architecture of an autonomous vehicle, comprising: inputting vehicle sensor data to at least a portion of a plurality of application instances distributed and executed across a plurality of computational nodes of the autonomous vehicle according to a configuration; generating control signals via at least the portion of the plurality of application instances to control the autonomous vehicle; gathering at least one context information of a current context; and adapting the configuration according to the gathered context information.
17. The method of claim 16, wherein the context information comprises at least one vehicle user context information and/or one vehicle user request.
18. The method of claim 16, wherein the context information comprises environment information, wherein the environment information is captured by at least one sensor of the vehicle and/or is received by communicating with at least one backend server.
19. The method of claim 16, wherein the context information comprises vehicle information.
20. The method of claim 16, wherein adapting the configuration comprises optimizing the configuration according to at least one optimization criterion.
21. The method of claim 20, wherein the at least one optimization criterion is selected and/or defined according to the at least one context information
22. The method of claim 16, wherein adapting the configuration comprises selecting and/or defining application instance requirements according to the at least one gathered context information.
23. The method of claim 16, further comprising defining application instance requirements by using implication rules that are specified and applied using a declarative programming language.
24. The method of claim 16, wherein adapting the configuration comprises at least one of: selecting a set of application instances according to the at least one gathered context information; determining redundancy requirements of the application instances according to the at least one gathered context information; and/or determining hardware and/or software segregation requirements of the application instances according to the at least one gathered context information.
25. The method of claim 16, wherein adapting the configuration comprises optimally assigning application instances to the computation nodes.
26. The method of claim 25, wherein the assigning comprises applying at least one of integer linear programming, evolutionary game theory, and reinforcement learning to determine the optimal assignment.
27. The method of claim 16, wherein adapting the configuration comprises establishing safety validation of the adapted configuration.
28. The method of claim 16, further comprising repeating the inputting, generating, gathering, and adapting such that the configuration is repeatedly adapted according to the current context.
29. A system for operating a system architecture of an autonomous vehicle, comprising: one or more sensors for producing sensor data; a context gathering device configured to gather context information of a current context of the autonomous vehicle; a reconfiguration device; and a memory for storing a configuration for the autonomous vehicle, wherein the context gathering device, the reconfiguration device, and the memory are configured to input the vehicle sensor data to at least a portion of a plurality of application instances distributed and executed across a plurality of computational nodes of the autonomous vehicle according to the configuration; generate control signals via at least the portion of the plurality of application instances to control the autonomous vehicle; gather at least one context information of a current context; and adapt the configuration according to the gathered context information.
30. The system of claim 29, wherein the context information comprises at least one of (i) vehicle user context information; (ii) a vehicle user request; (iii) environment information captured by the one or more sensors; (iv) environment information received by communicating with at least one backend server; and (v) vehicle information.
31. The system of claim 29, wherein adapting the configuration comprises at least one of optimizing the configuration according to at least one optimization criterion, selected and/or defined according to the at least one context information; and/or selecting and/or defining application instance requirements according to the at least one gathered context information.
32. The system of claim 29, wherein the context gathering device, the reconfiguration device, and the memory are configured to define application instance requirements by using implication rules that are specified and applied using a declarative programming language.
33. The method of claim 16, wherein the context gathering device, the reconfiguration device, and the memory are configured to adapt the configuration by at least one of: selecting a set of application instances according to the at least one gathered context information; determining redundancy requirements of the application instances according to the at least one gathered context information; determining hardware and/or software segregation requirements of the application instances according to the at least one gathered context information; and/or optimally assigning application instances to the computation nodes, wherein the assigning comprises applying at least one of integer linear programming, evolutionary game theory, and reinforcement learning to determine the optimal assignment.
34. A method for operating a system architecture of an autonomous vehicle, comprising: inputting vehicle sensor data to at least a portion of a plurality of application instances distributed and executed across a plurality of computational nodes of the autonomous vehicle according to a configuration; generating control signals via at least the portion of the plurality of application instances to control the autonomous vehicle; gathering at least one context information of a current context; and adapting the configuration according to the gathered context information, wherein adapting the configuration comprises optimizing the configuration according to at least one optimization criterion determined from the at least one context information
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0031] The present disclosure is explained in greater detail below on the basis of preferred exemplary embodiments with reference to the drawings. In the drawings:
[0032]
[0033]
[0034]
DETAILED DESCRIPTION
[0035] Turning to
[0036] For example, the application instances 21-x can provide the following functionalities: navigation (21-1), object detection in an urban environment (21-2), pedestrian detection (21-3), trajectory planner (21-4), and audio entertainment (21-5). Security relevant application instances 21-x are executed redundantly on multiple computation nodes 22-x (for example, application instances 21-3, 21-4).
[0037] The device 1 includes a gathering device 2 and a reconfiguration device 3. The gathering device 2 and the reconfiguration device 3 can be provided separately or jointly with other devices as a combination of hardware and software, for example, as program code that is executed on a microcontroller or microprocessor.
[0038] The gathering device 2 may gather at least one context information 11 of a prevailing context. The gathered at least one context information 11 is delivered to the reconfiguration device 3. The context information 11 may comprise at least one user context information 12 and/or one user request 13.
[0039] The context information 11 may include at least one environment information 14, wherein the at least one environment information 14 is captured by at least one sensor 51 of the vehicle and/or is retrieved by communicating with at least one backend server 60.
[0040] The context information 11 may include at least one vehicle information 15. For example, a vehicle information 15 can be a state-of-charge (SOC) of a vehicle battery or a remaining range of the vehicle. The at least one vehicle information 15 can be retrieved, for example, from a control of the vehicle via a Controller Area Network (CAN)-bus.
[0041] The reconfiguration device 3 may adapt the configuration 30 of the application instances 21-x according to the at least one gathered context information 11. This allows the ability to adapt the configuration 30, e.g., the mapping of the application instances 21-x, to the computation nodes 22-x, according to a prevailing context, such that the system architecture 20 can best handle the current situation and safety is ensured.
[0042] In some examples, the method may be constantly repeated such that the configuration 30 is continuously adapted according to the prevailing context.
[0043] The adapting of the configuration 30 may include optimizing the configuration 30 according to at least one optimization criterion 16. The optimization criterion 16 may be set by a user, e.g., a passenger, operator and/or owner of the vehicle 50. The optimization may be performed by the reconfiguration device 3. An optimization criterion 16 can be, for example, energy efficiency, comfort, transportation time etc.
[0044] The at least one optimization criterion 16 may be selected and/or defined according to the at least one context information 11. This allows to change to at least one optimization criterion 16 which may lead to an optimal configuration 30 for the prevailing context and situation.
[0045] Adapting the configuration 30 may include selecting and/or defining application instance requirements according to the at least one gathered context information 11. The application instance requirements may be configured to define a set of application instances 21-x which are necessary to handle the prevailing context.
[0046] The application instance requirements may be defined by using implication rules that are specified and applied using a declarative programming language. Hence a reasoning as to which application instances 21-x may be necessary and/or preferable under given circumstances can be realized.
[0047] Adapting the configuration 30 may include selecting a set of application instances 21-x according to the at least one gathered context information 11 and/or determining redundancy requirements of the application instances 21-x according to the at least one gathered context information 11 and/or determining hardware and/or software segregation requirements of the application instances 21-x according to the at least one gathered context information 11. This way a “tailor-made” configuration 30 for a prevailing context can be provided.
[0048] Adapting the configuration 30 may include optimally assigning application instances 21-x to the computation nodes 22-x. For example, an assignment which satisfies the requirements demanded from the adapted configuration 30 may be selected. If more than one solution exists to this assignment problem, a further optimization can be performed. The assigning can be solved by methods which include, for example, integer linear programming, evolutionary game theory, or reinforcement learning.
[0049] In some examples, adapting the configuration 30 includes safety validation of the adapted configuration 30 before the assignment is executed. The safety validation may include a verification that redundancy requirements and/or software and hardware segregation requirements can be met by the adapted configuration 30.
[0050]
[0051] The context layer 100 determines the prevailing context the vehicle is in, by gathering at least one context information 11. Further, it extracts requirements 101 affecting the actions of the layers 200, 300. Mission goals 102, such as a target destination, a requested level of entertainment, or the road and/or ride type paid for, as well as environmental conditions, such as the current weather situation and/or the road and/or traffic conditions are examples for parameters influencing the decision regarding the requirements in the form of context information 11.
[0052] In some examples, the context may be the following: A premium ride on a highway in wintry condition. These context information imply, for example, that the set of required applications (possibly provided by single or multiple application instances) include a pedestrian detection, a trajectory planner which takes rough weather conditions into account, and an entertainment application.
[0053] In another example, the context may be the following: A low-budget ride is operative in an urban environment, under good weather conditions. These context information 11 imply, that the set of required applications (possibly provided by single or multiple application instances) include a pedestrian detection, a trajectory planner which takes the good weather conditions into account, and an application for computing tasks received from cloud services.
[0054] The examples above are simplified, and are provided for illustrative purposes only. Those skilled in the art will recognize that more extensive and demanding configurations are contemplated in the present disclosure.
[0055] Also, the safety-criticality of the respective applications can be derived from the context information 11, and thus requirements 101 for the level of redundancy, as well as other performance parameters can be derived.
[0056] As an illustrative example, the level of redundancy of the pedestrian detection in the first example can be much lower than in the second example, since the likelihood of encountering a pedestrian on a highway is much lower than in an urban environment.
[0057] In some examples, the context information 11 can be derived from sensor data captured by at least one sensor of the vehicle and/or by communicating with a backend server and/or by interacting with the passengers of the vehicle.
[0058] The application instance requirements 101 may be defined by using implication rules that are specified and applied using a declarative programming language.
[0059] The requirements 101 determined by the context layer 100 may be used as input for the reconfiguration layer 200. The reconfiguration layer 200 evaluates the received requirements 101 and plans further actions considering the prevailing context. These actions may include, for example, selecting a set of applications, determining their redundancy and software and hardware segregation requirements as well as optimizing the entire system architecture. The reconfiguration layer performs the reconfiguration computation 201.
[0060] The task of determining a context-based adapted configuration 30, such as a mapping between application instances and computation nodes that respects the prevailing context, is not trivial since the placement decisions depend on various parameters.
[0061] The input of this “application placement problem” is a set of application instances and a set of computation nodes. Furthermore, for each application instance and each computation node a set of parameters including, for example, performance parameters 202 such as the minimum required memory and CPU demand as well as safety parameters 203 like the minimum required level of redundancy and hardware segregation may be defined. The output of the application placement problem is a configuration 30 in the form of an assignment that maps each application instance to exactly one node.
[0062] In order to restrict the number of valid assignments, constraints based on the specified parameters can be defined. Depending on the specified constraints, either none, one, or multiple valid assignments may be configured. In case that there are different solutions, an optimization function 204 in consideration of at least one optimization criterion can be defined that specifies which assignments are the most desired.
[0063] This optimization function 204 may also depend on the prevailing context. Therefore, an approach allowing a context-based update of the at least one optimization criterion leads to configurations that are well adjusted to a current situation.
[0064] For solving the “application placement problem”, various optimization approaches can be used, for example, integer linear programming, evolutionary game theory, or reinforcement learning approaches.
[0065] The architecture layer 300 executes the tasks responsible for interacting with the system architecture of the vehicle, such as the application instances and computation nodes. One main task of the architecture layer 300 may be to apply the reconfiguration actions determined by the reconfiguration layer 200.
[0066] A challenge during operation may be to ensure a fast, safe, and organized configuration roll-out. Furthermore, it has always to be ensured that the reconfiguration actions do not decrease the level of safety. Therefore, safety-validation operations should be executed prior to the configuration roll-out.
[0067] Besides applying reconfiguration actions, such as applying the adapted configuration 30, monitoring the state of the computation nodes and the executed application instances may be an important task. Self-awareness requires monitoring the status of the system to maintain an operational state. The application instances, for example, may be configured to assess their current performance and report faults. Monitoring the system, in turn, depends in general on the observation of several level-specific data.
[0068] Concerning safety, different levels may define different requirements for a minimum operational capability. Since full vehicle autonomy may exclude human takeover actions, classical fault tolerance may not be sufficient, as errors may have various causes and interference effects. Failure handling requires knowledge of cross-layer dependencies. Thus, system monitoring and self-awareness are cross-layer problems, such that system changes 301 are reported back to the reconfiguration layer 200, such that they can affect the adapting of the configuration 30.
LIST OF REFERENCE NUMERALS
[0069] 1 device
[0070] 2 context gathering device
[0071] 3 reconfiguration device
[0072] 10 measured sensor data
[0073] 11 context information
[0074] 12 user context information
[0075] 13 user request
[0076] 14 environment information
[0077] 15 vehicle information
[0078] 16 optimization criterion
[0079] 20 system architecture
[0080] 21-x application instance
[0081] 22-x computation node
[0082] 25 control signal
[0083] 30 configuration
[0084] 50 vehicle
[0085] 51 sensor
[0086] 60 backend server
[0087] 100 context layer
[0088] 101 requirement
[0089] 200 reconfiguration layer
[0090] 201 reconfiguration computation
[0091] 202 performance parameters
[0092] 203 safety parameters
[0093] 204 optimization function
[0094] 300 architecture layer
[0095] 301 system changes