Slam что за программа

Анализ технологии мгновенного позиционирования и построения карты

1. SLAM Обзор

SLAM: Одновременная локализация и картирование, локация в реальном времени и технологии построения карт. Это относится к: робот запускается из неизвестного места в неизвестной среде, определяет свое положение и положение посредством повторного наблюдения характеристик окружающей среды во время движения, а затем строит инкрементальную карту окружающей среды в соответствии с его положением, тем самым достигая одновременного позиционирования и карты. Цель строительства.

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

Как ВКЛЮЧИТЬ МУЗЫКУ в ГОЛОСОВОЙ ЧАТ КС ГО и ДРУГИХ ИГР? ПРОГРАММА SLAM (МУЗЫКА / ЗВУКИ)

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

Ультразвуковое измерение расстояния

Высокая точность измерений, высокая эффективность и производительность не требуют большой обработки данных.

Сильное проникновение под водой и низкая цена

Подражая человеческому мышлению, вы можете получить больше информации,

Цена относительно дорогая, не может быть измерена под водой, а дальномерное стекло недействительно

Низкая точность измерений

Вывод требует много вычислений и не может быть использован в темной комнате

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

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

Understanding SLAM Using Pose Graph Optimization | Autonomous Navigation, Part 3

Давайте посмотрим на области, где технология SLAM играет роль.

Рисунок 1. Области применения SLAM

VR / AR: помощь в усилении визуальных эффектов.Технология SLAM может создать карту с более реалистичными визуальными эффектами, чтобы визуализировать наложенный эффект виртуальных объектов для текущей перспективы, делая ее более реальной без ощущения нарушения. Среди продуктов, представляющих VR / AR, Microsoft Hololens, Google ProjectTango и MagicLeap используют SLAM в качестве метода визуального улучшения.

Поле БПЛА и позиционирование робота и поле навигации: моделирование карты.SLAM может быстро создавать локальные 3D-карты и в сочетании с географической информационной системой (GIS), технологией визуального распознавания объектов, может помочь беспилотникам определять препятствия на пути и автоматически избегать препятствий на пути к плану, а также может помогать роботам выполнять планирование пути, автономное исследование и навигацию И другие задачи. Дрон камеры Hover, который когда-то разбил круг друзей в Соединенных Штатах, использовал технологию SLAM. Подметальные машины Domestic Cobos и Tammy используют алгоритм SLAM в сочетании с методами лидара или камеры, что позволяет подметальной машине эффективно рисовать карты помещений, интеллектуально анализировать и планировать среду подметания, таким образом успешно превращаясь в интеллектуальный навигационный массив.

Читайте также:
Easytuneengineservice что это за программа

Беспилотное вождение: визуальный одометр.Технология SLAM может обеспечивать функцию визуального одометра и интегрироваться с другими методами позиционирования, такими как GPS, для удовлетворения потребностей беспилотного вождения для точного позиционирования. Например, автомобиль Google с автоматическим управлением на основе Lidar Slam, основанный на технологии лидара, и автомобиль Wildcat, автомобиль с автоматическим управлением, модифицированный Mobile Robotics Group из Оксфордского университета за 11 лет, были успешно протестированы.

Во-вторых, структура SLAM

С момента появления концепции SLAM в 1980-х годах и до настоящего времени технология SLAM прошла более чем 30-летнюю историю. Аппаратные средства и алгоритмы, используемые в технологии SLAM, также «идут в ногу со временем», и инфраструктура технологии SLAM постепенно обогащается. С точки зрения аппаратного обеспечения, датчики, используемые в системе SLAM, эволюционировали от раннего сонара до позднего 2D / 3D лидара, к монокулярным и бинокулярным камерам, RGBD, ToF и другим камерам глубины, а также к инерциальным единицам измерения (IMU) и т. Д. Датчик слияния. С точки зрения программных алгоритмов начальные методы на основе фильтров, такие как расширенный фильтр Калмана (EKF), фильтр частиц (PF) и т. Д., Перешли на методы, основанные на оптимизации.

