From c4af840b1a8d7f5b96fe0c74ae9dd458ac8772c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Hern=C3=A1ndez=20Cordero?= Date: Fri, 19 Jan 2024 15:26:50 +0100 Subject: [PATCH] ROS 2: Added more aruco dicts, fixed aruco linerror bug (#873) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Related with this PR in ROS 1 https://github.com/ros-perception/image_pipeline/pull/795 Signed-off-by: Alejandro Hernández Cordero --- .../src/camera_calibration/calibrator.py | 16 ++++++++++++++-- .../src/camera_calibration/camera_calibrator.py | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/camera_calibration/src/camera_calibration/calibrator.py b/camera_calibration/src/camera_calibration/calibrator.py index 9d1f6dd09..6f7744612 100644 --- a/camera_calibration/src/camera_calibration/calibrator.py +++ b/camera_calibration/src/camera_calibration/calibrator.py @@ -72,10 +72,22 @@ def __init__(self, pattern="chessboard", n_cols = 0, n_rows = 0, dim = 0.0, mark if pattern=="charuco": self.aruco_dict = cv2.aruco.getPredefinedDictionary({ "aruco_orig" : cv2.aruco.DICT_ARUCO_ORIGINAL, + "4x4_50" : cv2.aruco.DICT_4X4_50, + "4x4_100" : cv2.aruco.DICT_4X4_100, "4x4_250" : cv2.aruco.DICT_4X4_250, + "4x4_1000" : cv2.aruco.DICT_4X4_1000, + "5x5_50" : cv2.aruco.DICT_5X5_50, + "5x5_100" : cv2.aruco.DICT_5X5_100, "5x5_250" : cv2.aruco.DICT_5X5_250, - "6x6_250" : cv2.aruco.DICT_6X6_250, - "7x7_250" : cv2.aruco.DICT_7X7_250}[aruco_dict]) + "5x5_1000" : cv2.aruco.DICT_5X5_1000, + "6x6_50" : cv2.aruco.DICT_6x6_50, + "6x6_100" : cv2.aruco.DICT_6x6_100, + "6x6_250" : cv2.aruco.DICT_6x6_250, + "6x6_1000" : cv2.aruco.DICT_6x6_1000, + "7x7_50" : cv2.aruco.DICT_7x7_50, + "7x7_100" : cv2.aruco.DICT_7x7_100, + "7x7_250" : cv2.aruco.DICT_7x7_250, + "7x7_1000" : cv2.aruco.DICT_7x7_1000}[aruco_dict]) self.charuco_board = cv2.aruco.CharucoBoard_create(self.n_cols, self.n_rows, self.dim, self.marker_size, self.aruco_dict) diff --git a/camera_calibration/src/camera_calibration/camera_calibrator.py b/camera_calibration/src/camera_calibration/camera_calibrator.py index a858accae..6d7ebdd40 100755 --- a/camera_calibration/src/camera_calibration/camera_calibrator.py +++ b/camera_calibration/src/camera_calibration/camera_calibrator.py @@ -367,7 +367,7 @@ def redraw_monocular(self, drawable): else: self.putText(display, "lin.", (width, self.y(0))) linerror = drawable.linear_error - if linerror < 0: + if linerror is None or linerror < 0: msg = "?" else: msg = "%.2f" % linerror