Программирование пользователями с помощью программного обеспечения

Категория:
Роботы в промышленности


Программирование пользователями с помощью программного обеспечения

Программное обеспечение робота можно рассматривать как средство организации взаимодействия двух главных частей системы: механики, включающей манипулятор робота, захват и любые другие подобные компоненты, и сенсорных устройств, обеспечивающих робот информацией об окружающей обстановке с программистом.

Программное обеспечение для механики и сенсорных устройств можно разделить на три общих уровня, зависящих от степени абстракции по отношению к манипуляторам и датчикам. На низшем, наименее абстрактном уровне программного обеспечения механики применяют программы, сконцентрированные на работе узлов и исполнительных механизмов механической системы. Такое программирование определяет каждое движение, существенные элементы действия отдельных исполнительных механизмов, положения узлов и т. д. Программирование на этом уровне в принципе несложно (программист должен только детализировать задачу), но может быть утомительным, делая неэффективным использование и программиста, и робота. Попытки взаимодействия с окружающей робота средой затруднены из-за жесткой структуры записанных данных. Программы трудно редактировать, так как они специфичны для повторного использования.

Рис. 1. Различные уровни абстракции программного обеспечения пользователя в робототехнической системе

Относительные положения каждого узла руки робота не представляют интереса для программиста. Программиста обычно интересует положение рабочего органа по отношению к объекту, с которым он работает. Пока рука робота сама не войдет в контакт с чем-либо из его окружения, ее фактическая конфигурация не имеет значения. Поэтому были разработаны языки программирования на уровне рабочих органов, которые позволяют программисту описывать движения не в терминах движений отдельных узлов, а относительно требуемых положений и движений рабочего органа робота. Такие языки также обычно называются языками уровня манипуляторов.

Программист определяет конечные точки траектории и4 ориентации, так же как и параметры скорости, на основе этих данных контроллер затем интерполирует траектории в реальном масштабе времени. Некоторые системы допускают математическое описание требуемого положения рабочего органа, например в прямоугольных координатах такая информация обычно передается посредством физического движения рабочего органа к требуемому положению и последующего использования датчиков внутреннего состояния руки в качестве цифрового преобразователя — устройства для автоматического представления фактических положений в цифровых величинах. Затем контроллер интерпретирует положения узлов руки как соответствующую позу для рабочего органа и записывает ее. В случаях когда задана высокая точность позицирования, контроллер должен записать каждое положение отдельных узлов (как в программах на уровне исполнительных механизмов) и таким образом избежать ошибок, связанных с математическими преобразованиями. Если исключить этот вариант, то после перемещения рабочего органа к обученной позе конфигурация руки робота может отличаться от заданной при обучении — это ведь положение рабочего органа, а не руки, что здесь рассматривается.

Языки уровня рабочих органов включают множество программных конструкций, например команды изменения последовательности операции и подпрограммные средства, позволяющие описывать сложные действия и ограниченное взаимодействие с простыми датчиками. Программирование на этом уровне похоже на работу на традиционном компьютере и получает все большее признание в промышленности. Программисты не только могут писать программы общего характера, пригодные для повторного использования, вносить изменения и расширять их, но впоследствии, вероятно, группы специалистов будут составлять более сложные уникальные программы.

Если вычислительная процедура становится длинной или сложной и трудной для понимания или описания, желательно использовать структурированный машинный язык в противоположность неструктурированному. Хотя оба языка могут быть одного и того же уровня абстракции, структурированная форма обладает достаточно ограниченным синтаксисом и дисциплинирует программиста при разделении проблемы на более простые части Ограничивая число способов, с помощью которых можно написать программу, управляя логическим «потоком», пронизывающим программу, структурированный язык уменьшает возможность ошибок.

Рассмотренные низкий и промежуточный уровни абстракции относятся к явным языкам и требуют от программиста точного знания того, что робот должен делать.

Высший уровень абстракции использует неявные методы программирования, когда роботосистема сама ответственна за принятие решений для достижения поставленной цели, основанных на понимании объектов, с которыми она работает. Программы этого уровня связаны с относительными положениями и движениями лишь объектов, перемещаемых во время выполнения работы, а не робота и даже не рабочего органа. Языки объектного уровня используют символьные описания манипулятора, рабочего пространства и объектов, включенных в задачу для определения положений, перемещений и действий.

Для осуществления моделирования требуется значительная вычислительная мощность, и подобающее его использование позволяет интегрировать роботы в системы КАД/КАМ. Кроме того, сам робот может быть освобожден от фактического участия в обучающем процессе и программы могут быть составлены так, чтобы использовать независимые от вида задачи (а иногда и от вида манипулятора) модули подпрограмм, уже хранящиеся в библиотеке, которые потом можно будет заказать.

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

Фирмы «Юнимейшн», «АМЛ» фирмы «ИБМ» для сборочных роботов, «СИГМА» фирмы «Оливетти» для роботов типа «Сигма», «РЭЙЛ» фирмы «Автоматике», «ТИЧ» фирмы «Бендикс», «ИНДА» фирмы «Филипс» и др.

Примером продолжающейся естественной эволюции языков роботов является «ВАЛ», вначале неструктурированный и сильно напоминающий «БЭЙСИК». Новый вариант языка «ВАЛ» не только структурирован, но и значительно усилен, что обеспечивает его такими возможностями, как внешняя коммуникация, сложные вычислительные процедуры и возможность параллельно выполнять программы пользователей.

Язык «АМЛ» очень сложный и хорошо структурированный, семантически мощный язык робота. Фирма «ИБМ» предприняла необычный шаг, впервые создав совершенно новый универсальный язык, придав ему функции, необходимые для эксплуатации роботов. По заявлениям сотрудников фирмы, это позволило им сознательно выбирать проектные компромиссы. Сам же язык так организован, что наиболее полезные подпрограммы можно «подтянуть» до команд нового языка, перекодировав их без изменения функций.

Как уже отмечалось, языки объективного уровня разрабываются, например, в Эдинбургском университете — язык «РАПТ», Стенфордском — языки «АЛ» и «ЛАМА» и Пердьюйском — «ПАЛ».


Реклама:



Читать далее:



Статьи по теме:


Главная → Справочник → Статьи → БлогФорум