-
Notifications
You must be signed in to change notification settings - Fork 41
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
add test for end-coords-interpolation #325 #326
base: master
Are you sure you want to change the base?
Conversation
In
before
should recreate more accurately the conditions I tried. Sorry about forgetting this in the original comment. |
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.
:end-coords-interpolation-pass-time related:
- also needs to be added on
:angle-vector
- should also be used when pushing to interpolated-tms (L494, L498)
ik-method related:
- ec-prev goes forward every time ik-method loop (L453) is repeated, causing some problems and inaccuracies.
- For instance, when executing
test-angle-vector-sequence-end-coords-interpolation-head
, on the second loop ec-prev becomes equal to ec-current, making target-limbs go to nil and the interpolation to be done as if :end-coords-interpolation were nil (and with time set to 50, since that wasn't fixed).
@Affonso-Gui sorry for late and thank you for your in depth investigation , check out our latest commit 949b526, 60d8b26 |
Here you can see the result of executing the two test functions with the code. The first call makes the robot move weirdly as always, because pr2-interface divided the angle-vector sequence into four, instead of the original two. The second call ends up in error. The error in the second test function is caused because av-prev is not reseted to av-prev-orig during ik-method loop, making the robot try to move back to the original position by ik, and failing because it cannot use the torso. (Actually it appears that the torso cannot be used at all for calls like Here is the result after fixing the problem. end-coords-interpolation-pass-time also seems to be working fine, although high values can show some unpredictable behavior. Please note how the head and torso doesn't move at second test, since the ik-method That being said,
This would also probably make L454 unnecessary (needs verification).
Honestly speaking, I do not really know if choosing ik-method like that is a good strategy or not. |
Updated #325 to behave properly when over-360 degree turns are present. Splitting the angle-vector by midpoint and/or midcoords did not went well, so I opt for interpolating with :sub-angle-vector and adding the difference in the end. Can be verified with:
or
Interpolation interval and time can be controlled with :end-coords-interpolation-steps and :min-time . |
add test for end-coords-interpolation problem #325