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

Improve primary interface #171

Closed
wants to merge 11 commits into from

Conversation

fmauch
Copy link
Collaborator

@fmauch fmauch commented May 4, 2020

This branch will

I am not sure yet, to which extent all of those things will be tackled in this MR, but it will definitely be a start from which such features could easily be implemented.

@gavanderhoorn
Copy link
Contributor

High-level comment: one of the pain points with ur_driver and ur_modern_driver was the reliance on parsing the binary protocol used on tcp://:30002 et al. This was a pain point, as the binary protocol changes/changed between updates.

The approach employed here in ur_robot_driver was to use RTDE to avoid doing this and thus not have to play catch-up to changes in the protocol as with RTDE the consumer is in control of which fields are part of the messages.

This PR seems to introduce more binary parsing: have measures been put in place to avoid problems with these parsers if/when updates are released, or are the packets parsed expected to "never" be updated?

@fmauch
Copy link
Collaborator Author

fmauch commented May 5, 2020

High-level comment: one of the pain points with ur_driver and ur_modern_driver was the reliance on parsing the binary protocol used on tcp://:30002 et al. This was a pain point, as the binary protocol changes/changed between updates.

Yes, I am very well aware of that, but unfortunately there are features only available in those interfaces. And at least some of them will not be moved to other interface, as for example the controller is only sending script execution feedback on the particular socket connection that has sent the script. The benefit from getting this feature currently outperforms those concerns from my point of view, as many users seem to struggle with sending script code.

The approach employed here in ur_robot_driver was to use RTDE to avoid doing this and thus not have to play catch-up to changes in the protocol as with RTDE the consumer is in control of which fields are part of the messages.

This PR seems to introduce more binary parsing: have measures been put in place to avoid problems with these parsers if/when updates are released, or are the packets parsed expected to "never" be updated?

This is currently only a draft implementation and no, there's no such thing currently. But it is definitely on the feature list. I plan to do a similar approach as done in the ur_modern_driver. In combination with integrated testing at UR (which we currently try to push) we hope to keep the pain at developer's side, at least :-)

@fmauch
Copy link
Collaborator Author

fmauch commented Sep 15, 2020

Closing in favor of UniversalRobots/Universal_Robots_Client_Library#26

@fmauch fmauch closed this Sep 15, 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.

2 participants