Программирование пользователями с помощью программного обеспечения
ПО робота возможно разглядывать как средство организации сотрудничества двух основных частей совокупности: механики, включающей манипулятор робота, захват и каждые другие подобные компоненты, и сенсорных устройств, снабжающих робот информацией об окружающей обстановке с программистом.
ПО для механики и сенсорных устройств возможно поделить на три неспециализированных уровня, зависящих от степени абстракции по отношению к датчикам и манипуляторам. На низшем, наименее абстрактном уровне ПО механики используют программы, сконцентрированные на работе исполнительных механизмов и узлов механической совокупности.
Такое программирование определяет каждое перемещение, значительные элементы действия отдельных аккуратных механизмов, положения узлов и т. д. Программирование на этом уровне в принципе несложно (программист обязан лишь детализировать задачу), но возможно изнурительным, делая неэффективным применение и программиста, и робота. Попытки сотрудничества с окружающей робота средой затруднены из-за твёрдой структуры записанных данных.
Программы тяжело редактировать, поскольку они специфичны для повторного применения.
Рис. 1. Разные уровни абстракции ПО пользователя в робототехнической совокупности
Относительные положения каждого узла руки робота не воображают интереса для программиста. Программиста в большинстве случаев интересует положение рабочего органа по отношению к объекту, с которым он трудится.
До тех пор пока рука робота сама не войдет в контакт с чем-либо из его окружения, ее фактическая конфигурация не имеет значения. Исходя из этого были созданы языки программирования на уровне рабочих органов, каковые разрешают программисту обрисовывать перемещения не в терминах перемещений отдельных узлов, а довольно требуемых движений и положений рабочего органа робота.
Такие языки кроме этого в большинстве случаев именуются языками уровня манипуляторов.
Программист определяет ориентации и конечные точки4 траектории, так же как и параметры скорости, на базе этих данных контроллер после этого интерполирует траектории в настоящем масштабе времени. Кое-какие совокупности допускают математическое описание требуемого положения рабочего органа, к примеру в прямоугольных координатах такая информация в большинстве случаев передается при помощи физического перемещения рабочего органа к требуемому положению и последующего применения датчиков внутреннего состояния руки в качестве цифрового преобразователя — устройства для автоматического представления фактических положений в цифровых размерах.
После этого контроллер интерпретирует положения узлов руки как соответствующую позу для рабочего органа и записывает ее. В случаях в то время, когда задана высокая точность позицирования, контроллер обязан записать каждое положение отдельных узлов (как в программах на уровне аккуратных механизмов) и так избежать неточностей, которые связаны с математическими преобразованиями.
В случае если исключить данный вариант, то по окончании перемещения рабочего органа к обученной позе конфигурация руки робота может различаться от заданной при обучении — это так как положение рабочего органа, а не руки, что тут рассматривается.
Языки уровня рабочих органов включают множество программных конструкций, к примеру команды трансформации последовательности операции и подпрограммные средства, разрешающие обрисовывать ограниченное взаимодействие и сложные действия с несложными датчиками. Программирование на этом уровне похоже на работу на классическом компьютере и приобретает все большее признание в индустрии.
Программисты не только смогут писать программы характера, пригодные для повторного применения, вносить трансформации и расширять их, но потом, возможно, группы экспертов будут составлять более сложные неповторимые программы.
В случае если вычислительная процедура делается долгой либо сложной и тяжёлой для понимания либо описания, нужно применять структурированный машинный язык в противоположность неструктурированному. Не смотря на то, что оба языка смогут быть одного и того же уровня абстракции, структурированная форма владеет достаточно ограниченным синтаксисом и дисциплинирует программиста при разделении неприятности на более простые части Ограничивая число способов, благодаря которым возможно разработать программу, руководя логическим «потоком», пронизывающим программу, структурированный язык сокращает возможность неточностей.
Рассмотренные низкий и промежуточный уровни абстракции относятся к явным языкам и требуют от программиста правильного знания того, что робот обязан делать.
Верховный уровень абстракции применяет неявные способы программирования, в то время, когда роботосистема сама важна за принятие ответов с целью достижения поставленной цели, основанных на понимании объектов, с которыми она трудится. Программы этого уровня связаны с движениями и относительными положениями только объектов, перемещаемых на протяжении исполнения работы, а не робота а также не рабочего органа.
Языки объектного уровня применяют символьные описания манипулятора, рабочего пространства и объектов, включенных в задачу для определения положений, действий и перемещений.
Для осуществления моделирования требуется большая вычислительная мощность, и подобающее его применение разрешает интегрировать роботы в совокупности КАД/КАМ. Помимо этого, сам робот возможно высвобожден от фактического участия в обучающем ходе и программы смогут быть составлены так, дабы применять свободные от вида задачи (а время от времени и от вида манипулятора) модули подпрограмм, уже хранящиеся в библиотеке, каковые позже возможно будет заказать.
Не смотря на то, что лишь роботы второго поколения владеют сенсорными устройствами и работа в данной области в значительной мере носит экспериментальный темперамент, однако подобные уровни абстракции, применяемые в программном обеспечении механики, используются и при программировании сенсорных устройств. На низшем уровне абстракции, сенсорном уровне, любой отдельный выходной сигнал датчика учитывается программистом.
На промежуточном, параметрическом уровне программист сосредоточивается на нескольких характерных показателях либо параметрах, приобретаемых от датчиков, проводящих раннюю обработку данных. На самом большом объектном уровне символьные объекты учитываются посредством базы данных модели внешней среды, как и при программном обеспечении механики.
Компании «Юнимейшн», «АМЛ» компании «ИБМ» для сборочных роботов, «СИГМА» компании «Оливетти» для роботов типа «Сигма», «РЭЙЛ» компании «Автоматике», «ТИЧ» компании «Бендикс», «ИНДА» компании «Филипс» и др.
Примером длящейся естественной эволюции языков роботов есть «ВАЛ», сначала неструктурированный и очень сильно напоминающий «БЭЙСИК». Новый вариант языка «ВАЛ» не только структурирован, но и существенно усилен, что снабжает его такими возможностями, как внешняя коммуникация, сложные возможность и вычислительные процедуры параллельно делать программы пользователей.
Язык «АМЛ» сверхсложный и прекрасно структурированный, семантически замечательный язык робота. Компания «ИБМ» предприняла необыкновенный ход, в первый раз создав совсем новый универсальный язык, придав ему функции, нужные для эксплуатации роботов.
По заявлениям сотрудников компании, это разрешило им сознательно выбирать проектные компромиссы. Сам же язык так организован, что самые полезные подпрограммы возможно «подтянуть» до команд нового языка, перекодировав их без трансформации функций.
Как уже отмечалось, языки объективного уровня разрабываются, к примеру, в Эдинбургском университете — язык «РАПТ», Стенфордском — ЛАМА «и» языки «АЛ» и Пердьюйском — «ПАЛ».