Делаем GUI для управления роботами — Роботехника и умный дом

Хотелось бы рассказать об одной идее (она является частью большего, но пока только об этом) и о том, что получилось на данный момент.

Идея — разработка GUI для управления самоходными роботами — достаточно однотипная (движение, управление какими-либо доп. характеристиками). Можно реализовать определенный набор стандартных компонент (кнопки управления, аккумуляторы, видео, геопозиционирование и пр.) и механизмов их удобного создания / конфигурирования без изменения исходного кода. Для GUI из 3-4 кнопок это конечно погоды не сделает, но для более сложных, где количество управляемых характеристик > 7-10 должен быть выигрыш по времени / усилиям.

Поскольку основной интерес для апробирования здесь представляет ПО, то для экспериментов была выбрана максимально готовая платформа. Так сложилось, что это оказался радиоуправляемый танк шпион RovoSpy LT-728 4-CH Wi-Fi. В принципе на его месте мог оказаться любой аналогичный робот с поддержкой WiFi и вебкамеры.

Оставим за кадром процесс "взлома" протокола команд (для управления есть стандартные приложения), это сейчас не суть.

Суть в том, что было сделано:

    Разработано Qt приложение (Dispatcher) для создания конфигурируемого GUI. создан минимальный базовый набор виджетов — кнопки, набор вебкамер, вебкамера, аккумулятор. Разработана библиотека (network_lib) для сетевых взаимодествий. Цель библиотеки — скрыть детали сетевого взаимодействия. Конкретно для танка шпиона поток команд шел в UDP Разработана библиотека (multispy) реализующая логику управления роботом. Данные о действиях пользователя получаются от Dispatcher и передаются роботу посредством network_lib Создан конфигурационный файл для описания GUI для данного робота

Вуаля! Это позволило управлять танком-шпионом из своего десктоп приложения по локальной сети. Для создания GUI для нового конкретного робота необходимо только создать конфиг и реализовать библиотеку с логикой (все это подключается в Dispatcher). В приложении — пример конфигурационного файла для танка-шпиона и скриншот окна приложения.

Что интересно было бы получить от уважаемых форумчан:

    Отзывы и комментарии о идее Если кого то заинтересовало озвученное выше, то возможно рассмотреть различные варианты взаимодействия — попробовать данный подход / ПО для Ваших роботов, помочь с написанием конфига, библиотеки с логикой.