mirror of
https://github.com/hku-mars/FAST_LIO.git
synced 2023-04-06 16:28:55 +08:00
add the switch for the online extrinsic estimation
This commit is contained in:
@@ -70,7 +70,7 @@ double kdtree_incremental_time = 0.0, kdtree_search_time = 0.0, kdtree_delete_ti
|
||||
double T1[MAXN], s_plot[MAXN], s_plot2[MAXN], s_plot3[MAXN], s_plot4[MAXN], s_plot5[MAXN], s_plot6[MAXN], s_plot7[MAXN], s_plot8[MAXN], s_plot9[MAXN], s_plot10[MAXN], s_plot11[MAXN];
|
||||
double match_time = 0, solve_time = 0, solve_const_H_time = 0;
|
||||
int kdtree_size_st = 0, kdtree_size_end = 0, add_point_size = 0, kdtree_delete_counter = 0;
|
||||
bool runtime_pos_log = false, pcd_save_en = false, time_sync_en = false;
|
||||
bool runtime_pos_log = false, pcd_save_en = false, time_sync_en = false, extrinsic_est_en = true;
|
||||
/**************************/
|
||||
|
||||
float res_last[100000] = {0.0};
|
||||
@@ -696,8 +696,15 @@ void h_share_model(state_ikfom &s, esekfom::dyn_share_datastruct<double> &ekfom_
|
||||
/*** calculate the Measuremnt Jacobian matrix H ***/
|
||||
V3D C(s.rot.conjugate() *norm_vec);
|
||||
V3D A(point_crossmat * C);
|
||||
V3D B(point_be_crossmat * s.offset_R_L_I.conjugate() * C); //s.rot.conjugate()*norm_vec);
|
||||
ekfom_data.h_x.block<1, 12>(i,0) << norm_p.x, norm_p.y, norm_p.z, VEC_FROM_ARRAY(A), VEC_FROM_ARRAY(B), VEC_FROM_ARRAY(C);
|
||||
if (extrinsic_est_en)
|
||||
{
|
||||
V3D B(point_be_crossmat * s.offset_R_L_I.conjugate() * C); //s.rot.conjugate()*norm_vec);
|
||||
ekfom_data.h_x.block<1, 12>(i,0) << norm_p.x, norm_p.y, norm_p.z, VEC_FROM_ARRAY(A), VEC_FROM_ARRAY(B), VEC_FROM_ARRAY(C);
|
||||
}
|
||||
else
|
||||
{
|
||||
ekfom_data.h_x.block<1, 12>(i,0) << norm_p.x, norm_p.y, norm_p.z, VEC_FROM_ARRAY(A), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
|
||||
}
|
||||
|
||||
/*** Measuremnt: distance to the closest surface/corner ***/
|
||||
ekfom_data.h(i) = -norm_p.intensity;
|
||||
@@ -735,6 +742,7 @@ int main(int argc, char** argv)
|
||||
nh.param<bool>("feature_extract_enable", p_pre->feature_enabled, 0);
|
||||
nh.param<bool>("runtime_pos_log_enable", runtime_pos_log, 0);
|
||||
nh.param<bool>("pcd_save_enable", pcd_save_en, 0);
|
||||
nh.param<bool>("mapping/extrinsic_est_en", extrinsic_est_en, 1);
|
||||
nh.param<vector<double>>("mapping/extrinsic_T", extrinT, vector<double>());
|
||||
nh.param<vector<double>>("mapping/extrinsic_R", extrinR, vector<double>());
|
||||
cout<<"p_pre->lidar_type "<<p_pre->lidar_type<<endl;
|
||||
|
||||
Reference in New Issue
Block a user