0
$\begingroup$

Rosanswers logo

For my project, an UR5e needs to follow a spline. At the end of the spline is needs to move into a certain direction with a constant force. The spline is succesfully executed using the cartesian path planning in moveit. It is still a bit bumpy, but a least it works. However, I am struggling with the constant force part. As far as I know moveit has no implementation of force control. The ur_rtde library (see forcemode https://sdurobotics.gitlab.io/ur_rtde/examples/examples.html) has a built in function for this, but this means that I cannot use moveit anymore (including the collision detection) since moveit requires external control on the teach pendant. Is there anybody that has experience using moveit and force control on an UR5e robot?

I am using ROS melodic on ubuntu 18.04 with the universal robot ros driver (https://github.com/UniversalRobots/Universal_Robots_ROS_Driver (kinetic-devel).


Originally posted by Bvm on ROS Answers with karma: 13 on 2020-09-11

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

As far as I know moveit has no implementation of force control.

Correct. It is a planning framework which mostly deals with kinematics.

The ur_rtde library (see forcemode https://sdurobotics.gitlab.io/ur_rtde/examples/examples.html) has a built in function for this, but this means that I cannot use moveit anymore (including the collision detection) since moveit requires external control on the teach pendant.

What you could potentially do is use the Dashboard server integration in Universal_Robots_ROS_Driver to enable and disable the external control URCap when needed.

If you're not controlling the robot "from ROS", the URCap does not need to be running. So if you want to use something else for a bit, that should be possible, and was actually one of the main design drivers of the new driver: make it possible to control the robot externally, but don't take over control completely, only when it is desirable.

Note that the URCap does not need to be running to receive status information from the robot, only to control it. So technically it would be possible to keep at least collision detection working (but you'd have to put something together yourself, using just the monitoring parts of MoveIt).

Main uncertainty here is whether Universal_Robots_ROS_Driver can deal with another RTDE client changing the active recipe/configuration (and vice-versa of course). That would be something to check.


Originally posted by gvdhoorn with karma: 86574 on 2020-09-12

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by Bvm on 2020-09-14:
Thank you for the quick answer. I did not know about the dashboard server, definitely going to try that this week.

The Universal_Robots_ROS_Driver still works with two connections. By keeping external control off I am indeed able to send force commands to the robot using the ur_rtde library, while Moveit is running in the background. By combining this with the dashboard server integration I should be able to use both the cartesian path planning of Moveit and the force control of ur_rtde so thanks a lot!

Comment by waltergun on 2022-08-05:
Did you find any solution using ROS? Thank you.

Comment by Bvm on 2022-08-12:
I was not able to apply advanced forced control in ROS since these features were not available. I tried the abovementioned solution to switch between the external control and the python ur_rtde library, which worked okay, but ofcourse not a real robust solution. In the end, I decided to only use the ROS driver and made some simple force feedback using the /wrench topic.

Comment by waltergun on 2022-08-12:
@Bvm, thank you. What results have you achieved? Did you achieved the stable force when following the spline?

Comment by bach on 2023-02-09:
Do you know what is the measurement unit of the data from /wrench? I thought N, but I get very high values for small forces.

Comment by gvdhoorn on 2023-02-10:
As per REP-103: Standard Units of Measure and Coordinate Conventions, Wrench uses N and Nm.

That would be the message definition. Whether the publisher you receive messages from adheres to this convention would be a different question.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.