С SLAM общаюсь уже 3 года с самого начала.От 2D лазерного SLAM до 3D Laser SLAM, а потом и до визуального SLAM контакты есть.Теперь кратко разберу функции и способы реализации каждого модуля SLAM, начиная с этой серии статей, на роль генерального лидера.
1 Что такое СЛАМ
Китайский перевод SLAM (одновременная локализация и отображение) означает одновременную локализацию и построение карты. Есть две цели: одна — определить местонахождение, а другая — составить карту окружающей среды. Эти две задачи взаимозависимы, и эту проблему можно решить, только решая ее одновременно.
Почему ее нужно решать одновременно?
Люди воспринимают окружающую среду через глаза, через осязание рук и других конечностей, а человеческий мозг автоматически строит модель окружающей среды (построение карты), поэтому люди могут доставать такие предметы, как чашки с водой, осязанием с закрытыми глазами. В то же время люди могут знать, что их руки находятся перед чашкой с водой, благодаря восприятию глаз (должность), вы можете коснуться стакана с водой, снова потянувшись вперед, поэтому, когда люди смотрят на стакан с водой, почти каждый может точно получить стакан с водой.
То же самое верно и для роботов, желающих перемещаться по комнате. Во-первых, карта окружающей среды определяется такими датчиками, как лидар и камеры (построение карты), когда робот пройдет вперед 1 метр, окружающая среда будет встроена в карту, и карта должна быть точно размещена в соответствующем положении ранее построенной карты (должность).
должность, заключается в определении положения робота на текущей карте путем сопоставления информации об окружающей среде, воспринимаемой текущим датчиком, с построенной картой окружающей среды.Только когда карта является точной, позиционирование может быть точным.
построение карты, Создавая информацию об окружающей среде, воспринимаемую текущим датчиком, в карту, карта в это время должна быть помещена в текущее положение робота, поэтому только когда позиционирование является точным, построенная карта может соответствовать реальной среде. .
Следовательно, позиционирование и построение карты взаимозависимы и должны решаться одновременно, чтобы построить хорошую карту.
2 Какова цель или применение SLAM
Лично я считаю, что самое большое применение SLAM — это создание карты.Благодаря обработке SLAM можно получить карту, которую можно использовать позже. Поскольку сам SLAM включает позиционирование, когда карта не сохраняется, SLAM также можно использовать в качестве алгоритма позиционирования.
- Двумерная карта сетки, построенная с помощью двумерного лазерного SLAM, может использоваться для позиционирования и навигации робота.
- Трехмерная карта облака точек, построенная с помощью 3D Laser SLAM, может использоваться для позиционирования и навигации беспилотных транспортных средств, а также для трехмерного моделирования.
- Карта разреженного облака точек, построенная визуальным SLAM, может использоваться для локализации.
- Карты полуплотного и плотного облака точек, построенные с помощью визуального SLAM, можно использовать для позиционирования и навигации, а также дляVR-полеИнтерактивную сцену также можно использовать для 3D-моделирования.
На приведенном выше рисунке показана 2D-карта сетки, построенная с помощью 2D-лазерного SLAM.
На приведенном выше рисунке показана трехмерная карта облака точек, построенная с помощью трехмерного лазерного SLAM.
На приведенном выше рисунке показана карта разреженного облака точек, построенная с помощью визуального SLAM (ORB-SLAM2).
На приведенном выше рисунке показано построение карты плотного облака точек с визуальным SLAM.
3 Три модуля SLAM
Как мы все знаем, на данном этапе структура SLAM в целом была исправлена, которая разделена на внешний модуль одометра, внутренний модуль оптимизации и модуль обнаружения обратной связи.
Далее я кратко опишу функции этих трех модулей и способы реализации каждого модуля.
3.1 Передний одометр
3.1.1 Что такое передний одометр
На колесах робота есть датчики, называемые энкодерами, которые измеряют расстояние, пройденное колесом. Передний одометр также имеет ту же цель, которая заключается в измерении того, как далеко робот прошел от начала до настоящего времени, относительного расстояния и относительного положения от начального положения (поза).
3.1.2 Как это реализовать
Для лазерного SLAM частота лидара обычно составляет от 10 Гц до 40 Гц. Мне нужно только определить, какое расстояние прошел робот за интервал времени между первым кадром данных радара и вторым кадром данных радара, а затем определить, какое расстояние прошел робот за интервал времени между вторым и третьим кадрами данных радара. данные радара (трансформация позы) и так далее, мы всегда можем определить, как далеко прошел робот, и определить относительную позу между текущей позой робота и начальным моментом.
Для визуального SLAM данные камеры представляют собой покадровое изображение, которое может быть цветным изображением RGB или цветным изображением плюс изображение глубины. Общий метод обработки состоит в том, чтобы извлечь характерные точки на изображении, а затем определить значения координат характерных точек в пространстве.Через эти характерные точки определить преобразование позы робота между двумя кадрами изображений, а затем определить изображение второго кадра и изображение третьего кадра Преобразование позы между изображениями и т. д. может определить относительную позу между текущей позой робота и начальным моментом.
Вышеупомянутый процесс определяет преобразование позы робота относительно начального момента и относительно поступления каждого кадра данных Этот процесс является процессом позиционирования.
3.1.3 Конкретный метод реализации
Для лазерного SLAM, чтобы найти преобразование положения из предыдущего кадра радиолокационных данных в текущий кадр радиолокационных данных, этот процесс обычно называетсясопоставление сканированияпроцесс. Сканирование — это данные радара, которые определяются путем сопоставления данных предыдущего кадра для определения положения и преобразования ориентации.
Текущие методы сопоставления сканирования:
- сканирование к сканированию: сопоставление данных радара с данными радара
- сканирование на карту: сопоставление данных радара с картой
- сканирование на подкарту: сопоставление данных радара с подкартами
- карта на карту: карта на карту
Для визуального SLAM получается преобразование позы из изображения предыдущего кадра в изображение текущего кадра Этот процесс обычно называютBA(Bundle Adjustment), Есть много способов решить BA.Поскольку я мало что знаю о визуальном SLAM в настоящее время, я не буду объяснять здесь больше.
3.2 Внутренняя оптимизация
3.2.1 Зачем нужна внутренняя оптимизация?
Ни одометр, полученный с помощью энкодера, ни одометр, рассчитанный передним концом, не являются полностью точными.
Даже если выбранный энкодер очень точен, при пробуксовке колеса на ровной поверхности (данные больше фактического значения) или при прохождении колеса через яму или мешок с землей измеренное значение одометра не будет соответствовать фактическому значению. . . .
Точно так же, поскольку все датчики имеют ошибки, значение счетчика пробега, рассчитанное передним одометром, также должно иметь ошибки, и эта ошибка будет продолжать увеличиваться со временем.
Это приведет к тому, что положение робота будет все больше и больше отличаться от фактического положения, и в конечном итоге положение робота не будет соответствовать реальному положению, и хорошую карту построить будет невозможно.
3.2.2 Что такое внутренняя оптимизация
Поскольку передний одометр накапливает ошибку, есть ли способ уменьшить или даже устранить эту накопленную ошибку?
Это роль внутренней оптимизации.Благодаря структуре графа различные позы робота и сгенерированные данные карты совместно оптимизируются.Благодаря решению оптимизации все ошибки равномерно распределяются между каждой позой робота и каждыми данными карты. , когда мой процесс оптимизации совершенен, эти кумулятивные ошибки могут быть сведены к пренебрежимо малому уровню.
Для лазерного SLAM и визуального SLAM их внутренние процессы оптимизации аналогичны, и все они используют графовые структуры для уменьшения ошибок, но из-за разных типов данных датчиков конкретные методы реализации не совсем одинаковы.
3.3 Обнаружение петли
Мы можем уменьшить позу с помощью внутренней оптимизации Итак, есть ли более сильное ограничение для ограничения оптимизированного уравнения?
Ответ определенно есть, т.обнаружение петли.
Когда мы, люди, начинаем с восточных ворот парка, поворачиваемся на 10 минут, а затем возвращаемся к восточным воротам, мы можем легко сказать, что это то место, куда я пришел раньше, и это те же восточные ворота, что и предыдущие восточные ворота.
Однако для робота он тоже стартовал от восточных ворот и шел 10 минут. Поскольку поза робота получается путем постепенного накопления, в этом расчете есть кумулятивная ошибка.Когда робот снова возвращается к восточным воротам, возможно, что робот думает, что он все еще находится в 20 метрах от восточных ворот. Эти 20 метров — отклонение робота из-за длительного позиционирования.
Мы можем с помощью некоторых средств сравнить информацию об окружающей среде, воспринимаемую текущим датчиком, с картой, ранее построенной роботом.Если степень совпадения очень высока, мы считаем, что робот прибыл в то место, где он был раньше, должно быть таким же как и предыдущее.При прохождении этой локации дистанция не слишком большая(ограничение).
Мы можем ввести это ограничение в процесс внутренней оптимизации как новое и очень сильное ограничение.Благодаря этому сильному ограничению, когда оптимизация будет завершена, ошибка может быть в значительной степени устранена.
4 Разработка SLAM
4.1 Высокоточные карты
Это находится в центре внимания текущих академических исследований, и большая работа ведется над тем, как создавать более точные и точные карты.
4.2 Картирование в долгосрочной среде
Среда, с которой люди вступают в контакт, никогда не бывает статической, но каждый раз, когда мы выполняем SLAM, сохраненная карта больше не меняется Как обновить предыдущую карту во время выполнения навигационной задачи, не занимая при этом ресурсы? Уже есть несколько компаний, которые могут это сделать.
4.3 Уменьшить количество вычислений
Текущие алгоритмы SLAM имеют значительный объем вычислений, и если построение плотных карт можно запустить в режиме реального времени, поле VR будет поднято на новый пик. Вот почему я обратил внимание на это поле VR.
4.4 Семантический SLAM
Люди могут воспринимать окружающую среду глазами и в то же время распознавать названия и типы объектов, которые они видят. Семантический SLAM может сделать то же самое, и карты среды с семантическими метками будут более полезными для навигации.
4.5 Восприятие вместо SLAM
Когда способность робота к пониманию постепенно улучшается, нам больше не нужно просто строить карту. То, что видит робот, может быть картой. Он может воспринимать окружающую среду, как человек, и может определять свое собственное положение, поэтому в этом больше нет необходимости. чтобы сохранить карту.
Суммировать
Эта статья кратко объясняет лазерный SLAM и визуальный SLAM, которые я понимаю.Из-за ограниченного познания, пожалуйста, простите меня, если есть какие-либо ошибки, и дайте мне знать в комментариях, большое спасибо.
В следующей статье будут кратко представлены основные направления и функции, которые будут реализованы в этой серии статей.
Статья будет вОфициальный аккаунт: Создайте SLAM с нуляСинхронизированное обновление, приглашаем всех обратить внимание.