DSPRelated.com
Forums

a kalman filter to correct 3D accelerometer data during running

Started by Pietro March 28, 2008
>On Sat, 29 Mar 2008 01:51:37 -0500, Tim Wescott <tim@seemywebsite.com> >wrote: > >>On Fri, 28 Mar 2008 22:32:57 -0500, John O'Flaherty wrote: >> >>> On Fri, 28 Mar 2008 14:42:33 -0500, "Pietro"
<pietro.picerno@tiscali.it>
>>> wrote: >>> >>>>Hi guys, >>>>I approximately measure 3D acceleration of the center of mass of an >>>>athlete by means of a triaxial inertial measurement unit placed on
the
>>>>sacrum during a 100m sprint running. Accelerations are then expressed >>>>with respect to an earth-fixed global reference frame (vertical axis
is
>>>>defined by gravity). I have a problem: during the flight phase, the
skin
>>>>has a wobbling movement and it accelerates the accelerometer in the >>>>space. Thus, I have accelerometric data which do not &#12287;respect&#12287; >>the >>>>gravitational field: the two horizontal accelerations are not zero!!! >>>>And because of the inertia of the sismic mass of the accelerometer,
the
>>>>vertical acceleration only oscillates around -g (-9.81 m/s^2) but it
is
>>>>not exactly -g. Assuming I can identify on the accelerometric signal >>>>when the flight phases occur, and since during the fligth phase the >>>>motion of the center of mass is well known (ballistic motion), I
would
>>>>like to run a kalman filter to recursively adjust the accelerations
in
>>>>the way to obtain zero and -g for the horizontal and vertical >>>>accelerations respectively by imposing during the fligth phases the >>>>equation of the ballistic motion. I use matlab for calculations but >>>>I&#12287;ve never implemented a kalman filter in my life. Can anyone of
you
>>>>help me in defying the problem in terms of kalman filtering? >>> >>> I can't help with your filtering problem, but I have a question. If
by
>>> "flight phase" you mean when no part of the athlete is touching the >>> ground, isn't the entire system in free fall then (vertically), and >>> wouldn't you read zero acceleration on the vertical axis, rather than >>> -g? And would the axis of the direction of running show deceleration
due
>>> to air resistance, rather than zero? Sorry if these questions miss
the
>>> point. >> >>The athlete-and-accelerometer system as a whole will be (approximately)
>>in free fall. The accelerometer itself will get yanked around. > >Nevetheless, the vertical axis will on average sense zero, and not -g >during "flight phase", right? And since sprinters get to a >considerable forward speed, the air drag will make the forward >acceleration negative, proportional to forward speed, and variable >with the angles of the parts of the body. >-- >John >
Hi Jhon, air resistence can be neglected in this case because it can be considered to have minor effects on the accuracy of final results compared with other error sources (soft tissue artifact). Cheers, Pietro
>On Mar 29, 7:33 am, John O'Flaherty <quias...@yeeha.com> wrote: >> On Sat, 29 Mar 2008 01:51:37 -0500, Tim Wescott
<t...@seemywebsite.com>
>> wrote: >> >> >> >> >On Fri, 28 Mar 2008 22:32:57 -0500, John O'Flaherty wrote: >> >> >> On Fri, 28 Mar 2008 14:42:33 -0500, "Pietro"
<pietro.pice...@tiscali.it=
>> >> >> wrote: >> >> >>>Hi guys, >> >>>I approximately measure 3D acceleration of the center of mass of an >> >>>athlete by means of a triaxial inertial measurement unit placed on
the
>> >>>sacrum during a 100m sprint running. Accelerations are then
expressed
>> >>>with respect to an earth-fixed global reference frame (vertical axis
is=
> >> >>>defined by gravity). I have a problem: during the flight phase, the
ski=
>n >> >>>has a wobbling movement and it accelerates the accelerometer in the >> >>>space. Thus, I have accelerometric data which do not
=E2??respect=E2??
>> >the >> >>>gravitational field: the two horizontal accelerations are not
zero!!!
>> >>>And because of the inertia of the sismic mass of the accelerometer,
the=
> >> >>>vertical acceleration only oscillates around -g (-9.81 m/s^2) but it
is=
> >> >>>not exactly -g. Assuming I can identify on the accelerometric
signal
>> >>>when the flight phases occur, and since during the fligth phase the >> >>>motion of the center of mass is well known (ballistic motion), I
would
>> >>>like to run a kalman filter to recursively adjust the accelerations
in
>> >>>the way to obtain zero and -g for the horizontal and vertical >> >>>accelerations respectively by imposing during the fligth phases the >> >>>equation of the ballistic motion. I use matlab for calculations but >> >>>I=E2??ve never implemented a kalman filter in my life. Can anyone of
yo=
>u >> >>>help me in defying the problem in terms of kalman filtering? >> >> >> I can't help with your filtering problem, but I have a question. If
by
>> >> "flight phase" you mean when no part of the athlete is touching the >> >> ground, isn't the entire system in free fall then (vertically), and >> >> wouldn't you read zero acceleration on the vertical axis, rather
than
>> >> -g? And would the axis of the direction of running show deceleration
du=
>e >> >> to air resistance, rather than zero? Sorry if these questions miss
the
>> >> point. >> >> >The athlete-and-accelerometer system as a whole will be
(approximately)
>> >in free fall. The accelerometer itself will get yanked around. >> >> Nevetheless, the vertical axis will on average sense zero, >> and not -g during "flight phase", right? > >One has to differentiate between resting C.G. and dynamic >C.G. Since the body has several degrees of freedom, these >points can move relative to one another (e.g. in a pike >position, the actual dynamic C.G. will move upwards relative >to a fixed point marked on the body at the standing C.G. >location. That is how divers and cats can shift their center >of rotation, relative to their torso, in mid-air.) > >In a runners flight phase, the dynamic C.G. is in parabolic >free fall, but any fixed point on the body can temporarily >not be accelerating downwards, or possibly even be accelerating >upwards if the limbs are driven downwards with enough force. > > > >IMHO. YMMV. >
Hi, thanks a lot for raising this question. I agree with you, but the sacrum can be considered a good aproximation of the center of mass and, even if it does not coincide exactly with the center of mass, during the fligth phase its motion is parabolic because during this phase the pelvis bone does not rotate about the center of mass. About segments which oscillate during running (arms): the movement of the rigth arm is exactly in anti-phase with respect to the oscillation of the left arm. Cheers, Pietro
>On Sat, 29 Mar 2008 09:45:00 -0700 (PDT), "Ron N." ><rhnlogic@yahoo.com> wrote: > >>On Mar 29, 7:33 am, John O'Flaherty <quias...@yeeha.com> wrote: >>> On Sat, 29 Mar 2008 01:51:37 -0500, Tim Wescott
<t...@seemywebsite.com>
>>> wrote: >>> >>> >>> >>> >On Fri, 28 Mar 2008 22:32:57 -0500, John O'Flaherty wrote: >>> >>> >> On Fri, 28 Mar 2008 14:42:33 -0500, "Pietro"
<pietro.pice...@tiscali.it>
>>> >> wrote: >>> >>> >>>Hi guys, >>> >>>I approximately measure 3D acceleration of the center of mass of
an
>>> >>>athlete by means of a triaxial inertial measurement unit placed on
the
>>> >>>sacrum during a 100m sprint running. Accelerations are then
expressed
>>> >>>with respect to an earth-fixed global reference frame (vertical
axis is
>>> >>>defined by gravity). I have a problem: during the flight phase, the
skin
>>> >>>has a wobbling movement and it accelerates the accelerometer in
the
>>> >>>space. Thus, I have accelerometric data which do not &#12287;respect&#12287; >>> >the >>> >>>gravitational field: the two horizontal accelerations are not
zero!!!
>>> >>>And because of the inertia of the sismic mass of the accelerometer,
the
>>> >>>vertical acceleration only oscillates around -g (-9.81 m/s^2) but
it is
>>> >>>not exactly -g. Assuming I can identify on the accelerometric
signal
>>> >>>when the flight phases occur, and since during the fligth phase
the
>>> >>>motion of the center of mass is well known (ballistic motion), I
would
>>> >>>like to run a kalman filter to recursively adjust the accelerations
in
>>> >>>the way to obtain zero and -g for the horizontal and vertical >>> >>>accelerations respectively by imposing during the fligth phases
the
>>> >>>equation of the ballistic motion. I use matlab for calculations
but
>>> >>>I&#12287;ve never implemented a kalman filter in my life. Can anyone of
you
>>> >>>help me in defying the problem in terms of kalman filtering? >>> >>> >> I can't help with your filtering problem, but I have a question. If
by
>>> >> "flight phase" you mean when no part of the athlete is touching
the
>>> >> ground, isn't the entire system in free fall then (vertically),
and
>>> >> wouldn't you read zero acceleration on the vertical axis, rather
than
>>> >> -g? And would the axis of the direction of running show
deceleration due
>>> >> to air resistance, rather than zero? Sorry if these questions miss
the
>>> >> point. >>> >>> >The athlete-and-accelerometer system as a whole will be
(approximately)
>>> >in free fall. The accelerometer itself will get yanked around. >>> >>> Nevetheless, the vertical axis will on average sense zero, >>> and not -g during "flight phase", right? >> >>One has to differentiate between resting C.G. and dynamic >>C.G. Since the body has several degrees of freedom, these >>points can move relative to one another (e.g. in a pike >>position, the actual dynamic C.G. will move upwards relative >>to a fixed point marked on the body at the standing C.G. >>location. That is how divers and cats can shift their center >>of rotation, relative to their torso, in mid-air.) >> >>In a runners flight phase, the dynamic C.G. is in parabolic >>free fall, but any fixed point on the body can temporarily >>not be accelerating downwards, or possibly even be accelerating >>upwards if the limbs are driven downwards with enough force. > >So you couldn't even get a zero for vertical during this phase, much >less a -g point, since the point of attachment of the accelerometer >could be doing most anything. Would the cumulative vertical >acceleration over an entire gait period (terminology?) have to be -g, >since any decrease in sensed gravity during free-fall would be >compensated by an increase over -g during the deceleration of the body >while landing? Would all the up-downs of the shaking accelerometer >have to balance out if the runner is running on the level? >-- >John >
Hi Jhon (sorry I probably wrote your name uncorrectly before :-)). Please keep in mind that the vertical acceleration is really the last problem. The problem are the components of the horizontal acceleration which is not easy to compensate as the vertical acceleration. The latter is not constantly to zero (or -g) beacuse of the damping of the sismic mass contained in the MEMS system and it can be easly compensated. Cheers, Pietro
On Mon, 31 Mar 2008 13:35:06 -0500, "Pietro"
<pietro.picerno@tiscali.it> wrote:

>>On Fri, 28 Mar 2008 14:42:33 -0500, "Pietro" >><pietro.picerno@tiscali.it> wrote: >> >>>Hi guys, >>>I approximately measure 3D acceleration of the center of mass of an >>>athlete by means of a triaxial inertial measurement unit placed on the >>>sacrum during a 100m sprint running. Accelerations are then expressed >with >>>respect to an earth-fixed global reference frame (vertical axis is >defined >>>by gravity). I have a problem: during the flight phase, the skin has a >>>wobbling movement and it accelerates the accelerometer in the space. >Thus, >>>I have accelerometric data which do not &ldquo;respect&#8255; the gravitational >>>field: the two horizontal accelerations are not zero!!! And because of >the >>>inertia of the sismic mass of the accelerometer, the vertical >acceleration >>>only oscillates around -g (-9.81 m/s^2) but it is not exactly -g. >Assuming >>>I can identify on the accelerometric signal when the flight phases >occur, >>>and since during the fligth phase the motion of the center of mass is >well >>>known (ballistic motion), I would like to run a kalman filter to >>>recursively adjust the accelerations in the way to obtain zero and -g >for >>>the horizontal and vertical accelerations respectively by imposing >during >>>the fligth phases the equation of the ballistic motion. I use matlab >for >>>calculations but I&rsquo;ve never implemented a kalman filter in my life. >Can >>>anyone of you help me in defying the problem in terms of kalman >>>filtering? >> >>I can't help with your filtering problem, but I have a question. If by >>"flight phase" you mean when no part of the athlete is touching the >>ground, isn't the entire system in free fall then (vertically), and >>wouldn't you read zero acceleration on the vertical axis, rather than >>-g? And would the axis of the direction of running show deceleration >>due to air resistance, rather than zero? Sorry if these questions miss >>the point. >>-- >>John >> > >Hi Jhon, thanks for replying. In an inertial reference frame, an >arbitrarly tilted triaxial accelerometer in "free-fall" (flight phase in >this case) measures indeed zero along the vertical axis of the inertial >frame (gravity). In my case is -g just because I've intentionally >subtracted gravity during quite standing of the subject to observe only >accelerations due to external forces.
Thanks Pietro, Just so I understand better, whatever standard you use to calibrate the vertical axis, there will be a step of +g upon entering flight phase, and a step of -g upon leaving it, during each transition, after all the minor perturbations are removed, right? -- John
>On Mon, 31 Mar 2008 13:35:06 -0500, "Pietro" ><pietro.picerno@tiscali.it> wrote: > >>>On Fri, 28 Mar 2008 14:42:33 -0500, "Pietro" >>><pietro.picerno@tiscali.it> wrote: >>> >>>>Hi guys, >>>>I approximately measure 3D acceleration of the center of mass of an >>>>athlete by means of a triaxial inertial measurement unit placed on
the
>>>>sacrum during a 100m sprint running. Accelerations are then expressed >>with >>>>respect to an earth-fixed global reference frame (vertical axis is >>defined >>>>by gravity). I have a problem: during the flight phase, the skin has
a
>>>>wobbling movement and it accelerates the accelerometer in the space. >>Thus, >>>>I have accelerometric data which do not &ldquo;respect&#8255; the
gravitational
>>>>field: the two horizontal accelerations are not zero!!! And because
of
>>the >>>>inertia of the sismic mass of the accelerometer, the vertical >>acceleration >>>>only oscillates around -g (-9.81 m/s^2) but it is not exactly -g. >>Assuming >>>>I can identify on the accelerometric signal when the flight phases >>occur, >>>>and since during the fligth phase the motion of the center of mass is >>well >>>>known (ballistic motion), I would like to run a kalman filter to >>>>recursively adjust the accelerations in the way to obtain zero and -g >>for >>>>the horizontal and vertical accelerations respectively by imposing >>during >>>>the fligth phases the equation of the ballistic motion. I use matlab >>for >>>>calculations but I&rsquo;ve never implemented a kalman filter in my life. >>Can >>>>anyone of you help me in defying the problem in terms of kalman >>>>filtering? >>> >>>I can't help with your filtering problem, but I have a question. If by >>>"flight phase" you mean when no part of the athlete is touching the >>>ground, isn't the entire system in free fall then (vertically), and >>>wouldn't you read zero acceleration on the vertical axis, rather than >>>-g? And would the axis of the direction of running show deceleration >>>due to air resistance, rather than zero? Sorry if these questions miss >>>the point. >>>-- >>>John >>> >> >>Hi Jhon, thanks for replying. In an inertial reference frame, an >>arbitrarly tilted triaxial accelerometer in "free-fall" (flight phase
in
>>this case) measures indeed zero along the vertical axis of the inertial >>frame (gravity). In my case is -g just because I've intentionally >>subtracted gravity during quite standing of the subject to observe only >>accelerations due to external forces. > >Thanks Pietro, >Just so I understand better, whatever standard you use to calibrate >the vertical axis, there will be a step of +g upon entering flight >phase, and a step of -g upon leaving it, during each transition, after >all the minor perturbations are removed, right? >-- >John >
yes John, actually during the stance phase (foot on the ground) the vertical acceleration is always higher than g both during the foot strike and during the propulsion. In correspondence of the foot off (last istant of contact of the foot with the ground before fligth phase) the vertical acceleration approaches very close to -g and should be constantly -g during the fligth phase. At the subsequent foot strike (first istant of contact of the foot with the ground after fligth phase) the vertical acceleration rapidly increase to positive values higher than +g. If you want I could send you a graph of what I've got and of what I should have. Cheers, Pietro
On Tue, 01 Apr 2008 04:38:41 -0500, "Pietro"
<pietro.picerno@tiscali.it> wrote:

>>On Mon, 31 Mar 2008 13:35:06 -0500, "Pietro" >><pietro.picerno@tiscali.it> wrote: >> >>>>On Fri, 28 Mar 2008 14:42:33 -0500, "Pietro" >>>><pietro.picerno@tiscali.it> wrote: >>>> >>>>>Hi guys, >>>>>I approximately measure 3D acceleration of the center of mass of an >>>>>athlete by means of a triaxial inertial measurement unit placed on >the >>>>>sacrum during a 100m sprint running. Accelerations are then expressed >>>with >>>>>respect to an earth-fixed global reference frame (vertical axis is >>>defined >>>>>by gravity). I have a problem: during the flight phase, the skin has >a >>>>>wobbling movement and it accelerates the accelerometer in the space. >>>Thus, >>>>>I have accelerometric data which do not &ldquo;respect&#8255; the >gravitational >>>>>field: the two horizontal accelerations are not zero!!! And because >of >>>the >>>>>inertia of the sismic mass of the accelerometer, the vertical >>>acceleration >>>>>only oscillates around -g (-9.81 m/s^2) but it is not exactly -g. >>>Assuming >>>>>I can identify on the accelerometric signal when the flight phases >>>occur, >>>>>and since during the fligth phase the motion of the center of mass is >>>well >>>>>known (ballistic motion), I would like to run a kalman filter to >>>>>recursively adjust the accelerations in the way to obtain zero and -g >>>for >>>>>the horizontal and vertical accelerations respectively by imposing >>>during >>>>>the fligth phases the equation of the ballistic motion. I use matlab >>>for >>>>>calculations but I&rsquo;ve never implemented a kalman filter in my life. >>>Can >>>>>anyone of you help me in defying the problem in terms of kalman >>>>>filtering? >>>> >>>>I can't help with your filtering problem, but I have a question. If by >>>>"flight phase" you mean when no part of the athlete is touching the >>>>ground, isn't the entire system in free fall then (vertically), and >>>>wouldn't you read zero acceleration on the vertical axis, rather than >>>>-g? And would the axis of the direction of running show deceleration >>>>due to air resistance, rather than zero? Sorry if these questions miss >>>>the point. >>>>-- >>>>John >>>> >>> >>>Hi Jhon, thanks for replying. In an inertial reference frame, an >>>arbitrarly tilted triaxial accelerometer in "free-fall" (flight phase >in >>>this case) measures indeed zero along the vertical axis of the inertial >>>frame (gravity). In my case is -g just because I've intentionally >>>subtracted gravity during quite standing of the subject to observe only >>>accelerations due to external forces. >> >>Thanks Pietro, >>Just so I understand better, whatever standard you use to calibrate >>the vertical axis, there will be a step of +g upon entering flight >>phase, and a step of -g upon leaving it, during each transition, after >>all the minor perturbations are removed, right? >>-- >>John >> > >yes John, >actually during the stance phase (foot on the ground) the vertical >acceleration is always higher than g both during the foot strike and >during the propulsion. In correspondence of the foot off (last istant of >contact of the foot with the ground before fligth phase) the vertical >acceleration approaches very close to -g and should be constantly -g >during the fligth phase. At the subsequent foot strike (first istant of >contact of the foot with the ground after fligth phase) the vertical >acceleration rapidly increase to positive values higher than +g. If you >want I could send you a graph of what I've got and of what I should have.
No need to send anything, Pietro, I get the picture now. Thanks. -- John