ethz-asl / hand_eye_calibration

Python tools to perform time-synchronization and hand-eye calibration.
BSD 3-Clause "New" or "Revised" License
429 stars 115 forks source link

Failed during batch optimization #87

Open HeatherHu opened 5 years ago

HeatherHu commented 5 years ago

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.

maximilianwulf commented 5 years ago

+1

smauq commented 5 years ago

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.