Breadcrumbs

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)