Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет_лаба3.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
178.18 Кб
Скачать

1.3 Задачи управления

Перед роботом ставится три последовательно выполняемых задачи:

- достижение заданной точки с координатами (0,0) и остановка в этой точке с абсолютным значением остаточной скорости не более 0,01 м/с. Точность остановки – половина радиуса робота;

- следование по маршруту, заданному ломаной линией с координатами вершин {(0,0), (0.7,0), (0,0.7), (-0.3,0), (-0.7,0), (0.7,0), (0,-0.8)} с отклонением от линий маршрута не более чем на 0.1 метра и остановкой в конечной точке маршрута с абсолютным значением остаточной скорости не более 0,01 м/с. Точность остановки в конечной точке маршрута и прохождений промежуточных точек маршрута – половина радиуса робота. Если робот достигает конечной точки маршрута с указанной точностью, но со слишком большой остаточной скоростью, то точка засчитывается, но выполнение не переходит к очередной задаче, пока не будет погашена скорость;

- преследование перемещающегося по среде тела с известным радиусом RT и координатами (TX, TY) до касания его телом робота. Траектория и скорость перемещения преследуемого тела неизвестны.

1.4 Интерфейс взаимодействия

Для взаимодействия со средой и управления роботом используется сетевой интерфейс с использованием протокола TCP/IP. Сервер моделирования находится по адресу 10.10.36.203. Программы моделирования работает в режиме сервера TCP/IP. Для подключения используется порт 9999. Обмен с сервером выполняется в асинхронном режиме по каналам передачи и приема данных. Обмен данными производится по текстовому протоколу с помощью сообщений. Каждое сообщение представляет собой независимую строку, ограниченную символами «{» в начале и «}» в конце. Внутри сообщения может находиться несколько не дублирующихся параметров. Параметр представляет собой ограниченную символами «(» в начале и «)» в конце и разделенную символом «=» пару «имя параметра» и «значение параметра».

После подключения системы управления к серверу моделирования начинается собственно процесс моделирования среды и перемещений робота. С интервалом в 0.05 секунды сервер отправляет клиенту следующий перечень параметров:

Имя параметра

Возможные значения

Тип

Описание

T

>= 0

С плавающей запятой

Время моделирования в секундах

R

0.01 – 0.07

С плавающей запятой

Радиус робота

M

0.01 – 100

С плавающей запятой

Текущая масса робота

RX

-1 – 1

С плавающей запятой

Координата X центра робота

RY

-1 – 1

С плавающей запятой

Координата Y центра робота

VRX

-100 – 100

С плавающей запятой

Координата X вектора скорости робота

VRY

-100 – 100

С плавающей запятой

Координата Y вектора скорости робота

TR

0.1 – 0.2

С плавающей запятой

Радиус цели для третьей задачи управления (при TASK=3)

TX

-1 – 1

С плавающей запятой

Координата X центра цели для третьей задачи управления (при TASK=3)

TY

-1 – 1

С плавающей запятой

Координата Y центра цели для третьей задачи управления (при TASK=3)

TASK

1, 2, 3

Целое

Номер текущей задачи управления (1 – идти на точку, 2 – идти по маршруту, 3 – преследовать цель)

POINT

0, 1, 2, 3, 4, 5, 6

Целое

Номер текущей засчитанной точки маршрута для задачи управления 2 – идти по маршруту

FAIL

0, 1

Целое

Состояние процесса управления 0 – норма, 1 – нарушены условия или ограничения на текущую решаемую задачу управления

CRASH

0, 1

Целое

Состояние робота. 0 – норма. 1 –робот разрушен при касании стенки

FUEL

>= 0

С плавающей запятой

Запас топлива (отбрасываемой массы) килограммах. Если = 0 – топливо кончилось.

DONE

0, 1

Целое

Статус моделирования. 0 – работаем. 1 – все три задачи управления выполнены, моделирование завершено.

ERROR

>= 0

Целое

Счетчик управляющих сообщений в неверном формате

IGNORED

>= 0

Целое

Счетчик игнорированных управляющих сообщений (по формату или по времени)

На основании полученных от сервера параметров система управления вычисляет требуемое управляющее воздействие и отправляет его на сервер в виде следующего перечня параметров:

Имя параметра

Возможные значения

Тип

Описание

FRX

-100 – 100

С плавающей запятой

Координата X задаваемого вектора тяги робота

FRY

-100 – 100

С плавающей запятой

Координата Y задаваемого вектора тяги робота

Сервер принимает управляющие воздействия от клиента с частотой не более 10 раз в секунду. При приходе от клиента управляющего сообщения с интервалом менее 0.1 секунды от предыдущего принятого к исполнению управляющего сообщения, новое управляющее сообщение сервером игнорируется. При получении сервером сообщений в неверном формате или неизвестных параметров управляющее сообщение игнорируется.

Процессы отправки и приема сообщений сервером полностью асинхронны.

Ограничения сервера управления:

- общее реальное время моделирования для одного клиента: не более 5 минут;

- получаемый от клиента объем данных: не более 100 Кб/сек;

- частота подключений к серверу: не более 1 раза в минуту;

- передача данных, не соответствующих описанному формату: запрещена.

Невыполнение ограничений сервера управления вызывает принудительное закрытие сетевого соединения с клиентом. При обнаружении попыток свалить сервер следует бан клиента с занесением в черный список и (опционально) соответствующей записи в зачетку.

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

Предложения по совершенствованию системы моделирования и сообщения об обнаруженных ошибках принимаются лично по расписанию занятий.

Пример потока сообщений от сервера (без переводов строк и пробелов!):

{(T=15.55)(R=10)(M=52.4)(RX=0.51)(RY=0.3124)(VRX=0.4623)(VRY=5.8)(TR=0)(TX=0)(TY=0)(TASK=1)(POINT=0)(FAIL=0)(CRASH=0)(FUEL=30.137)(DONE=0)(ERROR=0)(IGNORED=5)}{(T=15.6)(R=10)(M=52.32)(RX=-0.49)(RY=0.3)(VRX=0.4623)(VRY=5)(TR=0)(TX

=0)(TY=0)(TASK=1)(FAIL=0)(CRASH=0)(FUEL=30)(DONE=0)(ERROR=0)(IGNORED=5)}

Пример потока сообщений от клиента (без переводов строк и пробелов!):

{(FRX=0.1)(FRY= 1.004)}{(FRX=0)(FRY= 1)}