CDRFLEx.servol_rt
Features
This is a function that controls the task position from an external controller.
Caution
- The current servol_rt command is premature. Jerky motion may appear depending on the communication situation, so it is recommended to tune the target time (fTargetTime) and use it with a slow response speed, or use the speedl_rt command to control the position.
Parameter
Parameter Name | Data Type | Default Value | Description |
fTargetPos | float[6] | - | Target Task Position [mm, deg] (rotation: euler zyz) |
fTargetVel | float[6] | - | Target Task Velocity. [mm/s, deg/s]. If None values(-10000) entered, it is automatically calculated based on the target task position you entered. |
fTargetAcc | float[6] | - | Target Task Acceleration. [mm/s, deg/s] If None values(-10000) entered, it is automatically calculated based on the target task position you entered. |
fTargetTime | float | - | Target Time [s] |
Note
- Asnyc Command.
- The inner profile is interpolated to arrive at (fTargetPos, fTargetVel, fTargetAcc ) at fTargetTime .
- If fTargetTime <= controller’s control period (=1ms), control is performed at the corresponding velocity without interpolation.
- If the next command is not received until arriving at fTargetPos, it decelerates based on the set global acceleration limit value.
Caution
- The current servol_rt command is premature, so jerky motion may come out. Depending on the system situation, set fTargetTime to be larger than the communication period and use it. In the current version, it is recommended to use a setting larger than fTargetTime >= 20 [ms] or use speedl_rt to control the position based on calling the servol_rt command at an interval of 1 [ms].
- In the current version, it is not linked with Operation Speed [%].
- In the current version, it does not work with the force/compliance control function.
- In the current version, it does not work with DR_VAR_VEL among the singularity options. If set, it is automatically set to the DR_AVOID option.
Return
Value | Description |
0 | Error |
1 | Success |
Example
float fTargetPos[6] = {1500, 3, 100, 0, 0, 0};
float fTargetVel[6] = {100, 100, 100, 100, 100, 100};
float fTargetAcc[6] = {100, 100, 100, 100, 100, 100};
float fTargetTime = 6;
Drfl.servol_rt(fTargetPos, fTargetVel, fTargetAcc, fTargetTime);