Foot sensor and other sensor pads

The enclosed describes a sensor pad for wearing on a human body. The sensor pad is configured to be in contact with a substrate having a contoured surface, such as a surface of the body. The sensor pad comprises at least a sensor layer and a stiffener layer. The sensor layer comprises a surface area defining a sensing area configured to measure value at a plurality of locations of the sensing area. The stiffener layer is couples to the surface area of the sensor layer. The stiffener layer has a micro-cut pattern to reduce mechanical resistance of the stiffener layer. The micro-cut pattern facilitates the stiffener layer in stretching or compressing in one or more predefined directions, enabling the stiffener lay to conform to the contoured surface of the substrate.

TECHNICAL FIELD

The disclosed embodiments generally relate to wearable sensors.

BACKGROUND

Due to the contoured surface and soft texture of the human body, taking accurate sensor readings of some portions of the body can be difficult. The curvature of surfaces of the human body renders rigid sensors ineffective as they cannot conform properly. Further, surfaces of the human body that one may want to take sensor readings of are frequently in contact with other contoured surfaces. For example, foot or hand sensing may be additionally complicated by the surface of a shoe or glove. As such, the human body is best measured with flexible sensors. However, flexible sensors may incur issues of their own such as bunching, folding, or movement of the sensor against the surface of the human body causing inaccurate readings.

SUMMARY

In some embodiments, a wearable sensor pad configured to be in contact with a surface of the human body is described. The sensor pad includes several layers including a sensing layer capable of detecting temperature, pressure, or other values via a capacitance sensor or other sensing mechanism. The sensing layer has multiple discrete sensing locations at which values can be detected. The sensing layer is supported by a stiffener layer that prevents the sensing layer from folding and harming electrical connections within. The stiffener layer is etched, cut, or otherwise marked with a micro-cut pattern. The micro-cut pattern reduces resistance of the stiffener layer and enables the stiffener layer to compress, stretch, or bend in a predefined direction and may cover all or a portion of the surface area of the stiffener layer.

In one embodiment, the wearable sensor takes the form of an insole for a shoe that uses a capacitive sensor. In this embodiment, the wearable sensor is shaped to fit into a shoe and match the contours of a foot. The capacitive sensor comprises two conductive layers surrounding a dielectric layer such that as a foot applies pressure to the sensor pad the layers are pushed together, varying the capacitance at the multiple sensing locations.

In some embodiments, the sensor pad has additional layers that may include a flexible enclosure of fabric or flexible materials that encapsulate the layers of the sensor and protect the interior layers. Other components of the sensor pad include perimeter stiffeners, wiring, and friction pads. The perimeter stiffeners are configured along the side of the sensor pad, away from the sensing area. The perimeter stiffeners provide locations at which the sensor pad can be folded to fit into a shoe while also protecting the wires along the perimeter of the sensing area (e.g., peripheral region) from being bent. The friction pads are also along areas of the sensor pad that are meant to be folded. The friction pads are configured to have a rough texture such that they increase friction between the sensor pad and the surface it is coupled to, such as the inside of a shoe.

In some embodiments, the electrical portion of the sensor pad includes two conductive layers, each layer having a series of wires. The series of wires on the two conductive layers run along different directions (e.g. non-parallel to each other) such that when the two conductive layers are overlayed the wires intersect at multiple locations, these locations being the sensing locations. The values at the sensing location are conducted through wires in the peripheral region through an electrical connector. The electrical connector may be attached to a wireless transmitter that enables the values to be communicated to a server or application.

In some embodiments, the sensor pad has an associated application with a user interface. The user interface of the application displays a visualization of the sensing values of the sensor pad. For example, in the embodiment of the sensor pad being an insole, the user interface may depict a pressure heat map or a gait graph.

DETAILED DESCRIPTION

