Модели, алгоритмы и комплекс программ для моделирования манипуляторов на основе архитектуры адаптивной нейро-нечеткой системы вывода и обучающих алгоритмов тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Ту Раин

  • Ту Раин
  • кандидат науккандидат наук
  • 2023, ФГАОУ ВО «Белгородский государственный национальный исследовательский университет»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 141
Ту Раин. Модели, алгоритмы и комплекс программ для моделирования манипуляторов на основе архитектуры адаптивной нейро-нечеткой системы вывода и обучающих алгоритмов: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГАОУ ВО «Белгородский государственный национальный исследовательский университет». 2023. 141 с.

Оглавление диссертации кандидат наук Ту Раин

ВВЕДЕНИЕ

ГЛАВА 1. ОБЗОР И АНАЛИЗ МЕТОДОВ РАСЧЕТОВ ОБРАТНЫХ ЗАДАЧ КИНЕМАТИКИ И ДИНАМИКИ И ПРОГРАММННЫХ СРЕДСТВ ДЛЯ МОДЕЛИРОВАНИЯ МАНИПУЛЯТОРОВ

1.1 Обзор и анализ методов расчетов обратной задачи кинематики манипуляторов

1.2 Обзор и анализ методов расчетов обратной задачи динамики манипуляторов

1.3 Обзор и анализ существующих программ моделирования манипуляторов

1.4 Выводы по главе

ГЛАВА 2. РАЗРАБОТКА МАТЕМАТИЧЕСКОЙ МОДЕЛИ МАНИПУЛЯТОРА С ПЯТЬЮ СТЕПЕНЯМИ СВОБОДЫ

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

2.2 Решение обратной задачи кинематики манипулятора с пятью степенями свободы на основе метода Левенберга-Марквардта

2.2.1 Расчет якобианов для манипулятора

2.2.2 Алгоритм решения обратной кинематики методом Левенберга-Марквардта

2.3 Решение обратной задачи динамики манипулятора на основе метода Ньютона-Эйлера

2.3.1 Итеративная динамическая формулировка Ньютона-Эйлера

2.4 Выводы по главе

ГЛАВА 3. СТРУКТУРА И АЛГОРИТМ ОБУЧЕНИЯ АДАПТИВНОЙ НЕЙРО-НЕЧЕТКОЙ СИСТЕМЫ ВЫВОДА

3.1 Структура адаптивной нейро-нечеткой системы вывода

3.1.1. Система нечеткого вывода

3.1.2. Адаптивная сеть

3.1.3. Архитектура АНСВ

3.2 Алгоритм обучения адаптивной нейро-нечеткой системы

3.2.1. Обучение обратному распространению для параметров предпосылок

3.2.2. Процесс моделирования АНСВ

3.2.3. Генерация наборов данных для обучения и тестирования

3.2.4. Обучение АНСВ

3.2.5. Тестирование АНСВ

3.2.6. Оценка прогнозируемого значения

3.3 Выводы по главе

ГЛАВА 4. РАЗРАБОТКА ПРОГРАММНОГО КОМПЛЕКСА ДЛЯ ИССЛЕДОВАНИЯ ЭФФЕКТИВНОСТИ РАЗРАБОТАННЫХ МЕТОДОВ МОДЕЛИРОВАНИЯ МАНИПУЛЯТОРА С ПЯТЬЮ СТЕПЕНЯМИ СВОБОДЫ

4.1 Выбор среды разработки и имитационного моделирования манипулятора с

пятью степенями свободы

4.2 Разработка компонента программного интерфейса «GUI»

4.2.1 Разработка программного компонента решения прямой задачи кинематики манипулятора

4.2.2 Разработка программного компонента решения обратной задачи кинематики манипулятора

4.2.3. Разработка программного компонента решения обратной задачи динамики манипулятора

4.3 Выводы по главе

ЗАКЛЮЧЕНИЕ

Список использованных источников

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Модели, алгоритмы и комплекс программ для моделирования манипуляторов на основе архитектуры адаптивной нейро-нечеткой системы вывода и обучающих алгоритмов»

ВВЕДЕНИЕ

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

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

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

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

Степень разработанности темы. Исследованиями в области решения задач кинематики и динамики манипуляционных систем занимались следующие авторы: Кулаков Ф.М., Кулешов В. С., Лакота Н. А., Медведев В. С., Лесков А. Г., Ющенко А. С., Попов Е. П., Верещагин А. Ф., Зенкевич С. Л., Черноусько Ф. Л., Болотник Н. Н., Градецкий В. Г., Крутько П. Д., Матюхин В. И. Исследованиям в области интеллектуальных методов для решения ОЗК и ОЗД манипулятора посвящены работы Polydoros A.S., Boukas E., Nalpantidis L., Nguyen-Tuong D., Peters J., Seeger M., Scholkopf B. и др.

Объектом исследования является моделирования манипулятора с пятью степенями свободы.

Предмет исследования: математические методы и моделирование манипуляторов, соответствующие алгоритмы и программы.

Целью диссертационной работы является совершенствование методов компьютерного моделирования и расчетов ОЗК и ОЗД манипуляторов на основе архитектуры адаптивной нейро-нечеткой системы вывода (АНСВ) и обучающих алгоритмов.

Для достижения данной цели были сформулированы и решены следующие исследовательские задачи:

1. Проанализировать существующие методы и алгоритмы расчета ОЗК и ОЗД манипуляторов.

2. Разработать математические модели и алгоритмы для кинематического и динамического моделирования манипулятора на основе численных методов для создания обучающих и тестовых наборов данных.

3. Разработать численные методы и алгоритмы расчетов ОЗК и ОЗД манипулятора на основе АНСВ.

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

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

Методы исследования. В работе применялись методы математического моделирования, численные методы, линейной алгебры, адаптивной нейро-нечеткой системы вывода и обучающих алгоритмов, объектно-ориентированного программирования, компьютерного и имитационного моделирования.

Область исследования. Содержание диссертации соответствует паспорту специальности 1.2.2. Математическое моделирование, численные методы и комплексы программ по следующим областям исследований:

Пункт 2 - Разработка, обоснование и тестирование эффективных вычислительных методов с применением современных компьютерных технологий.

Пункт 3 - Реализация эффективных численных методов и алгоритмов в виде комплексов проблемно-ориентированных программ для проведения вычислительного эксперимента.

Пункт 6 - Разработка систем компьютерного и имитационного моделирования, алгоритмов и методов имитационного моделирования на основе анализа математических моделей (технические науки).

Пункт 8 - Комплексные исследования научных и технических проблем с применением современной технологии математического моделирования и вычислительного эксперимента.

Научная новизна диссертационной работы заключается в:

1. Математической модели, состоящей в описании манипуляторов с пятью степенями свободы на основе специально выбранных параметров Денавита-Хартенберга и позволяющей в отличие от существующих моделей решить обратные задачи кинематики и динамики для манипулятора указанного типа.

2. Впервые реализованных специальных модификациях численных методов Левенберга-Марквардта для исследуемого класса моделей и выполнении на их основе расчётов обратных задач кинематики и динамики с использованием АНСВ.

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

Теоретическая значимость диссертационного исследования состоит в разработке новой математической модели, методов расчетов обратной задачи

кинематики и динамики манипуляторов на основе АНСВ, методов и алгоритмов сбора обучающих и тестовых выборок на основе численных методов для моделирования АНСВ, методов визуализации и анализа математических моделей манипуляторов.

Практическая значимость заключается том, что проведено имитационное моделирование кинематических и динамических параметров движения звеньев манипуляторов, использованных при практической реализации для создания манипуляторов указанного типа. Практическая значимость также подтверждается тем, что результаты диссертационного исследования применяются в Научном исследовательском центре министерства науки технологии Республики Союз Мьянмы (Акт внедрения результатов диссертационного исследования от 03.04.2023 г.), что подтверждено Актами о внедрении результатов диссертационной работы Ту Раин. Отмечается, что использование полученных в диссертации Ту Раин результатов позволило создать программное обеспечение тренажёра-имитатора и системы управления роботом-манипулятором для обезвреживания взрывоопасных предметов.

Положения, выносимые на защиту:

1. Математическая модель кинематики и динамики манипулятора с пятью степенями свободы для создания обучающих и тестовых выборок.

2. Модели и алгоритмы расчетов ОЗК и ОЗД манипулятора с пятью степенями свободы на основе численных методов и АНСВ.

3. Программная реализация в среде МА^АВ алгоритмов численных методов и АНСВ для компьютерного и имитационного моделирования в виде двух проблемно-ориентированных комплексов программ.

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

