Universal Robots Forum

How to make full initialization without teach pedant?

Dear Developers,

In my application I would like to completely hide TP from the operator, however I have the impression that the functions written in the robot software do not allow me to do this, so please help me how to do it.
My robot is CB3.

I divided the initialization into stages step by step and it turned out that as many as 5 steps I can not do / see without TP.
Help please, maybe I’m making a mistake somewhere


Initialization with TP
I press the turn on button on TP, I can see that the robot has started because the button is green.
I am waiting for the screen with UR main software on TP to appear allowing the robot to be initiated.
I see a red dot, the robot is turned off, I press the buttons one after the other to start the robot.
I can see that the robot’s status is Power On. I run the program.
I want to turn off the robot. I press the on button or select the appropriate function on the screen.

Initialization without TP.
I press the ON button connected to the ON socket in the robot’s cabinet.

I have no confirmation if the robot is powered because there is no electrical output with such a signal.
I do not know when the robot will initiate its control program because I do not have an electrical output that indicates it.
The robot’s status is sent only through communication ports without any additional device, I don’t know if the robot is in POWER OFF state.

I press the button, release the brakes to start the robot. Button attached to the appropriate DI with this functionality.
I use the button to start the program. Button attached to the appropriate DI with this functionality.
I want to turn off the robot, I press the OFF button connected to the OFF socket in the robot’s electrical cabinet.

Thanks in advance for your help.


Hello Michał,

i think what you trying to achieve is only possible through the communication with the robot via various other interfaces especially the dashboard-server.

  1. Switching the controller on with the “Remote On” (User Manual Controller I/O) (DONE)
  2. Connecting to the RTDE Network Interface on port 30004 (optional but nicer control)
  3. Connecting to the Dashboard-Interface on port 29999
  4. Send commands to the dashboard:
    4.1. “close safety popup”
    4.2. “close popup”
    4.3 “safetymode” (Optional to check the state of the safety system)
    4.3.1 if “protective stop”, send “restart safety” and start again
    4.4. “robotmode” (Optional to check the state of the robot)
    4.5. “power on”
    4.6. “brake release”

After this sequence the robot is ready to run a program. You can load programs via the dashboard interface (load command) then send another command: “play”.

You can also connect to the RTDE-Interface to get robot_mode and safety_mode information in real-time. The RTDE-Interface is not too easy to speak to but it’s realtime, while for the dashboard interface you have to poll for “robotmode” resp. “safetymode”

The Dashboard is basically an ASCII-protocol. You could use netcat or similar to speak to the dashboard server.

On Linux: nc 29999
will do.

I’m trying to achieve something similar in my current project, which is not yet production-ready, so there might be some flaws in this approach, but as a starter this could help.

Best regards Jörg