Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Система управления автоматикой

Вычисление углов Эйлера на 6-осевом роботе


Как ориентация в пространстве представлена ​​углами Эйлера?

Если вы используете шестиосевой манипулятор, такой как Meca500 от Mecademic, который используется в этом руководстве в качестве примера, вас, скорее всего, интересует позиционирование его инструмента (конечного эффектора). ) в различных направлениях. Другими словами, вы должны быть в состоянии запрограммировать своего робота так, чтобы его рабочий орган перемещался как в желаемое положение, так и в желаемую ориентацию (т. е. в желаемую позу). ). Конечно, вы всегда можете подтолкнуть рабочий орган вашего робота или вручную направить его примерно в желаемое положение, но этот так называемый метод онлайн-программирования утомительно и очень неточно. Гораздо эффективнее рассчитать и определить желаемую позу в автономном режиме. Кроме того, для определения системы отсчета инструмента связанный с вашим конечным эффектором (как показано на изображении, показанном здесь), вам нужно будет рассчитать положение этой опорной рамки инструмента по отношению к исходной системе фланцев. .
В трехмерном пространстве для определения позы требуется как минимум шесть параметров. Например, положение рабочего органа робота или, точнее, TCP. (центральная точка инструмента ), обычно определяется как xг и г координаты начала системы отсчета инструмента относительно мировой системы отсчета . Но как тогда определить ориентацию в пространстве?

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

Наиболее распространенный способ преобразования координат положения из одной декартовой (3D) системы отсчета, F , к другому, F’ , – матрица поворота . Таким образом, эту матрицу 3 × 3 можно использовать для представления ориентации системы отсчета F’. относительно системы отсчета F . Однако это представление, хотя оно часто необходимо, как мы обнаружим позже, не является компактным и интуитивно понятным способом определения ориентации.
Еще один гораздо более компактный способ определения ориентации — кватернион. . Эта форма представления состоит из нормализованного вектора четырех скаляров. Кватернион обычно используется в контроллерах роботов, так как он не только более компактен, чем матрица вращения, но и менее подвержен ошибкам аппроксимации. Более того, во время интерполяции между двумя разными ориентациями элементы кватерниона непрерывно изменяются, избегая разрывов, присущих трехмерным параметризациям, таким как углы Эйлера. Тем не менее, кватернион редко используется в качестве средства связи между пользователем и контроллером робота, поскольку он не интуитивно понятен.

Подробное определение углов Эйлера

На сегодняшний день наиболее распространенным способом сообщить пользователю ориентацию в пространстве или позволить пользователю определить ориентацию в программе САПР или в контроллере робота является использование углов Эйлера. . Поскольку термин «угол Эйлера» часто используется неправильно, мы подготовили этот интерактивный учебник.

Углы Эйлера — это набор (точнее, последовательность) трех углов, которые можно обозначить, например, как αβ и γ . (Часто углы Эйлера обозначают rollподача и рыскание .) Углы Эйлера определяются следующим образом:рассмотрим две декартовы правосторонние трехмерные системы отсчета, одну из которых условно назовем фиксированной кадр, а другой – мобильный Рамка. Две системы отсчета изначально совпадают. Чтобы определить ориентацию третьего кадра (все три кадра имеют одно и то же начало), подвижный кадр совмещается с третьим кадром в порядке, показанном ниже, путем поворота подвижного кадра

  1. о хг или z ось фиксированной рамы или x’г’ или z’ мобильного кадра на α градусов,
  2. тогда о xг или z ось фиксированной рамы или x’г’ или z’ мобильного кадра на β градусов,
  3. и, наконец, о xг или z ось фиксированной рамы или x’г’ или z’ мобильного кадра на γ градусов.

Порядок, в котором выполняются три вращения, важен. Таким образом, у нас всего 216 (6 3 ) возможные последовательности: xгггггггг , х’→yг , г’→гг , z’→yг , и так далее. Однако последовательность из трех вращений, в которой два последовательных вращения происходят вокруг одной и той же оси (например, yгг ) не может описать общую ориентацию. Кроме того, перед первой ротацией x совпадает с x ‘, г совпадает с y ‘ и z совпадает с z ‘. Следовательно, из всех этих 216 комбинаций существует только двенадцать уникальных осмысленных упорядоченных последовательностей поворотов или двенадцать соглашений об углах Эйлера. :XYX, XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, ZYZ.
При этом каждая из двенадцати комбинаций эквивалентна трем другим последовательностям. Другими словами, каждое соглашение об углах Эйлера можно описать четырьмя различными способами. Например, ZYX соглашение эквивалентно последовательностям zгхх ‘→г ‘→z ‘, гг ‘→x и гхг ‘. К счастью, никто не описывает углы Эйлера последовательностями, в которых одни повороты происходят вокруг осей подвижной системы отсчета, а другие вокруг неподвижных осей (например, такие последовательности, как yг ‘→x и гхг ').
Таким образом, хотя существует двенадцать различных соглашений об углах Эйлера, каждое из них обычно описывается двумя разными способами:либо как последовательность вращений вокруг осей неподвижной системы отсчета, либо как последовательность вращений вокруг осей неподвижной системы координат. подвижная рама. Поэтому может быть удобно говорить о стационарных и мобильных условностях, хотя они эквивалентны. Например, фиксированный угол Эйлера XYZ описывается как xгг последовательность, в то время как соглашение об угле Эйлера мобильного ZYX описывается z’г’х’ последовательность, но оба эквивалентны, как мы увидим позже.
В робототехнике FANUC и KUKA используют соглашение об фиксированном угле Эйлера XYZ, в то время как ABB использует соглашение об угле Эйлера ZYX для мобильных устройств. Кроме того, Kawasaki, Omron Adept Technologies и Stäubli используют соглашение об угле Эйлера для мобильных устройств ZYZ. Наконец, углы Эйлера, используемые в CATIA и SolidWorks, описываются мобильным соглашением об углах Эйлера ZYZ.

В Mecademic мы используем соглашение об углах Эйлера для мобильных устройств XYZ и поэтому описываем углы Эйлера как последовательность x ‘→г ‘→z ‘. Зачем быть другим? Причина в том, что раньше мы предлагали механический захват для перемещения осесимметричных заготовок (см. видео), который приводился в действие двигателем шарнира 6. Шестиосевой робот, оснащенный таким захватом, может управлять только двумя вращательными степенями свободы, или более конкретно направление оси соединения 6, то есть направление оси симметрии заготовки. В выбранном соглашении об углах Эйлера углы α и β определяют это направление, а угол γ игнорируется, поскольку соответствует неуправляемому паразитному вращению.
Приведенный ниже апплет поможет вам понять углы Эйлера. Вы можете выбрать одно из двенадцати возможных соглашений об углах Эйлера, щелкнув поля x, y и z первого, второго и третьего поворота. (Последовательность углов Эйлера по умолчанию используется Mecademic.) Чтобы переключиться между поворотами вокруг осей неподвижной или подвижной рамы, вам нужно дважды щелкнуть любое из этих девяти полей. Оси неподвижной рамы показаны серым цветом, а оси подвижной рамы — черным. Оси x и х ‘ нарисованы красным, y и г ‘ зеленым цветом и z и г ' в синем. Скольжение мышью по любой из трех синих горизонтальных стрелок изменяет соответствующий угол Эйлера. Кроме того, вы можете напрямую установить значение угла Эйлера (в градусах) в соответствующем текстовом поле под стрелкой. Наконец, вы можете перетащить указатель мыши на опорный кадр, чтобы изменить точку обзора.


α :

β :

γ :

RR х (0°) R г (0°) R г (0°) =
1000 0,000 0,000
0,000 1.000 0,000
0,000 0,000 1000

Вычисление углов Эйлера с помощью матриц вращения

С помощью приведенного выше апплета вы увидите ориентацию подвижной рамы относительно фиксированной рамы для заданного набора углов Эйлера на крайнем правом подрисунке. К сожалению, на практике, как правило, бывает наоборот. У вас часто есть две системы отсчета, и вы хотите найти углы Эйлера, которые описывают ориентацию одной системы отсчета по отношению к другой.
Для ориентаций, в которых по крайней мере две оси параллельны, вы можете попытаться угадать угол Эйлера. углы методом проб и ошибок. Например, вернитесь к изображению в начале этого руководства и попытайтесь найти углы Эйлера, используемые Mecademic, которые определяют ориентацию системы отсчета инструмента, связанной с захватом, относительно системы отсчета фланца. Ответ α = −90°, β = 0°, γ = -90°. Не так-то просто получить, не так ли? Поэтому, чтобы быть более эффективным, вы все-таки должны узнать о матрицах вращения.
Как мы уже упоминали, любая ориентация в пространстве может быть представлена ​​матрицей вращения 3×3. Например, поворот α вокруг оси x , поворот β вокруг оси y , и поворот γ вокруг оси z , соответственно, соответствуют следующим трем матрицам поворота:

R х (α ) = <тд> ,
1 0 0
0 cos(α ) −sin(α )
0 sin(α ) cos(α )
R г (β ) = <тд> ,
cos(β ) 0 sin(β )
0 1 0
−sin(β ) 0 cos(β )
R г (γ ) = <тд> .
cos(γ ) −sin(γ ) 0
sin(γ ) cos(γ ) 0
0 0 1

Мы будем называть приведенные выше матрицы базовыми матрицами поворота. . Чтобы получить произведение основных матриц вращения, которое соответствует последовательности вращений, начните с записи основной матрицы вращения, соответствующей первому вращению. Например, если первое вращение происходит вокруг x (или x ‘) оси, затем напишите R х (ψ ), где ψ это угол поворота. Для каждого последующего вращения постумножить (умножить вправо) текущий результат на следующую матрицу вращения, если вращение происходит вокруг оси подвижной системы отсчета, или предварительно умножить (умножить влево) текущий результат на следующую матрицу вращения , если вращение происходит вокруг оси неподвижной системы отсчета. Используйте наш апплет, чтобы увидеть результирующий продукт основных матриц вращения. Например, последовательность чередования x ‘→г ‘→z ‘ соответствует продукту RR х (α )Р г (β )Р г (γ ). Таким образом, матрица поворота, соответствующая углам Эйлера, используемым Mecademic, выглядит следующим образом:

R (αβγ ) = <тд> .
cos(β )cos(γ ) −cos(β )sin(γ ) sin(β )
cos(α )sin(γ ) + sin(α )sin(β )cos(γ ) cos(α )cos(γ ) − sin(α )sin(β )sin(γ ) −sin(α )cos(β )
sin(α )sin(γ ) − cos(α )sin(β )cos(γ ) sin(α )cos(γ ) + cos(α )sin(β )sin(γ ) cos(α )cos(β )

Следовательно, для данной ориентации вам нужно будет сделать две вещи:во-первых, вам нужно найти матрицу поворота, соответствующую вашей ориентации. Во-вторых, вам нужно извлечь углы Эйлера, используя пару простых уравнений. Давайте сначала покажем вам два способа найти матрицу поворота.
Рассмотрите пример, показанный на рисунке ниже, где нам нужно найти матрицу поворота, представляющую ориентацию кадра F’. относительно кадра F . (Напомним, что мы всегда представляем x ось выделена красным, y ось зеленого цвета, а z ось синего цвета.)

Здесь легко увидеть, что если мы выровняем третью систему отсчета с F , который будет действовать как подвижная рамка, затем поверните эту рамку вокруг ее z ‘ ось в θ градусов, а затем поверните его вокруг y ‘ ось в φ градусов, мы получим ориентацию F . Таким образом, искомая матрица вращения:

R желательноR г (θ )Р г (φ ) = <тд> .
cos(θ )cos(φ ) −sin(θ ) cos(θ )sin(φ )
sin(θ )cos(φ ) cos(θ ) sin(θ )sin(φ )
−sin(φ ) 0 cos(φ )

В качестве альтернативы мы можем получить указанную выше матрицу вращения напрямую. Его первый, второй и третий столбцы представляют координаты единичных векторов вдоль xг и г ось, соответственно, кадра F’ , относительно кадра F .
Теперь, когда у вас есть матрица вращения, представляющая желаемую ориентацию, вам просто нужно решить систему из девяти скалярных тригонометрических уравнений R желательноR (αβγ ), для αβ и γ . К счастью, у этой проблемы есть общее решение, и мы просто дадим вам уравнения для использования.
Пусть нужная ориентация кадра F’ относительно кадра F быть представлено следующей матрицей вращения:

R желательно = <тд> .
r 1,1 r 1,2 r 1,3
r 2,1 r 2,2 r 2,3
r 3,1 r 3,2 r 3,3

Углы Эйлера (в градусах) в соответствии с мобильным соглашением XYZ, используемым Mecademic, затем получаются в соответствии со следующими двумя случаями:
Случай 1: р 1,3 ≠ ±1 (т. е. z’ ось кадра F’ не параллелен x ось кадра F ).

β = asin(r 1,3 ),   γ = atan2(−r 1,2р 1,1 ),   α = atan2(−r 2,3р 3,3 ).

Вариант 2: р 1,3 = ±1 (т. е. z’ ось кадра F’ параллелен x ось кадра F ).

βр 1,3 90°,   γ = atan2(r 2,1р 2,2 ),   α = 0.

В общем случае 1 у нас фактически есть два набора решений, где все углы находятся в полуоткрытом диапазоне (-180 °, 180 °). Однако вычислять оба набора решений бесполезно, поэтому представлен только первый , в котором −90° < β <90°. Также обратите внимание, что в нашем решении мы используем функцию atan2(y, x). Имейте в виду, что в некоторых языках программирования, в некоторых научных калькуляторах и в большинстве программ для работы с электронными таблицами аргументы этой функции инвертируются.
И наконец, обратите внимание, что случай 2 соответствует так называемой сингулярности представления. . Эта особенность присутствует в любом трехпараметрическом представлении ориентации в трехмерном пространстве (не только в выборе углов Эйлера компанией Mecademic). Это похоже на задачу представления точек на сфере только двумя параметрами. Например, долгота не определяется на Земле на Южном и Северном полюсах Земли. Другими словами, эта особенность не имеет ничего общего с особенностями механизмов (например, так называемого карданного замка). ), которые соответствуют реальным физическим проблемам (например, потеря степени свободы).

Упражнение

Рассмотрим следующую ситуацию из реальной жизни, которая произошла с нами. Мы хотели прикрепить дозирующий клапан FISNAR к рабочему органу нашего робота-манипулятора Meca500. Естественно, инженер, спроектировавший и изготовивший переходник, не заботился об углах Эйлера, а заботился только о обрабатываемости и досягаемости. В его конструкции было по существу два поворота на 45°. Во-первых, он использовал два диаметрально противоположных резьбовых отверстия на фланце робота для крепления адаптера, что вызвало первый поворот на 45°. Во-вторых, угол между плоскостью сопряжения фланца и осью дозатора составлял 45°.

На рисунке выше показана фактическая установка (слева) и рама инструмента (справа), которую необходимо было определить. Обратите внимание, что при использовании осесимметричных инструментов обычной практикой является совмещение оси Z инструмента с осью инструмента. Это особенно полезно при использовании подвижного угла Эйлера XYZ, поскольку избыточное вращение вокруг осесимметричного инструмента соответствует третьему углу Эйлера, γ. Таким образом, первые два угла Эйлера определяют ось инструмента, а третий можно использовать для выбора оптимальной конфигурации робота (т.е. вдали от особенностей).

Возвращаясь к нашему примеру, мы сейчас покажем, что невозможно получить углы Эйлера в соответствии с мобильным соглашением XYZ методом проб и ошибок. Действительно, для такого выбора системы отсчета инструмента мы можем представить окончательную ориентацию как последовательность следующих двух поворотов: RR г (45°)П г (45°). Отсюда мы можем извлечь углы Эйлера в соответствии с мобильным соглашением XYZ, используя ранее описанные уравнения, и получить: α = −35,264°, β = 30 000°, γ =54,735°. Теперь вы уверены, что вам действительно нужно освоить углы Эйлера для таких ситуаций?

Репрезентативные особенности и ошибки ориентации

В случае мобильного соглашения об углах Эйлера XYZ, если z’ ось кадра F’ параллелен x ось кадра F , существуют бесконечные пары α и γ который будет определять ту же ориентацию. Очевидно, вам нужно только одно, чтобы определить желаемую ориентацию, поэтому мы произвольно установили α быть равным нулю. В частности, если β = 90°, то любая комбинация α и γ , например α + γ = φ , где φ — любое значение, будет соответствовать той же ориентации и будет выводиться контроллером Mecademic как {0,90°, φ}. Точно так же, если β = −90°, то любая комбинация α и γ , такое что α − γ = φ , где φ — любое значение, будет соответствовать той же ориентации и будет выводиться контроллером Mecademic как {0,−90°,−φ}. Однако обратите внимание, что если вы попытаетесь представить ориентацию кадра F’ относительно кадра F и z’ ось кадра F’ почти параллелен x ось кадра F (т. е. β очень близко к ±90°), углы Эйлера будут очень чувствительны к численным ошибкам. In such a case, you should enter as many digits after the decimal point as possible when defining the orientation using Euler angles.
Consider the following situation which has caused worries to several users of our Meca500. You set the orientation of the tool reference frame with respect to the world reference frame to {0°, 90°, 0°}, which is a representational singularity. Then you keep this orientation and move the end-effector in space to several positions. At some positions, because of numerical noise, the controller does not detect the condition r 1,3  = ±1 (Case 2, as mentioned above) and calculates the Euler angles as if the orientation did not correspond to a representational singularity. Thus, the controller returns something like {41.345°, 90.001°, −41.345°}, which seems totally wrong and very far away from {0°, 90°, 0°}. Well it’s not.
Unlike position errors, which are measured as √(Δx 2  + Δy 2  + Δz 2 ), orientation errors are not directly related with the variations in the Euler angles, especially close to representational singularities. To better understand this so-called non-Euclidean nature of Euler angles, consider the spherical coordinates used to represent a location on Earth. At the North Pole, the latitude is 90° (North), but what is the longitude? Longitude is not defined at the North Pole, or it can be any value. Now imagine that we move only 1 mm away from the North Pole in the direction of Greenwich. In this case, the latitude will be 89.99999999°, but the longitude will now have the value of 0°. Imagine once again that you return to the North Pole and move 1 mm in the direction of Tokyo. The new longitude will be approximately 140°. Between your two locations, the error in longitude is 140°! However, the real angular error will be approximately 0.00000002°.
The situation described above is similar in all other Euler angles conventions. Depending on the Euler angle convention, the correspoding representation singularity occurs when a specific axis of frame F’  is parallel to another specific axis of frame F . In such a representation singularity, the first and third rotation become dependant.
In conclusion, unless you master Euler angles (or use sophisticated offline programming software), and more specifically the convention used for programming your robot, you will hardly be able to program anything but simple pick and place operations. Because robotics is not simple, we do our best to help you understand the basics.


Ищете детали для промышленной автоматизации? Мы можем помочь!

МАГАЗИН ЗАПЧАСТЕЙ


Система управления автоматикой

  1. Литье под давлением:новый маленький 6-осевой робот
  2. Роботы в NPE:быстрее, сильнее, умнее
  3. «Художественный» робот в NPE
  4. Как занять роботов
  5. Недорогой высокоскоростной робот-сборщик
  6. Захваты для роботов, собранные в США
  7. Вопросы о роботах? Ответы автоматизации
  8. Автоматизация:переработка линии роботов
  9. Универсальный робот принял нового президента
  10. Маленький, быстрый шестиосевой робот