Развитие бикватернионной теории кинематического управления и её приложение к решению обратной задачи кинематики роботов-манипуляторов тема диссертации и автореферата по ВАК РФ 05.13.01, кандидат наук Нелаева Екатерина Игоревна

  • Нелаева Екатерина Игоревна
  • кандидат науккандидат наук
  • 2017, ФГБОУ ВО «Саратовский государственный технический университет имени Гагарина Ю.А.»
  • Специальность ВАК РФ05.13.01
  • Количество страниц 176
Нелаева Екатерина Игоревна. Развитие бикватернионной теории кинематического управления и её приложение к решению обратной задачи кинематики роботов-манипуляторов: дис. кандидат наук: 05.13.01 - Системный анализ, управление и обработка информации (по отраслям). ФГБОУ ВО «Саратовский государственный технический университет имени Гагарина Ю.А.». 2017. 176 с.

Оглавление диссертации кандидат наук Нелаева Екатерина Игоревна

Введение

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

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

1.1.1. Схема кинематического модуля, винтовое описание элементарных конечных перемещений звеньев манипулятора

1.1.2. Дуальное матричное и бикватернионное описания геометрии движения звеньев манипулятора

1.1.3. Дуальные матричные и бикватернионные уравнения прямых задач кинематики роботов-манипуляторов

1.2. Кинематическая схема и системы координат стэнфордского робота-манипулятора

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

1.4. Кинематические уравнения движения стэнфордского манипулятора

1.5. Выводы

2. Решение обратной задачи кинематики роботов-манипуляторов с использованием бикватернионной теории кинематического управления на примере стэнфордского манипулятора

2.1. Уравнения движения. Общая постановка задачи управления движением твердого тела

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

2.3. Алгоритм решения обратной задачи кинематики роботов-манипуляторов с использованием бикватернионной теории кинематического управления

2.4. Выводы

3. Численное решение обратной задачи кинематики стэнфордского манипулятора с использованием двух бикватернионных законов управления

3.1. Результаты решения обратной задачи кинематики для двух бикватернионных законов управления в нормированных и ненормированных бикватернионах

3.2. Исследование влияния величины коэффициента усиления обратной связи на численное решение обратной задачи кинематики

3.2.1. Исследование влияния величины действительной части коэффициента усиления обратной связи при шаге интегрирования 0,01с

3.2.2. Исследование влияния величины действительной части коэффициента усиления обратной связи при шаге интегрирования 0,001с

3.2.3. Исследование влияния величины моментной части коэффициента усиления обратной связи при шаге интегрирования 0,01с

3.3. Исследование влияния выбранного начального положения выходного звена на численное решение обратной задачи кинематики

3.3.1. Решение обратной задачи кинематики для различных заданных начальных положений выходного звена

3.3.2. Исследование влияния значений начальных угловых координат на решение обратной задачи кинематики

3.3.3. Исследование влияния значений начальной линейной координаты на решение обратной задачи кинематики

3.4. Сравнение законов управления в нормированных и ненормированных бикватернионах

3.5. Выводы

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

4.1. Уравнения движения. Общая постановка задачи управления движением твердого тела

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

4.3. Постановка и решение бикватернионной кинематической задачи оптимальной нелинейной стабилизации движения свободного твердого тела

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

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

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

4.7. Выводы

5. Численное решение обратной задачи кинематики и задачи управления движением выходного звена стэнфордского манипулятора с использованием оптимальных законов управления

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

5.1.1. Результаты решения обратной задачи кинематики стэнфордского манипулятора

5.1.2. Исследование влияния отношений весовых коэффициентов функционала минимизации на решение обратной задачи кинематики

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

5.2.1. Результаты решения обратной задачи кинематики стэнфордского манипулятора

5.2.2. Исследование влияния заданного времени решения задачи на решение обратной задачи кинематики стэнфордского манипулятора

5.3. Движение выходного звена стэнфордского манипулятора под действием полного управления

5.3.1. Результат решения задачи управления

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

5.4. Выводы

Заключение

Список литературы

Приложение А. Программа для численного решения прямой и обратной задач

кинематики стэнфордского манипулятора

Приложение Б. Акт о внедрении в ФГБУН «Институт проблем точной механики и управления РАН»

Рекомендованный список диссертаций по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК

Введение диссертации (часть автореферата) на тему «Развитие бикватернионной теории кинематического управления и её приложение к решению обратной задачи кинематики роботов-манипуляторов»

Введение

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

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

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

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

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

В работах Диментберга Ф.М. [9, 10] излагается теория винтов и ее приложения в механике. В книгах Бранца В.Н. и Шмыглевского И.П. [4, 2] и в монографиях Челнокова Ю.Н. [41, 42] излагаются кватернионные и бикватернионные модели и методы механики твердого тела и их многочисленные приложения, в том числе в инерциальной навигации и управлении движением твердого тела и механических систем, а также движущихся объектов, рассматриваемых как твердые тела.

В кватернионной постановке задачи управления вращательным движением твердого тела впервые рассматривались в [5, 3, 4], а затем в [33, 30, 2, 23, 1, 22, 41]. В работах [4, 22] изучалась задача кинематического оптимального (в смысле быстродействия) пространственного разворота твердого тела. В этой задаче (а также в других кинематических задачах управления вращательным движением) роль управления играет вектор угловой скорости твердого тела. Фазовой переменной является нормированный кватернион ориентации твердого тела, математическая модель движения имеет вид кватернионного кинематического уравнения вращательного движения. Граничные условия накладываются на

кватернион ориентации твердого тела. Эта задача для интегрального квадратичного (в отношении проекций вектора абсолютной угловой скорости твердого тела) функционала качества изучалась в работе [23]. В работах [33, 30, 2-5] рассматривалась кинематическая задача управления ориентацией твердого тела в рамках теории нелинейной стабилизации (с использованием нелинейных кватернионных уравнений углового движения в отклонениях и управления, построенного по принципу обратной связи), а в работах [1, 41] - в рамках теории оптимальной нелинейной стабилизации.

В работах [31, 32, 34, 35] рассмотрены теория и кватернионные алгоритмы бесплатформенных корректируемых систем ориентации и навигации. При этом используются корректируемые кватернионные кинематические уравнения ориентации твердого тела и теория кинематического управления.

В последние годы стали рассматриваться кинематические задачи управления общим пространственным движением свободного твердого тела в бикватернионной постановке. В них в качестве математической модели движения используется бикватернионное кинематическое уравнение движения свободного твердого тела, впервые предложенное в [43, 44]. Это уравнение связывает дуальные параметры Эйлера (Родрига-Гамильтона) с их первыми производными и проекциями кинематического винта скоростей на связанный базис. Бикватернионное уравнение имеет наглядную компактную форму и эквивалентно четырем уравнениям в дуальных параметрах Эйлера (Родрига-Гамильтона), или восьми скалярным вещественным дифференциальным уравнениям (линейным, если векторы угловой и линейной скоростей твердого тела являются известными функциями времени и нелинейными, если эти векторы рассматриваются как управления). Бикватернионное кинематическое уравнение позволяет по заданным начальным условиям движения и проекциям угловой и линейной скорости на связанный базис находить параметры винтового движения твердого тела. Вывод этого уравнения и его свойства описаны в книге [41]. Бикватернионное кинематическое уравнение движения свободного твердого тела является дуальным аналогом кватернионного кинематического

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

Кинематическая задача построения оптимального в смысле быстродействия винтового перемещения свободного твердого тела из заданного начального положения в требуемое конечное в бикватернионной постановке изучалась в [39, 22]. В качестве математической модели движения используется бикватернионное кинематическое уравнение движения свободного твердого тела, предложенное Челноковым Ю.Н.

В [56] рассматривается задача кинематического управления кинематически-избыточными космическими манипуляторами с использованием кватернионов ориентации. Вводится кватернион ошибки ориентации. Выводятся соотношения для присоединенных скоростей. В работе [105] рассмотрена геометрическая структура нормированного бикватерниона с приложениями в кинематическом управлении.

В [71-73] предложен кинематический бикватернионный стабилизирующий закон управления движением свободного твердого тела, имеющий вид логарифмической обратной связи. Кинематический винт свободного твердого тела, определенный своими дуальными ортогональными проекциями в основной системе координат, предлагается формировать по принципу отрицательной обратной связи в виде логарифма бикватерниона, характеризующего положение тела в пространстве, умноженного на отрицательный коэффициент усиления обратной связи. С помощью функций Ляпунова доказывается, что такое управление гарантирует асимптотическую устойчивость любого первоначального положения твердого тела. В работах также приводится бикватернионное логарифмическое стабилизирующее управление программным движением при наличии программного и стабилизирующего управлений, предназначенное для вывода тела на рекомендованную траекторию из произвольного начального положения и отслеживания рекомендованной

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

В [88] рассматривается задача кинематического управления движением робота-манипулятора с применением бикватернионов и бикватернионного кинематического закона управления, полученного в [71-73]. В работе [66] рассматривается робастное (грубое) кинематическое управление манипуляционными системами с использованием бикватернионов. В работе [90] рассмотрены уравнения кинематического управления для простых манипуляторов.

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

В диссертации с использованием параболических бикватернионов Клиффорда развивается бикватернионная теория кинематического управления движением свободного твердого тела:

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

2. Аналитически в нелинейной постановке решена кинематическая задача оптимальной нелинейной стабилизации произвольного программного движения свободного твердого тела.

3. Предложены алгоритмы формирования двух стабилизирующих бикватернионных законов управления в нормированных и

ненормированных бикватернионах, построенных по принципу обратной связи.

Рассматриваемая кинематическая задача построения оптимального в смысле минимизации затрат на кинематическое управление программного закона управления движением свободного твердого тела является обобщением задачи оптимального кинематического программного разворота твердого тела, которая ранее рассматривалась в кватернионной постановке в [23]. Полагается, что управление движением осуществляется за счет сообщения твердому телу мгновенного винта скоростей. В качестве математической модели движения выступает бикватернионное дифференциальное кинематическое уравнение движения свободного твердого тела [43, 44].

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

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

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

Бикватернионная теория кинематического управления движением свободного твердого тела может применяться в робототехнике для решения задачи управления движением выходного звена роботов-манипуляторов и для решения обратной задачи кинематики роботов-манипуляторов.

Команды управления манипуляторами роботов, оснащенных ЭВМ, формируются обычно в пространстве присоединенных переменных, координаты объектов манипулирования задаются в некоторой абсолютной системе

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

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

Как правило, обратная задача кинематики имеет несколько решений. Это означает, что к требуемому положению и ориентации выходного звена приводят несколько наборов обобщенных координат. Чем больше у робота-манипулятора звеньев ненулевой длины, тем больше решений имеет обратная задача кинематики [62]. Например, для произвольного шестизвенного манипулятора со всеми вращательными сочленениями было показано, что количество решений не превышает 16 [96, 101]. В [62] вводится понятие разрешимости схемы манипулятора, под которой понимается возможность найти все наборы присоединенных координат, отвечающие заданному положению и ориентации выходного звена манипулятора (все решения обратной задачи кинематики). С этой точки зрения все манипуляторы с вращательными и поступательными сочленениями и шестью степенями свободы, расположенными в одной цепочке, являются разрешимыми. Однако для большинства таких роботов существует только численное решение обратной задачи кинематики. Для того чтобы обратная задача кинематики решалась аналитически, требуется выполнение

определенных условий. Например, для шестизвенного манипулятора аналитическое решение может быть найдено, только если три его сочленения пересекаются в одной точке, или три его сочленения параллельны [92].

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

Поиском эффективных методов решения занимались многие авторы, начиная с 70-х годов прошлого века и по сегодняшний день. Обзор методов решения обратной задачи кинематики роботов-манипуляторов производился в работах [29, 36, 49, 53, 54, 58, 62, 68, 100].

К методам решения обратной задачи кинематики применимы следующие критерии [100]:

• Эффективность. Обратную задачу кинематики зачастую требуется решать в режиме реального времени, поэтому эффективность, или скорость играют первостепенную роль.

• Надежность. Алгоритм можно считать надежным, если он может стабильно находить решение, если такое существует, и корректно определяет ситуации, когда решения нет.

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

• Стабильность. Численная стабильность означает надежность алгоритма при возникновении вырожденных случаев.

• Универсальность. Эта характеристика означает способность алгоритма работать с кинематически избыточными манипуляторами, или другими задачами, где возможно неопределенное количество решений.

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

Существуют различные методы решения обратной задачи кинематики, к числу которых относятся методы винтовой алгебры [79], дуальных матриц [63] и бикватернионов [111]. Среди аналитических методов решения обратной задачи кинематики можно выделить геометрический подход [81]. Подход заключается в попытке разбить пространственную геометрию манипулятора на несколько задач планиметрии. В [84] приводится решение обратной задачи кинематики с

использованием подхода, основанного на подзадачах Падена-Кахана [89, 76]. Метод заключается в том, что для решения обратной задачи кинематики, сначала решается несколько подзадач, которые часто возникают при решении обратной задачи кинематики для типичных конфигураций роботов-манипуляторов. Далее производится попытка свести решение всей обратной задачи кинематики к соответствующему набору подзадач, решения которых известны. Достоинство данного метода заключается в том, что подзадачи значимы с геометрической точки зрения и стабильны при численном решении. Однако этот набор подзадач не является исчерпывающим, и существуют манипуляторы, для которых обратную задачу кинематики нельзя разложить на эти канонические подзадачи. Этот метод хорошо себя показывает для манипуляторов, которые имеют хотя бы несколько пересекающихся осей.

К аналитическим методам также относится алгебраический метод со сведением к полиному [62]. Он заключается во введении подстановки, которая позволяет свести трансцендентные уравнения к полиномиальным. В [92] получено решение обратной задачи кинематики для произвольного манипулятора с шестью степенями свободы, первые три сочленения которого вращательные или поступательные, а оси последних трех пересекаются в одной точке. Решение получено в форме уравнения 4-й степени относительно одной из неизвестных и в явном виде относительно остальных. В [90] для того же класса манипуляторов, что и в [92], предложено воспользоваться методом обратных преобразований с применением однородных матриц размерностью 4 X 4. Недостатком этого подхода является то, что из него не следует, каким образом выбрать из нескольких существующих решений одно, соответствующее данной конфигурации манипулятора. В этом вопросе исследователю приходится полагаться на собственную интуицию.

В работах [102] и [83] предложена итеративная процедура решения обратной задачи кинематики большинства промышленных роботов. Такой подход требует больших вычислительных затрат и не гарантирует сходимости результатов, особенно для вырожденного случая. Кроме того, как и метод

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

Среди численных методов решения обратной задачи кинематики можно выделить группу методов, основанных на использовании матрицы Якоби [110, 103]. Суть методов заключается в линейной аппроксимации функции, определяющей положение выходного звена манипулятора, с помощью матрицы Якоби. Матрица представляет собой матрицу частных производных функции по обобщенным координатам манипулятора и определяет, как изменяется положение выходного звена относительно мгновенного изменения вектора обобщенных координат. В робототехнике при решении обратных задач кинематики зачастую используют термин «Якобиан», подразумевая матрицу Якоби, хотя фактически Якобиан - это определитель матрицы. Для решения обратной задачи кинематики может использоваться метод обратного Якобиана [53]. Недостаток - необходимость вычисления обратной матрицы, что может быть проблематично для манипулятора с большим количеством степеней свободы, кроме того, нет гарантий, что матрица обратима. Достоинство -предсказуемость поведения и достаточная быстрота для небольшого количества степеней свободы. Метод транспонированного Якобиана [110, 52] нивелирует недостатки метода обратного Якобиана, т.к. нет необходимости вычислять обратный якобиан. Этот метод значительно выигрывает у метода обратного якобиана в скорости, но проигрывает в точности. В [78] рассматривается метод псевдо-обратного Якобиана (Moore-Penrose inverse of J method). Может применяться даже для неквадратной матрицы Якоби. Недостатком метода является то, что он проявляет нестабильность около особых точек. В [74, 85] применяется взвешенный псевдо-обратный метод (weighted pseudo-inverse method). Затухающий метод наименьших квадратов (Damped Least Squares) лишен недостатков псевдо-обратного метода [103, 86]. Этот метод также называют методом Левенберга-Марквардта. Метод может быть достаточно эффективным при правильно выбранном коэффициенте затухания. Расширением

затухающего метода наименьших квадратов является избирательный затухающий метод наименьших квадратов (Selectively Damped Least Squares) [55, 110, 103, 51, 86].

Другой подход к решению обратных задач кинематики заключается в оптимизации системы нелинейных уравнений и поиске минимума функции, определяющей разность действительного и требуемого положений [112]. Наиболее популярным методом этого семейства является метод циклического покоординатного спуска (Cyclic Coordinate Descent), который был представлен в [104] и получил развитие в [107]. Метод основан на минимизации, примененной отдельно к каждому звену. Шаги в одном проходе упорядочены от наиболее удаленного звена к основанию. За один шаг изменяется одна переменная. Для того чтобы получить решение, требуется несколько проходов. Метод покоординатного спуска является итерационным и требует относительно небольшого количества вычислений для достижения приближенного оптимального решения для каждого сочленения. Этот метод был использован при определении структуры белка в работах [77, 57], а также в компьютерной анимации [80].

Похожие диссертационные работы по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК

Список литературы диссертационного исследования кандидат наук Нелаева Екатерина Игоревна, 2017 год

Список литературы

1. Бирюков В.Г., Челноков Ю.Н. Кинематическая задача оптимальной нелинейной стабилизации углового движения твердого тела // Математика. Механика: Сб. науч. тр. / Саратов: Изд-во Сарат. ун-та, 2002. - Вып. 4. - С. 172-174.

2. Бранец В.Н., Шмыглевский И.П. Введение в теорию бесплатформенных инерциальных навигационных систем. - М.: Наука, 1992. - 280 с.

3. Бранец В.Н., Шмыглевский И.П. Кинематическая задача ориентации во вращающейся системе координат // Изв. АН СССР. МТТ. - 1972. - № 6. - С. 36-43.

4. Бранец В.Н., Шмыглевский И.П. Применение кватернионов в задачах ориентации твердого тела. - М.: Наука, 1973. - 320 с.

5. Бранец В.Н., Шмыглевский И.П. Применение кватернионов в задачах управления положением твердого тела // Изв. АН СССР. МТТ. - 1972. -№ 4. - С. 24-31.

6. Глазков В.П., Дауров С.К. Особенности решения некоторых задач кинематики в аппарате кватернионов // Вестник СГТУ (Проблемы естественных наук). - 2005. - №4 (9). - С.12-24.

7. Глазков В.П. Математические модели и эффективные методы решения задач кинематики, динамики и управления роботами: дис. ... д-ра техн. наук. - Саратов, 2006. - 329 с.

8. Глазков В.П. Метод ускоренного умножения кватернионов / В.П. Глазков, С.К. Дауров// Математические методы в технике и технологиях: сб. трудов XII Междунар. науч. конф. - Великий Новгород, 1999. - С. 91-94.

9. Диментберг Ф.М. Метод винтов в прикладной механике / Ф.М. Диментберг. - М.: Машиностроение, 1971. - 264 с.

10. Диментберг Ф.М. Теория винтов и ее приложения / Ф.М. Диментберг. -М.: Наука, 1978. - 328 с.

11. Дыда А.А., Оськин Д.А. Решение обратной задачи кинематики для манипуляционного робота методом штрафных функций // Фундаментальные исследования. - 2015. - № 11-4. - С. 673-677.

12. Егоров И.В. Математические методы и алгоритмы управления кинематически избыточными манипуляторами на основе нейронных сетей: дис. ... канд. техн. наук. - Саратов, 2008. - 154 с.

13. Каргинов Л. А. Иерархический подход к решению обратной задачи кинематики // Наука и образование МГТУ им. Н.Э. Баумана. Электрон. журн. - 2016. - № 03. - С. 37-63. DOI: 10.7463/0316.0835545

14. Лебедев Д. В. Кинематика пространственных механизмов - Л.: Машиностроение, 1966. - 280 с.

15. Лебедев Д. В. Системы инерциального управления. Алгоритмические аспекты / Д. В. Лебедев, А. И. Ткаченко. - Киев: Наукова думка, 1991. -208 с.

16. Лебедев Д.В. Управление ориентацией твердого тела с использованием параметров Родрига-Гамильтона // Автоматика. - 1974. - № 4. - С. 29-32.

17. Ломовцева Е.И, Челноков Ю.Н. Бикватернионные методы решения прямой и обратной задач кинематики роботов-манипуляторов на примере стэнфордского манипулятора с использованием бикватернионной теории кинематического управления // Материалы Всероссийской научной конференции с Международным участием «Проблемы критических ситуаций в точной механике и управлении». -Саратов: ООО Издательский Центр «Наука», 2013. - С. 270-274.

18. Ломовцева Е.И., Челноков Ю.Н. Дуальные матричные и бикватернионные методы решения прямой и обратной задач кинематики роботов-манипуляторов на примере стэнфордского манипулятора. I // Известия Саратовского университета. Новая серия. Сер. Математика. Механика. Информатика. - 2013. - Т. 13, вып. 4, ч. 1. - С. 78-85.

19. Ломовцева Е.И., Челноков Ю.Н. Дуальные матричные и бикватернионные методы решения прямой и обратной задач кинематики

роботов-манипуляторов на примере стэнфордского манипулятора. II // Известия Саратовского университета. Новая серия. Сер. Математика. Механика. Информатика. - 2014. - Т. 14, вып. 1. - С. 88-95.

20. Ломовцева Е.И., Челноков Ю.Н. Решение обратной задачи кинематики стэнфордского манипулятора с применением бикватернионной теории кинематического управления // Сб. науч. тр. Механика. Математика, Саратов: Изд-во Сарат. ун-та. - 2014. - С. 110-114

21. Ломовцева Е.И. Using biquaternion theory of kinematics control for solving inverse kinematics problem of manipulators by the example of Stanford robot arm // Материалы V международной научной конференции молодых ученых «Presenting Academic Achievements to the World». Саратов: Изд-во Сарат. ун-та. - 2014. - Вып.5. - Стр.124-130.

22. Маланин В.В., Стрелкова Н.А. Оптимальное управление ориентацией и винтовым движением твердого тела. - Москва; Ижевск: НИЦ "Регулярная и хаотическая динамика", 2004. - 204 с.

23. Молоденков А.В. Кватернионное решение задачи оптимального разворота твердого тела со сферическим распределением масс // Проблемы механики и управления: Межвуз. сб. науч. тр. / Пермь: Изд-во ПГУ, 1995. - С. 122-131.

24. Молотков А.В., Челноков Ю.Н. О применении теории кинематического управления к решению обратной задачи кинематики манипулятора с вращательными сочленениями // Математика. Механика: Сб. науч. тр. Саратов: Изд-во Сарат. ун-та. - 2001. - Вып. 3. - С. 170-172.

25. Молотков А.В., Челноков Ю.Н. Решение обратной задачи кинематики робота-манипулятора "Пума" с использованием бикватернионной теории кинематического управления // Математика. Механика: Сб. науч. тр. Саратов: Изд-во Сарат. ун-та. - 2002. - Вып. 4. - С. 204-206.

26. Нелаева Е.И., Челноков Ю.Н. Решение обратной задачи кинематики стэнфордского манипулятора с применением бикватернионной теории

кинематического управления // Математика. Механика: Сб. науч. тр. Саратов: Изд-во Сарат. ун-та. - 2014. - Вып. 16. - С. 111-114.

27. Нелаева Е.И., Челноков Ю.Н. Решение прямых и обратных задач кинематики роботов-манипуляторов с использованием дуальных матриц и бикватернионов на примере стэнфордского манипулятора. Часть 1. // Мехатроника, автоматизация, управление. - 2015. - Т.16, №6. - С.373-380.

28. Нелаева Е.И., Челноков Ю.Н. Решение прямых и обратных задач кинематики роботов-манипуляторов с использованием дуальных матриц и бикватернионов на примере стэнфордского манипулятора. Часть 2. // Мехатроника, автоматизация, управление. - 2015. - Т.16, №7. - С.456-463.

29. Оськин Д.А., Дыда А.А., Константинова Е.А. Нейросетевое моделирование задачи обратной кинематики для манипуляционного робота // Современные наукоемкие технологии. - 2015. - № 12-2. - С. 254-257.

30. Панков А.А., Челноков Ю.Н. Исследование кватернионных законов кинематического управления ориентацией твердого тела по угловой скорости // Изв. РАН. МТТ. - 1995. - № 6. - а 3-13.

31. Плотников П.К. Построение и анализ кватернионных дифференциальных уравнений задачи определения ориентации твердого тела с помощью бесплатформенной инерциальной навигационной системы // Изв. РАН. Механика твердого тела. - 1999. - № 2. - С. 3-14.

32. Плотников П.К. Элементы теории работы одной разновидности бесплатформенных инерциальных систем ориентации // Гироскопия и навигация. - 1999. - № 2. - С. 23-35.

33. Плотников П.К., Сергеев А.Н., Челноков Ю.Н. Кинематическая задача управления ориентацией твердого тела // Изв. АН СССР. МТТ. - 1991. -№ 5. - С. 9-18.

34. Плотников П.К., Чеботаревский Ю.В., Никишин В.Б., Большаков А.А. Применение кватернионных алгоритмов в бесплатформенных системах ориентации и навигации // Авиакосмическое приборостроение. - 2003. -№ 10. - С. 21-31.

35. Плотников П.К., Чеботаревский Ю.В., Чеботаревский В.Ю. Анализ свойств полуаналитической инерциальной навигационной системы и ее бесплатформенного аналога // Авиакосмическое приборостроение. -2005. - №3. С. - 17-23.

36. Ростов Н.В. Анализ алгоритмов решения обратных задач кинематики в системах управления движением роботов // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. -2014. - Вып. 5(205). - С. 93-99.

37. Сафаров К. А. Решение обратной задачи робототехники методом симплексного поиска // Молодёжь и наука: Сборник материалов VIII Всероссийской научно-технической конференции студентов, аспирантов и молодых ученых, посвященной 155-летию со дня рождения К. Э. Циолковского [Электронный ресурс]. - Красноярск: Сибирский федеральный ун-т, 2012. - URL: http://conf.sfu-kras .ru/sites/mn2012/section06 .html (дата обращения 21.07.2016).

38. Стрелкова Н.А. Кинематическое управление винтовым перемещением КА // Проблемы механики управляемого движения. Нелинейные динамическое системы. Пермь. - 1983. - С.154-157.

39. Стрелкова Н.А. Оптимальное по быстродействию кинематическое управление винтовым перемещением твердого тела // Изв. АН СССР. Механика твердого тела. - 1982. - № 4. - C. 73-76.

40. Челноков Ю. Н. Бикватернионное решение кинематической задачи управления движением твердого тела и его приложение к решению обратных задач кинематики роботов-манипуляторов // Изв. РАН. Механика твердого тела. - 2013. - №1. - С. 38-58.

41. Челноков Ю.Н. Кватернионные и бикватернионные модели и методы механики твердого тела и их приложения. Геометрия движения. -Саратов: Изд-во Сарат. ун-та, 2006. - 236 с.

42. Челноков Ю.Н. Кватернионные и бикватернионные модели и методы механики твердого тела и их приложения. Геометрия и кинематика движения. - М.: ФИЗМАТЛИТ, 2006. - 512 с.

43. Челноков Ю.Н. Об интегрировании кинематических уравнений винтового движения твердого тела. // Прикладная математика и механика. - 1980. - Т.44, вып. 1. - С. 32-39.

44. Челноков Ю.Н. Об одной форме уравнений инерциальной навигации. // Изв. АН СССР. Механика твердого тела. - 1981. - №6. - С. 12-21.

45. Челноков Ю.Н., Нелаева Е.И. Аналитическое бикватернионное решение кинематической задачи оптимальной нелинейной стабилизации произвольного программного движения свободного твердого тела // Материалы XX международной научной конференции «Системный анализ, управление и навигация». - М: Изд-во МАИ, 2015. - С. 133-135.

46. Челноков Ю.Н., Нелаева Е.И. Бикватернионное решение кинематической задачи оптимальной нелинейной стабилизации произвольного программного движения свободного твердого тела // Изв. Сарат. ун-та. Нов. сер. Сер. Математика. Механика. Информатика. -2016. - Т. 16, вып. 2. - С. 198-206.

47. Шоланов К. С. Обучение двухслойной нейронной сети для решения обратной задачи кинематики манипуляторов: научное издание / К. С. Шоланов, Е. М. Сбатаев // Вестник КазНТУ. - 2007. - №6. - С. 176-182.

48. Яковлев А. С. Подходы и методы решения обратной задачи кинематики разомкнутых манипуляционных механизмов / А. С. Яковлев ; науч. рук. А. М. Малышенко // Молодежь и современные информационные технологии : сборник трудов XII Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых (г. Томск, 12-14 ноября 2014 г.). - Томск : Изд-во ТПУ, 2014. - Т. 1. - С. 271-272.

49. Aristidou A., Lasenby J. FABRIK: A fast, iterative solver for the Inverse Kinematics problem // Graphical Models. - 2011. - Vol. 73. - P. 243-260.

50. Badler N., Manoochehri K., Walters G. Articulated figure positioning by multiple constraints // IEEE Comput. Graph. Appl. - 1987. - Vol. 7, Iss. 6. -P. 28-38.

51. Baillieul J. Kinematic programming alternatives for redundant manipulators // Proc. of the IEEE International Conf. on Robotics and Automation, March 1985. - Vol. 2. - P. 722-728.

52. Balestrino A., Maria G., Sciavicco L. Robust control of robotic manipulators // Proc. 9th IFAC World Congress, 1984. - Vol. 5. - P. 2435-2440.

53. Barinka L., Berka R. Inverse Kinematics - Basic Methods // URL: http://www.cescg.org/CESCG-2002/LBarinka/paper.pdf (03.09.2016)

54. Buss S. R. Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares methods. // URL: https://www. math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/iksurvey.pdf (03.09.2016)

55. Buss S. R., Kim J. S. Selectively damped least squares for inverse kinematics. //URL:

http://www.math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/SdlsPaper.pdf (03.09.2016)

56. Caccavale F., Siciliano B. Quaternion-Based Kinematic Control of Redundant Spacecraft/Manipulator Systems // Proc. of the 2001 IEEE International Conference on Robotics & Automation Seoul (Korea, May 21-26, 2001). - P. 435-440.

57. Canutescu A. A., Dunbrack R. L. Cyclic coordinate descent: a robotics algorithm for protein loop closure // Protein Science. - 2003. - Vol.12. - P. 963-972.

58. Castellet A. Solving inverse kinematics problems using an interval method // URL: http://www.iri.upc.edu/people/porta/Docs/thesisAC.pdf (03.09.2016)

59. Cheng H., Gupta K. A study of robot inverse kinematics based upon the solution of differential equations // J. Robot. Systems. - 1991. - Vol. 8, Iss. 2. - P. 115-175.

60. Colom'e A. Smooth Inverse Kinematics Algorithms for Serial Redundant Robots: Master Thesis. - Institut de Robotica i Informatica Industrial, Universitat Politecnica de Catalunya, Barcelona, Spain, 2011.

61. Courty N., Arnaud E. Sequential Monte Carlo Inverse Kinematics // Proc. of the 5th International Conference on Articulated Motion and Deformable Objects(Port d'Andratx, Mallorca, Spain, July 9-11, 2008). - P. 1-10.

62. Craig J. J. Introduction to Robotics: Mechanics and Control. - Addison-Wesley, second edition, 1989. - 450 p.

63. Denavit J. Description and Displacement Analysis of Mechanisms Based on 2X2 Dual Matrices: Ph. D. Thesis, Mechanical Engineering, Northwestern U., Evanston, III. - 1965.

64. D'Souza A., Vijayakumar S., Schaal S. Learning inverse kinematics // Proc. IEEE IEEE/RSJ International Conference on Intelligent Robots and Systems, 2001. - Vol. 1. - P. 298-303.

65. Etter J.R. A Solution of the Time-Optimal Euler Rotation Problem // Proc. of the AJAA Guidance, Navigation, and Control Conference (Washington, USA, 1989). - P. 1441-1449.

66. Figueredo L.F.C., Adorno B.V., Ishihara J.Y., Borges G.A. Robust kinematic control of manipulator robots using dual quaternion representation // Proc. of the IEEE International Conference on Robotics and Automation (6-10 May, 2013). P. 1949-1955. DOI: 10.1109/ICRA.2013.6630836.

67. Fletcher R. Practical Methods of Optimization. Wiley Interscience, New York, USA, second edition, 1987. - 456 p.

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

69. Grzeszczuk R., Terzopoulos D. Automated learning of muscle actuated locomotion through control abstraction // Proc. ACM SIGGRAPH'95 (New York, 1995). - ACM Press, pp. 1995. - P. 63-70.

70. Grzeszczuk R., Terzopoulos D. Hinton G. Neuro Animator: Fast neural network emulation and control of physics-based models // Proc. ACM SIGGRAPH'98 (New York, 1998). - ACM Press. - P. 9-20.

71. Han D., Wei Q., Li Z. A Dual-quaternion Method for Control of Spatial Rigid Body // Proc. of the IEEE International Conference on Networking, Sensing and Control (6-8 April, 2008). - P. 1-6. DOI: 10.1109/ICNSC.2008.4525172.

72. Han D., Wei Q., Li Z. Kinematic Control of Free Rigid Bodies Using Dual Quaternions // International Journal of Automation and Computing. - 2008. -Vol. 05, Iss. 3. - P. 319-324. DOI: 10.1007/s11633-008-0319-1.

73. Han D., Wei Q., Li Z., Sun W. Control of Oriented Mechanical systems: A Method Based on Dual Quaternion // Proc. of the 17th World Congress The International Federation of Automatic Control (Seoul, Korea, July 6-11, 2008). - P. 3836-3841.

74. Hollerbach J. M., Suh K. C. Redundancy resolution of manipulators through torque optimization // Proc. International Conference on Robotics and Automation, 1985. - P. 1016-1021.

75. Jordan M. I., Rumelhart D. E. Forward models: supervised learning with a distal teacher // Cognitive Science. - 1992. - Vol.16. - P. 307-354.

76. Kahan W. Lectures on computational aspects of geometry // Department of Electrical Engineering and Computer Sciences, University of California, Berkeley. Unpublished, July 1983.

77. Kavraki L. E. Protein Inverse Kinematics and the Loop Closure Problem // URL: http://cnx.org/content/m11613/latest/ (03.09.2016)

78. Klein C., Huang C. Review of pseudoinverse control for use with kinematically redundant manipulators // IEEE Trans. Systems Man Cybernet. - 1997. - Vol.7. - P. 868-871.

79. Kohli D., Soni A. H. Kinematic Analysis of Spatial Mechanisms via Successive Screw Displacement. // Trans. ASME, J. Eng. Industry. - 1975. -Vol. 97, №2. - P. 739-747.

80. Lander J. Making kine more flexible // Game Developer. - 1985. - Vol.3. - P. 15-22.

81. Lee C. S. G., Ziegler M. A Geometric Approach in Solving the Inverse Kinematics of PUMA Robots // IEEE Trans. Aerospace and Electronic Systems, AES-20. - 1984. - № 6. - P. 695-706.

82. Lendaris G. G., Mathia K., Sacks R. Linear hopfield networks and constrained optimization // IEEE Trans. Systems, Man and Cybernetics - Part B: Cybernetics. - 1999. - Vol. 29. - P. 114-118.

83. Milenkovic V., Huang B. Kinematics of Major Robot Linkages // Proc. 13th Int. Symp. Industrial Robots (Chicago, April 17-19, 1983). - P. 16.31-16.47.

84. Murray R.M., Li Z., Sastry S.S. A Mathematical Introduction to Robotic Manipulation. - Boca Raton: CRC Press, 1994. - 480 p.

85. Nakamura Y. Advanced Robotics: Redundancy and Optimization // Addison-Wesley, Reading, MA, 1991. - 337 p.

86. Nakamura Y., Hanafusa H. Inverse kinematic solutions with singularity robustness for robot manipulator control // Trans. ASME, J. Dynamic Systems Measurement and Control. - 1986. - Vol. 108, Is.3 - P. 163-171.

87. Oyama E., Chong N. Y., Agah A., Maeda T., Tachi S. Inverse kinematics learning by modular architecture neural networks with performance prediction networks // Proc. IEEE International Conference on Robotics and Automation, 2001. - P. 1006-1012.

88. Ozgur E., Mezouar Y. Kinematic modeling and control of a robot arm using unit dual quaternions // Robotics and Autonomous Systems. - 2016. - Vol. 77. - P. 66-73.

89. Paden B. Kinematics and Control Robot Manipulators: PhD thesis, Department of Electrical Engineering and Computer Sciences, University of California, Berkeley. - 1986.

90. Paul R. P., Shimano B. E., Mayer G. Kinematic Control Equations for Simple Manipulators // IEEE Trans. Systems, Man and Cybernetics - 1981. - Vol. SMC-11, № 6. - P. 449-455.

91. Pechev A.N. Inverse kinematics without matrix inversion // Proc. of the 2008 IEEE International Conf. on Robotics and Automation (Pasadena, CA, USA, May 19-23, 2008). - P. 2005-2012.

92. Pieper D. L. The Kinematics of Manipulators under Computer Control: Artificial Intelligence Project Memo No. 72, Computer Science Department, Stanford University, Palo Alto, California. - 1968.

93. Pieper D. L. The Kinematics of Manipulators under Computer Control: Ph.D. Thesis, Stanford University. - 1968. - 157 p.

94. Ramdane-Cherif A., Daachi B., Benallegue A., Levy N. Kinematic inversion // Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems, 2002. - P. 1904-1909.

95. Roth B., Freudenstein F. Synthesis of path-generating mechanisms by numerical methods // Trans. ASME, J. Eng. Industry. - 1963. - Vol. 85. - P. 298-306.

96. Roth B., Rastegar J., Scheinman V. On the Design of Computer Controlled Manipulators; On the Theory and Practice of Robots and Manipulators // Proc. 1st CISM-IFToMM Symp. on Theory and Practice of Robots and Manipulators (Udine, Italy, 5-8 September, 1973). - Vol. 1. - P. 93-113.

97. Sciavicco L., Siciliano B. Modeling and Control of Robot Manipulators // New York: McGraw-Hill, 1996. - 358 p.

98. Tabandeh S., Clark C., Melek W. A Genetic Algorithm Approach to solve for Multiple Solutions of Inverse Kinematics using Adaptive Niching and Clustering. // Proc. of the IEEE Congress on Evolutionary Computation (Vancouver, Canada, July 16-21, 2006) . - P. 1815-1822.

99. Tevatia G., Schaal S. Inverse kinematics for humanoid robots // Proc. IEEE International Conference on Robotics and Automation, 2000. - Vol. 1. -P. 294-299.

100. Tolani D., Goswami A., Badler N.I. Real-Time Inverse Kinematics Techniques for Anthropomorphic Limbs // Graphical Models. - 2000. - Vol. 62. - P. 353-388.

101. Tsai L. W., Morgan A. P. Solving the kinematics of the most general six and five-degree-of-freedom manipulators by continuation methods. Trans. ASME J. Mechanism, Transmissions and Autom. in Design. - 1985. - Vol. 107. - P. 189-200.

102. Uicker Jr., J. J., Denavit J., Hartenberg R. S. An Iterative Methods for the Displacement Analysis of Spatial Mechanisms // Trans. ASME J. Appl. Mech. - 1964. - Vol. 86, Series E, №2. - P. 309-314.

103. Wampler C.W. Manipulator inverse kinematics solutions based on vector formulations and damped least-squares methods // IEEE Trans. Systems, Man and Cybernetics. - 1986. - Vol. SMC-16, № 1. - P. 93-101.

104. Wang L.T., Chen C.C. A combined optimization method for solving the inverse kinematics problems of mechanical manipulators // IEEE Trans. Robot. Automat. - 1991. - Vol. 7. - P. 489-499.

105. Wang X., Han D., Yu C., Zheng Z. The geometric structure of unit dual quaternion with application in kinematic control // Journal of Mathematical Analysis and Applications. - 2012. - Vol. 389, Is. 2. - P. 1352-1364.

106. Wang X., Yu C. Unit-dual-quaternion-based PID control scheme for rigid-body transformation // Proc. of the 18th IFAC World Congress (Milano, Italy, August 28 - September 2, 2011). - P. 9296-9301

107. Welman C. Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation: Master Thesis. - Simon Fraser University, Department of Computer Science, 1993.

108. Whitney D. E. Resolved motion rate control of manipulators and human prostheses // IEEE Trans. Man-Machine Systems. - 1969. - Vol. 10, №2. - P. 47-53.

109. Wie B., Weiss N., Arapostathis A. A Quaternion Feedback Regulator for Spacecraft Eigenaxis Rotations // Proc. of the AJAA Guidance,

Navigation, and Control Conference (Minneapolis, USA, 1988). - P. 645-654.

110. Wolovich W.A., Elliott H. A computational technique for inverse kinematics // Proc. of the 23rd IEEE Conference on Decision and Control (Las Vegas, USA, December 1984). - Vol. 23. - P. 1359-1363

111. Yang A. T., Freudenstein R. Application of Dual Number Quaternion Algebra to the Analysis of Spatial Mechanism // Trans. ASME, J. Appl. Mech. - 1964.

- Vol. 31. - P. 152—157.

112. Zhao J., Badler N. Inverse kinematics positioning using nonlinear programming for highly articulated figures // ACM Transactions on Graphics.

- 1994. - Vol. 13, Iss. 4. - P. 313-336.

Приложение А. Программа для численного решения прямой и обратной задач кинематики стэнфордского манипулятора

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

Структуры данных

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

package data.structure;

import java.util.Formatter;

/**

* Кватернион

*/