Various embodiments of wearable sensor pads are described in detail below. The wearable sensor pad may exist in a network environment in which it is connected, through a wireless transmitter, to a network. The network further enables connection of the sensor pad to a server and application on which data gathered by the sensor pad can be processed, stored, and visualized. The sensor pad comprises several layers including a flexible enclosure, shielding layer, stiffener layer, conductive grid, dielectric, wiring, and perimeter stiffeners. Together the layers comprise a sensor pad capable of being conformed to contoured surfaces for comfortable wear and accurate sensing on the human body.

The figures (FIGs.) and the following description relate to preferred embodiments by way of illustration only. One of skill in the art may recognize alternative embodiments of the structures and methods disclosed herein as viable alternatives that may be employed without departing from the principles of what is disclosed.

Example System Environment

FIG.1is a block diagram illustrating an example system100in which the sensor pad150operates, in accordance with some embodiments. The system100includes network110, a computing server120, an application130with user interface135, a wireless transmitter140, and the sensor pad150. The sensor pad150gathers sampled values or signals and transmits them to the network110via the wireless transmitter140. In various embodiments, the system100includes fewer and additional components that are not shown inFIG.1.

While some of the components in the environment100may at times be described in a singular form while other components may be described in a plural form, the environment100may include one or more of each of the components. For simplicity, multiple instances of a type of entity or component in the environment100may be referred to in a singular form even though the system may include one or more such entities or components. Conversely, a component described in the plural form does not necessarily imply that more than one copy of the component is always needed in the environment100.

The network110may include any combination of local area and/or wide area networks using both wireless and/or wired communication systems. For example, the network110may include the Internet, as well as mobile telephone networks. In one embodiment, the network110uses standard communications technologies and/or protocols. Hence, the network110may include links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 2G/3G/4G mobile communications protocols, digital subscriber line (DSL), asynchronous transfer mode (ATM), InfiniBand, PCI Express Advanced Switching, etc. Similarly, the networking protocols used on the network110can include multiprotocol label switching (MPLS), the transmission control protocol/Internet protocol (TCP/IP), the User Datagram Protocol (UDP), the hypertext transport protocol (HTTP), the simple mail transfer protocol (SMTP), the file transfer protocol (FTP), etc. The data exchanged over the network110can be represented using technologies and/or formats including image data in binary form (e.g. Portable Network Graphics (PNG)), hypertext markup language (HTML), extensible markup language (XML), etc. In addition, all or some of links can be encrypted using conventional encryption technologies such as secure sockets layer (SSL), transport layer security (TLS), virtual private networks (VPNs), Internet Protocol security (IPsec), etc.

The computing server120stores data associated with the sensor pad150and may perform signal processing, data analysis, machine learning, and other prediction and inference processes interpreting data generated by the sensor pad150. For example, the computing server120may store biographical data of the user of the sensor pad150, the biographical data input to the application130. The server may also store a history of values detected by the sensor pad150which can be used to portray change over time in the user interface135. The computing server120is further configured to process raw data from the sensor pad and perform data analysis to make the data fit for display by the user interface135of the application130.

The application130may be hosted on a client device such as a smart phone, tablet, laptop, or other computer. The application130may be a platform that enables health tracking with sensors like the wearable sensor pad150. In one embodiment the application130may be in communication with multiple sensors.

In various embodiments the application130may take different forms. In one embodiment, the application130is a web application or a mobile application. In one embodiment, an application130is a web application that runs on JavaScript or other alternatives, such as TypeScript, etc. In the case of a web application, the application130may cooperate with a web browser, which is an example of user interface135, to render the visual elements and interactive fields of the application130. In another case, an application130is a mobile application. For example, the mobile application runs on Swift for iOS and other APPLE operating systems or on Java or another suitable language for ANDROID systems. In yet another case, an application130is a software program that operates on a desktop operating system such as LINUX, MICROSOFT WINDOWS, MAC OS, or CHROME OS.

In one embodiment, the computing server120manages and provides the application130. For example, the company operating the computing server120may be a cloud service provider that provides a front-end software application that can be installed, run, or displayed at a client device. For example, the company provides the applications130as a form of software as a service (SaaS). In one case, an example application130is published and made available by the company operating the computing server120at an application store (e.g. App store) of a mobile operating system.

The user interfaces135may be any suitable interfaces for receiving inputs from users and for communication with users. The user interfaces135may take different forms. In one embodiment, the user interface135is a web browser such as CHROME, FIREFOX, SAFARI, INTERNET EXPLORER, EDGE, etc. and the application135is a web application that is run by the web browser. In another application, the user interface135is part of the application130. For example, the user interface135is the front-end component of a mobile application or a desktop application. The user interface135also may be referred to as a graphical user interface (GUI) which includes graphical elements to display various elements of the application130. In another embodiment, the user interface135may not include graphical elements but communicates with the computing server120via other suitable ways such as application program interfaces (APIs).

The computing server120is one or more computing devices that process inputs from users and generate various results. In this disclosure, the servers120may collectively and singularly be referred to as a computing server120, even though the computing server120may include more than one computing device. For example, the computing server120is a pool of computing devices located at the same geographical location (e.g., a server room) or distributed geographically (e.g., cloud computing, distributed computing, or in a virtual server network). In some embodiments, the entity operating the computing server120may be the publisher of the application130, which communicates with the computing server120to download various data generated by the computing server120.

A computing device of the computing server120takes the form of software, hardware, or a combination thereof. For example, parts of the computing server120may be a PC, a tablet PC, a smartphone, an interne of things (IoT) appliance, or any machine capable of executing instructions that specify actions to be taken by that machine. Parts of the computing server120may include one or more processing units (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a controller, a state machine, one or more ASICs, one or more RFICs, or any combination of these) and a memory.

The wireless transmitter140receives data from the sensor pad and transmits it to the network110wirelessly. The wireless transmitter140may, for example, be a Bluetooth, WiFi, IR, or radio transmitter. In some embodiments the transmitter140may be a transceiver capable of both sending and receiving data from the network110. The wireless transmitter140may be physically connected to the sensor pad150, such as being a hardware component of the sensor pad150. For example, the wearable sensor pad150has an electrical connector that can be removably connected to a wireless transmitter140. The wireless transmitter140transmits signals generated by a sensor layer enclosed within a flexible enclosure of the wearable sensor pad. In an example, the wireless transmitter140may be part of the circuitry of the sensor pad150.

The sensor data generated by the sensor pad150may be processed in various ways, depending on embodiments. In one embodiment, the sensor pad150may upload the sensor data to the computing server120, which performs data processing and analysis and saves historical data in a data store. In another embodiment, the sensor pad150may be paired with a client device that operates the application130. For example, the sensor pad150may be paired, via BLUETOOTH, with a smart phone that is installed with a mobile application130. The client device receives the data from the sensor pad150and uploads the data to the computing server120. The application130may perform real-time data analysis and upload the data to the computing server120for further analysis. In some embodiments, the client device130may perform all data analysis without the use of a computing server120. The historical data collected may be uploaded to a cloud data store.

Example User Interface

FIG.2. is a conceptual diagram illustrating a user interface200associated with the sensor pad150, in accordance with some embodiments. The user interface200is an example embodiment of user interface135in the system100. The user interface200displays several visualizations of the data gathered by the sensor pad and processed by the computing server120or application130. For example, the sensor layer may include capacitive sensors that measure capacitance values that are proportional to the pressure exerted on the sensor pad150at various locations. The capacitance values may be processed and analyzed by the computing server120or application130. The processed data may be displayed as heatmaps202to demonstrate the pressure differential at various locations of the foot when a person walks or stands. The shaded areas of the heat map202having the same color represent the same approximate pressure. Darker shades may indicate higher pressure. In the shown embodiment of heat map202, there is a zone of higher pressure around the person's big toe and a zone of low pressure around the arch of the foot.

