From c238bc0dcba716e44d4ed708bf6ef803967c6aee Mon Sep 17 00:00:00 2001 From: Martin Miller Date: Tue, 21 Mar 2017 10:34:56 -0500 Subject: Add Camera::rc2b() method. --- src/camera.cpp | 32 ++++++++++++++++++++++++++++++++ src/camera.h | 2 ++ 2 files changed, 34 insertions(+) (limited to 'src') diff --git a/src/camera.cpp b/src/camera.cpp index a78746f..dcc5a44 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -28,6 +28,7 @@ Camera::Camera (const char *fin) { YAML::Node config = YAML::LoadFile(fin); + _K(0,0) = BINNING*config["camera_matrix"]["data"][0].as(); _K(0,1) = BINNING*config["camera_matrix"]["data"][1].as(); _K(0,2) = BINNING*config["camera_matrix"]["data"][2].as(); @@ -43,9 +44,40 @@ Camera::Camera (const char *fin) _d[2] = config["distortion_coefficients"]["data"][2].as(); _d[3] = config["distortion_coefficients"]["data"][3].as(); + _T(0,0) = config["T_cam_imu"][0][0].as(); + _T(0,1) = config["T_cam_imu"][0][1].as(); + _T(0,2) = config["T_cam_imu"][0][2].as(); + _T(0,3) = config["T_cam_imu"][0][3].as(); + _T(1,0) = config["T_cam_imu"][1][0].as(); + _T(1,1) = config["T_cam_imu"][1][1].as(); + _T(1,2) = config["T_cam_imu"][1][2].as(); + _T(1,3) = config["T_cam_imu"][1][3].as(); + _T(2,0) = config["T_cam_imu"][2][0].as(); + _T(2,1) = config["T_cam_imu"][2][1].as(); + _T(2,2) = config["T_cam_imu"][2][2].as(); + _T(2,3) = config["T_cam_imu"][2][3].as(); + _T(3,0) = config["T_cam_imu"][3][0].as(); + _T(3,1) = config["T_cam_imu"][3][1].as(); + _T(3,2) = config["T_cam_imu"][3][2].as(); + _T(3,3) = config["T_cam_imu"][3][3].as(); + } /* ----- end of method Camera::Camera (constructor) ----- */ +/* + *-------------------------------------------------------------------------------------- + * Class: Camera + * Method: Camera :: Rc2b + * Description: Returns the rotation matrix that transforms a point from the + * camera frame to the body frame. + *-------------------------------------------------------------------------------------- + */ +Matrix +Camera::Rc2b ( ) +{ + return _T.block<3,3>(0,0).transpose(); +} /* ----- end of method Camera::Rc2b ----- */ + Matrix Camera::K ( ) { diff --git a/src/camera.h b/src/camera.h index 9e5f736..54c47b9 100644 --- a/src/camera.h +++ b/src/camera.h @@ -21,6 +21,7 @@ class Camera /* ==================== ACCESSORS ======================================= */ Matrix K(); Vector4d d(); + Matrix Rc2b(); /* ==================== MUTATORS ======================================= */ @@ -36,6 +37,7 @@ class Camera /* ==================== DATA MEMBERS ======================================= */ Matrix _K; + Matrix _T; Vector4d _d; }; /* ----- end of class Camera ----- */ -- cgit v1.1