두 가지 광범위한 접근 방식이 있습니다.
- 엔드 이펙터 포즈가 제공된 분석 솔루션은 관절 좌표를 직접 계산합니다. 일반적으로 솔루션은 고유하지 않으므로 가능한 조인트 좌표 세트를 계산할 수 있습니다. 일부는 로봇이 환경 (또는 자체)에서 물건을 때리거나 특정 작업을 선택하는 데 도움이 될 수 있습니다. 팔꿈치를 위로 (또는 아래로) 또는 로봇이 팔을 몸통의 왼쪽 (또는 오른쪽)으로 갖도록하는 것이 좋습니다. 일반적으로 분석 솔루션을 얻는 데는 제약이 있으며, 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
그리고 우리가 시작한 변환과 동일한 지 확인합니다.
기타 자료 :