MEMS inertial sensors, IMU architecture, sensor fusion algorithms, and the fundamentals of machine vision for position measurement.
A MEMS accelerometer contains a proof mass suspended by springs. Applied acceleration displaces the mass, and the displacement is measured capacitively. The spring-mass system has a natural frequency; signals below this frequency are faithfully measured, while the device also measures gravity (DC component).
Sensitivity: e.g., 300 mV/g or 1 LSB/mg
Full-scale range: ±2g, ±4g, ±8g, ±16g (selectable)
Zero-g offset: DC bias at zero acceleration
Noise density: µg/√Hz (lower = better)
Cross-axis sensitivity: coupling between axes (<2% typical)
Accelerometers measure specific force: the sum of kinetic acceleration and gravity. At rest, a flat accelerometer reads +1g on the vertical axis. To isolate kinetic acceleration, gravity must be subtracted using orientation knowledge.
A MEMS gyroscope uses the Coriolis effect: a vibrating proof mass experiences a force perpendicular to both its vibration direction and the rotation axis. This Coriolis force is proportional to angular rate and is measured capacitively.
Output in °/s (or rad/s). Integrate once to get angle. Integration accumulates bias error over time (gyroscope drift).
The floor of the bias error. Cannot be calibrated out over long periods. Expressed in °/hr. Key long-term accuracy spec.
Noise-induced angular error that grows as √time. Expressed in °/√hr. Dominates short-term accuracy.
Gain error in the rate-to-output relationship. Creates proportional error at high rotation rates. Calibrated at factory.
Accelerometers give absolute orientation (gravity reference) but are noisy and measure all accelerations. Gyroscopes give smooth, fast rate measurements but drift over time. A complementary filter combines the best of both:
θ[k] = α · (θ[k-1] + ω_gyro · dt) + (1 − α) · θ_accel
where:
α = high-pass weight (typically 0.95 to 0.99)
ω_gyro = gyroscope angular rate (rad/s)
dt = sample period
θ_accel = arctan(a_y / a_z) (from accelerometer)
α acts as HPF on gyro; (1-α) acts as LPF on accelerometer
For position measurement using a camera, the pixel-to-physical mapping converts pixel coordinates to real-world coordinates:
Physical size per pixel = (physical field of view width) / (image width in pixels)
Example: 200 mm FOV, 1920 pixel width:
Scale = 200 / 1920 = 0.1042 mm/pixel
Object position = (pixel_x - image_center_x) × scale
Calibration using a known reference target (checkerboard) is required to determine pixel scale, lens distortion coefficients, and camera-to-world transformation. Without calibration, position errors from lens distortion can be several percent of the field of view.
Gyro integrated: θ_prev + ω·dt = 10.0 + 5.0×0.01 = 10.0 + 0.05 = 10.05°
θ[k] = 0.98 × 10.05 + 0.02 × 10.6 = 9.849 + 0.212 = 10.061°
θ[k] ≈ 10.06°
ARW = 0.1 °/√hr. Time = 0.5 hr. Error = ARW × √t = 0.1 × √0.5 = 0.1 × 0.707 = 0.0707°
1-sigma error ≈ 0.071° (after 30 min with no corrections)