Движение исполнительного механизма современного промышленного робота первого поколения характеризуется теми же фазами, но в стабилизирующей фазе отсутствуют поисковые колебательные движения вблизи конечной точки. Координаты этого положения должны задаваться и воспроизводиться жестко, объекты манипулирования должны располагаться точно в предусмотренном программой месте и точно в таком положении, в котором робот сможет их взять. Ведь робот первого поколения - это "слепой", не имеющий обратной связи механизм.
Человек порой не осознает, как он выполняет то или иное сложное движение: завязывает ботинки, застегивает пуговицы, ставит свою подпись и т. п. Мы выполняем многое рефлекторно, как результат длительной тренировки координации движений, моторики и ориентации.
Вы замечали, как малыш тянется ручками к игрушке, которую он не в состоянии достать? Это он учится координировать зрительные образы с длиной своих рук.
В то же время человеку так и не удается достичь в этом "робототехнического совершенства". Такой элементарный для робота двигательный приказ, как "передвинь руку на пятнадцать сантиметров вверх", с закрытыми глазами человеку практически выполнить невозможно.
Чтобы понять хотя бы приближенно масштаб проблемы, проведем следующий опыт. Оторвитесь на мгновение от книги и посмотрите вокруг. Зафиксируйте расположение предметов в комнате, на столе, на диване.
Теперь закройте глаза, встаньте со стула или кресла и, не открывая глаз, пройдитесь по комнате, возьмите какой-нибудь предмет, скажем, вазу с цветами и переставьте ее на несколько метров в сторону, на другой стол или тумбочку. Ну как, получилось? Независимо от успеха вашего "манипуляционного акта" вы можете себе представить, какие трудности подстерегают движущуюся руку робота и сколько проблем приходится решать его системе управления.
Попробуйте мысленно проговорить про себя все, что вы проделывали: встать, сделать шаг правой ногой, сделать шаг левой ногой, поднять руку, раздвинуть пальцы, подвести пальцы к вазе, сомкнуть пальцы до соприкосновения с вазой, сдвинуть пальцы так, чтобы сила трения между поверхностью пальцев и вазы была больше, чем вес вазы (иначе ваза выскользнет из пальцев), поднять руку с вазой, повернуться на нужный угол и т. д. и т. п. Это и будет своеобразная программа для робота, правда, очень укрупненная. Такие команды, как "встать", "сомкнуть до соприкосновения" или "сделать шаг правой", сами представляют собой целую программу, или, точнее говоря, на языке программистов, стандартную подпрограмму. Затем эти команды нужно преобразовать в пневматические или электрические импульсы соответствующим мышцам, те, в свою очередь, в соответствующие перемещения, углы и моменты и все это проделать с поистине ювелирной точностью. Современный промышленный робот первого поколения обеспечивает точность позиционирования до 0,1 миллиметра. Чтобы представить себе нечто подобное, попробуйте с закрытыми глазами с расстояния хотя бы сантиметров 30 попасть иголкой в точку в конце данной фразы. Не получилось? Ну что ж, попробуйте еще раз. Опять не получилось? Не отчаивайтесь, попробуйте представить, как "тяжко" промышленному роботу, который должен сделать то же самое с расстояния около двух метров, со скоростью несколько метров в секунду при весе иглы несколько килограммов или даже десятков килограммов.
Это тем более трудно сделать, ибо для промышленного робота первого поколения обучающий его оператор является единственным источником внешней информации о требуемых действиях. Это поводырь нашего механического слепого. Информация вводится в виде программы работы в память робота, и он выполняет поставленную задачу в автоматическом режиме, не получая уже никакой дополнительной информации извне.
Существует несколько основных способов составления и ввода программы в память робота.
Во-первых, можцо рассчитать программу движения в виде отдельных команд и кадров и затем ввести ее в память робота. Во-вторых, можно осуществить обучение робота путем однократного "образцового" выполнения задачи в режиме ручного управления манипулятором с пульта путем нажатия кнопок и рычагов. В-третьих, можно обучить робота нужным движениям, взяв его механическую руку и проведя по всем необходимым точкам траектории.
Программирование по первому принципу очень похоже на программирование ЭВМ, только вместо адресов данных и команд арифметических и логических операций ЭВМ используются "адреса" точек пространства и команды "манипуляционных операций": поворот рук вправо (влево), выдвижение втягивание, поднятие - опускание, размыкание - смыкание схвата, вращение кисти вправо - влево и т. п. Программа представляет собой набор таких команд и выполняется циклически необходимое количество раз.
Обучение по второму принципу представляет собой "программирование в реальном времени". Оператор с помощью рычагов и кнопок, расположенных на пульте управления робота, принуждает его к выполнению тех или иных движений. Эта совокупность движений записывается в память робота и воспроизводится нужное количество раз.
Третий принцип обучения больше всего походит на обучение ребенка. Как часто, исчерпав терпение, мы говорим малышу: "Да не так, а вот так..." - и проводим его ручкой с ложкой от тарелки ко рту, мелом на доске или пальцем по клавишам пианино. Точно так же можно научить и робота. Опытный сварщик проводит сварочным аппаратом, закрепленным на руке робота, по оптимальной траектории шва. Движение записывается в память робота, и работа закипела. Обученный робот функционирует автономно под управлением мозга, в память которого заложена программа движений.
В простейших роботах используется цикловая система управления, движения осуществляются "от упора до упора". Программоносителем такой системы управления является специальный барабан, усеянный штырьками.
При воспроизведении барабан поворачивается, штырьки включают приводы, приводы "приводят в движение" всю систему. Такие системы управления называют позиционными.
Непрерывная система управления базируется на принципе магнитофона, записывающего на магнитную ленту совокупность электромагнитных импульсов. Эти импульсы посылают приводы, когда рука робота проводится по заданной траектории.
Наиболее "прогрессивным" способом программирования робота является первый из описанных выше, когда программа робота составляется подобно программе для ЭВМ. Дело в том, что составление такой программы для робота можно поручить... другой ЭВМ. А при "массовом производстве" программ это дает немалый эффект. Вот пример подобного программирования.
Рассмотрим технологический цикл нанесения многослойного покрытия на деталь сложной формы "воронка". Воронка имеет "хвост" - удлиненную часть детали и основание - полый конус. В цеху имеется длинная ванна со специальным составом, над которой расположен "мост" для просушивания очередного слоя покрытия. Технология покрытия заключается в следующем. Подойдя к очередной воронке, рабочий берет ее за "хвост" и опускает в ванну, затем переходит к следующей детали. Следующая деталь находится в ванне. Взяв деталь за "хвост", рабочий вынимает ее из ванны и помещает на "мост", где деталь проходит сушку, затем переходит к следующей детали. Дойдя до конца ванны, рабочий возвращается обратно и, смотря по тому, где находится первая деталь, помещает ее либо в ванну, либо на мост для сушки. После десяти таких окунаний деталь готова. Она помещается на транспортер для движения на склад. Укрупненная программа такой операции будет выглядеть примерно следующим образом: