IRJET- Wireless Active Vibration Control for Structural Vibrations using Emb...
ISEF
1. Running Head: HUMAN TREMOR MITIGATION
Human Tremor Mitigation
Zander S. Ackerman
Mountain Vista Governor’s School
2. HUMAN TREMOR MITIGATION
2
Abstract
This engineering project, during phase 1 of 4, developed a mechanical testbed designed
to test the efficacy of algorithms in mitigating human tremors. In addition, several algorithms
were designed and tested on a computer. The most promising algorithm was then tested using the
testbed. This algorithm was able to lower the standard deviation of the tremor, simulated by the
testbed, by 28.48%, indicating that the algorithm was successful in lowering tremor severity.
Keywords: robotic assistance, noise canceling algorithms, human tremors
3. HUMAN TREMOR MITIGATION
3
Introduction
Over time, patients suffering from diseases such as Parkinson’s or Multiple Sclerosis
(MS) lose dexterity and strength from their limbs, making even simple tasks difficult. Seemingly
minor effects, such as low amplitude tremors, can make picking up, handling, and setting down
an object difficult due to inaccuracies introduced into the limb’s motion. Measuring a patient’s
tremors in order to prescribe medication, or describe the symptoms, has also been very
challenging, as most measurements rely on subjective analysis of a patient’s actions or a
description by the patient. (Alusi, 2001)
Even beyond neurological diseases, human tremors can be the result of a number of
possible external circumstances or physical/psychological issues, and can have wide reaching
effects. This research project aimed to develop a system to test and develop algorithms designed
to mitigate tremors in the arm using high speed servos. A test bed for simulating tremors in an
arm was designed and constructed. An algorithm was written, loaded onto the test bed, and then
tested to determine how effective the tremor mitigation algorithm was. This was all to determine
the feasibility of a tremor mitigation system for future development.
A number of research projects have already done work in the field of tremor mitigation.
Lift Ware was a spoon which used servos to stabilize a spoons motion; it detected tremors with a
sensor and sent integrated servos a signal to move to mitigate the tremors. It was able to reduce
tremor severity by about 70% (Pathak, 2013). The Department of Defense (DoD) has been
developing servo assisted armatures: most that have been developed thus far have used some
form of critically dampened Proportional-Integral-Derivative controller (PID) system for user
control. (Ang, 2005) A variation of this technique was used in this project. An interesting parallel
exists in a study done on purely mechanical systems for assisting the human body. This project
4. HUMAN TREMOR MITIGATION
4
utilizes some similar ideas as the mechanical system does, just with motors instead of springs,
and moving out of phase with motion, instead of in phase with it. (Collins, S., Wiggin) The most
relevant work, however was done by Eduardo Rocon and his associates. They designed and built
a very similar robotic exoskeleton to what this project imagines. Their device uses multiple
gyroscopes and servos to fall out of phase with a tremor and mitigate it. Though effective at
reducing tremor severity, the exoskeleton was rather large and cumbersome. This project aims to
resolve some of the issues with that project by reducing bulk and decreasing weight. As this
project only uses servos, tremors should be able to be mitigated faster and in a more flexible
fashion than gyroscopes allow. (Rocon, 2012)
It was hypothesized that the use of the testbed developed by this project would be able to
successfully test a developed algorithm. In regards to the algorithm testing, the alternative
hypothesis was that there would be a significant change in tremor severity when the algorithm
was applied to mitigate a test tremor. The null hypothesis was that the testing of the algorithm
would result in no significant change to the test tremor’s severity.
Methods and Materials
A test bed was constructed to mimic the motions of human tremors. While the generated
tremors had a much lower frequency and amplitude than real human tremors, the test bed
provided a way to verify the concept of the project in order to justify further development. The
test bed was constructed as 4 main subsystems: the tremor driver, the dampening servo, the arm,
and the Microcontroller Unit (MCU). The tremor driver consisted of a motor driving a large
gear. A simple push rod assembly was attached to the rim of the gear to move a slide assembly
5. HUMAN TREMOR MITIGATION
5
up and down a vertical track. The slide assembly was constructed of two sliding carts that were
able to move freely up and down the track. The two carts were connected by springs, decoupling
the motion of the motor with that of the top cart. This provided the freedom for the top cart to
still experience forces enacted by the tremor driver, while retaining the ability to move
independently. The arm was mounted to the top cart on a pivot on one end (front), and to a
supporting pivot on the other (back). The back side of the arm was attached to the dampening
servo with a sliding mount; this allowed the arm to pivot freely at both ends despite the changing
angle causing a change in distance between both pivot points, as the arm could slide slightly in
and out of the sliding mount effectively changing the length of the arm to accommodate any
angle the test bed could produce. The dampening servo was attached to the back end of the arm,
with the servo being positioned in such a way that it could rotate the arm. A sensor, which was a
part of the MCU subsystem, was positioned so that it could measure the angle of the arm: the
sensor was attached at the rotation point of the arm at the servo. The sensor was a basic
potentiometer, and rather than using an exact angle measurement, which was unfeasible due to
inaccuracies in the potentiometer’s manufacturing, instead outputted a voltage that was
calibrated in the MCU. Despite not knowing the exact angle, the amplitude changes were
reflected in the voltage itself. The MCU then used the ADC to return an integer value for
graphing and analysis. The MCU was mounted in a pair of prototyping breadboards that routed
power to the motors, the sensor, as well as the MCU. The whole test bed was designed to be
easily reprogrammable to allow rapid iteration on the algorithms. See figures 1, 2, and 3 below.
7. HUMAN TREMOR MITIGATION
7
Figure 3- A View of the Sliding Mount, Servo, Sensor, and MCU. The Sensor is inside that
aluminum pivot point.
The test bed was built using materials chosen based on their lightweight and relative
inexpensiveness. Wooden and Aluminum components were used for the structural aspects.
Servos were chosen based upon strength and high-response characteristics, with precision taken
as a less important consideration. Cost was also an important consideration, and inexpensive
servos were used even when performance could have been improved by higher quality servos.
The design constraints of the algorithm were focused around being as self-contained as
possible: meaning that the ability for the algorithm to be run on the least amount of equipment
was the most important aspect of the algorithm. While being accurate and effective are also
important, the algorithm needs to be able to run a small and compact device if the entire system
is to be used as an actual treatment for human tremors.
Two algorithms were designed through the course of this project. One was designed to be
run completely on a MCU, sacrificing memory and speed for a lightweight and self-contained
8. HUMAN TREMOR MITIGATION
8
system, while the other was designed to be used with a computer, providing superior speed,
accuracy, and memory, while also requiring that a computer to be attached to the device for the
algorithm to function properly.
The MCU based algorithm (herby referred to as algorithm one) works by first
determining the characteristics of a tremor. The sensor was measuring the arm angle, so finding
the maximum average arm angle gives the amplitude of the tremor, and the time between
amplitudes gives the frequency. This allowed algorithm one to operate quickly and with
minimum memory requirements; the only data stored by the program being the amplitude and
frequency, and most of the calculations are able to be completed before the next sensor value can
be read from the sensor. Once basic information about the tremor is obtained, algorithm one
switches into servo control mode, and begins mitigating the tremor. Sensor values on position are
read into the MCU, the angular acceleration of the arm is found with a second degree derivative
using a small number of position values, the torque of the tremor at that time is calculated, and
the servo is then pulsed to mitigate the tremor by providing the same amount of torque as the
tremor but in the opposite direction. The amplitude and frequency values are used as constraints
to make sure the algorithm doesn’t overshoot and stays on time.
The computer based algorithm (algorithm two) was designed to take a large number of
samples to generate a graph, and then calculate derivatives, frequency, and amplitude based on
that graph. This approach yielded much more accurate and detailed information, but required the
storage of far too much information to be run with MCUs alone. In this approach, the MCUs
handle the servo and sensor, but leave data storage and calculation to a computer. The MCUs and
the computer communicate with each-other through serial cables, allowing rapid exchange of
information. First, the MCU reads values from the sensor, and sends them to the computer to be
9. HUMAN TREMOR MITIGATION
9
stored for processing. After one second of data collection, the computer processes the
information by calculating the first and second derivative, the frequency, and the amplitude. The
MCU then switches to servo control mode, and in much the same way as algorithm one, uses the
sensor to find the torque on the fly. However, here that process is informed by the stored
information on the computer, allowing the MCU to draw from pre-calculated derivatives that are
more accurate than what can be done on the fly.
Both algorithms were tested for functionality using computer simulations. Initially,
testing was done using java applications but the algorithms ran into performance problems, and
java programs were not able to be loaded onto the MCUs without the MCUs having Java Virtual
Machines (JVMs) on them already. Instead, the algorithms were implemented in C, which is the
language used for working with the MCUs. This made it easier to work with the MCUs and
made writing the programs a bit more intuitive, as standard C libraries didn’t have to be
emulated. Testing was done by implementing the algorithms in C, and then feeding the
algorithms simulated tremor data of similar frequency and amplitude to what the test bed was
designed to output. This was more to make sure the algorithms would work in practice, rather
than for actual performance analysis.
Algorithm one was chosen for physical testing, as despite the lesser degree of accuracy,
was not dependent on external equipment for processing and satisfied the most important design
constraint.
Implementing algorithm one on the MCU was a challenge. The programmer used for
loading programs was unreliable, and often resulted in issues that would disappear and reappear,
even when the program being loaded was not changed. Progress was made using several
components from a library, but those libraries suffered issues as well, and often resulted in
10. HUMAN TREMOR MITIGATION
10
unresolvable errors at compile time. Due to these issues, some of the functionality described for
the optimal algorithm one was unable to be implemented. The system for obtaining sensor data
(the analog to digital converter) was unreliable, and a system for sending information to the
servo controller MCU was not able to be developed. As a result, the instructions for servo control
were pre-calculated and hardcoded into the servo controller. Further work on writing the
algorithm was deemed a topic for further study. The final algorithm loaded onto the MCU was
able to obtain and process tremor data, but was unable to control the servo in real time.
Data for the experiment was obtained by saving the sensor data to a text file, and then
using python scripts to graph the data. Excel was used for t-tests. Three trials were conducted,
one with the algorithm running, ‘dampening’ the tremor, one with the algorithm not running,
providing no dampening for the tremor, and one where the sensor was left on with no tremor as a
control to test the reliability of the sensor. Note that the algorithm ‘running’ means that the servo
controller was loaded with the information obtained from working through the algorithm
beforehand, so that the algorithm’s properties and effectiveness could be tested.
Results
Data samples consist of 200 sub-samples, with one sub-sample taken every 20ms
(millisecond). As a result, each data sample takes place over 4 seconds. Three data samples were
taken, a Control data sample, an Undampened data sample, and a Dampened data sample; the
Dampened data sample being the trial in which the test tremor is mitigated by the algorithm and
the Undampened data sample being the trial in which the test tremor is left unmitigated,
11. HUMAN TREMOR MITIGATION
11
The Control sample had the sensor take readings from the test bed when the test bed was
stationary. The motor controlling oscillations was set to zero, and the stabilizing servo was
inactive.
The Undampened sample had the sensor take readings when the test bed was oscillating.
The motor controlling oscillations was set to maximum power, and the stabilizing servo was
inactive.
The Dampened sample had the sensor take readings when the test bed was oscillating.
The motor controlling oscillations was set to maximum power, and the stabilizing servo was
active.
An ANOVA test was used to compare the Control, Dampened, and Undampened data
sets. The ANOVA test resulted in a P-Value of less than .0001
The Dampened data set had an Average Deviation of .866 and a Standard Deviation of
1.08. The Undampened data set had an Average Deviation of 1.07 and a Standard Deviation of
1.51.
The Dampened data set had an average of 261.5, while the Undampened data set had an
average of 259.5.
T-Tests were used to analyze the differences between the Dampened and Undampened
data samples. The T Test between the Dampened and the Undampened data set resulted in a P
Value of less than .0001, meaning that the two graphs differ in a statistically significant manner.
This is evident in the clear differences between the graphs of the Dampened and Undampened
data sets in Figure 1.
12. HUMAN TREMOR MITIGATION
12
The Dampened data set showed an amplitude similar to that of the Undampened set,
though the actual amplitude values seem to be shifted up. This is shown in Figure 2 by the
difference between the Average Deviations’ being .204. The Dampened data had a lower
Standard Deviation than the Undampened data set as well.
Figure 1
13. HUMAN TREMOR MITIGATION
13
Figure 2
Discussion and Conclusion
The test bed was successfully able to test an algorithm and simulate a tremor, which
satisfies the design constraints for the test bed. A number of issues with the test bed were
identified, and phase 2 will aim to correct them. The phase 1 test bed did not have a way to reset
the tremor generator, so the phase 1 test bed was started in slightly different positions during
each test. This may account for some of the frequency difference between the Undampened and
Dampened data sets, but would not account for the amplitude difference.
The test bed was also unable to simulate a more complex, human like tremor. While a
sinusoidal tremor is fine for preliminary testing, an upgraded tremor generator able to generate
more human like tremors is necessary for further algorithm work.
14. HUMAN TREMOR MITIGATION
14
Phase 1 algorithms supported the alternative hypothesis that there would be a significant
change in tremor severity when the test tremor was mitigated by the algorithm. The Dampened
data set had a lower standard deviation and average deviation than the Undampened set. The
21% reduction of the average deviation shows that the tremor severity was reduced. Average
deviation is more important here than the standard deviation, as the standard deviation uses
exponents during calculations, which tend to distort the differences between smaller differences
and larger differences.
The Dampened Data set was noticeably displaced from the Undampened set- the
Dampened data set’s average value was shifted up by 2. The control sample was also anomalous,
as the expected graph was a flat line, but the result was not. It is unclear what caused these
issues. The ADC may have been inaccurate, or the reference voltage may have changed between
trials, which would explain the difference in average value, and a slow shift in the reference
voltage may have caused the caused the strange result in the control trial. Phase 2 will look into
resolving these issues.
The main issue in phase 1 was the algorithm implementation on the MCU. The
algorithm’s servo control aspect was unable to be tested in real time, which handicaps the
algorithm’s effectiveness. Library issues were also unresolved and important timing functions
did not behave as expected. All of these issues resulted in a sub-optimal scenario for the
algorithm to work in. Phase 2 will focus on the algorithm implementation in order to resolve
these issues, so that the algorithm can perform better and function completely as intended
without having to precalculate parts of the algorithm by hand.
15. HUMAN TREMOR MITIGATION
15
References
Alusi, S., Worthington, J., Glickman, S., & Bain, P. (2001). A study of tremor in multiple
sclerosis (D. Kullmann, Ed.). Brain, 124(4), 720-730. Retrieved January 29, 2015.
Ang, K., Chong, G., Li, Y., ( 2005, June 20). PID control system analysis, design, and
Technology.
Collins, S., Wiggin, M., & Sawicki, G. (2015). Reducing the energy cost of human walking
using an unpowered exoskeleton. Nature, (522), 212-215. doi:10.1038/nature14288
Rocon, E., Gallego, J. A., Bleda-Lois, J. M., Benito-Leon, J., & Pons, J. L. (2012).
Biomechanical Loading as an Alternative Treatment for Tremor: A Review of Two
Approaches. Tremor and Other Hyperkinetic Movements. Retrieved January 20, 2016,
from http://www.tremorjournal.org/index.php/tremor/article/view/77/html
Pathak, A., Redmond, J., Allen, M., & Chou, K. (2013). A noninvasive handheld assistive device
to accommodate essential tremor: A pilot study. Movement Disorders, 29(6), 838-842.
Retrieved March 25, 2015, from
http://onlinelibrary.wiley.com/doi/10.1002/mds.25796/abstract