Sunday, April 26, 2015
Rosbagging into Text Files
http://answers.ros.org/question/11330/how-can-i-use-bag-file-data-in-matlab/
Saturday, April 11, 2015
Final IMU Debugging Useful Links
More useful links that helped me eventually get the IMU working with ROS on the BBB.
-Ted
Awesome introduction to using the BBB for I2C among many other things. Con is that he is using a Beagleboard or not the Black so the instructions and code are actually dated.
http://derekmolloy.ie/beaglebone/beaglebone-an-i2c-tutorial-interfacing-to-a-bma180-accelerometer/
Guy who had similar problems as I did, and helped stimulate thoughts. Still wasn't the solution.
http://electronics.stackexchange.com/questions/144674/if-an-i2c-device-does-not-appear-in-i2cdetect-does-it-mean-the-device-is-potenti
Another great resource that helped stimulate thoughts, but did not fix my problem. Has a more updated walk through as compared to Molloy.
http://beaglebone.cameon.net/home/i2c-devices
-Ted
Awesome introduction to using the BBB for I2C among many other things. Con is that he is using a Beagleboard or not the Black so the instructions and code are actually dated.
http://derekmolloy.ie/beaglebone/beaglebone-an-i2c-tutorial-interfacing-to-a-bma180-accelerometer/
Guy who had similar problems as I did, and helped stimulate thoughts. Still wasn't the solution.
http://electronics.stackexchange.com/questions/144674/if-an-i2c-device-does-not-appear-in-i2cdetect-does-it-mean-the-device-is-potenti
Another great resource that helped stimulate thoughts, but did not fix my problem. Has a more updated walk through as compared to Molloy.
http://beaglebone.cameon.net/home/i2c-devices
Friday, April 10, 2015
VICON Testing 1
Today we tested a synchronized IMU with the VICON and there are 8 trials with the data on the link below:
https://drive.google.com/a/case.edu/folderview?id=0B3ZJVS4arjDOfkcySzFrNEhzQlFqQ044eThFQ1BadWZBMHNkLVVZU0xRSzEwMkZDcW4yZ2c&usp=sharing
https://drive.google.com/a/case.edu/folderview?id=0B3ZJVS4arjDOfkcySzFrNEhzQlFqQ044eThFQ1BadWZBMHNkLVVZU0xRSzEwMkZDcW4yZ2c&usp=sharing
Friday, March 6, 2015
Gantt Chart Updated in Smartsheets
This is the link to the smartsheet:
https://app.smartsheet.com/b/home
https://app.smartsheet.com/b/home
Position Tracking with Inertial Measurement Units Midterm Report
Position
Tracking with Inertial Measurement Units
By:
Theodore Nowak and Alex Haufler
Abstract
There are many factors
that differentiate commercially available IMUs such as absolute
accuracy, drift, bias stability, inherent
noise, and vibration rejection. The IMUs currently
deployed in sensitive environments can
cost tens of thousands of dollars, while the IMUs in
phones and tablets cost fractions of a
dollar. In order to compensate for the different factors
affecting the accuracy of the
measurements, various algorithms and measurement schemes have
been developed. Also, once the measurements
have been made and adverse factors
compensated for, there are various
algorithms for filtering the data so that it better represents the
actual acceleration, angular rate, and
magnetic orientation.
That
being said, the end goal of our project is to create a system that will track
multiple IMUs simultaneously, test multiple correctional algorithms on this
data, and then compare the results with the VICON system at the Veteran’s
Affairs Hospital in their gait analysis lab. Last semester we worked to test
the differences between IMUs (cost, DOF, etc.) and also between many of the
leading filtering techniques used in the field. This semester we will begin to
integrate this knowledge into further investigation and the beginnings of a
working product.
Distribution
of Labor
Ted is responsible for creating
an interface from which to record from the IMUs using ROS and a Beaglebone
Black. This will involve installing Linux, ROS, and any necessary packages on
the Beaglebone Black, and also creating executable code in C++ to record from
the IMU. This code must be able to record from multiple IMUs at once at equivalent,
programmable frequencies. He has been assigned this task because he has the
most experience both with ROS and C++. In addition to any work involving ROS,
Ted will also be responsible for understanding Kalman-Bucy filtering in full.
Last semester our previous partner Emeline investigated this topic, but was
unable to flush out some aspects of the filter. Ted will aim to start where she
left off and work with Professor Loparo to fully understand the filter.
Alex Haufler is a senior
electrical engineering major with ample experience in signal processing and
analysis, and in embedded systems design. His main focus is on understanding
the theory and implementation associated with each of the separate filtering
techniques relevant to denoising, determining orientation, rejecting bias, and
estimating position. Then, with a complete understanding of the separate
pieces, Alex will develop custom algorithms involving a combination of the
various filtering methods.
Both Alex and Ted have made sufficient progress thus far.
Ted has already installed Linux and ROS on the Beaglebone Black and will soon
begin drafting code to record from the MPU6050’s. Similarly, Alex has already
read through five chapters in a wavelets textbook and skimmed chapters in a few
others. As of now, the project is progressing on time.
Technical
Challenges
Creating the interface
from which to record from the IMUs is riddled with challenges. Firstly, there
are limitations within the version of Linux on the Beaglebone Black. Because of
this, there are some differences that might necessitate all communication with
the Beaglebone Black to be done through SSH. Similarly, all code written will
need to be transferred through Github. Other hurdles include properly altering
existing code to work on ROS, and finding how to instantiate three IMUs to
function simultaneously at similar frequencies. These problems will be overcome
through careful setup of file structures and through adequate research. Ideally
other software engineers will have had similar experience from which we may
learn.
Position estimation from
inertial measurements has a number of obstacles to achieving a high degree of
accuracy. Since inertial measurements are accelerations or angular velocities,
double integration and integration respectively is necessary for obtaining an
estimate of position and orientation. First, since the measurements are in
discrete time, an approximation has to be used for the integrations. A higher
sampling rate could aid in the approximation. However, if there is any
deviation from the true values of acceleration and angular velocity, the effect
of integrating twice will mean something of a quadratic growth in error with
time. Deviations from the true values include bias in the measurements from the
MEMS devices, drift of this bias with temperature and time, noise that includes
vibrations from external sources, and incorrect orientation estimation. The
incorrect orientation estimation has to do with gravity, which is registered as
an acceleration, and if the direction is not known exactly there will be an
incorrect acceleration measurement along the different axes. As far as
technical challenges associated with the algorithms are concerned, wavelets and
Hilbert-Huang transforms to be used in denoising the data are fairly
complicated and will take more time to fully understand and implement.
There are many pertinent
numerical methods and filtering techniques to investigate and amalgamate such
as least-squares spline interpolation, wavelets, Hilbert-Huang transforms,
zero-velocity update aided filtering, Madgwick’s filter, Mahoney’s filter, and
Kalman-Bucy filtering. There are more, but these are the most interesting due
to their current development and relevance to the project. In order to learn more
about the current state of the art associated with wavelets, Alex will continue
to work through the books he has checked out of the library, in addition to
consulting Professor Loparo and Professor Buchner, and reading papers,
articles, etc. Once a thorough understanding of the subject has been obtained,
he will implement different methods using wavelets in Matlab that have shown
success, perhaps in other applications such as ECG analysis, and test them
against the benchmark data from the VICON system. Wavelets are to be used in
denoising, but Alex will take the same approach with different algorithms and
ideas applied to bias/drift rejection, orientation estimation, and integration
approximations.
Specifications
Due to the nature of
this project, it is much more reasonable to think in terms of goals rather than
in terms of specifications. They are as follows: firstly, a working platform
using ROS and the Beaglebone Black on which one can record from three MPU6050’s
simultaneously and at preordained frequencies; secondly, to study various
different filters for denoising, determining orientation, rejecting bias, and
estimating position; thirdly, to combine these techniques into one optimized
methodology for filtering the MPU6050 data; and, lastly, to compare these
results with the “golden standard,” the VICON system. These results will be
verified and confirmed throughout the course of the project. The Beaglebone
Black test-base, will be physical in nature, and therefore validated through
visualization and through its effectiveness in yielding results. Then, throughout
the course of testing each filtering algorithm, we will generate many plots with
the data from the Beaglebone Black either validating or disproving the efficacy
of the filter. These plots can be included in the final write up to prove the
satisfaction of aforementioned goals. Lastly, the VICON system will yield data from
which we will compare the mean squared error of our filters and VICON against
each other. Through these comparisons we will determine which of our filters
was most effective. While the nature of this project makes it difficult to
quantify results, our end results should blend a healthy mix of visual
confirmation and algorithmic comparison to satisfy the prudent analyst.
Gantt
Chart

Monday, February 16, 2015
Subscribe to:
Posts (Atom)
