Wrong Hand-Eye Calibration Results
Closed this issue · 3 comments
Thanks a lot for making the code / work publicly available !
After installing the packages I followed the Step-by-Step Calibration Tutorial.
I am using a UR5 Robot together with this ur driver, driving at various positions, recording the published transformations between the base link and the end-effector in a ros bag.
At the same time I have an aprilgrid board mounted at the robot and a camera placed next to the robot, recording frames in a ros bag ( the board looks a bit weird since it is truncated ).
From a camera viewpoint:
Both transformation ( Base <-> Hand and World <-> Eye ) seem to be correct. However, performing the dual-quaternion-based hand-eye calibration results in a completely wrong calibration ( does not make any sense at all ).
I tried the same procedure with a camera mounted on the robot and the grid being fixed somewhere in the world, however the calibration does not make any sense either.
Am I using the calibration procedure as intended or am I missing something crucial ?
Thanks for your help !
All tests do pass.
When building the repository I had some linker issues:
Which resolved after I added
target_link_libraries(${PROJECT_NAME} -lblas -llapack -lsuitesparseconfig)
to the CMakeLists.txt
file in
[...]/workspace_calibration/src/aslam_optimizer/aslam_backend_expressions
Seems to be more of an issue in the tf-data from the controller rather than something in the calibration code.
FYI, linker issues are related to this issue ethz-asl/suitesparse#29
A more clean solution is to revert to this commit of suiteparse until it's fixed https://github.com/ethz-asl/suitesparse/tree/df17ac067de83f9a126ac4c121e0fd245bbf8ad1 (don't know how it might affect the results, probably not though)
Update: Issue ethz-asl/suitesparse#29 has been solved in the meantime. There should be no need for an explicit -lblas -llapack -lsuitesparseconfig
anymore.