Skip to content
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

Fix diagnostic for AEA encoder and calibration type 10 #540

Merged
merged 2 commits into from
Dec 10, 2024

Conversation

MSECode
Copy link
Contributor

@MSECode MSECode commented Dec 2, 2024

This PR solves issue related to calibration type 10 for joints that use AMO encoders.
Moreover we solve the diagnostic problem related to AEA encoders described here: #533

Precisely, it brings the following improvements and fixes:

  • abs encoder diagnostic is now more general
  • calibration type 10 timing and pipeline is now more robust, making the joint always reaching the hard-stop position correctly, if it ends before the calibration timeout.

Tests done on the robot are collected here:

The issues that interested the AMO encoders and the calibration type 10 are collected here:

It is related to:

@MSECode MSECode marked this pull request as draft December 2, 2024 16:32
@MSECode MSECode self-assigned this Dec 2, 2024
@MSECode MSECode force-pushed the feature/fixDiagnosticAEA branch from fcec5f6 to 174ba74 Compare December 2, 2024 16:33
@MSECode MSECode changed the base branch from master to devel December 2, 2024 16:33
Added debug lines for testing the calibration type 10
Update calibration type 10 procedure making more robust and removing errors at restarting
@MSECode MSECode force-pushed the feature/fixDiagnosticAEA branch from 174ba74 to dddd255 Compare December 2, 2024 16:37
Copy link
Contributor

@ale-git ale-git left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is fine for me, I asked about a detail for the sake of curiosity.

@@ -626,7 +626,7 @@ BOOL JointSet_do_wait_calibration_10(JointSet* o)
}
else
{
if (AbsEncoder_is_hard_stop_calibrating(encoder))
if (AbsEncoder_is_hard_stop_calibrating(encoder) && (!encoder->state.bits.not_initialized))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @MSECode, can it happen that a calibration command is sent before the encoder is configured?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, it happened to me sometimes. I'm not sure why, but it was most likely to happen after restarting the yarprobotinterface without switching off and on the boards.
This caused the problem of not allowing the joint to reach the hw limit.
If you wanna dig on that I've collected more details and tests done here: #529 (comment), #529 (comment)

@marcoaccame
Copy link
Contributor

hi @MSECode, this PR triggers a lot of linked PRs. Let me have a look at them.

Copy link
Contributor

@marcoaccame marcoaccame left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it seems fine

Copy link
Member

@valegagge valegagge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@marcoaccame marcoaccame merged commit b3d75c0 into robotology:devel Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants