Centralized Scheduling for Autonomous Driving

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing autonomous driving systems face challenges with decentralized architectures, leading to inconsistencies, resource contention, and single-point failures due to multi-process models and inefficient data communication, which result in unpredictable behavior and difficulty in debugging and deploying autonomous driving modules.

Innovation Solution

A centralized scheduling system is introduced, utilizing a single-threaded task scheduler with a global store for data management and communication, eliminating the need for kernel-level modifications and enabling atomic operations, thus ensuring consistent results and easy debugging, while also decoupling core logic from IO communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a decentralized multi-process model is used for autonomous driving modules, then module independence and continuous operation are achieved, but resource contention, race conditions, and system inconsistency occur

Engineering Contradiction:
Improvemodule independenceVSAvoidsystem consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent merges multiple independent module processes into a single unified process that executes sequentially. This eliminates the multi-process architecture that causes resource contention and race conditions, while maintaining module independence through functional decomposition within the single process. The single process model ensures that only one module executes at a time, preventing concurrent access issues to shared resources.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the autonomous driving system into discrete functional modules (sensors, perception, prediction, decision, control) that are executed sequentially within a single process. Each module is implemented as a distinct function or subroutine that can be independently developed and tested, maintaining adaptability while avoiding the pitfalls of multi-process execution.

Inventive Principle:
Principle #1Segmentation

2Duration of action of stationary object

If modules run as long-running independent processes, then continuous operation is enabled, but failover becomes difficult and single points of failure emerge

Engineering Contradiction:
Improvecontinuous operationVSAvoidfailover capability
Core Design Contradiction:
Duration of action of stationary objectVSReliability

Solution Approach 1:

The patent implements dynamic module execution where modules are activated based on current system state and requirements rather than running continuously. The single process can dynamically load, execute, and unload modules as needed, enabling graceful degradation and failover. If one module fails, the system can recover by reloading or bypassing that specific module while maintaining overall continuous operation.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If a publisher-subscriber message passing model is used for inter-module communication, then module decoupling is achieved, but IO overhead and communication delay increase

Engineering Contradiction:
Improvemodule decouplingVSAvoidcommunication delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent extracts the communication overhead from the core execution path by implementing direct function-to-function calls within the single process. Modules communicate through shared memory structures and function parameters rather than network message passing, eliminating the IO overhead associated with publisher-subscriber models while maintaining logical module decoupling through clear interface definitions.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If data is copied between modules for communication, then module independence is maintained, but data transmission delay increases

Engineering Contradiction:
Improvemodule independenceVSAvoiddata transmission delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent uses selective copying where data is copied only when necessary between modules, rather than continuously copying all data. Shared memory structures allow modules to access the same data buffers without duplication, reducing memory overhead and copy operations. Critical time-sensitive data is passed by reference or pointer rather than being copied, minimizing transmission delay while maintaining module independence.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10732634B2Centralized scheduling system using event loop for operating autonomous driving vehicles
Publication Date: 2020.08.04 BAIDU USA LLC
  • US10732634B2 patent drawing
  • US10732634B2 patent drawing
  • US10732634B2 patent drawing

AI summary

An event queue is maintained to store IO events generated from a number of sensors and timer events generated for a number of autonomous driving modules. For each of the events pending in the event queue, in response to determining that the event is an IO event, the data associated with the IO event is stored in a data structure associated with the sensor in a global store. In response to determining that the event is a timer event, a worker thread associated with the timer event is launched. The worker thread executes one of the autonomous driving modules triggered or initiated the timer event. Input data is retrieved from the global store and provided to the worker thread to allow the worker thread to process the input data.