Asynchronous Execution Graphs for Autonomous Driving

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current autonomous vehicle systems face challenges in deterministic decision-making, modularization, and efficient execution of autonomous driving operations due to non-deterministic behavior and complexity, which hinders simulation replication and development speed.

Innovation Solution

An asynchronous execution graph is employed, comprising subgraphs with nodes and edges, ensuring deterministic outputs, easy modularization, and efficient scheduling to execute operations quickly, allowing for partial execution and transparent configuration, thereby facilitating faster development and simulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional autonomous vehicle systems are used, then the system can perform basic driving operations, but the decision-making behavior becomes non-deterministic and complex systems hinder simulation replication

Engineering Contradiction:
Improvedeterministic decision-makingVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The autonomous vehicle system is divided into multiple independent subgraphs, each representing specific driving operations or decision modules. These subgraphs can be executed independently and concurrently, reducing overall system complexity while maintaining deterministic behavior through structured organization of computational tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements dynamic scheduling of subgraph execution based on runtime conditions and resource availability. The execution engine can adaptively select which subgraphs to execute and in what order, allowing the system to maintain determinism while handling complex varying driving scenarios through flexible dynamic execution strategies.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If comprehensive autonomous driving operations are implemented, then the vehicle can handle various driving scenarios, but the execution time and latency increase

Engineering Contradiction:
Improvedriving scenario coverageVSAvoidexecution latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Driving operations are segmented into independent subgraphs that can be executed in parallel. This allows the system to process multiple driving scenarios simultaneously, reducing overall execution latency while maintaining comprehensive scenario coverage through concurrent processing of divided computational tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system executes only the necessary subset of subgraphs required for the current driving scenario rather than executing all possible operations. This partial execution approach reduces latency by avoiding unnecessary computations while still providing comprehensive coverage when needed through selective activation of relevant subgraphs.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of manufacture

If modularization is improved for easier development, then the development cycle speeds up, but the system architecture becomes more complex

Engineering Contradiction:
Improvedevelopment speedVSAvoidarchitecture complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The system architecture is segmented into standardized subgraph modules that can be independently developed, tested, and reused. This modular structure speeds up development through code reuse and independent module optimization, while the standardized interface design prevents architecture from becoming unmanageably complex.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Subgraph modules are designed with universal interfaces and standardized data formats that allow them to be reused across different driving scenarios and applications. This universality reduces development time through reuse while maintaining clear architectural boundaries that prevent complexity from accumulating.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Measurement precision

If deterministic execution is ensured through systematic protection against race conditions, then simulation replication accuracy improves, but the execution flexibility is reduced

Engineering Contradiction:
Improvesimulation replication accuracyVSAvoidexecution flexibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The execution engine implements dynamic scheduling that adapts to different execution contexts while maintaining determinism through consistent scheduling rules. This allows the system to replicate simulations accurately by following the same execution path, while still providing flexibility for different driving scenarios through adaptive subgraph selection and parallel execution strategies.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11709059B2Asynchronous execution graphs for autonomous vehicles
Publication Date: 2023.07.25 WAYMO LLC
  • US11709059B2 patent drawing
  • US11709059B2 patent drawing
  • US11709059B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for executing the operations represented by an asynchronous execution graph. One of the methods includes receiving data characterizing an asynchronous execution graph comprising one or more subgraphs, wherein each subgraph comprises a plurality of nodes connected by edges, the plurality of nodes comprising a source node, one or more processor nodes, and one or more sink nodes; receiving source data from an external system that corresponds to the source node of a first subgraph in the graph; in response, executing the operations represented by the processor nodes in the first subgraph; and executing the operations represented by each sink node in the first subgraph.