Архитектура системы управления мобильным роботом
ARCHITECTURE OF MOBILE ROBOT CONTROL SYSTEM

Изобретение относится к области управления мобильными робототехническим комплексами, в частности мобильными роботами.
Известно устройство программного управления (заявка на изобретение 94025187/09, 04.07.1994 г., дата публикации 27.05.1996 г.), в котором к единой информационной магистрали подключены: устройство ввода программы, контроллер прерываний, вычислитель, перепрограммируемое запоминающее устройство, контроллер пульта оператора, цифровая система импульсно-фазового управления. В устройство входят также тиристорный преобразователь, датчики проводимости и тока, электродвигатель, датчики скорости и положения, блок электроавтоматики.
Недостатком данного устройства программного управления является наличие единой информационной магистрали для передачи и приема управляющих команд и данных устройствами, входящими в систему устройства программного управления.
Задача изобретения: усовершенствование архитектуры системы управления с целью исключения коллизий при передаче команд и данных по единой магистрали, а также получения возможности увеличения скорости передачи команд и данных.
Задача решается тем, что система управления мобильным роботом имеет иерархическую архитектуру, притом каждое устройство, входящее в систему, имеет связь с остальными устройствами посредством двух магистралей: шины команд и шины данных (фиг. 1). Обмен информацией между всеми устройствами, подключенными к шине команд и шине данных, выполняется отправкой и приемом сообщений, причем каждый кадр сообщений имеет формат последовательности байтов (фиг. 2).
В системе управления мобильным роботом каждое нижестоящее устройство системы подчиняется вышестоящему посредством управляющих команд. Передача управляющих команд в системе осуществляется от вышестоящего устройства к нижестоящему устройству (нескольким нижестоящим устройствам) посредством шины команд, а передача данных выполняется от устройства-формирователя данных к устройствам-получателям (вышестоящим устройствам, нижестоящим устройствам и устройствам сходного уровня иерархии с устройством-формирователем данных) посредством шины данных, притом передача команд и данных возможна непосредственно устройству-получателю минуя промежуточные устройства благодаря тому, что команды и данные передаются через шину команд и шину данных соответственно, причем при такой организации шин возможна широковещательная передача команд и данных от одного устройства-источника нескольким устройствам-получателям (фиг. 1).
Самым верхним уровнем иерархии устройств является первый уровень (рис. 1). Устройство первого уровня иерархии является вышестоящим для всех остальных устройств системы управления. Минимальное количество устройств в системе управления мобильным роботом равно двум, причем только одно из устройств может иметь первый уровень в иерархии устройств системы управления. Уровень иерархии устройства понижается с увеличением номера уровня устройства.
Физический уровень шинных интерфейсов системы управления – дифференциальная пара (последовательный интерфейс), что обеспечивает высокую устойчивость передаваемого сигнала к синфазной помехе.
Каждое устройство системы управления имеет процессор или микроконтроллер, выполняющий передачу/прием команд и данных, сбор, обработку и хранение данных датчиков физических величин, управление приводами или исполнительными устройствами робота, передачу/прием информации посредством радиосвязи. Расположение всех данных в оперативной памяти, подключенной к процессору/микроконтроллеру устройства системы управления имеет вид одномерных массивов постоянной длины. Каждый элемент такого массива является местом хранения текущего значения некоторой величины в цифровой форме, отражающей сведения:
- об управляющих командах, переданных нижестоящим элементам системы управления,
- о состоянии мобильного робота и окружающей его среды (данные, полученные от датчиков, процессоров/микроконтроллеров).
Каждая величина занимает в статическом одномерном массиве фиксированную и неперемещаемую область памяти – регистр, переход к которому осуществляется посредством указания константного индекса (номера) нужного элемента массива.
Все регистры делятся на две группы:
- регистры команд,
- регистры данных.
Регистры отправляемых команд располагаются в оперативной памяти устройства, формирующего команды (вышестоящего устройства) и доступны только ему для чтения и записи. В оперативной памяти нижестоящих устройств располагаются регистры принимаемых команд вышестоящего устройства – вышестоящее устройство имеет возможность записи команд в регистры подчиненного устройства, при этом нижестоящему устройству доступно только чтение своих регистров принимаемых команд.
Регистры отправляемых данных располагаются в оперативной памяти устройств, формирующих эти данные и доступны только им для чтения и записи. Регистры принимаемых данных находятся в оперативной памяти устройств-получателей, и доступны им только для чтения – устройство-формирователь данных имеет возможность записи данных в регистры принимаемых данных этих устройств.
Регистры команд и регистры данных размещаются в массивах регистров команд и массивах регистров данных соответственно. Передача информации регистров команд выполняется в виде отправки и приема сообщений по шине команд, передача информации регистров данных выполняется в виде отправки и приема сообщений по шине данных.
Кадр каждого сообщения команд/данных имеет формат последовательности байтов (фиг. 2), включающей в себя:
- начало сообщения (преамбула) – является идентификатором (маркером) начала сообщения; преамбула также может включать информацию о том, что данные сообщения должны быть записаны в определенные типы (модули) памяти, или о том, что текущее сообщение является запросом/разрешением на передачу данных;
- идентификатор оригинальности сообщения – сообщение может быть либо оригинальным (от устройства-отправителя устройству-получателю), либо эхо-сообщением (от устройства-получателя устройству-отправителю);
- идентификатор устройства-получателя, кому адресованы команда или данные;
- идентификатор устройства-отправителя;
- значение длины фрагментов данных кадра сообщения в количестве байтов (указывается суммарная длина фрагментов кадра, которыми являются номера регистров команд и их значений или номера регистров данных и их значений);
- один или несколько последовательно идущих друг за другом фрагментов данных кадра сообщения;
- контрольная сумма всего кадра сообщения.
Архитектура системы управления мобильным роботом работает следующим образом.
Устройство, формирующее команды, и устройство, формирующее данные, инициируют передачу команд и данных соответственно. Таким образом, эти устройства определяют частоту обновления значений регистров принимаемых данных устройств-получателей.
Для обеспечения обнаружения и устранения появления коллизий при передаче данных/команд между устройствами передающее устройство должно перед передачей команд/данных определить присутствие сигнала (помехи) другого устройства в передающей среде (шине). Если помеха от другого устройства присутствует в передающей среде, передающее устройство откладывает передачу, транслирует через шину команд/данных специальное сообщение помехи, сообщающее всем устройствам, подключенным к шине, о необходимости завершения ими передач и ожидает некоторый период времени, перед тем как возобновить свою передачу.
Контроль ошибок передачи команд/данных выполняется двумя способами:
- устройство-получатель транслирует устройству-отправителю ответное эхо-сообщение – устройство-отправитель сравнивает данные (значения регистров и данных/команд) в ответном сообщении с данными в отправленном сообщении и при несовпадении данных устройство-отправитель повторяет трансляцию;
- в конце каждого кадра сообщения размещается контрольная сумма, предназначенная для проверки целостности кадра сообщения, длиной два и более байт – принимая сообщение, устройство-получатель вычисляет контрольную сумму сообщения без учета отправленной контрольной суммы и сравнивает с ней результат своих вычислений: если их значения не совпадают, сообщение игнорируется.
Все регистры имеют одинаковые длины. Для многих задач робототехники длина одного регистра в 2 и 4 байта достаточна – для хранения 16- и 32-разрядных чисел соответственно. Хранимые числа могут быть со знаком и без знака. При длине регистра в 4 байта возможно хранение числа одинарной точности с плавающей запятой. Возможна длина регистра в 8 байт и более.
При необходимости работы с массивами данных размерностью, больше чем единица (двумерный массив, трехмерный массив и т.д.) в регистрах размещаются элементы этих массивов, при этом многомерные массивы имеют фиксированную длину и представляются как одномерный массив массивов. В этом случае устройство-формирователь данных передает многомерные массивы данных устройствам-получателям по частям.
Работа системы управления мобильным роботом, использующей данную архитектуру и состоящей из трех устройств (рис. 1), может выполняться следующим образом.
Устройство 1 уровня 1 формирует и отправляет команды по шине команд устройству 2 и устройству 3 уровня 2: для устройства 2 – команду о запуске приемо-передающим устройством радиосвязи, подключенным к устройству 2, передачи по каналу радиосвязи данных о состоянии мобильного робота на пульт удаленного управления роботом; для устройства 3 – команду о сборе данных с датчиков физических величин, подключенных к устройству 3. Устройство 1 уровня 1 формирует и отправляет команды по шине команд устройству N уровня N: команду о сборе данных с датчиков физических величин, подключенных к устройству N и команду о формировании устройством N управляющих импульсов для драйверных схем управления приводами или схем управления исполнительными устройствами, которые подключены к устройству N. Устройство 1 уровня 1 является вышестоящим для устройства 2 и устройства 3 уровня 2, устройства N уровня N.
Устройство 3 уровня 2 и устройство N уровня N формируют и отправляют поочередно данные по шине данных устройству 1 уровня 1 и устройству 2 уровня 2. Шина данных выполняет функцию обратной связи в системе управления мобильным роботом.
Данная архитектура системы управления мобильным роботом позволяет устройствам, входящим в систему управления, асинхронно и независимо друг от друга отправлять и принимать команды управления и данные. При использовании отдельных шин команд и данных исключаются коллизии при передаче команд и данных по единой магистрали, а также появляется возможность увеличения скорости передачи команд и данных.