Добавлен: 08.11.2023
Просмотров: 1471
Скачиваний: 6
СОДЕРЖАНИЕ
Проблема охраны территорий от малогабаритных БПЛА
Обзор известных методов решения проблемы
Постановка задачи проектирования системы управления охранного квадрокоптера
Характеристики центрального процессора (CPU)
Барометрический датчик давления
Электронный регулятор скорости (ESC)
Принцип работы датчика с оптическим потоком
Результат сборки квадрокоптера
Программная среда Robot Operating System
Алгоритм управления автономным полетом охранного квадрокоптера
Финансовый менеджмент, ресурсоэффективность и ресурсосбережение
Продолжительность этапов работ
Расчет сметы затрат на выполнение проекта
Расчет затрат на электроэнергию
Расчет затрат на социальный налог
Расчет прочих (накладных) расходов
Безопасность в чрезвычайных ситуациях
Особенности законодательного регулирования проектных решений
Список используемых источников
Программная среда Robot Operating System
Robot Operating System (ROS) – стала стандартом для исследований в робототехнике. Это бесплатная мета-операционная система с открытым исходным кодом. [16] Она объединяет следующие сервисы:
-
операционная система; -
аппаратная абстракция; -
управление устройствами нижнего уровня; -
передача сообщений между процессами; -
управление пакетами.
Робототехнический фрэймворк дополнительно предоставляет библиотеки для получения, сборки, записи и запуска кода. Коммуникационная инфраструктура является основным преимуществом ROS. Это позволяет облегчить использование различных роботов или датчиков и связывание их друг с другом. Это система узлов и тем. Узлы – это, по сути, программы Python Code или C++, загруженные или специально созданные пользователями, которые могут подписаться или опубликовать различные темы. Как только публикуется тема, каждый узел имеет возможность подписаться на нее. Эту концепцию можно увидеть на рисунке
3.3. Типы сообщений ROS являются предопределенными или настраиваемыми сообщениями, которые определяют формат публикации информации. Существуют основные сообщения, которые достаточно
эффективны и хорошо организованы, однако продвинутые пользователи могут также создавать свои собственные типы сообщений, если это необходимо.
Рисунок 3.3 – Концепция Publisher/Subscriber в ROS
Структура ROS заботится
о данных и их движении по ROS. Связь осуществляется как одноранговая сеть ROS-процессов. Ниже описаны основные компоненты ROS.
Узлы (Nodes) – это процессы, выполняющие вычисления. Это исполняемые двоичные файлы, которые обрабатывают данные в ROS. У робота обычно много узлов, и каждый из них заботится о разных частях подсистемы. Например, один осуществляет управление двигателем, другой обрабатывает данные сонара, другой выполняет локализацию и так далее. Узлы общаются друг с другом путем отправки сообщений. Узлы создаются с использованием клиентских библиотек, таких как roscpp, rospy, rosjava, и могут быть запрограммированы на разных языках.
Мастер (Master) – ROS Master управляет другими узлами и контролирует связь между ними. Предоставляет имена (пространства имен), темы и службы всем узлам. Он контролирует, какие узлы публикуют сообщения по темам и какие узлы они могут удалить. Задача Мастера – позволить одному узлу предоставлять информацию о другом, чтобы общаться друг с другом.
Сервер параметров – словарь переменных. Узлы используют этот
сервер в качестве хранилища и могут загружать и извлекать переменные во время выполнения. Используется для статических не двоичных данных, таких как параметры конфигурации. Данные в нем отображаются в глобальном пространстве и могут изменять параметры системы через него по мере необходимости. Сервер параметров работает как часть мастера и доступен через API.
Сообщения (Message) – узлы обмениваются данными друг с другом,
отправляя сообщения. Сообщение представляет собой простую структуру данных, которая содержит типизированные элементы. Поддерживаются примитивные типы данных (int, float, string и т.д.), эти типы полей, а также вложенные структуры данных и массивов (например, структуры в C).
Темы (Topic) – сообщения доставляются через транспортную систему с семантикой public/subscribe. Один узел отправляет сообщения и публикует их в теме. Тема имеет свое имя для идентификации и прочно связана только с одним типом сообщения. Второй узел, интересующийся типом сообщения, будет подписан для получения новостей из этой темы. Одновременно может быть много публикующих и много подписчиков одной темы. Кроме того, один узел может публиковать сообщения по нескольким темам и загружать сообщения из нескольких тем. Тема ведет себя как сильно типизированная шина сообщений. Любой человек может подключать или отключать, публиковать или загружать сообщения такого типа в любое время.
Службы (Service) – службы позволяют узлам связываться друг с другом с помощью семантики запроса-ответа. Служба определяется двумя сообщениями: одна для запроса (response) и другая для ответа (request). Сервисный узел предлагает службу под именем. Клиентский узел вызывает эту службу (отправляет сообщение) и ожидает ответа.
Файлы Bag. Эти файлы используются для записи сообщений, которые могут воспроизводиться снова. Это используется, например, для загрузки данных датчиков, которые трудно получить. Затем мы можем воспроизвести ROS, моделируя датчик.
ROS был разработан для взаимодействия с Ubuntu, который используется как типичная исследовательская операционная
система, благодаря своим возможностям и тому факту, что она бесплатна. На протяжении многих лет было несколько версий ROS. Версия ROS, используемая в данной работе – это ROS Kinetic. Преимущество этой версии состоит в том, что она в основном разработана для Ubuntu 16.04, которая является версией Ubuntu с долгосрочной поддержкой, что добавило безопасность в проект. Ubuntu 16.04 также имеет легкую версию под названием Ubuntu Server 16.04, которая взаимодействует с Raspberry Pi 3. Пользователь имеет возможность устанавливать различные версии ROS, которые представляют собой Desktop-Full Install, Desktop Install, ROS-Base и Individual Package. Различие между ними – это, по сути, количество пакетов, которые входят в данные версии, что коррелирует с объемом хранения, необходимым для версии. В то время как на персональном компьютере можно было установить полнофункциональную версию Desktop-Full Install, для бортового компьютера была выбрана версия Desktop Install. Это гарантирует, что не большая часть 32-гигабайтной памяти MMC-карты Raspberry Pi 3 используется и её по-прежнему достаточно. Кроме того, позже потребуются определенные пакеты, которые могут быть установлены вручную, поэтому нет реального недостатка в использовании более легкой версии.
В настоящее время была разрабатывается новая версия ROS. Хотя новые дистрибутивы ROS постоянно развиваются, есть некоторые недостатки, которые настолько глубоки в ядре ROS, что разрабатывается новая версия под названием ROS 2.
Эта новая версия сосредоточена на улучшении поддержки нескольких
сервисов распространения данных (DDS). Он тестируется на большом количество операционных систем, включая Windows 10. В нем также пытаются реализовать как можно больше языков программирования. [17]
Все эти изменения - это усовершенствование системы и дальнейшая
адаптация к сообществу робототехники, которое изменилось с тех пор, как ROS 1 впервые был представлен в 2007 году.
- 1 ... 12 13 14 15 16 17 18 19 ... 35