Skip to content

Ali-AliAli-Ali/mapping-with-L515

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mapping-with-L515

Проект стажировки в ГК "Геоскан" - реализация SLAM-алгоритма для колесного робота по данным лидар-камеры Intel RealSense L515.

Подробности о ходе и результатах проекта (на декабрь 2024) - в файлах Report.pdf и Presentation.pdf (отчет и презентация о проекте как об учебной практике СПбГУ).

Цель проекта: реализовать алгоритм для построения и прохождения маршрута от текущего положения до заданной точки в неизвестной заранее местности с препятствиями колесным роботом "Геобот" по данным с лидар-камеры Intel RealSense L515 с одновременным построением трехмерной карты пространства.

Цель репозитория: визуализировать RGBD-данные с лидар-камеры Intel RealSense L515 на ноутбуке через беспроводное подключение к Raspberry Pi по протоколу ssh.

Запуск сервера и клиента

Запуск сервера/клиента производится только из ветки eth_example_[server/client] запуском python-файла ethernet_client_server/pointcloud_[server/client].py для сервера и клиента соответственно, только на соответствующем устройстве (сервер - на том, к которому подключена камера, клиент - на визуализирующем данные).

Основные моменты:

  1. Если сервер не запущен, сначала запускается он, потом клиент.
  2. Клиент может перезапускаться несколько раз во время работы сервера.
  3. При перезапуске сервера клиент тоже нужно будет перезапустить.

Содержание веток

На текущий момент основные результаты находятся в дополнительных ветках. В main планируется собрать проект в финальном виде после его запуска и тестирования.

Ветки в разработке:

  • eth_example_server - разработка "серверной" составляющей проекта: сбор и трансляция данных с лидар-камеры. Серверная часть рассчитана на запуск на Raspberry Pi, к которому подключена лидар-камера.

    IP-адрес Raspberry Pi зафиксирован в коде (на текущий момент '172.20.10.10'). Скорость трансляции также зафиксирована в коде при задании конфигурации трансляции (на текущий момент 30 fps).

    На текущий момент транслирует только данные глубины без RGB-составляющей ввиду ограничений пропускной ширины канала передачи данных (провод USB 2.1 вместо USB 3.1).

  • eth_example_client - разработка "клиентской" составляющей проекта: прием, обработка и визуализация данных с сервера. Клиентская часть рассчитана на запуск на устройстве с экраном и графическими драйверами, способному подключаться к серверу по ssh.

    IP-адрес сервера зафиксирован в коде (на текущий момент '172.20.10.10').

    На текущий момент визуализирует только данные глубины в виде плоской карты (проекции объемного облака точек). В ближайших планах визуализация объемного облака точек.

Ветки вне разработки:

  • eth_example_client_lesscustom - иная реализация идеи ветки eth_example_client с теми же параметрами. Пока не работает.

  • eth_my_server_client - учебная самостоятельная реализация взаимодействия "сервер-клиент" для освоения принципов работы сокетов в Python и обертки RealSense SDK для Python pyrealsense2. Основная папка - understandable_stream.

  • eth_cpp_client - проба для разработки "клиентской" составляющей проекта на С++ (без обертки для Python) с опорой на инструмент rs-server и соответствующие классы RealSense SDK, не реализованные для оберток. Брошена ввиду отсутствия поддержки rs-server лидар-камеры L515.

Целевые версии ПО

Проект тестировался на следующей конфигурации версий ПО:

  • Ubuntu 22.04 LTS / Ubuntu 24.04 LTS / Windows 11 (клиент) и Debian 12 Bookworm (сервер)
  • RealSense SDK v2.47.0 (на сервере и клиенте)
  • pyrealsense2 (на сервере и клиенте)
  • Python - 3.9-3.11 (основное ограничение - модуль asyncore, удаленный из Python 3.12)

Источники фрагментов кода

Файлы в папке understandable_stream и основа кода для сервера и клиента взяты из примеров (examples) pyrealsense2.

About

Internship project: SLAM with RealSense lidar camera L515

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published