WSF_PERCEPTION_PROCESSOR¶
- processor WSF_PERCEPTION_PROCESSOR¶
Derives From: WSF_SCRIPT_PROCESSOR
Script Object: WsfPerceptionProcessor
processor <name> WSF_PERCEPTION_PROCESSOR ... processor Commands ... ... Platform Part Commands ... ... External Link Commands ... ... WSF_SCRIPT_PROCESSOR Commands ... report_interval ... reporting_self ... reporting_others ... asset_perception ... perceive_self ... threat_update_interval ... max_threat_load ... threat_importance_function ... asset_update_interval ... max_asset_load ... asset_importance_function ... Heat Map Commands ... end_heat_map end_processor
Overview¶
WSF_PERCEPTION_PROCESSOR performs three main functions:
Status reporting as an asset to commander, subordinates, &/or peers.
Asset perception modeling, updated at the given rate, capped at the given max load.
Threat (track) perception modeling, updated at the given rate, capped at the given max load.
The perception modeling, both of assets and threats, is to represent a platform agent updating their mental knowledge of said entities. Think of it as the agent looking down at their radar screen or status displays at the given rates while their mental ability allows them to keep only so many things in their mind. Here is a simple example of a subordinate who reports asset status to a commander who now has perception (based on received messages) of this subordinate (notice the use of the report_to command:
platform cmd WSF_PLATFORM
comm comm1 WSF_COMM_TRANSCEIVER
internal_link brain
end_comm
processor brain WSF_PERCEPTION_PROCESSOR
asset_perception status_messages
asset_update_interval 25 sec
max_asset_load 10
end_processor
end_platform
platform sub WSF_PLATFORM
commander cmd
comm comm1 WSF_COMM_TRANSCEIVER
end_comm
processor brain WSF_PERCEPTION_PROCESSOR
report_interval 10 sec
report_to commander via comm1
end_processor
end_platform
Commands¶
- report_interval <time-value>¶
Specifies the interval at which asset state messages are sent to friends.
Default: 0 secs (no reporting done)
- reports_self <boolean-value>¶
- reporting_self <boolean-value>¶
Specifies whether or not to report out asset status messages about this platform.
Default: true
- reports_others <boolean-value>¶
- reporting_others <boolean-value>¶
Specifies whether or not to report out messages of all received and known asset status (of other platforms).
Default: false
- asset_perception [ status_messages; truth <members> ]¶
status_messages: asset perception will utilize any received WSF_ASSET_MESSAGE messages.
truth <members>: asset perception will traverse the command chain and use truth data.
<members> is a colon-separated list of ‘commander’, ‘subordinates’, ‘peers’, ‘all_commanders’, &/or ‘all_subordinates’. Example:
# Uses truth data for this platform's commander and all subordinates down the entire command chain asset_perception truth all_subordinates:commander
Default: truth (but no members, so empty perception).
- perceive_self¶
Include this platform in the list of perceived assets.
Default: false
- threat_update_interval <time-value>¶
Specifies the interval at which the processor updates its threat perception.
Default: 0 secs (no delayed interval, uses current master track list)
- max_threat_load <integer>¶
Specifies the maximum number of entries held in the threat perception.
Default: 0 (no max limit)
- threat_importance_function <string>¶
Specify a script function name used to measure threat importance. If specified, it completely over-rides the use of any script functions that try to set threat importance or unimportance (see WsfPerceptionProcessor). Only useful when max_threat_load is defined, otherwise no limit is imposed and importance is not necessary. Script function must match the signature of “double FunctionName(WsfLocalTrack)”. Values returned by the script will be interpreted as lower being more important (golf scoring).
script double MyThreatImportance(WsfLocalTrack threat) return PLATFORM.SlantRangeTo(threat); end_script threat_importance_function MyThreatImportance
- asset_update_interval <time-value>¶
Specifies the interval at which the processor updates its asset perception.
Default: 0 secs (no delayed interval, uses current truth or received asset messages; see ‘asset_perception’)
- max_asset_load <integer>¶
Specifies the maximum number of entries held in the asset perception.
Default: 0 (no max limit)
- asset_importance_function <string>¶
Specify a script function name used to measure asset importance. If specified, it completely over-rides the use of any script functions that try to set asset importance or unimportance (see WsfPerceptionProcessor). Only useful when max_asset_load is defined, otherwise no limit is imposed and importance is not necessary. Script function must match the signature of “double FunctionName(WsfAssetPerception)”. Values returned by the script will be interpreted as lower being more important (golf scoring).
script double MyAssetImportance(WsfAssetPerception asset) return PLATFORM.SlantRangeTo(asset.Location()); end_script asset_importance_function MyAssetImportance
Heat Map Commands¶
The heat map operates on perceived threats to provide a perception layer of the approximate location (“heat”) of lost tracks and areas covered by sensors (“cold”). The heat map requires that both update_interval and threat_update_interval be specified. If they are not default values of 5 seconds will be used.
The following commands define the operation of the heat map.
- position <latitude-value> <longitude-value>¶
Specifies the latitude and longitude of the center point of the heat map grid.
Default: 0n 0e
- altitude <length-value>¶
Specifies the altitude of the center point of the heat map grid.
Default: 0 m msl
- grid_extent <length-value>¶
Specifies the distance the heat map grid extends from the center point.
Default: 0 m
- cell_size <length-value>¶
Specifies the length of one side of a cell in the heat map grid.
Default: 0 m
Note
grid_extent should be evenly divisible by cell_size. If it is not the southern and eastern edges of the map will have unused half cells.
- heat_decay [0.05 .. 0.9]¶
Optional value that specifies the amount a heat cell will change in value as it gets stale.
Default: 0.1
- decay_interval <time-value>¶
Optional value that specifies the time between updates of a heat map cell’s value. Heat value in a cell will decay toward zero by heat_decay each interval update.
Default: 30 sec
- expansion_timeout <time-value>¶
Optional value that specifies how long a heat source will continue to expand.
Default: 240 sec
- use_asset_perception <boolean-value>¶
Optional value that indicates the perception processor should use the sensor coverage of assets to generate the “cold” coverage of the heat map.
Default: false
Note
This will be in addition to any sensors on the platform that has the heat map. Sensors must be active radar to be considered.
- sensor_range <length-value>¶
The distance from its source that a sensor is considered to “clear” the heat map. This should be shorter than the actual maximum range of the sensor and cover a distance where there is 95% or higher Pd.
Default: 0 m
- draw_grid <boolean-value>¶
- draw_heat <boolean-value>¶
- draw_sensor_outline <boolean-value>¶
Optional values that indicate WsfDraw commands should be issued for the heat map grid lines, the heat/cold values of the heat cells, or sensor coverage outlines respectively. These commands can be used to visualize the information represented by the heat map but leaving them off will speed up simulation runs.
Default: false
Script Interface¶
WSF_PERCEPTION_PROCESSOR utilizes the capabilities of the Common Script Interface, and WSF_SCRIPT_PROCESSOR.