Speed and method of a mobile system

By using accelerometers and gyroscopes on wearable devices in a sterile environment to monitor operator movement in real time, the problem of unacceptable motion in real time feedback is solved, and the risk of contamination caused by air disturbance is reduced.

CN122162056APending Publication Date: 2026-06-05ELI LILLY & CO

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ELI LILLY & CO
Filing Date
2024-08-23
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

Existing technologies struggle to monitor and respond in real time to unacceptable operator movements in sterile environments, leading to air disturbances and contamination.

Method used

Wearable devices equipped with accelerometers and gyroscopes are used to monitor the operator's three-dimensional orientation and movement in real time. The processor filters and analyzes the acceleration signals to detect unacceptable movements and provides real-time warnings through the output device.

Benefits of technology

It enables real-time detection and feedback of unacceptable operator movements in a sterile environment, reducing air disturbance and lowering the risk of contamination.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122162056A_ABST
    Figure CN122162056A_ABST
Patent Text Reader

Abstract

A system for providing real-time feedback to an operator when unacceptable motion is detected is provided. The system includes a wearable device having a housing to be worn by an operator, a memory device, a sensor configured to output a motion signal corresponding to motion of the operator, an output device configured to output an operator alert in response to a determination of unacceptable motion of the operator, and a processor configured to: receive a plurality of output motion signals at a sampling rate; convert the output motion signals into a plurality of data points; analyze the data points to identify a pace at which the operator is walking; calculate a pace rate of the operator based on the identified pace; and cause the output device to output the operator alert in response to the pace rate exceeding a predetermined rate threshold corresponding to unacceptable motion of the operator.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to motion detection, and more particularly to a real-time monitoring and warning system for reducing air disturbances caused by operators in sterile environments. Background Technology

[0002] Operators working in sterile environments should move slowly and carefully to minimize air disturbance caused by rapid body movements. Such disturbances can lead to contamination. While operator behavior training helps reduce disturbances that induce movement, some operators may still walk too fast and / or move parts of their body too quickly. It is possible to use wearable devices, cameras, or other motion detection technologies to track operator movement and then analyze the motion data offline to identify unacceptable movements. However, such motion data collection and analysis does not reduce unacceptable movements while they are occurring.

[0003] It would be desirable to provide an operator motion monitoring system with improved features such as online real-time monitoring of operator motion and immediate feedback when unacceptable motion is detected. Summary of the Invention

[0004] According to one embodiment of this disclosure, a system for providing real-time feedback to an operator upon detecting unacceptable movement is disclosed. The system includes: a wearable sensor device configured to be worn by the operator, the wearable sensor device including an accelerometer and a gyroscope; one or more output devices configured to output an operator warning; one or more memory devices storing a plurality of executable instructions; and one or more processors communicatively coupled to the one or more memory devices and configured to execute the plurality of executable instructions to: receive a plurality of accelerometer signals from the accelerometer and a plurality of gyroscope signals from the gyroscope; determine a three-dimensional orientation of the wearable sensor device based on the gyroscope signals; filter the accelerometer signals based on the determined three-dimensional orientation to remove gravitational acceleration; detect unacceptable movement of the operator based on the filtered accelerometer signals; and output an operator warning via the one or more output devices when unacceptable movement of the operator is detected.

[0005] According to another embodiment of this disclosure, a method for providing real-time feedback to an operator when unacceptable movement of the operator is detected is disclosed. The method includes: providing the operator with: a wearable sensor device including an accelerometer and a gyroscope, and an output device configured to output an operator warning; receiving a plurality of accelerometer signals from the accelerometer and a plurality of gyroscope signals from the gyroscope; determining a three-dimensional orientation of the wearable sensor device based on the gyroscope signals; filtering the accelerometer signals based on the determined three-dimensional orientation to remove gravitational acceleration; detecting unacceptable movement of the operator based on the filtered accelerometer signals; and outputting an operator warning via the one or more output devices when unacceptable movement is detected.

[0006] According to another embodiment of this disclosure, a system for providing real-time feedback to an operator upon detecting unacceptable movement is disclosed. The system includes a wearable device having a housing configured for wear by the operator. One or more memory devices are communicatively coupled to the housing and store a plurality of executable instructions. One or more sensors are also communicatively coupled to the housing and configured to output motion signals corresponding to the operator's movement. One or more output devices communicatively coupled to the housing are configured to output an operator warning in response to determining unacceptable movement by the operator. One or more processors communicatively coupled to the housing are configured to execute a plurality of executable instructions that cause the one or more processors to: receive a plurality of output motion signals from the one or more sensors at a sampling rate; convert the plurality of output motion signals into a plurality of data points; analyze the plurality of data points to identify the steps taken by the operator; calculate the operator's step rate based on the identified steps; and cause the one or more output devices to output an operator warning in response to the step rate exceeding a predetermined rate threshold corresponding to unacceptable movement by the operator.

[0007] According to another embodiment of this disclosure, a method for providing real-time feedback to an operator when unacceptable movement of the operator is detected is disclosed. The method includes: having the operator wear a wearable device having a housing communicatively coupled to a memory device, a sensor, an output device, and a processor; the processor receiving a plurality of output motion signals from the sensor at a sampling rate; the processor converting the plurality of output motion signals into a plurality of data points; the processor analyzing the plurality of data points to identify the steps taken by the operator; the processor calculating the operator's step rate based on the identified steps; and the processor causing the output device to output an operator warning in response to the step rate exceeding a predetermined rate threshold corresponding to unacceptable movement of the operator.

[0008] According to another embodiment of this disclosure, a non-transitory computer-readable storage medium is provided having computer-executable instructions stored thereon. When executed by at least one processor, the computer-executable instructions cause the at least one processor to: receive, at a sampling rate, a plurality of output motion signals from one or more sensors coupled to a housing of a wearable device worn by an operator; convert the plurality of output motion signals into a plurality of data points; analyze the plurality of data points to identify the steps taken by the operator; calculate the operator's step rate based on the identified steps; and, in response to the step rate exceeding a predetermined rate threshold corresponding to unacceptable movement by the operator, cause one or more output devices coupled to the housing to output an operator warning.

[0009] According to another embodiment of this disclosure, a method for providing real-time feedback to an operator wearing a wearable device in a sterile environment upon detection of an unacceptable pace rate, thereby causing a change in the operator's behavior and reducing the risk of contamination, includes: at least one processor converting multiple output motion signals from at least one sensor on the wearable device into multiple data points for a movement time window, the multiple data points including a data point context subset and a data point current subset; the at least one processor analyzing the multiple data points by: adjusting parameters of multiple filters using at least the data point current subset to identify data points in the data point current subset and the data point context subset that represent the steps taken by the operator; the at least one processor calculating the operator's pace rate based on the steps taken by the operator within the data point current subset; and, in response to the pace rate exceeding a predetermined rate threshold corresponding to an unacceptable pace rate of the operator, the at least one processor causing an output device to output an operator warning. Attached Figure Description

[0010] The above-mentioned and other advantages and objects of this disclosure, as well as the ways in which they are realized, will become more apparent from the following description of embodiments of the invention, taken in conjunction with the accompanying drawings, and the disclosure itself will be better understood, in which: Figure 1A A conceptual diagram of components that may be included in a system according to this disclosure; Figure 1B Conceptual diagrams of components that may be included in alternative embodiments of the system according to this disclosure; Figure 2 This is a block diagram of a method for providing real-time motion monitoring and feedback according to embodiments of the present disclosure; Figure 3 yes Figure 2 A block diagram of the detection step frame; Figures 4 to 6This is a flowchart of the steps in a method for providing real-time feedback to an operator when unacceptable movement is detected. Figure 7 It is a graphical depiction of the data corresponding to the first ten-second time period during which the operator walks at a normal pace, which may be an unacceptable walking pace in a sterile environment. Figure 8 This is a graphical representation of the data corresponding to the second ten-second time interval, which includes... Figure 7 The data depicted in the last 9 seconds and the additional data for 1 second, during which the operator walks at a normal pace; and Figure 9 This is a graphical representation of the data corresponding to the third ten-second time interval, which includes... Figure 8 The data depicted includes the last 9 seconds of data and an additional 1 second of data, during which the operator walks at a slow pace.

[0011] Figures 10-11 This is a flowchart of steps in an alternative method for providing real-time feedback to an operator when unacceptable movement is detected.

[0012] Figure 12 Includes from Figures 10-11 A graphical representation of the data output from each step within the method shown.

[0013] Figure 13A and Figure 13B It is a more detailed description Figures 10-11 A flowchart of the steps for a function that is generally described in the text.

[0014] Figure 14 Exemplary accelerometer data is shown when an operator walks at fast, medium, and slow paces.

[0015] Figure 15 Exemplary triaxial accelerometer data recorded during a stationary period is shown.

[0016] Throughout the various views, corresponding reference characters indicate the corresponding parts. Although the accompanying drawings illustrate embodiments of this disclosure, they are not necessarily drawn to scale, and for better illustration and explanation of this disclosure, certain features may be exaggerated or omitted in some of the drawings. Detailed Implementation

[0017] Now for reference Figure 1AAn example of a system for detecting unacceptable movements of an operator according to this disclosure is shown as generally comprising a wearable device 10, a mobile device 12, and a computing device 14. The wearable device 10 can be any suitable device that can be worn on the operator's body, such as a smartwatch, a smart ring, a device integrated into clothing, an ankle chain, smart glasses, and / or sensors that can be clipped to or attached to clothing items. The wearable device 10 generally includes a housing 11, one or more processors 16 (e.g., microprocessors, ASICs, central processing units, etc.) communicatively coupled to the housing 11, one or more memory devices 18 (e.g., random access memory (RAM), read-only memory (ROM), flash memory, etc.) communicatively coupled to the housing 11, one or more sensors 20 communicatively coupled to the housing 11, and one or more interface devices 22 communicatively coupled to the housing 11. It should be understood that the wearable device 10 includes a wide variety of other components, which are omitted for the sake of simplicity in this description. Furthermore, for the sake of brevity, in the following text, one or more processors 16, one or more memory devices 18, one or more sensors 20, and one or more interface devices 22 will be referred to in the singular.

[0018] In some embodiments, processor 16 communicates with memory device 18, one or more sensors 20, and interface device 22, and executes software stored in memory device 18. In some embodiments, processor 16 executes a plurality of executable instructions stored in memory device 18 as a software program or app 24 to perform the functions described herein. Memory device 18 may store data in the form of measurements, data points, and / or other information acquired and / or generated during the execution of app 24, as further described below.

[0019] In some embodiments, one or more sensors 20 may include accelerometers, such as triaxial accelerometers, which measure acceleration in three orthogonal directions and include three sensing elements oriented perpendicularly to each other. Thus, the accelerometer output represents a motion signal indicating the force (including the force of gravity) on the one or more sensors 20 along the x, y, and z axes. In some embodiments, one or more sensors 20 may include gyroscopes, such as triaxial gyroscopes, which measure the rotation and orientation of the one or more sensors 20 along three orthogonal directions. Thus, the gyroscope output represents a rotational signal indicating the orientation or change in orientation of the one or more sensors 20 in three-dimensional space. In some embodiments, one or more sensors 20 may further include a magnetometer configured to detect the Earth's magnetic field and determine magnetic north. As will be apparent to those skilled in the art, when an operator walks while wearing the wearable device 10, the force on the accelerometers of the one or more sensors 20 changes as the operator's foot engages the ground. Furthermore, when the operator moves his / her body, thereby changing the orientation of the wearable device 10 in three-dimensional space, the three-axis gyroscope and / or magnetometer outputs of one or more sensors 20 provide signals indicating the changed orientation of the device 10. It should be understood that one or more sensors 20 may alternatively or additionally include a GPS device or any of a variety of other suitable sensors for detecting operator movement.

[0020] Interface device 22 may include input device 26 (such as a touchpad, touchscreen, keyboard, one or more buttons, microphone, etc.) and output device 28 (such as a haptic feedback device, display, indicator, audio output device such as a speaker, or any combination thereof). In some embodiments, output device 28 is a haptic feedback device that generates vibrations of housing 11 that can be felt by the operator when an operator warning is generated as described herein. In other embodiments, output device 28 alternatively or additionally includes an audio output device (e.g., a speaker) that generates a tone or other sound that can be heard by the operator when an operator warning is generated as feedback to the operator.

[0021] In some embodiments, the wearable device 10 performs at least the following functions: (1) generating data representing the operator's movement, (2) processing the data to determine the intensity of the operator's movement and the operator's pace rate, and (3) generating and outputting an operator warning when high-intensity movement and / or high pace rate is detected. In the examples described herein, one or more sensors 20 are described as generating raw data representing the operator's movement, processor 16 is described as processing the data to determine the intensity of the operator's movement and the operator's pace rate, and output device 28 is described as generating and outputting an operator warning when high-intensity movement and / or high pace rate is detected. While one or more sensors 20, processor 16, and output device 28 are primarily described as integrated components of the wearable device 10, it should be understood that in other embodiments, these components may not be housed within the wearable device 10. For example, processor 16 may be part of a teleprocessing device such as computing device 14, or part of a mobile device such as mobile device 12 described below. Output device 28 may also be separate from wearable device 10, such as a vibration device located in another part of the operator's body (e.g., legs, waist, etc.) but communicating with processor 16 via wired or wireless communication. Other non-integrated examples are possible and contemplated in this disclosure.

[0022] In some embodiments, during the operation of app 24, wearable device 10 is not paired with mobile device 12 because the operator is working in a sterile environment where mobile devices 12, such as smartphones, tablets, laptops, and other devices, may be prohibited. In such embodiments, all the functions described herein can be performed by wearable device 10 during operator shifts, and then, after the operator leaves the sterile environment, wearable device can be paired with mobile device 12, and, for example, placed near the location of mobile device 12 (i.e., using BLUETOOTH). ® The wearable device 10 can be connected to a charging device (not shown) within the range of communication protocols (or other communication protocols). After the devices are paired, the wearable device 10 can transmit data collected during shifts to the mobile device 12 via a wired or wireless connection for data visualization, analysis, reporting, or other purposes.

