-
Notifications
You must be signed in to change notification settings - Fork 310
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
Modify resource manager logic to support multiple hardware components #1391
base: master
Are you sure you want to change the base?
Modify resource manager logic to support multiple hardware components #1391
Conversation
@christophfroehlich |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1391 +/- ##
===========================================
+ Coverage 47.49% 75.91% +28.41%
===========================================
Files 41 41
Lines 3556 3363 -193
Branches 1938 1937 -1
===========================================
+ Hits 1689 2553 +864
+ Misses 459 417 -42
+ Partials 1408 393 -1015
Flags with carried forward coverage won't be shown. Click here to find out more.
|
I'm sorry but I don't get the explanation you've provided. From the code I'm guessing you are trying to implement something like "BEST_EFFORT" as defined in this message? |
@bmagyar In the following example, two hardware components have different interfaces.
Suppose we have a controller with interfaces |
I don't get the issue here. It seems to me that he Hardware Interface is not accepting this combination which is poor implementation of HW interface. So I see here nothing to fix. We can discuss if we should give a component just joint that component has. This might be a good, but not so simple solution. Can you write a test for this because I don't really understand the issue |
@chama1176 any updates on this topic? |
@christophfroehlich |
Hello all, I am facing this exact issue. Specifically, when two hardware components are active at the same time, a controller trying to claim joint command interfaces from HW component 1, also mis-triggers a call to |
You can compile and install ros2_control when building from source in your workspace, you don't have to remove the binary before. After sourcing your workspace, check with "ros2 pkg xml -t version" if the correct version was loaded. |
Okay so I tried this out and from what I can understand, the fix proposed here basically gets around the issue instead of resolving it. Specifically, the fix proposed here lets Instead what should actually happen as @destogl rightly pointed out above is we should only let a hardware component perform
Please let me know if this sounds like a good, high level idea for the fix. |
@atharva620 |
This pull request is in conflict. Could you fix it @chama1176? |
@chama1176 happy to adjust your implementation to what @atharva620 suggests? |
What does this implement/fix?
The current implementation requires that all components have the appropriate interface and will not work well if the hardware is split into multiple components.
It should only be necessary for one component to have an interface, so we will modify the logic accordingly.
Specifically, we are considering the following examples.
If you want to connect to follower_joint1/effort, it should be no problem if component 1 has the corresponding interface.
Does this close any currently open issues?
I don't have Franka Emika Panda so I am not able to reproduce the same situation completely,
but this PR may solve this issue.
#1177