The application may also have other forms of data visualization. The application may further provide analysis of the person's gait such as a gait visualization206demonstrating the placement of the person's steps relative to each other. The gait visualization206may also include the changes in pressure readings in left foot and right foot over time to illustrate the stride pattern of the person. The user interface200may also include other metrics and statistics related to the person's grit, such as stride time, stride rate, step time, step rate, swing time, support time, swing and stance proportion, etc.

The user interface200may also illustrate the change of pressure or other variables over time based on data as recorded by the computing server120. This recorded data is displayed in the load graph204. The load graph204depicts several lines that vary in loading as time changes. Each line may, for example, represent a different area of the sensor pad (e.g. a different area of the foot), such as left or right toe, metatarsal, midfoot, and heel. The timeline may be scaled to zoom in to how the loading changes across the foot when the user takes a single step, or the timeline may be lengthened to see a change in loading of specific areas across a whole day of walking. In some embodiments, the lines of the load graph204may represent the readings of different sensors on the user's body. For example, the user may wear a sensor pad in both shoes and the loading graph204may compare the relative loading of each foot. The user interface may also include one or more data tables (not shown inFIG.2) that shows the pressure reading, statistics, and other metrics such as the average pressure, peak pressure, time of peak pressure, average load, peak load, time of peak load, and contact area size that are derived from the sensor data.

The application130may additionally provide various analyses and features such as gait lines, cyclograms, foot zones, graph pressure, contact area, load, automatic stance detection, frame or stance review, “runway” view, gait & stance statistics, cadence of steps, distance traveled, steps taken and average stances.

Wearable Sensor Pad

FIG.3is an exploded view of the layers of the sensor pad150, in accordance with some embodiments. The particular example of wearable sensor pad shown inFIG.3is an insole, but other wearable pads with various structures and features disclosed herein are also possible in various embodiments. Two layers of cover fabric form a flexible enclosure301that encloses the internal layers. A sensor layer305may include several sub-layers. For example, the sensor layer inFIG.3includes a grid capacitance sensor that includes two conductive grid layers308sandwiching a dielectric layer312. The perimeter stiffeners302are rigid stiffeners that restrict and define the folding pattern of the wearable sensor pad150. The sensing area stiffener layers306and the shielding layers304may have micro-cuts that allow the sensor layer to better conform with the potential contoured surface of the shoe floor. The friction pads314are located at one or more fold-up regions of the wearable sensor pad150. The friction pads314can be frictionally coupled to the interior wall of a shoe. Conductive shielding layers304may be bonded to the stiffener layer to prevent sensor coupling, noise, and offsets. The shielding layers304prevent the capacitance sensor from coupling with other objects.

The sensor layer may include one or more capacitive sensors or other suitable sensors such as pressure sensors, resistive sensors, inductive sensors, piezoelectric sensors. While capacitive sensors are used as examples, the disclosure is not limited to capacitive sensors. The sensor layer can be associated with a sensor grid structure that measures different sensor values at various location of a sensing area defined by the sensor grid structure. The sensor layer generates sensor signals that are transmitted to the data processing server for processing and analysis. The sensor signals may be sampled at a certain rate (e.g., 150 fps).

Perimeter stiffeners302, stiffener layers304, and friction pads314control how the sensor may be bent as other materials in the layer stackup are more flexible. This allows the electrical bonds to bend up and away from the sensing area while also forming a heel cup when the insole is inserted into a shoe. Frictions pads314are on peripheral tabs which can be bent up away from the sensing area when the insole is inserted into a shoe. In this configuration, the friction pads are facing the walls of the shoe at the heel and assist in securing the sensor's position.

Stiffener layer306and shielding304may be bonded. Micro-cuts are applied to the bonded materials allowing for flexibility which can be controlled by varying the micro-cut density and pattern. Example patterns of the micro-cuts are described further inFIGS.6and7. The stack is also of low compressibility to prevent any interference with pressure transmission to the sensor.

