Dashboard server disconnects on first execution after robot restart
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.
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.
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 29999which 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.
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 29999which 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.
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
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?
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.
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,
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?
As this only occurs when you have the external control program node in your program it does not seem to be completely unrelated.
Hello, we are having a similar problem without using the Robotiq Urcap. Are there any news on that?
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.
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
I got it working after I removed the ExternalControl-URCap-Plugin.
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?
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.
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?
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.
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.
(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.
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?