Combine dados de giroscópio e acelerômetro

Eu estou construindo um robô de balanceamento usando o sistema NXT da Lego Mindstorm. Estou usando dois sensores da HiTechnic, sendo o primeiro um acelerômetro e o segundo um giroscópio. Eu tenho filtrado com sucesso o ruído de ambos os sensores e os ângulos derivados para ambos em um intervalo entre -90 e 90 graus, com 0 graus sendo perfeitamente equilibrados.

Meu próximo desafio é combinar os dois valores de sensor para corrigir o desvio do giroscópio ao longo do tempo. Abaixo está um exemplo de gráfico que criei a partir de dados reais para demonstrar a deriva do giroscópio:

A abordagem mais comumente usada para combinar esses sensores é usando um filtro de Kalman. No entanto, eu não sou um especialista em cálculo e realmente não entendo símbolos matemáticos, eu entendo matemática no código-fonte embora.

Estou usando o RobotC (que é como qualquer outro derivado do C) e realmente apreciaria se alguém pudesse me dar exemplos de como fazer isso em C.

Obrigado pela ajuda!

RESULTADOS DA SOLUÇÃO:

Tudo bem, kersny resolveu meu problema me apresentando filtros complementares. Este é um gráfico ilustrando meus resultados:

Resultado # 1

Resultado # 2

Como você pode ver, o filtro corrige o desvio giroscópico e combina os dois sinais em um único sinal suave.

Editar: Como eu estava consertando as imagens quebradas de qualquer forma, achei que seria divertido mostrar a plataforma que usei para gerar esses dados:

questionAnswers(2)

yourAnswerToTheQuestion