역 운동학 문제를 어떻게 해결할 수 있습니까?


20

로봇 암의 운동학을 쉽게 해결할 수 있습니다. Denavit–Hartenberg 변환 행렬을 사용하여 각 관절을 나타낼 수 있습니다 .

예를 들어, 조인트가 선형 액추에이터 인 경우 변형 행렬이있을 수 있습니다.ith

D의 난을Ti=[10000100001di0001] 여기서 확장 길이는 로 정의됩니다.di

반면 회전 링크는 다음과 같습니다.

α L을Ti=[100L0cosαisinαi00sinαicosαi00001] 여기서 는 각도이며 은 링크의 길이입니다.αL

그런 다음 모든 변환 행렬을 곱하여 엔드 이펙터의 위치와 방향을 찾을 수 있습니다 : .Ti

문제는 우리가 어떻게 역 문제를 해결 하는가입니다.

수학적으로 원하는 엔드 이펙터 위치 경우 매개 변수 , 를 찾아 입니다. 이 방정식을 풀기 위해 어떤 방법이 있습니까?d i α iT i = MMdiαiTi=M

답변:


11

내가 학습을하던 시절,이 과정을 진행하면서 IK 문제를 해결하기 위해 간단한 그라디언트를 사용했습니다.

모델에서 각 조인트를 각 조인트를 약간 회전 시켜서 종점 위치 오차에 얼마나 큰 차이가 있는지 확인하십시오. 그런 다음 각 관절을 그 이점에 비례하는 양만큼 회전시킵니다. 그런 다음 충분히 가까워 질 때까지 반복해서 반복합니다.

일반적으로 그라디언트 다음 또는 언덕 다음으로 알려져 있습니다. 자유도가 2 인 로봇 팔을 상상해보십시오.

IK

회전 조인트 A 가 조금씩 끝점을 a 방향으로 이동시킵니다 . 회전 조인트 B 를 약간 회전 시키면 끝 점이 b 방향으로 이동합니다 . 이 두 가지가 우리를 거의 같은 양만큼 목표에 가깝게 이동 시키므로 두 관절을 거의 같은 속도로 회전시켜야합니다.

목표까지의 거리와 관절 각도까지의 그래프를 그리면 다음과 같습니다.

IK

나는 단지 도움을주기 위해 일부 윤곽선을 채색했습니다. 이 알고리즘의 경로를 볼 수 있습니다. 주목할 것은 관절 공간에서 경로가 최적으로 보이지 않는다는 것입니다. 곡선이 필요합니다. 그러나 실제 공간에서는 끝 점이 대상과 상당히 직선을 이룹니다. 실제로 문제에 대한 두 가지 해결책이 있으며 알고리즘이 가장 가까운 것을 발견했습니다.

이것이 역 운동학 문제를 해결하는 유일한 방법은 아닙니다. 가장 좋은 방법은 아닙니다.

장점 :

  • 개념적으로 간단하므로 배우는 것이 좋습니다.
  • Denavit–Hartenberg 변환 매트릭스의 광경이 당신에게 공포감을 줄지라도 구현하기 쉽습니다.
  • 엔드 포인트가 어떻게 움직이는 지 추정 할 수있는 한 모든 종류의 조인트 (회전, 선형 등)를 사용할 수있는 것은 매우 일반적입니다.
  • 솔루션이 없거나 무한한 경우에도 잘 대처합니다.

단점 :

  • 솔루션을 찾기 위해 많은 반복이 필요합니다. 그러나 계산할 때 실제 팔이 알고리즘의 진행 상황을 따르도록 할 수 있다면 좋습니다.
  • 지역 최소에 갇힐 수 있습니다. IE 좋은 해결책을 찾으면 최상의 해결책을 찾지 못할 수도 있습니다.

저의 아주 오래된 웹 사이트에 자세한 내용이 있습니다 : 잘 짜여진 질감 광원 탄력성 재미 있고 신축성있는 페이지 .



1