Апробация результатов диссертационного исследования. Результаты диссертационного исследования обсуждались на следующих научно-технических, научно-практических конференциях: 2019 International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM), Sochi, Russia, March 25-29, 2019, тема доклада « Efficient method for inverse dynamics of robot manipulators by using the adaptive-network-based fuzzy inference system », «Analysis of Position and Velocity of Four-Legged Robot (Mini-Bot) from Dynamic Model Using Euler-Lagrange Method»; 14th International Conference on Electromechanics and Robotics "Zavalishin's Readings", Kursk, Russia, April 17-20, 2019, тема доклада « Development of the method of generating programmed trajectories of the end effector of a 3d-printer for additive technologies based on a spatial manipulation mechanism»; Завалишинские чтения' 19: молодежная секция, Санкт Петербург, Россия, Апрель 17-20, 2019, тема доклада «Программное обеспечение для управления серводвигателем с-Arduino и Raspberry^ для четырехногого робота (Mini-Bot)»; семинар кафедры математического и программного обеспечения информационных систем НИУ "БелГУ" под руководством заведующего кафедрой, профессора Константинова И.С., март 2023 г., тема доклада «Модели, алгоритмы и комплекс программ моделирования манипуляторов на основе численных методов и мягких вычислений»; IX Международная научно-техническая конференция «Информационные технологии в науке, образовании и производстве» (ИТНОП-2023), Белгород, Россия, 31 мая - 2 июня 2023 г., темы докладов 1) «Разработка программного модуля для имитационного моделирования манипулятора с пятью степенями свободы» и 2) «Создание обучающих наборов данных на основе численных методов для обучения кинематической и динамической моделей манипулятора».

Публикации. По теме диссертации опубликованы 14 научных работ, 8 из которых - в рецензируемых научных журналах и изданиях, рекомендованных ВАК РФ [115, 117, 118, 119, 120, 121, 123], 1 свидетельство регистрации программы на ЭВМ [121], 3 статьи опубликованы в журналах, индексируемых

Scopus [78, 94, 102], 3 - публикации в других журналах и сборниках трудов международных и всероссийских научных конференций [79, 116, 124].

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

Объем и структура работы. Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы и приложений. Работа содержит 141 страниц текста (с учетом трех приложений) и поясняется 56 рисунками и 7 таблицами; список литературы включает 124 наименований.

ГЛАВА 1. ОБЗОР И АНАЛИЗ МЕТОДОВ РАСЧЕТОВ ОБРАТНЫХ ЗАДАЧ КИНЕМАТИКИ И ДИНАМИКИ И ПРОГРАММННЫХ СРЕДСТВ ДЛЯ МОДЕЛИРОВАНИЯ МАНИПУЛЯТОРОВ

1.1 Обзор и анализ методов расчетов обратной задачи кинематики

манипуляторов

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

е = (в1-впу (1.1)

где вI - углы относительно поворота сочленений звеньев; п - число сочленений. Положение и ориентация схвата 5 манипулятора можно представить в виде:

б = (рх,ру,рг,у,Р,а) (1.2)

где рх, ру, р2- координаты схвата (в ортогональной системе координат); у,р,а -углы, задающие ориентацию схвата (углы Эйлера).

Определение положения и ориентации схвата 51 при заданных значений вектора обобщенных координат манипулятор в называется прямой задачей кинематики (ПЗК) [104, 105, 109, 111]. В ПЗК положение и ориентация схвата 5 являются функцией вектора обобщенных координат его звеньев в:

* = № (13)

Определение вектора обобщенных координат в, который позволяет манипулятору достичь желаемых положения и ориентаций схвата называется обратной задачей кинематики (ОЗК). Отношение между ПЗК и ОЗК показано на рисунке 1. Соотношение между вектором обобщенных координат в, положение и ориентация схвата 5 в ОЗК может быть представлено уравнением (1.4).

в = Г\*) (1.4)

Рисунок 1 - Схема решения прямой и обратной задач кинематики

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

Обратная задача кинематики

Традиционные методы

Алгебраические методы

Геометрические методы

Численные методы

Интеллектуальные методы

1 1

Искусственные нейронные сети Адаптивные методы Генетический алгоритм

Рисунок 2 - Классификация методов решения ОЗК Традиционные методы

Традиционные подходы используют следующие методы - геометрические, алгебраические и численные. Геометрический метод основан на представлении пространственной геометрии манипулятора в виде нескольких задач плоской геометрии. Данный метод применяется к исследованию простых по конструкции манипуляторов[81, 83, 101, 104]. Для манипуляторов с большим числом степеней свободы, обладающих большим количеством звеньев, определение геометрических параметров вызывает значительные затруднения. В этом случае алгебраический [5, 72, 82, 95] и численный [69, 100, 104] методы являются более эффективными для решения ОЗК.

В работе [21] предложено решение ОЗК с помощью геометрической алгебры, где содержится математическое описание представленных положений и поворотов. Данный факт расширяет возможности геометрической алгебры, позволяя описывать кривые поверхности, такие как сферы, линии и окружности. Такие кривые более стабильны, чем матрицы вращения. Геометрическое представление и алгебраическое богатство данного метода обеспечивают большую гибкость в процессе моделирования виртуальных или физических объектов.

В работе [7] представлено аналитическое решение ОЗК на основе непосредственного манипулирования тригонометрическими уравнениями без их преобразования в полиномиальные. Для демонстрации данного метода были выбраны четыре разные подгруппы уравнений, две из которых являются примерами замкнутых и полуаналитических решений ОЗК для наиболее часто встречающихся кинематических структур среди промышленных манипуляторов.

В работе[14] решение ОЗК представлено как решение системы алгебраических уравнений, позволяющих вычислить значения углов поворота звеньев в шарнирах, путем их преобразования в эквивалентную простую форму. Данный метод позволяет осуществить преобразование в удобную стандартную форму, обладающую определенными свойствами и кругом решения. Алгебраические методы обычно используются для получения решений в замкнутой форме, но не всегда гарантируют их возможность.

В работе [55] предложен эффективный алгоритм для решения ОЗК для шестиподвижного манипулятора, обладающего произвольной геометрией. Задача сводится к решению системы многомерных уравнений, для чего используются свойства алгебры и символические формулировки, позволяющие облегчить решения полученного одномерного полинома. В случае получения многочлена находится его матричный определитель, а его корни вычисляются путем сведения к задаче к частному решению. Указанная методика включают символьную предварительную обработку, матричные вычисления и множество других численных методов.

В работе [45] представлено основанное на однородном преобразовании решение ПЗК и ОЗК для открытой кинематической цепи. Используемые геометрический и алгебраический подходы исследуются с пояснительными примерами. Прямые и обратные кинематические преобразования выполняются на основе предположения о моделировании кватернионов и поясняются с помощью иллюстративных примеров.

Численные или итеративные решения для ОЗК являются методами, основанными на якобиане, и обеспечивают возможность дифференциального управление манипулятором. Каждая итерация, ограниченное коротким интервалом времени обеспечивает небольшое продвижение к цели. Якобиан / является матрицей частных производных всей элементов системы относительно положения и ориентации схватов 5. Решения Якоби являются линейным приближением ОЗК и линейно моделируют движения схвата относительно мгновенных изменений в перемещении угла поворота звена. Матрица Якоби / является функцией значений в и определяется как

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

Используя текущие значения в, б и , можно вычислить якобиан / = ](в). Далее требуется определить обновленное значение Ав, которое является отклонением значений углов поворота:

(1.5)

где /= 1, ..., к, j= 1, ..., п.

Уравнение (1.3) для ПЗК можно записать в виде

5=](в)в

(1.6)

в := в +Ав

(1.7)

Изменение положения и ориентации схвата, вызванное этим отклонением можно определить как

Дя « ]Дв (1.8)

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

Таким образом, вопросы определения ПЗК можно представить как е = ]Дв, а вопросы ОЗК можно записать как

Дв = ](в)-1е (1.9)

Предложенный метод напрямую использует обратный Якобиан для вычисления изменения совместных переменных [27]. Однако матрица Якобиана имеет размер (6*п), где п - число степеней свободы манипулятора. Поэтому, когда степень свободы меньше 6, матрица Якоби становится прямоугольной или не имеет полного ранга и вычисление обратного Якобиана становится невозможным. Наилучшее из возможных приближенных решений может быть получено инверсией Мура-Пенроуза (Мооге-Решше), которая также известна как псевдообращение ^е^о^егаош), обозначаемая как Псевдообратный метод устанавливает значение Дв:

Дв=](в)^е (1.10)

Приведенное выше уравнение имеет решение, полученное методом наименьших квадратов для Дв, который является единственным вектором наименьшей величины, минимизирующим \\]Дв — е\\ или эквивалентно \\]Дв— е\\2. Для системы с ограничениями или избыточной системы, псевдообращение определяется как:

]"=]Т(]]Т)-1 ( 1.11 )

