Theory

140 views
Skip to first unread message

MohammedElbes

unread,
Jan 3, 2012, 1:06:27 PM1/3/12
to IMUSim
Dear IMUSIM team,

I am wondering if you can provide the theory of getting the IMU
position from the (acc,gyro,mag) signals. IMUSIM can provide the
postion of the IMU in each time stpe of the simulation and I would
like to know how you guy transfer these signals to position.

Thank you

Martin Ling

unread,
Jan 13, 2012, 8:37:43 AM1/13/12
to imusim...@googlegroups.com

It depends what sort of object you are tracking and whether you need
absolute or just relative positions.

If you just have a single IMU moving freely in space, then in general
you cannot track its position from accel/gyro/mag data alone. You can
only obtain an estimate of its orientation, based on some assumptions
about its movements. IMUSim has several algorithms for doing this,
and their documentation includes references to the papers describing
the theory behind them. See:
http://www.imusim.org/docs/api/imusim.algorithms.orientation-module.html

If you have multiple IMUs on different parts of a jointed rigid body
system, e.g. a human body, then you can obtain relative positions
between them by forward kinematics - basically, putting the segments of
the model together in the orientations reported by the IMUs. This is
fairly simple vector math, and is implemented in IMUSim by the
InheritedForwardKinematics class. A bit more explanation is given in
Alex's thesis, see section 3.2.1 on page 37:
http://homepages.inf.ed.ac.uk/ayoung9/papers/Young_PhD.pdf

To get movements of the body as a whole - like walking around - you have
to make further assumptions, e.g. that the subject is on a flat floor.
Then we can try to estimate, from the reconstructed postures, the steps
that the subject must be making. Alex published a paper about methods
for doing this:

A. D. Young. From Posture to Motion: The Challenge for Real Time
Wireless Inertial Motion Capture. In Proceedings of the 5th
International Conference on Body Area Networks, September 2010.
http://homepages.inf.ed.ac.uk/ayoung9/papers/Young_BodyNets_2010.pdf

Two of the algorithms discussed in that paper (lowest point, and a
contact tracking Kalman filter) are implemented in IMUSim:
http://www.imusim.org/docs/api/imusim.algorithms.position-module.html

Note that unless you're explicitly calling these algorithms, IMUSim
isn't doing any position estimation from (accel, mag, gyro) data. The
trajectory you assign to the IMU, which includes position data, is an
*input* to the simulation, from which the sensor data is eventually
obtained.


Martin

Reply all
Reply to author
Forward
0 new messages