6.5.3 Het complementaire filter

We hebben dus een filter nodig dat gebruikt maakt van de korte termijn gegevens van de gyroscoop en van de lange termijn gegevens van de versnellingsmeter. Dat kunnen we doen met een zogenaamd filter.
Voor dit filteren kun je gebruik maken van het Kalman filter. Maar die is erg ingewikkeld, lastig te implementeren en bovendien heb je er een behoorlijk krachtige processor voor nodig. Een eenvoudiger oplossing is het complementaire filter. Een vergelijking tussen beide filters vind je hier.

Het complementaire filter combineert de gegevens van zowel de versnellingsmeter en de gyroscoop. Op de korte termijn gebruiken we de gegevens van de gyroscoop, omdat deze zeer precies is en niet gevoelig is voor externe krachten. Op de lange termijn gebruiken we de gegevens van de versnellingsmeter omdat deze geen last heeft van drift.

In zijn meest eenvoudige vorm ziet het filter er als volgt uit:
hoek = 0,98*(hoek + gyroscoopGegevens*dt) + 0,02*versnellingsmeterGegevens

De gyroscoop gegevens worden op elk tijdsinterval geïntegreerd met de huidige hoekwaarde. Hierna wordt het gecombineerd met de lange termijn data van de accelerometer (al verwerkt met arctan2). De constanten (0,98 en 0,02) moeten samen 1 zijn maar kunnen worden gewijzigd om het filter juist af te stemmen.

Meer uitleg is op het internet te vinden, bijvoorbeeld ook hier.