Васильев Иван
Анатольевич
Санкт-Петербург, ЦНИИ
РТК, нач. лаб., к.т.н.
Михаил Викторович Коваль
Санкт-Петербург, ЦНИИ РТК,
вед. программист
Евгений
Константинович Игнатиади
Санкт-Петербург, ЦНИИ РТК, программист
УнифицированнАЯ
системА управления мобильными роботами
Введение
Мобильная
робототехника, как одно из самых актуальных направлений робототехники, в ЦНИИ
РТК имеет высший приоритет в разработке. В ЦНИИ РТК сформулированы основные принципы,
на которых должны базироваться все СУ мобильными роботами:
-    
Модульность;
-    
Наращиваемость;
-    
Унифицированность;
-    
Иерархическая
структура аппаратной части;
-    
Иерархическая
структура программной части;
-    
Иерархическая
структура интеллектуального управления.
В настоящей
работе рассматривается созданный в ЦНИИ РТК унифицированный программно-аппаратный
комплекс, соответствующий заявленным принципам. Эта система реализована на многих
роботах разной кинематики, разного сенсорного оснащения и разного назначения. Например,
это такие роботы, как четырёхколёсный мобильный робот с поворотными колёсами,
см. рис. 1, шестиколёсный мобильный робот с танковым разворотом, см. рис. 2, малый
шестиколёсный мобильный робот с танковым разворотом, см. рис. 3, гусеничный
робот, см. рис. 4 и некоторые другие.
| 
   
 Рисунок
  1 - робот с поворотными колёсами  | 
  
   
 Рисунок
  2 - робот с танковым разворотом    | 
  
   
 Рисунок
  3 - малый шестиколёсный мобильный робот    | 
  
   
 Рисунок 4 – гусеничный
  робот  | 
 
В
настоящее время многие разработчики робототехнических комплексов начинают
использовать унифицированные программные и аппаратные платформы (например,
такое средство унификации, как Microsoft Robotics Developer Studio).
Все эти попытки (или, во всяком случае, большинство из них) ориентируются на
ограниченное множество операционных платформ, сенсорного оснащения и аппаратной
реализации. В случае ЦНИИ РТК создан такой ПАК (программно-аппаратный
комплекс), который применим практически для любой конфигурации систем
управления робототехнических комплексом.
Любая
СУ технической системой, как известно, состоит из трёх уровней иерархии:
-
аппаратный уровень (датчики, привода, средства связи и пр.);
-
ПО нижнего уровня (обмен сигналами с аппаратной частью);
-
ПО верхнего уровня (целевой функционал управления).
 
Аппаратный уровень
Для
обеспечения управления приводами, обработки различных датчиков а также
обеспечения радиосвязи с пультом на расстоянии до 100 метров на открытой
местности может использоваться стандартный роутер (к примеру, Dlink
DIR-320)  который перепрошивается
открытым ПО (OpenWRT). Прошивка содержит стандартный функционал роутера, а
также туда могут быть добавлено специализированное ПО, разработанное в ЦНИИ РТК,
и тем самым обеспечивается применение роутера в качестве центрального
коммуникационного устройства робототехнического комплекса, что резко удешевляет
создание робототехнического средства.
Таким
образом получается платформа к которой могут быть подключены устройства с
Ethernet и с CAN сетью. 
Центральным
местом платформы является микропроцессор. В ЦНИИ РТК используются
микропроцессоры архитектур  x86, ARM, MIPS.  При этом с точки зрения: 
·     
Потребления энергии-наибольший интерес представляют ARM
(потребление 10-20 мВт).
·     
Коммуникационных возможностей-MIPS (5 штук ethernet,
Wi-Fi)
·     
Вычислительной мощности-x86 (Intel Atom)
Оба
уровня ПО реализованы на базе GNU Linux и независимы от аппаратной платформы. В
настоящее время не существует микропроцессоров (при достаточном обьеме ОЗУ и
производительности) которые не поддерживались бы GNU Linux, которая, по сути,
предоставляет равные с точки зрения задач программной платформы мобильного робота
условия,  на любых процессорах. Таким образом,
можно констатировать основные преимущества разработки программной платформы,
как-то:
·     
переносимость между аппаратными платформами 
·     
повторная применяемость программных модулей
·     
структурирование кода за счет повторного использования
·     
возможность одновременной разработки составных
подпрограмм за счет структурирования
·     
повышение надежности
·     
простое взаимодействие роботов имеющих общую платформу 
·     
программно унифицированный пульт управления для всех
роботов 
      Что касается универсальности уровня контроллера
привода то представляется разумным использовать связку контроллер двигатель
(maxon) для макетов. А в случае серийного изделия разработку собственного
контроллера двигателя (желательно на базе протоколов maxon).
 
Программный уровень.
Для
уверенного и безопасного движения всех роботов в пределах рабочего пространства
все их СУ должны выполнять следующие действия:
-    
Строить
безопасные траектории для движения в целевое положение;
-    
Отслеживать
и корректировать отработку этих траекторий при движении робота;
-    
Останавливать
работу при выходе параметров за допустимые пределы.
Выполняя
вышеперечисленные действия СУ должна строить карты окружающей обстановки. Здесь
под картами окружающей обстановки понимаются не только карты рабочей зоны, но и
карты параметров, полученных с помощью специальных сенсоров: например, для
четырёхколёсного робота это могут быть карты радиационной обстановки.
На
рисунках 5 и 6, а также в таблице 1 приведены структурная, функциональная схема
СУ мобильным роботом, а также её потоковая структура.
СУ
строится на принципах конечного автомата: текущее управление роботом
вычисляется на основании текущих показаний датчиков и текущего состояния
системы. 
 
Таблица 1 – Потоковая
структура ПО
| 
   № потока  | 
  
   0  | 
  
   1  | 
  
   2  | 
  
   3  | 
  
   4  | 
  
   5  | 
  
   6  | 
  
   7  | 
 
| 
   Наз-вание потока  | 
  
     Управ-ление  | 
  
     Безопас-ность  | 
  
     Локализация/ карты  | 
  
     CAN  | 
  
     Дально-меры  | 
  
     БИНС  | 
  
     Спец. датчики  | 
  
     Обмен по сети  | 
 
| 
         Функ-циона-льное назначение потока  | 
  
       Формирует текущее управление в зависимости от задания и обстановки  | 
  
     Проверяет на
  безопасно-сть текущего положения, текущего движения и текущего задания  | 
  
   Определяет
  текущие координаты, комплексирует показания датчиков по текущему алгоритму, уточняет
  карту на основе текущих датчиков.  | 
  
   Принимает
  текущие показания датчиков, подключенных к CAN-шине, преобра-зует их в
  физические значения  | 
  
   Принима-ет
  показания дальномеров, преобра-зует их в физиче-ские значения  | 
  
   Принимает
  текущие показания бесплатформе-нной инерциальной навигационной системы и
  довычисляет их до актуальных физ. значений  | 
  
   Принимает
  текущие показания специальныхдатчиков и довычисляет их до актуальных физ.
  значений  | 
  
   Обмен с
  удален-ным пультом управления по сетевым каналам  | 
 

 
Рисунок
5 – структурная схема СУ мобильным роботом
 

Рисунок 6 – функциональная схема СУ мобильным роботом
 
 
Заключение
Описанный
программно-аппаратный комплекс показал свою отличную применимость на множествах
разных роботов, в том числе на специализированном робототехническом комплексе,
состоящем из двух манипуляторов. 
На
малом шестиколёсном мобильном роботе (рис. 3) установлены целых два
вычислителя: один, на базе обычного WiFi-роутера служит для
обработки показаний датчиков и, на основании этой информации, вычисления
управления; и второй, на базе платформы Intel-Atom,
предназначен для обработки видеоинформации с телекамер. Оба эти вычислителя
объединены в комплекс на принципах программно-аппаратного комплекса.
На
четырёхколёсном мобильном роботе с поворотными колёсами (рис. 1) реализован
комплекс для поиска и эвакуации источников ионизирующего излучения (ИИИ). Для
поиска ИИИ применяются специальные датчики, показания которых комплексируются с
классическими навигационными датчиками, такими как БИНС, одометр и дальномер.