ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

UR5e action server does not start

asked 2019-09-10 03:50:54 -0500

Gates gravatar image

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 ur_modern_driver 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.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2019-09-10 06:00:44 -0500

gvdhoorn gravatar image

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.

edit flag offensive delete link more

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.

Gates gravatar image Gates  ( 2019-09-10 09:33:44 -0500 )edit

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.

gvdhoorn gravatar image gvdhoorn  ( 2019-09-10 09:35:27 -0500 )edit

What is PR btw?

Gates gravatar image Gates  ( 2019-09-11 03:16:21 -0500 )edit

A PR is a Pull Request.

gvdhoorn gravatar image gvdhoorn  ( 2019-09-11 03:32:48 -0500 )edit
0

answered 2019-09-11 02:16:54 -0500

Gates gravatar image

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.

edit flag offensive delete link more

Comments

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

gvdhoorn gravatar image gvdhoorn  ( 2019-09-11 02:18:54 -0500 )edit

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.

Gates gravatar image Gates  ( 2019-09-11 02:24:18 -0500 )edit

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.

gvdhoorn gravatar image gvdhoorn  ( 2019-09-11 03:05:32 -0500 )edit

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 :)

Gates gravatar image Gates  ( 2019-09-11 03:15:34 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2019-09-10 03:50:54 -0500

Seen: 498 times

Last updated: Sep 11 '19