ethz-asl/hand_eye_calibration

Failed during batch optimization

Opened this issue · 2 comments

When doing the optimization by using 'rosrun hand_eye_calibration_batch_estimation batch_estimator', the following error comes out:

AbstractCalibrator.cpp:40] Using acceptConstantErrorTerms = true
F0926 09:11:04.321143 7084 batch_estimator.cc:102] Check failed: (1) >= (q.norm())-(1e-8) (1 vs. 1.00007)
*** Check failure stack trace: ***
@ 0x7ff50f6ae8ed google::LogMessage::Fail()
@ 0x7ff50f6b0791 google::LogMessage::SendToLog()
@ 0x7ff50f6ae41d google::LogMessage::Flush()
@ 0x7ff50f6b1149 google::LogMessageFatal::~LogMessageFatal()
@ 0x5603d7abf5be (unknown)
@ 0x5603d7abe05d (unknown)
@ 0x7ff50e264b97 __libc_start_main
@ 0x5603d7abe75a (unknown)
Aborted (core dumped)

Waiting for helps. Thanks very much.

smauq commented

For a quaternion to be valid the norm needs to be exactly 1 (here a tolerance of 1e-8 is allowed). You either need to give the input quaternions with greater precision or renormalize them.