更新:1、将参数配置信息对象改为全局可访问,并避免通过函数参数传入;
Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -13,8 +13,7 @@ int Track_Init::track_init_process_logic( std::vector <PointRecv>
|
||||
std::vector<Trust_Track> *trust_track, //可靠航迹
|
||||
std::vector <std::vector<Temp_track>> *temp_track,
|
||||
struct Track Trust_Track_Output[MAX_TRACK_NUM][10],
|
||||
int *Trust_track_num_Output,
|
||||
const RDP_parameter& rdp_parameter
|
||||
int *Trust_track_num_Output
|
||||
)
|
||||
{
|
||||
|
||||
@@ -35,10 +34,10 @@ int Track_Init::track_init_process_logic( std::vector <PointRecv>
|
||||
if(point_process.size()>0)
|
||||
{
|
||||
//点迹与临时航迹关联
|
||||
point_temp_track_asso(temp_track,rdp_parameter);
|
||||
point_temp_track_asso(temp_track);
|
||||
|
||||
//点迹与航迹头关联
|
||||
point_track_head_asso(temp_track,rdp_parameter);
|
||||
point_track_head_asso(temp_track);
|
||||
|
||||
//删除关联上的点迹
|
||||
std::vector <PointRecv>::iterator Iter;
|
||||
@@ -118,7 +117,7 @@ int Track_Init::track_init_process_logic( std::vector <PointRecv>
|
||||
#endif
|
||||
|
||||
//临时航迹满足起始长度 转为可靠航迹
|
||||
tmp_track_to_trust_track(trust_track,temp_track,Trust_Track_Output, Trust_track_num_Output,rdp_parameter);
|
||||
tmp_track_to_trust_track(trust_track,temp_track,Trust_Track_Output, Trust_track_num_Output);
|
||||
|
||||
}
|
||||
|
||||
@@ -129,8 +128,7 @@ int Track_Init::track_init_process_logic( std::vector <PointRecv>
|
||||
|
||||
}
|
||||
|
||||
void Track_Init::point_temp_track_asso(std::vector <std::vector<Temp_track>> *temp_track,
|
||||
const RDP_parameter& rdp_parameter)
|
||||
void Track_Init::point_temp_track_asso(std::vector <std::vector<Temp_track>> *temp_track)
|
||||
{
|
||||
|
||||
//关联信息
|
||||
@@ -179,7 +177,7 @@ void Track_Init::point_temp_track_asso(std::vector <std::vector<Temp_track>>
|
||||
{
|
||||
//计算d
|
||||
kalman Kalman;
|
||||
double d = Kalman.d_cal_track_init_EKF(Z,X,P,delta_T,prt,freq_ind,rdp_parameter);
|
||||
double d = Kalman.d_cal_track_init_EKF(Z,X,P,delta_T,prt,freq_ind);
|
||||
//double d = Kalman.d_cal_track_init_with_doppler(Z,X,P,delta_T,vr_point,prt,freq_ind);
|
||||
//double d = Kalman.d_cal_track_init(Z,X,P,delta_T);
|
||||
//计算夹角
|
||||
@@ -251,7 +249,7 @@ void Track_Init::point_temp_track_asso(std::vector <std::vector<Temp_track>>
|
||||
kalman Kalman;
|
||||
double T = ( point_process[asso_info[i].point_idx-1].CPI_time - (*temp_track)[asso_info[i].track_idx-1][L-1].CPI_time)/1000.0;
|
||||
|
||||
Kalman.kalman_filter_init_2dots(Z0,Z1,T,X,P,rdp_parameter);
|
||||
Kalman.kalman_filter_init_2dots(Z0,Z1,T,X,P);
|
||||
memcpy(asso_track_info_tmp.X, X, 4*sizeof(double));
|
||||
memcpy(asso_track_info_tmp.P, P, 4*4*sizeof(double));
|
||||
(*temp_track)[(*temp_track).size()-1].push_back(asso_track_info_tmp);
|
||||
@@ -314,8 +312,7 @@ void Track_Init::point_temp_track_asso(std::vector <std::vector<Temp_track>>
|
||||
}
|
||||
}
|
||||
|
||||
void Track_Init::point_track_head_asso( std::vector <std::vector<Temp_track>> *temp_track,
|
||||
const RDP_parameter& rdp_parameter)
|
||||
void Track_Init::point_track_head_asso( std::vector <std::vector<Temp_track>> *temp_track)
|
||||
{
|
||||
|
||||
//关联上的信息
|
||||
@@ -434,7 +431,7 @@ void Track_Init::point_track_head_asso( std::vector <std::vector<Temp_track>>
|
||||
kalman Kalman;
|
||||
double T = (point_process[asso_info[i].point_idx-1].CPI_time - (*temp_track)[asso_info[i].track_idx-1][0].CPI_time)/1000.0;
|
||||
|
||||
Kalman.kalman_filter_init_2dots(Z0,Z1,T,X,P,rdp_parameter);
|
||||
Kalman.kalman_filter_init_2dots(Z0,Z1,T,X,P);
|
||||
memcpy(asso_track_info_tmp.X, X, 4*sizeof(double));
|
||||
memcpy(asso_track_info_tmp.P, P, 4*4*sizeof(double));
|
||||
(*temp_track)[(*temp_track).size()-1].push_back(asso_track_info_tmp);
|
||||
@@ -473,8 +470,7 @@ double Track_Init::alpha_cal_track_init(double x0,double y0,double x1,double y1,
|
||||
void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_track,
|
||||
std::vector <std::vector<Temp_track>> *temp_track,
|
||||
struct Track Trust_Track_Output[MAX_TRACK_NUM][10],
|
||||
int *Trust_track_num_Output,
|
||||
const RDP_parameter& rdp_parameter)
|
||||
int *Trust_track_num_Output)
|
||||
{
|
||||
|
||||
std::vector <std::vector<Temp_track>> Track_to_start;
|
||||
@@ -519,7 +515,7 @@ void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_tra
|
||||
}
|
||||
|
||||
//航迹起批禁止区域判断
|
||||
if(track_init_prohibit(range,azi,rdp_parameter)!=0)
|
||||
if(track_init_prohibit(range,azi)!=0)
|
||||
{
|
||||
track_init_flag = false;
|
||||
}
|
||||
@@ -634,7 +630,7 @@ void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_tra
|
||||
if (Track_to_start[i].size() < 3) continue;
|
||||
if(trust_track->size() < static_cast<std::size_t>(rdp_parameter.track_index_max))
|
||||
{
|
||||
int index = track_index_mangement.track_ind_get(trust_track, rdp_parameter);
|
||||
int index = track_index_mangement.track_ind_get(trust_track);
|
||||
if(index>0)
|
||||
{
|
||||
|
||||
@@ -647,7 +643,7 @@ void Track_Init::tmp_track_to_trust_track(std::vector<Trust_Track> *trust_tra
|
||||
double T1=(Track_to_start[i][L-2].CPI_time-Track_to_start[i][L-3].CPI_time)/1000.0;
|
||||
double T2=(Track_to_start[i][L-1].CPI_time-Track_to_start[i][L-2].CPI_time)/1000.0;
|
||||
kalman Kalman;
|
||||
Kalman.kalman_filter_init_3dots(Z0, Z1, Z2, T1,T2, X ,P,rdp_parameter);
|
||||
Kalman.kalman_filter_init_3dots(Z0, Z1, Z2, T1,T2, X ,P);
|
||||
|
||||
Trust_Track trust_track_tmp = {};
|
||||
memcpy(trust_track_tmp.X, X, 6*sizeof(double));
|
||||
@@ -783,7 +779,7 @@ void Track_Init::tmp_track_die(std::vector <std::vector<Temp_track>> *temp_t
|
||||
}
|
||||
};
|
||||
|
||||
int Track_Init::track_init_prohibit(double r, double azi, const RDP_parameter& rdp_parameter)
|
||||
int Track_Init::track_init_prohibit(double r, double azi)
|
||||
{
|
||||
|
||||
for (int i=0;i<rdp_parameter.track_init_prohibite_area_num;i++)
|
||||
|
||||
Reference in New Issue
Block a user