CROSS-REFERENCE TO RELATED APPLICATIONSThis application is related to U.S. Provisional Application No. 60/990,817 (Attorney Docket No. MIT-007PR), filed Nov. 28, 2007, hereby expressly incorporated by reference in its entirety for all purposes.
FIELD OF THE INVENTIONThe present invention relates, in general, to sensing equilibrium in a person, and more particularly, to using sensors in footwear to sense and display equilibrium information.
BACKGROUND OF THE INVENTIONWhile some people have excellent posture, many people have poor posture. Poor posture can lead to postural instability as a person ages and/or when the person is injured. Other causes for postural instability include the return of a person from a zero gravity environment, a lack of exercise, and/or an injury. While a person's postural stability may be measured in a lab environment currently, the high cost, limited availability, and inability to gather data throughout daily activities limits access to such devices for posture measurement for a majority of the population. As such, analysis for many segments of the population that would otherwise benefit from detection and correction of postural stability is not obtained. Hence, there is a need for improved methods and systems in the art.
BRIEF SUMMARY OF THE INVENTIONEmbodiments of the present invention provide devices, systems, and methods for determining equilibrium in a user. Some embodiments of the present invention comprise a device including input sensors and a communications module. In one embodiment the input sensors and the communications module are housed in a shoe insole. In an alternate embodiment, the input sensors and the communications module are housed in an article of footwear such that the input sensors are in the insole portion of the article of footwear. Embodiments of the communications module may be configured to read the input sensors and transmit the sensor information to an external device over a communications link such as, for example, a Bluetooth wireless network.
Some embodiments of the present invention describe systems comprising an article of footwear including pressure sensors, a first communications module coupled with the pressure sensors, a second communications module coupled with the first communications module, a stability processing module, a postural analysis module, and a display device. The first communications module reads the pressure sensors and transmits the pressure information to the second communications module. The second communications module receives the pressure information and relays the information to the stability processing module. The stability processing module determines postural stability metrics and may display the postural stability metrics on the display device.
In one embodiment, a method for determining equilibrium in a user may include using pressure sensors to sense pressure at different locations under a persons feet. The method may further include transmitting the pressure information and receiving the pressure information. The method may then include calculating the current postural state, the next postural state, and/or a range of postural stability. Further, the method may include notifying the person or a third party monitoring person if the next postural state meets a predetermined condition.
In an alternate embodiment a method for determining equilibrium in a user may include the steps of receiving pressure information from one or more pressure sensors and calculating a range of postural stability from the pressure information. The method may further include receiving additional pressure information from the pressure sensors and calculating the next postural state of a person using the pressure information and the range of postural stability. Further, the method may include notifying the person and/or a third party monitoring person if the next postural state meets a predetermined condition.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram illustrating a system for measuring postural stability using a pressure sensing device, according to one embodiment of the present invention.
FIG. 2 is a block diagram illustrating a pressure sensing device in a shoe insole, according to one embodiment of the present invention.
FIG. 3 is a block diagram illustrating components of a communications module used in a pressure sensing apparatus, according to one embodiment of the present invention.
FIG. 4A is a block diagram illustrating example equilibrium safe zones of postural stability, according to one embodiment of the present invention.
FIG. 4B is a block diagram illustrating an example punctuated equilibrium, according to one embodiment of the present invention.
FIG. 5 is a block diagram illustrating a state diagram for calculating the next postural state from one or more past postural states, according to one embodiment of the present invention.
FIG. 6 is a block diagram illustrating a system for measuring postural stability using a pressure sensing shoe insole, according to one embodiment of the present invention.
FIG. 7 is a block diagram illustrating a system for measuring postural stability using a pressure sensing shoe insole, according to one embodiment of the present invention.
FIG. 8 is a block diagram illustrating a system for measuring postural stability using a pressure sensing scale or mat, according to one embodiment of the present invention.
FIG. 9 is a block diagram illustrating a pressure sensing device contained in a shoe, according to one embodiment of the present invention.
FIG. 10 is a block diagram illustrating a pressure sensing device contained in a horseshoe, according to one embodiment of the present invention.
FIG. 11 is a block diagram illustrating a shoe insole apparatus for measuring postural stability, according to one embodiment of the present invention.
FIG. 12 is a block diagram illustrating methods for measuring equilibrium in a user and notifying the user of unstable posture, according to one embodiment of the present invention.
FIG. 13 is a block diagram illustrating methods for determining the next postural state of a person based on pressure information, according to one embodiment of the present invention.
FIG. 14 is a block diagram illustrating components of a computing device used in a system for measuring postural stability, according to one embodiment of the present invention.
In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a letter designation that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label.
DETAILED DESCRIPTION OF THE INVENTIONIn general, aspects of the present invention relate to methods and systems for monitoring a person's postural state (e.g., standing, falling, etc.). The postural state information can be used to notify the person and/or a third party monitoring person if the person's postural state indicates a stable state, an unstable state, compromised state (e.g., drunkenness, hypoxia, sprained appendage, broken appendage, etc.) and/or a partially stable state. Additionally the postural state information can be used to calculate metrics regarding postural stability and display the metrics to the person and/or a third party.
Specific details are given in the description to provide a thorough understanding of various embodiments of the present invention. It will be apparent, however, to one skilled in the art that embodiments of the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices will be shown without unnecessary detail in order to avoid obscuring the embodiments.
The ensuing description provides exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.
Furthermore, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.
According to one embodiment of the present invention,FIG. 1 is exemplary of asystem100 for monitoring a person's postural stability. In the exemplary embodiment, the system comprisespressure sensing devices120aand120b(generally120) worn by aperson110, and acomputing device140.Pressure sensing devices120 measure and transmit pressure information over a communications link130 tocomputing device140. In one embodimentpressure sensing devices120 are piezoelectric force sensors. In some embodiments,computing device140 is a special purpose device designed to be used instability monitoring system100. In alternateembodiments computing device140 is a general purpose device such as a personal computer, laptop, PDA or smart phone. Merely by way of example, communications link130 is shown as a radio frequency (RF) link, but it will be appreciated that communications link may comprise any type of wired or wireless link known in the art.
FIG. 2 illustrates one embodiment ofpressure sensing devices120. In the exemplary embodiment,pressure sensing devices120 compriseshoe insoles210aand210b(generally210) which includeinput sensors220aand220b(generally220) andcommunication modules240aand240b(generally240). In an alternative embodiment, instead of shoe insoles a scale (e.g., a medical scale), a mat, a ski boot, a ski, or any other footwear may be used to housesensors220aand220bas well ascommunications modules240aand240b.Theinput sensors220 measure sensor information (e.g. pressure information, etc.). The sensor information is transmitted from theinput sensors220 to thecommunications modules240. For example theinput sensors220 may be pressure sensors, and transmission from theinput sensors220 to thecommunications module240 can be via wires (not shown) embedded in the insole210. Merely by way of example, the input sensors may be FlexiForce® Piezoresistive Load/Force Sensors made by Tekscan, Inc., global positioning sensors (GPS), accelerometers, gyrometers, etc.
In one embodiment, a mat and/or medical scale may housesensors220aand220bas well ascommunications modules240aand240bin order to capture and transmit pressure data and, therefore, gather equilibrium data about a person, according to aspects of the present invention. For example, a patient with balance, coordination, and other equilibrium problems may be placed on the medical scale or mat, and a medical professional may monitor the patient's equilibrium. The medical professional would receive detailed real-time information about the patient's balance, coordination, and equilibrium, and accordingly make a medical diagnosis. Furthermore, the medical professional can take corrective action based on the gathered data to fix problems with the patient's balance, coordination, and/or equilibrium. Furthermore, each of the embodiments of the present invention described herein can be implemented using such a mat or scale described above as opposed to using footwear, or the like.
The shoe insoles210 may be manufactured from suitable insole materials including, without limitation, foam, rubber, plastic, cork, and/or other materials suitable for shoe insole construction. It will be appreciated that the material selection may be determined from factors, including without limitation, durability, flexibility, and/or protection of internal components.
Thecommunications modules240 may read theinput sensors220, generate sensor information, and transmit the sensor information to thecomputing device140. Thecommunications modules240 may optionally buffer the sensor information before transmitting it to the external device. Thecommunications modules240 may transmit the data tocomputing device140 using communications link130. The communications link may be a Radio Frequency link (RF), an infrared link, a Wi-Fi link, a USB link, a Firewire link, or any other wired or wireless link known in the art. Additionally, the communications modules may optionally perform other processing steps on the sensor information before transmitting the sensor information to the computing device140 (e.g. linearity correction, data transform, etc.).
While the exemplary shoe insoles shown inFIG. 2 have twoinput sensors220 per insole210, one in the forefoot and one in the heel, it may be desirable to have any number of input sensors in each insole, placement of input sensors in a variety of locations, and possibly different numbers of input sensors in each insole. It may be appreciated that the number ofinput sensors220 used in thepressure sensing device120 may determine the dimensionality of information from theinput sensors220. For example, one pressure sensor in each insole would provide one dimension of pressure information indicating center of mass in the left to right direction, while two pressure sensors per insole, one in the heel and one in the forefoot would provide two dimensions of pressure information indicating the center of mass relative to both the left to right and anterior to posterior directions. It will be appreciated by one skilled in the art that sensor number and position may be adapted for various applications that require different dimensionality of postural stability information.
FIG. 3 shows a simplified block diagram of one embodiment ofcommunications module240. As illustrated,communications module240 may contain one or moresensor biasing circuits305, one or moresensor measuring circuits310,processing circuit315, andcommunications circuit320. Thecommunications module240 also may optionally includeprogram memory325 and/orbuffer memory330.Sensor biasing circuit305 may contain amplifiers and/or other active or passive components required to provide excitation, linearity compensation, and/or gain of theinput sensors220 for the required sensitivity.Communications module240 may have one sensor biasing circuit for eachinput sensor220. It will be appreciated thatcommunications module240 may comprise one or more integrated circuits (e.g. microcontroller, etc.), and/or discrete components on a printed circuit board, a flexible printed circuit board, or other electronic packaging technology. A power source such as a battery may be attached by any suitable arrangement for providing power to the circuits of thecommunications module240. In addition, energy harvesting may be used as an alternative energy source.
In the exemplary embodiment described above,sensor measuring circuit310 samples the output of theinput sensors220 driven bysensor biasing circuits305 and produces digital data values.Sensor measuring circuit310 may have an internal timing circuit to determine the sampling frequency, or alternately the sampling frequency may be determined by processingdevice315.Processing circuit315 receives the digital data values from thesensor measuring circuit310, can write and read pressure data values frombuffer memory330, and transfer pressure data values tocommunications circuit320.Processing circuit315 may write the pressure data values to buffermemory330 for a predetermined period of time, or untilbuffer memory330 has received a certain quantity of pressure data values, at whichtime processing circuit315 may read a quantity of pressure data values frombuffer memory330 and transfer the quantity of pressure data values tocommunications circuit320.Communications circuit320 may receive the pressure data values from processingdevice315 and transmit the pressure data values over communications link130 tocomputing device140. For example,buffer memory330 may be a 256 MB memory, andprocessing circuit315 may write the pressure data values to buffermemory330 untilbuffer memory330 is at full capacity or close to full capacity (e.g. 90% capacity, 95% capacity, etc.), at whichtime processing circuit315 reads the pressure data values previously written tobuffer memory330 and transfers the pressure data values tocommunications circuit320 to be transmitted over communications link130 tocomputing device140. It will be appreciated that design considerations such as buffer memory size, power consumption, system cost, and/or communications link parameters may be considered in determining the quantity of pressure data values stored and/or the period of time that data values are stored inbuffer memory330 before the transmission of a quantity of data values bycommunications circuit320.
Sensor measuring circuit310 may contain analog to digital converters (ADCs), timers, and other discrete or integrated components used to convert the analog output of theinput sensors220 to digital data values.Processing circuit315 can comprise any general purpose processor, a microprocessor, and/or other suitably configured discrete or integrated circuit elements.Program memory325 may be any type of non-volatile storage medium including solid-state devices such as EPROM, EEPROM, FLASH, MRAM, or similar components for data storage.Buffer memory330 may be any type of volatile or non-volatile storage element including solid-state devices such as DRAM, SRAM, FLASH, MRAM, or similar components for data storage.Communications circuit320 may transmit and receive data over any type of communications link, for example,communications circuit320 may comprise a wireless transceiver utilizing an RF network such as a Bluetooth network.Communications circuit320 may include authentication capability to limit transfer of pressure information from insoles of one person to only authorized devices. Additionallycommunications circuit320 may encrypt data before transmission in order to prevent unauthorized access of the information.
In an illustrative embodiment ofstability measurement device120, theinput sensors220 are piezoresistive force sensors connected by wires in insole210 to thecommunications module240. Thecommunications module240 may containsensor biasing circuits305 which provide excitation voltage and amplification to thepiezoresistive force sensors220, resulting in a force to voltage conversion.Sensor measuring circuits310 may sample the analog sensor output at a sampling rate of 100 Hz and produce digital pressure information. The digital pressure information may be stored in anon-volatile buffer memory330 and periodically read by processingcircuit315 and transmitted bycommunications circuit320 tocomputing device140 over aBluetooth network130. In alternate embodiments, other types ofinput sensors220 may be used, different sample rates may be used, another type of communications link130 may be used, other types ofbuffer memory330 may be used, etc. as may be desirable in a particular embodiment.
Computing device140 contains instructions on a machine readable medium to receive the pressure information from thepressure sensing device120 and determine postural state information. In some examples,computing device140 determines the current postural state by calculating the center of force of the person. Additionally computingdevice140 may calculate the next postural state.Computing device140 may utilize a Hidden Markov Model (HMM) calculation to determine the current and/or next postural state. The HMM calculation utilizes a set of probabilities for each postural state to determine the next postural state. If the next postural state is stable, then computingdevice140 continues to monitor the person. If the next postural state is unstable, then computingdevice140 may notify and/or alert the person and/or a third party of such instability.
In some examples, the determination of the next, current, and/or past postural states utilizes a posterior decoding algorithm, a Bayesian segmentation, a graphical model, a choice-point method, and/or any other type of algorithm that classifies time periods into static and/or dynamic periods. A dynamic Bayesian network can be, for example, utilized to determine the next and/or past postural states based on the current postural state.
In other examples, the determination of the next, current, and/or past postural states utilizes a forward algorithm, a Viterbi algorithm, a forwards-backwards algorithm, Baum-Welch algorithm, and/or any other type of algorithm that classifies time periods into static and/or dynamic periods. The forwards-backwards algorithm or Viterbi algorithm can be, for example, utilized to determine the probability of the next state (e.g., dynamic, equilibrium). The Baum-Welch algorithm can be, for example, utilized to determine the range of postural stability and/or the probabilities of transitioning between states. In some examples, the HMM calculation determines the next state, the current state, and/or one or more past states (e.g., five, ten). The HMM calculation can be, for example, utilized to determine the probabilities of the sequence of the past states, the current state, and/or the next state. The sequence of the past states can be, for example, utilized to calculate the probability of the next state.
Thecomputing device140 may perform postural analysis using the postural state information to monitor, track, and/or notify the person regarding their postural states. The postural analysis can, for example, comprise storing the postural state information for historical analysis by the person being monitored and/or a third party monitoring person (e.g. doctor, physical therapist, personal trainer, etc.). In some examples the postural analysis can comprise determining metrics including activity information (e.g. walking, running, sitting, equilibrium and dynamic states (which highlight the punctuated nature of, for example, standing), etc.), performance information (e.g., time spent walking, time spent running, etc.), and/or fatigue information (e.g. time spent close to outer range of postural stability, time spent close to center of postural stability, etc.). In other examples the postural analysis can comprise generating diagnostic information (e.g., limp, lameness, neural condition, muscular condition, vision-related condition, etc.), a statistic (e.g. percentage of time running, percentage of time sitting, etc.), a score (e.g. number of falls per day, average number of falls per month, etc.), a simulation (e.g. with increased physical therapy will the number of falls decrease, with increased training can the athlete distribute his/her mass better, etc.), and/or any other type of metric based on the stored postural state information. Thecomputing device140 can display the metric information, the statistic, the score, and/or the simulation for use by the person being monitored and/or the third party utilizing the display device. The computing device can alternately store the metric information, the statistic, the score, and/or the simulation for further analysis.
In some examples,computing device140 determines the range of postural stability for a person utilizingpressure sensing device120. The range of postural stability can be, for example, unique for the person since the range of postural stability can be affected by age, activity level, postural stance, weight, medical history, and/or any other factor that can affect a person's posture. In other examples, the range of postural stability is determined based on sensor information which is stored by thecomputing device140. The range of postural stability can be determined, for example, by processing the stable postural states to determine the range of stable postural states. The determination of the range of the postural stability can occur, for example, in real-time while the user is wearing thepressure sensing device120. In some examples, the range of postural stability is based on a person's center of gravity. A person's center of gravity can vary, for example, in a range because a human can be modeled as an inverted pendulum in which an upright stance is an unstable equilibrium. Since small natural center of mass deviations (e.g., breathing, limb movements, head movement) can disrupt the equilibrium, then the pendulum (i.e., the person) can tip over without appropriate sensory-motor control. Generally, standing posture utilizes subconscious sensory feedback mechanisms (e.g., vision, tactile sensations, vestibular organs) to maintain upright stance (i.e., a stable postural state). An advantage of determining the postural stability of a person is that the person can have a real-time readout of their capacity to balance at any given point in time. Alternatively, the device may be used to determine postural stability and balance in robots, animals (e.g., horses, donkeys), etc.
AlthoughFIG. 1 illustrates thecomputing device140 associated with theperson110 that is associated with the sensor information, thecomputing device140 can be utilized by a third party (e.g. doctor, physical therapist, personal trainer, etc.) to track the postural states of the person (e.g., a patient, an athlete, etc.). In one embodiment, thecomputing device140 may be used by the third parties to track the progress of a patient as the patient relearns and/or refines skills such as standing, walking, and/or running.
In some examples, the range of postural stability is pre-determined for the person based on preset parameters. For example, there can be preset parameters based on a person's age, weight, height, activity level, and/or any other type of parameter associated with posture. In some examples, the range of postural stability is a global optimum. The global optimum indicates, for example, that there is a single optimal point for upright posture. If a person is not at the optimum, then the person's body always directs the person towards the optimum.
In other examples, the range of postural stability is a safe zone.FIG. 4A illustrates an examplesafe zone405 with center of force from left-foot to right-foot plotted on the X-axis and center of force in the anterior to posterior direction plotted on the Y-axis. The safe zone can be, for example, a zone of upright posture. Inside this zone, a person is stable with regard to postural stability and a person moves around this zone at random. Every person can, for example, have a safe zone. The safe zone for every person can be, for example, unique from other safe zones as illustrated bysafe zones410, and415 for other persons.
In some examples, the range of postural stability is a punctuated equilibrium. The punctuated equilibrium can be, for example, a safe zone with a constant turnover of transient equilibria. The transient equilibria form, persist, and dissipate following control failure (e.g., not in equilibrium, including falling down). Following a control failure, a new equilibria forms and control is restored.FIG. 4B illustrates an exemplary punctuatedequilibrium420. In punctuatedequilibrium420, a firsttransient equilibria430 forms, persists, and dissipates throughdynamic trajectory435, momentarily leaving punctuatedequilibrium420, but returning to a secondtransient equilibria440. Subsequently, the secondtransient equilibria440 dissipates throughdynamic trajectory445, leading to a thirdtransient equilibria450. Thirdtransient equilibria450 persists and dissipates throughdynamic trajectory455 leading to escape from punctuatedequilibrium420. Furthermore, dynamic trajectories may lead to new equilibria (i.e., “escape” trajectories) and while other dynamic trajectories lead back to the old equilibrium (i.e., non-escape dynamic trajectories, or “return” trajectories). One way to determine the difference between the two types of dynamic trajectories is that if a dynamic trajectory starts and ends in roughly the same place, then it is a “return” trajectory, otherwise it is an “escape” trajectory.
It may be desirable to determine the probabilities of transition between postural states. The probabilities can be, for example, determined based on the stored sensor information and/or the range of postural stability. For example, the HMM calculation utilizes various states (e.g., current state, one or more past states) and the probabilities of the hidden states (e.g., current state, one or more past states) to determine the next postural state.FIG. 5 illustrates an example flowchart for determining the probability of the next postural state, according to one embodiment of the present invention. For example, ifFIG. 5 is utilized in conjunction with Table 1 and Table 2, then the probability of the next postural state can be determined. Si, Si+1,Si+2, and Si+3represent the states and Oi, Oi+1, Oi+2, and Oi+3represent the possible observations.
| TABLE 1 |
|
| Emission Probability |
| Oi | Fast Velocity | 0.2 | 0.7 |
| Slow Velocity | 0.8 | 0.3 |
|
| TABLE 2 |
|
| Transition Probability |
| Si | Equilibrium | 0.98 | 0.02 |
| Equilibrium | 0.32 | 0.68 |
|
In some examples, theobservation Oi510 is utilized with the past states (e.g., S1−1, Si−2, Si−3, etc. (not shown)) and the probabilities of the sequence of the past states to determine the probability of thecurrent state Si505. The probabilities of theobservation Oi510 in the emission probability, Table 1, and the transition probability, Table 2, can be, for example, utilized together to determine the probability of the current state Si505 and/or thenext state Si+1515. For example, if the past four states were in equilibrium, then the probability that the current state will stay in equilibrium, the probability that the current state will change to dynamic, and the probability of the state associated with the observation are all utilized to determine the current state and/or the next state. As another example, if the sequence of the past four states is equilibrium, dynamic, equilibrium, and equilibrium, then the probability of these transitions in relation to each other, the probability of the current state changing or staying the same (in this example, equilibrium), and the probability of the state associated with the observation are utilized to determine the current state and/or the next state. An advantage is that the context of the transitions and/or no transitions between the past states is utilized to determine the next state thereby providing the calculation with a history. In some examples, the dynamic state represents three possible outcomes. The three possible outcomes are return to present equilibrium, transition to new equilibrium, or falling down. In other examples, the observations include sitting, standing, kneeling, lying down, falling, and/or any other postural position of a person. In yet other examples, the observations (e.g., Oi) include any type of observation of postural state (e.g., falling, standing, running, walking, etc.). In some examples, velocity includes the center of mass velocity for the structure. The center of mass velocity can be, for example, measured by the input sensors (e.g., pressure sensors). The slow velocity and fast velocity can be, for example, relative such that what is slow for one person is fast for another, slow at one time is fast at another, etc.
As another example, the HMM calculation utilizes various states and the probabilities of the next hidden state to determine the next postural state. For example, ifFIG. 5 is utilized in conjunction with Table 3 and Table 4, then the probability of the next postural state can be determined. In some examples, thecomputing device140 analyzes the range of postural stability to determine the current postural state and/or the next postural state. If the received pressure information is within set parameters of the range (e.g., 25% to 75%, 10% to 90%), then the stability processing module will determine that the next postural state is equilibrium (e.g., equilibrium running, equilibrium walking, equilibrium standing, etc.). If the received pressure information is not within the set parameters of the range, then the stability processing module will determine that the next postural state is dynamic (e.g., dynamic falling, dynamic walking, dynamic standing, etc.). In other examples, the probabilities of two or more possible next postural states are the same and/or substantially similar, so the next postural state cannot be determined. In these examples, thecomputing device140 processes the input information received from the input sensors, the range of postural stability, and/or the current postural state to determine the next postural state. In some examples, thecomputing device140 processes the input information received from the input sensors, the range of postural stability, the current postural state, and/or the next postural state to determine if activity (e.g., alarm, email, notification, etc.) should be initiated based on the processing. In other examples, the processing applies one or more rules to determine if a condition occurs. For example, the person entered a dynamic state more than ten times in a thirty minute period. As another example, the person has been in a dynamic state for 75% of the time over the past twenty four hours. The rules can be, for example, predetermined (e.g., set of rules based on age, set of rules based on a medical condition, etc.), automatically generated (e.g., the person is usually in equilibrium 90% of the time in a two hour period so any percentage less than 90% in a two hour period sends an email to the person's caregiver, etc.), and/or entered by the user or a third party. The automatically generated rules can be, for example, based on individual characteristics (e.g., specific percentage of state over time, number of times in dynamic state per hour, etc.), general characteristics (e.g., age range, medical condition, etc.), and/or any other metric. The activity that is initiated can be, for example, setting off an alarm, notifying the person, notifying a third party (e.g., sending an email to the doctor, sending a text message to the caregiver, etc.), and/or any other type of notification and/or alarm.
| TABLE 3 |
|
| Emission Probability |
| Dynamic | Equilibrium | | |
| Standing | Standing | Walking | Running |
| |
| Oi | Fast Gait and | 0.15 | 0.01 | 0.04 | 0.60 |
| Fast Velocity |
| Fast Gait and | 0.20 | 0.03 | 0.30 | 0.06 |
| Slow Velocity |
| Slow Gait and | 0.40 | 0.01 | 0.06 | 0.32 |
| Fast Velocity |
| Slow Gait and | 0.05 | 0.05 | 0.60 | 0.02 |
| Slow Velocity |
| Slow Gait and | 0.20 | 0.30 | 0.00 | 0.00 |
| No Velocity |
| No Gait and | 0.00 | 0.60 | 0.00 | 0.00 |
| No Velocity |
|
| TABLE 4 |
|
| Transition Probability |
| Dynamic | Equilibrium | | |
| Standing | Standing | Walking | Running |
| |
| Si | Dynamic | 0.60 | 0.30 | 0.05 | 0.05 |
| Standing |
| Equilibrium | 0.25 | 0.60 | 0.10 | 0.05 |
| Standing |
| Walking | 0.20 | 0.05 | 0.60 | 0.15 |
| Running | 0.12 | 0.10 | 0.18 | 0.60 |
|
FIG. 6 illustrates an alternative embodiment for the present invention of asystem600 for utilizingpressure sensing devices120 to determine a user's postural state and optionally display information regarding the user's postural state. Inpressure monitoring system600,pressure sensing devices120 measure and transmit pressure information over an RF network link130 tocomputing device140.Computing device140 is coupled via anetwork605 to aserver620 and auser computer610. Theserver620 is optionally coupled with adatabase615 either directly or via thenetwork605.Computing device140 may determine postural state information including next, current, and/or past postural states and communicate the postural state information to theserver620 via thenetwork605. Theserver620 may perform postural analysis using the postural state information to monitor, track, and/or notify the person regarding their postural states. The postural analysis may comprise for example, storing the postural state information for historical analysis by the person being monitored and/or a third party monitoring person (e.g. doctor, physical therapist). Theserver620 may notify the person being monitored and/or a third party monitoring person by communicating messages with thecomputing device140 or theuser computer610.
In someembodiments server620 is a web server and thenetwork605 is the Internet. Theweb server620 receives the pressure information from thecomputing device140 via theInternet605. A web server application program running onweb server620 may determine postural state information and perform postural analysis. The postural state information (e.g., previous postural state, current postural state, next postural state, etc.) or postural analysis information (e.g., diagnostic information, statistics, performance information, etc.) may be viewed on a device connected to the Internet (e.g. user computer610,computing device140, etc.) and including a web client application such as a web browser by the person utilizingpressure sensing devices120 and/or a third party monitoring person.
The advantages of transferring more of the computing functionality from computingdevice140 toserver620 include, for example, simplifying the computing requirements ofcomputing device140, centralizing the data management and processing, and allowing ease of updating of software components because only the server application program may need to be updated instead of software residing on a large number of separate computing devices. It will be appreciated that the computing functionality required for determining postural state information, performing postural analysis, and displaying postural state information may be accomplished by a number of computing devices communicating via a network or a single stand-alone computing device as the application requires.
FIG. 7 illustrates another alternative embodiment of the present invention of asystem700 for utilizingpressure sensing devices120 to determine a user's postural state and optionally display information regarding the user's postural state.System700 showspressure sensing devices120 communicating to anetwork605 through anetwork access point725.Pressure sensing devices120 may communicate to network access point625 utilizing an RF network link130 such as Bluetooth, WiMax, any of the suite of IEEE 802.11 protocols, or any other standard or custom wireless link protocol.Network access point725 communicates withnetwork605 through any suitable wired or wireless network connection. Thus, through thenetwork605pressure sensing devices120 can communicate to auser computer610 or aserver620. Determining postural state information and performing postural analysis may be accomplished by eitheruser computer610 orserver620. The person being monitored and/or a third party monitoring person may be notified by communicating messages with theuser computer610.
FIG. 8 illustrates an alternative embodiment of the present invention of asystem800 for using a scale or mat device to determine auser110's postural state and optionally display information regarding theuser110's postural state. Alternative to using a shoe to capture pressure data and ultimately calculate a user's stability, balance, posture, etc., a scale (or mat)805 may be used. In one embodiment,scale805 may be similar to a medical or diagnostic scale, such that the user110 (i.e., the patient) stands, walks, jogs, etc. and pressure readings may be gathered usinginput sensors220aand220b.In an alternative embodiment, instead of a scale or a mat, a treadmill device may be used to determine the user's stability.
As the user interacts with thescale805, the pressure data may be captured and transmitted to, for example,network access point725 usingcommunications modules240aand/or240b.Accordingly, such pressure data may then be transmitted overnetwork605 touser computer610 orserver620. Alternatively,scale805 may include adisplay810 which may be configured to display postural balance information. Furthermore, the determining of postural state information and performing postural analysis may be accomplished by eitheruser computer610 orserver620. Hence, for example, a medical professional may useuser computer610 to monitoruser110's postural state(s) and analyze the information to form medicalopinions regarding user110's medical conditions, if any. Alternatively,scale805 may be used for analyzing the athletic performance ability ofuser110. For example, an elderly patient which may be prone to falls may usescale805 to receive preventative screening in order to take corrective action prior to the elderly person experiencing a fall, or the like. One skilled in the art would be aware of medical, athletic, and other uses for such a stability sensing scale, mat, treadmill, etc. In an alternative embodiment,scale805 may further include astability processing module815 which may be used to determineuser110's postural stability similar topersonal computer610 andserver620.
FIG. 9 illustrates a further embodiment of a pressure sensing device situated inshoe900 with shoe upper930,shoe sole920,shoe insole910,input sensors220, andcommunications module240.Shoe900 may be one of any type of shoes including, without limitation, dress shoes, athletic shoes, work boots, hiking boots, etc.Input sensors220 may be placed ininsole910 ofshoe900 or if located in the sole920 ofshoe900 may be located towards the top of the sole920 such that the pressure on the sole is not dispersed appreciably before impinging on theinput sensors220.Communications module240 may be located in the shoe upper930, theshoe sole920, theshoe insole910, and/or another location inshoe900. As in other embodiments, transmission of information betweeninput sensors220 andcommunications module240 may be by wires embedded in theinsole910,shoe sole920, and/or shoe upper930. It will be appreciated by one skilled in the art thatcommunications module240 may be split into a number of components, the components being located in any portion of theshoe900 and connected by wires or other connecting technology to achieve the functionality ofcommunications module240 described above. Thecommunications module240 transmits the sensor information to a device external to the shoe using a communications link. For example, the communications link may be a wireless link such as a Bluetooth network and other body area network.
FIG. 10 illustrates an alternative embodiment of a pressure sensing device situated in ahorseshoe1005. In one embodiment,horseshoe1005, similar to shoe900 (FIG. 9), may includeinput sensors220aand220b,as well ascommunications module240. Accordingly,horseshoe1005 may be placed on a horse (or other hoofed animal) in order to gather pressure/stability data for theanimal wearing horseshoe1005. Accordingly, such gathered information may be transmitted to an external computing device (e.g., a computer, a PDA, a server, etc.) viacommunications module240.
For example, a racehorse may be fitted withhorseshoe1005 to identify a sprain, determine flaws in their running style, anticipate a fatal fall, determine the quality of the horse, etc. A skilled equestrian could analyze the stability determinations received fromhorseshoe1005 to make such determinations. It should be noted that any number of horseshoes may be placed on a horse (i.e., a number between 1 and 4) in order to make accurate stability determinations. Alternatively,horseshoe1005 may be used to determine if an animal has experienced a sprang or a break.
FIG. 11 illustrates yet another embodiment of the present invention of astability measurement device1100 withinsoles210aand210b(generally210),input sensors220aand220b(generally220),communications modules240aand240b(generally240), andstability processing module1150. In this embodiment,communications modules240 communicate with one another over acommunications link130 andstability processing module1150 is electrically coupled with one ormore communications modules240.Stability processing module1150 may be coupled through wires to one ormore communications modules240 or wirelessly to one ormore communications modules240.Stability processing module1150 performs postural state analysis as described above and may communicate postural state information to the user through tactile feedback devices (not shown), communication with an external device to display postural state information, and/or downloading of stored postural state information fromstability measuring device1100 to a computing device for further analysis or display. It will be appreciated that the functionality ofcommunications modules240 andstability processing module1150 may be split into a number of components, the components being located in any portion of the insoles210 and connected by wires or other connecting technology to achieve the functionality ofcommunications modules240 andstability processing module1150 described above. Additionally it will be appreciated that some or all of the components ofcommunications modules240 andstability processing module1150 may be outside of insoles210, for example, in other portions of an article of footwear.
Furthermore,stability measuring device1100 may be used in a virtual reality (VR) and/or gaming environment. For example, as a player wearing shoes withinsoles210aand210bplays a video game or maneuvers in a VR environment, pressure data may be gathered and stability determinations may be made for the player. As such, if the player falls down, the game/VR environment would make the video game avatar fall as well. Alternatively, if the player sits down, runs, jumps, etc., the game avatar would similarly perform such movements. Thus, by determining the player's postural state usingstability measuring device1100, the same or similar movements can be captured and placed in the gaming environment making the game completely interactive
FIG. 12 shows a flow diagram of illustrative methods for monitoring postural stability of a person. The method begins atstep1210 where pressure sensors are provided in the insole portion of an article of footwear to measure pressure impinged by the person on a supported surface. The pressure sensors are read atstep1215 and the pressure information is transmitted atstep1220. The pressure information is received atstep1225 and postural state information is calculated atstep1230 using the pressure information. The postural state information is analyzed atstep1235. If the postural state information indicates a predetermined condition then the person and/or a healthcare professional is notified atstep1240. If the postural information does not indicate the predetermined condition then the method returns to step1225 to receive more pressure information. The predetermined condition may be a stable postural state, an unstable postural state, and/or a partially stable postural state.
FIG. 13 shows a flow diagram of illustrative methods for determining postural stability. The method begins atstep1305 where a first pressure information is received. The first pressure information is stored atstep1310. A range of postural stability is calculated atstep1320 from the first pressure information. A second pressure information is received atstep1315. The current postural state is calculated from the second pressure information atstep1325. The next postural state is calculated from the current postural state and the range of postural stability atstep1330. The next postural state is analyzed atstep1335. If the next postural state matches a predetermined condition, then the person and/or a healthcare professional may be notified atstep1340. If the next postural state does not match the predetermined condition, then the method returns to step1315 to receive additional pressure information.
It will be appreciated that either thecomputing device140 and/oruser computer610 of various embodiments can be a general purpose computer (including, merely by way of example, personal computers, smartphones, workstation computers, and/or laptop computers running various standard or mobile versions of Microsoft® Corp.'s Windows®, Apple Corp.'s Macintosh®, UNIX based operating systems, GNU/Linux based operating systems, or other commercially available operating systems). Thecomputing device140 and/or user computer(s)610 may also have any of a variety of applications, including one or more development systems, database client and/or server applications, and web browser applications. Alternatively, thecomputing device140 and/oruser computer610 may be any other electronic devices, such as thin-client computers, Internet-enabled mobile telephone, and/or personal digital assistant, capable of communicating via a network (e.g., thenetwork605 described below) and/or displaying and navigating web pages or other types of electronic documents. Although various embodiments are shown with onecomputing device140 and/or oneuser computer610, any number of computing devices and/or user computers may be supported.
FIG. 14 illustrates anexemplary computer system1400, in which various embodiments of the present invention may be implemented. Thesystem1400 may be used to implement any of the computers or computing devices described above (e.g. user computer610,computing device140, server620). Thecomputer system1400 is shown comprising hardware elements that may be electrically coupled via abus1405. The hardware elements may include one or more central processing units (CPUs)1410, one or more input devices1420 (e.g., a mouse, a keyboard, etc.), and one or more output devices1425 (e.g., a display device, a printer, etc.). Thecomputer system1400 may also include one ormore storage device1415. Storage device(s)1415, can comprise, without limitation, local and/or network accessible storage, removable and/or integrated storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, a solid-state storage device, such as a RAM and/or a read-only memory ROM, which can be programmable, flash-updateable and/or the like.Communications subsystem1430, can include, without limitation, a modem, a network card (wireless or wired), an infra-red communication device, a wireless communication device and/or chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, cellular communication facilities, etc.), and/or the like. Thecommunications subsystem1430 may permit data to be exchanged with a network (such as the network described below, to name one example), and/or any other devices described herein. In many embodiments, thecomputer system1400 will further comprise a workingmemory1435, which can include a RAM or ROM device, as described above. In some embodiments, thecomputer system1400 may also include a processing acceleration unit (not shown), which can include a DSP, Application Specific Integrated Circuits, a special-purpose processor and/or the like.
Thecomputer system1400 may also comprise software elements, shown as being currently located within a workingmemory1435, including anoperating system1440 and/orother code1445, such as an application program (which may be a client application, web browser, mid-tier application, RDBMS, etc.). It should be appreciated that alternate embodiments of acomputer system1400 may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed. Software ofcomputer system1400 may includecode1445 for implementing embodiments of the present invention as described herein.
In one aspect, the invention employs a computer or computing device (such as the computer system1400) to perform methods of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by thecomputer system1400 in response toprocessor1410 executing one or more sequences of one or more instructions (which might be incorporated into theoperating system1440 and/or other code, such as an application program1445) contained in the workingmemory1435. Such instructions may be read into the workingmemory1435 from another machine-readable medium, such as one or more of the storage device(s)1415. Merely by way of example, execution of the sequences of instructions contained in the workingmemory1435 might cause the processor(s)1410 to perform one or more procedures of the methods described herein.
The terms “machine-readable medium” and “computer readable medium”, as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using thecomputer system1400, various machine-readable media might be involved in providing instructions/code to processor(s)1410 for execution and/or might be used to store and/or carry such instructions/code (e.g., as signals). In many implementations, a computer readable medium is a physical and/or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as the storage device(s)1415. Volatile media includes, without limitation, static or dynamic memory, such as the workingmemory1435. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise thebus1405, as well as the various components of the communication subsystem1430 (and/or the media by which thecommunications subsystem1430 provides communication with other devices). Hence, transmission media can also take the form of waves (including without limitation radio, acoustic and/or light waves, such as those generated during radio-wave and infra-red data communications).
Common forms of physical and/or tangible computer readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read instructions and/or code.
Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to the processor(s)1410 for execution. Merely by way of example, the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer. A remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by thecomputer system1400. These signals, which might be in the form of electromagnetic signals, acoustic signals, optical signals and/or the like, are all examples of carrier waves on which instructions can be encoded, in accordance with various embodiments of the invention.
The communications subsystem1430 (and/or components thereof) generally will receive the signals, and thebus1405 then might carry the signals (and/or the data, instructions, etc., carried by the signals) to the workingmemory1435, from which the processor(s)1410 retrieves and executes the instructions. The instructions received by the workingmemory1435 may optionally be stored on astorage device1415 either before or after execution by the processor(s)1410.
In one aspect, the invention employs anetwork605 to perform methods of the invention. It will be appreciated thatnetwork605 can be any type of network familiar to those skilled in the art that can support data communications using any of a variety of commercially-available protocols, including without limitation TCP/IP, SNA, IPX, AppleTalk, and the like. Merely by way of example, thenetwork605 maybe a local area network (“LAN”), such as an Ethernet network, a Token-Ring network and/or the like; a wide-area network; a virtual network, including without limitation, a virtual private network (“VPN”); the Internet; an intranet; an extranet; a public switched telephone network (“PSTN”); an infra-red network; a wireless network (e.g., a network operating under any of the IEEE 802.11 suite of protocols, the Bluetooth protocol known in the art, and/or any other wireless protocol); and/or any combination of these and/or other networks such as GSM, GPRS, EDGE, UMTS, 3G, 2.5 G, CDMA, CDMA2000, WCDMA, EVDO, etc.
In some embodiments, the invention employs aserver computer620 to perform methods of the invention. Theserver computer620 might include one or more application servers, which can include one or more applications accessible by a client application running on theuser computer610, thecomputing device140 and/or other user computers or servers. Merely by way of example, theserver620 can be one or more general purpose computers capable of executing programs or scripts in response to applications running on theuser computer610, thecomputing device140 and/or other servers, including without limitation web applications (which might, in some cases, be configured to perform methods of the invention). Merely by way of example, a web application can be implemented as one or more scripts or programs written in any suitable programming language, such as Java™, C, C#™ or C++, and/or any scripting language, such as Perl, Python, or TCL, as well as combinations of any programming/scripting languages. Theapplication server620 can also include database servers, including without limitation those commercially available from Oracle™, Microsoft™, Sybase™, IBM™ and the like, which can process requests from clients (including, depending on the configuration, database clients, API clients, web browsers, etc.) running on auser computer610 and/or another server.
In some embodiments, theapplication server620 can create web pages dynamically for displaying the information in accordance with embodiments of the invention. Data provided by theapplication server620 may be formatted as web pages (comprising HTML, Javascript, etc., for example) and/or may be forwarded tocomputing device140 oruser computer610 via a web server (as described above, for example). Similarly, a web server might receive web page requests and/or input data fromcomputing device140 oruser computer610 and/or forward the web page requests and/or input data to an application server. In some cases, a web server may be integrated with theapplication server620. In some embodiments, theapplication server620 may create web pages dynamically for displaying on an end-user (client) system. The web pages created by the web application server may be forwarded tocomputing device140 oruser computer610 via a web server. Similarly, the web server can receive web page requests and/or input data fromcomputing device140 oruser computer610, and can forward the web page requests and/or input data to an application and/or a database server. Those skilled in the art will recognize that the functions described with respect to various types of servers may be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters.
As present in some embodiments, the system may also include one ormore databases615. The database(s)615 may reside in a variety of locations. By way of example, adatabase615 may reside on a storage medium local to (and/or resident in) one or more of theservers620 orcomputers610. Alternatively, it may be remote from any or all of theservers620 orcomputers610, and/or in communication (e.g., via the network605) with one or more of these. In a particular set of embodiments, thedatabase615 may reside in a storage-area network (“SAN”) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to theservers620 oruser computers610 may be stored locally on the respective computer and/or remotely, as appropriate. In one set of embodiments, thedatabase615 may be a relational database, such as Oracle® 10g, which is adapted to store, update, and retrieve data in response to SQL-formatted commands.
In accordance with some embodiments, one ormore servers620 can function as a file server and/or can include one or more of the files (e.g., application code, data files, etc.) necessary to implement methods of the invention incorporated by an application running oncomputing device140,user computer610 and/or server(s)620. Alternatively, as those skilled in the art will appreciate, a file server can include all necessary files, allowing such an application to be invoked remotely by computingdevice140, user computer(s)610 and/or server(s)620. It should be noted that the functions described with respect to various servers herein (e.g., application server, database server, web server, file server, etc.) can be performed by a single server and/or a plurality of specialized servers, depending on implementation-specific needs and parameters.
The term “machine-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium. A processor(s) may perform the necessary tasks.
While the invention has been described with respect to exemplary embodiments, one skilled in the art will recognize that numerous modifications are possible. For example, the methods and processes described herein may be implemented using hardware components, software components, and/or any combination thereof. Further, while various methods and processes described herein may be described with respect to particular structural and/or functional components for ease of description, methods of the invention are not limited to any particular structural and/or functional architecture but instead can be implemented on any suitable hardware, firmware and/or software configuration. Similarly, while various functionality is ascribed to certain system components, unless the context dictates otherwise, this functionality can be distributed among various other system components in accordance with different embodiments of the invention.
Moreover, while the procedures comprised in the methods and processes described herein are described in a particular order for ease of description, unless the context dictates otherwise, various procedures may be reordered, added, and/or omitted in accordance with various embodiments of the invention. Moreover, the procedures described with respect to one method or process may be incorporated within other described methods or processes; likewise, system components described according to a particular structural architecture and/or with respect to one system may be organized in alternative structural architectures and/or incorporated within other described systems. Hence, while various embodiments are described with—or without—certain features for ease of description and to illustrate exemplary features, the various components and/or features described herein with respect to a particular embodiment can be substituted, added and/or subtracted from among other described embodiments, unless the context dictates otherwise. Consequently, although the invention has been described with respect to exemplary embodiments, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.
In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that, in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits, programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine-readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.
While illustrative embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.