CDRFLEx.movel
Features
This is a function for moving the robot along a straight line to the target position (pos) within the task space in the robot controller.
Parameter
Parameter Name | Data Type | Default Value | Description |
fTargetPos | float[6] | - | Target TCP Position for six axes |
fTargetVel | float[2] | - | Linear Velocity, Angular Velocity |
fTargetAcc | float[2] | - | Linear Acceleration, Angular Acceleration |
fTargetTime | float | 0.f | Reach Time [sec] * If the time is specified, values are processed based on time, ignoring vel and acc. |
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
- If an argument is inputted to fTargetVel (e.g., fTargetVel ={30, 0}), the input argument corresponds to the linear velocity of the motion, while the angular velocity is determined proportionally to the linear velocity.
- If an argument is inputted to fTargetAcc (e.g., fTargetAcc ={60, 0}), the input argument corresponds to the linear acceleration of the motion, while the angular acceleration is determined proportionally to the linear acceleration.
- If fTargetTime is specified, values are processed based on fTargetTime, ignoring fTargetVel and fTargetAcc .
Caution
If the following motion is blended with the conditions of eBlendingType being BLENDING_SPEED_TYPE_DUPLICATE and fBlendingRadius>0, the preceding motion can be terminated after the following motion is terminated first when the remaining motion time, which is determined by the remaining distance, velocity, and acceleration of the preceding motion, is greater than the motion time of the following motion. Refer to the following image for more information.
Return
Value | Description |
0 | Error |
1 | Success |
Example
// CASE 1
float x1[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float tvel = { 50, 50 };
float tacc = { 100, 100 };
drfl.movel(x1, tvel, tacc);
// Moves to the x1 position with velocity 50(mm/sec) and acceleration 100(mm/sec2)
// CASE 2
float x1[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float tTime = 5;
drfl.movel(x1, 0, 0, tTime);
// Moves to the x1 position with a reach time of 5 sec.
// CASE 3
float x1[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float tvel = 50;
float tacc = 100;
drfl.movel(x1, tvel, tacc, 0, MOVE_MODE_RELATIVE, MOVE_REFERENCE_TOOL);
// Moves the robot from the start position to the relative position of x1 in the tool coordinate system
float x1[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float x2[6] = { 559, 434.5, 251.5, 0, 180, 0 };
float tvel = 50;
float tacc = 100;
float blending_radius = 100;
drfl.movel(x1, tvel, tacc, 0, MOVE_MODE_ABSOLUTE, MOVE_REFERENCE_BASE, blending_radius);