integrate to get displacement from acceleration over time


    Apr 23 2006 | 3:36 pm
    Hello all,
    I have a 2-axis accelerometer circuit that will be sending values to max/msp, and I'd like to be able to determine location information over time. The last time I used calculus was about 15 years ago, so I'm a little rusty here, but I think I'd need to integrate to get velocity and then displacement.
    Is this something that's possible in Max? Any pointers would be greatly appreciated!!
    Spencer

    • Apr 24 2006 | 11:00 am
      I tried this before, but didn't get accurate results and stopped.
      The idea in integration is to sum the difference between consecutive
      values of your data stream multiplied by the duration of the interval
      between these values (like computing a surface):
      -> sum [ (value[timeX]-value[timeX-1])*(timeX-(timeX-1)) ]
      should give you the speed. And if you apply the same process on speed,
      you'll get the position.
      You probably won't get your data on a regular time interval, so
      timeX-(timeX-1) will vary over time.
      The problem is that the datas, and especially the time intervals, are
      not extremely accurate, so after a while, your speed won't be 0
      although the accelerometer doesn't move anymore because the sum of
      acceleration and deceleration won't _perfectly_ match. And so the
      positions will move too.
      As an accelaration of 0 doesn't mean that there is no movement (I was
      surprised to notice that the violin player I worked with moved her bow
      with a perfectly stable speed, i.e. no acceleration!), it is not easy
      to add some "reset" function to the speed and position; it depends on
      the physical properties of your moving object (in the case of a bow,
      you know the range of the movement, and could eventually manually reset
      the position when an extremity of the bow is reached).
      Another issue is that your accelerometer will probably return 0->1 G
      values if it's only rotated, without changing its position within the
      world.
      Good luck.
      _____________________________
      Patrick Delges
      Centre de Recherches et de Formation Musicales de Wallonie asbl
    • Apr 24 2006 | 1:39 pm
      On 24 avr. 06, at 13:00, Patrick Delges wrote:
      Ooooppppsssss, I'm afraid I wasn't very concentrate when I posted this
      message and made a strange mix between integration and derivation...
      You don't want to sum the differences between values, but the values
      themselves, times the delta-time. I found a small test patch I made
      that may give you some ideas... but there is still a lot to do!
      _____________________________
      Patrick Delges
      Centre de Recherches et de Formation Musicales de Wallonie asbl
    • Apr 24 2006 | 1:48 pm
      Thanks for your reply! I will be testing this week, and I'll let you know how it works out.
      Best,
      Spencer
    • Apr 24 2006 | 4:31 pm
      FYI...going from acceleration to position is going to be tricky as
      you're going to have a second order integrator. Errors will
      accumulate very fast without some sort of error correction term in
      your calculations.
      best,
      wes
    • Apr 26 2006 | 7:46 am
      spencer kiser wrote:
      > I have a 2-axis accelerometer circuit that will be sending values to
      > max/msp, and I'd like to be able to determine location information
      > over time. The last time I used calculus was about 15 years ago, so
      > I'm a little rusty here, but I think I'd need to integrate to get
      > velocity and then displacement.
      Mathematically its not a problem as Patrick showed, but as your
      accelerometers are analog you will get errors which add up fast. You
      won't be able to track absolute positions with that very precisely,
      unless you combine it with a way to correct it, for example with a
      camera, or with single events which could only occur at a defined point.
      All depends on what you want to do with it.
      Stefan
      --
      [][] [][][] [][] [][][]
      [][][][][][][][][][][][][][][]
      Stefan Tiedje
      Klanggestalter
      Electronic Composition
      &
      Improvisation
      /~~~~~
      \ /|() ()|
      ))))) )| | |( \
      /// _/)/ )))))
      ___/ ///
      -------------------------x----
      --_____-----------|-----------
      --(_|_ ----|-----|-----()----
      -- _|_)----|-----()-----------
      ----------()------------x-----
      14, Av. Pr. Franklin Roosevelt,
      94320 Thiais, France
      Phone at CCMIX +33-1-57 42 91 09