更新:1、增加自动TAS跟踪的功能,仅Ku2304适用;
2、更新参数配置文件; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
+12
-6
@@ -19,7 +19,7 @@ radar_height = 0
|
|||||||
# 系统延迟(s)
|
# 系统延迟(s)
|
||||||
radar_system_delay = 0
|
radar_system_delay = 0
|
||||||
# TWS模式数据率(s)
|
# TWS模式数据率(s)
|
||||||
data_rate_tws = 0.0342
|
data_rate_tws = 0.0372
|
||||||
# TAS模式数据率(s;0 表示不做 DLL 内部 TAS 波束限速,由宿主调用频率决定)
|
# TAS模式数据率(s;0 表示不做 DLL 内部 TAS 波束限速,由宿主调用频率决定)
|
||||||
data_rate_tas = 0
|
data_rate_tas = 0
|
||||||
# 纯跟踪模式数据率(s)
|
# 纯跟踪模式数据率(s)
|
||||||
@@ -41,13 +41,13 @@ point_cohesion_range_max = 100000
|
|||||||
## 航迹关联参数
|
## 航迹关联参数
|
||||||
[track_associate]
|
[track_associate]
|
||||||
# 距离量测精度(m)
|
# 距离量测精度(m)
|
||||||
sigma_range = 10.0
|
sigma_range = 100.0
|
||||||
# 方位量测精度(弧度)
|
# 方位量测精度(弧度)
|
||||||
sigma_azimuth = 0.02
|
sigma_azimuth = 0.02
|
||||||
# 俯仰量测精度(弧度)
|
# 俯仰量测精度(弧度)
|
||||||
sigma_pitch = 0.2
|
sigma_pitch = 0.2
|
||||||
# 速度量测精度(m/s)
|
# 速度量测精度(m/s)
|
||||||
sigma_velocity = 2.0
|
sigma_velocity = 50.0
|
||||||
# 关联门限
|
# 关联门限
|
||||||
associate_threshold = 4.0
|
associate_threshold = 4.0
|
||||||
# 最大外推点数
|
# 最大外推点数
|
||||||
@@ -83,11 +83,11 @@ track_init_velocity_max = 1000
|
|||||||
## 航迹消亡参数
|
## 航迹消亡参数
|
||||||
[track_die]
|
[track_die]
|
||||||
# 航迹消亡圈数
|
# 航迹消亡圈数
|
||||||
track_die_round = 6
|
track_die_round = 25
|
||||||
# 重点航迹消亡圈数
|
# 重点航迹消亡圈数
|
||||||
track_die_round_pramary = 10
|
track_die_round_pramary = 50
|
||||||
# TAS航迹消亡圈数
|
# TAS航迹消亡圈数
|
||||||
track_die_round_tas = 20
|
track_die_round_tas = 50
|
||||||
# 航迹消批质量条件
|
# 航迹消批质量条件
|
||||||
track_die_quality = 0.3
|
track_die_quality = 0.3
|
||||||
# 重点航迹消批质量条件
|
# 重点航迹消批质量条件
|
||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 1
|
tas_track_num_max = 1
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = -90.0
|
tas_beam_pitch_min = -90.0
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 1
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 700
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 900
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 1
|
tas_track_num_max = 1
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 3.0
|
tas_beam_pitch_min = 3.0
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 1
|
tas_track_num_max = 1
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 3.0
|
tas_beam_pitch_min = 3.0
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 4
|
tas_track_num_max = 4
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 3.0
|
tas_beam_pitch_min = 3.0
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 1
|
tas_track_num_max = 1
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 5.4
|
tas_beam_pitch_min = 5.4
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 4
|
tas_track_num_max = 4
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 5.4
|
tas_beam_pitch_min = 5.4
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -125,6 +125,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 4
|
tas_track_num_max = 4
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 5.4
|
tas_beam_pitch_min = 5.4
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -127,6 +127,12 @@ default_track_beam_type = 1
|
|||||||
tas_track_num_max = 4
|
tas_track_num_max = 4
|
||||||
# TAS波束最小俯仰角度
|
# TAS波束最小俯仰角度
|
||||||
tas_beam_pitch_min = 3.0
|
tas_beam_pitch_min = 3.0
|
||||||
|
# 自动跟踪使能,0 = 关闭,1 = 开启
|
||||||
|
auto_tas_enable = 0
|
||||||
|
# 自动TAS跟踪最小速度
|
||||||
|
auto_tas_velocity_min = 0.0
|
||||||
|
# 自动TAS跟踪最大速度
|
||||||
|
auto_tas_velocity_max = 0.0
|
||||||
|
|
||||||
## singer模型机动参数(均必须 > 0)
|
## singer模型机动参数(均必须 > 0)
|
||||||
[singer_model]
|
[singer_model]
|
||||||
|
|||||||
@@ -131,6 +131,8 @@ const FloatField kFloatFields[] = {
|
|||||||
{"track_quality", "track_quality_decrease_coeff_o1", &RDP_parameter::track_quality_decrease_coeff_o1},
|
{"track_quality", "track_quality_decrease_coeff_o1", &RDP_parameter::track_quality_decrease_coeff_o1},
|
||||||
// [beam_control] 波束调度参数
|
// [beam_control] 波束调度参数
|
||||||
{"beam_control", "tas_beam_pitch_min", &RDP_parameter::tas_beam_pitch_min},
|
{"beam_control", "tas_beam_pitch_min", &RDP_parameter::tas_beam_pitch_min},
|
||||||
|
{"beam_control", "auto_tas_velocity_min", &RDP_parameter::auto_tas_velocity_min},
|
||||||
|
{"beam_control", "auto_tas_velocity_max", &RDP_parameter::auto_tas_velocity_max},
|
||||||
// [singer_model] singer 模型机动参数
|
// [singer_model] singer 模型机动参数
|
||||||
{"singer_model", "model_1_Q_fast", &RDP_parameter::model_1_Q_fast},
|
{"singer_model", "model_1_Q_fast", &RDP_parameter::model_1_Q_fast},
|
||||||
{"singer_model", "model_1_Q_slow", &RDP_parameter::model_1_Q_slow},
|
{"singer_model", "model_1_Q_slow", &RDP_parameter::model_1_Q_slow},
|
||||||
@@ -159,6 +161,7 @@ const IntField kIntFields[] = {
|
|||||||
// [beam_control] 波束调度参数
|
// [beam_control] 波束调度参数
|
||||||
{"beam_control", "default_track_beam_type", &RDP_parameter::default_track_beam_type},
|
{"beam_control", "default_track_beam_type", &RDP_parameter::default_track_beam_type},
|
||||||
{"beam_control", "tas_track_num_max", &RDP_parameter::tas_track_num_max},
|
{"beam_control", "tas_track_num_max", &RDP_parameter::tas_track_num_max},
|
||||||
|
{"beam_control", "auto_tas_enable", &RDP_parameter::auto_tas_enable},
|
||||||
// 屏蔽区数目(对应数组长度由它决定)
|
// 屏蔽区数目(对应数组长度由它决定)
|
||||||
{"track_init_prohibite_area", "track_init_prohibite_area_num", &RDP_parameter::track_init_prohibite_area_num},
|
{"track_init_prohibite_area", "track_init_prohibite_area_num", &RDP_parameter::track_init_prohibite_area_num},
|
||||||
{"tas_prohibite_area", "tas_prohibite_area_num", &RDP_parameter::tas_prohibite_area_num},
|
{"tas_prohibite_area", "tas_prohibite_area_num", &RDP_parameter::tas_prohibite_area_num},
|
||||||
@@ -462,6 +465,10 @@ bool validate_parameter(const RDP_parameter& p, LoadContext& ctx)
|
|||||||
if (p.tas_track_num_max < 0 || p.tas_track_num_max > RDP_TAS_QUEUE_CAPACITY)
|
if (p.tas_track_num_max < 0 || p.tas_track_num_max > RDP_TAS_QUEUE_CAPACITY)
|
||||||
return ctx.fail("参数 tas_track_num_max 必须在 0~" + std::to_string(RDP_TAS_QUEUE_CAPACITY) +
|
return ctx.fail("参数 tas_track_num_max 必须在 0~" + std::to_string(RDP_TAS_QUEUE_CAPACITY) +
|
||||||
" 之间(实际 " + std::to_string(p.tas_track_num_max) + ")");
|
" 之间(实际 " + std::to_string(p.tas_track_num_max) + ")");
|
||||||
|
// if (p.auto_tas_velocity_min < 0.0f)
|
||||||
|
// return ctx.fail("参数 auto_tas_velocity_min 不能为负");
|
||||||
|
if (!(p.auto_tas_velocity_max >= p.auto_tas_velocity_min))
|
||||||
|
return ctx.fail("参数 auto_tas_velocity_max 必须大于等于 auto_tas_velocity_min");
|
||||||
|
|
||||||
// singer 模型机动参数
|
// singer 模型机动参数
|
||||||
const float model_q[] = {
|
const float model_q[] = {
|
||||||
|
|||||||
@@ -258,6 +258,9 @@ struct RDP_parameter
|
|||||||
int default_track_beam_type; //默认跟踪波束类型
|
int default_track_beam_type; //默认跟踪波束类型
|
||||||
int tas_track_num_max; //最大同时跟踪目标数
|
int tas_track_num_max; //最大同时跟踪目标数
|
||||||
float tas_beam_pitch_min; //TAS跟踪波束俯仰最小值
|
float tas_beam_pitch_min; //TAS跟踪波束俯仰最小值
|
||||||
|
int auto_tas_enable; //自动TAS跟踪使能
|
||||||
|
float auto_tas_velocity_min; //自动TAS跟踪最小速度
|
||||||
|
float auto_tas_velocity_max; //自动TAS跟踪最大速度
|
||||||
|
|
||||||
// ******************* singer模型机动参数 ************************//
|
// ******************* singer模型机动参数 ************************//
|
||||||
float model_1_Q_fast; //模型1
|
float model_1_Q_fast; //模型1
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ void TAS_Ctrl::tas_target_add(std::vector<Trust_Track> *trust_track,
|
|||||||
azi=azi/PI*180;
|
azi=azi/PI*180;
|
||||||
|
|
||||||
//进入跟踪的条件: 1.手动跟踪的目标 或 满足速度、距离、高度条件满足 关联点数大于2 2.不在禁止跟踪区域
|
//进入跟踪的条件: 1.手动跟踪的目标 或 满足速度、距离、高度条件满足 关联点数大于2 2.不在禁止跟踪区域
|
||||||
if( ( (*trust_track)[i].manual_tracking_flag == 1)//|| (tas_auto_start( v, r, h)==1 && (*trust_track)[i][k].associate_point_number>=2)
|
if( ( ( (*trust_track)[i].manual_tracking_flag == 1) || (tas_auto_start( v, r, h)==1)) //&& (*trust_track)[i].associate_point_number>=2))
|
||||||
&& tas_target_num < rdp_parameter.tas_track_num_max
|
&& tas_target_num < rdp_parameter.tas_track_num_max
|
||||||
&& (*trust_track)[i].Track_Mode == 0
|
&& (*trust_track)[i].Track_Mode == 0
|
||||||
&& tas_prohibite_area( r, azi, v, h) == 0)
|
&& tas_prohibite_area( r, azi, v, h) == 0)
|
||||||
@@ -404,3 +404,16 @@ void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track
|
|||||||
|
|
||||||
// RDP_LOG_INFO("TAS <{}> output: range: {} azi: {} pit: {}", Tracking_beam->TAS_track_index, Tracking_beam->Range, Tracking_beam->Azi, Tracking_beam->Elev);
|
// RDP_LOG_INFO("TAS <{}> output: range: {} azi: {} pit: {}", Tracking_beam->TAS_track_index, Tracking_beam->Range, Tracking_beam->Azi, Tracking_beam->Elev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int TAS_Ctrl::tas_auto_start(double v, double r, double h)
|
||||||
|
{
|
||||||
|
if(rdp_parameter.auto_tas_enable == 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(v >= rdp_parameter.auto_tas_velocity_min && v <= rdp_parameter.auto_tas_velocity_max){
|
||||||
|
return 1;
|
||||||
|
}else{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user