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

about IDQ calibration #1

Open
waiyc opened this issue Oct 4, 2019 · 10 comments
Open

about IDQ calibration #1

waiyc opened this issue Oct 4, 2019 · 10 comments

Comments

@waiyc
Copy link

waiyc commented Oct 4, 2019

Hi,

I am trying to implement the IDQ hand eye calibration with python but facing some issues when translating your code into python.
Do you mind to share some insight and have some discussion?

@kpach
Copy link
Contributor

kpach commented Oct 4, 2019

Yes, of course. I am not sure what kind of issues you are facing, but there is a problem on the top of my head. One of the possible problems is the format of quaternion. Some quaternion operations in MATLAB use [qx, qy, qz, qw] format, but some other function written by me or some other paper uses [qw, qx, qy, qz] format. Therefore, it might require some manual change between the two formats.

Hope this helps.

@waiyc
Copy link
Author

waiyc commented Oct 4, 2019

Thank you for the reply.

I have translated it into Python but currently the computed hand eye transformation is not correct. I wanted to cross check the same input with you MATLAB IDQ solver but i am having undefined issue with the 'rodrigues' function in the getDualQ function.

I am not familiar with MATLAB, is the rodrigues a built in MATLAB function or a self defined function?

@kpach
Copy link
Contributor

kpach commented Oct 4, 2019

Sure, no problem.

'rodrigues' function converts the rotation representations between "rodrigues" (3x1 vector) and "a rotation matrix" (3x3 matrix). I believe you can find the script in this link.
https://ww2.mathworks.cn/matlabcentral/mlc-downloads/downloads/submissions/48405/versions/3/previews/LFToolbox0.3/SupportFunctions/CameraCal/rodrigues.m/index.html

@waiyc
Copy link
Author

waiyc commented Oct 5, 2019

Thank you for the information!
I created a function script based on the code in the link and it solved the undefined issue for the rodrigues.
However, there are some more undefined functions such as skew3.
Besides, I also foresee the logm function in HandEye_ST.m will having undefined issue too.

Do you mind to share some knowledge on where and how to search those function in mathworks forum?
I have tried to search the keyword skew3 in the mathwork file exchange but nothing was found.
Thank you for your patient and time.

@kpach
Copy link
Contributor

kpach commented Oct 9, 2019

No worries, I am happy to help.

skew3.m = Change a 3x1 vector into a 3x3 skew symmetric matrix
logm and expm are MATLAB functions computing Matrix logarithm and Matrix exponential, respectively. The document on Mathworks on these functions might not be comprehensive, so I think it might be better to look for a closed form elsewhere.

@waiyc
Copy link
Author

waiyc commented Oct 9, 2019

Thank you for the reply!
I have created function script to solved those undefined function issues.

One last issue that I encountered during cross checking my Python code vs your MATLAB script is the V output from svd() function in MATLAB and numpy.linalg.svd() will be different for some inputs.

I understand that there can be many combination to form U and V. However, I find that when the V is different result will not be accurate. Therefore, do you have any ideas on how to modify numpy or is there any Python svd() function will output the same result as MATLAB ?

@kpach
Copy link
Contributor

kpach commented Oct 15, 2019

MATLAB's svd function gives you [U, S, V]. In order to recover the matrix, you have to multiply in this order: U * S * V'.

@bokku01
Copy link

bokku01 commented Aug 28, 2020

Hi.
I am a student in South Korea. I read your paper and I just tried to run Matlab code but
I was stuck with some problems.
Matlab says HandEye_test_convergence' is absence in file 'syntheticDataConvergenceRate' and also 'KUKAOP_transform' is in 'syntheticDataKUKAmotion' file.

Do you mind to help me?

thank you in advance.

Bokku

@kpach
Copy link
Contributor

kpach commented Aug 28, 2020

Apology. The missing files have now been added. Let me know if you still have any problems.

@bokku01
Copy link

bokku01 commented Sep 2, 2020

It works well. thank you!

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

No branches or pull requests

3 participants