roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 дек 2024, 04:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 30 июн 2012, 12:01 
Не в сети

Зарегистрирован: 30 июн 2012, 08:00
Сообщения: 5
Здравствуйте!

Принимайте новенького, в вашем полку в какой-то мере прибыло :))

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

Проблема у меня в следующем. На работе собираем стенд, состоящий из рефлектора антенны и облучателя, которые оператор должен позиционировать. Стенд предназначен для измерений РТХ антенн, т.е. перемещаем рефлектор-облучатель до получения наилучших характеристик, затем положение воспроизводится на изделии. В качестве устройств перемещения выбрана такая игрушка, гексапод: http://www.physikinstrumente.com/en/pro ... tnr=700800

Соответственно, требуется написать ПО для управления стендом, с использованием API, поставляемого с гексаподами. В ближайшем окружении инициаторов работ я оказался единственный с математическим образованием, поэтому выбор пал на меня. Навскидку, больших сложностей я не обнаружил, меня смущала техническая часть, т.к. с устройствами не работал, но как заявлялось, и, в принципе, как оказалось в последствии, для использования API знаний о технических нюансах потребовалось минимум. Математику, после доброго десятка лет затишья, с трудом :), но начал вспоминать. После покупки железяки провалялись несколько месяцев, и, как обычно, в последние дни до окончания сроков, началось, "прочитайте наконец документацию". Проблемы пришли откуда не ждали: в документации обнаружилось, что положение верхней площадки гексапода задаётся шестью числами, смещением XYZ и "поворотами вокруг осей" на углы UVW, последовательные повороты: сначала на угол U вокруг оси ОХ, затем на V вокруг оси ОY' (в НОВОЙ системе координат), затем на W вокруг оси OZ'' в полученной системе (я подчеркнул про повороты):
Вложение:
Копия описание координат в М850.png
Копия описание координат в М850.png [ 84.89 КиБ | Просмотров: 3138 ]
Вложение:
иллюстрации координат в M850.png
иллюстрации координат в M850.png [ 175.67 КиБ | Просмотров: 3166 ]


Как получить матрицу поворота после операций - дело ясное, перемножить с какой-то стороны, наверное, слева, все три матрицы элементарных. Но мне её получать не нужно, у меня наоборот, задано положение новой системы координат! Например, вот как выглядят углы положения координатной системы, после последовательных поворотов на 5, 10, 15 градусов вокруг X, затем Y', затем Z'' соответственно, в CAD-системе Catia:
Вложение:
Копия координаты в Catia.png
Копия координаты в Catia.png [ 45.6 КиБ | Просмотров: 3139 ]

Углы в нижней части окна - это "пульт управления", в реальных параметрах (0; 0; 0; 7.488; 8,31; 15,983) - углы, по всей видимости, представляют собой направляющие косинусы нового положения системы координат.

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

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

Нет ли программных решений, алгоритмов, или реализаций в каком-нибудь матлабе?

Нельзя ли эти "повороты" UYW получить в какой-либо CAD-системе?

Подскажите, если кто-нибудь знает, хотя бы в какую сторону копать, что можно изучить? Сроки сдачи ПО на стенд, как обычно - уже вчера....:( :( :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 30 июн 2012, 18:35 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
преобразуйте в то, с чем вам будет удобней/понятней работать. решаете, преобразуете обратно и скармливаете гексаподу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 30 июн 2012, 18:53 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
с поворотами проще всего работать через кватернионы - в матлабе всё есть ;)

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 01 июл 2012, 04:47 
Не в сети

Зарегистрирован: 30 июн 2012, 08:00
Сообщения: 5
Angel71 писал(а):
преобразуйте в то, с чем вам будет удобней/понятней работать.
С этим проблем нет:
AnTe писал(а):
Как получить матрицу поворота после операций - дело ясное,
....


Angel71 писал(а):
решаете, преобразуете обратно
А вот с этим как раз и проблема:
AnTe писал(а):
Но мне её получать не нужно, у меня наоборот, задано положение новой системы координат!

Как получить из готовой матрицы поворота поворотные углы UVW (вокруг OX,OY',OZ'') - я не знаю.

noonv, огромное спасибо! Просмотрел, на беглый взгляд, с математической точки зрения это как раз то, что надо! По крайней мере, если ничего не найду - появляется уверенность, что задача будет таки решена (до этого в качестве "запасного" варианта я рассматривал прямой перебор троек UVW до получения нужной матрицы поворота :))))

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

