处理器 (Processors)
处理器提供了为特定平台定义行为的能力。
大多数处理器由用户使用 AFSIM 脚本语言定义。
以下是一些预定义的处理器类型:
- WSF_DIRECTION_FINDER_PROCESSOR
- WSF_TRACK_PROCESSOR
- WSF_MESSAGE_PROCESSOR
- WSF_GUIDANCE_COMPUTER
- WSF_IMAGE_PROCESSOR
- WSF_TASK_PROCESSOR
有多种内置处理器可用,每种处理器都具有独特的功能。本指南将演示一个常用模型的实现,WSF_TRACK_PROCESSOR。
快速入门
跟踪处理器的主要职责是为跟踪管理器实现处理器接口。它负责三个主要功能:
- 接收来自本地和离板来源的报告(跟踪)
- 将报告(跟踪)提供给跟踪管理器以进行关联和融合
- 将更新的跟踪信息发送给相关方
要实现一个跟踪处理器,请在场景中的平台或平台类型定义中包含以下代码片段:
processor track_proc WSF_TRACK_PROCESSOR
master_track_processor
purge_interval 10 sec
report_interval 3 sec
end_processor
要接收来自传感器的跟踪信息,连接的传感器必须在所需的传感器定义中包含以下代码行:
internal_link track_proc
跟踪数据也可以通过通信和 external_link
命令传递给其他平台。此外,内部任务处理器可以执行行为并采取行动。行为和通信将在接下来的模块中讨论。在可以利用行为之前,必须先定义任务处理器。可以使用以下代码定义任务处理器(任务管理器):
processor TASK_MANAGER WSF_TASK_PROCESSOR
update_interval 10 sec
end_processor
然后,使用以下代码将该处理器的实例添加到所需的平台或平台类型定义中:
add processor task_mgr TASK_MANAGER
end_processor
注意:如果 TASK_MANAGER 实现了行为树,拥有平台将根据此做出决策并采取行动。行为与行为树将在接下来的模块中讨论。
近距离观察
注意:以下步骤假定“simple_flight”场景存在,如“跟踪”中所讨论的。
添加跟踪处理器
为了对 AIR_RADAR 创建的传感器跟踪进行处理,必须将跟踪处理器添加到 CARGO_AIRCRAFT 的平台类型定义中:
-
打开 Wizard 中的 simple_flight 项目或场景。
-
在 simple_flight 目录中创建一个新的文本文件,并命名为 track_processor.txt。
-
打开 cargo_aircraft.txt 文件,并在文件的开头添加以下代码:
include_once track_processor.txt
-
打开 track_processor.txt 并添加以下跟踪处理器命令块/定义:
processor TRACK_MANAGER WSF_TRACK_PROCESSOR master_track_processor purge_interval 10 sec report_interval 3 sec end_processor
-
返回到 cargo_aircraft.txt,并在 CARGO_AIRCRAFT 平台类型定义中添加以下代码:
add processor track_proc TRACK_MANAGER purge_interval 15 sec report_interval 2.5 sec end_processor
提示:如果在外部定义的平台部分上已经定义了一个值,如上面的示例所示,可以覆盖这些值。覆盖将仅适用于具有被覆盖实现的平台或平台类型。
6. 最后,通过将以下代码行添加到雷达定义中,将 cargo_radar 跟踪报告链接到 track_proc:
internal_link track_proc
完成这些添加后,在 Warlock 中模拟 simple_flight 场景。
将模拟推进到飞机进入彼此传感器范围之前的时刻(约 15 分钟)。
在 Warlock 的可见性小部件中,隐藏其中一个团队,并选择可见团队的飞机。
等待隐藏的平台进入所选平台的传感器范围内。
注意到当平台保持选中状态时,会出现一个跟踪,该跟踪仅在此时可见。这是新添加的 track_manager 的结果。以下是预期的视图:
对方视图同样在选择绿色飞机时显示一个传入的蓝色跟踪。
现在,跟踪信息已可供处理,而飞机也相互察觉到对方,它们必须采取行动来解决冲突。这需要使用额外的处理器 WSF_TASK_PROCESSOR,并实现行为。行为和行为树将在即将到来的模块中讨论。
添加任务处理器
任务处理器将使“cargo-1”和“cargo-2”能够通过实现行为来做出决策,从而避免碰撞。在本模块中,处理器将被实现,以便在即将到来的模块中可供使用。
完成以下步骤以实现任务处理器:
-
将以下处理器命令块添加到 track_processor.txt:
processor CARGO_TASK_MANAGER WSF_TASK_PROCESSOR update_interval 10 sec end_processor
-
将以下处理器实现块添加到 cargo_aircraft.txt 中 CARGO_AIRCRAFT 的平台类型定义中:
add processor task_mgr CARGO_TASK_MANAGER end_processor
此骨架处理器现已准备好实现行为树。
总结
完成本模块后,simple_flight 项目应包含所有先前文件和新文件 track_processor.txt。对 cargo_aircraft.txt 进行了添加/修改。更改反映如下:
track_processor.txt |
---|
# track_processor.txt # A component of the simple_flight demo processor TRACK_MANAGER WSF_TRACK_PROCESSOR master_track_processor purge_interval 10 sec report_interval 3 sec end_processor processor CARGO_TASK_MANAGER WSF_TASK_PROCESSOR update_interval 10 sec end_processor |
cargo_aircraft.txt |
---|
# cargo_aircraft.txt # A component of the simple_flight demo include_once track_processor.txt radar_signature CARGO_AIRCRAFT_RADAR_SIG constant 10 m^2 end_radar_signature sensor AIR_RADAR WSF_GEOMETRIC_SENSOR frame_time 5 sec maximum_range 30 nm reports_location reports_bearing reports_side reports_velocity azimuth_field_of_view -45.0 deg 45.0 deg elevation_field_of_view -15.0 deg 15.0 deg ignore_same_side on end_sensor platform_type CARGO_AIRCRAFT WSF_PLATFORM icon c130 spatial_domain air category cargo mover WSF_AIR_MOVER update_interval 3 sec end_mover radar_signature CARGO_AIRCRAFT_RADAR_SIG add sensor cargo_radar AIR_RADAR internal_link track_proc end_sensor add processor track_proc TRACK_MANAGER end_processor add processor task_mgr CARGO_TASK_MANAGER end_processor end_platform_type |
总结
处理器可以使用跟踪通过行为和行为树来确定决策。处理器主要对跟踪进行操作,其用途取决于处理器的性质。可以通过使用 internal_link
命令在给定平台的不同平台部件之间传递跟踪。通过实施通信,可以实现更高级的跟踪处理和决策制定。