Введение в SLAM
Докладчик: Агафонов Владислав
SLAM 2
Что такое Robot Mapping?
Robot – устройство которое движется в некоторой среде
Mapping – моделирование некоторой окружающей среды
SLAM 3
Терминология
STATE ESTIMATION
LOCALIZATION
MAPPING
SLAM
NAVIGATION
SLAM 4
Что такое SLAM?
SLAM (Simultaneous Localization and Mapping) – одновременное вычисление позиции робота и построение карты окружения
Localization – обнаружение позиции робота
Mapping – построение карты окружения
SLAM 5
Пример локализации
• Обнаружение позиции робота по данным ориентирам (landmarks)
SLAM 6
Пример построения карты
• Запоминание позиций ориентиров относительно позиций робота
SLAM 7
Пример SLAM
• Одновременное вычисление позиции робота и построение карты окружения
SLAM 8
Парадокс SLAM
• Карта окружения необходима для локализации
• Точная локализация нужна для построения карты
SLAM 9
Актуальность SLAM
• Рассматривается как фундаментальная задача для создания автономных роботов
• SLAM - базовый метод для большинства навигационных систем
SLAM 10
Применение SLAM
• SLAM используется для навигации управляемых и автономных роботов в помещении, на улице, в воздухе и под водой
Примеры:
• Робот пылесос, газонокосилка
• Видеонаблюдение на БПЛА
• Мониторинг подводных рифов, шахт
SLAM 11
Видео
SLAM 12
Постановка задачи SLAM
Дано:
• Управляющие сигналы 𝑢1:𝑇 = 𝑢1, 𝑢2, … , 𝑢𝑇
• Наблюдения 𝑧1:𝑇 = *𝑧1, 𝑧2, … , 𝑧𝑇+
Необходимо получить:
• Карту окружения 𝑚
• Путь робота 𝑥0:𝑇 = *𝑥0, 𝑥1, … , 𝑥𝑇+
SLAM 13
Вероятностный подход
• Неопределенность в оценке движения робота и наблюдаемых ориентирах
• Использование теории вероятности для явного представления неопределенности
Робот точно здесь Робот где-то здесь
SLAM 14
Вероятностный подход
Вероятностная оценка точности пути пройденного роботом и построенной карты
Место для формулы. 𝑃 𝑥0:𝑇 , 𝑚 𝑧1:𝑇,𝑢1:𝑇)
SLAM 15
Графическое представление
Место для формулы.
SLAM 16
Offline SLAM и Online SLAM
Место для формулы.
Offline SLAM оценивает весь путь
𝑃 𝑥0:𝑇 , 𝑚 𝑧1:𝑇,𝑢1:𝑇)
Online SLAM оценивает только последнюю позицию робота
𝑃 𝑥𝑡, 𝑚 𝑧1:𝑡,𝑢1:𝑡)
SLAM 17
Графическое представление Online SLAM
Место для формулы.
SLAM 18
Online SLAM
Место для формулы. 𝑃 𝑥𝑡, 𝑚 𝑧1:𝑡,𝑢1:𝑡)=
… 𝑝 𝑥0:𝑡 −1, 𝑚 𝑧1:𝑡 −1, 𝑢1:𝑡 −1 𝑑𝑥𝑡−1𝑥𝑡 −1𝑥0…𝑑𝑥0
Online SLAM интегрирует распределения вероятности состояний по всем предыдущим итерациям
SLAM 19
Почему SLAM сложная задача?
Место для формулы.
• Путь робота и карта окружения неизвестны
• Локализация робота и оценка карты коррелируют
• Ложное сопоставление ориентиров ведет к ошибкам
SLAM 20
Разновидности SLAM
• Volumetric Feature-based
• Статическое окружение Динамическое окружение
• Активный SLAM Пассивный SLAM
• Один робот Несколько роботов
SLAM 21
SLAM Заметки
• На данный момент большое количество различных методов решения предложено
• Большинство робототехнических конференций имеют SLAM секции
• Очень много методов SLAM реализуют вероятностный подход
SLAM 22
Основные парадигмы
• Фильтр Калмана
• Многочастичный фильтр
• Графовые алгоритмы
SLAM 23
Фильтр Калмана
SLAM 24
Фильтр Калмана
Предсказание по модели 𝑥𝑘+1 = 𝑥𝑘 + 𝑢𝑘 + ξ𝑘
Показания сенсоров 𝑧𝑘 = 𝑥𝑘 + η𝑘
𝐸η𝑘 = 𝐸ξ𝑘 = 0
Баланс между показанием сенсоров и то что ожидали увидеть
𝑥𝑘+1 opt
= 𝐾𝑧𝑘+1 + (1 − 𝐾)(𝑥𝑘 opt
+ 𝑢𝑘)
SLAM 25
Фильтр Калмана
Минимизация функции ошибки: 𝑒𝑘+1= 𝑥𝑘+1 − 𝑥𝑘+1𝑜𝑝𝑡
𝑒𝑘+1 = 1 − 𝐾 𝑒𝑘 + ξ𝑘 − Kη𝑘+1
Ошибка как положительная так и отрицательная
𝐸 𝑒𝑘+12 → 𝑚𝑖𝑛
𝐸 𝑒𝑘+12 = 1 − 𝐾 2 𝐸𝑒𝑘
2 + σξ2 + 𝐾2ση
2
𝐾𝑘+1 =𝐸𝑒𝑘
2 + σξ2
𝐸𝑒𝑘2 + σξ
2 + ση2
SLAM 26
Практика
1) Собрать и посмотреть библиотеку ORB SLAM
https://github.com/raulmur/ORB_SLAM2
2) Переделать ее для работы с web камерой
www.singularis-lab.com