Адаптивное управление с прогнозирующими моделями при переменной структуре пространства состояний с приложением к системам сетевого управления движением и автоматизации медицинского оборудования

Стенд из 100 роботов

Стенд состоит из группы колесных роботов. Он предназначен для отработки алгоритмов и протоколов выполнения группой роботов миссий по перемещению в комнате с заранее неизвестными препятствиями к включающемуся в заранее неизвестном месте источнику света с минимизацией столкновений. Размеры роботов 10*10*10 см (Рис. 1). Каждый робот имеет два ведущих колеса и одну шаровую опору. Он может двигаться вперед, назад, влево, вправо, вращаться на месте, в левую и в правую сторону. Движение робота осуществляется вращением двигателей, которое задается управляющим сигналом типа ШИМ с контроллера робота в пределах от 1 до 2 мс, где 1,5 мс соответствует нулевой скорости вращения, а 1 мс и 2 мс соответствует максимальной скорости вращения двигателя по часовой и против часовой стрелки.

Робот группы
Рис. 1 - Робот группы

Сценарий для группы роботов:

  1. Все роботы стоят в углу или просто у стены большого помещения, в котором случайным образом расставлены прямоугольные препятствия разных размеров и превышающие в 3 раза высоту роботов.
  2. В двух других углах (или просто на двух других стенах) устанавливаются два источника света.
  3. Включается один источник света.
  4. Роботы начали движение.
  5. При встрече с препятствием роботы обходят его, разделяясь при необходимости на подгруппы.
  6. После прохождения большей части пути свет гаснет и загорается второй источник.
  7. В итоге все роботы должны достигнуть источника света, который включен.

Выберем систему координат с центром в месте расположения одного из источника света, как глобальную система координат. Каждый робот имеет свою локальную систему координат с центром в точке центра масс. Робот имеет бортовой магнитометр и четыре датчика освещенности с углом обзора 150 градусов, которые расположены так, как показано на Рисунке справа.

Схема расположения датчиков света
Рис. 2 - Схема расположения датчиков света

В передней части робота расположен датчик расстояния (Sharp GP2Y0A02YK0F), направление измерения дальности которого совпадает с направлением движения робота и имеет пределы измерения от 10 до 100 см. Отдельно взятый робот не имеет информации о своем местонахождении в глобальной системе координат и о местоположении своих соседей, но имеет знание о своем курсе движения, который получает от бортового магнитометра. Роботы обмениваются данными о своем состоянии в некоторые моменты времени. Для группового взаимодействия в каждом роботе установлен модуль передачи данных, который работает в двух режимах одновременно. Первый режим позволяет широковещательно передавать информацию о своем состоянии всем, кто слышит, второй режим сканирует сеть в рамках заданных частот и считывает данные от ближайших соседей. Важной особенностью группы является то, что роботы не знают от кого именно получают информацию, но знают за счет дополнительной информации о мощности сигнала с какого расстояния получают данные. В каждый момент времени с определенной частотой дискретизации робот пересчитывает курс на источник света по датчикам освещенности и данным магнитометра. Сначала робот вычисляет направление на источник в своей локальной системе координат, а потом переводит это направление в глобальную систему координат по данным магнитометра.

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

В зависимости от расстояния до препятствия робот действует по одному из трех сценариев:

  1. Если датчик расстояния показывает расстояние больше 100 см это означает, что видимых препятствий по курсу движения нет. И желаемый курс рассчитывается исходя из данных от соседей и своего расчета курса.
  2. Если показания датчика расстояния менее 40 см, то робот старается остановиться и его основной целью становится поиск направления движения, в котором расстояния до препятствия будет больше 40 см. При этом робот уже не использует данные от других роботов и датчиков света. В этом режим робот направления вращения и поворачивается на месте по часовой стрелке или против нее до тех пор, пока не найдет возможное направление движения.
  3. Если показания датчика расстояния более 40 см, но менее 100 см, то робот добавляет в свой, рассчитанный по датчикам освещенности, курс поправку на поворот, которая задается в зависимости от физических параметров робота. Выбор знака добавления поправки выбирается исходя из показаний датчиков освещенности: если сумма показаний датчиков 0 и 1 равна сумме показаний датчиков 2 и 3 , то знак выбирается случайным образом, если сумма 0 и 1 больше суммы показаний 2 и 3 , то знак (влево, т.е. против часовой стрелки), если меньше , то знак + (вправо, т.е. по часовой стрелке).

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

На борту робота используются два микрокомпьютера: Arduino micro и ESP8266. Для унификации оба микрокомпьютера прошиваются через Arduino IDE. Скетч прошивка микрокомпьютера Arduino зашивается через UART порт, а скетч ESP прошивается через точку доступа WiFi. Микрокомпьютер Arduino считывает данные с датчиков, формирует данные для отправки соседям и управляет двигателями. Микрокомпьютер ESP8266 рассылает свои данные и получает данные от соседей. При этом работа микрокомпьютеров не требует синхронизации.

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

Демонстрация работы протокола: