Обучение робота выполнению работ (Глава 7 книги "Роботы и автоматизация производства"), страница 15

Может показаться, что при программировании на языке АРМБейсик от программиста потребуется выполнять подробные вычисления, включая тригонометрические преобразования с использованием размеров звеньев роботов и подсчет угловых перемещений для каждого импульса, поданного на двигатель, однако это не так. Благодаря наличию режима ручного управления, обеспечиваемого командой @SET, звенья робота можно привести в требуемое положение, после чего выполняется команда @READ. При этом алгебраическая сумма импульсов, поданных после последней команды @READ, запоминается для последующих манипуляций. В следующий раз, когда программист захочет вернуть робот в то же самое место, он использует команду @STEP, чтобы установить количество импульсов, подаваемое на каждую ось. Это количество равно разности между зарегистрированным количеством импульсов в исходном положении и в точке назначения. На рис. 7.11 приведено объяснение процедуры программы движения. По программе робот движется плавно, поскольку АРМБейсик обеспечивает подачу импульсов на шаговые двигатели в пропорции, гарантирующей плавное перемещение непосредственно из точки Л в точку В. Обычно траектория не является прямой, но и не будет так изогнута, как показано на рис. 7.11. Там это сделано для наглядности.

Главное, что нужно усвоить из рис. 7.11, это то, что программисту не требуется подсчитывать и даже вообще знать действительное количество импульсов, зарегистрированных переменными А1 — А6 и B1 В6. Программист, указывая переменные, просто предписывает ЭВМ занести в свою память данные о количествах поданных импульсов. После этого, во время процесса обучения, программное обеспечение присваивает этим переменным значения, соответствующие подсчитанному количеству импульсов, и заносит их в память. Вся процедура происходит в системе без обратной связи, работоспособность которой обеспечивается только в том случае, если нет пропуска импульсов шаговым двигателем из-за попадания робота в препятствие или из-за слишком быстрого вращения. Если импульсы не будут отработаны, ЭВМ не узнает, что робот не находится в том положении, в котором он должен находиться по данным, имеющимся в ее памяти.

Рис. 7.11

Использование возможностей языка АРМБейсик для сокращения количества непосредственно программируемых точек с использованием сэкономленного количества в дальнейшем программировании:

1 — используя команду @ SET, введите координаты А1, А2, A3, А4, А5, А6, определенные при работе с клавиатурой в ручном режиме. Команда @. READ экономит координаты; 2 — для перемещения из точки Л в точку В по программе используйте команду @ STEP SP. B1—A1, В2—А2, ВЗ—АЗ, В4—А4, В5—А5, В6—А6; 3 — используя команду @ SET., введите координаты Bl, В2, ВЗ, В4, В5, В6, определенные при работе с клавиатурой в ручном режиме. Команда @ READ сэкономит координаты; 4 — для перемещения из точки В в точку А по программе используйте команду @ STEP SP. А1—Bl, А2—В2, АЗ—ВЗ, А4—В4, А5—В5, А6—В6

Легче всего это уяснить на примере. Подготовим программу для робота на языке АРМБейсик. Мы запрограммируем ту же операцию переноски деталей, для которой была составлена программа BETTER. А. ТО. В на языке ВАЛ. Прежде всего нужно оговорить переменные, значения которых будут определять отсчет шагов по всем осям робота для прихода в требуемую точку. Под отсчетом шагов подразумевается суммарное число шагов, отрабатываемых шаговым двигателем, которое требуется для прихода в данную точку из исходного положения, определяемого командой @RESET.

Пусть Ai отсчет шагов по оси i до точки, где производится захват детали; bi отсчет шагов по оси i до точки установки детали; Сi — отсчет шагов по оси i для подхода к точке A; diотсчет шагов по оси i для подхода к точке В.

Предположим, что имеется робот с шестью осями, у которого шестая ось — захват. Это означает, что имеется 20 переменных (4 точки * 5 осей), для которых нужно определить отсчет шагов из исходного положения. Кроме того, следует установить разность отсчета шагов между открытым положением захвата и положением, когда он зажимает предмет.

Самым практичным способом введения в управляющую ЭВМ значений этих переменных (в количестве 21) будет физическое перемещение робота в требуемые положения по команде @SET.