본문 바로가기

로봇/Robotic Arm

강체의 수학적 표현: 회전 행렬, 오일러 각도, 롤피치요 각도, 동차 변환 ㅡ 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(1)

728x90
반응형

4자유도 로봇 팔 제어하기 


로봇 팔을 제어하기 위해 Kinematics(운동학), 특히 Inverse Kinematics(역운동학/역기구학) 문제를 푸는 것이 중요합니다.

많은 테크니컬한 기술들로 Inverse Kinematics 문제를 풀 수 있습니다. 또한 각각의 문제풀이 방법들은 이점이 있는 반면 단점도 있습니다.  

저는 4개의 모터를 이용한 매니퓰레이터Manipulator를 제어하기 위해, 4개의 자유도를 가진 로봇팔을 이용한 Inverse Kinematics의 적당한 solution을 서치해보았습니다.

그 중 King Faud 대학 Mechanical Engineering의 Amin A. Mohammed와 M. Sunar가 저술한 논문에서,

(참조 - https://ieeexplore.ieee.org/document/7166008)

3 links-manipulator 로봇팔로 시뮬레이션된 유전자 알고리즘과 i-Robot의 5-DOF 로봇팔의 방법론을 혼합한 solution으로 4-DOF RA-02 로봇 팔을 모델링하고 분석한 것을 보았습니다.

같은 4-DOF 로봇 팔을 제어하기 위해 이 solution을 채택하였습니다.

이 solution에 따라 매니퓰레이터 운동학 (Manipulator Kinematics) 모델링과 분석이 중요하기 때문에, 공부해보겠습니다.

 


 

 

Manipulator Kinematics

  • Forward Kinematics(정운동학, 순기구학) 

[로봇 이론/Robotic Arm] - 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(2) ㅡ Forward Kinematics (순기구학, 정기구학)

  • Inverse Kinematics(역운동학, 역기구학) 

[로봇/Robotic Arm] - 2DOF, 3DOF, 4DOF Manipulator 로봇 팔의 Inverse Kinematics (역기구학, 역운동학) 풀이 ㅡ 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(3)


Manipulator Kinematics매니퓰레이터 운동학에는 정기구학Forward Kinematics, 역기구학Inverse Kinematics 두가지가 있습니다.

Forward Kinematics는 링크와 관절의 좌표와 길이로부터, end effector(EE)로봇팔의 말단의 위치와 각도를 찾는 반면,

Inverse Kinematics는 EE의 위치와 각도및 링크의 길이로부터 관절의 각도나 길이를 알아냅니다.

우리가 보통 로봇팔을 제어하기 위해 필요한 것이 Inverse Kinematics의 풀이입니다. 하지만 Forward Kinematics는 직관적인 반면에, Inverse Kinematics는 쉽지 않고, 복잡한 해결책이 필요합니다. 

먼저, 공부하기 위해 필요한 수학적 표현과 용어에 대해 알아보겠습니다.

 


 

Rigid body(강체)의 수학적 표현

  • 회전 행렬
  • 오일러 각도
  • 롤-피치-요(roll-pitch-yaw) 각도
  • 쿼터니언 방향각

강체의 위치

위 그림과 같이 O-xyz를 고정좌표계라고 하고, O'을 강체에 부착된 임의의 좌표계라 하면,

강체의 위치는 고정 좌표계 O-xyz에 대하여 다음과 같이 표현될 수 있습니다.

 

강체의 방향각은 매니퓰레이터의 기구학과 동역학 해석에 유용한 오일러 각 및 roll-pitch-yaw각을 통해 수학적으로 표현할 수 있습니다.

 

위 그림의 O-xyz(위치 p)는 고정된 좌표계이고, O'-x'y'z'(위치 p')는 고정 좌표계 O-xyz에 대해 회전된 강체에 부착된 좌표계입니다.

(i,j,k)O-xyz의 단위벡터, (i',j',k')O'-x'y'z'의 단위벡터라고 하면, 점 pp'은 다음과 같이 표현할 수 있습니다.

또, 강체가 고정된 좌표계 O-xyz에서 회전하였으므로, 회전행렬(rotation matrix) R로 표현할 수도 있습니다.

행렬 Rp'의 성분들을 고정돈 좌표계 O-xyz로 투영하는 것으로 계산할수 있으므로, 아래식과 같이 표현됩니다.

그러므로 행렬 R을 알 수 있습니다.

반대로, O-xyz상에 표현된 pO-x'y'z'상의 좌표계료 변환하여 p'를 구할 수도있습니다.

 

  • 행렬 R의 속성

 

행렬 R은 다음과 같이 보편적으로 표현됩니다. 

열 벡터 들은 서로 수직이며 길이가 1인 단위벡터입니다.

 

예) x축, y축, z축에 대해 각각 α, β,θ 만큼 회전했을 때의 회전행렬

 

위의 예에서 i = i'  입니다.

연속된 회전의 경우 회전행렬을 순차적으로 곱하면 됩니다. 

만약 강체가 고정된 O-xyz의 x축을 기준으로 α만큼 회전 한 뒤 고정된 O-xyz의 z축으로 θ만큼 회전하고, 고정된 O-xyz의 y축으로 β만큼회전 한다면, 다음과 같이 계산할 수 있습니다.

그러나 이와 달리, 기구학에서 회전들은 흔히 고정된 기준 좌표축이 아닌 현재의 회전된 좌표측을 기준으로 만들어집니다.

그러므로 첫 번째 변환 이후 현재 좌표계를 기준으로 회전 또는 이동하기 위해서는, 회전된 좌표계를 기준으로 순차적으로 회전행렬을 곱하는 식으로 표현하면 됩니다.

위의 식과 밑의 식의 형태와 결과는 같습니다. 하지만 회전 순서는 다릅니다.

 


 

오일러 각도


회전 행렬을 위한 Cayley의 식을 고려하면, 모든 정규직교 행렬 R은, 다음식과 같이 반대칭(skew-symmetric)행렬 S가 존재합니다.

은 3 x 3 항등행렬

 

그러므로 모든 3 x 3 행렬은 단 3개의 요소들로 표현할 수 있습니다.

오일러 각도는 말단 장치의 방향을 표현하기 위해 단 3개의 상호 독립적인 변수를 사용하며, 계산의 편의성을 보장합니다.

 

오일러 각도라고 하고, 이들 각각은 서로 독립적이고, 말단 장치의 방향을 결정합니다. 

(a) 좌표계는 먼저 z축을 기준으로 α각 만큼 회전

(b) 회전된 현재의 y2축을 기준으로 β각 만큼 다시 회전

(c) 마지막으로 회전된 현재의 z3축을 기준으로 γ각 만큼 회전

 

오일러 각도에 의한 말단 장치의 방향은 3개의 단순 회전행렬을 순차적으로 곱해주면 됩니다.

 

위의 주어진 회전행렬에서 오일러 각도들을 결정하는 반대의 경우도 수학적으로 유도 됩니다.

이고,

β의 범위가 (0, π)일 때

β의 범위가 (-π, 0)일 때

는 두 요소의 역 탄젠트 함수

 

인 경우(β=0,π) 위의 식들의 해는 구할 수 없습니다. 이때에는 α와 γ의 차만을 결정할 수 있습니다.

이 경우 α와 γ에 의한 연속적인 회전은 서로 평행한 회전된 축을 기준으로 한 것이며, 이는 동일한 회전을 한 결과를 나타냅니다. 

다음 식과 같은 경우,

입니다.

 


 

롤-피치-요(RPY) 각도


 

회전을 나타내기 위해 자주 사용하는 또 다른 방법으로, 롤-피치-요(RPY) 각도가 있습니다.

롤-피치-요 방향각: (a) 고정된 좌표축을 중심으로 한 회전 (b) 회전한 현재 좌표축을 중심으로 한 회전

 

기준 x(yaw)축으로 각 α만큼의 기준 축의 회전

기준 y(pitch)축으로 각 β만큼의 기준 축의 회전

기준 z(roll)축으로 각 θ만큼의 기준 축의 회전

 

 

 

  • 고정된 기준 축을 기준으로 하는 단순 회전들로부터 구하는 식

  • 현재의 회전하는 축을 기준으로 하는 상대적 단순 회전들로 구성한 식

역시 두 식은 같은 결과를 가지지만, 각 요소들의 실제 값들은 서로 다릅니다.

 

마찬가지로, 회전행렬로부터 역으로 회전각을 구할 수 있습니다.

β의 범위가 (-π/2, π/2)일 때

β의 범위가 (π/2, 3π/2)일 때

인 경우 해를 구할 수 없습니다. 이 경우에는 θ와 α의 합,차를 구하는것만 가능합니다.

이처럼 오일러 각도와 롤-피치-요 각도 표현 방법 모두에서 해를 구할수 없는 경우는 세가지의 독립 변수만으로 방향성을 표현하고자 하기 때문입니다. 이를 해결하기 위해 독립 변수를 하나 더 늘려서 방향성을 표현하는 수학적인 방법이 쿼터니언 방향각 표현방법입니다.


 

쿼터니언 방향각


 

네가지 변수를 사용하여 표현하는 쿼터니언 표기법은 말단 장치 좌표계의 방향을 나타내는데 주로 사용되는 4차원 벡터입니다.

은 스칼라 요소이며,

는 벡터 요소입니다.

 

단위 쿼터니언은 다음의 식과 같이 표현할 수 있습니다.

 

이로써 다음과 같은 특성을 가집니다.

따라서, 쿼터니언을 이용해 방향을 4차원 공간의 단위 구내의 한 점으로 표현할 수 있습니다.

오일러 변수들로 이루어진 회전행렬은 다음의 식과 같습니다.

 

오일러 변수들의 값은 다음과 같이 구할 수 있습니다.


  • 참고, 쿼터니언 방향각으로 회전행렬 구하기

 

임의의 축에 대한 회전


매니퓰레이터의 말단 장치 방향 경로를 위해 임의의 축으로 회전하는 것이 필요합니다.

가 좌표계에서 임의의 축을 결정하는 단위벡터일 때,

 

회전행렬을 구성하는 간단한 방법은 다음과 같습니다.

 

  • u를 z0와 겹치도록 나란히 만든다. 이는 z0축 기준 -α 회전과 y0축 기준 -β 회전을 수행한다.
  • z0축 기준 θ 만큼의 회전을 한다.
  • y0축 기준 β각, z0축 기준 α각 순으로 회전하여 u를 초기 방향으로 재배치 시킨다.

 

 

 

 

 

위의 결과는 다음과 같습니다.

단위 벡터의 속성을 이용하여 다음와 관계를 유도할 수 있습니다.

그럼 회전행렬 표현은,

 

예)

 


 

동차 변환 (homogeneous transformation)


 

좌표 변환을 나타내는, 간결한 형태를 가지는 동차변환을 설명하겠습니다.

 

 

p를 강체 상의 임의의 한 점이라고 할 때, 점 p의 좌표는 고정 좌표계 O-xyz에 대하여 다음과 같이 표현됩니다.

 

또 강체에 부착된 좌표계 O'-x'y'z'를 기준으로도 표현할 수 있습니다.

두 좌표계 간의 관계는 고정 좌표계 O-xyz와 강체 좌표계 O'-x'y'z'의 좌표 변환으로 정의할 수 있습니다. (R은 3x3 방향 코사인 행렬)

위 식은 양변에 R의 전치행렬을 곱하면 다음과 같이 간결하게 표현됩니다.

첫 번째 항은 이동 변환을 나타내고, 두 번째 항은 회전 변환을 나타냅니다.

동차 변환 행렬은 이동 변환과 회전 변환을 동시에 수행하는 간결성으로 인해 특별한 장점을 가집니다.

 

네번째 상수인 크기조정 상수 ω가 추가되면, 다음식과 같이 표현됩니다.

물리적 좌표는 동차 좌표와 다음의 관계성을 가집니다.

 

로봇 기구학에서는 이 크기 조정 상수가 변하지 않고 단위량 1을 가집니다.

 

동차 변환 행렬은 일반적으로 네 개의 부속 행렬이 모여 구성 됩니다.

좌상단 3 x 3 행렬 R은 두 좌표계 간의 방향 코사인 행렬을 나타내고, 우 상단의 3 x 1 행렬은 이동변환을 의미합니다.

좌하단 1 x 3은 투시 변환, 우하단 상수는 전역 크기 조정 상수입니다.

편의성을 위하여 동차 변환 행렬의 요소들에 다음과 같이 이름을 부여합니다.

투시 변환의 값들은 항상 0으로 고정하고 크기 조정 상수 값은 1로 고정한다.

이처럼 하나의 행렬 A로 표현하는 경우, 위치와 자세의 변환 연산을 행렬 연산으로 쉽게 처리할 수 있어 매우 편리합니다.

 

x, y, z 축에 대하여 θ각 회전을 수행하는 행렬을 다음 식과 같이 표현합니다.

 

p0 좌표로의 이동을 위한 동차 변화 행렬은 다음과 같습니다.

 

동차 좌표계와 동차 행렬을 이용하여 다음과 같이 표기할 수 있습니다.

A는 기준 좌표계 O-xyz에 대하여 좌표계 O'-x'y'z'의 위치와 방향 모두를 표현합니다. 위의 좌표 면환을 동차변환이라 부릅니다.

 

N번 좌표계로 부터 역순으로 0번 좌표계까지 N번의 순차적인 변환에 대해 고려할 수 있습니다.

N번 좌표계의 위치벡터는 다음의 식과 같이 변환 됩니다.

 

 좌표계 i - 1 에 대하여 좌표계 i의 위치와 방향을 나타내는 동차 변환 행렬

 

역 동차 변환의 식은 다음과 같습니다.

 

그리하여, 역행렬도 구할 수 있습니다.

 

 

 

그렇다면 px, py, pz 만큼 이동한 후, z축에 대하여 ψ 만큼 회전하고, y축에 대하여 θ 만큼 회전하고, x축에 대하여 Φ 만큼 회전한 점의 위치와 자세는 아래와 같이 변환 행렬 A로 표현할 수 있습니다.

위의 행렬 A로부터 오일러각(Φ, θ, ψ )은 다음과 같이 구해집니다.

a는 행렬 A의 원소

 

 

 

 

728x90
반응형