Skip to content
General hand-eye calibration based on reprojection error minimization and pose graph optimization
C++ Python CMake Shell
Branch: master
Clone or download
Latest commit 15ffb18 Jan 28, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake initial commit Sep 7, 2018
include add comments Sep 9, 2018
scripts replace flatness error from eigenvalue-based to plane-fitting Sep 9, 2018
src add comments Sep 9, 2018
.gitignore initial commit Sep 7, 2018
CMakeLists.txt initial commit Sep 7, 2018 Update Jan 28, 2019


This package provides a general hand-eye calibration method which can be applied to pinhole and source-detector camera models.


Unlike usual hand-eye calibration techniques, this method directly takes the images of the calibration pattern (like chessboard) and estimates the hand-eye transformation and the pattern pose such that the projection error of the pattern is minimized. Since it doesn't rely on algorithms dedicated for pinhole cameras, such as PnP algorithms, it can be easily adapted to different camera model by changing only the projection model.


  • g2o
  • VISP
  • handeye_calib_camodocal (optional, for only evaluation)


Include "st_handeye/st_handeye.hpp" and call "st_handeye::spatial_calibration_graph()". See "st_handeye.hpp" for the details.

Reproduce figures

git clone
git clone

mkdir st_handeye_graph/build
cd st_handeye_graph/build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

cd ../scripts
# run simulations and plot figures

# run calibration on real data and perform 3d reconstruction

# see the reconstructed point cloud
pcl_viewer data/points_3d_graph.pcd


Kenji Koide and Emanuele Menegatti, General Hand-Eye Calibration based on Reprojection Error Minimization, IEEE Robotics and Automation Letters/ICRA2019 [link].


Kenji Koide, Intelligent Autonomous Systems Laboratory, University of Padova, Italy.

You can’t perform that action at this time.