For information on the latest version, please have a look at GL013301.
fkin (Manual Mode)
This section explains how to use fkin during Manual (Teach) operations. This function performs forward kinematics (FK) calculation — it converts a given set of joint angles [J1 … J6] into the corresponding Cartesian pose [X, Y, Z, Rx, Ry, Rz]. It is commonly used to verify taught joint configurations, visualize TCP position, or confirm the correctness of inverse kinematics calculations.
Typical usage
Compute the TCP or flange pose corresponding to a known set of joint values.
Validate that a manually entered or recorded joint pose leads to the expected Cartesian position.
Check forward/inverse kinematics consistency during calibration or debugging.
Log end-effector poses during joint-space motion teaching.
Note
This function performs only a mathematical computation and does not move the robot.
For the inverse process, use ikin.
Example: Compute Cartesian pose from joint angles
#include "DRFLEx.h"
#include <cstdio>
using namespace DRAFramework;
int main() {
CDRFLEx drfl;
// Preconditions:
// - Connection established (open_connection)
// - Manual (Teach) mode active
// Step 1. Define joint angles (degrees)
float jointAngles[NUM_JOINT] = {0.0f, -30.0f, 60.0f, 0.0f, 45.0f, 0.0f};
// Step 2. Compute forward kinematics in BASE frame
LPROBOT_POSE pPose = drfl.fkin(jointAngles, COORDINATE_SYSTEM_BASE);
// Step 3. Display result
if (pPose) {
printf("[FK Result] X=%.3f Y=%.3f Z=%.3f | Rx=%.3f Ry=%.3f Rz=%.3f\n",
pPose->_fX, pPose->_fY, pPose->_fZ,
pPose->_fRx, pPose->_fRy, pPose->_fRz);
} else {
printf("[FK Result] Calculation failed.\n");
}
return 0;
}
In this example, a predefined joint configuration is passed to fkin, which returns the TCP pose in the BASE coordinate system. It provides a quick way to visualize robot posture and numerically verify pose accuracy before commanding physical motion or recording the frame.
Tips
Ideal for pose verification, simulation, or frame calibration in Manual mode.
Use together with ikin to cross-check consistency between FK and IK results.
For TCP validation, compare FK output with get_current_posx.
Ensure units match (degrees for joint angles, millimeters for Cartesian coordinates).