Разработка системы для взаимодействия между Robot Operating System и iOS

Материал из Поле цифровой дидактики
Версия от 12:11, 17 апреля 2024; Patarakin (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Основной целью разработки системы является организация управления манипуляторами робота, разработанного в технологическом университете Lappeenranta, с помощью мобильных устройств. Для этого необходимо реализовать возможность передачи данных с мобильного устройства роботу. Используемый для работы робот состоит из мобильной платформы, двух манипуляторов, головы и фиксированного торса. Основным предназначением робота является оказание помощи человеку в ремонте и установки деталей машин. Например, данный робот может откручивать гайки и болты, устанавливать электронные карты, сверлить детали, открывать и закрывать отсеки и многое другое. В основе экспериментального робота заложена архитектура Robot Operating System.

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

Для моделирования процесса выполнения операций можно использовать язык UML, в котором для этого разработаны диаграммы деятельности. Применяемая в них графическая нотация во многом похожа на нотацию диаграммы состояний, поскольку на этих диаграммах также присутствуют обозначения состояний и переходов. Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, а переход в следующее состояние выполняется только при завершении этой операции.

Таким образом, диаграммы деятельности можно считать частным случаем диаграмм состояний. Они позволяют реализовать в языке UML особенности процедурного и синхронного управления, обусловленного завершением внутренних деятельностей и действий. Основным направлением использования диаграмм деятельности является визуализация особенностей реализации операций классов, когда необходимо представить алгоритмы их выполнения.

На рисунке 1 представлена диаграмма деятельности для варианта соединения с ROSBridge.

описание

Рис. 1. Диаграмма деятельности для варианта соединения с ROSBridge

После инициализации объекта ROSConnector, перед попыткой соединения с сервером необходимо произвести валидацию параметров сервера и порта. Если значения корректны, произвести попытку соединения с сервером. Далее, в случае успешного соединения, перейти в состояние ожидания добавления объектов слушателей/отправителей, а также отправки сервис-параметров в ROSBridge. В случае неудачного соединения — произвести распознавание полученной ошибки и сообщить объекту-делегату, что соединение не установлено, вместе с полученной ошибкой.

На рисунке 2 представлена диаграмма деятельности для варианта добавления объекта ROSPublisher.

58895.002.jpg

Рис. 2. Диаграмма деятельности для варианта добавления объекта ROSPublisher

Для добавления отправителя сообщений необходимо инициализировать объект ROSPublisher. При инициализации необходимо указать topic, в который будут отправляться сообщения, а также указать тип сообщений, и произвести проверку корректности указанного типа. Далее — задать идентификатор. В случае успешного добавления — перевести значение логического поля активности данного отправителя в значение true, если при добавлении произошла ошибка — сообщить об этом объекту-делегату.

На рисунке 3 представлена диаграмма деятельности для варианта добавления объекта ROSSubscriber.

Диаграмма деятельности для варианта добавления объекта ROSSubscriber

Рис. 3. Диаграмма деятельности для варианта добавления объекта ROSSubscriber

Для добавления слушателя topic’a, необходимо инициализировать объект ROSSubscriber. При инициализации необходимо указать topic, сообщения которого объект будет слушать, тип получаемых сообщений, проверить корректность указанного типа, а также задать объект-делегат, методы которого будут вызываться при получении сообщений. Далее — задать минимальный интервал между принятием сообщений. Опционально присутствует возможность задать длину последовательности, степень сжатия и размер фрагментов. В случае успешного добавления — перевести значение логического поля активности данного слушателя в значение true, а если при добавлении слушателя произошла ошибка — сообщить об этом объекту-делегату.

Литература:

  1. ROSRobot Operating System [Электронный ресурс]. — http://robocraft.ru/blog/robosoft/721.html.
  2. Леоненков А. В. Самоучитель UML. [Текст]. — СПб.: БХВ-Петербург, 2004. — 432 с.