Вы находитесь на странице: 1из 37

Управление промышленными роботами Kuka:

гибкий коммуникационный интерфейс JOpenShowVar.

Аннотация.
JOpenShowVar – это кроссплатформенный коммуникационный интерфейс
с открытым исходным кодом на языке Java для промышленных роботов
KUKA. Этот новый интерфейс позволяет использовать управляемые
переменные и структуры данных манипулятора для чтения-записи.
JOpenShowVar совместим со всеми промышленными роботами KUKA,
которые используют контроллер робота KUKA 4 поколения (KR C4) и
контроллер робота KUKA поколения 2 (KR C2). Запускается в качестве
клиента на удаленном компьютере, подключенном к контроллеру KUKA
через протокол управления передачей / интернет протокол (TCP/IP).
Несмотря на то, что могут быть реализованы только приложения в мягком
реальном времени, JOpenShowVar открывает множество различных
приложений, используя как различные устройства ввода и датчики, так и
разрабатывать альтернативные методы управления.
Четыре исследования представлены, чтобы продемонстрировать
потенциал JOpenShowVar. Первые 2 исследования представляют собой
приложения без обратной связи, в то время как последние два исследования
описывают возможность реализации приложений с обратной связью. В
первом примере использования предлагаемый интерфейс позволяет
мобильному устройству на базе Android управлять манипулятором KUKA
KR 6 R900 SIXX (KR AGILUS). Во втором исследовании тот же робот
KUKA используется для выполнения следования по линии в двухмерной
плоскости которое может быть использовано для таких задач, как сложные
операции сварки и тому подобное. В третьем исследовании разработано
приложение с обратной связью для управления тем же манипулятором с
помощью контроллера Leap Motion Controller, который поддерживает
движения рук и пальцев в качестве входных данных без необходимости
контакта или прикосновения. В четвертом исследовании установлена
двунаправленная замкнутая связь между гаптическим устройством Force
Dimension 7 и тем же манипулятором KUKA. Соответствующие
эксперименты проводятся для проверки эффективности и гибкости
предлагаемого интерфейса связи.
Ключевые слова - интерфейс робота, промышленные роботы KUKA,
устройство ввода.
I. ВВЕДЕНИЕ
Отрасли, которые используют роботов в широком спектре задач, являются
основными клиентами для производителей роботов. Рынок манипуляторов
для исследовательских задач слишком мал, чтобы индустрия роботов могла
разрабатывать модели специально для такого использования. В то время как
требования к оборудованию и механике для разрабатываемых роботов
часто одинаковы как для промышленности, так и для исследований,
требования к научному программному обеспечению весьма различны и
даже противоречивы во многих аспектах [1], [2]. Цель ученых - попытаться
получить как можно больше контроля над роботом, в то время как отрасли
промышленности ищут безопасные и простые в эксплуатации интерфейсы.
В частности, хотя программные интерфейсы, подходящие для
промышленного использования, доступны, трудно найти интерфейсы,
применимые для исследовательских целей. Раскрытие архитектуры
внутреннего контроля также очень трудно найти. Многие производители не
хотят публиковать внутренние детали, касающиеся архитектуры системы,
из-за высоких уровней конкуренции на рынке роботов. Следовательно,
невозможно полностью использовать многие роботизированные
платформы в научном контексте.
Касательно робототехники, было выпущено лишь небольшое количество
промышленных манипуляторов с открытым интерфейсом управления.
Ориентируясь исключительно на промышленных роботов KUKA[3], KUKA
Robot Language (KRL) является стандартным языком программирования
[4]. Это текстовый язык, который предлагает объявление типа данных,
контроль простых движений и взаимодействие с инструментами и
датчиками через операторы ввода-вывода (I / O). Программы KRL можно
запускать только на контроллере роботов KUKA (KRC), где выполнение
программы выполняется в соответствии с ограничениями в реальном
времени. Хотя KRL предлагает интерфейс, который прост в использовании
в промышленных приложениях, он довольно ограничен для
исследовательских целей. В частности, KRL предназначен для контроллера
нижнего уровня, и предлагается только фиксированный набор инструкций
для конкретного контроллера [5]. Расширенные математические
инструменты, такие как матричные операции, методы оптимизации или
фильтрации, не поддерживаются, что делает реализацию новых подходов к
управлению очень сложной. Нет встроенного способа включения
сторонних библиотек, и поэтому расширение KRL для включения новых
инструкций и функций является трудной задачей. Кроме того, невозможно
напрямую использовать внешнего устройства ввода. Стандартный
обходной путь для частичного расширения возможностей робота
заключается в использовании дополнительных пакетов программного
обеспечения, предоставляемых KUKA. Некоторыми примерами таких
пакетов являются Kuka.RobotSensorInterface [6], который позволяет влиять
на движение манипулятора или выполнение программы с помощью данных
датчика, и Kuka.Ethernet KRL XML [6], модуль, который позволяет
подключить контроллер робота к девяти внешним системам (например,
датчикам). Однако эти дополнительные пакеты программного обеспечения
сопровождаются несколькими недостатками: количество I/O ограничено,
присутствует узкий набор функций, и часто требуются крупные вложения
капитала для фактической покупки этих пакетов у KUKA.
Чтобы преодолеть эти проблемы, JOpenShowVar был представлен нашей
исследовательской группой в [7]. JOpenShowVar - это кроссплатформенный
интерфейс на языке Java с открытым исходным кодом, который позволяет
использовать управляемые переменные и структуры данных манипулятора
для чтения-записи. Хотя могут быть реализованы только приложения
мягкого реального времени, этот интерфейс позволяет исследователям
использовать различные устройства ввода, датчики и разрабатывать
альтернативные методы контроля. Библиотека JOpenShowVar совместима
со всеми промышленными роботами KUKA, использующими KR C4 или
KR C2. Основная концепция показана на рис. 1: JOpenShowVar работает как
промежуточное ПО между пользовательской программой и KRL. В этой
работе представлены более подробные сведения об архитектуре
JOpenShowVar. Несколько новых, более гибких и эффективных процедур
представлены в последнем выпуске библиотеки, чтобы заменить старый
фундаментальный метод чтения и записи, который теперь помечен как
устаревший. В дополнение к этим новым методам, некоторые другие
высокоуровневые функции также предусмотрены для контроля углов и
показания крутящего момента управляемого манипулятора. Этот сигнал
обратной связи очень важен для улучшения ловкости манипулятора и для
достижения важных функций, таких как чувствительное обнаружение
столкновений и совместимые действия управления. Обсуждаются
некоторые рекомендации, позволяющие пользователю внедрять новые
процедуры высокого уровня. JOpenShowVar - проект с открытым исходным
кодом и он доступен в Интернете по адресу https://github.com/aauc-
mechlab/jopenshowvar вместе с несколькими подробными диаграммами
классов, документацией и демонстрационными видео.

Рис. 1. Идея реализации коммуникационного интерфейса для


промышленных роботов KUKA, который работает в качестве
промежуточного программного обеспечения между пользовательской
программой и Kuka Robot Language (KRL).
Статья организована следующим образом. Обзор соответствующей
исследовательской работы приведен в разделе II. В разделе III мы
сосредоточимся на описании архитектуры JOpenShowVar, анализируя
протокол связи, возможные подходы к управлению и некоторые методы
высокого уровня. В разделе IV представлены четыре исследования. Первые
два исследования являются открытыми приложениями, в то время как
последние два тематических исследования описывают возможность
реализации замкнутых приложений. В первом примере JOpenShowVar
используется для управления роботом KUKA KR6 R900 SIXX (KR
AGILUS) с помощью мобильного приложения Android [8]. Во втором
тематическом исследовании тот же робот KUKA используется для
выполнения задачи, следования за линией, которая может использоваться
для таких применений, как сложные операции сварки и тому подобных. В
третьем конкретном примере тот же манипулятор управляется в режиме
замкнутого контура с помощью контроллера Leap Motion Controller [9],
который поддерживает движения рук и пальцев в качестве входных данных
без необходимости контакта или касания. Наконец, В четвертом
исследовании установлена двунаправленная замкнутая связь между
гаптическим устройством Force Dimension 7 и тем же манипулятором
KUKA. Обратная связь силы, пропорциональная силе, которую
поддерживает рабочий орган робота, возвращается тактильным
интерфейсом. Связанные эксперименты и результаты показано в разделе V.
В разделе VI изложены выводы и перспективы развития.
II. СВЯЗАННЫЕ НАУЧНЫЕ РАБОТЫ
Возможность создания программного интерфейса для роботов KUKA была
исследована несколькими исследовательскими группами. Программное
обеспечение управления в реальном времени с открытым исходным кодом
для легковесного робота KUKA, OpenKC, было представлено в [1]. Это
программное обеспечение позволяет извне запускать и контролировать все
функции легковесного манипулятора KUKA (LBR). Это делается с
помощью простого набора процедур, которые могут быть легко
интегрированы в существующее программное обеспечение. В результате,
разработчики приложений для роботов имеют преимущество в поиске
решений для различных программных сценариев. В частности, показания
силы и крутящего момента, а также различные режимы работы могут
считываться дистанционно и параметризироваться. Однако этот
программный интерфейс ограничен определенной моделью роботов
KUKA, легковесным манипулятором KUKA, и требуется использование
пакета Kuka.RobotSensorInterface. Другим интерфейсом, который в
настоящее время доступен для облегченных роботов KUKA, является
интерфейс Fast Research Interface (FRI) [2]. FRI обеспечивает прямой
низкоуровневый доступ в реальном времени к KRC с высокими частотами
до 1 кГц. С другой стороны, все функции, такие как обучение, функции
сценариев движения, полевая шина ввода-вывода и безопасность
обеспечены. FRI основан на KR C2. Без особых усилий по установке
обеспечивается доступ к различным интерфейсам контроллера системы
KUKA, включая совместное управление положением, декартовое
управление импедансом. Однако этот программный интерфейс также
ограничен конкретной моделью роботов KUKA, легкого манипулятора
KUKA. Поддержка стандартных промышленных роботов KUKA не
предоставляется.
Позже в [10] был представлен Kuka Control Toolbox (KCT), набор функций
MATLAB для управления движением промышленных роботов KUKA,
чтобы предложить пользователю интуитивно понятный и
высокоуровневый интерфейс программирования. Этот инструментарий
совместим со всеми маленькими роботами Kuka с малой нагрузкой,
которые имеют шесть степеней свободы (DOF). KCT работает на удаленном
компьютере, подключенном к KRC через TCP / IP. Многопоточный сервер
работает на KRC и обменивается данными через Kuka.Ethernet KRL XML с
клиентом, задачей которого является управление обменом информацией с
манипулятором. Высокая скорость передачи данных гарантируется
установкой связи такого типа, что позволяет использовать приложения
управления в реальном времени. Тем не менее, как и в предыдущей работе,
этот подход все еще адаптирован к базовому контроллеру и требует
использования пакет Kuka.Ethernet KRL XML.
Другие исследователи опробовали другой подход, направленный на
раскрытие архитектуры внутреннего контроля промышленного
манипулятора Kuka. Например, KRL был исследован методом реверсивного
инжениринга в [5], и был представлен набор API-интерфейсов на основе
Java для программирования промышленных роботов поверх языка общего
назначения. API реализуют команды роботов, такие как движения и доступ
к вызовам команд ввода-вывода. Было показано, что KRL может быть
соединен с помощью пакетов, для выполнения управляющего потока и
операторов. Вычисления занимает лишь небольшое количество времени по
сравнению со временем, которое требуется роботу для выполнения
команды движения. Однако некоторые ограничения безопасности по своей
природе присутствуют в наборе API-интерфейсов для робота, потому что в
результате подхода реверсивного инжиниринга не были включены способы
указания сложных триггеров в отличие от KRL.
В последние несколько лет Robot Operating System (ROS) [11], набор
инструментов с открытым исходным кодом для разработки роботов,
становится все более и более популярным среди исследовательского
сообщества. Основная цель ROS - предоставить общую платформу, чтобы
сделать создание автоматизированных роботизированных приложений
быстрее и проще. Некоторые из предоставляемых функций включают
аппаратную абстракцию, драйверы устройств, передачу сообщений и
управление пакетами. ROS обеспечивает поддержку различных
промышленных роботов, включая таких поставщиков, как ABB, Adept,
Fanuc, Motoman and Universal Robots. Также была проведена обширная
исследовательская работа по созданию пакетов ROS для связи с
облегченными роботами Kuka, но поддержка стандартных промышленных
роботов Kuka еще.не предоставляется. Одной из основных причин этого
недостатка является нераскрытие внутренней архитектуры KUKA Robot
Controller (KRC), которая в настоящее время делает невозможным
непосредственное взаимодействие с управляемым роботом.
В последнее время Kuka проявляет все больший интерес к рынку
исследований и образования. В частности, KUKA Sunrise. Connectivity была
разработана для легких роботов Kuka. Это программное обеспечение
предоставляет набор интерфейсов для воздействия на движение робота на
различных уровнях управления процессом. Стороннее программное
обеспечение может быть легко интегрировано в пользовательское
приложение, используя популярный стандартный язык программирования
Java. Наряду с быстрым обновлением целевой позиции непосредственно из
приложения робота, также возможен доступ к контроллеру робота с
внешних компьютеров в режиме жесткого реального времени. Однако даже
в этом случае основное ограничение заключается в том, что это
программное обеспечение применяется для легких манипуляторов Kuka.
Чтобы обеспечить более четкий обзор доступных в настоящее время
интерфейсов для роботов Kuka, таблица сравнения всех рассмотренных
связанных работ показана в таблице I.

ТАБЛИЦА I: Доступные в настоящее время интерфейсы для роботов Kuka

Насколько нам известно, кроссплатформенный коммуникационный


интерфейс, который работает со всеми промышленными роботами Kuka без
каких-либо внешних пакетов, еще не был реализован.
III. АРХИТЕКТУРА JOpenShowVar
В этом разделе авторы первоначально описывают проектные решения,
которые характеризуют предлагаемую архитектуру. Затем представлена
концепция архитектуры, анализирующая коммуникационный протокол,
возможные подходы к управлению и некоторые методы высокого уровня.
JOpenShowVar основан на следующих проектных решениях:
 Низкая стоимость: разработанная архитектура не требует каких-либо
дополнительных пакетов программного обеспечения,
предоставляемых Kuka, таких как Kuka.RobotSensorInterface [6] или
Kuka.Ethernet KRL XML [6]. Таким образом, для приобретения этих
пакетов у Kuka не требуется никаких крупных капиталовложений.
Этот факт делает предлагаемое решение очень недорогим;
 Гибкость: система предлагает практически неограниченное
количество сигналов ввода-вывода и возможность использования
сторонних библиотек. Это позволяет добавить поддержку
расширенных математических инструментов, таких как операции с
матрицами, методы оптимизации или фильтрации что позволяет
очень просто реализовать новые подходы к управлению;
 Надежность: систему легко обслуживать, изменять и расширять,
добавляя новые компоненты и функции. Кроме того, предлагаемый
интерфейс также является кроссплатформенным с открытым
исходным кодом;
 Интегрируемость: предлагаемый системный интерфейс представляет
собой модульную структуру, которая может облегчить интеграцию с
ROS. Несмотря на то, что эта интеграция выходит за рамки данной
статьи, она рассматривается как важная перспектива разработки,
которая, несомненно, повысит полезность предлагаемого
интерфейса. Сообщество разработчиков в ROS надеется на
интеграцию JOpenShowVar. Разработчики подтвердили полезность
предложенного интерфейса, особенно потому, что в настоящее время
нет других альтернатив, предлагающих аналогичные функции.
Далее несколько конкретных функций, переменных и конфигураций,
связанных с KRL и KRC, упоминаются для того, чтобы представить
архитектурную концепцию. Для более подробного ознакомления с KRL
читатель может обратиться к [4]. Предложенная архитектура системы
управления показана на рисунке 2. Это клиент-серверная архитектура, в
которой JOpenShowVar работает в качестве клиента на удаленном
компьютере, а KUKAVARPROXY выступает в качестве сервера на KRC.
JOpenShowVar локально взаимодействует с пользовательской программой
и удаленно связывается с сервером KUKAVARPROXY через TCP / IP.

Рис. 2: Предложенная архитектура для JOpenShowVar: принята модель


клиент-сервер.
В частности, KUKAVARPROXY - это многопользовательский сервер,
написанный на Visual Basic 6.0 и способный обслуживать до 10 клиентов
одновременно. KUKAVARPROXY реализует интерфейс Kuka CrossComm.
Этот интерфейс обеспечивает управление роботом в реальном времени и
позволяет выполнять несколько операций, таких как выбор или отмена
определенной программы, обнаружение ошибок и неисправностей,
переименование программных файлов, сохранение программ, сброс
драйверов ввода-вывода, чтение переменных и запись переменных.
KUKAVARPROXY реализует методы чтения и записи. Все переменные, к
которым должны обращаться эти методы, должны быть объявлены как
глобальные переменные в предопределенном глобальном системном
списке данных $CONFIG.DAT. В этом файле могут быть объявлены все
виды переменных от базовых типов, таких как INT, BOOL и REAL, так и
более сложных структур, таких как E6POS и E6AXIS, которые позволяют
хранить конфигурацию робота. Кроме того, можно получить доступ к
нескольким системным переменным, если нет ограничений из-за типа
данных, таких как $ PRO IP, $ POS ACT, $ AXIS ACT или $ AXIS INC.
Например, текущая позиция робота, $ POS ACT, не может быть
перезаписана, т.к. открыта только для чтения. Ограничения такого рода
проверяются контроллером.
Как уже упоминалось, интерфейс класса Kuka CrossComm позволяет
взаимодействовать с процессом управления роботом в режиме реального
времени. Однако следует отметить, что к классу Kuka CrossComm можно
получить удаленный доступ только через TCP / IP. К сожалению, связь по
TCP / IP приводит к неизбежным задержкам, поэтому JOpenShowVar не
может обеспечить доступ к данным робота в режиме реального времени.
Только приложения мягкого реального времени могут быть реализованы.
На самом деле, для доступа к определенной переменной требуется
недетерминированное время. Поскольку Kuka не предлагает никакой
документации по этой теме, в нашей лаборатории было проведено
несколько экспериментов для оценки этого временного интервала.
Согласно нашим экспериментам, представленным в разделе V, среднее
время доступа составляет около 5 мс. Кроме того, этот интервал времени не
зависит от типа доступа, который должен быть выполнен (будь то операция
чтения или записи) или от длины сообщения. По этим причинам выгодно
объединять несколько переменных в логические структуры при чтении или
записи данных. Используя структуры данных, можно одновременно
обращаться к нескольким переменным, тем самым минимизируя время
доступа. Единственное ограничение этого подхода - длина логических
структур, которая не может превышать 255 байтов.
JOpenShowVar предоставляет клиент CrossComClient, который написан на
Java, что делает возможной поддержку кроссплатформенности.
Архитектурные детали библиотеки JOpenShowVar показаны на рис. 3. Как
показано в нашей предыдущей работе [7], клиент изначально предоставил
только один низкоуровневый метод sendRequest. Этот метод позволяет
читать и записывать переменные. Метод sendRequest возвращает экземпляр
Callback, содержащий обновленное значение переменных. Однако в
последнем выпуске JOpenShowVar, начиная с версии v0.2, sendRequest
помечен как устаревший метод, поскольку введены два новых более гибких
и эффективных метода: readVariable и writeVariable.

Рис. 3: Архитектурные уровни JOpenShowVar.