Может, кто-нибудь встречался - что это за повороты такие? Где используются?

У меня сложилось впечатление, что в CAD-системах и в кинематике для указания положения системы координат используются направляющие косинусы (матрица поворота), а если используются поворотные углы - это углы Эйлера!

Нет ли в том же матлабе готовой библиотеки? (матлабом пользоваться не приходилось :() или быть может в каком-нибудь конструкторском пакете, программном решении такие повороты используются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 01 июл 2012, 05:18 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
в квартернионы въехали, а в углы эйлера нет. :oops: странно это всё и загадочно. матрицы поворота, углы эйлера и квартернионы это именно как вы и выразились и есть "это как раз то, что надо".
здесь http://ru.wikipedia.org/wiki/Матрица_поворота и здесь http://www.gamedev.ru/code/articles/faq_matrix_quat?page=4 то, что ищите? а то как-то немного непонятно, что вам непонятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 01 июл 2012, 07:43 
Не в сети

Зарегистрирован: 30 июн 2012, 08:00
Сообщения: 5
Angel71 писал(а):
в квартернионы въехали, а в углы эйлера нет. :oops:
...
что ищите? а то как-то немного непонятно, что вам непонятно.
Пожалуйста, повнимательнее. Дело обстоит с точностью до наоборот: аналитическое выражение углов Эйлера из элементов матрицы у меня есть. К слову, решение "в лоб", предложенное в упомянутой Вами статье на gamedev, неустойчиво в некоторых частных случаях. Поэтому обычно используют решение Пола, преобразуя поворотную матрицу перед получением системы уравнений, в результате углы выражаются через арктангенсы, а не через арксинусы.

Дело в том, что описанные выше углы UVW - это НЕ углы Эйлера!! Это последовательные повороты в локальной системе координат! Я не встречал выражений, как получить углы UVW из поворотной матрицы. Само собой, я повторю подвиг авторов учебников, и хотя бы "в лоб" перемножу поворотные матрицы, составлю уравнения и попытаюсь выразить через них углы, а потом посмотрю на "устойчивость". Мой вопрос в том, не сделал ли это уже кто-нибудь до меня?

Нет ли уже выведенных выражений для отыскания углов последовательных поворотов UVW? Не реализовано ли это в какой-нибудь библиотеке или конструкторском пакете? Что это за способ указания координат, нет ли у него названия, по которому я смогу найти эти решения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 01 июл 2012, 14:08 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
у меня лыжи не едут? если это не углы эйлера.
http://kurs.ido.tpu.ru/courses/TeorMex2/theme112.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 01 июл 2012, 15:48 
Не в сети

Зарегистрирован: 30 июн 2012, 08:00
Сообщения: 5
Angel71 писал(а):
у меня лыжи не едут? если это не углы эйлера.
http://kurs.ido.tpu.ru/courses/TeorMex2/theme112.html
Углы Крылова! :) или Эйлера-Крылова
цитата из приведёной Вами статьи:

Углы, определяющие ориентацию тела, можно ввести и другим способом. Для исследования движения корабля вокруг центра масс А. Н. Крылов предложил корабельные углы ориентации.

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


это именно то, что я искал, спасибо за наводку! :good:

Определение углов Крылова совпадает с тем, что используется в купленном гексаподе с точностью до названий осей:
Первый поворот на угол курса ψ производится вокруг оси Oz, второй поворот на угол дифферента ς - вокруг оси Oy1 , третий поворот на угол крена φ - вокруг оси Ox2. В конечном положении трехгранник, связанный с кораблем, обозначен как Ox3y3z3 (рис. 95).

т.е. последовательность OZ->OY'->OX'', а не OX->OY'->OZ'', как в гексаподе, но это, конечно же, не принципиально!

Завтра погуглю ещё, сегодня не нашёл решения для них обратной задачи. Но матрицы за меня уже перемножены :) например, здесь http://www.aptechsar.com/hp/task_pzk.shtml

обратная задача во всех попадающихся учебниках решена только для Эйлеровых углов, но появилась надежда! :beer:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что за координаты "последовательные повороты" UVW?
СообщениеДобавлено: 04 сен 2012, 16:17 
Не в сети

Зарегистрирован: 30 июн 2012, 08:00
Сообщения: 5
Товарисчи. К своему огромному стыду констатирую факт. Дурная голова ногам (в данном случае - рукам) покоя не даёт.

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

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

ёмаё, в общем, в результате потратил времени на пару порядков меньше, чем затратил на рисование постов в форум

Главное - задача решена! :beer:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO