Radar gesture sensing using existing data protocols

This document describes techniques using, and devices embodying, radar gesture sensing using existing data protocols. These techniques and devices enable transmitting data according to an existing data protocol, modulating the data on a radar field to transmit to another device, and sensing user gestures by analyzing reflections of portions of transmitted data by the transmitting or receiving device. Techniques are also described to filter received signals based on addressing information in the transmitted data to limit gesture recognition at a receiving device to transmitting devices known to the receiver.

BACKGROUND

Use of gestures to interact with computing devices has become increasingly common. Gesture recognition techniques have successfully enabled gesture interaction with devices when these gestures are made to device surfaces, such as touch screens for phones and tablets and touch pads for desktop computers. Users, however, are more and more often desiring to interact with their devices through gestures not made to a surface, such as a person waving an arm to control a video game. These in-the-air gestures can be sensed using radar techniques by devices that emit a radar field and analyze reflections of that radar field. The device emitting the radar field controls modulation and transmission of the radar field, which enables the device to correlate radar reflections to the modulations of the radar field. In some applications, multiple devices may benefit from radar gesture recognition, but another device, which does not emit the radar field, lacks access to the control information for the modulation and transmission of the radar field to perform radar gesture sensing.

SUMMARY

This document describes techniques and devices for radar gesture sensing using existing data protocols. These techniques and devices can accurately recognize gestures that are made in three dimensions, such as in-the-air gestures. These in-the-air gestures can be made from varying distances, such as from a person sitting on a couch to control a television, a person standing in a kitchen to control an oven or refrigerator, or millimeters from a desktop computer's display.

Data protocols used for wireless communication define information included in transmissions, such as a training sequence that is used for receiver synchronization and/or channel estimation. All radios using the data protocol transmit the training sequence as a part of each data transmission. By modulating a radar field according to an existing data protocol, the known data pattern of the training sequence can be used to correlate reflections of the radar field for radar gesture sensing, while concurrently using the radar field for data transmission.

In addition to the transmitting device using the radar field for gesture sensing, any receiving device that uses the same existing data protocol can use the reflections of the radar field, which are modulated with the training sequence, for radar gesture recognition. The receiving device may be receiving data transmissions from the transmitting device using the data protocol, or may simply be using the radar field for gesture sensing. For example the data protocol may be used for point-to-point communication between the transmitting device and the receiving device, the transmitting device may be an access point that provides a radar field that multiple receiving devices can use for gesture sensing, and so forth.

This summary is provided to introduce simplified concepts concerning radar gesture sensing using existing data protocols, which is further described below in the Detailed Description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.

DETAILED DESCRIPTION

Overview

This document describes techniques using, and devices embodying, radar gesture sensing using existing data protocols. These techniques and devices can enable a great breadth of gestures and uses for those gestures, such as gestures to use, control, and interact with various devices, from desktop computers to refrigerators. The techniques and devices are capable of providing a radar field that can sense gestures from multiple actors at one time and through obstructions, thereby improving gesture breadth and accuracy over many conventional techniques. These devices incorporate gesture recognition with the transmission and/or reception of data using an existing data protocol. This approach allows a device to use a single radio to both transmit data to another device and to emit a radar field for gesture sensing, eliminating the need for dedicated radios for data transmission and for gesture sensing.

Additionally radar gesture sensing is employed in a device that analyzes reflections of radio waves corresponding to known patterns of a data protocol used to receive data. By analyzing the reflections of these known patterns, such as a training sequence in a transmitted data packet, radar-gesture recognition is enabled in a device without requiring the device to include a radar emitter.

Example Environment

FIG. 1is an illustration of example environment100in which techniques using, and an apparatus including, radar gesture sensing using existing data protocols may be embodied. Environment100includes example computing devices102devices that each include a gesture component104. In computing device102-1, the gesture sensor component104provides a near radar field to interact with the computing device102-1and in computing device102-2, the gesture sensor component104provides an intermediate radar field (e.g., a room size) to interact with computing device102-2. The gesture sensor components104in the computing devices102-1and102-2provide radar fields106, near radar field106-1and intermediate radar field106-2, and are described below.

The gesture sensor component104in computer system102-1improves user interaction with desktop computer102-1. Assume, for example, that computer system102-1includes a touch screen108through which display and user interaction can be performed. This touch screen108can present some challenges to users, such as needing a person to sit in a particular orientation, such as upright and forward, to be able to touch the screen. Further, the size for selecting controls through touch screen108can make interaction difficult and time-consuming for some users. Consider, however, computer system102-1, which provides near radar field106-1enabling a user's hands to interact with computer system102-1, such as with small or large, simple or complex gestures, including those with one or two hands, and in three dimensions. As is readily apparent, a large volume through which a user may make selections can be substantially easier and provide a better experience over a flat surface, such as that of touch screen108.

Similarly, consider computer system102-2, which provides intermediate radar field106-2, which enables a user to interact with computer system102-2from a distance and through various gestures, from hand gestures, to arm gestures, to full-body gestures. By so doing, user selections can be made simpler and easier than a flat surface (e.g., touch screen108), a remote control (e.g., a gaming or television remote), and other conventional control mechanisms.

The gesture sensor component104can interact with applications or an operating system of the computing devices102, or remotely through a communication network by transmitting input responsive to recognizing gestures. Gestures can be mapped to various applications and devices, thereby enabling control of many devices and applications. Many complex and unique gestures can be recognized by gesture sensor component104, thereby permitting precise and/or single-gesture control, even for multiple applications. Gesture sensor component104, whether integrated with a computing device, having computing capabilities, or having few computing abilities, can each be used to interact with various devices and applications.

FIG. 2depicts a system200in an example implementation in which the gesture component104is shown in greater detail. The gesture sensor component104is part of one of the computing devices102. Computing device102is illustrated with various non-limiting example devices, such as a smartphone, a laptop computer, a television, a desktop computer, a tablet, a digital camera, a refrigerator, and a microwave oven, though other devices may also be used, such as home automation and control systems, entertainment systems, audio systems, other home appliances, security systems, netbooks, smartphones, and e-readers. Note that computing device102can be wearable, non-wearable but mobile, or relatively immobile (e.g., desktops and appliances).

