Real-Time Robotics Event Tracing via Thread Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetrace event data lossVSAvoidreal-time operation blocking
Core Design Contradiction:
Loss of informationVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If memory allocation is performed during real-time execution, then trace events can be stored, but system timing constraints are violated

Engineering Contradiction:
Improvereal-time timing constraint satisfactionVSAvoidtrace event data completeness
Core Design Contradiction:
ReliabilityVSLoss of information

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvetrace event processing capabilityVSAvoidreal-time execution efficiency
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20240220390A1Tracing events for a real-time robotics control system
Publication Date: 2024.07.04 INTRINSIC INNOVATION LLC
  • US20240220390A1 patent drawing
  • US20240220390A1 patent drawing
  • US20240220390A1 patent drawing

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.