Stiffener layers306prevent slippage of sensing elements in shoe. The stiffener layers306are bonded to at least a majority of the surface area of the sensor layer. The stiffener layers306prevent wrinkles and creasing, allowing the sensor pad150to stick better to the shoe floor when in motion rather than to the user's foot which improves comfort. By ensuring the sensor pad150remains stationary to the shoe rather than the foot, the wearable sensor pad is less perceptible to the wearer.

The sensor layer may include sub-layers such as two layers of conductive grids. The conductive grid layers may include parallel conductive lines which are each bonded to a wire conductor at one end. The grid forms a number of sensing locations, each of which can take an independent measurement of sensor values. The wearable sensor pad transmits the sensor values to a data processing server to generate a heatmap that can be displayed at a GUI.

FIG.4is a zoomed-in view of the conductive grid404, in accordance with some embodiments. The conductive grid includes wires406and thermoplastic strain relief402. The wires comprises conductive and flexible material that may be sealed or surrounded in an insulating material. The thermoplastic strain relief402is a flexible material between the wires that is not conductive. The thermoplastic strain relief402provides a minimum bend radius to prevent a wire stress fracture from bending or folding of the conductive grid404.

FIG.5is an illustration of the layers of the conductive grid502, in accordance with some embodiments. The conductive grid502ofFIG.5is an example of conductive grid404that exhibits two conductive layers504and506on top of each other to form a grid of intersecting wires. The first conductive layer504is composed of a first series of wires512running parallel to each other in a first direction508. The first conductive layer additional has an electrical connector516that may connect the sensor pad150to the wireless transmitter140. The second conductive layer506is comprised of a second series of wires514running parallel to each other in a second direction510that is different from the first direction. The second conductive layer506may additionally have an electrical connector516connecting the sensor pad150to the wireless transmitter140. The electrical connector516may be a wire, socket, flexible circuit, cable, or wireless transmitter. While the embodiment shown inFIG.5is a protruding member of the sensor pad, the electrical connector may also take another form. The first and second conductive layers504and506are coupled (e.g., overlayed on each other) such that the first series of wires512and second series of wires514create a conductive grid502. The first and second series of wires512and514have their wires running in perpendicular directions (508and510) and thus form a grid of wire intersections. Each intersection comprises a sensing location at which a discrete value can be sensed. As such, the grid generates a matrix of pressure readings. Each intersection of the grid defines a coordinate in a two-dimensional pressure dataset. The first direction508and second direction510of the first and second series of wires do not have to be perpendicular. The first and second series of wires512and614may comprise any number of wires, with more wires providing more sensing locations and better sensing resolution.

Micro-cuts in the stiffener layers306or shielding layers304may improve flexibility and conformability and prevent image artifacts associated with the pressure data, while improving sensor image quality. In some embodiments, the material of the stiffener and shielding layers304and306may have a low compressibility so as not to interfere with transmission of pressure to the sensor. Variations in cut pattern or density allow stiffness and conformability to vary in different regions of the sensor as needed. In some embodiments, the micro cuts take the form of cuts that do not penetrate through an entire layer of stiffener layer306or shielding layer304. In other embodiments, the micro cuts may cut through one of the layers but not the other layer.

FIG.6includes illustrations of micro-cut patterns602and604that may be marked into layers of the sensor pad in accordance with some embodiments. The micro-cut patterns602and604may be inscribed, cut, or otherwise etched onto the shielding304and stiffener306layers. The depth of the etching may be varied to vary flexibility of the etched layer such that, for example, a deeper etching may make the layer more flexible. Micro-cut patterns may be designed in a way that enables flexibility of the material in a one or more predefined directions708. The 3 axis micro-cut pattern602enables flexibility of the material in 3 axes while the 2 axis micro-cut pattern604enables flexibility of the material in 2 axes. The one or more predefined directions708of flexibility can vary by changing the pattern or its orientation on the material of the layer. The micro-cut pattern reduces resistance of the stiffener layer in the one or more predefined directions708to enhance the sensor layer stretching or compressing in the one or more predefined directions708to conform with the contoured surface of the substrate.

A layer with the micro-cuts may provide structural support in the directions parallel to the shoe floor but offer lower or almost no resistance in the perpendicular direction. This is to prevent the structure of the sensor itself from absorbing any of the pressures being transmitted to the shoe floor. For example, imagine trying to wrap a sphere with a flat sheet of paper. The paper will need to be folded and overlapped because there is excess material with nowhere to go. The micro-cuts allow the wearable sensor pad to stretch or compress ever so slightly to conform to the shoe floor so that the wearable sensor pad is measuring the pressure which actually occurs at that interface. Creases or folds in the sensor would be measured as false pressures in the image. In another situation, if the sensor is too flexible, it can ball up underneath the foot during any walking/running motion. This may create folds in the sensor or produces contact between the wearer and the sensor that otherwise not have occurred if the sensor remained on the shoe floor, thus producing false pressures.

FIG.7is an illustration of micro-cut pattern placement on the sensor pad in accordance with some embodiments. Depending on the embodiment, some layers of a sensor pad150may be etched with a micro-cut pattern702on the whole surface area of the layer, as seen on the left side ofFIG.7. However, other embodiments may only have a portion of the surface area of the layer etched with the micro-cut pattern702and the rest an uncut region704. The uncut region704will not have the added flexibility of the region with the micro-cut pattern702. In some embodiments having an uncut region704may be beneficial. For example, in the embodiment of the sensor pad150being an insole, the uncut region704may be placed under the arch of the foot where there is unlikely much compression on the sensor pad which decreased the need for flexibility and contouring to the foot or shoe surface. In other embodiments the sensor pad150may have different micro cut patterns702such as patterns602and604in different regions of the layer. Varying the micro-cut pattern702may allow for some regions to flex more than others as needed.

The stiffener layers are produced from a pre-prepared material stack-up of conductive fabric, lamination adhesive, and mylar plastic sheet in that order. The completed stack is then cut (laser-cut, die cut, etc.) into the sensor shape with the desired micro-cut pattern. This stack-up of materials acts as electronic shielding to improve recorded data while allowing flexibility for the wearable sensor pad to conform the contours of the shoe or other substrate and simultaneously ensuring the structural integrity of the sensor. This conformity allows the sensor to better stick to the shoe bottom rather than the wearer, thus improving comfort during use. The materials are of low compressibility as to not interfere with the transmission of pressure to the sensor.

Exemplary Configuration

FIG.8is an illustration of the placement of various components of a sensor pad150in accordance with some embodiments. In the shown embodiment the sensor pad150is in the form of an insole to be put in a shoe. The view shown inFIG.8shows a top down view of the placement of components of the sensor pad150as outlines. Note that the multiple layers shown inFIG.3are not shown here for simplicity. All of the components depicted inFIG.8are sealed in the flexible enclosure.

The foot shape at the center of the wearable sensor pad150is the sensing area802of the pad. The sensing area802may be comprised of conductive grid layers308, wiring310, and dielectric312with the conductive grid configured as shown inFIG.5to provide sensing locations. Shielding304and stiffener306layers are stacked on top of the layers making up the sensing area802to protect the electronics and provide structure to the sensor pad150. The layers are then encapsulated by the flexible enclosure301.

Beyond the edges of the sensing region802is the peripheral region804. The peripheral regions are foldable upwards when the insole is inserted into a shoe and house the wiring808and electrical connectors of the sensor pad150. Electrical wirings and bonding of the wirings with the conductive layers can be located outside of the sensing area802in the peripheral region804such that electrical connections516wrap up on side of the foot, without interfering with the sensor pad150fit. The conductive grid of the sensing area802may not extend into the peripheral region804such that the peripheral region804does not provide sensor data of the side portions of the foot.

The rigid perimeter stiffeners302, which may be referred to as strain reliefs, may serve two or more purposes. First, the rigid perimeter stiffeners302define the folding and bending points of the wearable sensor pad. Second, rigid perimeter stiffeners302protect the electrical wiring that run along the perimeter of the wearable sensor pad from being mechanically damaged. The perimeter stiffeners302may be formed from a thermoplastic urethane material or a more rigid Mylar material. In various embodiments, the shape and number of pieces may vary.

FIG.9is an illustration of the sensor pad150in a shoe902in accordance with some embodiments. In this embodiment, the substrate that the sensor pad150, in the form of an insole, rests on is a shoe902. The sensing area802is on the interior bottom of the shoe where a foot rests, while the peripheral region804is folded up along the interior side of the shoe. The electrical connector that couples the sensor pad150to a wireless transmitter140folds upward away from the sensing area802to wrap toward the leg of the user. In some embodiments the sensing area802may be in a variety of sizes to best fit the shoe and foot of the user without bending the sensing area802.

FIG.10is a zoomed-in view of the heel906of a shoe in which the sensor pad150is placed in accordance with some embodiments. The interior of the shoe heel906has a contoured surface1004against which friction pads314of the sensor pad150rest. The friction pads314have a first surface1006that is textured to increase friction between the sensor pad150and the contoured surface1004to frictionally couple the two and prevent the sensor pad150from slipping in the shoe. The second surface1008of the friction pad314faces the interior of the shoe and comes into contact with the user's heel or Achilles tendon region. In some embodiments there are multiple friction pads314. The multiple friction pads fold upward away from the sensing area802and flex to fit the contoured surface1004and form a heel cup1002. The heel cup1002cradles the user's heel for comfort and stability of the sensor pad150. The heel cup1002prevents movement of the sensor by providing a pocket for the heel. Friction pads314at the heel further prevent sensor movement and define how the heel folds to create a consistent heel cup each time.

Additional Considerations

Any feature mentioned in one claim category, e.g. method, can be claimed in another claim category, e.g. computer program product, system, storage medium, as well. The dependencies or references back in the attached claims are chosen for formal reasons only. However, any subject matter resulting from a deliberate reference back to any previous claims (in particular multiple dependencies) can be claimed as well, so that any combination of claims and the features thereof is disclosed and can be claimed regardless of the dependencies chosen in the attached claims. The subject-matter may include not only the combinations of features as set out in the disclosed embodiments but also any other combination of features from different embodiments. Various features mentioned in the different embodiments can be combined with explicit mentioning of such combination or arrangement in an example embodiment or without any explicit mentioning. Furthermore, any of the embodiments and features described or depicted herein may be claimed in a separate claim and/or in any combination with any embodiment or feature described or depicted herein or with any of the features.

Some portions of this description describe the embodiments in terms of algorithms and symbolic representations of operations on information. These operations and algorithmic descriptions, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as engines, without loss of generality. The described operations and their associated engines may be embodied in software, firmware, hardware, or any combinations thereof.

Any of the steps, operations, or processes described herein may be performed or implemented with one or more hardware or software engines, alone or in combination with other devices. In one embodiment, a software engine is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor for performing any or all of the steps, operations, or processes described. The term “steps” does not mandate or imply a particular order. For example, while this disclosure may describe a process that includes multiple steps sequentially with arrows present in a flowchart, the steps in the process do not need to be performed by the specific order claimed or described in the disclosure. Some steps may be performed before others even though the other steps are claimed or described first in this disclosure. Likewise, any use of (i), (ii), (iii), etc., or (a), (b), (c), etc. in the specification or in the claims, unless specified, is used to better enumerate items or steps and also does not mandate a particular order.

Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein. In addition, the term “each” used in the specification and claims does not imply that every or all elements in a group need to fit the description associated with the term “each.” For example, “each member is associated with element A” does not always imply that all members are associated with an element A. Instead, the term “each” only implies that a member (of some of the members), in a singular form, is associated with an element A. In claims, the use of a singular form of a noun may imply at least one element even though a plural form is not used.