К сожалению, если вы просто используете данные акселерометра и гироскопа, то, как правило, со временем ваши данные будут немного смещаться. Какие еще датчики вы используете? Есть ли у вас доступ к данным GPS? И у вас есть математическая модель движения, которое, как вы ожидаете, будет у смартфона ниже go?
Тем не менее, если вы застряли в IMU, то существует огромное множество фильтров, которые дадут Вы считаете, что это лучше, чем простая интеграция. Самым простым из них, вероятно, является Фильтр Мэгвика , который прост в реализации и просто объединяет данные линейного акселерометра и гироскопа c. Важным выводом здесь является то, что данные датчика гироскопа c преобразуются и обновляются как кватернионы.
Этот учебник на самом деле дает довольно хороший обзор математической модели IMU и несколько фильтров, которые вы можете проверить. Самым сложным является Фильтр Калмана и его разновидности, такие как Неароматизированный Фильтр Калмана , они могут быть сложными для настройки, но в целом дают хорошую производительность.
Извините, что есть не простой ответ на ваш вопрос. Но вы задаете широкий вопрос, и ответ сильно зависит от вашего заявления. Но я бы порекомендовал поиграть с фильтрами Madgwick или Complementary, перечисленными в этом руководстве, они довольно просты и могут дать вам быстрое улучшение по сравнению с вашими первоначальными оценками.