Controller Framework

Материал из BrSTU Robotics Wiki
Перейти к: навигация, поиск

Controller Framework – это архитектура описания, формирования и передачи управляющих команд (и др. структурированных данных) роботу. Архитектура для нескольких подходов удаленного управления роботом.

Описание

С высоты десяти тысяч метров, для управления мобильным роботом нужно прочесть управляющие сигналы из некоторого источника, сформировать команду, понятную роботу и отправлять её роботу некоторым способом. Каждый из этапов - чтение, формирование и пересылка допускает множество вариаций, как в способах чтения/передачи сигнала, так и в форматах команд, допустимых для робота. Могут различаться модели робота, ожидаемые протоколы, виды команд, способы передачи команд (сереализация, wi-fi, COM-порт, USB и др) и источники команд (джостик, клавиатура, "мозги" на компьютере, ROS и др.).

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

Целью данного проекта является автоматизация процесса формирования управляющих команд робота, создание архитектуры необходимых компонент и унификация интерфейсов между ними.

Основные компоненты

Протокол (Protocol) – множество допустимых команд робота которые он может распознать, а так же способ их описания. Как правило, протокол робота пишется на специальном языке, где указывается структура команды робота и способ получения значений. Описание протокола робота называется форматом протокола.

Формат протокола (Protocol Format) – это запись на специальном языке, в которой указан формат и содержание ожидаемых сообщений. Формат команды указывает (1) структуру команды, (2) аргументы формата - используемые функции получения данных из показаний контроллера и (3) статическую структуру (неизменную часть) команды - базу. Формат протокола передается парсеру протокола для разбора, который генерирует алгоритм формирования команд.

Команда (Command) – единовременное структурированное сообщение, соответствующее протоколу, посылаемое отсылаемое ему на исполнение.

Контроллер (Controller) – какой либо источник данных, формирующий управляющие сигналы для робота. Как правило, данные из контроллера не могут быть напрямую отосланы роботу, а должны быть упакованы в команду протокола робота и переданны ему на исполнение. Контроллер - это не конкретный физический объект, а удобная абстракция. Контроллером может быть джойстик, таймер, управляющая программа, внешние события. Одного робота может обслуживать несколько контроллеров.

Парсер протокола (Protocol Engine) – компонент системы, преобразующий полученные от контроллеров данные в команды протокола робота по специальному алгоритму описанному в формате протокола и отсылающий команду роботу на получение.

Передатчик (Transmitter) - алгоритм и способ передачи готовой команды по назначению. Например, COM, Сеть, USB и др.

Используемые компоненты