Determining path, timing and velocity from a 3d accelerometer

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
5 replies · 8K views
tdavis1198
Messages
2
Reaction score
0
Hi,

I wonder if there is anyone who can help me with a problem i have.

I have a device that includes a simple 3d accelerometer. The device is a handheld device and my challenge is to figure out the path that the device moves in space relative to its starting position. I would like to plot the path and velocity with time.

The challenge is that the device can swivel over time which means that the gravity vector changes and so it complicates the requirement to remove the gravity vector so as to figure out the true acceleration.

Additionally, the accelerometer is really not made for violent swings and as such it can clip the output based on excessive movement.

The type of movement that takes place is a repetitive movement and so the general path is known and as such i believe that a model of the gravity vector can be created. Someone has experimented with my data and used Kalman filters and cubic splines to try and figure out the information.

The path information and velocity does not have to be 100% accurate. I just need a good general trend of how the object moves and the timing.

I am not a physicist and my job would be to find an algorithm and then write the software in he embedded hardware. Time is of the essence and if there is someone who could help me figure this out, I would appreciate it.
 
Physics news on Phys.org
Why subtract out the gravity vector? I would instead leave it in, and then at the very end, remove how far it has "fallen".

Clipping, though, is a problem. That information is lost, and the only thing you can do is try and guess what was lost.
 
Vanadium 50 said:
Why subtract out the gravity vector? I would instead leave it in, and then at the very end, remove how far it has "fallen".
This is not a good idea; it is generally a very bad idea.

tdavis1198 said:
The challenge is that the device can swivel over time which means that the gravity vector changes and so it complicates the requirement to remove the gravity vector so as to figure out the true acceleration.
You obviously need some model of the attitude state, otherwise your integrated state will diverge rather quickly, even without gravity entering the picture. One approach is to use gyros as a means of estimating your attitude state.

Additionally, the accelerometer is really not made for violent swings and as such it can clip the output based on excessive movement.
This might be a big problem.
 
Vanadium, your approach might work if
  • Earth had a uniform (planar) gravity field.
    This is a valid approximation over a short distance, but if the travel occurs over any significant distance, the uniform gravity assumption fails. Even the spherical gravity assumption fails; NASA requires a waiver if manned spacecraft navigation algorithms use less than an 8x8 spherical harmonics gravity model.
  • The device holds steady attitude.
    This is definitely not the case here. The OP specifically said "the device can swivel over time".
  • You only cared about the state at the end (whenever that is).
    Typically one uses navigation techniques to get an estimate of the state (position, velocity) at every point in time, not just the end.

Accelerometers readings are chock full of errors: white noise, biases, scale factor errors, alignment errors, etc. Run-of-the-mill numerical integration techniques will result in a lousy answer, and that is assuming a proper accounting of the one force that accelerometers cannot measure (gravity). Overly simple numerical integration, without properly accounting for gravity, will result in an incredibly lousy answer. Kalman filters were developed to address this very problem. They are what correctly got the Apollo vehicles to the Moon.
 
Would a Kalman filter help with the gravity problem or just to eliminate the noise?

PS. I need help to solve this problem and I am willing to pay someone to help!