amovel (Auto Mode)
As an asynchronous movel, it operates the same as the movel function except that it has no fBlendingRadius argument for blending. Because it is asynchronous, the command returns immediately when motion starts and executes the next line without waiting for the motion to terminate.
Definition
DRFLEx.h within class CDRFLEx, public section
bool amovel(float fTargetPos[NUM_TASK],
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
MOVE_REFERENCE eMoveReference = MOVE_REFERENCE_BASE,
BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
DR_MV_APP eAppType = DR_MV_APP_NONE) {
return _amovel(_rbtCtrl, fTargetPos, fTargetVel, fTargetAcc,
fTargetTime, eMoveMode, eMoveReference, eBlendingType, eAppType);
}
Parameter
Parameter Name |
Data Type |
Default Value |
Description |
|---|---|---|---|
fTargetPos |
float[6] |
Target TCP Position for six axes [mm, deg] |
|
fTargetVel |
float[2] |
Linear Velocity, Angular Velocity [mm/s, deg/s] |
|
fTargetAcc |
float[2] |
Linear Acceleration, Angular Acceleration [mm/s2, deg/s2] |
|
fTargetTime |
float |
|
Reach Time [sec] |
eMoveMode |
|
Refer to the Definition of Enumeration Type |
|
eMoveReference |
|
Refer to the Definition of Enumeration Type |
|
eBlendingType |
|
Refer to the Definition of Enumeration Type |
|
eAppType |
|
Refer to the Definition of Enumeration Type. Accepted but not sent to the controller. |
Return
Value |
Description |
|---|---|
0 |
Error |
1 |
Success |
Note
Returns false without a message when the robot is in STATE_EMERGENCY_STOP, STATE_SAFE_OFF, STATE_SAFE_OFF2, STATE_SAFE_STOP or STATE_SAFE_STOP2.
Example
#include <thread>
#include <chrono>
// D-out 2 seconds after the motion starts with x1
float x1[6] = { 559, 434.5, 651.5, 0, 180, 0 };
float tvel[2] = { 50, 50 };
float tacc[2] = { 100, 100 };
drfl.amovel(x1, tvel, tacc);
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
drfl.set_digital_output(GPIO_CTRLBOX_DIGITAL_INDEX_1, true);
This example starts an asynchronous linear TCP motion to pose x1, then toggles a digital output 2 seconds after motion start. Because it is asynchronous, program flow continues immediately after amovel() is issued.