Я использую датчик, который представляет собой акселерометр + гироскоп + магнито (все в одном чипе).Мне было интересно, если кто-нибудь знает библиотеку, которая может помочь мне получить позицию из этих значений.
Я имею в виду, начиная с 0,0 (широта / долгота) и обновляя значения.Если нет библиотеки, я все еще ищу ссылки, чтобы получить подсказки о том, как делать математику.Я видел сообщения типа этот один или этот один, но я не нашел то, что искал.
Спасибо
Если это может кому-нибудь помочь, я нашел именно ту тему, которую искал.Вот оно:
https://lb.raspberrypi.org/forums/viewtopic.php?t=127930
[ИЗД.]
Вот идея:
Алгоритм 2 :
Я нашел два метода, я не знаю, какой из них мог бы быть лучше,
Accroll = atan2( accy / (accy^2 + accz^2) ) Accpitch = atan2( accx / (accx^2 + accz^2) )
источник: http://franciscoraulortega.com/pubs/Algo3DFusionsMems.pdf
Accroll = atan2(accy, accz) Accpitch = atan2( -accx, sqrt(accy^2 + accz^2) )
source: https://www.nxp.com/files-tatic/sensors/doc/app_note/AN3461.pdf page 10
Алгоритм 3
Я думаю, что это должен быть дополнительный фильтр, как это может быть:
Расчет шага и крена с данными гироскопа:
Gyrpitch = gyrox * dt; Gyrroll = gyroy * dt;
Расчет шага и крена после фильтра:
pitch = Gyrpitch * 0.98 + Accpitch * 0.02; roll = Gyrroll * 0.98 + Accroll * 0.02;
Алгоритм 1
XH = mx cos(pitch) + my sin(pitch) sin(roll) + mz sin(pitch) cos(roll) YH = my cos(roll) + mz sin(roll) yaw = atan2(−YH / XH)
где: m: источник данных магнитометра: http://franciscoraulortega.com/pubs/Algo3DFusionsMems.pdf