multi_jog (Manual Mode)
This function performs simultaneous jog control for multiple task axes (X, Y, Z, Rx, Ry, Rz) of the robot in the controller. Unlike jog, which moves a single axis at a time, multi_jog allows coordinated manual motion by assigning velocity values for all six axes.
Definition
DRFLEx.h within class CDRFLEx, public section (line 758)
bool multi_jog(float fTargetPos[NUM_TASK], MOVE_REFERENCE eMoveReference, float fVelocity) {
return _multi_jog(_rbtCtrl, fTargetPos, eMoveReference, fVelocity);
};
Parameter
Parameter Name |
Data Type |
Default Value |
Description |
|---|---|---|---|
fTargetPos |
float[NUM_TASK] |
Velocity command array for each task axis. |
|
eMoveReference |
Coordinate system reference. |
||
fVelocity |
float |
Overall scaling factor for the combined jog velocity. |
Return
Value |
Description |
|---|---|
0 |
Error |
1 |
Success |
Example
#include "DRFLEx.h"
#include <thread>
#include <chrono>
using namespace DRAFramework;
int main() {
CDRFLEx drfl;
// (Assume connection, mode, and servo activation are completed)
// Scenario: Simultaneously move along +X and +Y to approach a target diagonally,
// then tilt the tool slightly in Rx, and finally retreat in the opposite direction.
// 1) Diagonal jog (+X, +Y) at 15% speed in BASE frame
float vel1[6] = {15.0f, 15.0f, 0.0f, 0.0f, 0.0f, 0.0f};
drfl.multi_jog(vel1, MOVE_REFERENCE_BASE, 1.0f);
std::this_thread::sleep_for(std::chrono::milliseconds(800));
drfl.multi_jog(vel1, MOVE_REFERENCE_BASE, 0.0f); // stop jogging
// 2) Small tool rotation in +Rx (5%) and -Ry (5%) for alignment
float vel2[6] = {0.0f, 0.0f, 0.0f, 5.0f, -5.0f, 0.0f};
drfl.multi_jog(vel2, MOVE_REFERENCE_TOOL, 1.0f);
std::this_thread::sleep_for(std::chrono::milliseconds(600));
drfl.multi_jog(vel2, MOVE_REFERENCE_TOOL, 0.0f); // stop rotation
// 3) Retreat diagonally (-X, -Y) for safety
float vel3[6] = {-10.0f, -10.0f, 0.0f, 0.0f, 0.0f, 0.0f};
drfl.multi_jog(vel3, MOVE_REFERENCE_BASE, 1.0f);
std::this_thread::sleep_for(std::chrono::milliseconds(500));
drfl.multi_jog(vel3, MOVE_REFERENCE_BASE, 0.0f);
return 0;
}
This example shows a diagonal and multi-axis teaching operation: the robot first jogs diagonally in the BASE frame, performs a small rotational correction in the TOOL frame, and finally executes a safe retreat motion. Each motion is maintained for a short duration and then halted by setting all target velocities to 0.