-
Notifications
You must be signed in to change notification settings - Fork 7
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
Map controlled joints to motor ids in raw subdevices #171
Comments
On a bigger picture, IMHO it'd preferable having #162, #20 and #74 solved prior to starting the CAN-enabled version of #176. Not sure yet how these parts will play together and I'm sorry that it's taking so long at #162 (a YARP upstream PR originated from that); as spoken 🎅2🎅, I'm interested in the overall goal and willing to work on it. |
Agreed, I've updated their priority labels and marking as blocked by them. |
raw
index 0 wasn't a great idea
Switching block status and updating title. This issue aims to enable single CanBusControlboard subdevices as control boards on their own that wrap another set of subdevices. Such case arised with #176: the Dextra hand would act as a single CAN node, but up to six embedded motor joints need to be individually controlled. Considering the approach detailed in #211, such parent device would be given the board role. Our current FakeControlboard shall become the fake counterpart of the future DextraControlboard device (#192). |
Not sure this was my original intention - CanBusControlboard's subdevices might be indeed control boards on their own (see DextraCanControlboard at #227), but they are not intended for hosting an additional layer of raw devices (well, they tecnically can do that, but this fact should not be known to the wrapping CanBusControlboard). I'm dropping the board role proposal in favor of exploiting the most from standard YARP motor intefaces. Per the original intention expressed by OP, this issue should aim to enhance the id mapping mechanism, see #211 (comment) and #211 (comment):
|
Ready at de80526. Now, CanBusControlboard maps all known motor interfaces understood by ControlBoardWrapper (see inheritance diagram) , whereas raw CAN subdevices use all group commands (previously not implemented, e.g. |
Follow-up: this helper tool has been refactored into its own library, DeviceMapperLib, and thoroughly covered by unit tests in testDeviceMapperLib.cpp. See also #230 regarding parallelization. |
Maybe enforcing passing index 0 to
raw
wasn't a great idea, and passing the actualint
was a good idea for debugging.Possibly related: #162 ...or not. What I refer to is that looking at
fakeMotionControl
implementation, there was a template mechanism, etc. We should look at this for inspiration before doing anything there.Marking as blocked by #162 for now, but not sure.
The text was updated successfully, but these errors were encountered: