1. Field of the Invention
The present invention generally relates to physical motion. More specifically, the present invention relates to systems and methods for recording and communicating human body motion.
2. Description of the Related Art
Presently available methods for communicating human body motion involve a live instructor demonstrating a movement in-person to one or more individuals and giving live instructions as the individuals perform the movement themselves. Such movements may be performed in the context of dance, exercise, sports, physical therapy, or other physical discipline, etc.
Achieving the goals of such disciplines generally requires attention to the human form during the movement. For example, a dance step may involve specific and coordinated placement of various limbs relative to each other. Because every individual moves differently, the instructor must generally observe and evaluate each individual separately and make the appropriate corrections, as needed.
Moreover, making corrections may involve demonstrating the move again, explaining why the individual did not perform the move successfully, and/or instructing the individual how to perform the move correctly. While the demonstration may be captured by various audio-visual media, such media fail to consider or be responsive to the individual needs of the individual, who may not have the knowledge, experience, or distance to even discern when he or she is performing the move incorrectly. Further, muscle memory may cause a move that is performed incorrectly to result in bad form or habits that may be difficult to correct. As such, instruction for most physical disciplines generally takes place in live classes where instructors can correct any errors in real-time, which may be difficult for some individuals to schedule or afford.
There is, therefore, a need in the art for improved systems and methods for recording and communicating human body motion.
Embodiments of the present invention provide methods and systems for recording and communicating human body motion. One or more wearable device may each include a set of sensors for characterizing motion, a set of vibrating elements placed at different locations, and a radio. Data may be received from the wearable devices and stored at a mobile device. Such data may characterize a set of motions performed over a period of recording time by a recording user wearing the registered wearable devices. When a request for playback of the recorded motions is received at the mobile device from a user wearing the registered wearable devices, it may be determined that the requesting user has different dimensions than the recording user. As such, the stored data may be adjusted based on the difference in dimensions. The requesting user may then perform the motions and be evaluated in real-time to identify a deviation between the adjusted and the real-time data. The deviation is further identified as being associated with one of the wearable devices, and a signal is sent to that wearable device commanding one or more vibrating elements to actuate.
Various embodiments may include methods for recording and communicating human body motion. Such methods for recording and communicating human body motion may include storing data in memory of a mobile device. Such data, as captured by one or more wearable devices, may characterize a set of motions performed over a period of recording time by a recording user wearing the wearable devices. Methods may further include receiving a request for playback of the set of motions from a playing user wearing the wearable devices having certain dimensions, determining that the playing user has different dimensions than the recording user, adjusting the stored data regarding the set of motions performed by the recording user based on the difference in dimensions between the recording user and the playing user, evaluating real-time data regarding a set of motions performed by the requesting user over a period of playing time corresponding to the period of recording time, identifying a deviation between the adjusted data and the real-time data associated with at least one of the wearable devices, and sending a signal over the wireless communication network to the wearable device associated with the identified deviation, wherein the signal commands one or more vibrating elements of the identified wearable device to actuate.
Some embodiments may further include systems for recording and communicating human body motion. Such systems may include one or more wearable devices and a mobile device comprising memory that stores data captured by one or more wearable devices and characterizing a set of motions performed over a period of recording time by a recording user wearing the wearable devices, a user interface that receives a request for playback of the set of motions from a playing user wearing the wearable devices having certain dimensions, a processor that executes instructions to determine that the playing user has different dimensions than the recording user, to adjust the stored data regarding the set of motions performed by the recording user based on the difference in dimensions between the recording user and the playing user, to evaluate real-time data regarding a set of motions performed by the requesting user over a period of playing time corresponding to the period of recording time, and to identify a deviation between the adjusted data and the real-time data associated with at least one of the wearable devices, and a communication interface that sends a signal over the wireless communication network to the wearable device associated with the identified deviation that commands one or more vibrating elements of the identified wearable device to actuate.
Embodiments of the present invention may further include non-transitory computer-readable storage media, having embodied thereon a program executable by a processor to perform methods for recording and communicating human body motion as described herein.
Embodiments of the present invention provide methods and systems for recording and communicating human body motion. One or more wearable device may each include a set of sensors for characterizing motion, a set of vibrating elements placed at different locations, and a radio. When used in conjunction with a mobile device, data may be received from the wearable devices and stored at the mobile device. Alternatively, the wearable devices may coordinate amongst themselves and store data locally or at a remote storage device (e.g., online repository). Such data may characterize a set of motions performed over a period of recording time by a recording user wearing the registered wearable devices. When a request for playback of the recorded motions is received at the mobile device from a user wearing the registered wearable devices, it may be determined that the requesting user has different dimensions than the recording user. As such, the stored data may be adjusted based on the difference in dimensions. The requesting user may then perform the motions and be evaluated in real-time to identify a deviation between the adjusted and the real-time data. The deviation is further identified as being associated with one of the wearable devices, and a signal is sent to that wearable device commanding one or more vibrating elements to actuate.
Wearable device 100 is further illustrated as having a plurality of spaced vibrating elements 102. Such vibrating elements 102 may further be associated with various wires 103A-B. Such wires 103A-B may be used to connect to a power supply, to provide an electrical connection to the vibrating elements 102, as well as to provide structural support (e.g., prevent cuff from being stretched beyond length of electrical wire). An electrical signal may be sent via such wires 103B to one or more of the vibrating elements 102, resulting in actuation of the vibrating element(s) 102 to which the electrical signal was sent.
In this regard, wires 103 may further serve to transmit data between the different components of wearable device 100. Such data may include positional data, rotational data, data regarding which vibrating element to actuate, and data signals with the actuation command.
CPU 104 may encompass any type of processor or controller known in the art for interpreting and manipulating data. In some embodiments, calculations regarding movement data may be performed at an associated application (e.g., on mobile device or at wearable device 100) and used to determine the type of response to transmit to the vibrating elements 102 of wearable device 100. In other embodiments, such calculations may be performed locally at the wearable device 100 by CPU 104.
Sensors 105 may encompass a plurality of different sensors for evaluating and characterizing position and movement. Such sensors 105 may include any combination of accelerometers, gyroscopes, magnetometers (e.g., compasses), and the like. In an exemplary embodiment, sensors 105 may comprise a three-axis accelerometer, a three-axis gyroscope, and a three-axis magnetometer. Such a configuration may be used in dead reckoning by which the accelerometer captures position data, the gyroscope captures rotational data, and the magnetometer reduces drift. Sensors 105 may further include a clock for capturing timing information, which may be important for time-based motions (e.g., dance). Such a clock may also be used in such functions as providing a countdown clock and automatic shut-off after a period of inactivity.
Wireless interface 106 may comprise any type of antenna for communicating wirelessly (e.g., with a mobile device). Such wireless interface 106 may communicate over WiFi, 4G/3G, Bluetooth, and/or any other known radio frequency communication network known in the art.
Memory 107 may include any type of memory or storage device known in the art. Such memory 107 may be used to provide temporary or long-term storage. In an exemplary embodiment, memory 107 may hold data regarding a set of motions (e.g., a physical therapy exercise) to be compared against real-time data regarding motions of a user wearing the wearable device 100. In addition, memory 107 may be used to store the real-time data for historical tracking and/or reporting purposes. Such data may subsequently be sent to an associated mobile device or repository for longer term storage and analyses.
ON/OFF/RESTART button 108 may be any type of mechanical, digital, or other type of button used to signal that the wearable device 100 is to be turned on, off, or restarted (e.g., reset to an original or default state). Mini-USB 109 may be used to recharge battery 110, which provides power to any of the other components of wearable device 100 that may require electrical power to operate.
Elastic mesh 111 is an exemplary foundation for attach the vibrating elements 102 to the rest of the wearable device 100. Such elastic mesh 111 serves to provide isolation between the vibrating elements 102, so as to allow a user wearing wearable device 100 to distinguish which vibrating element 102 is vibrating. While illustrated and characterized as elastic mesh 111 herein, elastic mesh 111 may encompass any type of material that can isolate the vibrations of multiple vibrating elements from each other.
A nylon sheath 112 may provide a smooth surface between the skin of the user and the other components of wearable device 100. Nylon sheath 112 should be thin enough, however, that the user can feel and distinguish the individual vibrations of any of the vibrating elements 102.
The wearable device 100 of
Users may use any number of different electronic mobile devices, such as mobile phones, smartphones, personal digital assistants (PDAs), portable computing devices (e.g., tablets), handheld computing device, or any other type of computing device capable of communicating over a wireless communication network. Mobile devices may also be configured to access data from other storage media, such as memory cards or disk drives as may be appropriate in the case of downloaded services. Mobile device may include standard hardware computing components such as network and media interfaces, non-transitory computer-readable storage (memory), and processors for executing instructions that may be stored in memory.
Exemplary algorithms for executing the application may provide as follows:
Before the exercise begins, the physical therapist 201 may open and/or otherwise activate an app on a mobile device (e.g., an iPhone) 203 to record a set of one or more motions. While the physical therapist 201 is guiding the user through the exercise, the sensors 105 of wearable device 100 captures data 204 regarding the time-based positional (x, y, z) and rotational (α, β, γ) motion of the wearable device(s) 100. Such data 204 may then be transferred wirelessly by wireless interface 106 to the mobile device 203, which records the data 204 for the set of motions that make up the exercise. The physical therapist may indicate to the mobile device 203 when the exercise has ended, thereby stopping the recording.
Additional data may be provided (e.g., specified by the physical therapist 201) in association with the set of motions, including a tolerance range 205 (e.g., maximum acceptable deviation) regarding the extent of the motion(s) before tactile guidance is to be triggered during playback. For example, when the user has raised their leg as far as possible (e.g., position 206), that limit may be recorded for comparison later. During playback, the limit is allowed to change within the specified range 205 before any tactile guidance is provided. This supports measureable progress toward functional goals.
As the user moves, the wearable device 100 (now in playback mode) evaluates the movements in real-time (e.g., from position 208 to position 209) to generate time-based positional (x, y, z) and rotational (α, β, γ) data. Such data regarding the real-time movements is compared to the data 204 regarding the recorded set of movements. Such comparison may occur at either the wearable device itself 100 or the mobile device 203. Depending on where the comparison occurs, the wearable device 100 may transmit data characterizing the real-time movements via wireless communication channel 210 to the mobile device 203, or the mobile device 203 may transmit data regarding the stored set of movements via wireless communication channel 211 to the wearable device 100.
The device performing the comparison may detect a deviation that meets or crosses a threshold amount, which may be based on a default or specified tolerance range 205. Such a deviation may occur when the user has moved outside the specified tolerance range 205. When the deviation is detected, the device that detected the deviation may then trigger one or more vibrators to actuate. Where the comparison is performed by the mobile device 203, the actuation signal may be transmitted via wireless transmission channel 211 to the wearable device 100.
Based on the identified deviation, a signal may be generated and sent to actuate the vibrating elements 102 in the wearable device 100. The signal may indicate which vibrating elements 102 to actuate, as well as a strength level and/or pattern 214 by which the vibrating elements 102 vibrate. For example, a simple positional deviation by a small amount may correspond to a low level vibration of a single vibrating element 102 to simulate a gentle push. A larger deviation may trigger a higher level of vibration. Each individual vibrating element 102 may further vibrate in an individual pattern (e.g., multiple vibrations, short vibrations, long vibrations). Where the deviation may be more complex (e.g., twisting in addition to positional), multiple vibrating elements 102 may be actuated in a particular coordinated pattern (e.g., axially, circumferentially, clockwise, counter-clockwise).
The recording can be transmitted to recipients through various channels. For example, the author can send it directly to recipients via email or it can be posted to social media sites. Alternately, the recording can be uploaded to a repository (discussed in further detail below with respect to
The display may further include an option to RECORD a new set of motions, as well as playback a selected (from the menu) set of motions that were previously recorded. Various other options (e.g., follow timing, tolerance) may also be provided. Follow timing is an option that considers differences in timing between the stored motions and the real-time motions. Such an option may be enabled where the motions pertain to dancing, so that differences in timing are considered a deviation. The follow timing option may be disabled, however, for physical therapy exercises to allow the user to move at their own pace. Playback tolerance may be set as a percentage-tolerated deviation (e.g., ‘exact’=0% tolerance; ‘loose’=100% tolerance).
Additional options may allow the user to set a starting lag period (e.g., 3 seconds after selection of a set of motions) before evaluation of real-time movements begins, a number of repetitions, or frequency.
Some options may be enabled and disabled based on whether any wearable devices are currently registered and detected as being within a certain distance of the mobile device. Some options may further require selection of a set of motions before being enabled. For example, the PLAY, follow timing, and playback tolerance may not be enabled until a (non-grey) set of motions is selected from the menu, and RECORD may be disabled until an exercise is selected. In the latter case, where an existing (non-grey) exercise is selected, the user may be presented with the option of recording over a pre-existing set of motions.
Exemplary algorithms for recording a set of motions may provide as follows:
Referring back to
Correspondingly, exemplary algorithms for playback of recorded motions may provide as follows:
[user] On the intro screen, the user selects an exercise from the list. If a grayed exercise is selected, then “Play”, “Follow timing?”, and “Playback tolerance” are disabled. Otherwise, they are enabled.
[user] User presses Play and optionally adjusts “Follow timing?” and “Playback tolerance”.
Once the user has selected a body part for the wearable device, one of the detected wearable devices may be sent a signal to vibrate.
When the user is ready to start recording, the user may select the “START RECORDING” button.
In some embodiments, the application may allow for verbal or spoken commands to control the recording or playback of motions. Instead, the playback user may issue verbal keyword commands recognized by the mobile device or a wearable device (e.g., via Invensense 40310 ‘Always On’ microphone and associated keyword recognition). Such a feature may benefit people uncomfortable with technology and also those with very limited range of motion. Keywords may include “Move It Again” to wake up the device, “List”, “Play”, “Stop”. In addition, the mobile device or wearable device may provide audio instructions associated with the recorded set of motions. Such audio instructions may have been recorded by the recording user (e.g., “Keep your shoulders relaxed”) or generated dynamically based on the deviation (e.g., “Bend your right leg” corresponding to the vibrating elements simulating a push on the right ankle to guide the bending of the right leg).
A communication network that allows for communication between authors, distributors, and recipients may be a local, proprietary network (e.g., an intranet) and/or may be a part of a larger wide-area network. Such a communication network may comprise a variety of connected computers that may provide a set of network-based services. Such network service may be provided by real server hardware and/or by virtual hardware as simulated by software running on one or more real machines. Such virtual servers may not physically exist and can therefore be moved around and scaled up (or down) on the fly without affecting end-users (e.g., like a cloud). Various available paths or channels may include any type of data communication link known in the art, including TCP/IP connections and Internet connections via Wi-Fi, Bluetooth, UMTS, etc. In that regard, communications network may be a local area network (LAN), which may be communicatively coupled to a wide area network (WAN) such as the Internet. The Internet is a broad network of interconnected computers and servers allowing for the transmission and exchange of Internet Protocol (IP) data between users connected through a network service provider. Examples of network service providers are the public switched telephone network, a cable service provider, a provider of digital subscriber line (DSL) services, or a satellite service provider.
The application 710 of the recording user may be used to share and distribute the recorded motions with a variety of outlets, including email and social media channels 702 and online repositories 703. Such online repositories may be grouped based on any characteristic, including author affiliation or specific portals 704 (e.g., dances provided by the “Mary's Dance Store” portal 705 or exercises provided by “Physical Therapy R Us”). Additionally, each set of motions may be tagged to indicate one or more type of motions (e.g., sports, dance, physical therapy), level of exertion, level of difficulty, condition-specific motions, and any other tag desired by the recording user or playback user(s) that have practiced the set of motions. Such tags allow for ease and convenience of discovery and searching by other users. For example, a user may wish to find an exercise to strengthen their legs, but that is low-impact on the knees.
A particular recipient (playback user) may discover and download (with or without payment) a set of motions from one of the distribution channels described above onto their mobile device (hosting a corresponding application for managing recorded movements). For example, the playback user may opt to download a recording 706 of a set of motions (e.g., “Mary's Jazzy Dance”). The application may register the playback user's wearable devices and determine dimensions 707 of the playback user. Upon determining that such dimensions 707 of the playback user are different from the dimensions of the recording user of “Mary's Jazzy Dance,” one or more scaling factors may be identified (e.g., different height, arm length, leg length, distance between arm and leg) to customize the set of motions to the playback user. As such, the real-time motions of the playback user may be compared to a rescaled set of data corresponding to the selected set of motions.
In method 800, data regarding a set of motions may be captured by one or more wearable devices and stored in memory. A request may be received regarding playback of the set of motions. It may be determined that the requesting user has different dimensions that the recording user. The stored data regarding the set of motions may be adjusted and scaled based on the identified difference(s) in dimensions. Data regarding real-time motions performed by the playback user may be evaluated and compared to the adjusted/scaled data. When a deviation is detected and determined to meet a threshold tolerance range, such deviation may be evaluated and used to generate a signal to one or more wearable devices regarding actuation of one or more vibrating elements therein in a particular manner so as to provide tactile guidance that corrects the playback user.
In step 810, a recording user may perform a set of motions, and data regarding the performed set of motions is captured by wearable devices worn by the recording user. The data may be stored in memory of the wearable device, sent to an associated mobile device, or to an online repository where it may be made available to other users.
In step 820, a request is received from a user regarding playback of the set of motions. The requesting user may or may not be the same user that recorded the motions. The set of motions may be selected from a local menu (if stored on the wearable device or local associated mobile device) or from a menu generated based on downloaded information (if stored in an online repository).
In step 830, the requesting user is instructed to don one or more wearable devices, which determine the dimension of the requesting user. The dimensions may be compared to data associated with the set of motions to identify whether the dimensions are the same (e.g., the user requesting playback may be the same user that recorded the motions) or different.
In step 840, a difference in dimensions may be used to adjust the stored data regarding the set of motions. The stored data represents the positions over time to which the playback user is expected to conform. Because of the differences in dimensions that may exist compared to the recording user, however, the playback user may be unable to approximate the same positions, even allowing for generous tolerance ranges. As such, the stored data may be adjusted based on one or more identified differences in dimensions between the recording user and the playback user. For example, if the playback user is shorter than the recording user, the expected positions for the wearable devices worn by the playback user may be accordingly decreased based on the difference in height.
In step 850, data regarding real-time movement of the playback user may be captured by wearable devices and evaluated. Specifically, such data may be compared to the motion data that was adjusted in step 840. Exemplary algorithms for comparing data regarding actual, real-time position/movement to expected position/movement (as indicated by stored, adjusted data) may provide as follows:
During Record mode, the application stores the Expected stream of time-based 6-degree of freedom data.
Such data may be adjusted based on dimensions. At Playback, the Actual stream of data from the cuff(s) is compared to the stored (and adjusted) reference:
Various tolerance ranges may be defined, including positional (ΔP) and rotational (ΔR). Such tolerance may be provided as a percentage. For example, if the tolerance is 10% and x=50 cm, then any value of x from 45 to 55 would be considered within range.
In step 860, a deviation may be identified between the adjusted data and the real-time data. Such deviation may be identified in terms of which wearable device(s), type of deviation, amount of deviation, type of correction, etc., and any other factor related to characterizing or correcting the deviation.
In step 870, a signal is sent to one or more wearable devices regarding actuation of one or more vibrating elements in a particular manner (e.g., pattern) corresponding to the deviation. As noted above, a vibration pattern may be individual to a single vibrating element or may be coordinated across multiple vibrating elements and wearable devices.
Variations upon method 800 may provide for features allowing for management of session timing, handling movement within tolerance ranges, and other playback features. Managing logic timing may involve defining how to track playback progress through the recorded exercise given that the user may have to stop, get back on track, and start again. Because the playback user may make mistakes, they may not be able to precisely follow the recorded (expected) timing and may need additional time to get back on track. Therefore, it may be necessary to manage the elapsed session time (which may stop and start), distinct from the system time (which is the system clock). Such elapsed time stored with a recording may start at zero and correspond to the session time during playback. If the user makes a mistake, then session timing may be stopped until the user gets back into correct position. Then the session timing may resume, once again allowing for comparison to the recorded timing. As such, data transformations may not be required with respect to timing. Exemplary algorithms for managing session timing may provide as follows:
Handling movement within tolerance ranges may involve evaluating various criteria to determine whether user needs feedback as they move through the x/y plane and the z-axis. Exemplary algorithms for handling movement within such tolerance ranges may provide as follows:
Additional algorithms may be provided for retrieving and processing the recorded session for playback as follows:
During Record mode, the application stores the Expected stream of time-based 6-degree of freedom data (time, T, starts at zero):
The main loop for playback, below, is initialized by popping the first data point. Then the ‘while’ loop is executed as the user interacts. If the user gets off track, then the session timer is stopped until the user is back on track per repeated execution of user_is_close_enough( ).
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. The descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments. It should be understood that the above description is illustrative and not restrictive. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. The scope of the invention should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents.
The present invention claims the priority benefit of U.S. provisional application No. 61/845,217 filed Jul. 11, 2013, the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61845217 | Jul 2013 | US |