CDRFLEx.movejx
Features
This is a function for moving the robot to the target position (pos) within the joint space in the robot controller. Since the target position is inputted as a posx form in the task space, it moves in the same way as Movel. However, since this robot motion is performed in the joint space, it does not guarantee a linear path to the target position. In addition, one of eight types of joint combinations (robot configurations) corresponding to the task space coordinate system (posx) must be specified in iSolutionSpace (solution space). When 255 is entered into iSolutionSpace, 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 eight joint combination types.
Parameter
Parameter Name | Data Type | Default Value | Description |
fTargetPos | float[6] | - | Target TCP Position for six axes |
iSolutionSpace | unsigned char | - | joint combination shape (Refer to the below description) |
fTargetVel | float/float[6] | - | Velocity |
fTargetAcc | float/float[6] | - | Acceleration |
fTargetTime | float | 0.f | Reach Time [sec] |
eMoveMode | enum.MOVE_MODE | MOVE_MODE_ ABSOLUTE | Refer to the Definition of Constant and Enumeration Type |
eMoveReference | enum.MOVE_REFERENCE | MOVE_REFERENCE_BASE | Refer to the Definition of Constant and Enumeration Type |
fBlendingRadius | Float | 0.f | Radius for blending |
eBlendingType | enum.BLENDING_SPEED_TYPE | BLENDING_SPEED_TYPE_DUPLICATE | Refer to the Definition of Constant and Enumeration Type |
Note
- When fTargetTime is specified, values are processed based on fTargetTime, ignoring fTargetVel and fTargetAcc.
- Using blending in the preceding motion generates an error in the case of input with relative motion (eMoveMode = MOVE_MODE_ABSOLUTE), and it is recommended to blend using movej() or movel().
- Refer to the description of movej() and movel() for blending according to option eBlendingType and fTargetVel / fTargetAcc.
Robot configuration (Shape 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) |
Return
Value | Description |
0 | Error |
1 | Success |
Example
// CASE 1
float x1[6] = { 559, 34.5, 651.5, 0, 180, 0 };
float sol=2;
float jvel=10;
float jacc=20;
drfl.movejx(x1, sol, jvel, jacc);
// Move to the joint angle that corresponds to x1 and configuration with velocity 10(deg/sec)
//and acceleration 20(deg/sec2).
// CASE 2
float x1[6] = { 559, 34.5, 651.5, 0, 180, 0 };
float sol=2;
float jTime=5;
drfl.movejx(x1, sol, 0, 0, jTime);
// Moves to the joint angle that corresponds to x1 and configuration with a reach time of 5 sec.
// CASE 3
float x1[6] = { 559, 34.5, 651.5, 0, 180, 0 };
float x2[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float sol=2;
float jvel=10;
float jacc=20;
float blending_radius=50;
drfl.movejx(x1, sol, jvel, jacc, 0, MOVE_MODE_ABSOLUTE, blending_radius);
// Moves to the joint angle that corresponds to x1 and configuration and is set to execute the next motion
// when the distance from x1 location is 50 mm.
drfl.movejx(x2, sol, jvel, jacc, 0, MOVE_MODE_ABSOLUTE, 0,
BLENDING_SPEED_TYPE_DUPLICATE);
// blends with the last motion to move to the joint angle that corresponds to x2 and configuration.