-
Notifications
You must be signed in to change notification settings - Fork 73
iCubGenova11 add files for fineCalibrationChecker #748
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
iCubGenova11 add files for fineCalibrationChecker #748
Conversation
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.
Summary of Changes
Hello @MSECode, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
I've added necessary configuration files to enable the use of the fine calibration checker on the iCubGenova11 robot. This primarily involves setting up a new calibration checker device, configuring a raw data publisher for the left arm, and integrating these new components into the robot's main configuration. These changes are intended to support the PI demo and provide tools for future calibration tests and adjustments.
Highlights
- Calibration Order Adjustment: I've updated the calibration order for both the left and right arms by removing the last element '15' from the final group in their respective calibration XML files. This adjustment likely refines the calibration sequence for these robotic arms.
- New Fine Calibration Checker Configuration: I've introduced a new configuration file for a 'fineCalibrationChecker' specifically for the iCubGenova11's left arm. This file includes detailed parameters for axes, gold positions, calibration deltas, and encoder resolutions, which are crucial for precise calibration checks.
- Raw Values Publisher for Left Arm: I've added a new wrapper configuration that sets up a raw values publisher for the left arm. This will allow raw encoder data to be published, which is essential for the fine calibration checker to function correctly.
- System Integration of New Components: I've integrated the newly added fine calibration checker and raw values publisher configurations into the main 'icub_all_no_legs.xml' file, ensuring they are loaded and active when the robot system starts up.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
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.
Code Review
This pull request adds configuration files for the fineCalibrationChecker
on iCubGenova11
. The changes look mostly correct for enabling this feature. However, there is a critical issue with a misnamed wrapper file, which will cause configuration problems. I've also pointed out some minor inconsistencies in the new checker configuration file that could be improved for better clarity and maintainability. Please see my detailed comments.
iCubGenova11/wrappers/motorControl/right_arm-mc-rawval-nws_wrapper.xml
Outdated
Show resolved
Hide resolved
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.
Hi @MSECode
CI failed with the following reports:
Also, there's one critical comment raised by @gemini-code-assist requiring your attention.
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.
A couple of doubts regarding joint 15, @MSECode
@@ -31,7 +31,7 @@ | |||
<param name="startupPosThreshold"> 2 2 2 2 90 90 90 90 90 90 90 90 90 90 90 90 </param> | |||
</group> | |||
|
|||
<param name="CALIB_ORDER">(0 1 2 3) (4) (5 6 7) (8 9 11 13) (10 12 14 15)</param> | |||
<param name="CALIB_ORDER">(0 1 2 3) (4) (5 6 7) (8 9 11 13) (10 12 14)</param> |
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.
@MSECode, was this change intended?
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.
First commit I did was from the robot. Thus it might be due to changes left there that I took when checking out. I know that lately there were some problems with the finger. Thus I'm not sure if it was due to that to remove the last joint. Anyway I can remove that change from this PR and we can double check that directly on the robot.
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.
Anyway I can remove that change from this PR and we can double check that directly on the robot.
Yep, thanks! I'd go with this solution.
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.
I can confirm, they are disabled due to:
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.
The fact that they're disabled locally to the robot doesn't imply that they should be upstream in the repo. Something to consider with care, I'd say.
I would still keep 15 upstream.
iCubGenova11 follows a different workflow/pace wrt ergCubs.
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.
CI fails now while checking XML schema:
/dependencies/install/share/ICUBcontrib/robots/iCubGenova11/wrappers/motorControl/left_arm-mc-rawval-nws_wrapper.xml:4: element device: Schemas validity error : Element 'device', attribute 'type': [facet 'enumeration'] The value 'rawValuesPublisherServer' is not an element of the set {'controlBoard_nws_yarp', 'controlBoard_nws_ros', 'controlBoard_nws_ros2'}.
/dependencies/install/share/ICUBcontrib/robots/iCubGenova11/wrappers/motorControl/left_arm-mc-rawval-nws_wrapper.xml:8: element paramlist: Schemas validity error : Element 'paramlist': This element is not expected. Expected is ( param ).
/dependencies/install/share/ICUBcontrib/robots/iCubGenova11/wrappers/motorControl/left_arm-mc-rawval-nws_wrapper.xml fails to validate
Wrappers XSD check failed!
The schemas we're currently enforcing are available at: cc @MSECode |
Hi @MSECode You may want to fiddle with the XML schemas on your local system instead of relying on the CI itself. The dry-run material is contained in https://github.com/robotology/robots-configuration/tree/master/tests/dry-run:
|
Now that robotology/icub-main#1034 is merged, I'm regenerating the docker image: This way, the "dev" dry-run (i.e., the proper dry-run of the YARP devices) should work. |
Hi @MSECode Can you please make a push, even an empty push, to trigger the CI afresh, after having regenerated the docker? Then, we will look into the problems that may potentially occur again. |
The following plugin is not available yet from the building:
Do we need to enable it somehow? |
Yes, |
I'll do that then, with the docker. |
…tionChecker As per title. This would come handy since these devices has been added to the icub_all.xml of iCubGenova11: - robotology/robots-configuration#748 Xref: - robotology/icub-main#1034
Done 👍🏻 |
To be sure of the alignment of resources, we'd need a fake push to this PR. |
The "dev" dry-run now fails with this error: qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. which is obviously related to the use of graphics in a headless environment. Options:
My preference: 2 and then 3. That said, there's still an error with the "xml" checker as pointed out in #748 (comment). |
Putting the PR back to draft because of #748 (comment). |
See: |
This comment was marked as resolved.
This comment was marked as resolved.
Oks, |
Hi @pattacini,
Specifically the situation is the following:
Thus, an option of what to do now is to modify temporary the
where we add a temporary if clause to let the checks on the We can also think to add a new method for checking wrappers that does not have a related remapper, which thus have a device different from the target specified in the calibrators. |
Thanks @MSECode and @martinaxgloria for the tests and the exhaustive report! I would honestly favor the second solution:
The reasons for that:
|
I've updated the |
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.
Very nicely done, and quite quickly!
@MSECode, I'm asking to increase the verbosity of a message to better understand which device is skipped.
See my inline comments: there are a couple.
Thanks @MSECode! |
The CI reports:
Is cc @MSECode |
Oks, that is due to the fact I added to the debug message the name of the device parsed from this lines: robots-configuration/iCubGenova11/wrappers/motorControl/left_arm-mc-rawval-nws_wrapper.xml Lines 7 to 9 in 733e475
If it is much clear to the end user I can add the name we used for the device taken from this line: robots-configuration/iCubGenova11/wrappers/motorControl/left_arm-mc-rawval-nws_wrapper.xml Line 4 in 733e475
|
Yep, I think it would be much clearer. |
Yes, sure, I'll check the output of all tests. I'll keep the new name just for the debug. The check for the wrappers that have a related remapper must be done using the remapper device name, since it is the only one shared among calibrator and wrapper. |
Locally, I've got the following output:
Here the full output for our test. If it is ok, I'll commit right away. |
Super! Go ahead. Warning Because of #750, we have now conflicts to solve. |
Update config files demo Add file for checking fineCalibrationChecker tool on an amc board Finalization for demo
Fixed missing installation. cc @MSECode
…ble arm joint 15 left and right
Co-authored-by: Ugo Pattacini <[email protected]>
733e475
to
704f71f
Compare
This PR adds file that are needed for using the fineCalibrationChecker on iCubGenova11
They are mainly useful for the PI demo but it might be useful to have them for further tests or for actually using the fine calibrator when we observe calibration errors with the robot