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
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
Comments