АННОТАЦИЯ 3
Введение 8
1 Обзор фреймворка ROS (Robot Operating System) 10
1.1 Платформы (фреймворки) в робототехнике 10
1.2 Преимущества готовой платформы 11
1.3 Обмен сообщениями 11
1.4 Проекты на базе ROS 12
1.5 Мобильный робот TurtleBot3 12
1.6 SLAM 13
1.7 Современные методы SLAM 15
2 Робот-платформа 17
2.1 Робот и его аппаратное обеспечение 17
2.2 Аппаратная часть 17
2.2.1 Дизайн платформы 17
2.2.2 Механическая структура: 18
2.3 Кинематика роботов 18
2.3.1 Кинематика роботов с дифференциальным приводом 18
2.3.2 Контроллер дифференциального привода: 20
2.4 Список материалов 20
2.5 Обработка и сборка деталей 22
2.6 Структура системы управления роботом 23
2.7 Схема подключения моторов 24
2.7.1 Контроллер двигателя Arduino 25
2.8 Raspberry Pi 25
3 Программное обеспечение 27
3.1 Операционная система 27
3.2 Другое программное обеспечение 27
3.3 Сеть и удаленный доступ 27
3.4 Установка ROS 27
3.5 Создание базовых urdf-файлов 27
3.6 Как опубликовать описание робота с помощью URDF 28
3.7 Управление с помощью Gazebo 29
4 Установка лидара и камеры 30
4.1 Что такое LIDAR? 30
4.1.1 Лидары в ROS 31
4.1.2 2D лидарное и лазерное сканирование 31
4.1.3 Тестирование и визуализация 32
4.1.4 Просмотр выходных данных в RViz 32
4.1.5 Настройка реального лидара 33
4.1.6 Установка драйвера 33
4.1.7 Как разговаривать с лидаром? 33
4.2 Установка камеры 33
4.2.1 Узел драйвера камеры и сообщения об изображениях в ROS 34
4.2.2 Визуализация данных с камеры 34
4.2.3 Настройка реальной камеры 35
5 Осуществление телеуправления 36
5.1 Что такое телеуправление? 36
5.2 Клавиатурное управление роботом ROS 36
5.3 Использование геймпада 37
5.4 Управление по телефону 37
5.4.1 Настройка веб-сервера 38
6 SLAM с помощью slam_toolbox 40
6.1 Настройка ROS2 slam_toolbox 41
6.2 Nav2 41
6.3 Установка Nav2 и slam_toolbox 42
6.4 Схема работы системы навигации робота 43
7 Результаты экспериментов 45
7.1 Симуляционные эксперименты робота 45
7.2 Запуск Nav2 и ROS 2 slam_toolbox 45
7.3 Генерирование карты с помощью slam_toolbox 46
7.3.1 Сохранение карты 47
7.4 Эксперимент с алгоритмами SLAM в симуляторе gazebo 48
7.5 Процесс навигации робота 48
7.6 Эксперимент с алгоритмами SLAM на реальном роботе 49
Заключение 51
Список использованных источников и литературы 53
В последние годы широкому использованию мобильных роботов для различных применений, таких как спасательные операции, уборка дома и обслуживание общественного питания, способствовали их высокая стабильность и доступность по цене. Чтобы удовлетворить потребности этих приложений, мобильным роботам требуется получать данные о местоположении с лидарных датчиков и создавать карты для информирования об окружающей среде, а затем использовать алгоритмы планирования маршрута для определения траекторий движения. Мобильные роботы обычно выполняют три основные функции: построение карты, определение местоположения и планирование маршрута. Основная задача SLAM (одновременной локализации и картографирования) заключается в получении данных в реальном времени от датчиков робота в неизвестной среде и построении карты, а также в завершении автономной локализации. Более того, после завершения локализации и создания карты невозможно вручную задать маршрут передвижения, что ограничивает автономность робота. Таким образом, мы используем технологию SLAM для предоставления информации об окружающей среде для планирования маршрута, помогая мобильным роботам автономно выполнять сложные навигационные задачи.
С развитием технологий искусственного интеллекта типов интеллектуальных сервисных роботов становится все больше и больше, а их автономность постоянно повышается. С момента первого появления роботов для уборки торговых площадей, роботов для доставки еды, эмоциональных роботов, роботов-компаньонов, образовательных роботов, реабилитационных роботов, роботов для супермаркетов, сферы обслуживания и объекты обслуживания постоянно расширяются. Роботы для помещений широко используются в реальной жизни.
Например, роботы-подметальщики могут помочь людям выполнять утомительные задачи, такие как ежедневная уборка в доме, и улучшить качество их жизни. Это может сократить количество персонала по уборке и снизить экономическую нагрузку на предприятия. Сервисные роботы все чаще используются в сфере общественного питания, в качестве гидов по внутренним помещениям, в сфере туризма и других отраслях, и у них хорошее будущее. Но, исходя из текущей ситуации с разработкой, недостатки в области мобильных роботов становятся все более очевидными. Из-за сложности и изменчивости рабочей среды и среды обитания человека мобильным роботам трудно адаптироваться к различным условиям внутри помещений. Когда они попадают в неизвестную среду, они не знают информации об окружающей среде и своем собственном местоположении, поэтому для мобильных роботов очень важно обладать способностью автономной навигации. Целью этого исследования является создание колесного робота, работающего в помещении, использующего алгоритмы SLAM и навигации. Робот использует лидар в сочетании с другими датчиками для определения местоположения и составления карты внутри помещения, автоматического выполнения позиционирования, навигации и других задач.
Колесный робот, который будет разработан в рамках этого исследования, будет обладать следующими функциями:
• Во-первых, он может определять местоположение в помещении без GPS;
• Во-вторых, он может воспринимать и понимать окружающую обстановку, а затем одновременно осуществлять локализацию и картографирование в процессе исследования;
• В-третьих, он обладает способностью планировать маршрут и стратегию обхода препятствий, и, наконец, он может взаимодействовать с людьми с помощью голоса и дисплея.
В этом контексте, выбор 3-колесной структуры для нашего робота обусловлен не только желанием достичь высокой маневренности, но и создать платформу, легко адаптируемую к различным задачам.
Основной компонент нашей робототехнической системы - лидар, который предоставляет точное и быстрое восприятие окружающей среды. Использование пакета программ ROS2 обеспечивает удобное управление и координацию между различными узлами системы, что становится ключевым фактором в обеспечении стабильной и эффективной работы робота.
В ходе данного проекта мы сталкивались с рядом технических вызовов, от выбора компонентов до разработки алгоритмов обработки данных с лидара. Однако, благодаря совместным усилиям команды и использованию передовых технологий, мы преодолели эти трудности и добились успешных результатов.
Этот отчет предоставляет детальное описание созданного робота, его возможностей и технических решений. Мы надеемся, что результаты нашей работы не только будут интересными для специалистов в области робототехники, но и вдохновят на новые исследования и разработки в этой захватывающей области техники. Вперед, к исследованию и инновациям!
В данной ВКР, озаглавленном " Разработка мобильного робота на базе мини-ЭВМ", Была поставлена цель создать трехколесного робота с нуля и реализовать систему, позволяющую проводить эксперименты как в симулированной, так и в реальной среде. Нашими задачами были разработка надежного алгоритма SLAM (одновременная локализация и построение карты) и навигации, создание симуляционной среды в Gazebo и разработка веб-приложения для управления роботом.
В ходе работа нам удалось успешно создать функционального трехколесного мобильного робота и установить его симулированный аналог в Gazebo. Этот двойной подход позволил провести всестороннее тестирование и настройку наших алгоритмов SLAM и навигации как в контролируемых, так и в реальных условиях. Использование ROS (Robot Operating System) оказалось бесценным, предоставив гибкую и мощную платформу для интеграции различных датчиков, приводов и программных модулей.
Ключевые достижения проекта включают:
Конструкция и интеграция робота: Был спроектирован и построен трехколесного мобильного робота, оснащенного необходимыми датчиками и приводами. Интеграция аппаратных компонентов была выполнена тщательно, чтобы обеспечить надежность и производительность.
Симулированная среда в Gazebo: Создав детализированную симуляцию робота в Gazebo, мы смогли провести обширное тестирование и проверку алгоритмов SLAM и навигации. Этот этап был важен для выявления и устранения потенциальных проблем до внедрения системы в реальных условиях.
Алгоритмы SLAM и навигации: Реализация SLAM позволила роботу создавать точные карты своей среды, одновременно определяя свое местоположение на этих картах. Результаты алгоритма SLAM были особенно удовлетворительными: робот смог создавать
детализированные и точные карты как в симулированных, так и в реальных условиях. Высокий уровень точности и надежности, продемонстрированный алгоритмом SLAM, подтвердил эффективность нашего подхода и обеспечил надежную основу для автономной навигации.
Веб-приложение для удаленного управления: Разработка удобного веб-приложения позволила удаленно управлять и контролировать робота. Эта функция повышает удобство использования и доступность робота, позволяя операторам управлять роботом из любого места с доступом к интернету.
Успешное завершение этого проекта демонстрирует осуществимость и эффективность использования ROS для разработки сложных робототехнических систем. Комбинация реальных и симулированных сред предоставила всестороннюю платформу для тестирования и проверки, обеспечивая надежность реализованных алгоритмов. Кроме того, веб-приложение идисплей повышают практическую применимость системы, делая ее универсальным инструментом для различных реальных приложений.
Положительные результаты алгоритма SLAM, с его высокой точностью и надежностью в картографировании и локализации, подчеркивают потенциал этой технологии в развитии мобильной робототехники. Будущая работа может быть сосредоточена на совершенствовании алгоритмов для повышения эффективности, расширении возможностей робота с добавлением дополнительных датчиков или модулей и исследовании более продвинутых интерфейсов управления. Фундамент, заложенный этим проектом, предлагает множество возможностей для дальнейших исследований и разработок в области мобильной робототехники.
1. Документация по ROS 2: официальный сайт, 2023 - URL:
https://docs.ros.org/en/foxy/index.html (дата обращения 10.10.2023).
2. Slam Toolbox: официальный сайт, 2023 - URL:
https://github.com/SteveMacenski/slam_toolbox(дата обращения 01.032.2024).
3. Документация по Nav2: официальный сайт, 2023 - URL: https://navigation.ros.org(дата обращения 01.04.2024).
4. Частота вращения двигателя постоянного тока: Конструкция ПИД-регулятора:
официальный сайт, 2023 - URL:
https://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=ControlPID (дата обращения 01.02.2024).
5. Документация по ros2_control: официальный сайт, 2023 - URL:
https://control.ros.org/master/index.html(дата обращения 01.03.2024).
6. Документация по urdf: официальный сайт, 2023 URL:
https://docs.ros.org/en/foxy/Tutorials/Intermediate/URDF/URDF-Main.html(дата обращения
01.01.2024).
7. Дифференциальный колесный робот: официальный сайт. 2020 - URL:
https://en.wikipedia.org/wiki/Differential_wheeled_robot(дата обращения 01.01.2024).
8. Omara, H.I.M.A. and Sahari, K.S.M., 2015, August. Indoor mapping using kinect and ROS. In 2015 International Symposium on Agents, Multi-Agent Systems and Robotics (ISAMSR) (p. 110-116). IEEE.
9. Grisetti, G., Stachniss, C. and Burgard, W., 2007. Improved techniques for grid mapping with rao-blackwellized particle filters. IEEE transactions on Robotics, 23(1), pp.34-46.
10. Zaman, S., Slany, W. and Steinbauer, G., 2011, April. ROS-based mapping, localization and autonomous navigation using a Pioneer 3-DX robot and their relevant issues. In 2011 Saudi International Electronics, Communications and Photonics Conference (SIECPC) (pp. 1-5). IEEE.
11. Исследование методов SLAM для навигации мобильного робота внутри помещений: R2Robotics,2021- URL: https://habr.com/ru/articles/560856/ (дата обращения 01.01.2024).
12. Документация по Gmapping [Электронный ресурс] URL: http://wiki.ros.org/gmapping, свободный ресурс - Загл. с экрана. Язык англ. (Дата обращения: 14.08.2020 г).
13. Adaptive Monte Carlo localization [Электронный ресурс] URL: http://wiki.ros.org/amcl, свободный ресурс - Загл. с экрана. Язык англ. (Дата обращения: 03.08.2020 г).