Real-time Services
ConnectRtControl
Connect to the robot controller via Real-time External Control.
Request:
string ip_address
uint32 port
Response:
bool success
Note
Real-time external control uses UDP/IP communication.
This channel is independent of the standard TCP/IP API and does not rely on API control authority.
For the integrated controller (v3), versions v3.2.2 and earlier can be reached at 192.168.137.50.
Caution
Currently, only one-to-one communication is supported (one external controller ↔ one robot controller).
DisconnectRtControl
Disconnect from Real-time External Control.
Request:
(None)
Response:
bool success
Note
All real-time control settings are reset on disconnect.
GetRtControlInputDataList
Return the list of input data supported by a specific version.
Request:
string version
Response:
bool success
string data
Input Data List
Parameter Name |
Data Type |
Description |
First Updated Controller Version |
---|---|---|---|
external_force_torque |
float[6] |
external force/torque sensor |
v1.0 |
external_digital_input |
uint16 |
external digital input (16 channel) |
v1.0 |
external_digital_output |
uint16 |
external digital output (16 channel) |
v1.0 |
external_analog_input |
float[6] |
external analog input (6 channel) |
v1.0 |
external_analog_output |
float[6] |
external analog output (6 channel) |
v1.0 |
GetRtControlInputVersionList
Return the list of Real-time External Control versions for input data.
Request:
(None)
Response:
bool success
string version
GetRtControlOutputDataList
Return the list of output data supported by a specific version.
Request:
string version
Response:
bool success
string data
Output Data List
Parameter Name |
Data Type |
Description |
First Updated Controller Version |
---|---|---|---|
time_stamp |
double |
timestamp at the moment of data acquisition [s] |
v1.0 |
actual_joint_position |
float64[6] |
actual joint position from incremental encoder at motor side (used for control) [deg] |
v1.0 |
actual_joint_position_abs |
float64[6] |
actual joint position from absolute encoder at link side (used for exact link position) [deg] |
v1.0 |
actual_joint_velocity |
float64[6] |
actual joint velocity from incremental encoder at motor side [deg/s] |
v1.0 |
actual_joint_velocity_abs |
float64[6] |
actual joint velocity from absolute encoder at link side [deg/s] |
v1.0 |
actual_tcp_position |
float64[6] |
actual TCP position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg] |
v1.0 |
actual_tcp_velocity |
float64[6] |
actual TCP velocity w.r.t. base coordinates [mm, deg/s] |
v1.0 |
actual_flange_position |
float64[6] |
actual flange position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg] |
v1.0 |
actual_flange_velocity |
float64[6] |
flange velocity w.r.t. base coordinates [mm, deg/s] |
v1.0 |
actual_motor_torque |
float64[6] |
actual motor torque applying gear ratio = gear_ratio × current2torque_constant × motor current [Nm] |
v1.0 |
actual_joint_torque |
float64[6] |
estimated joint torque by robot controller [Nm] |
v1.0 |
raw_joint_torque |
float64[6] |
calibrated joint torque sensor data |
v1.0 |
raw_force_torque |
float64[6] |
calibrated force/torque sensor data w.r.t. flange coordinates [N, Nm] |
v1.0 |
external_joint_torque |
float64[6] |
estimated joint torque [Nm] |
v1.0 |
external_tcp_force |
float64[6] |
estimated TCP force w.r.t. base coordinates [N, Nm] |
v1.0 |
target_joint_position |
float64[6] |
target joint position [deg] |
v1.0 |
target_joint_velocity |
float64[6] |
target joint velocity [deg/s] |
v1.0 |
target_joint_acceleration |
float64[6] |
target joint acceleration [deg/s^2] |
v1.0 |
target_motor_torque |
float64[6] |
target motor torque [Nm] |
v1.0 |
target_tcp_position |
float64[6] |
target TCP position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg] |
v1.0 |
target_tcp_velocity |
float64[6] |
target TCP velocity w.r.t. base coordinates [mm, deg/s] |
v1.0 |
jacobian_matrix |
float64[6][6] |
Jacobian matrix \(J(q)\) w.r.t. base coordinates |
v1.0 |
gravity_torque |
float64[6] |
gravity torque \(g(q)\) [Nm] |
v1.0 |
coriolis_matrix |
float64[6][6] |
Coriolis matrix \(C(q)\) [Nm·s] |
v1.0 |
mass_matrix |
float64[6][6] |
Mass matrix \(M(q)+B\) [Nm·s^2] |
v1.0 |
solution_space |
uint8 |
robot configuration |
v1.0 |
singularity |
float64 |
minimum singular value |
v1.0 |
operation_speed_rate |
float64 |
current operation speed rate (1–100 %) |
v1.0 |
joint_temperature |
float64[6] |
joint temperature (°C) |
v1.0 |
controller_digital_input |
uint16 |
controller digital input (16 channel) |
v1.0 |
controller_digital_output |
uint16 |
controller digital output (16 channel) |
v1.0 |
controller_analog_input_type |
uint8 |
controller analog input type (2 channel) |
v1.0 |
controller_analog_input |
float64[2] |
controller analog input (2 channel) |
v1.0 |
controller_analog_output_type |
uint8 |
controller analog output type (2 channel) |
v1.0 |
controller_analog_output |
float64[2] |
controller analog output (2 channel) |
v1.0 |
flange_digital_input |
uint8 |
flange digital input (A-Series: 2 channel, M/H-Series: 6 channel) |
v1.0 |
flange_digital_output |
uint8 |
flange digital output (A-Series: 2 channel, M/H-Series: 6 channel) |
v1.0 |
flange_analog_input |
float64[4] |
flange analog input (A-Series: 2 channel, M/H-Series: 4 channel) |
v1.0 |
external_encoder_strobe_count |
uint8[2] |
strobe count (increments by 1 when detecting setting edge) |
v1.0 |
external_encoder_count |
uint32[2] |
external encoder count |
v1.0 |
goal_joint_position |
float64[6] |
final goal joint position (reserved) |
v1.0 |
goal_tcp_position |
float64[6] |
final goal TCP position (reserved) |
v1.0 |
robot_mode |
uint8 |
ROBOT_MODE_MANUAL(0), ROBOT_MODE_AUTONOMOUS(1), ROBOT_MODE_MEASURE(2) |
v1.0 |
robot_state |
uint8 |
STATE_INITIALIZING(0), STATE_STANDBY(1), STATE_MOVING(2), STATE_SAFE_OFF(3), STATE_TEACHING(4), STATE_SAFE_STOP(5), STATE_EMERGENCY_STOP(6), STATE_HOMING(7), STATE_RECOVERY(8), STATE_SAFE_STOP2(9), STATE_SAFE_OFF2(10) |
v1.0 |
control_mode |
uint16 |
position control mode, torque mode |
v1.0 |
GetRtControlOutputVersionList
Return the list of Real-time External Control versions for output data.
Request:
(None)
Response:
bool success
string version
Output Data Version List
Output Data Version |
First Updated Controller Version |
---|---|
v1.0 |
V2.9 |
ReadDataRt
Read the real-time output data from the robot controller.
Request:
(None)
Response:
RobotStateRt data
SetAccjRt
Set the global joint acceleration limit used by real-time servo motion.
Request:
float64[6] acc # [deg/s^2]
Response:
bool success
Note
If the measured acceleration during servo motion exceeds the global limit, an info message is generated.
SetAccxRt
Set the global task acceleration limit used by real-time servo motion.
Request:
float64 trans # task linear acceleration limit [mm/s^2]
float64 rotation # task rotational acceleration limit [deg/s^2]
# if omitted, it is auto-calculated from the linear acceleration limit
Response:
bool success
Note
If the measured acceleration during servo motion exceeds the global limit, an info message is generated.
SetRtControlInput
Configure the input data stream (external controller → robot controller) for Real-time External Control.
Request:
string version # Input Data Version
float64 period # communication period [s], range: 0.001 ~ 1.0
int32 loss # if input data or servo commands are missed consecutively
# more than the configured loss count, the real-time link is disconnected.
# set to -1 to disable this check.
Response:
bool success
Note
period
currently supports 0.001 to 1.0 s.
SetRtControlOutput
Configure the output data stream (robot controller → external controller) for Real-time External Control.
Request:
string version # Output Data Version
float64 period # communication period [s], range: 0.001 ~ 1.0
int32 loss # loss count (currently unused)
Response:
bool success
Note
period
currently supports 0.001 to 1.0 s.loss
is currently not used.
SetVeljRt
Set the global joint velocity limit used by real-time servo motion.
Request:
float64[6] vel # joint velocity limit [deg/s]
Response:
bool success
Note
If the measured velocity during servo motion exceeds the global limit, an info message is generated.
SetVelxRt
Set the global task velocity limit used by real-time servo motion.
Request:
float64 trans # task linear velocity limit [mm/s]
float64 rotation # task rotational velocity limit [deg/s]
# if set to the sentinel value -10000, it is auto-calculated from the linear velocity limit
Response:
bool success
Note
If the measured velocity during servo motion exceeds the global limit, an info message is generated.
StartRtControl
Start sending/receiving the configured input/output data.
Request:
(None)
Response:
bool success
StopRtControl
Stop sending/receiving the configured input/output data.
Request:
(None)
Response:
bool success
WriteDataRt
Write real-time input data (external controller → robot controller). Intended for sensors, DIO/AIO, and other commands from an external controller.
Request:
float64[6] external_force_torque
int32 external_digital_input
int32 external_digital_output
float64[6] external_analog_input # external analog input (6 channel)
float64[6] external_analog_output # external analog output (6 channel)
Response:
bool success