-
Notifications
You must be signed in to change notification settings - Fork 48
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
iCub eyes version/vergence coupling handlers #473
Comments
cc @traversaro |
Thanks a lot @xEnVrE for the clear explanation. I wonder if @randaz81 or @aerydna remember anything related to this, however it may be tricky because the development dates back to approximately four years ago. @pattacini may also want to weigh in on this, clearly with absolutely low priority when he has time given the current situation. In any case, I try to summarize what you report in a more compact way (correct me if I am wrong): EyesIt seems that gazebo-yarp-plugins'
instead of the definition used for example in robotology/community#158 and http://wiki.icub.org/wiki/Vergence,_Version_and_Disparity of:
|
cc @kouroshD |
I can confirm that the law implemented in the gaze controller's code is:
as per our documentation. |
I dug a bit in old issues, and I found the original issue related to eyes support in #149 (comment) . In that issue, apparently I am the one that reported the definition that is currently implemented, without the division by two:
Even if I was reporting the the Wiki page that contained the
Interestingly, the relative line of code in the firmware have not been modified in the meanwhile, see:
In particular, the "version" numbers are documented in https://github.com/robotology/icub-firmware/blob/fcace9ed15ad99b3a8da656d1782ab3a19c7f7f9/motorControllerDsp56f807/4DC/source_code/include/options.h#L9 , and the one related to the eyes (0x0215 and 0x0115) seems both to use the formula . PS: @xEnVrE given the complexity of the issue, probably it could make sense to move the discussion on the finger abduction to a separate issue to simplify discussions. |
Eh! If this is true, that's a very good catch then @traversaro Anyway, let me tone down my assertion above: I can confirm that the gaze controller implements the law with the 2. Now wondering what could be happening with this mismatch between the high-level and the low-level policies. Perhaps the closed-loop is saving our day? |
I updated the first comment of the issue, so that my doubts are explained more clearly. |
I think I also found the decoupling code also for ETH-based boards, but also on that case the coupling assumed is |
Ok, last stage: I think the coupling information is now stored in configuration files, but even there the assumed version coupling seems to be |
Can this be closed? |
If they work fine, ok for me! |
I am trying to understand the code of the coupling handlers for the eyes.
From physical joints space to controlled DoFs space
decouplePos
should move from the physical joint space (i.e.left
andright
eyes) to the controlled DoFs space (i.e.eyes-version
andeyes-vergence
).gazebo-yarp-plugins/plugins/controlboard/src/ControlBoardDriverCoupling.cpp
Lines 77 to 84 in 8c056e2
Then, shouldn't it be something like this?
From controlled DoFs space to physical joints space
decoupleRefPos
should move from the controlled DoFs space (i.e.eyes-version
andeyes-vergence
) to the physical joint space (i.e.left
andright
eyes)gazebo-yarp-plugins/plugins/controlboard/src/ControlBoardDriverCoupling.cpp
Lines 110 to 117 in 8c056e2
Then, shouldn't it be something like this?
Summary
To summarize, the plugin is implementing these relationships
while, according to this documentation, I was expecting
The text was updated successfully, but these errors were encountered: