Gesture Recognition Circuit for Concurrent FSMs With Low RAM Use

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing gesture recognition systems for devices like smartphones and smartwatches are limited by their ability to manage multiple finite state machine (FSM) programs concurrently, require fixed resource allocation, and are inflexible in handling different sensor inputs and resources, making it difficult to detect both known and new gestures efficiently.

Innovation Solution

A method and circuit structure that allows for multiple FSMs to run concurrently with variable data and instruction sizes, enabling flexible management of resources and sensor inputs, and storing only necessary data/resources, thus optimizing RAM usage and allowing for customizable gesture recognition programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple FSM programs are run concurrently, then gesture recognition capability is improved, but RAM usage and system complexity increase

Engineering Contradiction:
Improvegesture recognition capabilityVSAvoidRAM usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments FSM programs into fixed-size blocks (e.g., 32-byte blocks) that can be independently managed in RAM. Each FSM program is divided into state transition tables and data sections that fit into standardized memory blocks, allowing efficient packing and concurrent execution of multiple gestures without excessive RAM consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal FSM execution engine that can handle multiple different gesture recognition programs through a common architecture. The same RAM structure and execution mechanism serve all FSM programs, allowing one system to recognize multiple gesture types (swipe, tap, shake, etc.) simultaneously without requiring separate dedicated resources for each gesture.

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

2Adaptability or versatility

If fixed resource allocation is used for FSM programs, then system simplicity is maintained, but flexibility in handling different gestures is reduced

Engineering Contradiction:
Improveflexibility in handling gesturesVSAvoidresource management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource allocation where FSM programs can be loaded, unloaded, and modified at runtime. The system allows enabling/disabling specific gesture programs based on current needs, and the RAM structure supports variable-length program loading within the fixed block framework, providing both flexibility and manageability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses configurable parameters such as the number of FSM programs (N), block size (M), and state transitions per block to adapt the system to different requirements. These parameters can be adjusted to balance between gesture recognition capability and resource consumption, allowing optimization for specific application scenarios.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If dedicated FSM程序 is written for each gesture, then gesture recognition accuracy is improved, but development time and cost increase

Engineering Contradiction:
Improvegesture recognition accuracyVSAvoiddevelopment time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent uses template-based FSM program structures where common gesture patterns are predefined as reusable templates. Developers can create new gesture recognizers by copying and modifying existing templates rather than writing complete FSM programs from scratch, significantly reducing development time while maintaining recognition accuracy through the standardized structure.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent pre-defines common state transition patterns and gesture recognition logic in the FSM templates. Frequently used gesture patterns (such as threshold comparisons, timing sequences, and state transitions) are prepared in advance, allowing developers to quickly assemble custom gesture recognizers by combining these pre-prepared elements.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If single sensor input is used, then system simplicity is maintained, but gesture detection capability is limited

Engineering Contradiction:
Improvegesture detection capabilityVSAvoidsensor integration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent designs the FSM data structure to accommodate multiple sensor inputs universally. The program data structure includes fields for selecting and configuring different sensor types (accelerometer, gyroscope, magnetometer, proximity sensor), allowing the same FSM execution engine to process gestures from any combination of sensors without requiring separate processing paths.

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

Data Source

PatentUS10901516B2Gesture recognition method, corresponding circuit, device and computer program product
Publication Date: 2021.01.26 STMICROELECTRONICS SRL
  • US10901516B2 patent drawing
  • US10901516B2 patent drawing

AI summary

A programmable data processing circuit is configured for receiving sensor signals indicative of gestures for identification by the processing circuit. The processing circuit applies to the sensor signals finite state machine processing resources to provide identification output signals indicative of gestures identified as a function of the sensor signals. A plurality of finite state machine processing programs loaded into the processing circuit include a data section and an instruction section. The data section including a fixed size part specifying respective processing resources used by the programs in the plurality of finite state machine processing programs and a variable size part with respective sizes for allocating the respective processing resources used by the programs in the plurality of finite state machine processing programs. The instruction section including conditions and commands for execution by the respective processing resources used by the programs by operating on data located in the respective data sections.