A mobile device comprising a plurality of corresponding sensors
By using multiple corresponding sensors and motion processing modules in a mobile device to process samples from multiple sensors, the problem of insufficient sampling frequency and accuracy in the prior art is solved, and more efficient and lower power motion sensing is achieved.
Patent Information
- Application Number
- CN202080101785.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-22
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2040-06-22
AI Technical Summary
When existing mobile devices sense different types of motion, the sampling frequency and accuracy are insufficient, resulting in high power consumption and inability to meet the needs of future mobile sensing applications.
Using multiple corresponding sensors, these sensors are configured through software architecture/algorithm to provide sensor measurements with higher sampling frequency and accuracy. The motion processing module processes samples from multiple sensors, providing motion samples with higher signal to noise ratio.
It achieves higher sampling frequency and accuracy, reduces power consumption, provides higher degrees of freedom and lower power consumption, and can meet the needs of future mobile sensing applications.
Smart Images

Figure CN115917471B_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to sensing motion of smart devices, and more particularly to a sensor system that uses multiple corresponding sensors to provide different types of motion signals. Background Art
[0002] Mobile computing devices, especially smartphones, run software programs that sense different types of motion. These devices typically use motion sensors, such as inertial measurement unit (IMU) sensors, which include a variety of different types of sensors, such as one or more accelerometers, one or more gyroscopes, one or more magnetometers, and other types of sensors, such as temperature sensors and pressure sensors. The motion signals sensed by the IMU sensor are provided as operating system (OS) system services to different mobile sensing applications running on the mobile device. The OS can also use these motion signals to selectively activate and deactivate hardware and / or software elements in the mobile device. The motion signals can also be directly accessed by applications running on the mobile device through an application program interface (API) (e.g., a sensor hub API). Exemplary mobile applications perform operations such as location based services (LBS), motion recognition, and gesture recognition. Exemplary OS services include IMU power-on, IMU-triggered screen power saving, and IMU-based augmented reality (AR) or location system services. The sensor hub API provides access to a hardware sensor hub that includes a low-power processor and memory for performing low-level computations based on sensed motion signals, such as when the main processor in a mobile device is in sleep mode. Examples of such computations include step detection, step counting, fall detection, and device activation gesture detection. In response to an application's request, the sensor hub can be used to accumulate multiple measurements while the main processor is in sleep mode and provide the accumulated measurements to the requesting application when the mobile device wakes up from sleep mode. Summary of the invention
[0003] The following examples describe an apparatus and method using a sensor module, wherein the sensor module is coupled to a plurality of corresponding sensors disposed at different locations of the apparatus. The sensor module includes a software architecture / algorithm that can configure the plurality of corresponding sensors to provide sensor measurements with a higher sampling frequency and / or improved accuracy. In addition, the sensor module provides sensor measurements with more degrees of freedom and / or lower power consumption than a sensor module using a single sensor.
[0004] These examples are included in the features of the independent claims. Further embodiments are apparent from the dependent claims, the description and the drawings.
[0005] According to a first aspect of the present invention, a mobile device includes a first sensor and a second sensor installed at different positions, respectively. The first sensor and the second sensor provide a first sample and a second sample corresponding to a first type of motion. A motion processing module in the mobile device obtains the first motion sample and the second motion sample from the first motion sensor and the second motion sensor; and processes the first motion sample and the second motion sample to provide a third motion sample. The motion processing module provides the third motion sample to the mobile device, so that the mobile device performs an action in response to the third motion sample.
[0006] According to the first aspect, in a first implementation of the mobile device, the first motion sensor and the second motion sensor include a first accelerometer and a second accelerometer, respectively, and the first accelerometer and the second accelerometer provide corresponding first accelerometer samples and second linear acceleration samples as the first motion sample and the second motion sample, respectively. The first position and the second position are different positions relative to an axis of the mobile device, respectively. The motion processing module is used to process the first linear acceleration sample and the second linear acceleration sample to calculate an angular acceleration measurement around a pivot point on the axis as the third motion sample. The motion processing module is also used to provide the third motion sample to the mobile device to activate the mobile device.
[0007] According to the first aspect, in a second implementation of the mobile device, at least one of the first motion sensor and the second motion sensor further comprises a gyroscope sensor for providing angular acceleration samples. The motion processing module is configured to provide the angular acceleration measurement based on the third motion samples in a first mode, and to provide the angular acceleration measurement based on the angular acceleration samples in a second mode.
[0008] According to the first aspect, in a third implementation manner of the mobile device, the motion processing module is used to: when operating in the first mode, turn off the gyroscope sensor.
[0009] In a fourth implementation of the mobile device, the mobile device further comprises: an application program interface (API) configured to run in the motion processing module. The API responds to a first request type to provide the first motion sample or the second motion sample, and responds to a second request type to provide the first motion sample and the second motion sample.
[0010] In a fifth implementation of the mobile device, the motion processing module is used to combine the first motion sample and the second motion sample to provide a sample indicating the first type of motion and having a signal-to-noise ratio (SNR) greater than the SNR of the first motion sample or the second motion sample as the third motion sample.
[0011] In a sixth implementation of the mobile device, the motion processing module further includes: a selection circuit coupled to the first motion sensor and the second motion sensor to selectively provide the first motion sample or the second motion sample in response to a control signal.
[0012] In a seventh implementation of the mobile device, the first motion sensor and the second motion sensor are respectively used to provide each sample of the first motion sample and the second motion sample at a first sampling rate. The motion processing module is used to provide the control signal to the selection circuit to repeatedly select the first motion sample and the second motion sample from the first motion sensor and the second motion sensor at different times, so as to provide motion samples indicating the first type of motion and having a sampling rate greater than the first sampling rate as the third motion samples.
[0013] According to a second aspect, a method for sensing motion of a mobile device includes: obtaining a first motion sample indicating a first type of motion from a first motion sensor installed at a first position of the mobile device; obtaining a second motion sample indicating the first type of motion from a second motion sensor installed at a second different position of the mobile device. The method includes: processing the first motion sample and the second motion sample to provide a third motion sample; providing the third motion sample to the mobile device so that the mobile device performs an action in response to the third motion sample.
[0014] According to the second aspect, in a first implementation of the method, the first motion sensor and the second motion sensor include a first accelerometer and a second accelerometer, the first accelerometer and the second accelerometer are used to provide corresponding first linear acceleration samples and second linear acceleration samples as the first motion samples and the second motion samples; the first position and the second position are different positions relative to the axis of the mobile device, respectively. According to the second aspect, the method further includes: processing the first linear acceleration samples and the second linear acceleration samples to calculate an angular acceleration measurement around a pivot point on the axis as the third motion sample. The method further includes: providing the third motion sample to the mobile device to activate the mobile device.
[0015] According to the second aspect, in a second implementation of the method, at least one of the first motion sensor and the second motion sensor further comprises a gyroscope sensor for providing angular acceleration samples. According to the second aspect, the method operates in two modes. The method further comprises: providing the angular acceleration measurement based on the third motion samples in a first mode; and providing the angular acceleration measurement based on the angular acceleration samples in a second mode.
[0016] According to the second aspect, in a third implementation manner of the method, the method further includes: when operating in the first mode, turning off the gyroscope sensor.
[0017] According to the second aspect, in a fourth implementation of the method, the method further includes: receiving from an application program interface (API) for running on the motion processing module. The API is used to receive a first request to provide the first motion sample or the second motion sample, and receive a second request to provide the first motion sample and the second motion sample.
[0018] According to the second aspect, in a fifth implementation of the method, the method further includes: combining the first motion sample and the second motion sample to provide a sample indicating the first type of motion and having a signal-to-noise ratio (SNR) greater than the SNR of the first motion sample or the second motion sample as the third motion sample.
[0019] According to the second aspect, in a sixth implementation manner of the method, the method further includes: selectively providing the first motion sample or the second motion sample in response to a control signal.
[0020] According to the second aspect, in a seventh implementation of the method, the first motion sensor and the second motion sensor are used to provide the corresponding first motion sample and the second motion sample. The method further includes: repeatedly selecting the first motion sample and the second motion sample from the first motion sensor and the second motion sensor at different moments, respectively, to provide a motion sample indicating the first type of motion and having a sampling rate greater than the first sampling rate as the third motion sample.
[0021] According to a third aspect, a device for sensing motion of a mobile device. The device comprises: a first acquisition module, configured to acquire a first motion sample indicating a first type of motion at a first position of the mobile device; a second acquisition module, configured to acquire a second motion sample indicating the first type of motion at a second different position of the mobile device. The device further comprises: a first processing module, configured to process the first motion sample and the second motion sample to provide a third motion sample; and a first providing module, configured to provide the third motion sample to the mobile device so that the mobile device performs an action in response to the third motion sample.
[0022] According to the third aspect, in a first implementation of the device, the first motion sample and the second motion sample include a first linear acceleration sample and a second linear acceleration sample, and the first position and the second position are different positions relative to an axis of the mobile device. The device further includes: a second processing module for processing the first linear acceleration sample and the second linear acceleration sample to calculate an angular acceleration measurement around a pivot point on the axis as the third motion sample; and a second providing module for providing the third motion sample to the mobile device to activate the mobile device.
[0023] According to the third aspect, in a second implementation of the device, the first processing module includes: a combination module, used to combine the first motion sample and the second motion sample to provide a sample indicating the first type of motion and having a signal-to-noise ratio (SNR) greater than the SNR of the first motion sample or the second motion sample as the third motion sample.
[0024] According to the third aspect, in a third implementation of the device, the first motion sensor and the second motion sensor provide the corresponding first motion samples and second motion samples at a first sampling rate; the device also includes: a selection module, used to repeatedly select the first motion samples and the second motion samples from the first motion sensor and the second motion sensor at different moments, so as to provide motion samples indicating the first type of motion and with a sampling rate greater than the first sampling rate as the third motion samples.
[0025] This summary is provided to introduce some concepts in a simplified form, which will be further described in the detailed description below. This summary is neither intended to identify key features or essential features of the claimed subject matter nor to be used to help determine the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all of the shortcomings noted in the background technology. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The various aspects of the present invention are illustrated by way of example and not limitation in the accompanying figures in which like references indicate similar elements.
[0027] Figure 1 is a perspective view of a smart phone mobile device provided by an embodiment.
[0028] Figure 2 A block diagram of a mobile device provided by an embodiment.
[0029] Figure 3 is a block diagram of a motion sensor provided by an embodiment.
[0030] Figure 4 is a block diagram of a motion processing module provided by an embodiment.
[0031] Figure 5 An exemplary configuration of two motion sensors provided by an embodiment is shown.
[0032] Figure 6 The present invention is a flow chart of a method for identifying a wake-up motion according to signals provided by two accelerometers provided by an embodiment.
[0033] Fig. 7A , Figure 7B , Figure 7C , Fig.7D , Fig. 7E and Figure 7G The present invention is a circuit board layout diagram of a mobile device for positioning two or more motion sensors provided by an embodiment.
[0034] Figure 7F is a perspective view of a stacked motion sensor provided by an embodiment.
[0035] Figure 8 The present invention is a flowchart of a method implemented by a motion processing module according to an embodiment.
[0036] Fig. 9 is a flow chart of a method for processing samples from a plurality of motion sensors provided by an embodiment.
[0037] Fig.10 is a block diagram of a computing device provided by an embodiment. DETAILED DESCRIPTION
[0038] The embodiments described below implement a motion sensor for a mobile device including multiple corresponding motion sensors. The described embodiments can increase functionality and / or provide other sensing functions by combining signals from multiple corresponding motion sensors. In addition, various embodiments describe software algorithms that are backward compatible with existing mobile device sensor modules that use a single motion sensor.
[0039] As used herein, the terms "corresponding motion sensor" and "corresponding sensor" refer to a plurality of sensors that provide samples that can be used to measure the same type of motion. The corresponding motion sensors can be homogeneous sensors (e.g., all linear accelerometers) or can be different types of sensors that provide samples that can be used to measure the same type of motion. For example, as described below, a magnetometer can be used to measure linear acceleration. Thus, an accelerometer and a magnetometer can be corresponding motion sensors.
[0040] One embodiment includes a mobile device, such as but not limited to a smartphone, a tablet, an Internet of things (IoT) device, and / or a wearable device, such as augmented reality (AR) glasses, a smart watch, a fall detector, or a health monitor, all of which have a sensor module including or coupled to a plurality of corresponding sensors. The plurality of corresponding sensors include multiple instances of the same type of motion sensor located at different physical locations of the mobile device. The exemplary sensor module structure includes a software architecture / algorithm that can configure the plurality of corresponding sensors to provide sensor measurements with higher sampling frequency and / or improved accuracy. In addition, the sensor measurements provided by the sensor module have more degrees of freedom and / or lower power consumption than existing sensor modules.
[0041] It should be understood that although illustrative implementations of one or more embodiments are provided below, Figures 1 to 10The disclosed systems, methods, and / or devices described may be implemented using any number of currently known or unavailable technologies. The present invention should in no way be limited to the illustrative implementations, drawings, and techniques described below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims and their full scope of equivalents.
[0042] In the following description, reference is made to the accompanying drawings which form a part of this document, which illustrate by way of illustration specific embodiments that may be implemented. The description of these embodiments is sufficiently detailed to enable those skilled in the art to practice the subject matter of the present invention, and it should be understood that other embodiments may be used and structural, logical and electrical changes may be made without departing from the scope of the present invention. Therefore, the embodiments described below are not to be construed as limiting, and the scope of the present invention is defined by the appended claims.
[0043] Existing sensor hub hardware configurations and APIs may not be sufficient for future mobile sensing applications. These future mobile sensing applications may use deep learning (DL) and artificial intelligence (AI) technologies, which may place increasingly higher demands on sensors. These applications may also use more sensory information than existing sensing applications can provide. These future applications may perform motion sensing in a different way than that provided by existing sensor hubs. For example, traffic recognition applications can identify specific high-frequency features of vehicles through high-frequency sampling of motion signals. Another application will explicitly specify a signal-to-noise ratio (SNR) that is greater than the SNR that can be provided by existing sensor hubs and IMUs.
[0044] Existing mobile devices usually use a single sensor solution, such as a nine-axis IMU sensor. Existing nine-axis IMU sensors (e.g., The MPU-9250 nine-axis IMU provided by Inc includes a group of three accelerometers, a group of three gyroscope sensors, and a group of three magnetometers. Each axis corresponds to the degree of freedom (DOF) of the corresponding sensor. The three sensors in each group are configured to be perpendicular to each other to provide 3-DOF acceleration signals, 3-DOF gyroscope signals, and 3-DOF magnetometer signals. However, this single IMU architecture may not be able to achieve the sensing functions used in the above-mentioned future applications.
[0045] Although the following embodiments use a sensor module coupled to multiple motion sensors (e.g., multiple nine-axis IMUs), it is contemplated that the sensor module may be coupled to other sensors, such as one or more temperature sensors and / or pressure sensors, and / or a global navigation satellite system (GNSS) sensor. In addition, in addition to the nine-axis IMU, the mobile device may use other types of motion sensors, such as one or more single-axis or multi-axis accelerometers or one or more six-axis IMUs, each of which includes a three-axis accelerometer and a three-axis gyroscope.
[0046] Figure 1 is a perspective view of a smartphone mobile device 100 provided by an embodiment. Figure 1 1 shows exemplary directions of the X-axis, Y-axis, and Z-axis of a smartphone mobile device 100 (hereinafter referred to as mobile device 100). Mobile device 100 is an exemplary mobile device. Other exemplary mobile devices include, but are not limited to, tablet computers, personal digital assistants (PDAs), wearable devices, or IoT devices.
[0047] Figure 2 1 is a block diagram of a mobile device 100 provided in one embodiment. The mobile device 100 may be used as a digital wireless telephone station. The mobile device 100 includes a display 210 controlled by a display driver 212 coupled to a processor 202. The display 210 is used as an output device for applications running on the processor 202. The mobile device 100 also includes a touch sensor 206 overlying the display 210 coupled to the processor 202 via a sensing control circuit 208. The touch sensor is an input mechanism for the mobile device 100. It is contemplated that other user interface elements may be used, such as one or more physical switches, a trackball, or a joystick (none of which are shown in FIG. 1 ). Figure 2 The mobile device 100 also includes a camera 222 coupled to the processor 202.
[0048] The mobile device 100 includes a microphone 214 and a speaker 216, both of which can be used as other user interface elements for audio input (e.g., audio commands) and output. The microphone 214 and the speaker 216 are coupled to a voice coder / decoder (vocoder) 218, which is coupled to the processor 202 to implement telephone functions in the mobile device 100. For digital wireless communication, the mobile device 100 includes a cellular / Wi-Fi transceiver 224. The transceiver 224 is coupled to the processor 202 and the antenna 226 to form a cellular connection and / or a Wi-Fi connection with a base station, access point, or other device to access websites on the Internet, etc.
[0049] Processor 202 is also coupled to memory 204, which may include read-only memory (ROM), flash memory and / or random access memory (RAM). Memory 204 includes program code used by the OS and any application (App) running on mobile device 100 and data storage used by these Apps.
[0050] Finally, the mobile device 100 includes a motion processing module 230 that is coupled to a plurality of IMUs 232 and 234 located at different locations on the mobile device 100. Although the mobile device 100 includes two motion sensor IMUs 232 and 234, it is contemplated that the mobile device 100 may include more than two motion sensors, as described below. FIG. 7A to FIG. 7G As described. The motion processing module 230 includes processing circuits that provide functionality comparable to that of existing sensor hubs. In fact, as described below, the motion processing module 230 is backward compatible with existing sensor hubs. The motion processing module 230 may include a microcontroller, coprocessor, or digital signal processor (DSP) that consumes less power than the processor 202. Similar to the sensor hub, the motion processing module 230 may be separate from the processor 202 and may include processing circuits for performing low-level calculations at low power when the processor 202 and other hardware elements in the mobile device 100 are in sleep mode. Optionally, the motion processing module may be implemented by software running on the processor 202 or an accelerator, sub-processor, or other processing logic (not shown) coupled to the processor 202. The motion processing module 230 is coupled to an interrupt input of the processor 202 to send a wake-up signal to the processor 202 when the motion processing module 230 detects motion of the mobile device 100 corresponding to a predetermined wake-up gesture.
[0051] Figure 32 is a block diagram of an IMU 232 provided by an embodiment. IMU 234 may have the same or similar configuration. IMU 232 includes a three-axis accelerometer 302, a three-axis gyroscope 304, and a three-axis magnetometer 306. The three-axis accelerometer 302 includes an X-axis accelerometer 312, a Y-axis accelerometer 316, and a Z-axis accelerometer 320. The three accelerometers 312, 316, and 320 are coupled to corresponding analog to digital converters (ADCs) 314, 318, and 322. The three-axis gyroscope includes an X-axis gyroscope 324 coupled to an ADC 326, a Y-axis gyroscope 328 coupled to an ADC 330, and a Z-axis gyroscope 332 coupled to an ADC 334. The three-axis magnetometer includes an X-axis magnetometer 336 coupled to an ADC 338, a Y-axis magnetometer 340 coupled to an ADC 342, and a Z-axis magnetometer 344 coupled to an ADC 346. The IMU 232 also includes a signal conditioning circuit 308 and processing logic, a buffer, and an interface 310. The signal conditioning circuit 308 filters the output signals provided by the ADCs 314, 318, 322, 326, 330, 334, 338, 342, and 346 to reduce noise and aliasing distortion. The signal conditioning circuit 308 also normalizes the output data provided by the ADCs 314, 318, 322, 326, 330, 334, 338, 342, and 346 to compensate for differences in the output ranges of the ADCs 314, 318, 322, 326, 330, 334, 338, 342, and 346. The processing logic, buffer and interface 310 includes buffer registers for holding the results provided by the three-axis accelerometer 302, the three-axis gyroscope 304 and / or the three-axis magnetometer 306 until the motion processing module 230 requests a sample or a sequence of samples. The processing logic, buffer and interface 310 also includes a bus interface, such as, but not limited to, a universal asynchronous receiver-transmitter (UART), an inter-integrated circuit (I2C) interface and / or a synchronous input-output (SIO) interface. The control bus 350 couples the processing logic, buffer and interface 310 to each of the accelerometers 312, 316 and 320, each of the gyroscopes 324, 328 and 332, and each of the magnetometers 336, 340 and 344, and to the signal conditioning circuit 308 to configure the IMU 232 as specified by the motion processing module 230. The bus 350 may be an I2C bus.
[0052] Figure 4is a functional block diagram of a motion processing module 230 provided by an embodiment. In addition to the functions of the sensor hub, the motion processing module 230 also includes other functions. Similar to the sensor hub, the motion processing module 230 is implemented using a low-power microcontroller, accelerator, coprocessor, or DSP separate from the processor 202 in the mobile device 100. However, it is contemplated that the functions performed by the motion processing module 230 can be performed by the processor 202.
[0053] The motion processing module 230 is coupled to two IMUs via multiplexers 418, 420, and 422: a first IMU (e.g., Figure 3 232) and a second IMU (e.g., IMU 234). Multiplexers 418, 420, and 422 are used to select samples of different sensing signals from the IMU 232 or the IMU 234 in response to a control signal from the motion processing module. The multiplexer 418 is used to provide a control signal to the three-axis accelerometer 302 of the IMU 232 and / or the three-axis accelerometer 432 of the IMU 234 and select acceleration samples therefrom. The multiplexer 420 is used to provide a control signal to the three-axis gyroscope 304 of the IMU 232 and / or the three-axis gyroscope 434 of the IMU 234 and select gyroscope samples therefrom. The multiplexer 422 is used to provide a control signal to the three-axis magnetometer 306 of the IMU 232 and / or the three-axis magnetometer 436 of the IMU 234 and select magnetometer samples therefrom. Although Figure 4 The motion processing module 230 is shown coupled to two nine-axis IMUs, but it is contemplated that the motion processing module 230 may be coupled to three or more IMUs, and that the IMUs may include fewer sensor components (e.g., a three-axis accelerometer or a six-axis IMU) or more sensor components (e.g., an IMU with a pressure sensor and / or a temperature sensor).
[0054] refer to Figure 4, accesses the motion processing module 230 through an API call, which requests sensor measurements in operation 402. The motion processing module 230 returns the results of the sensor measurements through the API in operation 458 or operation 456. As described above, the motion processing module 230 is backward compatible with existing sensor APIs (e.g., legacy sensor hub APIs). However, the motion processing module 230 provides other measurements based on the sensed motion. These other measurements are referred to as extended results in this article. In operation 402, the motion processing module 230 receives an API request and determines whether the API request is a legacy sensor request or an extended sensor request. Operation 404 processes legacy sensor requests, while operation 454 processes extended sensor requests. Based on operation 404, the motion processing module 230 obtains sensor control values from the request in operation 406. The sensor control values identify the sensor type (e.g., accelerometer, gyroscope and / or magnetometer) and include parameters used for one or more sensed measurements. These parameters include, for example, sampling frequency (F S ) and the minimum SNR. Operation 408 determines the requested F s Is it greater than the maximum sampling frequency F of the requested sensor type? MAX , or whether the requested minimum SNR is greater than the requested maximum SNR of the sensor, i.e., SNR MAX .
[0055] When operation 408 determines the requested F s Greater than F MAX , operation 412 increases the sampling frequency. The frequency increase operation 412 increases the sampling frequency by controlling one of the multiplexers 418, 420, and / or 422 to sample the requested sensor type in different IMUs at different times. For example, when the API request is for an accelerometer measurement, the frequency increase operation 412 controls the multiplexer 418 to alternately select samples from the accelerometers 302 and 432, thereby effectively doubling the sampling frequency relative to the sampled signal accelerometer. Operation 412 also controls the clock signals applied to the accelerometers 302 and 432 so that they are 180 degrees out of phase. When the motion processing module 230 is coupled to more than two IMUs, operation 412 can repeatedly select samples from multiple IMUs in a polling schedule using appropriately phased clock signals to achieve a maximum sampling frequency equal to the sampling frequency of a single sensor multiplied by the number of IMUs.
[0056] When operation 408 determines that the requested SNR is greater than SNR MAX, operation 414 improves the SNR of the sampled sensor. Operation 414 simultaneously acquires samples from multiple sensors and averages the samples. Averaging paired samples increases the SNR of the measurement, for example, by at least 6 dB. Averaging more samples acquired in parallel further increases the SNR of the measurement. For example, in order to increase the SNR of the accelerometer measurement, operation 414 can control the accelerometer 302 and the accelerometer 432 to have the same sampling frequency and sampling phase. Each accelerometer 302 and 432 stores the latest sample in a register. Then, operation 414 controls the multiplexer 418 to continuously acquire the most recently stored samples from the accelerometers 302 and 432, and averages the acquired samples to obtain samples with increased SNR. In an embodiment where the motion processing module 230 is coupled to four IMUs, paired IMUs can be activated, and operations 412 and 414 can be performed together to achieve a sampling frequency greater than F. MAX , SNR is greater than SNR MAX .
[0057] When operation 408 determines the requested F S No more than F MAX and the requested SNR is not greater than SNR MAX When the request is received, operation 410 activates an IMU, such as IMU 232, and processes the request in the same manner as the traditional sensor hub API. The result of the traditional sensor request is returned to operation 404 via bus 416, and operation 404 returns the result to the requesting application via operation 458.
[0058] When operation 402 determines that the API request is an extended sensor request, the request is processed by operation 454. Operation 454 determines the configuration of the plurality of IMUs according to the parameters of the request. Operation 456 configures the first IMU 232 and the IMU 234 according to the parameters using bus 416. An exemplary configuration may select a group of corresponding sensors from the IMUs 232 and 234 for sampling, configure their clock signals and clock signal phases, and configure multiplexers 418, 420, and / or 422 to provide samples from the selected sensors at times determined according to the parameters. The parameters of the extended sensor request may combine samples from the group of corresponding sensors to sense motion that cannot be sensed by one type of sensor alone.
[0059] The sensor fusion operation 460 processes the combination of different sets of sensor samples from different IMUs. An exemplary sensor fusion operation combines data from an accelerometer (e.g., accelerometer 302) with simultaneous data from a gyroscope (e.g., gyroscope 434) to count the number of steps of a user of the mobile device 100 and distinguish it from a user riding a bicycle. A gyroscope measures angular acceleration, while an accelerometer measures linear acceleration. The angular acceleration of a cyclist is similar to that of a walker. The linear acceleration of a cyclist is different from that of a walker due to the impact force of the walker's feet. The exemplary algorithm uses an accelerometer to detect the impact force of the walker's feet when walking, and uses a gyroscope to detect angular acceleration. Therefore, the fusion of these two types of sensors allows the motion processing module to distinguish between riding and walking, and provide the number of steps of a walker. Another exemplary sensor fusion operation can combine data from an accelerometer with data from a gyroscope to determine whether the sensed motion meets the profile of a user falling. In this case, the gyroscope can detect the angular acceleration of the pivot point corresponding to the user's feet or knees, while the accelerometer detects that the impact force is greater than a threshold. The threshold can be used to distinguish between the impact force of walking or running and the larger impact force of the user falling.
[0060] As described below, some sensor measurements use the difference between samples provided by the corresponding sensor. Operation 462 calculates the difference between the acceleration samples provided by accelerometers 302 and 432, and operation 464 calculates the difference between the gyroscope samples provided by gyroscopes 304 and 434. Similar operations can calculate the difference between the magnetometer samples provided by magnetometers 306 and 436, but are not shown in the figure. Operations 462 and 464 provide these difference samples to an additional DOF calculator 468. As described below, the linear acceleration samples provided by the two accelerometers 302 and 432 can be combined to generate angular acceleration samples. This is an additional DOF that cannot be calculated from a single linear accelerator. Similar combinations of two or more magnetometers can also be used to calculate angular acceleration metrics. In addition, the combination of two or more gyroscope signals can be used to calculate centrifugal acceleration or provide Coriolis measurements. The result of the extended sensor request is provided to operation 454 to be returned to the requesting party application through operation 456.
[0061] As described above, samples from two corresponding linear accelerometers can be used to calculate an angular acceleration metric. This example can be used to determine when to wake up a mobile device 100 that is in a sleeping state. Many mobile devices are used to perform these actions when gestures corresponding to predetermined actions are detected. One such gesture is a wake-up gesture, in which a user moves the mobile device 100 from a horizontal position to a vertical position to view a display. The mobile device 100 can sense this motion using a sensor hub, so that the sensor hub sends a wake-up interrupt to the main processor in the mobile device 100 to wake the mobile device 100 from a sleeping state. However, to sense the wake-up gesture, the sensor hub is always powered on; the sensor hub cannot enter a sleeping state. Mobile devices typically use a gyroscope of an IMU to detect angular acceleration. The operating power of a gyroscope is typically used more than other sensors in an IMU. For example, a gyroscope may use ten times the power of an accelerometer. Therefore, using two linear accelerometers to calculate angular acceleration values greatly saves power for the mobile device 100. Figure 5 and Figure 6 A method is described for computing an angular acceleration metric from linear acceleration samples acquired from two separate accelerometers during a wake-up gesture.
[0062] Figure 5 An exemplary configuration of IMUs 232 and 234 provided by one embodiment is shown. Figure 2 The IMUs 232 and 234 shown in FIG. 5 are arranged along the r-axis 504 (eg, corresponding to Figure 1 504) are arranged at different positions. During the wake-up gesture, when the mobile device 100 is rotated from the horizontal position to the vertical position, the accelerometers 302 and 432 of the IMUs 232 and 234 installed at different positions along the r-axis 504 rotate around the pivot point 510. This causes both the accelerometers 302 and 432 to generate acceleration in the direction of the t-axis 502. In this example, the accelerometers 302 and 432 are both installed on the mobile device 100, and the pivot point is the user's elbow. Since the accelerometer 432 is farther away from the pivot point 510 than the accelerometer 302, the accelerometer 432 generates a larger acceleration during the wake-up gesture.
[0063] In the following, α represents angular acceleration. From the samples provided by accelerometers 302 and 432, two projections of α along the r-axis (e.g., radial component) and the t-axis (e.g., tangential component) are known. The value of α can be calculated based on these values and the known separation between the two accelerometers 302 and 432. The angular velocity ω can be calculated by combining the acceleration values of the r-axis, and the angular acceleration α can be calculated by combining the acceleration values of the t-axis. Figure 5 As shown, the r-axis acceleration generated by the accelerometer 302 is α r1, the t-axis acceleration generated by the accelerometer 432 is α r2 The radial acceleration measured by accelerometer 302 is given by equation (1), while the radial acceleration measured by accelerometer 432 is given by equation (2).
[0064] a r1 =ω 2 R1 (1)
[0065] α r2 =ω 2 R2 (2)
[0066] The first step in the process is to take the difference between the two measurements, as shown in equation (3).
[0067] α r1 -α r2 =ω 2 (R1-R2)=ω 2 D (3)
[0068] Where D = R1-R2 is the fixed interval between accelerometers 302 and 432. According to this equation, the magnitude of the angular velocity ω can be determined as shown in equation (4).
[0069]
[0070] Similarly, the tangential acceleration (eg, t-axis acceleration) measured by accelerometers 302 and 432 is given by equations (5) and (6).
[0071] α t1 =αR1 5)
[0072] α t2 =αR2 6)
[0073] The difference between the two measurements is given by equation (7).
[0074] α t1 -α t2 =α(R2-R1)=αD 7)
[0075] Therefore, the angular acceleration α is given by equation (8).
[0076]
[0077] In addition, since the two IMUs are mounted at known locations on the mobile device 100, the distance R1-R2 is known. The value of R1 can be calculated based on the known distance and the relative values of the tangential accelerations of the accelerometers 302 and 432. The value of R1 can be used to determine whether the angular acceleration is around the pivot point 510 corresponding to the user's elbow, or around some other movement indicating that the device should wake up. A larger value of R1 may correspond to a pivot point of the user's shoulder or leg, which may not indicate that the device should wake up. R1 can also indicate a pivot point shorter than the user's elbow, which is a pivot point sensed due to vibration of the mobile device 100 when it is placed on a table, which may also not indicate that the device should wake up. The wake-up gesture is based on the movement that occurs when the user picks up the mobile device to view the screen. In this case, the elbow pivot point and an angular acceleration greater than the threshold indicate a wake-up gesture. R1 values less than the forearm length can be ignored, and any larger value of R1 can be used in a health algorithm to calculate the number of steps of the user.
[0078] Figure 6 6 is a flowchart of a method 600 for identifying a wake-up motion based on signals provided by the accelerometers 302 and 432 of two IMUs 232 and 234, respectively, according to an embodiment. When the mobile device 100 enters a sleep state, operation 602 is performed. This operation turns on the accelerometers 302 and 432 and turns off the gyroscopes 304 and 434. As described above, the gyroscopes 304 and 434 consume approximately ten times the power of the accelerometers 302 and 432. In operation 604, the method 600 obtains samples from the accelerometers 302 and 432, and in operation 606, the method calculates angular acceleration based on the accelerometer samples, as described above in conjunction with equations (1) to (7). Operation 608 determines whether the measured angular acceleration is greater than an activation threshold. In one embodiment, any angular acceleration greater than the activation threshold activates the mobile device 100 in operation 612. Optionally, as shown in dashed operation 610, method 600 can also calculate the value of R1 and compare the calculated value with the user's forearm length. Operation 610 can calculate R1 and compare it with a range of values covering the variation of forearm length in the general population. Optionally, R1 can be compared with a range of forearm lengths determined for a specific user based on data provided by the user (e.g., the user's height). In this optional implementation, when the measured angular acceleration is greater than a threshold and the radius of the acceleration corresponds to the user's forearm length, the mobile device 100 is activated.
[0079] Two separate magnetometers can be used instead of two accelerometers to detect the wake-up gesture. In this case, the two magnetometers produce different rates of change of magnetic flux as the mobile device rotates around the pivot point. An analysis similar to the one above can be used to convert the different magnetic flux readings into angular acceleration measurements.
[0080] FIG. 7A to FIG. 7G An embodiment provides a circuit board layout diagram of a mobile device for positioning two or more IMUs. FIG. 7A to FIG. 7G Describes that multiple sensors are aligned on or parallel to different axes of a mobile device, e.g. Figure 1 The X-axis, Y-axis and Z-axis shown in FIG. FIG. 7A to FIG. 7G Different positioning of multiple sensors is shown to measure multiple different types of motion at multiple DOF. The alignment of the multiple sensors with a specific axis of the mobile device is not as important as the spacing of the multiple sensors and their orientation relative to the mobile device. Using the known orientation and spacing of the multiple motion sensors, Figure 2 The motion sensing module 230 and / or the processor 202 shown in FIG. 2 can be used to determine whether the provided motion sample indicates a target motion of the mobile device. As described above, the target motion can include, but is not limited to, a wake-up motion, a walking motion, a riding motion, and / or a falling motion.
[0081] 7A to 7C as well as Figure 7G The right side portion is the circuit board substrate of the mobile device 100. Figure 1 FIG. 1 is a front view of the mobile device 100 in the same direction as shown in FIG. 7A to 7C as well as Figure 7G In the right portion of the diagram, the X-axis is a horizontal line passing through the center of the substrate along the short front axis or width axis, the Y-axis is a vertical line passing through the center of the substrate along the long front axis or height axis, and the Z-axis is a line passing through the center of the substrate and coming out of the page along the depth axis. Fig.7D , Fig. 7E as well as Figure 7G The left side portion of FIG. shows a side view of the substrate. Fig.7D , Fig. 7E as well as Figure 7G In the left portion of the diagram, the X-axis is the line through the center of the substrate and out of the page, the Y-axis is the vertical line through the center of the substrate, and the Z-axis is the horizontal line through the center of the substrate.
[0082] Fig. 7A is a front view of an exemplary layout of substrate 700, wherein IMUs 232 and 234 are arranged parallel to Figure 1 The X-axis of the mobile device 100 is shown in FIG. 706 . FIG. 7A to FIG. 7G The embodiment shown in shows the IMUs 232 and 234 mounted on a circuit board substrate, but other embodiments may mount one or both of the IMUs 232 and 234 on a housing (not shown) or other component of the mobile device 100. Fig. 7A The IMUs 232 and 234 shown in FIG. 1 can be replaced with simple 1-DOF accelerometers to detect the surrounding Figure 1 The mobile device 100 shown in FIG. 1 is a pivot point on the X-axis or a pivot point parallel to the Figure 1 In addition to IMU 232 and 234, Fig. 7A , the processor 202 and the motion processing module 230 are also mounted on a substrate (e.g., a circuit board) 700. The substrate 700 includes other integrated circuit devices 704, a set of connector plugs 708 on a terminal strip 710 for coupling the substrate 700 to the touch sensor 206 and the display 210. The substrate 700 also includes a mounting member 712 for connecting the substrate 700 to a housing.
[0083] Figure 7B 2 is a front view of a substrate 720 including the above-mentioned components 202, 230, 704, 708, 710 and 712. Therefore, these components are no longer combined. Figure 7B In addition, the substrate 720 includes a Figure 1 The two IMUs 232 and 234 are arranged along the axis 706′ of the Y axis of the mobile device 100 shown in FIG. Figure 6 As described above, the angular acceleration of the mobile device 100 about a pivot point on the Y-axis of the mobile device 100 may be measured using the accelerometers 302 and 432 of the respective IMUs 232 and 234 .
[0084] Figure 7C 7 is a front view of a layout of a substrate 730 in which the IMUs 232 and 234 are arranged so that their respective accelerometers 302 and 432 can be used to sense motion along both the X-axis and the Y-axis. The IMUs 232 and 234 are arranged at angles to both the X-axis and the Y-axis. Accordingly, when the mobile device 100 is rotated about one or both of the X-axis and the Y-axis, both accelerometers produce different levels of acceleration. Therefore, the samples provided by the accelerometers 302 and 432 are related to both the X-axis and the Y-axis. Figure 7C The layout in FIG. 1 includes all of the above components 202, 230, 704, 708, 710, and 712. Therefore, these components are no longer combined Figure 7C describe.
[0085] Fig.7D is a side view of the layout of the substrate 740, wherein two IMUs are used to surround the substrate 740 parallel to Figure 1 The side view shows that IMUs 232 and 234 are disposed on opposite sides of substrate 740 along axis 742 as points on axis 742 of the Z-axis of mobile device 100 shown in FIG. Fig.7D Including the above combination Fig. 7A 2, 3, 4, 5, 6, 7, 8, 9, 10, and 11 of the substrate 700. For clarity, the motion processing module 230 is not shown in FIG. Fig.7DIn this example, the motion processing module 230 is used to calculate the angular acceleration based on the known separation and relative orientation of the two IMUs 232 and 234.
[0086] Fig. 7E and Figure 7F Another Z-axis alignment of IMUs 232 and 234 is shown. Fig. 7E is a side view of the layout of substrate 760, wherein IMU 234 is mounted above IMU 232, and both IMUs 234 and 232 are mounted on substrate 714 to form a stacked IMU element. Fig. 7E The layout shown in the figure includes the above combined with FIG. 7A to FIG. 7D 202, 704, 708, 710 and 712 of the substrate described above. Therefore, these elements are no longer combined Fig. 7E describe. Figure 7F 714 is a perspective view of a stacked IMU element in which the connection to IMU 232 is made through substrate 714, and the connection to IMU 234 is made through wire bonds that couple contacts on the upper surface of IMU 234 to contacts on substrate 714, and then through substrate 714 to substrate 760.
[0087] Figure 7G 7 is a combined side view and front view of a layout of a substrate 780 in which two IMUs 232 and 234 are used to provide different linear acceleration measurements when the mobile device 100 is rotated about a pivot point on the X-axis, Y-axis, or Z-axis, or any combination thereof. In this layout, the IMUs 232 and 234 are both disposed on opposite sides of the substrate 780 and are disposed diagonally to the X-axis and the Y-axis. Thus, the samples provided by the accelerometers 302 and 432 are related to the X-axis, the Y-axis, and the Z-axis of the substrate 780. Figure 7G The layout shown in the figure includes the above combined with 7A to 7E 202, 704, 708, 710 and 712 of the substrate described above. Therefore, these elements are no longer combined Figure 7G For the sake of clarity, the motion processing module 230 is not described in Figure 7G However, it is contemplated that the motion processing module 230 may be disposed on either side of the IMU 234 along an axis parallel to the X-axis of the mobile device 100 .
[0088] Although 7A to 7E and Figure 7G The exemplary substrate layout shown in shows two IMUs 232 and 234, but it is contemplated that the mobile device may include three or more IMUs. For example, Figure 7GThe layout shown in the figure may include two additional IMUs (not shown) mounted opposite IMU 232 or 234. Optionally, one or more additional IMUs may be provided on any of substrates 700, 720, 730, 740, 760, and / or 780 to provide measurements that can calculate additional DOFs and / or provide redundancy in the measurements to reduce Gaussian noise in the samples provided.
[0089] Figure 8 An embodiment is provided by Figure 2 and Figure 4 800 implemented by the motion processing module 230. Figure 4 The motion processing module 230 in the embodiment includes a plurality of discrete components, but it is contemplated that the module may be combined with the following in operation: Fig.10 The motion processing module 230 is implemented in software on a computing device such as the computing device 1000 described above. As described above, the motion processing module 230 includes the functionality of an existing sensor hub as well as extended functionality. The motion processing module 230 implements an API that is backward compatible with a traditional sensor hub API used by existing mobile devices. Different mobile devices may have different sensor hub APIs, so the following describes the basic functions performed by a traditional sensor hub API to request and obtain specified sensor measurements from a single IMU.
[0090] exist Figure 8 In the example, operation 802 receives and parses input parameters in the API call. Based on the parsed parameters, operation 804 determines whether the API call is a traditional sensor hub request or an extended sensor request. When the call is a traditional sensor hub request, operation 806 determines the requested sampling rate F. S Is it greater than the maximum sampling rate F of IMU 232 or 234? MAX Operation 806 also determines whether the requested SNR is greater than the maximum SNR of the IMU 232 or 234, i.e., the SNR MAX It should be noted that although both IMUs 232 and 234 include at least one common corresponding sensor (e.g., an accelerometer), IMUs 232 and 234 may not be identical. These devices may not even be IMUs, but rather general motion sensors. For example, one or more of IMUs 232 or 234 may be a six-axis IMU that does not include a magnetometer or a three-axis accelerometer that does not include a magnetometer or a gyroscope. Therefore, IMUs 232 and 234 may have different values of F. MAX and SNR MAX The F used in operation 806 MAX and SNR MAX The value is for larger F MAX and SNR MAX An IMU or motion sensor is used.
[0091] When operation 806 determines the requested F s and SNR is no greater than F MAX and SNR MAX When the API is called, operation 808 activates the IMU 232 or 234 and obtains the requested one or more measurements from the IMU. Operation 810 returns the result to the App that initiated the API call.
[0092] When operation 806 determines the requested F s Greater than F MAX or the requested SNR is greater than SNR MAX When the requested F s Greater than F MAX But less than 2*F MAX Operation 812 may activate both IMUs. s Greater than N*F MAX But less than (N+1)*F MAX When the requested SNR is greater than SNR MAX But less than 2*SNR MAX Operation 812 may activate both IMUs when the requested SNR is greater than N*SNR MAX But less than (N+1)*SNR MAX When , operation 812 can activate N+1 IMUs.
[0093] At operation 814, the requested F S Greater than F MAX (or N*F MAX ), operation 820 applies the appropriate phase clock signal to the activated IMUs (e.g., IMUs 232 and 234) and controls at least one of the multiplexers (e.g., multiplexers 418, 420, and / or 422) to cycle between the activated IMUs to provide the requested samples at the requested sampling rate. Operation 820 also returns the samples to the App that initiated the API call.
[0094] When operation 814 determines the requested F S No more than F MAX When the requested SNR is greater than SNR MAX (or N*SNR MAX). In this case, operation 816 obtains the simultaneously sampled measurements from the requested one or more sensors and averages the simultaneously acquired samples. Averaging the corresponding samples in the two simultaneously acquired sample streams improves the SNR of the average stream by 6 dB compared to any individual sample stream. Averaging the samples in more simultaneously acquired sample streams can improve the SNR even more. After operation 816, operation 818 returns the average sample stream to the application that initiated the API call.
[0095] When operation 804 determines that the API request is an extended sensor request, operation 822 of method 800 configures multiple IMUs according to the request. Then, operation 824 processes samples obtained from multiple IMUs, and operation 826 returns the processed samples.
[0096] Fig. 9 8 is a flowchart of a method 900 for processing samples from multiple IMUs provided by an embodiment. Method 900 implements operations 822 and 824 of method 800. Operation 902 is performed before operation 822. When the mobile device 100 is first powered on, operation 902 turns on the accelerometer and turns off the gyroscope and magnetometer. Operation 902 initializes the mobile device 100 to operate in an always-on mode. Operation 904 corresponding to operation 822 receives an extended sensor request. Then, according to Fig. 9 Extended sensor requests are handled by one or more of the three paths shown in Figure 1. These three paths include permanent activation, precision motion, and multi-sensor fusion.
[0097] When operation 906 determines that the request is for permanent activation, operation 908 acquires samples from the plurality of accelerometers and operation 910 processes the samples as described above in conjunction with equations (1) through (7) and as described above in conjunction with equations (1) through (7). Figure 6 As shown, an angular acceleration metric is calculated based on the accelerometer samples and a determination is made as to whether the angular acceleration metric represents a wake-up gesture.
[0098] When operation 912 determines that the request is for high precision motion samples, operation 914 turns on the gyroscopes and operation 916 acquires and averages samples from multiple gyroscopes to generate high precision motion samples.
[0099] When operation 918 determines that the request is to fuse samples from multiple sensors, such as fusing gyroscope samples and accelerometer samples to distinguish walking motion from cycling motion, operation 920 turns on the gyroscopes and / or magnetometers of multiple IMUs according to the sensors specified in the API request. Operation 922 obtains the requested samples, and operation 924 combines the samples to generate the requested results. After operation 910, operation 916, or operation 924, Figure 8Operation 826 in returns the result to the App that initiated the API call. When the extended sensor request is not recognized by any of operations 906, 912, or 918, operation 926 determines that the request is an unrecognized request and transmits a control signal to operation 904 to wait for the next extended sensor request.
[0100] Fig.10 1000 is a block diagram of a computing device 1000 provided in an embodiment. Similar components may be used in the exemplary computing devices described herein. A computing device similar to computing device 1000 may replace Figure 1 and Figure 2 The mobile device 100 shown in FIG. 1 and / or may be used to implement Figure 2 and Figure 4 The motion processing module 230 shown in .
[0101] An exemplary computing device 1000 may include a processing unit (e.g., one or more processors and / or CPUs) 1002, a memory 1003, a removable memory 1010, and a non-removable memory 1012, which are communicatively coupled via a bus 1001. Although various data storage elements are shown as part of the computing device 1000,
[0102] The memory 1003 may include a volatile memory 1014 and a non-volatile memory 1008. The computing device 1000 may include or have access to a computing environment including various computer-readable media, such as the volatile memory 1014 and the non-volatile memory 1008, the removable memory 1010, and the non-removable memory 1012. Computer memory includes random access memory (RAM), read only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other storage technology, compact disc read-only memory (CD-ROM), digital versatile disk (DVD) or other optical disk storage device, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or any other medium capable of storing computer-readable instructions. The memory 1003 also includes program instructions used by the application 1018 to implement any of the above methods and / or algorithms.
[0103] The computing device 1000 may include or may access a computing environment that includes an input interface 1006, an output interface 1004, and a communication interface 1016. The output interface 1004 may provide an interface to a display device, such as a touch screen, which may also be used as an input device. The input interface 1006 may provide an interface to a touch screen, a touchpad, a mouse, a keyboard, a camera, one or more device-specific buttons, one or more sensors integrated within the server computing device 1000 or coupled to the server computing device 1000 via a wired or wireless data connection, and / or one or more of other input devices. The computing device 1000 may operate in a network environment using the communication interface 1016. The communication interface may include connection to a local area network (LAN), a wide area network (WAN), a cellular network, a wireless LAN (WLAN) network, and / or One or more interfaces in a network.
[0104] Any one or more of the modules described herein may be implemented using hardware (e.g., a processor of a machine, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or any suitable combination thereof). In addition, any two or more of these modules may be combined into a single module, and the functionality described herein for a single module may be subdivided between multiple modules. In addition, according to various embodiments, the modules described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices. As described herein, a module may include one or both of hardware or software that has been designed to perform one or more functions (e.g., one or more functions described herein relating to providing secure and responsible data access).
[0105] Although a few embodiments have been described in detail above, other modifications are possible. For example, Figure 4 , Figure 6 , Figure 8 and Fig. 9 The logic flows shown in do not require the particular order shown or sequential order to achieve the desired results. Other steps may be provided in the described processes, or steps may be eliminated from the described processes, and other components may be added to or deleted from the described systems. Other embodiments may be within the scope of the following claims.
[0106] It should also be understood that software including one or more computer executable instructions can be installed in and provided with one or more computing devices consistent with the present invention, and the one or more computer executable instructions facilitate the processing and operations described above in conjunction with any one or more steps of the present invention. Optionally, the software can be obtained and loaded into one or more computing devices, including: obtaining the software through physical media or distributed systems, for example, including obtaining the software from a server owned by the software creator or from a server not owned by the software creator but used by the software creator. For example, the software can be stored on a server for distribution over the Internet.
[0107] In addition, it will be appreciated by those skilled in the art that the present invention is not limited in its application to the details of the construction and arrangement of the components set forth in the specification or shown in the accompanying drawings. The embodiments herein may have other embodiments and may be practiced or executed in various ways. In addition, it should be understood that the wording and terminology used herein are for descriptive purposes and should not be considered restrictive. "Including," "comprising," or "having" and their variants used herein are intended to include and cover the items listed thereafter and their equivalents as well as other items. Unless otherwise defined, the terms "connect," "couple," and "install" and their variants used herein are widely used and cover direct and indirect connections, couplings, and installations. In addition, the terms "connect" and "couple" and their variants are not limited to physical or mechanical connections or couplings.
[0108] The components of the illustrative devices, systems, and methods used in accordance with the illustrated embodiments may be implemented at least partially in digital electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. For example, these components may be implemented as a computer program product (e.g., a computer program, program code, or computer instructions) tangibly embodied in an information carrier, or in a machine-readable storage device, to be executed by a data processing apparatus (e.g., a programmable processor, a computer, or multiple computers), or to control the operation of a data processing apparatus.
[0109] The computer program may be written in any form of programming language (including compiled or interpreted languages) and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, method, object or other unit suitable for use in a computing environment. The computer program may be deployed to be executed on one computer or multiple computers at one site, or distributed at multiple sites and interconnected by a communication network. The method steps associated with the illustrative embodiments may be performed by one or more programmable processors that execute computer programs, codes or instructions to perform functions (e.g., by operating on input data and / or generating output). The method steps may also be performed by a dedicated logic circuit, and the device for performing the method may be implemented as the dedicated logic circuit, such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
[0110] Various illustrative logical blocks, modules, and circuits described in conjunction with the embodiments disclosed herein, for example, Figure 2 and Figure 4 The motion processing module 230 shown in FIG. Figure 3 The processing logic shown in the can be implemented or executed using one or more general-purpose processors, digital signal processors (DSP), ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a single-core or multi-core microprocessor, but alternatively, the processor can also be any conventional processor, controller, microcontroller or state machine. The processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration.
[0111] For example, processors suitable for executing computer programs include general-purpose microprocessors and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer include a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, the computer also includes one or more large-capacity storage devices (such as magnetic disks, magneto-optical disks, or optical disks) for storing data, or is operably coupled to receive data from one or more large-capacity storage devices for storing data and / or send data to it. Information carriers suitable for embodying computer program instructions and data include various forms of non-volatile memory, for example, semiconductor memory devices, such as electrically programmable read-only memory or electrically programmable ROM (electrically programmable read-only memory, EPROM), electrically erasable programmable ROM (electrically erasable programmable ROM, EEPROM), flash memory devices, data storage disks (such as magnetic disks, built-in hard disks or removable disks, magneto-optical disks, CD-ROMs and DVD-ROM disks). The processor and memory can be supplemented by or incorporated into a dedicated logic circuit.
[0112] Those skilled in the art will appreciate that any of a variety of different technologies and technical methods may be used to represent information and signals. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be cited in the above description may be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, optical fields or optical particles, or any combination thereof.
[0113] As used herein, "machine-readable medium" or "computer-readable medium" refers to a device capable of temporarily or permanently storing instructions and data, and may include, but is not limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of memory (e.g., Erasable Programmable Read-Only Memory (EEPROM)), and / or any suitable combination thereof. The term "machine-readable medium" or "computer-readable medium" should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) that can store processor instructions. Machine-readable medium or computer-readable medium should also be understood to include any medium or combination of multiple media that can store instructions executed by one or more processors, which, when executed by one or more processors, causes one or more processors to perform any one or more methods described herein. Accordingly, machine-readable medium or computer-readable medium refers to a single storage device or device, as well as a "cloud-based" storage system or storage network comprising multiple storage devices or devices. The term "machine-readable medium" as used herein does not include the signal itself.
[0114] In addition, without departing from the scope of the present invention, the techniques, systems, subsystems and methods described and illustrated as discrete or separate in various embodiments may be combined or integrated with other systems, modules, techniques or methods. Other items shown or discussed as coupled or directly coupled or communicating with each other may also be coupled or communicated indirectly through an interface, device or intermediate component, either electrically, mechanically or otherwise. Other examples of variations, substitutions, and alterations may be determined by those skilled in the art and may be exemplified without departing from the scope of the present invention.
[0115] Although the present invention has been described with reference to the specific features and embodiments of the present invention, it is apparent that various modifications and combinations may be made to the present invention without departing from the present invention. For example, other components may be added to or removed from the described methods, modules, devices and / or systems. Therefore, the specification and drawings are only considered as the description of the present invention as defined by the appended claims, and it is contemplated that the specification and drawings cover any and all modifications, variations, combinations or equivalents falling within the scope of the present invention. Other aspects may be within the scope of the following claims.
Claims
1. A mobile device, characterized in that: The mobile device comprises: a first motion sensor of a first type coupled to the mobile device at a first location and configured to provide first motion samples indicative of a first type of motion; a second motion sensor of the first type coupled to the mobile device at a second location different from the first location and configured to provide second motion samples indicative of the first type of motion; the first motion sensor and the second motion sensor configured to provide the first motion samples and the second motion samples at respective first and second sampling rates; a motion processing module coupled to the mobile device, the motion processing module being configured to provide a control signal to a selection circuit to repeatedly select the first motion sample and the second motion sample from the first motion sensor and the second motion sensor at different times, respectively, so as to provide a motion sample indicating the first type of motion and having a third sampling rate greater than the first sampling rate and the second sampling rate as the third motion sample; wherein the motion processing module comprises: a memory including program instructions; One or more processors coupled to the memory, wherein the one or more processors are configured to execute the program instructions to perform the following operations: Acquire the first motion sample and the second motion sample from the first motion sensor and the second motion sensor; processing the first motion sample and the second motion sample to provide a third motion sample; The third motion sample is provided to another processor in the mobile device so that the mobile device performs an action in response to the third motion sample.
2. The mobile device according to claim 1, characterized in that The first motion sensor and the second motion sensor include a first accelerometer and a second accelerometer, the first accelerometer and the second accelerometer are used to provide corresponding first linear acceleration samples and second linear acceleration samples as the first motion samples and the second motion samples; The first position and the second position are different positions relative to an axis of the mobile device; The one or more processors are configured to process the first linear acceleration samples and the second linear acceleration samples to calculate an angular acceleration metric about a pivot point on the axis as the third motion sample; The one or more processors are configured by the program instructions to provide the third motion sample to the mobile device to activate the mobile device.
3. The mobile device according to claim 2, characterized in that At least one of the first motion sensor and the second motion sensor further comprises a gyroscopic sensor for providing angular acceleration samples; The motion processing module is configured in a first mode to provide the angular acceleration metric based on the third motion samples, and in a second mode to provide the angular acceleration metric based on the angular acceleration samples.
4. The mobile device according to claim 3, characterized in that The motion processing module is configured to: when operating in the first mode, turn off the gyroscope sensor.
5. The mobile device according to any one of claims 1 to 4, characterized in that: The mobile device further comprises: an application program interface (API) for running on the motion processing module, The API provides the first motion sample but does not provide the second motion sample in response to a first request type, and provides the first motion sample and the second motion sample in response to a second request type.
6. The mobile device according to any one of claims 1 to 4, characterized in that: The motion processing module is used to combine the first motion sample and the second motion sample to provide a sample indicating the first type of motion and having a signal-to-noise ratio (SNR) greater than the SNR of each of the first motion sample and the second motion sample as the third motion sample.
7. The mobile device according to any one of claims 1 to 4, characterized in that: The motion processing module further includes a selection circuit coupled to the first motion sensor and the second motion sensor to selectively provide the first motion sample or the second motion sample in response to a control signal.
8. A method for sensing motion of a mobile device, characterized in that: The method comprises: acquiring first motion samples indicating a first type of motion from a first motion sensor mounted at a first location on the mobile device, the first motion sensor being configured to provide the first motion samples at a first sampling rate; acquiring second motion samples indicating the first type of motion from a second motion sensor mounted at a second location of the mobile device, wherein the second location is different from the first location, the second motion sensor being configured to provide the second motion samples at a second sampling rate; processing the first motion sample and the second motion sample to provide a third motion sample; providing the third motion sample to the mobile device so that the mobile device performs an action in response to the third motion sample; The method also includes: in response to a control signal, repeatedly selecting the first motion sample and the second motion sample from the first motion sensor and the second motion sensor at different times, respectively, to provide a motion sample indicating the first type of motion and having a third sampling rate greater than the first sampling rate and the second sampling rate as the third motion sample.
9. The method according to claim 8, characterized in that The first motion sensor and the second motion sensor include a corresponding first accelerometer and a second accelerometer, the first accelerometer and the second accelerometer are used to provide corresponding first linear acceleration samples and second linear acceleration samples as the first motion samples and the second motion samples; The first position and the second position are respectively different positions relative to an axis of the mobile device; The method further comprises: processing the first linear acceleration sample and the second linear acceleration sample to calculate an angular acceleration metric about a pivot point on the axis as the third motion sample; The third motion sample is provided to the mobile device to activate the mobile device.
10. The method according to claim 9, characterized in that At least one of the first motion sensor and the second motion sensor further comprises a gyroscopic sensor for providing angular acceleration samples; The method further comprises: providing the angular acceleration metric based on the third motion sample in a first mode; The angular acceleration metric is provided based on the angular acceleration samples in a second mode.
11. The method according to claim 10, characterized in that The method also includes, when operating in the first mode, turning off the gyro sensor.
12. The method according to any one of claims 8 to 10, characterized in that The method further comprises: receiving a first request to provide the first motion sample or the second motion sample from an application program interface (API) executed on the mobile device; A second request to provide the first motion sample and the second motion sample is received.
13. The method according to any one of claims 8 to 10, characterized in that The method further includes combining the first motion sample and the second motion sample to provide a sample indicating the first type of motion and having a signal-to-noise ratio (SNR) greater than the SNR of the first motion sample or the second motion sample as the third motion sample.
14. The method according to any one of claims 8 to 10, characterized in that The method also includes selectively providing the first motion sample or the second motion sample in response to a control signal.
15. An apparatus for sensing motion of a mobile device, characterized in that: The device comprises: A first acquisition module, configured to acquire a first motion sample indicating a first type of motion at a first position of the mobile device; A second acquisition module, configured to acquire a second motion sample indicating the first type of motion at a second position of the mobile device, wherein the second position is different from the first position; A first processing module, configured to process the first motion sample and the second motion sample to provide a third motion sample; the first motion sample and the second motion sample have corresponding first sampling rates and second sampling rates; A first providing module, configured to provide the third motion sample to the mobile device, so that the mobile device performs an action in response to the third motion sample; The selection module is used to repeatedly select the first motion sample and the second motion sample at different times to provide a motion sample indicating the first type of motion and having a third sampling rate greater than the first sampling rate and the second sampling rate as the third motion sample.
16. The device according to claim 15, characterized in that The first motion sample and the second motion sample include a first linear acceleration sample and a second linear acceleration sample; The first position and the second position are respectively different positions relative to an axis of the mobile device; The device also includes: a second processing module for processing the first linear acceleration sample and the second linear acceleration sample to calculate an angular acceleration metric about a pivot point on the axis as the third motion sample; The second providing module is configured to provide the third motion sample to the mobile device to activate the mobile device.
17. The device according to claim 16, characterized in that The first processing module includes: a combining module, configured to combine the first motion sample and the second motion sample to provide a sample indicating the first type of motion and having a signal-to-noise ratio (SNR) greater than the SNR of the first motion sample or the second motion sample as the third motion sample.
Citation Information
Patent Citations
Hybrid angular motion sensor
CN105433949A