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
remove logical components, move hardware resources #201
Conversation
Signed-off-by: Karsten Knese <Karsten1987@users.noreply.github.com>
114e8b4
to
f566057
Compare
hardware_interface/include/hardware_interface/components/system.hpp
Outdated
Show resolved
Hide resolved
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.
Only two small comments, feel free to convert into follow-up issues if you prefer
Please wait for my review this evening... thanks! |
hardware_interface/include/hardware_interface/components/system.hpp
Outdated
Show resolved
Hide resolved
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.
I have a few questions before merging:
- I see there are read/write functions missing? How are you planning to enable those?
- Since the hardware is parsing its interfaces, they should be somehow returned to the ResourceManager. I do not see those functions. Or are you planning to do something different?
- We agreed, we want to enable some kind of logical components, how we should call them then? Just "Joint"/"Sensor"?
*/ | ||
HARDWARE_INTERFACE_PUBLIC | ||
virtual | ||
return_type read_joint(std::shared_ptr<components::Joint> joint) const = 0; |
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.
How the read is done now? Shouldn't we read to the "handles" here?
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.
see #203
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.
OK
HARDWARE_INTERFACE_PUBLIC | ||
std::vector<std::string> get_state_interface_names() const; |
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.
Shouldn't we have those now in hardware? Or how are we doing interface-matching?
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.
see #207
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.
OK
#164 depicts the roadmap I am planning to implement. The read functions are introduced in the second PR here: #203
The resource loaning is going to be implemented similar to #187 in which handles loaned to the controllers are unregistering themselves upon scope exit.
I think we agreed on the opposite to remove logical components (as the title of this PR says) and consider only hardware resources as components. The access to these handles is then done by re-using the existing "handles" we currently have. |
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.
I think we agreed on the opposite to remove logical components (as the title of this PR says) and consider only hardware resources as components. The access to these handles is then done by re-using the existing "handles" we currently have.
I think we are talking about the same thing, but currently I don't see anymore how we will implement those, or even better to say, how we should call them.
Just for the record:
- I am not 100% happy/convinced with renaming and removing "hardware" from the name, even though it is hardware representation on the end.
- I am afraid, we are getting to lock us in again as in ROS1
These are just my "feelings" and I cannot give you any sensible reason not to do this change, so I am approving this.
Thanks for the work and the explanations!
Addresses the first block of #164
The logical components such as Joint and Sensors are removed. There are only physical components now, namely Actuator, Sensor and System. These three are moved under the
components
namespace accordingly.