Real-Time Robotics Event Tracing via Thread Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Real-time software control systems for physical machines face challenges in tracing events during execution without data loss, as existing techniques often result in paused operations and incomplete trace event data due to memory allocation and data communication overhead.
Innovation Solution
Implementing a data structure such as a queue allocated in local memory for each real-time thread to store trace events, allowing non-real-time threads to process these events without blocking or pausing the system, ensuring that trace events are stored and analyzed in real-time without data loss, and generating event logs for debugging and optimization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If trace events are collected by allocating memory and transferring data between threads, then trace event data can be obtained, but real-time operations are blocked and data loss occurs
Solution Approach 1:
The patent segments the trace event collection system into separate producer (real-time thread) and consumer (non-real-time thread) components, with the producer writing events to a queue and the consumer reading and processing them. This segmentation allows the real-time thread to continue executing without blocking for trace event processing, eliminating data loss while maintaining real-time performance.
Solution Approach 2:
The patent introduces a queue data structure as an intermediary between the real-time thread (producer) and non-real-time thread (consumer). The queue buffers trace event data, allowing the real-time thread to write events without waiting for processing, thus preventing both data loss and real-time blocking while enabling complete trace event collection.
2Reliability
If memory allocation is performed during real-time execution, then trace events can be stored, but system timing constraints are violated
Solution Approach 1:
The patent performs memory allocation for the queue data structure before real-time execution begins, rather than during runtime. This preliminary action ensures that no memory allocation occurs during real-time threads, maintaining timing constraints while still enabling complete trace event storage through the pre-allocated queue buffer.
3Ease of operation
If data transfer between real-time and non-real-time threads is implemented, then trace events can be processed, but overhead increases and timing constraints are compromised
Solution Approach 1:
The patent extracts the trace event processing function from the real-time thread and places it in a separate non-real-time thread. The real-time thread only performs lightweight write operations to the queue, while the heavy processing workload is taken out to the non-real-time thread, minimizing overhead and maintaining real-time execution efficiency.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating event logs for trace events. The method includes receiving data representing a trigger for generating event entries of a real-time robotics control system. Each real-time thread corresponds to a non-real-time thread, and is communicatively coupled to a data structure allocated in a memory unit for the real-time thread to store event entries. Each real-time thread stores event entries into a corresponding data structure that is allocated for the real-time thread. The event entries are generated when the real-time thread is executed during real time. The stored event entries are provided to a non-real-time thread that corresponds to the real-time thread from a corresponding data structure. Each non-real-time thread processes the event entries to generate an event log for the corresponding real-time thread. The event log represents trace events occurred during operation of the real-time thread.


