DSPRelated.com
Forums

Position estimation using tri-axis accelerometer with gyroscope in Static standing

Started by haoxiang December 28, 2009
Hi all,

  I am working on a project on human static standing and i am measuring
the angular body sway of a human when he/she is standing still. I am using
a tri-axis accelerometer
(http://www.sparkfun.com/commerce/product_info.php?products_id=8563) and
obtaining angular displacement estimate based on double integration of
acceleration reading and some least-square estimates. Unfortunately my
experiment duration need to be at least 1 minute and the drift error causes
the estimate to be way off the mark... It doesn't help that i can't exactly
pinpoint my initial acceleration. 

  Can anyone suggest any method to reduce the error in my measurement? My
prof suggested calibrating the result which another camera system which
simultaneously track position but as time is tight, i would hope to find
solution based solely on accelerometer and parameters i have.... Hope to
hear good news soon

Regards,
Hao Xiang 


On 28 Des, 06:06, "haoxiang" <haoxiang1...@hotmail.com> wrote:
> Hi all, > > &#4294967295; I am working on a project on human static standing and i am measuring > the angular body sway of a human when he/she is standing still. I am using > a tri-axis accelerometer > (http://www.sparkfun.com/commerce/product_info.php?products_id=8563) and > obtaining angular displacement estimate based on double integration of > acceleration reading and some least-square estimates. Unfortunately my > experiment duration need to be at least 1 minute and the drift error causes > the estimate to be way off the mark... It doesn't help that i can't exactly > pinpoint my initial acceleration. > > &#4294967295; Can anyone suggest any method to reduce the error in my measurement? My > prof suggested calibrating the result which another camera system which > simultaneously track position but as time is tight, i would hope to find > solution based solely on accelerometer and parameters i have.... Hope to > hear good news soon
Don't expect any fast/simple/easy/convenient solutions... I would *guess* that part of the problem is that humans tend to rotate when swaying. So if you fix the sensor to the human body, the device which is designed to measure purely translational movements, will also be subjected to rotations. Which would severely mess up the data if not accounted for. And no, I have no idea how to correct for such effects based on the data you have. Rune
Rune Allnor wrote:
> On 28 Des, 06:06, "haoxiang" <haoxiang1...@hotmail.com> wrote: >> Hi all, >> >> I am working on a project on human static standing and i am measuring >> the angular body sway of a human when he/she is standing still. I am using >> a tri-axis accelerometer >> (http://www.sparkfun.com/commerce/product_info.php?products_id=8563) and >> obtaining angular displacement estimate based on double integration of >> acceleration reading and some least-square estimates. Unfortunately my >> experiment duration need to be at least 1 minute and the drift error causes >> the estimate to be way off the mark... It doesn't help that i can't exactly >> pinpoint my initial acceleration. >> >> Can anyone suggest any method to reduce the error in my measurement? My >> prof suggested calibrating the result which another camera system which >> simultaneously track position but as time is tight, i would hope to find >> solution based solely on accelerometer and parameters i have.... Hope to >> hear good news soon > > Don't expect any fast/simple/easy/convenient solutions... > > I would *guess* that part of the problem is that humans > tend to rotate when swaying. So if you fix the sensor > to the human body, the device which is designed to > measure purely translational movements, will also be > subjected to rotations. Which would severely mess up > the data if not accounted for. > > And no, I have no idea how to correct for such effects > based on the data you have. > > Rune
I would suggest he run his experiment with an idealized subject - a pendulum. A Google search for his accelerometer would also prove informative (I tried it)

haoxiang wrote:

> I am working on a project on human static standing and i am measuring > the angular body sway of a human when he/she is standing still.
What is a purpose of that?
> I am using > a tri-axis accelerometer > (http://www.sparkfun.com/commerce/product_info.php?products_id=8563) and > obtaining angular displacement estimate based on double integration of > acceleration reading and some least-square estimates. Unfortunately my > experiment duration need to be at least 1 minute and the drift error causes > the estimate to be way off the mark... It doesn't help that i can't exactly > pinpoint my initial acceleration. > > Can anyone suggest any method to reduce the error in my measurement? My > prof suggested calibrating the result which another camera system which > simultaneously track position but as time is tight, i would hope to find > solution based solely on accelerometer and parameters i have.... Hope to > hear good news soon
The accuracy of MEMS accelerometers is inadequate for innertial measurements. However, you can measure tilt angle with respect to gravitation and figure out the sway from there. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:
> > > haoxiang wrote: > >> I am working on a project on human static standing and i am measuring >> the angular body sway of a human when he/she is standing still. > > What is a purpose of that? >
Probably because it was a lab assignment. Also could be quite useful in physical therapy. I've been there - my current Berg Balance score is ~25. BTW the chip manufacturer has an app note for a related application. I'll have to wait to get to a high speed connection to download and read it.
>Rune Allnor wrote:
> >I would suggest he run his experiment with an idealized subject - > a pendulum. > >A Google search for his accelerometer would also prove >informative (I tried it) > >
I have tried placing the accelerometer on a flat ground and measure the accelerations and double integrate to obtain position estimate. Since initial acceleration is unknown i assume as 0. With this setup, i still obtain a significant error in position estimate after elapsed time of 1 min. Even with a pendulum, i would assume the drift error would be the same? I need some method to calibrate the measurement i guess. For eg, since when accelerometer is placed on flat ground there should be no position displacement hence i should calibrate the error result with 0 or something along that line? Regards, Hao Xiang
> > >haoxiang wrote: > >> I am working on a project on human static standing and i am measuring >> the angular body sway of a human when he/she is standing still. > >What is a purpose of that?
Basically the amount of body sway of a human during static standing has a correlation to the likelihood of fall. Elderly tend to have larger magnitude of body sway compare to a young healthy adult.
> >> I am using >> a tri-axis accelerometer >> (http://www.sparkfun.com/commerce/product_info.php?products_id=8563)
and
>> obtaining angular displacement estimate based on double integration of >> acceleration reading and some least-square estimates. Unfortunately my >> experiment duration need to be at least 1 minute and the drift error
causes
>> the estimate to be way off the mark... It doesn't help that i can't
exactly
>> pinpoint my initial acceleration. >> >> Can anyone suggest any method to reduce the error in my measurement?
My
>> prof suggested calibrating the result which another camera system
which
>> simultaneously track position but as time is tight, i would hope to
find
>> solution based solely on accelerometer and parameters i have.... Hope
to
>> hear good news soon > >The accuracy of MEMS accelerometers is inadequate for innertial >measurements. However, you can measure tilt angle with respect to >gravitation and figure out the sway from there. > > >Vladimir Vassilevsky >DSP and Mixed Signal Design Consultant >http://www.abvolt.com >
When you figuring out sway based on tilt angle wrt to gravity, could you elaborate on this further?
>Vladimir Vassilevsky wrote: > >BTW the chip manufacturer has an app note for a related >application. I'll have to wait to get to a high speed connection >to download and read it. >
Hello, Can you attach the link of this application? I can't seem to find it. It'll be a great help to me. Regards, Hao Xiang
The OP's replies snipped in the wrong places causing some of my 
comments to be attributed to others. May have been artifact of 
posting thru DSPRelated.com usenet HTML frontend.

I've reconstructed relevant portions of the exchange to put my 
comments in context.

Richard Owlett wrote:
> Rune Allnor wrote: >> On 28 Des, 06:06, "haoxiang" <haoxiang1...@hotmail.com> wrote: >>> Hi all, >>> >>> I am working on a project on human static standing and i am measuring >>> the angular body sway of a human when he/she is standing still. I am >>> using >>> a tri-axis accelerometer >>> (http://www.sparkfun.com/commerce/product_info.php?products_id=8563) and >>> obtaining angular displacement estimate based on double integration of >>> acceleration reading and some least-square estimates. Unfortunately my >>> experiment duration need to be at least 1 minute and the drift error >>> causes >>> the estimate to be way off the mark... It doesn't help that i can't >>> exactly >>> pinpoint my initial acceleration. >>> >>> Can anyone suggest any method to reduce the error in my >>> measurement? My >>> prof suggested calibrating the result which another camera system which >>> simultaneously track position but as time is tight, i would hope to find >>> solution based solely on accelerometer and parameters i have.... Hope to >>> hear good news soon >> >> Don't expect any fast/simple/easy/convenient solutions... >> >> I would *guess* that part of the problem is that humans >> tend to rotate when swaying. So if you fix the sensor >> to the human body, the device which is designed to >> measure purely translational movements, will also be >> subjected to rotations. Which would severely mess up >> the data if not accounted for. >> >> And no, I have no idea how to correct for such effects >> based on the data you have. >> >> Rune > > I would suggest he run his experiment with an idealized subject - a > pendulum. > > A Google search for his accelerometer would also prove informative (I > tried it) >
To which haoxiang replied: > I have tried placing the accelerometer on a flat ground and > measure the accelerations and double integrate to obtain > position estimate. Since initial acceleration is unknown i > assume as 0. Bad assumption ;) Hint - Think about how the accelerometer is built. > With this setup, i still obtain a significant > error in position estimate after elapsed time of 1 > min. > > Even with a pendulum, i would assume the drift error would be > the same? I need some method to calibrate the measurement i > guess. > Think about what is common about your professor's suggestion and my pendulum suggestion. > For eg, since when accelerometer is placed on flat ground there > should be no position displacement hence i should calibrate the > error result with 0 or something along that line? > Richard Owlett commented: > ... the chip manufacturer has an app note for a related > application. I'll have to wait to get to a high speed > connection to download and read it. To which Hao Xiang replied: > Can you attach the link of this application? I can't seem > to find it. It'll be a great help to me. > I could, but for pedagogical reasons I will not. What were your Google search terms? Remember the only thing I had to go on was your original post. Did you use http://www.google.com/ ? I have found that occasionally European servers give a different pattern of results. The useful links I found were in the first 20 or so hits. HTH
On Sun, 27 Dec 2009 23:06:45 -0600, haoxiang wrote:

> Hi all, > > I am working on a project on human static standing and i am measuring > the angular body sway of a human when he/she is standing still. I am > using a tri-axis accelerometer > (http://www.sparkfun.com/commerce/product_info.php?products_id=8563) and > obtaining angular displacement estimate based on double integration of > acceleration reading and some least-square estimates. Unfortunately my > experiment duration need to be at least 1 minute and the drift error > causes the estimate to be way off the mark... It doesn't help that i > can't exactly pinpoint my initial acceleration. > > Can anyone suggest any method to reduce the error in my measurement? > My > prof suggested calibrating the result which another camera system which > simultaneously track position but as time is tight, i would hope to find > solution based solely on accelerometer and parameters i have.... Hope to > hear good news soon
Are you primarily interested in position or angle? A 3-axis accelerometer may not be too good with position, but in a gravity field it'll be pretty good at telling you which way it's pointing with respect to down, particularly if you've got 3-axes worth of gyro to back it up. If you could assume that the person has their feet planted and that they stayed standing fairly straight I think it'd work as well (think of making and observer for an inverted pendulum), but I don't think that the "stayed fairly straight" assumption would be valid. Or perhaps you care about the amount of sway around some point that you can safely assume to be stationary or moving at a constant average velocity. In that case, once again, your 3-axis accelerometer may be enough, and adding three axes of gyro would be a big help. Getting a 6-axis IMU, even a cheap one, may well do what you want if you work out the filtering well enough. Think about what measurements you _really_ care about, and see if there's enough information there to get what you want. If not, you need more sensors, if it's there then start figuring out how to extract it from your data. Using a camera system is definitely sexy, but it sounds like a distraction from your main goal, to me. -- www.wescottdesign.com