산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 자동화 제어 시스템

6축 로봇에서 오일러 각 계산


공간의 방향은 오일러 각으로 어떻게 표현되나요?

이 튜토리얼에서 예로 사용된 Mecademic의 Meca500과 같은 6축 로봇 팔을 사용하는 경우 해당 도구(엔드 이펙터 ) 다양한 방향으로. 즉, 엔드 이펙터를 원하는 위치와 방향(예:원하는 포즈)으로 이동하도록 로봇을 프로그래밍할 수 있어야 합니다. ). 물론 로봇의 엔드 이펙터를 언제든지 조깅하거나 대략적인 원하는 포즈로 손으로 안내할 수 있지만 이 소위 온라인 프로그래밍 방법 지루하고 매우 부정확합니다. 오프라인에서 원하는 포즈를 계산하고 정의하는 것이 훨씬 더 효율적입니다. 게다가 도구 참조 프레임을 정의하려면 엔드 이펙터와 연결된 경우(여기에 표시된 이미지에서와 같이) 플랜지 참조 프레임과 관련하여 해당 도구 참조 프레임의 포즈를 계산해야 합니다. .
3D 공간에서 포즈를 정의하려면 최소 6개의 매개변수가 필요합니다. 예를 들어 로봇의 엔드 이펙터 또는 더 정확하게는 TCP의 위치입니다. (도구 중심점 ), 일반적으로 x로 정의됩니다. , yz 세계 기준 좌표계에 대한 도구 기준 좌표계의 원점 좌표 . 그러면 공간에서 방향을 어떻게 정의합니까?

공간에서의 방향 표현은 복잡한 문제입니다. 오일러의 회전 정리 (3D) 공간에서 강체의 한 점이 고정된 상태로 유지되는 방식으로 강체의 모든 변위는 고정된 점을 통과하는 축에 대한 단일 회전과 동일합니다. 따라서 이러한 회전은 3개의 독립적인 매개변수로 설명될 수 있습니다. 두 개는 축을 설명하고 다른 하나는 회전 각도를 나타냅니다. 그러나 공간에서의 방향은 여러 가지 다른 방식으로 표현될 수 있으며 각각의 장점과 단점이 있습니다. 이러한 표현 중 일부는 필요한 최소 3개 이상의 매개변수를 사용합니다.

하나의 데카르트(3D) 참조 프레임에서 위치 좌표를 변환하는 가장 일반적인 방법, F , 다른 사람에게 F' ,는 회전 행렬입니다. . 따라서 이 3×3 매트릭스는 참조 프레임F'의 방향을 나타내는 데 사용할 수 있습니다. 참조 프레임 F과 관련하여 . 그러나 이 표현은 종종 필요하지만 나중에 알게 되겠지만 방향을 정의하는 간단하고 직관적인 방법은 아닙니다.
방향을 정의하는 또 다른 훨씬 더 간단한 방법은 쿼터니언입니다. . 이 표현 형식은 4개의 스칼라로 구성된 정규화된 벡터로 구성됩니다. 쿼터니언은 일반적으로 로봇 컨트롤러에서 사용되는데, 회전 행렬보다 더 작을 뿐만 아니라 근사 오류에 덜 민감하기 때문입니다. 또한 서로 다른 두 방향 사이의 보간 중에 쿼터니언의 요소가 지속적으로 변경되어 오일러 각도와 같은 3차원 매개변수화에 내재된 불연속성을 방지합니다. 그럼에도 불구하고 쿼터니언은 직관적이지 않기 때문에 사용자와 로봇 컨트롤러 간의 통신 수단으로 거의 사용되지 않습니다.

오일러 각의 자세한 정의

CAD 소프트웨어 또는 로봇 컨트롤러에서 사용자에게 공간 방향을 전달하거나 사용자가 방향을 정의할 수 있도록 하는 가장 일반적인 방법은 오일러 각을 사용하는 것입니다. . 오일러 각이라는 용어가 종종 오용되기 때문에 이 대화형 자습서를 준비했습니다.

오일러 각도는 예를 들어 α로 표시할 수 있는 세 각도의 집합(또는 시퀀스)입니다. , βγ . (종종 오일러 각은 으로 표시됩니다. , 피칭 , 및 .) 오일러 각은 다음과 같이 정의됩니다. 두 개의 데카르트 오른손잡이 3D 참조 프레임을 고려하십시오. 그 중 하나는 임의로 고정이라고 합니다. 프레임이고 다른 하나는 모바일 액자. 두 기준 프레임은 처음에 일치합니다. 세 번째 프레임(세 프레임 모두 동일한 원점 공유)의 방향을 정의하기 위해 모바일 프레임을 아래 표시된 순서대로 회전하여 세 번째 프레임과 일치하도록 가져옵니다.

  1. x 정보 , y , 또는 z 고정 프레임의 축 또는 x' , y' , 또는 z' 모바일 프레임의 α 학위,
  2. 그런 다음 x에 대해 , y , 또는 z 고정 프레임의 축 또는 x' , y' , 또는 z' 모바일 프레임의 β 학위,
  3. 마지막으로 x에 대해 , y , 또는 z 고정 프레임의 축 또는 x' , y' , 또는 z' 모바일 프레임의 γ 학위.

세 번의 회전이 수행되는 순서가 중요합니다. 따라서 총 216개(6 3 ) 가능한 시퀀스:xy , yyz , zy , x'→y , y'→y , z'→yz , 기타 등등. 그러나 2개의 연속 회전이 동일한 축에 대해 이루어지는 3개의 회전 시퀀스(예:yyz ) 일반적인 방향을 설명할 수 없습니다. 또한 첫 번째 회전 전에 x x와 일치 ', y y와 일치 ' 및 z z와 일치 '. 결과적으로 이 모든 216개의 조합 중에서 12개의 고유하고 의미 있는 회전 시퀀스 또는 12개의 오일러 각도 규칙만 존재합니다. :XYX, XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, ZYZ.
즉, 12개의 각 조합은 3개의 다른 시퀀스와 동일합니다. 즉, 각 오일러 각 규칙은 네 가지 다른 방식으로 설명할 수 있습니다. 예를 들어 ZYX 규칙은 시퀀스 z와 동일합니다. →yx , x '→y '→ ', yz '→엑스yxz '. 다행스럽게도 일부 회전은 모바일 프레임 축에 대한 것이고 다른 회전은 고정된 축에 대한 순서(예:yz '→엑스yxz ').
따라서 12개의 서로 다른 오일러 각도 규칙이 있지만 각각은 일반적으로 고정 프레임의 축에 대한 일련의 회전 또는 모바일 프레임. 따라서 동일하지만 고정 및 모바일 규칙에 대해 이야기하는 것이 편리할 수 있습니다. 예를 들어 고정 XYZ 오일러 각도 규칙은 x로 설명됩니다. →yz 모바일 ZYX 오일러 각도 규칙은 z'로 설명됩니다. →y'x' 나중에 살펴보겠지만 둘 다 동일합니다.
로봇 공학에서 FANUC와 KUKA는 고정 XYZ 오일러 각도 규칙을 사용하는 반면 ABB는 모바일 ZYX 오일러 각도 규칙을 사용합니다. 또한 Kawasaki, Omron Adept Technologies 및 Stäubli는 모바일 ZYZ 오일러 각도 규칙을 사용합니다. 마지막으로 CATIA 및 SolidWorks에서 사용되는 오일러 각도는 모바일 ZYZ 오일러 각도 규칙으로 설명됩니다.

Mecademic에서는 모바일 XYZ 오일러 각도 규칙을 사용하므로 오일러 각도를 시퀀스 x로 설명합니다. '→y '→ '. 왜 다를까요? 그 이유는 조인트 6의 모터에 의해 작동되는 축대칭 공작물(비디오 참조)을 핸들링하기 위한 기계식 그리퍼를 제공했기 때문입니다. 이러한 그리퍼가 장착된 6축 로봇은 2개의 회전 자유도만 제어할 수 있습니다. 보다 구체적으로 조인트(6)의 축 방향, 즉 워크피스의 대칭축 방향이다. 선택한 오일러 각도 규칙에서 각도 αβ 이 방향을 정의하고 각도 γ 제어할 수 없는 기생 회전에 해당하기 때문에 무시됩니다.
아래 애플릿은 오일러 각을 이해하는 데 도움이 됩니다. 첫 번째, 두 번째 및 세 번째 회전의 x, y 및 z 상자를 클릭하여 12가지 가능한 오일러 각도 규칙 중 하나를 선택할 수 있습니다. (기본 오일러 각도 순서는 Mecademic에서 사용하는 것입니다.) 고정 또는 이동 프레임의 축에 대한 회전 사이를 전환하려면 이 9개의 상자 중 하나를 두 번 클릭해야 합니다. 고정 프레임의 축은 회색으로 그려지고 이동 프레임의 축은 검은색으로 그려집니다. 축 xx '는 빨간색으로 그려지고 yy ' 녹색, zz 파란색으로. 마우스로 세 개의 파란색 수평 화살표 중 하나를 따라 글라이딩하면 해당 오일러 각도가 변경됩니다. 또는 화살표 아래의 해당 텍스트 상자에서 오일러 각도 값(도 단위)을 직접 설정할 수 있습니다. 마지막으로 참조 프레임 위로 마우스를 드래그하여 시점을 변경할 수 있습니다.


α :

베타 :

γ :

R =R <서브>엑스 (0°) R y (0°) R (0°) =

회전 행렬을 통한 오일러 각 계산

위의 애플릿을 사용하면 맨 오른쪽 하위 그림에서 주어진 오일러 각도 세트에 대해 고정 프레임에 대한 모바일 프레임의 방향을 볼 수 있습니다. 그러나 불행히도 실제로 상황은 대개 반대입니다. 두 개의 기준 좌표계가 있는 경우가 많으며 다른 좌표계에 대한 한 좌표계의 방향을 설명하는 오일러 각을 찾고자 합니다.
적어도 두 축이 평행인 방향의 경우 오일러 각도를 추측할 수 있습니다. 시행 착오를 통한 각도. 예를 들어, 이 튜토리얼의 시작 부분에 있는 이미지를 다시 보고 플랜지 참조 프레임과 관련하여 그리퍼와 연결된 도구 참조 프레임의 방향을 정의하는 Mecademic에서 사용하는 오일러 각도를 찾으십시오. 답은 α입니다. =−90°, β =0°, γ =-90°. 얻기가 쉽지 않죠? 따라서 효율성을 높이려면 결국 회전 행렬에 대해 배워야 합니다.
이미 언급했듯이 공간의 모든 방향은 3×3 회전 행렬로 나타낼 수 있습니다. 예를 들어 α의 회전 축 x에 대해 , β의 회전 축 y에 대해 , 및 γ의 회전 축 z에 대해 , 각각 다음 세 가지 회전 행렬에 해당합니다.

1.000 0.000 0.000
0.000 1.000 0.000
0.000 0.000 1.000
R <서브>엑스 (α ) =
1 0 0
0 cos(α ) −sin(α )
0 죄(α ) cos(α )
,
R y (β ) =
cos(β ) 0 죄(β )
0 1 0
−sin(β ) 0 cos(β )
,
R z (γ ) =

위의 행렬을 기본 회전 행렬이라고 합니다. . 일련의 회전에 해당하는 기본 회전 행렬의 곱을 얻으려면 먼저 첫 번째 회전에 해당하는 기본 회전 행렬을 작성하십시오. 예를 들어 첫 번째 회전이 x에 관한 경우 (또는 x ') 축에 R이라고 적습니다. <서브>엑스 (ψ ), 여기서 ψ 회전 각도입니다. 모든 후속 회전에 대해 회전이 모바일 참조 프레임의 축을 기준으로 하는 경우 현재 결과에 다음 회전 행렬을 사후 곱(오른쪽 곱)하거나 현재 결과를 다음 회전 행렬과 사전 곱(왼쪽 곱)합니다. , 회전이 고정 참조 프레임의 축을 기준으로 하는 경우. 애플릿을 사용하여 기본 회전 행렬의 결과 제품을 확인하십시오. 예를 들어 회전 시퀀스 x '→y '→ '는 제품 R에 해당합니다. =R <서브>엑스 (α )R y (β )R (γ ). 따라서 Mecademic에서 사용하는 오일러 각에 해당하는 회전 행렬은 다음과 같습니다.

cos(γ ) −sin(γ ) 0
죄(γ ) 코사인(γ ) 0
0 0 1
.
R (α , β , γ ) =

따라서 주어진 방향에 대해 두 가지 작업을 수행해야 합니다. 먼저 방향에 해당하는 회전 행렬을 찾아야 합니다. 둘째, 몇 가지 간단한 방정식을 사용하여 오일러 각을 추출해야 합니다. 먼저 회전 행렬을 찾는 두 가지 방법을 보여드리겠습니다.
프레임 F'의 방향을 나타내는 회전 행렬을 찾아야 하는 아래 그림에 표시된 예를 고려하세요. 프레임 F와 관련하여 . (우리는 항상 x 빨간색 축, y 축이 녹색이고 z 축은 파란색입니다.)

여기에서 F와 세 번째 참조 프레임을 정렬하면 쉽게 알 수 있습니다. , 모바일 프레임 역할을 한 다음 이 프레임을 z에 대해 회전합니다. ' θ의 축 y를 중심으로 회전합니다. ' φ의 축 도, 우리는 F의 오리엔테이션을 얻을 것입니다 . 따라서 우리가 찾고 있는 회전 행렬은 다음과 같습니다.

cos(β )cos(γ ) −cos(β )sin(γ ) 죄(β )
cos(α )sin(γ ) + 죄(α )sin(β )cos(γ ) cos(α )cos(γ ) − 죄(α )sin(β )sin(γ ) −sin(α )cos(β )
죄(α )sin(γ ) − cos(α )sin(β )cos(γ ) 죄(α )cos(γ ) + cos(α )sin(β )sin(γ ) cos(α )cos(β )
.
R 원하는 =R z (θ )R y (φ ) =

또는 위의 회전 행렬을 직접 얻을 수 있습니다. 첫 번째, 두 번째 및 세 번째 열은 x를 따라 단위 벡터의 좌표를 나타냅니다. , yz 각각 프레임 F'의 축 , 프레임 F 관련 .
이제 원하는 방향을 나타내는 회전 행렬이 있으므로 9개의 스칼라 삼각 방정식 시스템R을 풀면 됩니다. 원하는 =R (α , β , γ ), α , βγ . 다행히도 이 문제에는 일반적인 해결책이 있으며 사용할 수 있는 방정식을 제공할 것입니다.
프레임의 원하는 방향을 F' 프레임 F 관련 다음 회전 행렬로 표시됩니다.

cos(θ )cos(φ ) −sin(θ ) cos(θ )sin(φ )
sin(θ )cos(φ ) cos(θ ) 죄(θ )sin(φ )
−sin(φ ) 0 cos(φ )
.
R 원하는 =

Mecademic에서 사용하는 모바일 XYZ 규칙에 따라 오일러 각도(도 단위)는 다음 두 가지 경우에 따라 얻습니다.
사례 1: r <서브>1,3 ≠ ±1(즉, z' 프레임의 축 F' x와 평행하지 않습니다. 프레임의 축 F ).

베타 =아신(r <서브>1,3 ), γ =atan2(−r <서브>1,2 , r <서브>1,1 ), α =atan2(−r <서브>2,3 , r <서브>3,3 ).

사례 2: r <서브>1,3 =±1(즉, z' 프레임의 축 F' x와 평행 프레임의 축 F ).

베타 =r <서브>1,3 90°, γ =atan2(r <서브>2,1 , r <서브>2,2 ), α =0.

일반적인 사례 1에서는 실제로 모든 각도가 반열린 범위(-180°, 180°]에 있는 두 개의 솔루션 세트가 있습니다. 그러나 두 세트의 솔루션을 모두 계산하는 것은 쓸모가 없으므로 첫 번째 솔루션만 제시됩니다. , 여기서 −90° <β <90°. 또한 솔루션에서 atan2(y, x) 함수를 사용합니다. 일부 프로그래밍 언어, 일부 공학용 계산기 및 대부분의 스프레드시트 소프트웨어에서는 이 함수의 인수가 반전된다는 점에 유의하세요.
마지막으로 사례 2는 소위 표현 특이점에 해당합니다. . 이 특이점은 3D 공간에서 방향의 3개 매개변수 표현에 존재합니다(Mecademic이 선택한 오일러 각도뿐만 아니라). 두 개의 매개변수만으로 구의 점을 나타내는 문제와 비슷합니다. 예를 들어 경도는 지구상의 남극과 북극에서 정의되지 않습니다. 즉, 이 특이점은 메커니즘의 특이점(예:소위 짐벌 잠금 장치 ), 실제 물리적 문제(예:자유도 손실)에 해당합니다.

운동

우리에게 일어난 다음 실제 상황을 고려하십시오. 우리는 Meca500 로봇 암의 엔드 이펙터에 FISNAR 분배 밸브를 부착하고 싶었습니다. 당연히 어댑터를 설계하고 가공한 엔지니어는 오일러 각도에 관심이 없었고 기계 가공성과 도달 가능성에만 관심이 있었습니다. 그의 설계에는 본질적으로 45°의 두 회전이 있었습니다. 먼저 그는 어댑터를 부착하기 위해 로봇 플랜지에 있는 두 개의 정반대 나사 구멍을 사용하여 45°의 첫 번째 회전을 일으켰습니다. 둘째, 플랜지 인터페이스 평면과 디스펜서 축 사이의 각도는 45°였습니다.

위의 그림은 정의가 필요한 실제 설치(왼쪽)와 도구 프레임(오른쪽)을 보여줍니다. 축 대칭 도구를 사용할 때 도구 Z축을 도구 축과 정렬하는 것이 일반적입니다. 이는 모바일 XYZ 오일러 각도 규칙에 특히 유용합니다. 축 대칭 도구에 대한 중복 회전이 세 번째 오일러 각도 γ에 해당하기 때문입니다. 따라서 처음 두 개의 오일러 각은 도구의 축을 정의하고 세 번째는 로봇의 최적 구성을 선택하는 데 사용할 수 있습니다(즉, 특이점에서 멀리 떨어져 있음).

우리의 예로 돌아가서 시행 착오를 통해 모바일 XYZ 규칙에 따라 오일러 각을 제시하는 것이 불가능하다는 것을 보여줄 것입니다. 실제로 이 도구 기준 좌표계 선택의 경우 최종 방향을 다음 두 회전의 시퀀스로 나타낼 수 있습니다. R =R z (45°)R y (45°). 여기에서 앞에서 설명한 방정식을 사용하여 모바일 XYZ 규칙에 따라 오일러 각을 추출하고 다음을 얻을 수 있습니다. α =−35.264°, β =30.000°, γ =54.735°. 이와 같은 상황에서 오일러 각을 마스터해야 한다고 이제 확신하십니까?

표현 특이점 및 방향 오류

모바일 XYZ 오일러 각도 규칙의 경우 z' 프레임의 축 F' x와 평행 프레임의 축 F , α의 무한한 쌍이 있습니다. 및 γ 동일한 방향을 정의합니다. 분명히 원하는 방향을 정의하는 데 하나만 필요하므로 임의로 α를 설정했습니다. 0과 같아야 합니다. 더 구체적으로, β =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.


Looking For Industrial Automation Parts? We Can Help!

SHOP PARTS


자동화 제어 시스템

  1. 사출 성형:새로운 소형 6축 로봇
  2. NPE의 로봇:더 빠르고 더 강력하고 똑똑한
  3. NPE의 '예술적' 로봇
  4. 로봇을 바쁘게 하기
  5. 저비용 고속 조립 로봇
  6. 미국에서 조립된 로봇 그리퍼
  7. 로봇 질문? 자동화 답변
  8. 자동화:재설계된 로봇 라인
  9. Universal Robot, 신임 회장 취임
  10. 작고 빠른 6축 로봇
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
.