Fault state transitions in an autonomous vehicle
Fault state transitions in an autonomous vehicle may include determining that a first node of a plurality of nodes has failed; determining, in response to the first node failing, a failure state; determining, based on the failure state, a configuration for the plurality of nodes excluding the first node; and applying the configuration.
1. A method for fault state transitions in an autonomous vehicle, the method comprising:
determining that a first node of a plurality of nodes has failed;
determining, in response to the first node failing, a failure state by identifying the failure state from a plurality of predefined failure states each corresponding to a different combination of one or more failed nodes, wherein each of the plurality of predefined failure states corresponds to a respective configuration of a plurality of configurations;
selecting, from the plurality of configurations, as a configuration for the plurality of nodes excluding the first node, the respective configuration corresponding to the failure state, wherein the configuration comprises one or more of: memory access permissions for the plurality of nodes excluding the first node and/or functional assignments for the plurality of nodes excluding the first node; and
applying the configuration.
2. The method of claim 1 , further comprising determining, during a code compilation, the plurality of predefined states and the plurality of configurations.
3. The method of claim 1 , wherein applying the configuration comprises copying, based on the memory access permissions, one or more values stored in memory from a first memory location to a second memory location.
4. The method of claim 1 , further comprising:
determining that the first node is operational;
determining, based on the failure state and in response to determining that the first node is operational, a current state;
determining, based on the current state, another configuration; and
applying the other configuration.
5. The method of claim 1 , wherein determining that the first node has failed comprises receiving, by an exception handler, an exception generated by the first node.
6. The method of claim 1 , wherein determining that the first node has failed comprises determining that the first node has written invalid data to a memory address accessible by another node.
7. The method of claim 1 , wherein determining that the first node has failed comprises determining that the first node has failed to write data within a time window to a memory address for access by another node.
8. An apparatus for fault state transitions in an autonomous vehicle, the apparatus comprising one or more processors and memory storing instructions that, when executed, cause the one or more processors to perform steps comprising:
determining that a first node of a plurality of nodes has failed;
determining, in response to the first node failing, a failure state by identifying the failure state from a plurality of predefined failure states each corresponding to a different combination of one or more failed nodes, wherein each of the plurality of predefined failure states corresponds to a respective configuration of a plurality of configurations;
selecting, from the plurality of configurations, as a configuration for the plurality of nodes excluding the first node, the respective configuration corresponding to the failure state, wherein the configuration comprises one or more of: memory access permissions for the plurality of nodes excluding the first node and/or functional assignments for the plurality of nodes excluding the first node; and
applying the configuration.
9. The apparatus of claim 8 , wherein the steps further comprise determining, during a code compilation, the plurality of predefined states and the plurality of configurations.
10. The apparatus of claim 8 , wherein applying the configuration comprises copying, based on the memory access permissions, one or more values stored in memory from a first memory location to a second memory location.
11. The apparatus of claim 8 , wherein the steps further comprise:
determining that the first node is operational;
determining, based on the failure state and in response to determining that the first node is operational, a current state;
determining, based on the current state, another configuration; and
applying the other configuration.
12. The apparatus of claim 8 , wherein determining that the first node has failed comprises receiving, by an exception handler, an exception generated by the first node.
13. The apparatus of claim 8 , wherein determining that the first node has failed comprises determining that the first node has written invalid data to a memory address accessible by another node.
14. An autonomous vehicle for fault state transitions in an autonomous vehicle, comprising:
an apparatus comprising one or more processors and memory storing instructions that, when executed, cause the one or more processors to perform steps comprising:
determining that a first node of a plurality of nodes has failed;
determining, in response to the first node failing, a failure state by identifying the failure state from a plurality of predefined failure states each corresponding to a different combination of one or more failed nodes, wherein each of the plurality of predefined failure states corresponds to a respective configuration of a plurality of configurations;
selecting, from the plurality of configurations, as a configuration for the plurality of nodes excluding the first node, the respective configuration corresponding to the failure state, wherein the configuration comprises one or more of: memory access permissions for the plurality of nodes excluding the first node and/or functional assignments for the plurality of nodes excluding the first node; and
applying the configuration.
15. The autonomous vehicle of claim 14 , wherein the steps further comprise determining, during a code compilation, the plurality of predefined states and the plurality of configurations.
16. The autonomous vehicle of claim 14 , wherein applying the configuration comprises copying, based on the memory access permissions, one or more values stored in memory from a first memory location to a second memory location.
17. The autonomous vehicle of claim 14 , wherein the steps further comprise:
determining that the first node is operational;
determining, based on the failure state and in response to determining that the first node is operational, a current state;
determining, based on the current state, another configuration; and
applying the other configuration.
18. The autonomous vehicle of claim 14 , wherein determining that the first node has failed comprises receiving, by an exception handler, an exception generated by the first node.
19. The autonomous vehicle of claim 14 , wherein determining that the first node has failed comprises determining that the first node has written invalid data to a memory address accessible by another node.
20. A computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions for fault state transitions in an autonomous vehicle that, when executed, cause a computer system of the autonomous vehicle to carry out the steps of:
determining that a first node of a plurality of nodes has failed;
determining, in response to the first node failing, a failure state by identifying the failure state from a plurality of predefined failure states each corresponding to a different combination of one or more failed nodes, wherein each of the plurality of predefined failure states corresponds to a respective configuration of a plurality of configurations;
selecting, from the plurality of configurations, as a configuration for the plurality of nodes excluding the first node, the respective configuration corresponding to the failure state, wherein the configuration comprises one or more of: memory access permissions for the plurality of nodes excluding the first node and/or functional assignments for the plurality of nodes excluding the first node; and
applying the configuration.