Universal_Robots_ROS_Driver icon indicating copy to clipboard operation
Universal_Robots_ROS_Driver copied to clipboard

Dashboard server disconnects on first execution after robot restart

Open sharpe-developer opened this issue 5 years ago • 20 comments

Summary

Dashboard server disconnects on first run after robot restart with the Robotiq Gripper urcap installed on the teach pendant.

Versions

  • Ubuntu 18.04.3 with Real Time patch installed
  • ROS Melodic
  • ROS Driver version: 0.0.3
  • Affected Robot Software Version(s): 5.9.1.1031110
  • URCaps Software version(s): external control 1.0.4, rs485 1.0.0, Robotiq grippers 1.8.4.4844

Impact

Dashboard server crashes on first run after robot restart when Robotiq Gripper urcap installed

Issue details

The first time a sequence of dashboard commands are executed after a robot restart then the dashboard server disconnects/crashes. After the first error occurs the driver can be relaunched and the dashboard commands can be repeated multiple times without any problems. However if the robot is restarted/rebooted then the dashboard server will disconnect the first time the steps are executed.

The robot is directly connected to the ROS PC via Ethernet (i.e. no switches, routers, etc.)

Steps to Reproduce

On the teach pendant

  • Restart robot
  • Put robot in remote control mode

Open terminal and launch robot driver

roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:="192.168.100.1" reverse_port:="29999"

Power the robot via dashboard

$ rosservice call /ur_hardware_interface/dashboard/power_on 
success: True
message: "Powering on"

Wait for robot mode = IDLE

Release the brake

$ rosservice call /ur_hardware_interface/dashboard/brake_release 
success: True
message: "Brake releasing"

Wait for robot mode = RUNNING

Load the external control program via dashboard

$ rosservice call /ur_hardware_interface/dashboard/load_program "ExternalControl.urp"
answer: "Loading program: /programs/ExternalControl.urp, /programs/default.installation"
success: True

Set speed slider

$ rosservice call /ur_hardware_interface/set_speed_slider 0.5
success: True

Play the loaded program Dashboard server disconnects

$ rosservice call /ur_hardware_interface/dashboard/play
ERROR: service [/ur_hardware_interface/dashboard/play] responded with an error: Did not receive answer from dashboard server in time. Disconnecting from dashboard server.(Configured timeout: 1 sec)

After the first error occurs then the steps above can be repeated multiple times without any problems. However if the robot is restarted/rebooted at the teach pendant and the steps above are performed the dashboard server will disconnect the first time the steps are executed.

Any attempts to use dashboard commands after the error result in the following log messages

[ERROR] [1599760881.383306180]: Attempt to write on a non-connected socket
[ERROR] [1599760881.383555989]: Exception thrown while processing service call: Failed to send request to dashboard server. Are you connected to the Dashboard Server?

Full Log Output

roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:="192.168.100.1" reverse_port:="29999"
... logging to /home/user/.ros/log/c76a0b1a-f38c-11ea-9de7-98e7f4f4a84e/roslaunch-UR-ROS-4925.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://UR-ROS:46291/

SUMMARY
========

PARAMETERS
 * /controller_stopper/consistent_controllers: ['joint_state_con...
 * /force_torque_sensor_controller/publish_rate: 500
 * /force_torque_sensor_controller/type: force_torque_sens...
 * /hardware_control_loop/loop_hz: 500
 * /joint_group_vel_controller/joints: ['shoulder_pan_jo...
 * /joint_group_vel_controller/type: velocity_controll...
 * /joint_state_controller/publish_rate: 500
 * /joint_state_controller/type: joint_state_contr...
 * /pos_joint_traj_controller/action_monitor_rate: 20
 * /pos_joint_traj_controller/constraints/elbow_joint/goal: 0.1
 * /pos_joint_traj_controller/constraints/elbow_joint/trajectory: 0.2
 * /pos_joint_traj_controller/constraints/goal_time: 0.6
 * /pos_joint_traj_controller/constraints/shoulder_lift_joint/goal: 0.1
 * /pos_joint_traj_controller/constraints/shoulder_lift_joint/trajectory: 0.2
 * /pos_joint_traj_controller/constraints/shoulder_pan_joint/goal: 0.1
 * /pos_joint_traj_controller/constraints/shoulder_pan_joint/trajectory: 0.2
 * /pos_joint_traj_controller/constraints/stopped_velocity_tolerance: 0.05
 * /pos_joint_traj_controller/constraints/wrist_1_joint/goal: 0.1
 * /pos_joint_traj_controller/constraints/wrist_1_joint/trajectory: 0.2
 * /pos_joint_traj_controller/constraints/wrist_2_joint/goal: 0.1
 * /pos_joint_traj_controller/constraints/wrist_2_joint/trajectory: 0.2
 * /pos_joint_traj_controller/constraints/wrist_3_joint/goal: 0.1
 * /pos_joint_traj_controller/constraints/wrist_3_joint/trajectory: 0.2
 * /pos_joint_traj_controller/joints: ['shoulder_pan_jo...
 * /pos_joint_traj_controller/state_publish_rate: 500
 * /pos_joint_traj_controller/stop_trajectory_duration: 0.5
 * /pos_joint_traj_controller/type: position_controll...
 * /robot_description: <?xml version="1....
 * /robot_status_controller/handle_name: industrial_robot_...
 * /robot_status_controller/publish_rate: 10
 * /robot_status_controller/type: industrial_robot_...
 * /rosdistro: melodic
 * /rosversion: 1.14.9
 * /scaled_pos_joint_traj_controller/action_monitor_rate: 20
 * /scaled_pos_joint_traj_controller/constraints/elbow_joint/goal: 0.1
 * /scaled_pos_joint_traj_controller/constraints/elbow_joint/trajectory: 0.2
 * /scaled_pos_joint_traj_controller/constraints/goal_time: 0.6
 * /scaled_pos_joint_traj_controller/constraints/shoulder_lift_joint/goal: 0.1
 * /scaled_pos_joint_traj_controller/constraints/shoulder_lift_joint/trajectory: 0.2
 * /scaled_pos_joint_traj_controller/constraints/shoulder_pan_joint/goal: 0.1
 * /scaled_pos_joint_traj_controller/constraints/shoulder_pan_joint/trajectory: 0.2
 * /scaled_pos_joint_traj_controller/constraints/stopped_velocity_tolerance: 0.05
 * /scaled_pos_joint_traj_controller/constraints/wrist_1_joint/goal: 0.1
 * /scaled_pos_joint_traj_controller/constraints/wrist_1_joint/trajectory: 0.2
 * /scaled_pos_joint_traj_controller/constraints/wrist_2_joint/goal: 0.1
 * /scaled_pos_joint_traj_controller/constraints/wrist_2_joint/trajectory: 0.2
 * /scaled_pos_joint_traj_controller/constraints/wrist_3_joint/goal: 0.1
 * /scaled_pos_joint_traj_controller/constraints/wrist_3_joint/trajectory: 0.2
 * /scaled_pos_joint_traj_controller/joints: ['shoulder_pan_jo...
 * /scaled_pos_joint_traj_controller/state_publish_rate: 500
 * /scaled_pos_joint_traj_controller/stop_trajectory_duration: 0.5
 * /scaled_pos_joint_traj_controller/type: position_controll...
 * /scaled_vel_joint_traj_controller/action_monitor_rate: 20
 * /scaled_vel_joint_traj_controller/constraints/elbow_joint/goal: 0.1
 * /scaled_vel_joint_traj_controller/constraints/elbow_joint/trajectory: 0.1
 * /scaled_vel_joint_traj_controller/constraints/goal_time: 0.6
 * /scaled_vel_joint_traj_controller/constraints/shoulder_lift_joint/goal: 0.1
 * /scaled_vel_joint_traj_controller/constraints/shoulder_lift_joint/trajectory: 0.1
 * /scaled_vel_joint_traj_controller/constraints/shoulder_pan_joint/goal: 0.1
 * /scaled_vel_joint_traj_controller/constraints/shoulder_pan_joint/trajectory: 0.1
 * /scaled_vel_joint_traj_controller/constraints/stopped_velocity_tolerance: 0.05
 * /scaled_vel_joint_traj_controller/constraints/wrist_1_joint/goal: 0.1
 * /scaled_vel_joint_traj_controller/constraints/wrist_1_joint/trajectory: 0.1
 * /scaled_vel_joint_traj_controller/constraints/wrist_2_joint/goal: 0.1
 * /scaled_vel_joint_traj_controller/constraints/wrist_2_joint/trajectory: 0.1
 * /scaled_vel_joint_traj_controller/constraints/wrist_3_joint/goal: 0.1
 * /scaled_vel_joint_traj_controller/constraints/wrist_3_joint/trajectory: 0.1
 * /scaled_vel_joint_traj_controller/gains/elbow_joint/d: 0.1
 * /scaled_vel_joint_traj_controller/gains/elbow_joint/i: 0.05
 * /scaled_vel_joint_traj_controller/gains/elbow_joint/i_clamp: 1
 * /scaled_vel_joint_traj_controller/gains/elbow_joint/p: 5.0
 * /scaled_vel_joint_traj_controller/gains/shoulder_lift_joint/d: 0.1
 * /scaled_vel_joint_traj_controller/gains/shoulder_lift_joint/i: 0.05
 * /scaled_vel_joint_traj_controller/gains/shoulder_lift_joint/i_clamp: 1
 * /scaled_vel_joint_traj_controller/gains/shoulder_lift_joint/p: 5.0
 * /scaled_vel_joint_traj_controller/gains/shoulder_pan_joint/d: 0.1
 * /scaled_vel_joint_traj_controller/gains/shoulder_pan_joint/i: 0.05
 * /scaled_vel_joint_traj_controller/gains/shoulder_pan_joint/i_clamp: 1
 * /scaled_vel_joint_traj_controller/gains/shoulder_pan_joint/p: 5.0
 * /scaled_vel_joint_traj_controller/gains/wrist_1_joint/d: 0.1
 * /scaled_vel_joint_traj_controller/gains/wrist_1_joint/i: 0.05
 * /scaled_vel_joint_traj_controller/gains/wrist_1_joint/i_clamp: 1
 * /scaled_vel_joint_traj_controller/gains/wrist_1_joint/p: 5.0
 * /scaled_vel_joint_traj_controller/gains/wrist_2_joint/d: 0.1
 * /scaled_vel_joint_traj_controller/gains/wrist_2_joint/i: 0.05
 * /scaled_vel_joint_traj_controller/gains/wrist_2_joint/i_clamp: 1
 * /scaled_vel_joint_traj_controller/gains/wrist_2_joint/p: 5.0
 * /scaled_vel_joint_traj_controller/gains/wrist_3_joint/d: 0.1
 * /scaled_vel_joint_traj_controller/gains/wrist_3_joint/i: 0.05
 * /scaled_vel_joint_traj_controller/gains/wrist_3_joint/i_clamp: 1
 * /scaled_vel_joint_traj_controller/gains/wrist_3_joint/p: 5.0
 * /scaled_vel_joint_traj_controller/joints: ['shoulder_pan_jo...
 * /scaled_vel_joint_traj_controller/state_publish_rate: 500
 * /scaled_vel_joint_traj_controller/stop_trajectory_duration: 0.5
 * /scaled_vel_joint_traj_controller/type: velocity_controll...
 * /scaled_vel_joint_traj_controller/velocity_ff/elbow_joint: 1.0
 * /scaled_vel_joint_traj_controller/velocity_ff/shoulder_lift_joint: 1.0
 * /scaled_vel_joint_traj_controller/velocity_ff/shoulder_pan_joint: 1.0
 * /scaled_vel_joint_traj_controller/velocity_ff/wrist_1_joint: 1.0
 * /scaled_vel_joint_traj_controller/velocity_ff/wrist_2_joint: 1.0
 * /scaled_vel_joint_traj_controller/velocity_ff/wrist_3_joint: 1.0
 * /speed_scaling_state_controller/publish_rate: 500
 * /speed_scaling_state_controller/type: ur_controllers/Sp...
 * /ur_hardware_interface/headless_mode: False
 * /ur_hardware_interface/input_recipe_file: /home/user/ros_wo...
 * /ur_hardware_interface/joints: ['shoulder_pan_jo...
 * /ur_hardware_interface/kinematics/forearm/pitch: 0
 * /ur_hardware_interface/kinematics/forearm/roll: 0
 * /ur_hardware_interface/kinematics/forearm/x: -0.24355
 * /ur_hardware_interface/kinematics/forearm/y: 0
 * /ur_hardware_interface/kinematics/forearm/yaw: 0
 * /ur_hardware_interface/kinematics/forearm/z: 0
 * /ur_hardware_interface/kinematics/hash: calib_16756443741...
 * /ur_hardware_interface/kinematics/shoulder/pitch: 0
 * /ur_hardware_interface/kinematics/shoulder/roll: 0
 * /ur_hardware_interface/kinematics/shoulder/x: 0
 * /ur_hardware_interface/kinematics/shoulder/y: 0
 * /ur_hardware_interface/kinematics/shoulder/yaw: 0
 * /ur_hardware_interface/kinematics/shoulder/z: 0.15185
 * /ur_hardware_interface/kinematics/upper_arm/pitch: 0
 * /ur_hardware_interface/kinematics/upper_arm/roll: 1.570796327
 * /ur_hardware_interface/kinematics/upper_arm/x: 0
 * /ur_hardware_interface/kinematics/upper_arm/y: 0
 * /ur_hardware_interface/kinematics/upper_arm/yaw: 0
 * /ur_hardware_interface/kinematics/upper_arm/z: 0
 * /ur_hardware_interface/kinematics/wrist_1/pitch: 0
 * /ur_hardware_interface/kinematics/wrist_1/roll: 0
 * /ur_hardware_interface/kinematics/wrist_1/x: -0.2132
 * /ur_hardware_interface/kinematics/wrist_1/y: 0
 * /ur_hardware_interface/kinematics/wrist_1/yaw: 0
 * /ur_hardware_interface/kinematics/wrist_1/z: 0.13105
 * /ur_hardware_interface/kinematics/wrist_2/pitch: 0
 * /ur_hardware_interface/kinematics/wrist_2/roll: 1.570796327
 * /ur_hardware_interface/kinematics/wrist_2/x: 0
 * /ur_hardware_interface/kinematics/wrist_2/y: -0.08535
 * /ur_hardware_interface/kinematics/wrist_2/yaw: 0
 * /ur_hardware_interface/kinematics/wrist_2/z: -1.75055776238e-11
 * /ur_hardware_interface/kinematics/wrist_3/pitch: 3.14159265359
 * /ur_hardware_interface/kinematics/wrist_3/roll: 1.57079632659
 * /ur_hardware_interface/kinematics/wrist_3/x: 0
 * /ur_hardware_interface/kinematics/wrist_3/y: 0.0921
 * /ur_hardware_interface/kinematics/wrist_3/yaw: 3.14159265359
 * /ur_hardware_interface/kinematics/wrist_3/z: -1.88900257663e-11
 * /ur_hardware_interface/output_recipe_file: /home/user/ros_wo...
 * /ur_hardware_interface/reverse_port: 29999
 * /ur_hardware_interface/robot_ip: 192.168.100.1
 * /ur_hardware_interface/script_file: /home/user/ros_wo...
 * /ur_hardware_interface/script_sender_port: 50002
 * /ur_hardware_interface/tf_prefix: 
 * /ur_hardware_interface/tool_baud_rate: 115200
 * /ur_hardware_interface/tool_parity: 0
 * /ur_hardware_interface/tool_rx_idle_chars: 1.5
 * /ur_hardware_interface/tool_stop_bits: 1
 * /ur_hardware_interface/tool_tx_idle_chars: 3.5
 * /ur_hardware_interface/tool_voltage: 0
 * /ur_hardware_interface/use_tool_communication: False
 * /vel_joint_traj_controller/action_monitor_rate: 20
 * /vel_joint_traj_controller/constraints/elbow_joint/goal: 0.1
 * /vel_joint_traj_controller/constraints/elbow_joint/trajectory: 0.1
 * /vel_joint_traj_controller/constraints/goal_time: 0.6
 * /vel_joint_traj_controller/constraints/shoulder_lift_joint/goal: 0.1
 * /vel_joint_traj_controller/constraints/shoulder_lift_joint/trajectory: 0.1
 * /vel_joint_traj_controller/constraints/shoulder_pan_joint/goal: 0.1
 * /vel_joint_traj_controller/constraints/shoulder_pan_joint/trajectory: 0.1
 * /vel_joint_traj_controller/constraints/stopped_velocity_tolerance: 0.05
 * /vel_joint_traj_controller/constraints/wrist_1_joint/goal: 0.1
 * /vel_joint_traj_controller/constraints/wrist_1_joint/trajectory: 0.1
 * /vel_joint_traj_controller/constraints/wrist_2_joint/goal: 0.1
 * /vel_joint_traj_controller/constraints/wrist_2_joint/trajectory: 0.1
 * /vel_joint_traj_controller/constraints/wrist_3_joint/goal: 0.1
 * /vel_joint_traj_controller/constraints/wrist_3_joint/trajectory: 0.1
 * /vel_joint_traj_controller/gains/elbow_joint/d: 0.1
 * /vel_joint_traj_controller/gains/elbow_joint/i: 0.05
 * /vel_joint_traj_controller/gains/elbow_joint/i_clamp: 1
 * /vel_joint_traj_controller/gains/elbow_joint/p: 5.0
 * /vel_joint_traj_controller/gains/shoulder_lift_joint/d: 0.1
 * /vel_joint_traj_controller/gains/shoulder_lift_joint/i: 0.05
 * /vel_joint_traj_controller/gains/shoulder_lift_joint/i_clamp: 1
 * /vel_joint_traj_controller/gains/shoulder_lift_joint/p: 5.0
 * /vel_joint_traj_controller/gains/shoulder_pan_joint/d: 0.1
 * /vel_joint_traj_controller/gains/shoulder_pan_joint/i: 0.05
 * /vel_joint_traj_controller/gains/shoulder_pan_joint/i_clamp: 1
 * /vel_joint_traj_controller/gains/shoulder_pan_joint/p: 5.0
 * /vel_joint_traj_controller/gains/wrist_1_joint/d: 0.1
 * /vel_joint_traj_controller/gains/wrist_1_joint/i: 0.05
 * /vel_joint_traj_controller/gains/wrist_1_joint/i_clamp: 1
 * /vel_joint_traj_controller/gains/wrist_1_joint/p: 5.0
 * /vel_joint_traj_controller/gains/wrist_2_joint/d: 0.1
 * /vel_joint_traj_controller/gains/wrist_2_joint/i: 0.05
 * /vel_joint_traj_controller/gains/wrist_2_joint/i_clamp: 1
 * /vel_joint_traj_controller/gains/wrist_2_joint/p: 5.0
 * /vel_joint_traj_controller/gains/wrist_3_joint/d: 0.1
 * /vel_joint_traj_controller/gains/wrist_3_joint/i: 0.05
 * /vel_joint_traj_controller/gains/wrist_3_joint/i_clamp: 1
 * /vel_joint_traj_controller/gains/wrist_3_joint/p: 5.0
 * /vel_joint_traj_controller/joints: ['shoulder_pan_jo...
 * /vel_joint_traj_controller/state_publish_rate: 500
 * /vel_joint_traj_controller/stop_trajectory_duration: 0.5
 * /vel_joint_traj_controller/type: velocity_controll...
 * /vel_joint_traj_controller/velocity_ff/elbow_joint: 1.0
 * /vel_joint_traj_controller/velocity_ff/shoulder_lift_joint: 1.0
 * /vel_joint_traj_controller/velocity_ff/shoulder_pan_joint: 1.0
 * /vel_joint_traj_controller/velocity_ff/wrist_1_joint: 1.0
 * /vel_joint_traj_controller/velocity_ff/wrist_2_joint: 1.0
 * /vel_joint_traj_controller/velocity_ff/wrist_3_joint: 1.0

NODES
  /
    controller_stopper (controller_stopper/node)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    ros_control_controller_spawner (controller_manager/spawner)
    ros_control_stopped_spawner (controller_manager/spawner)
    ur_hardware_interface (ur_robot_driver/ur_robot_driver_node)
  /ur_hardware_interface/
    ur_robot_state_helper (ur_robot_driver/robot_state_helper)

auto-starting new master
process[master]: started with pid [4939]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to c76a0b1a-f38c-11ea-9de7-98e7f4f4a84e
process[rosout-1]: started with pid [4950]
started core service [/rosout]
process[robot_state_publisher-2]: started with pid [4957]
process[ur_hardware_interface-3]: started with pid [4958]
process[ros_control_controller_spawner-4]: started with pid [4963]
[ INFO] [1599759656.971102237]: Main thread: SCHED_FIFO OK
process[ros_control_stopped_spawner-5]: started with pid [4966]
[ INFO] [1599759656.978755687]: Main thread priority is 99
process[controller_stopper-6]: started with pid [4974]
[ INFO] [1599759656.992165881]: Initializing dashboard client
[ INFO] [1599759657.002842177]: Connected: Universal Robots Dashboard Server

process[ur_hardware_interface/ur_robot_state_helper-7]: started with pid [4975]
[ INFO] [1599759657.026095601]: Waiting for controller manager service to come up on /controller_manager/switch_controller
[ INFO] [1599759657.030808009]: waitForService: Service [/controller_manager/switch_controller] has not been advertised, waiting...
[ INFO] [1599759657.046400249]: Initializing urdriver
[ INFO] [1599759657.046775649]: Checking if calibration data matches connected robot.
[ INFO] [1599759657.047119749]: Producer thread: SCHED_FIFO OK
[ INFO] [1599759657.047158187]: Thread priority is 99
[ERROR] [1599759657.082970298]: The calibration parameters of the connected robot don't match the ones from the given kinematics config file. Please be aware that this can lead to critical inaccuracies of tcp positions. Use the ur_calibration tool to extract the correct calibration from the robot and pass that into the description. See [https://github.com/UniversalRobots/Universal_Robots_ROS_Driver#extract-calibration-information] for details.
[INFO] [1599759657.477892]: Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [1599759657.491561]: Controller Spawner: Waiting for service controller_manager/load_controller
[ INFO] [1599759658.087965684]: Producer thread: SCHED_FIFO OK
[ INFO] [1599759658.088008791]: Thread priority is 99
[ INFO] [1599759658.556065334]: Negotiated RTDE protocol version to 2.
[ INFO] [1599759658.556513584]: Setting up RTDE communication with frequency 500.000000
[ INFO] [1599759659.567991670]: Producer thread: SCHED_FIFO OK
[ INFO] [1599759659.568048826]: Thread priority is 99
[ INFO] [1599759659.568120694]: Loaded ur_robot_driver hardware_interface
[INFO] [1599759659.611816]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1599759659.615411]: Controller Spawner: Waiting for service controller_manager/unload_controller
[ INFO] [1599759659.619328958]: waitForService: Service [/controller_manager/switch_controller] is now available.
[ INFO] [1599759659.619404919]: Service available.
[ INFO] [1599759659.619448520]: Waiting for controller list service to come up on /controller_manager/list_controllers
[INFO] [1599759659.619706]: Loading controller: pos_joint_traj_controller
[ INFO] [1599759659.620889572]: Service available.
[INFO] [1599759659.665229]: Loading controller: joint_group_vel_controller
[INFO] [1599759659.675259]: Controller Spawner: Loaded controllers: pos_joint_traj_controller, joint_group_vel_controller
[ INFO] [1599759659.732085263]: Robot's safety mode is now NORMAL
[ INFO] [1599759659.733309251]: Robot mode is now POWER_OFF
[INFO] [1599759659.909708]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1599759659.912711]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1599759659.915378]: Loading controller: joint_state_controller
[INFO] [1599759659.923278]: Loading controller: scaled_pos_joint_traj_controller
[INFO] [1599759659.959220]: Loading controller: speed_scaling_state_controller
[INFO] [1599759659.966954]: Loading controller: force_torque_sensor_controller
[INFO] [1599759659.975131]: Controller Spawner: Loaded controllers: joint_state_controller, scaled_pos_joint_traj_controller, speed_scaling_state_controller, force_torque_sensor_controller
[INFO] [1599759659.979061]: Started controllers: joint_state_controller, scaled_pos_joint_traj_controller, speed_scaling_state_controller, force_torque_sensor_controller
[ INFO] [1599759674.033885929]: Robot mode is now POWER_ON
[ INFO] [1599759676.297903724]: Robot mode is now BOOTING
[ INFO] [1599759682.035534410]: Robot mode is now POWER_ON
[ INFO] [1599759682.635326742]: Robot mode is now IDLE
[ INFO] [1599759702.553589570]: Robot mode is now RUNNING
[ INFO] [1599759878.214629918]: Disconnecting from Dashboard server on 192.168.100.1:29999
[ERROR] [1599759878.214938824]: Exception thrown while processing service call: Did not receive answer from dashboard server in time. Disconnecting from dashboard server.(Configured timeout: 1 sec)
[ INFO] [1599759878.953081252]: Robot requested program
[ INFO] [1599759878.953162364]: Sent program to robot
[ INFO] [1599759879.142996550]: Robot ready to receive control commands.

sharpe-developer avatar Sep 10 '20 18:09 sharpe-developer

roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:="192.168.100.1" reverse_port:="29999"

Is that on purpose that you use the same port number on the ROS machine for the reverse port as used for the dashboard server on the robot? It probably won't hurt, I am just curious...

Do you see any logs on the teach pendant that could relate to that? If you could extract and post the generated program as explained here, that could shed some light onto this.

fmauch avatar Sep 11 '20 05:09 fmauch

Is that on purpose that you use the same port number on the ROS machine for the reverse port as used for the dashboard server on the robot? It probably won't hurt, I am just curious...

It is on purpose but that's likely a misunderstanding on my part. I was getting this error when in manual mode

"Command is not allowed due to safety reasons, please switch robot to Remote Control mode and reconnect to port 29999"

I assumed that meant the reverse port needed to be 29999 while in remote control mode.

  • Is that incorrect?
  • Can I use the default reverse port of 50001 when in remote control mode?
  • When it states reconnect to port 29999 which port/interface is the error message referring to?
  • Is there any doc/diagram that shows the various connections that are made between the robot and ROS PC to help understand/visualize the communication setup?

Do you see any logs on the teach pendant that could relate to that? If you could extract and post the generated program as explained here, that could shed some light onto this.

I will look at the logs and extract the program when I have access to the robot next week.

sharpe-developer avatar Sep 11 '20 18:09 sharpe-developer

It is on purpose but that's likely a misunderstanding on my part. I was getting this error when in manual mode

"Command is not allowed due to safety reasons, please switch robot to Remote Control mode and reconnect to port 29999"

I assumed that meant the reverse port needed to be 29999 while in remote control mode.

That message is coming from the dashboard server itself and only says that you should reconnect the dashboard client. This is always necessary when switching between local and remote mode when there is a dashboard client connected. See the quit andconnect services to do a reconnect.

  • Is that incorrect?

See my explanation above

  • Can I use the default reverse port of 50001 when in remote control mode?

Yes, absolutely.

  • When it states reconnect to port 29999 which port/interface is the error message referring to?

See above.

  • Is there any doc/diagram that shows the various connections that are made between the robot and ROS PC to help understand/visualize the communication setup?

We've just recently published a standalone library with a more in-depth communication structure documentation.

fmauch avatar Sep 14 '20 05:09 fmauch

Do you see any logs on the teach pendant that could relate to that? If you could extract and post the generated program as explained here, that could shed some light onto this.

I did not see anything unusual when I scanned to logs on the teach pendant UI. Here are the files you requested: files.zip

sharpe-developer avatar Sep 15 '20 22:09 sharpe-developer

I cannot see any trace of the robotiq URCap inside ExternalControl.script, however, you state that the problem only occurs, when that URCap is installed.

Does the problem also occur, if you create a simple program (e.g. only containing a wait command) and load and play this?

fmauch avatar Sep 15 '20 23:09 fmauch

Does the problem also occur, if you create a simple program (e.g. only containing a wait command) and load and play this?

No. I created a program with a single wait command. When I repeat the steps to reproduce (only changing the loaded program name) the problem does not occur.

sharpe-developer avatar Sep 21 '20 20:09 sharpe-developer

Hm, ok... As stated above I don't see any interaction between the driver and the robotiq URCap, so I currently cannot provide any hints where the problem could lie,

fmauch avatar Sep 22 '20 05:09 fmauch

Seems like this might be an issue for the Robotiq URCap creator. Shall we close this issue since it seems nothing unusual on the UR robot driver side?

sharpe-developer avatar Sep 22 '20 18:09 sharpe-developer

As this only occurs when you have the external control program node in your program it does not seem to be completely unrelated.

fmauch avatar Sep 23 '20 05:09 fmauch

Hello, we are having a similar problem without using the Robotiq Urcap. Are there any news on that?

jappoz avatar Sep 05 '22 09:09 jappoz

I have got the same problem as well. When trying to experiment with the timeout mentioned in the error message, I recognized that the parameter received_timeout (https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/ROS_INTERFACE.md#dashboardreceive_timeout-required) is hard coded in the dashboard_client_ros.cpp. Another observation: The robot runs the program it should play, despite the error message. But afterwards I can't send any new Play-Commands that will be executed to the robot.

floxdeveloper avatar Sep 22 '22 08:09 floxdeveloper

Hi All,

I am also facing a similar issue mentioned above even without using the Robotiq URCap program node. If you just use the external control program node then also the same errors occurs for the first time execution. @fmauch can you please share if you have any updates here?

Thanks

MilanPadhiyar027 avatar Sep 29 '22 05:09 MilanPadhiyar027

I got it working after I removed the ExternalControl-URCap-Plugin.

floxdeveloper avatar Sep 29 '22 07:09 floxdeveloper

I got it working after I removed the ExternalControl-URCap-Plugin.

Can you please explain more about this? How can use the external control without using the mentioned plugin?

MilanPadhiyar027 avatar Sep 29 '22 08:09 MilanPadhiyar027

I am not completely sure, if my setup is correct now. But I just got under Settings > URCaps > ExternalControl > -

There might be some remaining configurations of the previously installed plugin.

I am using the Universal_Robots_ROS_Driver to control my robot, when it's in "Remote control", I have never used the "External Control"-Node of the ExternalControl-URCap.

floxdeveloper avatar Sep 29 '22 08:09 floxdeveloper

I am not completely sure, if my setup is correct now. But I just got under Settings > URCaps > ExternalControl > -

There might be some remaining configurations of the previously installed plugin.

I am using the Universal_Robots_ROS_Driver to control my robot, when it's in "Remote control", I have never used the "External Control"-Node of the ExternalControl-URCap.

which program are you configuring into the program node of the ROS driver?

MilanPadhiyar027 avatar Sep 29 '22 09:09 MilanPadhiyar027

What do you mean by program node of the ROS driver?

I am connecting my UR5 and my laptop via ethernet, turn the UR5 in remote mode and start ROS with the following command: roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=192.168.12.1 kinematics_config:=/home/user/ur5e.yaml

Afterwards I use commands like: rosservice call /ur_hardware_interface/dashboard/brake_release rosservice call /ur_hardware_interface/dashboard/load_programm home_position.urp rosservice call /ur_hardware_interface/dashboard/play

And home_position.urp contains a MoveL-program node with a position.

floxdeveloper avatar Sep 29 '22 12:09 floxdeveloper

Can you please share a screenshot of your home_position.urp program of a teach pendant? I mean in the program node there should be one node for the external program to control the robot via the ROS interface.

MilanPadhiyar027 avatar Sep 30 '22 04:09 MilanPadhiyar027

(Maybe) related to this topic there's currently https://github.com/UniversalRobots/Universal_Robots_Client_Library/pull/118.

@MilanPadhiyar027 When having the robot in remote_control mode, you can also start the driver in headless_mode. This will not require the ExternalControl URCap running on the robot.

If you could try whether https://github.com/UniversalRobots/Universal_Robots_Client_Library/pull/118 helps out, that would be very much appreciated.

fmauch avatar Sep 30 '22 04:09 fmauch

I had a similar error

"Did not receive answer from dashboard server in time. Disconnecting from dashboard server.(Configured timeout: 1 sec)".

I subsequently found line 360 in 'dashboard_client_ros.cpp' and changed it from tv.tv_sec = nh_.param("receive_timeout", 1); to

tv.tv_sec = nh_.param("receive_timeout", 2); I then did a catkin clean followed by a catkin build. But alas, the same error recurred when I called dashboard/play again. But I would have expected it to show ...(Configured timeout: 2 sec). But instead it showed the exact same message (Configured timeout: 1 sec). Indicating that my change from 1 to 2 second was not implemented actually.

By way of tracing, can someone tell me where exactly (in which file/line) was the error message "(Configured timeout: XX sec)" printed out from please? For the life of me, I just can't seem to find/trace where that was printed out from.

Any advice?

elvintoh82 avatar Oct 27 '22 15:10 elvintoh82