Самое лучшее схемное и
конструктивное построение информационно-управляющих систем останется лишь
сложной и дорогостоящей оболочкой, если не вдохнуть в нее внутреннее
содержание - алгоритмическое и программное наполнение, способное обеспечить
решение необходимого класса задач управления, в том числе и интеллектуальных.
Кусок кремния, обработанный на самых современных предприятиях электронной
промышленности и ставший микропроцессором, сам по себе является субстанцией
довольно инертной, а его чудесное превращение в "мозг" робота
происходит благодаря программному обеспечению, которое и есть движущая сила
управления. Органической составной частью алгоритмического и программного
обеспечения являются языки программирования, которые служат не только и не
столько способом представления информации и общения робота с оператором,
сколько средством логического анализа интеллектуальных задач. Обычные
человеческие языки для этой цели подходят плохо, так как не обеспечивают
строгости формализации задач, точности и надежности их логического анализа.
Кроме того, способность распознавания роботом отдельных слов для описания
задачи довольно ограничена и требует большого объема оперативной памяти для
хранения речевых данных, поэтому в качестве языка робота должен
использоваться специально созданный формализованный язык. При этом язык
программирования должен быть адекватным тем задачам управления, которые
должны решаться с его помощью, а значит, в рамках иерархического построения
ИУС язык может быть различных уровней.
В общем случае можно выделить четыре уровня языка
программирования роботов, соответственно решаемым задачам управления -
исполнительных приводов, манипулятора, операций и задания.
Используя язык низшего исполнительного уровня, оператор
может задавать движение отдельных степеней подвижности манипулятора в виде
определенных значений линейных или угловых перемещений звеньев МС.
Язык уровня манипулятора позволяет управлять совокупным
движением МС в рабочем пространстве относительно произвольной координатной
системы для реализации необходимого перемещения и ориентации рабочего органа,
не задумываясь о состоянии отдельных степеней подвижности и координации их
перемещений.
Язык уровня операций позволяет формировать рабочую
программу путем указания лишь последовательности операций, которые робот
должен осуществить с объектом манипулирования.
На языке высшего уровня заданий программа действий робота
составляется в терминах "что сделать" (а не "как
сделать"), т.е. в общем виде без детализации.
Степень необходимой конкретизации заданий роботу,
подготавливаемых оператором, определяется уровнем входного языка системы
управления: чем выше уровень этого языка, тем в более обобщенном виде может
быть сформулировано задание. Идеальным было бы выдать роботу общую задачу,
например, "Произвести сборку редуктора" и ожидать исполнения.
Однако пока еще системы управления и языки такого уровня не вышли из стен
экспериментальных лабораторий.
В настоящее время сложились два подхода к программированию
роботов: 1) программирование, ориентированное на робота (роботоориентированное),
и 2) проблемно ориентированное или программирование на уровне задачи.
В роботоориентированных языках, являющихся пока основными
в современных устройствах управления, задача робота описывается как последовательность
его движений. Робот управляется программой в течение выполнения всей задачи,
причем каждый шаг программы примерно соответствует одному действию робота.
Наиболее распространенными роботоориентированными языками в настоящее время
являются языки AL и AML.
Язык AL, разработанный в Стендфордском университете США,
повлиял на создание многих роботоориентированных языков и продолжает активно
развиваться. Он обладает широким набором команд для удовлетворения
требованиям программирования робота и свойствами языка программирования
высокого уровня с характерными чертами Алгола и Паскаля.
Язык AML разработан фирмой IBM и предназначен для
управления роботами собственного производства. С помощью этого языка
воссоздается окружающая среда робота, в которой могут быть построены его
различные действия. На языке AML пользователь имеет возможность описывать
движения звеньев робота в обобщенных координатах, планировать их траектории в
пространстве и составлять собственные программы для представления движений в
декартовых координатах.
И все же программирование на роботоориентированном языке
громоздко и утомительно, он труден для практической эксплуатации, поскольку
пользователь вынужден подробно программировать каждое движение робота.
Проблемно ориентированные языки программирования позволяют
сформулировать задачу как последовательность целей или промежуточных
положений объекта, а не последовательность движений робота, необходимую для
достижения этих положений. Значит, в этом случае
В качестве проблемно ориентированного языка можно назвать
AUTOPASS, разработанный фирмой IBM на базе компьютерного языка ПЛ/1. В
системе AUTOPASS объекты моделируются с помощью процессора геометрического
конструирования, в котором реализованы определенные процедуры для описания
объектов, а для представления состояний рабочего пространства применяются
графы, вершины которых обозначают объекты, а дуги - связи между ними.
И хотя проблемно ориентированный язык использовать намного
легче по сравнению с роботоориентированным, однако он требует решения многих
сложных проблем, возникающих при планировании задачи, моделировании объекта и
рабочего пространства, обходе препятствий, планирования траектории и т.д., и
пока не получил достаточного развития. Поэтому основным направлением
программирования роботов пока еще остается роботоориентированное.
Для любого языка программирования высокого уровня
важнейшим качеством является наличие в нем особой системы логического анализа
или дидукции даже в ущерб краткости и легкости общения, для чего весьма
эффективным является использование аппарата логики предикатов, или исчисления
предикатов, основные понятия о котором рассмотрим ниже.
|