Robotics StackExchange | Archived questions

UR5e action server does not start

Hello everyone,

I am trying to control UR5e (URSoftware 5.3.1 version installed) using ur_modern_driver. I can compute

roslaunch ur_modern_driver  ur5_bringup.launch robot_ip:=ROBOT_IP_ADDRESS

Then I can ping my robot using

ping ROBOT_IP_ADDRESS

There seems no problem. However I cannot echo /joint_states - which means I couldn't establish the connection (I suppose).

PS: I have computed those steps assuming that I could use ur5_bringup.launch for my UR5e just for the connection since the urmoderndriver repository contains only UR3/5/10 version. If there is a kind of ur5e_bringup.launch and I am supposed to use it instead, I couldn't find that version.

What I have tried so far:

I have also an old UR5 (Polyscope 1.8 installed). I can connect it using ur_bringup package then I can echo /joint_states. When I tried using it with UR5e,

[INFO] [1568105018.652872]: Programming the robot
[INFO] [1568105018.654725]: Programming the robot at 172.31.1.146
Handling a request
[INFO] [1568105019.019390]: Robot connected
[2019-09-10 10:43:39.028796] Out: hello

The terminal stays here and cannot get this message even though I got it in old UR5:

    The action server for this driver has been started

I believe I cannot start the action server in the ur_modern_driver, neither. I am not sure if I should do something on the UR5e side to control it via ROS.

Thank you in advance for any suggestion.

Asked by Gates on 2019-09-10 03:50:54 UTC

Comments

Answers

You cannot use ur_modern_driver with e-series controllers right now.

There is an open pull request (ros-industrial/ur_modern_driver#216) which adds preliminary support, but the current focus is on the new driver for CB3 robots and e-series robots announced last year (presentation).

Either apply for the closed beta test, or use the PR with your UR5e.

Asked by gvdhoorn on 2019-09-10 06:00:44 UTC

Comments

What is PR?

I made it work by setting UR53 to remote control mode (on the upper left corner) and using ur5e_ros_control.launch (instead of ur5_bringup.launch). Now I am able to do data acquisition by rostopic echo /joint_states.

I tried using moveit now. I can visualize the robot pose in real time(ok, a couple of ms delayed) by changing the robot pose using the pendant. After setting the controller.yaml, I can get the success return for execution but there is no motion on the robot side. This may be caused because of the incompatibility of the ur_modern_driver and UR5e, as you said. I am still digging into it. I will update the answer if I get a valuable result.

And please anyone feel free if you have any suggestions at that point.

Asked by Gates on 2019-09-10 09:33:44 UTC

Do not use ur_modern_driver without the changes in ros-industrial/ur_modern_driver#216 with an e-series controller.

And even then the new driver would be recommended.

Asked by gvdhoorn on 2019-09-10 09:35:27 UTC

What is PR btw?

Asked by Gates on 2019-09-11 03:16:21 UTC

A PR is a Pull Request.

Asked by gvdhoorn on 2019-09-11 03:32:48 UTC

I can connect UR5e with ur_modern_driver by:

roslaunch ur_modern_driver ur5e_ros_control.launch robot_ip:=YOUR_ROBOT_IP

I set the network static on the UR side and select the remote control mode on the upper right corner. At this step, I can read joint angles in real time(so-called).

For controlling it, I used the template moveit package in universal_robot, ur5_e_moveit_config. I set up the controller name in controller.yaml and created joint_names.yaml for joint names. Be careful that the first joint is not the shoulder but elbow. You should have viewed it by echo /joint_states.

Then I modified the ur5_e_moveit_controller_manager.launch.xml to direct my new controller file. And finally I disabled the fake controller in the demo.launch in the moveit_config package and set up real \joint_states instead.

Asked by Gates on 2019-09-11 02:16:54 UTC

Comments

If you are happy, I'm happy, but note that you're doing this against the advice of a maintainer.

Asked by gvdhoorn on 2019-09-11 02:18:54 UTC

yes, I agree on that. Just I had to make a small demo in a very short period. I wanted to stick on ROS instead of the UR Software. I just wanted to share my solution if anyone else is in my situation, as well. But yes, thank you, it should be underlined that it is an deprecated solution.

Asked by Gates on 2019-09-11 02:24:18 UTC

I wanted to stick on ROS instead of the UR Software.

I'm confused:

  • ros-industrial/ur_modern_driver#216 contains the changes to ur_modern_driver to work towards e-series compatibility
  • the new UR & FZI driver is still a ROS driver (in fact, it reuses parts of ur_modern_driver)

both of those would be ROS through-and-through.

Asked by gvdhoorn on 2019-09-11 03:05:32 UTC

I am just saying that I wanted to use ROS (ur_modern_driver or any other package what so ever) for my small demo. I didn't want to go for the conventional UR programming by its software. My answer was for

you're doing this against the advice of a maintainer.

Whatever, the problem is solved. No need for confusion any longer, I suppose :)

Asked by Gates on 2019-09-11 03:15:34 UTC