You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at jazzy.

Topics

This section describes the various ROS2 Topics used in the Doosan Robotics package, detailing the structure of their messages.

RobotState

Provides the current state of the robot.

dsr_msgs2/msg/RobotState.msg
# timestamp at the data of data acquisition
float64                      time_stamp
# actual joint position from incremental encoder at motor side(used for control) [deg]
float64[6]                   actual_joint_position
# actual joint position from absolute encoder at link side (used for exact link position) [deg]
float64[6]                   actual_joint_position_abs
# actual joint velocity from incremental encoder at motor side [deg/s]
float64[6]                   actual_joint_velocity
# actual joint velocity from absolute encoder at link side [deg/s]
float64[6]                   actual_joint_velocity_abs
# 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]
float64[6]                   actual_tcp_position
# actual robot tcp velocity w.r.t. base coordinates [mm, deg/s]
float64[6]                   actual_tcp_velocity
# 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]
float64[6]                   actual_flange_position
# robot flange velocity w.r.t. base coordinates [mm, deg/s]
float64[6]                   actual_flange_velocity
# actual motor torque applying gear ratio = gear_ratio * current2torque_constant * motor current [Nm]
float64[6]                   actual_motor_torque
# estimated joint torque by robot controller [Nm]
float64[6]                   actual_joint_torque
# calibrated joint torque sensor data [Nm]
float64[6]                   raw_joint_torque
# calibrated force torque sensor data w.r.t. flange coordinates [N, Nm]
float64[6]                   raw_force_torque
# estimated external joint torque [Nm]
float64[6]                   external_joint_torque
# estimated tcp force w.r.t. base coordinates [N, Nm]
float64[6]                   external_tcp_force
# target joint position [deg]
float64[6]                   target_joint_position
# target joint velocity [deg/s]
float64[6]                   target_joint_velocity
# target joint acceleration [deg/s^2]
float64[6]                   target_joint_acceleration
# target motor torque [Nm]
float64[6]                   target_motor_torque
# target tcp position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg]
float64[6]                   target_tcp_position
# target tcp velocity w.r.t. base coordinates [mm, deg/s]
float64[6]                   target_tcp_velocity
# jacobian matrix=J(q) w.r.t. base coordinates
std_msgs/Float64MultiArray[] jacobian_matrix
# gravity torque=g(q) [Nm]
float64[6]                   gravity_torque
# coriolis matrix=C(q,q_dot)  [6][6]
std_msgs/Float64MultiArray[] coriolis_matrix
# mass matrix=M(q) [6][6]
std_msgs/Float64MultiArray[] mass_matrix
# robot configuration
uint16                       solution_space
# minimum singular value
float64                      singularity
# current operation speed rate(1~100 %)
float64                      operation_speed_rate
# joint temperature(celsius)
float64[6]                   joint_temperature
# controller digital input(16 channel)
uint16                       controller_digital_input
# controller digital output(16 channel)
uint16                       controller_digital_output
# controller analog input type(2 channel)
uint8[2]                      controller_analog_input_type
# controller analog input(2 channel)
float64[2]                   controller_analog_input
# controller analog output type(2 channel)
uint8[2]                     controller_analog_output_type
# controller analog output(2 channel)
float64[2]                   controller_analog_output
# flange digital input(A-Series: 2 channel, M/H-Series: 6 channel)
uint8                        flange_digital_input
# flange digital output(A-Series: 2 channel, M/H-Series: 6 channel)
uint8                        flange_digital_output
# flange analog input(A-Series: 2 channel, M/H-Series: 4 channel)
float64[4]                   flange_analog_input
# strobe count(increased by 1 when detecting setting edge)
uint8[2]                     external_encoder_strobe_count
# external encoder count
uint16[2]                    external_encoder_count
# final goal joint position (reserved)
float64[6]                   goal_joint_position
# final goal tcp position (reserved)
float64[6]                   goal_tcp_position
# ROBOT_MODE_MANUAL(0), ROBOT_MODE_AUTONOMOUS(1), ROBOT_MODE_MEASURE(2)
uint8                        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,
uint8                        robot_state
# position control mode, torque mode
uint16                       control_mode
# Reserved
uint8[256]                   reserved

RobotStop

Provides information about the robot’s stop mode.

dsr_msgs2/msg/RobotStop.msg
#____________________________________________________________________________________________
# [ robot stop mode ]
# 0 : STOP_TYPE_QUICK_STO
# 1 : STOP_TYPE_QUICK
# 2 : STOP_TYPE_SLOW
# 3 : STOP_TYPE_HOLD = STOP_TYPE_EMERGENCY
#
#____________________________________________________________________________________________

int32 stop_mode

RobotError

Provides information about robot errors.

dsr_msgs2/msg/RobotError.msg
#____________________________________________________________________________________________
# [ robot error msg ]
#____________________________________________________________________________________________

int32    level   # INFO =1, WARN =2, ERROR =3
int32    group   # SYSTEM =1, MOTION =2, TP =3, INVERTER =4, SAFETY_CONTROLLER =5
int32    code    # error code
string    msg1    # error msg 1
string    msg2    # error msg 2
string    msg3    # error msg 3

LogAlarm

Provides log information for alarms.

dsr_msgs2/msg/LogAlarm.msg
#____________________________________________________________________________________________
# log of alarm
#____________________________________________________________________________________________

int32         level
int32         group
int32         index
string[3]     param

ModbusState

Provides the state of Modbus signals.

dsr_msgs2/msg/ModbusState.msg
#____________________________________________________________________________________________
#Custom msg for RobotState.msg -- MAX_SIZE = 100
#____________________________________________________________________________________________

string  modbus_symbol    # Modbus Signal Name
int32   modbus_value     # Modbus Register Value (Unsigned : 0 ~ 65535)

JogMultiAxis

Provides information for multi-axis jogging.

dsr_msgs2/msg/JogMultiAxis.msg
#____________________________________________________________________________________________
# multi jog
# multi jog speed = (250mm/s x 1.73) x unit vecter x speed [%]
#____________________________________________________________________________________________

float64[6]  jog_axis          # unit vecter of Task space [Tx, Ty, Tz, Rx, Ry, Rz] : -1.0 ~ +1.0
int8        move_reference    # 0 : MOVE_REFERENCE_BASE, 1 : MOVE_REFERENCE_TOOL, 2 : MOVE_REFERENCE_WORLD
float64     speed             # jog speed [%]

ServojRtStream

Provides real-time stream data for Servoj.

dsr_msgs2/msg/ServojRtStream.msg
#____________________________________________________________________________________________
# servoj_rt
#
#____________________________________________________________________________________________

float64[6] pos               # position
float64[6] vel               # velocity
float64[6] acc               # acceleration
float64    time              # time

ServojStream

Provides stream data for Servoj.

dsr_msgs2/msg/ServojStream.msg
#____________________________________________________________________________________________
# servoj
#
#____________________________________________________________________________________________

float64[6] pos               # position
float64[6] vel               # velocity
float64[6] acc               # acceleration
float64    time              # time
int8       mode              # servoj mode; 0:DR_SERVO_OVERRIDE, 1:DR_SERVO_QUEUE

ServolRtStream

Provides real-time stream data for Servol.

dsr_msgs2/msg/ServolRtStream.msg
#____________________________________________________________________________________________
# servol_rt
#
#____________________________________________________________________________________________

float64[6] pos               # position
float64[6] vel               # velocity
float64[6] acc               # acceleration
float64    time              # time

ServolStream

Provides stream data for Servol.

dsr_msgs2/msg/ServolStream.msg
#____________________________________________________________________________________________
# servol
#
#____________________________________________________________________________________________

float64[6] pos               # position
float64[2] vel               # velocity
float64[2] acc               # acceleration
float64    time              # time

SpeedjRtStream

Provides real-time stream data for Speedj.

dsr_msgs2/msg/SpeedjRtStream.msg
#____________________________________________________________________________________________
# speedj_rt
#
#____________________________________________________________________________________________

float64[6] vel               # velocity
float64[6] acc               # acceleration
float64    time              # time

SpeedjStream

Provides stream data for Speedj.

dsr_msgs2/msg/SpeedjStream.msg
#____________________________________________________________________________________________
# speedj
#
#____________________________________________________________________________________________

float64[6] vel               # velocity
float64[6] acc               # acceleration
float64    time              # time

SpeedlRtStream

Provides real-time stream data for Speedl.

dsr_msgs2/msg/SpeedlRtStream.msg
#____________________________________________________________________________________________
# speedl_rt
#
#____________________________________________________________________________________________

float64[6] vel               # velocity
float64[6] acc               # acceleration
float64    time              # time

SpeedlStream

Provides stream data for Speedl.

dsr_msgs2/msg/SpeedlStream.msg
#____________________________________________________________________________________________
# speedl
#
#____________________________________________________________________________________________

float64[6] pos               # position
float64[2] vel               # velocity
float64[2] acc               # acceleration
float64    time              # time

TorqueRtStream

Provides real-time stream data for Torque.

dsr_msgs2/msg/TorqueRtStream.msg
#____________________________________________________________________________________________
# torque_rt
#
#____________________________________________________________________________________________

float64[6] tor               # motor torque
float64    time              # time

AlterMotionStream

Provides stream data for AlterMotion.

dsr_msgs2/msg/AlterMotionStream.msg
#____________________________________________________________________________________________
# alter_motion
#
#____________________________________________________________________________________________

float64[6] pos               # position

RobotStateRt

Provides real-time robot state data.

dsr_msgs2/msg/RobotStateRt.msg
# timestamp at the data of data acquisition
float64                      time_stamp
# actual joint position from incremental encoder at motor side(used for control) [deg]
float64[6]                   actual_joint_position
# actual joint position from absolute encoder at link side (used for exact link position) [deg]
float64[6]                   actual_joint_position_abs
# actual joint velocity from incremental encoder at motor side [deg/s]
float64[6]                   actual_joint_velocity
# actual joint velocity from absolute encoder at link side [deg/s]
float64[6]                   actual_joint_velocity_abs
# 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]
float64[6]                   actual_tcp_position
# actual robot tcp velocity w.r.t. base coordinates [mm, deg/s]
float64[6]                   actual_tcp_velocity
# 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]
float64[6]                   actual_flange_position
# robot flange velocity w.r.t. base coordinates [mm, deg/s]
float64[6]                   actual_flange_velocity
# actual motor torque applying gear ratio = gear_ratio * current2torque_constant * motor current [Nm]
float64[6]                   actual_motor_torque
# estimated joint torque by robot controller [Nm]
float64[6]                   actual_joint_torque
# calibrated joint torque sensor data [Nm]
float64[6]                   raw_joint_torque
# calibrated force torque sensor data w.r.t. flange coordinates [N, Nm]
float64[6]                   raw_force_torque
# estimated external joint torque [Nm]
float64[6]                   external_joint_torque
# estimated tcp force w.r.t. base coordinates [N, Nm]
float64[6]                   external_tcp_force
# target joint position [deg]
float64[6]                   target_joint_position
# target joint velocity [deg/s]
float64[6]                   target_joint_velocity
# target joint acceleration [deg/s^2]
float64[6]                   target_joint_acceleration
# target motor torque [Nm]
float64[6]                   target_motor_torque
# target tcp position w.r.t. base coordinates: (x, y, z, a, b, c), where (a, b, c) follows Euler ZYZ notation [mm, deg]
float64[6]                   target_tcp_position
# target tcp velocity w.r.t. base coordinates [mm, deg/s]
float64[6]                   target_tcp_velocity
# jacobian matrix=J(q) w.r.t. base coordinates
std_msgs/Float64MultiArray[] jacobian_matrix
# gravity torque=g(q) [Nm]
float64[6]                   gravity_torque
# coriolis matrix=C(q,q_dot)  [6][6]
std_msgs/Float64MultiArray[] coriolis_matrix
# mass matrix=M(q) [6][6]
std_msgs/Float64MultiArray[] mass_matrix
# robot configuration
uint16                       solution_space
# minimum singular value
float64                      singularity
# current operation speed rate(1~100 %)
float64                      operation_speed_rate
# joint temperature(celsius)
float64[6]                   joint_temperature
# controller digital input(16 channel)
uint16                       controller_digital_input
# controller digital output(16 channel)
uint16                       controller_digital_output
# controller analog input type(2 channel)
uint8[2]                      controller_analog_input_type
# controller analog input(2 channel)
float64[2]                   controller_analog_input
# controller analog output type(2 channel)
uint8[2]                     controller_analog_output_type
# controller analog output(2 channel)
float64[2]                   controller_analog_output
# flange digital input(A-Series: 2 channel, M/H-Series: 6 channel)
uint8                        flange_digital_input
# flange digital output(A-Series: 2 channel, M/H-Series: 6 channel)
uint8                        flange_digital_output
# flange analog input(A-Series: 2 channel, M/H-Series: 4 channel)
float64[4]                   flange_analog_input
# strobe count(increased by 1 when detecting setting edge)
uint8[2]                     external_encoder_strobe_count
# external encoder count
uint16[2]                    external_encoder_count
# final goal joint position (reserved)
float64[6]                   goal_joint_position
# final goal tcp position (reserved)
float64[6]                   goal_tcp_position
# ROBOT_MODE_MANUAL(0), ROBOT_MODE_AUTONOMOUS(1), ROBOT_MODE_MEASURE(2)
uint8                        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,
uint8                        robot_state
# position control mode, torque mode
uint16                       control_mode
# Reserved
uint8[256]                   reserved

RobotDisconnection

Event driven when the robot connection losts.

dsr_msgs2/msg/RobotDisconnection.msg
### Event driven when the robot connection losts.