amovej (Auto Mode)
As an asynchronous movej, this function operates the same as the movej function
except for not having the fBlendingRadius argument for blending.
Due to its asynchronous nature, the command returns immediately after motion starts,
allowing the next line of code to execute without waiting for the motion to complete.
Definition (Uniform Velocity/Acceleration)
DRFLEx.h within class CDRFLEx, public section (line 773)
bool amovej(float fTargetPos[NUM_JOINT],
float fTargetVel,
float fTargetAcc,
float fTargetTime = 0.f,
MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE) {
return _amovej(_rbtCtrl, fTargetPos, fTargetVel, fTargetAcc,
fTargetTime, eMoveMode, eBlendingType);
};
Parameter
Parameter Name |
Data Type |
Default Value |
Description |
|---|---|---|---|
fTargetPos |
float[6] |
Target joint location for six axes |
|
fTargetVel |
float |
Velocity applied uniformly to all joints [deg/s] |
|
fTargetAcc |
float |
Acceleration applied uniformly to all joints [deg/s2] |
|
fTargetTime |
float |
0.f |
Reach Time [sec] |
eMoveMode |
|
Refer to the Definition of Enumeration Type |
|
eBlendingType |
|
Refer to the Definition of Enumeration Type |
Definition (Per-Joint Velocity/Acceleration)
DRFLEx.h within class CDRFLEx, public section (line 774)
bool amovej(float fTargetPos[NUM_JOINT],
float fTargetVel[NUM_JOINT],
float fTargetAcc[NUM_JOINT],
float fTargetTime = 0.f,
MOVE_MODE eMoveMode = MOVE_MODE_ABSOLUTE,
BLENDING_SPEED_TYPE eBlendingType = BLENDING_SPEED_TYPE_DUPLICATE) {
return _amovej_ex(_rbtCtrl, fTargetPos, fTargetVel, fTargetAcc,
fTargetTime, eMoveMode, eBlendingType);
};
This overload allows specifying independent velocity and acceleration limits for each joint axis.
It internally calls _amovej_ex instead of _amovej.
Parameter
Parameter Name |
Data Type |
Default Value |
Description |
|---|---|---|---|
fTargetPos |
float[6] |
Target joint location for six axes |
|
fTargetVel |
float[6] |
Velocity limit for each joint axis [deg/s] |
|
fTargetAcc |
float[6] |
Acceleration limit for each joint axis [deg/s2] |
|
fTargetTime |
float |
0.f |
Reach Time [sec] |
eMoveMode |
|
Refer to the Definition of Enumeration Type |
|
eBlendingType |
|
Refer to the Definition of Enumeration Type |
Note
When
fTargetTimeis specified, motion is processed based onfTargetTimewhile ignoringfTargetVelandfTargetAcc.Refer to the motion description of movej for blending details according to
eBlendingTypeand velocity/acceleration settings.
Return
Value |
Description |
|---|---|
0 |
Error |
1 |
Success |
Example (Uniform Velocity/Acceleration)
// Example: Asynchronous joint-space motion with uniform vel/acc.
#include "DRFLEx.h"
using namespace DRAFramework;
int main() {
CDRFLEx drfl;
float q0[6] = { 0.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f };
float q1[6] = { 90.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f };
float q99[6] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
float jvel = 10.f; // Joint velocity [deg/s]
float jacc = 20.f; // Joint acceleration [deg/s^2]
// 1) Move to initial position synchronously
drfl.movej(q0, jvel, jacc);
// 2) Wait 3 seconds before next command
Sleep(3000);
// 3) Start asynchronous motion to q1 (no wait)
drfl.amovej(q1, jvel, jacc);
// 4) Wait for motion completion before next move
drfl.mwait();
// 5) Move to home position after synchronization
drfl.movej(q99, jvel, jacc);
return 0;
}
Example (Per-Joint Velocity/Acceleration)
// Example: Asynchronous joint-space motion with per-joint vel/acc.
#include "DRFLEx.h"
using namespace DRAFramework;
int main() {
CDRFLEx drfl;
float q0[6] = { 0.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f };
float q1[6] = { 90.0f, 0.0f, 90.0f, 0.0f, 90.0f, 0.0f };
float q99[6] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
float jvel[6] = { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f }; // Per-joint velocity [deg/s]
float jacc[6] = { 20.f, 20.f, 20.f, 20.f, 20.f, 20.f }; // Per-joint acceleration [deg/s^2]
// 1) Move to initial position synchronously
drfl.movej(q0, jvel, jacc);
// 2) Wait 3 seconds before next command
Sleep(3000);
// 3) Start asynchronous motion to q1 (no wait)
drfl.amovej(q1, jvel, jacc);
// 4) Wait for motion completion before next move
drfl.mwait();
// 5) Move to home position after synchronization
drfl.movej(q99, jvel, jacc);
return 0;
}
Both examples perform the same asynchronous joint-space motion sequence using amovej(), synchronized with mwait() before continuing.
The per-joint overload allows specifying independent velocity and acceleration limits for each axis,
which is useful when joints travel different angular distances.