Василенко Н.В., Никитин К.Д., Пономарёв В.П., Смолин А.Ю. - Основы робототехники (1071028), страница 66
Текст из файла (страница 66)
Обычные человеческие языки для этой цели подхо. дят плохо, так как не обеспечивают строгости формализации задач, точности и надежности их логического анализа. Кроме того, способность распознавания роботом отдельных слов для описания задачи довольно ограничена и требует большого объема оперативной памяти для хранения речевых данных, поэтому в качестве языка робота должен использоваться специально созданный формализованный язык. При этом язык программирования должен быть адекватным тем задачам управления, которые должны решаться с его помощью, а значит, в рамках иерархического построения ИУС язык может быть различных уровней. В общем случае можно выделить четыре уровня языка программирования роботов, соответственно решаемым задачам управления— исполнительных приводов, манипулятора, операций и задания. Используя язык низшего исполнительного уровня, оператор может задавать движение отдельных степеней подвижности манипулятора в виде определенных значений линейных или угловых перемещений звеньев МС.
Язык уровня манипулятора позволяет управлять совокупным движением МС в рабочем пространстве относительно произвольной координатной системы для реализации необходимого перемещения и ориентации рабочего органа, не задумываясь о состоянии отдельных степеней подвижности и координации их перемещений. Язык уровня операций позволяет формировать рабочую программу путем указания лишь последовательности операций, которые робот должен осуществить с объектом манипулирования. На языке высшего уровня заданий программа действий робота составляется в терминах "что сделать" (а не "как сделать"), т.е.
в общем виде без детализации. Степень необходимой конкретизации заданий роботу, подготавливаемых оператором, определяется уровнем входного языка системы управления:чем выше уровень этого языка, тем в более обобщенном виде может быть сформулировано задание. Идеальным было бы выдать роботу общую задачу, например, "Произвести сборку редуктора" и ожидать исполнения. Однако пока еще системы управления и языки такого уровня не вышли из стен экспериментальных лабораторий.
В настоящее время сложились два подхода к программированию роботов: 1) программирование, ориентированное на робот (роботоориентированное), и 2) проблемно ориентированное или программирование на уровне задачи. В роботоориентированных языках, являющихся пока основными в современных устройствах управления, зада~а робота описывается как последовательность его движений. Робот управляется программой в течение выполнения всей задачи, причем каждый шаг программы примерно соответствует одному действию робота. Наиболее распространенными роботоориентированными языками в настоящее время являются языки А~ и Аэ!!..
Язык А), разработанный в Стендфордском университете США, повлиял на создание многих роботоориентированных языков и продолжает активно развиваться. Он обладает широким набором команд для удовлетворения требованиям программирования робота и свойствами языка программирования высокого уровня с характерными ~ертами Алгола и Паскаля. Язык АМ! разработан фирмой !ВМ и предназначен для управления роботами собственного производства. С помощью этого языка воссоздается окружающая среда робота, в которой могут быть построены его различные действия. На языке АМ!. пользователь имеет возможность описывать движения звеньев робота в обобщенных координатах, планировать их траектории в пространстве и составлять собственные программы для представления движений в декартовых координатах. И все же программирование на роботоориентированном языке громоздко и утомительно, он труден для практической эксплуатации, поскольку пользователь вынужден подробно программировать каждое движение робота.
Проблемно ориентированные языки программирования позволяют сформулировать задачу как последовательность целей или промежуточных положений объекта, а не последовательность движений робота, необходимую для достижения этих положений. Значит, в этом случае В качестве проблемно ориентированного языка можно назвать АОТОРАВВ, разработанный фирмой !ВМ на базе компьютерного языка ПЛ(1.
В системе АОТОРАВВ объекты моделируются с помощью процессора геометрического конструирования, в котором реализованы определенные процедуры для описания объектов, а для представления состояний рабочего пространства применяются графы, вершины которых обозначают объекты, а дуги - связи между ними. И хотя проблемно ориентированный язык использовать намного легче по сравнению с роботоориентированным, однако он требует решения многих сложных проблем, возникающих при планировании задачи, моделировании объекта и рабо~его пространства, обходе препятствий, планирования траектории и т.д., и пока не получил достаточного развития.
Поэтому основным направлением программирования роботов пока еще остается роботоориентированное. Для любого языка программирования высокого уровня важнейшим качеством являетсл наличие в нем особой системы логи~еского анализа или дидукции даже в ущерб краткости и легкости общения, для чего весьма эффективным является использование аппарата логики предикатов, или исчисления предикатов„ основные понятия о котором рассмотрим ниже.
8.1.4. Использование логики предикатов в языках роботов Для решения задач эффективного управления роботом должна быть реализована возможность представления, исправления и преобразования наборов утверждений, для чего и используется язык логики. Логический формализм является мощным средством выведения новых знаний из старых методов математической дедукции. В соответствии с этим методом новое утверждение истинно, если можно доказать, что оно следует из утверждения, о котором уже известно, что оно истинно.
На языке логики предикатов можно представить события окружающего мира в виде так называемых правильно построенных формул (ППФ). Но главное качество логики предикатов в том, что с ее помощью можно не только отобразить знания, но и получить из них новые. Предикаты, или логические функции, используются для установления связи в рассуждениях. Например, для описания факта "Робот в помещении г, '* достаточно простой формулы-атома !ИЯООМ (ЯОВОТ г, ).
Формулы-атомы являются элементарными утверждениями, на Правила соединения символов Словарь символов А основании которых строят более сложные ППФ, используя набор логичЕских операций-действий (см. ниже). Основными компонентами языка логики предикатое, или ее словарем символов, являются: имена, константы и переменные, функции и термины. Имена — это заимствованные из обычных языков выражения, служащие для непосредственного обозначения объекта или вещи. Каждое имя в логике предикатов в отличие от естественных языков имеет только один смысл. Примерами имен являются: "ПОВОТ", "манипулятор", "Оплпа(е'*, "устройство передвижения", "цех" и т.д.
Константы и переменные. Константа — зто собственное имя объекта, человека, робота, числа, например: "ведущий вал", "ЮНИФ (Джон), "РОМА", "один", *'тьго" (два) и т.д, Переменная — это символ, смысловое содержание которого совпадает с содержанием конотанты, но единственность значения константы заменена здесь воэможностью различных значений, принимаемых переменной. С каждой переменной связана некоторая непустая область ее возможных значений. Следует особенно подчеркнуть, что переменная в исчислении предикатов есть определенного рода символ (х, у и тд), а не объект, который этот символ обозначает.
Функции и термины. Определение функции совпадает с общепринятым в математике: зто операция, которая, будучи применена к чему-либо как аргументу, дает некоторый объект в качестве значения функции данного аргумента. Функции применяются для установления связей между предметами, подлежащими рассмотрению. Например, функция любтег (мать) применяется для установления связи между человеком и его родителем по материнской линии: пю(пег (ЮНГч)— мать' Джона. Как и в математике, вводятся понятия области определения и области значения функции, а также форма ее представления: ( (х)— значение функции ( от аргумента х.
Чтобы обозначить значение функции для некоторого аргумента, обычно пишут имя этой функции и приписывают к нему справа имя аргумента, взятое в скобки:1(ЧПООМ (х, у); шоПГег (ЮНН). Если функция применима к упорядоченной системе из и аргументов, то она называется и-арной: ((( К 1, ..., и). Важную роль в исчислении предикатов играют выражения для функций, значения которых принадлежат той же области, что и их аргументы.