Robot state helper

After switching on the robot, it has to be manually started, the brakes have to be released and a program has to be started in order to make the robot ready to use. This is usually done using the robot’s teach pendant.

Whenever the robot encounters an error, manual intervention is required to resolve the issue. For example, if the robot goes into a protective stop, the error has to be acknowledged and the robot program has to be unpaused.

When the robot is in remote_control_mode, most interaction with the robot can be done without using the teach pendant, many of that through the dashboard client.

The ROS driver provides a helper node that can be used to automate some of these tasks. The robot_state_helper node can be used to start the robot, release the brakes, and (re-)start the program through an action call. It is started by default and provides a dashboard_msgs/action/SetMode action.

For example, to make the robot ready to be used by the ROS driver, call

$ ros2 action send_goal /ur_robot_state_helper/set_mode ur_dashboard_msgs/action/SetMode "{ target_robot_mode: 7, stop_program: true, play_program: true}"

The target_robot_mode can be one of the following:

Table 11 target_robot_mode

index

meaning

3

POWER_OFF – Robot is powered off

5

IDLE – Robot is powered on, but brakes are engaged

7

RUNNING – Robot is powered on, brakes are released, ready to run a program

Note

When the ROBOT_STATE is in RUNNING, that is equivalent to the robot showing the green dot in the lower left corner of the teach pendant (On PolyScope 5). The program state is independent of that and shows with the text next to that button.

The stop_program flag is used to stop the currently running program before changing the robot state. In combination with the Controller stopper, this will deactivate any motion controller and therefore stop any ROS action being active on those controllers.

Warning

A robot’s protective stop or emergency stop is only pausing the running program. If the program is resumed after the P-Stop or EM-Stop is released, the robot will continue executing what it has been doing. Therefore, it is advised to stop and re-start the program when recovering from a fault.

The play_program flag is used to start the program after the robot state has been set. This has the same effects as explained in Continuation after interruptions.