Using a lane-structured dynamic environment for rule-based automated control
Specifications are input, comprising: a plurality of lanes in an environment for a controlled system; a plurality of lane maneuvers associated with the plurality of lanes; a plurality of lane subconditions associated with the controlled system; and a rule set comprising a plurality of rules, wherein a rule in the rule set specifies a rule condition and a rule action to take when the rule condition is satisfied, wherein the rule condition comprises a corresponding set of lane subconditions, and wherein the rule action comprises a corresponding lane maneuver. The controlled system is automatically navigated dynamically, at least in part by: monitoring the plurality of lane subconditions; evaluating rule conditions associated with the plurality of rules in the rule set to determine one or more rules whose corresponding rule conditions has been met; and executing one or more lane maneuvers that correspond to the one or more determined rules.
1. A method, comprising:
inputting specifications comprising:
a plurality of lanes in an environment for a controlled system;
a plurality of lane maneuvers associated with the plurality of lanes;
a plurality of lane subconditions associated with the controlled system; and
a rule set comprising a plurality of rules, wherein a rule in the rule set specifies a rule condition and a rule action to take when the rule condition is satisfied, wherein the rule condition comprises a corresponding set of lane subconditions, and wherein the rule action comprises a corresponding lane maneuver; and
automatically navigating the controlled system dynamically, including:
monitoring the plurality of lane subconditions;
evaluating rule conditions associated with the plurality of rules in the rule set to determine one or more rules whose corresponding rule conditions has been met; and
executing one or more lane maneuvers that correspond to the one or more determined rules.
2. The method of claim 1 , wherein automatically navigating further comprises:
receiving one or more inputs from the environment for the controlled system; and
in response to receiving the one or more inputs, dynamically updating a status of the plurality of subconditions.
3. The method of claim 1 , wherein a representation of a lane subcondition in the plurality of lane subconditions comprises a value having one of a plurality of states, and wherein the plurality of states comprises a state of “don't care”.
4. The method of claim 3 , wherein the value is represented by a single bit.
5. The method of claim 3 , wherein the value is represented by a single bit and an ANDN hardware instruction is used to match two values.
6. The method of claim 3 , wherein the value is represented by two bits.
7. The method of claim 1 , wherein a first lane in the plurality of lanes is adjacent to a second lane in the plurality of lanes.
8. The method of claim 7 , wherein a lane maneuver in the plurality of lane maneuvers comprises a change between the first lane to the second lane.
9. The method of claim 1 , wherein the environment for the controlled system is a constrained environment comprising a discretized lane-structured environment wherein the controlled system proceeds in a current lane or switches to a lane adjacent to the current lane.
10. The method of claim 1 , wherein the plurality of lane subconditions comprises a route guidance subcondition.
11. The method of claim 1 , wherein the plurality of lane maneuvers comprises a preemptable lane maneuver.
12. The method of claim 1 , wherein a lane in the plurality of lanes is a discretized directional path segment that the controlled system can transit along.
13. The method of claim 1 , wherein automatically navigating the controlled system dynamically comprises controlling a behavior of a self-driving physical vehicle.
14. The method of claim 13 , wherein the plurality of lanes comprises a road lane for driving.
15. The method of claim 1 , further comprising receiving the rule set in a different representation, wherein the different representation is at least one of the following: a compiled table and a code realization.
16. The method of claim 1 , wherein specifications further includes one or more additional rule sets.
17. A system, comprising:
an interface configured to receive specifications comprising:
a plurality of lanes in an environment for a controlled system;
a plurality of lane maneuvers associated with the plurality of lanes;
a plurality of lane subconditions associated with the controlled system; and
a rule set comprising a plurality of rules, wherein a rule in the rule set specifies a rule condition and a rule action to take when the rule condition is satisfied, wherein the rule condition comprises a corresponding set of lane subconditions, and wherein the rule action comprises a corresponding lane maneuver; and
a processor coupled to the interface and configured to automatically navigate the controlled system dynamically at least in part by:
monitoring the plurality of lane subconditions;
evaluating rule conditions associated with the plurality of rules in the rule set to determine one or more rules whose corresponding rule conditions has been met; and
executing one or more lane maneuvers that correspond to the one or more determined rules; and
a memory coupled to the processor and configured to provide the processor with instructions.
18. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
inputting specifications comprising:
a plurality of lanes in an environment for a controlled system;
a plurality of lane maneuvers associated with the plurality of lanes;
a plurality of lane subconditions associated with the controlled system; and
a rule set comprising a plurality of rules, wherein a rule in the rule set specifies a rule condition and a rule action to take when the rule condition is satisfied, wherein the rule condition comprises a corresponding set of lane subconditions, and wherein the rule action comprises a corresponding lane maneuver; and
automatically navigating the controlled system dynamically at least in part by:
monitoring the plurality of lane subconditions;
evaluating rule conditions associated with the plurality of rules in the rule set to determine one or more rules whose corresponding rule conditions has been met; and
executing one or more lane maneuvers that correspond to the one or more determined rules.