From dd3cf3de05ae6aa0336d598d89e05b684f78178d Mon Sep 17 00:00:00 2001 From: VahdPourAmin Date: Sun, 25 Jul 2021 08:50:54 +0200 Subject: [PATCH] opencl kernel clean and aproximately ready to test --- GPU_version/vio/include/vio/frame.h | 2 +- GPU_version/vio/kernel/compute-residual.cl | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/GPU_version/vio/include/vio/frame.h b/GPU_version/vio/include/vio/frame.h index 7408805..b8c10d7 100644 --- a/GPU_version/vio/include/vio/frame.h +++ b/GPU_version/vio/include/vio/frame.h @@ -148,7 +148,7 @@ public: J(0,0) = -z_inv; // -1/z J(0,1) = x*z_inv_2; // x/z^2 - J(0,2) = -(1.0 + pow(x,2)/z_inv_2); // -(1.0 + x^2/z^2) + J(0,2) = -(1.0 + pow(x,2)*z_inv_2); // -(1.0 + x^2/z^2) J(1,0) = 1e-19; // 0 J(1,1) = y*z_inv_2; // y/z^2 diff --git a/GPU_version/vio/kernel/compute-residual.cl b/GPU_version/vio/kernel/compute-residual.cl index 662f14d..189a608 100644 --- a/GPU_version/vio/kernel/compute-residual.cl +++ b/GPU_version/vio/kernel/compute-residual.cl @@ -22,9 +22,9 @@ double3 xyz_cur(double cur_x, double cur_z, double cur_pitch, double ref_x, doub ref_pitch = ref_pitch - 3.1415926535897932384626433832795028841971693993; double cc_ss = cos(cur_pitch) * cos(ref_pitch) - sin(cur_pitch) * sin(ref_pitch); double sc_cs = cos(cur_pitch) * sin(ref_pitch) + cos(ref_pitch) * sin(cur_pitch); - return double3(cc_ss * ref_feature.x() + sc_cs * ref_feature.z() + cur_x - ref_x * cos(cur_pitch) - ref_z * sin(cur_pitch), - ref_feature.y(), - -1.0 * sc_cs * ref_feature.x() + cc_ss * ref_feature.z() + cur_z + ref_x * sin(cur_pitch) - ref_z * cos(cur_pitch)); + return double3(cc_ss * ref_feature.x + sc_cs * ref_feature.z + cur_x - ref_x * cos(cur_pitch) - ref_z * sin(cur_pitch), + ref_feature.y, + -1.0 * sc_cs * ref_feature.x + cc_ss * ref_feature.z + cur_z + ref_x * sin(cur_pitch) - ref_z * cos(cur_pitch)); } double3 xyz_ref(double fts_pos_x, double fts_pos_y, double fts_pos_z, double ref_x, double ref_y, double ref_z) @@ -38,7 +38,7 @@ void jacobian_xyz2uv(double3 xyz_in_f, double* J) { *(J + 0) = -(1. / xyz_in_f[2]); // -1/z *(J + 1) = (xyz_in_f[0]) * ((1. / xyz_in_f[2]) * (1. / xyz_in_f[2])); // x/z^2 - *(J + 2) = -(1.0 + pow((xyz_in_f[0]),2) / ((1. / xyz_in_f[2]) * (1. / xyz_in_f[2]))); // -(1.0 + x^2/z^2) + *(J + 2) = -(1.0 + pow((xyz_in_f[0]),2) * ((1. / xyz_in_f[2]) * (1. / xyz_in_f[2]))); // -(1.0 + x^2/z^2) *(J + 3) = 1e-19; // 0 *(J + 4) = (xyz_in_f[1]) * ((1. / xyz_in_f[2]) * (1. / xyz_in_f[2])); // y/z^2 *(J + 5) = -(xyz_in_f[0]) * (xyz_in_f[1]) / ((1. / xyz_in_f[2]) * (1. / xyz_in_f[2])); // -x*y/z^2