更新:1、调整航迹质量下降逻辑;
2、普通航迹消亡条件改为由航迹质量确定; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -57,7 +57,8 @@
|
||||
#define TRACK_QUALITY_SNR_WEIGHT 0.3
|
||||
#define TRACK_QUALITY_LEN_WEIGHT 0.2
|
||||
#define TRACK_QUALITY_ITER_COEFF 0.8
|
||||
#define TRACK_QUALITY_DECREASE_COEFF 0.005
|
||||
#define TRACK_QUALITY_DECREASE_COEFF_O2 -0.0008
|
||||
#define TRACK_QUALITY_DECREASE_COEFF_O1 -0.0025
|
||||
|
||||
//航迹起批质量条件
|
||||
#define TRACK_START_QUALITY_L3 0.7
|
||||
@@ -67,17 +68,8 @@
|
||||
#define TRACK_START_QUALITY_L7 0.3
|
||||
|
||||
//航迹消批质量条件
|
||||
#define TRACK_DIE_QUALITY_E4 0.3
|
||||
#define TRACK_DIE_QUALITY_E5 0.4
|
||||
#define TRACK_DIE_QUALITY_E6 0.5
|
||||
#define TRACK_DIE_QUALITY_E7 0.6
|
||||
#define TRACK_DIE_QUALITY_E8 0.7
|
||||
|
||||
#define TRACK_DIE_QUALITY_PRAMARY_E6 0.3
|
||||
#define TRACK_DIE_QUALITY_PRAMARY_E7 0.4
|
||||
#define TRACK_DIE_QUALITY_PRAMARY_E8 0.5
|
||||
#define TRACK_DIE_QUALITY_PRAMARY_E9 0.6
|
||||
#define TRACK_DIE_QUALITY_PRAMARY_E10 0.7
|
||||
#define TRACK_DIE_QUALITY 0.3
|
||||
#define TRACK_DIE_QUALITY_PRAMARY 0.3
|
||||
|
||||
#ifdef MECHANICAL_SCANNING
|
||||
/******************************机扫数据处理参数**************************************/
|
||||
|
||||
@@ -793,21 +793,24 @@ void Track_Asso:: model_filter(std::vector <Trust_Track> *trust_track,struct Ra
|
||||
(*trust_track)[i].circle_id++;
|
||||
(*trust_track)[i].T_track = static_cast<long long>((*trust_track)[i].T_track+delta_T*1000.0); //更新航迹时间
|
||||
(*trust_track)[i].GNSS_time = static_cast<long long>((*trust_track)[i].GNSS_time+delta_T*1000.0); //更新航迹时间
|
||||
(*trust_track)[i].Unupdated_time += static_cast<long long>(delta_T*1000.0);
|
||||
(*trust_track)[i].Extrapolate_round =(*trust_track)[i].Extrapolate_round+1; //连续未用实点更新时间
|
||||
(*trust_track)[i].point_flag=0; //虚点
|
||||
(*trust_track)[i].Track_Update_Flag = 1; //航迹更新标志
|
||||
}else{
|
||||
(*trust_track)[i].Extrapolate_round =(*trust_track)[i].Extrapolate_round+1; //连续未用实点更新时间
|
||||
(*trust_track)[i].Unupdated_time += static_cast<long long>(delta_T*1000.0);
|
||||
(*trust_track)[i].point_flag=0; //虚点
|
||||
(*trust_track)[i].Track_Update_Flag = 0; //航迹更新标志
|
||||
}
|
||||
|
||||
//航迹质量递减
|
||||
(*trust_track)[i].Quality -= (*trust_track)[i].Unupdated_time / 1000.0 * TRACK_QUALITY_DECREASE_COEFF;
|
||||
double t = (*trust_track)[i].Unupdated_time / 1000.0;
|
||||
(*trust_track)[i].Quality -= t * t * TRACK_QUALITY_DECREASE_COEFF_O2 + t * TRACK_QUALITY_DECREASE_COEFF_O1;
|
||||
(*trust_track)[i].Unupdated_time += static_cast<long long>(delta_T*1000.0);
|
||||
t = (*trust_track)[i].Unupdated_time / 1000.0;
|
||||
(*trust_track)[i].Quality += t * t * TRACK_QUALITY_DECREASE_COEFF_O2 + t * TRACK_QUALITY_DECREASE_COEFF_O1;
|
||||
(*trust_track)[i].Quality = (*trust_track)[i].Quality < 0.0 ? 0.0 : (*trust_track)[i].Quality;
|
||||
(*trust_track)[i].Point_sum = (*trust_track)[i].Point_sum + 1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ void Track_Die::track_die_process( std::vector <Trust_Track> *trust_track,
|
||||
}
|
||||
|
||||
//非重点航迹自动消亡
|
||||
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Extrapolate_round > TRACK_DIE_ROUND)
|
||||
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Quality < TRACK_DIE_QUALITY)
|
||||
{
|
||||
die_flag = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user