Chapter 7: Dashboard Server
About This Chapter
The Dashboard Server is a TCP server for remotely operating a UR Controller.
Whereas the SDU Robotics RTDEControlInterface used in the current implementation handles motion control, the official Universal Robots Dashboard Server handles robot operation management, including:
Power on
Brake release
Program start
Program stop
Clearing a Protective Stop
The current implementation combines the official RTDE interface used by SDU Robotics ur_rtde with the Dashboard Server, assigning each its respective responsibilities.
7.1 What Is the Dashboard Server?
The Dashboard Server is a TCP server running inside the Controller.
Python
│
TCP Socket
│
Dashboard Server
│
UR Controller
The Dashboard Server is a separate TCP interface from the RTDE protocol.
7.2 Connection Port
The Dashboard Server uses port:
29999
Example:
import socket
sock = socket.socket()
sock.connect(("192.168.0.10",29999))
Upon connection, a message such as the following is returned:
Connected: Universal Robots Dashboard Server
7.3 Sending Commands
The Dashboard Server accepts text commands.
Example:
sock.sendall(b"power on\n")
Always append a newline.
The Controller returns a string such as:
Powering on
7.4 Power On
power on
Turns on the Controller’s servo power.
Note: This does not turn on the Controller’s AC power. It corresponds to the Power button on the Teach Pendant.
7.5 Brake Release
brake release
Releases the brakes.
Move commands cannot be executed with Power On alone.
The normal sequence is:
power on
↓
brake release
7.6 Program Load
load program.urp
Loads a URP file.
Example:
load demo.urp
This only loads the program; it does not execute it.
7.7 Program Play
play
Starts the loaded program.
Equivalent to the ▶ button on the Teach Pendant.
7.8 Pause
pause
Pauses the program.
This is different from a Move command.
7.9 Stop
stop
Stops the running program.
This has a different meaning from the following RTDEControlInterface methods:
stopJ()
stopL()
7.10 Shutdown
shutdown
Safely shuts down the Controller.
This is not an immediate power cut; it shuts down the operating system.
7.11 Robot Status
Robot status can also be queried.
Example:
robotmode
Example response:
Robotmode: RUNNING
Other possible states include:
POWER_OFF
IDLE
BACKDRIVE
RUNNING
7.12 Program Status
programState
Retrieves the current program state.
Examples:
STOPPED
PLAYING
PAUSED
7.13 Safety Status
safetystatus
Retrieves the safety state.
Used, for example, to detect a Protective Stop.
7.14 Protective Stop
A Protective Stop is a stop triggered by a safety mechanism.
It is different from an Emergency Stop.
Possible causes include:
Collision
Overload
Excessive speed
It cannot be cleared using RTDE alone.
7.15 Clearing a Protective Stop
Command:
unlock protective stop
After clearing the stop, check Robot Mode and, if necessary, execute:
play
or:
brake release
7.16 Safety Popup
When a safety dialog is displayed, send:
close safety popup
If the popup remains open, Move commands are not accepted.
7.17 Typical Recovery Sequence
A typical recovery sequence after a Protective Stop:
close safety popup
↓
unlock protective stop
↓
power on
(if necessary)
↓
brake release
(if necessary)
↓
play
(if necessary)
In practice, check RobotMode throughout the procedure.
7.18 Division of Responsibilities with RTDE
Function |
RTDE |
Dashboard |
|---|---|---|
MoveJ |
Yes |
No |
MoveL |
Yes |
No |
Read current position |
Yes |
No |
Digital IO |
Yes |
No |
Power ON |
No |
Yes |
Brake Release |
No |
Yes |
Program Play |
No |
Yes |
Clear Protective Stop |
No |
Yes |
Both interfaces are required.
7.19 Use in ur_ctrl.py
In ur_ctrl.py, the connection sequence is:
connect()
↓
Dashboard connection
↓
RTDE connection
In addition, reset_error() should ideally be designed to execute operations such as:
close safety popup
↓
unlock protective stop
It is also convenient to implement turn_on_motor() as an API that combines:
power on
↓
brake release
7.20 Basic Sequence for Automatic Operation
For fully automatic operation from Python, the sequence is as follows:
Dashboard connection
↓
RTDE connection
↓
Power On
↓
Brake Release
↓
MoveJ
↓
MoveL
↓
IO control
↓
MoveL
↓
MoveJ
↓
Stop
↓
Shutdown (if necessary)
Summary
The Dashboard Server is responsible for managing robot operation.
Operations that cannot be performed through RTDE, such as:
Power On
Brake Release
Program Play
Clearing a Protective Stop
are handled through the Dashboard Server.
In the current implementation, SDU Robotics ur_rtde and the Dashboard Server are used together, separating motion control from operation management.