[0023] In other embodiments, during the operation of app 24, wearable device 10 is paired with mobile device 12, and the functions described herein can be distributed between the two devices. For example, wearable device 10 can simply generate motion data using one or more sensors 20 and immediately transmit that data to mobile device 12 for processing and analysis, and respond to commands from mobile device 12 by generating operator warnings via output device 28 when high-intensity motion and / or high pace rate is detected.

[0024] In yet another embodiment, computing device 14 may perform some of the functions described herein. In such an embodiment, functions may be distributed among wearable device 10, mobile device 12, and computing device 14. For example, wearable device 10 may generate motion data and output operator alerts, mobile device 12 may perform some aspects of data analysis, visualization, and reporting, and computing device 14 may perform other aspects of those functions. For example, computing device 14 may connect to a printer or other output device (not shown) for report generation, or connect to a network for transmitting data and / or reports to other computing devices. Alternatively or additionally, wearable device 10 may communicate directly with computing device 14 via a wired or wireless connection to network 30. In this way, wearable device 10 may perform some of the functions described herein without using mobile device 12, and computing device 14 may perform other functions. In some embodiments, mobile device 12 may communicate with computing device 14 via network 30.

[0025] Figure 1B Provided in Figure 1AAlternative examples of the systems depicted and described herein include those where the sensor(s)20 are not housed within the wearable device 10, but are instead separate components(s). For example, the sensor(s)20 may be integrated into a separate package approximately the size of a coin, credit card, or wallet and placed in an operator's pocket, worn around the operator's neck, strapped to the operator's torso, attached to the operator's belt, clipped to or attached to the operator's shoes or clothing, or otherwise secured to the operator's body. The sensor(s)20 may be placed on one or more parts of the operator's body separate from the wearable device 10. For example, in embodiments where the wearable device 10 is configured to be worn on the operator's wrist, the sensor(s)20 may be placed somewhere other than the operator's hand, wrist, or arm. The sensor(s)20 may be configured to detect, measure, and / or generate motion data, but may be housed in a separate housing and configured to communicate wired or wirelessly with the wearable device 10 to transmit said motion data to the wearable device 10. Alternatively or additionally, and although not explicitly stated for simplicity... Figure 1B As explicitly described, however, one or more sensors 20 may wirelessly communicate with mobile device 12 and / or computing device 14, either directly or via network 30. In such embodiments, wearable device 10 may be configured to provide operator warnings via output device 28 (e.g., via tactile alerts delivered to the operator's wrist or via audible alerts), but one or more sensors 20 configured to generate motion data may be positioned somewhere other than the operator's hand, wrist, or arm. Placing one or more sensors 20 elsewhere (e.g., on the operator's torso, waist, neck, or feet) means that any measured motion will be more indicative of the operator's walking speed and will reduce noise from movements of the operator's hand, wrist, or arm while the operator is performing his / her task.

[0026] Figure 2 Provided by Figure 1A and 1B The diagram shows a generalized block diagram of certain functions performed by the device in the system shown. In the following description, the wearable device 10 is described as performing various functions, although many other implementations are possible and contemplated by this disclosure, as set forth herein. Generally, at block 32, input data is provided by one or more sensors 20 in the form of motion signals. In one example, the processor 16 collects motion signals from one or more sensors 20 at a sampling rate of 20 Hz. In other embodiments, the sampling rate is lower or higher than 20 Hz (e.g., between 0.1 Hz and 100 Hz). In still other embodiments, the sampling rate can be as low as 0.01 Hz and as high as 800 Hz or higher.

[0027] As further described below, in an exemplary, non-limiting example, motion signals are sampled during the operation of app 24, converted into data points, and added to a ten-second data movement time window for analysis at one-second intervals in ascending order. In other words, after the first ten seconds of data collection yielding 200 samples, each call to app 24 (once per second) provides 20 new samples from (one or more) sensors 20, which are converted into 20 new data points added to the movement time window, and the earliest 20 data points in the movement time window are no longer used in the analysis described herein.

[0028] It should be understood that the frequency of calling app 24, the number of data points provided to app 24 each time it is called, and the size of the moving time window are all configurable parameters that can vary in different embodiments. For example, in other embodiments, app 24 may be called more or less frequently than once per second, one or more sensors 20 may provide more or fewer than 20 new samples each time app 24 is called, and the moving time window may include more or fewer than 200 data points.

[0029] As further described below, an exemplary objective in monitoring walking is to accurately identify step rates exceeding a predetermined rate threshold of 1.2 steps per second reflected in the most recent 1.5 seconds of data. The call rate of app 24, once per second, can be determined given the specific application and corresponding hardware limitations. Using a sampling rate of 20 Hz and processing 20 new data points per second may be insufficient to determine whether a peak corresponds to the operator's actual step rate. This determination generally requires more context. For example, as... Figure 7 As shown, sensor data generated by the operator's walking movement results in recurring patterns of data points, but not every obvious peak corresponds to an actual step (e.g., the midpoint between data points 722 and 724). In the example described herein with a sampling rate of 20 Hz and a predetermined rate threshold of 1.2 steps per second, any consecutive peaks spaced less than or equal to 16 data points apart would indicate an unacceptably high step rate and trigger an operator warning. Since the illustrative algorithm described herein operates on 20 new data points per second, it requires a larger data point buffer for the described analysis. In the example embodiment described herein, this buffer is 10 seconds of data or 200 data points within a movement time window.

[0030] Figure 9An example of a moving-time window containing 200 samples is depicted. The moving-time window 25 includes a context subset of data points corresponding to a first time period 27 and a current subset of data points corresponding to a second time period or region 728 immediately following the first time period 27. In this example and the remainder of this specification, the first time period 27 includes 8.5 seconds of data points, or 170 data points, and the second time period 728 includes 1.5 seconds of data points, or 30 data points. As a result of the 20 Hz sampling rate, the data points in the moving-time window 25 are uniformly spaced with indices spaced 0.05 seconds apart.

[0031] In the example described in this paper, the call rate of app 24, once per second, results in a slight delay between the occurrence of operator movement and its analysis. In practical applications of the system and method described in this paper, it is possible that after the previous call of app 24... t A warning-worthy activity will occur within seconds and before the next call (e.g., a change from a slow walking rate to a normal walking rate, which in some applications might be an unacceptably fast walking rate in a sterile environment). Since app 24 is called once per second in this example, there will be (1 - ) seconds before the algorithm can detect the activity. t A delay of 1 second. Because t The data is uniformly distributed between 0 and 1, so an average delay of 0.5 seconds is expected between the start of a warning event and the next call to app 24. This delay is based on the current subset of data points, using 1.5 seconds of data or 30 data points as described herein. For example, if an operator begins walking from a stationary position exactly 0.5 seconds after the first call to app 24, the first peak corresponding to this operator's movement will appear in the movement time window 25 provided to app 24 at index 190 during the next (second) call to app 24. Using a sampling rate of 20 Hz and a predetermined rate threshold of 1.2 steps per second as described herein, an operator warning is generated if the next peak after the first peak is less than 16 indices. If the index gap between the first and next peaks is equal to or greater than 16, this information will not be available in the movement time window 25 until the next (third) call to app 24 (i.e., 1.5 seconds after the first start of the unacceptable movement). Therefore, since the initial detection of alarming activity takes at least 1.5 seconds, some embodiments use a current subset of data points corresponding to 1.5 seconds of data or 30 data points. However, it should be noted that the time range and width of the current subset discussed herein are merely exemplary, and other time ranges and / or widths longer or shorter than 1.5 seconds may be used in different embodiments. For example, the time range and width of the current subset can be adjusted if the threshold for unacceptable motion is adjusted.

[0032] Reference Back Figure 2 At box 34, each sample or set of 3-axis signals from sensor(s) 20 is converted into data points by processor 16 from the raw 3-axis accelerometer output motion signal. , which represents the Euclidean norm of the signal value corresponding to each axis. Therefore, each sample data point equal ,in This represents the magnitude of the acceleration force along the x-axis. This represents the magnitude of the acceleration force along the y-axis, and This represents the acceleration force amplitude along the z-axis. In one example, after collecting and transforming 200 data samples as described above (i.e., collecting data for ten seconds at 20 Hz), processor 16 performs an intensity check as described below.

[0033] At box 36, processor 16 analyzes the current subset of data points (i.e., the last 30 data points out of 200 data points in the movement time window 25 (area 728)) to identify activities indicating unacceptably high-intensity movement by the operator. In other words, it analyzes the amplitude of the last 1.5 seconds of the data points (i.e., This data is compared to a predetermined intensity threshold to identify any high-intensity data indicating rapid operator movement, such as rapid arm movements. In one example, the predetermined intensity threshold is three times the gravitational equivalent, or approximately 9.8 m / s². 2 Three times the Earth's gravitational acceleration. Of course, depending on the application, other thresholds can be used, such as between two and four times the gravitational equivalent. If any of the last 30 data points has more than If the amplitude is determined, then at box 46, processor 16 causes output device 28 to provide an operator warning, such as through vibration, flashing indicators, and / or an audio alarm. The operator can be trained to recognize the operator warning as feedback regarding the operator's movement, and therefore the operator can immediately change his or her behavior upon receiving the warning. After providing the operator warning at box 46, at box 47, processor 16 causes the decision to generate the warning to be stored in memory device 18 and returns to box 32 to receive additional input data. If no data point exceeds a predetermined intensity threshold at box 36, the process continues at box 40.

[0034] At box 40, processor 16 performs various functions to identify data points representing the steps taken by an operator as they move through a sterile environment, as shown in the following reference. Figure 3 Detailed description. Using a moving time window of 25 ( Figure 9The processor 16 uses all data points in the current subset of data points (i.e., the last 30 data points out of 200) to detect steps. After detecting the operator's steps within the entire movement time window 25 at box 40, the processor 16 calculates the steps within the current subset of data points (i.e., the last 30 data points out of 200 data points) at box 42. Figure 9 The step rate of those steps detected in region 728 (representing data from the most recent 1.5 seconds) is calculated. More specifically, the step rate of steps falling within the current subset of data points is calculated as the reciprocal of the time difference between consecutive steps. For example, if in time... t 1 Instructing the first step, and then at a later time t 2 Indicate the second step, then the step speed is equal to As should be apparent from the foregoing, data points representing operator steps do not require timestamps. The elapsed time between consecutive steps can be determined by the index interval in the movement time window 25 (i.e., every 0.05 seconds due to the 20 Hz sampling rate).

[0035] At box 44, processor 16 compares the calculated step rate to a predetermined rate threshold. As explained above, in one example, the predetermined rate threshold is 1.2 steps per second. It should be understood that other higher or lower rate thresholds may be used in this or different applications. If any step rate corresponding to the last 30 data points in the movement time window 25 exceeds the predetermined rate threshold, processor 16 causes output device 28 to provide an operator warning (such as through vibration, flashing indicators, and / or providing an audio alarm) at box 46, stores the decision to provide an operator warning in memory device 18 at box 47, and returns to box 32 for additional input data. If no step rate exceeds the predetermined threshold at box 44, processor 16 causes the decision not to provide an operator warning to be stored in memory device 18 at box 47 and returns to box 32.

[0036] Now for reference Figure 3 It provides a block diagram depicting the various functions involved in the steps of the inspection operator (i.e., Figure 2 (Box 40). At box 48, processor 16 determines the operator's walking status. More specifically, processor 16 determines this from the motion data converted from the last 1.5 seconds (i.e., the current subset of data points). The processor determines whether the operator's current walking state is slow, normal, or fast. To determine the current walking state, the processor first calculates the current subset of data points. The 95th quantile amplitude. In other words, processor 16 classifies the 30 data points by amplitude and averages the values ​​of the 28th and 29th largest amplitudes (i.e., the 95th quantile of the 30 samples is...). The processor 16 compares the average of these values ​​with a walking state threshold to determine the walking state corresponding to the last 1.5 seconds of operation. In one embodiment, the walking state thresholds are 1.3 and 1.7, as reflected in Table 1 below. 95th percentile value Walking status <1.3 slow >= 1.3 and <= 1.7 normal >1.7 quick Table 1.

[0037] In other embodiments, the walking state threshold may be greater than or less than the values ​​listed above. Furthermore, it should be understood that the desired walking state can depend on the application or environment. In the example described herein, where the application is a sterile environment, the desired walking state is slow. In other applications, the desired walking state may be normal or even fast.

[0038] After processor 16 determines the current walking state as described above, processor 16 applies a peak-pitch filter to all 200 data points in the movement time window 25 at box 50 to identify peaks in the data that may represent the steps taken by the operator. If the data points The value is greater than or equal to the value at the data point The sum of previous data points at data points The predetermined number d of subsequent data points, then the data point It is considered a peak. It can be referred to as the parameter of minimum peak distance. d This depends on the current walking state determined at box 48. In one example, for a slow walking state, d = 6, for normal walking conditions, d =5, and for the fast walking state... d = 4. It should be understood that other minimum peak distances may be used in this or other applications. This applies to data points near the dataset boundaries (i.e., near the left and right ends of the 25-minute moving-time window). , and data points The values ​​of data points before or after the comparison points outside the shift time window 25 are set to zero. After the processor 16 identifies all peaks in the 200 data points, as described below, the processor 16 applies a vibration cancellation filter to the identified peaks at box 52.

[0039] The vibration cancellation filter depicted at box 52 applies a minimum value to the peaks identified at box 50 by comparing the peak amplitude with a minimum peak threshold that depends on the current walking state. In other words, all identified peaks less than or equal to the appropriate minimum peak threshold are discarded. In one embodiment, the minimum peak threshold is 1.08 for slow walking, 1.1 for normal walking, and 1.15 for fast walking. In other embodiments, other larger or smaller minimum peak thresholds may be used.

[0040] At block 54, processor 16 applies a dynamic window filter corresponding to the current walking state to the identified peaks that have passed through the vibration cancellation filter, as determined at block 52. In this process, all 200 data points in the movement time window 25 are divided into windows with widths relative to the data points, depending on the current walking state. In one embodiment, the window width is 19 for the slow walking state, 12 for the normal walking state, and 8 for the fast walking state. For example, for the fast walking state, the first 8 data points out of the 200 data points form the first leftmost window, and the next 8 form the second leftmost window. It should be understood that other, larger or smaller width values ​​may be used in this or other applications. For each peak that has passed through the vibration cancellation filter in block 52, processor 16 determines which window the peak falls within and identifies the data point with the minimum value and the data point with the maximum value within that window. In cases where those data point values ​​are identified, processor 16 calculates the dynamic difference according to the following equation: ,in peak i It is the value of the peak identified in box 52. dynamicMin i Including peak i The window contains the value of the data point with the minimum value of all data points in that window, and dynamicMax i This is the value of the data point that has the maximum value of all data points in the window. If the dynamic difference corresponding to the identified peak is less than or equal to a dynamic difference threshold (such as 0.15), the peak is discarded. In this or other applications, other larger or smaller dynamic difference thresholds can be used. As described below, processor 16 then evaluates the prominence of peaks with dynamic differences greater than 0.15 at box 56.

[0041] The peak prominence filter in box 56 focuses on the height of each peak relative to the other peaks. For each peak remaining after processing at box 54, processor 16 calculates the graphical equivalent of a horizontal line passing through the peak and extending to its left and right sides. Processor 16 terminates the line when it crosses a higher peak or reaches the end of the moving-time window 25. The termination position of the horizontal line for each peak is identified as the left termination point. and right endpoint The processor 16 then identifies the identified peaks and those with the smallest amplitude. (in the following text, The data points between, and the identified peaks and those with the smallest amplitudes. (in the following text, The data points are located between 1 and 2. Next, the processor 16 calculates the peak prominence value according to the following equation: The processor 16 compares each salience value with a minimum peak salience threshold corresponding to the current walking state. In one embodiment, the minimum peak salience threshold is 0.2 for slow walking, 0.25 for normal walking, and 0.35 for fast walking. In other applications, other larger or smaller minimum peak salience thresholds may be used. If a peak's salience value is less than or equal to the applicable minimum peak salience threshold, the peak is discarded.

[0042] Processor 16 then determines at block 58 whether more than one identified peak satisfies the salience filter of block 56. If not, processor 16 returns to... Figure 2 Box 32 is used to collect more input data. If more than one identified peak satisfies the prominence filter, then at box 60, processor 16 applies a periodicity filter to the identified peaks. In this context, periodicity is the difference in index or position between two consecutive peaks within the moving-time window 25. For example, the index of the data points where two consecutive peaks are located within the moving-time window 25. and data point index In this case, the periodicity of the second peak is 25. After calculating the periodicity of each peak, the processor 16 compares the periodicity value with predetermined minimum and maximum periodicity limits depending on the current walking state. In one embodiment, the predetermined minimum and maximum periodicity limits are shown in Table 2 below. Walking status Minimum periodicity Maximum periodicity slow 16 25 normal 9 16 quick 6 10 Table 2.

[0043] In this or other applications, other larger or smaller periodicity values ​​may be used. Any identified peaks with periodicity values ​​falling outside the applicable minimum and maximum periodicity limits are discarded.

[0044] If more than three peaks are determined to pass through the periodic filter at block 62, then processor 16 applies a similarity filter to the peaks at block 64. Otherwise, as described herein, processor 16... Figure 2 The stride rate is calculated at frame 42. A similarity filter checks if the similarity parameter of each identified peak is greater than a similarity threshold. The peak similarity parameter is calculated according to the following equation: It should be understood that... and This corresponds to the same foot the operator is using while walking. In one embodiment, the similarity threshold is -0.5 for all walking states. Other, larger or smaller similarity thresholds can be used in this or other applications. Any identified peaks with a similarity parameter less than or equal to the similarity threshold are discarded. The remaining peaks are identified as steps and used by processor 16 in step rate calculations, as referenced above. Figure 2 The box 42 is described.

[0045] Figures 4-6 A flowchart is provided showing additional details of the aforementioned method for providing real-time feedback to the operator when unacceptable movement is detected. The method begins with... Figure 4 In step 100, as described above, processor 16 receives output motion signals from sensor(s)20. At step 102, processor 16 converts the output motion signals into data points by calculating the Euclidean norm of the vectors represented by each set of x-axis, y-axis, and z-axis signals from sensor(s)20. At step 104, processor 16 compares the amplitude of each data point in the current subset of data points corresponding to the second time period 728 of the movement time window 25 with a predetermined intensity threshold, as referenced above. Figure 2 As described in box 36. If the amplitude of the data point exceeds a predetermined intensity threshold, as determined in box 106, indicating unacceptable movement by the operator, then processor 16 causes output device 28 to generate an operator warning in step 148. Then, in box 110, this determination is stored in memory device 18, and processor 16 returns to step 100 to obtain an additional output motion signal. Otherwise, processor 16 proceeds to step 112.

[0046] Steps 112, 114, and 116 describe the process for determining the operator's current walking state. At step 112, processor 16 calculates the 95th quantile magnitude of the current subset of data points. At step 114, the processor compares the calculated 95th quantile magnitude with a walking state threshold in the manner described above to determine whether the current walking state is slow, normal, or fast, as indicated in step 116. The current walking state is then used to configure the multiple filters described above to identify data points corresponding to the operator's stride.

[0047] exist Figure 5 and Figure 6 More details are shown in the middle. Figure 3 The process of detection steps is described in the text. Figure 4After determining the current walking state at step 116, if the amplitude of the data point is greater than or equal to the amplitude of d previous data points and greater than or equal to the amplitude of d subsequent data points in the moving time window, then the processor 16 applies a peak amplitude filter to the data point to identify the data point as a peak, where d is a number corresponding to the current walking state as described above.

[0048] At step 120, processor 16 applies a vibration cancellation filter to the peaks identified in step 118 and discards any identified peaks with amplitudes less than or equal to the minimum peak threshold as described above.

[0049] Steps 122, 124, 126, and 128 represent Figure 3 The dynamic window filter is depicted at box 54. At step 122, as described above, processor 16 divides the data points in the movement time window 25 into windows with widths (in terms of data points) depending on the current walking state. At step 124, processor 16 determines which windows correspond to each of the identified peaks. At step 126, processor 16 calculates a dynamic difference for each identified peak. As indicated above, the dynamic difference is the amplitude of the identified peak minus 0.5 times the sum of the amplitudes of the data points with the smallest and largest amplitudes in the window. At step 128, processor 16 discards any identified peaks with dynamic differences less than or equal to the dynamic difference threshold.

[0050] Figure 5 Steps 130-140 indicate that in Figure 3 The peak prominence filter is depicted at box 56. At step 130, for each remaining identified peak, processor 16 calculates a horizontal line passing through the identified peak. At step 132, processor 16 terminates the horizontal line when it crosses another identified peak with a higher amplitude or reaches the end of the movement time window 25. At step 134, these termination points are identified as left and right termination points. At step 136, processor 16 identifies a first data point as the minimum amplitude data point between the identified peak and the left termination point, and a second data point as the minimum amplitude data point between the identified peak and the right termination point. Then, at step 138, processor 16 calculates a prominence value for each identified peak, which is equal to the peak amplitude minus the larger of the amplitude of the first data point and the amplitude of the second data point. Finally, at step 140, processor 16 discards any identified peaks with a prominence value less than or equal to the minimum peak prominence threshold corresponding to the current walking state.

[0051] After applying the salience filter, Figure 6At step 142, processor 16 determines whether there is more than one remaining identified peak. If not, processor 16 returns to... Figure 4 Step 100 involves receiving more output motion signals from sensor(s)(one or more) 20. If more than one identified peak remains at step 142, processor 16 applies the aforementioned periodic filter at steps 150, 152, and 154. Specifically, at step 150, processor 16 determines the position of each identified peak (in terms of data point index within the motion time window 25). At step 152, processor 16 assigns a periodic value to each identified peak, corresponding to the number of data point indices between the identified peak and the previous identified peak. Then, at step 154, as described above, processor 16 discards any identified peaks with periodic values ​​less than a minimum periodicity limit or greater than a maximum periodicity limit.

[0052] At step 156, processor 16 determines whether there are more than three remaining identified peaks. If not, processor 16 returns to... Figure 4 Step 144 is performed, and the step rate is calculated as described above. If more than three identified peaks remain at step 156, processor 16 applies a similarity filter at steps 158, 160, and 162. Specifically, at step 158, processor 16 determines the similarity parameter for each identified peak as the negative of the absolute value of the difference between the amplitude of the identified peak and the amplitude of the peak preceding the previous identified peak. At step 160, as described above, processor 16 discards any identified peaks with a similarity parameter less than or equal to the similarity threshold. At step 162, processor 16 identifies the remaining identified peaks as steps and returns to... Figure 4 Step 144 is to calculate the pace rate as described above.

[0053] Reference Back Figure 4As indicated above, at step 144, processor 16 calculates the step rate between consecutively identified steps in the current subset of data points (e.g., within the most recent 1.5 seconds or 30 data points in the movement time window 25). Then, at step 146, processor 16 compares the calculated step rate with a predetermined rate threshold. If the step rate exceeds the predetermined rate threshold, at step 148, processor 16 causes output device 28 to generate an operator warning. At step 110, this decision is stored in memory device 18. If the step rate does not exceed the predetermined rate threshold, at step 110, processor 16 stores the decision not to generate an operator warning in memory device 18. After storing the decision at block 110, processor 16 returns to step 100 to receive additional output motion signals from sensor(s)(one or more) 20 and repeats the process.

[0054] It should be understood that the various filters following the peak-pitch filter described above can be considered optional, or may appear in an order different from that described, depending on the application. In other words, in some embodiments, one or more of the vibration cancellation filter, dynamic window filter, peak prominence filter, periodic filter, and similarity filter may be omitted, rearranged relative to other filters, or added as supplementary filters.

[0055] Now for reference Figure 7 A graphical example is provided, showing the amplitude of 200 data points as a function of time, representing the operation of app 24 over the first ten seconds. See the reference above. Figure 2 As described in box 34, the plotted data points are converted from the motion signals output by the raw 3-axis accelerometer. The plotted data points provide an example corresponding to data points in a normal walking state. In this example, the process described above identified 13 peaks as follows: peak 700 at index 48, peak 702 at index 61, peak 704 at index 73, peak 706 at index 87, peak 708 at index 97, peak 710 at index 111, peak 712 at index 120, peak 714 at index 132, peak 716 at index 144, peak 718 at index 156, peak 720 at index 168, peak 722 at index 181, and peak 724 at index 196.

[0056] Figure 8 Similar to Figure 7 However, it includes the additional 20 data points obtained during subsequent calls to app 24 (i.e., the rightmost 20 data points), and does not include... Figure 7 The earliest or leftmost 20 data points depicted. As shown, Figure 7The index positions of the 13 peaks identified as peaks 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, and 724 are shifted 20 positions to the left. For example, peak 700 is... Figure 8 At index 28, it is from Figure 7 Its index 48 was shifted 20 bits to the left. Also, as shown, during a subsequent call to app 24, another peak 726 was identified at index 188. Figure 8 The data points in the diagram continue to depict the normal walking state.

[0057] Figure 9 This depicts a set of 200 data points within the moving time window 25 after another subsequent call to app 24. Again, the data points are shifted 20 positions to the left, and another 20 new data points are added between indices 180 and 200. This example depicts the result of the operator starting to walk at a slow rate. (See reference above.) Figure 3 As described in box 48, for each call to app 24, processor 16 determines the operator's current walking state by calculating the 95th percentile magnitude of the most recent 30 data points (i.e., data points in region 728 between and including indices 171 and 200) and comparing the result with the walking state thresholds provided in Table 1 above. In this example, the average of the 28th largest magnitude data point (labeled 730) and the 29th largest magnitude data point (labeled 731) is clearly less than the walking state threshold of 1.3. Thus, the current walking state for this call to app 24 is slow.

[0058] from Figure 7 and Figure 8 The normal walking state depicted in the text Figure 9 The change in the slow walking state described in the text affected the above reference. Figure 3 Several filters are described. More specifically, the current slow-walking state affects the above reference. Figure 3 The peak-to-peak filter described in box 50 (i.e., changing parameter d from 5 corresponding to the normal walking state to 6 corresponding to the slow walking state). See above for reference. Figure 3 The vibration cancellation filter described in box 52 is also affected (i.e., the minimum peak threshold is changed from 1.1 corresponding to normal walking to 1.08 corresponding to slow walking). See above reference... Figure 3 The dynamic filtering window described in box 54 is also affected (i.e., the window width is changed from 12 corresponding to the normal walking state to 19 corresponding to the slow walking state). This change also affects the reference above. Figure 3The peak prominence filter described in box 56 (i.e., changing the minimum peak prominence threshold from 0.25 corresponding to normal walking to 0.2 corresponding to slow walking). Finally, refer to the above. Figure 3 The periodic filter described in box 60 is also affected (i.e., the minimum and maximum periodic limits are changed from 9 and 16 corresponding to the normal walking state to 16 and 25 corresponding to the slow walking state, respectively).

[0059] As a result of the changes to the filter caused by the current slow-walking state, the number of identified peaks and the corresponding stride rates decreased. For example... Figure 9 As shown, only four peaks have been identified so far (i.e., peak 700 at index 8, peak 704 at index 33, peak 708 at index 57, and peak 712 at index 80). As should be obvious from the foregoing, the actual number of steps taken by the operator is clearly insufficient, but counting the actual steps is not the goal of this system, as described further below.

[0060] The purpose of this system and method is to provide accurate, real-time feedback (i.e., operator warnings) to an operator in response to their most recent unacceptable movement. This feedback is based on the most recent information about the operator's movement (i.e., the most recent 30 data points). In this way, no additional warnings are issued to the operator for previously warned unacceptable movements after the operator's behavior has changed to eliminate the unacceptable movement. In other words, once an operator is warned of unacceptable movement, the operator will not receive another warning for the same unacceptable movement.

[0061] To further explain, consider an alternative method for generating accurate step rate calculations for all data within the movement time window 25. This method could segment the input data into segments, each corresponding to a unique motion state, adjust filter parameters (such as those described above) within each segment to identify steps, and calculate the step rate between consecutive steps. While this method would produce accurate step rates for all data received within the movement time window 25, most of the results would be immediately discarded or left unattended, as operators should not be alerted to previously warned unacceptable motions.

[0062] Furthermore, achieving accurate step rate calculation over the entire movement time window 25 (which is unnecessary for the operation of the systems and methods of this disclosure) would be expensive in terms of processing and memory resources. Appropriately segmenting the data according to different motion states would require detecting points of change in motion states, a process that is expensive or impractical from a computational perspective using certain hardware such as wearable device 10. Alternatively, one could cache and pass the previous execution state, covering the entire input buffer, as additional input to the algorithm. However, this would also be expensive or impractical given the memory capacity of certain hardware.

[0063] Since the purpose of this disclosure is to provide accurate, real-time feedback in response to the detection of unacceptable motion, rather than uniformly calculating the accurate step rate across all data points in the movement time window 25, the data point context subset is used only as the context for accurately detecting steps within the current subset of data points (i.e., region 728 of the movement time window 25). A periodic filter is used as an example, and references are made to... Figure 9 (It depicts the transition from a normal walking state to a slow walking state), and the periodic value increases. Therefore, in the actual normal walking region, only a subset of steps will remain. For example... Figure 9 As shown, only the peaks 700, 704, 708, and 712 at indices 8, 33, 57, and 80, respectively, are retained as the identified steps, which correspond to... Figure 8 Peaks 700, 704, 708, and 712 at indices 28, 53, 77, and 100 of the previously invoked data are depicted. Previously identified steps 702, 706, 710, 714, 716, 718, 720, 722, 724, and 726 were not re-identified as steps because they were discarded as a result of not passing one of the various filters described above, which were adjusted to reflect the current slow-walking state. Since the remaining steps 700, 704, 708, and 712 are "manually" expanded (due to the omission of the previously identified steps mentioned above), they will not cause operator warnings even if they are used to calculate step rates, as if they were current normal walking state data. This result is not a defect but an intentional feature of some embodiments: because the previously identified peaks in the first time period 27 represent past activity that would have generated any desired operator warnings, it is acceptable to count incorrect steps in this first time period 27, as long as steps in the current subset of data (i.e., region 728 of the movement time window 25) are accurately detected.

[0064] On the other hand, the periodicity value decreases when there is a transition from slow walking to normal walking. Therefore, in the actual slow walking region, most of the peaks representing steps will be filtered out because their periodicity values ​​will exceed the maximum periodicity limit. As a result, no steps will be detected in this region, and no operator warnings will be generated. In the latest normal walking region, as a result of using a subset of data point context, the correct filter value ensures that steps are identified more accurately. Thus, the system and method of this disclosure take advantage of the fact that step rates do not need to be consistently accurate to provide a more efficient and practical approach from the perspective of computational resources used and required memory capacity.

[0065] Figure 10 Figure 13 illustrates the following according to some embodiments: Figure 1A and Figure 1B An additional block diagram illustrating exemplary functions performed by the devices in the system shown. Figures 2-6 The functions discussed in the text are different. Figure 10 The method or function described in Figure 13 does not count steps or calculate step rate, nor does it compare steps or step rate with a threshold to determine whether to warn the operator. Instead, Figure 10 The function discussed in Figure 13 uses motion signals from one or more sensors 20 to determine the operator's walking speed and compares the determined speed to a threshold. If the determined speed is greater than the threshold, the function issues a warning to the operator.

[0066] In the following description, the processor 16 of the wearable device 10 is described as performing various functions, although as set forth above, many other implementation methods are possible and contemplated by this disclosure. For example, Figure 10 The functions described in Figure 13 can be performed by another of the mobile device 12, computing device 14, or even wearable sensor device 20, or the functions can be distributed across any two or more of the aforementioned devices. Generally, at box 1002, input data is provided by one or more sensors 20 in the form of motion signals. As previously discussed, one or more sensors 20 can be integrated with wearable device 10 (e.g., Figure 1A (as shown in the image), or it can be set up separately from device 10 (as shown in the image). Figure 1B (As shown in the image). For Figure 10 The functionality described in Figure 13 may preferably utilize one or more sensors 20 (e.g., separately located from device 10) Figure 1BAs shown in the diagram, and specifically using one or more sensors 20 that are not attached to the operator's hand, wrist, or arm to mitigate interference from the movement of the operator's hand, wrist, or arm while working, and specifically using one or more sensors 20 that are separate from the speed at which the operator is walking. For example, in some embodiments, one or more sensors 20 may be attached to one or both feet of the operator (e.g., clipped to one or both shoes of the operator). The input data received at block 1002 may include multiple accelerometer signals from an accelerometer (e.g., a three-axis accelerometer) and multiple gyroscope signals from a gyroscope (e.g., a three-axis gyroscope) housed within a wearable sensor device, such as those described above. Figure 1B The discussed sensor(s) 20. In some embodiments, the input data received at block 1002 may further include multiple magnetometer signals from a magnetometer also housed within the wearable sensor device. Such signals may be sampled at a sampling rate of 100 Hz, although lower or higher sampling rates (e.g., between 0.1 Hz and 200 Hz) may also be used.

[0067] At block 1004, processor 16 can determine the three-dimensional orientation of the wearable sensor device based on the received gyroscope signals. This allows processor 16 to determine how the wearable sensor device is oriented relative to the “up” or “down” direction relative to the Earth. In some embodiments, wearable device 10 can also use multiple magnetometer signals from a magnetometer to determine which direction is “north”, thereby further refining the determined three-dimensional orientation of the wearable sensor device. At block 1006, processor 16 can filter the received accelerometer signals based on the three-dimensional orientation determined at block 1004 to remove gravitational acceleration. This can be done by adding an amplitude equal to gravitational acceleration (i.e., 9.8 m / s²) in the “up” direction to the three-dimensional accelerometer data received at step 1002. 2This can be accomplished by subtracting a vector from the three-dimensional accelerometer data whose magnitude in the "downward" direction is equal to the gravitational acceleration. In yet another embodiment, this can be done by removing and / or ignoring all components of the three-dimensional accelerometer data along the vertical axis (e.g., along the Z-axis) to convert the three-dimensional accelerometer data into two-dimensional data (e.g., only in the XY plane). At block 1008, processor 16 can detect unacceptable operator motion based on the filtered accelerometer signal. For example, processor 16 can detect when the filtered accelerometer signal exceeds a predetermined acceleration threshold. In some embodiments, the accelerometer signal may first be filtered and / or further processed before being compared with the acceleration threshold. For example, the accelerometer signal may be downsampled, aggregated, or filtered using low-pass, band-pass, or high-pass filters or other filtering or processing techniques to reduce noise. See below regarding... Figure 11 Figure 13 discusses other techniques for detecting unacceptable motion. At box 1010, when unacceptable motion is detected, processor 16 can generate an operator warning. As previously discussed, such a warning can be issued using output device 28 of wearable device 10. For example, a warning can be issued as a haptic warning provided by wrist-worn wearable device 10.

[0068] In some embodiments, upon completion of block 1010, processor 16 may branch back to block 1002 to continuously receive and process accelerometer and gyroscope signals to detect unacceptable motion. This loop may continue indefinitely until an operator instructs processor 16 to stop or shuts it down, for example, when the operator leaves the sterile manufacturing area.

[0069] The method of filtering accelerometer signals based on the up / down orientation determined by the gyroscope signal to remove gravitational acceleration represents a technical improvement to the functionality of the system described herein for detecting operator walking speed. While existing systems may attempt to remove the influence of gravity on the detected operator acceleration signal through simpler methods, these methods generally result in less accurate rates. For example, existing systems may attempt to remove the influence of gravity by passing the accelerometer signal through a high-pass filter that removes low-frequency signals, since the effect of gravity can be modeled as a low-frequency constant signal. However, filtering the accelerometer signal through a high-pass filter in this way reduces the fidelity of the measured accelerometer data. This reduction in fidelity and / or resolution may be acceptable for systems where the filtered accelerometer signal is only used to calculate the acceleration amplitude (e.g., to detect whether the operator has experienced a sudden, violent impact (such as a fall or a rapid jolt from a collision)). However, this reduction in fidelity and / or resolution is undesirable when the measured accelerometer data is integrated to derive the change in rate, and the derived change in rate is used to calculate the instantaneous walking rate (as is the case here). Accelerometer signals should preferably maintain sufficient fidelity and / or resolution to allow for accurate determination of the change in rate, which requires preserving not only the amplitude of the accelerometer signals but also their orientation in three-dimensional or two-dimensional space. Simply passing the accelerometer signals through a high-pass filter undesirably affects the orientation of the accelerometer signals in three-dimensional space, leading to undesirable errors in the determined rate. Instead, by first using a gyroscope to determine the up / down orientation and then using the determined up / down orientation to remove gravity, the effects of gravity can be filtered out more accurately without affecting the orientation of the measured accelerometer signals, thus allowing for a more accurate determination of the operator's rate and / or speed.

[0070] Other existing systems might simply attempt to align the axis of the accelerometer on the operator's body so that the z-axis is set perpendicular to the ground, and then ignore all accelerometer signals along the z-axis. However, such existing systems either require the z-axis of the accelerometer on (one or more) sensor 20 to be constantly aligned with the up / down direction (which may be difficult to achieve on sensors attached to moving parts of the operator's body), or require the operator to accept unavoidable alignment errors as the accelerometer shifts and rotates during the operator's movement. Currently disclosed techniques that use a gyroscope to determine the up / down direction and then use that determined direction to filter out the effects of gravity allow for precise removal of gravity without requiring (one or more) sensor 20 to be oriented in a particular direction.

[0071] Figure 11This is a block diagram further detailing one possible method for implementing block 1008, namely, a method for detecting unacceptable operator motion based on filtered accelerometer signals. At block 1102, the acceleration norm can be calculated from the filtered accelerometer signal. For example, this norm can be derived from the expression... The calculated scalar norm, where x, y, and z are the three axes of the three-dimensional filtered accelerometer data (or, in an embodiment where the filtered accelerometer signal is a purely two-dimensional signal, this can be expressed as an expression). (To calculate). This can be done at multiple time points during the monitored period to construct a time-series signal comprising multiple data points, where each data point represents the acceleration norm of a separately measured acceleration. An exemplary output of box 1102 is... Figure 12 The illustration is located at point 1202.

[0072] At box 1104, time periods within the time series acceleration norm signal can be analyzed to determine if the acceleration norm is less than an acceleration threshold (e.g., X m / s). 2 The time period (where X is a configurable parameter) is defined as the period of time during which the wearable sensor device is considered stationary. This defined time period can be designated as a "stationary moment," during which the wearable sensor device is considered stationary. While an accelerometer may theoretically record little to no acceleration when moving at a constant rate, in practice, it is generally quite impractical and / or difficult for an operator to move a wearable accelerometer at such a constant rate to record little to no acceleration. Therefore, when the acceleration norm is below an acceleration threshold during a specific time period, it is assumed that the wearable sensor is stationary, and this time period is designated as the stationary moment. An exemplary output of box 1104 is shown in... Figure 12 The illustration at position 1204 shows that the stationary time is set to the value 0, and the non-stationary time is set to the value 1.

[0073] At box 1106, during the stationary period specified in box 1104, the operator's movement rate is set to zero. And at box 1108, the filtered accelerometer signal is integrated to determine the change in rate at all time points outside the stated stationary period. By assuming the rate is zero during the stationary period, the rate during non-stationary periods can be calculated based on the determined rate change accumulated since the most recent stationary period. An exemplary output of box 1108 is shown in... Figure 12The figure at point 1206 illustrates this. Since the determined rate is calculated as the cumulative change in the determined rate since the most recent standstill moment (where the rate is set to zero), the determined rate may become increasingly susceptible to errors introduced by sensor inaccuracies and / or mathematical rounding errors as more time passes since the most recent standstill moment. Therefore, it is important to accurately identify standstill moments and ensure that they are not too far apart in time. For this reason, an embodiment in which one or more sensors 20 are placed on one or both of the operator's feet (e.g., clipped to one or both of the operator's shoes) may be advantageous, as a standstill moment can be detected and asserted each time the operator's foot contacts the ground and before the foot leaves the ground again for the next step. This ensures that standstill moments are detected and asserted periodically to eliminate any accumulated errors introduced by sensor inaccuracies and / or mathematical rounding.

[0074] At box 1110, the determined operator rate is filtered to reduce and / or mitigate noise. For example, the determined operator rate may be sampled at a frequency of 100 Hz. To reduce and / or mitigate noise, the operator rate may be downsampled to a lower temporal resolution. This downsampling can be done by aggregating the determined rate into a discrete rate aggregation window with a predetermined duration (e.g., 1.5 s). All rate data points within the rate aggregation window can be aggregated according to any known technique, such as summation and / or calculation of the mean or median average. In some embodiments, this filtering can be done using a Kalman filter. Kalman filters are particularly useful in embodiments where sensor(s)20 is attached to one or both feet of the operator, as a properly configured Kalman filter has been experimentally determined by the inventors to be particularly helpful in filtering out periodic peaks / valleys in the determined rate, which indicate the speed at which the operator swings his / her foot with each step, but not necessarily the speed at which his / her center of mass is moving laterally while the operator is walking. The exemplary output of box 1108 is... Figure 12 The diagram at 1208 illustrates this. As can be seen by comparing 1206 and 1208, the filtering and / or aggregation operation in block 1108 reduces the prominence of sharp rate peaks. In some embodiments, mitigating these sharp rate peaks reduces the frequency of false positives, where the processor 16 incorrectly warns the operator even if the operator is not moving too fast or in other unacceptable ways.

[0075] At box 1112, the determined operator speed is compared to a predetermined speed threshold. For example, the U.S. Food and Drug Administration (FDA) has issued guidance that operators in aseptic manufacturing environments should not walk faster than 1.2 miles per hour, or approximately 0.6 meters per second. Therefore, the speed threshold can be set to 0.6 meters per second (although higher or lower speed thresholds can also be used, such as 0.5, 1.0, or 1.5 meters per second). This speed threshold is illustrated by line 1210 in Figure 1208. If the determined operator speed is greater than or equal to the speed threshold (e.g., above or at line 1210), then at box 1114, processor 16 determines that unacceptable movement by the operator has been detected. If the determined operator speed is less than the speed threshold (i.e., below line 1210), then processor 16 determines that no unacceptable movement by the operator has been detected. In either case, after determining whether unacceptable movement has been detected, processor 16 proceeds to... Figure 10 Box 1010 in the middle.

[0076] According to various embodiments, each of the functions described above can be deleted, rearranged, modified, or added. For example, step 1110 can be omitted entirely, and the output of block 1108 can be directly compared with the threshold at block 1112 without any filtering.

[0077] Figure 13A and Figure 13B It is a more detailed description Figures 10-12 The block diagram generally describes the functionality. In some exemplary, non-limiting examples, the three-dimensional accelerometer signal can be sampled at a sampling rate (e.g., 100 Hz) during the operation of app 24, converted into data points, and added to the growing time-series signal in ascending time order for analysis. The three-dimensional gyroscope signal and the magnetometer signal (if the magnetometer is present in the wearable sensor device) can also be similarly sampled at the sampling rate, converted into data points, and added to the growing time-series signal in ascending time order for analysis. At the exemplary sampling rate of 100 Hz, new accelerometer, gyroscope, and magnetometer signals can be added to their respective growing time-series signals every 0.01 s.

[0078] As previously described, gyroscope signals can be used to determine the orientation of the wearable sensor device. Magnetometer signals can also be used to refine and update the determined orientation of the wearable sensor device in real time. The determined orientation can then be used to determine which direction is "up" and "down" for the wearable sensor device and to filter the received accelerometer signals to remove the effects of gravity. All of this can be done in real time, for example, within seconds of detecting and / or receiving the most recent accelerometer, gyroscope, and / or magnetometer signals. The filtered accelerometer signals can also be added to the growing time series signal in ascending order for analysis.

[0079] Figure 13A and Figure 13B The features described include technological improvements to enhance the accuracy of the detected operator speed. Firstly, Figure 13A and Figure 13B The functionality described includes enhancement methods for accurately detecting and asserting "stationary moments," as previously explained, which are important for periodically resetting the measured rate to zero to eliminate accumulated measurement or computational errors. If a test window (e.g., with a duration threshold T) is found... min All accelerometer signals within the duration of (A) are less than or equal to the acceleration threshold (A) min This allows for the detection and / or assertion of moments of stillness. The inventors have realized that regardless of how fast the operator is walking, a single duration threshold T for the test window can be used. min and a single acceleration threshold A min All of these factors can lead to inaccurate detection of stationary moments. Instead, depending on whether the operator is walking at a fast, medium, and / or slow pace, different duration thresholds T should be used. min and acceleration threshold A min It can help the processor 16 accurately detect and assert static moments.

[0080] Figure 14 The image depicts filtered accelerometer signals (e.g., as shown in the image) recorded during a first time period 1402 when the operator is walking briskly, a second time period 1404 when the operator is walking at a moderate pace, and a third time period 1406 when the operator is walking at a slow pace. Figure 10(As discussed in step 1006, gravity has been removed). When the operator is walking briskly (1402), the peaks in the filtered accelerometer signal are generally larger in amplitude and closer together in time. Similarly, when the operator is walking at a moderate pace (1404), the peaks in the filtered accelerometer signal are generally moderate in amplitude and more dispersed together in time. And when the operator is walking at a slow pace (1406), the peaks in the filtered accelerometer signal are generally smaller in amplitude and even more dispersed in time.

[0081] Therefore, if a reassessment window for the walking state is found (with a duration T), state The average value of all filtered accelerometer signals within a period of 2 seconds exceeds a first threshold (e.g., 15 m / s²). 2 If the operator is walking at a fast pace, then the first duration threshold T is determined. min and the first accelerometer threshold A min It is used to detect and assert the moment of stillness. If the average value of all filtered accelerometer signals within the reassessment window of the walking state is at a first threshold (e.g., 15 m / s²), then... 2 ) and the second (smaller) threshold (e.g., 6 m / s 2 If the distance is between 0 and 1, it is determined that the operator is walking at a moderate pace, and the second duration threshold T is within 1 / 3 of the specified distance. min Second accelerometer threshold A min It can be used to detect and assert moments of stillness. And finally, if the average of all filtered accelerometer signals within the reassessment window of the walking state is less than or equal to a second (smaller) threshold (e.g., 6 m / s²), then... 2 If the operator is walking at a slow pace, then the third duration threshold T is determined. min and the third accelerometer threshold A min It can be used to detect and assert moments of stillness. Table 3 below summarizes an exemplary set of durations and accelerometer thresholds to be used for each walking state: "Fast" walking state (average acceleration > first threshold) "Moderate" walking state (first threshold ≥ average acceleration > second threshold) "Slow" walking state (second threshold ≥ second threshold) <![CDATA[Duration threshold T min (seconds)]]> 0.05 0.05 0.1 <![CDATA[Accelerometer threshold A min (m / s 2 )]]> 3.5 2.0 1.0 Table 3.

[0082] Although the preceding description describes the use of three different walking states (“fast,” “medium,” and “slow”), any number of walking states, greater than or equal to two, can be used. For example, in some embodiments, only two states (e.g., “fast” and “slow”) may be used. And in other embodiments, three, four, five, or six different states may be used. The method described herein can be readily extended to accommodate different numbers of walking states, each with a different duration threshold T. min and accelerometer threshold Amin It is used to detect moments of stillness.

[0083] second, Figure 13A and Figure 13B The functions described include those for mitigating, even on top of. Figure 10 The enhancement method does not completely remove residual gravitational effects even after the filtering operation described in step 1006. The inventors have realized, even in Figure 10 After filtering step 1006, some residual effects from gravity may still remain in the filtered accelerometer signal. This residual effect may be due to misalignment between the gyroscope and accelerometer used in the sensor device employed. For example, if the gyroscope and accelerometer are slightly misaligned, the "up" and "down" directions derived from the gyroscope data may not be perfectly aligned with the accelerometer axis. Therefore, even after adding a vector equal to the gravitational acceleration in the "up" direction as determined by the gyroscope data (or subtracting a vector equal to the gravitational acceleration in the "down" direction) to the triaxial accelerometer data derived from the accelerometer, the resulting filtered accelerometer signal may still include some residual detected gravitational acceleration. Such inaccuracies cannot be completely eliminated without requiring repeated, expensive, and / or time-consuming calibration of the gyroscopes and accelerometers used herein.

[0084] The inventors have further realized that such residual effects can be detected and / or measured during the rest period. Assume that sensor(s)(1)0 are completely stationary during the rest period. Therefore, any accelerometer signal during the rest period should average to zero. However, if the average of all accelerations in any direction (e.g., x, y, or z) during the rest period averages to some small but detectable non-zero number, then... Figure 13A and Figure 13B The function described assumes that the average acceleration is due to the residual effect of gravity, and that this average acceleration will be subtracted from the filtered accelerometer signal output by step 1006 before using those signals to calculate the rate and / or velocity of the operator's movement. In some embodiments, this residual acceleration can be calculated in all three dimensions x, y, and z. In other words, Figure 13A and Figure 13BThe function described herein calculates the residual acceleration Δx in the x-direction, the residual acceleration Δy in the y-direction, and the residual acceleration Δz in the z-direction, and subtracts each component (Δx, Δy, and Δz) from the filtered accelerometer signal output from step 1006. In other embodiments, this residual acceleration may be calculated only in the x and y directions (i.e., only Δx and Δy parallel to the ground), while ignoring all accelerations in the z-direction (i.e., not calculating or ignoring Δz perpendicular to the ground). In such embodiments, the filtered accelerometer signal can be used to calculate the operator's exact motion in the xy-plane.

[0085] Figure 15 An exemplary accelerometer signal is shown during the “stationary moment” following the processing described in step 1006 above. Signal 1502 shows acceleration along the x-axis, signal 1504 shows acceleration along the y-axis, and signal 1506 shows acceleration along the z-axis, where the x-axis and y-axis are parallel to the ground, and the z-axis is parallel to the direction of gravity (i.e., perpendicular to the ground). As can be seen, signal 1504 shows acceleration along the y-axis (Δy) averaging to approximately 0g, as expected during the stationary moment. However, signal 1506 shows z-axis acceleration averaging to a small but detectable value (Δz) of approximately -0.35g, while signal 1502 shows acceleration along the x-axis averaging to a small but detectable value (Δx) of approximately +0.1g. Because signals 1502, 1504, and 1506 were acquired during the stationary period, these non-zero average accelerations Δx and Δz are assumed to be due to residual effects of gravity (e.g., due to misalignment between the axes of the gyroscope and accelerometer) that were not completely removed by the filtering operation in step 1006 described above. Therefore, Δx (+0.1g) and Δz (-0.35g) can be subtracted from the output of step 1006 before the filtered accelerometer signals are used to calculate the operator's movement speed. In some embodiments, Δz may not be calculated and / or may be ignored, and only Δx (and Δy, if found to be non-zero) may be subtracted from the filtered accelerometer signals before calculating the operator's movement speed.

[0086] Figure 13A The functionality described begins at box 1302, where the current walking state (e.g., "fast," "medium," and "slow") is initialized. The initial walking state can be set to any of these walking states. As previously described, setting the current walking state also sets an acceleration threshold A for detecting moments of stillness. min and duration threshold T min At box 1302, the rate aggregation window T is used for the aggregation rate. vel(For example, with a duration of 1.5s) and a walking status reassessment window T for reassessing the operator's walking status. state (For example, with a duration of 2 seconds) Both are reset to start at the current time.

[0087] At box 1304, a batch of filtered accelerometer signals from the next or most recent test window was obtained. This can be compared with previously... Figure 10 The filtering operation described in step 1006 is used to filter the filtered accelerometer signal. In some embodiments, the accelerometer signal output from step 1006 can be further modified by subtracting Δx, Δy, and / or Δz, such as those calculated from the most recent rest moment. The calculation of Δx, Δy, and / or Δz during the rest moment is described in further detail in step 1310 below. If there is no previous rest moment, Δx, Δy, and / or Δz can be initialized to 0. Furthermore, in some embodiments configured to strictly calculate the operator's motion in the xy plane, Δz may not be calculated and / or may be calculated but ignored.

[0088] The duration of the test window is the duration threshold T. min As discussed previously, this duration threshold T min This is set by the current walking state. For example, if the current walking state is initialized to "slow," the test window will have a duration T. min = 0.1s (e.g., according to the exemplary embodiments shown in Table 3).

[0089] At box 1306, the batch accelerometer signal obtained at box 1304 will be compared with the accelerometer threshold (A). min The accelerometer threshold is determined by the current walking state. For example, according to Table 3, if the current walking state is set to "slow", then the acceleration threshold A is... min It can be set to 1.0 m / s 2 In some embodiments, the norm of the accelerometer signal within the test window is first calculated, and this norm is compared to an accelerometer threshold. In other embodiments, the accelerometer signal on each axis is compared to the accelerometer threshold. If the accelerometer signal is below the threshold at all time points within the most recently acquired test window, processor 16 branches to box 1310, where a "stationary moment" is asserted.

[0090] As discussed in this paper, when asserting a “stationary moment,” the rate is set to zero for the current test window. Furthermore, adjustments for potential sensor misalignment are calculated. This can be done by averaging all accelerometer signals in the x, y, and (optionally) z directions within the test window, as previously discussed, to derive Δx, Δy, and (optionally) Δz.

[0091] However, if one or more accelerometer signals within the test window are above the accelerometer threshold A min The processor then branches to box 1308. At box 1308, the integral of all accelerometer signals within the test window is calculated to obtain a direction vector indicating the change in rate detected since the previous test window. After calculating the integral in box 1308, in box 1312, the rate of the current test window is set to be equal to the end rate from the previous test window plus the integral of the accelerometer signal from the current test window.

[0092] When completing box 1310 or 1312, processor 16 proceeds to... Figure 13B Box 1314 in the diagram determines whether the rate aggregation window has been reached. The rate aggregation window is a predetermined duration T. vel A time window (e.g., 1.5 s) is longer than the duration of the test window. Therefore, the number of test windows within a single rate aggregation window is equal to T. vel / T min (Because each test window has a duration T) min If less than T has already been processed through box 1314. vel / T min If the number of test windows processed is equal to or greater than T, then processor 16 branches back to box 1304 to obtain additional accelerometer signals from the next test window. vel / T min Then processor 16 determines that the rate aggregation window has been reached and branches to box 1316. It should be understood that the rate aggregation window T... vel The duration is a configurable parameter that can vary depending on the specific implementation.

[0093] At box 1316, processor 16 aggregates rates across all test windows within the current rate aggregation window. This aggregation can be performed in different ways. In some embodiments, the rates of all test windows within the rate aggregation window can be summed together. In other embodiments, the rates of all test windows within the rate aggregation window can be averaged (e.g., average or median). However, once aggregation is complete, the output of box 1316 represents the aggregation of rates across all test windows within the rate aggregation window.

[0094] At box 1318, the operator's aggregation rate can be determined based on the aggregation rate output from box 1316. For example, the norm of the aggregation rate can be determined according to the formula... To calculate, where This represents the polymerization rate magnitude along the x-axis. This represents the polymerization rate magnitude along the y-axis, and This represents the polymerization rate magnitude along the z-axis. In some embodiments, any acceleration in the z-direction (i.e., perpendicular to the ground) can be ignored, and the norm of the polymerization rate can be simply calculated as... .

[0095] At box 1318, the operator's aggregated speed is compared to a speed threshold (such as, but not limited to, 0.6 m / s). If the operator's speed is below or equal to the threshold, processor 16 determines that no unacceptable movement has been detected, and the branch returns to box 1322. However, if the operator's speed is above the threshold, processor 16 determines that unacceptable movement has been detected, and alerts the operator at box 1320 via output device 28 as previously described. In some embodiments, the operator can be alerted in real time when unacceptable movement occurs. The aforementioned data sampling rate, test window, and rate aggregation window can be configured to allow processor 16 to detect within seconds when the operator begins to move in an unacceptable manner and to alert the operator in a timely manner so that the operator can correct his / her movement. For example, Figure 10 The function described in Figure 13 can be configured to warn the operator within 0.5 seconds, one second, two seconds, or three seconds after an unacceptable operator movement occurs. After warning the operator, box 1320 branches to box 1322.

[0096] At frame 1322, processor 16 determines whether the walking state reassessment window has been reached. The walking state reassessment window is a predetermined duration T. state The time window is longer than the duration of the test window. Therefore, the number of test windows within a single walk state re-evaluation window is equal to T. state / T min (Again, because each test window has a duration T) min If less than T has already been processed via box 1322. vel / T min If the number of test windows processed is equal to or greater than T, the processor 16 infers that it is not yet time to reassess the operator's walking status and branches back to box 1304 to obtain additional accelerometer signals from the next test window. However, if the number of test windows processed is equal to or greater than T, the processor 16 will proceed with the test. state / T minIf the processor 16 determines that the walking state has been reached, it will re-evaluate the window and branch to box 1324.

[0097] At box 1324, processor 16 calculates the average acceleration of all acceleration signals within the most recently completed walk state reassessment window. This can be done either by calculating the scalar norm of all multi-axis accelerometer signals in the window and then averaging all calculated scalar norms, or by averaging all multi-axis accelerometer signals to derive an aggregated multidimensional vector and then calculating the scalar norm of the aggregated vector. The output of this averaging operation is a scalar value representing the average acceleration magnitude of all acceleration signals within the most recently completed walk state reassessment window. The average acceleration magnitude is then compared to a set of thresholds (e.g., a first threshold and a second (smaller) threshold). If the average acceleration magnitude is greater than the first threshold, the current walk state is set to "fast," and the acceleration threshold A is set. min and duration threshold T min The current walking state is updated accordingly (e.g., according to Table 3 or a similar lookup table). If the average acceleration amplitude is between the first and second thresholds, the current walking state is set to "medium," and the acceleration threshold A is set to... min and duration threshold T min The settings are updated accordingly. Finally, if the average acceleration amplitude is less than or equal to the second threshold, the current walking state is set to "slow," and the acceleration threshold A is adjusted accordingly. min and duration threshold T min It is updated accordingly again. Again, if more or fewer than three walking states are used, the aforementioned description can be appropriately simplified and / or expanded to accommodate different numbers of walking states. When this walking state re-evaluation process is completed at box 1324, processor branch 16 returns to... Figure 13A 1304 in the middle, to collect the next batch of accelerometer signals.

[0098] As should be apparent from the foregoing, data collected during the operation of app 24 throughout the operator shift (e.g., three to five hours) can be stored on wearable device 10. As indicated above, the data can be transmitted to mobile device 12 and / or computing device 14 after the shift and later analyzed to, for example, assess operator performance and / or identify operators who may benefit from additional training (i.e., operators who received one or more operator warnings during their shift). The data can then be further analyzed to determine the effectiveness of various types of operator training.

[0099] As should be apparent from the foregoing, the systems and methods described herein represent an improvement in the field of motion detection technology, and more specifically, an improved solution to the technical problem of monitoring operator movement in a sterile environment to reduce air disturbance and corresponding contamination risks. Other methods for this problem, among other things, do not provide a technical solution for analyzing motion data corresponding to operator movement in real time in a way that accurately and reliably identifies the current speed of the operator's movement in terms of both intensity and pace rate. These other methods also fail to provide real-time feedback to the operator, allowing the operator to immediately change his or her behavior when unacceptable movement is detected.

[0100] Any directional references used relative to any diagram (such as right or left, up or down, or top or bottom) are intended for ease of description and not to limit this disclosure or any of its components to any particular location or spatial orientation. Furthermore, any references to clockwise or counterclockwise rotations are merely illustrative. Any such rotations may be achieved in directions opposite to those described herein.

[0101] While the foregoing text has set forth a detailed description of embodiments of this disclosure, it should be understood that the legal scope of the invention is defined by the words of the claims set forth at the end of this patent and their equivalents. This detailed description is to be construed as exemplary only and does not describe every possible embodiment. Many alternative embodiments may be implemented using current technology that would still fall within the scope of the claims or technology developed after the filing date of this patent.

[0102] The following additional considerations apply to the foregoing description. Throughout this specification, multiple instances can implement components, operations, or structures described as single instances. Although the various operations of one or more methods are illustrated and described as separate operations, one or more of these operations may be performed simultaneously, and the operations are not required to be performed in the illustrated order. Structures and functionalities presented as separate components in the example configurations can be implemented as combined structures or components. Similarly, structures and functionalities presented as single components can be implemented as single components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.

[0103] Furthermore, some embodiments described herein include logic or multiple routines, subroutines, applications, or instructions. These can constitute software (e.g., code on a machine-readable medium or embodied in transmitted signals) or hardware. In hardware, routines, etc., are tangible units capable of performing certain operations and can be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., standalone, client, or server computer systems) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or an application portion) to operate as hardware modules to perform certain operations as described herein.

[0104] In various embodiments, the hardware module can be implemented mechanically or electronically. For example, a hardware module may include dedicated circuitry or logic that is permanently configured (e.g., as a dedicated processor, such as a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations (e.g., as encompassed within a general-purpose processor or other programmable processor). It will be appreciated that the decision to implement a hardware module mechanically in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software), may be driven by cost and time considerations.

[0105] Therefore, the term "hardware module" should be understood to encompass tangible entities, namely, entities that are physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate or perform certain operations described herein. Consider embodiments in which hardware modules are temporarily configured (e.g., programmed), and each of the hardware modules does not need to be configured or instantiated at any given time. For example, in the case where the hardware modules include a general-purpose processor configured using software, the general-purpose processor can be configured as a correspondingly different hardware module at different times. The software can configure the processor accordingly, for example, constituting a specific hardware module at one time and different hardware modules at different times.

[0106] Hardware modules can provide information to and receive information from other hardware modules. Therefore, the described hardware modules can be considered communication-coupled. In the presence of multiple such hardware modules simultaneously, communication can be achieved through signal transmission connecting the hardware modules (e.g., via appropriate circuitry and buses). In embodiments where multiple hardware modules are configured or instantiated at various times, communication between such hardware modules can be achieved, for example, by storing and retrieving information in a memory structure accessible to the multiple hardware modules. For example, a hardware module can perform an operation and store the output of that operation in its communication-coupled memory device. Another hardware module can then access the memory device at a later time to retrieve and process the stored output. Hardware modules can also initiate communication with input or output devices and can operate on resources (e.g., information sets).

[0107] The various operations of the example methods described herein can be performed at least in part by one or more processors, which are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented modules that operate to perform one or more operations or functions. In some example embodiments, the modules mentioned herein may include processor-implemented modules.

[0108] Similarly, the methods or routines described herein may be implemented at least partially by a processor. For example, at least some of the operations of a method may be performed by one or more processors or hardware modules implemented by processors. The execution of certain operations may be distributed across one or more processors, residing not only within a single machine but also deployed across multiple machines. In some example embodiments, the processor(s) may reside in a single location (e.g., in a home environment, an office environment, or as a server cluster), while in other embodiments, the processors may be distributed across multiple locations.

[0109] The execution of certain operations can be distributed across one or more processors, residing not only within a single machine but also deployed across multiple machines. In some example embodiments, one or more processors or processor-implemented modules may reside in a single device or geographic location (e.g., in a home environment, office environment, or server cluster). In other example embodiments, one or more processors or processor-implemented modules may be distributed across multiple devices or geographic locations.

[0110] Unless otherwise specifically stated, words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” and “displaying” as used herein may refer to the actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.

[0111] As used herein, any reference to "an embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment. The phrase "in an embodiment" appearing in various places in the specification does not necessarily refer to the same embodiment in all instances.

[0112] Some embodiments may be described using the terms "coupling" and "connection" along with their derivatives. For example, some embodiments may use the term "coupling" to indicate that two or more elements are in direct physical or electrical contact. However, the term "coupling" may also mean that two or more elements are not in direct contact with each other, but still operate or interact with each other. Embodiments are not limited to this context.

[0113] In addition, some embodiments may be described using the expression “communicatively coupled”, which in various embodiments may mean (a) integration into a single housing, (b) coupling using wires, or (c) wireless coupling (i.e., wirelessly transmitting data / commands back and forth).

[0114] As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” or any other variation thereof are intended to cover non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such a process, method, article, or apparatus.

[0115] Furthermore, the terms "a" or "an" are used to describe elements and components of the embodiments described herein. This is done merely for convenience and to give a general meaning to the description. This specification and the following claims should be read as including one or at least one, and the singular includes the plural, unless it is obvious otherwise.

[0116] Unless conventional component-plus-function language is explicitly stated, such as the language of “component for…” or “step for…” explicitly stated in one or more claims, the patent claims at the end of this patent application are not intended to be interpreted under 35 USC § 112(f).

[0117] Various aspects are described in this disclosure, including but not limited to the following: 1. A system for providing real-time feedback to an operator upon detecting unacceptable movement, comprising: a wearable device having a housing configured for wear by the operator; one or more memory devices communicatively coupled to the housing and storing a plurality of executable instructions; one or more sensors communicatively coupled to the housing and configured to output motion signals corresponding to the operator's movement; one or more output devices communicatively coupled to the housing and configured to output an operator warning in response to determining unacceptable movement by the operator; and one or more processors communicatively coupled to the housing and configured to execute the plurality of executable instructions, wherein the plurality of executable instructions thereby cause the one or more processors to: receive a plurality of output motion signals from the one or more sensors at a sampling rate; convert the plurality of output motion signals into a plurality of data points; analyze the plurality of data points to identify steps taken by the operator; calculate a step rate of the operator based on the identified steps; and cause the one or more output devices to output an operator warning in response to the step rate exceeding a predetermined rate threshold corresponding to unacceptable movement by the operator.

[0118] 2. The system of aspect 1, wherein the one or more processors cause the one or more output devices to output an operator warning in response to determining that the amplitude of a data point among the plurality of data points exceeds a predetermined intensity threshold corresponding to unacceptable movement by an operator.

[0119] 3. The system of aspect 2, wherein the predetermined intensity threshold is between two and four times the gravitational equivalent.

[0120] 4. A system of any one of aspects 1-3, wherein the one or more output devices include a haptic feedback device, and the operator warning is caused by a period of vibration of the housing by the haptic feedback device.

[0121] 5. A system of any one of aspects 1-4, wherein the one or more sensors include a triaxial accelerometer, and the plurality of output motion signals are output as a set of output signals, the set of output signals including an x-axis signal representing the acceleration force along the x-axis of the triaxial accelerometer, a y-axis signal representing the acceleration force along the y-axis of the triaxial accelerometer, and a z-axis signal representing the acceleration force along the z-axis of the triaxial accelerometer.

[0122] 6. The system of aspect 5, wherein the one or more processors convert the plurality of output motion signals into the plurality of data points by calculating the Euclidean norm of the x-axis signal, y-axis signal and z-axis signal of each set of output signals.

[0123] 7. A system of any one of aspects 1-6, wherein the plurality of data points are stored on the one or more memory devices, and the one or more processors are configured to analyze a subset of data points corresponding to a movement time window to identify the steps taken by the operator, the subset of data points including a context subset of data points corresponding to a first time period within the movement time window and a current subset of data points corresponding to a second time period immediately following the first time period within the movement time window.

[0124] 8. The system of aspect 7, wherein the one or more processors are configured to calculate an operator’s step rate based on identified steps corresponding to the current subset of data points, the step rate being the reciprocal of the time difference between consecutively identified steps.

[0125] 9. The system of aspect 7, wherein the one or more processors analyze the plurality of data points to identify the steps taken by the operator by determining the operator's current walking state based on the current subset of the data points.

[0126] 10. The system of aspect 9, wherein the one or more processors determine the current walking state of an operator based on the current subset of data points by calculating the quantile value of the current subset of data points and comparing the quantile value with a plurality of walking state thresholds, the plurality of walking state thresholds including a first value and a second value, wherein if the quantile value is less than the first value, the current walking state is slow; if the quantile value is greater than or equal to the first value and less than or equal to the second value, the current walking state is normal; and if the quantile value is greater than the second value, the current walking state is fast.

[0127] 11. The system of aspect 9, wherein the one or more processors identify the steps taken by an operator by analyzing the plurality of data points using a peak-pitch filter, wherein if the amplitude of a data point is greater than or equal to the amplitude of a predetermined number of data points preceding the data point in a subset of data points, and greater than or equal to the amplitude of a predetermined number of data points following the data point, then the one or more processors identify the data point as a peak, the predetermined number being based on the current walking state.

[0128] 12. The system of aspect 11, wherein, depending on the current walking state, the predetermined quantity is one of a first quantity, a second quantity, or a third quantity, the first quantity corresponding to a slow current walking state, the second quantity corresponding to a normal current walking state, and the third quantity corresponding to a fast current walking state, the first quantity being greater than the second quantity, and the second quantity being greater than the third quantity.

[0129] 13. A system of any of aspects 11-12, wherein the one or more processors analyze the plurality of data points to identify the steps taken by an operator by applying a vibration cancellation filter to the identified peaks, wherein the one or more processors discard any identified peaks having an amplitude less than or equal to a minimum peak threshold based on the current walking state.

[0130] 14. The system of aspect 13, wherein, depending on the current walking state, the minimum peak threshold is one of a first minimum peak threshold, a second minimum peak threshold, or a third minimum peak threshold, the first minimum peak threshold corresponding to a slow current walking state, the second minimum peak threshold corresponding to a normal current walking state, and the third minimum peak threshold corresponding to a fast current walking state, the first minimum peak threshold being less than the second minimum peak threshold, and the second minimum peak threshold being less than the third minimum peak threshold.

[0131] 15. A system of any of aspects 11-14, wherein the one or more processors analyze the plurality of data points to identify the steps taken by an operator by applying a dynamic window filter to the identified peaks, wherein the one or more processors: divide the plurality of data points into windows having a data point window width corresponding to the current walking state; determine a window corresponding to each of the identified peaks; calculate a dynamic difference for each of the identified peaks based on the amplitude of the identified peak, the amplitude of the data point in the window corresponding to the identified peak with the minimum value within the window, and the amplitude of the data point in the window corresponding to the identified peak with the maximum value within the window; and discard the identified peaks having a dynamic difference less than or equal to a dynamic difference threshold.

[0132] 16. The system of aspect 15, wherein the window width of the data point corresponding to the slow current walking state is greater than the window width of the data point corresponding to the normal current walking state, and the window width of the data point corresponding to the normal current walking state is greater than the window width of the data point corresponding to the fast current walking state.

[0133] 17. The system of aspect 15, wherein the dynamic difference of the identified peak is 0.5 times the amplitude of the identified peak minus the sum of the amplitudes of the data points with the minimum value and the data points with the maximum value in the window.

[0134] 18. A system of any of aspects 11-17, wherein the one or more processors analyze the plurality of data points to identify the steps taken by an operator by applying a peak prominence filter to the identified peaks, wherein, for each identified peak, the one or more processors: calculate a graphical equivalent of a horizontal line passing through the identified peak; terminate the horizontal line when it crosses a higher identified peak or reaches the end of a movement time window; identify the left and right termination points of the horizontal line; identify a first data point having the minimum amplitude between the identified peak and the left termination point, and a second data point having the minimum amplitude between the identified peak and the right termination point; calculate a prominence value of the identified peak based on the amplitude of the identified peak, the amplitude of the first data point, and the amplitude of the second data point; and e.

[0135] 19. The system of aspect 18, wherein the prominence value of the identified peak is the larger of the amplitude of the identified peak minus the amplitude of the first data point and the amplitude of the second data point.

[0136] 20. The system of aspect 18, wherein the minimum peak prominence threshold corresponding to the slow current walking state is less than the minimum peak prominence threshold corresponding to the normal current walking state, and the minimum peak prominence threshold corresponding to the normal current walking state is less than the minimum peak prominence threshold corresponding to the fast current walking state.

[0137] 21. A system of any of aspects 11-20, wherein the one or more processors analyze the plurality of data points to identify the steps taken by an operator by applying a periodic filter to the identified peaks in the presence of more than one identified peak, wherein the one or more processors: determine the position of each of the identified peaks within a movement time window; assign a periodic value to each of the identified peaks, the periodic value corresponding to the number of data points in the movement time window between the identified peak and the previous identified peak; compare the periodic value of each of the identified peaks with a minimum periodicity limit corresponding to the current walking state and a maximum periodicity limit corresponding to the current walking state; and discard identified peaks having a periodic value less than the minimum periodicity limit or greater than the maximum periodicity limit.

[0138] 22. The system of aspect 21, wherein the minimum periodicity limit and the maximum periodicity limit corresponding to the slow current walking state are respectively greater than the minimum periodicity limit and the maximum periodicity limit corresponding to the normal current walking state, and the minimum periodicity limit and the maximum periodicity limit corresponding to the normal current walking state are respectively greater than the minimum periodicity limit and the maximum periodicity limit corresponding to the fast walking state.

[0139] 23. A system of any of aspects 11-22, wherein the one or more processors analyze the plurality of data points to identify the steps taken by an operator by applying a similarity filter to the identified peaks in the presence of more than three identified peaks, wherein the processor: determines a similarity parameter for each of the identified peaks; discards identified peaks having a similarity parameter less than or equal to a similarity threshold; and identifies any remaining identified peaks as corresponding to the steps taken by the operator.

[0140] 24. The system of aspect 23, wherein the similarity parameter is equal to the negative of the absolute value of the difference between the amplitude of one identified peak and the amplitude of another identified peak, the other identified peak preceding the identified peak immediately preceding the first identified peak.

[0141] 25. A method for providing real-time feedback to an operator upon detecting unacceptable movement, comprising: having the operator wear a wearable device having a housing communicatively coupled to a memory device, a sensor, an output device, and a processor; receiving a plurality of output motion signals from the sensor at a sampling rate by the processor; converting the plurality of output motion signals into a plurality of data points by the processor; analyzing the plurality of data points by the processor to identify steps taken by the operator; calculating a step rate of the operator based on the identified steps by the processor; and, in response to the step rate exceeding a predetermined rate threshold corresponding to unacceptable movement by the operator, causing the output device to output an operator warning by the processor.

[0142] 26. The method of aspect 25, wherein causing the output device to output an operator warning includes: in response to the processor determining that the amplitude of a data point among the plurality of data points exceeds a predetermined intensity threshold corresponding to unacceptable movement by the operator, causing the output device to output an operator warning.

[0143] 27. The method of aspect 26, wherein the predetermined intensity threshold is between two and four times the gravitational equivalent.

[0144] 28. A method of any one of aspects 25-27, wherein the one or more output devices include a haptic feedback device, and the operator warning is a period of vibration of the housing caused by the haptic feedback device.

[0145] 29. A method of any one of aspects 25-28, wherein the sensor includes a triaxial accelerometer, and the plurality of output motion signals are output as a set of output signals, the set of output signals including an x-axis signal representing an acceleration force along the x-axis of the triaxial accelerometer, a y-axis signal representing an acceleration force along the y-axis of the triaxial accelerometer, and a z-axis signal representing an acceleration force along the z-axis of the triaxial accelerometer.

[0146] 30. The method of aspect 29, wherein converting the plurality of output motion signals into the plurality of data points includes having a processor calculate the Euclidean norm of the x-axis signal, y-axis signal, and z-axis signal for each set of output signals.

[0147] 31. The method of any one of aspects 25-30, further comprising: storing the plurality of data points on a memory device, wherein analyzing the plurality of data points includes analyzing a subset of data points corresponding to a moving time window by a processor, the subset of data points including a context subset of data points corresponding to a first time period within the moving time window and a current subset of data points corresponding to a second time period immediately following the first time period within the moving time window.

[0148] 32. The method of aspect 31, wherein calculating the step rate includes calculating the step rate based on the identified steps corresponding to the current subset of data points, said step rate being the reciprocal of the time difference between consecutively identified steps.

[0149] 33. The method of aspect 31, wherein analyzing the plurality of data points includes determining the current walking state of the operator based on the current subset of the data points.

[0150] 34. The method of aspect 33, wherein determining the current walking state of an operator based on the current subset of data points includes calculating the quantile value of the current subset of data points and comparing the quantile value with a plurality of walking state thresholds, wherein the plurality of walking state thresholds include a first value and a second value, wherein if the quantile value is less than the first value, the current walking state is slow; if the quantile value is greater than or equal to the first value and less than or equal to the second value, the current walking state is normal; and if the quantile value is greater than the second value, the current walking state is fast.

[0151] 35. The method of aspect 33, wherein analyzing the plurality of data points includes: applying a peak-distance filter by identifying a data point as a peak if the amplitude of the data point is greater than or equal to the amplitude of a predetermined number of data points preceding the data point in a subset of data points, and is greater than or equal to the amplitude of a predetermined number of data points following the data point, the predetermined number being based on the current walking state.

[0152] 36. The method of aspect 35, wherein, depending on the current walking state, the predetermined quantity is one of a first quantity, a second quantity, or a third quantity, the first quantity corresponding to a slow current walking state, the second quantity corresponding to a normal current walking state, and the third quantity corresponding to a fast current walking state, the first quantity being greater than the second quantity, and the second quantity being greater than the third quantity.

[0153] 37. A method of any one of aspects 35-36, wherein analyzing the plurality of data points includes applying a vibration cancellation filter to the identified peaks, wherein applying the vibration cancellation filter includes discarding the identified peaks having an amplitude less than or equal to a minimum peak threshold based on the current walking state.

[0154] 38. The method of aspect 37, wherein, depending on the current walking state, the minimum peak threshold is one of a first minimum peak threshold, a second minimum peak threshold, or a third minimum peak threshold, the first minimum peak threshold corresponding to a slow current walking state, the second minimum peak threshold corresponding to a normal current walking state, and the third minimum peak threshold corresponding to a fast current walking state, the first minimum peak threshold being less than the second minimum peak threshold, and the second minimum peak threshold being less than the third minimum peak threshold.

[0155] 39. A method of any one of aspects 35-38, wherein analyzing the plurality of data points includes applying a dynamic window filter to the identified peaks, wherein applying the dynamic window filter includes: dividing the plurality of data points into windows having a data point window width corresponding to the current walking state; determining a window corresponding to each of the identified peaks; calculating a dynamic difference for each of the identified peaks based on the amplitude of the identified peak, the amplitude of the data point in the window corresponding to the identified peak with the minimum value within the window, and the amplitude of the data point in the window corresponding to the identified peak with the maximum value within the window; and discarding the identified peaks having a dynamic difference less than or equal to a dynamic difference threshold.

[0156] 40. The method of aspect 39, wherein the window width of the data point corresponding to the slow current walking state is greater than the window width of the data point corresponding to the normal current walking state, and the window width of the data point corresponding to the normal current walking state is greater than the window width of the data point corresponding to the fast current walking state.

[0157] 41. The method of aspect 39, wherein calculating the dynamic difference of each identified peak comprises subtracting 0.5 times the sum of the amplitudes of the data points with the minimum value and the data points with the maximum value in the window from the amplitude of the identified peak.

[0158] 42. A method of any one of aspects 35-41, wherein analyzing the plurality of data points includes applying a peak prominence filter to the identified peaks, wherein applying the peak prominence filter includes: for each identified peak: calculating a graphical equivalent of a horizontal line passing through the identified peak; terminating the horizontal line when it crosses a higher identified peak or reaches the end of a moving time window; identifying a left and right termination point of the horizontal line; identifying a first data point having the minimum amplitude between the identified peak and the left termination point, and a second data point having the minimum amplitude between the identified peak and the right termination point; calculating a prominence value of the identified peak based on the amplitude of the identified peak, the amplitude of the first data point, and the amplitude of the second data point; and discarding identified peaks having a prominence value less than or equal to a minimum peak prominence threshold corresponding to the current walking state.

[0159] 43. The method of aspect 42, wherein calculating the prominence value includes subtracting the larger of the amplitude of the first data point and the amplitude of the second data point from the amplitude of the identified peak.

[0160] 44. The method of aspect 42, wherein the minimum peak prominence threshold corresponding to the slow current walking state is less than the minimum peak prominence threshold corresponding to the normal current walking state, and the minimum peak prominence threshold corresponding to the normal current walking state is less than the minimum peak prominence threshold corresponding to the fast current walking state.

[0161] 45. A method of any one of aspects 35-44, wherein analyzing the plurality of data points includes applying a periodic filter to the identified peaks if there is more than one identified peak, wherein applying the periodic filter includes: determining the position of each of the identified peaks within a movement time window; assigning a periodic value to each of the identified peaks, the periodic value corresponding to the number of data points in the movement time window between the identified peak and the previous identified peak; comparing the periodic value of each of the identified peaks with a minimum periodicity limit corresponding to the current movement state and a maximum periodicity limit corresponding to the current movement state; and discarding identified peaks having a periodic value less than the minimum periodicity limit or greater than the maximum periodicity limit.

[0162] 46. ​​The method of aspect 45, wherein the minimum periodicity limit and the maximum periodicity limit corresponding to the slow current walking state are respectively greater than the minimum periodicity limit and the maximum periodicity limit corresponding to the normal current walking state, and the minimum periodicity limit and the maximum periodicity limit corresponding to the normal current walking state are respectively greater than the minimum periodicity limit and the maximum periodicity limit corresponding to the fast walking state.

[0163] 47. A method of any one of aspects 35-46, wherein analyzing the plurality of data points includes: if there are more than three identified peaks, applying a similarity filter to the identified peaks, wherein applying the similarity filter includes: determining a similarity parameter for each of the identified peaks; discarding identified peaks having a similarity parameter less than or equal to a similarity threshold; and identifying any remaining identified peaks as corresponding to steps taken by the operator.

[0164] 48. The method of aspect 47, wherein determining the similarity parameter includes determining the negative of the absolute value of the difference between the amplitude of one identified peak and the amplitude of another identified peak, the other identified peak preceding an identified peak immediately preceding the one identified peak.

[0165] 49. The method of aspect 25 further includes transmitting at least one of the plurality of output motion signals or the plurality of data points to one of a mobile device or a computing device via a wired or wireless connection for additional analysis.

[0166] 50. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by at least one processor, cause the at least one processor to: receive a plurality of output motion signals from one or more sensors coupled to a housing of a wearable device worn by an operator at a sampling rate; convert the plurality of output motion signals into a plurality of data points; analyze the plurality of data points to identify steps taken by the operator; calculate the operator's step rate based on the identified steps; and, in response to the step rate exceeding a predetermined rate threshold corresponding to unacceptable movement by the operator, cause one or more output devices coupled to the housing to output an operator warning.

[0167] 51. A method for providing real-time feedback to an operator wearing a wearable device in a sterile environment upon detection of an unacceptable pace rate, thereby inducing a change in operator behavior and reducing the risk of contamination, comprising: converting by the at least one processor a plurality of output motion signals from at least one sensor on the wearable device into a plurality of data points for a movement time window, the plurality of data points including a data point context subset and a data point current subset; analyzing by the at least one processor the plurality of data points by adjusting parameters of one or more filters using at least the data point current subset to identify data points in the data point current subset and data points in the data point context subset representing the pace taken by the operator; calculating by the at least one processor the operator's pace rate based on the pace taken by the operator within the data point current subset; and, in response to the pace rate exceeding an unacceptable pace rate corresponding to the operator, causing the at least one processor to output an operator warning via an output device.

[0168] 52. The method of aspect 51, wherein the at least one processor calculates the operator's step rate based solely on the steps taken by the operator in the current subset of data points.

[0169] 53. A system for providing real-time feedback to an operator upon detection of unacceptable movement by the operator, comprising: a wearable sensor device configured to be worn by the operator, the wearable sensor device including an accelerometer and a gyroscope; one or more output devices configured to output an operator warning; one or more memory devices storing a plurality of executable instructions; and one or more processors communicatively coupled to the one or more memory devices and configured to execute the plurality of executable instructions to: receive a plurality of accelerometer signals from the accelerometer and a plurality of gyroscope signals from the gyroscope; determine a three-dimensional orientation of the wearable sensor device based on the gyroscope signals; filter the accelerometer signals based on the determined three-dimensional orientation to remove gravitational acceleration; detect unacceptable movement by the operator based on the filtered accelerometer signals; and output an operator warning via the one or more output devices when unacceptable movement by the operator is detected.

[0170] 54. The system of aspect 53, wherein detecting unacceptable motion of an operator based on a filtered accelerometer signal comprises: integrating the filtered accelerometer signal to derive a rate signal; and detecting unacceptable motion when the derived rate signal is greater than a predetermined rate threshold.

[0171] 55. A system of aspect 54, wherein the one or more processors are configured to execute the plurality of executable instructions to: determine one or more time periods within an accelerometer signal, each time period having a duration T. min During the duration T min The accelerometer signal is lower than the predetermined acceleration threshold A min ; designate one or more time periods as resting moments; and set the derived rate signal to zero during the designated resting moments.

[0172] 56. The system of aspect 55, wherein the one or more processors are further configured to detect and mitigate residual gravitational effects not removed by the filtering based on the determined three-dimensional orientation by: calculating, during at least one of the specified rest moments, the average acceleration Δx in the x-direction and the average acceleration Δy in the y-direction of the accelerometer signal; and subtracting Δx and Δy from the filtered accelerometer signal before the filtered accelerometer signal is used to detect unacceptable movement of the operator.

[0173] 57. The system of aspect 55, wherein the one or more processors are further configured to periodically update the duration T based on the detected walking state of the operator. min and acceleration threshold A min .

[0174] 58. A system of aspect 57, wherein the one or more processors are configured to update the duration T based on the average amplitude of the plurality of accelerometer signals. min and acceleration threshold A min .

[0175] 59. A system of any of aspects 55-58, wherein integrating the filtered accelerometer signal to derive a rate signal comprises: integrating the filtered accelerometer signal to determine the change in rate since the most recent rest moment, and setting the rate signal to be equal to the determined change in rate.

[0176] 60. The system of aspect 53, wherein detecting unacceptable motion of an operator based on a filtered accelerometer signal includes: integrating the filtered accelerometer signal to derive a rate signal; filtering the rate signal to remove noise; determining when the filtered rate signal is greater than a predetermined rate threshold; and detecting unacceptable motion when the filtered rate signal is greater than the predetermined rate threshold.

[0177] 61. A system of aspect 60, wherein filtering the rate signal includes aggregating the rate signal to a lower time resolution compared to the rate signal.

[0178] 62. A system of any of aspects 53-61, the system further comprising a magnetometer configured to measure the Earth's magnetic field, wherein the one or more processors are further configured to execute the plurality of executable instructions to: receive a magnetometer signal from the magnetometer; and determine the three-dimensional orientation of a wearable sensor device based on the gyroscope signal and the magnetometer signal.

[0179] 63. A system of any of aspects 53-62, wherein a wearable sensor device is configured to be worn on the operator's foot.

[0180] 64. A system of any of aspects 53-62, wherein the wearable sensor device is configured to be worn on a part of the operator’s body other than the operator’s hand, wrist or arm.

[0181] 65. A system of any of aspects 53-64, wherein the one or more output devices include a wrist-worn device configured to output at least one of an audible operator warning and a tactile operator warning.

[0182] 66. The system of any one of aspects 53-65, further comprising a communication interface configured to send operator warnings to remote devices.

[0183] 67. A system of any of aspects 53-66, wherein the one or more output devices, the one or more memory devices, and the one or more processors are disposed in a housing separate from the wearable sensor device, and the one or more processors are configured to wirelessly receive accelerometer signals and gyroscope signals from the wearable sensor device.

[0184] 68. A system of any of aspects 53-67, wherein the one or more processors are configured to output an operator warning within three seconds of an unacceptable movement by the operator occurring.

[0185] 69. A method for providing real-time feedback to an operator upon detecting unacceptable motion of the operator, the method comprising: providing the operator with: a wearable sensor device including an accelerometer and a gyroscope, and an output device configured to output an operator warning; receiving a plurality of accelerometer signals from the accelerometer and a plurality of gyroscope signals from the gyroscope; determining a three-dimensional orientation of the wearable sensor device based on the gyroscope signals; filtering the accelerometer signals based on the determined three-dimensional orientation to remove gravitational acceleration; detecting unacceptable motion of the operator based on the filtered accelerometer signals; and outputting an operator warning via the one or more output devices when unacceptable motion is detected.

[0186] 70. The method of aspect 69, wherein detecting unacceptable motion of an operator based on a filtered accelerometer signal comprises: integrating the filtered accelerometer signal to derive a rate signal; and detecting unacceptable motion when the derived rate signal is greater than a predetermined rate threshold.

[0187] 71. The method of aspect 70, further comprising: determining one or more time periods within an accelerometer signal, each time period having a duration T. min During the duration T min The accelerometer signal is lower than the predetermined acceleration threshold A min ; designate one or more time periods as resting moments; and set the derived rate signal to zero during the designated resting moments.

[0188] 72. The method of aspect 71 further comprises: detecting and mitigating residual gravitational effects not removed by the filtering based on the determined three-dimensional orientation by: calculating, during at least one period of the specified stationary moment, an average acceleration Δx in the x-direction and an average acceleration Δy in the y-direction of the accelerometer signal; and subtracting Δx and Δy from the filtered accelerometer signal before the filtered accelerometer signal is used to detect unacceptable movement of the operator.

[0189] 73. The method of aspect 71 further includes periodically updating the duration T based on the detected walking state of the operator. min and acceleration threshold A min .

[0190] 74. The method of aspect 73 further includes updating the duration T based on the average amplitude of the plurality of accelerometer signals. min and acceleration threshold A min .

[0191] 75. The method of aspects 71-74, wherein integrating the filtered accelerometer signal to derive a rate signal comprises: integrating the filtered accelerometer signal to determine the change in rate since the most recent rest moment, and setting the rate signal to be equal to the determined change in rate.

[0192] 76. The method of aspect 69, wherein detecting unacceptable motion of an operator based on a filtered accelerometer signal comprises: integrating the filtered accelerometer signal to derive a rate signal; filtering the rate signal to remove noise; determining when the filtered rate signal is greater than a predetermined rate threshold; and detecting unacceptable motion when the filtered rate signal is greater than the predetermined rate threshold.

[0193] 77. The method of aspect 76, wherein filtering the rate signal includes aggregating the rate signal to a lower time resolution compared to the rate signal.

[0194] 78. The method of any one of aspects 69-77, further comprising: receiving a magnetometer signal from a magnetometer; and determining the three-dimensional orientation of the wearable sensor device based on the gyroscope signal and the magnetometer signal.

[0195] 79. A method of any one of aspects 69-78, wherein the wearable sensor device is configured to be worn on the operator's foot.

[0196] 80. A method of any one of aspects 69-78, wherein the wearable sensor device is configured to be worn on a part of the operator's body other than the operator's hand, wrist or arm.

[0197] 81. The method of any one of aspects 69-80, wherein the one or more output devices include a wrist-worn device configured to output at least one of an audible operator warning and a tactile operator warning.

[0198] 82. The method of any one of aspects 69-81 further includes sending an operator warning to a remote device via a communication interface.

[0199] 83. A method of any one of aspects 69-82, wherein an operator warning is output within three seconds of the occurrence of an unacceptable movement by the operator.

Claims

1. A system for providing real-time feedback to an operator upon detecting unacceptable movement by the operator, comprising: Wearable sensor devices configured to be worn by an operator, the wearable sensor devices including accelerometers and gyroscopes; One or more output devices are configured to output operator warnings; One or more memory devices that store a plurality of executable instructions; as well as One or more processors, communicatively coupled to the one or more memory devices, and configured to execute the plurality of executable instructions to: It receives multiple accelerometer signals from the accelerometer and multiple gyroscope signals from the gyroscope; Determining the three-dimensional orientation of wearable sensor devices based on gyroscope signals; The accelerometer signal is filtered based on the determined three-dimensional orientation to remove gravitational acceleration; Unacceptable operator movements are detected based on filtered accelerometer signals; as well as When unacceptable movement by the operator is detected, an operator warning is output via one or more output devices.

2. The system according to claim 1, wherein, Detecting unacceptable operator movements based on filtered accelerometer signals includes: The filtered accelerometer signal is integrated to derive the rate signal; When the derived rate signal exceeds a predetermined rate threshold, unacceptable motion is detected.

3. The system according to claim 2, wherein, The one or more processors are configured to execute the plurality of executable instructions to: Define one or more time periods within the accelerometer signal, each time period having a duration T. min During the duration T min The accelerometer signal is lower than the predetermined acceleration threshold A min ; Designate the determined one or more time periods as static moments; and The derived rate signal is set to zero during the specified rest period.

4. The system according to claim 3, wherein, The one or more processors are further configured to detect and mitigate residual gravitational effects not removed by the filter, based on the determined three-dimensional orientation, by: During at least one of the specified rest moments, calculate the average acceleration Δx in the x-direction and the average acceleration Δy in the y-direction of the accelerometer signal; as well as Before the filtered accelerometer signal is used to detect unacceptable movements of the operator, Δx and Δy are subtracted from the filtered accelerometer signal.

5. The system according to claim 3, wherein, The one or more processors are further configured to periodically update the duration T based on the detected walking state of the operator. min and acceleration threshold A min .

6. The system according to claim 5, wherein, The one or more processors are configured to update the duration T based on the average amplitude of the plurality of accelerometer signals. min and acceleration threshold A min .

7. The system according to any one of claims 3-6, wherein, Integrating the filtered accelerometer signal to derive the rate signal includes: integrating the filtered accelerometer signal to determine the change in rate since the most recent rest moment, and setting the rate signal to be equal to the determined change in rate.

8. The system according to claim 1, wherein, Detecting unacceptable operator movements based on filtered accelerometer signals includes: The filtered accelerometer signal is integrated to derive the rate signal; Filter the rate signal to remove noise; Determine when the filtered rate signal exceeds a predetermined rate threshold; and When the filtered rate signal exceeds a predetermined rate threshold, unacceptable motion is detected.

9. The system according to claim 8, wherein, Filtering rate signals involves aggregating the rate signals to a lower time resolution compared to the rate signals themselves.

10. The system according to any one of claims 1-9, the system further comprising a magnetometer configured to measure the Earth's magnetic field. in, The one or more processors are further configured to execute the plurality of executable instructions to: Receive magnetometer signals from the magnetometer; as well as The three-dimensional orientation of wearable sensor devices is determined based on gyroscope and magnetometer signals.

11. The system according to any one of claims 1-10, wherein, The wearable sensor device is configured to be worn on the operator's feet.

12. The system according to any one of claims 1-10, wherein, Wearable sensor devices are configured to be worn on parts of the operator's body other than the operator's hands, wrists, or arms.

13. The system according to any one of claims 1-12, wherein, The one or more output devices include a wrist-worn device configured to output at least one of an audible operator warning and a tactile operator warning.

14. The system according to any one of claims 1-13, further comprising a communication interface configured to send operator warnings to remote devices.

15. The system according to any one of claims 1-14, wherein, The one or more output devices, the one or more memory devices, and the one or more processors are housed in a separate housing from the wearable sensor device, and the one or more processors are configured to wirelessly receive accelerometer signals and gyroscope signals from the wearable sensor device.

16. The system according to any one of claims 1-15, wherein, The one or more processors are configured to output an operator warning within three seconds of an unacceptable movement by the operator.

17. A method for providing real-time feedback to an operator upon detecting unacceptable movement of the operator, the method comprising: Provide to operators: Wearable sensor devices, including accelerometers and gyroscopes, and The output device is configured to output operator warnings; It receives multiple accelerometer signals from the accelerometer and multiple gyroscope signals from the gyroscope; Determining the three-dimensional orientation of wearable sensor devices based on gyroscope signals; The accelerometer signal is filtered based on the determined three-dimensional orientation to remove gravitational acceleration; Unacceptable operator movements are detected based on filtered accelerometer signals; as well as When unacceptable movement is detected, an operator warning is output via one or more output devices.