В работе [80] представлены различные методы, основанные на якобиане, поскольку псевдообратный метод является быстрым, но имеет низкое качество аппроксимации. Это создает очень большую скорость схвата вблизи сингулярности, а также когда цель находится за пределами ее достижимости. В работе [27] поведено управление и шестиподвижным манипулятором для применения 3D-печати псевдообратным методом. Отмечается, что сложность получения решения в закрытой форме возрастает с увеличением степени свободы. В псевдообратном методе скорость интегрируется по положению, для того чтобы уменьшить дрейф схвата за счет снижения размеров шага.

В работе [17] предлагает самый простой метод транспозиции матрицы Якоби, что сокращает время вычисление за счет обращения к матрице. Изменение углов поворота Ав определяется как

Ав = а •](в)т е (1.12)

где а - скалярная постоянная, влияет на изменение в в каждой итерации; е -вектор ошибок (6*1), определяющий ошибку положения и ориентации между текущей конфигурации и целевой функцией. Чтобы минимизировать вектор ошибок после обновления, значение скаляра а должно быть достаточно маленьким. Значение а выбирается так, чтобы это значение было как можно ближе к вектору ошибки е. Основным преимуществом этого метода является более быстрая сходимость, минимальные вычисления и меньшая сложность.

Основным недостатком вышеуказанных методов является их низкая производительность по время, что может быть эффективно скомпенсировано путем применения метода наименьших квадратов (Damped Least Square Method) (НК) и вводом коэффициента демпфирования. Коэффициент демпфирования снижает большую скорость вблизи особых точек, что делает систему устойчивой и позволяет определить Ав. Данный метод также называется методом Левенберга-Марквардта (ЛМ) и впервые был реализован для решения ОЗК в работе Wampler [96]. В работе определены корректирующие движения для снижения ошибки по положению и углу поворота схвата. Метод НК требует выбора коэффициента

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

\\]Дв — е\\2 + Х2\\в\\2 (1.13)

где X - ненулевой коэффициент демпфирования.

Таким образом, отклонение по методу наименьших квадратов определяется формулой

Дв =]т(]]т + Л21)-1е (1.14)

Выбор коэффициента демпфирования необходимо осуществлять очень тщательно, чтобы уравнение (1.13) было численно устойчивым. Чем выше значение коэффициента демпфирования, тем выше устойчивость и ниже точность отслеживания и наоборот [10]. Значение коэффициента демпфирования должно быть больше, чем наименьшее возможное значение. Определение возможного значения может быть проведено путем разложения матрицы Якоби, т.е.

1 = Т1=0О1и1у1 (1.15)

где и.1, VI - входной и выходной сингулярный вектор; - сингулярное значение. На основании (1.15) решение для Дв можно записать в виде:

Дв = Т1=о7^итте (1.16)

Таким образом, из (1.16) следует, что при >>Л; а коэффициент демпфирования изменяется незначительно, поскольку

О";

(1.17)

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

1

решения сводится к нулю с помощью коэффициента ^, что постепенно снижает

м

их общую скорость.

Учитывая, что постоянный коэффициент демпфирования не позволит в полной мере использовать метод НК, то необходимо выбрать коэффициент динамического демпфирования, обеспечивающего близость возможной к возможной конфигурации [54], которая, в свою очередь, может быть эффективно оценена по наименьшему возможному значению матрицы Якоби [10, 54]. В работе [10] использовался динамический коэффициент демпфирования для управления манипулятором с шестью степенями свободы. Аналогичным образом в работе [54] было установлено, что большой коэффициент демпфирования снижает точность отслеживания даже тогда, когда существует возможность получения точного решения. В работе используются два наименьших единичных значения для определения коэффициента демпфирования, чтобы делает манипулятор более устойчивым. Заданная пользователем точность зависит от поставленной задачи по сокращению вычислений. Стратегия коррекции обратной связи принимается таким образом, чтобы избежать численных отклонений в решении ОЗК из-за дискретности времени. Предложенный модифицированный алгоритм был реализован для манипулятора и позволил обеспечить значительное снижение погрешности движения звеньев.

В работе [37] было проведено сравнительное исследование различных методов, основанных на якобиане, т.е. транспозиция Якобиана - псевдообратный якобиан, метод НК, модифицированный метод НК и методов аппроксимации. Проведено сравнение на основе ряда проведенных элементарных операций для вычисления итерации. Установлено, что псевдообратная операция требует проведение значительных вычислительных операций, за которыми следует метод НК и метод транспозиции якобиана. Метод транспозиции якобиана является в вычислительном отношении наиболее дешевым, в то время, как метод НК обладая немного большими вычислительными затратами, дает более точное решение. Аналогично, сравнивая по времени, затрачиваемому на вычисления, псевдообратный якобиан занимает максимальное время вычисления,

сопровождается использованием методов НК и транспозиции якобиана для перемещения схвата на заданной траектории. Наряду с методом транспозиции якобиана, был протестирован модифицированный метод ЛМ обратной матрицы Якоби. На основе моделирования трех разных манипуляторов был сделан вывод, что модифицированный метод ЛМ более эффективен, чем метод транспозиции якобиана. За исключением метода НК, все рассмотренные методы чувствительны к точности вычислений.

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Ту Раин, 2023 год

Список использованных источников

1. Agarwal V. Trajectory planning of redundant manipulator using fuzzy clustering method // International Journal of Advance. Manufacturing. Technology. -2012. - P. 727-744.

2. Alavandar S., Nigam M. J. Inverse Kinematics Solution of 3DOF Planar Robot using ANFIS // Intenational Journal of Computers, Communications & Control. -2008. - Vol.3. - P. 150-155.

3. Albert F., Koh S., Tiong S., Chen C., Yap F. Inverse Kinematic Solution in Handling 3R Manipulator via Real-Time Genetic Algorithm // IEEE International Symposium on Information Technology. - 2008. - P. 1-6.

4. Anderson K., Angeles J. Kinematic inversion of robotic manipulators in the presence of redundancies // The International Journal of Robotics Research. - 1989. - Vol.8. - №6. - P. 80- 97.

5. Aspragathos N., Dimitros J. A comparative study of three methods for robot kinematics // IEEE Trans. Syst., Man, Cybern. B. - 1998. - Vol.28, №2. - P. 135145.

6. Ayob M.A., Wan Z., Jalani J., Tomari R. Modeling and simulation of a 5-axis RV 2AJ robot using simmechanics. -Jurnal Teknologi. - 2015. - Vol.76. - P. 5963.

7. Balkan T., Kemal Ozgoren M., Sahir A.M., Murat B.H. A kinematic structure-based classification and compact kinematic equations for six-dof industrial robotic manipulators // Mechanism and Machine Theory. -2001. - Vol.36, №7. - P. 817-832.

8. Bailón W.P., Cardiel E., Campos I., Paz A. Mechanical Energy Optimization in Trajectory Planning for Six DOF Robot Manipulators Based on EighthDegree Polynomial Functions and a Genetic Algorithm // International Conference on Electrical Engineering, Computing Science and Automatic Control. -2010.- P. 446-451.

9. Bingul Z., Ertune H.M., Oysu C. Comparison of inverse kinematics solutions using neural network for 6 R robot manipulator with offset // Proceedings of

the ICSC congress on computational intelligence methods and applications. - 2005. - P. 1-5.

10. Bruno S., Stefan C. Review of the Damped LeastSquares Inverse Kinematics with Experiments on an Industrial Robot Manipulator // IEEE Transactions On Control Systems Technology. - 1994. - Vol.2, №2. - P. 123-134.

11. Cellier F.E. Continuous System Simulation. - Springer - 2006. - 643p.

12. Chatzis S.P., Demiris Y. Echo state gaussian process // IEEE Transactions on Neural Networks. - 2011. - Vol. 22. - №9. - P. 1435-1445.

13. Cheng C.A., Huang H.P., Hsu H.K., Lai W.Z., Cheng C.C. Learning the Inverse Dynamics of Robotic Manipulators in Structured Reproducing Kernel Hilbert Space // IEEE Transactions on Cybernetics. - 2016. - Vol. 46,№7. - P. 1691-1703.

14. Cohen A.M., Cuypers H., Sterk H. Some tapas of computer algebra. -Springer Berlin. - 2013. - 352p.

15. Craig J.J. Introduction to Robotics Mechanics and Control (3rd Edition). -Addison-Wesley, 2004. - 408 p.

16. Cruz J.S., Kulic D., Owen W. Online incremental learning of inverse dynamics incorporating prior knowledge // Autonomous and Intelligent Systems. AIS. Lecture Notes in Computer Science. - 2011. - Vol.6752. - P. 167-176.

17. Das H., Slotine J-J. E., Sheridan T.B. Inverse kinematic Algorithm for Redundent Systems // IEEE International Conference on Robotics and Automation. -1988. - Vol.1. - P. 43-48.

18. Denavit J., Hartenberg R. A kinematic notation for lower-pair mechanisms based on matrices // Trans ASME J. Appl. Mech. - 1955. - Vol.23. P. 215-221.

19. Dennis J.E., Schnabel R.B. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. - Soc. Ind. Appl. Math. - 1993. - 375 p.

20. Deo A.S., Walker I.D. Adaptive non-linear least squares for inverse kinematics // Proceedings IEEE International Conference on Robotics and Automation. -1993. P. 186-193.

21. Doran C., Lasenby A. Geometric algebra for physicists. - Cambridge University Press. - 2003. - P. 351-64.

22. Edward A. D. A comparison of Kane's equations of motion and the gibbs-appell equations of motion // American Journal of Physics. - 1986. - №54(5). - P.470-472.

23. Farrington P.A., Nembhard H.B., Sturrock D.T., Evans G.W.eds. Increasing the Power and Value of Manufacturing Simulation Via Collaboration with Other Analytical Tools: A Panel Discussion //Proceedings of the Winter Simulation Conference.- 1999.

24. Felix E.T., Bruce A.M. Graphical Simulation and Visualization Tool for a Distributed Robot Programming Environment // Technical Report of the Department of Electrical and Electronic Engineering, University of Auckland. - 2003. - P. 1-8.

25. Fu K.S., Gonzalez R.C., Lee C.S.G. Robotics Control, Sensing, Vision and Intelligence. - McGraw Hill, 1987. - 580 p.

26. Gamino M., Pedraza J.C., Ramos J.M., Gorrostieta E. Matlab-C++ Interface for a Flexible Arm Manipulator Simulation using Multi-Language Techniques // Proceedings of the Fifth Mexican International Conference on Artificial Intelligence (MICAI). - 2006. - P. 369-378.

27. Gier M. R. Control of a robotic arm: Application to on-surface 3Dprinting. - Delft University of Technology. - 2015. - 88p.

28. Gijsberts A., Metta G. Real-time model learning using incremental sparse spectrum gaussian process regression // Neural Networks. - 2013. - Vol.41. - P. 59-69.

29. Golub G.H., Hansen P.C., O'Leary D.P. Tikhonov regularization and total least squares // SIAM Journal on Matrix Analysis and Applications. - 1999 - Vol.21 -№1. - P. 185-194.

30. Hartmann C., Boedecker J., Obst O., Ikemoto S., Asada M. Real-time inverse dynamics learning for musculoskeletal robots based on echo state gaussian process regression // Robotics: Science and Systems VIII. - 2012. P. - 113-120.

31. Hasan A.T., Hamouda A., Ismail N., Al-Assadi H.M.A.A. An adaptive-learning algorithm to solve the inverse kinematics problem of a 6 D.O.F. serial robot manipulator // Sciencedirect Adv Eng Software. - 2006. - №37(7). - P. 432-438.

32. Her M.-G., Chen C.-Y., Hung Y.-C., Karkoub M. Approximating a Robot Inverse Kinematics Solution Using Fuzzy Logic Tuned by Genetic Algorithms Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist // International Journal of Advanced Manufacturing Technology. - 2002. - Vol.20. - P. 375-380.

33. Hollerbach J.M. A Recursive Lagrangian Formulation of Manipulator Dynamics and a comparative Study of Dynamics Formulation Complexity // IEEE Trans. on Systems, Man and Cybernetics. - 1980. - Vol. SMC-10 - №11 - P. 730-736.

34. Hourtash A. The kinematic hessian and higher derivatives // Proceeding of. 2005 IEEE International Symposium on Computational Intelligence in Robotics and Automation. - 2005. - P. 169-174.

35. Howard D., Zilouchian A. Application of Fuzzy Logic for the Solution of Inverse Kinematics and Hierarchical Controls of Robotic Manipulators // Journal of Intelligent and Robotic Systems. - 1998. - P. 217-247.

36. Huang H., Xu S., Hsu H. Hybrid Taguchi DNA Swarm Intelligence for Optimal Inverse Kinematics Redundancy Resolution of Six-DOF Humanoid Robot // Mathematical Problems in Engineering. - 2014. - P. 1-9.

37. Ignacy D., Michal O. A Comparison Of Jacobian-Based Methods Of Inverse Kinematics For Serial Robot Manipulators // International Journal of Applied Mathematics in Computer science. - 2013. - Vol.23, №2. - P. 373-382.

38. Jang J.-S.R. ANFIS: Adaptive-Network-Based Fuzzy Inference System. // IEEE Transactions on Systems, Man and Cybernetics - 1993 - Volume 23 - Issue 3 -P. 665-685.

39. Kalra P. A Neuro-genetic Algorithm Approach for Solving the Inverse Kinematics of Robotic Manipulators // IEEE International Conference on Systems, Man and Cybernetics. - 2003. - P. 1979-1984.

40. Kane T.R., Levinson D.A. Dynamics: Theory and Applications. -McGraw-Hill, 1985. - 402 p.

41. Kane T.R., Levinson D.A. The Use of Kane's Dynamical Equations in Robotics // The International Journal of Robotics Research. - 1983. - Vol. 2. - P. 3-21.

42. Karlik B., Aydin S. An improved approach to the solution of inverse kinematics problems for robot manipulators // Engineering Applications of Artificial Intelligence. - 2000. - Vol.13. - P. 159-164.

43. Kawato M., Uno Y., Isobe R., Suzuki R. Hierarchical neural network model for voluntary movement with application to robotics // IEEE Control Systems Magazine. - 1987. - Vol.57. - P. 169-185.

44. Kim S., Lee J. Inverse kinematics solution based on fuzzy logic for redundant manipulators // Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems. - 1993. - P. 904-910.

45. Kucuk S., Bingul Z. The inverse kinematics solutions of industrial robot manipulators // IEEE International Conference on ICM, Mechatronics. - 2004. - P. 274279.

46. Laboudi Zakaria, Chikhi Salim. Comparison of genetic algorithm and quantum genetic algorithm // International Arab Journal of Information Technolgy. -2012. Vol.9. - P. 51-57.

47. Lee C.S.G. Robot Arm Kinematics, Dynamics and Control // Computer. -1982. - Vol. 15. - №12. - P. 62-80.

48. Lee C.S.G., Lee B.H., Nigam R. An Efficient formulation of Robot Arm Dynamics for Control Analysis and Manipulator Design // CRIM Technical Report No. RSD-TR-8-82, the University of Michigan. - 1982.

49. Lei-ping X., Zi-li C., Shao-jie S. Obstacle Avoiding Research on the Manipulator based on Genetic Algorithm // International Conference on Instrumentation, Measurement, Computer, Communication and Control. - 2011.- P. 16.

50. Liu H., Brown D. J. An Extension to Fuzzy Qualitative Trigonometry and Its Application to Robot Kinematics // IEEE International Conference on Fuzzy Systems. - 2006. - P. 1111-1118.

51. Li-Sheng W., Yih-Hsing P. Jourdain's variational equation and appell's equation of motion for nonholonomic dynamical systems // American Journal of Physics. - 2003. № 71(1). - P. 257-264.

52. Marco B., Carlo B. Paolo M. Equivalence of Kane's and Maggi's equations. // Meccanica - №25(4) - 1990. - P. 272-274.

53. Martin P., Emami M.R. A neuro-fuzzy approach to real-time trajectory generation for robotic rehabilitation. Robotics and Autonomous Systems. - 2014. -Vol.62, №4. - P. 568- 578.

54. Maciejewski A.A., Klein C.A. Numerical Filtering for the Operation of Robotic Manipulators through Kinematically Singular Configuration // Journal of Robotic Systems. - 1998. - Vol.5, №6. - P. 527-552.

55. Manocha D., Canny J. Efficient inverse kinematics for general 6R manipulators // IEEE Trans. Robot. Automat. - 1994. - Vol.10, №5. - P. 648-657.

56. Martin R. Web Based Robot Simulation using VRML // Winter Simulation Conference Proceedings. - 2000. - Vol.2. - P. 1525-1528.

57. Meier F., Schaal S. Drifting gaussian processes with varying neighborhood sizes for online model learning // IEEE International Conference on Robotics and Automation (ICRA). - 2016. P. 264-269.

58. Meier F., Kappler D., Ratliff N., Schaal S. Towards robust online inverse dynamics learning // IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). - 2016. - P. 4034-4039.

59. Miller W.T., Hewes R.P., Glanz F.H., Kraft L.G. Real-Time Dynamic Control of an Industrial Manipulator Using a Neural-Network-Based Learning Controller // IEEE Transactions on Robotics and Automation. - 1990. - Vol.6. - №1.-P. 1-9.

60. Moreno T.R., Cabrera R.J., Hernández R.F., Jose E.V., Jesus C. P. Simulation Software of the Mitsubishi RV-2AJ Manipulator Robot // Proceedings of the 4th Mexican Conference on Mechatronics. - 2005. - P. 129- 132.

