В этой статье мы предлагаем решение с использованием одного устройства Livox Horizon (со встроенным IMU) для создания надежного лидар-инерциального одометра, который надежно работает в различных экстремальных сценариях и обеспечивает высокоточную локализацию и результаты картирования: пересечь городские заторы, пересечь шоссе, реализовать надежное позиционирование в темном туннеле.
Благодаря уникальной технологии твердотельного сканирования с вращающимся зеркалом и исключительно конкурентному соотношению цены и производительности Livox полностью изменила представление отрасли о том, что высокопроизводительные LiDAR-сенсоры обязательно должны быть дорогими. Чтобы помочь пользователям быстро внедрить эту новую LiDAR-технологию, Livox представила ряд сенсорных алгоритмов, адаптированных для раскрытия высокой производительности LiDAR Livox.
В то же время мы заметили, что некоторые пользователи сталкиваются с трудностями при применении устройства в высокоскоростных сценариях SLAM. В этой статье мы предлагаем решение: использовать один модуль Livox Horizon со встроенным IMU для создания устойчивого LiDAR-инерциального одометра, который стабильно работает в различных экстремальных сценариях и обеспечивает высокоточную локализацию и картографирование.

Рисунок 1: система движется через 4-километровый тоннель со скоростью 80 км/ч

Рисунок 2: LiDAR Livox Horizon, направленный вперёд и установленный на крыше демонстрационного автомобиля
Видео 1: SLAM при движении демонстрационного автомобиля через тоннель (с сравнением с точки зрения камеры)
Ниже приведено описание системы с открытым исходным кодом.
Система состоит из двух модулей: ScanRegistration и PoseEstimation.
ScanRegistration отвечает за фильтрацию динамических объектов из исходного облака точек и извлечение признаков для оценки позы.
В модуле PoseEstimation основной поток выполняет инициализацию IMU и оценку состояния, а другой поток создаёт карту признаков и управляет ею.

Рисунок 3: рабочий процесс системы
01.
Фильтрация динамических объектов_ScanRegistration
В городском сценарии может появляться множество динамических объектов, например автомобили и пешеходы, что может влиять на устойчивость и точность локализации LiDAR или камеры. Поэтому для быстрой фильтрации динамических объектов требуется метод сегментации облака точек.
Мы используем метод евклидовой кластеризации, чтобы разделить исходное облако точек на точки земли (синие), фоновые точки (зелёные) и точки переднего плана (жёлтые), как показано ниже. Точки переднего плана (жёлтые) считаются динамическими объектами и поэтому отфильтровываются в процессе извлечения признаков. После фильтрации система может сохранять высокую устойчивость в динамических сценариях, а также точно локализоваться и строить карты даже тогда, когда поле зрения LiDAR в значительной степени закрыто динамическим объектом.

Рисунок 4: иллюстрация сегментации облака точек
Синие точки: земля; зелёные точки: фон; жёлтые точки: динамические объекты на переднем плане.
02.
Извлечение признаков_ScanRegistration
Здесь нужен метод извлечения признаков, который распределяет признаки как можно шире и равномернее по шести степеням свободы, создавая больше ограничений для стабилизации системы. Если это достигается, можно предотвратить деградацию системы по отдельным степеням свободы даже тогда, когда в открытом пространстве извлечено лишь небольшое число признаков.
Кроме того, нерегулярные признаки также могут служить полезными ограничениями в сценариях с малым количеством признаков. Мы выделяем такие нерегулярные признаки в отдельную категорию для сопоставления облаков точек и поддержки карты.

Рисунок 5: рабочий процесс извлечения признаков
Как показано ниже, признаки можно разделить на три типа по их локальным геометрическим свойствам: угловые признаки, поверхностные признаки и нерегулярные признаки. Сначала точки с большой кривизной и изолированные точки на каждой линии сканирования извлекаются как угловые признаки. Затем метод PCA используется для различения поверхностных и нерегулярных признаков. Для извлечения признаков на разных расстояниях следует применять разные пороги, чтобы признаки распределялись в пространстве максимально равномерно.

Рисунок 6: иллюстрация признаков
Зелёные точки — угловые признаки, розовые точки — признаки поверхности, синие точки — нерегулярные признаки.
03.
Инициализация IMU_PoseEstimation
В модуле PoseEstimation система может использовать предынтеграцию IMU или модель равномерного движения — в зависимости от режима слияния — чтобы удалить искажения из-за собственного движения из облака точек и выполнить инициализацию IMU. Если инициализация успешна, система переключается из режима LO в режим LIO; в противном случае она продолжает работать в режиме LO и пытается выполнить инициализацию.
В режиме LO мы используем метод регистрации облака точек «кадр-к-модели» для оценки позы датчика. Опираясь на принципы алгоритмов ORB-SLAM3, мы адаптируем оценивание Maximum A Posteriori для инициализации IMU, чтобы одновременно оценивать смещение IMU, скорость и направление гравитации. Это учитывает неопределённость самого датчика и позволяет получить оптимальное решение на основе Maximum A Posteriori.
После завершения инициализации система запускает тесно связанный модуль слияния сенсоров на основе скользящих окон, чтобы оптимизировать позу, скорость и смещение IMU в окне.
Тем временем система использует дополнительный поток для параллельного создания и поддержания глобальной карты.
04.
Тестирование устойчивости_Вся система
Мы провели многочисленные испытания в различных городских сценариях, где система показала высокую устойчивость. Она смогла нормально работать в ряде экстремальных сценариев.
Например, описанная выше тоннельная среда склонна к лазерной деградации для SLAM из-за однообразного характера сцены. Наша система способна пройти через 4-километровый тоннель без деградации главным образом благодаря большой дальности и высокой точности измерений Livox Horizon. Даже при поле зрения вперёд всего 81,7° она может получать множество данных из сцены, включая случайно расположенные дорожные знаки в тоннеле и борозды на стенах. Тесная связка этих данных с IMU выступает ограничением и защитой для направлений, склонных к деградации.
Лазерная деградация чаще возникает на междугородних автомагистралях из-за открытого пространства, малого количества структурных объектов — что даёт меньше полезных данных — а также более высокой скорости движения автомобилей. Однако выбранный нами метод извлечения признаков обеспечивает полноценное использование различных данных, включая фонарные столбы, дорожные знаки и растительность. Соответствующие признаки создают ограничения для направления движения вперёд, позволяя системе работать с исключительной устойчивостью даже на междугородних автомагистралях.
Как показано в видео ниже, мы проехали более 10 км городских дорог: мимо плотной высотной застройки, через жилые районы, под эстакадами, по шоссе, через тоннели и лесные участки. Мы несколько раз попадали в пробки, где нас постоянно окружали движущиеся автомобили. Система работала хорошо и показала высокую устойчивость, без отказов в различных экстремальных сценариях, а также продемонстрировала высокий уровень точности. Карта облака точек корректно работала после привязки к Google Maps.
Видео 2: SLAM при движении демонстрационного автомобиля по междугородней автомагистрали (с сравнением с точки зрения камеры)
В городском сценарии может появляться большое количество динамических объектов. Особенно это характерно для пробок, где множество движущихся автомобилей могут перекрывать обзор LiDAR и создавать смещение в оценке позы. Наша система фильтрует динамические объекты и значительно минимизирует их влияние, позволяя устройству хорошо реагировать на любые сверхдинамичные городские сценарии.
Видео 3: SLAM при движении демонстрационного автомобиля в городском сценарии (с сравнением с точки зрения камеры)
05.
Заключение
Стремясь к высокой устойчивости, мы разработали автомобильный LiDAR-инерциальный одометр, подходящий для использования на улице. Отличная производительность Livox Horizon делает его оптимальной аппаратной платформой для развёртывания наших алгоритмов и достижения высокой устойчивости в различных экстремальных сценариях. Несмотря на использование только одного Livox Horizon со встроенным шестикосным IMU, система смогла показать замечательные результаты. Чтобы помочь пользователям лучше понять и использовать наш LiDAR-датчик, мы опубликовали на GitHub исходный код этой системы вместе с подробными инструкциями пользователя.
Исходный код на GitHub:https://github.com/Livox-SDK/LIO-Livox