Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add setPayload service #428

Closed
fmauch opened this issue Jun 28, 2022 · 5 comments
Closed

Add setPayload service #428

fmauch opened this issue Jun 28, 2022 · 5 comments
Assignees
Labels
enhancement New feature or request fix pending A fix for this issue is pending in an existing PR

Comments

@fmauch
Copy link
Collaborator

fmauch commented Jun 28, 2022

In the ROS1 driver we could set the payload through ROS. This is still missing.

@fmauch fmauch added the enhancement New feature or request label Jun 28, 2022
@fmauch fmauch added this to the ROS1 feature parity milestone Jun 28, 2022
@RobertWilbrandt RobertWilbrandt self-assigned this Jul 5, 2022
@fmauch fmauch added the fix pending A fix for this issue is pending in an existing PR label Oct 19, 2022
@sillkjc
Copy link

sillkjc commented Apr 19, 2023

This could be fixed easily by providing a mechanism to send ur_scripts just like the ROS1 driver. Sending ur_scripts should be the first feature added before anything else, as it lets you do anything missing.

@fmauch
Copy link
Collaborator Author

fmauch commented Jun 20, 2023

Note: There is a set_payload service available in the gpio controller that should be working. Also, with #721 a direct URScript interface will be available soon.

Edit: I just checked again, and setPayload is working with the current version of the driver. Closing this.

@fmauch fmauch closed this as completed Jun 20, 2023
@wafts95
Copy link

wafts95 commented Nov 29, 2023

Hi @fmauch, we are trying to use the setPayload service on a UR10e and latest binary for ROS2 Humble.
What are the units for the Mass and Center of Gravity (x, y, z) in the ROS API?

@RobertWilbrandt
Copy link
Collaborator

They follow the general ROS unit standards (REP 103): Meters for the CoG displacement from the tool mount and kilogramms for the mass.

@wafts95
Copy link

wafts95 commented Nov 30, 2023

Oh this is interesting actually.

The fact that it is in meters likely causes confusion at first, as the API on the UR control panel is set to millimeters, and the ur_robot_dtivet API on the ROS side has no mention of units. This has caused me, and others in my team, to believe the ROS API is in millimeters, and we input values that are far too large for the driver. The robot entered violation immediately, but we were not certain why it was doing so. We figured it out last evening, but not without lots of confusion.

Another point of confusion we did not get at first: the robot must be running the external_control UR_Caps to allow for a change of payload. This is clear once one reads the source code, but at first it is confusing when one does not run the external control program, as 1- the io_and_status_controller/set_payload service returns Success even though the payload was is not actually changed, and 2- the io_and_status_controller/set_io service actually sets the IOs successfully, and has a similar namespace, giving us the impression that something is wrong with the set_payload service.

I think what I am trying to suggest is to have the payload service fail when the payload is not set, and give an explanation (e.g. when external contril is not running), and/or some documentation of the units and the requirements to run the services in the ur_robot_driver package, because to the best of my knowledge these are not existing, unless these are present and I missed them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fix pending A fix for this issue is pending in an existing PR
Projects
None yet
Development

No branches or pull requests

4 participants