Skip to content

snowlue/ITMO-Practice2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Исследование и разработка методов локализации и картирования (SLAM) для мобильной платформы на базе LEGO Mindstorms и ROS 2

Репозиторий с нодами ROS 2, в котором реализованы три алгоритма:

  • ICP — Iterative Closest Point, Итеративный алгоритм ближайших точек
  • AMCL — Adaptive Monte Carlo Localization, Адаптивная локализация Монте-Карло, локализация фильтром частиц
  • VO SLAM — Visual Odometry SLAM, визуальная одометрия

Также в репозитории содержится хранилище Obsidian с ежедневными логами по практике и подготовленный отчёт.

ICP

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

Входные данные: два соседних измерения лидара — облака точек.
Выходные данные: сдвиг t и поворот R, совмещающие два измерения.

AMCL

Алгоритм, использующий одометрию робота, результаты сканирования лидара и уже построенную карту вида binary occupancy grid для локализации робота.

Входные данные: набор частиц на предыдущем шаге, одометрия, измерения лидара, карта окружения.
Выходные данные: обновлённый набор частиц на текущем шаге.

VO SLAM

Алгоритм получает скорректированное изображение с камеры, ее коэффициенты искажения и матрицу K на вход. С помощью пакета image_proc выравниваем изображение и отправляем в алгоритм.

Входные данные: скорректированное изображение, коэффициенты искажения, матрицу K, карта окружения.
Выходные данные: трансформации ArUco-маркеров.

Гайд по установке?

Установите ROS 2 Jazzy вместе с development tools и необходимые пакеты:

sudo apt install ros-jazzy-tf-transformations
sudo apt install ros-jazzy-teleop-twist-keyboard

Настройте окружение и сбилдите проект (измените bash на командную оболочку, которую используете):

. /opt/ros/jazzy/setup.bash
colcon build
. install/setup.bash

Далее всё зависит от того, что вы хотите сделать:

  • Для записи датасетов с сканами лидара с помощью rosbag изучайте День 1 в хранилище Obsidian
  • Для работы ICP запустите urg_node2 и icp-ноду с предварительной установкой numpy и sklearn:
sudo apt install python3-numpy
sudo apt install python3-sklearn python3-sklearn-lib python-sklearn-doc
ros2 run icp_node icp_node
  • Для работы AMCL запустите amcl/main.py в виртуальном окружении с numpy и matplotlib
  • Для работы VO SLAM изучите День 5 в хранилище Obsidian для установки зависимостей ROS 2 и запуска realsense2_camera, а затем запустите slam-ноду:
ros2 run slam_node slam_node

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors