ros-industrial / abb_libegm

A C++ library for interfacing with ABB robot controllers supporting Externally Guided Motion (689-1)
BSD 3-Clause "New" or "Revised" License
96 stars 54 forks source link

Add version detection #81

Closed jontje closed 4 years ago

jontje commented 4 years ago

Fix #46

As a side note, then this also means that I could add support for RW versions less than 6.07 again.

Edit: I forgot to mention that this is only a rough version estimation, based on if some fields exists or not.

gavanderhoorn commented 4 years ago

As a general comment: it's a bit strange there are no fields in EGM that are populated with this information.

Would be great as an enhancement to the base EGM .proto.

jontje commented 4 years ago

As a general comment: it's a bit strange there are no fields in EGM that are populated with this information.

Agreed.

Would be great as an enhancement to the base EGM .proto.

I have already mentioned this to the EGM developers.

gavanderhoorn commented 4 years ago

Nice.

Thanks for iterating :+1:

loongsunchan commented 4 years ago

Hi, it's so good to see you raised this issue, and then related MR was merged. So is it possible to support RW versions less than 6.07 within the master branch? I'm not sure because the README.md is still claiming that RobotWare versions less than 6.07.01 are now incompatible with abb_libegm (due to changes in the EGM communication protocol). @jontje @gavanderhoorn

gavanderhoorn commented 4 years ago

@loongsunchan: #82 is still open. While it would be possible to at least detect someone is attempting to use an older version, no support for version < 6.07 is currently available.

loongsunchan commented 4 years ago

@gavanderhoorn I have one with version < 6.07 and wondering is it possible to checkout to a previous branch so that I get an available driver?

jontje commented 4 years ago

I have one with version < 6.07 and wondering is it possible to checkout to a previous branch so that I get an available driver?

@loongsunchan, I recommend that you upgrade to a newer RobotWare version (it's free) but if that isn't an option, then you can roll back to an earlier version. Commit 880245b579eb3e0b7e0fed06391db158b79e78cb should work for you, however it will be missing some bug fixes and improvements.

loongsunchan commented 4 years ago

Thank you @jontje. Could you remind me if we have a corresponding RAPID code for this library repo?

loongsunchan commented 4 years ago

A controller code example called MotoPlus from motoman's is here.

gavanderhoorn commented 4 years ago

@loongsunchan: MotoROS works rather differently from how EGM works.

The former uses a simple_message based TCP/IP request-reply protocol with support for trajectory uploading, while the latter is a Google Protobuf-over-UDP, high-bandwidth real-time external control interface.

I'm not sure I understand why you link to the MotoPlus sources, given the context of your question.

loongsunchan commented 4 years ago

@gavanderhoorn Exactly, how about maintaining the corresponding controller RAPID EGM code as well inside this repo?

gavanderhoorn commented 4 years ago

Well, you could always ask, but seeing as it's ABB internal and proprietary code, I don't see that happening any time soon.

Oh, wait.

You're asking about the RAPID side of things.

Please see #77.


Also: please let's not keep commenting on an already merged PR about something which is only tangentially related.