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

AMC V1.13 with improved wrist Mk2 direct kinematics solver #469

Merged
merged 1 commit into from
Feb 15, 2024

Conversation

ale-git
Copy link
Contributor

@ale-git ale-git commented Feb 15, 2024

Build here: robotology/icub-firmware-build#139

I have improved the gradient descent in the direct kinematics solver (motor angles -> yaw, pitch, roll), so that now it never reaches singularity even if brutalised with a cycle of +/- 75 degrees in pitch and roll targets, at high speed, with large overshootings.

Important

The inverse kinematics algebraic solver prevents generating motor targets mechanically unreachable.

304749959-88f2a7ef-f569-4424-825d-4394c75f5352

Now the solver tries to solve for the new ypr configuration starting from the configuration of the previous control cycle, but if it leads to invalid solution it performs backtracking and reduces the step of the gradient descent. If it still fails, the initial position is resetted to (0,0,0). In this way, the average number of required steps is 4.

It is likely that all the parking procedures (startup and emergency) will result unneccessary after some time of use of the robot, and we'll be able to remove them.

@ale-git ale-git self-assigned this Feb 15, 2024
@ale-git
Copy link
Contributor Author

ale-git commented Feb 15, 2024

The digital twin is stressed with high out-of-range angle values and overshootings, and the solver never hits singularities:

spherical_wrist2.mp4

This is the real wrist during some tests - it never hitted safety parking conditions:

WhatsApp.Video.2024-02-14.at.18.21.19_46baa4b6.mp4

@pattacini
Copy link
Member

Nicely done!

The digital twin is stressed with high out-of-range angle values and overshootings, and the solver never hits singularities:

Related PR:

@ale-git ale-git force-pushed the wrist-no-singularity branch from 6c20622 to 47cde7f Compare February 15, 2024 13:58
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.

ok @ale-git, thanks

@marcoaccame marcoaccame merged commit 6ad7f5a into robotology:devel Feb 15, 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.

3 participants