На устройстве я хочу обнаружить ряд сил: небольшие силы (минимум около 0,01 г), но и более сильные силы, такие как 0,1 г - 0,15 г.Могу ли я отказаться от гравитации только с гироскопом и магнитометром?
Это устройство будет иметь разные позиции в трехмерном пространстве, поэтому, чтобы обнаружить небольшие силы, я должен знать его угол, чтобы можно было вычесть 1g. Потому что устройство может иметь случайное положение (положение угла).
Что я сделал до сих пор: я использовал MPU6050 и использовал дополнительный фильтр с ускорением. и гироскопа. Это что-то вроде:
agnleX_k+1 = 0.98*(angle_k + deltaT * gyro_k+1) + 0.02*angle_acc_k+1;
angle_acc
угол рассчитывается из Accel. Датчик. Что-то вроде:
arctan(accelX/sqrt(accelX^2 + accelY^2 + accelZ^2 +))
Так что я заинтересован в:
forceX_k+1 = accelX_k+1 - 1g*sin(agnleX_k+1)
Проблема заключается в том:
Если я хочу, чтобы обнаружить небольшие силы приходя в очень быстро, скажем, на accelX_k+1
Я хотел бы обнаружить изменение от 0 до 0,01 г или более, но в очень малом диапазоне времени. Проблема в том, что мой расчетный угол будет также зависеть от этого небольшого и быстрого изменения ускорения. хотя угол не изменился.
Думаю, мне нужно было бы сделать расчет угла независимо от ускорения. Датчик. Могу ли я сделать что-то вроде дополнительного фильтра с гироскопом и магнитометром? Будет ли это работать так же, как мой фильтр, описанный выше, но только с магнитом. датчик вместо этого? Или как вы это сделаете? Я думал об использовании MPU9250.