Gesture Recognition Circuit for Concurrent FSMs With Low RAM Use
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Measurement precision
If dedicated FSM程序 is written for each gesture, then gesture recognition accuracy is improved, but development time and cost increase
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.
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.
4Adaptability or versatility
If single sensor input is used, then system simplicity is maintained, but gesture detection capability is limited
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.
Data Source
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.

