roboforum.ru

Технический форум по робототехнике.

Что за координаты "последовательные повороты" UVW?

Что за координаты "последовательные повороты" UVW?

AnTe » 30 июн 2012, 12:01

Здравствуйте!

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

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

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

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


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

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

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

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

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

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

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

Re: Что за координаты "последовательные повороты" UVW?

Angel71 » 30 июн 2012, 18:35

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

Re: Что за координаты "последовательные повороты" UVW?

noonv » 30 июн 2012, 18:53

с поворотами проще всего работать через кватернионы - в матлабе всё есть ;)

Re: Что за координаты "последовательные повороты" UVW?

AnTe » 01 июл 2012, 04:47

Angel71 писал(а):преобразуйте в то, с чем вам будет удобней/понятней работать.
С этим проблем нет:
AnTe писал(а):Как получить матрицу поворота после операций - дело ясное,
....


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

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

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

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

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

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

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

Re: Что за координаты "последовательные повороты" UVW?

Angel71 » 01 июл 2012, 05:18

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

Re: Что за координаты "последовательные повороты" UVW?

AnTe » 01 июл 2012, 07:43

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

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

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

Re: Что за координаты "последовательные повороты" UVW?

Angel71 » 01 июл 2012, 14:08

у меня лыжи не едут? если это не углы эйлера.
http://kurs.ido.tpu.ru/courses/TeorMex2/theme112.html

Re: Что за координаты "последовательные повороты" UVW?

AnTe » 01 июл 2012, 15:48

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?

AnTe » 04 сен 2012, 16:17

Товарисчи. К своему огромному стыду констатирую факт. Дурная голова ногам (в данном случае - рукам) покоя не даёт.

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

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

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

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


Rambler\'s Top100 Mail.ru counter