Помимо методов JOpenShowVar, которые реализуют протокол связи
низкого уровня, разработчик может добавить еще один логический уровень,
позволяющий реализовать альтернативные методы управления
(пользовательскую кинематику), а также некоторые функции более
высокого уровня. Код приложения может работать поверх этой
иерархической архитектуры. Кроме того, графический интерфейс
пользователя (GUI) и терминал снабжены JOpenShowVar, чтобы позволить
пользователю контролировать состояние робота, визуализировать и
вручную устанавливать все необходимые переменные. Следует отметить,
что GUI по-прежнему использует метод sendRequest из JOpenShowVar по
практическим причинам, поскольку этот старый метод не требует каких-
либо знаний о внутренней структуре переменных, к которым
осуществляется доступ, по сравнению с новыми методами.
Коммуникационный протокол низкого уровня, подробное справочное
объяснение недавно выпущенных методов, возможность реализации
пользовательских функций управления, а также некоторые рекомендации
по разработке процедур высокого уровня будут обсуждаться позже в этом
разделе.
А. Коммуникационный протокол
Протокол связи основан на протоколе TCP / IP. В частности, поверх уровня
TCP / IP для обмена сообщениями используются специально
отформатированные текстовые строки. KUKAVARPROXY активно
прослушивает TCP-порт 7000. Как только соединение установлено, сервер
готов принять любой запрос на чтение или запись от клиента.
Чтение переменных. Чтобы получить доступ к переменной, клиент должен
указать в сообщении два параметра: требуемый тип функции и имя
переменной. Чтобы прочитать конкретную переменную, тип функции
должен быть идентифицирован символом «0». Например, если
считываемой переменной является системная переменная $ OV PRO,
которая используется для переопределения скорости робота, сообщение,
которое клиент должен отправить на сервер, будет иметь формат,
показанный в таблице II. Первые два символа этой строки указывают
идентификатор сообщения (ID) с целым числом от 00 до 99. Ответ от
сервера будет содержать один и тот же идентификатор, так что всегда
можно связать соответствующий ответ с каждым запросом, даже если
обратная связь с сервером задерживается. Следующие два символа в строке
указывают длину следующего сегмента в шестнадцатеричных единицах. В
этом конкретном случае 09 учитывает один символ, указывающий тип
функции, два символа, указывающие длину следующего сегмента, и семь
символов для переменной длины. Пятый символ 0 в сообщении
представляет тип желаемой функции, которую в данном случае читает.
Впоследствии, есть еще два символа, указывающие переменную длину (в
шестнадцатеричных единицах), и, наконец, сама переменная содержится в
последнем разделе сообщения.
ТАБЛИЦА II: Чтение переменных

Запись переменных: чтобы записать конкретную переменную, необходимо


указать три параметра: тип функции, имя требуемой переменной и
назначаемое значение. Функция записи определяется символом «1».
Например, если записываемой переменной является системная переменная
$ OV PRO со значением 50 (скорость 50%), сообщение, которое клиент
должен отправить на сервер, будет иметь формат, показанный в таблице III.
ТАБЛИЦА III: Запись переменных
B. Переменные, структуры и методы
Начиная с версии v0.2 JOpenShowVar, несколько новых классов были
добавлены в библиотеку для улучшения удобства использования. В
частности, два абстрактных класса, KRLVariable и KRLStruct (который
расширяет KRLVariable), предоставляют пользователю возможность
реализовать любую переменную или структуру KRL соответственно. Таким
образом, можно создавать и поддерживать локальный экземпляр всех
желаемых переменных и структур на стороне клиента. На основе этих двух
абстрактных классов были реализованы наиболее часто используемые
переменные и структуры KRL. Любая другая переменная или структура
KRL, которая не включена в библиотеку JOpenShowVar, может быть легко
реализована пользователем. Начиная с версии v0.2 JOpenShowVar,
sendRequest помечается как устаревший метод. Чтобы заменить этот старый
метод, в CrossComClient добавлены два новых, более надежных метода:
 метод readVariable позволяет считывать любую желаемую
переменную или структуру из управляемого робота и сохранять ее
локально. Исключение выдается, если происходит ошибка в
коммуникационном протоколе;
 метод writeVariable позволяет обновлять любую желаемую
переменную или структуру контролируемого робота значением
соответствующей локальной переменной или структуры,
соответственно. Исключение выдается, если происходит ошибка в
коммуникационном протоколе.
Устаревший метод sendRequest хранится как часть библиотеки
JOpenShowVar просто потому, что GUI все еще использует его по
практическим соображениям. Фактически, этот старый метод не требует
каких-либо знаний о внутренней структуре переменных, к которым нужно
обращаться, по сравнению с недавно введенными методами. Кроме того,
следует отметить, что новый метод writeVariable не может обрабатывать
массивы; это можно сделать только с помощью старого метода sendRequest.
В окне эскиза Алгоритма 1 показан пример возможного варианта
использования, чтобы подчеркнуть различия между новыми методами и
устаревшим методом sendRequest.
Алгоритм 1: пример варианта использования, который подчеркивает
различия между новыми методами и устаревшим методом sendRequest.
C. Методы контроля
JOpenShowVar открывает множество различных приложений,
позволяющих использовать различные устройства ввода и разрабатывать
альтернативные методы управления. В частности, предлагаемый интерфейс
обеспечивает возможность реализации подхода с управлением положением
или скоростью. Пользовательский опыт существенно отличается в каждом
случае. При использовании режима управления положением оператор
просто контролирует положение рабочего органа робота с постоянной
скоростью; при работе в режиме управления скоростью оператор также
устанавливает скорость инструмента робота. В первом случае, когда
оператор отпускает устройство ввода, рабочий орган возвращается к своей
начальной точке, тогда как во втором сценарии манипулятор просто
прекращает движение, но сохраняет последнюю заданную позицию.
Для управления движением робота в соответствии с желаемым сценарием
работы JOpenShowVar позволяет исследователям использовать
стандартную кинематику, предоставляемую KRC. Однако также возможно
реализовать альтернативные алгоритмы управления в соответствии с
текущими потребностями. Это иллюстрируется на рис. 4-а и на рис. 4-b
соответственно.
Рис. 4: (a) Пользовательская программа использует JOpenShowVar, чтобы
установить желаемое положение рабочего органа, и затем положение
робота вычисляется KRC с использованием стандартной кинематической
модели

Рис. 4: (b) пользователь может реализовать собственный алгоритм


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

при работе в режиме контроля положения.

при работе в режиме управления скоростью, где Dt - предполагаемый


интервал времени между двумя последовательными итерациями. Как уже
упоминалось, JOpenShowVar не может обеспечить доступ к данным робота
в режиме реального времени. Только приложения мягкого реального
времени могут быть реализованы. Для доступа к определенной переменной
требуется недетерминированное время. Согласно нашим экспериментам,
описанным в разделе V, среднее время доступа составляет около 5 мс.
Следовательно, Dt может быть приближен к немного большему
коэффициенту среднего времени доступа. Для достижения лучшей
производительности среднее время доступа должно постоянно
отслеживаться и обновляться. Возможно, это может быть слишком высокая
цена для некоторых приложений с требованиями к реальному времени, но
JOpenShowVar по-прежнему предоставляет большие преимущества с точки
зрения гибкости. В качестве альтернативы, когда требуется специальный
алгоритм управления, целевая конфигурация соединения определяется как:

при работе в режиме контроля положения

при работе в режиме управления скоростью.


Когда оператор маневрирует манипулятором, векторный сигнал без
семантики s отправляется из устройства ввода в пользовательскую
программу. Здесь, согласно сценарию работы, векторный сигнал
интерпретируется как целевая позиция xt. Если целью является
использование стандартной кинематики, предоставляемой KRC,
пользовательская программа просто работает как драйвер для устройства
ввода и использует метод writeVariable из JOpenShowVar для пересылки xt
в программу KRL, где стандартная кинематика KRC используется для
вычисления углов сочленения qd. В качестве альтернативы,
пользовательский алгоритм управления может быть реализован в
пользовательской программе для вычисления значений соединения для
робота в соответствии с xt. По сути, пользовательский метод управления
должен реализовывать классические обратные кинематические функции,
которые можно обобщить следующим образом:

Относительно управления по положению, и


для управления скоростью, где qa - фактический вектор углов соединения,
который можно получить с помощью метода readVariable из JOpenShowVar.
Эти значения затем передаются в программу KRL, где стандартные
функции KRC используются для приведения в действие робота. Обратите
внимание, что возможность реализации определенных функций управления
не влияет на представленный интерфейс. Вместо этого JOpenShowVar
расширяет функциональные возможности языка KRL.
D. Дополнительные функции
Чтобы упростить коммуникационный протокол низкого уровня и повысить
надежность, в классе CrossComClient предусмотрены некоторые
дополнительные методы:
 методы simpleRead и simpleWrite являются более простыми версиями
функции sendRequest. В частности, эти методы не выполняют разбор
данных в отличие от метода sendRequest. Они обеспечивают более
простой и быстрый доступ, как показано в окне эскиза Алгоритма 2.
Два новых метода возвращают необработанную строку без анализа
информации. Целью этих двух новых методов является
предоставление простого способа контроля состояния робота,
позволяющего выводить необработанную информацию,
возвращаемую из KRC;

Алгоритм 2. Вариант использования для новых методов simpleRead и


simpleWrite.
 метод readJointAngles использует метод readVariable для получения
фактического положения обобщенных координат qa
контролируемого робота одновременно;
 метод readJointTorques позволяет контролировать нагрузку каждого
привода путем извлечения текущего крутящего момента каждой оси
одновременно. В частности, readJointTorques извлекает глобальную
переменную массива KRL $ TORQUE AXIS ACT и возвращает
текущий крутящий момент каждой оси. Этот сигнал обратной связи
очень важен для улучшения ловкости манипулятора и для
достижения важных функций, таких как тактильное обнаружение
столкновений и совместимые действия управления. В окне эскиза
Алгоритма 3 показан возможный вариант использования.

Алгоритм 3: считывание фактического крутящего момента для каждой оси


на стороне Java.
В дополнение к этим методам пользователь может реализовать некоторые
другие высокоуровневые функции поверх протокола связи JOpenShowVar.
Реализация некоторых других возможных приложений высокого уровня
включена в качестве технического документа в общедоступный
репозиторий JOpenShowVar.
E. Терминал и графический интерфейс пользователя
Еще одним полезным инструментом, который поставляется с
JOpenShowVar, является консольный терминал, который обеспечивает
доступ к данным робота на основе чтения и записи. Это особенно полезно
для системного администрирования и отладки. Чтобы прочитать
переменную, достаточно ввести имя нужной переменной и нажать клавишу
ввода. С точки зрения реализации он использует новые методы simpleRead
и simpleWrite. На рис. 5-а показан простой пример использования.
Рис. 5: (a) Терминал JOpenShowVar может использоваться для целей
отладки
Кроме того, JOpenShowVar также предлагает полезный графический
интерфейс, который можно использовать для мониторинга состояния
робота, визуализации и ручной установки переменных. Снимок экрана
этого удобного инструмента показан на рис. 5-b. Этот интерфейс
интуитивно понятен для пользователя.

Рис. 5: (b) графический интерфейс JOpenShowVar можно использовать для


мониторинга состояния робота, визуализации и ручной настройки
переменных и структур.
IV. ПРЕДМЕТНЫЕ ИССЛЕДОВАНИЯ
В этом разделе представлены четыре предметных исследования, чтобы
продемонстрировать потенциал JOpenShowVar. Первые два исследования
представляют собой приложения без обратной связи, в то время как
последние два исследования описывают возможность реализации
приложений с обратной связью.
А. Исследование 1: управление Kuka KR 6 R900 SIXX
манипулятор с мобильным устройством на базе Android для демонстрации
возможностей представленного интерфейса в управлении промышленным
роботом Kuka с альтернативного устройства ввода. В качестве первого
примера JOpenShowVar используется для управления манипулятором Kuka
KR 6 R900 SIXX с помощью мобильного устройства Android. В этом случае
приложение с разомкнутым контуром реализуется с использованием
стандартной кинематики, предоставляемой KRC. Kuka KR 6 R900 SIXX,
показанный на рис. 6-а, представляет собой роботизированный
манипулятор с 6 степенями свободы.

Рис. 6: Пример 1: (a) манипулятор Kuka KR 6 R900 SIXX, (b) графический


интерфейс мобильного приложения Android, используемого для
управления манипулятором.
В соответствии с рабочим сценарием мобильное приложение Android, чей
графический пользовательский интерфейс (GUI) показан на рис. 6-b,
используется для установки целевой позиции xt. Используя метод
writeVariable в JOpenShowVar, этот вектор пересылается в
KUKAVARPROXY и сохраняется как глобальное значение в структуре
данных. Наконец, исполнительная программа KRL итеративно извлекает
новые глобальные данные и использует кинематику KRC для приведения в
действие робота. Код программы привода KRL показан в окне эскиза
Алгоритма 4.

Алгоритм 4: программа привода KRL для исследования 1.


Для промышленных роботов Kuka время простоя между движениями может
быть сокращено путем выполнения трудоемких арифметических и
логических инструкций между командами движения во время движения
робота, то есть обработки их во время предварительного запуска. Используя
системную переменную $ ADVANCE, можно определить максимальное
количество блоков движения, которое может обработать препроцессор.
Поскольку основной цикл серверной программы состоит только из одной
инструкции, системная переменная $ ADVANCE изначально имеет
значение 1, чтобы избежать нежелательного выполнения одной и той же
строки кода. Внутри основного цикла относительное движение итеративно
выполняется для глобальной переменной MYPOS, которая является той,
которая хранит целевую позицию. Ключевое слово C PTP используется для
сглаживания движения. Приблизительная инструкция позиционирования
выполняется оптимизированным по времени способом: всегда есть хотя бы
одна ось, движущаяся с запрограммированными пределами ускорения или
скорости. Система одновременно гарантирует, что допустимые значения
крутящего момента редуктора и двигателя для каждой оси не превышаются.
Кроме того, более высокий профиль движения, установленный по
умолчанию, обеспечивает движение, оптимизированное с точки зрения
скорости и ускорения.
B. исследование 2: выполнения следования по линии в двухмерной
плоскости манипулятором Kuka KR 6 R900 SIXX
В этом исследовании JOpenShowVar используется для выполнения
следования по линии в двухмерной плоскости с тем же роботом Kuka,
который использовался в предыдущем примере. В этом случае автономное
приложение openloop реализуется с использованием стандартной
кинематики, предоставляемой KRC. Рассматриваемая задача может быть
использована для таких применений, как сложные сварочные операции и
тому подобное. В этом эксперименте камера установлена на конце рабочего
органа робота и может сделать снимок желаемой линии на плоскости. Эта
обратная связь по зрению используется для обнаружения пути в
автономном режиме перед началом движения. В частности, после того, как
была сделана фотография линии, которой нужно следовать, оператор
вручную выбирает желаемые начальную и конечную точки. Затем алгоритм
поиска A * [12] используется для эффективного поиска пройденного пути
между этими двумя точками в пределах области, охватываемой желаемой
линией. Обнаруженный пройденный путь выбирается с предварительно
определенным разрешением, а полученные выборки сохраняются в
переменной массива. Этот же массив используется в качестве автономного
входа для рабочего органа робота, который должен приводиться в действие
точка за точкой. Установка эксперимента показана на рис. 7.
Рис. 7: исследование 2: экспериментальная установка для выполнения
следования по линии в двухмерной плоскости с манипулятором Kuka KR 6
R900 SIXX.
C. исследование 3: управление Kuka KR 6 R900 SIXX
манипулятор с контроллером скачка движения. В этом примере
JOpenShowVar используется для управления тем же роботом (из
предыдущих примеров) в замкнутом цикле и с пользовательским
алгоритмом управления. Это сделано для того, чтобы подчеркнуть
потенциал представленного интерфейса в разработке альтернативных
методов управления, которые не используют стандартную кинематическую
модель, предоставленную Kuka. Кроме того, Leap Motion Controller [9],
показанный на рис. 8, используется в качестве альтернативного устройства
ввода для управления роботом.

Рис. 8: исследование 3: Leap Motion Controller используемый для


управления манипулятором Kuka KR 6 R900 SIXX.
Leap Motion Controller - это маленькое USB-устройство ввода, которое
поддерживает движения рук и пальцев в качестве входных данных без
необходимости касания или прикосновения. Этот контроллер предназначен
для размещения на физическом рабочем столе, обращенным вверх.
Используя две монохроматические инфракрасные (ИК) камеры и три ИК-
светодиода (светодиоды), устройство наблюдает приблизительно
полусферическую область на расстоянии около 1 метра. Светодиоды
генерируют трехмерную картину точек ИК-света, а камеры генерируют
почти 300 кадров в секунду отраженных данных, которые затем
отправляются через USB-кабель на хост-компьютер, где они
анализируются программным обеспечением Leap Motion Controller и могут
быть извлечены с помощью API Leap Motion. В то время как контроллер
Leap Motion Controller позволяет считывать все суставы рук человека, в
данном конкретном примере использования только степени свободы
запястья используются в качестве входного сигнала для управления
рабочим органом робота. Каждая степень свободы запястья соответствует
поступательной оси в рабочей области контролируемого робота. При
работе в режиме управления положением устройство ввода работает как
точная копия, пропорциональная положению, так что движение запястья
точно соответствует движению рабочего органа робота с постоянной
скоростью, в то время как при работе в режиме управления скоростью
движение запястья в определенном направлении будет производить
поступательное движение в том же направлении со скоростью,
пропорциональной смещению запястья. Чтобы небольшие вибрации не
влияли на движение рабочего органа робота, в центре рабочей зоны,
контроллер определяет небольшую виртуальную сферу диаметром около 8
см. Пока запястье оператора находится внутри этой сферы, рабочий орган
робота не двигается. Рука оператора должна быть перемещена более чем на
4 см от центра зоны наблюдения, чтобы вызвать движение. Благодаря
модульности архитектуры любой другой джойстик или устройство ввода
могут использоваться без влияния на эффективность предложенного
интерфейса.
Пользовательская программа запускается на удаленном компьютере и
использует API-интерфейсы Leap Motion для извлечения целевой позиции
xt в соответствии с рабочим сценарием. Используя метод readVariable в
JOpenShowVar, получаются фактические значения обобщенных координат
qa. Эти данные используются в качестве входных данных для
пользовательского алгоритма управления. В этом конкретном случае
классические кинематические функции и метод Якобиана [13]
используются для реализации (5) и (6). Затем с помощью метода
writeVariable из JOpenShowVar целевая конфигурация обобщенных
координат qt пересылается в KUKAVARPROXY и сохраняется как
глобальное значение в структуре. Наконец, исполнительная программа
KRL итеративно извлекает новые глобальные данные и приводит в
действие робота.
Код исполнительной программы KRL показан в окне эскиза Алгоритма 5.
Следует отметить, что переменная MYAXIS инициализируется значениями
по умолчанию внутри папки инициализации (INI). Системная переменная $
ADVANCE изначально установлена на 1. Затем текущие объединенные
значения присваиваются локальной структурной переменной с именем
LOCAL. Внутри основного цикла желаемые углы соединения итеративно
присваиваются LOCAL, ось за осью. Наконец, выполняется движение PTP
с радиусом приближения C PTP.

Алгоритм 5: исполнительная программа KRL для исследования 3.


D. исследование 4: управление манипулятором Kuka KR 6 R900 SIXX с
помощью omega-7 тактильного устройства от Force Dimension.
Цель этого четвертого исследования - показать возможность управления
роботом и передачи информации по обратной связи оператору. Для этой
цели устанавливается двунаправленная связь между тактильным
устройством Force Dimension omega.7 [14] и тем же роботом Kuka, который
использовался в предыдущих разделах. В этом случае приложение с
обратной связью реализуется с использованием стандартной кинематики,
предоставляемой KRC. Omega.7 - это тактильный интерфейс с 7 степенями
свободы с высокой чувствительностью при активации захвата и
определении ориентации. Точно настроенный для отображения идеальной
компенсации силы тяжести, захват с обратной связью по силе предлагает
необычайные тактильные возможности, позволяя инстинктивно
взаимодействовать со сложными тактильными приложениями. В данном
исследовании применяется принцип виртуальных работ [13]. Согласно
этому принципу справедливо следующее уравнение:
где J - матрица Якоби манипулятора, F - вектор сил, приложенных рабочим
органом робота к объекту окружающей среды, и t - вектор крутящих
моментов на осях, которые можно получить с помощью метода
readJointTorques. Применяя этот принцип, можно моделировать на
тактильном устройстве обратную связь по силе, пропорциональную силе,
которую поддерживает рабочий орган робота. Установка эксперимента
показана на рис. 9.

Рис. 9: Исследование 4: управление манипулятором Kuka KR 6 R900 SIXX


с помощью omega-7 тактильного устройства от Force Dimension.
V. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНЫХ ИССЛЕДОВАНИЙ
Эксперименты, связанные с предлагаемыми исследованиями, проводятся
для проверки предлагаемого интерфейса связи с точки зрения точности,
характеристик и эффективности.
Что касается первого и третьего тематических исследований, демо-видео
доступно в режиме онлайн по адресу:
https://youtu.be/fC8jb9MKgGw.
Первый пример показывает, что JOpenShowVar позволяет удаленно
управлять промышленным роботом Kuka с мобильного устройства Android.
Эта возможность открывает множество полезных целей, включая
приложения с интерфейсом пользователя и телеоператора. В настоящее
время смартфоны и планшеты становятся все более мощными в
вычислительном отношении. С этой точки зрения они идеально подходят
роботам для разработки альтернативных систем управления.
Использование смартфонов и планшетов в исследованиях и разработках
также встречается в других областях, поскольку они представляют
значительную возможность для производителей, которым необходимо
последовательно разрабатывать более совершенное оборудование и
операционные системы. По этим причинам эти приложения очень
интересны и привлекательны в будущих проектных решениях.
А. Точность
Точность относится к возможности размещения рабочего органа робота в
желаемой целевой точке в рабочем пространстве. Что касается второго
практического исследования, эксперимент следования за линией
проводится на случайно сгенерированной линии, нарисованной на столе.
На рис. 10 показана обнаруженная линия и фактический путь, по которому
следует рабочий орган робота соответственно. Как только линия
обнаружена, робот выполняет движение в автономном режиме в течение
примерно 10 секунд с максимальной ошибкой по положению менее 5 мм.

Рис. 10: исследование 2: обнаруженная линия и фактический путь, по


которому следует рабочий орган робота.
Эта ошибка положения может быть уменьшена еще больше, если увеличить
разрешение выборки обнаруженного пути прохождения.
B. Характеристики
В рамках конкретного примера использования контроллера Leap Motion
Controller (исследование 3) в режиме реального времени проводится анализ
отслеживания пути в декартовых координатах X, Y и Z, измеряя разницу
между желаемым и фактическим положением рабочего органа робота.
Результаты показаны на рис. 11.

Рис. 11: Исследование 3: отслеживание пути для (a) координаты X, (b)


координаты Y и (c) координаты Z
Более того, чтобы оценить задержку связи JOpenShowVar, выполняется
анализ задержки.
Рассматриваемая задержка представляет собой время для каждого
сообщения, которое будет принято, выполнено и передано клиенту KRC. В
частности, эта задержка получается путем учета точного момента, в
который запрос отправляется от клиента, и точного момента, когда
информация возвращается клиенту. Невозможно точно определить
задержку, главным образом, потому что Kuka не выпустил никакой
информации об этом. Во время наших экспериментов обычно отмечалось
ухудшение временной задержки при выборе программы и при выполнении
роботом некоторых движений или при наличии нескольких активных
прерываний. При рассмотрении причин задержки можно выделить два
основных компонента, которые влияют на время доступа для чтения или
записи переменной со стороны клиента:
 интервал времени, который требуется протоколу TCP / IP для
передачи информации от клиента на сервер и затем обратно к
клиенту. Этот компонент времени не детерминирован;
 интервал времени, который требуется контроллеру Kuka для
получения информации от робота. Также этот временной компонент
не детерминирован.
Как уже упоминалось в разделе III, задержка не зависит от типа
выполняемого доступа (будь то операция чтения или записи) или от длины
сообщения. Следовательно, выгодно объединять несколько переменных в
логические структуры при чтении или записи данных. Используя структуры
данных, можно одновременно обращаться к нескольким переменным, тем
самым минимизируя время доступа.
Принимая во внимание третье исследование, анализ задержки по времени
выполняется для тех же декартовых путей, как показано на рис. 12.
Несмотря на то, что имеется несколько пиков с большим интервалом
времени, среднее время доступа в это эксперименте получается 4,27 мс.
Следует отметить, что на все рассматриваемые исследования одинаково
влияют аналогичные задержки связи, за исключением второго
исследования, которое проводится в автономном режиме и, следовательно,
не представляет никаких задержек во время выполнения.
Рис. 12: исследование 3: анализ временной задержки для соответствующих
декартовых путей, показанных на рис. 11.
Для дальнейшей оценки характеристик предлагаемого интерфейса в
отношении задержки связи выполняется дополнительный эксперимент. В
частности, рассматривается возможность разработки альтернативных
методов управления (как представлено в исследовании 3). Любой
пользовательский алгоритм управления, который не использует
стандартную кинематику KRC, должен вычислять соответствующие
конфигурации точек выборки для требуемых положений рабочего органа.
Другими словами, каждый алгоритм управления работает как планировщик
движения. Для обеспечения плавных движений манипуляторов необходимо
генерировать траектории из этих заданных точек из выборки. Правильно
подобранная траектория является основной предпосылкой для
проектирования высокопроизводительного контроллера слежения и
гарантирует, что ни кинематические, ни динамические пределы не будут
превышены. Такой контроллер гарантирует, что управляемый робот будет
следовать по указанному пути, не сходя с него. Поэтому необходимо
применять управление с обратной связью, чтобы иметь возможность
компенсировать внешние помехи, а также помехи от задержек по времени
связи. Обратите внимание, что данные времени являются свободным
параметром, потому что, как уже упоминалось, время выборки алгоритма
отображения не является постоянным. Возможное решение для создания
хорошо подходящих траекторий состоит в использовании
пропорционально-интегрально-дифференцирующего (PID) регулятора для
каждого соединения. Для настройки параметров PID могут использоваться
разные методы, такие как метод, предложенный в [15]. Реакция принятого
ПИД-регулятора показана на рис. 13 для всех осей робота. Интерфейс,
предоставляемый JOpenShowVar, демонстрирует относительно быструю
реакцию на входы и адаптивную ошибку вывода для исследовательских
целей, учитывая размерность контролируемой модели.

Рис. 13: Цель и реакция принятого ПИД-регулятора для всех осей робота.
C. Эффективность
Что касается четвертого тематического исследования, цель состоит в том,
чтобы показать возможность работы робота и передачи соответствующей
информации по силе оператору. Графики на рис. 14-a и рис. 14-b
показывают фактическое положение для осей X, Y и Z в результате
движений тактильного устройства ввода, управляемых пользователем, осей
робота, соответственно. В этом конкретном случае оператор маневрирует
роботом, чтобы сначала, поднимая рабочий орган робота вверх, а затем
снова вниз со смещением также по осям X и Y. В этом тематическом
исследовании входной сигнал не масштабируется в рабочее пространство
робота, поскольку тактильное устройство используется только для
установки направления движения робота и для передачи соответствующей
информации по силе оператора. Несмотря на то, что между входным
сигналом и фактическим положением существует задержка, результаты
показывают, что система довольно чутко реагирует на вводимые
пользователем данные. На рис. 14-c и рис. 14-d показаны моменты,
приложенные к звеньям робота, и соответствующие силы, приложенные к
рабочему органу робота соответственно. Оператор также воспринимает
обратную связь по силе, которая пропорциональна силам, приложенным к
рабочему органу робота.