61. Muhammad I.J., Habibollah H., Dewi N. Development of Robot Simulation Software For Five Joints Mitsubishi RV-2AJ Robot Using MATLAB/Simulink And V-Realm Builder // Fifth International Conference on Computer Graphics, Imaging And Visualization. - 2008. - P. 83-87.

62. Nakamura Y., Hanafusa H. Inverse kinematic solutions with singularity robustness for robot manipulator control // Journal of Dynamic Systems, Measurement and Control. - 1985 - Vol.15. - P. 193-204.

63. Nathan S., Cristopher E., Elisabeth C., Deborah W. Implementing Virtual Robots in Java3D Using a Subsumption Architecture // Proceedings from the Association for the Advancement of Computing in Education. - 2006.

64. Nguyen-Tuong D., Peters J., Seeger M., Scholkopf B. Learning Inverse Dynamics: A Comparison // Advances in Computational Intelligence and Learning: Proceedings of the European Symposium on Artificial Neural Networks. - 2008. - P. 13-18.

65. Nguyen-Tuong D., Peters J. Using Model Knowledge for Learning Inverse Dynamics // IEEE International Conference on Robotics and Automation. - 2010. P. 2677-2682.

66. Nguyen-Tuong D., Seeger M., Peters J. Model learning with local gaussian process regression // Advanced Robotics. - 2009. - Vol.23. - №15 - P. 20152034.

67. Nourdine A. A Matlab/Simulink-Based Interactive module for Servo Systems Learning // IEEE Transactions on Education. - 2009. - Vol. 7.- №4. - P. 1-7.

68. Olaru A., Olaru S., Paune D., Aurel O. Assisted Research and Optimization of the Proper Neural Network Solving the Inverse Kinematics Problem // Advanced Materials Research. - 2012. - Vol.463. - P. 1098-1101.

69. Olsen A.L., Petersen H.G. Inverse kinematics by numerical and analytical cyclic coordinate descent. Robotica. - 2011. - №29(4). - P. 619-626.

70. O'Neil K.A., Chen Y., Seng J. Removing singularities of resolved motion rate control of mechanisms, including self-motion // IEEE Trans. Robot. Autom. -1997. - Vol.13. - №.5. P. 741-751.

71. Paul R.P. Robot Manipulators: Mathematics, Programming and Control. -MIT Press, 1981. - P. 157-195.

72. Perez A., McCarthy J.M. Sizing a serial chain to fit a task trajectory using Clifford algebra exponentials // IEEE International Conference on Robotics and Automation. -2005. - P. 4709-4715

73. Pérez-rodríguez R., Marcano-cedeño A., Costa Ú., Solana J., et al. Applications Inverse kinematics of a 6 DoF human upper limb using ANFIS and ANN for anticipatory actuation in ADL-based physical Neurorehabilitation // Expert systems.

- 2012. - Vol. 39. - P. 9612-9622.

74. Pohl E.D., Lipkin H. A new method of robotic motion control near singularities // Procedding of 5th IEEE International Conference on Advanced Robotics.

- 1991. - P. 405- 410.

75. Polydoros A.S., Boukas E., Nalpantidis L. Online Multi-Target Learning of Inverse Dynamics Models for Computed-Torque Control of Compliant Manipulators // IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) -2017. - P. 4716-4722.

76. Polydoros A.S., Nalpantidis L., Kruger V. Real-time Deep Learning of Robotic Manipulator Inverse Dynamics // IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). - 2015. - P. 3442-3448.

77. Qi L., Li Y. Inverse Kinematics Solution of Manipulator for the Steel Plate Bending Forming by Line Heating Based on SVM and GA // International Conference On Mechatronics Technology. - 2012. - P. 415-418.

78. Rain T., Dovgal V.M., Soe Y.N. Efficient method for inverse dynamics of robot manipulators by using the adaptive-network-based fuzzy inference system. // Conference Proceedings. 2019 International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM) - 2019 - P. 1-6.

79. Rain T., Dovgal V.M., Soe Y.N. Object detection using background subtraction method for pick-and-place operation of robot manipulator // VII Международная научно-техническая конференция «Информационные технологии в науке, образовании и производстве», Белгородского государственного национального исследовательского университета (НИУ «БелГУ») - 2018 - C. 361366.

80. Samule R.B. Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares methods // IEEE Transactions in Robotics and Automation. - 2009. - Vol.17. - P. 1-19.

81. Sciavicco, Lorenzo, Siciliano, Bruno. Modelling and control of robot manipulators. Advanced Textbooks in Control and Signal Processing. - Springer New York. - 2012. - P. 79-84.

82. Selig J.M. Geometrical methods in robotics. - Springer New York. -2013. - 269 p.

83. Sheng L., Yiqing W., Qingwei C., Weili H. A new geometrical method for the inverse kinematics of the hyper-redundant manipulators // IEEE International Conference on Robotics and Biomimetics. - 2006. - P. 1356-1359.

84. Silver W.M. On the Equivalence of Lagrangian and Newton-Euler Dynamics for Manipulators // The International Journal of Robotics Research. - 1982. -Vol.1.- №2.P. 60-70.

85. Singh R., Vishal V., Singh T.N., Ranjith P.G. A comparative study of generalized regression neural network approach and adaptive neuro-fuzzy inference systems for prediction of unconfined compressive strength of rocks // Neural Computing and Application. - 2013. - Vol.23. - P. 499-506.

86. Soh H., Demiris Y. Spatio-temporal learning with the online finite and infinite echo-state Gaussian processes // IEEE transactions on neural networks and learning systems. - 2015. - Vol.26. - №3. P. 522- 536.

87. Soto J.A., Vargas J.E., Pedraza J.C. A New Trajectory Generation Method Using Vision for a Robot Manipulator // International Conference on Dynamics, Instrumentation and Control. - 2006. - P. 408-413.

88. Spong M.W., Vidyasagar M. Robot Dynamics and Control. - John Wiley & Sons, 2004. - 303 c.

89. Stephen H.M., John T.W., George N.S. Simulation of cooperating Robot Manipulators on a mobile Platform // IEEE Transactions on Robotics and Automation. -1991. - Vol. 7. - №4. - P. 468 - 478.

90. Tabendeh S., Clark C., Melek W. A genetic algorithm approach to solve for multiple solutions of inverse kinematics using adaptive niching and clustering // IEEE congress on evolutionary computation. - 2006. - P. 1815-1822.

91. Tanriverdi V., Jacob R.J.K. VRID: A Design Model and Methodology for Developing Virtual Reality Interfaces // Proceeding of. ACM Symposium on Virtual Reality Software and Technology. - 2001. - P. 175-182.

92. Turney J.L., Mudge T.N., Lee C.S.C. Connection Between Formulations of Robot Arm Dynamics with Applications to Simulation and Control // CRIM Technical Report No. RSD-TR-4-82, the University of Michigan. - 1982.

93. Vijayakumar S., Schaal S. Locally Weighted Projection Regression: An O(n) Algorithm for Incremental Real Time Learning in High Dimensional Space // Proceedings of the Seventeenth International Conference on Machine Learning. - 2000. - Vol.1. - P. 1079-1086.

94. Wai K. P., Rukavitsyn A., Rain T. Development of the method of generating programmed trajectories of the end effector of a 3d-printer for additive technologies based on a spatial manipulation mechanism // Proceedings of 14th International Conference on Electromechanics and Robotics "Zavalishin's Readings". -2019 - P.279-288.

95. Walker M. Manipulator kinematics and the epsilon algebra // IEEE J. Robot.Automat. - 1988. - Vol.4, №2. - P. 186-192.

96. Wampler, Charles W. Manipulator Inverse Kinematic Solutions Based on Vector Formulations and Damped Least-Squares Methods // IEEE Transactions On Systems, Man, And Cybernetics. - 1986. - Vol.16, №1. - P. 93-101.

97. Wang S-C. Interdisciplinary computing in java programming // Springer International Series in Engineering and Computer Science. - 2003. - Vol.743. - P. 81100.

98. Whitney D.E. The mathematics of coordinated control of prosthetic arms and manipulators // Journal of Dynamic Systems, Measurement and Control. - 1972. -Vol.94 - №4. - P. 303-309.

99. Wu W., Rao S. Uncertainty analysis and allocation of joint tolerances in robot manipulators based on interval analysis // Reliable Engineering System Safety. -2007. - №92 (1). - P. 54-64.

100. Xu Jianxin, Wang Wei, Sun Yuanguang. Two optimization algorithms for solving robotics inverse kinematics with redundancy // Journal Control Theory Application. - 2010. - №8(2). - P. 166-175.

101. Yahya S., Moghavvemi M., Yang S., Mohamed HAF. Motion planning of hyper redundant manipulators based on a new geometrical method // IEEE International Conference on Industrial Technology. -2009. - P. 1-5.

102. Yan N. S., Rain T. Analysis of Position and Velocity of Four-Legged Robot (Mini-Bot) from Dynamic Model Using Euler-Lagrange Method. // Proceedings of 2019 International Conference on Industrial Engineering, Applica-tions and Manufacturing (ICIEAM). - 2019 - P. 1-4.

103. Дружинин Э.И. Об устойчивости прямых алгоритмов расчета программных управлений в нелинейных системах // Известия РАН. Теория и системы управления. - 2007. - Т. 3. - № 4. - С. 14-20

104. Зенкевич С.Л., Ющенко А.С. Основы управления манипуляционными роботами // Изв. МГТУ им. Н.Э.Баумана, 2004. - 477 c.

105. Крутько П.Д., Попов Е. П. Кинематические алгоритмы управления движением манипуляционных роботов // Изв. АН СССР. Техническая кибернетика. - 1979. - № 4. - С. 77-86

106. Крутько П.Д., Лакота Н.А. Метод обратных задач динамики в теории конструирования алгоритмов управления манипуляционных роботов. Задача стабилизации // Изв. АН СССР. Техническая кибернетика. - 1987. - № 3. - С. 2330.

107. Кулаков Ф.М. Супервизорное управление манипуляционными роботами - М.:Наука, 1980. - 448 c.

108. Кулешов В.С., Лакота Н.А. Динамика систем управления манипуляторами. - М.: Энергия, 1971. - 304 c.

109. Матюхин В.И. Управление движением манипулятора. - М.: ИПУ РАН, 2010. - 96 с.

110. Матюхин В.И. Управление механическими системами - М.: Физматлит, 2009. - 320 с.

111. Медведев В.С., Лесков А.Г., Ющенко А.С. Системы управления манипуляционных роботов - М.: Наука, 1978. - 416 с.

112. Попов Е.П., Верещагин А.Ф., Зенкевич С.Л. Манипуляционные роботы: динамика и алгоритмы. - М.: Наука, 1978. - 400 с.

113. Черноусько Ф.Л., Болотник Н.Н., Градецкий В.Г. Манипуляционные роботы: динамика, управление, оптимизация. - М.: Физматлит, 1989. - 368 с.

114. Черноусько Ф.Л., Ананьевский И.М., Решмин С.А. Методы управления нелинейными механическими системами - М.: Физматлит, 2006. - 326 с.

115. Раин Т. Интеллектуальное управление роботом-манипулятором с использованием адаптивного нейро-нечеткого контроллера // Auditorium: Электронный научный жунал - 2017 - №4(16) - С. 1-6.

116. Раин Т. Описание программного комплекса для моделирования робота-манипулятора. // Вестник Российских университетов. 2023 - Том 28 - № 141 - С. 90 - 96.

117. Раин Т. Разработка программного модуля для моделирования кинематики и динамики манипулятора. // Прикладная математика и физика, - Том 55 - № 1 - С. 70 - 83.

118. Раин Т. Управление движением роботом-манипулятором на основе нечеткой логики // Жунал: Современная наука: актуальные проблемы теории и практики. Серия «Естественные и технические науки» - 2018 - №1 - C. 61-67.

119. Раин. Т. Эффективная методология сбора данных для обучения обратной динамической модели манипулятора на основе аналитического метода -II. // Челябинский физико-математический журнал - 2023 - Том 8 - № 1 - С. 146 -151.

120. Раин Т., Довгаль В.М., Ян Н. С. Моделирование кинематического

управления роботом-манипулятором «Intelbot» на основе адаптивной нейро-нечеткой системы вывода (anfis) // Научные ведомости Белгородского государственного университета, Экономика. Информатика - 2018 - Том 45 - № 3

- С. 497-509.

121. Раин Т. , Ян Н. С. Моделирование динамики манипулятора с использованием адаптивной нейро-нечеткой системы вывода // Моделирование, оптимизация и информационные технологии. Научный журнал - 2019 - Том 7 -№ 4. - С. 1-14.

122. Свидетельство о государственной регистрации программы для ЭВМ № 2019614703 Россия, «Программа для моделирования и управления роботом манипулятором с пятью степенями свободы «Intelbot»», автор Ту Раин.

123. Ситник С.М., Раин Т. Эффективная методология сбора данных для обучения обратной динамической модели манипулятора на основе аналитического метода - I. // Челябинский физико-математический журнал - 2023

- Том 8 - № 1, - С. 140 - 145.

124. Ян Н. С., Мартинез Леон А.С., Раин Т., Яцун С.Ф. Программное обеспечение для управления серводвигателем с Arduino и Raspberry-Рi для четырехного робота Mini-Bot // XIII Международная научно-техническая конференция - 2019 - С. 343-347.

ПРИЛОЖЕНИЕ 1

Фрагменты исходного текста комплекса программ

function varargout = Intelbot(varargin)

% INTELBOT MATLAB code for Intelbot.fig

axes(handles.title);

imshow('titl e.png');

axes(handles.logo);

imshow('logo.png');

set(handles.slider1,'value',THETA 1)

set(handles.slider2,'value',THETA2)

set(handles.slider3,'value',THETA3)

set(handles.slider4,'value',THETA4)

set(handles.slider5,'value',THETA5)

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1).JointPosition =THETA1;

config(2).JointPosition =THETA2;

config(3).JointPosition =THETA3;

config(4)JointPosition =THETA4;

config(5).JointPosition =THETA5;

axes(handles.model);

show(intelbot,config)

set(handles.slider1, 'value',THETA 1)

set(handles.slider2,'value',THETA2)

set(handles.slider3,'value',THETA3)

set(handles.slider4,'value',THETA4)

set(handles.slider5,'value',THETA5)

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1).JointPosition =THETA1;

config(2).JointPosition =THETA2;

config(3).JointPosition =THETA3;

config(4)JointPosition =THETA4;

config(5).JointPosition =THETA5;

axes(handles.model);

show(intelbot,config)

set(handles.slider1, 'value',THETA 1)

set(handles.slider2,'value',THETA2)

set(handles.slider3,'value',THETA3)

set(handles.slider4,'value',THETA4)

set(handles.slider5,'value',THETA5)

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1).JointPosition =THETA1;

config(2)JointPosition =THETA2; config(3).JointPosition =THETA3; config(4).JointPosition =THETA4; config(5).JointPosition =THETA5; axes(handles.model); show(intelbot,config) guidata(hObject, handles); set(handles.slider1, 'value',THETA 1); set(handles.slider2,'value',THETA2); set(handles.slider3,'value',THETA3); set(handles.slider4,'value',THETA4); set(handles.slider5,'value',THETA5); intelbot = importrobot('intelbotv5.urdf); config = homeConfiguration(intelbot); config(1)JointPosition =THETA1; config(2).JointPosition =THETA2; config(3).JointPosition =THETA3; config(4).JointPosition =THETA4; config(5).JointPosition =THETA5; axes(handles.model); show(intelbot,config) set(handles.slider1, 'value',THETA 1); set(handles.slider2,'value',THETA2); set(handles.slider3,'value',THETA3); set(handles.slider4,'value',THETA4); set(handles.slider5,'value',THETA5); intelbot = importrobot('intelbotv5.urdf); config = homeConfiguration(intelbot); config(1)JointPosition =THETA1; config(2).JointPosition =THETA2; config(3).JointPosition =THETA3; config(4).JointPosition =THETA4; config(5).JointPosition =THETA5; axes(handles.model); show(intelbot,config) intelbot = importrobot('intelbotv5.urdf); config = homeConfiguration(intelbot); config(1).JointPosition =THETA1; config(2)JointPosition =THETA2; config(3).JointPosition =THETA3; config(4).JointPosition =THETA4; config(5).JointPosition =THETA5; axes(handles.model); show(intelbot,config) guidata(hObject, handles); THETA 1=get(handles.slider1,'Value');

THETA2=get(handles.slider2,'Value');

THETA3=get(handles.slider3,'Value');

THETA4=get(handles.slider4,'Value');

THETA5=get(handles.slider5,'Value');

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1).JointPosition =THETA1;

config(2).JointPosition =THETA2;

config(3)JointPosition =THETA3;

config(4).JointPosition =THETA4;

config(5).JointPosition =THETA5;

axes(handles.model);

show(intelbot,config)

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1).JointPosition =THETA1;

config(2).JointPosition =THETA2;

config(3).JointPosition =THETA3;

config(4)JointPosition =THETA4;

config(5).JointPosition =THETA5;

axes(handles.model);

show(intelbot,config)

guidata(hObject, handles);

THETA 1=get(handles.slider1,'Value');

THETA2=get(handles.slider2,'Value');

THETA3=get(handles.slider3,'Value');

THETA4=get(handles.slider4,'Value');

