1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lianbo2006-ORB_SLAM2_Microservice

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ORB-SLAM2

Авторы: Raul Mur-Artal, Juan D. Tardos, J. M. M. Montiel и Dorian Galvez-Lopez (DBoW2).

13 января 2017 года: теперь поддерживаются OpenCV 3 и Eigen 3.3.

22 декабря 2016 года: добавлена AR-демонстрация (см. раздел 7).

ORB-SLAM2 — это библиотека SLAM в реальном времени для камер Monocular, Stereo и RGB-D, которая вычисляет траекторию камеры и разреженную трёхмерную реконструкцию (в случае стерео и RGB-D с истинным масштабом). Она способна обнаруживать петли и повторно локализовать камеру в реальном времени. Мы предоставляем примеры для запуска системы SLAM на наборе данных KITTI в качестве стерео или монокулярного, в наборе данных TUM в качестве RGB-D или монокулярного и в наборе данных EuRoC в качестве стерео или монокулярного. Мы также предоставляем узел ROS для обработки прямых монокулярных, стереоскопических или RGB-D потоков. Библиотеку можно скомпилировать без ROS. ORB-SLAM2 предоставляет графический интерфейс для переключения между режимом SLAM и режимом локализации, см. раздел 9 этого документа.

Связанные публикации:

[Монокулярный] Рауль Мур-Арталь, Дж. М. М. Монтиель и Хуан Д. Тардос. ORB-SLAM: универсальная и точная монокулярная система SLAM. IEEE Transactions on Robotics, том. 31, № 5, стр. 1147–1163, 2015. (Премия IEEE Transactions on Robotics за лучшую статью 2015 года). PDF.

[Стерео и RGB-D] Рауль Мур-Арталь и Хуан Д. Тардос. ORB-SLAM2: открытая система SLAM для монокулярных, стереозрительных и RGB-D камер. IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255–1262, 2017. PDF.

[DBoW2 Place Recognizer] Дориан Гальвес-Лопес и Хуан Д. Тардос. Мешки бинарных слов для быстрого распознавания мест в последовательностях изображений. IEEE Transactions on Robotics, vol. 28, no. 5, pp. 1188–1197, 2012. PDF

SLAM микросервисов

Установка

  1. Установите исходные зависимости ORB-SLAM2

  2. В ~/.bashrc добавьте объявление Package, например

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/rain/workspace/ORB_SLAM2
  1. Скопируйте текущий каталог исходного кода mnorbslam_msgs в рабочую область catkin для компиляции.

Запуск

Запустите три узла отдельно на трёх портах, настройте соответствующие пути в соответствии со своим каталогом

$ rosrun ORB_SLAM2 LocalMapping Vocabulary/ORBvoc.bin
$ rosrun ORB_SLAM2 LoopClosing Vocabulary/ORBvoc.bin
$ rosrun ORB_SLAM2 Tracking Vocabulary/ORBvoc.bin Examples/RGB-D/TUM2.yaml Examples/RGB-D/rgbd_dataset_freiburg2_desk Examples/RGB-D/rgbd_dataset_freiburg2_desk/associate.txt

LoopClosing

  1. SLAM разделяется на три узла ROS, используя базу данных в качестве контейнера данных карты. В потоке LoopClosing при настройке Sim3 решения для обнаружения петель необходимо настроить параметры Ransac в строке 446 файла LoopClosing.cc
pSolver->SetRansacParameters(0.99,5,300);

Второй параметр должен быть изменён с 20 на 5 для обнаружения петель, но это также может привести к неправильному сопоставлению.

  1. Данные класса KeyFrameDatabase не обрабатываются в потоке Loopclosing, главным образом потому, что данные KeyFrame, считываемые из базы данных, отличаются от исходных версий программы.

Руководство по настройке среды orb-slam

Подробности см. в приложении к проекту.


1. Лицензия

ORB-SLAM2 выпущен под лицензией GPLv3. Список всех зависимостей кода/библиотеки (и связанных лицензий) см. в Dependencies.md.

Для закрытой версии ORB-SLAM2 для коммерческих целей, пожалуйста, свяжитесь с авторами: orbslam (at) unizar (dot) es.

Если вы используете ORB-SLAM2 (Monocular) в академической работе, пожалуйста, укажите:

@article{murTRO2015, **title: ORB-SLAM: универсальная и точная монокулярная система SLAM**,

author: Рауль Мур-Арталь, Дж. М. М. Монтьель и Хуан Д. Тардос,

journal: IEEE Transactions on Robotics,

volume: 31,

number: 5,

pages: 1147–1163,

doi: 10.1109/TRO.2015.2463671,

year: 2015

Если вы используете ORB-SLAM2 (стерео или RGB-D) в академической работе, пожалуйста, укажите:

@article: murORB2,

title: ORB-SLAM2: открытая система SLAM для монокулярных, стереоскопических и RGB-D камер,

author: Рауль Мур-Арталь и Хуан Д. Тардос,

journal: IEEE Transactions on Robotics,

volume: 33,

number: 5,

pages: 1255–1262,

doi: 10.1109/TRO.2017.2705103,

year: 2017

2. Предварительные требования

Мы протестировали библиотеку в Ubuntu 12.04, 14.04 и 16.04, но её должно быть легко скомпилировать на других платформах. Мощный компьютер (например, i7) обеспечит производительность в реальном времени и более стабильные и точные результаты.

Компилятор C++11 или C++0x

Мы используем новые функции потоков и хронографов C++11.

Pangolin

Мы используем Pangolin для визуализации и пользовательского интерфейса. Инструкции по загрузке и установке можно найти по адресу: https://github.com/stevenlovegrove/Pangolin.

OpenCV

Мы используем OpenCV для обработки изображений и функций. Инструкции по загрузке и установке можно найти по адресу: http://opencv.org. Требуется как минимум 2.4.3. Протестировано с OpenCV 2.4.11 и OpenCV 3.2.

Eigen3

Требуется g2o (см. ниже). Инструкции по загрузке и установке можно найти по адресу: http://eigen.tuxfamily.org. Требуется не менее 3.1.0.

g2o

Мы используем библиотеку g2o для выполнения нелинейной оптимизации. Инструкции по загрузке и установке можно найти по адресу: https://github.com/RainerKuemmerle/g2o.

DBoW2 (включён в папку Thirdparty)

Мы используем модифицированные версии библиотеки DBoW2 для распознавания мест (BSD), которая включена в папку Thirdparty.

ROS (необязательно)

Мы предоставляем несколько примеров для обработки живого ввода монокулярной, стереоскопической или RGB-D камеры с использованием ROS. Создание этих примеров необязательно. Если вы хотите использовать ROS, необходима версия Hydro или новее.

3. Сборка библиотеки и примеров ORB-SLAM2

Клонируйте репозиторий:

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

Мы предоставляем скрипт build.sh для сборки библиотек Thirdparty и ORB-SLAM2. Убедитесь, что вы установили все необходимые зависимости (см. раздел 2). Выполните:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

Это создаст libORB_SLAM2.so в папке lib и исполняемые файлы mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc и stereo_euroc в папке Examples.

4. Монокулярные примеры

Набор данных TUM

  1. Загрузите последовательность с сайта http://vision.in.tum.de/data/datasets/rgbd-dataset/download и распакуйте её.

  2. Выполните следующую команду. Измените TUMX.yaml на TUM1.yaml, TUM2.yaml или TUM3.yaml для последовательностей freiburg1, freiburg2 и freiburg3 соответственно. Измените PATH_TO_SEQUENCE_FOLDER на распакованную папку последовательности.

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

Набор данных KITTI

  1. Скачайте набор данных (оттенки серого) с сайта http://www.cvlibs.net/datasets/kitti/eval_odometry.php.

  2. Выполните следующую команду. Измените KITTIX.yaml на KITTI00-02.yaml, KITTI03.yaml или KITTI04-12.yaml для последовательностей 0–2, 3 и 4–12 соответственно. Измените PATH_TO_DATASET_FOLDER на распакованную папку набора данных. Измените SEQUENCE_NUMBER на 00, 01, 02, ..., 11.

./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

Набор данных EuRoC

  1. Скачайте последовательность (формат ASL) с сайта http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets.

  2. Сначала выполните следующую команду для последовательностей V1 и V2 или

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

rosrun ORB_SLAM2 Stereo PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE ONLINE_RECTIFICATION

Пример: Загрузите rosbag (например, V1_01_easy.bag) из набора данных EuRoC (http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets). Откройте 3 вкладки в терминале и выполните следующую команду на каждой вкладке:

roscore
rosrun ORB_SLAM2 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml true
rosbag play --pause V1_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw

После того как ORB-SLAM2 загрузит словарь, нажмите пробел на вкладке rosbag. Наслаждайтесь! Обратите внимание: для запуска самых требовательных последовательностей этого набора данных требуется мощный компьютер.

Запуск узла RGB_D

Для ввода RGB-D с тем /camera/rgb/image_raw и /camera/depth_registered/image_raw, запустите узел ORB_SLAM2/RGBD. Вам потребуется предоставить файл словаря и файл настроек. См. пример RGB-D выше.

rosrun ORB_SLAM2 RGBD PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE

8. Обработка собственных последовательностей

Вам потребуется создать файл настроек с калибровкой вашей камеры. См. файл настроек, предоставленный для наборов данных TUM и KITTI для монокулярных, стереоскопических и RGB-D камер. Мы используем калибровочную модель OpenCV. См. примеры, чтобы узнать, как создать программу, использующую библиотеку ORB-SLAM2, и как передавать изображения в систему SLAM. Стерео вход должен быть синхронизирован и выпрямлен. Вход RGB-D должен быть синхронизирован и зарегистрирован по глубине.

9. Режимы SLAM и локализации

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

Режим SLAM

Это режим по умолчанию. Система работает параллельно в трёх потоках: отслеживание, локальное картографирование и закрытие петель. Система локализует камеру, строит новую карту и пытается закрыть петли.

Режим локализации

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

Комментарии ( 0 )

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

Введение

На основе визуальной SLAM-системы для облачного робота-манипулятора. Развернуть Свернуть
C++ и 4 других языков
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lianbo2006-ORB_SLAM2_Microservice.git
git@api.gitlife.ru:oschina-mirror/lianbo2006-ORB_SLAM2_Microservice.git
oschina-mirror
lianbo2006-ORB_SLAM2_Microservice
lianbo2006-ORB_SLAM2_Microservice
Cloudv2.0