- Цель
- Версия операционной системы и необходимые зависимости
- Демонстрация взаимодействия с мобильной платформой
- Установка
- Kivy и составляющие
Целью данной работы являлась разработка графического приложения для управления платформами (для демонстрации их работоспособности без дальнейшего применения...).
Параметр | Значение |
---|---|
Версия операционной системы | любая куда можно поставить python и kivy |
Зависимости |
---|
pip install kivy==2.1.0 |
Сначала необходимо создать рабочее пространство:
mkdir -p GUI
После этого скачать репозиторий:
cd GUI
git clone ssh://git@git.robotic.net:3001/PodkolzinDD/remote-controller.git
Kivy — это открытая библиотека для Python, предназначенная для разработки мультиплатформенных приложений с графическим интерфейсом пользователя (GUI). Основные особенности Kivy включают поддержку мультитач-ввода, использование нативных элементов управления, а также возможность создавать приложения, работающие на Windows, macOS, Linux, Android и iOS с минимальными изменениями в коде.
В данном проекте используется Kivy для создания интерфейса управления мобильной платформой на гусеницах. Проект состоит из трёх основных компонентов.
-
KV файлы: Kivy позволяет выносить описание графического интерфейса в отдельные файлы с расширением .kv. Это делает код более читаемым и упрощает разработку интерфейса. Описание интерфейса включает в себя расположение виджетов, их свойства и реакции на действия пользователя.
-
Скрипты Python (например, JoystickDemo.py): содержат логику приложения, включая определение классов для виджетов, обработку событий от пользовательского интерфейса, управление состоянием приложения и взаимодействие с внешними устройствами или сервисами. Код описывает, как данные с джойстика преобразуются в команды управления для мобильной платформы, а также включает настройку сетевых соединений для отправки команд на платформу.
-
Репозиторий для отрисовки джойстика (joystick): вспомогательная библиотека или модуль, который обеспечивает интеграцию джойстика в графический интерфейс приложения. Этот компонент отвечает за визуализацию джойстика, обработку ввода пользователя и преобразование движений джойстика в данные, которые могут быть использованы в логике приложения.
Основные компоненты.
-
JoystickDemoApp (класс приложения): это главный класс приложения, наследующий от класса App библиотеки Kivy. В его методе build создается и возвращается экземпляр корневого виджета, который является основой графического интерфейса приложения.
-
JoystickDemo (корневой виджет): этот класс унаследован от FloatLayout, что позволяет свободно размещать дочерние виджеты внутри него. В нём определены методы для обработки событий пользовательского интерфейса, таких как нажатия на кнопки, перемещения слайдеров и взаимодействие с джойстиком. Здесь же задаются свойства, которые отслеживают состояния управления мобильной платформой.
-
Обработка ввода джойстика: в методе _update_pad_display класса JoystickDemoApp происходит обработка ввода с джойстика и обновление угловой и линейной скорости мобильной платформы. Это ключевая часть управления платформой, где основываясь на данных с джойстика, вычисляются значения скоростей для дальнейшей отправки на мобильную платформу.
-
Сетевое взаимодействие: проект включает работу с сетью через UDP-сокеты для отправки данных управления на мобильную платформу. Используется Python-сокеты для отправки сообщений, сформированных на основе ввода пользователя, на заданный IP-адрес и порт.
-
Многопоточность: используется для обработки сетевого взаимодействия в фоновом режиме, чтобы главный поток приложения оставался отзывчивым к действиям пользователя.