set(handlesj2,'String',num2str(THETA2));

set(handles.j3,'String',num2str(THETA3));

set(handles.j4,'String',num2str(THETA4));

set(handles.j5,'String',num2str(THETA5));

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1)JointPosition =THETA1;

config(2).JointPosition =THETA2;

config(3).JointPosition =THETA3;

config(4).JointPosition =THETA4;

config(5).JointPosition =THETA5;

axes(handles.model);

show(intelbot,config)

THETA 1=get(handles.sli der1, 'Value');

THETA2=get(handles.slider2,'Value');

THETA3=get(handles.slider3,'Value');

THETA4=get(handles.slider4,'Value');

set(handles.j2,'String',num2str(THETA2))

set(handles.j3,'String',num2str(THETA3))

set(handles.j4,'String',num2str(THETA4))

set(handles.j5,'Strlng',num2str(THETA5))

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

config(1).JolntPosltlon =THETA1;

config(2).JolntPosltlon =THETA2;

config(3).JolntPosltlon =THETA3;

config(4).JolntPosltlon =THETA4;

config(5).JolntPosltlon =THETA5;

axes(handles.model);

show(intelbot,config)

THETA 1=get(handles.sllder1,'Value');

THETA2=get(handles.sllder2,'Value');

THETA3=get(handles.sllder3,'Value');

THETA4=get(handles.slider4,'Value');

THETA5=get(handles.sllder5,'Value');

A=fwdk(THETA 1,THETA2,THETA3,THETA4,THETA5);

bb=num2str(A(1,4),'%f);

set(handles.forwardz, ' Strlng',num2str(A(3,4),'%f)) %-------------------------------------------

set(handles.ior11,'String',num2str(A(1,1),%of))

set(handles.lor12,'Strlng',num2str(A(1,2),'%f))

set(handles.lor13,'Strlng',num2str(A(1,3),'%f))

set(handles.lor21,'Strlng',num2str(A(2,1),'%f))

set(handles.lor22,'Strlng',num2str(A(2,2),'%f))

set(handles.ior23,'String',num2str(A(2,3),%of))

set(handles.lor31,'Strlng',num2str(A(3,1),'%f))

set(handles.lor32,'Strlng',num2str(A(3,2),'%f))

set(handles.lor33,'Strlng',num2str(A(3,3),'%f))

THETA 1=get(handles.slider1,'value');

THETA2=get(handles.sllder2,'value');

THETA3=get(handles.sllder3,'value');

THETA4=get(handles.sllder4,'value');

set(handles.j2,'Strlng',num2str(THETA2,'%f));

set(handles.j3,'String',num2str(THETA3,%of));

set(handles.j4,'Strlng',num2str(THETA4,'%f));

set(handles.j5,'Strlng',num2str(THETA5,'%f));

A=fwdk(THETA 1,THETA2,THETA3,THETA4,THETA5);

set(handles.or11,'String',num2str(A(1,1),'%f));

set(handles.or12,'Strlng',num2str(A(1,2),'%f));

set(handles.or13,'Strlng',num2str(A(1,3),'%f));

set(handles.or21,'Strlng',num2str(A(2,1),'%f));

set(handles.or22,'Strlng',num2str(A(2,2),'%f));

set(handles.or23,'String',num2str(A(2,3),%of));

set(handles.or31, ' String', num2str(A(3,1),'%f));

set(handles.or32,'Strlng',num2str(A(3,2),'%f));

set(handles.or33,'String', num2str(A(3,3),'%f)); set(handles.forwardx,'String',num2str(A(1,4),'%f)); set(handles.forwardy,'Strlng',num2str(A(2,4),'%f)); set(handles.forwardz, ' Strlng',num2str(A(3,4),'%f)); intelbot = importrobot('intelbotv5.urdf); config = homeConfiguration(intelbot); config(1).JolntPosltlon =THETA1; config(2).JolntPosltlon =THETA2; config(3).JointPosition =THETA3; config(4).JolntPosltlon =THETA4; config(5).JolntPosltlon =THETA5; axes(handles.model); show(intelbot,config) if get(handles.radlo1,'Value')

lor11_d=str2double(get(handles.lor11,'Strlng')); lor21_d=str2double(get(handles.lor21,'Strlng')); ior31_d=str2double(get(handles.ior31,'String')); lor12_d=str2double(get(handles.lor12,'Strlng')); lor22_d=str2double(get(handles.lor22,'Strlng')); lor32_d=str2double(get(handles.lor32,'Strlng')); lor13_d=str2double(get(handles.lor13,'Strlng')); ior23_d=str2double(get(handles.ior23,'String')); lor33_d=str2double(get(handles.lor33,'Strlng')); x_d=str2double(get(handles.lnversex,'Strlng')); y_d=str2double(get(handles.lnversey,'Strlng')); z_d=str2double(get(handles.lnversez,'Strlng')); R=[ior11_d lor12_d lor13_d; lor21_d lor22_d lor23_d; lor31_d lor32_d lor33_d]; quat_ln = rotm2quat(R); ln_matrlx =[quat_ln x_d y_d z_d]; fis1=readfis('lnv1'); fis2=readfis('lnv2'); fis3=readfis('lnv3'); fis4=readfis('inv4'); fis5=readfis('inv5'); THETA1P = evalfis(ln_matrlx,fis1); THETA2P = evalfis(in_matrix,fis2); THETA3P = evalfis(ln_matrlx,fis3); THETA4P = evalfis(in_matrix,fis4); THETA5P = evalfis(ln_matrlx,fis5); set(handles.oj1,'String',num2str(THETA1P,'%f)); set(handles.oj2,'Strlng',num2str(THETA2P,'%f)); set(handles.oj3,'Strlng',num2str(THETA3P,'%f)); set(handles.oj4,'Strlng',num2str(THETA4P,'%f)); set(handles.oj5,'Strlng',num2str(THETA5P,'%f));

%send output joints values to final position in trajectory

set(handlesj1_fmalposition,'String',num2str(THETA1P,'%f)); set(handlesj2_fmalposition,'String',num2str(THETA2P,'%f)); set(handles.j3_finalposition,'String',num2str(THETA3P,'%f)); set(handles.j4_finalposition,'String',num2str(THETA4P,'%f)); set(handles.j5_finalposition,'String',num2str(THETA5P,'%f));

else

intelbot = importrobot('intelbotv5.urdf); config = homeConfiguration(intelbot); config(1).JointPosition =0; config(2).JointPosition =0; config(3)JointPosition =0; config(4).JointPosition =0; config(5).JointPosition =0;

ik = robotics.InverseKinematics('RigidBodyTree',intelbot); weights = [1 1 1 1 1 1]; ikInitialGuess = intelbot.homeConfiguration; ior11_d=str2double(get(handles.ior11,'String')); ior21_d=str2double(get(handles.ior21,'String')); ior31_d=str2double(get(handles.ior31,'String')); ior12_d=str2double(get(handles.ior12,'String')); ior22_d=str2double(get(handles.ior22,'String')); ior32_d=str2double(get(handles.ior32,'String')); ior13_d=str2double(get(handles.ior13,'String')); ior23_d=str2double(get(handles.ior23,'String')); ior33_d=str2double(get(handles.ior33,'String')); x_d=str2double(get(handles.inversex,'String')); y_d=str2double(get(handles.inversey,'String')); z_d=str2double(get(handles.inversez,'String')); Tee = [ior11_d ior12_d ior13_d x_d; ior21_d ior22_d ior23_d y_d; ior31_d ior32_d ior33_d z_d; 0 0 0 1]; [QSol, SolInfo] = step(ik,'EE',Tee,weights,config); qSol = [QSol.JointPosition]; set(handles.oj1,' String',num2str(qSol(1),'%f)); set(handles.oj2,'String',num2str(qSol(2),'%f)); set(handles.oj3,' String',num2str(qSol(3),'%f)); set(handles.oj4,'String',num2str(qSol(4),'%f)); set(handles.oj5,'String',num2str(qSol(5),'%f)); %send output joints values to final position in trajectory

set(handles.j1_finalposition,'String',num2str(qSol(1),'%f)); set(handles.j2_finalposition,'String',num2str(qSol(2),'%f)); set(handles.j3_finalposition,'String',num2str(qSol(3),'%f));

%reset output joints

set(handles.ojVString',num2str(0,'%f));

set(handles.oj2,'String',num2str(0,'%f));

set(handles.oj3,'String',num2str(0,'%f));

set(handles.oj4,'String',num2str(0,'%f));

set(handles.oj5,'String',num2str(0,'%f));

intelbot = importrobot('intelbotv5.urdf);

config = homeConfiguration(intelbot);

axes(handles.model);

show(intelbot,config)

guidata(hObject, handles);

handles.welcome.Visible-' off; handles.forward.Visible='on'; handles.inversek.Visible-'off; handles.traj.Visible='off; handles.inversedynamics.Visible='off; intelbot = importrobot('intelbotv5.urdf); axes(handles.model); show(intelbot);

handles.welcome.Visible=' off; handles.forward.Visible-' off; handles.inversek.Visible='on'; handles.traj.Visible='off; handles.forward.Visible- off; handles.inversek.Visible-off; handles.traj.Visible-'on'; handles.forward.Visible-' off; handles.inversek.Visible-off; handles.traj.Visible-'off; handles.inversedynamics.Visible-'on'; function Intelbot_CreateFcn(hObject, eventdata, handles) handles.welcome.Visible-'on'; handles.forward.Visible-' off; handles.inversek.Visible-'off; handles.traj.Visible-off; fV1 - str2double(get(handles.j1_finalv,'String')); ip1 - str2double(get(handles.j1_initialposition,'String')); fp1 - str2double(get(handles.j1_finalposition,'String')); %joint_2

iv2 - str2double(get(handles.j2_initialv,'String'));

fv2 - str2double(get(handles.j2_finalv,'String'));

ip2 - str2double(get(handles.j2_initialposition,'String'));

fp2 - str2double(get(handles.j2_finalposition,'String'));

%joint_3

iv3 - str2double(get(handles.j3_initialv,'String'));

fv3 - str2double(get(handles.j3_finalv,'String'));

ip3 - str2double(get(handles.j3_initialposition,'String'));

fp3 = str2double(get(handles.j3_finalposltlon,'Strlng')); %jolnt_4

iv4 = str2double(get(handles.j4_lnltlalv,'Strlng')); fv4 = str2double(get(handles.j4_finalv,'Strlng')); lp4 = str2double(get(handles.j4_lnltlalposltlon,'Strlng')); fp4 = str2double(get(handles.j4_finalposltlon,'Strlng')); %jolnt_5

lv5 = str2double(get(handles.j5_initialv,'String'));

fv5 = str2double(get(handles.j5_finalv,'Strlng'));

lp5 = str2double(get(handles.j5_lnltlalposltlon,'Strlng'));

fp5 = str2double(get(handles.j5_finalposltlon,'Strlng'));

%trj=trq(ti ,ttotal,dt,lv,fv,lq,fq)

tq1=trq(tl,t_total,t_step,lv1,fv1,lp1,fp1);

tq2=trq(tl,t_total,t_step,lv2,fv2,lp2,fp2);

tq3=trq(tl,t_total,t_step,lv3,fv3,lp3,fp3);

tq4=trq(ti,t_total,t_step,iv4,fv4,ip4,fp4);

tq5=trq(ti,t_total,t_step,iv5,fv5,ip5,fp5);

t = tl:t_step:t_total;

%plot joint positions

f1 = figure;

plot(t,tq1(1,:),'r')

hold on

plot(t,tq2(1,:),'b') hold on

plot(t,tq3(1,:),'m') hold on

plot(t,tq4(1,:),'c') hold on

plot(t,tq5(1,:),'g') title('Positions of the Joints') xlabel('Time(s)') ylabel('Jolnt Posltlon(rad)')

legend({'Jolnt1','Jolnt2','Jolnt3','Jolnt4','Jolnt5'},'Locatlon','northwest');

%plot joint velocities

f2 = figure;

plot(t,tq1(2,:),'r')

hold on

plot(t,tq2(2,:),'b') hold on

plot(t,tq3(2,:),'m') hold on

plot(t,tq4(2,:),'c') hold on

plot(t,tq5(2,:),'g') title('Velocities of the Joints') xlabel('Time(s)')

ylabel('Joint Velocities(rad/s)')

legend({'Joint1','Joint2','Joint3','Joint4','Joint5'},'Location','northwest'); %plot joint accelerations

f3 = figure;

plot(t,tq1(3, ),'r')

hold on

plot(t,tq2(3, ),'b')

hold on

plot(t,tq3(3, ),'m')

hold on

plot(t,tq4(3, ),'c')

hold on

plot(t,tq5(3, ),'g')

title('Accelerations of the Joints') xlabel('Time(s)')

ylabel('Joint Acceleartion(rad/sA2)')

legend({'Joint1','Joint2','Joint3','Joint4','Joint5'},'Location','northeast');

function res_traj_CaUback(hObject, eventdata, handles)

%reset

set(handles.initialtime,'String',num2str(0,'%f));

set(handles.timestep,'String',num2str(0.2,'%f));

set(handles.finaltime,'String',num2str(6,'%f));

set(handles.j1_initialv,'String',num2str(0,'%f));

set(handles.j1_flnalv,'String',num2str(0,'%f));

set(handles.j1_initialposition,'String',num2str(0,'%f));

set(handlesj1_finalposition,'String',num2str(0,%of));

set(handles.j2_initialv,'String',num2str(0,'%f));

set(handles.j2_flnalv,'String',num2str(0,'%f));

set(handles.j2_initialposition,'String',num2str(0,'%f));

set(handles.j2_flnalposition,'String',num2str(0,'%f));

set(handlesj3_initialv,'String',num2str(0,'%f));

set(handles.j3_flnalv,'String',num2str(0,'%f));

set(handles.j3_initialposition,'String',num2str(0,'%f));

set(handles.j3_flnalposition,'String',num2str(0,'%f));

set(handles.j4_initialv,'String',num2str(0,'%f));

set(handles.j4_flnalv,'String',num2str(0,'%f));

set(handles.j4_initialposition,'String',num2str(0,'%f));

set(handles.j4_flnalposition,'String',num2str(0,'%f));

set(handles.j5_initialv,'String',num2str(0,'%f));

set(handles.j5_flnalv,'String',num2str(0,'%f));

fV1 = str2double(get(handles.j1_finalv,'String'));

ip1 = str2double(get(handles.j1_initialposition,'String'));

fp1 = str2double(get(handles.j1_finalposition,'String'));

%joint_2

iv2 = str2double(get(handles.j2_initialv,'String')); fv2 = str2double(get(handles.j2_finalv,'String'));

ip2 = str2double(get(handlesj2_initialposition,'String')); fp2 = str2double(get(handles.j2_finalposition,'String')); %joint_3

iv3 = str2double(get(handlesj3_initialv,'String'));

fv3 = str2double(get(handles.j3_finalv,'String'));

ip3 = str2double(get(handlesj3_initialposition,'String'));

fp3 = str2double(get(handles.j3_finalposition,'String'));

%joint_4

iv4 = str2double(get(handles.j4_initialv,'String'));

fv4 = str2double(get(handles.j4_finalv,'String'));

ip4 = str2double(get(handles.j4_initialposition,'String'));

fp4 = str2double(get(handles.j4_finalposition,'String'));

%joint_5

iv5 = str2double(get(handlesj5_initialv,'String'));

fv5 = str2double(get(handles.j5_finalv,'String'));

ip5 = str2double(get(handles.j5_initialposition,'String'));

fp5 = str2double(get(handles.j5_finalposition,'String'));

%trj=trq(initial_t,total_t,t_step,initial_v,final_v,iq,fq)

tq1=trq(ti,t_total,t_step,iv1,fv1,ip1,fp1);

tq2=trq(ti,t_total,t_step,iv2,fv2,ip2,fp2);

tq3=trq(ti,t_total,t_step,iv3,fv3,ip3,fp3);

tq4=trq(ti,t_total,t_step,iv4,fv4,ip4,fp4);

tq5=trq(ti,t_total,t_step,iv5,fv5,ip5,fp5);

%start of animation

intelbot = importrobot('intelbotv5.urdf); q0 = homeConfiguration(intelbot); config = randomConfiguration(intelbot); framerate = 5;

r = robotics.Rate(framerate); tfinal = t_total;

numFrames = tfinal*framerate; qinterp = zeros(30,5); p = zeros(3,30);

%joints positions from trajectory for k=1:30

config(1).JointPosition = tq1(1,k); config(2).JointPosition = tq2(1,k); config(3).JointPosition = tq3(1,k); config(4).JointPosition = tq4(1,k); config(5).JointPosition = tq5(1,k); T = getTransform(intelbot,config,'EE'); p(:,k)=T(1:3,4); a = p'; end

%trajectory animation axes(handles.model);

show(intelbot,q0,'PreservePlot',false); hold on

c = plot3(a(1,1), a(1,2), a(1,3)); hold on for k=1:30

config(1).JointPosition = tq1(1,k); config(2).JointPosition = tq2(1,k); config(3).JointPosition = tq3(1,k); config(4).JointPosition = tq4(1,k); config(5).JointPosition = tq5(1,k); show(intelbot,config, 'PreservePlot', false); c.XData(k) = a(k,1); c.YData(k) = a(k,2); c.ZData(k) = a(k,3); waitfor(r); end hold off

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.