НОВОСТИ    БИБЛИОТЕКА    КАРТА САЙТА    ССЫЛКИ    О ПРОЕКТЕ  

предыдущая главасодержаниеследующая глава

3.4. Программное обеспечение адаптивных робототехнических систем

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

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

Прежде чем перейти к описанию процессов построения программного обеспечения адаптивных роботов, сделаем следующее замечание. Для обеспечения адаптивных свойств робота необходима не только дополнительная система (сенсорная, например), но и существенное усложнение программного обеспечения, касающееся как его структуры, так и используемых алгоритмов и математических методов. Это нетрудно заметить, сравнивая содержание данного параграфа с параграфом 2.5, в котором рассмотрены те же вопросы, но на примере программных роботов. Конечно, робототехнические системы с низким уровнем адаптации так же, как, например, рассмотренный выше робот, адаптирующийся к скорости конвейера, могут быть реализованы сравнительно просто. Однако опыт показывает [29, 53, 72], что универсальность и высокий уровень адаптации робота требуют соответственно высокого уровня поддерживающего его программного обеспечения.

Структура и организация программного обеспечения. Программное обеспечение мы рассматриваем как набор взаимодействующих модулей, организованный в специализированную операционную систему и выполняющий все функции по обеспечению связи человека-оператора с ЦВМ и ЦВМ с исполнительным механизмом и внешними устройствами. В этом определении, пожалуй, главным является необходимость рассматривать программное обеспечение как операционную систему со всеми ее атрибутами: монитором, управляющими и исполняющими программами (в частности, языковыми трансляторами), файловой системой и т. д. Эта аналогия определяется в основном совпадениями функций универсальных и специализированных операционных систем, если рассматривать исполнительный механизм (это может быть манипулятор или локомоционный робот) как развитое внешнее устройство. Такой подход позволяет сделать следующие выводы.

  1. Для проектирования программного обеспечения роботов можно воспользоваться результатами, полученными при разработке универсальных операционных систем, а также операционных систем реального времени.
  2. Аналогия с операционными системами порождает новые подходы и идеи, которые можно транспонировать с систем программирования вычислительных машин на системы программирования роботов.

На рис. 3.14 приведена структура такой специализированной операционной системы. Нетрудно заметить, что она фактически содержит все основные компоненты универсальных систем.

Рис. 3.14. Схема программного обеспечения робота
Рис. 3.14. Схема программного обеспечения робота

Программное обеспечение состоит из программ двух типов: управляющих и обрабатывающих. Управляющие программы обеспечивают функционирование системы в целом и составляют, вообще говоря, ядро" операционной системы; обрабатывающие программы выполняют в основном преобразование данных.

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

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

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

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

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

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

Программы пользователя. Это программы, написанные пользователем в текстовом или загрузочном формате и хранящиеся в оперативной памяти или на внешнем устройстве.

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

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

Уровень привода. Процесс, развивающийся на этом уровне, занят преобразованием поступающего на его вход управления в реальное движение подвижных сочленений. Именно этот процесс осуществляет интерфейс с приводами подвижных сочленений, т. е. его'иначе можно назвать драйвером привода; в общей структуре программного обеспечения (см. рис. 3.14) он выделен ввиду важности исполняемых им функций и назван в числе управляющих программ (модуль управления объектом). Часто этот процесс выполняет еще функции подготовки данных о состоянии исполнительного механизма.

Уровень вычисления управления. Главной функцией процесса^, занимающего этот уровень, является преобразование дискретной последовательности целевых точек, или точек позиционирования, в непрерывный (на самом деле - почти непрерывный ввиду дискретной природы ЦВМ) управляющий сигнал.

Уровень вычисления точек позиционирования. На этом уровне могут развиваться два процесса: информационный и вычислительный. Первый занят сбором и обработкой информации о внешней среде и представлением этой информации вычислительному процессу, выполняющему функции трансляции элементарных операторов в последовательность точек позиционирования на основании переданной ему информации.

Уровень оператора. Процесс этого уровня обслуживает оператора, принимая от него команды и адекватно на них реагируя. Ясно, что могут возникнуть ситуации, когда оператор вынужден будет вмешаться, чтобы аварийно остановить процесс исполнения задания, затребовать какую-либо информацию о состоянии задания или выполнить некоторую работу, не связанную с исполнением текущего задания, например сформировать новую программу движения. В си-стеме должна быть предусмотрена такая возможность.

Все перечисленные выше процессы могут развиваться параллельно. На самом деле в простых системах программное обеспечение допускает только последовательную работу, однако это приводит к крайне неэффективному использованию ресурсов управляющих машин, особенно когда она взаимодействует с низкоскоростным внешним устройством, например приводом исполнительного механизма. На рис. 3.15, а схематично показаны эти процессы, а также возникающие между ними связи, характеризуемые как передачами команд (УДАЛИТЬ, ЗАПУСТИТЬ, ПРИОСТАНОВИТЬ), так и передачами данных.

Рис. 3.15. Процессы и связи между ними в системе программирования адаптивного робота: p><sub>1</sub> - драйвер привода; p<sub>2</sub> - вычисление управления; p<sub>3</sub> - вычисление точек позиционирования; S<sub>3</sub> - обработка сенсорной информации; p<sub>4</sub> - связь с оператором
Рис. 3.15. Процессы и связи между ними в системе программирования адаптивного робота: p1 - драйвер привода; p2 - вычисление управления; p3 - вычисление точек позиционирования; S3 - обработка сенсорной информации; p4 - связь с оператором

На рис. 3.15, б приведен пример мультизадачного режима, иллюстрирующий его роль в адаптивных робототехнических системах: процесс p1 - сборочный (на самом деле здесь развиваются несколько процессов, однако для простоты мы показали только один); процесс S1 - информационный, осуществляющий контроль за сборкой с использованием доступных ему сенсорных систем. В качестве такой системы может выступать, например, система технического зрения. Взаимоотношения этих процессов взаимоотношения этих процессов состоят в том, что процесс S1 наблюдая за сборкой, не вмешивается в действия p1 до тех пор, пока не произойдет какого-либо отклонения от нормального развития сборки. В этом случае S1 может приостановить p1 и запросить помощи человека-оператора или передать p1 дополнительную информацию, которой он должен воспользоваться, чтобы ликвидировать отклонение и продолжить сборку (такой способ поведения характеризует высокий уровень адаптации).

Здесь мы не будем обсуждать способы реализации мультизадачных режимов, так как проектированию операционных систем (ОС) посвящено много работ (например, [71]). Это еще раз подтверждает наш первоначальный тезис о существующей аналогии между универсальными ОС и программным обеспечением адаптивных роботов.

Рассмотрим теперь, что же представляет собой операционная система с точки зрения пользователя, т. е. человека-оператора. Заметим, что оператор, программирующий или обучающий робота в условиях производства, вообще говоря, не должен иметь квалификацию программиста. Но система должна быть проста в обращении и эффективна в работе, т. е. должна быть для оператора как бы "прозрачной". На рис. 3.16 схематично показан способ общения человека-оператора с системой. Весь диалог идет с помощью интерактивного монитора, который принимает команды оператора, а также информирует его о состоянии выполняемого задания.

Рис. 3.16. Взаимодействие оператора с системой
Рис. 3.16. Взаимодействие оператора с системой

При разработке языка управления заданиями, т. е. системы команд монитора, главным требованием является следующее: команды монитора должны удовлетворить всем потребностям оператора по обеспечению функционирования робототехнической системы. На рис. 3.17 показаны основные задания человека-оператора и порождаемые ими команды монитора. Среди основных заданий можно указать следующие:

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

Список команд монитора, приведенный на рис. 3.17, не является полным, их синтаксис не описан вовсе, однако эти команды отражают тот необходимый минимум операций, которые выполняет человек в процессе формирования задания адаптивному роботу.

Рис. 3.17. Связь между языком управления заданием и основными операциями
Рис. 3.17. Связь между языком управления заданием и основными операциями

Пример программного обеспечения. Рассмотрим пример системы программного обеспечения управляющей ЭВМ робота. Для краткости введем понятие алгоритмической системы управления роботами (АЛСУР), под которой будем понимать совокупность программ, обеспечивающих реализацию процесса управления роботами, т. е., иными словами, специализированную систему программного обеспечения управляющей ЭВМ. При рассмотрении АЛСУР будем исходить из необходимости обеспечения функционирования робота в недетерминированной среде.

В качестве примера рассмотрим алгоритмическую систему "Барс", которую используют для управления интегральными роботами типа ЛПИ-2 (рис. 3.18).

Рис. 3.18. Функциональная схема АЛ СУР 'Барс'
Рис. 3.18. Функциональная схема АЛ СУР 'Барс'

Среди программ управления исполнительными устройствами выделены следующие программные модули: 1) вычисления управляющих воздействий для манипулятора (10); в модуле 10 осуществляется преобразование координат целевой точки, заданной в декартовом пространстве или в пространстве характеристических координат манипулятора, в управляющие воздействия, которые необходимо подать на приводы манипулятора, чтобы он переместился в заданную точку; 2) управления манипулятором (11), осуществляющий выдачу рассчитанных управляющих воздействий через блок обмена информацией на приводы манипулятора; 3) вычисления управляющих воздействий для телекамеры (13), в модуле 13 по известной конфигурации манипулятора вычисляются управляющие воздействия, которые необходимо подать на приводы телекамеры, чтобы она была направлена на захват манипулятора, т. е. чтобы изображение захвата располагалось в середине экрана видеоконтрольного устройства; 4) управления телекамерой (12), осуществляющий выдачу управляющих воздействий через блок обмена информацией на приводы телекамеры; 5) блокировки системы (5), обеспечивающий экстренное торможение манипулятора по требованию человека-оператора или при срабатывании аварийных датчиков на роботе; при этом также приостанавливается дальнейшее выполнение заданной операции до получения разрешения от человека-оператора.

В группу программ обработки сенсорной информации входят два модуля: опроса измерителей положения (16), служащий для приема и преобразования информации о текущем положении робота в пространстве, и опроса устройств очувствления (15), осуществляющий ввод в алгоритмическую систему "Барс" и преобразование информации о состоянии внешней среды, поступающей от устройств очувствления робота.

Группа программ связи с оператором реализует функции транслятора с входного языка системы, в качестве которого используют язык РОКОЛ [65], и состоит из четырех программных модулей: ввода операторов (7) - принимает и анализирует информацию с пульта оператора, в том числе и операторы проблемно-ориентированного языка РОКОЛ, на котором осуществляется программирование действий робота:

  • расшифровки директив (8) - осуществляет трансляцию введенных программ функционирования робота с языка РОКОЛ в машинный формат;
  • выполнения задания (9) - обеспечивает реализацию заданной оператором программы функционирования робота; он работает в режиме интерпретации операторов языка РОКОЛ;
  • вывода сообщений (4) - служит для вывода на пульт оператора информационных сообщений по запросам других модулей АЛСУР.

Диспетчер алгоритмической системы "Барс" состоит из трех модулей:

  • обработки прерываний (1) - осуществляет анализ и классификацию поступающих с внешнего оборудования сигналов прерывания;
  • выбора программ (2) - обеспечивает распределение процессорного времени между программными модулями АЛСУР;
  • работы с таймером (3) - осуществляет привязку управления роботом к реальному времени.

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

  • обращения к стандартным подпрограммам (17) - служит для организации работы программных модулей АЛСУР с библиотекой стандартных подпрограмм;
  • связи с устройствами внешней памяти (14) - предназначен для организации обмена информацией между АЛСУР и устройствами внешней памяти ЭВМ;
  • контроля системы (6) - осуществляет контроль работоспособности АЛСУР "Барс" в процессе ее функционирования.

На функциональной схеме АЛСУР "Барс" (рис. 3.18) штриховыми линиями показана передача данных между модулями, а сплошными - передача данных и управления. Стрелками указано направление передачи данных или управления. Отсутствие стрелок на линиях указывает на двусторонний обмен информацией между модулями [65].

предыдущая главасодержаниеследующая глава











© ROBOTICSLIB.RU, 2001-2019
При копировании материалов проекта обязательно ставить ссылку на страницу источник:
http://roboticslib.ru/ 'Робототехника'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь