Как алгоритмы SLAM справляются с изменяющейся средой?

13

Я делаю некоторые основы для проекта, и у меня есть вопрос о текущем состоянии техники SLAM.

Когда устройство, оборудованное SLAM, обнаруживает объект, позиция этого объекта сохраняется. Если вы посмотрите на облако точек, которое генерирует устройство, вы увидите точки для этого объекта, и модели, сгенерированные из него, будут включать геометрию здесь.

Если объект помещен в ранее пустое пространство, он обнаруживается и точки добавляются. Последующие модели будут иметь геометрию, описывающую этот новый объект.

Как реагирует устройство, если этот объект удален? Насколько я видел, системы SLAM будут склонны оставлять точки на месте, что приведет к «призрачной» геометрии. Существуют алгоритмы, которые игнорируют одиночные точки, вызванные переходными контактами, но объекты, которые оставались достаточно длинными, чтобы построить твердотельную модель, останутся в памяти устройства. Существуют ли какие-либо системы, способные обнаружить, что ранее занятое пространство теперь пусто?

Анаксимандр
источник
Этот вопрос не имеет ничего общего с машинным обучением.
Джош Вандер Крюк
Возможно нет; Я не был уверен на 100%, какие теги подойдут. Приложение, которое я имею в виду, похоже, подходит, но, возможно, без этого контекста оно менее применимо ...
anaximander

Ответы:

5

Это очень многое зависит. Поскольку SLAM - это проблема (или, по крайней мере, методика), а не решение, нет определенного алгоритма SLAM. Семантически, вы должны решить, что происходит на «карте» среды, и это определяет, как ваш алгоритм должен обрабатывать переходные (то есть движущиеся) сигналы. Но это отступление.

Постоянные карты:

Постоянные карты должны содержать достаточно информации, чтобы локализовать себя относительно известной геометрии. Обычно используется в зданиях. Типично для человека. Смотрите работы Уиллоу-Гараж. или что-нибудь Трун в своем довольно известном учебнике. Если вы потеряете эту карту, вам придется снова ее строить.

  1. Удаление объектов. Да, объект появится на статической карте на некоторое время. Если не будет предпринято никаких мер для удаления ранее обнаруженных объектов, оно будет сохраняться. Типичное двухмерное сеточное представление будет использовать каждую ячейку сетки для представления вероятности объекта, поэтому со временем объект будет «исчезать».

  2. Добавление объектов. То же, что и выше.

Местные карты:

В действительности SLAM обычно используется для локализации робота во время его движения, и карта не сохраняется постоянно (или она сохраняется постоянно, но используются только самые близкие объекты Y). Локальные карты - это все, что нужно знать роботу, чтобы определить, как он двигался за последние X минут, где X зависит от приложения. Если вы потеряете карту, вы все равно сможете летать очень хорошо, используя те функции, которые вы видите прямо сейчас.

  1. Пакетные методы, такие как Bundle Adjustment с использованием визуальных функций, являются очень распространенной техникой в ​​этом направлении. Функции могут сохраняться со временем и даже пересматриваться, но движущаяся функция - просто ненадежная функция, и она будет игнорироваться при попытке выяснить, где находится робот.

  2. Visual SLAM именно это. Это дельта-P (изменение в позе), а не алгоритм локализации на основе карты.

  3. Короче говоря, до тех пор, пока большинство вещей в данный момент не движутся, не имеет значения, удаляете ли вы объект, когда робот не «смотрит» на него.

пример

Так сделай это. Когда вы читаете документ SLAM, решите следующее:

  1. Они действительно строят карту?

  2. Они просто хранят список функций и мест?

  3. Если так, какие «особенности» идут на карте? Линии, точки, визуальные особенности?

  4. Эти функции могут двигаться?

  5. Если так, как они могут справиться с этим?

  6. Наконец, шум датчика часто «выглядит» как движущиеся объекты. Как они справляются с шумом датчика? Потому что это часто будет определять, что происходит с движущимися объектами.

Вы получите разные ответы для каждой статьи / автора / книги / приложения. Короче говоря, они обычно опускаются, так как они не помогают роботу локализоваться, и их можно избежать, просто имея несколько планировщиков пути низкого уровня, которые используют только локальную информацию.

Удачи, шлем - огромная тема.

Джош Вандер Хук
источник
Благодарность! Знаете ли вы какие-либо методы, которые отслеживают, где объекты были «приобретены» и «потеряны»? Я смотрю на приложения подмножества алгоритмов типа SLAM, и одной из областей, представляющих интерес, является определение областей «перехода», таких как двери и закрытые углы, из которых могут появляться объекты. Это приложение переворачивает обычную метрику вероятности замирания на своей голове - вместо того, чтобы объекты "исчезали", когда они не видны, ненаблюдаемые области медленно увеличивают свое значение, чтобы обозначить, что мы не знаем, что здесь, потому что мы не смотрели недавно, поэтому мы следует быть осторожным при перемещении в это пространство.
Анаксимандр
Путь сложнее. Единственный способ сделать это правильно - уникально идентифицировать объекты. Мол, поставить на них штрих-код. В противном случае объект A мог бы переместиться в местоположение B, или, может быть, A и B поменялись местами и т. Д. Читайте о семантическом отображении. Вам нужен алгоритм, который может «распознать», что движущиеся вещи на самом деле являются «дверями», которые должны быть прикреплены к «стенам», но только когда я «внутри», но что в любом случае означает «внутри» для робота? Я думаю, что вы должны прочитать больше и доложить.
Джош Вандер Крюк
Да, идея здесь состоит в том, чтобы обойти проблему семантики, просто выделив «это та область, где я продолжаю видеть вещи, которых раньше не было, или перестаю видеть вещи, которые были там». Скорее всего, эта область является своего рода переходом - дверь, коробка, окно, закрытый угол. Кто из тех, с кем мы имеем дело, менее важен; это исключительно для предотвращения столкновений, поэтому мы хотим избежать всех этих областей. Точно так же нам не нужно особенно знать, какой объект есть какой; только то, что есть существенное изменение в общем объеме занимаемого Stuff места.
Анаксимандр
Рассмотрение. Литература. Такая проблема возникает из-за A) Перемещение материала. Б) робот движется. C) Робот теряется. Г) неверные карты. Каждая из этих 4 вещей имеет 4 разных правильных решения. Если вы не справитесь со всеми 4, вы создадите совершенно неправильные карты. Вот почему SLAM не решен, и все еще трудно. Прочтите и вернитесь с конкретными вопросами, связанными с тем, что вы узнали.
Джош Вандер Хук
1
Это то, что я делаю; чем больше я читаю, тем длиннее становится мой список вещей для чтения! Это был первый из многих вопросов, которые подняло мое чтение. Извиняюсь за расширение вопроса в комментариях; Я не получил большого ответа, и SLAM - такая огромная тема ... вы, казалось, знали, о чем говорите, поэтому я надеялся, что смогу получить несколько указателей. У меня есть семантические картографические документы в моем списке, но есть несколько других, которые мне нужно прочитать как основание для этого ... В любом случае, я думаю, что сейчас вернемся к чтению.
Анаксимандр