Note also that the gesture sensor component104can be used with, or embedded within, many different computing devices or peripherals, such as in walls of a home to control home appliances and systems (e.g., automation control panel), in automobiles to control internal functions (e.g., volume, cruise control, or even driving of the car), or as an attachment to a laptop computer to control computing applications on the laptop.

Computing device102includes one or more computer processors202and computer-readable media204, which includes memory media and storage media. Application(s)206, gesture sensor APIs208and/or an operating system (not shown) are embodied as computer-readable instructions on computer-readable media204can be executed by processors202to provide some of the functionalities described herein.

Computing device102may also include network interface(s)210for communicating data over wired, wireless, or optical networks. By way of example and not limitation, network interface210may communicate data over a local area network (LAN), a wireless local area network (WLAN), a personal area network (PAN), a wide area network (WAN), an intranet, the Internet, a peer-to-peer network, point-to-point network, a mesh network, and the like.

Computing device102also includes I/O ports212. I/O ports212can include a variety of ports, such as by way of example and not limitation, high-definition multimedia (HDMI), digital video interface (DVI), display port, fiber-optic or light-based, audio ports (e.g., analog, optical, or digital), Universal Serial Bus (USB) ports, serial advanced technology attachment (SATA) ports, peripheral component interconnect (PCI) express based ports or card slots, serial ports, parallel ports, or other legacy ports.

Results are output from the gesture sensor component104to applications206via the gesture sensor APIs208and may be configured in a variety of ways. In a first such example, the result references the identified gesture, but not how the gesture was detected. In this way, detection of the gesture by the gesture sensor component104may be abstracted away from the applications206such that the applications206are not aware of how the gesture is detected, but may leverage detection of the gesture to control operations of the computing device102.

In some implementations, gesture sensor APIs208provide high-level access into the gesture component104in order to abstract implementation details and/or hardware access from a calling application206, request notifications related to identified events, query for results, and so forth. Gesture sensor APIs208can also provide low-level access to gesture component104, where a calling application206can control direct or partial hardware configuration of the gesture component104. In some cases, gesture sensor APIs208provide programmatic access to input configuration parameters that configure transmit signals (e.g., signals as described in relation toFIG. 4) and/or select gesture recognition algorithms.

These gesture sensor APIs208enable applications206to incorporate the functionality provided by the gesture component104into executable code. For instance, applications206can call or invoke gesture sensor APIs208to register for, or request, an event notification when a particular gesture has been detected, enable or disable wireless gesture recognition in computing device102, and so forth. At times, gesture sensor APIs208can access and/or include low level hardware drivers that interface with hardware implementations of gesture component104. Alternately or additionally, gesture sensor APIs208can be used to access various algorithms that reside on gesture component104to perform additional functionality or extract additional information, such as 3D tracking information, angular extent, reflectivity profiles from different aspects, correlations between transforms/features from different channels, and so forth.

In an example, the gesture sensor component104employs the gesture sensor APIs208to expose a result that describes an operation that is to be performed by the computing device102. In an implementation, this may be performed to identify the operation and even an amount to which the operation is to be performed. Further, this may be done so without indication of the gesture used to specify this operation. For example, the gesture sensor component104detects a gesture performed by a hand that mimics the turning of a physical knob. Detection of the gesture by the gesture sensor component104includes positioning of fingers of the user's hand in three-dimensional space as well as detection of movement, which in this instance involves rotational movement to the left or right.

The result output by the gesture sensor component104via the APIs208to the application206may be configured in a variety of ways. In a first such example, the result references the identified gesture, but not how the gesture was detected. In this way, detection of the gesture by the gesture sensor component104may be abstracted away from the applications206such that the applications206are not aware of how the gesture is detected, but may leverage detection of the gesture to control operations of the computing device102.

Gesture sensor component104, as noted above, is configured to sense gestures. To enable this, the gesture sensing component104includes antennas214, digital signal processing component216, machine-learning component218, and output logic component220. In some implementations, gesture sensor component104uses these various components in concert (such as a pipeline) to wirelessly detect gestures using radar techniques based on multiple signals, such as micro-gestures.

Antennas214, for instance, are used transmit and receive RF signals, such as emitting a radar field and receiving reflections of the radar field. This is achieved by converting electrical signals into electromagnetic waves for transmission, and vice versa for reception. The gesture sensor component104can include any suitable number of antennas214in any suitable configuration. For instance, any of the antennas214can be configured as a dipole antenna, a parabolic antenna, a helical antenna, a monopole antenna, and so forth. In some examples, antennas214are constructed on-chip (e.g., as part of an SoC), while in other examples, antennas214are components, metal, hardware, and so forth that attach to the gesture sensor component104. The placement, size, and/or shape of antennas214can be chosen to enhance a specific transmission pattern or diversity scheme, such as a pattern or scheme designed to capture information about a micro-gesture performed by the hand, as further described above and below. The antennas214can be physically separated from one another by a distance that allows the gesture sensor component104to collectively transmit and receive signals directed to a target object (e.g., a hand) over different channels, different radio frequencies, and different distances. In some instances, antennas214are spatially distributed to support triangulation techniques, while in others the antennas are collocated to support beamforming techniques. While not illustrated, each antenna214can correspond to a respective transceiver path that physically routes and manages the outgoing signals for transmission and the incoming signals for capture and analysis.

Digital signal processing component216generally represents functionality that digitally captures and processes a signal. For instance, digital signal processing component216performs sampling on RF signals received by antennas214to generate digital samples that represent the RF signals, and processes the digital samples to extract information about the target object. Alternately or additionally, digital signal processing component216controls the configuration of signals transmitted via antennas214, such as configuring a plurality of signals to form a specific diversity scheme, such as a beamforming diversity scheme. In some cases, digital signal processing component216receives input configuration parameters that control an RF signal's transmission parameters (e.g., frequency channel, power level, etc.), such as through gesture sensor APIs208. In turn, digital signal processing component216modifies the RF signal based upon the input configuration parameter. At times, the signal processing functions of digital signal processing component216are included in a library of signal processing functions or algorithms that are also accessible and/or configurable via gesture sensor APIs208. Digital signal processing component216can be implemented in hardware, software, firmware, or any combination thereof.

Additionally or alternatively, the digital signal processing component216modulates data for transmission on the RF signals that are transmitted and/or demodulates data on received RF signals. The emitted radiation by the antennas214provides the radar field for gesture sensing, as well as transmitting wireless data. By way of example and not limitation, the protocol may a wireless local area network (WLAN) protocol, a personal area network (PAN) protocol, a wide area network (WAN) protocol, a peer-to-peer network protocol, point-to-point network protocol, a mesh network protocol, and the like.

Among other things, machine-learning component218receives information processed or extracted by digital signal processing component216, and uses that information to classify or recognize various aspects of the target object, as further described below. In some cases, machine-learning component218applies one or more algorithms to probabilistically determine which gesture has occurred given an input signal and previously learned gesture features by leveraging the gesture sensor APIs208. As in the case of digital-signal processing component216, machine-learning component218can include a library of multiple machine-learning algorithms as part of the gesture sensor APIs208, such as a Random Forrest algorithm, deep learning algorithms (e.g., artificial neural network algorithms, convolutional neural net algorithms, etc.), clustering algorithms, Bayesian algorithms, and so forth.

Machine-learning component218can be trained on how to identify various gestures using input data that consists of example gestures to learn. In turn, machine-learning component218uses the input data to learn what features can be attributed to a specific gesture. These features are then used to identify when the specific gesture occurs. An operation may also be assigned to the gesture as part of the gesture sensor APIs208to expose this operation to the applications206as previously described in relation toFIG. 2. In some examples, gesture sensor APIs208can be used to configure machine-learning component218and/or its corresponding algorithms.

Output logic component220represents functionality that uses logic to filter output information generated by digital signal processing component216and machine-learning component218. In some cases, output logic component220uses knowledge about the target object to further filter or identify the output information. For example, consider a case where the target object is a hand repeatedly performing a tap gesture. Depending upon its configuration, output logic component220can filter the repeated tap gesture into a single output event indicating a repeated tap gesture, or repeatedly issue a single-tap gesture output event for each tap gesture identified. This can be based on knowledge of the target object, user input filtering configuration information, default filtering configuration information, and other information defined as part of the gesture sensor APIs208. In some implementations, the filtering configuration information of output logic component220can be modified via the gesture sensor APIs208.

Having described computing device102in accordance with one or more embodiments, now consider a discussion of using wireless detection of an object in accordance with one or more examples.

Generally, antennas214are configured to emit a radar field, in some cases one that is configured to penetrate fabric or other obstructions and reflect from human tissue. These fabrics or obstructions can include wood, glass, plastic, cotton, wool, nylon and similar fibers, and so forth, while reflecting from human tissues, such as a person's hand In some cases, the radar field configuration can include the modulation of data on the emitted radar field according to a data protocol as further described below.

This radar field can be a small size, such as zero or one or so millimeters to 1.5 meters, or an intermediate size, such as about one to about 30 meters. In the intermediate size, antennas214or digital signal processing component216are configured to receive and process reflections of the radar field to provide large-body gestures based on reflections from human tissue caused by body, arm, or leg movements, though smaller and more-precise gestures can be sensed as well. Example intermediate-sized radar fields include those in which a user makes gestures to control a television from a couch, change a song or volume from a stereo across a room, turn off an oven or oven timer (a near field would also be useful here), turn lights on or off in a room, and so forth.

Antennas214can instead be configured to provide a radar field from little if any distance from a computing device or its display. An example near field is illustrated inFIG. 1at near radar field106-1and is configured for sensing gestures made by a user using a laptop, desktop, refrigerator water dispenser, and other devices where gestures are desired to be made near to the device.

Antennas214can be configured to emit continuously modulated radiation, ultra-wideband radiation, or sub-millimeter-frequency radiation. Antennas214, in some cases, is configured to form radiation in beams, the beams aiding digital signal processing component216to determine which of the beams are interrupted, and thus locations of interactions within the radar field.

In an example inFIG. 1, the computer system102-2is configured to emit a radar field and to transmit wireless data modulated on the radar field (shown by the dashed line at110) to computer system102-3. In computer system102-3, a gesture sensing component104or a transceiver is configured to receive wireless data and the gesture sensor component104is configured to use reflected portions of the transmitted wireless data signal to sense gestures, as described in detail above and below. Since the computer system102-3uses radio signals emitted by the computer system102-2, the computer system102-3may be configured with or without the capability to radiate a radar field.

Additionally or alternately, the computer system102-3can transmit an indication of the gesture determined by the computer system102-3to the computer system102-2that emitted the radar field. The indication can be transmitted in any suitable way, such as via a network connection, as a part of or in addition to acknowledging the receipt of wireless data according to the data protocol in use, and so forth.

These and other capabilities and configurations, as well as ways in which entities ofFIGS. 1 and 2act and interact, are set forth in greater detail below. These entities may be further divided, combined, and so on. The environment100ofFIG. 1and the detailed illustrations ofFIG. 2illustrates some of many possible environments and devices capable of employing the described techniques.

Data Protocols

FIG. 3illustrates an example packet structures300used for wireless data communication for the example environment100in which various embodiments of radar gesture sensing using existing data protocols can be implemented. Generally, wireless packet data communication systems are defined using a layered model or network stack, such as the Open Systems Interconnection (OSI) model. Functions of the communication system are defined with respect to these layers to specify the protocols for how communications between devices are implemented. Layered models and network stacks are well known and a detailed discussion is beyond the scope of this application. The use of a layered model for communication results in transmitting data packets that include a number of fields. Each layer in the model receives data from the layer above, processes the received data, and adds additional information, typically as a header before passing the header and received data to the next lower layer.

For example, a data packet302includes a preamble field304, a physical layer (PHY) header field306, a media access layer (MAC) header field308, a network layer header field310, a data payload field312and a frame check sequence (FCS) field314. The preamble field304includes information such as a training sequence that is a known bit or symbol pattern transmitted with every packet. The training sequence is used in various purposes, such as synchronizing the receiver to the timing of the received data packet, estimating channel conditions to compensate for fading conditions between the transmitter and receiver, and so forth.

The PHY header306includes information useful to the receiver in receiving and demodulating the data packet, such as the length of the data packet302. The MAC header308includes encoding/decoding information that describes how the data packet being transmitted are encoded and decoded into bits as part of a transmission protocol. The network header310includes information that specifies how the data being transferred to a destination node is routed. The data payload field312includes data, such as data from an application that is being transferred in the data packet302. The FCS field314includes integrity check information, such as a checksum, a cyclical redundancy check (CRC), or a message integrity check hash value, that is used by the receiving device to determine if the data payload312was corrupted during transmission.

The order, type, and presence/absence of particular fields may differ between communication systems without affecting the ability of the gesture sensing component104to use a data protocol for gesture recognition. For example, a data packet316includes a beginning sequence field318, data fields320, a midamble322, and an ending sequence324. The midamble322includes information similar to the preamble304, such as the training sequence.

Propagation of RF Signals

FIG. 4illustrates a simple example of RF wave propagation, and a corresponding reflected wave propagation. It is to be appreciated that the following discussion has been simplified, and is not intended to describe all technical aspects of RF wave propagation, reflected wave propagation, or detection techniques.

Environment400includes source device402and object404. Source device402includes antenna406, which is configured to transmit and receive electromagnetic waves in the form of an RF signal. In this example, source device402transmits a series of RF pulses, illustrated here as RF pulse408a, RF pulse408b, and RF pulse408c. As indicated by their ordering and distance from source device402, RF pulse408ais transmitted first in time, followed by RF pulse408b, and then RF pulse408c. For discussion purposes, these RF pulses have the same pulse width, power level, and transmission periodicity between pulses, but any other suitable type of signal with alternate configurations can be transmitted without departing from the scope of the claimed subject matter.

Generally speaking, electromagnetic waves can be characterized by the frequency or wavelength of their corresponding oscillations. Being a form of electromagnetic radiation, RF signals adhere to various wave and particle properties, such as reflection. When an RF signal reaches an object, it will undergo some form of transition. Specifically, there will be some reflection off the object. Environment400illustrates the reflection of RF pulses408a-408creflecting off of object404, where RF pulse410acorresponds to a reflection originating from RF pulse408areflecting off of object404, RF pulse410bcorresponds to a reflection originating from RF pulse410b, and so forth. In this simple case, source device402and object404are stationary, and RF pulses408a-408care transmitted via a single antenna (antenna406) over a same RF channel, and are transmitted directly towards object404with a perpendicular impact angle. Similarly, RF pulses410a-410care shown as reflecting directly back to source device402, rather than with some angular deviation. However, as one skilled in the art will appreciate, these signals can alternately be transmitted or reflected with variations in their transmission and reflection directions based upon the configuration of source device402, object404, transmission parameters, variations in real-world factors, and so forth. Upon receiving and capturing RF pulses410a-410c, source device402can then analyze the pulses, either individually or in combination, to identify characteristics related to object404. For example, source device402can analyze all of the received RF pulses to obtain temporal information and/or spatial information about object404. Accordingly, source device402can use knowledge about a transmission signal's configuration (such as pulse widths, spacing between pulses, pulse power levels, phase relationships, and so forth), and further analyze a reflected RF pulse to identify various characteristics about object404, such as size, shape, movement speed, movement direction, surface smoothness, material composition, and so forth.

As discussed above, the source device402can be configured to emit continuously modulated radiation, ultra-wideband radiation, or sub-millimeter-frequency radiation for radar gesture sensing. The source device402can also be configured to use a data protocol to transmit data, in which case one or more portions of the transmitted data is used for radar gesture sensing. For example at412, the source device402transmits a source wave modulated with the data packet302. Upon receiving and capturing RF pulses410a-410c, source device402can then analyze the entire pulses or the one or more portions of the pulses, such as analyzing the portion that corresponds to the preamble304of the data packet, to identify characteristics related to object404.

FIG. 5illustrates another example of RF wave propagation, and a corresponding reflected wave propagation. It is to be appreciated that the following discussion has been simplified, and is not intended to describe all technical aspects of RF wave propagation, reflected wave propagation, or detection techniques.

Environment500includes source device402, object404, and destination device502. Source device402is configured to transmit data to destination device502using a known data protocol (shown at504) such as a data protocol that uses the data packet302. The beamwidth of RF signals transmitted from the source device402are sufficiently wide to transmit data to the destination device502, as well as to illuminate the object404for radar gesture sensing.

Environment500illustrates the reflection of RF pulses408a-408creflecting off of object404, where RF pulse410acorresponds to a reflection originating from RF pulse408areflecting off of object404, RF pulse410bcorresponds to a reflection originating from RF pulse410b, and so forth. Similarly, RF pulses410a-410care shown as reflecting off the object404with angular deflection toward the destination device502. Upon receiving and capturing RF pulses410a-410c, destination device502can then analyze the pulses, either individually or in combination, to identify characteristics related to object404. Additionally, RF pulses410a-410cmay also be reflected back to the source device402(not shown for visual brevity) and analyzed as described above with respect forFIG. 4.

Destination device502can also be configured to use a data protocol to receive data and/or use one or more portions of the reflections of a transmitted data for radar gesture sensing. The source device402and the destination device502communicate using a common data protocol. Although many fields in the data packets will vary in each packet, such as the data payload312and the FCS314, there are fields that are identical in each packet, such as the preamble304or a training sequence. For example, the destination device502can use the training sequence in the RF pulses410a-410cfor radar gesture sensing, as the training sequence is identical in each data packet transmitted in accordance with the data protocol.

The training sequence of a data protocol can be modified to improve gesture sensing performance. By way of example and not limitation, parameters of the training sequence, such as the length of the training sequence, the modulation code, the chip rate, the number of repetitions of the sequence, and so forth, can be modified to achieve a desired radar resolution and signal-to-noise ratio (SNR) that optimize gesture sensing performance.

Additionally or alternatively, a field can be added to the fields defined by the existing data protocol to improve gesture sensing performance. For example, a postamble field can be added following the FCS field314of the data packet302. To receive data, a receiver uses the fields defined by the existing data protocol and ignores the postamble. The postamble can be used for gesture sensing and the bit pattern in the postamble can be optimized for gesture sensing performance, as described above.

The destination device may use a combination of fields within a data packet for radar gesture recognition. For example, the source device402and destination device502are communicating in a session in an environment where other devices are also transmitting with the same data protocol. The destination device502may use portions of the data packet302to differentiate the transmissions and reflections related to the source device402from those of the other devices. The data protocol defines addressing information, such as source and/or destination addresses. The data protocol also defines the location of the addressing information in the data packet, such as in the PHY header306, MAC header308, or network header310. For example, the destination device502may use the training sequence along with source and/or destination addressing information in the data packet to identify that the reflected RF pulses410a-410ccorrespond to transmissions from the source device402and are not reflections from transmissions by another device.

Now considerFIG. 6, which builds upon the above discussion ofFIG. 4.FIG. 6illustrates example environment600in which multiple antenna are used to ascertain information about a target object. Environment600includes source device602and a target object, shown here as hand604. Generally speaking, source device602includes antennas606a-606dto transmit and receive multiple RF signals. In some embodiments, source device602includes gesture component104ofFIGS. 1 and 2and antennas606a-606dcorrespond to antennas214. While source device602in this example includes four antennas, it is to be appreciated that any suitable number of antennas can be used. Each antenna of antennas606a-606dis used by source device602to transmit a respective RF signal (e.g., antenna606atransmits RF signal608a, antenna606btransmits RF signal608b, and so forth). As discussed above, these RF signals can be configured to form a specific transmission pattern or diversity scheme when transmitted together. For example, the configuration of RF signals608a-608d, as well as the placement of antennas606a-606drelative to a target object, can be based upon beamforming techniques to produce constructive interference or destructive interference patterns, or alternately configured to support triangulation techniques. At times, source device602configures RF signals608a-608dbased upon an expected information extraction algorithm, as further described below.

When RF signals608a-608dreach a hand604, the signals generate reflected RF signals610a-610d. Similar to the discussion ofFIGS. 4 and 5above, source device602and/or destination device502captures these reflected RF signals, and then analyzes them to identify various properties or characteristics of hand604, such as a micro-gesture. For instance, in this example, RF signals608a-608dare illustrated with the bursts of the respective signals being transmitted synchronously in time. In turn, and based upon the shape and positioning of hand604, reflected signals610a-610dreturn to source device602at different points in time (e.g., reflected signal610bis received first, followed by reflected signal610c, then reflected signal610a, and then reflected signal610d). Reflected signals610a-610dcan be received by source device602in any suitable manner. For example, antennas606a-606dcan each receive all of reflected signals610a-610d, or receive varying subset combinations of reflected signals610a-610d(i.e. antenna606areceives reflected signal610aand reflected signal610d, antenna606breceives reflected signal610a, reflected signal610b, and reflected signal610c, etc.). Thus, each antenna can receive reflected signals generated by transmissions from another antenna. By analyzing the various return times of each reflected signal, source device602can determine shape and corresponding distance information associated with hand604. When reflected pulses are analyzed over time, source device602can additionally discern movement. Thus, by analyzing various properties of the reflected signals, as well as the transmitted signals, various information about hand604can be extracted, as further described below. It is to be appreciated that the above example has been simplified for discussion purposes, and is not intended to be limiting.

As in the case ofFIG. 4,FIG. 6illustrates RF signals608a-608das propagating at a 90° angle from source device602and in phase with one another. Similarly, reflected signals610a-610deach propagate back at a 90° angle from hand604and, as in the case of RF signals608a-608d, are in phase with one another. However, as one skilled in the art will appreciate, more complex transmission signal configurations, and signal analysis on the reflected signals, can be utilized, examples of which are provided above and below. In some embodiments, RF signals608a-608dcan each be configured with different directional transmission angles, signal phases, power levels, modulation schemes, RF transmission channels, and so forth. These differences result in variations between reflected signals610a-610d. In turn, these variations each provide different perspectives of the target object which can be combined using data fusion techniques to yield a better estimate of hand604, how it is moving, its three dimensional (3D) spatial profile, a corresponding micro-gesture, and so forth.

Having described general principles of RF signals which can be used in gesture detection, now consider a discussion of various forms of information extraction that can be employed in accordance with one or more embodiments.

Wireless Detection of Gestures

The above discussion describes simple examples of RF signal transmission and reflection. In the case of using multiple antenna, it can be seen how transmitting a plurality of RF signals that have variations from one another results in receiving diverse information about a target object from the corresponding reflected signals. The diverse information can then be combined to improve detecting a characteristic or gesture associated with the target object. Accordingly, the system as a whole can exploit or optimize which signals are transmitted to improve the amount of information that can be extracted from the reflected signals. Some embodiments of a gesture sensor component104capture raw data representative of signals reflected off a target object. In turn, digital-signal processing algorithms extract information from the raw data, which can then be fed to a machine-learning algorithm to classify a corresponding behavior of the target object. At times, the gesture sensor component utilizes a pipeline to identify or classify a gesture.

