Centralized Scheduling for Autonomous Driving Data Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing autonomous driving systems face challenges with decentralized architectures, leading to inconsistent results, increased IO overhead, and potential single points of failure due to their multi-process nature and inefficient data communication protocols.
Innovation Solution
A centralized scheduling system with a single-threaded event loop and global store is implemented, allowing for atomic operations, consistent results, and easy debugging, while avoiding kernel-level modifications and redundant packet transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a decentralized multi-process architecture is used for autonomous driving modules, then each module can run independently with its own state, but the system suffers from race conditions, IO overhead, inconsistent results, and potential deadlocks
Solution Approach 1:
The patent merges multiple independent module processes into a single centralized process, eliminating inter-process communication overhead and race conditions. The unified process structure ensures that all modules share the same memory space and execution context, guaranteeing consistent results for the same input while maintaining module functionality through internal state management.
Solution Approach 2:
Within the centralized process, the system segments functionality into distinct modules that operate as separate execution contexts or task sequences. Each module maintains its own logical state and execution flow, but operates under the coordination of a centralized scheduler that manages resource access and execution timing, preventing deadlocks and race conditions.
2Ease of operation
If modules run as long-running independent processes, then they maintain their own state, but failover becomes difficult and single points of failure cannot be recovered
Solution Approach 1:
The system implements preliminary checkpointing and state serialization mechanisms that capture module states at predefined intervals. This allows the centralized process to save recovery points before potential failures occur, enabling failover by restoring from the most recent valid checkpoint without requiring complex inter-process state transfer.
Solution Approach 2:
The patent implements a virtualization layer that creates virtual copies of module states in a centralized storage area. When a module fails, the system can quickly restore from these pre-copied states or activate backup module instances, enabling rapid failover while maintaining the appearance of continuous operation.
3Adaptability or versatility
If data is copied between modules via publication/subscription channels, then modules can communicate independently, but IO overhead increases and communication delays occur
Solution Approach 1:
The patent merges the communication infrastructure into the single process memory space, allowing modules to access shared data structures directly without serialization/deserialization overhead. Data flows through shared memory regions or global variables that all modules can access simultaneously, eliminating the packetization and network protocol overhead inherent in inter-process communication while maintaining modular architecture benefits.
Data Source
AI summary
An autonomous driving system includes a number of sensors and a number of autonomous driving modules. The autonomous driving system further includes a global store to store data generated and used by processing modules such as sensors and/or autonomous driving modules. The autonomous driving system further includes a task scheduler coupled to the sensors, the autonomous driving modules, and the global store. In response to output data generated by any one or more of processing modules, the task scheduler stores the output data in the global store. In response to a request from any of the processing modules for processing data, the task scheduler provides input data stored in the global store to the processing module. The task scheduler is executed in a single thread that is responsible for managing data stored in the global store and dispatching tasks to be performed by the processing modules.


