ROS - Universal Robot Communication - Could not get fresh data package from robot

I have connected UR5e robot (purchased Sept. 2021, mounted on a mobile robot base MiR250) to ROS host computer with Universal Robot ROS Driver. I run external control program on robot, and ur_bringup.launch on host as instructed in the driver repo. I am getting scrolling error stream of “Could not get fresh data package from robot”. The network is over wireless tcp/ip and noted the ping rate is around 2ms. Situation is better when connected via direct connection (ping rate is ~0.4ms). If comm rate is problem, is it possible to control UR arms on mobile robot over wireless communication? Any help on resolving the issue?

I also suspect this could be an issue with time synchronization, but I cannot install time synchronization on the robot controller computer.

It appears that UR ROS driver used RTDE and the problem is our wireless network speed does not match the RTDE required communication rate (default set 500Hz). I am trying to figure out a way to lower this rate. Any guidance on how to change this rate would be extremely appreciated?

You should not use the driver over a wireless network. Please start it on a machine that is connected to the robot via cable.

Could you advise if there is a way to change the (RTDE) communication rate in the ur ros driver connection setup? This is mentioned in the RTDE Guide in ‘RTDE_CONTROL_PACKAGE_SETUP_OUTPUTS (PROTOCOL V. 2)’. Also in RTDE API, ‘def send_output_setup(self, variables, types=, frequency=125):…’, which seems to be able to setup frequency… Where something like this can be called in the UR ROS driver setup - External Control, ur_bringup_launch, or somewhere else?

Changing the RTDE frequency is currently not supported by the ROS driver. It is on our agenda, though.

Thank you for prompt reply… Then maybe the best alternative for now is to use RTDE for arm control, and use ROS for everything else (camera, etc) with an onboard computer (e.g. Rasberry pi)? It is unfortunate we cannot use the ROS control framework, on which a lot has been developed (e.g. (gazebo) simulator). If you can make it possible (if lowering required frequency can resolve the current error), even at a little loss of some real-time performance, it would be a huge benefit to us. (We don’t need very high freq control like force control in most use… in mobile robot. We also have a lot built in simulator based on ROS control… hope to be able to extend to real robot…

1 Like