IROS 2021 Чемпионский алгоритм конкурса HILTI SLAM
Недавно наша команда приняла участие в IROS 2021 The HILTI SLAM Challenge и завоевала первое место. В этой статье представлены эксперименты и размышления по поводу алгоритма, использованного в соревновании. Все права защищены: Megvii Technology. Оригинальная ссылка: https://zhuanlan.zhihu.com/p/420192586
Недавно были объявлены результаты IROS 2021 The HILTI SLAM Challenge, и исследовательский институт Megvii завоевал первое место в этом соревновании. Это уже второй раз, когда исследовательский институт Megvii выигрывает чемпионат на топовой конференции по SLAM, после того как в прошлом году они заняли первое место во всех категориях на CVPR 2020 SLAM Challenge.
2021 HILTI SLAM Challenge — это соревнование в рамках международной конференции по интеллектуальным роботам и системам (IEEE/RSJ International Conference on Intelligent Robots and Systems, далее IROS), организованное совместно Цюрихским политехническим институтом и HILTI. IROS была основана в 1988 году и проводится ежегодно, став одной из крупнейших и наиболее влиятельных конференций по робототехнике в мире.
1 Описание задачи
Одновременная локализация и построение карты (Simultaneous Localization and Mapping, SLAM) — одна из основных способностей, необходимых для навигации и выполнения задач роботами. Хотя в последние годы как геометрические, так и обучаемые методы SLAM достигли значительного прогресса, развертывание точного и надежного SLAM-алгоритма в реальном мире по-прежнему остается сложной задачей. В этом соревновании HILTI представила новый набор данных, состоящий из 12 последовательностей. Каждая последовательность представляет собой разные этапы строительных площадок, такие как подвалы, кампусы, стройплощадки, офисы, лаборатории, открытые парковки и т.д. Команды могли использовать любые датчики из набора данных для разработки SLAM-алгоритма. Организаторы оценивали команды по полноте и точности траекторий, а затем ранжировали их по общему баллу.
2 Разбор победного алгоритма Megvii
В этом соревновании приняли участие 20 команд из университетов и компаний со всего мира. В итоге мы использовали SLAM-алгоритм на основе двойного лидара и IMU, что позволило нам одержать победу в напряженной борьбе.
Мы проанализировали информацию о датчиках, предоставленную в наборе данных соревнования. Визуальный модуль представлял собой пятикамерный модуль от SevenSense, который мог предоставлять богатую текстурную информацию, но был чувствителен к изменениям освещения, особенно на открытых пространствах. В то же время 3D-лидар мог обеспечивать надежные и точные измерения расстояний при любом освещении, что делало его более подходящим для этого набора данных. Кроме того, интеграция пяти камер требовала значительных усилий, и в краткосрочной перспективе было сложно достичь удовлетворительного результата. Поэтому мы выбрали 3D-лидар в качестве основного датчика.
В наборе данных было два лидара: Ouster с углом обзора 360 градусов, обеспечивающий плотные измерения, и Livox MID70 с углом обзора всего 70 градусов, но с дальностью измерения до 260 метров. Использование одного лидара могло привести к деградации данных, и даже с использованием IMU точность могла поддерживаться только в краткосрочной перспективе, что влияло на общую точность локализации. Как показано на рисунке ниже (слева), при использовании только лидара Ouster в открытых пространствах было мало характеристик для локализации; на рисунке справа показано, что при использовании только лидара Livox в определенных наборах данных угол обзора был ограничен. Поэтому мы выбрали решение с двумя лидарами и IMU.
Общая схема выглядит следующим образом: это лазерно-инерционная одометрия на основе фильтрации, которая включает в себя такие этапы, как синхронизация данных, компенсация искажений, предсказание и обновление фильтра, управление картой.
В реальных данных два лидара не были полностью синхронизированы, разница во временных метках составляла 10-20 мс. Поэтому первым шагом было реорганизовать облако точек лидара Livox по временным меткам каждой точки (то есть разделить облако точек Livox) и синхронизировать его с временными метками Ouster. Затем, в течение времени измерения одного кадра лидара Ouster, мы использовали данные IMU для обновления состояния. Обновленные данные состояния позволяли компенсировать искажения облака точек. После этого облако точек Livox, с компенсированными искажениями, преобразовывалось в систему координат Ouster и объединялось с облаком точек Ouster. Этап синхронизации данных был особенно важен, так как он значительно упростил процесс обработки программы.
На этапе обновления фильтра мы использовали модель измерений на основе расстояния от точки до плоскости. Каждая плоскость, соответствующая точке, была получена с помощью поиска ближайших соседей K и метода главных компонент (PCA). После получения оптимизированной позы облако точек текущего кадра преобразовывалось в глобальную систему координат и вставлялось в карту. Поскольку сцены в наборе данных не были слишком большими (максимальная сцена — 100*100 метров), а для повышения эффективности программы мы использовали инкрементное KD-дерево для поддержания глобальной карты. Чтобы сохранить разреженность глобальной карты, только точки, находящиеся на значительном расстоянии от уже существующих точек на карте, могли быть добавлены.
3 Основные моменты
1. Комбинация двух лидаров значительно повысила надежность и точность программы;
2. Фильтр мог в реальном времени оценивать смещение и скорость IMU, что улучшало точность компенсации искажений, а это, в свою очередь, повышало точность локализации и построения карты;
3. Благодаря наличию глобальной карты не требовался модуль замыкания петель, что упростило программу.
Наконец, мы хотим показать карту, построенную с помощью нашего алгоритма:
Список литературы
- Helmberger, Michael, et al. "The Hilti SLAM Challenge Dataset." arXiv preprint arXiv:2109.11316 (2021).
- Xu, Wei, et al. "Fast-lio2: Fast direct lidar-inertial odometry." arXiv preprint arXiv:2107.06829 (2021).
- Zhang, Ji, and Sanjiv Singh. "LOAM: Lidar Odometry and Mapping in Real-time." Robotics: Science and Systems. Vol. 2. No. 9. 2014.
- Hackel, Timo, Jan D. Wegner, and Konrad Schindler. "Fast semantic segmentation of 3D point clouds with strongly varying density." ISPRS annals of the photogrammetry, remote sensing and spatial information sciences 3 (2016): 177-184.
- Cai, Yixi, Wei Xu, and Fu Zhang. "ikd-Tree: An Incremental KD Tree for Robotic Applications." arXiv preprint arXiv:2102.10808 (2021).
- Mourikis, Anastasios I., and Stergios I. Roumeliotis. "A multi-state constraint Kalman filter for vision-aided inertial navigation." Proceedings 2007 IEEE International Conference on Robotics and Automation. IEEE, 2007.