METHODS AND SYSTEMS FOR SENSING EQUILIBRIUM
Systems and methods for monitoring equilibrium of a user are presented. A stability monitoring device in a shoe insole area utilizes pressure sensors to measure pressure information in real-time. The pressure information is transmitted over an RF network to a device for analyzing the pressure information and calculating postural state information including the current postural state, next postural state, and/or a range of postural stability. The person or a third party may be notified if the postural state information indicates an unstable state. Additionally, the postural state information may be analyzed to determine activity level of the user, diagnostic information, or performance information. Metrics may be displayed by the system for assisting physical therapy or training regimens.
Latest iShoe Patents:
This 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.
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,
In one embodiment, a mat and/or medical scale may house sensors 220a and 220b as well as communications modules 240a and 240b in 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 insoles 210 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.
The communications modules 240 may read the input sensors 220, generate sensor information, and transmit the sensor information to the computing device 140. The communications modules 240 may optionally buffer the sensor information before transmitting it to the external device. The communications modules 240 may transmit the data to computing device 140 using communications link 130. 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 device 140 (e.g. linearity correction, data transform, etc.).
While the exemplary shoe insoles shown in
In the exemplary embodiment described above, sensor measuring circuit 310 samples the output of the input sensors 220 driven by sensor biasing circuits 305 and produces digital data values. Sensor measuring circuit 310 may have an internal timing circuit to determine the sampling frequency, or alternately the sampling frequency may be determined by processing device 315. Processing circuit 315 receives the digital data values from the sensor measuring circuit 310, can write and read pressure data values from buffer memory 330, and transfer pressure data values to communications circuit 320. Processing circuit 315 may write the pressure data values to buffer memory 330 for a predetermined period of time, or until buffer memory 330 has received a certain quantity of pressure data values, at which time processing circuit 315 may read a quantity of pressure data values from buffer memory 330 and transfer the quantity of pressure data values to communications circuit 320. Communications circuit 320 may receive the pressure data values from processing device 315 and transmit the pressure data values over communications link 130 to computing device 140. For example, buffer memory 330 may be a 256 MB memory, and processing circuit 315 may write the pressure data values to buffer memory 330 until buffer memory 330 is at full capacity or close to full capacity (e.g. 90% capacity, 95% capacity, etc.), at which time processing circuit 315 reads the pressure data values previously written to buffer memory 330 and transfers the pressure data values to communications circuit 320 to be transmitted over communications link 130 to computing device 140. 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 in buffer memory 330 before the transmission of a quantity of data values by communications circuit 320.
Sensor measuring circuit 310 may contain analog to digital converters (ADCs), timers, and other discrete or integrated components used to convert the analog output of the input sensors 220 to digital data values. Processing circuit 315 can comprise any general purpose processor, a microprocessor, and/or other suitably configured discrete or integrated circuit elements. Program memory 325 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 memory 330 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 circuit 320 may transmit and receive data over any type of communications link, for example, communications circuit 320 may comprise a wireless transceiver utilizing an RF network such as a Bluetooth network. Communications circuit 320 may include authentication capability to limit transfer of pressure information from insoles of one person to only authorized devices. Additionally communications circuit 320 may encrypt data before transmission in order to prevent unauthorized access of the information.
In an illustrative embodiment of stability measurement device 120, the input sensors 220 are piezoresistive force sensors connected by wires in insole 210 to the communications module 240. The communications module 240 may contain sensor biasing circuits 305 which provide excitation voltage and amplification to the piezoresistive force sensors 220, resulting in a force to voltage conversion. Sensor measuring circuits 310 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 a non-volatile buffer memory 330 and periodically read by processing circuit 315 and transmitted by communications circuit 320 to computing device 140 over a Bluetooth network 130. In alternate embodiments, other types of input sensors 220 may be used, different sample rates may be used, another type of communications link 130 may be used, other types of buffer memory 330 may be used, etc. as may be desirable in a particular embodiment.
Computing device 140 contains instructions on a machine readable medium to receive the pressure information from the pressure sensing device 120 and determine postural state information. In some examples, computing device 140 determines the current postural state by calculating the center of force of the person. Additionally computing device 140 may calculate the next postural state. Computing device 140 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 computing device 140 continues to monitor the person. If the next postural state is unstable, then computing device 140 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.
The computing device 140 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. The computing device 140 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 device 140 determines the range of postural stability for a person utilizing pressure sensing device 120. 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 the computing device 140. 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 the pressure sensing device 120. 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.
Although
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.
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.
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.
In some examples, the observation Oi 510 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 the current state Si 505. The probabilities of the observation Oi 510 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 Si 505 and/or the next state Si+1 515. 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, if
In some embodiments server 620 is a web server and the network 605 is the Internet. The web server 620 receives the pressure information from the computing device 140 via the Internet 605. A web server application program running on web server 620 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 computer 610, computing device 140, etc.) and including a web client application such as a web browser by the person utilizing pressure sensing devices 120 and/or a third party monitoring person.
The advantages of transferring more of the computing functionality from computing device 140 to server 620 include, for example, simplifying the computing requirements of computing device 140, 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.
As the user interacts with the scale 805, the pressure data may be captured and transmitted to, for example, network access point 725 using communications modules 240a and/or 240b. Accordingly, such pressure data may then be transmitted over network 605 to user computer 610 or server 620. Alternatively, scale 805 may include a display 810 which may be configured to display postural balance information. Furthermore, the determining of postural state information and performing postural analysis may be accomplished by either user computer 610 or server 620. Hence, for example, a medical professional may use user computer 610 to monitor user 110's postural state(s) and analyze the information to form medical opinions regarding user 110's medical conditions, if any. Alternatively, scale 805 may be used for analyzing the athletic performance ability of user 110. For example, an elderly patient which may be prone to falls may use scale 805 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, scale 805 may further include a stability processing module 815 which may be used to determine user 110's postural stability similar to personal computer 610 and server 620.
For example, a racehorse may be fitted with horseshoe 1005 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 from horseshoe 1005 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, horseshoe 1005 may be used to determine if an animal has experienced a sprang or a break.
Furthermore, stability measuring device 1100 may be used in a virtual reality (VR) and/or gaming environment. For example, as a player wearing shoes with insoles 210a and 210b plays 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 using stability measuring device 1100, the same or similar movements can be captured and placed in the gaming environment making the game completely interactive
It will be appreciated that either the computing device 140 and/or user computer 610 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). The computing device 140 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, the computing device 140 and/or user computer 610 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., the network 605 described below) and/or displaying and navigating web pages or other types of electronic documents. Although various embodiments are shown with one computing device 140 and/or one user computer 610, any number of computing devices and/or user computers may be supported.
The computer system 1400 may also comprise software elements, shown as being currently located within a working memory 1435, including an operating system 1440 and/or other code 1445, 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 a computer system 1400 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 of computer system 1400 may include code 1445 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 system 1400) to perform methods of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system 1400 in response to processor 1410 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 1440 and/or other code, such as an application program 1445) contained in the working memory 1435. Such instructions may be read into the working memory 1435 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 working memory 1435 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 the computer system 1400, 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 working memory 1435. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 1405, as well as the various components of the communication subsystem 1430 (and/or the media by which the communications subsystem 1430 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 the computer system 1400. 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 subsystem 1430 (and/or components thereof) generally will receive the signals, and the bus 1405 then might carry the signals (and/or the data, instructions, etc., carried by the signals) to the working memory 1435, from which the processor(s) 1410 retrieves and executes the instructions. The instructions received by the working memory 1435 may optionally be stored on a storage device 1415 either before or after execution by the processor(s) 1410.
In one aspect, the invention employs a network 605 to perform methods of the invention. It will be appreciated that network 605 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, the network 605 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 a server computer 620 to perform methods of the invention. The server computer 620 might include one or more application servers, which can include one or more applications accessible by a client application running on the user computer 610, the computing device 140 and/or other user computers or servers. Merely by way of example, the server 620 can be one or more general purpose computers capable of executing programs or scripts in response to applications running on the user computer 610, the computing device 140 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. The application server 620 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 a user computer 610 and/or another server.
In some embodiments, the application server 620 can create web pages dynamically for displaying the information in accordance with embodiments of the invention. Data provided by the application server 620 may be formatted as web pages (comprising HTML, Javascript, etc., for example) and/or may be forwarded to computing device 140 or user computer 610 via a web server (as described above, for example). Similarly, a web server might receive web page requests and/or input data from computing device 140 or user computer 610 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 the application server 620. In some embodiments, the application server 620 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 to computing device 140 or user computer 610 via a web server. Similarly, the web server can receive web page requests and/or input data from computing device 140 or user computer 610, 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 or more databases 615. The database(s) 615 may reside in a variety of locations. By way of example, a database 615 may reside on a storage medium local to (and/or resident in) one or more of the servers 620 or computers 610. Alternatively, it may be remote from any or all of the servers 620 or computers 610, and/or in communication (e.g., via the network 605) with one or more of these. In a particular set of embodiments, the database 615 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 the servers 620 or user computers 610 may be stored locally on the respective computer and/or remotely, as appropriate. In one set of embodiments, the database 615 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 or more servers 620 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 on computing device 140, user computer 610 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 computing device 140, 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.
Claims
1. A system for determining postural stability comprising:
- a shoe insole;
- one or more input sensors housed in the shoe insole, wherein the one or more input sensors are configured to produce pressure information proportional to mechanical pressure placed on the one or more input sensors;
- a communications module housed within the shoe insole and coupled with the one or more input sensors, the communications module including a first communications transceiver and configured to receive the pressure information from the one or more input sensors and transmit the pressure information using the first communications transceiver;
- a communications medium coupled with the first communications transceiver, the communications medium configured to transmit and receive communications signals; and
- a computing device including a second communications transceiver coupled with the communications medium, wherein the computing device is configured to receive the pressure information from the communications module using the second communications transceiver and determine postural stability from the pressure information.
2. The system of claim 1, wherein:
- the communications module further comprises a buffer memory; and
- the communications module is further configured to buffer the pressure information using the buffer memory for a predetermined amount of time before transmitting the pressure information using the first communications transceiver.
3. The system of claim 1, wherein the one or more input sensors are piezoelectric force sensors.
4. The system of claim 1, wherein the communications medium comprises a wireless communications medium.
5. The system of claim 4, wherein the wireless communications medium comprises a Bluetooth communications link.
6. The system of claim 1, wherein the computing device determines postural stability using at least one of the following: a Hidden Markov Model, a forward algorithm, a Viterbi algorithm, a forwards-backwards algorithm, and a Baum-Welch algorithm.
7. The system of claim 1, wherein the shoe insole is one of a medical scale or a mat.
8. A system for determining postural stability comprising:
- an article of footwear including an insole portion;
- one or more input sensors housed in the insole portion of the article of footwear, wherein the one or more input sensors are configured to produce pressure information proportional to mechanical pressure placed on the one or more input sensors;
- a communications module including a first communications transceiver, wherein the communications module is housed in the article of footwear, coupled with the one or more input sensors, and configured to receive the pressure information from the one or more input sensors and transmit the pressure information using the first communications transceiver; and
- a computing device including a second communications transceiver, wherein the computing device is configured to receive the pressure information from the communications module using the second communications transceiver and the computing device contains instructions on a computer-readable medium to determine postural stability from the pressure information.
9. The article of footwear of claim 8 wherein
- the communications module further includes a buffer memory; and
- the communications module is further configured to buffer the pressure information in the buffer memory for a predetermined amount of time before transmitting the pressure information using the first communications transceiver.
10. The article of footwear of claim 8, wherein the article of footwear is a horseshoe.
11. A method for determining postural stability of a person, comprising:
- providing an article of footwear worn by the person with an insole portion;
- providing one or more pressure sensing transducers in the insole portion of the article of footwear;
- reading the one or more pressure sensing transducers;
- generating pressure information proportional to the mechanical pressure placed on the one or more pressure sensing transducers;
- transmitting the pressure information;
- receiving the transmitted pressure information; and
- calculating postural state information for the person based on the received pressure data information.
12. The method of claim 11, further comprising:
- notifying the person if the postural state information indicates a predetermined condition, wherein the predetermined condition includes one of the following: a stable postural state, an unstable postural state, and a partially stable postural state.
13. The method of claim 11, further comprising:
- notifying a third party monitoring person if the postural state information indicates a predetermined condition, wherein the predetermined condition includes one of the following: a stable postural state, an unstable postural state, and a partially stable postural state.
14. The method of claim 13, wherein the third party monitoring person is one of a doctor, a physician assistant, a nurse, a physical therapist, a personal trainer, or a recreation therapist.
15. A method for determining postural stability in a person, the method comprising:
- receiving a first pressure information from one or more pressure sensors, the first pressure information proportional to the mechanical pressure placed on the one or more pressure sensors;
- storing the first pressure information;
- calculating a range of postural stability for the person from the first pressure information;
- receiving a second pressure information from the one or more pressure sensors, the pressure information proportional to the mechanical pressure placed on the one or more pressure sensors;
- calculating a current postural state for the person based on the second pressure information; and
- calculating a next postural state for the person based on the current postural state and the range of postural stability.
16. The method of claim 15, wherein calculating the next postural state is further based on a predetermined probability of transitioning between postural states.
17. The method of claim 15, further comprising:
- notifying the person if the next postural state matches a predetermined condition, the predetermined condition one of a stable postural state, an unstable postural state, or a partially stable postural state.
18. The method of claim 15, further comprising:
- notifying a third party monitoring person if the next postural state matches a predetermined condition, the predetermined condition one of a stable postural state, an unstable postural state, or a partially stable postural state.
19. A system for determining postural stability of a person, the system comprising:
- an article of footwear, said article of footwear including: an insole portion, one or more input sensors for measuring pressure housed in the insole portion, wherein the one or more input sensors are configured to produce pressure information proportional to mechanical pressure placed on the one or more input sensors, and a communications module including a first wireless communications transceiver, wherein the communications module is housed in the article of footwear, coupled with the one or more input sensors, and configured to receive the pressure information from the one or more input sensors and transmit the pressure information using the first wireless communications transceiver;
- a communications medium coupled with the first wireless communications transceiver;
- a second wireless communications transceiver coupled with the communications medium and configured to receive the pressure information from the communications module;
- a stability processing device electrically coupled with the second wireless communications transceiver and configured to acquire the pressure information from the second wireless communications transceiver and determine postural stability information from the pressure information; and
- a display device electrically coupled with the stability processing module, configured to display the postural stability information.
20. The system of claim 19, wherein the second wireless communications transceiver, the stability processing device, and the display device are each comprised in a computing device.
21. The system of claim 19, wherein the stability processing device comprises a server computer.
22. The system of claim 19, wherein the second communications transceiver communicates with the stability processing device via a computer network.
23. The system of claim 19, wherein the stability processing device communicates with the display device via a computer network.
24. The system of claim 19, wherein the second communications transceiver and the display device are each comprised in a computing device, the computing device coupled with the stability processing device via a computer network.
25. The system of claim 19, wherein:
- the stability processing device is further configured to determine postural analysis information, the postural analysis information comprising one or more of the following: activity information, performance information, fatigue information, diagnostic information, a statistic, a score, and a simulation; and
- the display device is further configured to display the postural analysis information.
26. A scale for determining postural stability of a person, the scale comprising:
- a body portion;
- one or more input sensors for measuring pressure housed in the body portion, wherein the one or more input sensors are configured to produce pressure information proportional to mechanical pressure placed on the one or more input sensors;
- a stability processing module housed in the body portion, the stability processing module configured to analyze the pressure information and determine based on the pressure information a person's postural stability; and
- a communications module including a first wireless communications transceiver, wherein the communications module is housed in the scale, coupled with the stability processing module, and configured to receive the determined postural stability and transmit the determined postural stability using the first wireless communications transceiver.
27. The scale of claim 26, further comprising a display device coupled with the body potion, the display device configured to display the determined postural stability to the person.
Type: Application
Filed: Sep 23, 2008
Publication Date: May 28, 2009
Applicant: iShoe (Cambridge, MA)
Inventors: Erez Lieberman (Cambridge, MA), Katherine E. Forth (Houston, TX), Ricardo Piedrahita (Boulder, CO), Qian Yang (Pembroke Pines, FL)
Application Number: 12/236,433
International Classification: A61B 5/103 (20060101);