Inertia Measurement

I purchased the WiTilt controller in order to measure the position of a handheld as I moved it around. I later realized that 3 axes is insufficient to get all the position information; I actually need 6 (x, y, z, roll, pitch, yaw). I’m trying to understand, at this point, what I need to do to get all the parts necessary to measure these.

In addition, the WiTilt is giving me readings, but it seems to measure tilt instead of X,Y,Z. I understand conceptually what an accelerometer measures, so am I getting roll/pitch/yaw or x/y/z readings? I can currently rotate the device around and get feedback indicating its roll/pitch/yaw (through a program I wrote). It seems like I would need a gyroscope to get roll/pitch/yaw, so what is going on? I’m also aware of the WiTilt 3.0, with 3 axis accelerometer and 1 axis gyroscope, but I’m not sure whether that would be sufficient for 6 axes of information.

I want a human user to be able to hold the handheld and casually walk around with it, with the device being able to know the changes in roll/pitch/yaw and x/y/z. I’d appreciate your feedback.

As you state, in order to measure position (x,y,z) you will need three accelerometers (or one triple axis). In order to measure yaw, pitch and roll, you will need three gyroscopes. RobotShop carries any combination of these, as well as several “all-inclusive packages”. Rather than having customers hack into a commercial product, our selection has pin outs (mostly analog), which make using the products that much easier.

Most of the accelerometers, gyroscopes and IMUs produce an analog voltage proportional to the velocity (linear or angular). This analog value must then be converted to a numeric value using an analog to digital converter. This numeric value must then be integrated over a sampling time (determined in the code) to give either an angle or a linear position.

If you place an accelerometer at a distance from a pivot, you can theoretically calculate yaw, pitch and roll. However, the values you get are approximate and should instead be used as feedback for filters. Note that MEMS gyros and accelerometers both suffer from drift. Drift is the exponentially growing error in the readings caused by many different factors including:

]Not being able to continuously record vales (sampling rate)/:m]
]Temperature fluctuations/:m]
]A/D conversion time/:m]The most accurate gyroscopes drift only a fraction of a degree after 1 hour. In order to reduce drift, many designers have used software filters (the accelerometers can also be used to give an estimation of the angle if mounted a distance from the pivot point). Look up “Kalman filter” to give you an idea of the equations involved.

If you find an inertia measurement product that suits your needs (for example one that has a three axis accelerometer but only single axis gyro), simply add another two gyros.