-
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
base: devel
Are you sure you want to change the base?
Conversation
Update config files demo Add file for checking fineCalibrationChecker tool on an amc board Finalization for demo
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.
Fixed missing installation. cc @MSECode
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 |
…ble arm joint 15 left and right
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 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