For information on the latest version, please have a look at GL013301.
RT_OUTPUT_DATA_LIST
This structure provides real-time robot state data transmitted from the controller to the external PC during Realtime External Control. It contains comprehensive motion, torque, and I/O information of the robot.
BYTE# |
Field Name |
Data Type |
Value |
Remarks |
|---|---|---|---|---|
0 |
|
|
Timestamp at data acquisition (s) |
|
8 |
|
|
[deg] |
Joint position (motor-side incremental encoder) |
32 |
|
|
[deg] |
Joint position (link-side absolute encoder) |
56 |
|
|
[deg/s] |
Joint velocity (motor-side) |
80 |
|
|
[deg/s] |
Joint velocity (link-side) |
104 |
|
|
[mm, deg] |
TCP position (x, y, z, a, b, c) |
128 |
|
|
[mm/s, deg/s] |
TCP velocity (in base coordinates) |
152 |
|
|
[mm, deg] |
Flange position (in base coordinates) |
176 |
|
|
[mm/s, deg/s] |
Flange velocity (in base coordinates) |
200 |
|
|
[Nm] |
Motor torque (applied with gear ratio) |
224 |
|
|
[Nm] |
Estimated joint torque |
248 |
|
|
[Nm] |
Raw torque sensor values (calibrated) |
272 |
|
|
[N, Nm] |
Force/Torque sensor data (flange coordinates) |
296 |
|
|
[Nm] |
Estimated external torque per joint |
320 |
|
|
[N, Nm] |
External TCP force (in base coordinates) |
344 |
|
|
[deg] |
Target joint position |
368 |
|
|
[deg/s] |
Target joint velocity |
392 |
|
|
[deg/s²] |
Target joint acceleration |
416 |
|
|
[Nm] |
Target motor torque |
440 |
|
|
[mm, deg] |
Target TCP position |
464 |
|
|
[mm/s, deg/s] |
Target TCP velocity |
488 |
|
|
Jacobian matrix J(q) |
|
632 |
|
|
[Nm] |
Gravity torque g(q) |
656 |
|
|
Coriolis matrix C(q, q̇) |
|
800 |
|
|
Mass matrix M(q) |
|
944 |
|
|
Robot configuration (solution space) |
|
946 |
|
|
Minimum singular value |
|
950 |
|
|
[%] |
Current speed ratio |
954 |
|
|
[°C] |
Joint temperature |
978 |
|
|
Controller DI (16-channel) |
|
980 |
|
|
Controller DO (16-channel) |
|
982 |
|
|
Controller AI type |
|
984 |
|
|
[V/mA] |
Controller analog inputs |
992 |
|
|
Controller AO type |
|
994 |
|
|
[V/mA] |
Controller analog outputs |
1002 |
|
|
Flange DI |
|
1003 |
|
|
Flange DO |
|
1004 |
|
|
[V/mA] |
Flange analog input channels |
1020 |
|
|
Encoder strobe event count |
|
1022 |
|
|
External encoder pulse counts |
|
1030 |
|
|
[deg] |
Reserved for final goal joint |
1054 |
|
|
[mm, deg] |
Reserved for final goal TCP |
1078 |
|
|
0~2 |
Robot mode |
1079 |
|
|
0~9 |
Operation state (Standby, Moving, etc.) |
1080 |
|
|
Servo mode (Position, Torque) |
|
1082 |
|
|
Reserved bytes for future expansion |
Total size: 1,024 bytes
Defined in: DRFS.h
typedef struct _RT_OUTPUT_DATA_LIST
{
/* timestamp at the data of data acquisition */
double time_stamp;
/* actual joint position from incremental encoder at motor side(used for control) [deg] */
float actual_joint_position[NUMBER_OF_JOINT];
/* actual joint position from absolute encoder at link side (used for exact link position) [deg] */
float actual_joint_position_abs[NUMBER_OF_JOINT];
/* actual joint velocity from incremental encoder at motor side [deg/s] */
float actual_joint_velocity[NUMBER_OF_JOINT];
/* actual joint velocity from absolute encoder at link side [deg/s] */
float actual_joint_velocity_abs[NUMBER_OF_JOINT];
/* actual robot tcp position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg] */
float actual_tcp_position[NUM_TASK];
/* actual robot tcp velocity w.r.t. base coordinates [mm, deg/s] */
float actual_tcp_velocity[NUMBER_OF_TASK];
/* actual robot flange position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg] */
float actual_flange_position[NUMBER_OF_TASK];
/* robot flange velocity w.r.t. base coordinates [mm, deg/s] */
float actual_flange_velocity[NUMBER_OF_TASK];
/* actual motor torque applying gear ratio = gear_ratio * current2torque_constant * motor current [Nm] */
float actual_motor_torque[NUMBER_OF_JOINT];
/* estimated joint torque by robot controller [Nm] */
float actual_joint_torque[NUMBER_OF_JOINT];
/* calibrated joint torque sensor data [Nm] */
float raw_joint_torque[NUMBER_OF_JOINT];
/* calibrated force torque sensor data w.r.t. flange coordinates [N, Nm] */
float raw_force_torque[NUMBER_OF_JOINT];
/* estimated external joint torque [Nm] */
float external_joint_torque[NUMBER_OF_JOINT];
/* estimated tcp force w.r.t. base coordinates [N, Nm] */
float external_tcp_force[NUMBER_OF_TASK];
/* target joint position [deg] */
float target_joint_position[NUMBER_OF_JOINT];
/* target joint velocity [deg/s] */
float target_joint_velocity[NUMBER_OF_JOINT];
/* target joint acceleration [deg/s^2] */
float target_joint_acceleration[NUMBER_OF_JOINT];
/* target motor torque [Nm] */
float target_motor_torque[NUMBER_OF_JOINT];
/* target tcp position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg] */
float target_tcp_position[NUMBER_OF_TASK];
/* target tcp velocity w.r.t. base coordinates [mm, deg/s] */
float target_tcp_velocity[NUMBER_OF_TASK];
/* jacobian matrix=J(q) w.r.t. base coordinates */
float jacobian_matrix[NUMBER_OF_JOINT][NUMBER_OF_JOINT];
/* gravity torque=g(q) [Nm] */
float gravity_torque[NUMBER_OF_JOINT];
/* coriolis matrix=C(q,q_dot) */
float coriolis_matrix[NUMBER_OF_JOINT][NUMBER_OF_JOINT];
/* mass matrix=M(q) */
float mass_matrix[NUMBER_OF_JOINT][NUMBER_OF_JOINT];
/* robot configuration */
unsigned short solution_space;
/* minimum singular value */
float singularity;
/* current operation speed rate(1~100 %) */
float operation_speed_rate;
/* joint temperature(celsius) */
float joint_temperature[NUMBER_OF_JOINT];
/* controller digital input(16 channel) */
unsigned short controller_digital_input;
/* controller digital output(16 channel) */
unsigned short controller_digital_output;
/* controller analog input type(2 channel) */
unsigned char controller_analog_input_type[2];
/* controller analog input(2 channel) */
float controller_analog_input[2];
/* controller analog output type(2 channel) */
unsigned char controller_analog_output_type[2];
/* controller analog output(2 channel) */
float controller_analog_output[2];
/* flange digital input(A-Series: 2 channel, M/H-Series: 6 channel) */
unsigned char flange_digital_input;
/* flange digital output(A-Series: 2 channel, M/H-Series: 6 channel) */
unsigned char flange_digital_output;
/* flange analog input(A-Series: 2 channel, M/H-Series: 4 channel) */
float flange_analog_input[4];
/* strobe count(increased by 1 when detecting setting edge) */
unsigned char external_encoder_strobe_count[2];
/* external encoder count */
unsigned int external_encoder_count[2];
/* final goal joint position (reserved) */
float goal_joint_position[NUMBER_OF_JOINT];
/* final goal tcp position (reserved) */
float goal_tcp_position[NUMBER_OF_TASK];
/* ROBOT_MODE_MANUAL(0), ROBOT_MODE_AUTONOMOUS(1), SAFETY_MODE_RECOVERY(2)*/
/* Refer to 'SAFETY_MODE' struct*/
unsigned char robot_mode;
/* STATE_INITIALIZING(0), STATE_STANDBY(1), STATE_MOVING(2), STATE_SAFE_OFF(3), STATE_TEACHING(4), STATE_SAFE_STOP(5), STATE_EMERGENCY_STOP, STATE_HOMMING, STATE_RECOVERY, STATE_SAFE_STOP2, STATE_SAFE_OFF2, */
/* Refer to 'OPERATION_STATE' struct in DRCF 'ROBOT_STATE' struct in DRFL.*/
unsigned char robot_state;
/* position control mode, torque mode */
/* Refer to 'SERVO_MODE' struct*/
unsigned short control_mode;
/* Reserved */
unsigned char reserved[256];
} RT_OUTPUT_DATA_LIST, *LPRT_OUTPUT_DATA_LIST;
Note
Provides all robot dynamic and sensor data in real-time.
Used for external torque control, compliance, and RT logging.
Transmitted at high frequency (default: 1 kHz) via UDP during Realtime Control.
All positions and torques follow SI units (mm, deg, N, Nm).