-
Notifications
You must be signed in to change notification settings - Fork 314
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 a semantic command interface to "semantic_components" #1945
add a semantic command interface to "semantic_components" #1945
Conversation
RQ: not build yet, issue with rest of repos for build. Will rebase on previous TAG for now.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1945 +/- ##
==========================================
+ Coverage 89.34% 89.36% +0.01%
==========================================
Files 132 138 +6
Lines 14688 14771 +83
Branches 1269 1270 +1
==========================================
+ Hits 13123 13200 +77
- Misses 1090 1098 +8
+ Partials 475 473 -2
Flags with carried forward coverage won't be shown. Click here to find out more.
|
I've thought about it a little bit, and I'm not sure if we should add such a component when the GPIO command controller, which is very generic, is already available |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR including nice tests .
We discussed this shortly in todays WG meeting, and approve this addition.
I can understand the input @Wiktor-99, but imho
- it is an obvious extension of an existing concept
- it could also use joints and not only gpios
Please add it to the release_notes and some minor comments.
controller_interface/test/test_semantic_component_command_interface.cpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/led_rgb_device.hpp
Outdated
Show resolved
Hide resolved
Great! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall, I just added some comments to be in line with #1940
Maybe you have to format my suggestions once again to satisfy pre-commit.
controller_interface/include/semantic_components/led_rgb_device.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/led_rgb_device.hpp
Outdated
Show resolved
Hide resolved
…e.hpp Co-authored-by: Christoph Fröhlich <[email protected]>
…onent_command_interface.hpp Co-authored-by: Christoph Fröhlich <[email protected]>
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/led_rgb_device.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
This pull request is in conflict. Could you fix it @tpoignonec? |
Co-authored-by: Sai Kishor Kothakota <[email protected]>
@saikishor I removed the constructor as discussed. Due to these changes, the MyCommandInterface(const std::string & name)
: SemanticComponentCommandInterface(name, {name + "/my_io_1", ... , name + "/my_io_N"})
{
} However, Regardless, LGTM at this point. PS: feel free to revert the last commit if needed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Just some minor comments.
controller_interface/include/semantic_components/led_rgb_device.hpp
Outdated
Show resolved
Hide resolved
controller_interface/include/semantic_components/semantic_component_command_interface.hpp
Outdated
Show resolved
Hide resolved
…onent_command_interface.hpp Co-authored-by: Sai Kishor Kothakota <[email protected]>
controller_interface/include/semantic_components/led_rgb_device.hpp
Outdated
Show resolved
Hide resolved
…e.hpp Co-authored-by: Sai Kishor Kothakota <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Thank you @tpoignonec for all the followups.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
We have an (outdated) list of semantic components here:
https://control.ros.org/rolling/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.html#sensors
Where should we put this in the docs (can be a follow-up PR)?
Hi,
Is there any interest in defining a
SemanticComponentCommandInterface
analogous to theSemanticComponentInterface
, but for hardware command interfaces?Applications could include, among others, commonly used simple write-only devices such as LED, buzzers, beepers, etc.
It could also be used for GPIO arrays the same way the state interface can be used to read them in a standarized fashion.
This PR includes such a semantic component, as well as a basic example with a 3-channel (R/G/B) LED with two scenarios:
<name>/r
,<name>/g
, and<name>/b
Additionally, basic tests are proposed.