public class Quaternion {

private double lambda0; private double lambdal; private double lambda2;

private double lambda3;

/**

* Конструктор без параметров

*/

public Quaternion() {

this.lambdaO = 0; this.lambdal = 0; this.lambda2 = 0; this.lambda3 = 0;

}

/**

* Конструктор, принимающий компоненты кватерниона

*/

public Quaternion(double lambda0, double lambdal, double lambda2, double lambda3) {

this.lambda0 = lambda0;

this.lambdal = lambdal; this.lambda2 = lambda2; this.lambda3 = lambda3;

public double getLambda0() return lambda0;

public double getLambda1() return lambdal;

public double getLambda2() return lambda2;

public double getLambda3() return lambda3;

public void setLambda0(double lambda0) this.lambdaO = lambdaO;

public void setLambda1(double lambdal) this.lambdal = lambdal;

public void setLambda2(double lambda2) this.lambda2 = lambda2;

public void setLambda3(double lambda3) this.lambda3 = lambda3;

* Умножение кватернионов

*/

public Quaternion multiply(Quaternion q) {

Quaternion Lambda; Lambda = new Quaternion(); double 10 = this.lambdaO,

11 = this.lambdal,

12 = this.lambda2,

13 = this.lambda3, mu0 = q.getLambda0(), mul = q.getLambda1(), mu2 = q.getLambda2(), mu3 = q.getLambda3();

double nu0,nu1,nu2,nu3;

nu0 = l0*mu0 - l1*mu1 - l2*mu2 - l3*mu3;

nul = l0*mul + ll*mu0 + l2*mu3 - l3*mu2; nu2 = l0*mu2 - ll*mu3 + l2*mu0 + l3*mul;

nu3 = l0*mu3 + ll*mu2 -Lambda.setLambda0(nu0) ; Lambda.setLambdal(nul); Lambda.setLambda2(nu2) ; Lambda.setLambda3(nu3); return Lambda;

l2*mul + l3*mu0;

/**

* Вывод кватерниона на печать

*/

public void print() {

Formatter fmtl = new Formatter(); Formatter fmt2 = new Formatter(); Formatter fmt3 = new Formatter(); Formatter fmt4 = new Formatter(); fmtl.format("%5.6f ", this.getLambda0()); System.out.print(fmtl );

if(this.getLambdal()>=0) {

fmt2.format("%5.6f", this.getLambdal()); System.out.print("+" + fmt2+ "*il");

}

else

{

fmt2.format("%5.6f", -l*this.getLambdal()); System.out.print("-" + fmt2+ "*il");

}

if(this.getLambda2()>=0) {

fmt3.format("%5.6f", this.getLambda2()); System.out.print("+" + fmt3+ "*i2");

}

else

{

fmt3.format("%5.6f", -l*this.getLambda2()); System.out.print("-" + fmt3+ "*i2");

}

if(this.getLambda3()>=0) {

fmt4.format("%5.6f", this.getLambda3()); System.out.print("+" + fmt4+ "*i3");

}

else

{

fmt4.format("%5.6f", -l*this.getLambda3()); System.out.print("-" + fmt4+ "*i3");

}

}

/**

* Сумма двух кватернионов

*/

public static Quaternion summ(Quaternion q1,Quaternion q2) {

Quaternion result; result = new Quaternion();

result.lambdaO = q1.getLambda0() + q2.getLambda0(); result.lambdal = q1.getLambda1() + q2.getLambda1();

}

result.lambda2 = q1.getLambda2() + q2.getLambda2(); result.lambda3 = q1.getLambda3() + q2.getLambda3(); return result;

/**

* Сумма четырех кватернионов

*/

public static Quaternion summ(Quaternion q1,Quaternion q2,Quaternion q3,Quaternion

q4)

{

Quaternion result; result = new Quaternion(); result.lambdaO = q1.getLambda0() q4.getLambda0();

result.lambdal = q1.getLambda1() q4.getLambda1();

result.lambda2 = q1.getLambda2() q4.getLambda2();

result.lambda3 = q1.getLambda3() q4.getLambda3();

return result;

}

/**

* Нахождение сопряженного кватерниона

*/

public Quaternion getConjugate(){

return new Quaternion(getLambda0(), -1 * getLambda1(), -1 * getLambda2(), -1 *

getLambda3()); }

@Override

public String toString() {

String s;

Formatter fmtl = new Formatter(); Formatter fmt2 = new Formatter(); Formatter fmt3 = new Formatter(); Formatter fmt4 = new Formatter(); fmtl.format("%5.3f ", this.getLambda0()); fmt2.format("%5.3f ", this.getLambdal()); fmt3.format("%5.3f ", this.getLambda2()); fmt4.format("%5.3f ", this.getLambda3());

s = fmt1.toString()+ "+" + fmt2.toString() + "*ii" + "+" + fmt3.toString()+ "*i2" + "+" + fmt4.toString()+ "*i3"; return s;

}

}

package data.structure;

/**

* Бикватернион

*/

public class DualQuaternion {

private Quaternion main; private Quaternion moment;

public DualQuaternion(){

this.main = new Quaternion();

+ q2.getLambda0() +

+ q2.getLambda1() +

+ q2.getLambda2() +

+ q2.getLambda3() +

q3.getLambda0() +

q3.getLambda1() +

q3.getLambda2() +

q3.getLambda3() +

this.moment = new Quaternion();

public DualQuaternion(Quaternion main, Quaternion moment){ this.main = main; this.moment = moment;

}

public Quaternion getMain() { return main;

}

public Quaternion getMoment() { return moment;

}

public void setMain(Quaternion main){ this.main = main;

}

public void setMoment(Quaternion moment){ this.moment = moment;

}

/**

* Вывод бикватерниона на печать

*/

public void print() {

System.out.print("Q=("); this.getMain().print(); System.out.print(")+s*("); this.getMoment().print(); System.out.println(")");

}

/**

* Умножение бикватернионов

*/

public DualQuaternion multiply(DualQuaternion B){ DualQuaternion result = new DualQuaternion(); result.setMain(this.getMain().multiply(B.getMain()));

result.setMoment(Quaternion.summ(this.getMoment().multiply(B.getMain()), this.getMain().multiply(B.getMoment()))); return result;

}

/**

* Перемножение массива бикватернионов

*/

public static DualQuaternion multiply(DualQuaternion[] biMass){ DualQuaternion result = new DualQuaternion(); result = biMass[0];

for (int i = 1; i < biMass.length; i++){ result = result.multiply(biMass[i]);

}

return result;

}

/**

* Нахождение сопряженного бикватерниона

*/

public DualQuaternion getConjugate(){

return new DualQuaternion(getMain().getConjugate(), getMoment().getConjugate());

}

@Override

public String toString() {

String s = "(" + this.getMain().toString() + ")+s*(" + this.getMoment().toString() +")"; return s;

}

}

package data.structure;

import java.util.Formatter;

/**

* Матрица

*/

public class Matrix {

private int dimension; private double matrix[][];

public Matrix(int dimension){ this.dimension=dimension;

this.matrix=new double[dimension][dimension];

}

public Matrix(double matrix[][]){ this.dimension=matrix.length; this.matrix=matrix;

}

public int getDimension(){ return dimension;

}

public double[][] getMatrix(){ return matrix;

}

public void setDimension(int dimension){ this.dimension = dimension;

}

public void setMatrix(double[][] matrix){ this.matrix = matrix;

}

/**

* Умножает текущую матрицу на другую

*/

public Matrix multiply(Matrix matrix){

int newDimension = matrix.getDimension(); Matrix result = new Matrix(newDimension); double c[][] = new double [newDimension][newDimension];

double a[][] = this.getMatrix(); double b[][] = matrix.getMatrix();

for (int i = 0; i < newDimension; i++)

for (int j = 0; j < newDimension; j++) {

c[i][j]=0;

for (int k = 0; k < newDimension; k++) c[i][j] += a[i][k]*b[k][j];

}

result.matrix = c; return result;

}

/**

* Статический метод, перемножающий массив матриц

*/

public static Matrix multiply(Matrix[] matrises){ Matrix result = matrises[0]; for(int i = 1; i < matrises.length; i++){ result = result.multiply(matrises[i]);

}

return result;

}

/**

* Умножает матрицу на вектор

*/

public double[] multiplyByVector(double[] vector){ int newDimension = vector.length; double[] result = new double [newDimension];

double a[][] = this.getMatrix();

for (int i = 0; i < newDimension; i++){ result[i] = 0;

for (int j =0; j < newDimension; j++) {

result[i] +=a [i][j]*vector[j];

}

}

return result;

}

/**

* Выводит на печать матрицу

*/

public void print(){

int n = this.getDimension(); double a[][] = this.getMatrix();

for (int i=0; i<n; i++) {

for (int j=0;j<n;j++) {

Formatter fmt = new Formatter(); fmt.format("%5.3f ", a[i][j]); System.out.print(fmt + " ");

}

System.out.println();

}

}

/**

* Умножает матрицу на скаляр

*/

public Matrix multiplyByScalar(double d){ int newDimension = this.getDimension(); Matrix result = new Matrix(newDimension); double c[][] = new double [newDimension][newDimension];

double a[][] = this.getMatrix(); for (int i = 0; i < newDimension; i++)

for (int j = 0; j < newDimension; j++) {

c[i][j] = d*a[i][j];

}

result.matrix = c; return result;

}

/**

* Находит сумму двух матриц

*/

public static Matrix summ(Matrix matrix1,Matrix matrix2){ Matrix result;

int n = matrix1.getDimension(); result = new Matrix(n); double a[][] = new double[n][n]; double ml[][] = matrix1.getMatrix(); double m2[][] = matrix2.getMatrix();

for(int i=0;i<n;i++)

for(int j=0;j<n;j++)

a[i][j] = m1[i][j] + m2[i][j]; result.setMatrix(a); return result;

}

/**

* Находит сумму четырех матриц

*/

public static Matrix summ(Matrix matrix1,Matrix matrix2,Matrix matrix3,Matrix matrix4){

Matrix result;

int n = matrix1.getDimension(); result = new Matrix(n); double a[][] = new double[n][n]; double ml[][] = matrix1.getMatrix(); double m2[][] = matrix2.getMatrix(); double m3[][] = matrix3.getMatrix(); double m4[][] = matrix4.getMatrix(); for(int i=0;i<n;i++)

for(int j=0;j<n;j++)

a[i][j] = m1[i][j]+m2[i][j]+m3[i][j]+m4[i][j]; result.setMatrix(a); return result;

}

/**

* Находит транспонированную матрицу

*/

public Matrix transpose(){ int n = getDimension(); Matrix result = new Matrix(n); for(int i = 0; i < n; i++){

for(int j = 0; j < n; j++){

result.getMatrix()[i][j] = getMatrix()[j][i];

>

>

return result;

* Находит определитель матрицы

*/

public static double getDeterminant(Matrix matrix){ int dimen = matrix.getDimension(); if (dimen == 1){

return matrix.getMatrix()[0][0]; >else{

int koeff = i;

Matrix workMatrix = new Matrix(dimen - 1); float summ = О;

for (int j = 0; j < dimen; j++){ for (int m = 0;m < dimen - 1; m++){

for (int z = 0;z < dimen - 1; z++) if (z < j){

workMatrix.getMatrix()[m][z] = matrix.getMatrix()[m + 1][z]; >else{

workMatrix.getMatrix()[m][z] = matrix.getMatrix()[m + 1][z +

i];

>

>

summ+=koeff*matrix.getMatrix()[0][j] * getDeterminant(workMatrix); koeff*=(-1);

>

return summ;

>

>

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