Each topic is prefixed with a namespace. ROS message bus permits multiple robots, and other ROS nodes on the same network. Multiple nodes can publish to the same topic - in some cases this behavior is desirable, but in general namespaces are used to prevent collisions.
Topics are prepended with a namespace to identify the robot. In python the namespace can be retrieved from the environment variable called ROS2_NAMESPACE.
Robot namespace is UR20185300015:
/UR20185300015/actual_joint_trajectory
Naming follows ROS2 recommendations. For more information see: using ROS 2 Topic and Service Name Constraints.
Some publishers have filters associated that ensure a topic is published only when an underlying value changes.
Each topic contains a header with a timestamp. The timestamp is not derived from the system clock, but from the real time control loop instead.
It is reset to 0 each time the controller process is restarted.
All messages that belong to the same control cycle are guaranteed to have exactly the same timestamp.
Default publisher QoS (more info see: Quality of Service):
QoS settings have to be equal or less strict on the subscriber side, otherwise the subscription
silently
fails (as of Foxy).
One particular example is Durability - Transient Local. If a subscriber expects to receive the last published value (for example arm_powered_on that is published only when the value changes) then it also has to specify Transient Local Durability.
Publishing frequency:
RT - Controller real time loop frequency = 500Hz
RT1k - Controller 1k loop frequency = 1000Hz
RT+ - RT when arm is powered on
T - Published only when value changes
| Name | Package | Message | QoS (default if not specified) | Publishing frequency | Bandwidth | Description |
|---|---|---|---|---|---|---|
| actual_momentum | urinterfaces | Float64Stamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ | 0.03 KB | Norm of Cartesian linear momentum |
| actual_speed_fraction | urinterfaces | SpeedSliderFraction.msg | Durability - Transient local | RT ? |
Effective speed scaling, including both speed slider and trajectory limiting. Note: this is not the same as in RTDE. But it makes it easier for client to scale based on this value. |
|
| actual_tcp_state | urinterfaces | TCPState.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ | 0.13 KB | Actual Cartesian coordinates, and velocities of the tool (TCP). |
| arm_powered_on | urinterfaces | BoolStamped.msg |
Depth - Queue size[n] =1
Durability - Transient local |
T | -- | Indication if power is applied to robot arm |
| configurable_digital_inputs | urinterfaces | DigitalPort.msg | Durability - Transient local | T | 0.03 KB | Configurable digital outputs state |
| configurable_digital_outputs | urinterfaces | DigitalPort.msg |
Depth - Queue size[n]=1 Durability - Transient local |
T | 0.03 KB | Configurable digital inputs state |
| control_cycle | urinterfaces | ControlCycle.msg |
Depth - Queue size[n] =1
Durability - Transient local |
RT | 0.03 KB | Sequential number of real-time controller cycle |
| execution_time |
sensor_msgs |
TimeReference.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT | 0.04 KB | Controller real-time thread execution time |
| io_current | urinterfaces | Current.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT | 0.02 KB | Control box IO current |
| joint_mode | urinterfaces | JointMode.msg | Durability - Transient local | T | Joint control modes | |
| joint_states | sensor_msgs | JointState.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ |
Target joint names, positions, velocities, and efforts [Nm] actual effort is actual current * k_tau |
|
| joint_temperature |
urinterfaces |
JointTemperature.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ | 0.04 KB | Temperature of each joint in degrees Celsius |
| joint_voltage | urinterfaces | JointVoltage.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ |
Actual joint voltages |
|
| main_voltage | urinterfaces | Float32Stamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT |
Safety Control Board: Main voltage |
|
| payload | geometry_msgs | InertiaStamped.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Active payload mass, center of mass, and inertia parameters | |
| power_button_pressed | urinterfaces | BoolStamped.msg | Depth - Queue size[n]=1 Durability - Transient local | T | Set when any power button input is active | |
| program_running | urinterfaces | BoolStamped.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Set when any foreground program is running | |
| robot_mode | urinterfaces | RobotMode.msg | Durability - Transient local | T | Robot mode | |
| robot_voltage_current | urinterfaces | VoltageCurrentStamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT | Robot controller voltage and current | |
| program_state | urinterfaces | RuntimeState.msg | Durability - Transient local | T | Program state | |
| safety_status | urinterfaces | SafetyStatus.msg | Durability - Transient local | T | Robot controller safety status | |
| standard_analog_input_0 | urinterfaces | Analog.msg | Durability - Transient local | RT ? | Standard analog input 0 domain (voltage or current) and value | |
| standard_analog_input_1 | urinterfaces | Analog.msg | Durability - Transient local | RT ? | Standard analog input 1 domain (voltage or current) and value | |
| standard_analog_output_0 | urinterfaces | Analog.msg |
Depth - Queue size[n]=1
Durability - Transient local |
RT ? | Standard analog output 0 domain (voltage or current) and value | |
| standard_analog_output_1 | urinterfaces | Analog.msg |
Depth - Queue size[n]=1
Durability - Transient local |
RT ? | Standard analog output 1 domain (voltage or current) and value | |
| standard_digital_inputs | urinterfaces | DigitalPort.msg | Durability - Transient local | T | Standard digital outputs state | |
| standard_digital_outputs | urinterfaces | DigitalPort.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Standard digital inputs state | |
| target_joint_states | sensor_msgs | JointState.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ |
Target joint names, positions, velocities, and efforts [Nm] Effort is computed as target_torque + (target_friction_current) * k_tau |
|
| target_speed_fraction | urinterfaces | SpeedSliderFraction.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Target speed fraction | |
| target_tcp_state | urinterfaces | TCPState.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT | 0.26 KB | Target Cartesian coordinates and velocities of the tool (TCP). |
| tcp_force_scalar | urinterfaces | Float64Stamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT | TCP force scalar | |
| tcp_offset | geometry_msgs | PoseStamped.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Tool offset relative to tool flange. | |
| tcp_wrench | geometry_msgs | WrenchStamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ | Actual TCP forces and torques with compensation for | |
| teach_button_pressed | urinterfaces | BoolStamped.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Set when any teach input is active | |
| tool_accelerometer | geometry_msgs | AccelStamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ | Tool x, y and z accelerometer values | |
| tool_analog_input_0 | urinterfaces | Analog.msg | Durability - Transient local | RT+ ? | Tool connector analog input 0 domain (voltage or current) and value | |
| tool_analog_input_1 | urinterfaces | Analog.msg | Durability - Transient local | RT+ ? | Tool connector analog input 1 domain (voltage or current) and value | |
| tool_digital_inputs | urinterfaces | DigitalPort.msg | Durability - Transient local | T | Tool connector digital outputs state | |
| tool_digital_outputs | urinterfaces | DigitalPort.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Tool connector digital inputs state | |
| tool_output_mode | urinterfaces | ToolOutputMode.msg |
Depth - Queue size[n]=1
Durability - Transient local |
T | Tool connector digital output modes | |
| tool_temperature | sensor_msgs | Temperature.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
T | 0.03 KB |
Tool temperature in degrees Celsius (temporarily Float64Stamped) |
| tool_voltage_current | urinterfaces | VoltageCurrentStamped.msg |
Depth - Queue size[n] =1 Reliability - Best effort |
RT+ | Tool connector power output voltage and current |
| Name | Package | Message | QoS (default if not specified) | Description |
|---|---|---|---|---|
| external_wrench | geometry_msgs | WrenchStamped.msg | Sensor data | External force/torque input |
| Name | Package | Service | QoS | Description |
|---|---|---|---|---|
| set_speed_fraction | urinterfaces | SetSpeedFraction.srv | default service | Set new speed slider value |
| set_configurable_digital_output | urinterfaces | SetDigitalOutput.srv | default service | Set standard digital output pin state |
| set_standard_digital_output | urinterfaces | SetDigitalOutput.srv | default service | Set configurable digital output pin state |
| set_standard_analog_output | urinterfaces | SetAnalogOutput.srv | default service | Set single analog output domain (current or voltage) and value |