Я рассчитал угол наклона акселерометра по следующей формуле:
Angle_Accel = atan(Ax/sqrt(Ay*Ay+Az*Az))*(180/PI)
Я хочу рассчитать угол наклона с помощью гироскопа сейчас, и я использую координату Gx для интегрирования следующим образом, но мой результат неверен.
Псевдокод
- Измеряйте Gx каждые 0,1 секунды.
- После коррекции коэффициента чувствительности и смещения я умножаю на 180/PI, чтобы преобразовать в степень.
- Затем я делю на частоту, т.е. 10, и добавляю к конечному углу.
Код C
Gx = (((float)GYRO_PLAY.Gyroscope_X )* GYRO_PLAY.Gyro_Mult)-Gx_Correction;
Gy = (((float)GYRO_PLAY.Gyroscope_Y )* GYRO_PLAY.Gyro_Mult)-Gy_Correction;
Gz = (((float)GYRO_PLAY.Gyroscope_Z )* GYRO_PLAY.Gyro_Mult)-Gz_Correction;
Gx_temp = (Gx*degrees)/10.0; //degrees = 180/PI
Gx_Theta = Gx_Theta + Gx_temp;
Мой угол не правильный. Как мне интегрироваться? Буду признателен за любую оказанную помощь.
PS: я знаю, что есть такой вопрос здесь но это не решает мою проблему, пожалуйста, помогите мне.
atan2()
? - person Yunnosch   schedule 10.01.2018