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

Support for combined robot hardware #34

Merged
merged 4 commits into from
Nov 20, 2019

Conversation

asierfernandez
Copy link
Contributor

We propose the minimum set of changes to use the driver together with combined_robot_hw.

In our setup we use a haptic device with an UR robot using the combined_robot_hw and it works fine. This change doesn't break anything, and even if this is not the final solution, at least someone could use it as we do.

For example, we see some limitations to how the combined_robot_hw together with the driver handles read operations. If I'm correct read is a blocking operation, and the combined_robot_hw executes this operation for all hardwares consecutively. Even if I haven't tested yet, if we combine multiple arms together with with some extra hardware it won't work properly.

There are many things to discuss about combined_robot_hw, and it would be good to start discussing about it, if there is a real interest of course.

ur_robot_driver/CMakeLists.txt Outdated Show resolved Hide resolved
ur_robot_driver/hardware_interface_plugin.xml Outdated Show resolved Hide resolved
ur_robot_driver/CMakeLists.txt Outdated Show resolved Hide resolved
@gavanderhoorn
Copy link
Contributor

Besides logistical issues (such as with the libraries) it would also seem the way a combined robot hw interface is orchestrated would be something to think about (as mentioned by @asierfernandez).

In the current implementation the robot controller mostly dictates control flow. I'm not sure how suitable that is when it is part of a larger composite.

@fmauch
Copy link
Collaborator

fmauch commented Nov 14, 2019

Besides logistical issues (such as with the libraries) it would also seem the way a combined robot hw interface is orchestrated would be something to think about (as mentioned by @asierfernandez).

In the current implementation the robot controller mostly dictates control flow. I'm not sure how suitable that is when it is part of a larger composite.

Yes, we could definitely discuss this (Separately from this PR?)

We deliberately decided to let the robot dictate the timing to make real-time operation a bit easier.

@asierfernandez @gavanderhoorn Is it fine with you to merge this PR without this being tackled for the moment and we can discuss this in a separate issue?

Copy link
Collaborator

@fmauch fmauch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine to me

@fmauch fmauch mentioned this pull request Nov 14, 2019
@gavanderhoorn
Copy link
Contributor

If the currently supported use-cases are still supported, we could consider merging this in as an initial effort towards CombinedRobotHW compatibility.

It may be nice though to explicitly document the fact that the robot controller dictates control flow for this plugin and that all reads() are blocking.

@asierfernandez
Copy link
Contributor Author

It's fine for me to merge it and creating a different issue #38 for discussion.
The goal of opening the issue was partially to create a discussion about this topic.

@fmauch
Copy link
Collaborator

fmauch commented Jan 27, 2020

@asierfernandez

#86 implements a non-blocking read. Would you agree on the implementation there?

@fmauch fmauch mentioned this pull request May 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants