I am building a two-wheel balancing robot with a 6-axis IMU (gyro plus accelerometer) read at 100 Hz. The angle from the accelerometer alone is very noisy when the motors run, and the angle from integrating the gyro slowly drifts away.
Most tutorials jump straight to a Kalman filter, others use a one-line complementary filter. What does each one actually do with the two sensors, and is the Kalman filter worth the extra work for a single tilt angle?




