Russian Federation
employee
Bratsk, Irkutsk region, Russian Federation
A brief analysis of the approaches currently used to develop management programs is provided, their application features, advantages and disadvantages are identified. For the study, the development of a cross-platform appli-cation of control systems for robotic complexes (RTC) was chosen, using the example of RTC with MP-11 robotic manipulators. The structure of the control system includes a controller on the Arduino Mega 2560 Pro Mini board with a loaded low-level program and an upper-level program. The development is carried out on the platform.NET MAUI, which allows you to create an application for Windows, Android, and IOS operating systems on a single code base, i.e. the same code is automatically compiled for all operating systems, taking into account their features and applied elements. The control computer is connected via USB, mobile devices via Bluetooth, while data is programmatically transmitted via a serial port. The description of the modes of operation of the developed application, its functioning algorithms, indicating the features of execution for this type of programs and the appearance of forms with elements located on them is given. The program provides manual and automatic modes of operation, as well as control of not only the RTC, but also its model. The key features of this application are the use of a single code base and design for the implementation of desktop and mobile applications for various operating systems without using network resources, unlike web applications.
robotics complex, cross-platform application, MAUI, robot, algorithm, control program
Введение
В настоящее время в системах управления могут применяться устройства с различными операционными системами, например компьютеры с 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. Koltygin D. S., Avsievich A. V., Sedel'nikov I. A. Apparatno-programmnyi kompleks dlia upravleniia roboto-tekhnicheskimi kompleksami [Hardware and software complex for controlling robotic complexes]. Mekhatronika, avtomatizatsiia i upravlenie na transporte: materialy III Vserossiiskoi nauchno-prakticheskoi konferentsii (Samara, 26–27 ianvaria 2021 g.). Samara, Izd-vo Samar. gos. un-ta putei soobshcheniia, 2021. Pp. 107-111.
2. Chto takoe .NET MAUI? [What is.NET MAUI?]. Available at: https://learn.microsoft.com/ru-ru/dotnet/maui/what-is-maui/ (accessed: 09.04.2024).
3. Opisanie arhitektury .NET MAUI [Description of the architecture .NET MAUI]. Available at: https://learn.microsoft.com/ru-ru/training/modules/build-mobile-and-desktop-apps/2-describe-maui-architecture?ns-enrollment-type=learningpath&ns-enrollment-id=learn.dotnet-maui.build-apps-with-dotnet-maui (accessed: 09.04.2024).
4. Sedel'nikov I. A., Koltygin D. S. Metodika razrabotki web-prilozheniia dlia upravleniia robototekhnicheskimi kompleksami [Methodology for developing a web application for managing robotic complexes]. Vestnik Astrakhanskogo gosudarstvennogo tekhnicheskogo universiteta. Seriia: Upravlenie, vychislitel'naia tekhnika i informatika, 2024, no. 1, pp. 56-63. DOI:https://doi.org/10.24143/2072-9502-2024-1-56-63.