Система SLAM обычно делится на пять модулей. Структура системы показана на рисунке 2, в том числе:

  • Данные датчика: в основном используются для сбора различных типов исходных данных в реальных условиях. Включая данные лазерного сканирования, данные видеоизображения, данные облака точек и т. Д.
  • Визуальный одометр: в основном используется для оценки относительного положения движущихся целей в разное время. В том числе применение алгоритма, таких как сопоставление функций и прямая м робота). Полученная разница должна быть отражена во всех предыдущих замерах особенностей как корректирующий коэффициент – вероятность.

    2) Обновление общего представления о карте мира и траектории робота (Global Optimisation)
    На основе вновь полученных данных производится уточнение текущих представлений о мире – пересчет позиций робота (state estimation), особенностей и их вероятностей. Дополнительно производится поиск замыканий (loop closure – ситуаций, когда робот возвращается в те места где уже побывал). После всех вычислений обновляется общее представление мира – позы робота (state update) и координаты особенностей (landmark update).

    На основе глобальной структуры, хранящей все перемещения робота и представление мира в любой момент времени возможно воссоздать карту миру с траекторией движения робота. Для визуализации (Reconstructing world map) используются сторонние средства к методам SLAM особого отношения не имеющие.

    Методы SLAM

    Популярнейшим методом для решения был EKM – Extended Kalman Filter.
    На каждом шаге у нас есть набор ранее полученных особенностей (landmark) и только что поступившие данные (дальномерные и RGB). На основании новых и предыдущих кадров мы можем определить смещение робота (используя методы визуальной одометрии) и предсказать новую позицию робота.

    С другой стороны, из нового кадра, мы можем выделить местоположение особенностей и вычислить положение робота относительно их. На основе разницы между двумя этими оценками позиций робота обновляются вероятности/веса для всех особенностей и корректируются позы-траектория движения робота. Детальное описание – по ссылкам ниже. В качестве структуры для хранения информации о мире и траектории движения робота – используется разрастающаяся со временем матрица ковариации, содержащая на каждом шаге исчерпывающую информацию о нашем текущем представлении мира. В случае большего числа поз – лучше подойдет particle filter, видео – отличный пример из курса ai-class от Sebastian Thrun.

    Loop closure – обнаружение петлей. Обособлено от задач SLAM стоит вопрос как отслеживать ситуации когда робот возвращается туда, где уже побывал (в литературе это называется loop closure – замыкание, петля). Одно из решений – так называемая корзина “слов” (англ. Bags of Binary Words).

    Каждому кадру ставится в соответствие дескриптор (BRIEF descriptor), вычисляемый на основе визуальных особенностей изображения. Для хранения информации о изображениях, на основе данных для обучения, формируется словарь в виде дерева, содержащий “слова” для представления дескрипторов и их веса (отражающих насколько часто они встречались в наборе изображений для обучения). Для формирования “слова” производится поиск визуальных особенностей на основе данных для тренинга и их последующая группировка (с помощью метода k-среднего). Каждый последующий уровень дерева получается путем повторения данной операции с дескриптором родительского узла. В результате, при анализе ново-поступивших данных производится быстрое (см дистанция Хэмминга) разложение идентификатора текущего кадра в линейную комбинацию узлов дерева, где в роли коэффициентов выступают их веса – вероятности.

    Как уже упоминалось выше, в настоящее время наиболее популярно представление проблемы SLAM в виде графа, где вершины и ребра представляют позицию робота и месторасположение особенностей сцены. iSam – одна из открытых реализаций, построенная по этому принципу.

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

    Узлы-позы и узлы-особенности не могут быть связаны друг с другом напрямую, а только через узлы-факторы. В качестве расширения могут быть использованы узлы-якоря – особенности наблюдаемые разными роботами (одновременно) или особенности которые видит один и тот же робот в течении нескольких независимых путешествий. Ядро системы производит оптимизацию данного графа выравнивая все узлы на основе новых данных. Возможна работа и без особенностей и без узлов-якорей – только на основе результатов визуальной одометрии.

    В настоящее время наиболее быстрые результаты дает TORO (ценою точности вычисления).
    Данный метод определяет конфигурация графа при которой вероятность наблюдаемых особенностей будет максимальна. Подходов к решению подобных задач – видимо не видимо (гуглить по “Sparse Bundle Adjustments”, “Structure from motion”, “Visual SLAM”), в основу TORO лег метод стохастического градиентного спуска – (SGD – stochastic gradient descent). Суть данного метода в последовательной оптимизации всего графа для каждого ограничения (взаимного расположения особенностей и робота). Для объединения данных оптимизации с нескольких ограничений используются специальные коэффициенты для корректировки значений остатка. Ключевое достижение данного метода – представление данных для SGD – в TORO используется дерево параметров в качестве индексов для линейного уравнения поз робота.

    Хочу попробовать поиграться со SLAM – есть ли что-нибудь готовое?

    Если вкратце – нет я не встречал. Свободно доступны различные реализации отдельных компонентов из которых при остром желании (и навыке) можно самостоятельно собрать готовые системы.

    Желающим поиграться с какой-нибудь готовой реализацией можно посоветовать RGBDSLAM. На момент написания – инструкция по сборке устарела и требуется как следует прошерстить раздел http://answers.ros.org/ на предмет каждой ошибки. Гипотетически, если следовать уточнениям в ссылках ниже – и использовать эталонную систему авторов – т.е. 64 разрядную убунту – должно работать. Лично я собрать то ее собрал (на убунте 32), убив пару дней, однако спорадически возникающие сегфолты и пропадающий gui задушил желание поиграться на корню.

    Желающим попытать счастья настоятельно рекомендую ознакомиться:

    1. Ошибки вида can’t locate node, can’t find node – лечатся с помощью http://www.ros.org/wiki/fuerte/Installation/Overlays
    2. Ошибки rosmake:
    1. Во-первых не надо лениться заглядывать в лог файл сборки.
    2. Во-вторых перед сборкой желательно ознакомиться с инструкцией – http://answers.ros.org/question/40059/ros-rgbdslam-fuerte-support/
    3. если не помогает – читать до просветления:
      http://answers.ros.org/question/12708/rgbdslam-installation-problem/

    Возможный результат можно посмотреть тут.

    Из минусов – солидный список зависимостей, не все из которых собираются простым make install (одна unstable версия PCL чего стоит – внимательнее смотрите в cmake, какие компоненты вам действительно нужны).

    Также учтите что для того чтобы завести NVidea toolkit под линуксом – придется немного попотеть: как установить cuda toolkit под ubuntu – http://sn0v.wordpress.com/2012/05/11/installing-cuda-on-ubuntu-12-04/

    Ссылки на реализацию SLAM и связанных с ними компонент

    DBow: Hierarchical bag-of-word library for C++ – описание
    последняя версия DBoW – http://webdiis.unizar.es/~dorian/index.php?p=32

    Еще одна из вариаций SLAM-backend (на этапе оптимизации позволяет изменять структуру графа, ускоряя процес оптимизации)
    http://www.tu-chemnitz.de/etit/proaut/forschung/robustSLAM.html.en

    Список api связанных со SLAM имплементированных в библиотеке MRPT – Mobile Robot Programming Toolkit:
    http://www.mrpt.org/List_of_SLAM_algorithms

    UPDATE от 11.01.2012
    Наткнулся в запасниках еще на некоторые материалы. Добавляю.

    Вопрос новичка – что такое SLAM – и развернутые ответы “для начинающих”:
    http://www.mrpt.org/node/441
    Описание свеженькой (от 2012 года) книжки про SLAM
    Оглавление интересное.
    http://www.mrpt.org/SLAM_book_2012

    Karto – коммерческая версия SLAM (есть триалка и опенсурсный вариант с последним коммитом от 2010 года)
    в описании проскальзывали утверждения о том что работает лучше чем iSam
    http://www.kartorobotics.com
    http://www.willowgarage.com/blog/2010/04/19/karto-mapping-now-open-source-and-coderosorg

    Описание еще одного метода loop closing:
    http://jochen.sprickerhof.de/software/elch/
    по ссылке на странице можно зайти на сайт опенсурсного продукта – The 3D Toolkit – в котором кроме SLAM есть средства для просмотра облака точек, определения поверхностей и т.п.

    update 03102013
    Презентация с roboconf.ru:
    “SLAM – путеводные крошки в мире людей” SLAM – Intro with algo and libs

    зы уточнения/поправки рьяно приветствуются

    • computer vision, kinect, programming, SLAM, компьютерное зрение, о мой моск, программирование

    2 pings

    • features — локальные особенности — за что зацепиться взгляду | Мои IT-заметки on May 3, 2013 at 9:10 am
    • #

    […] (recognition) объектов, 3d-реконструкция и навигация (SLAM и loop-closure). Используя характерные точки можно […]

    • Anonymous on December 4, 2013 at 9:50 pm
    • #

    Источник: my-it-notes.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru