Робототехника для школы. Часть 3

В предыдущих частях:
Часть 1 — конструкция манипуляционного робота
Часть 2 — программа управления для манипуляционного робота

Ручное управление роботом

В прошлой статье мы описали программу, с помощью которой наш робот переворачивал бочки с джемом. Данная программа выполняла заданную последовательность команд в автоматическом режиме, т.е. человек не мог повлиять на процесс выполнения операции. Кроме того, наш манипулятор, управляемый данной программой, способен брать объекты строго определённого размера. А что если возникнет необходимость переноса бочек разных размеров? Нам захотелось добавить в программу возможность ручного управления манипулятором с компьютера, чтобы иметь возможность полностью контролировать нашу производственную операцию.

Для начала было решено создать графический интерфейс, позволяющий переключаться между ручным и автоматическим режимами управления. На вкладке Panel главной программы мы разместили компонент Slider (Element groups->Operating elements->Control elements), а также элементы оформления Drawing functions (Drawing->Shapes и Text) (рис. 1).

Рис. 1 Выбор режима работы программы

Рис. 1 Выбор режима работы программы

Нажатием правой кнопкой мыши на переключателе вызывается контекстное меню свойств объекта. Можно задать новое имя для данного компонента, а также минимальное и максимальное целочисленные значения между которыми возможно его переключение. В данном случаи мы ввели только два значения – 0 и 1.

Теперь можно представить каждый режим управления отдельной подпрограммой. Для этого мы перенесли тело основной программы автоматического управления, рассмотренной нами в предыдущей статье, в отдельную подпрограмму Automation control (рис. 2).

Рис. 2 Подпрограмма Automation control

Рис. 2 Подпрограмма Automation control

Для ручного управления была создана подпрограмма Manual control. Чтобы слайдер действительно устанавливал режим работы, необходимо организовать связь между ним и основной программой. Для этого в ROBOPro предусмотрен компонент Panel Input (Program elements->Inputs, outputs) (рис. 3). В свойствах данного компонента, на вкладке Panel можно выбрать элемент, с которым он будет связан.

Рис. 3 Главная программа (Main program)

Рис. 3 Главная программа (Main program)

Для ручного режима управления (подпрограмма Manual control) мы предусмотрели возможность использования команд движений аналогичных автоматическому режиму – повороты манипулятора к столам 1 и 2 (подпрограммы M1-cw button и M1-ccw button), а также открытие/закрытие захватного устройства (подпрограммы M2-mOpen и M2-mClose) (рис. 4).

Рис. 4 Подпрограмма Manual Control

Рис. 4 Подпрограмма Manual Control

Для возможности вызова соответствующих команд в интерфейс программы были добавлены специальные кнопки (рис. 5)

Рис.5 Графический интерфейс в среде ROBOPro

Рис.5 Графический интерфейс в среде ROBOPro

По нашему замыслу при ручном режиме работы, после нажатия на одну из кнопок, должно начинаться соответствующее ей движение. После повторного нажатия кнопки, движение должно прекратиться. Для этого мы ввели возможность «западания» кнопки (поставили галочку в свойстве Pushbutton switch всех кнопок). Таким образом, программа должна постоянно проверять положение кнопок, чтобы своевременно отреагировать на нажатия. На рис. 6 приведена подпрограмма M1-ccw button, в которой не только реализована эта проверка, но и предусмотрен контроль за состоянием концевого датчика.

Рис. 6 Подпрограмма M1-ccw button

Рис. 6 Подпрограмма M1-ccw button

Для остановки двигателя мы воспользовались связкой двух элементов – Stop (Program elements->Commands) и Motor Output (Program elements->Inputs, outputs). В данном случае, эта связка аналогична вызову ранее используемому нами элементу Motor Output (Program elements->Basic elements), однако показывает возможность более гибкого программирования в ROBOPro. Подпрограммы M1-cw button и M2-mOpen работают аналогичным  образом M1-ccw button.
При использовании команды закрытия схвата (M1-mClose) не осуществляется проверок состояния каких-либо датчиков. Контроль, за нажатием соответствующей кнопки, реализован с помощью элемента Wait for… (Program elements->Branch, wait…) (рис. 7)

Рис. 7 Подпрограмма M1-mClose

Рис. 7 Подпрограмма M1-mClose

Выводы

Ура! Наша программа теперь имеет два режима работы – ручной и автоматический. Для выбора режима мы создали наглядный графический интерфейс. Следующей задачей для нас будет взятие захватным устройством предметов разных размеров в автоматическом режиме программы.

До встречи в следующей части…

Владимир Баловнев и Григорий Зайцев – сотрудники компании ПАКПАК.

 

Комментировать