3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

ikin_norm()

정의

ikin_norm(pos, sol_space, ref, ref_pos_opt)

기능

작업 공간내 기준 좌표계(ref)의 로봇 포즈에 상응하는 8개의 관절형상 중 지정한 관절형상(posx.sol)에 해당하는 관절각도를 리턴합니다. 관절각도는 옵션(ref_pos_opt)에 따라 기준 각도에 가장 가까운 값을 리턴합니다. 리턴 값 status를 통해 현재 로봇 포즈가 동작 영역을 벗어나는지 손목 축 특이점 영역에 있는지 확인 할 수 있습니다. posx.sol에 DR_SOL_AUTO(255)를 지정할 시, 도달 가능한 관절조합형태 중, 현재 robot configuration과 관절 공간 상에서 가장 가까운 (2-5축의 관절 공간의 L2 norm이 가장 작음) Solution Space로 이동합니다.

알아두기

  • SW 버전 V2.9 이후 로봇은 정확도 향상을 위해 DH 파라미터를 보정할 수 있으며, V2.10.1 버전 이후 출시되는 로봇은 정확도 향상을 위해 DH 파라미터가 보정되어 출시 됩니다.

  • 해당 명령어를 통해 로봇 각 모델 별로 알려진 보정 전 DH 파라미터 값에 해당하는 역기구학 해를 구할 수 있습니다.

  • 보정된 DH 파라미터에 해당 하는 역기구학 해를 구하기 위해서는 ikin() 명령어를 참조 하시기 바랍니다.

인수

인수명

자료형

기본값

설명

pos

posx

-

posx 또는

position list

list (float[6])

sol_space

int

-

solution space

  • None: 3.2부터는 사용하지 않음. (posx.sol 사용 권장)

  • 0~7: ~2.x drl 호환용.

  • DR_SOL_AUTO(255): ~2.x drl 호환용.

ref

int

DR_BASE

reference coordinate

  • DR_BASE : base coordinate

  • DR_WORLD : world coordinate

ref_pos_opt

int

0

멀티턴 해 생성시 옵션에 따른 기준 위치에 가까운 해 선택

  • 0 : posj(0,0,0,0,0,0) 조인트 각도 기준

  • 1 : 현재 조인트 각도 기준

Solution Space w.r.t. Robot Configuration

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

status

  • 0 : 조인트 값 정상 반환

  • 1 : 동작 영역을 벗어남

  • 2 : 손목 축 특이점

예외

예외

설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

인수의 값이 유효하지 않을 시

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시

예제

Python
## 2.x compatible code
x1 = posx(370.9, 719.7, 651.5, 90, -180, 0)
q1, status = ikin_norm(x1, 2, DR_BASE, ref_pos_opt=0) # 로봇끝단의 좌표가 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)

## 3.2~ code
x1 = posx(370.9, 719.7, 651.5, 90, -180, 0, sol=2)
q1, status = ikin_norm(x1, ref=DR_BASE, ref_pos_opt=0) # Joint angle q1 where the coordinate of the robot edge is x1 (second of 8 cases), reference joint position : 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)

관련 명령어