Россия
сотрудник
Братск, Иркутская область, Россия
Приводится краткий анализ подходов, применяемых в настоящее время для разработки программ управления, выявлены особенности их применения, преимущества и недостатки. Для исследования выбрана разработка кроссплатформенного приложения систем управления робототехническими комплексами (РТК) на примере РТК с роботами-манипуляторами МП-11. Структура системы управления включает в себя контроллер на плате Arduino Mega 2560 Pro Mini с загруженной программой низкого уровня и программу верхнего уровня. Разработка производится на платформе .NET MAUI, которая позволяет создать приложение для операционных систем Windows, Android, IOS на единой кодовой базе, т. е. один и тот же код автоматически компилируется под все операционные системы с учетом их особенностей и применяемых элементов. Подключение управляющего компьютера осуществляется по USB, мобильных устройств – по Bluetooth, при этом программно передача данных осуществляется через последовательный порт. Приведено описание режимов работы разработанного приложения, его алгоритмов функционирования с указанием особенностей выполнения для данного типа программ и внешнего вида форм с расположенными на них элементами. В программе предусмотрен ручной и автоматический режимы работы, а также управление не только РТК, но и его моделью. Ключевой особенностью данного приложения является использование единой кодовой базы и оформления для реализации настольного и мобильного приложения для различных операционных систем без использования ресурсов сети, в отличие от web-приложений.
робототехнический комплекс, кроссплатформенное приложение, MAUI, робот, алгоритм, управляющая программа
Введение
В настоящее время в системах управления могут применяться устройства с различными операционными системами, например компьютеры с Windows и Linux, телефоны или планшеты с Android и IOS. Это позволяет создавать удобное и функциональное рабочее место оператора. Однако возникает необходимость работы программы управления на всех операционных системах, с сохранением ее функционала и внешнего вида.
Это порождает три подхода к решению поставленной задачи:
– создание нативных приложений для каждой ОС;
– создание web-приложения;
– создание кроссплатформенного приложения.
В таблице приведен анализ основных параметров различных приложений.
Анализ параметров приложений
Analysis of application parameters
Параметр |
Нативные приложения |
Web-приложение |
Кроссплатформенное |
Установка |
Требуется |
Не требуется |
Требуется |
Операционная система (ОС), на которой |
Для каждой ОС |
Любая |
Любая из поддерживаемых средством разработки |
Язык программирования |
Для каждой ОС свой |
Единый для всех ОС |
Единый для всех ОС, |
Скорость разработки |
Высокая для отдельного приложения, низкая |
Высокая |
Средняя, требуется |
Обслуживание |
Простое для отдельного приложения, очень |
Простое |
Среднее. Требуется |
Обновление на стороне пользователя |
Повторная установка |
Не требуется |
Повторная установка |
Доступ через сеть |
Не требуется |
Требуется |
Не требуется |
Скорость работы |
Высокая |
Низкая |
Средняя |
Отличия в работе |
Могут присутствовать отличия в интерфейсе |
Одинаковый функционал. Интерфейс может отличаться только наличием мобильного вида |
Одинаковый функционал и интерфейс, но могут присутствовать отличия, связанные с особенностями различных ОС |
Для решения большинства задач оптимальнее выбрать web- или кроссплатформенное приложение.
В существующей системе управления предполагается использование устройств без доступа к сети, подключаемых по USB и Bluetooth, поэтому выбор пал на кроссплатформенное приложение, поскольку данный подход позволяет создавать приложения для различных платформ с одной кодовой базой и оформлением.
Один из самых популярных подходов к созданию кроссплатформенных приложений – использование мультиплатформенных фреймворков и библиотек. Они позволяют разрабатывать приложения на едином языке программирования, применяя их на разных платформах, таких как Windows, MacOS, Linux, iOS, Android и т. д., в качестве примера можно привести MAUI/Xamarin, React Native, Flutter, Electron и др.
Структура системы управления
Робототехнический комплекс (РТК), для которого разрабатывается приложение, состоит из двух манипуляторов МП 11 и транспортера, подключенных к контроллеру специальными кабелями. Контроллер построен на плате Arduino Mega 2560 Pro Mini с дополнительным модулем hc-05. Мобильные устройства (телефоны и планшеты) подключаются по Bluetooth, а ПК по USB, при этом программно подключение осуществляется через последовательный порт в обоих случаях. Структурная схема приведена на рис. 1.
Рис. 1. Структурная схема робототехнического комплекса
Fig. 1. Block diagram of a robotic complex
В контроллер записана специально разработанная программа низкого уровня, которая осуществляет управление функциями принятия, обработки и отправки команд, управление подключенными компонентами (реле, платами расширения и т. д.).
На роботе МП-11 установлены 12 датчиков (конечные микропереключатели), которые определяют состояние каждого звена, кроме схвата, т. к. на нем отсутствует концевик. Контроллер делает ежесекундный опрос датчиков и формирует сообщение в виде «0» и «1», указывая состояние. Данное сообщение отправляется в COM-порт в формате «101010101010». Программа управления, запущенная на устройстве, считывает сообщение при запуске и выполнении каждой команды. Полученный текст разбивается на элементы, определяется состояние пары датчиков, расположенных на концах звена. Если звено находится в конечном положении, значения должны быть противоположные. Если значения не изменились за 2 секунды или значения равны, будет выдано сообщение об ошибке.
Более подробно о создании контроллера и его программной составляющей написано в статье [1].
Алгоритмы работы программы
На рис. 2 приведен алгоритм ручного управления РТК.
Рис. 2. Алгоритм ручного управления робототехническим комплексом
Fig. 2. The algorithm of manual control of the robotic complex
На рис. 3 приведен алгоритм автоматического управления РТК.
Рис. 3. Алгоритм автоматического управления робототехническим комплексом
Fig. 3. The algorithm of automatic control of the robotic complex
Описание среды разработки
В качестве среды разработки выбрана платформа .NET MAUI, поскольку уже существуют web-приложение и программа для настольного ПК под управление ОС Windows, что позволяет заимствовать из них большинство алгоритмов и модулей.
При написании программы на .NET MAUI используются языки C# и XAML.
Данная платформа входит в состав Visual Studio, устанавливаемой на ПК под управлением ОС Windows или Mac, и позволяет компилировать в собственные пакеты приложений:
– приложения Android, компилируются из C# на промежуточный язык (IL), который затем компилируется JIT в собственную сборку при запуске приложения;
– приложения iOS, полностью заранее скомпилированы из C# в собственный код сборки ARM;
– приложения macOS, используется Mac Catalyst – решение apple, которое переносит приложение iOS, созданное с помощью UIKit, на рабочий стол и дополняет его API AppKit и платформами по мере необходимости;
– приложения Windows, которые используют библиотеку пользовательского интерфейса Windows 3 (WinUI 3) для создания собственных приложений, предназначенных для рабочего стола Windows [2].
На рис. 4 схематично показан процесс компиляции любого приложения, написанного с помощью кроссплатформенного фреймворка .NET MAUI.
Рис. 4. Структурная схема компиляции приложения MAUI
Fig. 4. The block diagram of the compilation of the MAUI application
Приложение разделено на две составляющие, абстрагированные друг от друга, – интерфейс пользователя и бизнес-логику.
Пользовательский интерфейс описывается с помощью XAML, нейтрального для платформы языка на основе XML, аналогично web-приложению. При этом для оформления внешнего вида можно использовать текстовое представление и графический интерфейс, что повышает удобство и скорость создания формы.
Бизнес-логика, отвечающая за выполнение операций, реализуется на языке C#.
Платформа .NET MAUI всегда создает машинный код для целевого устройства, чтобы обеспечить оптимальную производительность. Для выполнения операции в .NET MAUI используются обработчики, относящиеся к каждой платформе и элементу пользовательского интерфейса. Например, при использовании iOS обработчик .NET MAUI сопоставит этот код с элементом UIButton iOS, если используется Android, то с Android AppCompatButton. Доступ к этим обработчикам осуществляется косвенно, через интерфейс для конкретного элемента управления, предоставляемый .NET MAUI [3].
Поскольку релиз данной платформы состоялся только в конце 2021 г., обязательным условием работы является установка Visual Studio версии не старше 17.3.
Описание разработанного приложения для управления РТК на базе манипуляторов МП-11
Разработанное приложение поддерживает работу на устройствах с операционной системой Windows (версия не старше 10.0.17763.0), Android (версия не старше 5.0), IOS (версия не старше 11.0).
В программе предусмотрены два режима работы:
– ручное управление;
– автоматическое управление.
Элементы управления, требуемые для выполнения всех функций, разнесены на отдельные формы для удобства использования и компактности размещения, что особенно актуально в мобильной версии (в связи с малым размером экрана).
Приложение позволяет осуществлять управление РТК в реальном времени и его моделью в режиме имитации, даже без непосредственного подключения к контроллеру. Данный режим работы очень востребован при обучении специалистов, т. к. позволяет готовить одновременно несколько человек, и при отладке управляющих программ для избегания нештатных ситуаций в случае ошибочных команд.
Внешний вид формы ручного управления комплексом приводится на рис. 5, а автоматического – на рис. 6.
Рис. 5. Форма ручного управления робототехническим комплексом
Fig. 5. The form of manual control of a robotic complex
Рис. 6. Форма автоматического управления робототехническим комплексом
Fig. 6. The form of automatic control of a robotic complex
В окне ручного управления располагаются кнопки, выполняющие функции пульта управления, отдельные для каждого из манипуляторов и транспортерной ленты, кнопка переключения режима работы, блок выбора порта для подключения, блок записи управляющей программы, элементы включения/отключения камеры и режима имитации, а также два окна, отображающие текущее положение роботов.
Блок записи управляющей программы позволяет создать управляющие программы для последующего использования их в автоматическом режиме или для отслеживания выполненных операций путем последовательного нажатия кнопок управления движением. Сформированная программа записывается в текстовый документ, пригодный для корректировки дальнейшего применения. Данная функция представляет собой один из вариантов обучения робота или создания управляющих программ в формате no-code.
В окне автоматического управления также содержится блок для выбора порта подключения, кнопка смены режима, элементы управления камерой и имитацией, окна состояния манипуляторов. Кнопки управления движением заменены блоком ввода управляющих команд с возможностью загрузки существующей программы из файла.
Управляющую программу можно зациклить, активировав соответствующий элемент. При этом действия будут выполняться до тех пор, пока не будет нажата кнопка «Стоп».
Для формирования управляющей программы необходимо использовать специальный набор команд, описанный в статье [4]. Помимо основных операций в данном языке команд содержится множество алгоритмических функций, такие как условия, циклы, переходы и т. д., что позволяет формировать сложные управляющие программы.
Заключение
Кроссплатформенная разработка в настоящее время очень востребована, а применение ее в системах автоматизации позволяет расширить спектр используемых устройств для управления оборудованием.
Методика, описанная в статье, является примером реализации подхода создания программ для РТК, однако она может быть использована и для других роботов и систем управления.
Разработанное приложение применяется при освоении дисциплин, связанных с робототехникой, а также в профориентационных мероприятиях. Применение кроссплатформенного подхода дает возможность пользователям использовать привычные для них устройства для выполнения задач, не тратя время на освоение нового оборудования.
1. Колтыгин Д. С., Авсиевич А. В., Седельников И. А. Аппаратно-программный комплекс для управления робототехническими комплексами // Мехатроника, автоматизация и управление на транспорте: материалы III Всерос. науч.-практ. конф. (Самара, 26–27 января 2021 г.). Самара: Изд-во Самар. гос. ун-та путей сообщения, 2021. С. 107–111.
2. Что такое .NET MAUI? URL: https://learn.microsoft.com/ru-ru/dotnet/maui/what-is-maui/ (дата обращения: 09.04.2024).
3. Описание архитектуры .NET MAUI. URL: https:// learn.icrosoft.com/ru-ru/training/modules/build-mobile-and-desktop-apps/2-describe-maui-architecture?ns-enrollment-tye=learningpath&ns-enrollment-id=learn.dotnet-maui.build-apps-with-dotnet-maui (дата обращения: 09.04.2024).
4. Седельников И. А., Колтыгин Д. С. Методика разработки web-приложения для управления робототехническими комплексами // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. 2024. № 1. С. 56–63. DOI:https://doi.org/10.24143/2072-9502-2024-1-56-63.