From 9db1aa81310a73278cfeee19f530c78eea0fc6d3 Mon Sep 17 00:00:00 2001 From: Marina Moreira <67443181+marinagmoreira@users.noreply.github.com> Date: Wed, 3 Jul 2024 13:23:03 -0700 Subject: [PATCH] Honey calibration (#767) * haz cam decode file * running camera refiner for haz cam and sci cam calibration * Oleg's honey calibration * fixing the config comments --- astrobee/config/robots/honey.config | 28 +++++++++--------- .../resources/honey_haz_xyz_coeff.npy | Bin 0 -> 919424 bytes 2 files changed, 14 insertions(+), 14 deletions(-) create mode 100755 tools/bag_processing/resources/honey_haz_xyz_coeff.npy diff --git a/astrobee/config/robots/honey.config b/astrobee/config/robots/honey.config index 5c22798c94..7379886f14 100644 --- a/astrobee/config/robots/honey.config +++ b/astrobee/config/robots/honey.config @@ -25,13 +25,13 @@ robot_i2c_bus = "/dev/i2c-1" robot_imu_drdy_pin = 4 robot_geometry = { --- Placeholder transforms, not accurate! - nav_cam_to_haz_cam_transform = transform(vec3(0.071421481, -0.00030319673, 0.0018058249), quat4(-0.0030431141, 0.0092646368, 0.99993195, 0.0064039206)), - nav_cam_to_sci_cam_transform = transform(vec3(-0.076526224, 0.011869553, 0.045409155), quat4(-0.0035414316, 0.0048089362, -0.0071515076, 0.99995659)), +-- Calibrated on 2024/07/02 + nav_cam_to_haz_cam_transform = transform(vec3(0.064408842, -0.0018474084, -0.034520172), quat4(-0.0033437127, 0.0094915996, 0.99994679, 0.0022666378)), + nav_cam_to_sci_cam_transform = transform(vec3(-0.049417882, 0.018566808, 0.013784694), quat4(0.0014602934, 0.0016304596, -0.0024437981, 0.99999462)), haz_cam_depth_to_image_transform = { - 0.91602851, -0.00031586647, -0.0028485861, 0.0029767338, - 0.00032189197, 0.91603089, 0.0019373744, -0.0020741879, - 0.0028479115, -0.0019383659, 0.91602652, -0.0042296964, + 0.98948285, 0.001415891, -0.021059668, -0.0070630633, + -0.0002719089, 0.9875915, -0.0038065862, -0.00013643275, + 0.017329852, -0.002283376, 0.96965353, -0.021957843, 0, 0, 0, 1}, -- Engineering positions with idealized orientations @@ -76,23 +76,23 @@ robot_camera_calibrations = { gain=100, exposure=150 }, - +-- Calibrated on 2024/07/02 haz_cam = { - distortion_coeff = {-0.411106, 0.375288, -0.00080993, -0.00817328}, + distortion_coeff = {-0.3068457, 6.8824101e-07, -0.0027885204, -0.0061697912}, intrinsic_matrix = { - 188.27394, 0.0, 117.94881, - 0.0, 186.18359, 87.740547, + 208.33421, 0.0, 112.77101, + 0.0, 208.33421, 87.265089, 0.0, 0.0, 1.0 }, gain=50, exposure=150 }, --- Placeholder for sci_cam, not accurate! +-- Calibrated on 2024/07/02 sci_cam = { - distortion_coeff = {0.128628, -0.167456, 0.00213421, -0.00262211}, + distortion_coeff = {-0.030601401, 0.048784498, -0.0011287417, 0.00016061301}, intrinsic_matrix = { - 859.44015, 0.0, 754.24485, - 0.0, 849.35466, 487.7349, + 1034.3785, 0.0, 684.85322, + 0.0, 1034.3785, 507.41357, 0.0, 0.0, 1.0 }, gain=50, diff --git a/tools/bag_processing/resources/honey_haz_xyz_coeff.npy b/tools/bag_processing/resources/honey_haz_xyz_coeff.npy new file mode 100755 index 0000000000000000000000000000000000000000..756cfd2e11a7d70aecde0dc42ddbfbb9a377a21f GIT binary patch literal 919424 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