{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/certifiably-optimal-monocular-hand-eye","title":"Certifiably Optimal Monocular Hand-Eye Calibration","arxiv_id":"2005.08298","date":"2020-05-17","proceeding":null,"authors":["Emmett Wise","Matthew Giamou","Soroush Khoubyarian","Abhinav Grover","Jonathan Kelly"],"abstract":"Correct fusion of data from two sensors is not possible without an accurate estimate of their relative pose, which can be determined through the process of extrinsic calibration. When two or more sensors are capable of producing their own egomotion estimates (i.e., measurements of their trajectories through an environment), the 'hand-eye' formulation of extrinsic calibration can be employed. In this paper, we extend our recent work on a convex optimization approach for hand-eye calibration to the case where one of the sensors cannot observe the scale of its translational motion (e.g., a monocular camera observing an unmapped environment). We prove that our technique is able to provide a certifiably globally optimal solution to both the known- and unknown-scale variants of hand-eye calibration, provided that the measurement noise is bounded. Herein, we focus on the theoretical aspects of the problem, show the tightness and stability of our solution, and demonstrate the optimality and speed of our algorithm through experiments with synthetic data.","url_abs":"https://arxiv.org/abs/2005.08298v5","url_pdf":"https://arxiv.org/pdf/2005.08298v5.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"certifiably-optimal-monocular-hand-eye","repo_url":"https://github.com/utiasSTARS/certifiable-calibration","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2005.08298","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.08298"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/utiasSTARS/certifiable-calibration","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"fa3968d75347fe15","entry":"inertial_to_relative","repo":"utiasSTARS/certifiable-calibration","repo_kind":"official","path":"python/extrinsic_calibration/andreff/utils.py","file_url":"https://github.com/utiasSTARS/certifiable-calibration/blob/HEAD/python/extrinsic_calibration/andreff/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fa3968d75347fe15"}},{"code_sha256_prefix":"8d50e937fc572ab2","entry":"my_kronecker","repo":"utiasSTARS/certifiable-calibration","repo_kind":"official","path":"python/extrinsic_calibration/solver/constraint_gen.py","file_url":"https://github.com/utiasSTARS/certifiable-calibration/blob/HEAD/python/extrinsic_calibration/solver/constraint_gen.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8d50e937fc572ab2"}},{"code_sha256_prefix":"223e27ae913e78be","entry":"results_loader","repo":"utiasSTARS/certifiable-calibration","repo_kind":"official","path":"python/extrinsic_calibration/utility/utils.py","file_url":"https://github.com/utiasSTARS/certifiable-calibration/blob/HEAD/python/extrinsic_calibration/utility/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"223e27ae913e78be"}},{"code_sha256_prefix":"20690a90f5ae9633","entry":"skew_symmetric","repo":"utiasSTARS/certifiable-calibration","repo_kind":"official","path":"python/extrinsic_calibration/solver/constraint_gen.py","file_url":"https://github.com/utiasSTARS/certifiable-calibration/blob/HEAD/python/extrinsic_calibration/solver/constraint_gen.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"20690a90f5ae9633"}},{"code_sha256_prefix":"6b39ec927589c045","entry":"skew_symmetric_neg","repo":"utiasSTARS/certifiable-calibration","repo_kind":"official","path":"python/extrinsic_calibration/solver/constraint_gen.py","file_url":"https://github.com/utiasSTARS/certifiable-calibration/blob/HEAD/python/extrinsic_calibration/solver/constraint_gen.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6b39ec927589c045"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}