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()

Definition

ikin_norm(pos, sol_space, ref, ref_pos_opt)

Features

This function returns the joint position corresponding to posx.sol, which is equivalent to the robot pose in the operating space, among 8 joint shapes. Joint position is returned according to closest joint position depend on option(ref_pos_opt). Through status of return value, you can check whether current robot pose is in wrist singularity or out of operating region. When DR_SOL_AUTO(255) is entered into posx.sol, it moves to robot configuration that is the closest to the current configuration, (the smallest L2 norm in the joint space of axes 2-5) among the reachable joint combination types. 

Note

  • After SW version V2.9, It is possible to correct robot DH parameters for improving accuracy. Robots after SW version V2.10.1 are released with calibrated DH parameters for improving accuracy.

  • This function returns inverse kinematics solution related to each robot model's well known nominal DH parameters before calibrated DH parameters. 

  • Refer to ikin() command to find the inverse kinematics solution related to calibrated DH parameters.

Parameters

Parameter Name

Data Type

Default Value

Description

pos

posx

-

posx or

position list

list (float[6])

sol_space

int

-

solution space

  • None: Not available for v3.x DRL Command (Recommend using posx.sol)

  • 0~7: Available for 2.x & 3.x DRL Command

  • DR_SOL_AUTO(255): Available for 2.x & 3.x DRL Command

ref

int

DR_BASE

reference coordinate

  • DR_BASE : base coordinate

  • DR_WORLD : world coordinate

ref_pos_opt

int

0

Determine closest joint position depend on option among multi turn solutions

  • 0 : posj(0,0,0,0,0,0) is reference 

  • 1 : current joint position is reference

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)

Return

Value

Description

posj

Joint space point

status

  • 0 : Return joint position

  • 1 : Out of workspace

  • 2 : In wrist singularity region

Exception

Exception

Description

DR_Error (DR_ERROR_TYPE)

Parameter data type error occurred

DR_Error (DR_ERROR_VALUE)

Parameter value is invalid

DR_Error (DR_ERROR_RUNTIME)

C extension module error occurred

DR_Error (DR_ERROR_STOP)

Program terminated forcefully

Example

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) # 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)

## 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)