두 가지 광범위한 접근 방식이 있습니다.

  • 엔드 이펙터 포즈가 제공된 분석 솔루션은 관절 좌표를 직접 계산합니다. 일반적으로 솔루션은 고유하지 않으므로 가능한 조인트 좌표 세트를 계산할 수 있습니다. 일부는 로봇이 환경 (또는 자체)에서 물건을 때리거나 특정 작업을 선택하는 데 도움이 될 수 있습니다. 팔꿈치를 위로 (또는 아래로) 또는 로봇이 팔을 몸통의 왼쪽 (또는 오른쪽)으로 갖도록하는 것이 좋습니다. 일반적으로 분석 솔루션을 얻는 데는 제약이 있으며, 6 축 로봇의 경우 구형 손목 (모든 축이 교차)이 가정됩니다. 다양한 유형의 로봇에 대한 분석 솔루션이 수십 년 동안 계산되었으며 로봇에 대한 솔루션을 제공하는 논문을 찾을 수 있습니다.
  • 다른 답변에서 설명한 것처럼 수치 솔루션은 최적화 방법을 사용하여 정역학이 올바른 솔루션을 제공 할 때까지 관절 좌표를 조정합니다. 다시 말하지만, 이것에 대한 거대한 문헌과 많은 소프트웨어가 있습니다.

MATLAB 용 Robotics Toolbox를 사용하여 Denavit-Hartenberg 매개 변수를 사용하여 잘 알려진 6 축 로봇 모델을 만듭니다.

>> mdl_puma560
>> p560

p560 = 

Puma 560 [Unimation]:: 6 axis, RRRRRR, stdDH, fastRNE            
 - viscous friction; params of 8/95;                             
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|          0|          0|     1.5708|          0|
|  2|         q2|          0|     0.4318|          0|          0|
|  3|         q3|    0.15005|     0.0203|    -1.5708|          0|
|  4|         q4|     0.4318|          0|     1.5708|          0|
|  5|         q5|          0|          0|    -1.5708|          0|
|  6|         q6|          0|          0|          0|          0|
+---+-----------+-----------+-----------+-----------+-----------+

그런 다음 임의의 관절 좌표를 선택하십시오

>> q = rand(1,6)
q =
    0.7922    0.9595    0.6557    0.0357    0.8491    0.9340

다음 순 운동학을 계산

>> T = p560.fkine(q)
T = 
   -0.9065    0.0311   -0.4210  -0.02271
    0.2451    0.8507   -0.4649   -0.2367
    0.3437   -0.5247   -0.7788    0.3547
         0         0         0         1

이제 우리는 6 개의 관절과 구형 손목이있는 로봇을 위해 공개 된 분석 솔루션을 사용하여 역 운동학을 계산할 수 있습니다

>> p560.ikine6s(T)
ans =
    0.7922    0.9595    0.6557    0.0357    0.8491    0.9340

그리고 짜잔, 우리는 원래 관절 좌표를 가지고 있습니다.

수치 솔루션

>> p560.ikine(T)
Warning: ikine: rejected-step limit 100 exceeded (pose 1), final err 0.63042 
> In SerialLink/ikine (line 244) 
Warning: failed to converge: try a different initial value of joint coordinates 
> In SerialLink/ikine (line 273) 

ans =

     []

실패했으며 일반적으로 좋은 초기 솔루션이 필요하기 때문에 일반적인 문제입니다. 해보자

>> p560.ikine(T, 'q0', [1 1 0 0 0 0])
ans =
    0.7922    0.9595    0.6557    0.0357    0.8491    0.9340

이제 답변을 제공하지만 분석 솔루션과 다릅니다. IK 문제에 대한 여러 가지 해결책이 있기 때문에 괜찮습니다. 순 운동학을 계산하여 솔루션이 올바른지 확인할 수 있습니다

>> p560.fkine(ans)
ans = 
   -0.9065    0.0311   -0.4210  -0.02271
    0.2451    0.8507   -0.4649   -0.2367
    0.3437   -0.5247   -0.7788    0.3547
         0         0         0         1

그리고 우리가 시작한 변환과 동일한 지 확인합니다.

기타 자료 :


0

6DOF가있는 로봇의 역 운동학을 계산하려면 파이퍼 솔루션을 사용하는 것이 좋습니다 .6 개의 자유도가 있고 3 개의 축이 교차하는 로봇이 있으면 사용할 수 있다고 말했습니다. 내가 당신을 도울 수있는 도움이 필요한 경우 쉽게 증명할 수있는 간단한 증거가 있습니다


증거에 대한 자세한 내용을 알려주시겠습니까?
50k4

Robotics Parhamsagharichiha에 오신 것을 환영합니다 . 귀하의 답변에 감사 드리지만 설명과 맥락을 제공하는 포괄적 인 답변을 찾고 있습니다. 단선 답변으로는이를 수행 할 수 없으므로 답을 수정하여 이상적으로 인용에 적합한 이유를 설명하십시오. 설명이 포함되지 않은 답변은 제거 될 수 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.