Мы планируем написать программное обеспечение, которое будет отслеживать положение автомобиля по GPS, мощность сигнала GPS, акселерометр (X, Y, Z) и гироскоп (X, Y, Z) каждые 5 секунд или около того. И отправьте данные на сервер для последующей обработки. Сервер будет определять, какие дороги покрыты автомобилем. Так что это не обработка в реальном времени. Это может произойти в серверной части (за ночь, как пакетный процесс)
Когда сигнал GPS пропадает, скажем, на 30 секунд. Постобработка должна угадать широту и долготу, используя данные других датчиков, записанные в то же время. Поэтому я ищу решение для определения скорости или пройденного расстояния с помощью датчиков акселерометра и гироскопа.
Клиентом может быть любое устройство Android или устройство Windows ce. Сервер постобработки просто должен обработать данные, которые отправляются в CSV или любом другом формате.
Я нашел несколько статей и официальных документов об инерциальной системе навигации и других алгоритмах. И попробовал реализовать некоторые из них. Или есть другая лучшая формула, подобная той, которую я нашел ниже.
vel_new = vel_old + ( acc_old + ( (acc_new - acc_old ) / 2.0 ) ) * SAMPLING_TIME;
РЕДАКТИРОВАТЬ: В дополнение ко всем данным датчиков у меня также есть все дороги конкретной карты города, которые меня интересуют, в моей базе данных, хранящейся как sqlgeography. Таким образом, с приблизительной позицией, которую я мог найти, я пытался найти ближайшую дорогу, по которой они могли бы пройти или повернуть.