rqt_jtc: Check for interface type when adding joint names#2231
Conversation
The JTC RQT gui extracts joint names from the required state interfaces of a controller matching the JTC name pattern. If that controller doesn't contain limits for all joints, that controller will be ignored. Therefore, of the controller has setup a speed scaling state interface, that will show up in the list of joints, while there are no limits configured. This commit only adds state interfaces which are of type "position" or "velocity" to the list of joints.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2231 +/- ##
==========================================
- Coverage 84.80% 84.78% -0.02%
==========================================
Files 153 152 -1
Lines 15244 15212 -32
Branches 1321 1322 +1
==========================================
- Hits 12927 12897 -30
+ Misses 1835 1833 -2
Partials 482 482
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Have you seen #1131, is this related? |
Yes, and yes, but no. The problem described there, is similar, as in the past, basically all joints in the URDF were checked. That was fixed in #1146 as a breakout of #1131 as far as I can see. Since then, only joints in the controller's The issue described here is that the speed scaling interface is a required state interface of the controller if reading speed scaling is enabled. Another approach would be to use the required command interfaces, instead, but that would still leave the problem if one configured setting speed scaling from the controller. |
christophfroehlich
left a comment
There was a problem hiding this comment.
Thanks for clarification, the change makes sense. As we discussed in the PMC meeting, position should be sufficient
…r/joint_trajectory_controller.py Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
(cherry picked from commit 3e66d39)
(cherry picked from commit 3e66d39)
The JTC RQT gui extracts joint names from the required state interfaces of a controller matching the JTC name pattern. If that controller doesn't contain limits for all joints, that controller will be ignored. Therefore, of the controller has setup a speed scaling state interface, that will show up in the list of joints, while there are no limits configured.
Thus, the GUI cannot be used if the controller is setup with a speed scaling state interface.
This commit only adds state interfaces which are of type "position" or "velocity" to the list of joints.