FIG. 7illustrates the various stages employed by an example pipeline700to identify gestures and expose operations to be controlled by those gestures to applications. In some implementations, pipeline700can be implemented by various components of gesture component104ofFIGS. 1 and 2, such as antennas214, digital signal processing component216, machine-learning component218, and/or output logic component220. It is to be appreciated that these stages have been simplified for discussion purposes, and are not intended to be limiting.

From one viewpoint, the stages can be grouped into two classifications: transmit side functionality702and receive side functionality704. Generally speaking, the transmit side functionality in the pipeline does not feed directly into the receive side functionality. Instead, the transmit side functionality generates transmit signals which contribute to the reflected signals captured and processed by the receive side functionality, as further described above. Accordingly, the relationship between the transmit side functionality and the receive side functionality is indicated in pipeline700through the use of a dotted line to connect stage706of the pipeline with stage708, rather than a solid line, since in various embodiments they are not directly connected with one another. As illustrated inFIG. 5the transmit side of the pipeline700may be in a transmitting device, such as source device402and the receive side of the pipeline may be in a receiving device, such as destination device502.

Stage706of the pipeline configures the RF transmit signals. In some cases, various transmission parameters are determined in order to generate the RF transmit signals. At times, the transmission parameters can be based upon an environment in which they are being used. For instance, the transmission parameters can be dependent upon a number of antenna available, the types of antenna available, a target object being detected, directional transmission information, a requested detection resolution, a long range object detection mode, a short range object detection mode, an expected receive-side digital signal processing algorithm, an expected receive-side machine-learning algorithm, physical antenna placement, and so forth. As noted above, the configuration of the RF transmit signals can be dependent upon an expected analysis on the receive side. Thus, the configuration of the RF transmit signals can change to support triangulation location detection methods, beamforming detection methods, and so forth. In some examples, the transmission parameters are automatically selected or loaded at startup (e.g., the RF transmit signal configurations are fixed). In other examples, these parameters are modifiable, such as through gesture sensor APIs208.

Additionally, stage706of the pipeline configures the RF signals to transmit data according to a data protocol. For example, stage706modulates the RF signals with data for transmission according to the modulation and transmission parameters specified by the data protocol. Control of the data transmissions and providing data for transmission from applications is provided through APIs, such as the gesture sensor APIs208.

At the start of receive side functionality704, stage708performs signal pre-processing on raw data. For example, as an antenna receives reflected signals (e.g., antennas606a-606dreceiving some or all of reflected signals610a-610dofFIG. 6), some instances sample the signals and generate a digital representation of the raw incoming signals. Upon generating the raw data, stage708performs pre-processing to clean up the signals or generate versions of the signals in a desired frequency band, or in a desired format. In some cases, pre-processing includes filtering the raw data to reduce a noise floor or remove aliasing, resampling the data to obtain to a different sample rate, generating a complex representation of the signal(s), and so forth. In some cases, stage708automatically pre-processes the raw data based upon default parameters, while in other cases the type of pre-processing is modifiable, such as through gesture sensor APIs208.

Stage710transforms the received signal data into one or more different representations. Here, the signals pre-processed by stage708are fed into stage710. At times, stage710combines data from multiple paths (and corresponding antenna). The combined data can be any combination of “transmit paths,” “receive paths,” and “transmit and receive paths.” Any suitable type of data fusion technique can be used, such as weighted integration to optimize a heuristic (e.g., signal-to-noise (SNR) ratio, minimum mean square error (MMSE), etc.), beamforming, triangulation, and so forth. All respective paths can be combined together, or various sub-combinations of paths can be made, to generate combined signal data.

Additionally, stage708and/or stage710of the pipeline recovers data modulated on the RF signals according to the data protocol. For example, stage708and/or stage710demodulate the RF signals to recover transmitted data according to parameters specified by the data protocol. Control of the data reception and providing data received data to applications is provided through APIs, such as the gesture sensor APIs208.

In some implementations, stage710generates multiple combinations of signal data for different types of feature extraction, and/or transforms the signal data into another representation as a precursor to feature extraction. For example, some embodiments process the combined signal data to generate a three dimensional (3D) spatial profile of the target object. However, any suitable type of algorithm can be used to generate a transformed view or version of the raw data, such as an I/Q transformation that yields a complex vector containing phase and amplitude information related to the target object, a beamforming transformation that yields a spatial representation of target objects within range of a gesture sensor device, a Range-Doppler algorithm that yields target velocity and direction, a Range profile algorithm that yields target recognition information, a Micro-Doppler algorithm that yields high-resolution target recognition information, a Spectogram algorithm that yields a visual representation of the corresponding frequencies, and so forth.

As described above, raw data can be processed in several ways to generate several transformations or combined signal data. At times, the same data can be analyzed or transformed in multiple ways. For instance, a same capture of raw data can be processed to generate a three-dimensional profile, target velocity information, and target directional movement information. In addition to generating transformations of the raw data, stage710can perform basic classification of the target object, such as identifying information about its presence, a shape, a size, an orientation, a velocity over time, and so forth. For example, some implementations use stage710to identify a basic orientation of a hand by measuring an amount of reflected energy off of the hand over time. These transformations and basic classifications can be performed in hardware, software, firmware, or any suitable combination. At times, the transformations and basic classifications are performed by digital signal processing component216and/or machine-learning component218ofFIG. 2. In some cases, stage710automatically transforms the raw data or performs a basic classification based upon default parameters, while in other cases the transformations or classifications are modifiable, such as through gesture sensor APIs208.

Stage712receives the transformed representation of the data from stage710, and extracts or identifies features using the data. At times, feature extraction builds upon a basic classification identified in stage710. Consider the above example in which stage710classifies a target object as a hand Stage712can build from this basic classification to extract lower resolution features of the hand In other words, if stage712is provided information identifying the target object as a hand, then stage712uses this knowledge to look for hand-related features (e.g., finger tapping, shape gestures, swipe movements, etc.) instead of head-related features, (e.g., an eye blink, mouthing a word, a head-shaking movement, etc.).

As another example, consider a scenario where stage710transforms the raw signal data into a measure of the target object's velocity-over-time. In turn, this information can used by stage712to identify a finger fast-tap motion by using a threshold value to compare the target object's velocity of acceleration to the threshold value, a slow-tap feature, and so forth. Any suitable type of algorithm can be used to extract a feature, such as machine-learning algorithms implemented by machine-learning component218, and/or digital signal processing algorithms implemented by digital signal processing component216ofFIG. 2. Some implementations simply apply a single algorithm to extract, identify, or classify a feature, while other embodiments apply multiple algorithms to extract a single feature or multiple features. Thus, different algorithms can be applied to extract different types of features on a same set of data, or different sets of data. In some cases, stage712searches for a default feature using default algorithms, while in other cases the applied algorithms and/or the feature being searched for is modifiable, such as through gesture senor APIs208.

Using feature extraction information generated by stage712, stage714performs gesture recognition using a gesture library. For instance, consider a case where a finger tap feature has been extracted. Stage714uses this information and compares it to descriptions of gestures to identify the feature as a double-click micro-gesture. At times, gesture recognition can be a probabilistic determination of which gesture has most likely occurred based upon the input information and how this information relates to one or more previously learned characteristics or features of various gestures. For example, a machine-learning algorithm can be used to determine how to weight various received characteristics to determine a likelihood these characteristics correspond to particular gestures (or components of the gestures). As in the case above, some implementations apply a single algorithm to recognize a gesture, while other embodiments apply multiple algorithms to identify a single gesture or multiple gestures. This can include micro-gestures or macro-gestures. Further, any suitable type of algorithm can be used to identify a gesture, such as machine-learning algorithms implemented by machine-learning component218, and/or digital signal processing algorithms implemented by digital signal processing component216ofFIG. 2. In some examples, stage714uses default algorithms to identify a gesture, while in other cases the applied algorithms and/or the gesture being identified is modifiable, such as through gesture sensor APIs208.

From the identified gesture, stage714may also identify an operation that corresponds to the gesture and even a degree to which the gesture is to be performed for operations having quantitative features. The gesture library, for instance, may map the gestures to respective operations to be performed upon detection of the gesture. This may also be used to map amounts that are to be used to perform the operations, such as to raise or lower volume, a scrolling amount, and so forth. Stage716then exposes an indication of this operation, as well as the mapped amount as appropriate, via the gesture sensor APIs208for receipt by the applications206ofFIG. 2. The applications206may then control performance of the operations of the computing device102, e.g., to initiate or continue an operation, set an amount in which to perform an operation, and so forth.

Pipeline700provides an ability to detect gestures, e.g., micro-gestures or macro-gestures. This can include movements based on portions of a target object, rather than the whole target object. Consider again the example case of a target object that is a hand. On a whole, the hand, or portions of the hand, can be in a stationary position while other portions of the hand, such as one or more fingers, are moving. The above described techniques can be used to not only identify a stationary hand, but portions of the hand that are moving, such as two fingers rubbing together. Thus, a micro-gesture can entail identifying a first portion of the hand as being stationary, and identifying a second portion of the hand as having movement relative to the stationary portion.

Example Methods

Example methods800and900are described with reference to respectiveFIGS. 8 and 9in accordance with one or more embodiments of the radar gesture sensing using existing data protocols. Generally, any of the components, modules, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Some operations of the example methods may be described in the general context of executable instructions stored on computer-readable storage memory that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like. Alternatively or in addition, any of the functionality described herein can be performed, at least in part, by one or more hardware logic components, such as, and without limitation, Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SoCs), Complex Programmable Logic Devices (CPLDs), and the like.

FIG. 8illustrates example method(s)800of radar gesture sensing using existing data protocols as generally related to sensing gestures from radar reflections. The order in which the method blocks are described are not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement a method, or an alternate method.

At802radio frequency (RF) signals are modulated with data. For example, the gesture sensor component104or the transmit side functionality702of the pipeline700modulate the RF output signals according to an existing data protocol used for communication.

At804, a radar field is emitted using the modulated RF signals. For example, the gesture sensor component104or the transmit side functionality702of the pipeline700configure RF signals for the radar field. The antennas214emit the radar field using the modulated RF signals configured by the gesture sensor component104or the transmit side functionality702of the pipeline700.

At806, reflections of the modulated radar field are received. For example, the antennas214receive reflections of the modulated radar field for an interaction that occurs in the radar field. The antennas214provide RF signals from the received reflections to the receive side functionality704of the pipeline700or the digital signal processing component216.

At808, the received reflections are analyzed. For example, the receive side functionality704of the pipeline700or the digital signal processing component216captures and processes the RF signals. For instance, digital signal processing component216performs sampling on RF signals received by antennas214to generate digital samples that represent the RF signals, and processes the digital samples to extract information about the target that caused the reflections. The digital signal processing component216or the receive side functionality704of the pipeline700can process the RF signals to identify fields of the data packet302that were modulated onto the radar field. The digital signal processing component216or the receive side functionality704of the pipeline700can selectively provide digital samples corresponding to one or more of the identified fields for successive processing to determine a gesture.

At810, the gesture is determined using a portion of the received reflections. For example, the receive side functionality704of the pipeline700or the machine-learning component218uses that information in the processed signals to classify or recognize various aspects of the target object. The output logic component220may further filter output information generated by digital signal processing component216and machine-learning component218to further refine the gesture determination.

FIG. 9illustrates example method(s)900of radar gesture sensing using existing data protocols as generally related to sensing gestures from radar reflections. The order in which the method blocks are described are not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement a method, or an alternate method.

At902, a radar field that is modulated with data is received. For example, the antennas214receive reflections of the modulated radar field for an interaction in the radar field. The antennas214provide RF signals from the received reflections to the receive side functionality704of the pipeline700or the digital signal processing component216.

At904, addressing information in the received data is decoded. For example, the receive side functionality704of the pipeline700or the digital signal processing component216captures and processes the RF signals. For instance, digital signal processing component216performs sampling on RF signals received by antennas214to generate digital samples that represent the RF signals, and processes the digital samples to decode fields of the data packet302that were modulated onto the radar field.

At906, addressing information is determined to correspond to a desired transmitter of the radar field. For example, the digital signal processing component216or the receive side functionality704of the pipeline700compares decoded addressing information in the decoded data packet302and compare the addressing information, such as a source address of the source device402to a desired source address. If the decoded source address matches the desired source address, the digital signal processing component216or the receive side functionality704of the pipeline700selectively provides digital samples for one or more of the identified fields for successive processing to determine a gesture. Otherwise the digital samples may be discarded.

At908, the received reflections are analyzed. For example, the receive side functionality704of the pipeline700or the digital signal processing component216processes the provided digital samples to extract information about the target that caused the reflections for successive processing to determine a gesture.

At910, the gesture is determined using a portion of the received reflections. For example, the receive side functionality704of the pipeline700or the machine-learning component218uses that information in the processed signals to classify or recognize various aspects of the target object. The output logic component220may further filter output information generated by digital signal processing component216and machine-learning component218to further refine the gesture determination.

Example Computing Device

FIG. 10illustrates various components of an example computing device1000that incorporates radar gesture sensing using existing data protocols as described with reference toFIGS. 1-9. Computing device1000may be implemented as any type of a fixed or mobile device, in any form of a consumer, computer, portable, user, communication, phone, navigation, gaming, audio, camera, messaging, media playback, and/or other type of electronic device, such as computing device102described with reference toFIGS. 1 and 2. In light of this, it is to be appreciated that various alternate embodiments can include additional components that are not described, or exclude components that are described, with respect to computing device1000.

Computing device1000includes communication devices1002that enable wired and/or wireless communication of device data1004(e.g., received data, data that is being received, data scheduled for broadcast, data packets of the data, etc.). The device data1004or other device content can include configuration settings of the device and/or information associated with a user of the device.

Computing device1000also includes communication interfaces1006that can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces1006provide a connection and/or communication links between computing device1000and a communication network by which other electronic, computing, and communication devices communicate data with computing device1000.

Computing device1000includes one or more processors1008(e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation of computing device1000and to implement embodiments of the techniques described herein. Alternatively or in addition, computing device1000can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at1010. Although not shown, computing device1000can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.

Computing device1000also includes computer-readable media1012, such as one or more memory components, examples of which include random access memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disc (CD), any type of a digital versatile disc (DVD), and the like.

Computer-readable media1012, when configured as computer-readable storage media, provides data storage mechanisms to store the device data1004, as well as various applications1014and any other types of information and/or data related to operational aspects of computing device1000. The applications1014can include a device manager (e.g., a control application, software application, signal processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, etc.).

Computing device1000also includes audio and/or video processing system1016that processes audio data and/or passes through the audio and video data to audio system1018and/or to display system1020(e.g., a screen of a smart phone or camera). Audio system1018and/or display system1020may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio component and/or to a display component via an RF link, S-video link, HDMI, composite video link, component video link, DVI, analog audio connection, or other similar communication link, such as media data port1022. In some implementations, audio system1018and/or display system1020are external components to computing device1000. Alternatively or additionally, display system1020can be an integrated component of the example electronic device, such as part of an integrated touch interface.

Computing device1000also includes a gesture component1024(e.g., the gesture sensing component104) that wirelessly identifies one or more features of a target object, such as a micro-gesture performed by a hand as further described above. Gesture component1024can be implemented as any suitable combination of hardware, software, firmware, and so forth. In some embodiments, gesture component1024is implemented as an SoC. Among other things, gesture component1024includes antennas1026, digital signal processing component1028, machine-learning component1030, and output logic component1032.

Antennas1026transmit and receive RF signals under the control of gesture sensor component. Each respective antenna of antennas1026can correspond to a respective transceiver path internal to gesture sensor component1024that physical routes and manages outgoing signals for transmission and the incoming signals for capture and analysis as further described above.

Digital signal processing component1028digitally processes RF signals received via antennas1026to extract information about the target object. This can be high-level information that simply identifies a target object, or lower level information that identifies a particular micro-gesture performed by a hand In some embodiments, digital signal processing component1028additionally configures outgoing RF signals for transmission on antennas1026. Some of the information extracted by digital signal processing component1028is used by machine-learning component1030. Digital signal processing component1028at times includes multiple digital signal processing algorithms that can be selected or deselected for an analysis, examples of which are provided above. Thus, digital signal processing component1028can generate key information from RF signals that can be used to determine what gesture might be occurring at any given moment.

Machine-learning component1030receives input data, such as a transformed raw signal or high-level information about a target object, and analyzes the input date to identify or classify various features contained within the data. As in the case above, machine-learning component1030can include multiple machine-learning algorithms that can be selected or deselected for an analysis. Among other things, machine-learning component1030can use the key information generated by digital signal processing component1028to detect relationships and/or correlations between the generated key information and previously learned gestures to probabilistically decide which gesture is being performed.

Output logic component1032logically filters output information generated by digital signal processing component1028and/or machine-learning component1030. Among other things, output logic component1032identifies when received information is redundant, and logically filters the redundancy out to an intended recipient.

Computing device1000also includes gesture sensor APIs1034, which are illustrated as being embodied on computer-readable media1012. Gesture sensor APIs1034provide programmatic access to gesture sensor component1024, examples of which are provided above. The programmatic access can range from high-level program access that obscures underlying details of how a function is implemented, to low-level programmatic access that enables access to hardware. In some cases, gesture sensor APIs1034can be used to send input configuration parameters associated with modifying operation of digital signal processing component1028, machine-learning component1030, output logic component1032, or any combination thereof, examples of which are provided above.

Although the embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the various embodiments defined in the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the various embodiments.