-
Notifications
You must be signed in to change notification settings - Fork 337
doc: Added explanation of preceding/following controllers #2192
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
Conversation
Signed-off-by: Martin Pecka <[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.
not sure about the RST syntax with '', let's see what happens
Co-authored-by: Christoph Fröhlich <[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.
Thank you!
I have one more unclear point, probably because I'm pretty new to ros2_control: Could "if A's output" be replaced with "if A's command interfaces"? Or are command interfaces somehow different from controller outputs? I may be a bit confused because for Hardware, command interfaces are inputs... |
There is no "output" in the implementation actually. A following controller or hardware component exports command interfaces, and (preceding) controllers are claiming it (as output). I.e., controller A is claiming the reference interfaces of controller B in this example. Should we also phrase it like this? |
Hmm, then I'm probably missing a distinction between command interface and reference interface... |
The command interfaces are the outputs of your controller, where as the reference interfaces are the inputs to your controller so that they can produce outputs (which are commands). For example, for a diff_drive_controller, the command interfaces would be the velocities of the wheels, where as the reference interfaces can be the base twist velocity. I hope this is clear for you :) |
Hmm, still not there... It seems to me @christophfroehlich and @saikishor have conflicting views:
vs
Also, this type of code (taken from diff_drive controller) doesn't help my understanding of the distinction: reference_interfaces.push_back(
hardware_interface::CommandInterface( |
From the signal flow, sure, the controllers have an output. From the memory side they don't create an output, but they claim them. |
Okay, I probably start getting this.
Could it be
? Or is the formulation with outputs more clear? |
Yes, you are right! |
Or maybe to get the best of both the precise and the intuitive wording:
|
Signed-off-by: Martin Pecka <[email protected]>
Thanks, I've updated the wording. |
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 discussion, now it looks fine!
(cherry picked from commit 14ea4a6) # Conflicts: # controller_manager/doc/controller_chaining.rst
Resolves #2189 .
This PR adds explanation of what preceding/following controller means.
I also broke the rule and attached an irrelevant fix of grammar in the paragraph directly preceding the paragraph I added. I hope it's not a big no no :)