ikin(pos, sol_space, ref)
기능
작업 공간내 기준 좌표계(ref)의 로봇 포즈에 상응하는 8개의 관절형상 중 지정한 관절형상(sol_space)에 해당하는 관절각도를 리턴합니다. sol_space에 DR_SOL_AUTO(255)를 지정할 시, 8가지의 관절조합형태 중, Home position(0,0,0,0,0,0)과 관절 공간 상에서 가장 가까운 (2-5축의 관절 공간의 L2 norm이 가장 작음) Solution Space로 이동합니다.
알아두기
- SW 버전 V2.9 이후, 본 기능을 사용할 때 로봇의 정확도가 보정이 된 경우 정확도 보정 알고리즘이 동작합니다. 정확도 수준은 옵션(iter_threshold)에 따라 조정이 가능합니다. 또한 로봇 자세에 따라서 최대 0.1초의 지연이 있을 수 있습니다.
- 로봇 각 모델 별로 알려진 보정 전 DH 파라미터 값에 해당하는 역기구학 해를 구하기 위해서는 ikin_norm() 명령어를 참조 하시기 바랍니다.
- ikin의 return posj 값을 thread를 사용하여 전역변수 업데이트 하는 경우, 'Lock'을 사용하여 전역변수의 충돌을 막으십시오.
인수
인수명 | 자료형 | 기본값 | 설명 |
pos | posx | - | posx 또는 position list |
list (float[6]) | |||
sol_space | int | - | solution space
|
ref | int | DR_BASE | reference coordinate
|
Robot configuration vs. solution space
Solution space | Binary | Shoulder | Elbow | Wrist |
0 | 000 | Lefty | Below | No Flip |
1 | 001 | Lefty | Below | Flip |
2 | 010 | Lefty | Above | No Flip |
3 | 011 | Lefty | Above | Flip |
4 | 100 | Righty | Below | No Flip |
5 | 101 | Righty | Below | Flip |
6 | 110 | Righty | Above | No Flip |
7 | 111 | Righty | Above | Flip |
| 255 | Auto Calculation (the smallest L2 norm in the joint space of axes 2-5) | |||
리턴
| 값 | 설명 |
|---|---|
posj | Joint space point |
예외
| 예외 | 설명 |
|---|---|
DR_Error (DR_ERROR_TYPE) | 인수들의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
DR_Error (DR_ERROR_RUNTIME) | C Extension 모듈 에러 발생 시 |
DR_Error (DR_ERROR_STOP) | 프로그램 강제 종료 시 |
예제
x1 = posx(370.9, 719.7, 651.5, 90, -180, 0)
q1 = ikin(x1, 2, DR_BASE) # 로봇끝단의 좌표가 x1이 되는 관절각 q1 (8가지 경우 중 첫번째), posj(0,0,0,0,0,0) 조인트 각도 기준
# q1=posj(60.3, 81.0, -60.4, -0.0, 159.4, -29.7) (M1013, tcp=(0,0,0)경우)
movej(q1,v=10,a=20)