Имели ли LiDAR и IMU право быть объединены во времени?
Читая статьи и обсуждения о SLAM, я часто встречал упоминания дрейфа IMU, нестабильной траектории и ошибок, причину которых сложно найти.
Обычно проверяют bias IMU, калибровку, параметры регистрации и качество датчиков. У меня появилась другая гипотеза: а что, если часть проблем возникает раньше — при временном объединении данных?
Так появился мой исследовательский проект Causal-SLAM.
LiDAR-скан собирается не мгновенно, а за определённый промежуток времени. Чтобы правильно учесть движение сенсора, нужны данные IMU, покрывающие весь этот интервал. Если измерений не хватает, внутри есть разрывы или время точек LiDAR интерпретируется неправильно, SLAM может получить формально корректные, но фактически несовместимые данные.
Проект проверяет временные окна LiDAR, покрытие их данными IMU, пропуски, перестановку сообщений, нестабильность периодов и доступность TF. Последнее время я прогонял эту идею на открытых датасетах. Некоторые оказались почти идеальными, в других не было времени отдельных точек или подходящего потока IMU. Отдельной задачей стала интерпретация полей t и timestamp, которые у разных LiDAR могут означать совершенно разное.
Пока я не утверждаю, что проект решает проблему дрейфа. Следующий этап — контролируемо повреждать данные: удалять часть IMU, добавлять временные смещения и менять порядок сообщений, а затем смотреть, как это влияет на SLAM.
Буду публиковать результаты по мере экспериментов — в том числе если гипотеза подтвердится только частично.
Проект веду открыто, код и текущие результаты — в GitHub