Рис. 14: Пример 4: (а) фактическое положение в результате движений


тактильного устройства ввода (в этом случае входной сигнал не
масштабируется до рабочей области робота, так как тактильное
устройство используется только для установки направления движения для
робота и для передачи обратной связи по силе оператору), (b) оси, (c)
моменты на осях и (d) силы, приложенные к рабочему органу робота.
VI. ВЫВОДЫ И ПЕРСПЕКТИВЫ РАЗРАБОТКИ
В этой статье рассматриваются особенности JOpenShowVar как
кроссплатформенного коммуникационного интерфейса для
промышленных роботов Kuka. Несмотря на то, что JOpenShowVar
обеспечивает доступ к управляемому манипулятору только в мягком
реальном времени, этот пакет промежуточного программного обеспечения
открывает множество различных приложений, позволяющих использовать
различные устройства ввода, датчики и разрабатывать альтернативные
методы управления. Особое внимание было уделено тому, чтобы методы
JOpenShowVar были интуитивно понятными и простыми в использовании.
Универсальность и эффективность интерфейса были продемонстрированы
в четырех практических исследованиях. Первые два тематических
исследования представляют собой приложения без обратной связи, в то
время как последние два тематических исследования описывают
возможность реализации приложений с обратной связью. Недавно наша
исследовательская группа использовала JOpenShowVar для создания
структуры, позволяющей воспроизвести сложный сценарий управления
морскими кранами с помощью безопасной лабораторной установки [16].
В будущем различные алгоритмы управления, реализованные в [17], [18] и
[19], могут быть протестированы в качестве альтернативы стандартному
KRC. Наконец, необходимо приложить некоторые усилия в процессе
стандартизации JOpenShowVar, чтобы сделать его еще более надежным как
для промышленной, так и для академической практики. Авторы считают,
что ключ к максимизации долгосрочных макроэкономических выгод для
робототехнической промышленности и научных исследований в области
робототехники основан на тесно интегрированной разработке открытого
контента, открытых стандартов и открытого исходного кода. С этой точки
зрения интеграция предлагаемого интерфейса с ROS имеет решающее
значение в качестве необходимой будущей работы. Сообщество
разработчиков в ROS надеется на интеграцию JOpenShowVar.
VII. БЛАГОДАРНОСТЬ
Эта работа частично поддерживается Исследовательским советом
Норвегии через схему финансирования Центров передового опыта, проект
№ 223254 и Инновационную программу для морской деятельности и
морских операций, проект № 217768.

ССЫЛКИ
[1] M. Schopfer, F. Schmidt, M. Pardowitz, and H. Ritter, “Open source
real-time control software for the kuka light weight robot,” in Proc. of
the 8th IEEE World Congress on Intelligent Control and Automation
(WCICA), Jinan, China, 2010, pp. 444–449.
[2] G. Schreiber, A. Stemmer, and R. Bischoff, “The fast research interface
for the kuka lightweight robot,” in Proc. of the IEEE ICRA Workshop
on Innovative Robot Control Architectures for Demanding (Research)
Applications How to Modify and Enhance Commercial Controllers,
2010, pp. 15–21.
[3] KUKA Robotics Corporation. (2014, March) “KUKA”. [Online].
Available: http://www.kuka-robotics.com/
[4] KUKA, Expert Programming. KUKA Robotics Corporation, 2003.
[5] H. M¨uhe, A. Angerer, A. Hoffmann, and W. Reif, “On reverseengineering
the kuka robot language,” in 1st IEEE/RSJ International
Workshop on Domain-Specific Languages and models for Robotic
systems DSLRob’10, International Conference on Intelligent Robots
and Systems (IROS), 2010, pp. 16, 217, 223, 224.
[6] KUKA Robotics Corporation. (2014, March) “KUKA, Hub
technologies”. [Online]. Available: http://www.kuka-robotics.com/
en/products/software/hub technologies/print/start.htm
[7] F. Sanfilippo, L. I. Hatledal, H. Zhang, M. Fago, and K. Y. Pettersen,
“JOpenShowVar: an open-source cross-platform communication interface
to kuka robots,” in Proc. of the IEEE International Conference on
Information and Automation (ICIA), Hailar, China, 2014, pp. 1154–
1159.
[8] Google Inc. (2014, March) “Android”. [Online]. Available: http:
//www.android.com/
[9] Leap Motion Inc. (2014, March) “The Leap Motion Controller”.
[Online]. Available: http://www.leapmotion.com/
[10] F. Chinello, S. Scheggi, F. Morbidi, and D. Prattichizzo, “Kuka control
toolbox,” IEEE Robotics & Automation Magazine, vol. 18, no. 4, pp.
69–79, 2011.
[11] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs,
R. Wheeler, and A. Y. Ng, “ROS: an open-source robot operating
system,” in ICRA workshop on open source software, vol. 3, no. 3.2,
2009, p. 5.
[12] D. Delling, P. Sanders, D. Schultes, and D. Wagner, “Engineering route
planning algorithms,” in Algorithmics of large and complex networks.
Springer, 2009, pp. 117–139.
[13] B. Siciliano and O. Khatib, Springer handbook of robotics. Springer,
2008.
[14] Force dimension. (2014, March) “omega.7”. [Online]. Available:
http://www.forcedimension.com/
[15] I. Pan, S. Das, and A. Gupta, “Tuning of an optimal fuzzy PID
controller with stochastic algorithms for networked control systems
with random time delay,” ISA transactions, vol. 50, no. 1, pp. 28–36,
2011.
[16] F. Sanfilippo, L. I. Hatledal, H. Zhang, W. Rekdalsbakken, and
K. Y. Pettersen, “A wave simulator and active heave compensation
framework for demanding offshore crane operations,” in Proc. of the
IEEE Canadian Conference on Electrical and Computer Engineering
(CCECE), Halifax, Nova Scotia, Canada, 2015, pp. 1588–1593.
[17] F. Sanfilippo, L. I. Hatledal, H. G. Schaathun, K. Y. Pettersen, and
H. Zhang, “A universal control architecture for maritime cranes and
robots using genetic algorithms as a possible mapping approach,”
in Proc. of the IEEE International Conference on Robotics and
Biomimetics (ROBIO), Shenzhen, China, 2013, pp. 322–327.
[18] F. Sanfilippo, L. I. Hatledal, H. Zhang, and K. Y. Pettersen, “A
mapping approach for controlling different maritime cranes and robots
using ANN,” in Proc. of the 2014 IEEE International Conference on
Mechatronics and Automation (ICMA), Tianjin, China, 2014, pp. 594–
599.
[19] L. I. Hatledal, F. Sanfilippo, and H. Zhang, “JIOP: a java intelligent
optimisation and machine learning framework,” in Proc. of the 28th
European Conference on Modelling and Simulation (ECMS), Brescia,
Italy, 2014, pp. 101–107.

Вам также может понравиться