-
Notifications
You must be signed in to change notification settings - Fork 104
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
When the joint calibration goes wrong, some joint appears in idle with an uncertain PID configuration #990
Comments
cc @valegagge @MSECode, as we noticed this during the demo in IROS |
Will be discussing it internally during our board meeting, next Tue. |
Hi,
However, the most important thing is to make the user aware of the fact that there are safe PIDs. |
IMHO, safe PIDs are just a headache. Either the joint works, or it doesn't. "Safe PIDs" seem just a source of uncertainty. |
We discussed today this issue and in general an improvement to calibration. I'll summarize below the main ideas:
Point 4 is not strictly connected to this issue1 but we will likely attempt to address it while modifying the state machine underlying calibration to meet the other requirements. Hope I reported correctly everything we said. Feel free to add further comments / apply amendments. Footnotes
|
This looks great! One suggestion is to be careful in collisions between parts. For example, on ergoCub at the moment, we always rely on the calibration of the shoulder roll finishing before the calibration of the hip roll. There might be cases in which the hip roll is already calibrated, but the shoulder roll is not. Hence, when the hip roll goes to the home position (with the legs wide open), it might crash against the arm. This situation can be avoided if:
|
The idea is that to always home the joint, even if it is already calibrated. Anyhow, if the robot is starting close to the home position, the homing is almost a NOP, and for sure faster then actually doing the Calibration 10. |
That's the problem. At the moment, the home position is the one with the arms up and the legs wide open (and not legs in zero). The problem is that the calibration of the arm, and in particular the elbow, requires the arm to be fully stretched. Hence, if we home a leg before calibrating the elbow, the leg collides with the arm and breaks the wrist. |
Can we quickly align on Teams? |
Ok, we aligned with Stefano. What was missing to me that also in the existing case during the calibration the robot avoid self-collision only if there the calibrations starts more and less at the same time. If that was not the case for some reason (and so the arms finish calibration before the leg) we can already have collisions. |
Bug description
For the joints that use calibration 10 (https://icub-tech-iit.github.io/documentation/robot_calibration_types/amo_encoder_joint_calibration_10_details/), sometimes the initial calibration phase has some issues (the source of which is unknown). After the issue, the joint appears in idle and the PID configuration is unknown. In fact, the error is:
printed from this line:
icub-main/src/libraries/icubmod/parametricCalibratorEth/parametricCalibratorEth.cpp
Line 697 in 5245c9e
Steps to reproduce
The steps to reproduce are unclear, as the calibration 10 sometimes fails for no apparent reason.
Expected behavior
If the calibration failed in an unrecoverable way, then the joint should be not calibrated. If instead, the joint is usable, then the PIDs should not be changed, otherwise there might be a source of uncertainty with the experiments, as it is not possible to know if the PIDs are limited at low level.
Example repository
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: